diff -Nru cctools-7.0.22/allpairs/Makefile cctools-7.1.2/allpairs/Makefile --- cctools-7.0.22/allpairs/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -PHONY_TARGETS = src - -include ../.module.mk diff -Nru cctools-7.0.22/allpairs/src/allpairs_compare.c cctools-7.1.2/allpairs/src/allpairs_compare.c --- cctools-7.0.22/allpairs/src/allpairs_compare.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/src/allpairs_compare.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,243 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include - -#include "allpairs_compare.h" -#include "path.h" -#include "stringtools.h" -#include "text_list.h" - -#include "../../sand/src/matrix.h" -#include "../../sand/src/align.h" - -static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - -/* -If you have a custom comparison function, implement it in allpairs_compare_CUSTOM. -Arguments data1 and data2 point to the objects to be compared. -Arguments size1 and size2 are the length of each object in bytes. -When the comparison is complete, output name1, name2, and the result of the comparison. -The result may take any form that you find useful. -Note that pthread_mutex_lock/unlock is needed around the printf for safety in a multithreaded program. -*/ - -static void allpairs_compare_CUSTOM( const char *name1, const char *data1, int size1, const char *name2, const char *data2, int size2 ) -{ - int result = 5; - - pthread_mutex_lock(&mutex); - printf("%s\t%s\t%d\n",name1,name2,result); - pthread_mutex_unlock(&mutex); -} - -/* -This is a simple bitwise comparison function that just counts up -the number of bytes in each object that are different. -*/ - -static void allpairs_compare_BITWISE( const char *name1, const char *data1, int size1, const char *name2, const char *data2, int size2 ) -{ - unsigned int i, count = 0; - unsigned int minsize; - - minsize = size1 - size2 ? size2 : size1; - - count = 0; - for(i = 0; i < minsize; i++) { - if(data1[i] != data2[i]) { - count++; - } - } - - pthread_mutex_lock(&mutex); - printf("%s\t%s\t%d\n",name1,name2,count); - pthread_mutex_unlock(&mutex); -} - -/* -This function aligns two DNA sequences using the Smith-Waterman algorithm, -and if the quality is sufficiently good, displays the alignment. -*/ - -static void allpairs_compare_SWALIGN( const char *name1, const char *data1, int size1, const char *name2, const char *data2, int size2 ) -{ - char *stra = strdup(data1); - char *strb = strdup(data2); - - stra[size1-1] = 0; - strb[size2-1] = 0; - - struct matrix *m = matrix_create(size1-1,size2-1); - struct alignment *aln = align_smith_waterman(m,stra,strb); - - pthread_mutex_lock(&mutex); - printf("> %s %s\n",name1,name2); - alignment_print(stdout,stra,strb,aln); - pthread_mutex_unlock(&mutex); - - free(stra); - free(strb); - matrix_delete(m); - alignment_delete(aln); -} - -/* -This function compares two iris templates in the binary format used by the Computer Vision Research Lab at the University of Notre Dame. -*/ - -static void allpairs_compare_IRIS( const char *name1, const char *data1, int size1, const char *name2, const char *data2, int size2 ) -{ - int i, j, count = 0; - int size, band, inner, outer, quality; - const int power2[8] = { 1, 2, 4, 8, 16, 32, 64, 128 }; - - // Start processing data in mmap1 - sscanf(data1, "%d %d %d %d %d", &size, &band, &inner, &outer, &quality); - data1 = strchr(data1, '\n'); - - // Let data1 points to the start of code data - data1++; - - if(size1 - (data1 - (char *) data1) != size / 8 * 2) { - fprintf(stderr, "allpairs_multicore: Image 1 data size error!\n"); - exit(1); - } - - int code1[size]; - int mask1[size]; - - count = 0; - for(i = 0; i < size / 8; i++) { - for(j = 0; j < 8; j++) { - if(data1[i] & power2[j]) { - code1[count] = 1; - count++; - } else { - code1[count] = 0; - count++; - } - } - } - - // Let data1 now points to the start of mask data - data1 += i; - - count = 0; - for(i = 0; i < size / 8; i++) { - for(j = 0; j < 8; j++) { - if(data1[i] & power2[j]) { - mask1[count] = 1; - count++; - } else { - mask1[count] = 0; - count++; - } - } - } - - sscanf(data2, "%d %d %d %d %d", &size, &band, &inner, &outer, &quality); - data2 = strchr(data2, '\n'); - - // Let data2 points to the start of code data - data2++; - - if(size2 - (data2 - (char *) data2) != size / 8 * 2) { - fprintf(stderr, "allpairs_multicore: Image 2 data size error!\n"); - exit(1); - } - - int code2[size]; - int mask2[size]; - - count = 0; - for(i = 0; i < size / 8; i++) { - for(j = 0; j < 8; j++) { - if(data2[i] & power2[j]) { - code2[count] = 1; - count++; - } else { - code2[count] = 0; - count++; - } - } - } - - // Let data1 now points to the start of mask data - data2 += i; - - count = 0; - for(i = 0; i < size / 8; i++) { - for(j = 0; j < 8; j++) { - if(data2[i] & power2[j]) { - mask2[count] = 1; - count++; - } else { - mask2[count] = 0; - count++; - } - } - } - - int codes[size]; - int masks[size]; - int results[size]; - int distance = 0; - int total = 0; - for(i = 0; i < size; i++) { - codes[i] = code1[i] ^ code2[i]; - masks[i] = mask1[i] & mask2[i]; - results[i] = codes[i] & masks[i]; - distance = distance + results[i]; - total = total + masks[i]; - } - - pthread_mutex_lock(&mutex); - printf("%s\t%s\t%lf\n",name1,name2,distance/(double)total); - pthread_mutex_unlock(&mutex); -} - -allpairs_compare_t allpairs_compare_function_get( const char *name ) -{ - if(!strcmp(name,"CUSTOM")) { - return allpairs_compare_CUSTOM; - } else if(!strcmp(name,"BITWISE")) { - return allpairs_compare_BITWISE; - } else if(!strcmp(name,"SWALIGN")) { - return allpairs_compare_SWALIGN; - } else if(!strcmp(name,"IRIS")) { - return allpairs_compare_IRIS; - } else { - return 0; - } -} - -struct text_list *allpairs_remote_create(const char *path, const char *set) -{ - char line[1024]; - - FILE *file = fopen(path, "r"); - if(!file) - return 0; - - struct text_list *t = text_list_create(); - int i = 0; - while(fgets(line, sizeof(line), file)) { - string_chomp(line); - char *name = string_format("%s_%d_%s", set, i, path_basename(line)); - text_list_append(t, name); - i++; - } - - fclose(file); - - return t; -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/allpairs/src/allpairs_compare.h cctools-7.1.2/allpairs/src/allpairs_compare.h --- cctools-7.0.22/allpairs/src/allpairs_compare.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/src/allpairs_compare.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef ALLPAIRS_COMPARE_H -#define ALLPAIRS_COMPARE_H - -typedef void (*allpairs_compare_t) ( const char *name1, const char *data1, int size1, const char *name2, const char *data2, int size2 ); - -allpairs_compare_t allpairs_compare_function_get( const char *name ); - -struct text_list *allpairs_remote_create(const char *path, const char *set); - -#endif diff -Nru cctools-7.0.22/allpairs/src/allpairs_master.c cctools-7.1.2/allpairs/src/allpairs_master.c --- cctools-7.0.22/allpairs/src/allpairs_master.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/src/allpairs_master.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,524 +0,0 @@ -/* -Copyright (C) 2008- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include -#include -#include - -#include "cctools.h" -#include "debug.h" -#include "work_queue.h" -#include "envtools.h" -#include "text_list.h" -#include "hash_table.h" -#include "stringtools.h" -#include "xxmalloc.h" -#include "macros.h" -#include "envtools.h" -#include "fast_popen.h" -#include "list.h" -#include "timestamp.h" -#include "getopt_aux.h" -#include "path.h" - -#include "allpairs_compare.h" - -#define ALLPAIRS_LINE_MAX 4096 - -static const char *progname = "allpairs_master"; -static char allpairs_multicore_program[ALLPAIRS_LINE_MAX] = "allpairs_multicore"; -static char allpairs_compare_program[ALLPAIRS_LINE_MAX]; -static char *output_filename = NULL; -static char *wqstats_filename = NULL; - -static double compare_program_time = 0.0; -static const char * extra_arguments = ""; -static int use_external_program = 0; -static struct list *extra_files_list = 0; - -static int xcurrent = 0; -static int ycurrent = 0; -static int xblock = 0; -static int yblock = 0; -static int xstop = 0; -static int ystop = 0; -static int is_symmetric = 0; -static int empty_task = 0; - -enum { - LONG_OPT_SYMMETRIC=UCHAR_MAX+1, - LONG_OPT_PREFERRED_CONNECTION -}; - -static void show_help(const char *cmd) -{ - fprintf(stdout, "Usage: %s [options] \n", cmd); - fprintf(stdout, "The most common options are:\n"); - fprintf(stdout, " %-30s The port that the master will be listening on.\n", "-p,--port="); - fprintf(stdout, " %-30s Extra arguments to pass to the comparison function.\n", "-e,--extra-args="); - fprintf(stdout, " %-30s Extra input file needed by the comparison function. (may be given multiple times)\n", "-f,--input-file="); - fprintf(stdout, " %-30s Send debugging to this file. (can also be :stderr, :stdout, :syslog, or :journal)\n", "-o,--debug-file="); - fprintf(stdout, " %-30s Write task output to this file (default to standard output)\n", "-O,--output-file="); - fprintf(stdout, " %-30s Record runtime statistics and write to this file (default: off)\n", "-s,--wqstats-file="); - fprintf(stdout, " %-30s Estimated time to run one comparison. (default chosen at runtime)\n", "-t,--estimated-time="); - fprintf(stdout, " %-30s Width of one work unit, in items to compare. (default chosen at runtime)\n", "-x,--width="); - fprintf(stdout, " %-30s Height of one work unit, in items to compare. (default chosen at runtime)\n", "-y,--height="); - fprintf(stdout, " %-30s Set the project name to \n", "-N,--project-name="); - fprintf(stdout, " %-30s Priority. Higher the value, higher the priority.\n", "-P,--priority="); - fprintf(stdout, " %-30s Enable debugging for this subsystem. (Try -d all to start.)\n", "-d,--debug="); - fprintf(stdout, " %-30s Compute half of a symmetric matrix.\n", " --symmetric"); - fprintf(stdout, " %-30s Show program version.\n", "-v,--version"); - fprintf(stdout, " %-30s Display this message.\n", "-h,--help"); - fprintf(stdout, " %-30s Select port at random and write it to this file.\n", "-Z,--random-port="); - fprintf(stdout, " %-30s Indicate preferred master connection. Choose one of by_ip or by_hostname. (default is by_ip)\n", "--work-queue-preferred-connection"); -} - -/* -Run the comparison program repeatedly until five seconds have elapsed, -in order to get a rough measurement of the execution time. -No very accurate for embedded functions. -*/ - -double estimate_run_time( struct text_list *seta, struct text_list *setb ) -{ - char line[ALLPAIRS_LINE_MAX]; - timestamp_t starttime, stoptime; - int x,y; - - fprintf(stdout, "%s: sampling execution time of %s...\n",progname,allpairs_compare_program); - - starttime = timestamp_get(); - - for(x=0;x5000000) break; - } - if(stoptime-starttime>5000000) break; - } - - double t = (double)(stoptime - starttime) / (x * ystop + y + 1) / 1000000; - - if(t<0.01) t = 0.01; - - return t; -} - -/* -After measuring the function run time, try to choose a -squarish work unit that will take just over one minute to complete. -*/ - -void estimate_block_size( struct text_list *seta, struct text_list *setb, int *xblock, int *yblock ) -{ - if(compare_program_time==0) { - if(use_external_program) { - compare_program_time = estimate_run_time(seta,setb); - } else { - compare_program_time = 0.1; - } - } - - fprintf(stdout, "%s: %s estimated at %.02lfs per comparison\n",progname,allpairs_compare_program,compare_program_time); - - int block_limit = 60; - double block_time; - - *xblock = *yblock = 1; - - while(1) { - block_time = *xblock * *yblock * compare_program_time; - if(block_time>block_limit) break; - - if(*xblock < text_list_size(seta)) (*xblock)++; - if(*yblock < text_list_size(setb)) (*yblock)++; - - if(*xblock==text_list_size(seta) && *yblock==text_list_size(setb)) break; - } -} - -/* -Convert a text_list object into a single string that we can -pass as a buffer to a remote task via work queue. -*/ - -char * text_list_string( struct text_list *t, int a, int b ) -{ - static int buffer_size = 128; - char *buffer = malloc(buffer_size); - int buffer_pos = 0; - int i; - - for(i=a;i= buffer_size) { - buffer_size *= 2; - buffer = realloc(buffer,buffer_size); - } - buffer_pos += sprintf(&buffer[buffer_pos],"%s\n",str); - } - - buffer[buffer_pos] = 0; - - return buffer; -} - -/* -Create the next task in order to be submitted to the work queue. -Basically, bump the current position in the results matrix by -xblock, yblock, and then construct a task with a list of files -on each axis, and attach the necessary files. -*/ - -struct work_queue_task * ap_task_create( struct text_list *seta, struct text_list *setb, struct text_list *seta_remote, struct text_list *setb_remote ) -{ - int x,y; - char *buf, *name, *remote_name; - empty_task = 0; - - if(xcurrent>=xstop) { - xcurrent=0; - ycurrent+=yblock; - } - - if(ycurrent>=ystop) return 0; - - char cmd[ALLPAIRS_LINE_MAX]; - if(is_symmetric) { - /* if the whole task locates on the "wrong" side of the diagonal, ignore the task and move on to next task. */ - if(xcurrent > (ycurrent + yblock - 1)) { - empty_task = 1; - xcurrent += xblock; - return 0; - } - else { - sprintf(cmd,"./%s --index \"%d %d\" -e \"%s\" A B %s%s",path_basename(allpairs_multicore_program), xcurrent, ycurrent, extra_arguments,use_external_program ? "./" : "",path_basename(allpairs_compare_program)); - } - } else { - sprintf(cmd,"./%s -e \"%s\" A B %s%s",path_basename(allpairs_multicore_program), extra_arguments,use_external_program ? "./" : "",path_basename(allpairs_compare_program)); - } - - struct work_queue_task *task = work_queue_task_create(cmd); - - if(use_external_program) { - if(!work_queue_task_specify_file(task,allpairs_compare_program,path_basename(allpairs_compare_program),WORK_QUEUE_INPUT,WORK_QUEUE_CACHE)) - return 0; - } - - if(!work_queue_task_specify_file(task,allpairs_multicore_program,path_basename(allpairs_multicore_program),WORK_QUEUE_INPUT,WORK_QUEUE_CACHE)) - return 0; - - const char *f; - list_first_item(extra_files_list); - while((f = list_next_item(extra_files_list))) { - if(!work_queue_task_specify_file(task,f,path_basename(f),WORK_QUEUE_INPUT,WORK_QUEUE_CACHE)) - return 0; - } - - buf = text_list_string(seta_remote,xcurrent,xcurrent+xblock); - if(!work_queue_task_specify_buffer(task,buf,strlen(buf),"A",WORK_QUEUE_NOCACHE)) { - free(buf); - return 0; - } - - free(buf); - - buf = text_list_string(setb_remote,ycurrent,ycurrent+yblock); - if(!work_queue_task_specify_buffer(task,buf,strlen(buf),"B",WORK_QUEUE_NOCACHE)) { - free(buf); - return 0; - } - - free(buf); - - for(x=xcurrent;x<(xcurrent+xblock);x++) { - name = text_list_get(seta,x); - remote_name = text_list_get(seta_remote,x); - if(!name) break; - if(!work_queue_task_specify_file(task,name,remote_name,WORK_QUEUE_INPUT,WORK_QUEUE_CACHE)) - return 0; - } - - for(y=ycurrent;y<(ycurrent+yblock);y++) { - name = text_list_get(setb,y); - remote_name = text_list_get(setb_remote,y); - if(!name) break; - if(!work_queue_task_specify_file(task,name,remote_name,WORK_QUEUE_INPUT,WORK_QUEUE_CACHE)) - return 0; - } - - /* advance to the next row/column */ - xcurrent += xblock; - - return task; -} - -void task_complete( struct work_queue_task *t ) -{ - FILE *output = stdout; - - printf("task %d complete\n",t->taskid); - - if(output_filename) - { - output = fopen(output_filename, "a"); - if(!output) - { - fprintf(stderr, "Cannot open %s for writing. Output to stdout instead.\n", output_filename); - output = stdout; - } - } - - string_chomp(t->output); - fprintf(output, "%s\n",t->output); - - if(output != stdout) - fclose(output); - - work_queue_task_delete(t); -} - -int main(int argc, char **argv) -{ - int c; - struct work_queue *q; - int port = WORK_QUEUE_DEFAULT_PORT; - static const char *port_file = NULL; - int work_queue_master_mode = WORK_QUEUE_MASTER_MODE_STANDALONE; - char *project = NULL; - char *work_queue_preferred_connection = NULL; - int priority = 0; - - debug_config("allpairs_master"); - - extra_files_list = list_create(); - - static const struct option long_options[] = { - {"debug", required_argument, 0, 'd'}, - {"help", no_argument, 0, 'h'}, - {"version", no_argument, 0, 'v'}, - {"port", required_argument, 0, 'p'}, - {"random-port", required_argument, 0, 'Z'}, - {"extra-args", required_argument, 0, 'e'}, - {"width", required_argument, 0, 'x'}, - {"height", required_argument, 0, 'y'}, - {"advertise", no_argument, 0, 'a'}, //deprecated, left here for backwards compatibility - {"project-name", required_argument, 0, 'N'}, - {"debug-file", required_argument, 0, 'o'}, - {"output-file", required_argument, 0, 'O'}, - {"wqstats-file", required_argument, 0, 's'}, - {"input-file", required_argument, 0, 'f'}, - {"estimated-time", required_argument, 0, 't'}, - {"priority", required_argument, 0, 'P'}, - {"symmetric", no_argument, 0, LONG_OPT_SYMMETRIC}, - {"work-queue-preferred-connection", required_argument, 0, LONG_OPT_PREFERRED_CONNECTION}, - {0,0,0,0} - }; - - - while((c = getopt_long(argc, argv, "ad:e:f:hN:p:P:t:vx:y:Z:O:o:s:", long_options, NULL)) >= 0) { - switch (c) { - case 'a': - work_queue_master_mode = WORK_QUEUE_MASTER_MODE_CATALOG; - break; - case 'd': - debug_flags_set(optarg); - break; - case 'e': - extra_arguments = optarg; - break; - case 'f': - list_push_head(extra_files_list,optarg); - break; - case 'o': - debug_config_file(optarg); - break; - case 'O': - free(output_filename); - output_filename=xxstrdup(optarg); - break; - case 's': - free(wqstats_filename); - wqstats_filename=xxstrdup(optarg); - break; - case 'h': - show_help(progname); - exit(0); - break; - case 'N': - work_queue_master_mode = WORK_QUEUE_MASTER_MODE_CATALOG; - free(project); - project = xxstrdup(optarg); - break; - case 'p': - port = atoi(optarg); - break; - case 'P': - priority = atoi(optarg); - break; - case 't': - compare_program_time = atof(optarg); - break; - case LONG_OPT_SYMMETRIC: - is_symmetric = 1; - break; - case 'v': - cctools_version_print(stdout, progname); - exit(0); - break; - case 'x': - xblock = atoi(optarg); - break; - case 'y': - yblock = atoi(optarg); - break; - case 'Z': - port_file = optarg; - port = 0; - break; - case LONG_OPT_PREFERRED_CONNECTION: - free(work_queue_preferred_connection); - work_queue_preferred_connection = xxstrdup(optarg); - break; - default: - show_help(progname); - return 1; - } - } - - cctools_version_debug(D_DEBUG, argv[0]); - - if((argc - optind) < 3) { - show_help(progname); - exit(1); - } - - struct text_list *seta = text_list_load(argv[optind]); - struct text_list *seta_remote = allpairs_remote_create(argv[optind], "A"); - if(!seta) { - fprintf(stderr,"%s: couldn't open %s: %s\n",progname,argv[optind+1],strerror(errno)); - return 1; - } - - fprintf(stdout, "%s: %s has %d elements\n",progname,argv[optind],text_list_size(seta)); - - struct text_list *setb = text_list_load(argv[optind+1]); - struct text_list *setb_remote = allpairs_remote_create(argv[optind+1], "B"); - if(!setb) { - fprintf(stderr,"%s: couldn't open %s: %s\n",progname,argv[optind+1],strerror(errno)); - return 1; - } - - fprintf(stdout, "%s: %s has %d elements\n",progname,argv[optind+1],text_list_size(setb)); - - if (!find_executable("allpairs_multicore","PATH",allpairs_multicore_program,sizeof(allpairs_multicore_program))) { - fprintf(stderr,"%s: couldn't find allpairs_multicore in path\n",progname); - return 1; - } - - debug(D_DEBUG,"using multicore executable %s",allpairs_multicore_program); - - xstop = text_list_size(seta); - ystop = text_list_size(setb); - - if(allpairs_compare_function_get(argv[optind+2])) { - strcpy(allpairs_compare_program,argv[optind+2]); - debug(D_DEBUG,"using internal function %s",allpairs_compare_program); - use_external_program = 0; - } else { - if(!find_executable(argv[optind+2],"PATH",allpairs_compare_program,sizeof(allpairs_compare_program))) { - fprintf(stderr,"%s: %s is neither an executable nor an internal comparison function.\n",progname,allpairs_compare_program); - return 1; - } - debug(D_DEBUG,"using comparison executable %s",allpairs_compare_program); - use_external_program = 1; - } - - if(!xblock || !yblock) { - estimate_block_size(seta,setb,&xblock,&yblock); - } - - fprintf(stdout, "%s: using block size of %dx%d\n",progname,xblock,yblock); - - if(work_queue_master_mode == WORK_QUEUE_MASTER_MODE_CATALOG && !project) { - fprintf(stderr, "allpairs: allpairs master running in catalog mode. Please use '-N' option to specify the name of this project.\n"); - fprintf(stderr, "allpairs: Run \"%s -h\" for help with options.\n", argv[0]); - return 1; - } - - q = work_queue_create(port); - - //Read the port the queue is actually running, in case we just called - //work_queue_create(LINK_PORT_ANY) - port = work_queue_port(q); - - if(!q) { - fprintf(stderr,"%s: could not create work queue on port %d: %s\n",progname,port,strerror(errno)); - return 1; - } - - if(port_file) - opts_write_port_file(port_file, port); - - if(wqstats_filename) - work_queue_specify_log(q, wqstats_filename); - - // advanced work queue options - work_queue_specify_master_mode(q, work_queue_master_mode); - work_queue_specify_name(q, project); - work_queue_specify_priority(q, priority); - - if(work_queue_preferred_connection) - work_queue_master_preferred_connection(q, work_queue_preferred_connection); - - fprintf(stdout, "%s: listening for workers on port %d...\n",progname,work_queue_port(q)); - - while(1) { - struct work_queue_task *task = NULL; - while(work_queue_hungry(q)) { - task = ap_task_create(seta,setb,seta_remote,setb_remote); - if(task) { - work_queue_submit(q, task); - } else if(empty_task) { - continue; - } else { - break; - } - } - - if(!task && work_queue_empty(q)) break; - - task = work_queue_wait(q,5); - if(task) task_complete(task); - } - - work_queue_delete(q); - - return 0; -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/allpairs/src/allpairs_multicore.c cctools-7.1.2/allpairs/src/allpairs_multicore.c --- cctools-7.0.22/allpairs/src/allpairs_multicore.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/src/allpairs_multicore.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,414 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "allpairs_compare.h" - -#include "cctools.h" -#include "debug.h" -#include "stringtools.h" -#include "xxmalloc.h" -#include "fast_popen.h" -#include "text_list.h" -#include "macros.h" -#include "full_io.h" -#include "getopt_aux.h" -#include "rmonitor_poll.h" - -static const char *progname = "allpairs_multicore"; -static const char *extra_arguments = ""; -static int block_size = 0; -static int num_cores = 0; -static int is_symmetric = 0; -static int nindex = 0; -static int index_array[2]; - -enum { - LONG_OPT_SYMMETRIC=UCHAR_MAX+1, - LONG_OPT_INDEX, -}; - -static void show_help(const char *cmd) -{ - fprintf(stdout, "Usage: %s [options] \n", cmd); - fprintf(stdout, "where options are:\n"); - fprintf(stdout, " %-30s Block size: number of items to hold in memory at once. (default: 50%% of RAM\n", "-b,--block-size="); - fprintf(stdout, " %-30s Number of cores to be used. (default: # of cores in machine)\n", "-c,--cores="); - fprintf(stdout, " %-30s Extra arguments to pass to the comparison program.\n", "-e,--extra-args="); - fprintf(stdout, " %-30s Enable debugging for this subsystem.\n", "-d,--debug="); - /* --index and --symmetric can not be used concurrently. */ - fprintf(stdout, " %-30s Specify the indexes of a matrix (used by allpairs_master to specify the indexes of the submatrix for each task).\n", " --index=\" \""); - fprintf(stdout, " %-30s Compute half of a symmetric matrix.\n", " --symmetric"); - fprintf(stdout, " %-30s Show program version.\n", "-v,--version"); - fprintf(stdout, " %-30s Display this message.\n", "-h,--help"); -} - -static int get_file_size( const char *path ) -{ - struct stat info; - if(stat(path,&info)==0) { - return info.st_size; - } else { - return 0; - } -} - -/* -block_size_estimate computes how many items we can effectively -get in memory at once by measuring the first 100 elements of the set, -and then choosing a number to fit within 1/2 of the available RAM. -*/ - -int block_size_estimate( struct text_list *seta, struct rmsummary *tr ) -{ - int count = MIN(100,text_list_size(seta)); - int i; - UINT64_T total_data = 0,total_mem; - int block_size; - - for(i=0;imemory * MEGABYTE / 2; - - if(total_data>=total_mem) { - block_size = text_list_size(seta) * total_mem / total_data; - if(block_size<1) block_size = 1; - if(block_size>text_list_size(seta)) block_size = text_list_size(seta); - } else { - block_size = text_list_size(seta); - } - - return block_size; -} - -/* -Load the named file into memory, returning the actual data of -the file, and filling length with the length of the buffer in bytes. -The result should be free()d when done. -*/ - -char * load_one_file( const char *filename, int *length ) -{ - FILE *file = fopen(filename,"r"); - if(!file) { - fprintf(stderr,"%s: couldn't open %s: %s\n",progname,filename,strerror(errno)); - exit(1); - } - - fseek(file,0,SEEK_END); - *length = ftell(file); - fseek(file,0,SEEK_SET); - - char *data = malloc(*length); - if(!data) { - fprintf(stderr,"%s: out of memory!\n",progname); - exit(1); - } - - full_fread(file,data,*length); - fclose(file); - - return data; -} - -/* -pthreads requires that we pass all arguments through as a single -pointer, so we are forced to use a little structure to send all -of the desired arguments. -*/ - -struct thread_args { - allpairs_compare_t func; - char **xname; - char **xdata; - int *xdata_length; - int *xdata_id; //the index array of xdata in the matrix constructed by seta and setb - char *yname; - char *ydata; - int ydata_length; - int ydata_id; //the index of ydata in the matrix constructed by seta and setb -}; - -/* -A single thread will loop over a whole block-row of the results, -calling the comparison function once for each pair of items. -*/ - -static void * row_loop_threaded( void *args ) -{ - int i; - struct thread_args *targs = args; - if(nindex == 2) { - for(i=0;ixdata_id[i]) <= (index_array[1] + targs->ydata_id)) //calcuate xindex and yindex of the unit in the original matrix of allpairs_master - targs->func(targs->xname[i],targs->xdata[i],targs->xdata_length[i],targs->yname,targs->ydata,targs->ydata_length); - } - } else if (is_symmetric) { - for(i=0;ixdata_id[i] <= targs->ydata_id) - targs->func(targs->xname[i],targs->xdata[i],targs->xdata_length[i],targs->yname,targs->ydata,targs->ydata_length); - } - } else { - for(i=0;ifunc(targs->xname[i],targs->xdata[i],targs->xdata_length[i],targs->yname,targs->ydata,targs->ydata_length); - } - } - return 0; -} - -/* -The threaded main loop loads an entire block of objects into memory, -then forks threads, one for each row in the block, until done. -This only applies to functions loaded via dynamic linking. -Up to num_cores threads will be running simultaneously. -*/ - -static int main_loop_threaded( allpairs_compare_t funcptr, struct text_list *seta, struct text_list *setb ) -{ - int x,i,j,c; - - char *xname[block_size]; - char *xdata[block_size]; - int xdata_id[block_size]; - int xdata_length[block_size]; - - char *yname[num_cores]; - char *ydata[num_cores]; - int ydata_length[num_cores]; - int ydata_id[num_cores]; - - struct thread_args args[num_cores]; - pthread_t thread[num_cores]; - - /* for each block sized vertical stripe... */ - for(x=0;x -1) { - switch (c) { - case 'b': - block_size = atoi(optarg); - break; - case 'c': - num_cores = atoi(optarg); - break; - case 'e': - extra_arguments = optarg; - break; - case 'd': - debug_flags_set(optarg); - break; - case LONG_OPT_INDEX: - nindex = sscanf(optarg, "%d %d", &index_array[0], &index_array[1]); - if(nindex != 2) { - fprintf(stderr, "You must provide two indexes: xstart and ystart.\n"); - show_help(progname); - exit(0); - } - break; - case LONG_OPT_SYMMETRIC: - is_symmetric = 1; - break; - case 'v': - cctools_version_print(stdout, progname); - exit(0); - break; - default: - case 'h': - show_help(progname); - exit(0); - break; - } - } - - cctools_version_debug(D_DEBUG, argv[0]); - - if((argc - optind) < 3) { - show_help(progname); - exit(1); - } - - const char * setapath = argv[optind]; - const char * setbpath = argv[optind+1]; - const char * funcpath = argv[optind+2]; - - struct text_list *seta = text_list_load(setapath); - if(!seta) { - fprintf(stderr, "allpairs_multicore: cannot open %s: %s\n",setapath,strerror(errno)); - exit(1); - } - - struct text_list *setb = text_list_load(setbpath); - if(!setb) { - fprintf(stderr, "allpairs_multicore: cannot open %s: %s\n",setbpath,strerror(errno)); - exit(1); - } - - struct rmsummary *tr = rmonitor_measure_host(NULL); - if(num_cores==0) num_cores = tr->cores; - debug(D_DEBUG,"num_cores: %d\n",num_cores); - - if(block_size==0) block_size = block_size_estimate(seta, tr); - debug(D_DEBUG,"block_size: %d elements",block_size); - free(tr); - - allpairs_compare_t funcptr = allpairs_compare_function_get(funcpath); - if(funcptr) { - result = main_loop_threaded(funcptr,seta,setb); - } else { - if(access(funcpath,X_OK)!=0) { - fprintf(stderr, "%s: %s is neither an executable program nor an internal function.\n",progname,funcpath); - return 1; - } - result = main_loop_program(funcpath,seta,setb); - } - - return result; -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/allpairs/src/.gitignore cctools-7.1.2/allpairs/src/.gitignore --- cctools-7.0.22/allpairs/src/.gitignore 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/src/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -allpairs_master -allpairs_multicore -allpairs_wait -allpairs -allpairs_status -allpairs_workqueue -allpairs_cleanup diff -Nru cctools-7.0.22/allpairs/src/Makefile cctools-7.1.2/allpairs/src/Makefile --- cctools-7.0.22/allpairs/src/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/src/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -include ../../config.mk -include ../../rules.mk - -LOCAL_LINKAGE = -lpthread - -EXTERNAL_DEPENDENCIES = ../../sand/src/libsandtools.a ../../work_queue/src/libwork_queue.a ../../dttools/src/libdttools.a -OBJECTS = allpairs_compare.o -PROGRAMS = allpairs_multicore allpairs_master -TARGETS = $(PROGRAMS) - -all: $(TARGETS) - -$(PROGRAMS): $(OBJECTS) $(EXTERNAL_DEPENDENCIES) - -clean: - rm -f $(OBJECTS) $(TARGETS) - -install: all - mkdir -p $(CCTOOLS_INSTALL_DIR)/bin - cp $(PROGRAMS) $(CCTOOLS_INSTALL_DIR)/bin/ - -test: all - -.PHONY: all clean install test diff -Nru cctools-7.0.22/allpairs/src/README cctools-7.1.2/allpairs/src/README --- cctools-7.0.22/allpairs/src/README 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/src/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -Source for the All-Pairs TPDS paper [1] can be found in commit -82b7a15755068c0047a423ae2b6c2ee88480dd08, tagged as papers/allpairs-tpds. - -[1] Moretti, C.; Hoang Bui; Hollingsworth, K.; Rich, B.; Flynn, P.; Thain, D., -"All-Pairs: An Abstraction for Data-Intensive Computing on Campus Grids," in -Parallel and Distributed Systems, IEEE Transactions on , vol.21, no.1, -pp.33-46, Jan. 2010 doi: 10.1109/TPDS.2009.49 diff -Nru cctools-7.0.22/allpairs/test/composites.txt cctools-7.1.2/allpairs/test/composites.txt --- cctools-7.0.22/allpairs/test/composites.txt 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/test/composites.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -A_10_12 -A_12_14 -A_13_15 -A_14_16 -A_16_18 -A_2_4 -A_4_6 -A_6_8 -A_7_9 -A_8_10 diff -Nru cctools-7.0.22/allpairs/test/divisible.sh cctools-7.1.2/allpairs/test/divisible.sh --- cctools-7.0.22/allpairs/test/divisible.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/test/divisible.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/bin/sh - -# is $1 properly divisible by $2? - -int1=`echo $OUTPUT | sed -n 1p $1` -int2=`echo $OUTPUT | sed -n 1p $2` -if [ $int1 -gt $int2 ]; then - echo $(( $int1 % $int2)) -else - echo $int1 -fi - -exit 0 - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/allpairs/test/gen_ints.sh cctools-7.1.2/allpairs/test/gen_ints.sh --- cctools-7.0.22/allpairs/test/gen_ints.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/test/gen_ints.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#! /bin/sh - -filename=${1:-integer.list} -N=${2:-50} - - -rm -f $filename -touch $filename - -I=2 -while [ $I -lt $N ]; do - echo $I > $I - echo $I >> $filename - I=$((I+1)) -done - - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/allpairs/test/.gitignore cctools-7.1.2/allpairs/test/.gitignore --- cctools-7.0.22/allpairs/test/.gitignore 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/test/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -allpairs.done.* diff -Nru cctools-7.0.22/allpairs/test/lc_compare.sh cctools-7.1.2/allpairs/test/lc_compare.sh --- cctools-7.0.22/allpairs/test/lc_compare.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/test/lc_compare.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -#!/bin/sh - -lc_a=$(wc -l "$1" | awk '{print $1}') -lc_b=$(wc -l "$2" | awk '{print $1}') - -echo $(($lc_a - $lc_b)) -exit 0 - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/allpairs/test/README cctools-7.1.2/allpairs/test/README --- cctools-7.0.22/allpairs/test/README 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/test/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -TR_allpairs_composite.sh - -Computes the list of composite numbers by brute force. We form the -pairs of all numbers from 2 to 50, and check if the first one is -properly divisible by the second one. - -TR_allpairs_bitwise.sh - -Compare the source of allpairs with the hard coded BITWISE function. -This test could be better, since we only count the number of lines -generated. diff -Nru cctools-7.0.22/allpairs/test/set.list cctools-7.1.2/allpairs/test/set.list --- cctools-7.0.22/allpairs/test/set.list 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/test/set.list 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -../src/allpairs_compare.c -../src/allpairs_master.c -../src/allpairs_multicore.c diff -Nru cctools-7.0.22/allpairs/test/TR_allpairs_bitwise.sh cctools-7.1.2/allpairs/test/TR_allpairs_bitwise.sh --- cctools-7.0.22/allpairs/test/TR_allpairs_bitwise.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/test/TR_allpairs_bitwise.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ -#!/bin/sh - -. ../../dttools/test/test_runner_common.sh - -TEST_INPUT=set.list -TEST_OUTPUT=master.out -PORT_FILE=worker.port -WORKER_LOG=worker.log -MASTER_PID=master.pid -WORKER_PID=worker.pid -DONE_FILE=allpairs.done.$$ - -export PATH=.:../src:../../work_queue/src:$PATH - -cleanfiles() -{ - rm -f $TEST_OUTPUT - rm -f $PORT_FILE - rm -f $WORKER_LOG - rm -f $MASTER_PID - rm -f $WORKER_PID - rm -f $DONE_FILE - rm -f allpairs_multicore - -} - -prepare() -{ - cleanfiles -} - -run() -{ - ln -s ../src/allpairs_multicore . - - echo "starting master" - (allpairs_master -x 1 -y 1 --output-file $TEST_OUTPUT -Z $PORT_FILE $TEST_INPUT $TEST_INPUT BITWISE; touch $DONE_FILE) & - echo $! > $MASTER_PID - - run_local_worker $PORT_FILE & - echo $! > $WORKER_PID - - wait_for_file_creation $DONE_FILE 15 - - echo "checking output" - in_files=`cat "$TEST_INPUT" | awk -F"/" '{print $3}'` - howmany() { echo $#;} - num_files=$(howmany $in_files) - for i in $in_files; do - count=`awk '{print $1}' $TEST_OUTPUT | grep -c $i` - if [ $num_files != $count ] - then - exit 1 - fi - count=`awk '{print $2}' $TEST_OUTPUT | grep -c $i` - if [ $num_files != $count ] - then - exit 1 - fi - done - - echo "output is good" - exit 0 - -} - -clean() -{ - kill -9 $(cat $MASTER_PID) - kill -9 $(cat $WORKER_PID) - - cat $WORKER_LOG 1>&2 - - cleanfiles - exit 0 -} - -dispatch "$@" - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/allpairs/test/TR_allpairs_composite.sh cctools-7.1.2/allpairs/test/TR_allpairs_composite.sh --- cctools-7.0.22/allpairs/test/TR_allpairs_composite.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/allpairs/test/TR_allpairs_composite.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ -#!/bin/sh - -. ../../dttools/test/test_runner_common.sh - -TEST_INPUT=integer.list -TEST_OUTPUT_STEP=composite_step.output -TEST_OUTPUT=composite.output -TEST_TRUTH=composites.txt -PORT_FILE=worker.port -WORKER_LOG=worker.log -MASTER_PID=master.pid -WORKER_PID=worker.pid -DONE_FILE=allpairs.done.$$ - -export PATH=.:../src:../../work_queue/src:$PATH - -cleanfiles() -{ - if [ -f $TEST_INPUT ] - then - xargs rm < $TEST_INPUT - fi - - rm -f $TEST_INPUT - rm -f $TEST_OUTPUT_STEP - rm -f $TEST_OUTPUT - rm -f $PORT_FILE - rm -f $WORKER_LOG - rm -f $MASTER_PID - rm -f $WORKER_PID - rm -f $DONE_FILE - rm -f allpairs_multicore -} - -prepare() -{ - cleanfiles - ./gen_ints.sh $TEST_INPUT 20 - ln -s ../src/allpairs_multicore . -} - -run() -{ - echo "starting master" - (allpairs_master -x 1 -y 1 --output-file $TEST_OUTPUT_STEP -Z $PORT_FILE $TEST_INPUT $TEST_INPUT ./divisible.sh -d all; touch $DONE_FILE) & - echo $! > $MASTER_PID - - run_local_worker $PORT_FILE & - echo $! > $WORKER_PID - - wait_for_file_creation $DONE_FILE 30 - - echo "checking output" - awk '$3 ~ /^0$/{print $1}' $TEST_OUTPUT_STEP | sort -n | uniq > $TEST_OUTPUT - - diff $TEST_TRUTH $TEST_OUTPUT - exit $? -} - -clean() -{ - kill -9 $(cat $MASTER_PID) - kill -9 $(cat $WORKER_PID) - - cat $WORKER_LOG 1>&2 - - cleanfiles - exit 0 -} - -dispatch "$@" - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/apps/makeflow_blasr/makeflow_blasr cctools-7.1.2/apps/makeflow_blasr/makeflow_blasr --- cctools-7.0.22/apps/makeflow_blasr/makeflow_blasr 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/apps/makeflow_blasr/makeflow_blasr 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (C) 2014- The University of Notre Dame # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/apps/makeflow_blast/makeflow_blast cctools-7.1.2/apps/makeflow_blast/makeflow_blast --- cctools-7.0.22/apps/makeflow_blast/makeflow_blast 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/apps/makeflow_blast/makeflow_blast 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (C) 2011- The University of Notre Dame # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/apps/makeflow_bwa/makeflow_bwa cctools-7.1.2/apps/makeflow_bwa/makeflow_bwa --- cctools-7.0.22/apps/makeflow_bwa/makeflow_bwa 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/apps/makeflow_bwa/makeflow_bwa 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # #Copyright (C) 2013- The University of Notre Dame #This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/apps/makeflow_gatk/makeflow_gatk cctools-7.1.2/apps/makeflow_gatk/makeflow_gatk --- cctools-7.0.22/apps/makeflow_gatk/makeflow_gatk 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/apps/makeflow_gatk/makeflow_gatk 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # #Copyright (C) 2013- The University of Notre Dame #This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/apps/wq_bwa/wq_bwa cctools-7.1.2/apps/wq_bwa/wq_bwa --- cctools-7.0.22/apps/wq_bwa/wq_bwa 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/apps/wq_bwa/wq_bwa 2020-05-05 15:31:15.000000000 +0000 @@ -128,10 +128,12 @@ $line_count++; } + $num_outputs++; + close(infile); print localtime(). " Number of splits of $query_file is $num_outputs.\n"; - return $num_outputs-1; + return $num_outputs; } sub partition_tasks { diff -Nru cctools-7.0.22/apps/wq_replica_exchange/protomol_functions.py cctools-7.1.2/apps/wq_replica_exchange/protomol_functions.py --- cctools-7.0.22/apps/wq_replica_exchange/protomol_functions.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/apps/wq_replica_exchange/protomol_functions.py 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python import random import math diff -Nru cctools-7.0.22/apps/wq_replica_exchange/wq_replica_exchange cctools-7.1.2/apps/wq_replica_exchange/wq_replica_exchange --- cctools-7.0.22/apps/wq_replica_exchange/wq_replica_exchange 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/apps/wq_replica_exchange/wq_replica_exchange 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # replica_exchange.py # diff -Nru cctools-7.0.22/batch_job/src/batch_file.c cctools-7.1.2/batch_job/src/batch_file.c --- cctools-7.0.22/batch_job/src/batch_file.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/batch_job/src/batch_file.c 2020-05-05 15:31:15.000000000 +0000 @@ -8,6 +8,15 @@ #include "sha1.h" #include "stringtools.h" #include "xxmalloc.h" +#include "path.h" +#include "hash_table.h" +#include +#include +#include +#include + +struct hash_table *check_sums = NULL; +double total_checksum_time = 0.0; /** * Create batch_file from outer_name and inner_name. @@ -101,12 +110,93 @@ /* Return the content based ID for a file. * generates the checksum of a file's contents if does not exist */ char * batch_file_generate_id(struct batch_file *f) { - if(!f->hash){ - unsigned char *hash = xxcalloc(1, sizeof(char *)*SHA1_DIGEST_LENGTH); - sha1_file(f->outer_name, hash); + if(check_sums == NULL){ + check_sums = hash_table_create(0,0); + } + char *check_sum_value = hash_table_lookup(check_sums, f->outer_name); + if(check_sum_value == NULL){ + unsigned char hash[SHA1_DIGEST_LENGTH]; + struct timeval start_time; + struct timeval end_time; + + gettimeofday(&start_time,NULL); + int success = sha1_file(f->outer_name, hash); + gettimeofday(&end_time,NULL); + double run_time = ((end_time.tv_sec*1000000 + end_time.tv_usec) - (start_time.tv_sec*1000000 + start_time.tv_usec)) / 1000000.0; + total_checksum_time += run_time; + debug(D_MAKEFLOW_HOOK," The total checksum time is %lf",total_checksum_time); + if(success == 0){ + debug(D_MAKEFLOW, "Unable to checksum this file: %s", f->outer_name); + return NULL; + } f->hash = xxstrdup(sha1_string(hash)); - free(hash); - } - return xxstrdup(f->hash); + hash_table_insert(check_sums, f->outer_name, xxstrdup(sha1_string(hash))); + debug(D_MAKEFLOW,"Checksum hash of %s is: %s",f->outer_name,f->hash); + return xxstrdup(f->hash); + } + debug(D_MAKEFLOW,"Checksum already exists in hash table. Cached CHECKSUM hash of %s is: %s", f->outer_name, check_sum_value); + return xxstrdup(check_sum_value); } + +/* Return the content based ID for a directory. + * generates the checksum for the directories contents if does not exist + * *NEED TO ACCOUNT FOR SYMLINKS LATER* */ +char * batch_file_generate_id_dir(char *file_name){ + if(check_sums == NULL){ + check_sums = hash_table_create(0,0); + } + char *check_sum_value = hash_table_lookup(check_sums, file_name); + if(check_sum_value == NULL){ + char *hash_sum = ""; + struct dirent **dp; + int num; + // Scans directory and sorts in reverse order + num = scandir(file_name, &dp, NULL, alphasort); + if(num < 0){ + debug(D_MAKEFLOW,"Unable to scan %s", file_name); + return NULL; + } + else{ + int i; + for(i = num - 1; i >= 0; i--) { + if(strcmp(dp[i]->d_name,".") != 0 && strcmp(dp[i]->d_name,"..") != 0){ + char *file_path = string_format("%s/%s",file_name,dp[i]->d_name); + if(path_is_dir(file_path) == 1){ + hash_sum = string_format("%s%s",hash_sum,batch_file_generate_id_dir(file_path)); + } + else{ + unsigned char hash[SHA1_DIGEST_LENGTH]; + struct timeval start_time; + struct timeval end_time; + + gettimeofday(&start_time,NULL); + int success = sha1_file(file_path, hash); + gettimeofday(&end_time,NULL); + double run_time = ((end_time.tv_sec*1000000 + end_time.tv_usec) - (start_time.tv_sec*1000000 + start_time.tv_usec)) / 1000000.0; + total_checksum_time += run_time; + debug(D_MAKEFLOW_HOOK," The total checksum time is %lf",total_checksum_time); + if(success == 0){ + debug(D_MAKEFLOW, "Unable to checksum this file: %s", file_path); + free(file_path); + free(dp[i]); + continue; + } + hash_sum = string_format("%s%s:%s",hash_sum,file_name,sha1_string(hash)); + } + free(file_path); + } + free(dp[i]); + } + free(dp); + unsigned char hash[SHA1_DIGEST_LENGTH]; + sha1_buffer(hash_sum, strlen(hash_sum), hash); + free(hash_sum); + hash_table_insert(check_sums, file_name, xxstrdup(sha1_string(hash))); + debug(D_MAKEFLOW,"Checksum hash of %s is: %s",file_name,sha1_string(hash)); + return xxstrdup(sha1_string(hash)); + } + } + debug(D_MAKEFLOW,"Checksum already exists in hash table. Cached CHECKSUM hash of %s is: %s", file_name, check_sum_value); + return check_sum_value; +} diff -Nru cctools-7.0.22/batch_job/src/batch_file.h cctools-7.1.2/batch_job/src/batch_file.h --- cctools-7.0.22/batch_job/src/batch_file.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/batch_job/src/batch_file.h 2020-05-05 15:31:15.000000000 +0000 @@ -6,10 +6,16 @@ #ifndef BATCH_FILE_H #define BATCH_FILE_H +#include +#include +#include #include "batch_job.h" #include "sha1.h" #include "list.h" +#include "debug.h" +#include "path.h" + struct batch_file { char *outer_name; @@ -57,8 +63,14 @@ /** Generate a sha1 hash based on the file contents. @param f The batch_file whose checksum will be generated. -@return Allocated string of the hash, user should free. +@return Allocated string of the hash, user should free or NULL on error of checksumming file. */ char * batch_file_generate_id(struct batch_file *f); +/** Generates a sha1 hash based on the directory's contents. +@param file_name The directory that will be checked +@return Allocated string of the hash, user should free or NULL on error scanning the directory. +*/ +char * batch_file_generate_id_dir(char *file_name); + #endif diff -Nru cctools-7.0.22/batch_job/src/batch_job_amazon_batch.c cctools-7.1.2/batch_job/src/batch_job_amazon_batch.c --- cctools-7.0.22/batch_job/src/batch_job_amazon_batch.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/batch_job/src/batch_job_amazon_batch.c 2020-05-05 15:31:15.000000000 +0000 @@ -371,6 +371,32 @@ return succeed; } +static char* aws_job_def(char* aws_jobid){ + char* cmd = string_format("aws batch describe-jobs --jobs %s",aws_jobid); + struct jx* jx = run_command(cmd); + free(cmd); + struct jx* jobs_array = jx_lookup(jx,"jobs"); + if(!jobs_array){ + debug(D_BATCH,"Problem with given aws_jobid: %s",aws_jobid); + return NULL; + } + struct jx* first_item = jx_array_index(jobs_array,0); + if(!first_item){ + debug(D_BATCH,"Problem with given aws_jobid: %s",aws_jobid); + return NULL; + } + char* ret = string_format("%s",(char*)jx_lookup_string(first_item,"jobDefinition")); + jx_delete(jx); + return ret; +} + +static int del_job_def(char* jobdef){ + char* cmd = string_format("aws batch deregister-job-definition --job-definition %s",jobdef); + int ret = sh_system(cmd); + free(cmd); + return ret; +} + static batch_job_id_t batch_job_amazon_batch_submit(struct batch_queue* q, const char* cmd, const char* extra_input_files, const char* extra_output_files, struct jx* envlist, const struct rmsummary* resources){ struct internal_amazon_batch_amazon_ids amazon_ids = initialize(q); char* env_var = amazon_ids.master_env_prefix; @@ -404,7 +430,7 @@ char* fmt_cmd = string_format("%s aws s3 cp s3://%s/COMAND_FILE_%u.sh ./ && sh ./COMAND_FILE_%u.sh",env_var,bucket_name,jobid,jobid); //combine all properties together - char* properties_string = string_format("{ \\\"image\\\": \\\"%s\\\", \\\"vcpus\\\": %i, \\\"memory\\\": %li, \\\"command\\\": [\\\"sh\\\",\\\"-c\\\",\\\"%s\\\"], \\\"environment\\\":[{\\\"name\\\":\\\"AWS_ACCESS_KEY_ID\\\",\\\"value\\\":\\\"%s\\\"},{\\\"name\\\":\\\"AWS_SECRET_ACCESS_KEY\\\",\\\"value\\\":\\\"%s\\\"},{\\\"name\\\":\\\"REGION\\\",\\\"value\\\":\\\"%s\\\"}] }", img,cpus,mem,fmt_cmd,amazon_ids.aws_access_key_id,amazon_ids.aws_secret_access_key,amazon_ids.aws_region); + char* properties_string = string_format("{ \\\"image\\\": \\\"%s\\\", \\\"vcpus\\\": %i, \\\"memory\\\": %li, \\\"privileged\\\":true ,\\\"command\\\": [\\\"sh\\\",\\\"-c\\\",\\\"%s\\\"], \\\"environment\\\":[{\\\"name\\\":\\\"AWS_ACCESS_KEY_ID\\\",\\\"value\\\":\\\"%s\\\"},{\\\"name\\\":\\\"AWS_SECRET_ACCESS_KEY\\\",\\\"value\\\":\\\"%s\\\"},{\\\"name\\\":\\\"REGION\\\",\\\"value\\\":\\\"%s\\\"}] }", img,cpus,mem,fmt_cmd,amazon_ids.aws_access_key_id,amazon_ids.aws_secret_access_key,amazon_ids.aws_region); char* jaid = aws_submit_job(job_name,properties_string); @@ -478,6 +504,11 @@ debug(D_BATCH,"copying over the data to info_out"); memcpy(info_out, info, sizeof(struct batch_job_info)); free(info); + + char* jobdef = aws_job_def(jaid); + del_job_def(jobdef); + free(jobdef); + return id; } }else if(done == DESCRIBE_AWS_JOB_FAILED || done == DESCRIBE_AWS_JOB_NON_EXIST){ @@ -495,6 +526,11 @@ info->exit_code= exc == 0 ? -1 : exc; memcpy(info_out, info, sizeof(*info)); free(info); + + char* jobdef = aws_job_def(jaid); + del_job_def(jobdef); + free(jobdef); + return id; } }else{ diff -Nru cctools-7.0.22/batch_job/src/batch_job_amazon.c cctools-7.1.2/batch_job/src/batch_job_amazon.c --- cctools-7.0.22/batch_job/src/batch_job_amazon.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/batch_job/src/batch_job_amazon.c 2020-05-05 15:31:15.000000000 +0000 @@ -17,6 +17,8 @@ #include "jx_eval.h" #include "jx_export.h" #include "semaphore.h" +#include "list.h" +#include "timestamp.h" #include #include @@ -27,6 +29,7 @@ struct batch_job_info info; struct aws_config *aws_config; char *instance_id; + char *instance_type; }; struct aws_instance_type { @@ -42,6 +45,19 @@ const char *keypair_name; }; + +struct aws_instance { + const char *instance_id; + const char *instance_type; + time_t last_occupied_time; +}; + +/* +local list of instances keep track of idle instances for future re-use +*/ + +struct list *instance_list = NULL; + static struct aws_config * aws_config_load( const char *filename ) { struct jx * j = jx_parse_nvpair_file(filename); @@ -92,7 +108,7 @@ for(i=aws_instance_table;i->name;i++) { if(cores<=i->cores && memory<=i->memory) { - debug(D_BATCH,"job requiring CORES=%d MEMORY=%d matches instance type %s",cores,memory,i->name); + debug(D_BATCH,"job requiring CORES=%d MEMORY=%d matches instance type %s\n",cores,memory,i->name); return i->name; } } @@ -100,6 +116,124 @@ } /* +Lookup aws_instance_type given instance type name. +On failure, return zero. +*/ + +static struct aws_instance_type * aws_instance_lookup(const char *instance_type) +{ + struct aws_instance_type *i; + for(i=aws_instance_table;i->name;i++) { + if(strcmp(instance_type, i->name) == 0) { + return i; + } + } + debug(D_BATCH,"instance type %s not found in instance type table\n", instance_type); + return 0; +} + +/* +Compare if instance of type 1 does fit in instance of type 2. +On fitting (cores and memory of type 1 instance <= type 2) +return 1, otherwise return 0 +*/ + +static int instance_type_less_or_equal(struct aws_instance *instance, const char *type_2){ + if(strcmp(instance->instance_type,type_2) == 0){ + return 1; + } else { + struct aws_instance_type *instance_1 = aws_instance_lookup(instance->instance_type); + struct aws_instance_type *instance_2 = aws_instance_lookup(type_2); + if (!instance_1 || !instance_2) { + return 0; + } + if (instance_1->cores<=instance_2->cores && instance_1->memory<=instance_2->memory){ + return 1; + } + } + return 0; +} + +static struct aws_instance * record_aws_instance(const char *instance_id, const char *instance_type){ + struct aws_instance *i = malloc(sizeof(*i)); + i->instance_id = instance_id; + i->instance_type = instance_type; + i->last_occupied_time = time(0); + return i; +} + +/* +Write instance_state, instance_id, and timestamp to the aws_config file. +*/ + +static int log_instance_state( const char* instance_id, const char* config_file, const char* instance_state ) { + FILE *fp; + fp = fopen(config_file, "a"); + fprintf(fp, "%s %s %" PRIu64 "\n", instance_state, instance_id, timestamp_get()); + fclose(fp); + return 1; +} + +/* +Push an idle instance to the end of the list +return 0 on error and 1 on success +*/ + +static int push_back_aws_instance(struct aws_instance* instance){ + + if (!instance_list) { + instance_list = list_create(); + } + list_push_tail(instance_list, instance); + debug(D_BATCH,"added idle instance %s to the list, current list count is %d\n", instance->instance_id, list_size(instance_list)); + return 1; +} + +/* +Remove aws_instance from local list and return its instance id +On failure, return zero. +*/ + +static const char * aws_instance_delete( struct aws_instance* i ) +{ + const char *instance_id = strdup(i->instance_id); + if (list_remove(instance_list, i)){ + free(i); + debug(D_BATCH,"delete idle instance %s from list, %d idle instances left \n", instance_id, list_size(instance_list)); + return instance_id; + } + else { + debug(D_BATCH,"failde to delete idle instance %s from list\n", instance_id); + return 0; + } +} + +/* +Erase an idle instance of the right size from the list, returing its instance_id +On failure, return zero. +*/ + +static const char * fetch_aws_instance(const char* instance_type){ + + if (!instance_list){ + debug(D_BATCH,"idle instance list has not been created\n"); + return 0; + } + debug(D_BATCH,"entering fetch_aws_instance, current list count is %d\n", list_size(instance_list)); + if (list_size(instance_list) == 0){ + debug(D_BATCH,"idle instance list empty\n"); + return 0; + } + struct aws_instance *i = list_find(instance_list, (list_op_t) instance_type_less_or_equal, instance_type); + if (!i){ + debug(D_BATCH,"could not find idle instance of type %s in the list\n", instance_type); + return 0; + } + const char *instance_id = aws_instance_delete(i); + return instance_id; +} + +/* Run an external command that produces json as output. Parse it and return the corresponding parsed JX object. */ @@ -180,19 +314,58 @@ Terminate an EC2 instance. If termination is successfully applied, return true, otherwise return false. */ -static int aws_terminate_instance( struct aws_config *c, const char *instance_id ) +static int aws_terminate_instance( struct batch_queue * q, struct aws_config *c, const char *instance_id ) { char *str = string_format("aws ec2 terminate-instances --instance-ids %s --output json",instance_id); struct jx *jresult = json_command(str); if(jresult) { jx_delete(jresult); printf("deleted virtual machine instance %s\n",instance_id); + + const char *config_file = batch_queue_get_option(q,"amazon-config"); + const char *instance_state = "TERMINATE"; + log_instance_state(instance_id, config_file, instance_state); return 1; } else { return 0; } } +static int aws_instance_expire( struct aws_instance *i, int *timediff ) +{ + if (difftime(i->last_occupied_time, time(0)) >= *timediff) { + return 1; + } else { + return 0; + } +} + +/* +Recursively delete expired idle instances based on difftime and timestamp +*/ + +static int terminate_expired_instances( struct batch_queue * q, struct aws_config *c, const int timediff ) +{ + const int *timediff_p; + timediff_p = &timediff; + if (!instance_list){ + debug(D_BATCH,"idle instance list has not been created\n"); + return 0; + } + debug(D_BATCH,"entering aws_terminate_aws_instance, current list count is %d\n", list_size(instance_list)); + if (list_size(instance_list) == 0){ + debug(D_BATCH,"idle instance list empty\n"); + return 0; + } + struct aws_instance *i = list_find(instance_list, (list_op_t) aws_instance_expire, timediff_p); + while (i != NULL){ + const char *instance_id = aws_instance_delete(i); + aws_terminate_instance(q, c, instance_id); + i = list_find(instance_list, (list_op_t) aws_instance_expire, timediff_p); + } + return 1; +} + /* Create an executable script with the necessary variables exported and the desired command. This avoids problems with passing commands @@ -509,22 +682,33 @@ const char *ami = jx_lookup_string(envlist,"AMAZON_AMI"); if(!ami) ami = aws_config->ami; - /* Create a new instance and return its unique ID. */ - char *instance_id = aws_create_instance(aws_config,instance_type,ami); + /* Before create a new instance, fetch to see if an idle instance exists */ + const char *instance_id = fetch_aws_instance(instance_type); if(!instance_id) { - debug(D_BATCH,"aws_create_instance failed"); - sleep(1); - return -1; + /* Create a new instance and return its unique ID. */ + printf("creating instance\n"); + instance_id = aws_create_instance(aws_config,instance_type,ami); + if(!instance_id) { + debug(D_BATCH,"aws_create_instance failed"); + sleep(1); + return -1; + } + const char *instance_state = "CREATE"; + log_instance_state(instance_id, config_file, instance_state); + } + else { + const char *instance_state = "REUSE"; + log_instance_state(instance_id, config_file, instance_state); } - debug(D_BATCH,"created instance %s",instance_id); /* Create a new object describing the job */ struct batch_job_amazon_info *info = malloc(sizeof(*info)); memset(info,0,sizeof(*info)); info->aws_config = aws_config; - info->instance_id = instance_id; + info->instance_id = strdup(instance_id); + info->instance_type = strdup(instance_type); info->info.submitted = time(0); info->info.started = time(0); @@ -589,10 +773,11 @@ int jobid = p->pid; free(p); - /* Now destroy the instance */ - - aws_terminate_instance(i->aws_config,i->instance_id); + /* Mark instance idle and push to list */ + push_back_aws_instance(record_aws_instance(i->instance_id, i->instance_type)); + /* Now destroy other instances from the list according to timestamps */ + terminate_expired_instances(q, i->aws_config, 30); /* And clean up the object. */ free(i); @@ -609,8 +794,8 @@ /* To kill an amazon job, we look up the details of the job, -kill the local ssh process forcibly, and then terminate -the Amazon instance. +kill the local ssh process forcibly, and then we save +the Amazon instance and delete other expired instances. */ static int batch_job_amazon_remove (struct batch_queue *q, batch_job_id_t jobid) @@ -625,7 +810,8 @@ kill(jobid,SIGKILL); - aws_terminate_instance(info->aws_config,info->instance_id); + push_back_aws_instance(record_aws_instance(info->instance_id, info->instance_type)); + terminate_expired_instances(q, info->aws_config, 30); debug(D_BATCH, "waiting for process %" PRIbjid, jobid); struct process_info *p = process_waitpid(jobid,0); diff -Nru cctools-7.0.22/batch_job/src/batch_job.c cctools-7.1.2/batch_job/src/batch_job.c --- cctools-7.0.22/batch_job/src/batch_job.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/batch_job/src/batch_job.c 2020-05-05 15:31:15.000000000 +0000 @@ -35,6 +35,9 @@ extern const struct batch_queue_module batch_queue_mesos; extern const struct batch_queue_module batch_queue_k8s; extern const struct batch_queue_module batch_queue_dryrun; +#ifdef CCTOOLS_WITH_MPI +extern const struct batch_queue_module batch_queue_mpi; +#endif static struct batch_queue_module batch_queue_unknown = { BATCH_QUEUE_TYPE_UNKNOWN, "unknown", @@ -46,7 +49,7 @@ {NULL, NULL, NULL, NULL, NULL, NULL, NULL}, }; -#define BATCH_JOB_SYSTEMS "local, wq, condor, sge, torque, mesos, k8s, moab, slurm, chirp, amazon, dryrun, lambda, amazon-batch" +#define BATCH_JOB_SYSTEMS "local, wq, condor, sge, torque, moab, mpi, slurm, chirp, amazon, amazon-batch, lambda, mesos, k8s, dryrun" const struct batch_queue_module * const batch_queue_modules[] = { &batch_queue_amazon, @@ -55,6 +58,9 @@ #ifdef CCTOOLS_WITH_CHIRP &batch_queue_chirp, #endif +#ifdef CCTOOLS_WITH_MPI + &batch_queue_mpi, +#endif &batch_queue_cluster, &batch_queue_condor, &batch_queue_local, diff -Nru cctools-7.0.22/batch_job/src/batch_job_condor.c cctools-7.1.2/batch_job/src/batch_job_condor.c --- cctools-7.0.22/batch_job/src/batch_job_condor.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/batch_job/src/batch_job_condor.c 2020-05-05 15:31:15.000000000 +0000 @@ -65,13 +65,11 @@ char *sep = ""; char *hostname; - buffer_printf(&b, "("); while((hostname = strsep(&blist, " "))) { buffer_printf(&b, "%s(machine != \"%s\")", sep, hostname); sep = " && "; } - buffer_printf(&b, ")"); char *result = xxstrdup(buffer_tostring(&b)); @@ -128,11 +126,11 @@ char *bexp = blacklisted_expression(q); if(c_req && bexp) { - fprintf(file, "requirements = %s && %s\n", c_req, bexp); + fprintf(file, "requirements = (%s) && (%s)\n", c_req, bexp); } else if(c_req) { - fprintf(file, "requirements = %s\n", c_req); + fprintf(file, "requirements = (%s)\n", c_req); } else if(bexp) { - fprintf(file, "requirements = %s\n", bexp); + fprintf(file, "requirements = (%s)\n", bexp); } if(bexp) @@ -176,8 +174,12 @@ fprintf(file, "request_disk = %" PRId64 "\n", disk); } - if(options) - fprintf(file, "%s\n", options); + if(options) { + char *opt_expanded = malloc(2 * strlen(options) + 1); + string_replace_backslash_codes(options, opt_expanded); + fprintf(file, "%s\n", opt_expanded); + free(opt_expanded); + } fprintf(file, "queue\n"); fclose(file); @@ -217,6 +219,18 @@ } } + time_t current; + struct tm tm; + + /* Obtain current year, in case HTCondor log lines do not provide a year. + Note that this fallback may give the incorrect year for jobs that run + when the year turns. However, we just need some value to give to a + mktime below, and the current year is preferable than some fixed value. + */ + time(¤t); + tm = *localtime(¤t); + int current_year = tm.tm_year + 1900; + while(1) { /* Note: clearerr is necessary to clear any cached end-of-file condition, @@ -230,14 +244,26 @@ while(fgets(line, sizeof(line), logfile)) { int type, proc, subproc; batch_job_id_t jobid; - time_t current; - struct tm tm; struct batch_job_info *info; int logcode, exitcode; - if(sscanf(line, "%d (%" SCNbjid ".%d.%d) %d/%d %d:%d:%d", &type, &jobid, &proc, &subproc, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min, &tm.tm_sec) == 9) { - tm.tm_year = 2008 - 1900; + /* + HTCondor job log lines come in one of two flavors: + + 005 (312.000.000) 2020-03-28 23:01:04 + or + + 005 (312.000.000) 03/28 23:01:02 + */ + tm.tm_year = current_year; + + if((sscanf(line, "%d (%" SCNbjid ".%d.%d) %d/%d %d:%d:%d", + &type, &jobid, &proc, &subproc, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min, &tm.tm_sec) == 9) || + (sscanf(line, "%d (%" SCNbjid ".%d.%d) %d-%d-%d %d:%d:%d", + &type, &jobid, &proc, &subproc, &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min, &tm.tm_sec) == 10)) { + + tm.tm_year = tm.tm_year - 1900; tm.tm_isdst = 0; current = mktime(&tm); diff -Nru cctools-7.0.22/batch_job/src/batch_job.h cctools-7.1.2/batch_job/src/batch_job.h --- cctools-7.0.22/batch_job/src/batch_job.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/batch_job/src/batch_job.h 2020-05-05 15:31:15.000000000 +0000 @@ -19,7 +19,7 @@ /** @file batch_job.h Batch job submission. This module implements batch job submission to multiple systems, -including Condor, SGE, Work Queue, Xgrid, and local Unix processes. +including local processes, HTCondor, Work Queue, SGE, PBS, Amazon EC2, and others. This simplifies the construction of parallel abstractions that need a simple form of parallel process execution. */ @@ -49,6 +49,7 @@ BATCH_QUEUE_TYPE_MESOS, /**< Batch jobs will be sent to Mesos. */ BATCH_QUEUE_TYPE_K8S, /**< Batch jobs will be sent to kubernetes. */ BATCH_QUEUE_TYPE_DRYRUN, /**< Batch jobs will not actually run. */ + BATCH_QUEUE_TYPE_MPI, BATCH_QUEUE_TYPE_UNKNOWN = -1 /**< An invalid batch queue type. */ } batch_queue_type_t; @@ -232,6 +233,9 @@ */ int batch_queue_port(struct batch_queue *q); -#endif +/* Hack: provide a backdoor to allow the MPI module to perform + some initial setup before the MPI batch queue is created. +*/ +void batch_job_mpi_setup( const char *debug_filename, int mpi_cores, int mpi_memory ); -/* vim: set noexpandtab tabstop=4: */ +#endif diff -Nru cctools-7.0.22/batch_job/src/batch_job_mpi.c cctools-7.1.2/batch_job/src/batch_job_mpi.c --- cctools-7.0.22/batch_job/src/batch_job_mpi.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/batch_job/src/batch_job_mpi.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,735 @@ +/* +Copyright (C) 2019- The University of Notre Dame +This software is distributed under the GNU General Public License. +See the file COPYING for details. +*/ + +#ifdef CCTOOLS_WITH_MPI + +#include "batch_job.h" +#include "batch_job_internal.h" +#include "debug.h" +#include "macros.h" +#include "stringtools.h" +#include "jx.h" +#include "jx_parse.h" +#include "jx_print.h" +#include "load_average.h" +#include "host_memory_info.h" +#include "itable.h" +#include "list.h" +#include "xxmalloc.h" + +#include +#include +#include +#include +#include +#include +#include + +#include + +struct mpi_worker { + char *name; + int rank; + int memory; + int cores; + int avail_memory; + int avail_cores; +}; + +struct mpi_job { + int cores; + int memory; + struct mpi_worker *worker; + char *cmd; + batch_job_id_t jobid; + struct jx *env; + char *infiles; + char *outfiles; + time_t submitted; +}; + +/* Array of workers and properties, indexed by MPI rank. */ + +static struct mpi_worker *workers = 0; +static int nworkers = 0; + +/* +Each job is entered into two data structures: +job_queue is an ordered queue of ready jobs waiting for a worker. +job_table is a table of all jobs in any state, indexed by jobid +*/ + +static struct list *job_queue = 0; +static struct itable *job_table = 0; + +/* Each job is assigned a unique jobid returned by batch_job_submit. */ + +static batch_job_id_t jobid = 1; + +/* Workers use an exponentially increasing sleep time from 1ms to 100ms. */ + +#define MIN_SLEEP_TIME 1000 +#define MAX_SLEEP_TIME 100000 + +/* Send a null-delimited C-string. */ + +static void mpi_send_string( int rank, const char *str ) +{ + MPI_Send(str, strlen(str), MPI_CHAR, rank, 0, MPI_COMM_WORLD); +} + +/* Receive a null-delimited C-string; result must be free()d when done. */ + +static char * mpi_recv_string( int rank ) +{ + int length=0; + MPI_Status status; + + MPI_Probe(rank,0,MPI_COMM_WORLD,&status); + MPI_Get_count(&status,MPI_CHAR,&length); + char *str = xxmalloc(length+1); + MPI_Recv(str, length, MPI_CHAR, rank, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); + str[length] = 0; + return str; +} + +/* Send a JX object by serializing it to a string and sending it. */ + +static void mpi_send_jx( int rank, struct jx *j ) +{ + char *str = jx_print_string(j); + mpi_send_string(rank,str); + free(str); +} + +/* +Receive a jx object by receiving a string and parsing it. +The result must be freed with jx_delete(). +*/ + +static struct jx * mpi_recv_jx( int rank ) +{ + char *str = mpi_recv_string(rank); + if(!str) fatal("failed to receive string from rank %d",rank); + struct jx * j = jx_parse_string(str); + if(!j) fatal("failed to parse string: %s",str); + free(str); + return j; +} + +/* +Scan the list of workers and find the first available worker +with sufficient cores and memory to fit the job. +*/ + +static struct mpi_worker * find_worker_for_job( struct mpi_job *job ) +{ + int i; + for(i=1;icores<=worker->avail_cores && job->memory<=worker->avail_memory) { + return worker; + } + } + + return 0; +} + +/* +Send a given job to a worker by describing it as a JX +object, and then note the committed resources at the worker. +*/ + +void send_job_to_worker( struct mpi_job *job, struct mpi_worker *worker ) +{ + debug(D_BATCH,"assigned job %lld (%d cores, %d memory) to worker %d",job->jobid,job->cores,job->memory,worker->rank); + + struct jx *j = jx_object(0); + jx_insert_string(j,"Action","Execute"); + jx_insert_string(j,"CMD",job->cmd); + jx_insert_integer(j,"JOBID",job->jobid); + if(job->env) jx_insert(j,jx_string("ENV"),job->env); + if(job->infiles) jx_insert_string(j,"INFILES",job->infiles); + if(job->outfiles) jx_insert_string(j,"OUTFILES",job->outfiles); + + mpi_send_jx(worker->rank,j); + + worker->avail_cores -= job->cores; + worker->avail_memory -= job->memory; + job->worker = worker; + + debug(D_BATCH,"worker %d now has %d cores %d memory available",worker->rank,worker->avail_cores,worker->avail_memory); +} + +/* +Receive a result message from the worker, and convert the JX +representation into a batch_job_info structure. Returns the +jobid of the completed job. +*/ + +static batch_job_id_t receive_result_from_worker( struct mpi_worker *worker, struct batch_job_info *info ) +{ + struct jx *j = mpi_recv_jx(worker->rank); + + batch_job_id_t jobid = jx_lookup_integer(j, "JOBID"); + + struct mpi_job *job = itable_lookup(job_table,jobid); + if(!job) { + /* This could happen if there is a race between Cancel and Complete. */ + debug(D_BATCH,"ignoring unexpected jobid %lld returned from worker %d",jobid,worker->rank); + return -1; + } + + memset(info,0,sizeof(*info)); + + info->submitted = job->submitted; + info->started = jx_lookup_integer(j,"START"); + info->finished = jx_lookup_integer(j,"END"); + + info->exited_normally = jx_lookup_integer(j,"NORMAL"); + if(info->exited_normally) { + info->exit_code = jx_lookup_integer(j, "STATUS"); + } else { + info->exit_signal = jx_lookup_integer(j, "SIGNAL"); + } + + jx_delete(j); + + worker->avail_cores += job->cores; + worker->avail_memory += job->memory; + + debug(D_BATCH,"worker %d now has %d cores %d memory available",worker->rank,worker->avail_cores,worker->avail_memory); + + return jobid; +} + +static struct mpi_job * mpi_job_create( const char *cmd, const char *extra_input_files, const char *extra_output_files, struct jx *envlist, const struct rmsummary *resources ) +{ + struct mpi_job *job = malloc(sizeof(*job)); + + job->cmd = xxstrdup(cmd); + job->cores = resources->cores; + job->memory = resources->memory; + job->env = jx_copy(envlist); + job->infiles = strdup(extra_input_files); + job->outfiles = strdup(extra_output_files); + job->jobid = jobid++; + job->submitted = time(0); + + /* + If resources are not set, assume at least one core, + so as to avoid overcommitting workers. + */ + + if(job->cores<=0) job->cores = 1; + if(job->memory<=0) job->memory = 0; + + + return job; +} + +static void mpi_job_delete( struct mpi_job *job ) +{ + if(!job) return; + + free(job->cmd); + jx_delete(job->env); + free(job->infiles); + free(job->outfiles); + free(job); +} + +/* +Submit an MPI job by converting it into a struct mpi_job +and adding it to the job_queue and job table. +Returns a generated jobid for the job. +*/ + +static batch_job_id_t batch_job_mpi_submit(struct batch_queue *q, const char *cmd, const char *extra_input_files, const char *extra_output_files, struct jx *envlist, const struct rmsummary *resources) +{ + struct mpi_job * job = mpi_job_create(cmd,extra_input_files,extra_output_files,envlist,resources); + + list_push_tail(job_queue,job); + itable_insert(job_table,job->jobid,job); + + return job->jobid; +} + +/* +Wait for a job to complete within the given stoptime. +First assigns jobs to workers, if possible, then wait +for a response message from a worker. Since we cannot +wait for an MPI message with a timeout, use an exponentially +increasing sleep time. +*/ + +static batch_job_id_t batch_job_mpi_wait(struct batch_queue *q, struct batch_job_info *info, time_t stoptime) +{ + struct mpi_job *job; + struct mpi_worker *worker; + + /* Assign as many jobs as possible to available workers */ + + list_first_item(job_queue); + while((job = list_next_item(job_queue))) { + worker = find_worker_for_job(job); + if(worker) { + list_remove(job_queue, job); + send_job_to_worker(job,worker); + } + } + + /* Check for incoming completions from workers. */ + + int sleep_time = MIN_SLEEP_TIME; + + while(1) { + MPI_Status mstatus; + int flag=0; + MPI_Iprobe(MPI_ANY_SOURCE, 0, MPI_COMM_WORLD, &flag, &mstatus); + if(flag) { + struct mpi_worker *worker = &workers[mstatus.MPI_SOURCE]; + jobid = receive_result_from_worker(worker,info); + if(jobid>0) { + debug(D_BATCH,"completed job %lld received from worker %d",jobid,worker->rank); + return jobid; + } + } + + /* Return if time has expired. */ + if(time(0)>stoptime) break; + + /* Otherwise sleep for a while */ + usleep(sleep_time); + sleep_time = MIN(sleep_time*2,MAX_SLEEP_TIME); + } + + return -1; +} + +/* +Remove a running job by taking it out of the job_table and job_queue, +and if necessary, send a remove message to the corresponding worker. +*/ + +static int batch_job_mpi_remove( struct batch_queue *q, batch_job_id_t jobid ) +{ + struct mpi_job *job = itable_remove(job_table,jobid); + if(job) { + debug(D_BATCH,"removing job %lld",jobid); + list_remove(job_queue,job); + + if(job->worker) { + debug(D_BATCH,"cancelling job %lld on worker %d",jobid,job->worker->rank); + char *cmd = string_format("{\"Action\":\"Remove\", \"JOBID\":\"%lld\"}", jobid); + mpi_send_string(job->worker->rank,cmd); + free(cmd); + } + + mpi_job_delete(job); + } + + return 0; +} + +static int batch_queue_mpi_create(struct batch_queue *q) +{ + job_queue = list_create(); + job_table = itable_create(0); + return 0; +} + +/* +Send a message to all workers telling them to exit. +XXX This would be better implemented as a broadcast. +*/ + +static void batch_job_mpi_kill_workers() +{ + int i; + debug(D_BATCH,"killing all mpi workers"); + for(i=1;i 0) { + debug(D_BATCH,"created jobid %lld pid %d: %s",jobid,pid,cmd); + itable_insert(job_table,pid,jx_copy(job)); + jx_insert_integer(job,"START",time(0)); + } else if(pid < 0) { + debug(D_BATCH,"error forking: %s\n",strerror(errno)); + MPI_Finalize(); + exit(1); + } else { + struct jx *env = jx_lookup(job,"ENV"); + if(env) { + jx_export(env); + } + + const char *cmd = jx_lookup_string(job,"CMD"); + + execlp("/bin/sh", "sh", "-c", cmd, (char *) 0); + debug(D_BATCH,"failed to execute: %s",strerror(errno)); + _exit(127); + } +} + +/* +Handle the completion of a given pid by looking up +the corresponding job in the job_table, and if found, +send back a completion message to the master. +*/ + +void mpi_worker_handle_complete( pid_t pid, int status ) +{ + struct jx *job = itable_lookup(job_table,pid); + if(!job) { + debug(D_BATCH,"No job with pid %d found!",pid); + return; + } + + debug(D_BATCH,"jobid %lld pid %d has exited",jx_lookup_integer(job,"JOBID"),pid); + + jx_insert_integer(job,"END",time(0)); + + if(WIFEXITED(status)) { + jx_insert_integer(job,"NORMAL",1); + jx_insert_integer(job,"STATUS",WEXITSTATUS(status)); + } else { + jx_insert_integer(job,"NORMAL",0); + jx_insert_integer(job,"SIGNAL",WTERMSIG(status)); + } + + mpi_send_jx(0,job); +} + +/* +Main loop for dedicated worker communicating with master. +Note that there is no clear way to simultaneously wait for +an MPI message and also wait for a child process to exit. +When necessary, we alternate between a non-blocking MPI_Probe +and a non-blocking waitpid(), with an exponentially increasing +sleep in between. +*/ + +static int mpi_worker_main_loop(int worldsize, int rank, const char *procname ) +{ + int sleep_time = MIN_SLEEP_TIME; + + /* set up signal handlers to ignore signals */ + signal(SIGINT, mpi_worker_handle_signal); + signal(SIGTERM, mpi_worker_handle_signal); + signal(SIGQUIT, mpi_worker_handle_signal); + + /* send the initial resource information. */ + mpi_worker_send_config_message(rank,procname); + + /* job table contains the jx for each job, indexed by the running pid */ + job_table = itable_create(0); + + while(1) { + MPI_Status mstatus; + int flag=0; + int action_count=0; + + /* + If jobs are running, do a non-blocking check for messages. + Otherwise, go right to a blocking message receive. + */ + + int jobs_running = itable_size(job_table); + if(jobs_running>0) { + MPI_Iprobe(0, 0, MPI_COMM_WORLD, &flag, &mstatus); + } + + if(flag || jobs_running==0) { + struct jx *msg = mpi_recv_jx(0); + const char *action = jx_lookup_string(msg,"Action"); + + debug(D_BATCH,"got message with action %s",action); + + if(!strcmp(action,"Terminate")) { + mpi_worker_handle_terminate(); + } else if(!strcmp(action,"Remove")) { + mpi_worker_handle_remove(msg); + } else if(!strcmp(action,"Execute")) { + mpi_worker_handle_execute(msg); + } else { + debug(D_BATCH,"unexpected action: %s",action); + } + jx_delete(msg); + action_count++; + } + + /* Check for any finished jobs and deal with them. */ + + int status; + pid_t pid = waitpid(0, &status, WNOHANG); + if(pid>0) { + mpi_worker_handle_complete(pid,status); + action_count++; + } + + /* If some jobs are running and nothing happened, then sleep. */ + + jobs_running = itable_size(job_table); + if(action_count==0 && jobs_running) { + usleep(sleep_time); + sleep_time = MIN(sleep_time*2,MAX_SLEEP_TIME); + } else { + sleep_time = MIN_SLEEP_TIME; + } + } + + MPI_Finalize(); + + return 0; +} + +/* +Perform the setup unique to the master process, +by setting up the table of workers and receiving +basic resource configuration. + +Note that the goal here is to get one active worker +per machine that supervises all of the memory and cores +on that node. Most MPI implementations will give us +one MPI rank per core on machine, which is not what +we want. + +To work around this, we note each duplicate rank on +a system, note it has having no cores and memory, +and send it a terminate message, leaving one active +worker per machine. +*/ + +static void batch_job_mpi_master_setup(int mpi_world_size, int manual_cores, int manual_memory ) +{ + int i; + + workers = calloc(mpi_world_size,sizeof(*workers)); + nworkers = mpi_world_size; + + const char *prev_name = 0; + + debug(D_BATCH,"rank 0 (master)"); + + for(i = 1; i < mpi_world_size; i++) { + struct mpi_worker *w = &workers[i]; + struct jx *j = mpi_recv_jx(i); + w->name = strdup(jx_lookup_string(j,"name")); + w->rank = i; + w->memory = manual_memory ? manual_memory : jx_lookup_integer(j,"memory"); + w->cores = manual_cores ? manual_cores : jx_lookup_integer(j,"cores"); + w->avail_memory = w->memory; + w->avail_cores = w->cores; + jx_delete(j); + + if(prev_name && !strcmp(w->name,prev_name)) { + debug(D_BATCH,"rank %d [merged with %s]",w->rank,w->name); + w->avail_memory = 0; + w->avail_cores = 0; + mpi_send_string(w->rank,"{\"Action\":\"Terminate\"}"); + } else { + debug(D_BATCH,"rank %d (%s) %d cores %d MB memory",w->rank,w->name,w->cores,w->memory); + prev_name = w->name; + } + } +} + +/* +Common initialization for both master and workers. +Determine the rank and then (if master) initalize and return, +or (if worker) continue on to the worker code. +*/ + +void batch_job_mpi_setup( const char *debug_filename, int manual_cores, int manual_memory ) +{ + int mpi_world_size; + int mpi_rank; + char procname[MPI_MAX_PROCESSOR_NAME]; + int procnamelen; + + MPI_Comm_size(MPI_COMM_WORLD, &mpi_world_size); + MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); + MPI_Get_processor_name(procname, &procnamelen); + + if(mpi_rank == 0) { + printf("MPI master process ready.\n"); + batch_job_mpi_master_setup(mpi_world_size, manual_cores, manual_memory ); + } else { + printf("MPI worker process ready.\n"); + procname[procnamelen] = 0; + debug_config(string_format("%d:%s",mpi_rank,procname)); + debug_config_file(string_format("%s.rank.%d",debug_filename,mpi_rank)); + debug_reopen(); + int r = mpi_worker_main_loop(mpi_world_size, mpi_rank, procname); + exit(r); + } +} + +batch_queue_stub_port(mpi); +batch_queue_stub_option_update(mpi); + +batch_fs_stub_chdir(mpi); +batch_fs_stub_getcwd(mpi); +batch_fs_stub_mkdir(mpi); +batch_fs_stub_putfile(mpi); +batch_fs_stub_rename(mpi); +batch_fs_stub_stat(mpi); +batch_fs_stub_unlink(mpi); + +const struct batch_queue_module batch_queue_mpi = { + BATCH_QUEUE_TYPE_MPI, + "mpi", + + batch_queue_mpi_create, + batch_queue_mpi_free, + batch_queue_mpi_port, + batch_queue_mpi_option_update, + + { + batch_job_mpi_submit, + batch_job_mpi_wait, + batch_job_mpi_remove,}, + + { + batch_fs_mpi_chdir, + batch_fs_mpi_getcwd, + batch_fs_mpi_mkdir, + batch_fs_mpi_putfile, + batch_fs_mpi_rename, + batch_fs_mpi_stat, + batch_fs_mpi_unlink, + }, +}; +#else + +#include "debug.h" + +void batch_job_mpi_setup( const char *debug_file_name, int manual_cores, int manual_memory) +{ + fatal("makeflow: mpi support is not enabled: please reconfigure using --with-mpicc-path"); +} + +#endif + +/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/batch_job/src/batch_task.c cctools-7.1.2/batch_job/src/batch_task.c --- cctools-7.0.22/batch_job/src/batch_task.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/batch_job/src/batch_task.c 2020-05-05 15:31:15.000000000 +0000 @@ -181,7 +181,14 @@ /* add checksum of the node's input files together */ struct list_cursor *cur = list_cursor_create(t->input_files); for(list_seek(cur, 0); list_get(cur, (void**)&f); list_next(cur)) { - char * file_id = batch_file_generate_id(f); + char * file_id; + if(path_is_dir(f->inner_name) == 1){ + f->hash = batch_file_generate_id_dir(f->outer_name); + file_id = xxstrdup(f->hash); + } + else{ + file_id = batch_file_generate_id(f); + } sha1_update(&context, "I", 1); sha1_update(&context, f->outer_name, strlen(f->outer_name)); sha1_update(&context, "C", 1); diff -Nru cctools-7.0.22/batch_job/src/Makefile cctools-7.1.2/batch_job/src/Makefile --- cctools-7.0.22/batch_job/src/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/batch_job/src/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -30,6 +30,7 @@ batch_job_work_queue.c \ batch_job_mesos.c \ batch_job_k8s.c \ + batch_job_mpi.c \ mesos_task.c PUBLIC_HEADERS = batch_job.h diff -Nru cctools-7.0.22/batch_job/src/work_queue_factory.c cctools-7.1.2/batch_job/src/work_queue_factory.c --- cctools-7.0.22/batch_job/src/work_queue_factory.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/batch_job/src/work_queue_factory.c 2020-05-05 15:31:15.000000000 +0000 @@ -9,6 +9,7 @@ #include "batch_job.h" #include "hash_table.h" #include "copy_stream.h" +#include "copy_tree.h" #include "debug.h" #include "domain_name_cache.h" #include "envtools.h" @@ -88,7 +89,7 @@ int using_catalog = 0; static char *extra_worker_args=0; -static const char *resource_args=0; +static char *resource_args=0; static int abort_flag = 0; static const char *scratch_dir = 0; static const char *password_file = 0; @@ -263,7 +264,7 @@ workers are actually connected. */ -static int count_workers_needed( struct list *masters_list, int only_waiting ) +static int count_workers_needed( struct list *masters_list, int only_not_running ) { int needed_workers=0; int masters=0; @@ -285,14 +286,13 @@ const int tl = jx_lookup_integer(j,"tasks_left"); int capacity = master_workers_capacity(j); - int tasks = tr+tw+tl; // first assume one task per worker int need; - if(only_waiting) { - need = tw; + if(only_not_running) { + need = tw + tl; } else { - need = tasks; + need = tw + tl + tr; } // enforce many tasks per worker @@ -308,7 +308,7 @@ need = MIN(need, capacity); } - debug(D_WQ,"%s %s:%d %s tasks: %d capacity: %d workers needed: %d tasks running: %d",project,host,port,owner,tasks,capacity,need,tr); + debug(D_WQ,"%s %s:%d %s tasks: %d capacity: %d workers needed: %d tasks running: %d",project,host,port,owner,tw+tl+tr,capacity,need,tr); needed_workers += need; masters++; } @@ -337,14 +337,22 @@ } } + free(resource_args); resource_args = xxstrdup(buffer_tostring(&b)); + buffer_free(&b); } static int submit_worker( struct batch_queue *queue ) { char *cmd; - const char *worker = runos_os ? "work_queue_worker" : "./work_queue_worker"; + char *worker; + + if(runos_os || k8s_worker_image) { + worker = xxstrdup("work_queue_worker"); + } else { + worker = string_format("./%s", worker_command); + } if(using_catalog) { cmd = string_format( @@ -359,9 +367,6 @@ ); } else { - if(k8s_worker_image) { - worker = "work_queue_worker"; - } cmd = string_format( "%s %s %d -t %d -C '%s' -d all -o worker.log %s %s %s", worker, @@ -382,8 +387,8 @@ free(cmd); cmd = newcmd; } - - char *files = NULL; + + char *files = NULL; if(!k8s_worker_image) { files = string_format("work_queue_worker"); } else { @@ -401,7 +406,7 @@ free(files); files = newfiles; } - + if(runos_os){ char* vc3_cmd = string_format("./vc3-builder --require cctools-statics -- %s",cmd); char* temp = string_format("python %s %s %s",CCTOOLS_RUNOS_PATH,runos_os,vc3_cmd); @@ -419,7 +424,14 @@ debug(D_WQ,"submitting worker: %s",cmd); - return batch_job_submit(queue,cmd,files,"output.log",batch_env,resources); + + int status = batch_job_submit(queue,cmd,files,"output.log",batch_env,resources); + + free(cmd); + free(files); + free(worker); + + return status; } static void update_blacklisted_workers( struct batch_queue *queue, struct list *masters_list ) { @@ -846,25 +858,32 @@ } debug(D_WQ,"evaluating master list..."); - int workers_needed = count_workers_needed(masters_list, 0); int workers_connected = count_workers_connected(masters_list); - - debug(D_WQ,"%d total workers needed across %d masters", - workers_needed, - masters_list ? list_size(masters_list) : 0); + int workers_needed = 0; if(foremen_regex) { + /* If there are foremen, we only look at tasks not running in the + * masters' list. The rest of the tasks will be counted as waiting + * or running on the foremen. */ + workers_needed = count_workers_needed(masters_list, /* do not count running tasks */ 1); debug(D_WQ,"evaluating foremen list..."); foremen_list = work_queue_catalog_query(catalog_host,-1,foremen_regex); /* add workers on foremen. Also, subtract foremen from workers * connected, as they were not deployed by the pool. */ - - workers_needed += count_workers_needed(foremen_list, 1); + workers_needed += count_workers_needed(foremen_list, 0); workers_connected += MAX(count_workers_connected(foremen_list) - list_size(foremen_list), 0); debug(D_WQ,"%d total workers needed across %d foremen",workers_needed,list_size(foremen_list)); + } else { + /* If there are no foremen, workers needed are computed directly + * from the tasks running, waiting, and left from the masters' + * list. */ + workers_needed = count_workers_needed(masters_list, 0); + debug(D_WQ,"%d total workers needed across %d masters", + workers_needed, + masters_list ? list_size(masters_list) : 0); } debug(D_WQ,"raw workers needed: %d", workers_needed); @@ -1003,6 +1022,7 @@ printf(" %-30s Specify the size of the debug file (must use with -o option).\n", "-O,--debug-file-size="); printf(" %-30s Specify the binary to use for the worker (relative or hard path). It should accept the same arguments as the default work_queue_worker.\n", "--worker-binary="); printf(" %-30s Will make a best attempt to ensure the worker will execute in the specified OS environment, regardless of the underlying OS.\n","--runos="); + printf(" %-30s Force factory to run itself as a work queue master.\n","--run-factory-as-master"); printf(" %-30s Show the version string.\n", "-v,--version"); printf(" %-30s Show this screen.\n", "-h,--help"); } @@ -1028,6 +1048,7 @@ LONG_OPT_K8S_WORKER_IMAGE, LONG_OPT_CATALOG, LONG_OPT_ENVIRONMENT_VARIABLE, + LONG_OPT_RUN_AS_MASTER, LONG_OPT_RUN_OS, }; @@ -1061,6 +1082,7 @@ {"mesos-preload", required_argument, 0, LONG_OPT_MESOS_PRELOAD}, {"min-workers", required_argument, 0, 'w'}, {"password", required_argument, 0, 'P'}, + {"run-factory-as-master", no_argument, 0, LONG_OPT_RUN_AS_MASTER}, {"runos", required_argument, 0, LONG_OPT_RUN_OS}, {"scratch-dir", required_argument, 0, 'S' }, {"tasks-per-worker", required_argument, 0, LONG_OPT_TASKS_PER_WORKER}, @@ -1080,6 +1102,10 @@ char *mesos_path = NULL; char *mesos_preload = NULL; char *k8s_image = NULL; + struct jx *wrapper_inputs = jx_array(NULL); + + // --run-factory-as-master and -Twq should be used together. + int run_as_master = 0; //Environment variable handling char *ev = NULL; @@ -1195,9 +1221,11 @@ } else { wrapper_input = string_format("%s,%s",wrapper_input,optarg); } + struct jx *file = jx_string(optarg); + jx_array_append(wrapper_inputs, file); break; case LONG_OPT_WORKER_BINARY: - worker_command = strdup(optarg); + worker_command = xxstrdup(optarg); break; case 'P': password_file = optarg; @@ -1242,6 +1270,9 @@ case LONG_OPT_CATALOG: catalog_host = xxstrdup(optarg); break; + case LONG_OPT_RUN_AS_MASTER: + run_as_master = 1; + break; case LONG_OPT_RUN_OS: runos_os = xxstrdup(optarg); break; @@ -1251,6 +1282,16 @@ } } + if(batch_queue_type == BATCH_QUEUE_TYPE_WORK_QUEUE && !run_as_master) { + fprintf(stderr, "work_queue_factory: batch system 'wq' specified, but you most likely want 'local'.\n"); + fprintf(stderr, "work_queue_factory: use --run-factory-as-master if you know what you are doing.\n"); + exit(EXIT_FAILURE); + } else if(batch_queue_type != BATCH_QUEUE_TYPE_WORK_QUEUE && run_as_master) { + fprintf(stderr, "work_queue_factory: --run-factory-as-master can only be used with -Twq.\n"); + fprintf(stderr, "work_queue_factory: you most likely want -Tlocal instead.\n"); + exit(EXIT_FAILURE); + } + if(config_file) { char abs_path_name[PATH_MAX]; @@ -1284,7 +1325,7 @@ show_help(argv[0]); exit(1); } - + cctools_version_debug(D_DEBUG, argv[0]); if(batch_queue_type == BATCH_QUEUE_TYPE_UNKNOWN) { @@ -1331,24 +1372,39 @@ return 1; } + if(wrapper_input) { + struct jx *item; + for(void *i = NULL; (item = jx_iterate_array(wrapper_inputs, &i));) { + const char *value = item->u.string_value; + const char *file_at_scratch_dir = string_format("%s/%s", scratch_dir, path_basename(value)); + int result = copy_direntry(value, file_at_scratch_dir); + if(result < 0) { + debug(D_NOTICE, "Cannot copy wrapper input file %s to factory scratch directory", value); + } + } + } + char* cmd; if(worker_command != NULL){ cmd = string_format("cp '%s' '%s'",worker_command,scratch_dir); if(system(cmd)){ - fprintf(stderr, "work_queue_factory: Could not Access specified worker_queue_worker binary.\n"); + fprintf(stderr, "work_queue_factory: Could not Access specified worker binary.\n"); exit(EXIT_FAILURE); } free(cmd); + char *tmp = xxstrdup(path_basename(worker_command)); + free(worker_command); + worker_command = tmp; }else{ - cmd = string_format("cp \"$(which work_queue_worker)\" '%s'",scratch_dir); + worker_command = xxstrdup("work_queue_worker"); + cmd = string_format("cp \"$(which %s)\" '%s'",worker_command,scratch_dir); if (system(cmd)) { fprintf(stderr, "work_queue_factory: please add work_queue_worker to your PATH.\n"); exit(EXIT_FAILURE); } free(cmd); } - - + if(runos_os) { cmd = string_format("cp '%s' '%s'", CCTOOLS_VC3_BUILDER_PATH, scratch_dir); int k = system(cmd); @@ -1414,6 +1470,7 @@ } + jx_delete(wrapper_inputs); batch_queue_delete(queue); return 0; diff -Nru cctools-7.0.22/chirp/src/bindings/perl/chirp.i cctools-7.1.2/chirp/src/bindings/perl/chirp.i --- cctools-7.0.22/chirp/src/bindings/perl/chirp.i 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/perl/chirp.i 2020-05-05 15:31:15.000000000 +0000 @@ -4,6 +4,9 @@ /* next is a perl keyword. rename it to next_entry */ %rename(next_entry) chirp_dirent::next; +/* type is a go keyword. rename it to type_io */ +%rename(type_io) chirp_bulkio::type; + /* silent const char leaking memory, as we do not leak memory */ %warnfilter(451) chirp_searchstream::current; diff -Nru cctools-7.0.22/chirp/src/bindings/python/chirp.binding.py cctools-7.1.2/chirp/src/bindings/python/chirp.binding.py --- cctools-7.0.22/chirp/src/bindings/python/chirp.binding.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python/chirp.binding.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,653 +0,0 @@ -## @package ChirpPython -# -# Python Chirp bindings. -# -# The objects and methods provided by this package correspond to the native -# C API in @ref chirp_reli.h and chirp_swig_wrap.h -# -# The SWIG-based Python bindings provide a higher-level interface that -# revolves around: -# -# - @ref Chirp.Client -# - @ref Chirp.Stat - -import os -import time -import json -import binascii - - -## -# Python Client object -# -# This class is used to create a chirp client -class Client(object): - - ## - # Create a new chirp client - # - # @param self Reference to the current task object. - # @param hostport The host:port of the server. - # @param timeout The time to wait for a server response on every request. - # @param authentication A list of prefered authentications. E.g., ['tickets', 'unix'] - # @param debug Generate client debug output. - def __init__(self, hostport, timeout=60, authentication=None, tickets=None, debug=False): - self.hostport = hostport - self.timeout = timeout - - if debug: - cctools_debug_config('chirp_python_client') - cctools_debug_flags_set('chirp') - - - if tickets and (authentication is None): - authentication = ['ticket'] - - self.__set_tickets(tickets) - - if authentication is None: - auth_register_all() - else: - for auth in authentication: - auth_register_byname(auth) - - self.identity = self.whoami() - - if self.identity is '': - raise AuthenticationFailure(authentication) - - def __exit__(self): - chirp_reli_disconnect(self.hostport) - - def __del__(self): - chirp_reli_disconnect(self.hostport) - - def __stoptime(self, absolute_stop_time=None, timeout=None): - if timeout is None: - timeout = self.timeout - - if absolute_stop_time is None: - absolute_stop_time = time.time() + timeout - - return absolute_stop_time - - def __set_tickets(self, tickets): - tickets_str = None - if tickets is None: - try: - tickets_str = os.environ['CHIRP_CLIENT_TICKETS'] - except KeyError: - tickets_str = None - else: - tickets_str = ','.join(tickets) - - if tickets_str is not None: - auth_ticket_load(tickets_str) - - - ## - # Returns a string with identity of the client according to the server. - # - # @param self Reference to the current task object. - # @param absolute_stop_time If given, maximum number of seconds since - # epoch to wait for a server response. - # (Overrides any timeout.) - # @param timeout If given, maximum number of seconds to - # wait for a server response. - def whoami(self, absolute_stop_time=None, timeout=None): - return chirp_wrap_whoami(self.hostport, self.__stoptime(absolute_stop_time, timeout)) - - - ## - # Returns a string with the ACL of the given directory. - # Throws an IOError on error (no such directory). - # - # @param self Reference to the current task object. - # @param path Target directory. - # @param absolute_stop_time If given, maximum number of seconds since - # epoch to wait for a server response. - # (Overrides any timeout.) - # @param timeout If given, maximum number of seconds to - # wait for a server response. - def listacl(self, path='/', absolute_stop_time=None, timeout=None): - acls = chirp_wrap_listacl(self.hostport, path, self.__stoptime(absolute_stop_time, timeout)) - - if acls is None: - raise IOError(path) - - return acls.split('\n') - - ## - # Returns a string with the ACL of the given directory. - # Throws a GeneralError on error. - # - # @param self Reference to the current task object. - # @param path Target directory. - # @param subject Target subject. - # @param rights Permissions to be granted. - # @param absolute_stop_time If given, maximum number of seconds since - # epoch to wait for a server response. - # (Overrides any timeout.) - # @param timeout If given, maximum number of seconds to - # wait for a server response. - def setacl(self, path, subject, rights, absolute_stop_time=None, timeout=None): - result = chirp_reli_setacl(self.hostport, path, subject, rights, self.__stoptime(absolute_stop_time, timeout)) - - if result < 0: - raise GeneralFailure('setacl', result, [path, subject, rights]) - - return result - - ## - # Set the ACL for the given directory to be only for the rights to the calling user. - # Throws a GeneralError on error. - # - # @param self Reference to the current task object. - # @param path Target directory. - # @param rights Permissions to be granted. - # @param absolute_stop_time If given, maximum number of seconds since - # epoch to wait for a server response. - # (Overrides any timeout.) - # @param timeout If given, maximum number of seconds to - # wait for a server response. - def resetacl(self, path, rights, absolute_stop_time=None, timeout=None): - result = chirp_wrap_resetacl(self.hostport, path, rights, self.__stoptime(absolute_stop_time, timeout)) - - if result < 0: - raise GeneralFailure('resetacl', result, [path, subject, rights]) - - return result - - ## - # Returns a list with the names of the files in the path. - # Throws an IOError on error (no such directory). - # - # @param self Reference to the current task object. - # @param path Target file/directory. - # @param absolute_stop_time If given, maximum number of seconds since - # epoch to wait for a server response. - # (Overrides any timeout.) - # @param timeout If given, maximum number of seconds to - # wait for a server response. - def ls(self, path, absolute_stop_time=None, timeout=None): - dr = chirp_reli_opendir(self.hostport, path, self.__stoptime(absolute_stop_time, timeout)) - files = [] - - if dir is None: - raise IOError(path) - - while True: - d = chirp_reli_readdir(dr) - if d is None: break - files.append(Stat(d.name, d.info)) - - return files - - - ## - # Returns a Chirp.Stat object with information on path. - # Throws an IOError on error (e.g., no such path or insufficient permissions). - # - # @param self Reference to the current task object. - # @param path Target file/directory. - # @param absolute_stop_time If given, maximum number of seconds since - # epoch to wait for a server response. - # (Overrides any timeout.) - # @param timeout If given, maximum number of seconds to - # wait for a server response. - def stat(self, path, absolute_stop_time=None, timeout=None): - info = chirp_wrap_stat(self.hostport, path, self.__stoptime(absolute_stop_time, timeout)) - - if info is None: - raise IOError(path) - - return Stat(path, info) - - ## - # Changes permissions on path. - # Throws a GeneralFailure on error (e.g., no such path or insufficient permissions). - # - # @param self Reference to the current task object. - # @param path Target file/directory. - # @param mode Desired permissions (e.g., 0755) - # @param absolute_stop_time If given, maximum number of seconds since - # epoch to wait for a server response. - # (Overrides any timeout.) - # @param timeout If given, maximum number of seconds to - # wait for a server response. - def chmod(self, path, mode, absolute_stop_time=None, timeout=None): - result = chirp_reli_chmod(self.hostport, path, mode, self.__stoptime(absolute_stop_time, timeout)) - - if result < 0: - raise GeneralFailure('chmod', result) - - return result - - ## - # Copies local file/directory source to the chirp server as file/directory destination. - # If destination is not given, source name is used. - # Raises Chirp.TransferFailure on error. - # - # @param self Reference to the current task object. - # @param source A local file or directory. - # @param destination File or directory name to use in the server (defaults to source). - # @param absolute_stop_time If given, maximum number of seconds since - # epoch to wait for a server response. - # (Overrides any timeout.) - # @param timeout If given, maximum number of seconds to - # wait for a server response. - def put(self, source, destination=None, absolute_stop_time=None, timeout=None): - if destination is None: - destination = source - result = chirp_recursive_put(self.hostport, - source, destination, - self.__stoptime(absolute_stop_time, timeout)) - if(result > -1): - return result - - raise TransferFailure('put', result, source, destination) - - - ## - # Copies server file/directory source to the local file/directory destination. - # If destination is not given, source name is used. - # Raises Chirp.TransferFailure on error. - # - # @param self Reference to the current task object. - # @param source A server file or directory. - # @param destination File or directory name to be used locally (defaults to source). - # @param absolute_stop_time If given, maximum number of seconds since - # epoch to wait for a server response. - # (Overrides any timeout.) - # @param timeout If given, maximum number of seconds to - # wait for a server response. - def get(self, source, destination=None, absolute_stop_time=None, timeout=None): - if destination is None: - destination = source - result = chirp_recursive_get(self.hostport, - source, destination, - self.__stoptime(absolute_stop_time, timeout)) - - if(result > -1): - return result - - raise TransferFailure('get', result, source, destination) - - ## - # Removes the given file or directory from the server. - # Raises OSError on error. - # - # @param self Reference to the current task object. - # @param path Target file/directory. - # @param absolute_stop_time If given, maximum number of seconds since - # epoch to wait for a server response. - # (Overrides any timeout.) - # @param timeout If given, maximum number of seconds to - # wait for a server response. - def rm(self, path, absolute_stop_time=None, timeout=None): - - status = chirp_reli_rmall(self.hostport, path, self.__stoptime(absolute_stop_time, timeout)) - - if status < 0: - raise OSError - - ## - # Recursively create the directories in path. - # Raises OSError on error. - # - # @param self Reference to the current task object. - # @param path Target file/directory. - # @param mode Unix permissions for the created directory. - # @param absolute_stop_time If given, maximum number of seconds since - # epoch to wait for a server response. - # (Overrides any timeout.) - # @param timeout If given, maximum number of seconds to - # wait for a server response. - def mkdir(self, path, mode=493, absolute_stop_time=None, timeout=None): - result = chirp_reli_mkdir_recursive(self.hostport, path, mode, self.__stoptime(absolute_stop_time, timeout)) - - if result < 0: - raise OSError - - return result - - - ## - # Computes the checksum of path. - # Raises IOError on error. - # - # @param self Reference to the current task object. - # @param path Target file. - # @param algorithm One of 'md5' or 'sha1' (default). - # @param absolute_stop_time If given, maximum number of seconds since - # epoch to wait for a server response. - # (Overrides any timeout.) - # @param timeout If given, maximum number of seconds to - # wait for a server response. - def hash(self, path, algorithm='sha1', absolute_stop_time=None, timeout=None): - hash_hex = chirp_wrap_hash(self.hostport, path, algorithm, self.__stoptime(absolute_stop_time, timeout)) - - if hash_hex is None: - raise IOError - - return hash_hex - - ## - # Creates a chirp job. See http://ccl.cse.nd.edu/software/manuals/chirp.html for details. - # - # @param job_description A dictionary with a job chirp description. - # - # @code - # job_description = { - # 'executable': "/bin/tar", - # 'arguments': [ 'tar', '-cf', 'archive.tar', 'a', 'b' ], - # 'files': { 'task_path': 'a', - # 'serv_path': '/users/magrat/a.txt' - # 'type': 'INPUT' }, - # { 'task_path': 'b', - # 'serv_path': '/users/magrat/b.txt' - # 'type': 'INPUT' }, - # { 'task_path': 'archive.tar', - # 'serv_path': '/users/magrat/archive.tar' - # 'type': 'OUTPUT' } - # } - # job_id = client.job_create(job_description); - # @endcode - def job_create(self, job_description): - job_json = json.dumps(job_description) - job_id = chirp_wrap_job_create(self.hostport, job_json, self.__stoptime()) - - if job_id < 0: - raise ChirpJobError('create', job_id, job_json) - - return job_id; - - - ## - # Kills the jobs identified with the different job ids. - # - # @param job_ids Job ids of the chirp jobs to be killed. - # - def job_kill(self, *job_ids): - ids_str = json.dumps(job_ids) - result = chirp_wrap_job_kill(self.hostport, ids_str, self.__stoptime()) - - if result < 0: - raise ChirpJobError('kill', result, ids_str) - - return result; - - - - ## - # Commits (starts running) the jobs identified with the different job ids. - # - # @param job_ids Job ids of the chirp jobs to be committed. - # - def job_commit(self, *job_ids): - ids_str = json.dumps(job_ids) - result = chirp_wrap_job_commit(self.hostport, ids_str, self.__stoptime()) - - if result < 0: - raise ChirpJobError('commit', result, ids_str) - - return result; - - ## - # Reaps the jobs identified with the different job ids. - # - # @param job_ids Job ids of the chirp jobs to be reaped. - # - def job_reap(self, *job_ids): - ids_str = json.dumps(job_ids) - result = chirp_wrap_job_reap(self.hostport, ids_str, self.__stoptime()) - - if result < 0: - raise ChirpJobError('reap', result, ids_str) - - return result; - - ## - # Obtains the current status for each job id. The value returned is a - # list which contains a dictionary reference per job id. - # - # @param job_ids Job ids of the chirp jobs to be reaped. - # - def job_status(self, *job_ids): - ids_str = json.dumps(job_ids) - status = chirp_wrap_job_status(self.hostport, ids_str, self.__stoptime()) - - if status is None: - raise ChirpJobError('status', None, ids_str) - - return json.loads(status); - - ## - # Waits waiting_time seconds for the job_id to terminate. Return value is - # the same as job_status. If the call timesout, an empty string is - # returned. If job_id is missing, C<> waits for any of the user's job. - # - # @param waiting_time maximum number of seconds to wait for a job to finish. - # @param job_id id of the job to wait. - def job_wait(self, waiting_time, job_id = 0): - status = chirp_wrap_job_wait(self.hostport, job_id, waiting_time, self.__stoptime()) - - if status is None: - raise ChirpJobError('status', None, job_id) - - return json.loads(status); - - -## -# Python Stat object -# -# This class is used to record stat information for files/directories of a chirp server. -class Stat(object): - def __init__(self, path, cstat): - self._path = path - self._info = cstat - - ## - # Target path. - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.path - # @endcode - @property - def path(self): - return self._path - - ## - # ID of device containing file. - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.device - # @endcode - @property - def device(self): - return self._info.cst_dev - - ## - # inode number - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.inode - # @endcode - @property - def inode(self): - return self._info.cst_ino - - ## - # file mode permissions - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.mode - # @endcode - @property - def mode(self): - return self._info.cst_mode - - ## - # number of hard links - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.nlink - # @endcode - @property - def nlink(self): - return self._info.cst_nlink - - ## - # user ID of owner - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.uid - # @endcode - @property - def uid(self): - return self._info.cst_uid - - ## - # group ID of owner - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.gid - # @endcode - @property - def gid(self): - return self._info.cst_gid - - ## - # device ID if special file - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.rdev - # @endcode - @property - def rdev(self): - return self._info.cst_rdev - - ## - # total size, in bytes - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.size - # @endcode - @property - def size(self): - return self._info.cst_size - - ## - # block size for file system I/O - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.block_size - # @endcode - @property - def block_size(self): - return self._info.cst_blksize - - ## - # number of 512B blocks allocated - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.blocks - # @endcode - @property - def blocks(self): - return self._info.cst_blocks - - ## - # number of seconds since epoch since last access - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.atime - # @endcode - @property - def atime(self): - return self._info.cst_atime - - ## - # number of seconds since epoch since last modification - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.mtime - # @endcode - @property - def mtime(self): - return self._info.cst_mtime - - ## - # number of seconds since epoch since last status change - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print s.ctime - # @endcode - @property - def ctime(self): - return self._info.cst_ctime - - def __repr__(self): - return "%s uid:%d gid:%d size:%d" % (self.path, self.uid, self.gid, self.size) - -class AuthenticationFailure(Exception): - def __init__(self, value): - self.value = value - def __str__(self): - return repr(self.value) - -class GeneralFailure(Exception): - def __init__(self, action, status, value): - self.action = action - self.status = status - self.value = value - def __str__(self): - return "%s(%s) %s" % (self.action, self.status, self.value) - -class TransferFailure(Exception): - def __init__(self, action, status, source, dest): - self.action = action - self.status = status - self.source = source - self.dest = dest - def __str__(self): - return "Error with %s(%s) %s %s" % (self.action, self.status, self.source, self.dest) - -class ChirpJobError(Exception): - def __init__(self, action, status, value): - self.action = action - self.status = status - self.value = value - def __str__(self): - return "%s(%s) %s" % (self.action, self.status, self.value) - - -# @endcode diff -Nru cctools-7.0.22/chirp/src/bindings/python/chirp.i cctools-7.1.2/chirp/src/bindings/python/chirp.i --- cctools-7.0.22/chirp/src/bindings/python/chirp.i 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python/chirp.i 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ -/* chirp.i */ -%module CChirp - -/* next is a perl keyword. rename it to next_entry */ -%rename(next_entry) chirp_dirent::next; - -/* silent const char leaking memory, as we do not leak memory */ -%warnfilter(451) chirp_searchstream::current; - -%{ - #include - #include "debug.h" - #include "int_sizes.h" - #include "timestamp.h" - #include "auth_all.h" - #include "auth_ticket.h" - #include "chirp_recursive.h" - #include "chirp_reli.h" - #include "chirp_types.h" - #include "chirp_swig_wrap.h" -%} - -%typemap(in) off_t = int; - -%typemap(in) time_t -{ -#ifdef SWIGPYTHON - if (PyLong_Check($input)) - $1 = (time_t) PyLong_AsLong($input); - else if (PyInt_Check($input)) - $1 = (time_t) PyInt_AsLong($input); - else if (PyFloat_Check($input)) - $1 = (time_t) PyFloat_AsDouble($input); - else { - PyErr_SetString(PyExc_TypeError,"Expected a number"); - return NULL; - } -#endif -#ifdef SWIGPERL - $1 = (uint64_t) SvIV($input); -#endif -} - -/* vdebug() takes va_list as arg but SWIG can't wrap such functions. */ -%ignore vdebug; -%ignore debug; - -/* %ignore fname..; */ - -%include "stdint.i" -%include "debug.h" -%include "int_sizes.h" -%include "timestamp.h" -%include "auth_all.h" -%include "auth_ticket.h" -%include "chirp_reli.h" -%include "chirp_recursive.h" -%include "chirp_types.h" -%include "chirp_recursive.h" -%include "chirp_swig_wrap.h" - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/chirp/src/bindings/python/chirp_jobs_python_example.py cctools-7.1.2/chirp/src/bindings/python/chirp_jobs_python_example.py --- cctools-7.0.22/chirp/src/bindings/python/chirp_jobs_python_example.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python/chirp_jobs_python_example.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 2.5 2.4 3 - -import sys - -try: - import Chirp -except ImportError: - print 'Could not find Chirp module. Please set PYTHONPATH accordingly.' - sys.exit(1) - -def make_job(job_number): - job = { 'executable' : './my_script', - 'arguments' : ['my_script', str(job_number)], - 'files' : [ { 'task_path': 'my_script', - 'serv_path': '/my_script_org', - 'type': 'INPUT', - }, - { 'task_path': 'my.output', - 'serv_path': "/my." + str(job_number) + ".output", - 'type': 'OUTPUT' } ] } - return job - - -if __name__ == '__main__': - - if(len(sys.argv) != 3): - print "Usage: %s HOST:PORT executable" % sys.argv[0] - sys.exit(1) - - hostport = sys.argv[1] - executable = sys.argv[2] - - try: - client = Chirp.Client(hostport, - authentication = ['unix'], - timeout = 15, - debug = True) - except Chirp.AuthenticationFailure, e: - print "Could not authenticate using: %s" % ', '.join(e.value) - sys.exit(1) - - print 'Chirp server sees me, ' + client.identity - - jobs = [ make_job(x) for x in range(1,10) ] - - client.put(executable, '/my_script_org') - - jobs_running = 0 - for job in jobs: - job_id = client.job_create(job) - client.job_commit(job_id) - jobs_running += 1 - - while(jobs_running > 0): - job_states = client.job_wait(5) - - for state in job_states: - print 'job ' + str(state['id']) + ' is ' + state['status'] + "\n" - - try: - if state['status'] == 'FINISHED': - client.job_reap( state['id'] ) - elif state['status'] == 'ERRORED': - client.job_kill( state['id'] ) - except Chirp.ChirpJobError: - print 'error trying to clean job ' + str(state['id']) - - jobs_running -= 1 - - sys.exit(0) diff -Nru cctools-7.0.22/chirp/src/bindings/python/chirp_python_example.py cctools-7.1.2/chirp/src/bindings/python/chirp_python_example.py --- cctools-7.0.22/chirp/src/bindings/python/chirp_python_example.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python/chirp_python_example.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,90 +0,0 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 2.5 2.4 - -import sys -import os - -try: - import Chirp -except ImportError: - print 'Could not find Chirp module. Please set PYTHONPATH accordingly.' - sys.exit(1) - - -def write_some_file(filename='bar.txt'): - message = ''' - One makeflow to rule them all, One catalog to find them, - One workqueue to bring them all and in the darkness bind them - In the land of condor where the Shadows lie. - -''' - - try: - file = open(filename, 'w') - file.write(message) - file.close() - except IOError, e: - print "Could not open for writing: %s" % ', '.join(e.value) - sys.exit(1) - - -if __name__ == '__main__': - - if(len(sys.argv) != 3): - print "Usage: %s HOST:PORT TICKET" % sys.argv[0] - sys.exit(1) - - hostport = sys.argv[1] - ticket = sys.argv[2] - - write_some_file() - - try: - client = Chirp.Client(hostport, - authentication = ['ticket'], - tickets = [ticket], - timeout = 15, - debug = True) - except Chirp.AuthenticationFailure, e: - print "Could not authenticate using: %s" % ', '.join(e.value) - sys.exit(1) - - - try: - print 'Chirp server sees me, ' + client.identity - print client.listacl('/') - print client.ls('/') - except IOError, e: - print "Could access path: %s" % e - sys.exit(1) - - try: - client.put('bar.txt', '/bar.txt') - client.get('/bar.txt', 'foo.txt') - except Chirp.TransferFailure, e: - print "Could not transfer file: %s" % e - sys.exit(1) - - try: - print client.stat('/bar.txt') - except IOError, e: - print "Could access path at chirp server: %s" % e - sys.exit(1) - - - try: - print 'checksum of bar.txt is ' + client.hash('/bar.txt') - except IOError, e: - print "Could not compute hash of file: %s" % e - sys.exit(1) - - try: - client.rm('/bar.txt') - os.remove('bar.txt') - os.remove('foo.txt') - except IOError, e: - print "Could not remove path: %s" % e - sys.exit(1) - - sys.exit(0) - diff -Nru cctools-7.0.22/chirp/src/bindings/python/.gitignore cctools-7.1.2/chirp/src/bindings/python/.gitignore --- cctools-7.0.22/chirp/src/bindings/python/.gitignore 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -*.pyc -*.so -CChirp.py -Chirp.py -Python.framework -cctools.test.log -chirp_wrap.* diff -Nru cctools-7.0.22/chirp/src/bindings/python/Makefile cctools-7.1.2/chirp/src/bindings/python/Makefile --- cctools-7.0.22/chirp/src/bindings/python/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -include ../../../../config.mk -include $(CCTOOLS_HOME)/rules.mk - -# Python always uses 'so' for its modules (even on Darwin) -CCTOOLS_DYNAMIC_SUFFIX = so -# SWIG produces code that causes a lot of warnings, so use -w to turn those off. -LOCAL_CCFLAGS = -fPIC -w -DNDEBUG $(CCTOOLS_PYTHON_CCFLAGS) -LOCAL_LINKAGE = $(CCTOOLS_PYTHON_LDFLAGS) $(CCTOOLS_GLOBUS_LDFLAGS) $(CCTOOLS_EXTERNAL_LINKAGE) - -EXTERNAL_DEPENDENCIES = $(CCTOOLS_HOME)/chirp/src/libchirp.a $(CCTOOLS_HOME)/dttools/src/libdttools.a -CHIRPPYTHONSO = _CChirp.$(CCTOOLS_DYNAMIC_SUFFIX) -LIBRARIES = $(CHIRPPYTHONSO) -OBJECTS = chirp_wrap.o $(CCTOOLS_HOME)/chirp/src/chirp_swig_wrap.o -TARGETS = Chirp.py $(LIBRARIES) - -all: $(TARGETS) - -Chirp.py: chirp_wrap.c CChirp.py - -# The odd symlink in the following rule is necessary to overcome a problem -# in the framework search path emitted by the Python configuration on macOS. -chirp_wrap.c CChirp.py: chirp.i chirp.binding.py - @echo "SWIG chirp.i (python)" - @$(CCTOOLS_SWIG) -o chirp_wrap.c -python -I$(CCTOOLS_HOME)/dttools/src/ -I$(CCTOOLS_HOME)/chirp/src chirp.i - @cat CChirp.py > Chirp.py - @cat chirp.binding.py >> Chirp.py - ln -sf /System/Library/Frameworks/Python.framework . - -$(CHIRPPYTHONSO): $(OBJECTS) $(EXTERNAL_DEPENDENCIES) - -clean: - rm -f $(OBJECTS) $(TARGETS) Python.framework Chirp.py CChirp.py chirp_wrap.c *.pyc - -test: - -install: all - mkdir -p $(CCTOOLS_PYTHON_PATH) - cp Chirp.py $(CHIRPPYTHONSO) $(CCTOOLS_PYTHON_PATH)/ - mkdir -p $(CCTOOLS_INSTALL_DIR)/doc - cp chirp_python_example.py $(CCTOOLS_INSTALL_DIR)/doc/ diff -Nru cctools-7.0.22/chirp/src/bindings/python/my_script.sh cctools-7.1.2/chirp/src/bindings/python/my_script.sh --- cctools-7.0.22/chirp/src/bindings/python/my_script.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python/my_script.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -#! /bin/sh - -sleep 1 -echo Hello $1 > my.output diff -Nru cctools-7.0.22/chirp/src/bindings/python2/chirp.binding.py cctools-7.1.2/chirp/src/bindings/python2/chirp.binding.py --- cctools-7.0.22/chirp/src/bindings/python2/chirp.binding.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python2/chirp.binding.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,653 @@ +## @package ChirpPython +# +# Python Chirp bindings. +# +# The objects and methods provided by this package correspond to the native +# C API in @ref chirp_reli.h and chirp_swig_wrap.h +# +# The SWIG-based Python bindings provide a higher-level interface that +# revolves around: +# +# - @ref Chirp.Client +# - @ref Chirp.Stat + +import os +import time +import json +import binascii + + +## +# Python Client object +# +# This class is used to create a chirp client +class Client(object): + + ## + # Create a new chirp client + # + # @param self Reference to the current task object. + # @param hostport The host:port of the server. + # @param timeout The time to wait for a server response on every request. + # @param authentication A list of prefered authentications. E.g., ['tickets', 'unix'] + # @param debug Generate client debug output. + def __init__(self, hostport, timeout=60, authentication=None, tickets=None, debug=False): + self.hostport = hostport + self.timeout = timeout + + if debug: + cctools_debug_config('chirp_python_client') + cctools_debug_flags_set('chirp') + + + if tickets and (authentication is None): + authentication = ['ticket'] + + self.__set_tickets(tickets) + + if authentication is None: + auth_register_all() + else: + for auth in authentication: + auth_register_byname(auth) + + self.identity = self.whoami() + + if self.identity is '': + raise AuthenticationFailure(authentication) + + def __exit__(self): + chirp_reli_disconnect(self.hostport) + + def __del__(self): + chirp_reli_disconnect(self.hostport) + + def __stoptime(self, absolute_stop_time=None, timeout=None): + if timeout is None: + timeout = self.timeout + + if absolute_stop_time is None: + absolute_stop_time = time.time() + timeout + + return absolute_stop_time + + def __set_tickets(self, tickets): + tickets_str = None + if tickets is None: + try: + tickets_str = os.environ['CHIRP_CLIENT_TICKETS'] + except KeyError: + tickets_str = None + else: + tickets_str = ','.join(tickets) + + if tickets_str is not None: + auth_ticket_load(tickets_str) + + + ## + # Returns a string with identity of the client according to the server. + # + # @param self Reference to the current task object. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def whoami(self, absolute_stop_time=None, timeout=None): + return chirp_wrap_whoami(self.hostport, self.__stoptime(absolute_stop_time, timeout)) + + + ## + # Returns a string with the ACL of the given directory. + # Throws an IOError on error (no such directory). + # + # @param self Reference to the current task object. + # @param path Target directory. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def listacl(self, path='/', absolute_stop_time=None, timeout=None): + acls = chirp_wrap_listacl(self.hostport, path, self.__stoptime(absolute_stop_time, timeout)) + + if acls is None: + raise IOError(path) + + return acls.split('\n') + + ## + # Returns a string with the ACL of the given directory. + # Throws a GeneralError on error. + # + # @param self Reference to the current task object. + # @param path Target directory. + # @param subject Target subject. + # @param rights Permissions to be granted. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def setacl(self, path, subject, rights, absolute_stop_time=None, timeout=None): + result = chirp_reli_setacl(self.hostport, path, subject, rights, self.__stoptime(absolute_stop_time, timeout)) + + if result < 0: + raise GeneralFailure('setacl', result, [path, subject, rights]) + + return result + + ## + # Set the ACL for the given directory to be only for the rights to the calling user. + # Throws a GeneralError on error. + # + # @param self Reference to the current task object. + # @param path Target directory. + # @param rights Permissions to be granted. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def resetacl(self, path, rights, absolute_stop_time=None, timeout=None): + result = chirp_wrap_resetacl(self.hostport, path, rights, self.__stoptime(absolute_stop_time, timeout)) + + if result < 0: + raise GeneralFailure('resetacl', result, [path, subject, rights]) + + return result + + ## + # Returns a list with the names of the files in the path. + # Throws an IOError on error (no such directory). + # + # @param self Reference to the current task object. + # @param path Target file/directory. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def ls(self, path, absolute_stop_time=None, timeout=None): + dr = chirp_reli_opendir(self.hostport, path, self.__stoptime(absolute_stop_time, timeout)) + files = [] + + if dir is None: + raise IOError(path) + + while True: + d = chirp_reli_readdir(dr) + if d is None: break + files.append(Stat(d.name, d.info)) + + return files + + + ## + # Returns a Chirp.Stat object with information on path. + # Throws an IOError on error (e.g., no such path or insufficient permissions). + # + # @param self Reference to the current task object. + # @param path Target file/directory. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def stat(self, path, absolute_stop_time=None, timeout=None): + info = chirp_wrap_stat(self.hostport, path, self.__stoptime(absolute_stop_time, timeout)) + + if info is None: + raise IOError(path) + + return Stat(path, info) + + ## + # Changes permissions on path. + # Throws a GeneralFailure on error (e.g., no such path or insufficient permissions). + # + # @param self Reference to the current task object. + # @param path Target file/directory. + # @param mode Desired permissions (e.g., 0755) + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def chmod(self, path, mode, absolute_stop_time=None, timeout=None): + result = chirp_reli_chmod(self.hostport, path, mode, self.__stoptime(absolute_stop_time, timeout)) + + if result < 0: + raise GeneralFailure('chmod', result) + + return result + + ## + # Copies local file/directory source to the chirp server as file/directory destination. + # If destination is not given, source name is used. + # Raises Chirp.TransferFailure on error. + # + # @param self Reference to the current task object. + # @param source A local file or directory. + # @param destination File or directory name to use in the server (defaults to source). + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def put(self, source, destination=None, absolute_stop_time=None, timeout=None): + if destination is None: + destination = source + result = chirp_recursive_put(self.hostport, + source, destination, + self.__stoptime(absolute_stop_time, timeout)) + if(result > -1): + return result + + raise TransferFailure('put', result, source, destination) + + + ## + # Copies server file/directory source to the local file/directory destination. + # If destination is not given, source name is used. + # Raises Chirp.TransferFailure on error. + # + # @param self Reference to the current task object. + # @param source A server file or directory. + # @param destination File or directory name to be used locally (defaults to source). + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def get(self, source, destination=None, absolute_stop_time=None, timeout=None): + if destination is None: + destination = source + result = chirp_recursive_get(self.hostport, + source, destination, + self.__stoptime(absolute_stop_time, timeout)) + + if(result > -1): + return result + + raise TransferFailure('get', result, source, destination) + + ## + # Removes the given file or directory from the server. + # Raises OSError on error. + # + # @param self Reference to the current task object. + # @param path Target file/directory. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def rm(self, path, absolute_stop_time=None, timeout=None): + + status = chirp_reli_rmall(self.hostport, path, self.__stoptime(absolute_stop_time, timeout)) + + if status < 0: + raise OSError + + ## + # Recursively create the directories in path. + # Raises OSError on error. + # + # @param self Reference to the current task object. + # @param path Target file/directory. + # @param mode Unix permissions for the created directory. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def mkdir(self, path, mode=493, absolute_stop_time=None, timeout=None): + result = chirp_reli_mkdir_recursive(self.hostport, path, mode, self.__stoptime(absolute_stop_time, timeout)) + + if result < 0: + raise OSError + + return result + + + ## + # Computes the checksum of path. + # Raises IOError on error. + # + # @param self Reference to the current task object. + # @param path Target file. + # @param algorithm One of 'md5' or 'sha1' (default). + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def hash(self, path, algorithm='sha1', absolute_stop_time=None, timeout=None): + hash_hex = chirp_wrap_hash(self.hostport, path, algorithm, self.__stoptime(absolute_stop_time, timeout)) + + if hash_hex is None: + raise IOError + + return hash_hex + + ## + # Creates a chirp job. See http://ccl.cse.nd.edu/software/manuals/chirp.html for details. + # + # @param job_description A dictionary with a job chirp description. + # + # @code + # job_description = { + # 'executable': "/bin/tar", + # 'arguments': [ 'tar', '-cf', 'archive.tar', 'a', 'b' ], + # 'files': { 'task_path': 'a', + # 'serv_path': '/users/magrat/a.txt' + # 'type': 'INPUT' }, + # { 'task_path': 'b', + # 'serv_path': '/users/magrat/b.txt' + # 'type': 'INPUT' }, + # { 'task_path': 'archive.tar', + # 'serv_path': '/users/magrat/archive.tar' + # 'type': 'OUTPUT' } + # } + # job_id = client.job_create(job_description); + # @endcode + def job_create(self, job_description): + job_json = json.dumps(job_description) + job_id = chirp_wrap_job_create(self.hostport, job_json, self.__stoptime()) + + if job_id < 0: + raise ChirpJobError('create', job_id, job_json) + + return job_id; + + + ## + # Kills the jobs identified with the different job ids. + # + # @param job_ids Job ids of the chirp jobs to be killed. + # + def job_kill(self, *job_ids): + ids_str = json.dumps(job_ids) + result = chirp_wrap_job_kill(self.hostport, ids_str, self.__stoptime()) + + if result < 0: + raise ChirpJobError('kill', result, ids_str) + + return result; + + + + ## + # Commits (starts running) the jobs identified with the different job ids. + # + # @param job_ids Job ids of the chirp jobs to be committed. + # + def job_commit(self, *job_ids): + ids_str = json.dumps(job_ids) + result = chirp_wrap_job_commit(self.hostport, ids_str, self.__stoptime()) + + if result < 0: + raise ChirpJobError('commit', result, ids_str) + + return result; + + ## + # Reaps the jobs identified with the different job ids. + # + # @param job_ids Job ids of the chirp jobs to be reaped. + # + def job_reap(self, *job_ids): + ids_str = json.dumps(job_ids) + result = chirp_wrap_job_reap(self.hostport, ids_str, self.__stoptime()) + + if result < 0: + raise ChirpJobError('reap', result, ids_str) + + return result; + + ## + # Obtains the current status for each job id. The value returned is a + # list which contains a dictionary reference per job id. + # + # @param job_ids Job ids of the chirp jobs to be reaped. + # + def job_status(self, *job_ids): + ids_str = json.dumps(job_ids) + status = chirp_wrap_job_status(self.hostport, ids_str, self.__stoptime()) + + if status is None: + raise ChirpJobError('status', None, ids_str) + + return json.loads(status); + + ## + # Waits waiting_time seconds for the job_id to terminate. Return value is + # the same as job_status. If the call timesout, an empty string is + # returned. If job_id is missing, C<> waits for any of the user's job. + # + # @param waiting_time maximum number of seconds to wait for a job to finish. + # @param job_id id of the job to wait. + def job_wait(self, waiting_time, job_id = 0): + status = chirp_wrap_job_wait(self.hostport, job_id, waiting_time, self.__stoptime()) + + if status is None: + raise ChirpJobError('status', None, job_id) + + return json.loads(status); + + +## +# Python Stat object +# +# This class is used to record stat information for files/directories of a chirp server. +class Stat(object): + def __init__(self, path, cstat): + self._path = path + self._info = cstat + + ## + # Target path. + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.path + # @endcode + @property + def path(self): + return self._path + + ## + # ID of device containing file. + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.device + # @endcode + @property + def device(self): + return self._info.cst_dev + + ## + # inode number + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.inode + # @endcode + @property + def inode(self): + return self._info.cst_ino + + ## + # file mode permissions + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.mode + # @endcode + @property + def mode(self): + return self._info.cst_mode + + ## + # number of hard links + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.nlink + # @endcode + @property + def nlink(self): + return self._info.cst_nlink + + ## + # user ID of owner + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.uid + # @endcode + @property + def uid(self): + return self._info.cst_uid + + ## + # group ID of owner + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.gid + # @endcode + @property + def gid(self): + return self._info.cst_gid + + ## + # device ID if special file + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.rdev + # @endcode + @property + def rdev(self): + return self._info.cst_rdev + + ## + # total size, in bytes + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.size + # @endcode + @property + def size(self): + return self._info.cst_size + + ## + # block size for file system I/O + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.block_size + # @endcode + @property + def block_size(self): + return self._info.cst_blksize + + ## + # number of 512B blocks allocated + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.blocks + # @endcode + @property + def blocks(self): + return self._info.cst_blocks + + ## + # number of seconds since epoch since last access + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.atime + # @endcode + @property + def atime(self): + return self._info.cst_atime + + ## + # number of seconds since epoch since last modification + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.mtime + # @endcode + @property + def mtime(self): + return self._info.cst_mtime + + ## + # number of seconds since epoch since last status change + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.ctime + # @endcode + @property + def ctime(self): + return self._info.cst_ctime + + def __repr__(self): + return "%s uid:%d gid:%d size:%d" % (self.path, self.uid, self.gid, self.size) + +class AuthenticationFailure(Exception): + def __init__(self, value): + self.value = value + def __str__(self): + return repr(self.value) + +class GeneralFailure(Exception): + def __init__(self, action, status, value): + self.action = action + self.status = status + self.value = value + def __str__(self): + return "%s(%s) %s" % (self.action, self.status, self.value) + +class TransferFailure(Exception): + def __init__(self, action, status, source, dest): + self.action = action + self.status = status + self.source = source + self.dest = dest + def __str__(self): + return "Error with %s(%s) %s %s" % (self.action, self.status, self.source, self.dest) + +class ChirpJobError(Exception): + def __init__(self, action, status, value): + self.action = action + self.status = status + self.value = value + def __str__(self): + return "%s(%s) %s" % (self.action, self.status, self.value) + + +# @endcode diff -Nru cctools-7.0.22/chirp/src/bindings/python2/chirp.i cctools-7.1.2/chirp/src/bindings/python2/chirp.i --- cctools-7.0.22/chirp/src/bindings/python2/chirp.i 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python2/chirp.i 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,65 @@ +/* chirp.i */ +%module CChirp + +/* next is a perl keyword. rename it to next_entry */ +%rename(next_entry) chirp_dirent::next; + +/* type is a go keyword. rename it to type_io */ +%rename(type_io) chirp_bulkio::type; + +/* silent const char leaking memory, as we do not leak memory */ +%warnfilter(451) chirp_searchstream::current; + +%{ + #include + #include "debug.h" + #include "int_sizes.h" + #include "timestamp.h" + #include "auth_all.h" + #include "auth_ticket.h" + #include "chirp_recursive.h" + #include "chirp_reli.h" + #include "chirp_types.h" + #include "chirp_swig_wrap.h" +%} + +%typemap(in) off_t = int; + +%typemap(in) time_t +{ +#ifdef SWIGPYTHON + if (PyLong_Check($input)) + $1 = (time_t) PyLong_AsLong($input); + else if (PyInt_Check($input)) + $1 = (time_t) PyInt_AsLong($input); + else if (PyFloat_Check($input)) + $1 = (time_t) PyFloat_AsDouble($input); + else { + PyErr_SetString(PyExc_TypeError,"Expected a number"); + return NULL; + } +#endif +#ifdef SWIGPERL + $1 = (uint64_t) SvIV($input); +#endif +} + +/* vdebug() takes va_list as arg but SWIG can't wrap such functions. */ +%ignore vdebug; +%ignore debug; + +/* %ignore fname..; */ + +%include "stdint.i" +%include "debug.h" +%include "int_sizes.h" +%include "timestamp.h" +%include "auth_all.h" +%include "auth_ticket.h" +%include "chirp_reli.h" +%include "chirp_recursive.h" +%include "chirp_types.h" +%include "chirp_recursive.h" +%include "chirp_swig_wrap.h" + +/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/chirp/src/bindings/python2/chirp_jobs_python_example.py cctools-7.1.2/chirp/src/bindings/python2/chirp_jobs_python_example.py --- cctools-7.0.22/chirp/src/bindings/python2/chirp_jobs_python_example.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python2/chirp_jobs_python_example.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +import sys +import Chirp + +def make_job(job_number): + job = { 'executable' : './my_script', + 'arguments' : ['my_script', str(job_number)], + 'files' : [ { 'task_path': 'my_script', + 'serv_path': '/my_script_org', + 'type': 'INPUT', + }, + { 'task_path': 'my.output', + 'serv_path': "/my." + str(job_number) + ".output", + 'type': 'OUTPUT' } ] } + return job + + +if __name__ == '__main__': + + if(len(sys.argv) != 3): + print("Usage: %s HOST:PORT executable" % sys.argv[0]) + sys.exit(1) + + hostport = sys.argv[1] + executable = sys.argv[2] + + try: + client = Chirp.Client(hostport, + authentication = ['unix'], + timeout = 15, + debug = True) + except Chirp.AuthenticationFailure as e: + print("Could not authenticate using: %s" % ', '.join(e.value)) + sys.exit(1) + + print('Chirp server sees me, ' + client.identity) + + jobs = [ make_job(x) for x in range(1,10) ] + + client.put(executable, '/my_script_org') + + jobs_running = 0 + for job in jobs: + job_id = client.job_create(job) + client.job_commit(job_id) + jobs_running += 1 + + while(jobs_running > 0): + job_states = client.job_wait(5) + + for state in job_states: + print('job ' + str(state['id']) + ' is ' + state['status'] + "\n") + + try: + if state['status'] == 'FINISHED': + client.job_reap( state['id'] ) + elif state['status'] == 'ERRORED': + client.job_kill( state['id'] ) + except Chirp.ChirpJobError: + print('error trying to clean job ' + str(state['id'])) + + jobs_running -= 1 + + sys.exit(0) diff -Nru cctools-7.0.22/chirp/src/bindings/python2/chirp_python_example.py cctools-7.1.2/chirp/src/bindings/python2/chirp_python_example.py --- cctools-7.0.22/chirp/src/bindings/python2/chirp_python_example.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python2/chirp_python_example.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,84 @@ +#!/usr/bin/env python + +import sys +import os + +import Chirp + +def write_some_file(filename='bar.txt'): + message = ''' + One makeflow to rule them all, One catalog to find them, + One workqueue to bring them all and in the darkness bind them + In the land of condor where the Shadows lie. + +''' + + try: + file = open(filename, 'w') + file.write(message) + file.close() + except IOError as e: + print("Could not open for writing: %s" % ', '.join(e.value)) + sys.exit(1) + + +if __name__ == '__main__': + + if(len(sys.argv) != 3): + print("Usage: %s HOST:PORT TICKET" % sys.argv[0]) + sys.exit(1) + + hostport = sys.argv[1] + ticket = sys.argv[2] + + write_some_file() + + try: + client = Chirp.Client(hostport, + authentication = ['ticket'], + tickets = [ticket], + timeout = 15, + debug = True) + except Chirp.AuthenticationFailure as e: + print("Could not authenticate using: %s" % ', '.join(e.value)) + sys.exit(1) + + + try: + print('Chirp server sees me, ' + client.identity) + print(client.listacl('/')) + print(client.ls('/')) + except IOError as e: + print("Could access path: %s" % e) + sys.exit(1) + + try: + client.put('bar.txt', '/bar.txt') + client.get('/bar.txt', 'foo.txt') + except Chirp.TransferFailure as e: + print("Could not transfer file: %s" % e) + sys.exit(1) + + try: + print(client.stat('/bar.txt')) + except IOError as e: + print("Could access path at chirp server: %s" % e) + sys.exit(1) + + + try: + print('checksum of bar.txt is ' + client.hash('/bar.txt')) + except IOError as e: + print("Could not compute hash of file: %s" % e) + sys.exit(1) + + try: + client.rm('/bar.txt') + os.remove('bar.txt') + os.remove('foo.txt') + except IOError as e: + print("Could not remove path: %s" % e) + sys.exit(1) + + sys.exit(0) + diff -Nru cctools-7.0.22/chirp/src/bindings/python2/.gitignore cctools-7.1.2/chirp/src/bindings/python2/.gitignore --- cctools-7.0.22/chirp/src/bindings/python2/.gitignore 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python2/.gitignore 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,7 @@ +*.pyc +*.so +CChirp.py +Chirp.py +Python.framework +cctools.test.log +chirp_wrap.* diff -Nru cctools-7.0.22/chirp/src/bindings/python2/Makefile cctools-7.1.2/chirp/src/bindings/python2/Makefile --- cctools-7.0.22/chirp/src/bindings/python2/Makefile 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python2/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,40 @@ +include ../../../../config.mk +include $(CCTOOLS_HOME)/rules.mk + +# Python always uses 'so' for its modules (even on Darwin) +CCTOOLS_DYNAMIC_SUFFIX = so +# SWIG produces code that causes a lot of warnings, so use -w to turn those off. +LOCAL_CCFLAGS = -fPIC -w $(CCTOOLS_PYTHON2_CCFLAGS) +LOCAL_LINKAGE = $(CCTOOLS_PYTHON2_LDFLAGS) $(CCTOOLS_GLOBUS_LDFLAGS) $(CCTOOLS_EXTERNAL_LINKAGE) + +EXTERNAL_DEPENDENCIES = $(CCTOOLS_HOME)/chirp/src/libchirp.a $(CCTOOLS_HOME)/dttools/src/libdttools.a +CHIRPPYTHONSO = _CChirp.$(CCTOOLS_DYNAMIC_SUFFIX) +LIBRARIES = $(CHIRPPYTHONSO) +OBJECTS = chirp_wrap.o $(CCTOOLS_HOME)/chirp/src/chirp_swig_wrap.o +TARGETS = Chirp.py $(LIBRARIES) + +all: $(TARGETS) + +Chirp.py: chirp_wrap.c CChirp.py + +# The odd symlink in the following rule is necessary to overcome a problem +# in the framework search path emitted by the Python configuration on macOS. +chirp_wrap.c CChirp.py: chirp.i chirp.binding.py + @echo "SWIG chirp.i (python)" + @$(CCTOOLS_SWIG) -o chirp_wrap.c -python -I$(CCTOOLS_HOME)/dttools/src/ -I$(CCTOOLS_HOME)/chirp/src chirp.i + @cat CChirp.py > Chirp.py + @cat chirp.binding.py >> Chirp.py + ln -sf /System/Library/Frameworks/Python.framework . + +$(CHIRPPYTHONSO): $(OBJECTS) $(EXTERNAL_DEPENDENCIES) + +clean: + rm -f $(OBJECTS) $(TARGETS) Python.framework Chirp.py CChirp.py chirp_wrap.c *.pyc + +test: + +install: all + mkdir -p $(CCTOOLS_PYTHON2_PATH) + cp Chirp.py $(CHIRPPYTHONSO) $(CCTOOLS_PYTHON2_PATH)/ + mkdir -p $(CCTOOLS_INSTALL_DIR)/doc + cp chirp_python_example.py chirp_jobs_python_example.py $(CCTOOLS_INSTALL_DIR)/doc/ diff -Nru cctools-7.0.22/chirp/src/bindings/python2/my_script.sh cctools-7.1.2/chirp/src/bindings/python2/my_script.sh --- cctools-7.0.22/chirp/src/bindings/python2/my_script.sh 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python2/my_script.sh 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,4 @@ +#! /bin/sh + +sleep 1 +echo Hello $1 > my.output diff -Nru cctools-7.0.22/chirp/src/bindings/python3/chirp.binding.py cctools-7.1.2/chirp/src/bindings/python3/chirp.binding.py --- cctools-7.0.22/chirp/src/bindings/python3/chirp.binding.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python3/chirp.binding.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,653 @@ +## @package ChirpPython +# +# Python Chirp bindings. +# +# The objects and methods provided by this package correspond to the native +# C API in @ref chirp_reli.h and chirp_swig_wrap.h +# +# The SWIG-based Python bindings provide a higher-level interface that +# revolves around: +# +# - @ref Chirp.Client +# - @ref Chirp.Stat + +import os +import time +import json +import binascii + + +## +# Python Client object +# +# This class is used to create a chirp client +class Client(object): + + ## + # Create a new chirp client + # + # @param self Reference to the current task object. + # @param hostport The host:port of the server. + # @param timeout The time to wait for a server response on every request. + # @param authentication A list of prefered authentications. E.g., ['tickets', 'unix'] + # @param debug Generate client debug output. + def __init__(self, hostport, timeout=60, authentication=None, tickets=None, debug=False): + self.hostport = hostport + self.timeout = timeout + + if debug: + cctools_debug_config('chirp_python_client') + cctools_debug_flags_set('chirp') + + + if tickets and (authentication is None): + authentication = ['ticket'] + + self.__set_tickets(tickets) + + if authentication is None: + auth_register_all() + else: + for auth in authentication: + auth_register_byname(auth) + + self.identity = self.whoami() + + if self.identity is '': + raise AuthenticationFailure(authentication) + + def __exit__(self): + chirp_reli_disconnect(self.hostport) + + def __del__(self): + chirp_reli_disconnect(self.hostport) + + def __stoptime(self, absolute_stop_time=None, timeout=None): + if timeout is None: + timeout = self.timeout + + if absolute_stop_time is None: + absolute_stop_time = time.time() + timeout + + return absolute_stop_time + + def __set_tickets(self, tickets): + tickets_str = None + if tickets is None: + try: + tickets_str = os.environ['CHIRP_CLIENT_TICKETS'] + except KeyError: + tickets_str = None + else: + tickets_str = ','.join(tickets) + + if tickets_str is not None: + auth_ticket_load(tickets_str) + + + ## + # Returns a string with identity of the client according to the server. + # + # @param self Reference to the current task object. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def whoami(self, absolute_stop_time=None, timeout=None): + return chirp_wrap_whoami(self.hostport, self.__stoptime(absolute_stop_time, timeout)) + + + ## + # Returns a string with the ACL of the given directory. + # Throws an IOError on error (no such directory). + # + # @param self Reference to the current task object. + # @param path Target directory. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def listacl(self, path='/', absolute_stop_time=None, timeout=None): + acls = chirp_wrap_listacl(self.hostport, path, self.__stoptime(absolute_stop_time, timeout)) + + if acls is None: + raise IOError(path) + + return acls.split('\n') + + ## + # Returns a string with the ACL of the given directory. + # Throws a GeneralError on error. + # + # @param self Reference to the current task object. + # @param path Target directory. + # @param subject Target subject. + # @param rights Permissions to be granted. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def setacl(self, path, subject, rights, absolute_stop_time=None, timeout=None): + result = chirp_reli_setacl(self.hostport, path, subject, rights, self.__stoptime(absolute_stop_time, timeout)) + + if result < 0: + raise GeneralFailure('setacl', result, [path, subject, rights]) + + return result + + ## + # Set the ACL for the given directory to be only for the rights to the calling user. + # Throws a GeneralError on error. + # + # @param self Reference to the current task object. + # @param path Target directory. + # @param rights Permissions to be granted. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def resetacl(self, path, rights, absolute_stop_time=None, timeout=None): + result = chirp_wrap_resetacl(self.hostport, path, rights, self.__stoptime(absolute_stop_time, timeout)) + + if result < 0: + raise GeneralFailure('resetacl', result, [path, subject, rights]) + + return result + + ## + # Returns a list with the names of the files in the path. + # Throws an IOError on error (no such directory). + # + # @param self Reference to the current task object. + # @param path Target file/directory. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def ls(self, path, absolute_stop_time=None, timeout=None): + dr = chirp_reli_opendir(self.hostport, path, self.__stoptime(absolute_stop_time, timeout)) + files = [] + + if dir is None: + raise IOError(path) + + while True: + d = chirp_reli_readdir(dr) + if d is None: break + files.append(Stat(d.name, d.info)) + + return files + + + ## + # Returns a Chirp.Stat object with information on path. + # Throws an IOError on error (e.g., no such path or insufficient permissions). + # + # @param self Reference to the current task object. + # @param path Target file/directory. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def stat(self, path, absolute_stop_time=None, timeout=None): + info = chirp_wrap_stat(self.hostport, path, self.__stoptime(absolute_stop_time, timeout)) + + if info is None: + raise IOError(path) + + return Stat(path, info) + + ## + # Changes permissions on path. + # Throws a GeneralFailure on error (e.g., no such path or insufficient permissions). + # + # @param self Reference to the current task object. + # @param path Target file/directory. + # @param mode Desired permissions (e.g., 0755) + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def chmod(self, path, mode, absolute_stop_time=None, timeout=None): + result = chirp_reli_chmod(self.hostport, path, mode, self.__stoptime(absolute_stop_time, timeout)) + + if result < 0: + raise GeneralFailure('chmod', result) + + return result + + ## + # Copies local file/directory source to the chirp server as file/directory destination. + # If destination is not given, source name is used. + # Raises Chirp.TransferFailure on error. + # + # @param self Reference to the current task object. + # @param source A local file or directory. + # @param destination File or directory name to use in the server (defaults to source). + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def put(self, source, destination=None, absolute_stop_time=None, timeout=None): + if destination is None: + destination = source + result = chirp_recursive_put(self.hostport, + source, destination, + self.__stoptime(absolute_stop_time, timeout)) + if(result > -1): + return result + + raise TransferFailure('put', result, source, destination) + + + ## + # Copies server file/directory source to the local file/directory destination. + # If destination is not given, source name is used. + # Raises Chirp.TransferFailure on error. + # + # @param self Reference to the current task object. + # @param source A server file or directory. + # @param destination File or directory name to be used locally (defaults to source). + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def get(self, source, destination=None, absolute_stop_time=None, timeout=None): + if destination is None: + destination = source + result = chirp_recursive_get(self.hostport, + source, destination, + self.__stoptime(absolute_stop_time, timeout)) + + if(result > -1): + return result + + raise TransferFailure('get', result, source, destination) + + ## + # Removes the given file or directory from the server. + # Raises OSError on error. + # + # @param self Reference to the current task object. + # @param path Target file/directory. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def rm(self, path, absolute_stop_time=None, timeout=None): + + status = chirp_reli_rmall(self.hostport, path, self.__stoptime(absolute_stop_time, timeout)) + + if status < 0: + raise OSError + + ## + # Recursively create the directories in path. + # Raises OSError on error. + # + # @param self Reference to the current task object. + # @param path Target file/directory. + # @param mode Unix permissions for the created directory. + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def mkdir(self, path, mode=493, absolute_stop_time=None, timeout=None): + result = chirp_reli_mkdir_recursive(self.hostport, path, mode, self.__stoptime(absolute_stop_time, timeout)) + + if result < 0: + raise OSError + + return result + + + ## + # Computes the checksum of path. + # Raises IOError on error. + # + # @param self Reference to the current task object. + # @param path Target file. + # @param algorithm One of 'md5' or 'sha1' (default). + # @param absolute_stop_time If given, maximum number of seconds since + # epoch to wait for a server response. + # (Overrides any timeout.) + # @param timeout If given, maximum number of seconds to + # wait for a server response. + def hash(self, path, algorithm='sha1', absolute_stop_time=None, timeout=None): + hash_hex = chirp_wrap_hash(self.hostport, path, algorithm, self.__stoptime(absolute_stop_time, timeout)) + + if hash_hex is None: + raise IOError + + return hash_hex + + ## + # Creates a chirp job. See http://ccl.cse.nd.edu/software/manuals/chirp.html for details. + # + # @param job_description A dictionary with a job chirp description. + # + # @code + # job_description = { + # 'executable': "/bin/tar", + # 'arguments': [ 'tar', '-cf', 'archive.tar', 'a', 'b' ], + # 'files': { 'task_path': 'a', + # 'serv_path': '/users/magrat/a.txt' + # 'type': 'INPUT' }, + # { 'task_path': 'b', + # 'serv_path': '/users/magrat/b.txt' + # 'type': 'INPUT' }, + # { 'task_path': 'archive.tar', + # 'serv_path': '/users/magrat/archive.tar' + # 'type': 'OUTPUT' } + # } + # job_id = client.job_create(job_description); + # @endcode + def job_create(self, job_description): + job_json = json.dumps(job_description) + job_id = chirp_wrap_job_create(self.hostport, job_json, self.__stoptime()) + + if job_id < 0: + raise ChirpJobError('create', job_id, job_json) + + return job_id; + + + ## + # Kills the jobs identified with the different job ids. + # + # @param job_ids Job ids of the chirp jobs to be killed. + # + def job_kill(self, *job_ids): + ids_str = json.dumps(job_ids) + result = chirp_wrap_job_kill(self.hostport, ids_str, self.__stoptime()) + + if result < 0: + raise ChirpJobError('kill', result, ids_str) + + return result; + + + + ## + # Commits (starts running) the jobs identified with the different job ids. + # + # @param job_ids Job ids of the chirp jobs to be committed. + # + def job_commit(self, *job_ids): + ids_str = json.dumps(job_ids) + result = chirp_wrap_job_commit(self.hostport, ids_str, self.__stoptime()) + + if result < 0: + raise ChirpJobError('commit', result, ids_str) + + return result; + + ## + # Reaps the jobs identified with the different job ids. + # + # @param job_ids Job ids of the chirp jobs to be reaped. + # + def job_reap(self, *job_ids): + ids_str = json.dumps(job_ids) + result = chirp_wrap_job_reap(self.hostport, ids_str, self.__stoptime()) + + if result < 0: + raise ChirpJobError('reap', result, ids_str) + + return result; + + ## + # Obtains the current status for each job id. The value returned is a + # list which contains a dictionary reference per job id. + # + # @param job_ids Job ids of the chirp jobs to be reaped. + # + def job_status(self, *job_ids): + ids_str = json.dumps(job_ids) + status = chirp_wrap_job_status(self.hostport, ids_str, self.__stoptime()) + + if status is None: + raise ChirpJobError('status', None, ids_str) + + return json.loads(status); + + ## + # Waits waiting_time seconds for the job_id to terminate. Return value is + # the same as job_status. If the call timesout, an empty string is + # returned. If job_id is missing, C<> waits for any of the user's job. + # + # @param waiting_time maximum number of seconds to wait for a job to finish. + # @param job_id id of the job to wait. + def job_wait(self, waiting_time, job_id = 0): + status = chirp_wrap_job_wait(self.hostport, job_id, waiting_time, self.__stoptime()) + + if status is None: + raise ChirpJobError('status', None, job_id) + + return json.loads(status); + + +## +# Python Stat object +# +# This class is used to record stat information for files/directories of a chirp server. +class Stat(object): + def __init__(self, path, cstat): + self._path = path + self._info = cstat + + ## + # Target path. + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.path + # @endcode + @property + def path(self): + return self._path + + ## + # ID of device containing file. + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.device + # @endcode + @property + def device(self): + return self._info.cst_dev + + ## + # inode number + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.inode + # @endcode + @property + def inode(self): + return self._info.cst_ino + + ## + # file mode permissions + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.mode + # @endcode + @property + def mode(self): + return self._info.cst_mode + + ## + # number of hard links + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.nlink + # @endcode + @property + def nlink(self): + return self._info.cst_nlink + + ## + # user ID of owner + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.uid + # @endcode + @property + def uid(self): + return self._info.cst_uid + + ## + # group ID of owner + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.gid + # @endcode + @property + def gid(self): + return self._info.cst_gid + + ## + # device ID if special file + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.rdev + # @endcode + @property + def rdev(self): + return self._info.cst_rdev + + ## + # total size, in bytes + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.size + # @endcode + @property + def size(self): + return self._info.cst_size + + ## + # block size for file system I/O + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.block_size + # @endcode + @property + def block_size(self): + return self._info.cst_blksize + + ## + # number of 512B blocks allocated + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.blocks + # @endcode + @property + def blocks(self): + return self._info.cst_blocks + + ## + # number of seconds since epoch since last access + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.atime + # @endcode + @property + def atime(self): + return self._info.cst_atime + + ## + # number of seconds since epoch since last modification + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.mtime + # @endcode + @property + def mtime(self): + return self._info.cst_mtime + + ## + # number of seconds since epoch since last status change + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print s.ctime + # @endcode + @property + def ctime(self): + return self._info.cst_ctime + + def __repr__(self): + return "%s uid:%d gid:%d size:%d" % (self.path, self.uid, self.gid, self.size) + +class AuthenticationFailure(Exception): + def __init__(self, value): + self.value = value + def __str__(self): + return repr(self.value) + +class GeneralFailure(Exception): + def __init__(self, action, status, value): + self.action = action + self.status = status + self.value = value + def __str__(self): + return "%s(%s) %s" % (self.action, self.status, self.value) + +class TransferFailure(Exception): + def __init__(self, action, status, source, dest): + self.action = action + self.status = status + self.source = source + self.dest = dest + def __str__(self): + return "Error with %s(%s) %s %s" % (self.action, self.status, self.source, self.dest) + +class ChirpJobError(Exception): + def __init__(self, action, status, value): + self.action = action + self.status = status + self.value = value + def __str__(self): + return "%s(%s) %s" % (self.action, self.status, self.value) + + +# @endcode diff -Nru cctools-7.0.22/chirp/src/bindings/python3/chirp.i cctools-7.1.2/chirp/src/bindings/python3/chirp.i --- cctools-7.0.22/chirp/src/bindings/python3/chirp.i 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python3/chirp.i 2020-05-05 15:31:15.000000000 +0000 @@ -4,6 +4,9 @@ /* next is a perl keyword. rename it to next_entry */ %rename(next_entry) chirp_dirent::next; +/* type is a go keyword. rename it to type_io */ +%rename(type_io) chirp_bulkio::type; + /* silent const char leaking memory, as we do not leak memory */ %warnfilter(451) chirp_searchstream::current; diff -Nru cctools-7.0.22/chirp/src/bindings/python3/chirp_jobs_python_example.py cctools-7.1.2/chirp/src/bindings/python3/chirp_jobs_python_example.py --- cctools-7.0.22/chirp/src/bindings/python3/chirp_jobs_python_example.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python3/chirp_jobs_python_example.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +import sys +import Chirp + +def make_job(job_number): + job = { 'executable' : './my_script', + 'arguments' : ['my_script', str(job_number)], + 'files' : [ { 'task_path': 'my_script', + 'serv_path': '/my_script_org', + 'type': 'INPUT', + }, + { 'task_path': 'my.output', + 'serv_path': "/my." + str(job_number) + ".output", + 'type': 'OUTPUT' } ] } + return job + + +if __name__ == '__main__': + + if(len(sys.argv) != 3): + print("Usage: %s HOST:PORT executable" % sys.argv[0]) + sys.exit(1) + + hostport = sys.argv[1] + executable = sys.argv[2] + + try: + client = Chirp.Client(hostport, + authentication = ['unix'], + timeout = 15, + debug = True) + except Chirp.AuthenticationFailure as e: + print("Could not authenticate using: %s" % ', '.join(e.value)) + sys.exit(1) + + print('Chirp server sees me, ' + client.identity) + + jobs = [ make_job(x) for x in range(1,10) ] + + client.put(executable, '/my_script_org') + + jobs_running = 0 + for job in jobs: + job_id = client.job_create(job) + client.job_commit(job_id) + jobs_running += 1 + + while(jobs_running > 0): + job_states = client.job_wait(5) + + for state in job_states: + print('job ' + str(state['id']) + ' is ' + state['status'] + "\n") + + try: + if state['status'] == 'FINISHED': + client.job_reap( state['id'] ) + elif state['status'] == 'ERRORED': + client.job_kill( state['id'] ) + except Chirp.ChirpJobError: + print('error trying to clean job ' + str(state['id'])) + + jobs_running -= 1 + + sys.exit(0) diff -Nru cctools-7.0.22/chirp/src/bindings/python3/chirp_python_example.py cctools-7.1.2/chirp/src/bindings/python3/chirp_python_example.py --- cctools-7.0.22/chirp/src/bindings/python3/chirp_python_example.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python3/chirp_python_example.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,84 @@ +#!/usr/bin/env python + +import sys +import os + +import Chirp + +def write_some_file(filename='bar.txt'): + message = ''' + One makeflow to rule them all, One catalog to find them, + One workqueue to bring them all and in the darkness bind them + In the land of condor where the Shadows lie. + +''' + + try: + file = open(filename, 'w') + file.write(message) + file.close() + except IOError as e: + print("Could not open for writing: %s" % ', '.join(e.value)) + sys.exit(1) + + +if __name__ == '__main__': + + if(len(sys.argv) != 3): + print("Usage: %s HOST:PORT TICKET" % sys.argv[0]) + sys.exit(1) + + hostport = sys.argv[1] + ticket = sys.argv[2] + + write_some_file() + + try: + client = Chirp.Client(hostport, + authentication = ['ticket'], + tickets = [ticket], + timeout = 15, + debug = True) + except Chirp.AuthenticationFailure as e: + print("Could not authenticate using: %s" % ', '.join(e.value)) + sys.exit(1) + + + try: + print('Chirp server sees me, ' + client.identity) + print(client.listacl('/')) + print(client.ls('/')) + except IOError as e: + print("Could access path: %s" % e) + sys.exit(1) + + try: + client.put('bar.txt', '/bar.txt') + client.get('/bar.txt', 'foo.txt') + except Chirp.TransferFailure as e: + print("Could not transfer file: %s" % e) + sys.exit(1) + + try: + print(client.stat('/bar.txt')) + except IOError as e: + print("Could access path at chirp server: %s" % e) + sys.exit(1) + + + try: + print('checksum of bar.txt is ' + client.hash('/bar.txt')) + except IOError as e: + print("Could not compute hash of file: %s" % e) + sys.exit(1) + + try: + client.rm('/bar.txt') + os.remove('bar.txt') + os.remove('foo.txt') + except IOError as e: + print("Could not remove path: %s" % e) + sys.exit(1) + + sys.exit(0) + diff -Nru cctools-7.0.22/chirp/src/bindings/python3/Makefile cctools-7.1.2/chirp/src/bindings/python3/Makefile --- cctools-7.0.22/chirp/src/bindings/python3/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python3/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -11,34 +11,30 @@ CHIRPPYTHONSO = _CChirp.$(CCTOOLS_DYNAMIC_SUFFIX) LIBRARIES = $(CHIRPPYTHONSO) OBJECTS = chirp_wrap.o $(CCTOOLS_HOME)/chirp/src/chirp_swig_wrap.o -TARGETS = $(LIBRARIES) chirp.py +TARGETS = $(LIBRARIES) Chirp.py all: $(TARGETS) -chirp.py: chirp_wrap.c CChirp.py +Chirp.py: chirp_wrap.c CChirp.py # The odd symlink in the following rule is necessary to overcome a problem # in the framework search path emitted by the Python configuration on macOS. chirp_wrap.c CChirp.py: chirp.i chirp.binding.py @echo "SWIG chirp.i (python)" @$(CCTOOLS_SWIG) -o chirp_wrap.c -python -I$(CCTOOLS_HOME)/dttools/src/ -I$(CCTOOLS_HOME)/chirp/src chirp.i - @cat CChirp.py > chirp.py - @cat chirp.binding.py >> chirp.py + @cat CChirp.py > Chirp.py + @cat chirp.binding.py >> Chirp.py ln -sf /System/Library/Frameworks/Python.framework . $(CHIRPPYTHONSO): $(OBJECTS) $(EXTERNAL_DEPENDENCIES) -chirp.binding.py: %.py: ../python/%.py - cp $< $@ - $(CCTOOLS_PYTHON3_2TO3) --nobackups --no-diffs --write $@ - clean: - rm -f $(OBJECTS) $(TARGETS) Python.framework chirp.py chirp.binding.py CChirp.py chirp_wrap.c *.pyc + rm -f $(OBJECTS) $(TARGETS) Python.framework Chirp.py CChirp.py chirp_wrap.c *.pyc test: install: all - mkdir -p $(CCTOOLS_PYTHON_PATH) - cp chirp.py $(CHIRPPYTHONSO) $(CCTOOLS_PYTHON_PATH)/ + mkdir -p $(CCTOOLS_PYTHON3_PATH) + cp Chirp.py $(CHIRPPYTHONSO) $(CCTOOLS_PYTHON3_PATH)/ mkdir -p $(CCTOOLS_INSTALL_DIR)/doc - + cp chirp_python_example.py chirp_jobs_python_example.py $(CCTOOLS_INSTALL_DIR)/doc/ diff -Nru cctools-7.0.22/chirp/src/bindings/python3/my_script.sh cctools-7.1.2/chirp/src/bindings/python3/my_script.sh --- cctools-7.0.22/chirp/src/bindings/python3/my_script.sh 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/bindings/python3/my_script.sh 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,4 @@ +#! /bin/sh + +sleep 1 +echo Hello $1 > my.output diff -Nru cctools-7.0.22/chirp/src/chirp_alloc.c cctools-7.1.2/chirp/src/chirp_alloc.c --- cctools-7.0.22/chirp/src/chirp_alloc.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/chirp_alloc.c 2020-05-05 15:31:15.000000000 +0000 @@ -302,9 +302,6 @@ } else if (cfs->lockf(-1, F_TEST, 0) == -1 && errno == ENOSYS) { return -1; } -#ifdef CCTOOLS_OPSYS_CYGWIN - fatal("sorry, CYGWIN cannot employ space allocation because it does not support file locking."); -#endif alloc_enabled = 1; recovery_in_progress = 1; diff -Nru cctools-7.0.22/chirp/src/chirp_benchmark.c cctools-7.1.2/chirp/src/chirp_benchmark.c --- cctools-7.0.22/chirp/src/chirp_benchmark.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/chirp_benchmark.c 2020-05-05 15:31:15.000000000 +0000 @@ -15,9 +15,6 @@ #include #include -#ifndef CCTOOLS_OPSYS_CYGWIN -#include -#endif #include #include diff -Nru cctools-7.0.22/chirp/src/chirp_fs_local.c cctools-7.1.2/chirp/src/chirp_fs_local.c --- cctools-7.0.22/chirp/src/chirp_fs_local.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/chirp_fs_local.c 2020-05-05 15:31:15.000000000 +0000 @@ -45,20 +45,14 @@ #include #include -#if CCTOOLS_OPSYS_CYGWIN || CCTOOLS_OPSYS_DARWIN || CCTOOLS_OPSYS_FREEBSD || CCTOOLS_OPSYS_DRAGONFLY - /* Cygwin does not have 64-bit I/O, while FreeBSD/Darwin has it by default. */ +#ifdef CCTOOLS_OPSYS_DARWIN +/* Darwin has 64-bit I/O by default */ # define stat64 stat # define fstat64 fstat # define ftruncate64 ftruncate # define statfs64 statfs # define fstatfs64 fstatfs # define fstatat64 fstatat -#elif defined(CCTOOLS_OPSYS_SUNOS) - /* Solaris has statfs, but it doesn't work! Use statvfs instead. */ -# define statfs statvfs -# define fstatfs fstatvfs -# define statfs64 statvfs64 -# define fstatfs64 fstatvfs64 #endif #ifndef O_CLOEXEC @@ -91,22 +85,7 @@ cinfop->cst_ctime = linfop->st_ctime;\ } while (0) -#ifdef CCTOOLS_OPSYS_SUNOS -# define COPY_STATFS_LOCAL_TO_CHIRP(cinfo,linfo) \ - do {\ - struct chirp_statfs *cinfop = &(cinfo);\ - struct statfs64 *linfop = &(linfo);\ - memset(cinfop, 0, sizeof(struct chirp_statfs));\ - cinfop->f_type = linfop->f_fsid;\ - cinfop->f_bsize = linfop->f_frsize;\ - cinfop->f_blocks = linfop->f_blocks;\ - cinfop->f_bavail = linfop->f_bavail;\ - cinfop->f_bfree = linfop->f_bfree;\ - cinfop->f_files = linfop->f_files;\ - cinfop->f_ffree = linfop->f_ffree;\ - } while (0) -#else -# define COPY_STATFS_LOCAL_TO_CHIRP(cinfo,linfo) \ +#define COPY_STATFS_LOCAL_TO_CHIRP(cinfo,linfo) \ do {\ struct chirp_statfs *cinfop = &(cinfo);\ struct statfs64 *linfop = &(linfo);\ @@ -119,7 +98,6 @@ cinfop->f_files = linfop->f_files;\ cinfop->f_ffree = linfop->f_ffree;\ } while (0) -#endif static int rootfd = -1; @@ -258,7 +236,7 @@ { int i; int rc; - int fd; + int fd=-1; char working[CHIRP_PATH_MAX] = ""; struct stat rootinfo; diff -Nru cctools-7.0.22/chirp/src/chirp.i cctools-7.1.2/chirp/src/chirp.i --- cctools-7.0.22/chirp/src/chirp.i 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/chirp.i 2020-05-05 15:31:15.000000000 +0000 @@ -4,6 +4,9 @@ /* next is a perl keyword. rename it to next_entry */ %rename(next_entry) chirp_dirent::next; +/* type is a go keyword. rename it to type_io */ +%rename(type_io) chirp_bulkio::type; + /* silent const char leaking memory, as we do not leak memory */ %warnfilter(451) chirp_searchstream::current; diff -Nru cctools-7.0.22/chirp/src/chirp_put.c cctools-7.1.2/chirp/src/chirp_put.c --- cctools-7.0.22/chirp/src/chirp_put.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/chirp_put.c 2020-05-05 15:31:15.000000000 +0000 @@ -26,7 +26,7 @@ #include "full_io.h" #include "getopt_aux.h" -#if CCTOOLS_OPSYS_CYGWIN || CCTOOLS_OPSYS_DARWIN || CCTOOLS_OPSYS_FREEBSD +#ifdef CCTOOLS_OPSYS_DARWIN #define fopen64 fopen #define open64 open #define lseek64 lseek diff -Nru cctools-7.0.22/chirp/src/chirp_recursive.c cctools-7.1.2/chirp/src/chirp_recursive.c --- cctools-7.0.22/chirp/src/chirp_recursive.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/chirp_recursive.c 2020-05-05 15:31:15.000000000 +0000 @@ -18,7 +18,7 @@ #include #include -#if CCTOOLS_OPSYS_CYGWIN || CCTOOLS_OPSYS_DARWIN || CCTOOLS_OPSYS_FREEBSD || CCTOOLS_OPSYS_DRAGONFLY +#ifdef CCTOOLS_OPSYS_DARWIN #define fopen64 fopen #define open64 open #define lseek64 lseek diff -Nru cctools-7.0.22/chirp/src/chirp_tool.c cctools-7.1.2/chirp/src/chirp_tool.c --- cctools-7.0.22/chirp/src/chirp_tool.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/chirp_tool.c 2020-05-05 15:31:15.000000000 +0000 @@ -43,7 +43,7 @@ #include #include -#if CCTOOLS_OPSYS_CYGWIN || CCTOOLS_OPSYS_DARWIN || CCTOOLS_OPSYS_FREEBSD +#ifdef CCTOOLS_OPSYS_DARWIN #define fopen64 fopen #define open64 open #define lseek64 lseek diff -Nru cctools-7.0.22/chirp/src/confuga.c cctools-7.1.2/chirp/src/confuga.c --- cctools-7.0.22/chirp/src/confuga.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/confuga.c 2020-05-05 15:31:15.000000000 +0000 @@ -40,13 +40,10 @@ #ifdef HAS_SYS_STATVFS_H # include #endif -#if CCTOOLS_OPSYS_CYGWIN || CCTOOLS_OPSYS_DARWIN || CCTOOLS_OPSYS_FREEBSD +#ifdef CCTOOLS_OPSYS_DARWIN # include # include # define statfs64 statfs -#elif CCTOOLS_OPSYS_SUNOS -# define statfs statvfs -# define statfs64 statvfs64 #endif #include @@ -55,7 +52,7 @@ #include #include -#if CCTOOLS_OPSYS_CYGWIN || CCTOOLS_OPSYS_DARWIN || CCTOOLS_OPSYS_FREEBSD || CCTOOLS_OPSYS_DRAGONFLY +#ifdef CCTOOLS_OPSYS_DARWIN /* Cygwin does not have 64-bit I/O, while FreeBSD/Darwin has it by default. */ # define stat64 stat # define fstat64 fstat @@ -63,12 +60,6 @@ # define statfs64 statfs # define fstatfs64 fstatfs # define fstatat64 fstatat -#elif defined(CCTOOLS_OPSYS_SUNOS) - /* Solaris has statfs, but it doesn't work! Use statvfs instead. */ -# define statfs statvfs -# define fstatfs fstatvfs -# define statfs64 statvfs64 -# define fstatfs64 fstatvfs64 #endif #define TICKET_REFRESH (6*60*60) diff -Nru cctools-7.0.22/chirp/src/confuga_job.c cctools-7.1.2/chirp/src/confuga_job.c --- cctools-7.0.22/chirp/src/confuga_job.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/confuga_job.c 2020-05-05 15:31:15.000000000 +0000 @@ -539,7 +539,7 @@ sqlite3 *db = C->db; sqlite3_stmt *stmt = NULL; const char *current = SQL; - confuga_sid_t sid; + confuga_sid_t sid=-1; struct job_stats stats; memset(&stats, 0, sizeof(stats)); diff -Nru cctools-7.0.22/chirp/src/confuga_namespace.c cctools-7.1.2/chirp/src/confuga_namespace.c --- cctools-7.0.22/chirp/src/confuga_namespace.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/confuga_namespace.c 2020-05-05 15:31:15.000000000 +0000 @@ -32,7 +32,7 @@ #include #include -#if CCTOOLS_OPSYS_CYGWIN || CCTOOLS_OPSYS_DARWIN || CCTOOLS_OPSYS_FREEBSD || CCTOOLS_OPSYS_DRAGONFLY +#ifdef CCTOOLS_OPSYS_DARWIN /* Cygwin does not have 64-bit I/O, while FreeBSD/Darwin has it by default. */ # define stat64 stat # define fstat64 fstat @@ -40,12 +40,6 @@ # define statfs64 statfs # define fstatfs64 fstatfs # define fstatat64 fstatat -#elif defined(CCTOOLS_OPSYS_SUNOS) - /* Solaris has statfs, but it doesn't work! Use statvfs instead. */ -# define statfs statvfs -# define fstatfs fstatvfs -# define statfs64 statvfs64 -# define fstatfs64 fstatvfs64 #endif #ifdef CCTOOLS_OPSYS_DARWIN @@ -106,7 +100,7 @@ { int i; int rc; - int fd; + int fd=-1; char working[CONFUGA_PATH_MAX] = ""; struct stat rootinfo; diff -Nru cctools-7.0.22/chirp/src/confuga_replica.c cctools-7.1.2/chirp/src/confuga_replica.c --- cctools-7.0.22/chirp/src/confuga_replica.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/confuga_replica.c 2020-05-05 15:31:15.000000000 +0000 @@ -199,9 +199,9 @@ struct confuga_host host_to; char replica_open[CONFUGA_PATH_MAX]; char replica_closed[CONFUGA_PATH_MAX]; - time_t start; + time_t start=0; confuga_sid_t fsid = 0; - confuga_off_t size; + confuga_off_t size=0; debug(D_DEBUG, "synchronously replicating " CONFUGA_FID_DEBFMT " to " CONFUGA_SID_DEBFMT, CONFUGA_FID_PRIARGS(fid), sid); @@ -1112,7 +1112,7 @@ for (i = 0; i < J->u.array.length; i++) { json_value *job = J->u.array.values[i]; assert(jistype(job, json_object)); - chirp_jobid_t id; + chirp_jobid_t id=-1; json_value *cid = jsonA_getname(job, "id", json_integer); CATCH(lookuptjid(C, fsid, cid->u.integer, &id)); diff -Nru cctools-7.0.22/chirp/src/json_aux.c cctools-7.1.2/chirp/src/json_aux.c --- cctools-7.0.22/chirp/src/json_aux.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/json_aux.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,92 @@ +#include "buffer.h" +#include "copy_stream.h" +#include "json.h" +#include "json_aux.h" + +#include +#include + +const char json_type_str[][10] = { + "NONE", + "OBJECT", + "ARRAY", + "INTEGER", + "DOUBLE", + "STRING", + "BOOLEAN", + "NULL", +}; + +json_value *jsonA_getname (json_value *object, const char *name, json_type t) +{ + json_value *val = jsonA_getname_raw(object, name); + + if(!val || !jistype(val, t)) { + return NULL; + } else { + return val; + } +} + +json_value *jsonA_getname_raw (json_value *object, const char *name) +{ + unsigned int i; + assert(object->type == json_object); + for (i = 0; i < object->u.object.length; i++) { + if (strcmp(name, object->u.object.values[i].name) == 0) { + return object->u.object.values[i].value; + } + } + return NULL; +} + +int jsonA_escapestring(buffer_t *B, const char *str) +{ + for (; *str; str++) {\ + switch (*str) {\ + case '/': + if (buffer_putliteral(B, "\\/") == -1) return -1; + break; + case '\\': + if (buffer_putliteral(B, "\\\\") == -1) return -1; + break; + case '\"': + if (buffer_putliteral(B, "\\\"") == -1) return -1; + break; + case '\b': + if (buffer_putliteral(B, "\\b") == -1) return -1; + break; + case '\f': + if (buffer_putliteral(B, "\\f") == -1) return -1; + break; + case '\n': + if (buffer_putliteral(B, "\\n") == -1) return -1; + break; + case '\r': + if (buffer_putliteral(B, "\\r") == -1) return -1; + break; + case '\t': + if (buffer_putliteral(B, "\\t") == -1) return -1; + break; + default: + if (buffer_putfstring(B, "%c", (int)*str) == -1) return -1; + break; + } + } + return 0; +} + +json_value *jsonA_parse_file(const char *path) { + size_t size; + char *buffer; + + if(copy_file_to_buffer(path, &buffer, &size) < 1) + return NULL; + + json_value *J = json_parse(buffer, size); + free(buffer); + + return J; +} + +/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/chirp/src/json_aux.h cctools-7.1.2/chirp/src/json_aux.h --- cctools-7.0.22/chirp/src/json_aux.h 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/json_aux.h 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,16 @@ +#ifndef JSON_AUX_H +#define JSON_AUX_H + +#include "buffer.h" +#include "json.h" + +#define jistype(o,t) ((o)->type == (t)) + +json_value *jsonA_getname (json_value *object, const char *name, json_type t); +json_value *jsonA_getname_raw (json_value *object, const char *name); +int jsonA_escapestring(buffer_t *B, const char *str); +json_value *jsonA_parse_file(const char *path); + +extern const char json_type_str[][10]; + +#endif diff -Nru cctools-7.0.22/chirp/src/json.c cctools-7.1.2/chirp/src/json.c --- cctools-7.0.22/chirp/src/json.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/json.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,905 @@ +/* vim: set et ts=3 sw=3 ft=c: + * + * Copyright (C) 2012 James McLaughlin et al. All rights reserved. + * https://github.com/udp/json-parser + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "json.h" + +#ifdef _MSC_VER + #ifndef _CRT_SECURE_NO_WARNINGS + #define _CRT_SECURE_NO_WARNINGS + #endif +#endif + +#ifdef __cplusplus + const struct _json_value json_value_none; /* zero-d by ctor */ +#else + const struct _json_value json_value_none; +#endif + +#include +#include +#include +#include + +typedef unsigned short json_uchar; + +static unsigned char hex_value (json_char c) +{ + if (isdigit(c)) + return c - '0'; + + switch (c) { + case 'a': case 'A': return 0x0A; + case 'b': case 'B': return 0x0B; + case 'c': case 'C': return 0x0C; + case 'd': case 'D': return 0x0D; + case 'e': case 'E': return 0x0E; + case 'f': case 'F': return 0x0F; + default: return 0xFF; + } +} + +typedef struct +{ + unsigned long used_memory; + + unsigned int uint_max; + unsigned long ulong_max; + + json_settings settings; + int first_pass; + +} json_state; + +static void * default_alloc (size_t size, int zero, void * user_data) +{ + return zero ? calloc (size, 1) : malloc (size); +} + +static void default_free (void * ptr, void * user_data) +{ + free (ptr); +} + +static void * json_alloc (json_state * state, unsigned long size, int zero) +{ + if ((state->ulong_max - state->used_memory) < size) + return 0; + + if (state->settings.max_memory + && (state->used_memory += size) > state->settings.max_memory) + { + return 0; + } + + return state->settings.mem_alloc (size, zero, state->settings.user_data); +} + +#ifdef __GNUC__ +#if __GNUC__ >= 7 +/* Fix for strict-aliasing warning, noted inside function.*/ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif +#endif +static int new_value + (json_state * state, json_value ** top, json_value ** root, json_value ** alloc, json_type type) +{ + json_value * value; + int values_size; + + if (!state->first_pass) + { + value = *top = *alloc; + *alloc = (*alloc)->_reserved.next_alloc; + + if (!*root) + *root = value; + + switch (value->type) + { + case json_array: + + if (! (value->u.array.values = (json_value **) json_alloc + (state, value->u.array.length * sizeof (json_value *), 0)) ) + { + return 0; + } + + value->u.array.length = 0; + break; + + case json_object: + + values_size = sizeof (*value->u.object.values) * value->u.object.length; + + if (! ((*(void **) &value->u.object.values) = json_alloc + (state, values_size + ((unsigned long) value->u.object.values), 0)) ) + { + return 0; + } + + /* The following line gives a strict-aliasing warning with gcc. */ + value->_reserved.object_mem = (*(char **) &value->u.object.values) + values_size; + + value->u.object.length = 0; + break; + + case json_string: + + if (! (value->u.string.ptr = (json_char *) json_alloc + (state, (value->u.string.length + 1) * sizeof (json_char), 0)) ) + { + return 0; + } + + value->u.string.length = 0; + break; + + default: + break; + }; + + return 1; + } + + value = (json_value *) json_alloc (state, sizeof (json_value), 1); + + if (!value) + return 0; + + if (!*root) + *root = value; + + value->type = type; + value->parent = *top; + + if (*alloc) + (*alloc)->_reserved.next_alloc = value; + + *alloc = *top = value; + + return 1; +} +#ifdef __GNUC__ +#if __GNUC__ >= 7 +#pragma GCC diagnostic pop +#endif +#endif + +#define e_off \ + ((int) (i - cur_line_begin)) + +#define whitespace \ + case '\n': ++ cur_line; cur_line_begin = i; /* falls through */ \ + case ' ': case '\t': case '\r' + +#define string_add(b) \ + do { if (!state.first_pass) string [string_length] = b; ++ string_length; } while (0); + + +#ifdef __GNUC__ +#if __GNUC__ >= 7 +/* Fix for strict-aliasing warning, noted inside function.*/ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif +#endif +static const long + flag_next = 1 << 0, + flag_reproc = 1 << 1, + flag_need_comma = 1 << 2, + flag_seek_value = 1 << 3, + flag_escaped = 1 << 4, + flag_string = 1 << 5, + flag_need_colon = 1 << 6, + flag_done = 1 << 7, + flag_num_negative = 1 << 8, + flag_num_zero = 1 << 9, + flag_num_e = 1 << 10, + flag_num_e_got_sign = 1 << 11, + flag_num_e_negative = 1 << 12; + +json_value * json_parse_ex (json_settings * settings, + const json_char * json, + size_t length, + char * error_buf) +{ + json_char error [128]; + unsigned int cur_line; + const json_char * cur_line_begin, * i, * end; + json_value * top, * root, * alloc = 0; + static const json_state _state; + json_state state = _state; + long flags; + long num_digits=0, num_e=0; + json_int_t num_fraction=0; + + error[0] = '\0'; + end = (json + length); + + memcpy (&state.settings, settings, sizeof (json_settings)); + + if (!state.settings.mem_alloc) + state.settings.mem_alloc = default_alloc; + + if (!state.settings.mem_free) + state.settings.mem_free = default_free; + + memset (&state.uint_max, 0xFF, sizeof (state.uint_max)); + memset (&state.ulong_max, 0xFF, sizeof (state.ulong_max)); + + state.uint_max -= 8; /* limit of how much can be added before next check */ + state.ulong_max -= 8; + + for (state.first_pass = 1; state.first_pass >= 0; -- state.first_pass) + { + json_uchar uchar; + unsigned char uc_b1, uc_b2, uc_b3, uc_b4; + json_char * string=0; + unsigned int string_length=0; + + top = root = 0; + flags = flag_seek_value; + + cur_line = 1; + cur_line_begin = json; + + for (i = json ;; ++ i) + { + json_char b = (i == end ? 0 : *i); + + if (flags & flag_done) + { + if (!b) + break; + + switch (b) + { + whitespace: + continue; + + default: + sprintf (error, "%d:%d: Trailing garbage: `%c`", cur_line, e_off, b); + goto e_failed; + }; + } + + if (flags & flag_string) + { + if (!b) + { sprintf (error, "Unexpected EOF in string (at %d:%d)", cur_line, e_off); + goto e_failed; + } + + if (string_length > state.uint_max) + goto e_overflow; + + if (flags & flag_escaped) + { + flags &= ~ flag_escaped; + + switch (b) + { + case 'b': string_add ('\b'); break; + case 'f': string_add ('\f'); break; + case 'n': string_add ('\n'); break; + case 'r': string_add ('\r'); break; + case 't': string_add ('\t'); break; + case 'u': + + if ((uc_b1 = hex_value (*++ i)) == 0xFF || (uc_b2 = hex_value (*++ i)) == 0xFF + || (uc_b3 = hex_value (*++ i)) == 0xFF || (uc_b4 = hex_value (*++ i)) == 0xFF) + { + sprintf (error, "Invalid character value `%c` (at %d:%d)", b, cur_line, e_off); + goto e_failed; + } + + uc_b1 = uc_b1 * 16 + uc_b2; + uc_b2 = uc_b3 * 16 + uc_b4; + + uchar = ((json_char) uc_b1) * 256 + uc_b2; + + if (sizeof (json_char) >= sizeof (json_uchar) || (uc_b1 == 0 && uc_b2 <= 0x7F)) + { + string_add ((json_char) uchar); + break; + } + + if (uchar <= 0x7FF) + { + if (state.first_pass) + string_length += 2; + else + { string [string_length ++] = 0xC0 | ((uc_b2 & 0xC0) >> 6) | ((uc_b1 & 0x7) << 2); + string [string_length ++] = 0x80 | (uc_b2 & 0x3F); + } + + break; + } + + if (state.first_pass) + string_length += 3; + else + { string [string_length ++] = 0xE0 | ((uc_b1 & 0xF0) >> 4); + string [string_length ++] = 0x80 | ((uc_b1 & 0xF) << 2) | ((uc_b2 & 0xC0) >> 6); + string [string_length ++] = 0x80 | (uc_b2 & 0x3F); + } + + break; + + default: + string_add (b); + }; + + continue; + } + + if (b == '\\') + { + flags |= flag_escaped; + continue; + } + + if (b == '"') + { + if (!state.first_pass) + string [string_length] = 0; + + flags &= ~ flag_string; + string = 0; + + switch (top->type) + { + case json_string: + + top->u.string.length = string_length; + flags |= flag_next; + + break; + + case json_object: + + if (state.first_pass) { + /* The following line gives a strict-aliasing warning with gcc. */ + (*(json_char **) &top->u.object.values) += string_length + 1; + } + else + { + top->u.object.values [top->u.object.length].name + = (json_char *) top->_reserved.object_mem; + + (*(json_char **) &top->_reserved.object_mem) += string_length + 1; + } + + flags |= flag_seek_value | flag_need_colon; + continue; + + default: + break; + }; + } + else + { + string_add (b); + continue; + } + } + + if (flags & flag_seek_value) + { + switch (b) + { + whitespace: + continue; + + case ']': + + if (top->type == json_array) + flags = (flags & ~ (flag_need_comma | flag_seek_value)) | flag_next; + else if (!(state.settings.settings & json_relaxed_commas)) + { sprintf (error, "%d:%d: Unexpected ]", cur_line, e_off); + goto e_failed; + } + + break; + + default: + + if (flags & flag_need_comma) + { + if (b == ',') + { flags &= ~ flag_need_comma; + continue; + } + else + { sprintf (error, "%d:%d: Expected , before %c", cur_line, e_off, b); + goto e_failed; + } + } + + if (flags & flag_need_colon) + { + if (b == ':') + { flags &= ~ flag_need_colon; + continue; + } + else + { sprintf (error, "%d:%d: Expected : before %c", cur_line, e_off, b); + goto e_failed; + } + } + + flags &= ~ flag_seek_value; + + switch (b) + { + case '{': + + if (!new_value (&state, &top, &root, &alloc, json_object)) + goto e_alloc_failure; + + continue; + + case '[': + + if (!new_value (&state, &top, &root, &alloc, json_array)) + goto e_alloc_failure; + + flags |= flag_seek_value; + continue; + + case '"': + + if (!new_value (&state, &top, &root, &alloc, json_string)) + goto e_alloc_failure; + + flags |= flag_string; + + string = top->u.string.ptr; + string_length = 0; + + continue; + + case 't': + + if ((end - i) < 3 || *(++ i) != 'r' || *(++ i) != 'u' || *(++ i) != 'e') + goto e_unknown_value; + + if (!new_value (&state, &top, &root, &alloc, json_boolean)) + goto e_alloc_failure; + + top->u.boolean = 1; + + flags |= flag_next; + break; + + case 'f': + + if ((end - i) < 4 || *(++ i) != 'a' || *(++ i) != 'l' || *(++ i) != 's' || *(++ i) != 'e') + goto e_unknown_value; + + if (!new_value (&state, &top, &root, &alloc, json_boolean)) + goto e_alloc_failure; + + flags |= flag_next; + break; + + case 'n': + + if ((end - i) < 3 || *(++ i) != 'u' || *(++ i) != 'l' || *(++ i) != 'l') + goto e_unknown_value; + + if (!new_value (&state, &top, &root, &alloc, json_null)) + goto e_alloc_failure; + + flags |= flag_next; + break; + + default: + + if (isdigit (b) || b == '-') + { + if (!new_value (&state, &top, &root, &alloc, json_integer)) + goto e_alloc_failure; + + if (!state.first_pass) + { + while (isdigit (b) || b == '+' || b == '-' + || b == 'e' || b == 'E' || b == '.') + { + if ( (++ i) == end) + { + b = 0; + break; + } + + b = *i; + } + + flags |= flag_next | flag_reproc; + break; + } + + flags &= ~ (flag_num_negative | flag_num_e | + flag_num_e_got_sign | flag_num_e_negative | + flag_num_zero); + + num_digits = 0; + num_fraction = 0; + num_e = 0; + + if (b != '-') + { + flags |= flag_reproc; + break; + } + + flags |= flag_num_negative; + continue; + } + else + { sprintf (error, "%d:%d: Unexpected %c when seeking value", cur_line, e_off, b); + goto e_failed; + } + }; + }; + } + else + { + switch (top->type) + { + case json_object: + + switch (b) + { + whitespace: + continue; + + case '"': + + if (flags & flag_need_comma && !(state.settings.settings & json_relaxed_commas)) + { + sprintf (error, "%d:%d: Expected , before \"", cur_line, e_off); + goto e_failed; + } + + flags |= flag_string; + + string = (json_char *) top->_reserved.object_mem; + string_length = 0; + + break; + + case '}': + + flags = (flags & ~ flag_need_comma) | flag_next; + break; + + case ',': + + if (flags & flag_need_comma) + { + flags &= ~ flag_need_comma; + break; + } + /* falls through */ + + default: + + sprintf (error, "%d:%d: Unexpected `%c` in object", cur_line, e_off, b); + goto e_failed; + }; + + break; + + case json_integer: + case json_double: + + if (isdigit (b)) + { + ++ num_digits; + + if (top->type == json_integer || flags & flag_num_e) + { + if (! (flags & flag_num_e)) + { + if (flags & flag_num_zero) + { sprintf (error, "%d:%d: Unexpected `0` before `%c`", cur_line, e_off, b); + goto e_failed; + } + + if (num_digits == 1 && b == '0') + flags |= flag_num_zero; + } + else + { + flags |= flag_num_e_got_sign; + num_e = (num_e * 10) + (b - '0'); + continue; + } + + top->u.integer = (top->u.integer * 10) + (b - '0'); + continue; + } + + num_fraction = (num_fraction * 10) + (b - '0'); + continue; + } + + if (b == '+' || b == '-') + { + if ( (flags & flag_num_e) && !(flags & flag_num_e_got_sign)) + { + flags |= flag_num_e_got_sign; + + if (b == '-') + flags |= flag_num_e_negative; + + continue; + } + } + else if (b == '.' && top->type == json_integer) + { + if (!num_digits) + { sprintf (error, "%d:%d: Expected digit before `.`", cur_line, e_off); + goto e_failed; + } + + top->type = json_double; + top->u.dbl = (double) top->u.integer; + + num_digits = 0; + continue; + } + + if (! (flags & flag_num_e)) + { + if (top->type == json_double) + { + if (!num_digits) + { sprintf (error, "%d:%d: Expected digit after `.`", cur_line, e_off); + goto e_failed; + } + + top->u.dbl += ((double) num_fraction) / (pow (10, (double) num_digits)); + } + + if (b == 'e' || b == 'E') + { + flags |= flag_num_e; + + if (top->type == json_integer) + { + top->type = json_double; + top->u.dbl = (double) top->u.integer; + } + + num_digits = 0; + flags &= ~ flag_num_zero; + + continue; + } + } + else + { + if (!num_digits) + { sprintf (error, "%d:%d: Expected digit after `e`", cur_line, e_off); + goto e_failed; + } + + top->u.dbl *= pow (10, (double) (flags & flag_num_e_negative ? - num_e : num_e)); + } + + if (flags & flag_num_negative) + { + if (top->type == json_integer) + top->u.integer = - top->u.integer; + else + top->u.dbl = - top->u.dbl; + } + + flags |= flag_next | flag_reproc; + break; + + default: + break; + }; + } + + if (flags & flag_reproc) + { + flags &= ~ flag_reproc; + -- i; + } + + if (flags & flag_next) + { + flags = (flags & ~ flag_next) | flag_need_comma; + + if (!top->parent) + { + /* root value done */ + + flags |= flag_done; + continue; + } + + if (top->parent->type == json_array) + flags |= flag_seek_value; + + if (!state.first_pass) + { + json_value * parent = top->parent; + + switch (parent->type) + { + case json_object: + + parent->u.object.values + [parent->u.object.length].value = top; + + break; + + case json_array: + + parent->u.array.values + [parent->u.array.length] = top; + + break; + + default: + break; + }; + } + + if ( (++ top->parent->u.array.length) > state.uint_max) + goto e_overflow; + + top = top->parent; + + continue; + } + } + + alloc = root; + } + + return root; + +e_unknown_value: + + sprintf (error, "%d:%d: Unknown value", cur_line, e_off); + goto e_failed; + +e_alloc_failure: + + strcpy (error, "Memory allocation failure"); + goto e_failed; + +e_overflow: + + sprintf (error, "%d:%d: Too long (caught overflow)", cur_line, e_off); + goto e_failed; + +e_failed: + + if (error_buf) + { + if (*error) + strcpy (error_buf, error); + else + strcpy (error_buf, "Unknown error"); + } + + if (state.first_pass) + alloc = root; + + while (alloc) + { + top = alloc->_reserved.next_alloc; + state.settings.mem_free (alloc, state.settings.user_data); + alloc = top; + } + + if (!state.first_pass) + json_value_free_ex (&state.settings, root); + + return 0; +} +#ifdef __GNUC__ +#if __GNUC__ >= 7 +#pragma GCC diagnostic pop +#endif +#endif + +json_value * json_parse (const json_char * json, size_t length) +{ + static const json_settings _settings; + json_settings settings = _settings; + return json_parse_ex (&settings, json, length, 0); +} + +void json_value_free_ex (json_settings * settings, json_value * value) +{ + json_value * cur_value; + + if (!value) + return; + + value->parent = 0; + + while (value) + { + switch (value->type) + { + case json_array: + + if (!value->u.array.length) + { + settings->mem_free (value->u.array.values, settings->user_data); + break; + } + + value = value->u.array.values [-- value->u.array.length]; + continue; + + case json_object: + + if (!value->u.object.length) + { + settings->mem_free (value->u.object.values, settings->user_data); + break; + } + + value = value->u.object.values [-- value->u.object.length].value; + continue; + + case json_string: + + settings->mem_free (value->u.string.ptr, settings->user_data); + break; + + default: + break; + }; + + cur_value = value; + value = value->parent; + settings->mem_free (cur_value, settings->user_data); + } +} + +void json_value_free (json_value * value) +{ + static const json_settings _settings; + json_settings settings = _settings; + settings.mem_free = default_free; + json_value_free_ex (&settings, value); +} + diff -Nru cctools-7.0.22/chirp/src/json.h cctools-7.1.2/chirp/src/json.h --- cctools-7.0.22/chirp/src/json.h 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/chirp/src/json.h 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,268 @@ + +/* vim: set et ts=3 sw=3 ft=c: + * + * Copyright (C) 2012 James McLaughlin et al. All rights reserved. + * https://github.com/udp/json-parser + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _JSON_H +#define _JSON_H + +#ifndef json_char + #define json_char char +#endif + +#ifndef json_int_t + #ifndef _MSC_VER + #include + #define json_int_t int64_t + #else + #define json_int_t __int64 + #endif +#endif + +#include + +#ifdef __cplusplus + + #include + + extern "C" + { + +#endif + +typedef struct +{ + unsigned long max_memory; + int settings; + + /* Custom allocator support (leave null to use malloc/free) + */ + + void * (* mem_alloc) (size_t, int zero, void * user_data); + void (* mem_free) (void *, void * user_data); + + void * user_data; /* will be passed to mem_alloc and mem_free */ + +} json_settings; + +#define json_relaxed_commas 1 + +typedef enum +{ + json_none, + json_object, + json_array, + json_integer, + json_double, + json_string, + json_boolean, + json_null + +} json_type; + +extern const struct _json_value json_value_none; + +typedef struct _json_value +{ + struct _json_value * parent; + + json_type type; + + union + { + int boolean; + json_int_t integer; + double dbl; + + struct + { + unsigned int length; + json_char * ptr; /* null terminated */ + + } string; + + struct + { + unsigned int length; + + struct + { + json_char * name; + struct _json_value * value; + + } * values; + + #if defined(__cplusplus) && __cplusplus >= 201103L + decltype(values) begin () const + { return values; + } + decltype(values) end () const + { return values + length; + } + #endif + + } object; + + struct + { + unsigned int length; + struct _json_value ** values; + + #if defined(__cplusplus) && __cplusplus >= 201103L + decltype(values) begin () const + { return values; + } + decltype(values) end () const + { return values + length; + } + #endif + + } array; + + } u; + + union + { + struct _json_value * next_alloc; + void * object_mem; + + } _reserved; + + + /* Some C++ operator sugar */ + + #ifdef __cplusplus + + public: + + inline _json_value () + { memset (this, 0, sizeof (_json_value)); + } + + inline const struct _json_value &operator [] (int index) const + { + if (type != json_array || index < 0 + || ((unsigned int) index) >= u.array.length) + { + return json_value_none; + } + + return *u.array.values [index]; + } + + inline const struct _json_value &operator [] (const char * index) const + { + if (type != json_object) + return json_value_none; + + for (unsigned int i = 0; i < u.object.length; ++ i) + if (!strcmp (u.object.values [i].name, index)) + return *u.object.values [i].value; + + return json_value_none; + } + + inline operator const char * () const + { + switch (type) + { + case json_string: + return u.string.ptr; + + default: + return ""; + }; + } + + inline operator json_int_t () const + { + switch (type) + { + case json_integer: + return u.integer; + + case json_double: + return (json_int_t) u.dbl; + + default: + return 0; + }; + } + + inline operator bool () const + { + if (type != json_boolean) + return false; + + return u.boolean != 0; + } + + inline operator double () const + { + switch (type) + { + case json_integer: + return (double) u.integer; + + case json_double: + return u.dbl; + + default: + return 0; + }; + } + + #endif + +} json_value; + +json_value * json_parse (const json_char * json, + size_t length); + +json_value * json_parse_ex (json_settings * settings, + const json_char * json, + size_t length, + char * error); + +void json_value_free (json_value *); + + +/* Not usually necessary, unless you used a custom mem_alloc and now want to + * use a custom mem_free. + */ +void json_value_free_ex (json_settings * settings, + json_value *); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif + + diff -Nru cctools-7.0.22/chirp/src/Makefile cctools-7.1.2/chirp/src/Makefile --- cctools-7.0.22/chirp/src/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/src/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -21,7 +21,7 @@ PUBLIC_HEADERS = chirp_global.h chirp_multi.h chirp_reli.h chirp_client.h chirp_stream.h chirp_protocol.h chirp_matrix.h chirp_types.h chirp_recursive.h confuga.h SCRIPTS = chirp_audit_cluster chirp_server_hdfs SOURCES_CONFUGA = confuga.c confuga_namespace.c confuga_replica.c confuga_node.c confuga_job.c confuga_file.c confuga_gc.c -SOURCES_LIBRARY = chirp_global.c chirp_multi.c chirp_recursive.c chirp_reli.c chirp_client.c chirp_matrix.c chirp_stream.c chirp_ticket.c +SOURCES_LIBRARY = chirp_global.c chirp_multi.c chirp_recursive.c chirp_reli.c chirp_client.c chirp_matrix.c chirp_stream.c chirp_ticket.c json.c json_aux.c SOURCES_SERVER = sqlite3.c chirp_stats.c chirp_thirdput.c chirp_alloc.c chirp_audit.c chirp_acl.c chirp_group.c chirp_filesystem.c chirp_fs_hdfs.c chirp_fs_local.c chirp_fs_local_scheduler.c chirp_fs_chirp.c chirp_fs_confuga.c chirp_job.c chirp_sqlite.c TARGETS = $(PROGRAMS) $(LIBRARIES) diff -Nru cctools-7.0.22/chirp/test/TR_chirp_job_python.sh cctools-7.1.2/chirp/test/TR_chirp_job_python.sh --- cctools-7.0.22/chirp/test/TR_chirp_job_python.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/test/TR_chirp_job_python.sh 2020-05-05 15:31:15.000000000 +0000 @@ -8,13 +8,12 @@ c="./hostport.$PPID" cr="./root.$PPID" +python=${CCTOOLS_PYTHON_TEST_EXEC} +python_dir=${CCTOOLS_PYTHON_TEST_DIR} check_needed() { - [ -f ../src/bindings/python/_CChirp.so ] || return 1 - python=$(cctools_python -n 3 2.7 2.6) - [ -n "$python" ] || return 1 - ${python} -c "import json; import Chirp" + [ -n "${python}" ] || return 1 } prepare() @@ -32,7 +31,9 @@ fi hostport=$(cat "$c") - ../src/bindings/python/chirp_jobs_python_example.py $hostport ../src/bindings/python/my_script.sh + base=$(pwd)/../src/bindings/${python_dir} + + PYTHONPATH=${base} ${python} ${base}/chirp_jobs_python_example.py $hostport ${base}/my_script.sh return 0 } diff -Nru cctools-7.0.22/chirp/test/TR_chirp_perl.sh cctools-7.1.2/chirp/test/TR_chirp_perl.sh --- cctools-7.0.22/chirp/test/TR_chirp_perl.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/test/TR_chirp_perl.sh 2020-05-05 15:31:15.000000000 +0000 @@ -9,9 +9,11 @@ ticket=my.ticket +perl=${CCTOOLS_PERL} + check_needed() { - test -f ../src/bindings/perl/CChirp.so + [ -n "${perl}" ] || return 1 command -v openssl >/dev/null 2>&1 } @@ -31,7 +33,7 @@ chirp -d all -a unix "$hostport" ticket_create -output "$ticket" -bits 1024 -duration 86400 -subject unix:`whoami` / write - PERL5LIB=$(pwd)/../src/bindings/perl ../src/bindings/perl/chirp_perl_example.pl $hostport $ticket + PERL5LIB="$(pwd)/../src/bindings/perl" ${perl} ../src/bindings/perl/chirp_perl_example.pl $hostport $ticket return 0 } diff -Nru cctools-7.0.22/chirp/test/TR_chirp_python.sh cctools-7.1.2/chirp/test/TR_chirp_python.sh --- cctools-7.0.22/chirp/test/TR_chirp_python.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/chirp/test/TR_chirp_python.sh 2020-05-05 15:31:15.000000000 +0000 @@ -9,16 +9,18 @@ ticket=my.ticket +python=${CCTOOLS_PYTHON_TEST_EXEC} +python_dir=${CCTOOLS_PYTHON_TEST_DIR} + check_needed() { - [ -f ../src/bindings/python/_CChirp.so ] || return 1 - python=$(cctools_python -n 3 2.7 2.6) - [ -n "$python" ] || return 1 - ${python} -c "import json; import Chirp" + [ -n "${python}" ] || return 1 } prepare() { + [ -n "$python" ] || return 1 + chirp_start local --auth=ticket echo "$hostport" > "$c" return 0 @@ -33,7 +35,9 @@ chirp -d all -a unix "$hostport" ticket_create -output "$ticket" -bits 1024 -duration 86400 -subject unix:`whoami` / write - ../src/bindings/python/chirp_python_example.py $hostport $ticket + base=$(pwd)/../src/bindings/${python_dir}/ + PYTHONPATH=${base} ${python} ${base}/chirp_python_example.py $hostport $ticket + return 0 } diff -Nru cctools-7.0.22/.clang-format cctools-7.1.2/.clang-format --- cctools-7.0.22/.clang-format 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/.clang-format 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,11 @@ +BasedOnStyle: LLVM +IndentWidth: 8 +UseTab: Always +ColumnLimit: 120 +ContinuationIndentWidth: 16 +AlignAfterOpenBracket: DontAlign +BreakBeforeBraces: Linux +AllowShortIfStatementsOnASingleLine: false +IndentCaseLabels: false +BreakStringLiterals: false +BinPackArguments: false diff -Nru cctools-7.0.22/configure cctools-7.1.2/configure --- cctools-7.0.22/configure 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/configure 2020-05-05 15:31:15.000000000 +0000 @@ -4,8 +4,8 @@ # *** Set for releases. *** MAJOR=7 -MINOR=0 -MICRO=22 +MINOR=1 +MICRO=2 # Optionally set the source/tag for this code (e.g. RC1 or FINAL). Setting # this variable is instead useful for statically naming the source when it will @@ -62,12 +62,8 @@ POWER\ MACINTOSH) BUILD_CPU=POWERPC ;; - SUN4V) - BUILD_CPU=SPARC - ;; esac -include_package_allpairs="allpairs" include_package_apps="apps" include_package_chirp="chirp" include_package_deltadb="deltadb" @@ -76,12 +72,11 @@ include_package_grow="grow" include_package_makeflow="makeflow" include_package_parrot="parrot" -include_package_prune="prune" include_package_resource_monitor="resource_monitor" -include_package_sand="sand" -include_package_umbrella="umbrella" -include_package_wavefront="wavefront" -include_package_weaver="weaver" + +include_package_umbrella= +include_package_weaver= +include_package_prune= swig_bindings="" @@ -93,31 +88,38 @@ base_root="/usr" globus_flavor=auto -irods_flavor=auto -xrootd_arch=auto ccompiler=${CC:-gcc} cxxcompiler=${CXX:-g++} linker="${ccompiler}" -ccflags="${CFLAGS} -D__EXTENSIONS__ -D_LARGEFILE64_SOURCE -D__LARGE64_FILES -Wall -Wextra" +ccflags="${CFLAGS} -D__EXTENSIONS__ -D_LARGEFILE64_SOURCE -D__LARGE64_FILES -Wall -Wextra -fPIC" c_only_flags="-std=c99" config_zlib_path=yes +# config_PACKAGE_path possible values: +# no -> exclude from configuration +# yes -> include in configuration, and only from PACKAGE_path. If not found, exit with error. +# auto -> include in configuration if found in standard locations. If not found, exclude from configuration. +config_ext2fs_path=auto config_fuse_path=auto -config_golang_path=auto config_mysql_path=auto config_perl_path=auto -config_python_path=auto +config_python_path=auto # for python2 or python3, version automatically detected +config_python2_path=auto config_python3_path=auto config_readline_path=auto config_swig_path=auto +config_golang_path=no +config_curl_path=no config_cvmfs_path=no config_globus_path=no config_irods_path=no +config_mpi_path=no config_openssl_path=no +config_uuid_path=no config_xrootd_path=no config_static_libgcc=yes @@ -180,10 +182,18 @@ --with-base-dir) base_root=${arg} ;; + --with-curl-path) + curl_path=${arg} + config_curl_path=$(config_X_path ${arg}) + ;; --with-cvmfs-path) cvmfs_path=${arg} config_cvmfs_path=$(config_X_path ${arg}) ;; + --with-ext2fs-path) + ext2fs_path=${arg} + config_ext2fs_path=$(config_X_path ${arg}) + ;; --with-fuse-path) fuse_path=${arg} config_fuse_path=$(config_X_path ${arg}) @@ -203,8 +213,9 @@ irods_path=${arg} config_irods_path=$(config_X_path ${arg}) ;; - --irods-flavor) - irods_flavor=${arg} + --with-mpi-path) + mpi_path=${arg} + config_mpi_path=$(config_X_path ${arg}) ;; --with-mysql-path) mysql_path=${arg} @@ -222,6 +233,10 @@ python_path=${arg} config_python_path=$(config_X_path ${arg}) ;; + --with-python2-path) + python2_path=${arg} + config_python2_path=$(config_X_path ${arg}) + ;; --with-python3-path) python3_path=${arg} config_python3_path=$(config_X_path ${arg}) @@ -242,9 +257,6 @@ xrootd_path=${arg} config_xrootd_path=$(config_X_path ${arg}) ;; - --xrootd-arch) - xrootd_arch=${arg} - ;; --with-zlib-path) zlib_path=${arg} if [ "$zlib_path" = no ] @@ -253,23 +265,9 @@ exit 1 fi ;; - --without-system-sand) - include_package_sand="" - if [ "$include_package_allpairs" != "" ] - then - echo "*** skipping system 'allpairs' because of dependencies" - include_package_allpairs="" - fi - ;; --without-system-apps) include_package_apps="" ;; - --without-system-allpairs) - include_package_allpairs="" - ;; - --without-system-wavefront) - include_package_wavefront="" - ;; --without-system-makeflow) include_package_makeflow="" ;; @@ -325,7 +323,6 @@ --sge-parameter --globus-flavor --irods-flavor 3 | 4 - --xrootd-arch --tcp-low-port --tcp-high-port --with-base-dir (where to find system libraries, default is /usr) @@ -333,24 +330,24 @@ --without-system-SYSTEM Where PACKAGE may be: - readline + curl + cvmfs + ext2fs fuse globus irods + mpi mysql perl python python3 + readline + swig + uuid xrootd zlib - cvmfs - uuid - swig And SYSTEM may be: - sand - allpairs - wavefront makeflow ftp-lite chirp @@ -386,21 +383,18 @@ export HOST_MULTIARCH=$(check_multiarch) -if [ -f config.mk ]; then - echo "we are reconfiguring - prepare with make clean..." - if make clean; then - echo 'make clean - ok' - else - echo "make clean failed ($?); continuing" - fi -fi - rm -f config.mk require_path ${ccompiler} -require_path ${cxxcompiler} require_gnu_make +if ! optional_path ${cxxcompiler} +then + echo "*** could not find a C++ compiler, skipping parrot support" + include_package_parrot="" +fi + + # Lots of warnings are enabled by default, but several are too strict # and crop up in third-party code, so we disable those checks. # However, not all compilers support these flags, so we check each one. @@ -413,23 +407,11 @@ fi done -# Cygwin has some compiler oddities. -# 1 - Sloppy definitions of the ctype.h functions cause spurious warnings -# about char -> int conversions. -# 2 - All code is PIC by default, and adding the flag causes more warnings. - -if [ ${BUILD_SYS} = CYGWIN ] -then - ccflags="${ccflags} -Wno-char-subscripts" -else - ccflags="${ccflags} -fPIC" -fi - # # Currently, we rely on the linker --as-needed flag to sort out # which dynamic libraries each executable actually needs. # This is apparently a recent addition to gnu ld. -# A better solution would be to explicitly specify which libraries +# A better solution would be to explicitely specify which libraries # are needed by which executable, but this will come in a later version. # @@ -483,18 +465,16 @@ fi fi -echo "using a globus flavor of '$globus_flavor' (if this is wrong, use the --globus-flavor argument)" - +globus_avail=no if [ $config_globus_path != no ] then globus_path=${globus_path:-${base_root}} + globus_avail=yes # assume yes until not found - config_openssl_path=yes if check_file ${globus_path}/include/${globus_flavor}/globus_common.h then - ccflags="${ccflags} -DHAS_GLOBUS_GSS" - globus_ccflags="-I${globus_path}/include -I${globus_path}/include/${globus_flavor}" - #ldflags="${ldflags} -L${globus_path}/lib64 -L${globus_path}/lib" + echo "*** using a globus flavor of '$globus_flavor' (if this is wrong, use the --globus-flavor argument)" + globus_ccflags="-DHAS_GLOBUS_GSS -I${globus_path}/include -I${globus_path}/include/${globus_flavor}" for library in globus_gss_assist globus_gssapi_gsi globus_gsi_proxy_core globus_gsi_credential globus_gsi_callback globus_oldgaa globus_gsi_sysconfig globus_gsi_cert_utils globus_openssl globus_openssl_error globus_callout globus_proxy_ssl globus_common ltdl do if library_search ${library}_${globus_flavor} ${globus_path} @@ -504,9 +484,7 @@ done elif check_file ${globus_path}/include/globus/globus_common.h then - ccflags="${ccflags} -DHAS_GLOBUS_GSS" - globus_ccflags="-I${globus_path}/lib/globus/include -I${globus_path}/include/globus" - #ldflags="${ldflags} -L${globus_path}/lib64 -L${globus_path}/lib" + globus_ccflags="-DHAS_GLOBUS_GSS -I${globus_path}/lib/globus/include -I${globus_path}/include/globus" for library in globus_gss_assist globus_gssapi_gsi globus_gsi_proxy_core globus_gsi_credential globus_gsi_callback globus_oldgaa globus_gsi_sysconfig globus_gsi_cert_utils globus_openssl globus_openssl_error globus_callout globus_proxy_ssl globus_common ltdl do if library_search $library ${globus_path} @@ -515,270 +493,276 @@ fi done else - if [ $config_globus_path = yes ] - then - echo "*** Sorry, I couldn't find Globus in $globus_path" - echo "*** Check --with-globus-path and try again." - exit 1 - else - echo "*** skipping globus support" - fi + # not found + globus_avail=no + fi + + if [ "${globus_avail}" = yes ] + then + # globus needs openssl + config_openssl_path=yes fi -else - echo "*** skipping globus support" fi -# irods 4.0 moved all its source to the iRODS subdirectory -# if auto, we try in this order: 4.2 (4.0,4.1) 3 +report_detection globus "${globus_avail}" "${config_globus_path}" "${globus_path}" + -# irods 4.x uses .so plugins which are found in /var/lib/irods. +# irods >= 4.0 uses .so plugins which are found in /var/lib/irods. # These require the parrot is linked with -rdynamic so that # the plugins can refer to symbols in libRodsAPI.a in parrot. # irods 4.x changed the API from C to C++, so we must look # for .hpp files instead of .h files. +irods_avail=no if [ $config_irods_path != no ] then + irods_avail=yes # assume yes until a component not found irods_path=${irods_path:-${base_root}} - if [ "$irods_flavor" = auto -o "$irods_flavor" = 4 ] - then - irods_flavor=auto - if library_search RodsAPIs "${irods_path}/lib" - then - echo "detected irods 4.x installation" - echo "*** warning: irods 4.x requires plugins installed in /var/lib, or for the irods_plugins_home variable to be set." - - ccflags="${ccflags} -DHAS_IRODS -DIRODS_USES_PLUGINS -DIRODS_USES_HPP" - ldflags="${ldflags} -rdynamic" - irods_ldflags="${library_search_result}" - - # needed for 4.2: - if library_search irods_client_api "${irods_path}/lib" - then - echo "detected irods >4.1 installation" - irods_ldflags="${irods_ldflags} ${library_search_result}" - ccflags="${ccflags} -DIRODS_USES_ERROR_HPP" - fi - - for d in ${irods_path}/include/irods - do - irods_ccflags="${irods_ccflags} -I$d" - done - - # irods 4.x depends on a specific version of boost: - boost_path=`ls -d ${irods_path}/lib/irods/externals` - if [ ! -d ${boost_path} ] - then - echo "*** Could not find irods boost in ${irods_path}/external !" - exit 1 - fi - - echo "found irods boost in $boost_path" - for subtype in system thread chrono filesystem regex - do - lib=${boost_path}/libboost_${subtype}.a - if [ -f $lib ] - then - echo "found $lib" - irods_ldflags="${irods_ldflags} $lib" - fi - done - - jansson_path=`ls -d ${irods_path}/lib/irods/externals` - if [ ! -d ${jansson_path} ] - then - echo "*** Could not find irods jansson in ${irods_path}/external !" - exit 1 - fi - - echo "found irods jansson in $jansson_path" - irods_ldflags="${irods_ldflags} ${jansson_path}/libjansson.a" - - irods_flavor=4 - fi + if library_search RodsAPIs "${irods_path}/lib" + then + ldflags="${ldflags} -rdynamic" + irods_ldflags="${library_search_result}" + else + irods_avail=no fi - if [ "$irods_flavor" = auto -o "$irods_flavor" = 3 ] + if library_search irods_client_api "${irods_path}/lib" then - irods_flavor=auto - if library_search RodsAPIs "${irods_path}/lib/core/obj" - then - echo "detected irods 3.x installation" + irods_ldflags="${irods_ldflags} ${library_search_result}" + else + irods_avail=no + fi - ccflags="${ccflags} -DHAS_IRODS" + for d in ${irods_path}/include/irods + do + irods_ccflags="${irods_ccflags} -DHAS_IRODS -DIRODS_USES_PLUGINS -DIRODS_USES_HPP -DIRODS_USES_ERROR_HPP -I$d" + done - for d in ${irods_path}/lib/*/include ${irods_path}/server/*/include - do - irods_ccflags="${irods_ccflags} -I$d" - done + boost_path=`ls -d ${irods_path}/lib/irods/externals` + if [ ! -d ${boost_path} ] + then + echo "*** Could not find irods boost in ${irods_path}/external" + irods_avail=no + fi - irods_ldflags="${library_search_result}" - irods_flavor=3 + for subtype in system thread chrono filesystem regex + do + lib=${boost_path}/libboost_${subtype}.a + if [ -f $lib ] + then + echo "found $lib" + irods_ldflags="${irods_ldflags} $lib" fi - fi + done - if [ "$irods_flavor" = auto ] + jansson_path=${irods_path}/lib/irods/externals/libjansson.a + if check_file ${jansson_path} then - echo "*** Sorry, I couldn't find IRODS in $irods_path" - echo "*** Check --with-irods-path and try again." - exit 1 + irods_ldflags="${irods_ldflags} ${jansson_path}/libjansson.a" else - # When irods is enabled, we also need ssl + echo "*** Could not find irods jansson in ${irods_path}/external" + irods_avail=no + fi + + if [ "${irods_avail}" = yes ] + then + # irods needs openssl config_openssl_path=yes + echo "*** warning: irods 4.x requires plugins installed in /var/lib, or for the irods_plugins_home variable to be set." fi -else - echo "*** skipping irods support" fi +report_detection irods "${irods_avail}" "${config_irods_path}" "${irods_path}" + -if [ $config_mysql_path != no ] && library_search mysqlclient ${mysql_path} mysql +mysql_avail=no +if [ $config_mysql_path != no ] then + mysql_avail=yes mysql_path=${mysql_path:-${base_root}} + if library_search mysqlclient ${mysql_path} mysql + then + mysql_ldflags="${library_search_result}" - mysql_ldflags="${library_search_result}" + if [ "${mysql_path}" != "${base_root}" ] + then + mysql_ccflags="-I${mysql_path}/include" + fi - if [ "${mysql_path}" != "${base_root}" ] - then - mysql_ccflags="-I${mysql_path}/include" + mysql_ccflags="${mysql_ccflags} -DHAS_MYSQL -DHAS_BXGRID" + else + mysql_avail=no fi - ccflags="${ccflags} -DHAS_MYSQL -DHAS_BXGRID" - # It seems that the various versions move around the key include file, # so we check for it in several places here. - if [ -f ${mysql_path}/include/mysql.h ] then - ccflags="${ccflags} -DHAS_MYSQL_H" + mysql_ccflags="${mysql_ccflags} -DHAS_MYSQL_H" + elif [ -f ${mysql_path}/include/mysql/mysql.h ] + then + mysql_ccflags="${mysql_ccflags} -DHAS_MYSQL_MYSQL_H" + else + mysql_avail=no fi - if [ -f ${mysql_path}/include/mysql/mysql.h ] + if [ "${mysql_avail}" = yes ] then - ccflags="${ccflags} -DHAS_MYSQL_MYSQL_H" + # mysql needs openssl + config_openssl_path=yes fi +fi - # When mysql is enabled, we also need ssl - config_openssl_path=yes +report_detection mysql "${mysql_avail}" "${config_mysql_path}" "${mysql_path}" -else - if [ $config_mysql_path = yes ] + +xrootd_avail=no +if [ $config_xrootd_path != no ] +then + xrootd_avail=yes + xrootd_path=${xrootd_path:-${base_root}} + if check_file ${xrootd_path}/include/xrootd/XrdVersion.hh then - echo "*** Sorry, I couldn't find MySQL in $mysql_path" - echo "*** Check --with-mysql-path and try again." - exit 1 + xrootd_ccflags="-DHAS_XROOTD -I${xrootd_path}/include/xrootd" + + for library in XrdPosix XrdClient XrdSys XrdNet XrdNetUtil XrdOuc + do + if library_search $library ${xrootd_path} ${xrootd_arch} + then + xrootd_ldflags="${xrootd_ldflags} ${library_search_result}" + else + echo "*** Couldn't find $library in ${xrootd_path}" + xrootd_avail=no + fi + done else - echo "*** skipping mysql support" + xrootd_avail=no fi fi -if [ $config_xrootd_path != no ] && check_file ${xrootd_path}/include/xrootd/XrdVersion.hh +if [ "${xrootd_avail}" = yes ] then - xrootd_path=${xrootd_path:-${base_root}} + # xrootd needs openssl + config_openssl_path=yes +fi + +report_detection xrootd "${xrootd_avail}" "${config_xrootd_path}" "${xrootd_path}" + - if [ "$xrootd_arch" = auto ] +cvmfs_avail=no +if [ $config_cvmfs_path != no ] +then + cvmfs_avail=yes + cvmfs_path=${cvmfs_path:-${base_root}} + if check_file ${cvmfs_path}/include/libcvmfs.h && library_search cvmfs ${cvmfs_path} then - if [ "$BUILD_CPU" = X86_64 ] - then - xrootd_arch=x86_64_linux_26 - else - xrootd_arch=i386_linux26 - fi + cvmfs_ccflags="-DHAS_CVMFS -I${cvmfs_path}/include" + cvmfs_ldflags="${library_search_result}" + else + cvmfs_avail=no fi +fi - echo "using an xrootd arch of '$xrootd_arch' (if this is wrong, use the --xrootd-arch argument)" +if [ "${cvmfs_avail}" = yes ] +then + # cvmfs needs openssl and uuid + config_openssl_path=yes + config_uuid_path=yes +fi - ccflags="${ccflags} -DHAS_XROOTD" - xrootd_ccflags="-I${xrootd_path}/include/xrootd" +report_detection cvmfs "${cvmfs_avail}" "${config_cvmfs_path}" "${cvmfs_path}" - for library in XrdPosix XrdClient XrdSys XrdNet XrdNetUtil XrdOuc - do - if library_search $library ${xrootd_path} ${xrootd_arch} - then - xrootd_ldflags="${xrootd_ldflags} ${library_search_result}" - else - echo "*** Couldn't find $library in ${xrootd_path}" - exit 1 - fi - done -else - if [ $config_xrootd_path = yes ] +# uuid only needed for cvmfs, thus we never use 'auto', only 'yes' +uuid_avail=no +if [ "${config_uuid_path}" = yes ] +then + uuid_avail=yes + uuid_path=${uuid_path:-${base_root}} + if library_search uuid $uuid_path then - echo "*** Sorry, I couldn't find xrootd in ${xrootd_path}" - echo "*** Check --with-xrootd-path and try again." - exit 1 + cvmfs_ldflags="${cvmfs_ldflags} ${library_search_result}" else - echo "*** skipping xrootd support" + uuid_avail=no fi fi -if [ $config_cvmfs_path != no ] && check_file ${cvmfs_path}/include/libcvmfs.h -then - cvmfs_path=${cvmfs_path:-${base_root}} - config_openssl_path=yes +report_detection uuid "${uuid_avail}" "${config_uuid_path}" "${uuid_path}" - ccflags="${ccflags} -DHAS_CVMFS" - cvmfs_ccflags="-I${cvmfs_path}/include" - if library_search cvmfs ${cvmfs_path} +fuse_avail=no +if [ $config_fuse_path != no ] +then + fuse_avail=yes + fuse_path=${fuse_path:-${base_root}} + if library_search fuse ${fuse_path} || library_search fuse / then - cvmfs_ldflags="${library_search_result}" + if [ "${fuse_path}" != / -a "${fuse_path}" != ${base_root} ] + then + fuse_ccflags="-I${fuse_path}/include" + fi + fuse_ldflags="-DHAS_FUSE ${library_search_result}" else - echo "*** Couldn't find $library in ${cvmfs_path}" - exit 1 + fuse_avail=no fi +fi + +report_detection fuse "${fuse_avail}" "${config_fuse_path}" "${fuse_path}" + - cvmfs_version=$(sed -n 's/^#define LIBCVMFS_VERSION \+\([0-9]\+\)/\1/p' ${cvmfs_path}/include/libcvmfs.h) - if [ $cvmfs_version -gt 1 ] +ext2fs_avail=no +if [ $config_ext2fs_path != no ] +then + ext2fs_avail=yes + ext2fs_path=${ext2fs_path:-${base_root}} + if [ "${fuse_avail}" = no ] + then + echo "*** ext2fs support requires fuse" + ext2fs_avail=no + elif library_search ext2fs ${ext2fs_path} || library_search ext2fs / then - if library_search uuid $uuid_path + if [ "${ext2fs_path}" != / -a "${ext2fs_path}" != /usr ] then - cvmfs_ldflags="${cvmfs_ldflags} ${library_search_result}" - else - echo "*** Couldn't find libuuid" - echo "*** Check --with-uuid-path and try again." - exit 1 + ext2fs_ccflags="-I${ext2fs_path}/include" fi + ext2fs_ldflags="-DHAS_EXT2FS ${library_search_result} -lcom_err" fi -else - if [ $config_cvmfs_path = yes ] +fi + +report_detection ext2fs "${ext2fs_avail}" "${config_ext2fs_path}" "${ext2fs_path}" + + +mpi_avail=no +mpi_exe="" +if [ "$config_mpi_path" != no ] +then + mpi_avail=yes + mpi_path=${mpi_path:-${base_root}} + + if [ "${config_mpi_path}" = auto ] && search_file_executable mpicc then - echo "*** Sorry, I couldn't find cvmfs in ${cvmfs_path}" - echo "*** Check --with-cvmfs-path and try again." - exit 1 + mpi_exe=${executable_search_result} + elif search_file_executable ${mpi_path}{,/bin/mpicc,/mpicc} + then + mpi_exe=${executable_search_result} else - echo "*** skipping cvmfs support" + mpi_avail=no + fi + + if [ "${mpi_avail}" = yes ] + then + ccflags="-DCCTOOLS_WITH_MPI" + ccompiler=${mpi_exe} + linker=${mpi_exe} + else + mpi_avail=no fi fi -if [ $config_fuse_path != no ] -then - fuse_path=${fuse_path:-${base_root}} - if library_search fuse ${fuse_path} || library_search fuse / - then - if [ "${fuse_path}" != / -a "${fuse_path}" != ${base_root} ] - then - fuse_ccflags="-I${fuse_path}/include" - fi - ccflags="${ccflags} -DHAS_FUSE" - fuse_ldflags="${library_search_result}" - fuse_avail=yes - else - if [ $config_fuse_path = yes ] - then +report_detection mpi "${mpi_avail}" "${config_mpi_path}" "${mpi_path}" - echo "*** Sorry, I couldn't find Fuse in $fuse_path" - echo "*** Check --with-fuse-path and try again." - exit 1 - else - echo "*** skipping fuse support" - fi - fi -else - echo "*** skipping fuse support" -fi ########################################################################## # SWITCH BACK TO DYNAMIC LINKING FOR COMMON SYSTEM LIBRARIES @@ -786,50 +770,80 @@ library_search_mode=prefer_dynamic ########################################################################## -if [ $config_readline_path != no ] && library_search readline ${readline_path} +readline_avail=no +if [ $config_readline_path != no ] then + readline_avail=yes readline_path=${readline_path:-${base_root}} - external_libraries="${external_libraries} ${library_search_result}" - if [ "${readline_path}" != "${base_root}" ] + if library_search readline ${readline_path} then - ccflags="${ccflags} -I${readline_path}/include" - fi + external_libraries="${external_libraries} ${library_search_result}" - ccflags="${ccflags} -DHAS_LIBREADLINE" + if [ "${readline_path}" != "${base_root}" ] + then + ccflags="${ccflags} -I${readline_path}/include" + fi - # We rely on the --as-needed flag to figure out what dynamic - # libraries are actually used by each executable. - # However, libreadline doesn't properly specify a dependency - # on ncurses, termcap, and history, so we must force them to link. + ccflags="${ccflags} -DHAS_LIBREADLINE" - if [ $BUILD_SYS = LINUX ] - then - # Remove the -lreadline that was added by "library_search readline" above - external_libraries=`echo $external_libraries | sed "s/-lreadline//"` + # We rely on the --as-needed flag to figure out what dynamic + # libraries are actually used by each executable. + # However, libreadline doesn't properly specify a dependency + # on ncurses, termcap, and history, so we must force them to link. - # Put the readline flags in a separate variable to be used only where needed. - cctools_readline_ldflags="-lreadline ${link_no_as_needed} -lncurses -lhistory ${link_as_needed}" - else - if library_search ncurses ${readline_path} + if [ $BUILD_SYS = LINUX ] then - external_libraries="${external_libraries} ${library_search_result}" - fi + # Remove the -lreadline that was added by "library_search readline" above + external_libraries=`echo $external_libraries | sed "s/-lreadline//"` - if library_search termcap ${readline_path} - then - external_libraries="${external_libraries} ${library_search_result}" + # Put the readline flags in a separate variable to be used only where needed. + readline_ldflags="-lreadline ${link_no_as_needed} -lncurses -lhistory ${link_as_needed}" + else + if library_search ncurses ${readline_path} + then + external_libraries="${external_libraries} ${library_search_result}" + fi + + if library_search termcap ${readline_path} + then + external_libraries="${external_libraries} ${library_search_result}" + fi + + if library_search history ${readline_path} + then + external_libraries="${external_libraries} ${library_search_result}" + fi fi + else + readline_avail=no + fi +fi + +report_detection readline "${readline_avail}" "${config_readline_path}" "${readline_path}" - if library_search history ${readline_path} + +curl_avail=no +if [ $config_curl_path != no ] +then + curl_avail=yes + curl_path=${curl_path:-${base_root}} + if library_search curl ${curl_path} || library_search curl / + then + if [ "${curl_path}" != / -a "${curl_path}" != /usr ] then - external_libraries="${external_libraries} ${library_search_result}" + curl_ccflags="-I${curl_path}/include" fi + ccflags="${ccflags} -DHAS_CURL" + curl_ldflags="${library_search_result} -lcrypto" + else + curl_avail=no fi -else - echo "*** skipping readline..." fi +report_detection curl "${curl_avail}" "${config_curl_path}" "${curl_path}" + + if [ $BUILD_SYS = DARWIN ] then if [ -d "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include" ] @@ -844,402 +858,354 @@ fi fi -found_swig=no + +### version requirements for swig: +# at least version 1.3.29 for python 2.4--2.7 +# at least version 2.0.4 for python 3.0-- +# at least version 4.0 for golang 1.5-- + +swig_avail=no +swig_exe="" +swig_version="" if [ $config_swig_path != no ] then + swig_avail=yes swig_path=${swig_path:-${base_root}} if [ "$optstatic" = 1 ] then echo "*** buildin statically, skipping swig support" + swig_avail=no + elif [ "${config_swig_path}" = auto ] && search_file_executable ${SWIG} swig + then + swig_exe="${executable_search_result}" + elif search_file_executable ${swig_path}{,/bin/swig,/swig} + then + swig_exe="${executable_search_result}" else - swig="" - if check_file ${swig_path}/bin/swig - then - swig=${swig_path}/bin/swig - else - if check_path swig - then - swig=`which swig` - else - echo "*** skipping swig bindings for work queue and chirp" - fi - fi - - if [ -n "$swig" ] - then - swig_version=`${swig} -version | grep -i version | awk '{print $3}'` + swig_avail=no + fi - if [ ! \( "$python_major_version" = 2 -a "$python_minor_version" = 4 \) -a `format_version $swig_version` = `format_version 1.3.29` ] - then - echo "*** Sorry, Swig 1.3.29 does not work with Python $python_version." - echo "*** skipping swig bindings for work queue and chirp" - elif [ "$python_dev" = no ] - then - echo "*** Sorry, Swig needs the develovement files for python (e.g., python-devel, or python-dev)." - echo "*** skipping swig bindings for work queue and chirp" - elif [ "$python3" != 0 -a `format_version $swig_version` -lt `format_version 2.0.4` ] - then - # Python 3 requires Swig version >= 2.0.4; cf. - # http://sourceforge.net/p/swig/bugs/1104/ and - # http://sourceforge.net/p/swig/news/?page=1 - echo "*** Sorry, Swig $swig_version does not work with Python 3 version $python3_version." - echo "*** Specifically, Swig >= 2.0.4 is needed for Python 3 support." - found_swig=old - elif [ `format_version $swig_version` -ge `format_version 1.3.29` ] - then - found_swig=yes - else - echo "*** Sorry, I need swig >= 1.3.29" - echo "*** skipping swig bindings for work queue and chirp" - fi - else - if [ $config_swig_path = yes ] - then - echo "*** Sorry, I couldn't find swig in $swig_path" - echo "*** Check --with-swig-path and try again." - exit 1 - else - echo "*** skipping swig bindings for work queue" - fi - fi + if [ "${swig_avail}" = yes ] + then + swig_version=$(${swig_exe} -version | grep -i version | awk '{print $3}') fi fi +report_detection swig "${swig_avail}" "${config_swig_path}" "${swig_path}" + + +perl_avail=no +perl_exe="" +perl_version="" if [ $config_perl_path != no ] then + perl_avail=yes perl_path=${perl_path:-${base_root}} - if check_file ${perl_path}/bin/perl + if [ "${swig_avail}" = no ] + then + echo "*** swig is needed for perl support" + perl_avail=no + elif [ "${config_perl_path}" = auto ] && search_file_executable perl + then + perl_exe=${executable_search_result} + elif search_file_executable ${perl_path}{,/bin/perl} then - perl=${perl_path}/bin/perl + perl_exe=${executable_search_result} else - perl=0 + perl_avail=no fi - if [ $perl != 0 ] + if [ "${perl_avail}" = yes ] then - perl_version=`${perl} -e 'printf "%vd\n",$^V;'` + perl_version=$(${perl_exe} -e 'printf "%vd\n",$^V;' 2> /dev/null) if [ $? = 0 ] then echo "perl version is ${perl_version}" else - perl=0 + perl_avail=no fi fi - if [ $perl != 0 ] + # check that the perl core module to ask for correct compilation flags is + # available + if "${perl_exe}" -e 'eval { require ExtUtils::Embed }; $@ ? exit(1) : exit(0)' + then + perl_ccflags=$(${perl_exe} -MExtUtils::Embed -e ccopts) + perl_ldflags=$(${perl_exe} -MExtUtils::Embed -e ldopts) + else + echo "*** perl core module ExtUtils::Embed is not available" + perl_avail=no + fi + + if [ "${perl_avail}" = yes -a "${BUILD_SYS}" = DARWIN ] + then + # On OSX, the ExtUtils::Embed options contain options + # to generate triple-fat binaries, which fails when + # we attempt to bring in our thin binaries. + + # To avoid this problem, remove all of the -arch XXX + # arguments, so that the compiler produces the default, + # which will be compatible with the other objects we compile. + perl_ccflags=`echo ${perl_ccflags} | sed 's/-arch [^ ]* *//g'` + perl_ldflags=`echo ${perl_ldflags} | sed 's/-arch [^ ]* *//g'` + fi + + if [ "${perl_avail}" = yes ] then + # Remove -lperl, as it is not needed for swig, and it causes trouble if libperl is not compiled with -fPIC, as in conda. + perl_ldflags=`echo ${perl_ldflags} | sed 's/-lperl//g'` - if perl -e 'eval { require ExtUtils::Embed }; $@ ? exit(1) : exit(0)' + if [ "${CONDA_BUILD}" = 1 ] then - perl_ccflags=`${perl} -MExtUtils::Embed -e ccopts` - perl_ldflags=`${perl} -MExtUtils::Embed -e ldopts` + perl_install_dir="site_perl" + else + perl_install_dir="perl5/site_perl" + fi - if [ $? = 0 ] - then - # On OSX, the ExtUtils::Embed options contain options - # to generate triple-fat binaries, which fails when - # we attempt to bring in our thin binaries. - - # To avoid this problem, remove all of the -arch XXX - # arguments, so that the compiler produces the default, - # which will be compatible with the other objects we compile. + swig_bindings="$swig_bindings perl" + fi +fi - if [ ${BUILD_SYS} = DARWIN ] - then - perl_ccflags=`echo ${perl_ccflags} | sed 's/-arch [^ ]* *//g'` - perl_ldflags=`echo ${perl_ldflags} | sed 's/-arch [^ ]* *//g'` - fi +report_detection perl "${perl_avail}" "${config_perl_path}" "${perl_path}" - # Remove -lperl, as it is not needed for swig, and it causes trouble if libperl is not compiled with -fPIC, as in conda. - perl_ldflags=`echo ${perl_ldflags} | sed 's/-lperl//g'` - if [ "${CONDA_BUILD}" = 1 ] - then - perl_install_dir="site_perl" - else - perl_install_dir="perl5/site_perl" - fi +### This section does not configure python, only determines which version to +### use (2 or 3) when not specified. +if [ $config_python_path != no ] +then + python_path=${python_path:-${base_root}} + python_exe="" - swig_bindings="$swig_bindings perl" - else - perl=0 - fi - else - perl=0 - fi + if [ "${config_python_path}" = auto ] && search_file_executable python python3 python2 > /dev/null 2>&1 + then + python_exe=${executable_search_result} + elif search_file_executable ${python_path}{,/python,/python3,/python2} > /dev/null 2>&1 + then + python_exe=${executable_search_result} fi - if [ $perl = 0 ] + if [ -n "${python_exe}" ] then - if [ $config_perl_path = yes ] + python_major_version=$(${python_exe} -c 'import sys; print(sys.version_info[0])' 2> /dev/null) + + # only set python*_path if not already explicitely set + if [ "${config_python2_path}" != yes -a "${config_python3_path}" = auto -a "${python_major_version}" = 3 ] then - echo "*** Sorry, I couldn't find the perl libraries in $perl_path" - echo "*** Check --with-perl-path and try again." - exit 1 - else - echo "*** skipping perl support" + python3_path=${python_path} + config_python2_path=no + elif [ "${config_python2_path}" = auto -a "${config_python3_path}" != yes -a "${python_major_version}" = 2 ] + then + python2_path=${python_path} + config_python3_path=no fi fi fi -python=0 #to be set to the python path -if [ $config_python_path != no ] +### configure python2 +python2_avail=no +python2_exe="" +python2_version="" +if [ $config_python2_path != no ] then - python_path=${python_path:-${base_root}} - if [ -n "$PYTHON" ] && check_file ${PYTHON} + python2_avail=yes + python2_path=${python_path:-${base_root}} + + if [ "${swig_avail}" = no ] then - python=${PYTHON} - elif check_file ${python_path}/bin/python2 + echo "*** swig is needed for python2 support" + python2_avail=no + elif [ $(format_version ${swig_version}) -lt $(format_version 1.3.29) ] then - python=${python_path}/bin/python2 - elif check_file ${python_path}/bin/python + echo "*** swig version ${swig_version} is older than 1.3.29, disabling python2 support" + python2_avail=no + elif [ "${config_python2_path}" = auto ] && search_file_executable python python2 then - python=${python_path}/bin/python + python2_exe=${executable_search_result} + elif search_file_executable ${python2_path}{,/bin/python,/bin/python2,/python,/python2} + then + python2_exe=${executable_search_result} else - python=0 + python2_avail=no fi -if [ $python != 0 ] -then - python_version=`${python} -V 2>&1 | cut -d " " -f 2` - echo "python version is ${python_version}" - python_major_version=`echo ${python_version} | cut -d . -f 1` - python_minor_version=`echo ${python_version} | cut -d . -f 2 | cut -d . -f 1,2` - if [ "$python_major_version" = 2 -a "$python_minor_version" -ge 4 ] + if [ "${python2_avail}" = yes ] then - if check_file ${python_path}/include/python2.$python_minor_version/Python.h - then - echo "found python development libraries" - python_ccflags_file=`mktemp tmp.XXXXXX` - python_ldflags_file=`mktemp tmp.XXXXXX` - python_dev=yes + python2_version=$(${python2_exe} -c 'import sys; print("%d.%d" % (sys.version_info[0],sys.version_info[1]))' 2> /dev/null) - env HOME=/var/empty ${python} > $python_ccflags_file < $python_ldflags_file <= 2.4" - python=0 fi -fi -fi -if [ "$python_dev" = no ] -then - if [ $config_python_path = yes ] + if [ "${python2_avail}" = yes ] then - echo "*** Sorry, I couldn't find the Python >= 2.4 libraries in $python_path" - echo "*** Check --with-python-path and try again." - exit 1 - else - echo "*** skipping python bindings support" + # to change to python2 + swig_bindings="$swig_bindings python2" fi fi +report_detection python2 "${python2_avail}" "${config_python2_path}" "${python2_path}" + + +### configure python3 +python3_avail=no +python3_exe="" +python3_version="" if [ $config_python3_path != no ] then - python3_path=${python3_path:-${base_root}} - if [ -n "$PYTHON3" ] && check_file ${PYTHON3} + python3_avail=yes + python3_path=${python_path:-${base_root}} + + if [ "${swig_avail}" = no ] + then + echo "*** swig is needed for python3 support" + python3_avail=no + elif [ $(format_version ${swig_version}) -lt $(format_version 2.0.4) ] then - python3=${PYTHON3} - elif check_file ${python3_path}/bin/python3 + echo "*** swig version ${swig_version} is older than 2.0.4, disabling python3 support" + python3_avail=no + elif [ "${config_python3_path}" = auto ] && search_file_executable python python3 then - python3=${python3_path}/bin/python3 - elif check_file ${python3_path}/bin/python + python3_exe=${executable_search_result} + elif search_file_executable ${python3_path}{,/bin/python,/bin/python3,/python,/python3} then - python3=${python3_path}/bin/python + python3_exe=${executable_search_result} else - python3=0 + python3_avail=no fi - if check_file ${python3_path}/bin/2to3 + if [ "${python3_avail}" = yes ] then - python3_2to3=${python3_path}/bin/2to3 - else - python3=0 + python3_version=$(${python3_exe} -c 'import sys; print("{}.{}".format(sys.version_info[0],sys.version_info[1]))' 2> /dev/null) + + if [ -z "${python3_version}" ] + then + echo "*** could not find version of python from ${python3_exe}" + python3_avail=no + elif [ $(format_version ${python3_version}) -lt $(format_version 3.0) ] + then + echo "*** ${python3_exe} version ${python3_version} is not a python3" + python3_avail=no + fi fi - if [ $python3 != 0 ] + + if [ "${python3_avail}" = yes ] then - python3_version=`${python3} -V 2>&1 | cut -d " " -f 2` - echo "python3 version is ${python3_version}" - python3_major_version=`echo ${python3_version} | cut -d . -f 1` - python3_minor_version=`echo ${python3_version} | cut -d . -f 2 | cut -d . -f 1,2` - if [ "$python3_major_version" = 3 ] + if check_file ${python3_exe}${python3_version}-config then - python3_include=`${python3} -c 'from distutils import sysconfig; print(sysconfig.get_python_inc())'` - if check_file ${python3_include}/Python.h && check_file ${python3}-config - then - echo "found python3 development libraries" - python3_ccflags=$(${python3}-config --includes) - # python3_ldflags=$(${python3}-config --ldflags) # it includes static libs, so we need: - python3_ldflags_file=`mktemp tmp.XXXXXX` - env HOME=/var/empty ${python3} > $python3_ldflags_file <= 3.0" - python3=0 + echo "*** could not find ${python3_exe}${python3_version}-config" + python3_avail=no fi fi - if [ $python3 = 0 ] + if [ "${python3_avail}" = yes ] then - if [ $config_python3_path = yes ] - then - echo "*** Sorry, I couldn't find the Python3 >= 3.0 libraries in $python3_path" - echo "*** Check --with-python3-path and try again." - exit 1 - else - echo "*** skipping python3 support" - fi + swig_bindings="$swig_bindings python3" fi fi +report_detection python3 "${python3_avail}" "${config_python3_path}" "${python3_path}" -if [ "$fuse_avail" != yes ]; then - echo "grow_fuse requires FUSE" -fi - -# If python is not found, then leave out weaver. - -if [ "$python" = 0 ] +# python_test_exec is the python executable to use in make test +# preference is given to python3 +python_test_exec="" +python_test_dir="" +if [ "${python3_avail}" = yes ] then - echo "python version is suitable for prune" - echo "python version is suitable for weaver" -else - packages=`echo ${packages} | sed 's/umbrella//g'` - echo "prune requires python >= 2.6" - packages=`echo ${packages} | sed 's/prune//g'` - echo "weaver requires python >= 2.6" - packages=`echo ${packages} | sed 's/weaver//g'` -fi - -if [ "$python" = 0 -o "$python3" = 0 ] + python_test_exec=${python3_exe} + python_test_dir=python3 +elif [ "${python2_avail}" = yes ] then - echo "python version is suitable for umbrella" -else - echo "umbrella requires python >= 2.6" + python_test_exec=${python2_exe} + python_test_dir=python2 fi +golang_avail=no +golang_exe="" if [ $config_golang_path != no ] then + golang_avail=yes golang_path=${golang_path:-${base_root}} - if check_file ${golang_path}/bin/go - then - golang=${golang_path}/bin/go - else - golang=0 - fi - if [ $golang = 0 ] + if [ "${swig_avail}" = no ] then - if [ $config_golang_path = yes ] - then - echo "*** Sorry, I couldn't find a go installation in $golang_path" - echo "*** Check --with-golang-path and try again." - exit 1 - else - echo "*** skipping golang support" - fi + echo "*** swig is needed for golang support" + golang_avail=no + elif [ $(format_version ${swig_version}) -lt $(format_version 4.0) ] + then + echo "*** swig version ${swig_version} is older than 4.0, disabling golang support" + golang_avail=no + elif [ "${config_golang_path}" = auto ] && search_file_executable go + then + golang_exe=${executable_search_result} + elif search_file_executable ${golang_path}{,/bin/go,go} + then + golang_exe=${executable_search_result} else - if [ $found_swig = yes ] && [ "$(${swig} -go --help | grep '\-cgo')" ] - then - swig_bindings="${swig_bindings} golang" - else - if [ $config_golang_path = yes ] - then - echo "*** Sorry, the swig installation does not support golang" - echo "*** Check --with-swig-path and try again." - exit 1 - else - echo "*** skipping golang support" - fi - fi + golang_avail=no fi fi -if [ $found_swig = no ] -then - swig_bindings="" -fi +report_detection golang "${golang_avail}" "${config_golang_path}" "${golang_path}" + + library_search_standard() { @@ -1250,30 +1216,34 @@ } +openssl_avail=no if [ $config_openssl_path != no ] then + openssl_avail=yes openssl_path=${openssl_path:-${base_root}} if ! library_search_standard ssl $openssl_path then echo "*** Couldn't find libssl" - echo "*** Check --with-openssl-path and try again." - exit 1 + openssl_avail=no fi if ! library_search_standard crypto $openssl_path then echo "*** Couldn't find libcrypto" - echo "*** Check --with-openssl-path and try again." - exit 1 + openssl_avail=no fi fi +report_detection openssl "${openssl_avail}" "${config_openssl_path}" "${openssl_path}" + + # from glibc: library_search_standard resolv ${base_root} library_search_standard socket ${base_root} library_search_standard nsl ${base_root} + # Finally, add in standard system libraries found everywhere if [ $BUILD_SYS != DARWIN ] @@ -1281,10 +1251,7 @@ external_libraries="${external_libraries} -lrt" fi -if [ $BUILD_SYS != FREEBSD ] || [ $BUILD_SYS != DRAGONFLY ] -then - external_libraries="${external_libraries} -ldl" -fi +external_libraries="${external_libraries} -ldl" zlib_path=${zlib_path:-${base_root}} if library_search z ${zlib_path} @@ -1296,19 +1263,18 @@ ldflags="${ldflags} -L${zlib_path}/lib" fi else + # zlib is a hard requirement, thus we immediately exit if we can't find it. echo "*** Sorry, I couldn't find zlib in $zlib_path" echo "*** Check --with-zlib-path and try again." exit 1 fi + if [ "$optstatic" = 1 ] then static_libraries="../../dttools/src/libdttools.a ${zlib_path}/lib/libz.a" -elif [ ${BUILD_SYS} != CYGWIN ] -then - external_libraries="${external_libraries} -lstdc++ -lpthread -lz -lc -lm" else - external_libraries="${external_libraries} -lstdc++ -lpthread -lz -lm" + external_libraries="${external_libraries} -lstdc++ -lpthread -lz -lc -lm" fi if [ $BUILD_SYS = DARWIN ] @@ -1360,17 +1326,17 @@ cctools_doctargets= if check_path doxygen then - cctools_doctargets="${cctools_doctargets} apipages" + cctools_doctargets="apipages ${cctools_doctargets}" else echo "*** not building API documentation" fi if check_path m4 then - cctools_doctargets="${cctools_doctargets} htmlpages" + cctools_doctargets="htmlpages mdpages ${cctools_doctargets}" if check_path nroff then - cctools_doctargets="${cctools_doctargets} manpages" + cctools_doctargets="manpages ${cctools_doctargets}" else echo "*** not building man pages" fi @@ -1440,10 +1406,14 @@ echo "grow cannot currently be build statically". include_package_grow="" fi + + if [ "$fuse_avail" != yes ]; then + echo "grow_fuse requires FUSE" + fi fi -potential_packages="dttools batch_job ${include_package_grow} ${include_package_makeflow} work_queue ${include_package_apps} ${include_package_sand} ${include_package_allpairs} ${include_package_wavefront} ${include_package_ftplite} ${include_package_parrot} ${include_package_resource_monitor} ${include_package_chirp} ${include_package_weaver} ${include_package_umbrella} ${include_package_deltadb} ${include_package_prune} ${include_package_doc}" +potential_packages="dttools batch_job ${include_package_grow} ${include_package_makeflow} work_queue ${include_package_apps} ${include_package_ftplite} ${include_package_parrot} ${include_package_resource_monitor} ${include_package_chirp} ${include_package_weaver} ${include_package_umbrella} ${include_package_deltadb} ${include_package_prune} ${include_package_doc}" echo "checking for all the things I know how to build..." for p in $potential_packages @@ -1461,18 +1431,6 @@ fi done - -# We always compile with debugging enabled, -# however on Solaris, the -g option results in a different -# debugging format that causes linking errors in getopt code. - -if [ $BUILD_SYS = SUNOS ] -then - debug_flag="-gstabs+" -else - debug_flag="-g" -fi - ccflags_append_define \ "BUILD_DATE='\"$BUILD_DATE\"'" \ "BUILD_HOST='\"$BUILD_HOST\"'" \ @@ -1493,8 +1451,9 @@ "_GNU_SOURCE" \ "_REENTRANT" -ccflags_append "$debug_flag" -ldflags="${ldflags} ${debug_flag}" +debug_flags="-g" +ccflags_append "$debug_flags" +ldflags="${ldflags} ${debug_flags}" if [ X$include_package_parrot = "Xparrot" ] then @@ -1525,7 +1484,6 @@ rm -f libparrot.test.c libparrot.test fi - echo "Creating config.mk..." if [ "$optdebug" = 1 ]; then @@ -1540,7 +1498,8 @@ swig_workqueue_bindings="" swig_chirp_bindings="" -if [ "$found_swig" != no ] +swig_rmonitor_bindings="" +if [ "$swig_avail" = yes ] then for binding in $swig_bindings do @@ -1553,6 +1512,11 @@ then swig_chirp_bindings="$binding $swig_chirp_bindings" fi + + if [ -d resource_monitor/src/bindings/${binding} ] + then + swig_rmonitor_bindings="$binding $swig_rmonitor_bindings" + fi done fi @@ -1594,8 +1558,6 @@ CCTOOLS_LDFLAGS = -L\$(CCTOOLS_INSTALL_DIR)/lib \$(CCTOOLS_BASE_LDFLAGS) -CCTOOLS_READLINE_LDFLAGS=${cctools_readline_ldflags} - CCTOOLS_STATIC=${optstatic} CCTOOLS_DYNAMIC_SUFFIX=${cctools_dynamic_suffix} @@ -1612,33 +1574,37 @@ CCTOOLS_CHIRP=${include_package_chirp} -CCTOOLS_SWIG=${swig} +CCTOOLS_READLINE_AVAILABLE=${readline_avail} +CCTOOLS_READLINE_LDFLAGS=${readline_ldflags} + +CCTOOLS_SWIG_AVAILABLE=${swig_avail} +CCTOOLS_SWIG=${swig_exe} CCTOOLS_SWIG_WORKQUEUE_BINDINGS=${swig_workqueue_bindings} CCTOOLS_SWIG_CHIRP_BINDINGS=${swig_chirp_bindings} +CCTOOLS_SWIG_RMONITOR_BINDINGS=${swig_rmonitor_bindings} -CCTOOLS_PERL=${perl} +CCTOOLS_PERL_AVAILABLE=${perl_avail} +CCTOOLS_PERL=${perl_exe} CCTOOLS_PERL_CCFLAGS=${perl_ccflags} CCTOOLS_PERL_LDFLAGS=${perl_ldflags} CCTOOLS_PERL_VERSION=${perl_version} CCTOOLS_PERL_PATH=\$(CCTOOLS_INSTALL_DIR)/lib/${perl_install_dir}/\$(CCTOOLS_PERL_VERSION) -CCTOOLS_PYTHON=\$(CCTOOLS_PYTHON2) -CCTOOLS_PYTHON_CCFLAGS=\$(CCTOOLS_PYTHON2_CCFLAGS) -CCTOOLS_PYTHON_LDFLAGS=\$(CCTOOLS_PYTHON2_LDFLAGS) -CCTOOLS_PYTHON_VERSION=\$(CCTOOLS_PYTHON2_VERSION) -CCTOOLS_PYTHON_PATH=\$(CCTOOLS_INSTALL_DIR)/lib/python\$(CCTOOLS_PYTHON_VERSION)/site-packages - -CCTOOLS_PYTHON2=${python} -CCTOOLS_PYTHON2_CCFLAGS=${python_ccflags} -CCTOOLS_PYTHON2_LDFLAGS=${python_ldflags} -CCTOOLS_PYTHON2_VERSION=${python_major_version}.${python_minor_version} +CCTOOLS_PYTHON_TEST_EXEC=${python_test_exec} +CCTOOLS_PYTHON_TEST_DIR=${python_test_dir} + +CCTOOLS_PYTHON2_AVAILABLE=${python2_avail} +CCTOOLS_PYTHON2=${python2_exe} +CCTOOLS_PYTHON2_CCFLAGS=${python2_ccflags} +CCTOOLS_PYTHON2_LDFLAGS=${python2_ldflags} +CCTOOLS_PYTHON2_VERSION=${python2_version} CCTOOLS_PYTHON2_PATH=\$(CCTOOLS_INSTALL_DIR)/lib/python\$(CCTOOLS_PYTHON2_VERSION)/site-packages -CCTOOLS_PYTHON3=${python3} -CCTOOLS_PYTHON3_CCFLAGS=${python3_ccflags} +CCTOOLS_PYTHON3_AVAILABLE=${python3_avail} +CCTOOLS_PYTHON3=${python3_exe} +CCTOOLS_PYTHON3_CCFLAGS=-DNDEBUG ${python3_ccflags} CCTOOLS_PYTHON3_LDFLAGS=${python3_ldflags} -CCTOOLS_PYTHON3_VERSION=${python3_major_version}.${python3_minor_version} -CCTOOLS_PYTHON3_2TO3=${python3_2to3} +CCTOOLS_PYTHON3_VERSION=${python3_version} CCTOOLS_PYTHON3_PATH=\$(CCTOOLS_INSTALL_DIR)/lib/python\$(CCTOOLS_PYTHON3_VERSION)/site-packages CCTOOLS_PYDOC=$(which pydoc 2> /dev/null || which pydoc2 2> /dev/null || which pydoc3 > /dev/null) @@ -1655,28 +1621,72 @@ CCTOOLS_VERSION=${VERSION} CCTOOLS_RELEASEDATE=${RELEASE_DATE} +CCTOOLS_IRODS_AVAILABLE=${irods_avail} CCTOOLS_IRODS_LDFLAGS=${irods_ldflags} CCTOOLS_IRODS_CCFLAGS=${irods_ccflags} +CCTOOLS_MYSQL_AVAILABLE=${mysql_avail} CCTOOLS_MYSQL_LDFLAGS=${mysql_ldflags} CCTOOLS_MYSQL_CCFLAGS=${mysql_ccflags} +CCTOOLS_XROOTD_AVAILABLE=${xrootd_avail} CCTOOLS_XROOTD_LDFLAGS=${xrootd_ldflags} CCTOOLS_XROOTD_CCFLAGS=${xrootd_ccflags} +CCTOOLS_CVMFS_AVAILABLE=${cvmfs_avail} CCTOOLS_CVMFS_LDFLAGS=${cvmfs_ldflags} CCTOOLS_CVMFS_CCFLAGS=${cvmfs_ccflags} +CCTOOLS_EXT2FS_AVAILABLE=${ext2fs_avail} +CCTOOLS_EXT2FS_LDFLAGS=${ext2fs_ldflags} +CCTOOLS_EXT2FS_CCFLAGS=${ext2fs_ccflags} + CCTOOLS_FUSE_AVAILABLE=${fuse_avail} CCTOOLS_FUSE_LDFLAGS=${fuse_ldflags} CCTOOLS_FUSE_CCFLAGS=${fuse_ccflags} +CCTOOLS_MPI_AVAILABLE=${mpi_avail} +CCTOOLS_MPI_LDFLAGS=${mpi_ldflags} +CCTOOLS_MPI_CCFLAGS=${mpi_ccflags} + +CCTOOLS_CURL_AVAILABLE=${curl_avail} +CCTOOLS_CURL_LDFLAGS=${curl_ldflags} +CCTOOLS_CURL_CCFLAGS=${curl_ccflags} + +CCTOOLS_GLOBUS_AVAILABLE=${globus_avail} CCTOOLS_GLOBUS_LDFLAGS=${globus_ldflags} CCTOOLS_GLOBUS_CCFLAGS=${globus_ccflags} export CCTOOLS_TEST_CCFLAGS=${test_ccflags} EOF +echo"" +echo "Optional external systems configured:" +echo"" + +echo "General libraries" +printf "%-15s %3s\n" curl ${curl_avail} +printf "%-15s %3s\n" ext2fs ${ext2fs_avail} +printf "%-15s %3s\n" fuse ${fuse_avail} +printf "%-15s %3s\n" readline ${readline_avail} +printf "%-15s %3s\n" "makeflow mpi" ${mpi_avail} + +echo "" +echo "Language support:" +printf "%-15s %3s\n" swig ${swig_avail} +printf "%-15s %3s\n" golang ${golang_avail} +printf "%-15s %3s\n" perl ${perl_avail} +printf "%-15s %3s\n" python2 ${python2_avail} +printf "%-15s %3s\n" python3 ${python3_avail} + +echo "" +echo "External support configured for parrot:" +printf "%-15s %3s\n" cvmfs ${cvmfs_avail} +printf "%-15s %3s\n" globus ${globus_avail} +printf "%-15s %3s\n" irods ${irods_avail} +printf "%-15s %3s\n" mysql ${mysql_avail} +printf "%-15s %3s\n" xrootd ${xrootd_avail} + echo "" echo "To re-configure, type './configure.rerun'" echo "To build, type '${MAKE}'" diff -Nru cctools-7.0.22/configure.afs cctools-7.1.2/configure.afs --- cctools-7.0.22/configure.afs 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/configure.afs 2020-05-05 15:31:15.000000000 +0000 @@ -24,7 +24,7 @@ PACKAGES_CONFIG="" # perl and python taken from host - for package in fuse irods mysql python3 globus swig xrootd cvmfs uuid + for package in fuse irods mysql python3 globus swig xrootd cvmfs uuid curl do packagepath=$EXTERNAL/${PLATFORM}/$package/cctools-dep diff -Nru cctools-7.0.22/configure.tools.sh cctools-7.1.2/configure.tools.sh --- cctools-7.0.22/configure.tools.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/configure.tools.sh 2020-05-05 15:31:15.000000000 +0000 @@ -61,15 +61,17 @@ check_path () { - echon "checking for $1..." + echon "checking for executable $1..." local check_path_var=$1 if [ "${check_path_var}" != "${check_path_var#/}" ] then - if check_file $check_path_var + if [ -f "${check_path_var}" -a -x "${check_path_var}" ] then + echo "yes" return 0 else + echo "no" return 1 fi fi @@ -77,18 +79,34 @@ IFS=":" for dir in $PATH do - if [ -x $dir/$1 ] + if [ -f $dir/$1 -a -x $dir/$1 ] then - echo "$dir/$1" + echo $dir/$1 IFS=" " return 0 fi done - echo "not found" + echo "no" IFS=" " return 1 } +search_file_executable() { + executable_search_result="" + for candidate in "$@" + do + if check_path ${candidate} + then + executable_search_result=$(which ${candidate}) + return 0 + fi + done + + return 1 +} + + + check_library_static() { local libdir local library @@ -128,7 +146,12 @@ local header name="$1" - header="$2" + shift + + header="$1" + shift + + compiler_options="$@" echon "checking for $name in $header..." @@ -140,7 +163,7 @@ return 0; } EOF - if ${CC:-gcc} .configure.tmp.c -c -o .configure.tmp.o > .configure.tmp.out 2>&1; then + if ${CC:-gcc} .configure.tmp.c -c -o .configure.tmp.o ${compiler_options} > .configure.tmp.out 2>&1; then echo yes rm -f .configure.tmp.c .configure.tmp.out return 0 @@ -178,12 +201,22 @@ fi } -require_path () +optional_path () { if check_path $1 then return 0 else + return 1 + fi +} + +require_path () +{ + if optional_path $1 + then + return 0 + else echo "Sorry, I can't proceed without program $1"; exit 1 fi @@ -672,4 +705,27 @@ fi } +report_detection() +{ + package=$1 + available=$2 + required=$3 + path_tried=$4 + + if [ "${available}" = yes ] + then + echo "compiling with ${package} support" + elif [ "${required}" = no ] + then + echo "${package} support explicitely disabled" + elif [ "${required}" = yes ] + then + echo "*** Sorry, I couldn't find ${package} in ${path_tried}" + echo "*** Check --with-${package}-path and try again" + exit 1 + else + echo "skipping ${package} support as it could not be automatically detected" + fi +} + # vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/contrib/galaxy/cctools.py cctools-7.1.2/contrib/galaxy/cctools.py --- cctools-7.0.22/contrib/galaxy/cctools.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/contrib/galaxy/cctools.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,561 @@ +#!/usr/bin/env python +CCTools datatypes + +""" +import pkg_resources +pkg_resources.require( "bx-python" ) +import gzip +import logging +import os +from cgi import escape +from galaxy import util +from galaxy.datatypes import data +from galaxy.datatypes import metadata +from galaxy.datatypes.checkers import is_gzip +from galaxy.datatypes.metadata import MetadataElement +from galaxy.datatypes.sniff import get_headers, get_test_fname +from galaxy.util.json import to_json_string +import dataproviders + +log = logging.getLogger(__name__) + +@dataproviders.decorators.has_dataproviders +class cctools( data.Text ): + """CCTools Log Data""" + + # All tabular data is chunkable. + CHUNKABLE = True + CHUNK_SIZE = 50000 + + """Add metadata elements""" + MetadataElement( name="comment_lines", default=0, desc="Number of comment lines", readonly=False, optional=True, no_value=0 ) + MetadataElement( name="columns", default=0, desc="Number of columns", readonly=True, visible=False, no_value=0 ) + MetadataElement( name="column_types", default=[], desc="Column types", param=metadata.ColumnTypesParameter, readonly=True, visible=False, no_value=[] ) + MetadataElement( name="column_names", default=[], desc="Column names", readonly=True, visible=False, optional=True, no_value=[] ) + + def init_meta( self, dataset, copy_from=None ): + data.Text.init_meta( self, dataset, copy_from=copy_from ) + def set_meta( self, dataset, overwrite = True, skip = None, max_data_lines = 100000, max_guess_type_data_lines = None, **kwd ): + """ + Tries to determine the number of columns as well as those columns that + contain numerical values in the dataset. A skip parameter is used + because various tabular data types reuse this function, and their data + type classes are responsible to determine how many invalid comment + lines should be skipped. Using None for skip will cause skip to be + zero, but the first line will be processed as a header. A + max_data_lines parameter is used because various tabular data types + reuse this function, and their data type classes are responsible to + determine how many data lines should be processed to ensure that the + non-optional metadata parameters are properly set; if used, optional + metadata parameters will be set to None, unless the entire file has + already been read. Using None for max_data_lines will process all data + lines. + + Items of interest: + + 1. We treat 'overwrite' as always True (we always want to set tabular metadata when called). + 2. If a tabular file has no data, it will have one column of type 'str'. + 3. We used to check only the first 100 lines when setting metadata and this class's + set_peek() method read the entire file to determine the number of lines in the file. + Since metadata can now be processed on cluster nodes, we've merged the line count portion + of the set_peek() processing here, and we now check the entire contents of the file. + """ + # Store original skip value to check with later + requested_skip = skip + if skip is None: + skip = 0 + column_type_set_order = [ 'int', 'float', 'list', 'str' ] #Order to set column types in + default_column_type = column_type_set_order[-1] # Default column type is lowest in list + column_type_compare_order = list( column_type_set_order ) #Order to compare column types + column_type_compare_order.reverse() + def type_overrules_type( column_type1, column_type2 ): + if column_type1 is None or column_type1 == column_type2: + return False + if column_type2 is None: + return True + for column_type in column_type_compare_order: + if column_type1 == column_type: + return True + if column_type2 == column_type: + return False + #neither column type was found in our ordered list, this cannot happen + raise "Tried to compare unknown column types" + def is_int( column_text ): + try: + int( column_text ) + return True + except: + return False + def is_float( column_text ): + try: + float( column_text ) + return True + except: + if column_text.strip().lower() == 'na': + return True #na is special cased to be a float + return False + def is_list( column_text ): + return "," in column_text + def is_str( column_text ): + #anything, except an empty string, is True + if column_text == "": + return False + return True + is_column_type = {} #Dict to store column type string to checking function + for column_type in column_type_set_order: + is_column_type[column_type] = locals()[ "is_%s" % ( column_type ) ] + def guess_column_type( column_text ): + for column_type in column_type_set_order: + if is_column_type[column_type]( column_text ): + return column_type + return None + data_lines = 0 + comment_lines = 0 + column_types = [] + first_line_column_types = [default_column_type] # default value is one column of type str + if dataset.has_data(): + #NOTE: if skip > num_check_lines, we won't detect any metadata, and will use default + dataset_fh = open( dataset.file_name ) + i = 0 + while True: + line = dataset_fh.readline() + if not line: break + line = line.rstrip( '\r\n' ) + if i < skip or not line or line.startswith( '#' ): + # We'll call blank lines comments + comment_lines += 1 + else: + data_lines += 1 + if max_guess_type_data_lines is None or data_lines <= max_guess_type_data_lines: + fields = line.split() + for field_count, field in enumerate( fields ): + if field_count >= len( column_types ): #found a previously unknown column, we append None + column_types.append( None ) + column_type = guess_column_type( field ) + if type_overrules_type( column_type, column_types[field_count] ): + column_types[field_count] = column_type + if i == 0 and requested_skip is None: +# This is our first line, people seem to like to upload files that have a header line, but do not +# start with '#' (i.e. all column types would then most likely be detected as str). We will assume +# that the first line is always a header (this was previous behavior - it was always skipped). When +# the requested skip is None, we only use the data from the first line if we have no other data for +# a column. This is far from perfect, as +# 1,2,3 1.1 2.2 qwerty +# 0 0 1,2,3 +# will be detected as +# "column_types": ["int", "int", "float", "list"] +# instead of +# "column_types": ["list", "float", "float", "str"] *** would seem to be the 'Truth' by manual +# observation that the first line should be included as data. The old method would have detected as +# "column_types": ["int", "int", "str", "list"] + first_line_column_types = column_types + column_types = [ None for col in first_line_column_types ] + if max_data_lines is not None and data_lines >= max_data_lines: + if dataset_fh.tell() != dataset.get_size(): + data_lines = None #Clear optional data_lines metadata value + comment_lines = None #Clear optional comment_lines metadata value; additional comment lines could appear below this point + break + i += 1 + dataset_fh.close() + + #we error on the larger number of columns + #first we pad our column_types by using data from first line + if len( first_line_column_types ) > len( column_types ): + for column_type in first_line_column_types[len( column_types ):]: + column_types.append( column_type ) + #Now we fill any unknown (None) column_types with data from first line + for i in range( len( column_types ) ): + if column_types[i] is None: + if len( first_line_column_types ) <= i or first_line_column_types[i] is None: + column_types[i] = default_column_type + else: + column_types[i] = first_line_column_types[i] + # Set the discovered metadata values for the dataset + dataset.metadata.data_lines = data_lines + dataset.metadata.comment_lines = comment_lines + dataset.metadata.column_types = column_types + dataset.metadata.columns = len( column_types ) + def make_html_table( self, dataset, **kwargs ): + """Create HTML table, used for displaying peek""" + out = [''] + try: + out.append( self.make_html_peek_header( dataset, **kwargs ) ) + out.append( self.make_html_peek_rows( dataset, **kwargs ) ) + out.append( '
' ) + out = "".join( out ) + except Exception, exc: + out = "Can't create peek %s" % str( exc ) + return out + + def make_html_peek_header( self, dataset, skipchars=None, column_names=None, column_number_format='%s', column_parameter_alias=None, **kwargs ): + if skipchars is None: + skipchars = [] + if column_names is None: + column_names = [] + if column_parameter_alias is None: + column_parameter_alias = {} + out = [] + try: + if not column_names and dataset.metadata.column_names: + column_names = dataset.metadata.column_names + + column_headers = [None] * dataset.metadata.columns + + # fill in empty headers with data from column_names + for i in range( min( dataset.metadata.columns, len( column_names ) ) ): + if column_headers[i] is None and column_names[i] is not None: + column_headers[i] = column_names[i] + + # fill in empty headers from ColumnParameters set in the metadata + for name, spec in dataset.metadata.spec.items(): + if isinstance( spec.param, metadata.ColumnParameter ): + try: + i = int( getattr( dataset.metadata, name ) ) - 1 + except: + i = -1 + if 0 <= i < dataset.metadata.columns and column_headers[i] is None: + column_headers[i] = column_parameter_alias.get(name, name) + + out.append( '' ) + for i, header in enumerate( column_headers ): + out.append( '' ) + if header is None: + out.append( column_number_format % str( i + 1 ) ) + else: + out.append( '%s.%s' % ( str( i + 1 ), escape( header ) ) ) + out.append( '' ) + out.append( '' ) + except Exception, exc: + raise Exception, "Can't create peek header %s" % str( exc ) + return "".join( out ) + + def make_html_peek_rows( self, dataset, skipchars=None, **kwargs ): + if skipchars is None: + skipchars = [] + out = [] + try: + if not dataset.peek: + dataset.set_peek() + for line in dataset.peek.splitlines(): + if line.startswith( tuple( skipchars ) ): + #out.append( '%s' % escape( line ) ) + test = "test" + elif line: + elems = line.split( '\t' ) + # we may have an invalid comment line or invalid data + if len( elems ) != dataset.metadata.columns: + # out.append( '%s' % escape( line ) ) + test = "test" + else: + out.append( '' ) + for elem in elems: + out.append( '%s' % escape( elem ) ) + out.append( '' ) + except Exception, exc: + raise Exception, "Can't create peek rows %s" % str( exc ) + return "".join( out ) + + def get_chunk(self, trans, dataset, chunk): + ck_index = int(chunk) + f = open(dataset.file_name) + f.seek(ck_index * self.CHUNK_SIZE) + # If we aren't at the start of the file, seek to next newline. Do this better eventually. + if f.tell() != 0: + cursor = f.read(1) + while cursor and cursor != '\n': + cursor = f.read(1) + ck_data = f.read(self.CHUNK_SIZE) + cursor = f.read(1) + while cursor and ck_data[-1] != '\n': + ck_data += cursor + cursor = f.read(1) + return to_json_string( { 'ck_data': util.unicodify( ck_data ), 'ck_index': ck_index + 1 } ) + + def display_data(self, trans, dataset, preview=False, filename=None, to_ext=None, chunk=None): + preview = util.string_as_bool( preview ) + if chunk: + return self.get_chunk(trans, dataset, chunk) + elif to_ext or not preview: + return self._serve_raw(trans, dataset, to_ext) + elif dataset.metadata.columns > 50: + #Fancy tabular display is only suitable for datasets without an incredibly large number of columns. + #We should add a new datatype 'matrix', with it's own draw method, suitable for this kind of data. + #For now, default to the old behavior, ugly as it is. Remove this after adding 'matrix'. + max_peek_size = 1000000 # 1 MB + if os.stat( dataset.file_name ).st_size < max_peek_size: + return open( dataset.file_name ) + else: + trans.response.set_content_type( "text/html" ) + return trans.stream_template_mako( "/dataset/large_file.mako", + truncated_data = open( dataset.file_name ).read(max_peek_size), + data = dataset) + else: + column_names = 'null' + if dataset.metadata.column_names: + column_names = dataset.metadata.column_names + elif hasattr(dataset.datatype, 'column_names'): + column_names = dataset.datatype.column_names + column_types = dataset.metadata.column_types + if not column_types: + column_types = [] + column_number = dataset.metadata.columns + if column_number is None: + column_number = 'null' + return trans.fill_template( "/dataset/tabular_chunked.mako", + dataset = dataset, + chunk = self.get_chunk(trans, dataset, 0), + column_number = column_number, + column_names = column_names, + column_types = column_types ) + + def set_peek( self, dataset, line_count=None, is_multi_byte=False): + super(cctools, self).set_peek( dataset, line_count=line_count, is_multi_byte=is_multi_byte) + if dataset.metadata.comment_lines: + dataset.blurb = "%s, %s comments" % ( dataset.blurb, util.commaify( str( dataset.metadata.comment_lines ) ) ) + def display_peek( self, dataset ): + """Returns formatted html of peek""" + return self.make_html_table( dataset ) + def displayable( self, dataset ): + try: + return dataset.has_data() \ + and dataset.state == dataset.states.OK \ + and dataset.metadata.columns > 0 \ + and dataset.metadata.data_lines != 0 + except: + return False + def as_gbrowse_display_file( self, dataset, **kwd ): + return open( dataset.file_name ) + def as_ucsc_display_file( self, dataset, **kwd ): + return open( dataset.file_name ) + + def get_visualizations( self, dataset ): + """ + Returns a list of visualizations for datatype. + """ + # Can visualize tabular data as scatterplot if there are 2+ numerical + # columns. + num_numerical_cols = 0 + if dataset.metadata.column_types: + for col_type in dataset.metadata.column_types: + if col_type in [ 'int', 'float' ]: + num_numerical_cols += 1 + + vizs = super( cctools, self ).get_visualizations( dataset ) + if num_numerical_cols >= 2: + vizs.append( 'scatterplot' ) + + return vizs + + # ------------- Dataproviders + @dataproviders.decorators.dataprovider_factory( 'column', dataproviders.column.ColumnarDataProvider.settings ) + def column_dataprovider( self, dataset, **settings ): + """Uses column settings that are passed in""" + dataset_source = dataproviders.dataset.DatasetDataProvider( dataset ) + return dataproviders.column.ColumnarDataProvider( dataset_source, **settings ) + + @dataproviders.decorators.dataprovider_factory( 'dataset-column', + dataproviders.column.ColumnarDataProvider.settings ) + def dataset_column_dataprovider( self, dataset, **settings ): + """Attempts to get column settings from dataset.metadata""" + return dataproviders.dataset.DatasetColumnarDataProvider( dataset, **settings ) + + @dataproviders.decorators.dataprovider_factory( 'dict', dataproviders.column.DictDataProvider.settings ) + def dict_dataprovider( self, dataset, **settings ): + """Uses column settings that are passed in""" + dataset_source = dataproviders.dataset.DatasetDataProvider( dataset ) + return dataproviders.column.DictDataProvider( dataset_source, **settings ) + + @dataproviders.decorators.dataprovider_factory( 'dataset-dict', dataproviders.column.DictDataProvider.settings ) + def dataset_dict_dataprovider( self, dataset, **settings ): + """Attempts to get column settings from dataset.metadata""" + return dataproviders.dataset.DatasetDictDataProvider( dataset, **settings ) + + +@dataproviders.decorators.has_dataproviders +class MakeflowLog( cctools ): + file_ext = 'makeflowlog' + skipchars = ['#'] + + def __init__(self, **kwd): + """Initialize taxonomy datatype""" + cctools.__init__( self, **kwd ) + self.column_names = ['Timestamp', 'NodeId', 'NewState', 'JobId', + 'NodesWaiting', 'NodesRunning', 'NodesComplete', + 'NodesFailed', 'NodesAborted', 'NodeIdCounter' + ] + def display_peek( self, dataset ): + """Returns formated html of peek""" + return cctools.make_html_table( self, dataset, column_names=self.column_names ) + + def sniff( self, filename ): + """ + Determines whether the file is in MakeflowLog format + + >>> fname = get_test_fname( 'sequence.maf' ) + >>> MakeflowLog().sniff( fname ) + False + >>> fname = get_test_fname( '1.makeflowlog' ) + >>> MakeflowLog().sniff( fname ) + True + """ + try: + fh = open( filename ) + count = 0 + started = False + while True: + line = fh.readline() + line = line.strip() + if not line: + break #EOF + if line: + linePieces = line.split('\t') + if line[0] == '#': + if linePieces[1] == 'STARTED': + started = True + elif linePieces[1] == 'COMPLETED': + started = False + elif started: + if len(linePieces) < 10: + return False + try: + check = int(linePieces[1]) + check = int(linePieces[2]) + check = int(linePieces[3]) + check = int(linePieces[4]) + check = int(linePieces[5]) + check = int(linePieces[6]) + check = int(linePieces[7]) + check = int(linePieces[8]) + except ValueError: + return False + count += 1 + if count == 5: + return True + fh.close() + if count < 5 and count > 0: + return True + except: + pass + return False + + def set_meta( self, dataset, overwrite = True, skip = None, max_data_lines = 5, **kwd ): + if dataset.has_data(): + dataset_fh = open( dataset.file_name ) + comment_lines = 0 + if self.max_optional_metadata_filesize >= 0 and dataset.get_size() > self.max_optional_metadata_filesize: + # If the dataset is larger than optional_metadata, just count comment lines. + for i, l in enumerate(dataset_fh): + if l.startswith('#'): + comment_lines += 1 + else: + # No more comments, and the file is too big to look at the whole thing. Give up. + dataset.metadata.data_lines = None + break + else: + # Otherwise, read the whole thing and set num data lines. + for i, l in enumerate(dataset_fh): + if l.startswith('#'): + comment_lines += 1 + dataset.metadata.data_lines = i + 1 - comment_lines + dataset_fh.close() + dataset.metadata.comment_lines = comment_lines + dataset.metadata.columns = 10 + dataset.metadata.column_types = ['str', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'] + + + + +@dataproviders.decorators.has_dataproviders +class WorkQueueLog( cctools ): + file_ext = 'wqlog' + skipchars = ['#'] + + def __init__(self, **kwd): + """Initialize taxonomy datatype""" + cctools.__init__( self, **kwd ) + self.column_names = ['Timestamp', 'TotalWorkersConnected', 'WorkersInit', + 'WorkersIdle', 'WorkersBusy', 'TotalWorkersJoined', + 'TotalWorkersRemoved', 'TasksWaiting', 'TasksRunning', + 'TasksComplete', 'TotalTasksDispatched', 'TotalTasksComplete', + 'TotalTasksCancelled', 'StartTime', 'TotalSendTime', + 'TotalReceiveTime', 'TotalBytesSent', 'TotalBytesReceived', + 'Efficiency', 'IdlePercentage', 'Capacity', 'Bandwidth', + 'TotalCores', 'TotalMemory', 'TotalDisk', 'TotalGPUs', + 'MinCores', 'MaxCores', 'MinMemory', 'MaxMemory', + 'MinDisk', 'MaxDisk', 'MinGPUs', 'MaxGPUs' + ] + def display_peek( self, dataset ): + """Returns formated html of peek""" + return cctools.make_html_table( self, dataset, column_names=self.column_names ) + + def sniff( self, filename ): + """ + Determines whether the file is in WorkQueue log format + + >>> fname = get_test_fname( 'sequence.wq' ) + >>> WorkQueueLog().sniff( fname ) + False + >>> fname = get_test_fname( '1.wqlog' ) + >>> WorkQueueLog().sniff( fname ) + True + """ + try: + fh = open( filename ) + count = 0 + while True: + line = fh.readline() + line = line.strip() + if not line: + break #EOF + if line: + if line[0] != '#': + linePieces = line.split('\t') + if len(linePieces) < 34: + return False + try: + check = str(linePieces[1]) + check = int(linePieces[3]) + check = int(linePieces[4]) + check = int(linePieces[7]) + check = int(linePieces[8]) + except ValueError: + return False + count += 1 + if count == 5: + return True + fh.close() + if count < 5 and count > 0: + return True + except: + pass + return False + + def set_meta( self, dataset, overwrite = True, skip = None, max_data_lines = 5, **kwd ): + if dataset.has_data(): + dataset_fh = open( dataset.file_name ) + comment_lines = 0 + if self.max_optional_metadata_filesize >= 0 and dataset.get_size() > self.max_optional_metadata_filesize: + # If the dataset is larger than optional_metadata, just count comment lines. + for i, l in enumerate(dataset_fh): + if l.startswith('#'): + comment_lines += 1 + else: + # No more comments, and the file is too big to look at the whole thing. Give up. + dataset.metadata.data_lines = None + break + else: + # Otherwise, read the whole thing and set num data lines. + for i, l in enumerate(dataset_fh): + if l.startswith('#'): + comment_lines += 1 + dataset.metadata.data_lines = i + 1 - comment_lines + dataset_fh.close() + dataset.metadata.comment_lines = comment_lines + dataset.metadata.columns = 34 + dataset.metadata.column_types = ['str', 'int', 'int', 'int', 'int', + 'int', 'int', 'int', 'int', 'int', + 'int', 'int', 'int', 'int', 'int', + 'int', 'int', 'int', 'int', 'int', + 'int', 'int', 'int', 'int', 'int', + 'int', 'int', 'int', 'int', 'int', + 'int', 'int', 'int', 'int', 'int', 'int'] diff -Nru cctools-7.0.22/contrib/galaxy/INSTALL cctools-7.1.2/contrib/galaxy/INSTALL --- cctools-7.0.22/contrib/galaxy/INSTALL 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/contrib/galaxy/INSTALL 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,107 @@ +This install file goes through the steps needed to include makeflow_bwa and makeflow_gatk as +tools in a Galaxy instance. The tools currently rely on dependencies in specific locations, +which is described in the file below. Following the INSTALL instruction from the top provides +the correct install, and lines can be copied and pasted onto the commandline for easier +install. Once the installation is successful and the Galaxy instance is restarted the tools are ready. + +When running a tool, workers are required in order for the jobs to be completed. The last +section of this INSTALL show two different methods of creating workers, though the pool is +recommended to have/create workers for users that are not familiar with Work Queue. To +understand this better, view Work Queue at http://ccl.cse.nd.edu/software/workqueue/. + +# Within galaxy-dist +cd tool-data/shared/ +# Get recent cctools distribution: +wget https://github.com/cooperative-computing-lab/cctools/archive/master.zip +unzip master.zip +mkdir cctools +mv cctools-*/* cctools-*/.[^.]* cctools +cd cctools +./configure --prefix $PWD +make install +# Verify that no errors occurred. +# Move to galaxy_dist directory +cd ../../.. +cp ./tool-data/shared/cctools/galaxy/cctools.py ./lib/galaxy/datatypes/ + +perl ./tool-data/shared/cctools/galaxy/modify_registry.pl ./lib/galaxy/datatypes/registry.py +mv tmp_registry ./lib/galaxy/datatypes/registry.py + +mkdir tools/ndBioapps +cp ./tool-data/shared/cctools/galaxy/makeflow* ./tools/ndBioapps + +perl ./tool-data/shared/cctools/galaxy/modify_tool_conf.pl ./config/tool_conf.xml.sample +mv tmp_tool_conf ./config/tool_conf.xml.sample + +# Change galaxy_pass to your preferred password. +echo "galaxy_pass" > tool-data/mypwfile + + +# Get GATK from https://www.broadinstitute.org/gatk/download +# Move to tool-data/shared/jars/gatk/GenomeAnalysisTK.jar + +# INSTALL Picard +cd tool-data/shared +wget https://github.com/broadinstitute/picard/zipball/master +unzip master +mkdir picard +mv broadinstitute-picard-*/* broadinstitute-picard-*/.[^.]* picard +cd picard +git clone https://github.com/samtools/htsjdk.git + +# $JAVA_HOME must be pointing to a JDK, preferrably for 1.6, but it is compatible with 1.7 +ant + +# Clean +cd .. +rm master +rmdir broadinstitute-picard-*/ +cd ../.. + +#INSTALL samtools +cd tool-data/shared +wget http://sourceforge.net/projects/samtools/files/latest/download +tar jxf download +mkdir samtools +mv samtools-*/* samtools +cd samtools +make +cd .. +rm download +rmdir samtools-*/ +cd ../.. + +# INSTALL VCFTools +cd tool-data/shared +wget http://sourceforge.net/projects/vcftools/files/latest/download +tar zxf download +mkdir vcftools +mv vcftools_*/* vcftools +cd vcftools +make +# Should be added to path at startup +export PERL5LIB=$PWD/perl/ +cd .. +rm download +rmdir vcftools_*/ +cd ../.. + +# INSTALL Java 1.7 +cd tool-data/shared +mkdir java +cd java +wget http://javadl.sun.com/webapps/download/AutoDL?BundleId=97800 +tar zxf AutoDL* +mkdir jre +mv jre1*/* jre +rmdir jre1* +zip -r jre.zip jre/* +cd ../../.. + +Note: You must create workers using the batch utility of your choice for the tools to run. Work Queue commands are located in the cctools bin directory at tool-data/shared/cctools/bin + +Submit workers for a particular job: +*_submit_workers -N galaxy_\.\* #_of_workers --password path/to/mypwfile + +Create worker pool +work_queue_factory -T batch_system -N galaxy_\.\* --password path/to/mypwfile –w -W diff -Nru cctools-7.0.22/contrib/galaxy/makeflow_bwa_wrapper.py cctools-7.1.2/contrib/galaxy/makeflow_bwa_wrapper.py --- cctools-7.0.22/contrib/galaxy/makeflow_bwa_wrapper.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/contrib/galaxy/makeflow_bwa_wrapper.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,98 @@ + +# This program implements a distributed version of BWA, using Makeflow and WorkQueue + +# Author: Olivia Choudhury +# Date: 09/03/2013 + + +import optparse, os, sys, tempfile, shutil, stat + +class PassThroughParser(optparse.OptionParser): + def _process_args(self, largs, rargs, values): + while rargs: + try: + optparse.OptionParser._process_args(self,largs,rargs,values) + except (optparse.BadOptionError,optparse.AmbiguousOptionError), e: + largs.append(e.opt_str) + + +#Parse Command Line +parser = PassThroughParser() +parser.add_option('', '--ref', dest="ref", type="string") + +parser.add_option('', '--fastq', dest="fastq", type="string") +parser.add_option('', '--rfastq', dest="rfastq", type="string") + +parser.add_option('', '--output_SAM', dest="outsam", type="string") + +parser.add_option('', '--output_log', dest="outlog", type="string") +parser.add_option('', '--wq_log', dest="wqlog", type="string") +parser.add_option('', '--output_dblog', dest="dblog", type="string") +parser.add_option('', '--output_err', dest="outerr", type="string") + +parser.add_option('', '--pwfile', dest="pwfile", type="string") + +parser.add_option('', '--user_id', dest="uid", type="string") +parser.add_option('', '--user_job', dest="ujob", type="string") + +(options, args) = parser.parse_args() + +# SETUP ENVIRONMENT VARIABLES + +cur_dir = os.getcwd() +job_num = os.path.basename(cur_dir); + +cctools_dir = options.cctools + +makeflow='Makeflow' +wq_project_name="galaxy_bwa_"+options.uid+"_"+job_num +wq_password=options.pwfile + +output_sam = "output_SAM" + +makeflow_log = "makeflow_log" +wq_log = "wq_log" +debug_log = "debug_log" +output_err = "output_err" + +# CREATE TMP AND MOVE FILES IN + +if options.ref: + os.symlink(options.ref, "./reference.fa") +else: + print "No reference provided" + sys.exit(1) + +inputs = "--ref reference.fa " + +os.symlink(options.fastq, "./fastq.fq") +inputs += "--fastq fastq.fq " + +if options.rfastq: + os.symlink(options.rfastq, "./rfastq.fq") + inputs += "--rfastq rfastq.fq " + +os.system("makeflow_bwa --algoalign {0} {1} --makeflow {2} --output_SAM {3} {4}".format( + "bwa_backtrack", inputs, makeflow, output_sam, ' '.join(args))) + +os.system("makeflow {0} -T wq -N {1} -J 50 -p 0 -l {2} -L {3} -dall -o {4} --password {5} >&1 2>&1".format( + makeflow, wq_project_name, makeflow_log, wq_log, debug_log, options.pwfile)) + +if options.dblog: + shutil.copyfile(debug_log, options.dblog) + +if options.outlog: + shutil.copyfile(makeflow_log, options.outlog) + +if options.wqlog: + shutil.copyfile(wq_log, options.wqlog) + +shutil.copyfile(output_sam, options.outsam) + +os.system(cctools_dir+'/bin/makeflow -c') +os.remove("./reference.fa") +os.remove("./fastq.fq") +os.remove("./makeflow_bwa") +os.remove("./bwa") +if options.rfastq: + os.remove("./rfastq.fq") diff -Nru cctools-7.0.22/contrib/galaxy/makeflow_bwa_wrapper.xml cctools-7.1.2/contrib/galaxy/makeflow_bwa_wrapper.xml --- cctools-7.0.22/contrib/galaxy/makeflow_bwa_wrapper.xml 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/contrib/galaxy/makeflow_bwa_wrapper.xml 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,336 @@ + + A Distributed version of BWA using Makeflow + + makeflow_bwa_wrapper.py + + --user_id=$__user_id__ + --pwfile=${GALAXY_DATA_INDEX_DIR}/mypwfile + --ref=$reference + --num_seq=$num_seq + + --fastq=$paired.input1 + #if $paired.sPaired == "paired": + --rfastq=$paired.input2 + #end if + + --output_SAM=$SAM_File + #if $Makeflow_Log: + --output_log=$Makeflow_Log + #end if + #if $Work_Queue_Log: + --wq_log=$Work_Queue_Log + #end if + #if $Debug_Log: + --output_dblog=$Debug_Log + #end if + --algoalign=$check_alignalgo.alignalgo + --index-a=$algorithm + + #if $check_alignalgo.alignalgo=="bwa_backtrack": + --aln-k=$check_alignalgo.maxEditDistSeed + #if $check_alignalgo.params.source_select != "pre_set": + --aln-t=$check_alignalgo.params.numThreads + --aln-m=$check_alignalgo.params.maxEditDistSeed + --aln-n=$check_alignalgo.params.maxEditDist + --aln-o=$check_alignalgo.params.maxGapOpens + --aln-e=$check_alignalgo.params.maxGapExtens + --aln-d=$check_alignalgo.params.disallowLongDel + --aln-i=$check_alignalgo.params.disallowIndel + --aln-l=$check_alignalgo.params.seed + --aln-M=$check_alignalgo.params.mismatchPenalty + --aln-O=$check_alignalgo.params.gapOpenPenalty + --aln-E=$check_alignalgo.params.gapExtensPenalty + --aln-R=$check_alignalgo.params.suboptAlign + --aln-N=$check_alignalgo.params.noIterSearch + --samse-n=$check_alignalgo.params.outputTopN + --sampe-n=$check_alignalgo.params.outputTopN + --sampe-a=$check_alignalgo.params.maxInsertSize + --sampe-o=$check_alignalgo.params.maxOccurPairing + #end if + #end if + + #if $check_alignalgo.alignalgo=="bwa_sw": + #if $check_alignalgo.checkparams_bwasw.useparam=="full": + --bwasw-t=$check_alignalgo.checkparams_bwasw.threads + --bwasw-a=$check_alignalgo.checkparams_bwasw.matchscore + --bwasw-b=$check_alignalgo.checkparams_bwasw.mismatchpenalty + --bwasw-q=$check_alignalgo.checkparams_bwasw.gapopen + --bwasw-r=$check_alignalgo.checkparams_bwasw.gapextension + --bwasw-w=$check_alignalgo.checkparams_bwasw.bandwidth + --bwasw-m=$check_alignalgo.checkparams_bwasw.minthreshold + --bwasw-c=$check_alignalgo.checkparams_bwasw.coeff + --bwasw-z=$check_alignalgo.checkparams_bwasw.heuristics + --bwasw-s=$check_alignalgo.checkparams_bwasw.interval + --bwasw-N=$check_alignalgo.checkparams_bwasw.minseed + #end if + #end if + + #if $check_alignalgo.alignalgo=="bwa_mem": + #if $check_alignalgo.checkparams_bwamem.param_bwamem=="full": + --mem-t=$check_alignalgo.checkparams_bwamem.numthread + --mem-k=$check_alignalgo.checkparams_bwamem.minseedlen + --mem-w=$check_alignalgo.checkparams_bwamem.bwidth + --mem-d=$check_alignalgo.checkparams_bwamem.offdiagonal + --mem-r=$check_alignalgo.checkparams_bwamem.reseed + --mem-c=$check_alignalgo.checkparams_bwamem.discardmem + --mem-A=$check_alignalgo.checkparams_bwamem.matchingscore + --mem-B=$check_alignalgo.checkparams_bwamem.mismatch_penalty + --mem-O=$check_alignalgo.checkparams_bwamem.gopenalty + --mem-E=$check_alignalgo.checkparams_bwamem.gepenalty + --mem-L=$check_alignalgo.checkparams_bwamem.cpenalty + --mem-U=$check_alignalgo.checkparams_bwamem.upreadpenalty + --mem-T=$check_alignalgo.checkparams_bwamem.dontop + #end if + #end if + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ptions.numthread + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "mklog" in log_outputs + + + "wqlog" in log_outputs + + + "dblog" in log_outputs + + + + +**What it does** + +**BWA** is a high performance sequence aligner that succeeds MAQ. It is based on BWT-SW but uses a completely different algorithm, and it is aimed toward short read alignments. It is fast--it can map the human genome in only 15-25 minutes. Heng Li of the Sanger Institute wrote the majority of the code, with contributions by Chi-Kwong Wong at the University of Hong Kong, Nong Ge at Sun Yat-Sen University, and Yuta Mori. + +------ + +**Input formats** + +BWA accepts files in FASTQ format. + +------ + +**Outputs** + +The output is in SAM format, and has the following columns:: + + 1 QNAME - Query (pair) NAME + 2 FLAG - bitwise FLAG + 3 RNAME - Reference sequence NAME + 4 POS - 1-based leftmost POSition/coordinate of clipped sequence + 5 MAPQ - MAPping Quality (Phred-scaled) + 6 CIGAR - extended CIGAR string + 7 MRNM - Mate Reference sequence NaMe ('=' if same as RNAME) + 8 MPOS - 1-based Mate POSition + 9 ISIZE - Inferred insert SIZE + 10 SEQ - query SEQuence on the same strand as the reference + 11 QUAL - query QUALity (ASCII-33 gives the Phred base quality) + 12 OPT - variable OPTional fields in the format TAG:VTYPE:VALU + +The flags are as follows:: + + Flag - Description + 0x0001 - the read is paired in sequencing + 0x0002 - the read is mapped in a proper pair + 0x0004 - the query sequence itself is unmapped + 0x0008 - the mate is unmapped + 0x0010 - strand of the query (1 for reverse) + 0x0020 - strand of the mate + 0x0040 - the read is the first read in a pair + 0x0080 - the read is the second read in a pair + 0x0100 - the alignment is not primary + +It looks like this (scroll sideways to see the entire example):: + + QNAME FLAG RNAME POS MAPQ CIAGR MRNM MPOS ISIZE SEQ QUAL OPT + HWI-EAS91_1_30788AAXX:1:1:1761:343 4 * 0 0 * * 0 0 AAAAAAANNAAAAAAAAAAAAAAAAAAAAAAAAAAACNNANNGAGTNGNNNNNNNGCTTCCCACAGNNCTGG hhhhhhh;;hhhhhhhhhhh^hOhhhhghhhfhhhgh;;h;;hhhh;h;;;;;;;hhhhhhghhhh;;Phhh + HWI-EAS91_1_30788AAXX:1:1:1578:331 4 * 0 0 * * 0 0 GTATAGANNAATAAGAAAAAAAAAAATGAAGACTTTCNNANNTCTGNANNNNNNNTCTTTTTTCAGNNGTAG hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhhhh;;h;;hhhh;h;;;;;;;hhhhhhhhhhh;;hhVh + +------- + +**BWA Settings** + +All of the options have a default value. You can change any of them. All of the options in BWA have been implemented here. + +------ + +**BWA parameter list** + +This is an exhaustive list of BWA options: + +For **aln**:: + + -n NUM Maximum edit distance if the value is INT, or the fraction of missing + alignments given 2% uniform base error rate if FLOAT. In the latter + case, the maximum edit distance is automatically chosen for different + read lengths. [0.04] + -o INT Maximum number of gap opens [1] + -e INT Maximum number of gap extensions, -1 for k-difference mode + (disallowing long gaps) [-1] + -d INT Disallow a long deletion within INT bp towards the 3'-end [16] + -i INT Disallow an indel within INT bp towards the ends [5] + -l INT Take the first INT subsequence as seed. If INT is larger than the + query sequence, seeding will be disabled. For long reads, this option + is typically ranged from 25 to 35 for '-k 2'. [inf] + -k INT Maximum edit distance in the seed [2] + -t INT Number of threads (multi-threading mode) [1] + -M INT Mismatch penalty. BWA will not search for suboptimal hits with a score + lower than (bestScore-misMsc). [3] + -O INT Gap open penalty [11] + -E INT Gap extension penalty [4] + -c Reverse query but not complement it, which is required for alignment + in the color space. + -R Proceed with suboptimal alignments even if the top hit is a repeat. By + default, BWA only searches for suboptimal alignments if the top hit is + unique. Using this option has no effect on accuracy for single-end + reads. It is mainly designed for improving the alignment accuracy of + paired-end reads. However, the pairing procedure will be slowed down, + especially for very short reads (~32bp). + -N Disable iterative search. All hits with no more than maxDiff + differences will be found. This mode is much slower than the default. + +For **samse**:: + + -n INT Output up to INT top hits. Value -1 to disable outputting multiple + hits. [-1] + +For **sampe**:: + + -a INT Maximum insert size for a read pair to be considered as being mapped + properly. Since 0.4.5, this option is only used when there are not + enough good alignment to infer the distribution of insert sizes. [500] + -o INT Maximum occurrences of a read for pairing. A read with more + occurrences will be treated as a single-end read. Reducing this + parameter helps faster pairing. [100000] + + + + diff -Nru cctools-7.0.22/contrib/galaxy/makeflow_gatk_wrapper.py cctools-7.1.2/contrib/galaxy/makeflow_gatk_wrapper.py --- cctools-7.0.22/contrib/galaxy/makeflow_gatk_wrapper.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/contrib/galaxy/makeflow_gatk_wrapper.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,94 @@ +#!/usr/bin/env python +# +#Copyright (C) 2013- The University of Notre Dame +#This software is distributed under the GNU General Public License. +#See the file COPYING for details. +# +# This program implements a way to organize and manage a large number of +# concurrently running GATK instances +# Author: Nick Hazekamp +# Date: 09/03/2013 + +import optparse, os, sys, tempfile, shutil, stat + +class PassThroughParser(optparse.OptionParser): + def _process_args(self, largs, rargs, values): + while rargs: + try: + optparse.OptionParser._process_args(self,largs,rargs,values) + except (optparse.BadOptionError,optparse.AmbiguousOptionError), e: + largs.append(e.opt_str) + +#Parse Command Line +parser = PassThroughParser() +parser.add_option('-T',dest='type',type="string") +parser.add_option('--input_file',dest='input',type="string") +parser.add_option('--reference_sequence',dest='ref',type="string") + +parser.add_option('--log_to_file',dest='log',type="string") +parser.add_option('--out',dest='output',type="string") + +parser.add_option('--mf_log',dest='mflog',type="string",help="Makeflow Log Location") +parser.add_option('--output_dblog',dest='dblog',type="string",help="Makeflow Debug Log Location") +parser.add_option('--wq_log',dest='wqlog',type="string",help="Work Queue Log Location") + +parser.add_option('--pwfile',dest='pwfile',type='string') + +parser.add_option('--user_id',dest='uid',type='string') +parser.add_option('--user_job',dest='ujob',type='string') + +(options, args) = parser.parse_args() + +# SETUP ENVIRONMENT VARIABLES + +cur_dir = os.getcwd() +job_num = os.path.basename(cur_dir) + +cctools_dir = options.cctools + +makeflow='Makeflow' +wq_project_name="galaxy_gatk_"+options.uid+"_"+job_num +wq_password=options.pwfile + +output_vcf = "output_VCF" +output_log = "output_log" + +makeflow_log = "makeflow_log" +makeflow_graph = "makeflow_graph.eps" + +wq_log = "wq_log" +wq_graph = "wq_graph.eps" + +debug_log = "debug_log" +output_err = "output_err" + +# MOVE FILES TO ENV + +os.symlink(options.ref, cur_dir+"/reference.fa") + +inputs = "--reference_sequence reference.fa --reference_index reference.fa.fai --reference_dict reference.dict " + +os.symlink(options.input, cur_dir+"/cur_bam.bam") +inputs += "--input_file cur_bam.bam " + +os.system("makeflow_gatk -T {0} {1} --makeflow {2} --out {3} {4} {5}".format( + options.type, inputs, makeflow, output_vcf, ' '.join(args), debug_log)) + +os.system("makeflow -T wq -N {0} -p 0 -l {1} -L {2} -d all -o {3} --password {4} &> {5}".format( + wq_project_name, makeflow_log, wq_log, debug_log, options.pwfile, debug_log) + +if options.dblog: + shutil.copyfile(debug_log, options.dblog) +if options.mflog: + shutil.copyfile(makeflow_log, options.mflog) +if options.wqlog: + shutil.copyfile(wq_log, options.wqlog) +shutil.copyfile(output_vcf, options.output) + +os.system(cctools_dir+'/bin/makeflow -c') +os.remove("./reference.*") +os.remove("./cur_bam.bam") +os.remove("./samtools") +os.remove("./GenomeAnalysisTK.jar") +os.remove("./picard.jar") +os.remove("./jre") diff -Nru cctools-7.0.22/contrib/galaxy/makeflow_gatk_wrapper.xml cctools-7.1.2/contrib/galaxy/makeflow_gatk_wrapper.xml --- cctools-7.0.22/contrib/galaxy/makeflow_gatk_wrapper.xml 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/contrib/galaxy/makeflow_gatk_wrapper.xml 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,474 @@ + + A Distributed version of GATK using Makeflow + + gatk + samtools + picard + + + makeflow_gatk_wrapper.py + + -T $algo + + --input_file=$INPUT + + --reference_sequence=$REFERENCE + + --user_id=$__user_id__ + --pwfile=${GALAXY_DATA_INDEX_DIR}/mypwfile + + --num-seq-part=$numreads + + --out=$VCF_File + #if $Makeflow_Log: + --mf_log=$Makeflow_Log + #end if + #if $Work_Queue_Log: + --wq_log=$Work_Queue_Log + #end if + #if $Debug_Log: + --output_dblog=$Debug_Log + #end if + + #if $checkparams.useparam=="full": + #if $BQSR: + --BQSR=$BQSR + #end if + #if $EXCLUDE_INTERVALS: + --excludeIntervals=$EXCLUDE_INTERVALS + #end if + #if $INTERVALS: + --intervals=$$INTERVALS + #end if + #if $RG_BLACK_LIST: + --read_group_black_list=$RG_BLACK_LIST + #end if + + + #if $BAQ: + --baq=$BAQ + #end if + #if $BAQ_GOP: + --baqGapOpenPenalty=$BAQ_GOP + #end if + #if $DEF_BASE_QUALITY: + --defaultBaseQualities=$DEF_BASE_QUALITY + #end if + #if $DOWNSAMPLE_COVERAGE: + --downsample_to_coverage=$DOWNSAMPLE_COVERAGE + #end if + #if $DOWNSAMPLE_FRACTION: + --downsample_to_fraction=$DOWNSAMPLE_FRACTION + #end if + #if $DOWNSAMPLE_TYPE: + --downsampling_type=$DOWNSAMPLE_TYPE + #end if + #if $GATK_KEY: + --gatk_key=$GATK_KEY + #end if + #if $QSCORE_PRIOR: + --globalQScorePrior=$QSCORE_PRIOR + #end if + #if $INTERVAL_MERGING: + --interval_merging=$INTERVAL_MERGING + #end if + #if $INTERVAL_PADDING: + --interval_padding=$INTERVAL_PADDING + #end if + #if $INTERVAL_RULE: + --interval_set_rule=$INTERVAL_RULE + #end if + #if $LOG_LEVEL: + --logging_level=$LOG_LEVEL + #end if + #if $MAX_RUN: + --maxRuntime=$MAX_RUN + #end if + #if $MAX_RUN_UNIT: + --maxRuntimeUnits=$MAX_RUN_UNIT + #end if + #if $CTHREADS_PER_DTHREADS: + --num_cpu_threads_per_data_thread=$CTHREADS_PER_DTHREADS + #end if + #if $NUM_THREADS: + --num_threads=$NUM_THREADS + #end if + #if $PEDIGREE: + --pedigree=$PEDIGREE + #end if + #if $PEDI_STR: + --pedigreeString=$PEDI_STR + #end if + #if $PEDI_VALID: + --pedigreeValidationType=$PEDI_VALID + #end if + #if $ET: + --phone_home=$ET + #end if + #if $PRES_LOW_QSCORE: + --preserve_qscores_less_than=$PRES_LOW_QSCORE + #end if + #if $BUFF_SIZE: + --read_buffer_size=$BUFF_SIZE + #end if + #if $BUFF_FILT: + --read_filter=$BUFF_FILT + #end if + #if $TAG: + --tag=$TAG + #end if + #if $UNSAFE: + --unsafe=$UNSAFE + #end if + #if $VALID_STRICT + --validation_strictness=$VALID_STRICT + #end if + #if $HETER + --heterozygosity=$HETER + #end if + #if $INDEL_HETER + --indel_heterozygosity=$INDEL_HETER + #end if + + + #if $ALLOW_MISENCOD: + --allow_potentially_misencoded_quality_scores + #end if + #if $DISABLE_INDEL_Q: + --disable_indel_quals + #end if + #if $EMIT_ORIG: + --emit_original_quals + #end if + #if $FIX_MISENCOD: + --fix_misencoded_quality_scores + #end if + #if $KEEP_RECORDS: + --keep_program_records + #end if + #if $MON_THREADS: + --monitorThreadEfficiency + #end if + #if $RAND_SEED: + --nonDeterministicRandomSeed + #end if + #if $REMOVE_RECORDS: + --remove_program_records + #end if + #if $ORIG_QUALS: + --useOriginalQualities + #end if + #if $VERSION: + --version + #end if + + + #if $MAPPING: + --sample_rename_mapping_file=$MAPPING + #end if + + #if $ALLOW_BQSR: + --allow_bqsr_on_reduced_bams_despite_repeated_warnings + #end if + + #end if + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "OUTPUT_MFLOG" in log_outputs + + + "OUTPUT_WQLOG" in log_outputs + + + "OUTPUT_DBLOG" in log_outputs + + + + + Required Parameters: + -T TYPE, --analysis_type=TYPE + Type of analysis to run + + Optional Inputs: + --BQSR=BQSR The input covariates table file which enables on-the- + fly base quality score recalibration (intended for use + with BaseRecalibrator and PrintReads) + --excludeIntervals=EXCLUDEINTERVALS + One or more genomic intervals to exclude from + processing. Can be explicitly specified on the command + line or in a file (including a rod file) + --input_file=INPUT SAM or BAM file(s) + --intervals=INTERVALS + One or more genomic intervals over which to operate. + Can be explicitly specified on the command line or in + a file (including a rod file) + --read_group_black_list=READ_GROUP_BLACK_LIST + Filters out read groups matching : or a .txt file + containing the filter strings one per line. + --reference_sequence=REF + Reference sequence file + --reference_index=REF_INDEX + Reference sequence file + --reference_dict=REF_DICT + Reference sequence file + + Optional Outputs: + --log_to_file=LOG Set the logging location + --out=OUTPUT Output name + + Optional Parameters: + --baq=BAQ Type of BAQ calculation to apply in the engine + --baqGapOpenPenalty=BAQGAPOPENPENALTY + BAQ gap open penalty (Phred Scaled). Default value is + 40. 30 is perhaps better for whole genome call sets + --defaultBaseQualities=DEFAULTBASEQUALITIES + If reads are missing some or all base quality scores, + this value will be used for all base quality scores + --downsample_to_coverage=DOWNSAMPLE_TO_COVERAGE + Coverage [integer] to downsample to. For locus-based + traversals (eg., LocusWalkers and + ActiveRegionWalkers),this controls the maximum depth + of coverage at each locus. For non-locus-based + traversals (eg., ReadWalkers), this controls the + maximum number of reads sharing the same alignment + start position. Note that this downsampling option + does NOT produce an unbiased random sampling from all + available reads at each locus: instead, the primary + goal of the to-coverage downsampler is to maintain an + even representation of reads from all alignment start + positions when removing excess coverage. For a true + across-the-board unbiased random sampling of reads, + use -dfrac instead. Also note that the coverage target + is an approximate goal that is not guaranteed to be + met exactly: the downsampling algorithm will under + some circumstances retain slightly more coverage than + requested. + --downsample_to_fraction=DOWNSAMPLE_TO_FRACTION + Fraction [0.0-1.0] of reads to downsample to + --downsampling_type=DOWNSAMPLING_TYPE + Type of reads downsampling to employ at a given locus. + Reads will be selected randomly to be removed from the + pile based on the method described here + --gatk_key=GATK_KEY + GATK Key file. Required if running with -et NO_ET. + Please see + http://gatkforums.broadinstitute.org/discussion/1250 + /what-is-phone-home-and-how-does-it-affect-me#latest + for details. + --globalQScorePrior=GLOBALQSCOREPRIOR + The global Qscore Bayesian prior to use in the BQSR. + If specified, this value will be used as the prior for + all mismatch quality scores instead of the actual + reported quality score + --interval_merging=INTERVAL_MERGING + Indicates the interval merging rule we should use for + abutting intervals + --interval_padding=INTERVAL_PADDING + Indicates how many basepairs of padding to include + around each of the intervals specified with the + -L/--intervals argument + --interval_set_rule=INTERVAL_SET_RULE + Indicates the set merging approach the interval parser + should use to combine the various -L or -XL inputs + --logging_level=LOGGING_LEVEL + Set the minimum level of logging, i.e. setting INFO + get's you INFO up to FATAL, setting ERROR gets you + ERROR and FATAL level logging. + --maxRuntime=MAXRUNTIME + If provided, that GATK will stop execution cleanly as + soon after maxRuntime has been exceeded, truncating + the run but not exiting with a failure. By default the + value is interpreted in minutes, but this can be + changed by maxRuntimeUnits + --maxRuntimeUnits=MAXRUNTIMEUNITS + The TimeUnit for maxRuntime [MINUTES] + --num_cpu_threads_per_data_thread=NUM_CPU_THREADS_PER_DATA_THREAD + How many CPU threads should be allocated per data + thread to running this analysis? + --num_bam_file_handles=NUM_BAM_FILE_HANDLES + The total number of BAM file handles to keep open + simultaneously + --num_threads=NUM_THREADS + How many data threads should be allocated to running + this analysis. + --pedigree=PEDIGREE + Pedigree files for samples + --pedigreeString=PEDIGREESTRING + Pedigree string for samples + --pedigreeValidationType=PEDIGREEVALIDATIONTYPE + How strict should we be in validating the pedigree + information? + --performanceLog=PLOG + If provided, a GATK runtime performance log will be + written to this file + --phone_home=PHONE_HOME + What kind of GATK run report should we generate? AWS + is the default, can be NO_ET so nothing is posted to + the run repository. Please see + http://gatkforums.broadinstitute.org/discussion/1250 + /what-is-phone-home-and-how-does-it-affect-me#latest + for details. + --preserve_qscores_less_than=PRESERVE_QSCORES_LESS_THAN + Bases with quality scores less than this threshold + won't be recalibrated (with -BQSR) + --read_buffer_size=READ_BUFFER_SIZE + Number of reads per SAM file to buffer in memory + --read_filter=READ_FILTER + Specify filtration criteria to apply to each read + individually + --tag=TAG Arbitrary tag string to identify this GATK run as part + of a group of runs, for later analysis + --unsafe=UNSAFE If set, enables unsafe operations: nothing will be + checked at runtime. For expert users only who know + what they are doing. We do not support usage of this + argument. + --validation_strictness=VALIDATION_STRICTNESS + How strict should we be with validation + --heterozygosity=HETEROZYGOSITY + Heterozygosity value used to compute prior likelihoods + for any locus. See the GATKDocs for full details on + the meaning of this population genetics concept + --indel_heterozygosity=INDEL_HETEROZYGOSITY + Heterozygosity for indel calling. See the GATKDocs for + heterozygosity for full details on the meaning of this + population genetics concept + + Optional Flags: + --allow_potentially_misencoded_quality_scores + Do not fail when encountering base qualities that are + too high and that seemingly indicate a problem with + the base quality encoding of the BAM file + --disable_indel_quals + If true, disables printing of base insertion and base + deletion tags (with -BQSR) + --emit_original_quals + If true, enables printing of the OQ tag with the + original base qualities (with -BQSR) + --fix_misencoded_quality_scores + Fix mis-encoded base quality scores + --keep_program_records + Should we override the Walker's default and keep + program records from the SAM header + --monitorThreadEfficiency + Enable GATK threading efficiency monitoring + --nonDeterministicRandomSeed + Makes the GATK behave non deterministically, that is, + the random numbers generated will be different in + every run + --remove_program_records + Should we override the Walker's default and remove + program records from the SAM header + --useOriginalQualities + If set, use the original base quality scores from the + OQ tag when present instead of the standard scores + --version Output version information + + Advanced Parameters: + --sample_rename_mapping_file=SAMPLE_RENAME_MAPPING_FILE + Rename sample IDs on-the-fly at runtime using the + provided mapping file. This option requires that each + BAM file listed in the mapping file have only a single + sample specified in its header (though there may be + multiple read groups for that sample). Each line of + the mapping file must contain the absolute path to a + BAM file, followed by whitespace, followed by the new + sample name for that BAM file. + + Advanced Flags: + --allow_bqsr_on_reduced_bams_despite_repeated_warnings + Do not fail when running base quality score + recalibration on a reduced BAM file even though we + highly recommend against it + + + + diff -Nru cctools-7.0.22/contrib/galaxy/modify_registry.pl cctools-7.1.2/contrib/galaxy/modify_registry.pl --- cctools-7.0.22/contrib/galaxy/modify_registry.pl 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/contrib/galaxy/modify_registry.pl 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,80 @@ +#!/usr/bin/perl +# +#Copyright (C) 2013- The University of Notre Dame +#This software is distributed under the GNU General Public License. +#See the file COPYING for details. +# + +use strict; + +if ($#ARGV != 0) { + print "Usage: perl modify_registry.pl \n"; + exit 1; +} + +my $in = shift; +my $out = "tmp_registry"; + +my $import = 0; +my $datatypes = 0; +my $mime = 0; +my $sniff = 0; + +#Open input file +open(INPUT, $in); +open (OUTPUT,">$out"); +while (my $line = ) { + chomp $line; + if ($line =~ /^import/) + { + $import = 1; + } + elsif ($import == 1) + { + $import = 0; + print OUTPUT "import cctools\n"; + } + + if ($line =~ /self.datatypes_by_extension = {$/) + { + $datatypes = 1 + } + elsif ($datatypes == 1){ + if ($line =~ /}/){ + $datatypes = 0; + print OUTPUT "\t\t\t\t'makeflowlog' : cctools.MakeflowLog(),\n"; + print OUTPUT "\t\t\t\t'wqlog' : cctools.WorkQueueLog(),\n"; + } + } + + if ($line =~ /self.mimetypes_by_extension = {$/) + { + $mime = 1 + } + elsif ($mime == 1){ + if ($line =~ /}/){ + $mime = 0; + print OUTPUT "\t\t\t\t'makeflowlog' : 'text/plain',\n"; + print OUTPUT "\t\t\t\t'wqlog' : 'text/plain',\n"; + } + } + + if ($line =~ /self.sniff_order = \[$/) + { + $sniff = 1 + } + elsif ($sniff == 1){ + if ($line =~ /\]/){ + $sniff = 0; + print OUTPUT "\t\t\t\tcctools.MakeflowLog(),\n"; + print OUTPUT "\t\t\t\tcctools.WorkQueueLog(),\n"; + } + elsif (not $line =~ /\(\),/){ + $line = $line + ","; + } + } + + print OUTPUT "$line\n"; +} +close(OUTPUT); +close(INPUT); diff -Nru cctools-7.0.22/contrib/galaxy/modify_tool_conf.pl cctools-7.1.2/contrib/galaxy/modify_tool_conf.pl --- cctools-7.0.22/contrib/galaxy/modify_tool_conf.pl 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/contrib/galaxy/modify_tool_conf.pl 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,33 @@ +#!/usr/bin/perl +# +#Copyright (C) 2013- The University of Notre Dame +#This software is distributed under the GNU General Public License. +#See the file COPYING for details. +# + +use strict; + +if ($#ARGV != 0) { + print "Usage: perl modify_registry.pl \n"; + exit 1; +} + +my $in = shift; +my $out = "tmp_tool_conf"; + +#Open input file +open(INPUT, $in); +open (OUTPUT,">$out"); +while (my $line = ) { + chomp $line; + if ($line =~ /^<\/toolbox>/) + { + print OUTPUT "\t
\n"; + print OUTPUT "\t\t\n"; + print OUTPUT "\t\t\n"; + print OUTPUT "\t<\/section>\n"; + } + print OUTPUT "$line\n"; +} +close(OUTPUT); +close(INPUT); diff -Nru cctools-7.0.22/debian/changelog cctools-7.1.2/debian/changelog --- cctools-7.0.22/debian/changelog 2020-03-17 17:32:02.000000000 +0000 +++ cctools-7.1.2/debian/changelog 2020-05-06 20:16:49.000000000 +0000 @@ -1,3 +1,23 @@ +cctools (7.1.2-1ubuntu1) groovy; urgency=low + + * Merge from Debian unstable. Remaining changes: + - Fix build by using -O0 + + -- Gianfranco Costamagna Wed, 06 May 2020 22:16:49 +0200 + +cctools (7.1.2-1) unstable; urgency=medium + + * New upstream release + * Patches merged/obolete: + - sysmacro.patch + - 2to3 patch + - python37-version.patch + * Build-dep on libext2fs-dev, adding ext*fs support + * Build-dep on libossp-uuid-dev + * configure: fix to ensure ccflags passed / fPIC used + + -- Alastair McKinstry Tue, 05 May 2020 16:46:08 +0100 + cctools (7.0.22-1ubuntu1) focal; urgency=low * Merge from Debian unstable. Remaining changes: diff -Nru cctools-7.0.22/debian/control cctools-7.1.2/debian/control --- cctools-7.0.22/debian/control 2020-03-16 21:47:05.000000000 +0000 +++ cctools-7.1.2/debian/control 2020-05-05 21:54:24.000000000 +0000 @@ -9,6 +9,8 @@ libglobus-common-dev, default-libmysqlclient-dev, libfuse-dev, + libext2fs-dev, + libossp-uuid-dev, libperl-dev, libkrb5-dev, libsqlite3-dev, diff -Nru cctools-7.0.22/debian/coop-computing-tools-doc.install cctools-7.1.2/debian/coop-computing-tools-doc.install --- cctools-7.0.22/debian/coop-computing-tools-doc.install 2020-03-16 21:47:05.000000000 +0000 +++ cctools-7.1.2/debian/coop-computing-tools-doc.install 2020-05-05 21:54:24.000000000 +0000 @@ -1,2 +1 @@ -debian/tmp/doc/*.html usr/share/doc/coop-computing-tools/manual/ -#debian/tmp/doc/api/html/* usr/share/doc/coop-computing-tools/api/ +debian/tmp/doc/api/html/* usr/share/doc/coop-computing-tools/api/ diff -Nru cctools-7.0.22/debian/coop-computing-tools.manpages cctools-7.1.2/debian/coop-computing-tools.manpages --- cctools-7.0.22/debian/coop-computing-tools.manpages 2020-03-16 21:47:05.000000000 +0000 +++ cctools-7.1.2/debian/coop-computing-tools.manpages 2020-05-05 21:54:23.000000000 +0000 @@ -1,2 +1,2 @@ debian/coop-computing-tools.1 -doc/man/*.1.gz +doc/man/man/*.1 diff -Nru cctools-7.0.22/debian/patches/2to3 cctools-7.1.2/debian/patches/2to3 --- cctools-7.0.22/debian/patches/2to3 2020-03-16 21:47:06.000000000 +0000 +++ cctools-7.1.2/debian/patches/2to3 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -Description: Change name of 2to3 exeutable to Debian version -Forwarded: not-needed - -Index: cctools-7.0.22/configure -=================================================================== ---- cctools-7.0.22.orig/configure -+++ cctools-7.0.22/configure -@@ -1106,9 +1106,9 @@ then - python3=0 - fi - -- if check_file ${python3_path}/bin/2to3 -+ if [ -n "$TWOTOTHREE" ] && check_file ${TWOTOTHREE} - then -- python3_2to3=${python3_path}/bin/2to3 -+ python3_2to3=${TWOTOTHREE} - else - python3=0 - fi diff -Nru cctools-7.0.22/debian/patches/64-bit.patch cctools-7.1.2/debian/patches/64-bit.patch --- cctools-7.0.22/debian/patches/64-bit.patch 2020-03-16 21:47:05.000000000 +0000 +++ cctools-7.1.2/debian/patches/64-bit.patch 2020-05-05 21:54:24.000000000 +0000 @@ -3,21 +3,21 @@ Forwarded: no Last-Updated: 2018-06-12 -Index: cctools-7.0.22/configure +Index: cctools-7.1.2/configure =================================================================== ---- cctools-7.0.22.orig/configure -+++ cctools-7.0.22/configure -@@ -73,6 +73,9 @@ case "$BUILD_CPU" in - SUN4V) - BUILD_CPU=SPARC +--- cctools-7.1.2.orig/configure ++++ cctools-7.1.2/configure +@@ -70,6 +70,9 @@ case "$BUILD_CPU" in + POWER\ MACINTOSH) + BUILD_CPU=POWERPC ;; + PPC64LE) + BUILD_CPU=PPC64 + ;; esac - include_package_allpairs="allpairs" -@@ -487,7 +490,7 @@ library_search_mode=prefer_dynamic + include_package_apps="apps" +@@ -469,7 +472,7 @@ library_search_mode=prefer_dynamic if [ "$globus_flavor" = auto ] then diff -Nru cctools-7.0.22/debian/patches/ccflags.patch cctools-7.1.2/debian/patches/ccflags.patch --- cctools-7.0.22/debian/patches/ccflags.patch 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/debian/patches/ccflags.patch 2020-05-05 15:46:08.000000000 +0000 @@ -0,0 +1,17 @@ +Description: Ensure we inherit CCFLAGS + previous ccflags accidentally dropped in this section +Author: Alastair McKinstry +Last-Updated: 2020-04-18 +Forwarded: no + +--- cctools-7.1.2.orig/configure ++++ cctools-7.1.2/configure +@@ -772,7 +772,7 @@ then + + if [ "${mpi_avail}" = yes ] + then +- ccflags="-DCCTOOLS_WITH_MPI" ++ ccflags="${ccflags} -DCCTOOLS_WITH_MPI" + ccompiler=${mpi_exe} + linker=${mpi_exe} + else diff -Nru cctools-7.0.22/debian/patches/debian_configure cctools-7.1.2/debian/patches/debian_configure --- cctools-7.0.22/debian/patches/debian_configure 2020-03-16 21:47:06.000000000 +0000 +++ cctools-7.1.2/debian/patches/debian_configure 2020-05-05 21:54:24.000000000 +0000 @@ -12,10 +12,10 @@ * Deal with the difference between netstat APIs on Linux and kFreeBSD * Set BUILD_* for reproducible builds -Index: cctools-7.0.22/configure +Index: cctools-7.1.2/configure =================================================================== ---- cctools-7.0.22.orig/configure -+++ cctools-7.0.22/configure +--- cctools-7.1.2.orig/configure ++++ cctools-7.1.2/configure @@ -42,13 +42,21 @@ configure_arguments=`echo "$*" | sed 's/ # Here's what we want to exec literally: # uname -a | sed s/#/\\#/ | sed s/\$/$$/ @@ -44,7 +44,7 @@ if [ "$BUILD_CPU" = UNKNOWN ] then -@@ -449,7 +457,8 @@ if [ $BUILD_SYS = LINUX ] +@@ -431,7 +439,8 @@ if [ $BUILD_SYS = LINUX ] then if [ "${config_static_libgcc}" = yes ] then @@ -54,7 +54,7 @@ fi ldflags="${ldflags} -Xlinker -Bdynamic ${link_as_needed}" -@@ -461,6 +470,9 @@ then +@@ -443,6 +452,9 @@ then fi fi @@ -64,7 +64,7 @@ if [ "$optsanitize" = 1 ]; then ccflags="${ccflags} -fno-omit-frame-pointer -fsanitize=address -fsanitize=undefined" ldflags="-fsanitize=address -lasan -lubsan ${ldflags}" -@@ -470,12 +482,12 @@ fi +@@ -452,12 +464,12 @@ fi ########################################################################## # SWITCH TO STATIC LINKING FOR UNCOMMON THIRD-PARTY PACKAGES ########################################################################## @@ -79,12 +79,12 @@ then globus_flavor=gcc64 else -@@ -633,7 +645,7 @@ else - fi - - --if [ $config_mysql_path != no ] && library_search mysqlclient ${mysql_path} mysql -+if [ $config_mysql_path != no ] && library_search mysqlclient ${mysql_path} +@@ -582,7 +594,7 @@ if [ $config_mysql_path != no ] then + mysql_avail=yes mysql_path=${mysql_path:-${base_root}} +- if library_search mysqlclient ${mysql_path} mysql ++ if library_search mysqlclient ${mysql_path} + then + mysql_ldflags="${library_search_result}" diff -Nru cctools-7.0.22/debian/patches/disable_doxygen cctools-7.1.2/debian/patches/disable_doxygen --- cctools-7.0.22/debian/patches/disable_doxygen 2020-03-16 21:47:06.000000000 +0000 +++ cctools-7.1.2/debian/patches/disable_doxygen 2020-05-05 21:54:24.000000000 +0000 @@ -1,8 +1,8 @@ -Index: cctools-7.0.22/doc/Makefile +Index: cctools-7.1.2/doc/Makefile =================================================================== ---- cctools-7.0.22.orig/doc/Makefile -+++ cctools-7.0.22/doc/Makefile -@@ -20,7 +20,7 @@ apipages: api/html/index.html apiperl +--- cctools-7.1.2.orig/doc/Makefile ++++ cctools-7.1.2/doc/Makefile +@@ -11,7 +11,7 @@ apipages: api/html/index.html apiperl api/html/index.html: mkdir -p api/html diff -Nru cctools-7.0.22/debian/patches/hurd cctools-7.1.2/debian/patches/hurd --- cctools-7.0.22/debian/patches/hurd 2020-03-16 21:47:06.000000000 +0000 +++ cctools-7.1.2/debian/patches/hurd 2020-05-05 21:54:24.000000000 +0000 @@ -3,25 +3,10 @@ Last-Updated: 2018-06-28 Forwarded: no -Index: cctools-7.0.22/wavefront/src/wavefront.c +Index: cctools-7.1.2/work_queue/src/work_queue.c =================================================================== ---- cctools-7.0.22.orig/wavefront/src/wavefront.c -+++ cctools-7.0.22/wavefront/src/wavefront.c -@@ -25,6 +25,10 @@ See the file COPYING for details. - #include "stringtools.h" - #include "getopt_aux.h" - -+#ifndef PATH_MAX /* Hurd */ -+#define PATH_MAX 1024 -+#endif -+ - #define WAVEFRONT_TASK_STATE_COMPLETE MAKE_RGBA(0,0,255,0) - #define WAVEFRONT_TASK_STATE_RUNNING MAKE_RGBA(0,255,0,0) - #define WAVEFRONT_TASK_STATE_READY MAKE_RGBA(255,255,0,0) -Index: cctools-7.0.22/work_queue/src/work_queue.c -=================================================================== ---- cctools-7.0.22.orig/work_queue/src/work_queue.c -+++ cctools-7.0.22/work_queue/src/work_queue.c +--- cctools-7.1.2.orig/work_queue/src/work_queue.c ++++ cctools-7.1.2/work_queue/src/work_queue.c @@ -66,6 +66,10 @@ The following major problems must be fix #include #include @@ -33,10 +18,10 @@ // The default tasks capacity reported before information is available. // Default capacity also implies 1 core, 1024 MB of disk and 512 memory per task. #define WORK_QUEUE_DEFAULT_CAPACITY_TASKS 10 -Index: cctools-7.0.22/work_queue/src/work_queue_process.c +Index: cctools-7.1.2/work_queue/src/work_queue_process.c =================================================================== ---- cctools-7.0.22.orig/work_queue/src/work_queue_process.c -+++ cctools-7.0.22/work_queue/src/work_queue_process.c +--- cctools-7.1.2.orig/work_queue/src/work_queue_process.c ++++ cctools-7.1.2/work_queue/src/work_queue_process.c @@ -29,6 +29,10 @@ #include #include @@ -48,10 +33,10 @@ #define SMALL_BUFFER_SIZE 256 #define MAX_BUFFER_SIZE 4096 #define DEFAULT_WORK_DIR "/home/worker" -Index: cctools-7.0.22/work_queue/src/work_queue_worker.c +Index: cctools-7.1.2/work_queue/src/work_queue_worker.c =================================================================== ---- cctools-7.0.22.orig/work_queue/src/work_queue_worker.c -+++ cctools-7.0.22/work_queue/src/work_queue_worker.c +--- cctools-7.1.2.orig/work_queue/src/work_queue_worker.c ++++ cctools-7.1.2/work_queue/src/work_queue_worker.c @@ -66,6 +66,10 @@ See the file COPYING for details. #include #include @@ -63,11 +48,11 @@ typedef enum { WORKER_MODE_WORKER, WORKER_MODE_FOREMAN -Index: cctools-7.0.22/resource_monitor/src/resource_monitor.c +Index: cctools-7.1.2/resource_monitor/src/resource_monitor.c =================================================================== ---- cctools-7.0.22.orig/resource_monitor/src/resource_monitor.c -+++ cctools-7.0.22/resource_monitor/src/resource_monitor.c -@@ -156,6 +156,10 @@ See the file COPYING for details. +--- cctools-7.1.2.orig/resource_monitor/src/resource_monitor.c ++++ cctools-7.1.2/resource_monitor/src/resource_monitor.c +@@ -159,6 +159,10 @@ See the file COPYING for details. #include #endif @@ -78,10 +63,10 @@ #include "rmonitor_helper_comm.h" #include "rmonitor_piggyback.h" -Index: cctools-7.0.22/resource_monitor/src/resource_monitor_histograms.c +Index: cctools-7.1.2/resource_monitor/src/resource_monitor_histograms.c =================================================================== ---- cctools-7.0.22.orig/resource_monitor/src/resource_monitor_histograms.c -+++ cctools-7.0.22/resource_monitor/src/resource_monitor_histograms.c +--- cctools-7.1.2.orig/resource_monitor/src/resource_monitor_histograms.c ++++ cctools-7.1.2/resource_monitor/src/resource_monitor_histograms.c @@ -19,6 +19,10 @@ See the file COPYING for details. #define MAX_LINE 1024 @@ -93,10 +78,10 @@ #define OUTLIER_DIR "outliers" #define OUTLIER_N 5 -Index: cctools-7.0.22/resource_monitor/src/rmonitor_helper_comm.c +Index: cctools-7.1.2/resource_monitor/src/rmonitor_helper_comm.c =================================================================== ---- cctools-7.0.22.orig/resource_monitor/src/rmonitor_helper_comm.c -+++ cctools-7.0.22/resource_monitor/src/rmonitor_helper_comm.c +--- cctools-7.1.2.orig/resource_monitor/src/rmonitor_helper_comm.c ++++ cctools-7.1.2/resource_monitor/src/rmonitor_helper_comm.c @@ -25,6 +25,10 @@ See the file COPYING for details. #include "rmonitor_helper_comm.h" @@ -108,39 +93,10 @@ #include "debug.h" //#define debug fprintf //#define D_RMON stderr -Index: cctools-7.0.22/ftsh/src/buffer.c -=================================================================== ---- cctools-7.0.22.orig/ftsh/src/buffer.c -+++ cctools-7.0.22/ftsh/src/buffer.c -@@ -18,6 +18,10 @@ See the file COPYING for details. - #include - #include - -+#ifndef PATH_MAX -+#define PATH_MAX 1024 -+#endif -+ - static struct hash_table *table=0; - - static int buffer_init() -Index: cctools-7.0.22/ftsh/src/expr.c -=================================================================== ---- cctools-7.0.22.orig/ftsh/src/expr.c -+++ cctools-7.0.22/ftsh/src/expr.c -@@ -22,6 +22,9 @@ See the file COPYING for details. - #include - #include - -+#ifndef PATH_MAX // Not defined on Hurd -+#define PATH_MAX 1024 -+#endif - static void expr_print_list( FILE *file, struct expr *e, int with_commas ); - - struct expr_table { -Index: cctools-7.0.22/makeflow/src/dag_visitors.c +Index: cctools-7.1.2/makeflow/src/dag_visitors.c =================================================================== ---- cctools-7.0.22.orig/makeflow/src/dag_visitors.c -+++ cctools-7.0.22/makeflow/src/dag_visitors.c +--- cctools-7.1.2.orig/makeflow/src/dag_visitors.c ++++ cctools-7.1.2/makeflow/src/dag_visitors.c @@ -35,6 +35,9 @@ See the file COPYING for details. #include "dag_visitors.h" #include "rmsummary.h" @@ -151,10 +107,10 @@ /* * BUG: Error handling is not very good. * BUG: Integrate more with dttools (use DEBUG, etc.) -Index: cctools-7.0.22/makeflow/src/makeflow_analyze.c +Index: cctools-7.1.2/makeflow/src/makeflow_analyze.c =================================================================== ---- cctools-7.0.22.orig/makeflow/src/makeflow_analyze.c -+++ cctools-7.0.22/makeflow/src/makeflow_analyze.c +--- cctools-7.1.2.orig/makeflow/src/makeflow_analyze.c ++++ cctools-7.1.2/makeflow/src/makeflow_analyze.c @@ -47,6 +47,10 @@ See the file COPYING for details. #include "dag_visitors.h" #include "parser.h" @@ -166,10 +122,10 @@ /* Display options */ enum { SHOW_INPUT_FILES = 2, SHOW_OUTPUT_FILES, -Index: cctools-7.0.22/makeflow/src/makeflow_linker.c +Index: cctools-7.1.2/makeflow/src/makeflow_linker.c =================================================================== ---- cctools-7.0.22.orig/makeflow/src/makeflow_linker.c -+++ cctools-7.0.22/makeflow/src/makeflow_linker.c +--- cctools-7.1.2.orig/makeflow/src/makeflow_linker.c ++++ cctools-7.1.2/makeflow/src/makeflow_linker.c @@ -25,6 +25,10 @@ See the file COPYING for details. #include "stringtools.h" #include "xxmalloc.h" @@ -181,10 +137,10 @@ #define MAKEFLOW_PATH "makeflow_analyze" #define MAKEFLOW_BUNDLE_FLAG "-b" -Index: cctools-7.0.22/makeflow/src/makeflow_log.c +Index: cctools-7.1.2/makeflow/src/makeflow_log.c =================================================================== ---- cctools-7.0.22.orig/makeflow/src/makeflow_log.c -+++ cctools-7.0.22/makeflow/src/makeflow_log.c +--- cctools-7.1.2.orig/makeflow/src/makeflow_log.c ++++ cctools-7.1.2/makeflow/src/makeflow_log.c @@ -23,6 +23,10 @@ See the file COPYING for details. #include #include @@ -196,10 +152,10 @@ #define MAX_BUFFER_SIZE 4096 /* -Index: cctools-7.0.22/makeflow/src/makeflow_mounts.c +Index: cctools-7.1.2/makeflow/src/makeflow_mounts.c =================================================================== ---- cctools-7.0.22.orig/makeflow/src/makeflow_mounts.c -+++ cctools-7.0.22/makeflow/src/makeflow_mounts.c +--- cctools-7.1.2.orig/makeflow/src/makeflow_mounts.c ++++ cctools-7.1.2/makeflow/src/makeflow_mounts.c @@ -32,6 +32,10 @@ See the file COPYING for details. #include "unlink_recursive.h" #include "xxmalloc.h" @@ -211,10 +167,10 @@ #define HTTP_TIMEOUT 300 /* create_link creates a link from link_name to link_target. -Index: cctools-7.0.22/grow/src/grow_fuse.c +Index: cctools-7.1.2/grow/src/grow_fuse.c =================================================================== ---- cctools-7.0.22.orig/grow/src/grow_fuse.c -+++ cctools-7.0.22/grow/src/grow_fuse.c +--- cctools-7.1.2.orig/grow/src/grow_fuse.c ++++ cctools-7.1.2/grow/src/grow_fuse.c @@ -26,6 +26,10 @@ #include "copy_stream.h" #include "jx_pretty_print.h" @@ -226,10 +182,10 @@ #ifndef O_PATH #define O_PATH O_RDONLY #endif -Index: cctools-7.0.22/dttools/src/auth_ticket.c +Index: cctools-7.1.2/dttools/src/auth_ticket.c =================================================================== ---- cctools-7.0.22.orig/dttools/src/auth_ticket.c -+++ cctools-7.0.22/dttools/src/auth_ticket.c +--- cctools-7.1.2.orig/dttools/src/auth_ticket.c ++++ cctools-7.1.2/dttools/src/auth_ticket.c @@ -20,6 +20,10 @@ See the file COPYING for details. #include "sort_dir.h" #include "xxmalloc.h" diff -Nru cctools-7.0.22/debian/patches/multiarch_configure cctools-7.1.2/debian/patches/multiarch_configure --- cctools-7.0.22/debian/patches/multiarch_configure 2020-03-16 21:47:06.000000000 +0000 +++ cctools-7.1.2/debian/patches/multiarch_configure 2020-05-05 21:54:24.000000000 +0000 @@ -11,11 +11,11 @@ Tested on Debian Sid virtual machine. git-svn-id: svn://ccl.cse.nd.edu/trunk@1415 a4d8336d-3463-0410-8bba-c098c45d37a8 Origin: upstream -Index: cctools-7.0.22/configure +Index: cctools-7.1.2/configure =================================================================== ---- cctools-7.0.22.orig/configure -+++ cctools-7.0.22/configure -@@ -473,6 +473,8 @@ then +--- cctools-7.1.2.orig/configure ++++ cctools-7.1.2/configure +@@ -455,6 +455,8 @@ then fi fi @@ -24,11 +24,11 @@ # accept ldflags from outside ldflags="$ldflags $LDFLAGS" -Index: cctools-7.0.22/configure.tools.sh +Index: cctools-7.1.2/configure.tools.sh =================================================================== ---- cctools-7.0.22.orig/configure.tools.sh -+++ cctools-7.0.22/configure.tools.sh -@@ -648,7 +648,7 @@ check_for_globus() +--- cctools-7.1.2.orig/configure.tools.sh ++++ cctools-7.1.2/configure.tools.sh +@@ -681,7 +681,7 @@ check_for_globus() check_multiarch() { if [ -r /etc/debian_version ]; then diff -Nru cctools-7.0.22/debian/patches/perl-path cctools-7.1.2/debian/patches/perl-path --- cctools-7.0.22/debian/patches/perl-path 2020-03-16 21:47:06.000000000 +0000 +++ cctools-7.1.2/debian/patches/perl-path 2020-05-05 21:54:24.000000000 +0000 @@ -3,188 +3,50 @@ Last-Updated: 2018-12-26 Forwarded: not-needed -Index: cctools-7.0.22/apps/wq_maker/wq_maker +Index: cctools-7.1.2/apps/wq_maker/wq_maker =================================================================== ---- cctools-7.0.22.orig/apps/wq_maker/wq_maker -+++ cctools-7.0.22/apps/wq_maker/wq_maker +--- cctools-7.1.2.orig/apps/wq_maker/wq_maker ++++ cctools-7.1.2/apps/wq_maker/wq_maker @@ -1,4 +1,4 @@ -#!/usr/bin/env perl +#!/usr/bin/perl # wq_maker # -Index: cctools-7.0.22/chirp/src/bindings/perl/chirp_jobs_perl_example.pl +Index: cctools-7.1.2/chirp/src/bindings/perl/chirp_jobs_perl_example.pl =================================================================== ---- cctools-7.0.22.orig/chirp/src/bindings/perl/chirp_jobs_perl_example.pl -+++ cctools-7.0.22/chirp/src/bindings/perl/chirp_jobs_perl_example.pl +--- cctools-7.1.2.orig/chirp/src/bindings/perl/chirp_jobs_perl_example.pl ++++ cctools-7.1.2/chirp/src/bindings/perl/chirp_jobs_perl_example.pl @@ -1,4 +1,4 @@ -#!/usr/bin/env perl +#!/usr/bin/perl use v5.8.8; -Index: cctools-7.0.22/chirp/src/bindings/perl/chirp_perl_example.pl +Index: cctools-7.1.2/chirp/src/bindings/perl/chirp_perl_example.pl =================================================================== ---- cctools-7.0.22.orig/chirp/src/bindings/perl/chirp_perl_example.pl -+++ cctools-7.0.22/chirp/src/bindings/perl/chirp_perl_example.pl +--- cctools-7.1.2.orig/chirp/src/bindings/perl/chirp_perl_example.pl ++++ cctools-7.1.2/chirp/src/bindings/perl/chirp_perl_example.pl @@ -1,4 +1,4 @@ -#!/usr/bin/env perl +#!/usr/bin/perl use v5.8.8; -Index: cctools-7.0.22/sand/src/sand_runCA_5.4 +Index: cctools-7.1.2/work_queue/src/bindings/perl/work_queue_example.pl =================================================================== ---- cctools-7.0.22.orig/sand/src/sand_runCA_5.4 -+++ cctools-7.0.22/sand/src/sand_runCA_5.4 -@@ -1,4 +1,4 @@ --#!/usr/bin/env perl -+#!/usr/bin/perl - - # This file is a modified version of the runCA script distributed - # with the Whole Genome Shotgun Assembler (wgs-assembler), which is -@@ -980,7 +980,7 @@ sub submitScript ($) { - print F "hostname\n"; - print F "echo \$bin\n"; - -- print F "/usr/bin/env perl \$bin/runCA $commandLineOptions\n"; -+ print F "/usr/bin/perl \$bin/runCA $commandLineOptions\n"; - close(F); - - system("chmod +x $script"); -@@ -1877,7 +1877,7 @@ sub createOverlapJobs($) { - open(F, "> $wrk/$outDir/overlap.sh") or caFailure("can't open '$wrk/$outDir/overlap.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; -- print F "perl='/usr/bin/env perl'\n"; -+ print F "perl='/usr/bin/perl'\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; -@@ -1980,7 +1980,7 @@ sub createOverlapJobs($) { - } - - open(SUB, "> $wrk/$outDir/ovlopts.pl") or caFailure("failed to open '$wrk/$outDir/ovlopts.pl'", undef); -- print SUB "#!/usr/bin/env perl\n"; -+ print SUB "#!/usr/bin/perl\n"; - print SUB "use strict;\n"; - print SUB "my \@bat = (\n"; foreach my $b (@bat) { print SUB "\"$b\",\n"; } print SUB ");\n"; - print SUB "my \@job = (\n"; foreach my $b (@job) { print SUB "\"$b\",\n"; } print SUB ");\n"; -@@ -4046,7 +4046,7 @@ sub terminate ($) { - $cgwDir = "$wrk/7-CGW" if (!defined($cgwDir)); - - my $bin = getBinDirectory(); -- my $perl = "/usr/bin/env perl"; -+ my $perl = "/usr/bin/perl"; - - my $termDir = "$wrk/9-terminator"; - system("mkdir $termDir") if (! -e "$termDir"); -Index: cctools-7.0.22/sand/src/sand_runCA_6.1 -=================================================================== ---- cctools-7.0.22.orig/sand/src/sand_runCA_6.1 -+++ cctools-7.0.22/sand/src/sand_runCA_6.1 -@@ -1,4 +1,4 @@ --#!/usr/bin/env perl -+#!/usr/bin/perl - - use strict; - use Config; # for @signame -@@ -1084,7 +1084,7 @@ sub submitScript ($) { - #print F "hostname\n"; - #print F "echo \$bin\n"; - -- print F "/usr/bin/env perl \$bin/runCA $commandLineOptions\n"; -+ print F "/usr/bin/perl \$bin/runCA $commandLineOptions\n"; - close(F); - - system("chmod +x $script"); -@@ -2121,7 +2121,7 @@ sub createOverlapJobs($) { - open(F, "> $wrk/$outDir/overlap.sh") or caFailure("can't open '$wrk/$outDir/overlap.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; -- print F "perl='/usr/bin/env perl'\n"; -+ print F "perl='/usr/bin/perl'\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; -@@ -2229,7 +2229,7 @@ sub createOverlapJobs($) { - } - - open(SUB, "> $wrk/$outDir/ovlopts.pl") or caFailure("failed to open '$wrk/$outDir/ovlopts.pl'", undef); -- print SUB "#!/usr/bin/env perl\n"; -+ print SUB "#!/usr/bin/perl\n"; - print SUB "use strict;\n"; - print SUB "my \@bat = (\n"; foreach my $b (@bat) { print SUB "\"$b\",\n"; } print SUB ");\n"; - print SUB "my \@job = (\n"; foreach my $b (@job) { print SUB "\"$b\",\n"; } print SUB ");\n"; -@@ -4352,7 +4352,7 @@ sub summarizeConsensusStatistics ($) { - - sub terminate () { - my $bin = getBinDirectory(); -- my $perl = "/usr/bin/env perl"; -+ my $perl = "/usr/bin/perl"; - - my $termDir = "$wrk/9-terminator"; - system("mkdir $termDir") if (! -e "$termDir"); -Index: cctools-7.0.22/sand/src/sand_runCA_7.0 -=================================================================== ---- cctools-7.0.22.orig/sand/src/sand_runCA_7.0 -+++ cctools-7.0.22/sand/src/sand_runCA_7.0 -@@ -1,4 +1,4 @@ --#!/usr/bin/env perl -+#!/usr/bin/perl - - use strict; - -@@ -1205,7 +1205,7 @@ sub submitScript ($) { - - print F getBinDirectoryShellCode(); - -- print F "/usr/bin/env perl \$bin/runCA $commandLineOptions\n"; -+ print F "/usr/bin/perl \$bin/runCA $commandLineOptions\n"; - close(F); - - system("chmod +x $script"); -@@ -2759,7 +2759,7 @@ sub merTrim { - open(F, "> $wrk/0-mertrim/mertrim.sh") or caFailure("can't open '$wrk/0-mertrim/mertrim.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; -- print F "perl='/usr/bin/env perl'\n"; -+ print F "perl='/usr/bin/perl'\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; -@@ -3367,7 +3367,7 @@ sub createOverlapJobs($) { - open(F, "> $wrk/$outDir/overlap.sh") or caFailure("can't open '$wrk/$outDir/overlap.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; -- print F "perl='/usr/bin/env perl'\n"; -+ print F "perl='/usr/bin/perl'\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; -@@ -5295,7 +5295,7 @@ sub summarizeConsensusStatistics ($) { - - - sub terminate () { -- my $perl = "/usr/bin/env perl"; -+ my $perl = "/usr/bin/perl"; - - my $termDir = "$wrk/9-terminator"; - system("mkdir $termDir") if (! -e "$termDir"); -Index: cctools-7.0.22/work_queue/src/bindings/perl/work_queue_example.pl -=================================================================== ---- cctools-7.0.22.orig/work_queue/src/bindings/perl/work_queue_example.pl -+++ cctools-7.0.22/work_queue/src/bindings/perl/work_queue_example.pl +--- cctools-7.1.2.orig/work_queue/src/bindings/perl/work_queue_example.pl ++++ cctools-7.1.2/work_queue/src/bindings/perl/work_queue_example.pl @@ -1,4 +1,4 @@ -#! /usr/bin/env perl +#! /usr/bin/perl # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. -Index: cctools-7.0.22/makeflow/src/makeflow_linker_perl_driver +Index: cctools-7.1.2/makeflow/src/makeflow_linker_perl_driver =================================================================== ---- cctools-7.0.22.orig/makeflow/src/makeflow_linker_perl_driver -+++ cctools-7.0.22/makeflow/src/makeflow_linker_perl_driver +--- cctools-7.1.2.orig/makeflow/src/makeflow_linker_perl_driver ++++ cctools-7.1.2/makeflow/src/makeflow_linker_perl_driver @@ -1,4 +1,4 @@ -#!/usr/bin/env perl +#!/usr/bin/perl diff -Nru cctools-7.0.22/debian/patches/python37-version cctools-7.1.2/debian/patches/python37-version --- cctools-7.0.22/debian/patches/python37-version 2020-03-16 21:47:06.000000000 +0000 +++ cctools-7.1.2/debian/patches/python37-version 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -Index: cctools-7.0.22/configure -=================================================================== ---- cctools-7.0.22.orig/configure -+++ cctools-7.0.22/configure -@@ -1119,7 +1119,7 @@ then - fi - if [ $python3 != 0 ] - then -- python3_version=`${python3} -V 2>&1 | cut -d " " -f 2` -+ python3_version=`${python3} -V 2>&1 | head -n1 | cut -d " " -f 2` - echo "python3 version is ${python3_version}" - python3_major_version=`echo ${python3_version} | cut -d . -f 1` - python3_minor_version=`echo ${python3_version} | cut -d . -f 2 | cut -d . -f 1,2` diff -Nru cctools-7.0.22/debian/patches/python3.patch cctools-7.1.2/debian/patches/python3.patch --- cctools-7.0.22/debian/patches/python3.patch 2020-03-16 21:47:06.000000000 +0000 +++ cctools-7.1.2/debian/patches/python3.patch 2020-05-05 21:54:24.000000000 +0000 @@ -1,28 +1,14 @@ -Index: cctools-7.0.22/dttools/src/cctools_python +Index: cctools-7.1.2/apps/makeflow_blast/makeflow_blast =================================================================== ---- cctools-7.0.22.orig/dttools/src/cctools_python -+++ cctools-7.0.22/dttools/src/cctools_python -@@ -1,6 +1,6 @@ - #!/bin/sh - --pythons="$PYTHON2 $PYTHON python2.7 python2.6 python2.4 python2 python3 python" -+pythons="$PYTHON python3.8 python3.7 python3 " - - major_version () { - _version=$1 -Index: cctools-7.0.22/apps/makeflow_blast/makeflow_blast -=================================================================== ---- cctools-7.0.22.orig/apps/makeflow_blast/makeflow_blast -+++ cctools-7.0.22/apps/makeflow_blast/makeflow_blast -@@ -1,5 +1,5 @@ --#!/usr/bin/env cctools_python --# CCTOOLS_PYTHON_VERSION 2.7 2.6 +--- cctools-7.1.2.orig/apps/makeflow_blast/makeflow_blast ++++ cctools-7.1.2/apps/makeflow_blast/makeflow_blast +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python +#!/usr/bin/python3 -+# CCTOOLS_PYTHON_VERSION 3.8 3.7 # Copyright (C) 2011- The University of Notre Dame # This software is distributed under the GNU General Public License. -@@ -16,7 +16,7 @@ class PassThroughParser(optparse.OptionP +@@ -15,7 +15,7 @@ class PassThroughParser(optparse.OptionP while rargs: try: optparse.OptionParser._process_args(self,largs,rargs,values) @@ -31,7 +17,7 @@ largs.append(e.opt_str) #Parser initialization -@@ -286,7 +286,7 @@ else: +@@ -285,7 +285,7 @@ else: dbpath = os.path.dirname(db) for fn in os.listdir(dbpath): oloc = "{0}/{1}\n".format(dbpath, fn) @@ -40,10 +26,10 @@ if options.database in fn: os.symlink(oloc, "{0}/{1}".format(options.database, fn)) log.info("Databse linked from : {0}/{1}".format(dbpath, options.database)) -Index: cctools-7.0.22/makeflow/src/makeflow_archive_query +Index: cctools-7.1.2/makeflow/src/makeflow_archive_query =================================================================== ---- cctools-7.0.22.orig/makeflow/src/makeflow_archive_query -+++ cctools-7.0.22/makeflow/src/makeflow_archive_query +--- cctools-7.1.2.orig/makeflow/src/makeflow_archive_query ++++ cctools-7.1.2/makeflow/src/makeflow_archive_query @@ -88,23 +88,23 @@ class SimpleDagJob(object): self.batch_job_info['exit_signal'] = int(f.readline().rstrip()) def print_immediate_inputs(self): @@ -150,19 +136,17 @@ else: - print "File has not been archived" + print("File has not been archived") -Index: cctools-7.0.22/apps/makeflow_gatk/makeflow_gatk +Index: cctools-7.1.2/apps/makeflow_gatk/makeflow_gatk =================================================================== ---- cctools-7.0.22.orig/apps/makeflow_gatk/makeflow_gatk -+++ cctools-7.0.22/apps/makeflow_gatk/makeflow_gatk -@@ -1,5 +1,5 @@ --#!/usr/bin/env cctools_python --# CCTOOLS_PYTHON_VERSION 2.7 2.6 +--- cctools-7.1.2.orig/apps/makeflow_gatk/makeflow_gatk ++++ cctools-7.1.2/apps/makeflow_gatk/makeflow_gatk +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python +#!/usr/bin/python3 -+# CCTOOLS_PYTHON_VERSION 3.8 3.7 # #Copyright (C) 2013- The University of Notre Dame #This software is distributed under the GNU General Public License. -@@ -19,7 +19,7 @@ class PassThroughParser(optparse.OptionP +@@ -18,7 +18,7 @@ class PassThroughParser(optparse.OptionP while rargs: try: optparse.OptionParser._process_args(self,largs,rargs,values) @@ -171,64 +155,27 @@ largs.append(e.opt_str) def parse_req(parser): -Index: cctools-7.0.22/makeflow/src/makeflow_linker_python_driver +Index: cctools-7.1.2/makeflow/src/makeflow_linker_python_driver =================================================================== ---- cctools-7.0.22.orig/makeflow/src/makeflow_linker_python_driver -+++ cctools-7.0.22/makeflow/src/makeflow_linker_python_driver -@@ -1,5 +1,5 @@ --#!/usr/bin/env cctools_python --# CCTOOLS_PYTHON_VERSION 2.7 2.6 2.5 2.4 +--- cctools-7.1.2.orig/makeflow/src/makeflow_linker_python_driver ++++ cctools-7.1.2/makeflow/src/makeflow_linker_python_driver +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python +#!/usr/bin/python3 -+# CCTOOLS_PYTHON_VERSION 3.8 3.7 # Copyright (C) 2013- The University of Notre Dame # This software is distributed under the GNU General Public License. -@@ -33,7 +33,7 @@ def find_module_names(filename): - module_names = [] - try: - f = open(filename) -- except IOError, e: -+ except IOError as e: - if e.errno == errno.EISDIR: - return [] - -@@ -53,7 +53,7 @@ def find_module_names(filename): - return module_names - - if len(sys.argv) < 2: -- print usage(sys.argv[0]); -+ print(usage(sys.argv[0])); - exit(1) - - file_to_link = sys.argv[-1] -@@ -63,7 +63,7 @@ use_named = False - if len(sys.argv) > 2 and sys.argv[1] == '--use-named': - use_named = True - --print "*Python", sys.version.split(' ')[0] -+print("*Python", sys.version.split(' ')[0]) - modules = find_module_names(file_to_link) - for m in modules: - m_split = m.split('.') -@@ -71,4 +71,4 @@ for m in modules: - continue - m_path = imp.find_module(m_split[0])[1] - if m_path != file_to_link: -- print m_path, m -+ print(m_path, m) -Index: cctools-7.0.22/makeflow/src/makeflow_monitor -=================================================================== ---- cctools-7.0.22.orig/makeflow/src/makeflow_monitor -+++ cctools-7.0.22/makeflow/src/makeflow_monitor -@@ -1,5 +1,5 @@ --#!/usr/bin/env cctools_python --# CCTOOLS_PYTHON_VERSION 2.7 2.6 +Index: cctools-7.1.2/makeflow/src/makeflow_monitor +=================================================================== +--- cctools-7.1.2.orig/makeflow/src/makeflow_monitor ++++ cctools-7.1.2/makeflow/src/makeflow_monitor +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python +#!/usr/bin/python3 -+# CCTOOLS_PYTHON_VERSION 3.8 3.7 # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. -@@ -282,7 +282,7 @@ def time_format(seconds): +@@ -281,7 +281,7 @@ def time_format(seconds): tlist.append(ctime) break @@ -237,10 +184,10 @@ # Main Execution -Index: cctools-7.0.22/makeflow/src/mf_mesos_executor +Index: cctools-7.1.2/makeflow/src/mf_mesos_executor =================================================================== ---- cctools-7.0.22.orig/makeflow/src/mf_mesos_executor -+++ cctools-7.0.22/makeflow/src/mf_mesos_executor +--- cctools-7.1.2.orig/makeflow/src/mf_mesos_executor ++++ cctools-7.1.2/makeflow/src/mf_mesos_executor @@ -11,7 +11,7 @@ import os import sys @@ -332,10 +279,10 @@ driver = MesosExecutorDriver(MakeflowMesosExecutor(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])) status = 0 if driver.run() == mesos_pb2.DRIVER_STOPPED else 1 -Index: cctools-7.0.22/makeflow/src/mf_mesos_scheduler +Index: cctools-7.1.2/makeflow/src/mf_mesos_scheduler =================================================================== ---- cctools-7.0.22.orig/makeflow/src/mf_mesos_scheduler -+++ cctools-7.0.22/makeflow/src/mf_mesos_scheduler +--- cctools-7.1.2.orig/makeflow/src/mf_mesos_scheduler ++++ cctools-7.1.2/makeflow/src/mf_mesos_scheduler @@ -25,18 +25,18 @@ import os import sys import uuid @@ -447,10 +394,10 @@ httpd = ThreadedServer(("", port), Handler) threading.Thread(target=start_httpserver, args=(httpd,port)).start() -Index: cctools-7.0.22/makeflow/src/mf_mesos_setting +Index: cctools-7.1.2/makeflow/src/mf_mesos_setting =================================================================== ---- cctools-7.0.22.orig/makeflow/src/mf_mesos_setting -+++ cctools-7.0.22/makeflow/src/mf_mesos_setting +--- cctools-7.1.2.orig/makeflow/src/mf_mesos_setting ++++ cctools-7.1.2/makeflow/src/mf_mesos_setting @@ -9,7 +9,7 @@ # defined in mf_mesos_scheduler @@ -478,19 +425,17 @@ debug_fn.write("{}:{},".format(value.task_id, value.action)) debug_fn.write("================\n") -Index: cctools-7.0.22/prune/src/prune_worker.py +Index: cctools-7.1.2/prune/src/prune_worker.py =================================================================== ---- cctools-7.0.22.orig/prune/src/prune_worker.py -+++ cctools-7.0.22/prune/src/prune_worker.py -@@ -1,5 +1,5 @@ --#!/usr/bin/env cctools_python --# CCTOOLS_PYTHON_VERSION 2.7 2.6 +--- cctools-7.1.2.orig/prune/src/prune_worker.py ++++ cctools-7.1.2/prune/src/prune_worker.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python +#!/usr/bin/python3 -+# CCTOOLS_PYTHON_VERSION 3.8 3.7 # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. -@@ -73,7 +73,7 @@ try: +@@ -72,7 +72,7 @@ try: elif arg in ['-v','--version']: #cctools_version = '5.0.0 [prune:887c027d-DIRTY]' #cctools_releasedate = '2015-05-26 11:56:15 -0400' @@ -499,7 +444,7 @@ sys.exit(0) elif arg in ['-d','--debug']: -@@ -94,7 +94,7 @@ try: +@@ -93,7 +93,7 @@ try: ''' # -h,--hostname Hostname for master. (default: localhost) # -p,--port Port number for master. (default: 8073) @@ -508,7 +453,7 @@ sys.exit(0) argi += 1 -@@ -119,8 +119,8 @@ try: +@@ -118,8 +118,8 @@ try: 'Network server not yet implemented' else: @@ -519,19 +464,17 @@ except: - print traceback.format_exc() + print(traceback.format_exc()) -Index: cctools-7.0.22/makeflow/src/starch +Index: cctools-7.1.2/makeflow/src/starch =================================================================== ---- cctools-7.0.22.orig/makeflow/src/starch -+++ cctools-7.0.22/makeflow/src/starch -@@ -1,5 +1,5 @@ --#!/usr/bin/env cctools_python --# CCTOOLS_PYTHON_VERSION 2.7 2.6 2.5 2.4 3 +--- cctools-7.1.2.orig/makeflow/src/starch ++++ cctools-7.1.2/makeflow/src/starch +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python +#!/usr/bin/python3 -+# CCTOOLS_PYTHON_VERSION 3.8 3.7 # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. -@@ -19,15 +19,9 @@ from time import time +@@ -18,15 +18,9 @@ from time import time from tempfile import NamedTemporaryFile from shutil import copyfile, copyfileobj @@ -550,20 +493,11 @@ # Todo -@@ -195,7 +189,7 @@ def create_sfx(sfx_path, executables, li - archive.addfile(lib_info, open(real_path, 'rb')) - - logging.debug('adding data...') -- for data_path, real_path in map(lambda s: s.split(':'), data): -+ for data_path, real_path in [s.split(':') for s in data]: - add_data_to_archive(archive, os.path.normpath(data_path), os.path.normpath(real_path)) - - logging.debug('adding environment scripts...') -Index: cctools-7.0.22/umbrella/src/umbrella.py -=================================================================== ---- cctools-7.0.22.orig/umbrella/src/umbrella.py -+++ cctools-7.0.22/umbrella/src/umbrella.py -@@ -4316,7 +4316,7 @@ To check the help doc for a specific beh +Index: cctools-7.1.2/umbrella/src/umbrella.py +=================================================================== +--- cctools-7.1.2.orig/umbrella/src/umbrella.py ++++ cctools-7.1.2/umbrella/src/umbrella.py +@@ -4301,7 +4301,7 @@ To check the help doc for a specific beh del output_dict @@ -572,7 +506,7 @@ if not os.path.exists(f): logging.debug("create the output file: %s", f) d = os.path.dirname(f) -@@ -4341,7 +4341,7 @@ To check the help doc for a specific beh +@@ -4326,7 +4326,7 @@ To check the help doc for a specific beh else: pass @@ -581,31 +515,27 @@ if not os.path.exists(d): logging.debug("create the output dir: %s", d) os.makedirs(d) -Index: cctools-7.0.22/weaver/src/weaver.in +Index: cctools-7.1.2/weaver/src/weaver.in =================================================================== ---- cctools-7.0.22.orig/weaver/src/weaver.in -+++ cctools-7.0.22/weaver/src/weaver.in -@@ -1,5 +1,5 @@ --#!/usr/bin/env cctools_python --# CCTOOLS_PYTHON_VERSION 2.7 2.6 +--- cctools-7.1.2.orig/weaver/src/weaver.in ++++ cctools-7.1.2/weaver/src/weaver.in +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python +#!/usr/bin/python3 -+# CCTOOLS_PYTHON_VERSION 3.8 3.7 # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. -Index: cctools-7.0.22/work_queue/src/work_queue_graph_log +Index: cctools-7.1.2/work_queue/src/work_queue_graph_log =================================================================== ---- cctools-7.0.22.orig/work_queue/src/work_queue_graph_log -+++ cctools-7.0.22/work_queue/src/work_queue_graph_log -@@ -1,5 +1,5 @@ --#!/usr/bin/env cctools_python --# CCTOOLS_PYTHON_VERSION 2.7 2.6 +--- cctools-7.1.2.orig/work_queue/src/work_queue_graph_log ++++ cctools-7.1.2/work_queue/src/work_queue_graph_log +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python +#!/usr/bin/python3 -+# CCTOOLS_PYTHON_VERSION 3.8 3.7 # Copyright (C) 2014- The University of Notre Dame # This software is distributed under the GNU General Public License. -@@ -10,6 +10,7 @@ import re +@@ -9,6 +9,7 @@ import re import os import getopt from subprocess import Popen, PIPE @@ -613,7 +543,7 @@ gnuplot_cmd = 'gnuplot' format = 'svg' -@@ -44,8 +45,8 @@ def time_field_p(field): +@@ -43,8 +44,8 @@ def time_field_p(field): def read_log_entries(file, fields): log_entries = {} @@ -624,7 +554,7 @@ epoch = None count_lines = 0 prev_line = None -@@ -76,7 +77,7 @@ def read_log_entries(file, fields): +@@ -75,7 +76,7 @@ def read_log_entries(file, fields): prev_line = record delta = {} @@ -633,7 +563,7 @@ delta[key] = record[key] - prev_line[key]; total_time = reduce( lambda x,y: x+y, [ delta[m] for m in ['time_status_msgs', 'time_internal', 'time_polling', 'time_send', 'time_receive', 'time_application']]) -@@ -119,7 +120,7 @@ def read_log_entries(file, fields): +@@ -118,7 +119,7 @@ def read_log_entries(file, fields): def sort_time(log_entries): times = [] @@ -642,7 +572,7 @@ times.append(k) times.sort() return times -@@ -158,7 +159,7 @@ set tics nomirror out +@@ -157,7 +158,7 @@ set tics nomirror out else: pout(file, "set key left top\n") @@ -651,7 +581,7 @@ pout(file, """ set style line 1 pt 5 lc rgb '#1b9e77' pointinterval {0} -@@ -256,20 +257,20 @@ def check_gnuplot_version(gnuplot_cmd): +@@ -255,20 +256,20 @@ def check_gnuplot_version(gnuplot_cmd): exit(1) def show_usage(): @@ -686,7 +616,7 @@ if __name__ == '__main__': -@@ -370,7 +371,7 @@ if __name__ == '__main__': +@@ -369,7 +370,7 @@ if __name__ == '__main__': fields = ['stack_time_other', 'stack_time_application', 'stack_time_receive', 'stack_time_send', 'stack_time_polling', 'stack_time_internal', 'stack_time_status_msgs'], labels = ['other', 'application', 'receive', 'send', 'polling', 'internal', 'status msgs']) @@ -695,3 +625,48 @@ plots[name].plot(prefix + '.' + name + '.' + extension) except IOError: +Index: cctools-7.1.2/configure +=================================================================== +--- cctools-7.1.2.orig/configure ++++ cctools-7.1.2/configure +@@ -998,7 +998,7 @@ then + if [ "${config_python_path}" = auto ] && search_file_executable python python3 python2 > /dev/null 2>&1 + then + python_exe=${executable_search_result} +- elif search_file_executable ${python_path}{,/python,/python3,/python2} > /dev/null 2>&1 ++ elif search_file_executable ${python_path}{,/python3} > /dev/null 2>&1 + then + python_exe=${executable_search_result} + fi +@@ -1124,7 +1124,7 @@ then + elif [ "${config_python3_path}" = auto ] && search_file_executable python python3 + then + python3_exe=${executable_search_result} +- elif search_file_executable ${python3_path}{,/bin/python,/bin/python3,/python,/python3} ++ elif search_file_executable ${python3_path}{,/bin/python3,/python3} + then + python3_exe=${executable_search_result} + else +@@ -1148,10 +1148,10 @@ then + + if [ "${python3_avail}" = yes ] + then +- if check_file ${python3_exe}${python3_version}-config ++ if check_file ${python3_exe}-config + then +- python3_ccflags=$(${python3_exe}${python3_version}-config --includes) +- python3_ldflags=$(${python3_exe}${python3_version}-config --ldflags) ++ python3_ccflags=$(${python3_exe}-config --includes) ++ python3_ldflags=$(${python3_exe}-config --ldflags) + + if [ $BUILD_SYS = DARWIN ] + then +@@ -1169,7 +1169,7 @@ then + python3_avail=no + fi + else +- echo "*** could not find ${python3_exe}${python3_version}-config" ++ echo "*** could not find ${python3_exe}-config" + python3_avail=no + fi + fi diff -Nru cctools-7.0.22/debian/patches/rm-sqlite cctools-7.1.2/debian/patches/rm-sqlite --- cctools-7.0.22/debian/patches/rm-sqlite 2020-03-16 21:47:06.000000000 +0000 +++ cctools-7.1.2/debian/patches/rm-sqlite 2020-05-05 21:54:24.000000000 +0000 @@ -3,10 +3,10 @@ Last-Updated: 2018-06-28 Forwarded: not-needed -Index: cctools-7.0.22/chirp/src/Makefile +Index: cctools-7.1.2/chirp/src/Makefile =================================================================== ---- cctools-7.0.22.orig/chirp/src/Makefile -+++ cctools-7.0.22/chirp/src/Makefile +--- cctools-7.1.2.orig/chirp/src/Makefile ++++ cctools-7.1.2/chirp/src/Makefile @@ -7,7 +7,7 @@ include ../../rules.mk LOCAL_CCFLAGS = -DSQLITE_DEFAULT_MMAP_SIZE=1073741824 -DSQLITE_TEMP_STORE=3 -DSQLITE_THREADSAFE=0 -fstack-protector-all @@ -19,7 +19,7 @@ @@ -22,7 +22,7 @@ PUBLIC_HEADERS = chirp_global.h chirp_mu SCRIPTS = chirp_audit_cluster chirp_server_hdfs SOURCES_CONFUGA = confuga.c confuga_namespace.c confuga_replica.c confuga_node.c confuga_job.c confuga_file.c confuga_gc.c - SOURCES_LIBRARY = chirp_global.c chirp_multi.c chirp_recursive.c chirp_reli.c chirp_client.c chirp_matrix.c chirp_stream.c chirp_ticket.c + SOURCES_LIBRARY = chirp_global.c chirp_multi.c chirp_recursive.c chirp_reli.c chirp_client.c chirp_matrix.c chirp_stream.c chirp_ticket.c json.c json_aux.c -SOURCES_SERVER = sqlite3.c chirp_stats.c chirp_thirdput.c chirp_alloc.c chirp_audit.c chirp_acl.c chirp_group.c chirp_filesystem.c chirp_fs_hdfs.c chirp_fs_local.c chirp_fs_local_scheduler.c chirp_fs_chirp.c chirp_fs_confuga.c chirp_job.c chirp_sqlite.c +SOURCES_SERVER = chirp_stats.c chirp_thirdput.c chirp_alloc.c chirp_audit.c chirp_acl.c chirp_group.c chirp_filesystem.c chirp_fs_hdfs.c chirp_fs_local.c chirp_fs_local_scheduler.c chirp_fs_chirp.c chirp_fs_confuga.c chirp_job.c chirp_sqlite.c TARGETS = $(PROGRAMS) $(LIBRARIES) @@ -43,10 +43,10 @@ libconfuga.$(CCTOOLS_DYNAMIC_SUFFIX): $(OBJECTS_CONFUGA) ../../dttools/src/auth_all.o $(EXTERNAL_DEPENDENCIES) chirp_server: $(OBJECTS_SERVER) libconfuga.a -Index: cctools-7.0.22/chirp/src/chirp_sqlite.c +Index: cctools-7.1.2/chirp/src/chirp_sqlite.c =================================================================== ---- cctools-7.0.22.orig/chirp/src/chirp_sqlite.c -+++ cctools-7.0.22/chirp/src/chirp_sqlite.c +--- cctools-7.1.2.orig/chirp/src/chirp_sqlite.c ++++ cctools-7.1.2/chirp/src/chirp_sqlite.c @@ -10,7 +10,7 @@ See the file COPYING for details. #include "json.h" #include "json_aux.h" diff -Nru cctools-7.0.22/debian/patches/series cctools-7.1.2/debian/patches/series --- cctools-7.0.22/debian/patches/series 2020-03-16 21:47:06.000000000 +0000 +++ cctools-7.1.2/debian/patches/series 2020-05-05 21:54:24.000000000 +0000 @@ -3,12 +3,10 @@ hurd debian_configure disable_doxygen -2to3 rm-sqlite 64-bit.patch multiarch_configure -python37-version verbose-build perl-path -sysmacro.patch python3.patch +ccflags.patch diff -Nru cctools-7.0.22/debian/patches/sysmacro.patch cctools-7.1.2/debian/patches/sysmacro.patch --- cctools-7.0.22/debian/patches/sysmacro.patch 2020-03-16 21:47:06.000000000 +0000 +++ cctools-7.1.2/debian/patches/sysmacro.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -Description: Ensure major/minor macros are always present -Author: Alastair McKinstry -Bug-Origin: https://bugs.debian.org/917626 -Last-Updated: 2019-01-01 -Forwarded: no - -Index: cctools-7.0.22/parrot/src/pfs_table.cc -=================================================================== ---- cctools-7.0.22.orig/parrot/src/pfs_table.cc -+++ cctools-7.0.22/parrot/src/pfs_table.cc -@@ -45,6 +45,7 @@ extern "C" { - #include - #include - #include -+#include - - #ifndef major - /* glibc 2.26 drops sys/sysmacros.h from sys/types.h, thus we add it here */ diff -Nru cctools-7.0.22/debian/patches/verbose-build cctools-7.1.2/debian/patches/verbose-build --- cctools-7.0.22/debian/patches/verbose-build 2020-03-16 21:47:06.000000000 +0000 +++ cctools-7.1.2/debian/patches/verbose-build 2020-05-05 21:54:24.000000000 +0000 @@ -2,13 +2,13 @@ Author: Matthias Klose Bug-Origin: https://bugs.debian.org/913059 -Index: cctools-7.0.22/configure +Index: cctools-7.1.2/configure =================================================================== ---- cctools-7.0.22.orig/configure -+++ cctools-7.0.22/configure -@@ -130,9 +130,11 @@ config_globus_path=no - config_irods_path=no +--- cctools-7.1.2.orig/configure ++++ cctools-7.1.2/configure +@@ -132,9 +132,11 @@ config_mpi_path=no config_openssl_path=no + config_uuid_path=no config_xrootd_path=no - config_static_libgcc=yes diff -Nru cctools-7.0.22/debian/rules cctools-7.1.2/debian/rules --- cctools-7.0.22/debian/rules 2020-03-16 21:47:05.000000000 +0000 +++ cctools-7.1.2/debian/rules 2020-05-05 21:54:23.000000000 +0000 @@ -14,10 +14,11 @@ override_dh_auto_configure: # disable warning about unused results (necessary because warning is error # is ON) - TWOTOTHREE=/usr/share/doc/python3.8/examples/scripts/2to3 CFLAGS="$(CFLAGS) -DNDEBUG -Wno-unused-result" ./configure --with-globus-path /usr \ + CFLAGS="$(CFLAGS) -DNDEBUG -Wno-unused-result" bash ./configure --with-globus-path /usr \ --with-krb5-path /usr --with-readline-path /usr \ --with-mpi-path /usr --with-fuse-path /usr --with-zlib-path /usr \ - --with-python3-path /usr + --with-python3-path /usr \ + --with-python2-path no override_dh_auto_test: # disable the tests for now on upstream's request. they will be reenabled @@ -50,7 +51,7 @@ override_dh_auto_clean: [ -e Makefile.config ] && dh_auto_clean || true - -rm Makefile.config configure.rerun + -rm -f Makefile.config configure.rerun -rm -rf api hdfs-setup.template python/python-workqueue/setup.cfg # remove testrun left-overs -rm dttools/src/microbench dttools/src/work_queue_example diff -Nru cctools-7.0.22/deltadb/src/deltadb_reduction.c cctools-7.1.2/deltadb/src/deltadb_reduction.c --- cctools-7.0.22/deltadb/src/deltadb_reduction.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/deltadb/src/deltadb_reduction.c 2020-05-05 15:31:15.000000000 +0000 @@ -61,7 +61,7 @@ double deltadb_reduction_value( struct deltadb_reduction *r ) { - double value; + double value = 0; switch(r->type) { case COUNT: value = r->count; diff -Nru cctools-7.0.22/deltadb/src/python-old/catalog_history_count cctools-7.1.2/deltadb/src/python-old/catalog_history_count --- cctools-7.0.22/deltadb/src/python-old/catalog_history_count 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/deltadb/src/python-old/catalog_history_count 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/deltadb/src/python-old/catalog_history_filter cctools-7.1.2/deltadb/src/python-old/catalog_history_filter --- cctools-7.0.22/deltadb/src/python-old/catalog_history_filter 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/deltadb/src/python-old/catalog_history_filter 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/deltadb/src/python-old/catalog_history_plot cctools-7.1.2/deltadb/src/python-old/catalog_history_plot --- cctools-7.0.22/deltadb/src/python-old/catalog_history_plot 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/deltadb/src/python-old/catalog_history_plot 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/deltadb/src/python-old/catalog_history_read_and_print cctools-7.1.2/deltadb/src/python-old/catalog_history_read_and_print --- cctools-7.0.22/deltadb/src/python-old/catalog_history_read_and_print 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/deltadb/src/python-old/catalog_history_read_and_print 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/deltadb/src/python-old/catalog_history_select cctools-7.1.2/deltadb/src/python-old/catalog_history_select --- cctools-7.0.22/deltadb/src/python-old/catalog_history_select 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/deltadb/src/python-old/catalog_history_select 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/deltadb/src/python-old/catalog_history_stream cctools-7.1.2/deltadb/src/python-old/catalog_history_stream --- cctools-7.0.22/deltadb/src/python-old/catalog_history_stream 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/deltadb/src/python-old/catalog_history_stream 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/doc/allpairs.html cctools-7.1.2/doc/allpairs.html --- cctools-7.0.22/doc/allpairs.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/allpairs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,187 +0,0 @@ - - - - - - -Allpairs User's Manual - - - - -
-

Allpairs User's Manual

-Last Updated October 2010 -

-Allpairs is Copyright (C) 2009 The University of Notre Dame. -This software is distributed under the GNU General Public License. -See the file COPYING for details. -

-

Overview

- - - - - - -
- - -
-All-Pairs( array A[i], array B[j], function F(x,y) )
-returns matrix M where
-M[i,j] = F( A[i], B[j] )
-
-
-

-The All-Pairs abstraction computes the Cartesian product of two sets, -generating a matrix where each cell M[i,j] contains the output of the function -F on objects A[i] and B[j]. You provide two sets of data files (as in the above -figure, one set is setA = {A0, A1, A2, A3} and the other set is setB = {B0, B1, -B2, B3}) and a function F that computes on them (later in the text we refer to this fuction F as either compare program or compare function. You may optionally provide -additional parameters to control the actual computation, such as computing only -part of the matrix, using a specified number of CPU cores. The abstraction then -runs each of the functions in parallel, automatically handling load balancing, -data movement, fault tolerance and so on for you. - -

All-Pairs on a Single Machine

- -

-Let's suppose you have a whole lot of files that you want to compare all to each other, named a, b, c, and so on. Suppose that you also have a program named compareit that when invoked as compareit a b will compare files a and b and produce some output summarizing the difference between the two, like this: -a b are 45 percent similar -

-To use the allpairs framework, create a file called set.list that lists each of your files, one per line: -a -b -c -... - -Then, invoke allpairs_multicore like this: -allpairs_multicore set.list set.list compareit -The framework will carry out all possible comparisons of the objects, and print the results one by one: -a a are 100 percent similar -a b are 45 percent similar -a c are 37 percent similar -... - -

-For large sets of objects, allpairs_multicore will use as many cores as you have available, and will carefully manage virtual memory to exploit locality and avoid thrashing. Because of this, you should be prepared for the results to come back in any order. - -

All-Pairs on a Distributed System

- -

-So far, we have introduced how to use All-Pairs abstraction on a single -machine. But sometimes the All-Pairs problem is too big to allow a single -machine to finish it in a reasonable amount of time, even if the single machine -is multicore. So, we have built a Work Queue -version of the All-Pairs abstraction which allows the users to easily apply the -All-Pairs abstraction on clusters, grids or clouds. -

-To use the All-Pairs Work Queue version, you will need to start a All-Pairs -master program called allpairs_master and a number of workers. -The workers will perform the tasks distributed by the master and return the -results to the master. The individual tasks that the master program distributes -are sub-matrix computation tasks and all the tasks would be performed by the -allpairs_multicore program on the workers. For end users, the only -extra step involved here is starting the workers. Starting the All-Pairs master -program is almost identical to starting the All-Pairs multicore program. -

-For example, to run the same example as above on a distributed system: -allpairs_master set.list set.list compareit - -

-This will start the master process, which will wait for workers to connect. -Let's suppose the master is running on a machine named barney.nd.edu. -If you have access to login to other machines, you could simply start -worker processes by hand on each one, like this: -% work_queue_worker barney.nd.edu 9123 -If you have access to a batch system like Condor, you can submit multiple workers at once: -% condor_submit_workers barney.nd.edu 9123 10 -Submitting job(s).......... -Logging submit event(s).......... -10 job(s) submitted to cluster 298. - - -

-A similar script is available for Sun Grid Engine: -% sge_submit_workers barney.nd.edu 9123 10 - -

-In the above two examples, the first argument is the port number that the -master process will be or is listening on and the second the argument is the -number of workers to start. Note that 9123 is the default port -number that the master process uses. If you use the '-p' option in the -allpairs_master to change the listening port, you will need to -modify the port argument in the starting worker command accordingly. - -

Once the workers are running, the allpairs_master can dispatch tasks -to each one very quickly. If a worker should fail, Work Queue will retry the -work elsewhere, so it is safe to submit many workers to an unreliable -system.

- -

When the All-Pairs master process completes, your workers will -still be available, so you can either run another master with the same workers, -remove them from the batch system, or wait for them to expire. If you do -nothing for 15 minutes, they will automatically exit by default. You -can change this worker expiration time by setting the '-t' option.

-

Note that condor_submit_workers and sge_submit_workers are -simple shell scripts, so you can edit them directly if you would like to -change batch options or other details.

- -

Using an Internal Function

- -

-If you have a very fast comparison program (less than a tenth of a second), -the allpairs framework may be spending more time starting your program -than actually accomplishing real work. If you can express your comparison -as a simple function in C, you can embed that into the allpairs framework -to achieve significant speedups. -

-To accomplish this, download -the CCTools source code, and build it. Then, look for the file allpairs/src/allpairs_compare.c. -At the top, you will see a function named allpairs_compare_CUSTOM, which accepts -two memory objects as arguments. Implement your comparison function, and then rebuild -the code. Test you code by running allpairs_multicore on a small set of data, -but specify CUSTOM as the name of the comparison program. If your tests succeeed -on a small set of data, then proceed to using allpairs_master. -

-We have implemented several internal comparison functions as examples, including: -

-
  • BITWISE - Counts the number of bytes different in each object. -
  • SWALIGN - Performs a Smith-Waterman alignment on two genomic sequences. -
  • IRIS - Performs a similarity comparison between two iris templates. -
  • - -

    Tuning Performance

    - -

    -By default, both allpairs_master and allpairs_multicore will adjust to -the proprties of your workload to run it efficiently. allpairs_master will run -a few sample executions of your comparison program to measure how long it takes, and -then break up the work units into tasks that take abuot one minute each. Likewise, -allpairs_multicore will measure the number of cores and amount of memory -available on your system, and then arrange the computation to maximize performance. -

    -If you like, you can use the options to further tune how the problem is decomposed: -

    -
  • -t can be used to inform allpairs_master how long (in seconds) -it takes to perform each comparison. If given, allpairs_master will not -sample the execution, and will start the computation immediately. -
  • -x and -y can be used to set the size of the sub-problem -dispatched from allpairs_master to allpairs_multicore -
  • -c controls the number of cores used by allpairs_multicore, -which is all available cores by default. -
  • -b controls the block size of elements maintained in memory by allpairs_multicore, -which is 3/4 of memory by default. -
  • - - -

    For More Information

    - -

    -For the latest information about Allpairs, please visit our web site and subscribe to our -mailing list. - -

    - - Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/awe/ala-rama-awe.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/awe/ala-rama-awe.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/awe/ala-rama-msm.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/awe/ala-rama-msm.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/awe/flowchart.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/awe/flowchart.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/awe/walkers.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/awe/walkers.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/awe/workflow.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/awe/workflow.png differ diff -Nru cctools-7.0.22/doc/awe.html cctools-7.1.2/doc/awe.html --- cctools-7.0.22/doc/awe.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/awe.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,316 +0,0 @@ - - - - - - -AWE User's Manual - - - - -
    - -

    AWE User's Manual

    -Last Updated March 2013 -

    -AWE is Copyright (C) 2013- The University of Notre Dame. -This software is distributed under the GNU General Public License. -See the file COPYING for details. -

    -

    Overview

    -Accelerated Weighted Ensemble or AWE package provides a Python library for adaptive -sampling of molecular dynamics. The framework decomposes the resampling -computations and the molecular dynamics simulations into tasks that are -dispatched for execution on resources allocated from clusters, clouds, grids, or -any idle machines. - -

    AWE uses Work Queue, which is part of the Cooperating Computing Tools (CCTools) -package, for dispatching jobs for execution on allocated resources. -Documentation on downloading, installing, and using Work Queue can be found -here. - -

    Software Requirements

    -AWE currently uses the GROMACS molecular dynamics simulation package. So it -requires an installation of GROMACS 4.5 or above and its installed location -added to PATH. It also requires the GROMACS XTC library for operation. - -

    -The software requirements of AWE are summarized below along with how AWE finds -and accesses them: - - - - - - - - - - - - - - - - - - - - - - - - - - -
    SoftwareVersionMust be present in environment variable
    Python2.6 or 2.7PATH and PYTHONPATH
    GROMACS4.5 or higherPATH
    GROMACS XTC Library1.1 or higherC_INCLUDE_PATH and LD_LIBRARY_PATH
    Numpy1.5 or higherPYTHONPATH
    Prody0.9.4 or higherPYTHONPATH
    GNU Scientific Library1.15 or higherC_INCLUDE_PATH and LD_LIBRARY_PATH
    Matplotlib1.1.0 or higherPYTHONPATH
    - -

    Building and Installing AWE

    -Download the CCTools source package from this web page and install -using the steps here. - -

    -First, determine the location where AWE is to be installed. For example: -% export AWE_INSTALL_PATH=$HOME/awe - -Compile and install AWE in the location pointed by $AWE_INSTALL_PATH using: -% cd cctools-xxx-src -% cd apps/awe -% ./configure --prefix $AWE_INSTALL_PATH -% make install - - -Next, set PATH to include the installed AWE binaries: -% export PATH=${AWE_INSTALL_PATH}/bin:${PATH} - -Finally, set PYTHONPATH to include the installed AWE Python modules: -% export PYTHONPATH=${AWE_INSTALL_PATH}/lib/python2.6/site-packages:${PYTHONPATH} - -Note that the AWE Python modules will be built for the version of Python -accessible in your installed environment. The installation script creates a -directory (under $AWE_INSTALL_PATH/lib) named with the version of Python for -which the modules are built and copies the modules to this directory. So if your -environment has a Python version different from 2.6, replace the version string -accordingly when setting PYTHONPATH. - -

    You can check if AWE was correctly installed by running: -% awe-verify - -

    Running AWE

    - -

    Introduction

    -

    -The general workflow for running AWE-WQ is outlined below. -Three preprocessing steps are required before AWE-WQ can be executed: -first, a sample the conformational space; second, cluster the results from the sampling procedure; third, define cell regions and import file formats. -There are numerous options and ways to accomplish the sampling step. -Different programs, such as GROMACS, NAMD, CHARMM, or AMBER may be used to run the simulations. -Clustering may be done using the MSMBuilder program. -Finally use the SaveStructures.py command from MSMBuilder to extract conformations from each of the clusters, as well as the awe-import-gens and awe-prepare scripts from AWE-WQ to import convert to AWE-WQ file formats. -If desired, the awe-calc-gens-rmsd will compute the RMSD of the cluster centers to a reference structure and awe-define-regions can be used to determine the regions cells belong to based on RMSD. - -

    - -

    -AWE-WQ uses a Master/Worker model to execute tasks on remote machines. -A task is comprised of several files: -The cell definitions, the starting conformation, requisite MD software, assignment program, and a script that executes the task. -The AWE-WQ execution flowchart is illustrated below: - -

    - - -

    Tutorial

    -

    -Within the tutorial directory of the source code we provide several input files for you to follow along. -Checkout the sourcecode using: -% git clone https://github.com/cooperative-computing-lab/awe.git awe.git -% cd awe.git - - -The tutorial is also stored as an IPython notebook file which you can start using: -% cd tutorial -% ipython notebook - - -The following files are provided: -

      -
    • XTC.tar.bz2: MD trajectory files for Alanine Dipeptide
    • -
    • native.pdb: Conformation of the "native" structure
    • -
    • AtomIndices.dat: atoms to use
    • -
    - -

    Sampling

    -Sampling has already been done and the files are stored in XTC.tar.bz2 -Extract the trajectory files: -% tar xf XTC.tar.bz2 -The directory structure is XTC/RUN#/frame0.xtc, where # is the trajectory number. - -

    Determine Cell Definitions

    -The sampling data is imported into MSMBuilder using the ConvertDataToHDF.py command, paramterized with a PDB file containing the system coordinates and the path to the MD data: -% ConvertDataToHDF.py -s native.pdb -i XTC - -The next step defines the cells. -Conformations are clustered with a hybrid k-centers/k-medoids algorithm using the RMSD between atoms as the distance metric. -The AtomIndices.dat defines the atoms to consider when computing the distance between conformations. -Using a subset (such as all non-hydrogens) prevents too fine a granularity from overfitting the data. -Finally, we will cluster the data into 100 cells. -% Cluster.py rmsd -a AtomIndices.dat hybrid -k 100 - -By inspecting the implied timescales (not shown) we build a Markov State Model at lagtime 10. -% BuildMSM.py -l 10 - -

    AWE-WQ Input Preparation

    -

    -Extract a given number of conformations from each of the cells defined above (SaveStructures.py) and import the cell definitions from MSMBuilder format to AWE-WQ format (awe-import-gens) and setup the initial files for the AWE-WQ run (awe-prepare). -Regions of metastable states need to then be determined, which are ultimately given as a list of the cells belonging to each region (e.g. â€folded†and â€unfoldedâ€) and scripts are given to do so using RMSD to a reference structure (awe-calc-gens-rmsd, awe-define-regions). - -

    -Since we plan to maintain 10 simulations in the cells, so we need to extract conformations from the states using MSMBuilder. -% SaveStructures.py -c 10 -f pdb -S sep -o Walkers - -In order to run AWE-WQ we must then import the cell definitions which were written by MSMBuilder to Gens.lh5. -When building the Markiov State Model using BuildMSM.py, several of the clusters may be prunned. -This information is stored in Data/Mapping.dat and needs to be included when importing to AWE-WQ. -The following command will output the cell definitions to cells.dat: -% awe-import-gens -g Data/Gens.lh5 -o cells.dat -m Data/Mapping.dat - -

    -In order to compute reaction rates we need to specify regions of metastable states. -AWE-WQ provides some commands to assist with this process: awe-calc-gens-rmsd and awe-define-regions. -We use awe-calc-gens-rmsd to compute the RMSD of each cell to some reference conformation such as the native state. -% awe-calc-gens-rmsd \ - -r native.pdb \ - -n AtomIndices.dat \ - -g Data/Gens.lh5 \ - -o native-rmsd.dat - - -By plotting the distribution of values we can classify conformations with RMSD ≤ 2.3 Šas folded and those with RMSD ≥ 2.5 Šas unfolded. -The two output files folded.dat and unfolded.dat now contain the integer indices of the states belonging to these regions. -% awe-define-regions -i native-rmsd.dat -c 0.23 -O ’<=’ -o folded.dat -% awe-define-regions -i native-rmsd.dat -c 0.25 -O ’>=’ -o unfolded.dat - - -

    -We can now prepare for AWE-WQ by checking dependencies and populating the directory with other necessary files by running awe-prepare. - -This will create two directories named awe-generic-data and awe-instance-data. awe-generic-data will contain files that all AWE runs will require, such as the task executables and Gromacs forcefield files. -awe-instance-data will contain files that are particular to a protein system such as the state definitions, initial protein coordinates, etc. -% awe-prepare -Checking for compatible python...OK -Checking for executable work_queue_status...OK -Checking for executable pdb2gmx...OK -Checking for executable grompp...OK -Checking for executable mdrun...OK -Checking for executable awe-assign...OK -Checking for compatible Gromacs...OK -Checking for python module work_queue...OK -Checking for python module numpy...OK -Checking for python module prody...OK -Checking for python module pylab...OK -Checking for python module trax...OK -Checking for python module awe...OK -Decompressing awe-generic-data.tar.bz2 -Decompressing awe-instance-data.tar.bz2 -Copying example -Copying binaries -Copying Gromacs forcefield files - - -

    Running AWE-WQ

    - -

    -There are two components to consider when running AWE-WQ: the master process and the resources. -The master is the driver of the algorithm, managing task definitions, scheduling, processing, and the resampling procedure. -In order to run the walkers, resources must be allocated. - -

    -Master: -Start the AWE-WQ process on a machine. -This process loads the initial conformations (walk- ers) for each cell, and is in charge of scheduling each task, processing the result, and the resampling procedure. -This runs AWE-WQ maintaining 10 walkers in 100 cells, whose definition is provided in cells.dat with initial weights in Data/Populations.dat. -The coordinates for the walkers are found in the Walkers directory. -The metastable regions are provided in folded.dat and unfolded.dat as a list of cell id numbers belonging to each region. -Finally, we give a name to the master (“awe-wqâ€) to that workers can easily locate the host and port. -% awe-wq -N 10 -C 100 -c cells.dat -w Data/Populations.dat -W Walkers \ - -r folded.dat unfolded.dat -n awe-wq - - -

    -Workers -Resources can be allocated either directly using work_queue_worker to run tasks locally. -To run jobs on SGE or CONDOR use sge_submit_workers and condor_submit_workers. -Additionally, resources can be managed automatically using work_queue_factory. -Using work_queue_worker also allows the worker to operate as a â€Foremanâ€, enabling the hierarchical distribution of tasks. -Since the master has started we can start a worker locally. -% work_queue_worker -a -N awe-wq - -

    Monitoring AWE-WQ Progress

    - -

    -Use work_queue_status to get the current resources runtime status (number of workers, number of tasks waiting/completed, etc). -By using awe-plot-wq-stats the plot of the resource usage over the runtime of the program can be obtained. -In this case, I've submitted several workers to SGE. -% work_queue_status -PROJECT HOST PORT WAITING BUSY COMPLETE WORKERS -awe-wq fah.crc.nd.edu 1024 133 36 57547 36 -... - - -

    -The awe-flux command allows the convergence of the calculated flux to be monitored. -Once convergence within a determined threshold is obtained the program may be halted. - -

    -Additionally, other analyses are appropriate. -For instance, the energy surface for Alanine Dipeptide can be visualized as a function of its dihedral angles. -As such, we can plot, as shown below, the cell coordinates and the initial estimation of the weights as well as computed weights after several iterations of AWE-WQ. - - - - - - - - - - -
    BeforeAfter
    - -

    Running AWE on Different Protein Systems

    -You can run AWE to sample a different protein system by following the steps -below: - -
      -
    1. Sample the conformations space of the protein using ensemble simulations, replica -exchange, etc.
    2. -
    3. Cluster the data to obtain the cell definitions.
    4. -
    5. Extract the conformations from each cluster as individual walkers.
    6. -
    - -Specifically, these steps translate to the following: - -
      -
    1. Describe the topology of the system in topol.pdb. -
    2. Prepare the state definitions and list them in cells.dat
    3. -
    4. Select the subset of atoms from the cell definitions cells.dat and list -them in CellIndices.dat
    5. -
    6. Select the subset of atoms from the walker topology file topol.pdb -and list them in StructureIndices.dat
    7. -
    8. Define the initial coordinates for the walkers in State$i-$j.pdb -where i is the index of the cell and j is the index of the walker.
    9. -
    10. Specify the parameters for the walker simulation by GROMACS in -sim.mdp. -
    - -

    For More Information

    -For the latest information about AWE, please visit our web site and subscribe to our mailing list. - -
    - - diff -Nru cctools-7.0.22/doc/catalog.html cctools-7.1.2/doc/catalog.html --- cctools-7.0.22/doc/catalog.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/catalog.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,171 +0,0 @@ - - - - - - -Catalog Server User's Manual - - - - - -
    -

    Catalog Server User's Manual

    - -

    Overview

    - -

    -Catalog servers function as connection points for tools that need to share information and interact remotely. -Various services and tools send periodic updates to a catalog server to advertise their presence and vital details such as addresses, resources, and performance. -Tools like chirp_status and work_queue_status query the server to displays servers that are currently running. -Catalog updates are sent via UDP, and the catalog server exposes a JSON interface to view status and make queries. -

    - -

    -By default, the cctools software makes use of the central catalog server (and backup) at Notre Dame: -

    - - -
    -catalog.cse.nd.edu:9097 -
    -backup-catalog.cse.nd.edu:9097 -
    - -

    The default view for a catalog server is a human-readable HTML summary. Machine-readable data is also available as JSON, text, XML, or ClassAds. Many parts of cctools make use of a catalog server internally. Chirp servers send regular catalog updates indicating the host system's load, available disk space, cctools version, etc. Work Queue masters also advertise their projects through the catalog. When a worker starts, it can query the catalog to automatically discover a master to contact.

    - -

    Specifying Catalog Servers

    - -

    Many of the tools accept command line arguments or environment variables to specify the catalog server(s) to use. The catalog host is specified as a comma delimited list of servers to use. Each may optionally include a port number. If no port is specified, the value of the environment variable CATALOG_PORT is used, or the default of port 9097. If no catalog server is given on the command line, the CATALOG_HOST environment variable is used. If that is unset, the default of -catalog.cse.nd.edu,backup-catalog.cse.nd.edu -This could be written more verbosely as -catalog.cse.nd.edu:9097,backup-catalog.cse.nd.edu:9097 -assuming the catalog port was not set in the environment.

    - -

    Querying Catalog Servers

    - -

    There are several ways to query a catalog server. If you are querying -specifically for Chirp servers or Work Queue applications, then use -the chirp_status or work_queue_status tools, which -query the server and display fields specific for those uses.

    - -

    To view all kinds of records in raw JSON format, use the -catalog_query tool. This can be used to simply dump -all records in JSON format:

    - -catalog_query - -

    Or, use the --where option to show only records matching an expression. (The expression must be quoted to protect it from the shell.)

    - -

    For example, to show all records of catalog servers:

    - -catalog_query --where 'type=="catalog"' - -

    Or to show all chirp servers with more than 4 cpus:

    - -catalog_query --where 'type=="chirp" && cpus > 4' - -

    When any of these tools are configured with multiple servers, the program will try each in succession until receiving an answer. If no servers give valid responses, the query as a whole fails. The order in which servers are listed sets the initial query order. If a server fails to respond, it will be marked as down before trying the next server in the list. On subsequent queries, servers that were down will not be tried unless every other server is non-responsive. If in this scenario the previously down server answers the query, it will be marked as up again and used with normal priority in future queries.

    - -

    Updating Catalog Servers

    - -

    When any program is sending catalog updates, it will examine the environment and/or configuration options to get a list of catalog servers in use. Updates are then sent to every server listed. The program will consider it a success if at least one update can be sent successfully. If DNS resolution fails for every catalog server, for example, the program will report a failed update.

    - -

    -If you are constructing your own service, you can use the catalog_update program to construct a custom message and send it to the catalog server. -To do so, create a file containing a valid JSON object with the desired properties, and then run catalog_update. For example: -

    - -cat > update.json << EOF -{ "color" : "red", "active" : true, "size": 1200 } -EOF -catalog_update --catalog catalog.cse.nd.edu --file update.json - - -

    -The catalog_update will insert into the object some additional -basic information about the node, such as the operating system, load average, -and so forth. When the update is received at the catalog server the -name, address, and port of the sender will be automatically overwritten, -so it is not possible to modify another machine's information. -

    - -

    -These updates must be repeated on a regular basis, typically every 5 minutes, -in order to keep the catalog up to date. If an update is not received after -15 minutes, the entry is removed from the catalog. -

    - -

    -Catalog updates are now able to be compressed, limiting the possibility -of packets being dropped enroute to the catalog. To enable this set the -environment variable CATALOG_COMPRESS_UPDATES to on. -

    - -

    -Examples
    -CSH:
    -setenv CATALOG_COMPRESS_UPDATES on -

    - -

    -Bash:
    -export CATALOG_COMPRESS_UPDATES=on -

    - -By default, catalog updates are sent via the UDP protocol, which is -fast and efficient for small (<1KB) messages. If you have large messages -or unusual networking conditions, you can alternatively send catalog -updates via TCP instead. To do this, set the following environment variable: -

    - -
    -CATALOG_UPDATE_PROTOCOL=tcp
    -
    - -

    Running a Catalog Server

    -

    You may want to establish your own catalog server. This can be -useful for keeping your systems logically distinct from the main storage pool, -but can also help performance and availability if your catalog is close to your -Chirp servers. The catalog server is installed in the same place as the Chirp -server. Simply run it on any machine that you like and then direct your Chirp -servers to update the new catalog with the -u option. The catalog will be -published via HTTP on port 9097 of the catalog machine.

    - -

    For example, suppose that you wish to run a catalog server on a machine -named dopey and a Chirp server on a machine named sneezy:

    - -dopey$ catalog_server -... -sneezy$ chirp_server -u dopey [more options] - - -

    Finally, point your web browser to: http://dopey:9097

    - -

    Or, set an environment variable and use Parrot:

    - -$ setenv CATALOG_HOST dopey -$ parrot_run tcsh -$ ls /chirp - - -

    And you will see something like -this. You may easily run multiple catalogs for either scalability or fault -tolerance. Simply give each Chirp server the name of each -running catalog separated by commas, e.g. -$ chirp_server -u 'dopey,happy:9000,grumpy' -

    - -

    (Hint: If you want to ensure that your chirp and catalog servers run -continuously and are automatically restarted after an upgrade, consider using -Watchdog.)

    -
    - - diff -Nru cctools-7.0.22/doc/cctools.doxygen cctools-7.1.2/doc/cctools.doxygen --- cctools-7.0.22/doc/cctools.doxygen 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/cctools.doxygen 2020-05-05 15:31:15.000000000 +0000 @@ -1,36 +1,41 @@ /** @mainpage CCTools API Documentation -This is the reference manual for the CCTools API, -which includes Chirp, Parrot, Makeflow, Work Queue, and other software. -Note that this documentation is a work in progress. -Only the most widely used interfaces are documented here. -Less used interfaces are not documented, but can still be browsed through this interface. +This is the API reference manual for the CCTools code, +which includes Makeflow, Work Queue, Parrot, Chirp and other software. -- Writing Your First Program with Chirp - -If you are writing programs to submit jobs to Work Queue, Condor, or other systems, start here: +If you are writing a Work Queue master program, start here: - @ref work_queue.h + +If you are writing a program to submit jobs to arbitrary batch systems, +including Work Queue, HTCondor, Amazon EC2, etc. start here: + - @ref batch_job.h -If you are writing programs to access Chirp, start here: +If you are writing a programs to access the Chirp filesystem, start here: - @ref chirp_reli.h - @ref chirp_recursive.h - @ref chirp_stream.h -There are a number of other support modules that implement debugging, communication, -data structures, and so forth. The most commonly used are: +There are a number of other support modules that implement debugging, communication, and data structures. The most commonly used are: -- @ref debug.h -- @ref link.h -- @ref hash_table.h -- @ref itable.h -- @ref list.h -- @ref jx.h -- @ref jx_print.h -- @ref jx_parse.h -- @ref jx_eval.h +- Data Structures: + - @ref list.h + - @ref hash_table.h + - @ref itable.h +- Networking: + - @ref link.h (i.e. a TCP connection) + - @ref datagram.h (i.e. a UDP endpoint) + - @ref domain_name_cache.h +- JSON Parsing/Printing + - @ref jx.h + - @ref jx_print.h + - @ref jx_parse.h +- Miscellaneous + - @ref debug.h + - @ref copy_stream.h + - @ref copy_tree.h Or, you can browse all documented modules in the package: @@ -40,6 +45,4 @@ - CCTools Software - CCTools User Manuals -- CCTools HOWTO Manuals - */ diff -Nru cctools-7.0.22/doc/cctools.doxygen.config cctools-7.1.2/doc/cctools.doxygen.config --- cctools-7.0.22/doc/cctools.doxygen.config 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/cctools.doxygen.config 2020-05-05 15:31:15.000000000 +0000 @@ -420,10 +420,10 @@ # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories +# directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = cctools.doxygen ../dttools/src ../work_queue/src ../chirp/src/chirp_reli.h ../chirp/src/chirp_client.h ../chirp/src/chirp_stream.h ../chirp/src/chirp_protocol.h ../chirp/src/chirp_types.h ../chirp/src/chirp_matrix.h ../chirp/src/chirp_recursive.h ../work_queue/src/python/work_queue.binding.py ../chirp/src/python/chirp.binding.py +INPUT = cctools.doxygen ../dttools/src ../work_queue/src ../batch_job/src ../chirp/src/chirp_reli.h ../chirp/src/chirp_client.h ../chirp/src/chirp_stream.h ../chirp/src/chirp_protocol.h ../chirp/src/chirp_types.h ../chirp/src/chirp_matrix.h ../chirp/src/chirp_recursive.h ../work_queue/src/bindings/python2/work_queue.binding.py ../chirp/src/bindings/python2/chirp.binding.py ../resource_monitor/src/bindings/python2/resource_monitor.bindings.py # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp diff -Nru cctools-7.0.22/doc/chirp.html cctools-7.1.2/doc/chirp.html --- cctools-7.0.22/doc/chirp.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/chirp.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,1344 +0,0 @@ - - - - - - -Chirp User's Manual - - - - -
    -

    Chirp User's Manual

    - -

    Last edited: January 2014

    - -

    Chirp is Copyright (C) 2003-2004 Douglas Thain and Copyright (C) 2005- The University of Notre Dame.
    -All rights reserved.
    -This software is distributed under the GNU General Public License.
    -See the file COPYING for details.

    - -

    Please use the following citation for Chirp in a scientific publication:

    - - - -

    Overview

    - -

    Chirp is a system for performing input and output across the Internet. -Using Chirp, an ordinary user can share storage space and data with friends and -colleagues without requiring any sort of administrator privileges anywhere.

    - -

    Chirp is like a distributed filesystem (such as NFS) except that it can be -run over wide area networks and requires no special privileges on either the -client or the server end. Chirp allows the end user to set up fine-grained -access control so that data can be shared (or not shared) with the right -people.

    - -

    Chirp is also like a file transfer system (such as FTP) that provides -streaming point-to-point data transfer over the Internet. However, Chirp also -provides fine-grained Unix-like data access suitable for direct access by -ordinary programs.

    - -

    Chirp also includes several advanced features for authentication tickets, -space allocation, and more. However, each of these features must be explicitly -enabled, so you don't have to worry about them if all you want is simple -storage access. Read on below for more details.

    - -

    Begin by installing the -cctools on your system. When you are ready, proceed below.

    - -

    Running a Chirp Server

    - -

    Running a Chirp server is easy. You may run a Chirp server as any ordinary -user, and you do not need to install the software or even run the -programs as root. To run a Chirp server, you must do three things: pick a -storage directory, run the server, and then adjust the access control.

    - -
      -
    1. - Pick a storage directory. The Chirp server will only allow access - to the directory that you choose. It could be a scratch directory, your - home directory, or even your filesystem root. For now, let's store - everything in a temporary directory: - - /tmp/mydata -
    2. -
    3. - Run the server. Simply run chirp_server and direct it to - your storage directory: - - $ chirp_server -r /tmp/mydata & -
    4. - Adjust the access control. When first started, the Chirp server - will allow access only to YOU from the same host. You will probably want - to change this to allow access to other people and hosts. To adjust the - access control, use the chirp tool and the setacl command - to set the access control list. For example, to also allow other hosts in - your domain to read and write the server: - - $ chirp localhost - chirp:localhost:/> setacl . hostname:*.mydomain.edu write -
    5. -
    - -

    Now that you have a server running on one machine, let's use some tools to -move data to and from your server.

    - -

    Accessing Chirp Servers

    - -

    The easiest way to access Chirp servers is by using a tool called Parrot. Parrot is a -personal virtual filesystem: it "speaks" remote I/O operations on behalf of -ordinary programs. For example, you can use Parrot with your regular shell to -list and access Chirp servers like so:

    - -$ parrot_run tcsh -$ cd /chirp -$ ls -angband.somewhere.edu:9094 -dustpuppy.somewhere.edu:9094 -peanuts.somewhere.edu:9094 -... -$ cd /chirp/peanuts.somewhere.edu -$ cp /tmp/bigfile . -$ ls -la -total 804 -drwx------ 2 fred users 4096 Sep 10 12:40 . -drwx------ 2 fred users 4096 Sep 10 12:40 .. --rw-r--r-- 1 fred users 104857600 Sep 10 12:57 bigfile --rw-r--r-- 1 fred users 147 Sep 10 12:39 hosts -$ parrot_getacl -unix:fred rwlda -hostname:hedwig rl -... - - -

    (If you are having difficulting accessing your server, have a look at -"debugging hints" below.)

    - -

    Parrot is certainly the most convenient way to access storage, but it has -some limitations: it only works on Linux, and it imposes some performance -penalty.

    - -

    You can also attach to Chirp filesystems by using the FUSE package to attach -Chirp as a kernel filesystem module. Unlike Parrot, this requires superuser -privileges to install the FUSE package, but will likely work more reliably on a -larger number of programs. You can do this with either Linux FUSE or MacFuse. Once you have downloaded -and installed FUSE, simply run chirp_fuse with the name of a directory -on which the filesystem should be mounted. For example:

    - -$ mkdir /tmp/chirp -$ chirp_fuse /tmp/chirp -$ cd /tmp/chirp -$ ls -la -total 9742 -dr-xr-xr-x 0 fred users 6697 Feb 22 13:54 albus.cse.nd.edu:9094 -dr-xr-xr-x 0 fred users 6780 Feb 22 13:54 aluminum.helios.nd.edu:9094 -dr-xr-xr-x 0 fred users 27956 Feb 22 13:54 angband.cse.nd.edu:9094 -dr-xr-xr-x 0 fred users 6466 Feb 22 13:54 angelico.helios.nd.edu:9094 -... - - -

    For more portable, explicit control of a Chirp server, use the Chirp command -line tool. This allows you to connect to a server, copy files, and manage -directories, much like an FTP client:

    - -$ chirp - ... - chirp::> open myhost.somewhere.edu - chirp:myhost.somewhere.edu:/> put /tmp/bigfile -file /tmp/bigfile -> /bigfile (11.01 MB/s) - chirp:myhost.somewhere.edu:/> ls -la -dir 4096 . Fri Sep 10 12:40:27 2004 -dir 4096 .. Fri Sep 10 12:40:27 2004 -file 147 hosts Fri Sep 10 12:39:54 2004 -file 104857600 bigfile Fri Sep 10 12:53:21 2004 - chirp:myhost.somewhere.edu:/> - - -

    In scripts, you may find it easier to use the standalone commands -chirp_get and chirp_put, which move single files to and from -a Chirp server. These commands also allow for streaming data, which can be -helpful in a shell pipeline. Also, the -f option to both commands allows you -to follow a file, much like the Unix tail command:

    - -$ tar cvzf archive.tar.gz ~/mydata -$ chirp_put archive.tar.gz myhost.somewhere.edu archive.tar.gz -$ ... -$ chirp_get myhost.somewhere.edu archive.tar.gz - | tar xvzf -$ ... -$ chirp_get -f myhost.somewhere.edu logfile - |& less -$ - - -

    You can also write programs that access the Chirp C interface directly. -This interface is relatively self explanatory: programs written to use this -library may perform explicit I/O operations in a manner very similar to Unix. -For more information, see the HOWTO: Write Code -that Uses Chirp

    - -

    Finding Chirp Servers

    - -

    Now that you know how to run and use Chirp servers, you will need a way to -keep track of all of the servers that are available for use. For this purpose, -consult the Chirp storage catalog. -This web page is a list of all known Chirp servers and their locations. Note -that this same list appears if you use Parrot to perform an ls on -/chirp

    - -

    The storage catalog is highly dynamic. By default, each Chirp server makes -itself known to the storage catalog every five minutes. The catalog server -records and reports all Chirp servers that it knows about, but will discard -servers that have not reported for fifteen minutes.

    - -

    If you do not want your servers to report to a catalog, then run them -with this option:

    - -$ chirp_server -u - - -

    Alternatively, you may establish your own catalog server. See Catalog Servers for details.

    - -

    Security

    - -

    Now that you have an idea how Chirp can be used, let's discuss security in -more detail. Different sites require different levels of security and -different technological methods of enforcing security. For these reasons, -Chirp has a very flexible security system that allows for a range of tools and -policies from simple address checks to Kerberos authentiation.

    - -

    Security really has two aspects: authentication and authorization. -Authentication deals with the question "Who are you?" Once your identity has -been established, then authorization deals with the question "What are you -allowed to do?" Let's deal with each in turn.

    - -

    Authentication

    - -

    Chirp supports the following authentication schemes:

    - - -
    TypeSummaryRegular User?Root? -
    (non-root)(root) -
    kerberos Centralized private key system no yes (host cert) -
    globus Distributed public key system yes (user cert) yes (host cert) -
    unix Authenticate with local unix user ids. yes yes -
    hostname Reverse DNS lookup yes yes -
    address Identify by IP address yes yes -
    - -

    The Chirp tools will attempt all of the authentication types that are known -and available in the order above until one works. For example, if you have -Kerberos installed in your system, Chirp will try that first. If not, Chirp -attempts the others.

    - -

    Once an authentication scheme has succeeded, Chirp assigns the incoming user -a subject that describes both the authentication method and the user -name within that method. For example, a user that authenticates via Kerberos -might have the subject:

    - -kerberos:dthain@nd.edu - -

    A user authenticating with Globus credentials might be:
    (Note that -Chirp substitutes underscores for spaces.)

    - -globus:/O=Cooperative_Computing_Lab/CN=Douglas_L_Thain - -

    While another user authenticating by local unix ids might be:

    - -unix:dthain - -

    While a user authenticating by simple hostnames might be:

    - -hostname:pigwidgeon.cse.nd.edu - -

    Take note that Chirp considers all of the subjects as different identities, -although some of them might correspond to the same person in varying -circumstances.

    - -

    Authorization

    - -

    Once Chirp has authenticated your identity, you are logged into a server. -However, when you attempt to read or manipulate files on a server, Chirp checks -to see whether you are authorized to do so. This is determined by access -control lists or ACLs.

    - -

    Every directory in a Chirp server has an ACL, much like filesystems such as -as AFS or NTFS. To see the ACL for a directory, use the Chirp tool and the -getacl command:

    - -chirp:host.mydomain.edu:/> getacl -unix:dthain rwlda -hostname:*.mydomain.edu rwl - - -

    Or, if you are using Parrot, you can use parrot_getacl to examine -ACLs in the same way:

    - -$ parrot_run tcsh -$ cd /chirp/host.mydomain.edu -$ parrot_getacl -unix:dthain rwlda -hostname:*.mydomain.edu rwl - - -

    This ACL indicates that the subject unix:dthain has five access -rights, while the subject pattern hostname:*.mydomain.edu has only -three access rights. The access rights are as follows:

    - - -
    r - The subject may read items in the directory. -
    w - The subject may write items in the directory. -
    l - The subject may list the directory contents. -
    d - The subject may delete items in the directory. -
    p - The subject may put new files into the directory. -
    a - The subject may administer the directory, including changing the ACL. -
    x - The subject may execute programs in the directory. -
    v - The subject may reserve a directory. -
    - -

    Access rights often come in combinations, so there are a few aliases for -your convenience:

    - - -
    read - alias for rl
    -
    write - alias for rwld
    -
    admin - alias for rwlda
    -
    none - delete the entry
    -
    - -

    To change an access control list on a directory, use the setacl -command in the Chirp command line tool:

    - -chirp:host.mydomain.edu:/> setacl / kerberos:dthain@nd.edu write -chirp:host.mydomain.edu:/> getacl -unix:dthain rwlda -hostname:*.mydomain.edu rwl -kerberos:dthain@nd.edu rwld - - -

    Note that for subject names that contain spaces, you should simply -substitute underscores. For example, if your subject name is /O=Univ of -Somewhere/CN=Fred Flint, then you might issue a setacl command -like this:

    - -chirp:host.mydomain.edu:/> setacl / /O=Univ_of_Somewhere/CN=Fred_Flint rwlda - -

    Or, you can accomplish the same thing using parrot_setacl inside of -Parrot:

    - -$ parrot_run tcsh -$ cd /chirp/host.mydomain.edu -$ parrot_setacl . /O=Univ_of_Somewhere/CN=Fred_Flint rwlda - - -

    The meaning of ACLs is fairly obvious, but there are few subtleties you should know:

    - -

    Rights are generally inherited. When a new directory is created, it -automatically gets the ACL of its parent. Exception: read about the -reserve right below.

    - -

    Rights are generally not hierarchical. In order to access a -directory, you only need the appropriate permissions on that directory. -For example, if you have permission to write to /data/x/y/z, you do -not need any other permissions on /data, /data/x and -so forth. Of course, it may be difficult to discover a deep directory without -rights on the parents, but you can still access it.

    - -

    The delete right is absolute. If you have permission to delete a -directory, then you are able to delete the entire subtree that it -contains, regardless of any other ACLs underneath.

    - -

    Note that it is possible to use Chirp to export an existing directory tree -without manually populating every directory with ACLs. Simply create an ACL in -an external file, and then use the -A option to tell the Chirp server to use -that file as the default ACL.

    - -

    Reservation

    - -

    The v - reserve right is an important concept that deserves its own -discussion.

    - -

    A shared-storage environment such as Chirp aims to allow many people to read -and write common storage space. Of course, with many people reading and -writing, we need some mechanism to make sure that everybody does not step on -each other's toes.

    - -

    The reserve right allows a user to create what is essentially a fresh -workspace for their own use. When a user creates a new directory and has the -v right (but not the w right), Chirp will create a new directory -with a fresh ACL that gives the creating user restricted rights.

    - -

    A good way to use the reserve right is with a wildcard at the top directory. -Here's an example. Suppose that Fred creates a new Chirp server on the host -bigwig. Initially, no-one except Fred can access the server. The -first time it starts, the Chirp server initializes its root directory with the -following ACL:

    - -unix:fred rwla - -

    Now, Fred wants other users in his organization to be able to use this -storage, but doesn't want them messing up his existing data. So, Fred uses the -Chirp tool to give the list (l) and reserve (v) rights to anyone -calling from any machine in his organization:

    - -chirp:bigwig:/> setacl / hostname:*.somewhere.edu lv(rwlda) -chirp:bigwig:/> getacl / -unix:fred rwlda -hostname:*.somewhere.edu lv(rwlda) - - -

    Now, any user calling from anywhere in somewhere.edu can access -this server. But, all that any user can do is issue ls or -mkdir in the root directory. For example, suppose that Betty logs -into this server from ws1.somewhere.edu. She can not modify the root -directory, but she can create her own directory:

    - -chirp:bigwig:/> mkdir /mydata - -

    And, in the new directory, ws1.somewhere.edu can do anything, -including edit the access control. Here is the new ACL for -/mydata:

    - -chirp:bigwig:/> getacl /mydata -hostname:ws1.somewhere.edu rwlda - - -

    If Betty wants to authenticate with Globus credentials from -here on, she can change the access control as follows:

    - -chirp:bigwig:/> setacl /mydata globus:/O=Univ_of_Somewhere/CN=Betty rwla - -

    And, the new acl will look as follows:

    - -chirp:bigwig:/> getacl /mydata -hostname:ws1.somewhere.edu rwlda -globus:/O=Univ_of_Somewhere/CN=Betty rwla - - -

    Simple Group Management

    - -

    Chirp currently supports a simple group management system based on files. -Create a directory on your local filesystem in which to store the groups. Each -file in the directory will have the name of the desired groups, and contain a -list of the members of the group in plain text format. Then, give your Chirp -server the -G argument to indicate the URL of the group directory. Once the -groups are defined, you can refer to them in access control lists using the -group: prefix.

    - -

    For example, suppose you wish to have two groups named -group:students and group:faculty. You could define the -groups in the /data/groups directory as follows:

    - -/data/groups/students: -unix:astudent -unix:bstudent - -/data/groups/faculty: -unix:aprof -unix:bprof - - -

    Then, run the chirp server with the option -G file:///data/groups. -(Notice the URL syntax.) Then, to make a directory /homework that is -readable by students and writable by faculty, do this:

    - -chirp:bigwig:/> mkdir /homework -chirp:bigwig:/> setacl /homework group:students rl -chirp:bigwig:/> setacl /homework group:faculty rwld - - -

    If the groups are to be shared among many Chirp servers, place the group -directory on a web server and refer to it via an http URL.

    - -

    Notes on Authentication

    - -

    Each of the authentication types has a few things you should know:

    - -

    Kerberos: The server will attempt to use the Kerberos identity of -the host it is run on. (i.e. host/coral.cs.wisc.edu@CS.WISC.EDU) Thus, it must -be run as the superuser in order to access its certificates. Once -authentication is complete, there is no need for the server to keep its root -access, so it will change to any unprivileged user that you like. Use the --i option to select the userid.

    - -

    Globus: The server and client will attempt to perform -client authentication using the Grid Security Infrastructure (GSI)> -Both sides will load either user or host credentials, depending -on what is available. If the server is running as an ordinary -user, then you must give a it a proxy certificate with grid-proxy-init. -Or, the server can be run as root and will use host certificates -in the usual place.

    - -

    Unix: This method makes use of a challenge-response in the local -Unix filesystem to determine the client's Unix identity. It assumes that both -machines share the same conception of the user database and have a common -directory which they can read and write. By default, the server will pick a -filename in /tmp, and challenge the client to create that file. If it can, -then the server will examine the owner of the file to determine the client's -username. Naturally, /tmp will only be available to clients on the same -machine. However, if a shared filesystem directory is available, give that to -the chirp server via the -c option. Then, any authorized client of the -filesystem can authenticate to the server. For example, at Notre Dame, we use --c /afs/nd.edu/user37/ccl/software/rendezvous to authenticate via our -AFS distributed file system.

    - -

    Hostname: The server will rely on a reverse DNS lookup to establish -the fully-qualified hostname of the calling client. The second field gives the -hostname to be accepted. It may contain an asterisk as a wildcard. The third -field is ignored. The fourth field is then used to select an appropriate local -username.

    - -

    Address: Like "hostname" authentication, except the server -simply looks at the client's IP address.

    - -

    By default, Chirp and/or Parrot will attempt every authentication type knows -until one succeeds. If you wish to restrict or re-order the authentication -types used, give one or more -a options to the client, naming the -authentication types to be used, in order. For example, to attempt only -hostname and kerberos authentication, in that order:

    - -$ chirp -a hostname -a kerberos - -

    Advanced Topic: Cluster Management

    - -

    Several tools are available for managing a large cluster of Chirp servers.

    - -

    First, a Java visual display -applet gives a graphical view of all servers in a cluster, as well as -active network connections between each client and server. This tool can be -used to quickly view whether storage is free or used, whether CPUs are idle or -busy, and whether the network is idle or in use. Clicking on individual nodes -shows the same detailed data as is avaliable in the catalog page.

    - -

    Next, it can be helpful to give a single 'superuser' limited access to all -servers and directories in a cluster, allowing them to fix broken access -controls and solve other problems. To allow this, the -P user -argument can be given to a Chirp server, and will implicitly give the named -user the L and A rights on any directory on that server.

    - -

    When managing a large system with many users, it is important to keep track -of what users are employing the cluster, and how much space they have consumed. -We refer to this as auditing the cluster. To audit a single node, use -the audit command of the Chirp tool. This produces a listing of all -users of a single host. (You must have the A right in the root -directory of the server to run this command.) For example:

    - -$ chirp ccl01.cse.nd.edu audit - FILES DIRS DATA OWNER - 82842 27 5.0 GB globus:/O=UnivNowhere/CN=Fred - 6153 607 503.4 MB unix:fred - 2 2 200.3 MB hostname:laptop.nowhere.edu - 12 2 3.9 MB unix:betty - - -

    To audit an entire cluster, run the chirp_audit_cluster tool. This -will extract the current list of hosts from your catalog, run an audit on all -hosts in parallel, and then produce several reports in text files: -audit.users.txt, audit.hosts.txt, -audit.users.hosts.txt, and audit.hosts.users.txt.

    - -

    Often, users of a cluster will wish to replicate commonly used data across -all disks in the system, perhaps to provide fast access to relatively static -data. The chirp_distribute tool can be used to rapidly move data from -one node to all others. Given a source host and path, -chirp_distribute will create a spanning tree and then move data -directly from host to host in parallel. This is much faster than running -cp or chirp put directly. For example, this will copy the -/database directory from host server.nd.edu to all hosts in -your cluster:

    - -$ chirp_distribute server.nd.edu /database `chirp_status -s` - -

    Another common problem is cleaning up data that has been copied this way. -To delete, simply run chirp_distribute again with the -X -option and the same arguments.

    - - -

    Advanced Topic: Space Management

    - -

    When multiple users share a common storage space, there is the danger that -one aggressive user can accidentally (or deliberately) consume all available -storage and prevent other work from happening. Chirp has two mechanisms -available to deal with this problem.

    - -

    The simpler tool is just a free space limit. If run with the -F -option, a Chirp server will stop consuming space when the free space on the -disk falls below this limit. External users will see a "No space left on -device." error. For example, -F 100MB will leave a minimum of -100MB free on the local disk. This mechanism imposes little or no performance -penalty on the server.

    - -

    The more complex tool is a user-level quota and allocation system. If run -with the -Q option, a Chirp server will establish a software quota for -all external users. That is, -Q 2GB will limit external users to -consuming a total of 2 GB of storage within a single Chirp server. This -mechanism imposes some run-time performance penalty, and also delays server -startup somewhere: the Chirp server must traverse its storage directory to -count up the available space.

    - -

    With the -Q option enabled, external users can allocate -space before consuming it. Using the Chirp tools, users may use the -mkalloc command to create new directories with an attached space -allocation. For example, mkalloc /mydata 1GB will create a new -directory /mydata with an allocation of 1GB. This allocation is a -limit that prevents files in that directory from consuming more than -1GB; it is also a guarantee that other users of the server will not be -able to steal the space. Such allocations may also be subdivided by using -mkalloc to create sub-directories.

    - -

    Note: Users employing Parrot can also use the parrot_mkalloc and -parrot_lsalloc commands in ordinary scripts to achieve the same -effect.

    - -

    To examine an allocation, use the lsalloc command.

    - -

    To destroy an allocation, simply delete the corresponding directory.

    - - -

    Advanced Topic: Ticket Authentication

    - -

    - Often a user will want to access a Chirp server storing files for cluster - computing jobs but will have difficulty accessing it securely without - transferring their credentials with the jobs dispatched to the cluster. To - facilitate ease-of-use, users typically solve this by giving rights to a - hostname mask (e.g. *.cse.nd.edu) on the Chirp server. However, - this level of access can be innappropriate due to sensitive data. Instead, - these users are forced to use difficult authentication methods such as Globus - or Kerberos for running the Chirp server. They may also use a virtual network - solution but users typically lack this amount of control on clusters. To - provide an easy solution to this problem, Chirp offers its own ticket based - authentication system which is convenient and simple to setup. -

    - -

    - To start, users may create a ticket for authentication using: -

    - -$ chirp <host:port> ticket_create -output myticket.ticket -subject unix:user -bits 1024 -duration 86400 / rl /foo rwl - -

    - This command performs multiple tasks in three stages: -

    - -

    - First, it creates a ticket which is composed of an RSA Private Key with a key - (modulus) size of 1024 bits. When we refer to the ticket, we are speaking of - this Private Key. By default, the ticket file generated is named - ticket.MD5SUM where MD5SUM is the MD5 - digest of the Public Key of the ticket. -

    - -

    - Once the ticket is created, it is registered with the Chirp server with a - validity period in seconds defined by the duration option (86400, or a day). - The -subject unix:user switch allows the user to set the ticket - for another user; however, only the chirp_server superuser - (-P) may set tickets for any subject. For regular users, the -subject option - is unnecessary as it is by default the subject you possess when registering - the ticket. Users who authenticate using this ticket in the future will - become this subject with certain masked rights. -

    - -

    - Once the ticket is created and registered, we give the ticket a set of - ACL masks. The ACL mask will mask the rights of the - ticket-authenticated user with the rights of the subject that registered the - ticket. For example, if a user named foo (subject is - unix:foo) has rights rwl in the root - directory of the Chirp server and if a ticket is registered for foo - with the ACL mask / rlx, the effective rights of the - ticket-authenticated user is rl in the root directory. -

    - -

    - ACL masks are also inherited from parent directories. So, in the above - example, the root directory has the ACL mask rl while the - foo directory has the ACL mask rwl. Other nested directories - within the root directory also inherit the rl mask. - Similarly, nested directories of the foo directory inherit the - rwl mask. We emphasize that the ACL mask does not give - rights but limits them. If the user that registers a ticket has no rights in - a directory, then neither will the ticket authenticated user. -

    - -

    Authenticating with a ticket

    - -

    - To authenticate using a ticket, it can be as simple as including the ticket - file with your job. Tickets that follow the ticket.MD5SUM - template are automatically added to the list of tickets to try when - authenticating. You can also give specific tickets to authenticate with - using a comma-delimited list of ticket filenames in either the - CHIRP_CLIENT_TICKETS environment variable or via the - -i <tickets> option. Tickets are tried in the order - they are specified. -

    - -$ chirp <host:port> - -

    - The above command will try ticket authentication as a last resort but will - use tickets it finds in the current directory following the template. -

    - -$ chirp -a ticket -i file.ticket <host:port> - -

    - The above command forces ticket authentication and only uses the - file.ticket ticket to authenticate. -

    - -

    - Authenticating is this simple. It is important to note that tickets are - obviously not protected in any way from theft when you distribute the ticket - with jobs in a distributed computing environment (no ticket system can give - this guarantee). Users may want to protect their tickets in basic ways - by setting a restrictive file mode and by giving tickets a limited duration - on the server. -

    - -

    - Finally, users should be careful to experiment with small key sizes for a - balance of quick authentication and security. Smaller key sizes may be - rejected outright by openssl when given a 64 byte challenge to sign. Chirp - will not authenticate or use smaller challenge sizes if openssl rejects the - ticket. -

    - -

    Manually Registering a Ticket

    - -

    - A ticket is only useful when registered with a server. The ticket_create - command does this for you automatically but you may also wish to register the - ticket with multiple servers. To do this, you can manually register a ticket - that is already created by using the ticket_register command: -

    - -$ chirp <host:port> ticket_register myticket.ticket unix:user 86400 - -

    - The first argument to ticket_register is the name of the ticket, - followed by the subject, and finally the ticket duration. The second option - (the subject) is optional. As described earlier, specifying the subject - allows you to register a ticket with a user other than yourself. This is only - possible if you are authenticated with the server as the super user. -

    - -

    Modifying the Rights of a Ticket

    - -

    - You may use the ticket_modify command to change the rights - a ticket has in a directory. You are restricted to giving rights to a - ticket you already possess. Recall, however, that the rights are actually - a mask that are logically ANDed with the rights the user has at the time. -

    - -$ chirp <host:port> ticket_modify myticket.ticket / rl - -

    - The above command changes the ACL mask of myticket.ticket - to rl in the root directory. -

    - -

    - A ticket identifier as returned by ticket_list may also - be used instead of a ticket filename. -

    - -

    Deleting a Ticket

    - -

    - Deleting a ticket unregisters the ticket with the server. Additionally, - the ticket on the client is deleted. -

    - -$ chirp <host:port> ticket_delete myticket.ticket - -

    - A ticket identifier as returned by ticket_list may also - be used instead of a ticket filename. -

    - -

    Listing the Registered Tickets on the Server

    - -

    - To list the tickets registered on a server, use the ticket_list - command: -

    - -$ chirp <host:port> ticket_list unix:user - -

    - The subject argument instructs the command to fetch all the tickets belonging - to the user. You may also use ticket_list all to list all the - tickets of all users on the server. The latter command is only executable by - the Chirp super user. The output is a list of tickets identifiers. You can - query information about a ticket using these identifiers with the - ticket_get command. -

    - -

    Getting a Registered Ticket's Information from the Server

    - -

    - To check the status of a ticket on a server, you may use the - ticket_get command: -

    - -$ chirp <host:port> ticket_get myticket.ticket - -

    - So long as you own the ticket or are authenticated as the super user, the - server will return to you information associated with the ticket. The ticket - must also exist and must also not have expired. ticket_get - takes a client side ticket filename as an argument or a ticket identifier as - returned by the ticket_list command. -

    - -

    - ticket_get prints the subject that owns the ticket, - the base64 encoded public key of the ticket, the time left - until the ticket expires in seconds, and a variable number of - directory and ACL masks. For example, we might have the following - output: -

    - -$ chirp host:port ticket_get myticket.ticket -unix:pdonnel3 -LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0Jp -UUtCZ1FEZVoyZWxKYXdlcHBHK0J4SFlaMmlmWFIzNAovU3RhUElta0lmeit4TDZxN21wS2lnMDJQZ2Z5 -emdKRWFjMk50NzJrUlBpOEJWYWdkOHdvSGhWc25YZ1YvNjFPCjVkaG13STNLYWRlYjNUbkZXUUo3bFhh -anhmVTZZR1hXb2VNY1BsdjVQUWloWm8yWmFXTUUvQVA4WUtnVVphdXcKelI2RkdZWGd6N2RGZzR6Yk9R -SURBUUFCCi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo= -5993 -/ rl -/foo rwl - - -

    - Note that the base64 encoded public key above is wrapped to fit an 80 - character width for this manual. In the actual output, the public key is on - one line. All of the information is new-line-delimited. -

    - - -

    Advanced Topic: HDFS Backend Storage for Chirp

    - -

    The Chirp server is able to bind to backend filesystems besides the local -filesystem. In particular, it is able to act as a frontend for the Hadoop HDFS -filesystem. When used on top of HDFS, Chirp gives you the benefit of a robust -system of ACLs, simple userspace access and POSIX semantics (with some -limitations, discussed below). Perhaps best of all, client jobs will no longer -have any Hadoop or Java (version) dependencies.

    - -

    To run a Chirp server as a frontend to your HDFS filesystem, -you will need to install the libhdfs-devel package -and then set several environment variables which -describe your Hadoop installation. JAVA_HOME and HADOOP_HOME -LIBHDFS_PATH should be set to indicate the location of the libhdfs library. -Common values for the Cloudera Hadoop installation would be this: -

    -setenv JAVA_HOME /usr/lib/jvm/java-openjdk -setenv HADOOP_HOME /usr/lib/hadoop -setenv LIBHDFS_PATH /usr/lib64/libhdfs.so - - -Then, start chirp_server and indicate the -root storage directory in HDFS with -r like this: - -$ chirp_server -r hdfs://headnode.hadoop.domain.edu/mydata ... - -

    By default, chirp will use whatever default replication factor is defined by -HDFS (typically 3). To change the replication factor of a single file, use the -chirp setrep or parrot_setrep commands. A path of -&&& will set the replication factor for all new files -created in that session.

    - -

    Temporary Local Storage

    - -

    Chirp allows you to setup a location to place temporary files such as those -for caching groups, and other items. You can set this using the -y -path. This allows for faster access, POSIX semantics, and less load on -HDFS. By default, Chirp assumes the current directory for temporary -storage.

    - -

    Limitations

    - -

    Chirp tries to preserve POSIX filesystem semantics where possible despite -HDFS violating certain assumptions. For example, random writes are not possible -for Chirp on HDFS. When the user requests to open a file for writing, Chirp -assumes an implicit O_APPEND flag was added. In addition, HDFS does -not maintain an execute permission bit for regular files. Chirp assumes all -files have the execute bit set.

    - -

    Chirp also does not allow using the thirdput command or user space -management (-F) when using HDFS as a backend.

    - - -

    Advanced Topic: Job Execution on Chirp

    - -

    As of version 4.2.0, Chirp supports job execution. Jobs run using -executables and files located on the Chirp server. Each job description sent -to the Chirp server provides a binding of each file the job requires to -a local namespace (a sandbox).

    - -

    To support the new job interface, Chirp has the following new RPC:

    - -<integer result> = job_create <JSON-encoded job description> -<integer result> = job_commit <JSON-encoded array of job IDs> -<JSON-encoded array of statuses> = job_status <JSON-encoded array of job IDs> -<JSON-encoded array of statuses> = job_wait <job ID> <timeout> -<integer result> = job_reap <JSON-encoded array of job IDs> -<integer result> = job_kill <JSON-encoded array of job IDs> - - -

    As usual, these RPC may be sent through the Chirp client command line tool -or through the C API.

    - -

    To enable job execution on a Chirp server, the --jobs switch must -be passed.

    - -

    Creating a Job

    - -<integer result> = job_create <JSON-encoded job description> - -

    To create a job, you need the usual attributes of an executable to run, the -arguments to pass to the executable, any environment variables to add, and any -files to bind into the job's namespace.

    - -

    In Chirp's Job execution framework, files are bound into the job's -namespace. The name of the file in the task's name space is labeled -task_path while the name in the server namespace is labeled -serv_path. Files are bound in the task namespace at job start -and job end, for inputs and outputs, respectively. - -

    Example 1

    - -{ - "executable": "/bin/sh", - "arguments": [ - "sh", - "-c", - "echo Hello, world! > my.output" - ], - "files": [ - { - "task_path": "my.output", - "serv_path": "/users/pdonnel3/my.0.output", - "type": "OUTPUT" - } - ] -} - - -

    Notice that the first argument is "sh". This argument corresponds -to argv[0] in a regular POSIX application.

    - -

    Additionally, the output file is explicitly marked as an OUTPUT. -This file is bound into the server namespace at task completion.

    - -

    Example 2 -- Two Inputs

    - -{ - "executable": "/bin/tar", - "arguments": [ - "tar", - "-cf", - "archive.tar", - "a", - "b" - ], - "files": [ - { - "task_path": "a", - "serv_path": "/users/pdonnel3/a.txt", - "type": "INPUT", - "binding": "LINK" - }, - { - "task_path": "b", - "serv_path": "/users/pdonnel3/b.txt", - "type": "INPUT", - "binding": "LINK" - }, - { - "task_path": "archive.tar", - "serv_path": "/users/pdonnel3/archive.tar", - "type": "OUTPUT", - "binding": "LINK" - } - ] -} - - -

    Here, each file is bound using hard links to the file located on the server. -This type of access is fast as the server does not need make a copy. You may -also bind files as COPY if necessary. LINK is the -default.

    - -

    Example 3 -- Using custom executable.

    - -

    Often, you will have a script or executable which is present on the Chirp -server which you want to execute directly. To do this, bind the executable as -you would any other file and give a relative (task) path for the -executable job attribute:

    - -{ - "executable": "./myscript.sh", - "arguments": [ - "myscript", - "b", - ], - "files": [ - { - "task_path": "myscript.sh", - "serv_path": "/users/pdonnel3/myscript.sh", - "type": "INPUT", - "binding": "LINK" - }, - { - "task_path": "output.txt", - "serv_path": "/users/pdonnel3/output.txt", - "type": "OUTPUT", - "binding": "LINK" - } - ] -} - - - -

    Committing (to Start) a Job

    - -<integer result> = job_commit <JSON-encoded array of job IDs> - -

    Chirp uses two-phase commit for creating a job. This serves to protect -against orphan jobs which become lost because a client or the server lose a -connection.

    - -

    To commit a job, pass a JSON-encoded array of job identifiers to the -job_commit RPC. For example:

    - -$ chirp host:port job_commit '[1, 2]' - -

    will commit jobs 1 and 2. - -

    Once a job is committed, the Chirp server is free to schedule and execute -the job. You may query the status of the job to see -if it has begun executing or wait for the job to -finish.

    - - -

    Querying the Status of a Job

    - -<JSON-encoded array of statuses> = job_status <JSON-encoded array of job IDs> - -

    At any point in a job's lifetime, you may query its status. Status -information is JSON-encoded and holds all job metadata.

    - -

    Example 1 -- Status of Create Example 1

    - -$ chirp host:port job_status '[1]' -[ - { - "id":1, - "error":null, - "executable":"\/bin\/sh", - "exit_code":null, - "exit_status":null, - "exit_signal":null, - "priority":1, - "status":"CREATED", - "subject":"unix:pdonnel3", - "time_commit":null, - "time_create":"2014-02-04 23:32:02", - "time_error":null, - "time_finish":null, - "time_kill":null, - "time_start":null, - "time_reap":null, - "arguments":[ - "sh", - "-c", - "echo Hello, world! > my.output" - ], - "environment":{ - }, - "files":[ - { - "serv_path":"\/users\/pdonnel3\/my.0.output", - "task_path":"my.output", - "type":"OUTPUT", - "binding":"LINK" - } - ] - } -] - - -

    After we commit the job, we get this status:

    - -$ chirp host:port job_commit '[1]' -$ chirp host:port job_status '[1]' -[ - { - "id":1, - "error":null, - "executable":"\/bin\/sh", - "exit_code":null, - "exit_status":null, - "exit_signal":null, - "priority":1, - "status":"COMMITTED", - "subject":"unix:pdonnel3", - "time_commit":"2014-02-05 01:18:39", - "time_create":"2014-02-04 23:32:02", - "time_error":null, - "time_finish":null, - "time_kill":null, - "time_start":null, - "time_reap":null, - "arguments":[ - "sh", - "-c", - "echo Hello, world! > my.output" - ], - "environment":{ - - }, - "files":[ - { - "serv_path":"\/users\/pdonnel3\/my.0.output", - "task_path":"my.output", - "type":"OUTPUT", - "binding":"LINK" - } - ] - } -] - - -

    After a short time, we can again get the job's status to see that it failed:

    - -$ chirp host:port job_status '[1]' -[ - { - "id":1, - "error":"No such file or directory", - "executable":"\/bin\/sh", - "exit_code":null, - "exit_status":null, - "exit_signal":null, - "priority":1, - "status":"ERRORED", - "subject":"unix:pdonnel3", - "time_commit":"2014-02-05 01:18:39", - "time_create":"2014-02-04 23:32:02", - "time_error":"2014-02-05 01:18:39", - "time_finish":null, - "time_kill":null, - "time_start":null, - "time_reap":null, - "arguments":[ - "sh", - "-c", - "echo Hello, world! > my.output" - ], - "environment":{ - - }, - "files":[ - { - "serv_path":"\/users\/pdonnel3\/my.0.output", - "task_path":"my.output", - "type":"OUTPUT", - "binding":"LINK" - } - ] - } -] - - -

    This is caused by /users/pdonnel3 directory not existing. If we create this directory:

    - -$ chirp host:port mkdir -p /users/pdonnel3 - -

    Retrying Create Example 1

    - -$ chirp host:port mkdir -p /users/pdonnel3 -$ chirp host:port job_create '{ - "executable": "/bin/sh", - "arguments": [ - "sh", - "-c", - "echo Hello, world! > my.output" - ], - "files": [ - { - "task_path": "my.output", - "serv_path": "/users/pdonnel3/my.0.output", - "type": "OUTPUT" - } - ] -}' -4 -$ chirp host:port job_commit '[4]' -$ sleep 1 -$ chirp host:port job_status '[4]' -[ - [ - { - "id":4, - "error":null, - "executable":"\/bin\/sh", - "exit_code":0, - "exit_status":"EXITED", - "exit_signal":null, - "priority":1, - "status":"FINISHED", - "subject":"unix:batrick", - "time_commit":"2014-02-05 01:26:15", - "time_create":"2014-02-05 01:25:58", - "time_error":null, - "time_finish":"2014-02-05 01:26:15", - "time_kill":null, - "time_start":"2014-02-05 01:26:15", - "time_reap":null, - "arguments":[ - "sh", - "-c", - "echo Hello, world! > my.output" - ], - "environment":{ - - }, - "files":[ - { - "serv_path":"\/users\/pdonnel3\/my.0.output", - "task_path":"my.output", - "type":"OUTPUT", - "binding":"LINK" - } - ] - } - ] -] -$ chirp host:port cat /users/pdonnel3/my.0.output -Hello, world! - - -

    Again, you can get the status of a job at any time. However, this RPC does -not help with waiting for one or more jobs to finish. For that, we use the -job_wait RPC discussed next.

    - - -

    Waiting for a Job to Terminate

    - -<JSON-encoded array of statuses> = job_wait <job ID> <timeout> - -

    Use the job_wait RPC to wait for a job to finish. This will give -you the status information of jobs which have completed and have a -status of FINISHED, KILLED, or ERRORED.

    - -

    job_wait takes an job identifier argument which matches jobs in the -following way:

    - - - - - - - - - - - - - - -
    0Match all jobs for the current user.
    X > 0Match job with id equal to X.
    X < 0Match job with id greater than abs(X).
    - -

    job_wait is essentially job_status except the RPC blocks -until a job matches the above condition or the timeout is -exceeded.

    - -

    Unlike the regular UNIX wait system call, Chirp's job_wait does not -reap a job you wait for. You must do that through the job_reap RPC -discussed next.

    - - -

    Reaping a Finished Job

    - -<integer result> = job_reap <JSON-encoded array of job IDs> - -

    Similar in intent to job_commit, job_reap notifies the -Chirp server that your application has logged the termination of the job. This -allows the Chirp server to reap the job. The side-effect of this operation is -future calls to job_wait will not include the reaped jobs.

    - - -

    Killing a Job

    - -<integer result> = job_kill <JSON-encoded array of job IDs> - -

    job_kill informs the Chirp server to kill a job. Any job which has -not reached a terminal state (FINISHED, KILLED, or -ERRORED) will immediately be moved to the KILLED state. If -the job is running, the internal Chirp scheduler will also terminate the job at -its convenience.

    - -

    Chirp Jobs on AFS

    - -

    On the AFS file system, Chirp job execution will not work with LINK -file bindings. This is due to limitations in AFS preventing hard links across -directories. For this reason we recommend against using AFS as the backing -storage for Chirp (--root). If you must use AFS, the COPY -binding should work.

    - - -

    Debugging Advice

    - -

    Debugging a distributed system can be quite difficult because of the sheer -number of hosts involved and the mass of information to be collected. If you -are having difficulty with Chirp, we recommend that you make good use of the -debugging traces built into the tools.

    - -

    In all of the Chirp and Parrot tools, the -d option allows you to -turn on selected debugging messages. The simplest option is -d all -which will show every event that occurs in the system.

    - -

    To best debug a problem, we recommend that you turn on the debugging -options on both the client and server that you are operating. For -example, if you are having trouble getting Parrot to connect to a Chirp server, -then run both as follows:

    - -$ chirp_server -d all [more options] ... -$ parrot_run -d all tcsh - - -

    Of course, this is likely to show way more information than you will be -able to process. Instead, turn on a debugging flags selectively. For example, -if you are having a problem with authentication, just show those messages with --d auth on both sides.

    - -

    There are a large number of debugging flags. Currently, the choices are: -syscall notice channel process resolve libcall tcp dns auth local http ftp nest -chirp dcap rfio cache poll remote summary debug time pid all. When debugging -problems with Chirp and Parrot, we recommend selectively using -d -chirp, -d tcp, -d auth, and -d libcall as -needed.

    - -

    Confuga

    - -

    Confuga is an active storage cluster file system harnessing Chirp. To learn -more about it, please see the Confuga manual.

    - -
    - - diff -Nru cctools-7.0.22/doc/chirp_protocol.html cctools-7.1.2/doc/chirp_protocol.html --- cctools-7.0.22/doc/chirp_protocol.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/chirp_protocol.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,361 +0,0 @@ - - - - - - -Chirp Protocol Version 2 - - - - - -
    -

    Chirp Protocol Version 2

    - -

    Last edited: 23 June 2008

    - -

    Introduction

    - -

    Chirp is a simple and lightweight remote I/O protocol with multiple implementations. It is used in several distributed computing systems where users wish to access data over the wide area using a Unix filesystem like protocol. This document lays out the underlying protocol so as to promote interoperability between implementations, and permit additional implementations by other parties. At the time of writing, there are four independent implementations used for both research and production:

    -

    -

    -
  • A standalone C server and client maintained by Douglas Thain at the University of Notre Dame. -
  • A Java client implementation by Justin Wozniak used by the GEMS project at the University of Notre Dame. -
  • A C server and Java client embedded in the Condor distributed processing system at the University of Wisconsin. -
  • A C client implementation that is part of the ROOT I/O library used in the high energy physics community. -
  • - -

    Authentication Protocol

    - -Chirp is carried over a stream protocol such as TCP or Unix domain sockets. A server waits for a client to connect by the appropriate mechanism, and then waits for the client to identify itself. There are currently two methods of authentication: cookie authentication and negotiated authentication. - -

    Cookie Authentication

    - -In certain situations, the client may be provided in advance with a "cookie" that provides expedited access to a server with a fixed identity. This method is typically used within Condor when communicating with the embedded Chirp proxy. -

    -In this situation, the client is provided with a file named chirp.config which contains the host and port of the server, and a cookie string. The client must connect to the server and immediately send cookie, a space, the cookie string, and a newline. If the response from the server is 0\n then the cookie is accepted, and the client may proceed to the main Chirp protocol described below. Any other response indicates the cookie was rejected, and the client must abort. - -

    Negotiated Authentication

    - -In the general case, the client must prove its identity to the server. There are several possible methods of authentication, and both client and server may only accept some subset of them. The client drives the negotiation process by simply sending the requested authentication type as a plain string followed by a newline. If the server does not support the method, it responds no\n and waits for the client to request another. If it does support the method, it responds yes\n and then performs that method. At the time of writing, the supported authentication methods are hostname, unix, kerberos, and globus. -

    -In this example, a client first requests kerberos authentication, and then hostname: -client: kerberos -server: no -client: unix -server: yes - - -

    Hostname Authentication

    - -This method of authentication simply asks that the server identify by the client by the name of the host it is calling from. The server responds by performing a remote domain name lookup on the caller's IP address. If this succeeds, the server responds yes\n, otherwise no\n and fails (see below). If the client is authorized to connect, the server sends an additional yes\n otherwise no\n and fails. - -

    Unix Authentication

    - -This method of authentication causes the server the challenge the client to prove its identity by creating a file on the local file system. The server transmits the name of a non-existent file in a writable directory. The client must then attempt to create it. If successful, the client should respond yes\n otherwise no\n and fails. The server then checks that the file was actually created, and if satisfied responds yes\n otherwise no\n and fails. - -

    Kerberos Authentication

    - -This method is performed by invoking the standard Kerberos 5 libraries to authenticate in the usual manner, and is defined by that standard. - -

    Globus Authentication

    - -This method is performed by invoking the Secure Sockets Layer to authenticate using Globus credentials and is defined by that standard. - -

    Completing Authentication

    - -If the authentication method succeeds, then the server will send two lines to the client, giving the successful authentication method and the client's identity. The client may then proceed to the main protocol below. If the method fails, then the server and client return to negotiating a method. - -

    Chirp Protocol

    - -A request consists of an LF-terminated line possibly followed by binary data. At a minimum, a Chirp server must accept requests of 1024 characters. It may accept longer lines. If a line exceeds a server's internal maximum, it must gracefully consume the excess characters and return a TOO_BIG error code, defined below. Certain requests are immediately followed by binary data. The number of bytes is dependent on the semantics of the request, also described below. -

    -A request is parsed into words separated by any amount of white space consisting of spaces and tabs. The first word of the request is called the "command" and the rest are called "arguments." -

    - -Words fall into two categories: strings and decimals. A string is any arbitrary sequence of characters, with whitespaces and unprintables encoding according to RFC 2396. (Very briefly, RFC 2396 says that whitespace must be encoding using a percent sign and two hex digits: ab cd becomes ab%20cd.) A decimal is any sequence of the digits 0-9, optionally prefixed by a single + or -. -

    - -At the protocol level, words have no maximum size. They may stretch on to fill any number of bytes. Of course, each implementation has limits on concepts such a file name lengths and integer sizes. If a receiver cannot parse, store, or execute a word contained in a request, it must gracefully consume the excess characters and return a TOO_BIG error response, defined below. -

    -A response consists of an LF-terminated line, bearing an ASCII integer. A valid response may also contain whitespace and additional optional material following the response. If the response is greater than or equal to zero, the response indicates the operation succeeded. If negative, the operation failed, and the exact value tells why: -

    --1 NOT_AUTHENTICATED The client has not authenticated its identity. --2 NOT_AUTHORIZED The client is not authorized to perform that action. --3 DOESNT_EXIST There is no object by that name. --4 ALREADY_EXISTS There is already an object by that name. --5 TOO_BIG That request is too big to execute. --6 NO_SPACE There is not enough space to store that. --7 NO_MEMORY The server is out of memory. --8 INVALID_REQUEST The form of the request is invalid. --9 TOO_MANY_OPEN There are too many resources in use. --10 BUSY That object is in use by someone else. --11 TRY_AGAIN A temporary condition prevented the request. --12 BAD_FD The file descriptor requested is invalid. --13 IS_DIR A file-only operation was attempted on a directory. --14 NOT_DIR A directory operation was attempted on a file. --15 NOT_EMPTY A directory cannot be removed because it is not empty. --16 CROSS_DEVICE_LINK A hard link was attempted across devices. --17 OFFLINE The requested resource is temporarily not available. --127 UNKNOWN An unknown error occurred. - -

    - -Negative values beyond -17 are reserved for future expansion. The -receipt of such a values should be interpreted in the same way as UNKNOWN. - -

    Chirp Commands

    - -Following are the available commands. Each argument to a command is specific -Here are the available commands that are standardized. Note that each implementation may support some additional commands which are not (yet) documented because they are still experimental. Each argument to a command is specified with a type and a name. - -open (string:name) (string:flags) (decimal:mode) - -Open the file named "name" "mode" is interpreted in the same manner as a POSIX file mode. Note that the mode is printed in decimal representation, although the UNIX custom is to use octal. For example, the octal mode 0755, representing readable and executable by everyone would be printed as 493. "flags" may contain any of these characters which affect the nature of the call: - - -
  • r - open for reading -
  • w - open for writing -
  • a - force all writes to append -
  • t - truncate before use -
  • c - create if it doesn't exist -
  • x - fail if 'c' is given and the file already exists -
  • - -The open command returns an integer file description which may be used with later calls referring to open files. The implementation may optionally return file metadata in the same form as the stat command, immediately following the result. A client implementation must be prepared for both forms of result. On failure, returns a negative value in the response. - -Note that a file descriptor returned by open only has meaning within the current connection between the client and the server. If the connection is lost, the server will implicitly close all open files. A file descriptor opened in one connection has no meaning in another connection. - -close (decimal:fd) - -Complete access to this file descriptor. If the connection between a client an server is lost, all files are implicitly closed. - -read (decimal:fd) (decimal:length) - -Read up to "length" bytes from the file descriptor "fd." If successful, the server may respond with any value between zero and "length." Immediately following the response will be binary data of exactly as many bytes indicated in the response. If zero, the end of the file has been reached. If any other value is given, no assumptions about the file size may be made. - -pread (decimal:fd) (decimal:length) (decimal:offset) - -Read up to “length” bytes from the file descriptor “fd”, starting at “offset”. Return value is identical to that of read. - -read (decimal:fd) (decimal:length) (decimal:offset) (decimal:stride_length) (decimal:stride_skip) - -Read up to "length" bytes from the file descriptor "fd", starting at “offset”, retrieving “stride_length” bytes every “stride_skip” bytes. Return value is identical to that of read. - -write (decimal:fd) (decimal:length) - -Write up to "length" bytes to the file descriptor "fd." This request should be immediately followed by "length" binary bytes. If successful, may return any value between 0 and "length," indicating the number of bytes actually accepted for writing. An efficient server should avoid accepting fewer bytes than requested, but the client must be prepared for this possibility. - -pwrite (decimal:fd) (decimal:length) (decimal:offset) - -Write up to "length" bytes to the file descriptor "fd" at offset “offset”. Return value is identical to that of write. - -swrite (decimal:fd) (decimal:length) (decimal:offset) (decimal:stride_length) (decimal:stride_skip) - -Write up to "length" bytes to the file descriptor "fd", starting at “offset”, writing “stride_length” bytes every “stride_skip” bytes. Return value is identical to that of write. - -fstat (decimal:fd) - -Get metadata - -fsync (decimal:fd) - -Block until all uncommitted changes to this file descriptor have been written to stable storage. - -lseek (decimal:fd) (decimal:offset) (decimal:whence) - -Move the current seek pointer of "fd" by "offset" bytes from the base given by "whence." "whence" may be: - - -
  • 0 - from the beginning of the file -
  • 1 - from the current seek position -
  • 2 - from the end of the file. -
  • - -Returns the current seek position. - -rename (string:oldpath) (string:newpath) - -Rename the file "oldpath" to be renamed to "newpath". - -unlink (string:path) - -Delete the file named "path". - -rmdir (string:path) - -Delete a directory by this name. - -rmall (string:path) - -Recursively delete an entire directory. - -mkdir (string:name) (decimal:mode) - -Create a new directory by this name. "mode" is interpreted in the same manner as a POSIX file mode. Note that mode is expressed in decimal rather than octal form. - -fstat (decimal:fd) - -Get metadata describing an open file. If the response line indicates success, it is followed by a second line of thirteen integer values, indicating the following values: - -
  • st_dev - Device number. -
  • st_ino - Inode number -
  • st_mode - Mode bits. -
  • st_nlink - Number of hard links. -
  • st_uid - User ID of the file’s owner. -
  • st_gid - Group ID of the file. -
  • st_rdev - Device number, if this file represents a device. -
  • st_size - Size of the file in bytes. -
  • st_blksize - Recommended transfer block size for accessing this file. -
  • st_blocks - Number of physical blocks consumed by this file. -
  • st_atime - Last time file was accessed in Unix time() format. -
  • st_mtime - Last time file data was modified in Unix time() format. -
  • st_ctime - Last time the inode was changed, in Unix time() format. -
  • - -Note that not all fields may have meaning to all implementations. For example, in the standalone Chirp server, st_uid has no bearing on access control, and the user should employ setacl and getacl instead. - -fstatfs (string:path) - -Get filesystem metadata for an open file. If the response line indicates success, it is followed by a second line of seven decimals with the following interpretation: - - -
  • f_type - The integer type of the filesystem. -
  • f_blocks - The total number of blocks in the filesystem. -
  • f_bavail - The number of blocks available to an ordinary user. -
  • f_bsize - The size in bytes of a block. -
  • f_bfree - The number of blocks free. -
  • f_files - The maximum number of files (inodes) on the filesystem. -
  • f_ffree - The number of files (inodes) currently in use -
  • - -fchown (decimal:fd) (decimal:uid) (decimal:gid) - -Change the ownership of an open file to the UID and GID indicated. - -fchmod (decimal:fd) (decimal:mode) - -Change the Unix mode bits on an open file. - -ftruncate (decimal:fd) (decimal:length) - -Truncate an open file. - -getfile (string:path) - -Retrieves an entire file efficiently. A positive response indicates the number of bytes in the file, and is followed by exactly that many bytes of binary data which are the file’s contents. - -putfile (string:path) (decimal:mode) (decimal:length) - -Stores an entire file efficiently. The client first sends the request line indicating the file name, the desired mode bits, and the length in bytes. The response indicates whether the client may proceed. If it indicates success, the client must write exactly “length” bytes of data, which are the file’s contents. If the response indicates failure, the client must not send any additional data. - -getlongdir (string:path) - -Lists a directory and all metadata. If the response indicates success, it will be followed by a series of lines, alternating the name of a directory entry with its metadata in the same form as returned by fstat. The end of the list is indicated by a single blank line. - -getdir (string:path) - -Lists a directory. If the response indicates success, it will be followed by a series of lines indicating the name of each directory entry. The end of the list is indicated by a single blank line. - -getacl (string:path) - -Get an access control list. If the response indicates success, it will be followed by a series of lines indicating each entry of the access control list. The end of the list is indicated by a single blank line. - -setacl (string:path) (string:subject) (string:rights) - -Modify an access control list. On an object identified by path, set rights rights for a given subject. The string “-“ may be used to indicate no rights. - -whoami - -Get the user’s current identity with respect to this server. If the response is greater than zero, it is followed by exactly that many bytes in data, containing the user’s identity. - -whoareyou (string:rhost) - -Get the server’s current identity with respect to a remote host. If the response is greater than zero, it is followed by exactly that many bytes in data, containing the server’s identity. - -link (string:oldpath) (string:newpath) - -Create a hard link from newpath to oldpath. - -symlink (string:oldpath) (string:newpath) - -Create a symlink from newpath to oldpath. - -readlink (string:path) - -Read the contents of a symbolic link. If the response is greater than zero, it is followed by exactly that many bytes in data, containing the contents of the link. - -mkdir (string:path) (decimal:mode) - -Create a new directory with the given Unix mode bits. - -stat (string:path) - -Get file status. If the response indicates success, it is followed by a second line in the same format as the command fstat. If the pathname represents a symbolic link, this command examines the target of the link. - -lstat (string:path) - -Get file status. If the response indicates success, it is followed by a second line in the same format as the command fstat. If the pathname represents a symbolic link, this command examines the link itself. - -statfs (string:path) - -Get filesystem status. If the response indicates success, it is followed by a second line in the same format as the command fstatfs. - -access (string:path) (decimal:mode) - -Check access permissions. Returns success if the user may access the file according to the specified mode. The “mode” may be any of the values logical-or’d together: - -
  • 0 (F_OK) Test for existence of the file. -
  • 1 (X_OK) Test if the file is executable. -
  • 2 (W_OK) Test if the file is readable. -
  • 4 (R_OK) Test if the file is executable. -
  • - -chmod (string:path) (decimal:mode) - -Change the Unix mode bits on a given path. (NOTE 1) - -chown (string:path) (decimal:uid) (decimal:gid) - -Change the Unix UID or GID on a given path. If the path is a symbolic link, change its target. (NOTE 1) - -lchown (string:path) (decimal:uid) (decimal:gid) - -Change the Unix UID or GID on a given path. If the path is a symbolic link, change the link. (NOTE 1) - -truncate (string:path) (decimal:length) - -Truncate a file to a given number of bytes. - -utime (string:path) (decimal:actime) (decimal:mtime) - -Change the access and modification times of a file. - -md5 (string:path) - -Checksum a remote file using the MD5 message digest algorithm. If successful, the response will be 16, and will be followed by 16 bytes of data representing the checksum in binary form. - -thirdput (string:path) (string:remotehost) (string:remotepath) - -Direct the server to transfer the path to a remote host and remote path. If the indicated path is a directory, it will be transferred recursively, preserving metadata such as access control lists. - -mkalloc (string:path) (decimal:size) (decimal:mode) - -Create a new space allocation at the given path that can contain “size” bytes of data and has initial mode of “mode”. - -lsalloc (string:path) - -List the space allocation state on a directory. If the response indicates success, it is followed by a second line which gives the path of the containing allocation, the total size of the allocation, and the -

    -(NOTE 1) The standalone Chirp server ignores the traditional Unix mode bits when performing access control. Calls such as fchmod, chmod, chown, and fchown are essentially ignored, and the caller should employ setacl and getacl instead. - -

    - - diff -Nru cctools-7.0.22/doc/confuga.html cctools-7.1.2/doc/confuga.html --- cctools-7.0.22/doc/confuga.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/confuga.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,353 +0,0 @@ - - - - - - - Confuga User's Manual - - - -
    -

    Confuga User's Manual

    -

    Last edited: May 2015

    - - - -

    Please use the following citation for Confuga in a scientific publication:

    - - -

    Overview

    - -

    Confuga is an active storage cluster file system designed for - executing DAG-structured scientific workflows. It is used as a - collaborative distributed file system and as a platform for - execution of scientific workflows with full data locality for all - job dependencies.

    - -

    A high-level perspective of Confuga is visualized in the figure - below.

    - - - -

    Confuga is composed of a head node and multiple storage nodes. - The head node acts as the metadata server and job scheduler for the - cluster. Users interact with Confuga using the head node. All file - and job operations go through the head node.

    - -

    A Confuga cluster can be setup as an ordinary user or maintained - as a dedicated service within the cluster. The head node and - storage nodes run the Chirp file system - service. - Users may interact with Confuga using Chirp's client toolset chirp(1), Parrot parrot_run(1), or FUSE chirp_fuse(1).

    - -

    Confuga manages the details of scheduling and executing jobs for - you. However, it does not concern itself with job ordering; it - appears as a simple batch execution platform. We recommend using a - high-level workflow execution system like Makeflow to manage your workflow and to - handle the details of submitting jobs. However, you can also - program job submmission directly using the Chirp job protocol.

    - -

    Confuga is designed to exploit the unique parameters and - characteristics of POSIX scientific workflows. Jobs are single task - POSIX applications that are expressed with all input files and all - output files. Confuga uses this restricted job specification to - achieve performance and to control load within the cluster.

    - -

    To get started using Confuga, please begin by installing CCTools on your system. When you - are ready, proceed with the Getting Started - section below.

    - -

    Getting Started with Confuga

    -

    Getting a Confuga cluster up and running is extremely simple. There are three services you need to start to get an operational cluster:

    - -
      - -
    • The Storage Nodes (1 or more). You must start a number of - storage nodes which host data and execute jobs, all managed by - Confuga. Each storage node is a Chirp server. Each storage - node is added to the list of nodes passed to the Confuga head - node.
    • - -
    • The Confuga Head Node. This is naturally the core - service for the cluster. It manages the storage nodes, - distributing data and jobs.
    • - -
    • The Catalog Server (Optional). The catalog server - keeps track of operational storage nodes. It functions as a - heartbeat listener for the Confuga head node. This service is - optional because you may use the default catalog server managed - by the Cooperative Computing Lab. Or you can start your - own. See Catalog Servers for details.
    • - -
    - -

    Running a Test Cluster

    - -

    Let's get started quickly by setting up a 2 storage node - test cluster on your local workstation.

    - -

    Start Storage Node 1: - $ chirp_server \ - --catalog-name=localhost \ - --catalog-update=10s \ - --interface=127.0.0.1 \ - --jobs \ - --job-concurrency=10 \ - --root=./root.1 \ - --port=9001 \ - --project-name=`whoami`-test \ - --transient=./tran.1 \ - & -

    - -

    Start Storage Node 2: - $ chirp_server \ - --catalog-name=localhost \ - --catalog-update=10s \ - --interface=127.0.0.1 \ - --jobs \ - --job-concurrency=10 \ - --root=./root.2 \ - --port=9002 \ - --project-name=`whoami`-test \ - --transient=./tran.2 \ - & -

    - -

    Add the Storage Nodes to Confuga: - $ confuga_adm confuga:///$(pwd)/confuga.root/ sn-add address localhost:9001 -$ confuga_adm confuga:///$(pwd)/confuga.root/ sn-add address localhost:9002 - -

    Start the Head Node: - $ chirp_server \ - --catalog-name=localhost \ - --catalog-update=30s \ - --debug=confuga \ - --jobs \ - --port=9000 \ - --project-name=`whoami`-test \ - --root="confuga://$(pwd)/confuga.root/?auth=unix" -

    - -

    Confuga will output debug information to your terminal, so - you can see what is happening. In another terminal, use - chirp_status to query the catalog allowing you to see - the status of the cluster:

    - - $ chirp_status --server-project=`whoami`-test -TYPE NAME PORT OWNER VERSION TOTAL AVAIL -chirp *.*.*.* 9002 batrick 6.0.0 81.6 GB 56.2 GB -chirp *.*.*.* 9001 batrick 6.0.0 81.6 GB 56.2 GB -chirp *.*.*.* 9000 batrick 6.0.0 163.1 GB 112.4 GB - -

    This example cluster also appears at the end of the Confuga manpage confuga(1).

    - -

    Running a Workflow

    - -

    In another terminal, we can run the standard Makeflow example against the cluster to confirm everything works. This example Makeflow is distributed with CCTools in makeflow/example/example.makeflow.

    - - $ makeflow --batch-type=chirp --working-dir=chirp://localhost:9000/ makeflow/example/example.makeflow -parsing makeflow/example/example.makeflow... -checking makeflow/example/example.makeflow for consistency... -makeflow/example/example.makeflow has 6 rules. -recovering from log file makeflow/example/example.makeflow.makeflowlog... -starting workflow.... -submitting job: /usr/bin/curl -o capitol.jpg http://ccl.cse.nd.edu/images/capitol.jpg -submitted job 14 -job 14 completed -submitting job: /usr/bin/convert -swirl 360 capitol.jpg capitol.360.jpg -submitted job 15 -submitting job: /usr/bin/convert -swirl 270 capitol.jpg capitol.270.jpg -submitted job 16 -submitting job: /usr/bin/convert -swirl 180 capitol.jpg capitol.180.jpg -submitted job 17 -submitting job: /usr/bin/convert -swirl 90 capitol.jpg capitol.90.jpg -submitted job 18 -job 15 completed -job 16 completed -job 17 completed -job 18 completed -submitting job: /usr/bin/convert -delay 10 -loop 0 capitol.jpg capitol.90.jpg capitol.180.jpg capitol.270.jpg capitol.360.jpg capitol.270.jpg capitol.180.jpg capitol.90.jpg capitol.montage.gif -submitted job 19 -job 19 completed -nothing left to do. - -

    You can then view the result by fetching the output and using your favorite gif viewing program:

    - $ chirp localhost:9000 get /capitol.montage.gif -903.4 KB read in 0.05s (16.1 MB/s) - $ $ display ./capitol.montage.gif - -

    You can also achieve the same thing using Parrot:

    - $ parrot_run display /chirp/localhost:9000/capitol.montage.gif - -

    Setting up Confuga

    -

    Running Storage Nodes

    - -

    Confuga uses regular Chirp servers as storage nodes. Each - storage node is added to the cluster using the confuga_adm(1). command. All - storage node Chirp servers must be run with:

    - -
      -
    • Ticket authentication enabled (--auth=ticket). Remember by default all authentication mechanisms are enabled.)
    • -
    • Job execution enabled (--jobs).)
    • -
    • Job concurrency of at least two (--job-concurrency=2).)
    • -
    - -

    These options are also suggested but not required:

    - -
      -
    • More frequent Catalog updates (--catalog-update=30s).)
    • -
    • Project name for the cluster (--project-name=foo).)
    • -
    - -

    You must also ensure that the storage nodes and the Confuga - head node are using the same catalog_server(1). By - default, this should be the case.

    - -

    Confuga Options

    - -

    A Chirp server acting as the Confuga head node uses normal - chirp_server(1) options. In order to run the Chirp - server as the Confuga head node, use the --root switch - with the Confuga URI. You must also enable job execution with - the --jobs switch.

    - -

    The format for the Confuga URI is:

    - - confuga:///path/to/workspace?option1=value&option2=value - -

    The workspace path is the location Confuga maintains metadata - and databases for the head node. Confuga specific options are - also passed through the URI. The primary option is documented below.

    - -
      - -
    • auth=method Enable this method for Head Node to - Storage Node authentication. The default is to enable all - available authentication mechanisms.
    • - -
    - -

    Please refer to Confuga's man page confuga(1) for a - complete and up-to-date listing of Confuga's options.

    - -

    Executing Jobs

    - -

    To execute jobs on Confuga, you must first place all of the jobs - data requirements, including the executable itself, within Confuga. - This can be done using Chirp's client toolset chirp(1), Parrot parrot_run(1), or FUSE chirp_fuse(1).

    - -

    Once data is located on Confuga, you may begin executing jobs. - Normally, you will construct a workflow that executes within a - workflow namespace within Confuga. In simpler terms, this is - just the root directory your workflow operates in, probably your - home directory on Confuga. For example, if you place your files - in Confuga like so:

    - - $ chirp confuga.name.org put workflow /users/me/ - -

    and your workflow looks something like this:

    - - simulation.txt: bin/sim params - bin/sim -i params - -

    The executable used by Confuga will be - /users/me/workflow/bin/sim and the parameter file will be - /users/me/workflow/params. Likewise, after the job - completes, the output will be placed - /users/me/workflow/simulation.txt. As you may tell, the - namespace your workflow is operating in is - /users/me/workflow. You will give this namespace to the - workflow manager you use along with your workflow. It describes the - mapping relationship between the namespace the job executes - within and the namespace the workflow executes within.

    - -

    As an example, you might run Makeflow for the above situation like so:

    - - $ makeflow -T chirp --working-dir=chirp://confuga.name.org/users/me/workflow - -

    Protocol

    - -

    Jobs are executed using the Chirp job - protocol. No special modifications are required to submit jobs - to Confuga. We recommend using the Makeflow workflow manager but - you may also program your own jobs using this protocol if so - desired.

    - -

    Security

    - -

    Authentication

    - -

    There are three authentication realms to consider for a - Confuga cluster: user to head node, head node to storage node, - and storage node to storage node authentication.

    - -

    The head node is accessed by clients just like a regular - Chirp server. Therefore, you authenticate with Confuga in the - same way as - Chirp. You may enable authentication mechanisms on the head - node using the --auth switch, documented in chirp_server(1).

    - -

    Head node authentication with storage nodes is controlled - via the auth Confuga option. - Confuga will uses these authentication mechanisms to authenticate - with its storage nodes.

    - -

    Lastly, Confuga handles the details of storage node to - storage node authentication. This is done using Chirp's ticket authentication metchanism. - You as a user do not need to do anything special to get this - working beyond enabling ticket authentication - (--auth=ticket) on each storage node.

    - -

    Authorization

    - -

    Confuga offers the same strong authorization system as - Chirp. This includes per-directory access control lists (ACL). - For information on authorization controls in Chirp, please see - the Authorization - section in the Chirp manual.

    - -

    Debugging

    - -

    Debugging Jobs

    - -

    Confuga does not save the stdout or stderr - of jobs. If you need to debug your jobs by examining these - files, you must explicitly save them. If you are using Makeflow - to submit jobs to Confuga, you may do this simply by using - Makeflow's --wrapper option to save these - stdout and stderr. For example:

    - - $ makeflow --batch-type=chirp \\ - --working-dir=chirp://confuga.example.com/ \\ - --wrapper=$'{\\n{}\\n} > stdout.%% 2> stderr.%%' \\ - --wrapper-output='stdout.%%' \\ - --wrapper-output='stderr.%%' - -

    Notes

    - -

    AFS

    - -

    Storage nodes used by Confuga must not use AFS as their backing - storage. Confuga requires use of the Chirp job - LINK file binding. For this reason, it cannot use - Chirp servers running with --root on AFS.

    - -
    - - - diff -Nru cctools-7.0.22/doc/ftp_lite.html cctools-7.1.2/doc/ftp_lite.html --- cctools-7.0.22/doc/ftp_lite.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/ftp_lite.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,263 +0,0 @@ - - - - - - -FTP-Lite Manual - - - - -
    -

    FTP-Lite Manual

    - -

    Last edited: 27 August 2004

    - -

    Table of Contents

    - - - - -

    Front Matter

    - -

    -The FTP-Lite Library is copyright (C) 2004 Douglas Thain and the University of Notre Dame. -

    -This product includes software developed by and/or derived from the Globus Project (http://www.globus.org/) to which the U.S. Government retains certain rights. -

    -This program is released under the GNU General Public License. See the file COPYING for details. -

    -This software comes with no warranty and no guarantee of support. -Questions, bug reports, and patches may be sent to -condor-admin@cs.wisc.edu. -We will address such inquiries as time and resources permit. - - -

    Introduction

    - -FTP-Lite is a library for accessing FTP servers from UNIX C programs. -

    -It is designed to be simple, correct, and easily debuggable. -In particular, FTP-Lite presents an FTP service in terms of UNIX abstractions. -Errors are return in standard errno values. -Data streams are presented as FILE objects. -All procedures perform blocking I/O. -

    -The library may be built as-is in order to communicate with ordinary -name/password or anonymous FTP servers. However, if the -Globus Toolkit is available, it will -also perform GSI authentication with your proxy certificate. -

    -FTP-Lite provides perfectly reasonable performance for simple clients -that access one file at a time. For clients that need to manage multiple -servers at once, we heartily recommend the FTP implementation found in the -Globus Toolkit. It uses a variety of techniques, such as -multiple data streams and non-blocking interfaces, for achieving high -performance and multi-server access. -

    -This library was designed specifiy to be used with the -Pluggable File System, -which presents network storage devices as UNIX file systems. -You are welcome to use it for other purposes, according to the terms -set out in the GNU Library General Public License. - - -

    Installation

    - -Download the FTP-Lite source package from the -web page. -Unpack the archive like so: - -% gunzip ftp_lite-0.0.tar.gz -% tar xvf ftp_lite-0.0.tar - - -Decide on a place to install FTP-Lite. -If you have the Globus and SSL libraries, figure out where they are installed, -and feed the information to configure: - -% cd ftp_lite-0.0 -% ./configure --prefix /install/dir --with-globus-path /path/to/globus --with-ssl-path /path/to/ssl - - -(At UW-Madison, the appropriate invocation would be:) - -% cd ftp_lite-0.0 -% ./configure --prefix ~/ftp_lite --with-globus-path /p/condor/workspaces/globus --with-ssl-path /p/condor/workspaces/ssl - - -Finally, build and install the library: - -% make -% make install - - -To build a program using FTP-Lite, change your compile and link options like so: - -CCFLAGS += -I/install/dir/include -LDFLAGS += -L/install/dir/lib -lftp_lite - - - -

    Examples

    - -

    -For examples of using the library, we recommend that you begin by examining the code for the simple programs ftp_lite_test and ftp_lite_copy. A complete description of every function may be found in the reference section below. Here is a brief example to get you started. -

    -A program using the library must first include ftp_lite.h: -#include "ftp_lite.h" -To open a server, ftp_lite_open with a server name, port number, and a stream on which to send debugging messages. For no debugging, leave the third argument null. On success, this function returns a pointer to a server. -struct ftp_server *s; - -s = ftp_lite_open( "ftp.cs.wisc.edu", FTP_LITE_DEFAULT_PORT, stderr ); -if(!s) { - perror("couldn't open server"); - return 0; -} - -You must authenticate yourself to the server before accessing any data. Three sorts of authentication are currently provided: anonymous, userpass, and Globus. For example, to authenticate with a username and password: -success = ftp_lite_auth_userpass(server,"fred","secret"); -if(!success) { - perror("couldn't log in"); - return 0; -} - -For convenience, FTP-Lite provides a single procedure which tries the various authentication methods, possible requesting information from the console. Most users will find it easiest to replace the above two steps with : -s = ftp_lite_open_and_auth( "ftp.cs.wisc.edu", stderr ); -if(!s) { - perror("couldn't open server"); - return 0; -} - -To retrieve a file, ftp_lite_get with the server pointer, a path name, and the offset at which to begin. On success, it returns a FILE object. -FILE *f; - -f = ftp_lite_get( s, "README", 0 ); -if(!f) { - perror("couldn't get file"); - return 0; -} - -You may read from this stream pointer using any of the standard UNIX I/O operations, such as fscanf, fread, and so on. For convenience, FTP-Lite provides a function ftp_lite_stream_to_stream that will copy one whole file pointer into another. So, to display this file, you might do this: -length = ftp_lite_stream_to_stream( f, stdout ); -if(length<0) { - perror("couldn't transfer data"); - return 0; -} - -When done reading data, you must close the stream and inform the server that you are done: -fclose(f); -ftp_lite_done(s); - -To close the connection to the server completely: -ftp_lite_close(s); - - -

    Reference

    - -

    -This section lists all of the public functions in the FTP-Lite library. -

    -Unless noted otherwise, all functions return true (non-zero) on success or false (zero) on failure. In addition, every function sets errno appropriately on a failure. Tools for handling error values can be found in the UNIX man pages for errno, strerror, and perror. Nearly every error value is a possible result of any function. -

    -Some error values are inacurrate, due to weaknesses in the FTP protocol itself. For example, the FTP error 550 is represented as the errno EEXIST. However, a brief poll of servers shows that many return the same error value for errors that should be distinct, such as "no such file", and "file already exists." So, be careful. -

    -If the library is returning unexpected results, we recommend that you debug the code by passing stderr as the debugging argument to ftp_lite_open. This will show a low of events in the protocol, and is invaluable in revealing unexpected events. -

    -So, here are the procedures in the library: -

    -
  • ftp_lite_auth_anonymous -int ftp_lite_auth_anonymous( struct ftp_lite_server *s ); -Attempt to log in anonymously to an already-opened server. -
  • ftp_lite_auth_globus -int ftp_lite_auth_globus( struct ftp_lite_server *s ); -Attempt to log in with Globus credentials to an already-opened server. -The er must have already established a proxy certificate with grid-proxy-init or a similar tool. -
  • ftp_lite_auth_userpass -int ftp_lite_auth_userpass( struct ftp_lite_server *s, const char *user, const char *password ); -Attempt to log in with this name and password. This mechanism sends names and passwords in the clear and should be deprecated in favor of Globus authentication. - -
  • ftp_lite_change_dir -int ftp_lite_change_dir( struct ftp_lite_server *s, const char *dir ); -Change the current working directory to that given. - -
  • ftp_lite_close -void ftp_lite_close( struct ftp_lite_server *server ); -Close this open server. Once a connection is closed, the server pointer is no longer valid. - -
  • ftp_lite_delete int -int ftp_lite_delete( struct ftp_lite_server *s, const char *path ); -Delete a file. - -
  • ftp_lite_delete_dir -int ftp_lite_delete_dir( struct ftp_lite_server *s, const char *dir ); -Delete a directory. Most servers will not permit the deletion of a directory that is not empty. - -
  • ftp_lite_done -int ftp_lite_done( struct ftp_lite_server *s ); -Signal that a data transfer is complete. This must be ed before any other functions are invoked. - -
  • ftp_lite_get -FILE * ftp_lite_get( struct ftp_lite_server *s, const char *path, off_t offset ); -Retrieve a file beginning from this offset. On success, returns a stream pointer. On failure, returns null. After reading to the end of the stream, you must fclose and ftp_lite_done. - -
  • ftp_lite_list -FILE * ftp_lite_list( struct ftp_lite_server *s, const char *path ); -Retrieve the list of names contained in this directory. On success, return a stream pointer which will provide the list of newline-terminated names. On failure, returns null. After reading to the end of the stream, you must fclose and ftp_lite_done. - -
  • ftp_lite_login -int ftp_lite_login( const char *prompt, char *name, int namelen, char *pass, int passlen ); -Display a prompt on the console and ask the user to enter a name and password. name and pass are filled in up to the lengths given. - -
  • ftp_lite_make_dir -int ftp_lite_make_dir( struct ftp_lite_server *s, const char *dir ); -Create a directory. - -
  • ftp_lite_nop -int ftp_lite_nop( struct ftp_lite_server *s ); -Send a no-operation command to the server. This command is useful for determining if a connection is still alive. - -
  • ftp_lite_open -struct ftp_lite_server * ftp_lite_open( const char *host, int port, FILE *log ); -Connect to a server on the given host and port. The third argument gives a stream which is used for debugging information. On success, return an opaque pointer to a server. On failure, return null. The appropriate port depends on the authentication method to be used. For Globus authentication, connect to FTP_LITE_GSS_DEFAULT_PORT. For anonymous and userpass authentication, connect to FTP_LITE_DEFAULT_PORT. - -
  • ftp_lite_open_and_auth -struct ftp_lite_server * ftp_lite_open_and_auth( const char *host, FILE *log ); -Connect to a server, but try all available ports and authentication methods. The second argument gives a stream to be used for debugging. On success, return an opaque pointer to a server. On failure, return null. - -
  • ftp_lite_put -FILE * ftp_lite_put( struct ftp_lite_server *s, const char *path, off_t offset, size_t size ); -Transmit a file to a server. On success, returns a stream to be written to. On failure, returns null. After writing all data to the stream, you must fclose and ftp_lite_done. offset controls the point at which writing will begin in the target file. If size is FTP_LITE_WHOLE_FILE, then the target file will be truncated when the stream is closed. A variety of FTP commands may be used to implement a put, and not all severs will support all combinations of offset and size. - -
  • ftp_lite_rename -int ftp_lite_rename( struct ftp_lite_server *s, const char *oldname, const char *newname ); -Move the file oldname in newname. - -
  • ftp_lite_size -size_t ftp_lite_size( struct ftp_lite_server *s, const char *path ); -Return the number of bytes stored in this file. On failure, returns -1. - -
  • ftp_lite_stream_to_buffer -int ftp_lite_stream_to_buffer( FILE *input, char **buffer ); -Copy the contents of this stream into a memory buffer. On success, returns the number of bytes copied. On failure, returns -1. input must be a stream opened for reading, and buffer must be a pointer to an uninitialized char *. Space for the buffer will be allocated with malloc. The er becomes responsible for freeing the buffer when done. - -
  • ftp_lite_stream_to_stream -int ftp_lite_stream_to_stream( FILE *input, FILE *output ); -Copy the contents of one stream into another. On success, returns the number of bytes copied. On failure, returns -1. - -
  • ftp_lite_third_party_transfer -int ftp_lite_third_party_transfer( struct ftp_lite_server *source, const char *source_file, struct ftp_lite_server *target, const char *target_file ); -Performs a third-party transfer between two servers. Each server must already be opened and authenticated. There are a large number of reasons for which a third party transfer might fail. We recommend you use this feature with the debugging stream enabled. - -
  • - -
    - - diff -Nru cctools-7.0.22/doc/ftsh.html cctools-7.1.2/doc/ftsh.html --- cctools-7.0.22/doc/ftsh.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/ftsh.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,680 +0,0 @@ - - - - - - -Fault-Tolerant Shell (ftsh) Technical Manual - - - - -
    - -

    Fault-Tolerant Shell (ftsh) Technical Manual

    - -

    Last edited: 27 August 2004

    - -

    The Fault Tolerant Shell (ftsh) is Copyright (c) 2003-2004 Douglas Thain and -Copyright (c) 2005 The University of Notre Dame. All rights reserved. This -software is distributed under the GNU General Public License. Please see the -file COPYING for details.

    - -

    Please use the following citation for FTSH:

    - - - -

    Introduction

    - -

    Shell scripts are a vital tool for integrating software. -They are indispensable for rapid prototyping and system assembly. -Yet, they are extraordinarily sensitive to errors. -A missing file, a broken network, or a sick file server can -cause a script to barrel through its actions with surprising results. -It is possible to write error-safe scripts, -but only with extraordinary discipline and complexity. -

    -The Fault Tolerant Shell (ftsh) aims to solve this problem -by combining the ease of scripting with precise error semantics. -Ftsh is a balance between the flexibility and power of script languages -and the precision of most compiled languages. Ftsh parses complete -programs in order to eliminate run-time errors. -An exception-like structure allows scripts to be both succinct and safe. -A focus on timed repetition simplifies the most common form of -recovery in a distributed system. A carefully-vetted set of language -features limits the "surprises" that haunt system programmers. -

    -As an example, consider this innocuous script written in Bourne Shell: -#!/bin/sh - -cd /work/foo -rm -rf bar -cp -r /fresh/data . - -Suppose that the /work filesystem is temporarily unavailable, -perhaps due to an NFS failure. -The cd command will fail and print a message on the console. -The shell will ignore this error result -- it is primarily designed -as a user interface tool -- and proceed to execute the rm and -cp in the directory it happened to be before. -

    -Naturally, we may attempt to head off these cases with code that -checks error codes, attempts to recover, and so on. However, -even the disciplined programmer that leaves no value unturned must -admit that this makes shell scripts incomprehensible: -#!/bin/sh - -for attempt in 1 2 3 - cd /work/foo - if [ ! $? ] - then - echo "cd failed, trying again..." - sleep 5 - else - break - fi -done - -if [ ! $? ] -then - echo "couldn't cd, giving up..." - return 1 -fi - -And that's just the first line! -

    -If we accept that failure, looping, timeouts, and job cancellation -are fundamental concerns in distributed systems, we may both simplify and -strengthen programs by making them fundamental expressions in a programming -language. These concepts are embodied in the simple try command: -#!/usr/bin/ftsh - -try for 5 minutes every 30 seconds - cd /work/foo - rm -rf bar - cp -r /fresh/data . -end - -

    -Ftsh provides simple structures that encourage explicit acknowledgement -of failure while maintaining the readability of script code. You might -think of this as exceptions for scripts. -

    -Want to learn more? -This document is a short introduction to the fault tolerant shell. -It quickly breezes over the language features in order to get -started. You can learn more about the motivation for the language in -"The Ethernet Approach to Grid Computing", -available from the ftsh web page -For a quick introduction, read on! - - -

    Basics

    - -

    Simple Commands

    - -An ftsh program is built up from simple commands. -A simple command names a program to be executed, just sh or csh. -The command is separated from its arguments by whitespaces. -Quotation marks may be used to escape whitespace. For example: -ls -l /etc/hosts -or: -cat /etc/passwd -or: -cp "This File" "That File" -

    -As you may know, a command (a UNIX process) returns an integer known -as its "exit code." Convention dictates that an exit code of zero -indicates success while any other number indicates failure. Languages -tend to differ in their mapping of integers to success or failure, so -from here on, we will simply use the abstract terms "success" and "failure." -

    -A command may also fail in a variety of other ways without returning an -exit code. It may be killed by a signal, or it may fail to start -altogether if the program does not exist or its image cannot be loaded. -These cases are also considered failures. - -

    Groups

    - -A "group" is simply a list of commands. -Each command only runs if the previous command succeeded. -Let's return our first example: -#!/usr/bin/ftsh - -cd /work/foo -rm -rf bar -cp -r /fresh/data . - -This group succeeds only if every command in the group succeeds. -So, if cd fails, then the whole group fails and no further commands -are executed. -

    -This is called the "brittle" property of ftsh. If anything goes wrong, -then processing stops instantly. When something goes wrong, you will -know it, and the program will not "run away" executing more commands blindly. -We will see ways to contain the brittleness of a program below. -

    -Ftsh itself has an exit code. -Ftsh returns the result of the top-level group that makes up the program. -So, if any command in the top-level group fails, then ftsh itself will -fail. If they all succeed, then ftsh succeeds. - -

    Try Statements

    - -A try statement is used to contain and retry group failure. -Here is a simple try statement: -#!/usr/bin/ftsh - -try 5 times - cd /work/foo - rm -rf bar - cp -r /fresh/data . -end - - -The try statement attempts to execute the enclosed group until -the conditions in its header expire. Here, the group will -be attempted five times. Recall that a group fails as soon as any -one command fails. So, if rm fails, then the try statement -will stop and attempt the group again from the beginning. -

    -If the five times are exceeded, then the try statement itself -fails, and (if it is the top-level try-statement) the whole -shell program itself will fail. If you prefer, you may -catch and react to a try statement in a manner similar to -an exception. The failure keyword may be used -to cause a new exception, just like throw in other languages. -try 5 times - cd /work/foo - rm -rf bar - cp -r /fresh/data . -catch - echo "Oops, it failed. Oh well!" - failure -end - -

    -Try statements come in several forms. -They may limit the number of times the group is executed. -For example: -try for 10 times -A try statement may allow an unlimited number of loops, -terminated by a maximum amount of time, given in seconds, -minutes, hours, or days: -try for 45 seconds -Both may be combined, yielding a try statement that stops -when either the loop limit or the time limit expires: -try for 3 days or 100 times -Note that such an statement does not limit the length -of any single attempt to execute the contained group. -If a single command is delayed for three days, the try statement -will wait that long and then kill the command. -To force individual attempts to be shorter, try statements -may be nested. For example: -try for 3 days or 100 times - try for 1 time or 1 minute - /bin/big-simulation - end -end - -Here, big-simulation will be executed for -no more than a minute at a time. Such one-minute attempts -will be tried for up to three days or one hundred attempts -before the outer try statement fails. -

    -By default, ftsh uses an exponential backoff. -If a group fails once, ftsh will wait one second, and then -try again. If it fails again, it will wait 2 seconds, -then 4 seconds, and so on, doubling the waiting time after -each failure, up to a maximum of one hour. -This prevents failures from consuming -excessive resources in fruitless retries. -

    -If you prefer to have the retries occur at regular -intervals (though we don't recommend it) -use the every keyword to control -how frequently errors are retried. For example: -try for 3 days every 1 hour - try for 10 times every 30 seconds - try for 1 minute or 3 times every 15 seconds - -If a time limit expires in the middle of a try statement, then -the currently running command is forcibly cancelled. If an -every clause is used, it merely ensures that each attempt -is at least that long. However, group will not be cancelled -merely to satisfy an every clause. To ensure that a single -loop attempt will be time limited, you may combine two try -statements as above: -try for 3 days or 100 times every 1 minute - try for 1 time or 1 minute - /bin/big-simulation - end -end - -Try statements themselves return either success or failure -in the same way as a simple command. -If the enclosed group finally succeeds, then the try -expression itself succeeds. If the try expression exhausts -its attempts, then the try statement itself fails. -We will make use of this success or failure value in the next section. -

    -Cancelling a process is somewhat more complicated than one might think. -For all the details on how this actually works, see the section -on cancelling processes below. -

    -In (almost) all cases, a try statement absolutely controls -what comes inside of it. There are two ways for a subprogram -to break out of the control of a try. The first is to invoke -exit, which causes the entire ftsh process to exit -immediately with the given exit code. The second is to call -exec, which causes the given process to be run -in place of the current shell process, thus voiding any -surrounding controls. - -

    Redirection

    - -Ftsh uses Bourne shell style I/O redirection. For example: -echo "hello" > outfile -...sends the output hello into the file outfile, -likewise, ftsh supports many of the more arcane redirections -of the Bourne shell, such as the redirection of explicit file descriptors: -grep needle 0<infile 1>outfile 2>errfile -...appending to output files: -grep needle >>outfile 2>>errfile -...redirection to an open file descriptor: -grep needle >outfile 2>&1 -...and redirection of both input and output at once: -grep needle >& out-and-err-file - -

    Variables

    - -Ftsh provides variables similar to that of the Bourne shell. -For example, -name=Douglas -echo "Hello, ${name}!" -echo "Hello, $(name)!" -echo "Hello, $name!" - -Ftsh also allows variables to be the source and target -of redirections. That is, a variable may act as a file! -The benefit of this approach is that ftsh manages the storage -and name space of variables for you. You don't have to worry -about cleaning up or clashing with other programs. -

    -Variable redirection looks just like file redirection, except -a dash is put in front of the redirector. For example, -For example, suppose that we want to capture the output of -grep and then run it through sort: -grep needle /tmp/haystack -> needles -sort -< needles - -This sort of operation takes the place of a pipeline, -which ftsh does not have (yet). However, by using variables -instead of pipelines, different retry conditions may be -placed on each stage of the work: -try for 5 times - grep needle /tmp/haystack -> needles -end -try for 1 hour - sort -< needles -end - -

    -All of the variations on file redirection are available for variable -redirection, including -> and 2-> and ->> -and 2->> and ->& and ->>&. -

    -Like the Bourne shell, several variable names are reserved. -Simple integers are used to refer -to the command line arguments given to ftsh itself. -$$ names the current process. -$# gives the number of arguments passed to the program. -$* gives all of the unquoted current arguments, while -"$@" gives all of the arguments individually quoted. -The shift command can be used to pop off the -first positional argument. -

    -Variables are implemented by creating temporary files and immediately unlinking -them after creation. Thus, no matter how ftsh exits --- even if it crashes -- the kernel deletes buffer space after you. -This prevents both the namespace and garbage -collection problem left by scripts that manually read and write to files. - - -

    Structures

    - -Complex programs are built up by combining basic elements -with programming structures. Ftsh has most of the decision -elements of other programming languages, such as conditionals -and loops. Each of these elements behaves in a very precise way with -respect to successes and failures. - -

    For-Statements

    - -A for-statement executes a command group once for each -word in a list. For example: - -for food in bread wine meatballs - echo "I like ${food}" -end - - -Of course, the list of items may also come from a variable: - -packages="bread.tar.gz wine.tar.gz meatballs.tar.gz" - -for p in ${packages} - echo "Unpacking package ${p}..." - tar xvzf ${p} -end - - -The more interesting variations are forany and forall. -A forany attempts to make a group succeed once for any of the options given -in the header, chosen randomly. After the for-statement has run, the branch that -succeeds in made available through the control variable: -hosts="mirror1.wisc.edu mirror2.wisc.edu mirror3.wisc.edu" -forany h in ${hosts} - echo "Attempting host ${host}" - wget http://${h}/some-file -end -echo "Got file from ${h}" - - -A forall attempts to make a group succeed for all of the options -given in the header, simultaneously: -forall h in ${hosts} - ssh ${h} reboot -end - - -Both for and forall are brittle with respect to failures. -If any instance fails, then the entire for-statement -fails. A try-statement may be added in one of two ways. -If you wish to make each iteration resilient, place -the try-statement inside the for-statement: - -for p in ${packages} - try for 1 hour every 5 minutes - echo "Unpacking package ${p}..." - tar xvzf ${p} - end -end - - -Or, if you wish to make the entire for-statement -restart after a failure, place it outside: - -try for 1 hour every 5 minutes - for p in ${packages} - echo "Unpacking package ${p}..." - tar xvzf ${p} - end -end - - -

    Loops, Conditionals, and Expressions

    - -Ftsh has loops and conditionals similar to other languages. -For example: -n=0 -while $n .lt. 10 - echo "n is now ${n}" - n=$n .add. 1 -end - -And: -if $n .lt. 1000 - echo "n is less than 1000" -else if $n .eq. 1000 - echo "n is equal to 1000" -else - echo "n is greater than 1000" -end - - -You'll notice right away that arithmetic expressions look a little -different than other languages. -Here's how it works: -

    -The arithmetic operators .add. .sub. .mul. .div. .mod. .pow. -represent addition, subtraction, multiplication, division, modulus, -and exponentiation, including parenthesis and the usual order -of operations. For example: -a=$x .mul. ( $y .add. $z ) -The comparison operators .eq. .ne. .le. .lt. .ge. .gt -represent equal, not-equal, less-than-or-equal, less-than, -greater-than-or-equal, and greater-than. These return -the literal strings "true" and "false". -uname -s -> n -if $n .ne. Linux - ... -end - -For integer comparison, use the operators .eql. and .neql.. -if $x .eql. 5 - ... -end - -The Boolean operators .and. .or .not. have the usual meaning. -An exception is thrown if they are given arguments that are -not the boolean strings "true" or "false". -while ( $x .lt. 10 ) .and. ( $y .gt. 20 ) - ... -end - -The unary file operators .exists. .isr. .isw. .isx. test whether -a filename exists, is readable, writeable, or executable, respectively. -The similar operators .isfile. .isdir. .issock. .isfile. .isblock. .ischar. -test for the type of a named file. -All these operators throw exceptions if the named file is unavailable -for examination. -f=/etc/passwd -if ( .isfile. $f ) .and. ( .isr. $f ) - ... -end - -Finally, the .to. and .step. operators are conveniences for generating -numeric lists to be used with for-loops: -forall x in 1 .to. 100 - ssh c$x reboot -end - -for x in 1 .to. 100 .step. 5 - y=$x .mul. $x - echo "$x times $x is $y" -end - - -Notice that, unlike other shells, there is a distinction -between expressions, which compute a value or throw an -exception, and external commands, which return no value. -Therefore, you cannot do this: -# !!! This is wrong !!! -if rm $f - echo "Removed $f" -else - echo "Couldn't remove $f" -end - -Instead, you want this: -try - rm $f - echo "Removed $f" -catch - echo "Couldn't remove $f" -end - - -

    Functions

    - -Simple functions are named groups of commands that may -be called in the same manner as an external program. -The arguments passed to the function are available -in the same way as arguments to the shell: - -function compress_and_move - echo "Working on ${1}..." - gzip ${1} - mv ${1}.gz ${2} -end - -compress_and_move /etc/hosts /tmp/hosts.gz -compress_and_move /etc/passwd /tmp/passwd.gz -compress_and_move /usr/dict/words /tmp/dict.gz - - -A function may also be used to compute and return -a value: - -function fib - if $1 .le. 1 - return 1 - else - return fib($1 .sub. 1) .add. fib($1 .sub. 2) - end -end - -value=fib(100) -echo $value - - -Functions, like groups, are brittle with respect -to failures. A failure inside a function causes -the entire function to stop and fail immediately. -As in most languages, functions may be both nested -and recursive. However, ftsh aborts recursive -function calls deeper than 1000 steps. -If a function is used in an expression but does not -return a value, then the expression evaluation fails. - - -

    Miscellaneous Features

    - -

    Environment

    -Variables may be exported into the environment, just like the Bourne shell: -PATH="/usr/bin:/usr/local/bin" -export PATH - - -

    Nested Shells

    - -Ftsh is perfectly safe to nest. -That is, an ftsh script may safely call other scripts written in ftsh. -One ftsh passes all of its options to sub-shells using environment -variables, so logs, error settings, and timeouts are uniform from -top to bottom. If a sub-shell provides its own arguments, these -override the environment settings of the parent. - -

    Error Logging

    - -Ftsh may optionally keep a log that describes all the details -of a script's execution. The -f option specifies a log file. -Logs are open for appending, so parallel and sub-shells may -share the same log. The time, process number, script, and -line number are all recorded with every event. -

    -Note: Logs shared between processes must not be recorded in NFS or AFS filesystems. -NFS is not designed to support shared appending: your logs -will be corrupted sooner or later. AFS is not designed to support -simultaneous write sharing of a file: you will end up with the -log of one process or another, but not both. These are deliberate -design limitations of these filesystems and are not bugs in -UNIX or ftsh. - -

    -The amount of detail kept in a log -is controled with the -l option. These logging -levels are currently defined: -

      -
    • 0 - Nothing is logged. -
    • 10 - Display failed commands and structures. -
    • 20 - Display executed commands and their exit codes. -
    • 30 - Display structural elements such as TRY and IF-THEN. -
    • 40 - Display process activities such as signals and completions. -
    - -

    Command-Line Arguments

    -Ftsh accepts the following command-line arguments: -
      -
    • -f <file> The name of a log file for tracing the -execution of a script. This log file is opened in append mode. -Equivalent to the environment variable FTSH_LOG_FILE. -
    • -l <level> The logging level, on a scale of 0 to 100. -Higher numbers log more data about a script. -Equivalent to the environment variable FTSH_LOG_LEVEL. -
    • -k <mode> - Controls whether ftsh trusts the operating -system to actually kill a process. If set to 'weak', ftsh will assume -that processes die without checking. If set to 'strong', ftsh will issue -SIGKILL repeatedly until a process actually dies. -Equivalent to the environment variable FTSH_KILL_MODE. -
    • -t <secs> - The amount of time ftsh will wait -between requesting a process to exit (SIGTERM) and killing it forcibly (SIGKILL). -Equivalent to the environment variable FTSH_KILL_TIMEOUT. -
    • -p Parse, but do not execute the script. This option may be used to test the validity of an Ftsh script. -
    • -v Show the version of ftsh. -
    • -h Show the help screen. -
    - -

    Cancelling Processes

    - -Cancelling a running process in UNIX is rather quite complex. -Although starting and stopping one single process is fairly -easy, there are several complications to manging a tree of -processes, as well as dealing with the various failures that -can occur in the transmission of a signal. -

    -Ftsh can clean up any set of processes that it starts, -given the following restrictions: -

    -
  • Your programs must not create a new UNIX "process session" -with the setsid() system call. If you don't know what -this is, then don't worry about it. -
  • The operating system must actually kill a process when -ftsh asks it to. Some variants of Linux won't kill processes -using distributed file systems. Consider using the "weak" mode -of ftsh. -
  • Rogue system administrators must not forcibly kill -an ftsh with a SIGKILL. However, you may safely send a SIGTERM, SIGHUP, -SIGINT, or SIGQUIT to an ftsh, and it will clean up its children and exit. -
  • -

    -Ftsh starts every command as a separate UNIX process in its -own process session (i.e. setsid). -This simplifies the administration of -large process tress. To cancel a command, ftsh sends a SIGTERM -to every process in the group. Ftsh then waits up to -thirty seconds for the child to exit willingly. At the end of -that time, it forcibly terminates the entire process group -with a SIGKILL. -

    -Surprisingly, SIGKILL is not always effective. -Some operating systems have bugs in which signals -are occasionally lost or the process may be in such -a state that it cannot be killed at all. -By default, ftsh tries very hard to kill processes -by issuing SIGKILL repeatedly until the process actually -dies. This is called the "strong" kill mode. -If you do not wish to have this behavior -- perhaps -you have a bug resulting in unkillable processes -- -then you may run ftsh in the "weak" kill mode, using -the "-k weak" option. -

    -Ftsh may be safely nested. That is, an ftsh may invoke -another program written using ftsh. However, this child -needs to clean up faster than its parents. If the parent -shell issues forcible kills after waiting for 30 seconds, -then the child must issue forcible kills before that. -This problem is handled transparently for you. -Each ftsh informs its children of the current kill timeout -by setting the FTSH_KILL_TIMEOUT variable to five seconds -less than the current timeout. Thus, subshells are progressively -less tolerant of programs that refuse to exit cleanly. - -


    - -
    - - diff -Nru cctools-7.0.22/doc/.gitignore cctools-7.1.2/doc/.gitignore --- cctools-7.0.22/doc/.gitignore 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/.gitignore 2020-05-05 15:31:15.000000000 +0000 @@ -1,2 +1,3 @@ api pod2htm*.tmp +mkdocs-site/ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/confuga.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/confuga.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/umbrella-archive-sandbox-cache.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/umbrella-archive-sandbox-cache.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/Umbrella.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/Umbrella.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/umbrella-povray.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/umbrella-povray.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/umbrella-specification-big-picture.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/umbrella-specification-big-picture.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/wavefront_large.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/wavefront_large.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/wavefront_progress1.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/wavefront_progress1.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/wavefront_progress2.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/wavefront_progress2.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/wavefront_progress3.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/wavefront_progress3.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/wavefront_progress4.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/wavefront_progress4.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/wavefront_progress5.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/wavefront_progress5.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/wavefront_progress6.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/wavefront_progress6.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/wavefront_progress.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/wavefront_progress.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/images/wavefront_small.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/images/wavefront_small.gif differ diff -Nru cctools-7.0.22/doc/index.html cctools-7.1.2/doc/index.html --- cctools-7.0.22/doc/index.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,162 +0,0 @@ - - - - - - - - Cooperative Computing Tools Documentation - - - - - -
    - -

    Cooperative Computing Tools Documentation

    - - - - - - - - - - - - - - - - - -
    -Installation Instructions -

    -API Documentation - -

    - Makeflow User's Manual - - JX Workflow Language
    - -
    - Work Queue User's Manual - - Resource Monitor Manual - - - All Pairs User's Manual - - - Wavefront User's Manual - - - Catalog Server User's Manual - -
    - Parrot User's Manual - - - Chirp User's Manual - - Confuga User's Manual - - - SAND User's Manual - -

    - Networking Options -

    - -
    - -
    - - diff -Nru cctools-7.0.22/doc/install.html cctools-7.1.2/doc/install.html --- cctools-7.0.22/doc/install.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/install.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,160 +0,0 @@ - - - - - - -Installing the Cooperative Computing Tools - - - - -
    -

    Installing the Cooperative Computing Tools

    - -

    -The Cooperative Computing Tools are Copyright (C) 2003-2004 Douglas Thain
    -and Copyright (C) 2005- The University of Notre Dame.
    -All rights reserved.
    -This software is distributed under the GNU General Public License.
    -See the file COPYING for details. -

    - -

    Overview

    - -

    -The Cooperative Computing Tools (cctools) are a collection of programs -that enable large scale distributed computing on systems such as -clusters, clouds, and grids. These tools are commonly used in fields -of science and engineering that rely on large amounts of computing. -

    - -

    Install from Binary Tarball

    - -

    -Binary packages are available for several operating systems at the -download page -Simply unpack the tarball in any directory that you like, -and then add the bin directory to your path. -For example, to install cctools for RHEL7 in your home directory: -

    - -# replace VERSION with a version number found in the download page. -CCTOOLS_NAME=cctools-VERSION-x86_64-redhat7 -cd $HOME -wget http://ccl.cse.nd.edu/software/files/${CCTOOLS_NAME}.tar.gz -tar zxvf ${CCTOOLS_NAME}.tar.gz -export PATH=$HOME/${CCTOOLS_NAME}/bin:$PATH - - -

    Install From Source Tarball

    - -

    -Download a source package from the download page. -And follow this recipe while logged in as any ordinary user: -

    - -# replace VERSION with a version number found in the download page. -CCTOOLS_NAME=cctools-VERSION-source -wget http://ccl.cse.nd.edu/software/files/${CCTOOLS_NAME}.tar.gz -tar zxvf ${CCTOOLS_NAME}.tar.gz -cd ${CCTOOLS_NAME} -./configure -make -make install -export PATH=${HOME}/cctools/bin:$PATH - - -

    Install From Git Repository

    - -

    -Or, you can directly build the latest version from our git repository: -

    - -git clone https://github.com/cooperative-computing-lab/cctools cctools-source -cd cctools-source -./configure -make -make install -export PATH=${HOME}/cctools/bin:$PATH - - -

    Special Cases

    - -

    -The software will happily build and run without installing -any external packages. Optionally, the cctools will interoperate -with a variety of external packages for security and data access. -To use these, you must download and install them separately: -

    - - -
  • iRODS (version 4.0.3) -
  • Globus (version 5.0.3) -
  • FUSE -
  • Hadoop -
  • xRootD -
  • - -

    -Once the desired packages are correctly installed, unpack the cctools and -then issue a configure command that points to all of the other -installations. Then, make and install as before. For example: -

    - -./configure --with-globus-path /usr/local/globus ... -make -make install -export PATH=${HOME}/cctools/bin:$PATH - - -

    -Building Parrot with support for the iRODS service requires -some custom build instructions, since Parrot requires access -to some internals of iRODS that are not usually available. -To do this, first make a source build of iRODS in your home directory: -

    - -cd $HOME -git clone https://github.com/irods/irods-source -cd irods-source -git checkout 4.0.3 -packaging/build.sh --run-in-place icommands - - -

    -Then, configure and build cctools relative to that installation: -

    - -git clone https://github.com/cooperative-computing-lab/cctools cctools-source -cd cctools-source -./configure --with-irods-path $HOME/irods-src ... -make -make install - - -

    Build on Mac OSX

    - -

    -In order to build CCTools on Mac OS X -you must first have the Xcode Command Line Tools installed. -For OS X 10.9 and later this can be done using the following command: -

    - -xcode-select --install - - -

    -Then, click "Install" in the window that appears on the screen. -If the command line tools are already installed, -you will get an error and can proceed -with the instructions in the -"Installing From Source" section above. -For OS X versions before 10.9, -you will need to first install Xcode. -Xcode can be found in the App Store or on the installation disk. -

    - -
    - - diff -Nru cctools-7.0.22/doc/jx.html cctools-7.1.2/doc/jx.html --- cctools-7.0.22/doc/jx.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/jx.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,633 +0,0 @@ - - - - - - -JX Reference Manual - - - - - -
    -

    JX Reference Manual

    - -
    -

    -Makeflow | JX Tutorial | JX Quick Reference | JX Full Reference -

    -
    - -

    Overview

    - -

    Makeflow allows for workflows to be expressed in pure JSON or in an extended language known as JX which can be evaluated to produce pure JSON. This document provides the detailed reference for this language. If you are just getting started, see the JX Tutorial before reading this reference manual.

    - -

    JSON Workflow Representation

    - -

    Workflow

    - -

    A workflow is encoded as a JSON object with the following keys:

    - - -{ - "rules": [ ... ] - "define": { ... } - "environment": { ... } - "categories": { ... } - "default_category": <string> -} - - -

    Required: rules is an unordered collection of rules comprising the workflow. -Each entry corresponds to a single job to be executed in the workflow, described below.

    - -

    Optional: The categories object defines the categories of related rules, described below.

    - -

    Optional: default_category is the name of the category used if none is specified for a rule. -If not provided, the default category is "default". -This string value SHOULD match one of the keys of the "categories" object. -If there is no corresponding category defined, default values will be filled in.

    - -

    "environment" specifies environment variables to be set when executing all rules, described below

    - -

    Rules

    - -

    A Rule is encoded as a JSON object with the following keys.

    - - { - "command" : <string> - "inputs" : [ ... ] - "outputs" : [ ... ] - "local_job" : <boolean> - "environment" : { ... } - "category" : <string> - "resources" : { ... } - "allocation" : <string> -} - - -

    Required: The command string gives the Unix command to execute to carry out the job.

    - -

    Required: The inputs and outputs arrays list the files required and produced by the command. -These arrays must be an accurate description of the actual behavior of the command, otherwise the workflow -cannot operate correctly. Each entry in the array is described in the Files section below.

    - -

    Optional: local_job, if true indicates that the job is best run locally -by the workflow manager, rather than dispatched to a distributed system. This is a performance -hint provided by the end user and not a functional requirement.

    - -

    Optional: category specifies the name of a job category. -The name given should correspond to the key of a category object in the global workflow object.

    - -

    Optional: resources specifies the specific resource requirements of this job, described below.

    - -

    Optional: allocation specifies the resource allocation policy: -

      -
    • first computes the best "first allocation" based on the prior history of jobs in this category. -
    • max selects the maximum resources observed by any job in this category. -
    • error attempts to execute the job and increases the resources offered if an error results. -
    - -

    Optional: environment specifies environment variables, described below.

    - -

    Files

    - -

    A file is encoded as either a JSON string or a JSON object. If a file is given -simply as a string, then the string gives the name of the file in all contexts. -For example:

    - -"output.txt" - - -

    If a file is given as an object, then it the object describes the (possibly different) -names of the file in the DAG (workflow) context and the task context. The file -will be renamed as needed when dispatched from the workflow to the task, and vice versa. -For example: -

    - - { - "dag_name" : "output.5.txt", - "task_name" : "output.txt" -} - - -

    Categories

    - -

    A Category is encoded as a JSON object with the following keys:

    - -{ - "environment" : { ... } - "resources" : { ... } -} - - -

    The category describes the environment variables and resource consumption -all of rules that share that category name.

    - -

    Environments

    - -

    Environments are encoded as a JSON object where each key/value pair -describes the name and value of a Unix environment variable. -An enviroment may be given at the global workflow level, in a category -description, or in an individual job, where it applies to the corresponding object. -If the same environment variable appears in multiple places, then the job -value overrides the category value, and the category value overrides the global value.

    - -

    Resources

    - -

    Resources are encoded as a JSON object with the following keys:

    - -{ - "cores" : <integer>, - "memory" : <integer>, - "disk" : <integer>, - "wall-time" : <integer>, - "gpus" : <integer> -} - - -

    A resource specification may appear in an individual job or in a category description. "cores" and "gpus" give the number of CPU cores and GPUs, respectively, required to execute a rule. "disk" gives the disk space required, in MB. "memory" gives the RAM required, in MB.

    "wall-time" specifies the maximum allowed running time, in seconds. - -

    JX Expressions

    - - -

    -JX is a superset of JSON with additional syntax for dynamically generating data. -The use case in mind when designing JX was writing job descriptions for a workflow manager accepting JSON input. -For workflows with a large number of rules with similar structure, -it is sometimes necessary to write a script in another language like Python to generate the JSON output. -It would be desirable to have a special-purpose language that can dynamically generate rules while still bearing a resemblance to JSON, -and more importantly, still being readable. -JX is much lighter than a full-featured language like Python or JavaScript, -and is suited to embedding in other systems like a workflow manager. -

    - -

    -Standard JSON syntax is supported, with some additions from Python. -JX allows for expressions using Python's basic operators. -These include the usual arithmetic, comparison, and logical operators (e.g. +, <=, and, etc.). -JX also includes Python's range() function for generating sequences of numbers. -

    - -
    "123" + 4
    -=> Error{"source":"jx_eval","name":"mismatched types","message":"mismatched types for operator","operator":"123"+4,"code":2}
    -
    -"123" + "4"
    -=> "1234"
    -
    -123 + 4
    -=> 127
    -
    - -Evaluation will produce plain JSON types from JX, -assuming the evaluation succeeded. -If an error occurs, evaluation stops and an error is returned to the caller. -Error objects can include additional information indicating where the failure occurred and what the cause was. -Details on the syntax and usage of Errors is given in a following section. -If a non-error type is returned, then evaluation succeeded and the result contains only plain JSON types. -JX expressions are evaluated in a context, -which is an object mapping names to arbitrary JX values. -On evaluating a variable, the variable's name is looked up in the current context. -If found, the value from the context is substituted in place of the variable. -If the variable is not found in the context, an error is returned. -

    - -

    JX supports comments, introduced by the # character and continuing for the rest of the line.

    - -

    Unary Operators

    - -

    Logical Complement

    - -
    -
    not Boolean -> Boolean
    -
    -
    - -

    Computes the logical NOT of the given boolean. Unlike C, integers may not be used as truth values.

    - -

    Negation

    - -
    -
    -A -> A
    -
    - -

    where A = Integer|Double

    -
    - -

    Computes the additive inverse of its operand.

    - -

    Positive Prefix

    - -
    -
    +A -> A
    -
    - -

    where A = Integer|Double|String

    -
    - -

    Returns its operand unmodified.

    - -

    Binary Operators

    - -

    -For complicated expressions, parentheses may be used as grouping symbols. -JX does not allow tuples. -In the absence of parentheses, -operators are evaluated left to right in order of precedence. From highest to lowest precedence,

    - -
      -
    • lookup, function call
    • -
    • *, %, /
    • -
    • +, -
    • -
    • ==, !=, <, <=, >, >=
    • -
    • not
    • -
    • and
    • -
    • or
    • -
    - -

    Lookup

    - -
    -
    A[B] -> C
    -
    - -

    where A,B = Array,Integer or A,B = Object,String

    -
    - -

    -Gets the item at the given index/key in a collection type. -A negative index into an array is taken as the offset from the tail end. -

    - -

    -Arrays also support slicing, with the index is given as N:M -where N and M are optional values that evaluate to integers. -If either is absent, the beginning/end of the array is used. -This slice syntax is based on Python's. - -

    range(10)
    -= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    -
    -range(10)[:3]
    -= [0, 1, 2]
    -
    -range(10)[4:]
    -= [4, 5, 6, 7, 8, 9]
    -
    -range(10)[3:7]
    -= [3, 4, 5, 6]
    -
    -

    - -

    Addition

    - -
    -
    A + A -> A
    -
    - -

    where A = Integer|Double|String|Array

    -
    - -

    The behaviour of the addition operator depends on the type of its operands.

    - -
      -
    • Integer, Double: sum
    • -
    • String, Array: concatenation
    • -
    - -

    Subtraction

    - -
    -
    A - A -> A
    -
    - -

    where A = Integer|Double

    -
    - -

    Computes the difference of its operands.

    - -

    Multiplication

    - -
    -
    A * A -> A
    -
    - -

    where A = Integer|Double

    -
    - -

    Computes the product of its operands.

    - -

    Division

    - -
    -
    A / A -> A
    -
    - -

    where A = Integer|Double

    -
    - -

    Computes the quotient of its operands. -Division by zero is an error.

    - -

    Modulo

    - -
    -
    A % A -> A
    -
    - -

    where A = Integer|Double

    -
    - -

    Computes the modulus of its operands. -Division by zero is an error.

    - -

    Conjunction

    - -
    -
    Boolean and Boolean -> Boolean
    -
    -
    - -

    Computes the logical conjunction of its operands.

    - -

    Disjunction

    - -
    -
    Boolean or Boolean -> Boolean
    -
    -
    - -

    Computes the logical disjunction of its operands.

    - -

    Equality

    - -
    -
    A == B -> Boolean
    -
    - -

    where A,B = Null|Boolean|Integer|Double|String|Array

    -
    - -

    Returns true iff its operands have the same value. All instances of null are considered to be equal. For arrays and objects, equality is checked recursively. Note that if x and y are of incompatible types, x == y returns false.

    - -

    Inequality

    - -
    -
    A != B -> Boolean
    -
    - -

    where A,B = Null|Boolean|Integer|Double|String|Array

    -
    - -

    Returns true iff its operands have different values. All instances of null are considered to be equal. For arrays and objects, equality is checked recursively. Note that if x and y are of incompatible types, x != y returns true.

    - -

    Less than

    - -
    -
    A < A -> Boolean
    -
    - -

    where A = Integer|Double|String

    -
    - -

    The behaviour of the less than operator depends on the type of its arguments.

    - -
      -
    • Integer, Double: compares its operands numerically
    • -
    • String: compares its operands in lexicographical order (as given by strcmp(3))
    • -
    - -

    Less than or equal to

    - -
    -
    A <= A -> Boolean
    -
    - -

    where A = Integer|Double|String

    -
    - -

    The behaviour of the less than or equal to operator depends on the type of its arguments.

    - -
      -
    • Integer, Double: compares its operands numerically
    • -
    • String: compares its operands in lexicographical order (as given by strcmp(3))
    • -
    - -

    Greater than

    - -
    -
    A > A -> Boolean
    -
    - -

    where A = Integer|Double|String

    -
    - -

    The behaviour of the greater than operator depends on the type of its arguments.

    - -
      -
    • Integer, Double: compares its operands numerically
    • -
    • String: compares its operands in lexicographical order (as given by strcmp(3))
    • -
    - -

    Greater than or equal to

    - -
    -
    A >= A -> Boolean
    -
    - -

    where A = Integer|Double|String and B = Boolean

    -
    - -

    The behaviour of the greater than or equal to operator depends on the type of its arguments.

    - -
      -
    • Integer, Double: compares its operands numerically
    • -
    • String: compares its operands in lexicographical order (as given by strcmp(3))
    • -
    - -

    Functions

    - -
    -
    range(A) -> Array
    -range(A, A[, A]) -> Array
    -
    - -

    where A = Integer

    -
    - -

    Returns an array of integers ranging over the given values. This function is a reimplementation of Python's range function. range has two forms,

    - -
    range(stop)
    -range(start, stop[, step])
    -
    - -

    The first form returns an array of integers from zero to stop (exclusive).

    - -
    range(10)
    -=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    -
    - -

    The second form returns an array of integers ranging from start (inclusive) to stop (exclusive).

    - -
    range(3, 7)
    -=> [3, 4, 5, 6]
    -
    -range(7, 3)
    -=> []
    -
    - -

    The second form also allows an optional third parameter, step. If not given, step defaults to one.

    - -
    range(-1, 10, 2)
    -=> [-1,1,3,5,7,9]
    -
    -range(5,0,-1)
    -=> [5, 4, 3, 2, 1]
    -
    - -

    Calling with step = 0 is an error.

    - -
    -
    format(A, ...) -> String
    -
    - -

    where A = String

    -
    - -

    -Replaces format specifiers in the given string. -This function is based on C's printf function and provides the following format specifiers. -

      -
    • %d
    • -
    • %i
    • -
    • %e
    • -
    • %E
    • -
    • %f
    • -
    • %F
    • -
    • %g
    • -
    • %G
    • -
    • %s
    • -
    • %%
    • -
    -

    - -
    format("file%d.txt", 10)
    -= "file10.txt"
    -
    -format("SM%s_%d.sam", "10001", 23)
    -= "SM10001_23.sam"
    -
    - -

    -This function serves the same purpose as Python's format operator (%). -Since JX does not include tuples, -it provides a function to allow formatting with multiple fields. -JX's format function could be written in Python as follows. - -

    def format(spec, *args):
    -    return spec % tuple(args)
    -
    -

    - -

    Comprehensions

    - -

    -JX supports list comprehensions for expressing repeated structure. -An entry in a list can be postfixed with one or more for clauses to evaluate the list item once for each entry in the specified list. -A for clause consists of a variable and a list, along with an optional condition. - -

    [x + x for x in ["a", "b", "c"]]
    -= ["aa", "bb", "cc"]
    -
    -[3 * i for i in range(4)]
    -= [0, 3, 6, 9]
    -
    -[i for i in range(10) if i%2 == 0]
    -= [0, 2, 4, 6, 8]
    -
    - -If multiple clauses are specified, -they are evaluated from left to right. - -
    [[i, j] for i in range(5) for j in range(4) if (i + j)%2 == 0]
    -= [[0, 0], [0, 2], [1, 1], [2, 0], [2, 2], [3, 1]]
    -
    -

    - -

    Errors

    - -

    -JX has a special type, Error, to indicate some kind of failure or exceptional condition. -If a function or operator is misapplied, -jx_eval will return an error indicating the cause of the failure. -Errors are akin to Python's exceptions, -but JX does not allow Errors to be caught; -they simply terminate evaluation and report what happened. -Errors do not evaluate in the same way as other types. -The additional information in an error is protected from evaluation, -so calling jx_eval on an Error simply returns a copy. -It is therefore safe to directly include the invalid function/operator in the body of an error. -If a function or operator encounters an error as an argument, -evaluation is aborted and the Error is returned as the result of evaluation. -Thus if an error occurs deeply nested within a structure, -the error will be passed up as the result of the entire evaluation. -Errors are defined using the keyword Error followed by a body enclosed in curly braces. -

    - -
    Error{"source":"jx_eval","name":"undefined symbol","message":"undefined symbol","context":{"outfile":"results","infile":"mydata","a":true,"b":false,"f":0.5,"g":3.14159,"x":10,"y":20,"list":[100,200,300],"object":{"house":"home"}},"symbol":c,"code":0}
    -
    - -

    All errors MUST include some special keys with string values.

    - -
      -
    • "source": indicates where the error comes from, and the structure of the additional data.
    • -
    • "name": the general category of the error, e.g. "syntax error" or "timed out"
    • -
    • "message": some human-readable details about the conditions of the error.
    • -
    - -

    Errors from "jx_eval" have some additional keys, described below, to aid in debugging. Other sources are free to use any structure for their additional error data.

    - -

    JX Errors

    - -

    Errors produced during evaluation of a JX structure all include some common keys.

    - -
      -
    • "source": "jx_eval"
    • -
    • "code": A numeric identifier for the type of error.
    • -
    - -

    The following codes and names are used by jx_eval.

    - -
      -
    • 0: "undefined symbol" -The given symbol was not present in the evaluation context. This error includes two additional keys: -
      • "symbol": the symbol name being looked up
      • -
      • "context": the evaluation context
    • -
    • 1: "unsupported operator" -The operator cannot be applied to the type given. This error also includes an "operator" key containing the operator that caused the error, as well as its operands.
    • -
    • 2: "mismatched types" -The binary operator can only be applied to operands of the same type. This error also includes an "operator" key containing the operator that caused the error, as well as its operands.
    • -
    • 3: "key not found" -Object lookup failed because the given object does not contain the requested key. This error also includes two additional keys: -
      • "key"
      • -
      • "object"
    • -
    • 4: "range error" -Array lookup failed because the requested index is outside the given array's bounds. This error also includes two additional keys: -
      • "index"
      • -
      • "array"
    • -
    • 5: "arithmetic error" -The the operands are outside the given arithmetic operator's range. This error also includes an "operator" key containing the operator that caused the error, as well as its operands.
    • -
    • 6: "invalid arguments" -The function arguments are not valid for the given function. This error also includes a "function" key containing the function that caused the error, as well as its arguments.
    • -
    - -
    - - diff -Nru cctools-7.0.22/doc/jx-quick.html cctools-7.1.2/doc/jx-quick.html --- cctools-7.0.22/doc/jx-quick.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/jx-quick.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,181 +0,0 @@ - - -
    - -

    JX Workflow Language Quick Reference

    - -

    -Makeflow | JX Tutorial | JX Quick Reference | JX Full Reference -

    - - - - - - -
    -
    -

    Workflow

    -
    -{
    -   # Required elements:
    -   "rules" : [
    -       # Array of rules goes here.
    -   ],
    -   # Optional elements:
    -   "define" : {
    -      "temp" : 32.5,
    -   },
    -   "environment" : {
    -      "PATH" : "/usr/local/bin:/bin",
    -   },
    -   "categories" : {
    -       "simulation" : {
    -            "resources" : { ... },
    -            "environment" : { ... },
    -            "allocation" : "auto" | "max" | "error"
    -       }
    -   }
    -}
    -
    -
    - -
    -
    -

    Rules

    -
    -{
    -   # Required elements
    -
    -   "command" : "simulation.py calib.dat >output.txt",
    -   "inputs" : [ "simulation.py", "calib.dat" ],
    -   "outputs" : [ "output.txt" ],
    -
    -   # Optional elements
    -
    -   "local_job" : true | false,
    -   "resources" : {
    -       "cores":4,
    -       "memory":8,
    -       "disk":16,
    -       "wall-time":3600
    -   },
    -   "environment" : { ... }
    -   "category" : "simulation",
    -   "allocation" : "first" | "max" | "error"
    -}
    -
    -
    - -
    -
    - -
    -

    Values

    -
    -"string"
    -42
    -3.14159
    -true | false
    -
    -[ 1, 2, 3 ]
    -
    -{ "temp" : 32.5,
    -  "name" : "fred" }
    -
    -
    - -
    -
    -

    Operators

    -
    -a["b"]   func(x)
    -* % /
    -+ -
    -== != < <= > >=
    -not
    -and
    -or
    -
    -expr for x in [1,2,3]
    -
    -
    - -
    -
    -

    Functions

    -
    -format( "str: %s int: %d float: %f",
    -        "hello", 42, 3.14159 )
    -join( array, delim )
    -range( start, stop, step )
    -ceil( value )
    -floor( value )
    -basename( path )
    -dirname( path )
    -escape( string )
    -
    -
    - -
    -
    -

    Examples

    -
    -# Generate an array of 100 files named "output.1.txt", etc...
    -[ "output."+x+".txt" for x in range(1,100) ]
    -
    -# Generate one string containing those 100 file names.
    -join( [ "output."+x+".txt" for x in range(1,100) ], " ")
    -
    -# Generate five jobs that produce output files alpha.txt, beta.txt, ...
    -{
    -  "command" : "simulate.py > "name+".txt",
    -  "outputs" : [ name+".txt" ],
    -  "inputs" : "simulate.py",
    -} for name in [ "alpha", "beta", "gamma", "delta", "epsilon" ]
    -
    -
    -
    - -
    - -
    - diff -Nru cctools-7.0.22/doc/jx-tutorial.html cctools-7.1.2/doc/jx-tutorial.html --- cctools-7.0.22/doc/jx-tutorial.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/jx-tutorial.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,376 +0,0 @@ - - - - - - -Tutorial: JX Workflow Language - - - - -
    - -

    Tutorial: JX Workflow Language

    - -
    -

    -Makeflow | JX Tutorial | JX Quick Reference | JX Full Reference -

    -
    - -

    -This is a gentle introduction to the JX workflow language, which -is the "advanced" language used by the Makeflow -workflow engine. JX is an extension of standard JSON expressions, so if you are familiar with those from another language, -you will find it easy to get started. -

    - -

    -To use these examples, you will first need to install the Makeflow workflow engine and ensure that the makeflow command -is in your PATH. -

    - -

    Hello World

    - -

    -Let's begin by creating a simple workflow that executes exactly one task, -which outputs the text "hello world". Enter the following workflow -using your favorite text editor and save it into a file called example.jx: -

    - -{ - "rules": [ - { - "command" : "echo hello world > output.txt", - "outputs" : [ "output.txt" ], - "inputs" : [ ], - } - ] -} - - -

    -Now run it locally with the following command: -

    - -makeflow --jx example.jx - - -

    -You should see some output like this: -

    - -parsing example.jx... -local resources: 4 cores, 15774 MB memory, 2097151 MB disk -max running local jobs: 4 -checking example.jx for consistency... -example.jx has 1 rules. -starting workflow.... -submitting job: echo hello world > output.txt -submitted job 29955 -job 29955 completed -nothing left to do. - - -

    -Now examine the file output.txt and you should see that it contains "hello world". Congratulations, you have run your first workflow! -

    - -

    Defining Values

    - -

    -JX allows you to programmatically define elements of your workflow, -using expressions to substitute in for parts of jobs. The general -structure of a workflow is this: -

    - -{ - "define": { - # symbol definitions go here - }, - - "rules": [ - # rules go here - ] -} - - -

    -Building on the previous example, suppose that you want to -parameterize the message constant called message -To do that, define it in the define section, and -then concatentate message into the job, like this: -

    - -{ - "define": { - "message" : "hello world!" - }, - - "rules": [ - { - "command" : "echo " + message + " > output.txt", - "outputs" : [ "output.txt" ], - "inputs" : [ ], - } - ] -} - - -To test out this change, first clean the workflow: - -makeflow --jx example.jx --clean - - -And then run it again: - -makeflow --jx example.jx - - -(For the remainder of the examples in this tutorial, we will assume that you clean the workflow first, and then run it again.) - -

    Generating Multiple Jobs

    - -

    -A common use of workflows is to drive a large number of simulation -or analysis codes. Suppose that you have a custom simulation code -called simulate.py which takes a command line argument --n and produces its output on the console. -To run one instance of that simulator, you could do this: -

    - -{ - "rules": [ - { - "command" : "./simulate.py -n 1 > output.txt", - "inputs" : [ "simulate.py" ], - "outputs" : [ "output.txt" ], - } - ] -} - - -

    -(Note that the simulator code itself is treated as an input file, -so that the code can be copied to the target execution machine as needed.) -

    - -

    -If you wanted to run three simulations with slightly different arguments, -you could simply write each one out longhand, giving each one a different -command line argument and sending output to a different file: -

    - -{ - "rules": [ - { - "command" : "./simulate.py -n 1 > output.1.txt", - "inputs" : [ "simulate.py" ], - "outputs" : [ "output.1.txt" ], - }, - { - "command" : "./simulate.py -n 2 > output.2.txt", - "inputs" : [ "simulate.py" ], - "outputs" : [ "output.2.txt" ], - }, - { - "command" : "./simulate.py -n 3 > output.3.txt", - "inputs" : [ "simulate.py" ], - "outputs" : [ "output.3.txt" ], - } - ] -} - - - -But of course that would be tiresome for a large number of jobs. -Instead, you can write out the job once and use the for operator -(sometimes known as a list comprehension) to generate multiple -instance of the job: - -{ - "rules": [ - { - "command" : "./simulate.py -n " + N + " > output." + N + ".txt", - "inputs" : [ "simulate.py" ], - "outputs" : [ "output." + N + ".txt" ], - } for N in [ 1, 2, 3 ] - ] -} - - -Note that the value of N is substituted into both the commands -string and the output list by using the plus sign to indicate string -concatenation. If you prefer a more printf style, you can -use the format() function to insert values into strings -into places indicate by percent codes: - -{ - "rules": [ - { - "command" : format("./simulate.py -n %d > output.%d.txt",N,N) - "inputs" : [ "simulate.py" ], - "outputs" : [ "output." + N + ".txt" ], - } for N in [ 1, 2, 3 ] - ] -} - - -If you want to preview how these list comprehensions expand into -individual jobs, use the program jx2json to reduce the -JX program into plain JSON: - - -jx2json example.jx - - -Which should produce output like this: - - -{"rules":[{"command":"./simulate.py -n 1 > output.1.txt","inputs":["simulate.py"],"outputs":["output.1.txt"]},{"command":"./simulate.py -n 2 > output.2.txt","inputs":["simulate.py"],"outputs":["output.2.txt"]},{"command":"./simulate.py -n 3 > output.3.txt","inputs":["simulate.py"],"outputs":["output.3.txt"]}]} - - -

    Gather Results

    - -So far, out example workflow will run three simulations independently. -But suppose you want the workflow to have a final step which -runs after all the simulations are complete, to collect the results -in a single file called output.all.txt. You could -write it out longhand for three files explicitly: - -{ - "command" : "cat output.1.txt output.2.txt output.3.txt > output.all", - "inputs" : [ "output.1.txt", "output.2.txt", "output.3.txt" ], - "outputs" : [ "output.all.txt" ], -} - - -Of course, it would be better to generate the list automatically. -The list of output files is easy: just generate them using -a list comprehension. For example, this expression: - -[ "output." + N + ".txt" for N in [1,2,3] ] - - -Would evaluate to this array: -["output.1.txt","output.2.txt","output.3.txt"] - - -The command line string is a little trickier, because we want -a string containing all of those filenames, rather than the array. -The join() function is used to join an array into a single string. -For example, this expression: - -join(["output.1.txt","output.2.txt","output.3.txt"]," ") - - -Evaluates to this string: - -"output.1.txt output.2.txt output.3.txt" - - -We can put all of those bits into a single job, like this: - -{ - "command" : "cat " + join(["output." + N + ".txt" for N in [1,2,3]]) +" > output.all.txt", - "inputs" : [ "output." + N + ".txt" for N in [ 1, 2, 3 ] ], - "outputs" : [ "output.all.txt" ], -} - - -That is correct, but it's rather hard to read. Instead, we can -make things clearer by factoring out the definition of the list -and the range to the define section of the workflow. -Putting it all together, we have this: - -{ - "define": { - "RANGE" : range(1,3), - "FILELIST" : ["output." + N + ".txt for N in RANGE], - }, - - "rules": [ - { - "command" : "./simulate.py -n " + N + " > output." + N + ".txt", - "inputs" : [ "simulate.py" ], - "outputs" : [ "output." + N + ".txt" ], - } for N in RANGE, - { - "command" : "cat " + join(FILELIST," ") + " > output.all.txt", - "inputs" : [ FILELIST ], - "outputs" : [ "output.all.txt" ], - } - ] -} - - - - -

    Computational Resources

    - -JX allows you to specify the number of cores, and the memory and disk sizes a rule requires. To this end, rules are grouped into categories. Rules in the same category are expected to use the same quantity of resources. Following with our example, we have twonatural categories, rules that perform a simulation, and a rule that collects the results: - - -{ - "define": { - "RANGE" : range(1,3), - "FILELIST" : ["output." + N + ".txt for N in RANGE], - }, - - "categories": { - "simulate":{ - "resources": {"cores":4, "memory":512, "disk":1024} - }, - "collect":{ - "resources": {"cores":1, "memory":512, "disk":8192} - } - }, - - "rules": [ - { - "command" : "./simulate.py -n " + N + " > output." + N + ".txt", - "inputs" : [ "simulate.py" ], - "outputs" : [ "output." + N + ".txt" ], - "category" : "simulate" - } for N in RANGE, - { - "command" : "cat " + join(FILELIST," ") + " >output.all.txt", - "inputs" : [ FILELIST ], - "outputs" : [ "output.all.txt" ], - "category" : "collect" - } - ] -} - - -In the previous example, the category names simulate and -collect are arbitrary. Memory and disk are specified in megabytes -(MB). Note that we both defined categories and labeled each rule with -its category. All rules not explicitely labeled with a category belong -to the default category. - -The resource specifications are used in two ways: - -
      -
    • A batch job to run a rule is defined using the resource specification. Thus, makeflow is able to request the batch system for appropiate resources. -
    • When makeflow is run using resource monitoring (--monitor=...), if the resource usage of a rule exceeds the resources declared, it is terminated and marked as failed rule. -
    - -When the resources used by a rule are not known, we recommend to set the -resource specification to the largest resources available (e.g., the largest -size possible for a batch job), and add to the category definition the key-value -"allocation" : "auto". As measurements become available, makeflow -computes efficient resource allocations to maximize throughput. If a rule fails -because the computed allocation is too small, it is retried once using the -maximum resources specified. With this scheme, even when some rules are -retried, overall throughput is increased in most cases. - - -
    - - - - - - diff -Nru cctools-7.0.22/doc/Makefile cctools-7.1.2/doc/Makefile --- cctools-7.0.22/doc/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -1,18 +1,9 @@ include ../config.mk -SOURCES=${shell ls man/*.m4} - -HTMLFILES = ${SOURCES:%.m4=%.html} -TXTFILES = ${SOURCES:%.m4=%.txt} -PDFFILES = ${SOURCES:%.m4=%.pdf} -MANFILES = ${SOURCES:%.m4=%.1} -ZIPFILES = ${SOURCES:%.m4=%.1.gz} - all: ${CCTOOLS_DOCTARGETS} -htmlpages: ${HTMLFILES} - -manpages: ${ZIPFILES} +htmlpages manpages mdpages: + $(MAKE) -C man $@ apiperl: api/html/work_queue_perl.html api/html/work_queue_task_perl.html api/html/chirp_client_perl.html api/html/chirp_stat_perl.html @@ -24,50 +15,35 @@ api/html/work_queue_perl.html: mkdir -p api/html - pod2html ../work_queue/src/perl/Work_Queue.pm > $@ + pod2html ../work_queue/src/bindings/perl/Work_Queue.pm > $@ @rm -f pod2htm*.tmp api/html/work_queue_task_perl.html: mkdir -p api/html - pod2html ../work_queue/src/perl/Work_Queue/Task.pm > $@ + pod2html ../work_queue/src/bindings/perl/Work_Queue/Task.pm > $@ @rm -f pod2htm*.tmp api/html/chirp_client_perl.html: mkdir -p api/html - pod2html ../chirp/src/perl/Chirp/Client.pm > $@ + pod2html ../chirp/src/bindings/perl/Chirp/Client.pm > $@ @rm -f pod2htm*.tmp api/html/chirp_stat_perl.html: mkdir -p api/html - pod2html ../chirp/src/perl/Chirp/Stat.pm > $@ + pod2html ../chirp/src/bindings/perl/Chirp/Stat.pm > $@ @rm -f pod2htm*.tmp -%.html: %.m4 - m4 -DHTML ${CCTOOLS_M4_ARGS} $< > $@ - -%.1: %.m4 - m4 -DMAN ${CCTOOLS_M4_ARGS} $< > $@ - -%.txt: %.1 - nroff -man $< > $@ - -%.gz: % - gzip < $< > $@ install: all mkdir -p $(CCTOOLS_INSTALL_DIR)/doc - mkdir -p $(CCTOOLS_INSTALL_DIR)/doc/man - mkdir -p $(CCTOOLS_INSTALL_DIR)/doc/images - mkdir -p $(CCTOOLS_INSTALL_DIR)/share/man/man1 - cp *.html manual.css $(CCTOOLS_INSTALL_DIR)/doc - if [ -f man/chirp.html ]; then cp man/*.html $(CCTOOLS_INSTALL_DIR)/doc/man; fi - if [ -f man/chirp.1.gz ]; then cp man/*.1.gz $(CCTOOLS_INSTALL_DIR)/share/man/man1; fi + cp -r manuals $(CCTOOLS_INSTALL_DIR)/doc/ if [ -d api ]; then cp -rp api $(CCTOOLS_INSTALL_DIR)/doc; fi - if [ -d images ]; then cp images/* $(CCTOOLS_INSTALL_DIR)/doc/images; fi + $(MAKE) -C man install test: clean: - rm -rf api $(HTMLFILES) $(MANFILES) $(ZIPFILES) *~ + rm -rf api *~ + $(MAKE) -C man clean .PHONY: all clean install test diff -Nru cctools-7.0.22/doc/makeflow.html cctools-7.1.2/doc/makeflow.html --- cctools-7.0.22/doc/makeflow.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/makeflow.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,1428 +0,0 @@ - - - - - - -Makeflow User's Manual - - - - -
    -

    Makeflow User's Manual

    - -

    Makeflow is Copyright (C) 2017- The University of Notre Dame. This software is distributed under the GNU General Public License. See the file COPYING for details.

    - -

    Table of Contents

    - - - -

    Introduction

    - -

    Overview

    - -

    Makeflow is a workflow engine for large scale distributed computing. -It accepts a specification of a large amount of work to be performed, -and runs it on -remote machines in parallel where possible. In addition, Makeflow is -fault-tolerant, so you can use it to coordinate very large tasks that may run -for days or weeks in the face of failures. Makeflow is designed to be similar -to Make, so if you can write a Makefile, then you can write a -Makeflow.

    - -

    Makeflow makes it easy to move a large amount of work from one facility to another. After writing a workflow, you can test it out on your local laptop, -then run it at your university computing center, move it over to a national -computing facility like XSEDE, and -then again to a commercial cloud system. Using the (bundled) Work Queue system, you can -even run across multiple systems simultaneously. No matter where you run your tasks, the workflow language stays the same.

    - -

    Makeflow is used in production to support large scale problems -in science and engineering. Researchers in fields such as bioinformatics, -biometrics, geography, and high energy physics all use Makeflow to compose -workflows from existing applications.

    - -Makeflow can send your jobs to a wide variety of services, -such as batch systems (HTCondor, SGE, PBS, Torque), -cluster managers (Mesos and Kubernetes), cloud services (Amazon EC2 or Lambda) -and container environments like Docker and Singularity. -Details for each of those systems are given in the Batch System Support section. - -

    Installing

    - -

    Makeflow is part of the Cooperating Computing Tools, which is easy to install. -In most cases, you can just build from source and install in your home directory like this: - -git clone https://github.com/cooperative-computing-lab/cctools cctools-source -cd cctools-source -./configure -make -make install - - -Then, set your path to include the appropriate directory. If you use bash, do this: - -export PATH=${HOME}/cctools/bin:$PATH - - -Or if you use tcsh, do this: - -setenv PATH ${HOME}/cctools/bin:$PATH - - -For more complex situations, consult the CCTools installation instructions. - -

    Basic Usage

    - -

    A Makeflow workflow consists of a set of rules. -Each rule specifies a set of output files to create, -a set of input files needed to create them, and a command that -generates the target files from the source files.

    - -

    Makeflow attempts to generate all of the output files in a workflow. It -examines all of the rules and determines which rules must run before others. -Where possible, it runs commands in parallel to reduce the execution time.

    - -

    Makeflow suppose two ways of writing a workflow: classic Make and JX. -Classic Make is very easy to learn and get started, but -but can very verbose when writing large workflows. -The JX workflow language -is a little more complex, but allows for more programmable construction -of workflows.

    - -

    Here is an example workflow written in the classic Make language. -It uses the convert utility to make an -animation. It downloads an image from the web, creates four variations of the -image, and then combines them back together into an animation. The first and -the last task are marked as LOCAL to force them to run on the controlling -machine.

    - -CURL=/usr/bin/curl -CONVERT=/usr/bin/convert -URL=http://ccl.cse.nd.edu/images/capitol.jpg - -capitol.anim.gif: capitol.jpg capitol.90.jpg capitol.180.jpg capitol.270.jpg capitol.360.jpg $CONVERT - LOCAL $CONVERT -delay 10 -loop 0 capitol.jpg capitol.90.jpg capitol.180.jpg capitol.270.jpg capitol.360.jpg capitol.270.jpg capitol.180.jpg capitol.90.jpg capitol.anim.gif - -capitol.90.jpg: capitol.jpg $CONVERT - $CONVERT -swirl 90 capitol.jpg capitol.90.jpg - -capitol.180.jpg: capitol.jpg $CONVERT - $CONVERT -swirl 180 capitol.jpg capitol.180.jpg - -capitol.270.jpg: capitol.jpg $CONVERT - $CONVERT -swirl 270 capitol.jpg capitol.270.jpg - -capitol.360.jpg: capitol.jpg $CONVERT - $CONVERT -swirl 360 capitol.jpg capitol.360.jpg - -capitol.jpg: $CURL - LOCAL $CURL -o capitol.jpg $URL - - -

    -(Note that Makeflow differs from Make in a few subtle ways, -you can learn about those in the Language Reference below.) - -

    To try out the example above, copy and paste it into a file named -example.makeflow. To run it on your local machine:

    - -makeflow example.makeflow - -

    Note that if you run it a second time, nothing will happen, because all of -the files are built:

    - -makeflow example.makeflow -makeflow: nothing left to do - - -

    Use the --clean option to clean everything up before trying it again:

    - -makeflow --clean example.makeflow - -

    If you have access to a batch system like Condor, SGE, or Torque, -or a cloud service provider like Amazon, you can direct Makeflow to run your jobs there by using the -T option:

    - -makeflow -T condor example.makeflow - or -makeflow -T sge example.makeflow - or -makeflow -T torque example.makeflow - or -makeflow -T amazon example.makeflow -... - - -To learn more about the various batch system options, see the Batch System Support section. - -

    JX Language

    - -

    -The classic make language is easy to learn and suitable for many purposes, -but it can get rather verbose for complex workflows. Makeflow also supports -the JX workflow language for expressing workflows in a more programmable -way. To give you an idea, here is how to quickly generate one thousand -simulation jobs using JX: -

    - - -{ - "rules": [ - { - "command": "./simulate.py -n "+N+" > output."+N+".txt", - "inputs": [ "simulate.py" ], - "outputs": [ "output."+N+".txt" ], - } for N in range(1,1000) - ] -} - - -You can use the JX language with Makeflow by simply using the --jx argument to any invocation. For example: - -makeflow --jx example.jx -T condor - - -To learn more about JX, please see: - - -
  • JX Quick Reference -
  • JX Tutorial -
  • JX Language Reference -
  • - -

    Resources

    - -

    -Most batch systems require information about what resources -each job needs, so as to schedule them appropriately. You can convey -this by setting the variables CORES, MEMORY (in MB), and DISK (in MB) -ahead of each job. Makeflow will translate this information as needed -to the underlying batch system. For example: -

    - -CORES=4 -MEMORY=1024 -DISK=4000 - -output.txt: input.dat - analyze input.dat > output.txt - - -

    Monitoring

    - -A variety of tools are available to help you monitor the progress of a workflow as it runs. -Makeflow itself creates a transaction log (example.makeflow.makeflowlog) which -contains details of each task as it runs, tracking how many are idle, -running, complete, and so forth. These tools can read the transaction -log and summarize the workflow: - -
      -
    1. makeflow_monitor reads the transaction log and produces a continuous -display that shows the overall time and progress through the workflow: -makeflow example.makeflow & makeflow_monitor example.makeflow.makeflowlog - -
    2. makeflow_graph_log will read the transaction log, and produce a timeline -graph showing the number of jobs ready, running, and complete over time: -makeflow example.makeflow & makeflow_graph_log example.makeflow.makeflowlog example.png - -
    3. makeflow_viz will display the workflow in graphical form, -so that you can more easily understand the structure and dependencies. -(Read more about Visualization) -
    - -

    -In addition, if you give the workflow a "project name" with the -N -option, it will report its status to the catalog server once per minute. The makeflow_status command will query the catalog -and summarize your currently running workloads, like this: -

    - -
    -OWNER      PROJECT              JOBS   WAIT    RUN   COMP   ABRT   FAIL   TYPE
    -alfred     simulation           2263   2258      1      4      0      0 condor
    -betty      analysis             2260      1      1   2258      0      0     wq
    -
    - -

    General Advice

    - -

    -A few key bits of advice address the most common problems encountered when using Makeflow: -

    - -

    -First, Makeflow works best when it has accurate information about each task that you wish -to run. Make sure that you are careful to indicate exactly which input files each task -needs, and which output files it produces. -

    - -

    -Second, if Makeflow is doing something unexpected, you may find it useful to turn on -the debugging stream with the -d all option. This will emit all sorts of detail -about how each job is constructed and sent to the underlying batch system. -

    - -

    -When debugging failed tasks, it is often useful to examine any output produced. -Makeflow automatically saves these files in a makeflow.failed.$ruleno directory for each failed rule. -Only the specified outputs of a rule will be saved. -If the rule is retried and later succeeds, the failed outputs will be automatically deleted. -

    - -

    -Finally, Makeflow was created by the Cooperative Computing Lab at the University of Notre Dame. -We are always happy to learn more about how Makeflow is used and assist you if you -have questions or difficulty.

    For the latest information about Makeflow, please visit our web site and subscribe to our mailing list for more information. -

    - -

    Batch Systems

    - -

    -Makeflow supports a wide variety of batch systems. -Use makeflow --help to see the current list supported. -Generally speaking, simply run Makeflow with the -T option -to select your desired batch system. If no option is given, -then -T local is assumed. -

    - -

    -If you need to pass additional parameters to your batch system, -such as specifying a specific queue or machine category, -use the -B option to Makeflow, or set the BATCH_OPTIONS -variable in your Makeflow file. The interpretation of these options -is slightly different with each system, as noted below. -

    - -

    -To avoid overwhelming a batch system with an enormous number of idle jobs, -Makeflow will limit the number of jobs sent to a system at once. -You can control this on the command line with the --max-remote -option or the MAKEFLOW_MAX_REMOTE_JOBS environment variable. -Likewise, local execution can be limited with --max-local -and MAKEFLOW_MAX_LOCAL_JOBS. -

    - -

    Local Execution

    - -By default, Makeflow executes on the local machine. -It will measure the available cores, memory, and disk -on the local machine, and then run as many jobs as fit -in those resources. (Of course, you must label your jobs -with CORES, MEMORY, and DISK appropriately. -You can put an upper limit on the resources used with the ---local-cores, --local-memory, and --local-disk -options to Makeflow. Also, the total number of jobs running -locally can be limited with --max-local. - -

    HTCondor

    - -

    Use the -T condor option to submit jobs to the HTCondor batch system. (Formerly known as Condor.)

    - -

    -Makeflow will automatically generate a submit file for each job. -However, if you would like to customize the Condor submit file, -use the -B option or BATCH_OPTIONS variable -to specify text to add to the submit file.

    - -

    -For example, if you want to add Requirements and Rank lines to -your Condor submit files, add this to your Makeflow: -

    - -BATCH_OPTIONS = Requirements = (Memory>1024) - -

    UGE - Univa Grid Engine / OGE - Open Grid Engine / SGE - Sun Grid Engine

    - -

    -Use the -T sge option to submit jobs to Sun Grid Engine -or systems derived from it like Open Grid Scheduler or Univa Grid Engine. -

    - -

    -As above, Makeflow will automatically generate qsub commands. -Use the -B option or BATCH_OPTIONS variable -to specify text to add to the command line. -For example, to specify that jobs should be submitted to the devel queue: -

    - -BATCH_OPTIONS = -q devel - -

    PBS - Portable Batch System

    - -

    Use the -T pbs option to submit jobs to the Portable Batch System or compatible systems.

    - -

    This will add the values for cores, memory, and disk. These values will be added onto qsub in this format:
    --l nodes=1:ppn=${CORES},mem=${MEMORY}mb,file=${DISK}mb

    - -

    To remove resources specification at submission use Makeflow option --safe-submit-mode.

    - -

    Torque Batch System

    - -

    Use the -T torque option to submit jobs to the Torque Resource Manager batch system.

    - -

    This will add the values for cores, memory, and disk. These values will be added onto qsub in this format:
    --l nodes=1:ppn=${CORES},mem=${MEMORY}mb,file=${DISK}mb

    - -

    To remove resources specification at submission use Makeflow option --safe-submit-mode.

    - -

    SLURM - Simple Linux Resource Manager

    - -

    Use the -T slurm option to submit jobs to the SLURM batch system. - -

    This will add the values for cores and memory. These values will be added onto sbatch in this format:
    --N 1 -n ${CORES} --mem=${MEMORY}M

    - -

    To remove resources specification at submission use Makeflow option --safe-submit-mode.

    - -

    Disk is not specifies as a shared file system is assumed. The only available disk command line option is ---tmp, which governs temporary disk space. This may have unintended limitations on available machines -as temporary disk is highly dependent on host site.

    - -

    Note: Some SLURM sites disallow specifying memory (example Stampede2). To avoid specification errors -the Makeflow option --ignore-memory-spec removes memory from sbatch.

    - -

    Moab Scheduler

    - -

    Use the -T moab option to submit jobs to the Moab scheduler or compatible systems.

    - -

    Mesos

    - -

    -Makeflow can be used with Apache Mesos. To run Makeflow with Mesos, -give the batch mode via -T mesos and pass the hostname and -port number of Mesos master to Makeflow with the --mesos-master option. -Since the Makeflow-Mesos Scheduler is based on Mesos Python2 API, the path to Mesos -Python2 library should be included in the $PATH, or one can specify a -preferred Mesos Python2 API via --mesos-path option. To successfully -import the Python library, you may need to indicate dependencies through ---mesos-preload option. -

    - -

    For example, here is the command to run Makeflow on a Mesos cluster -that has the master listening on port 5050 of localhost, with a user -specified python library:

    - -makeflow -T mesos --mesos-master localhost:5050 - --mesos-path /path/to/mesos-0.26.0/lib/python2.6/site-packages - example.makeflow ... - - -

    Kubernetes

    - -

    -Makeflow can be run on Kubernetes cluster. -To run Makeflow with Kuberenetes, give the batch mode via -T k8s and -indicate the desired Docker image with the --k8s-image option. - -The Kubernetes mode is depend on kubectl, before starting Makeflow, make sure kubectl -has been installed and correctly set up -to access the desired Kubernetes cluster. -

    - -

    -Following is an example of running Makeflow on a Kuberenetes cluster using -centos image. -

    - - - makeflow -T k8s --k8s-image "centos" example.makeflow - - -

    Amazon Web Services

    - -

    -Makeflow can be configured to run jobs remotely on Amazon Web Services. -For each job in the workflow, a new virtual machine will be created, -the job will run on the virtual machine, and then the virtual machine -will be destroyed. -

    - -You will need to do some one-time setup first: - - -
  • Create an account with Amazon Web Services, and test it out by creating and deleting some virtual machines manually. -
  • Install the AWS Command Line Interace on the machine where you will -run Makeflow. -
  • Add the aws command to your PATH, run aws configure and -enter your AWS Access Key ID, your AWS Secret Access Key, -and your preferred region name. (The keys can be obtained from the AWS -web page by going to your profile menu, selecting "My Security Credentials" -and then "Access Keys". You may need to create a new access key.) -
  • - -Before proceeding, test that the command-line tool is working by entering: -aws ec2 describe-hosts - - -Which should display: -{ - "Hosts": [] -} - - -Now you are ready to use Makeflow with Amazon. -Before running a workflow, use the makeflow_ec2_setup command, -which will setup a virtual private cluster, security group, keypairs, and -other necessary details, and store the necessary information into my.config. -Give the name of the default Amazon Machine Image (AMI) you wish to use as the -second argument: - -makeflow_ec2_setup my.config ami-343a694f - - -Then, run makeflow with the -T amazon option -and --amazon-config my.config to use the configuration you -just created. You can run multiple workflows using a single configuration. - -makeflow -T amazon --amazon-config my.config example.makeflow ... - - -When you are done, destroy the configuration with this command: - -makeflow_ec2_cleanup my.config - - -

    -Makeflow selects the virtual machine instance type automatically -by translating the job resources -into an appropriate instance type of the c4 or m4 category. -For example, a job requiring -CORES=2 and MEMORY=8000 will be placed into an m4.large instance type. -If you do not specify any resources for a job, -then it will be placed into a t2.micro instance, -which has very limited performance. To get good performance, -you should label your jobs with the appropriate CORES and MEMORY. -

    - -

    -You can override the choice of virtual machine instance type, -as well as the choice of virtual machine image (AMI) within -the Makeflow on a job-by-job basis by setting the -AMAZON_INSTANCE_TYPE and AMAZON_AMI -environment variables within the Makeflow file. For example: - - -export AMAZON_INSTANCE_TYPE=m4.4xlarge -export AMAZON_AMI=ami-343a694f - - -

    Amazon Lambda

    - -To use Amazon Lambda, first set up an AWS account and install the aws command line tools as noted above. -

    -Then, use the makeflow_lambda_setup command, which will establish -the appropriate roles, buckets, and functions needed to use Amazon Lambda. -The names of these items will be stored in a config file named on the command line: -

    -makeflow_lambda_setup my.config
    -
    - -Then, you may use makeflow normally, indicating lambda as -the batch type, and passing in the configuration file with the --lambda-config option: - -
    -makeflow -T lambda --lambda-config my.config example.makeflow ...
    -
    - -You may run multiple workflows in this fashion. When you are ready to -clean up the associated state in Amazon, run makeflow_lambda_cleanup -and pass in the configuration file: - -
    -makeflow_lambda_cleanup my.config
    -
    - -

    Generic Cluster Submission

    - -

    For clusters that are not directly supported by Makeflow we strongly suggest -using the Work Queue system -and submitting workers via the cluster's normal submission mechanism.

    - -

    However, if you have a system similar to Torque, SGE, or PBS which submits -jobs with commands like "qsub", you can inform Makeflow of those commands -and use the cluster driver. For this to work, it is assumed -there is a distributed filesystem shared (like NFS) shared across all -nodes of the cluster.

    - -

    To configure a custom driver, set the following environment variables: - -

      -
    • BATCH_QUEUE_CLUSTER_NAME: The name of the cluster, used in debugging messages and as the name for the wrapper script.
    • -
    • BATCH_QUEUE_CLUSTER_SUBMIT_COMMAND: The submit command for the cluster (such as qsub or msub)
    • -
    • BATCH_QUEUE_CLUSTER_SUBMIT_OPTIONS: The command-line arguments that must be passed to the submit command. This string should end with the argument used to set the name of the task (usually -N).
    • -
    • BATCH_QUEUE_CLUSTER_REMOVE_COMMAND: The delete command for the cluster (such as qdel or mdel)
    • -
    - -

    These will be used to construct a task submission for each makeflow rule that consists of:

    - -$SUBMIT_COMMAND $SUBMIT_OPTIONS $CLUSTER_NAME.wrapper "<rule commandline>" - -

    The wrapper script is a shell script that reads the command to be run as an argument and handles bookkeeping operations necessary for Makeflow.

    - -

    Using Work Queue

    - -

    Overview

    - -

    As described so far, Makeflow translates each job in the workflow -into a single submission to the target batch system. This works well -as long as each job is relatively long running and doesn't perform -a large amount of I/O. -However, if each job is relatively short, the workflow may run very -slowly, because it can take 30 seconds or more for the batch system to -start an individual job. If common files are needed by each job, -they may end up being transferred to the same node multiple times. -

    - -

    To get around these limitations, we provide the -Work Queue system. -The basic idea is to submit a number of persistent "worker" processes -to an existing batch system. Makeflow communicates directly with the -workers to quickly dispatch jobs and cache data, rather than interacting -with the underlying batch system. This accelerates short jobs and -exploits common data dependencies between jobs. -

    - -

    To begin, let's assume that you are logged into the head node -of your cluster, called head.cluster.edu -Run Makeflow in Work Queue mode like this: -

    - -makeflow -T wq example.makeflow - -

    Then, submit 10 worker processes to Condor like this:

    - -condor_submit_workers head.cluster.edu 9123 10 -Submitting job(s).......... -Logging submit event(s).......... -10 job(s) submitted to cluster 298. - - -

    Or, submit 10 worker processes to SGE like this:

    - -sge_submit_workers head.cluster.edu 9123 10 - -

    Or, you can start workers manually on any other machine you can log into:

    - -work_queue_worker head.cluster.edu 9123 - -

    Once the workers begin running, Makeflow will dispatch multiple tasks to -each one very quickly. If a worker should fail, Makeflow will retry the work -elsewhere, so it is safe to submit many workers to an unreliable system.

    - -

    When the Makeflow completes, your workers will still be available, so you -can either run another Makeflow with the same workers, remove them from the -batch system, or wait for them to expire. If you do nothing for 15 minutes, -they will automatically exit.

    - -

    Note that condor_submit_workers and sge_submit_workers, -are simple shell scripts, so you can edit them directly if you would like to -change batch options or other details. Please refer to Work Queue manual for more details. - -

    Port Numbers

    - -

    Makeflow listens on a port which the remote workers would connect to. The -default port number is 9123. Sometimes, however, the port number might be not -available on your system. You can change the default port via the -p option. For example, if you want the master to listen -on port 9567 by default, you can run the following command:

    - -makeflow -T wq -p 9567 example.makeflow - -

    Project Names

    - -

    If you don't like using port numbers, an easier way to match workers to masters is to use a project name. You can give each master a project name with the -N option.

    - -makeflow -T wq -N MyProject example.makeflow - -

    The -N option gives the master a project name called 'MyProject', -and will cause it to advertise its information -such as the project name, running status, hostname and port number, to a catalog server. -Then a worker can simply identify the workload by its project name. -

    - -

    To start a worker that automatically finds MyProject's master via the default -catalog server:

    - -work_queue_worker -N MyProject - -

    You can also give multiple -N options to a worker. The worker will find out -which ones of the specified projects are running from the catalog server and -randomly select one to work for. When one project is done, the worker would -repeat this process. Thus, the worker can work for a different master without -being stopped and given the different master's hostname and port. An example of -specifying multiple projects:

    - -work_queue_worker -N proj1 -N proj2 -N proj3 - -

    -In addition to creating a project name using the -N option, this will also trigger automatic reporting to the -designated catalog server. The Port and Server address are taken from the environment variables CATALOG_HOST -and CATALOG_PORT. If either variable is not set, then the addresses "catalog.cse.nd.edu,backup-catalog.cse.nd.edu" and port 9097 will be used. -

    -

    -It is also easy to run your own catalog server, if you prefer. -For more details, see the Catalog Server Manual. -

    - -

    Setting a Password

    - -

    We recommend that anyone using the catalog server also set a password. -To do this, select any password and write it to a file called -mypwfile. Then, run Makeflow and each worker with the ---password option to indicate the password file:

    - -makeflow --password mypwfile ... -work_queue_worker --password mypwfile ... - - -

    Container Environments

    - -

    -Makeflow can interoperate with a variety of container technologies, -including Docker, Singularity, and Umbrella. In each case, you name -the container image on the command line, and then Makeflow will apply -it to each job by creating the container, loading (or linking) -the input files into the container, running the job, extracting -the output files, and deleting the container. -

    - -

    -Note that container specification is independent of batch system selection. -For example, if you select HTCondor execution with -T condor and -Docker support with --docker, then Makeflow will submit HTCondor -batch jobs, each consisting of an invocation of docker to run the job. -You can switch to any combination of batch system and container technology that you like. -

    - -

    Docker

    - -

    -If you have the Docker container enviornment installed on your cluster, -Makeflow can be set up to place each job in your workflow into a Docker container. -Invoke Makeflow with the --docker argument followed by the container image to use. -Makeflow will ensure that the named image is pulled into each Docker node, and then execute the task within that container. For example, --docker debian -will cause all tasks to be run in the container name debian. -

    - -

    Alternatively, if you have an exported container image, you can use the exported image via the --docker-tar option. -Makeflow will load the container into each execution node as needed. This allows you to use a container without pushing it to a remote repository. -

    - -

    Singularity

    - -

    -In a similar way, Makeflow can be used with the Singularity container system. -When using this mode, Singularity will take in an image, set up the container, and runs the command inside of the container. -Any needed input files will be read in from Makeflow, and created files will be delivered by Makeflow. -

    - -

    Invoke Makeflow with the --singularity argument, followed by the path to the desired image file. -Makeflow will ensure that the named image will be transferred to each job, using the appropriate mechanism -for that batch system -

    - -

    Umbrella

    - -

    Makeflow allows the user to specify the execution environment for each rule -via its --umbrella-spec and --umbrella-binary options. The ---umbrella-spec option allows the user to specify an Umbrella -specification, the --umbrella-binary option allows the user to specify -the path to an Umbrella binary. Using this mode, each rule will be converted -into an Umbrella job, and the specified Umbrella specification and binary will -be added into the input file list of a job.

    - -To test makeflow with umbrella using local execution engine: -makeflow --umbrella-binary $(which umbrella) --umbrella-spec convert_S.umbrella example.makeflow - - -To test makeflow with umbrella using wq execution engine: -makeflow -T wq --umbrella-binary $(which umbrella) --umbrella-spec convert_S.umbrella example.makeflow - - -

    To run each makeflow rule as an Umbrella job, the --umbrella-spec -must be specified. However, the --umbrella-binary option is optional: -when it is specified, the specified umbrella binary will be sent to the -execution node; when it is not specified, the execution node is expected to -have an umbrella binary available through the $PATH environment -variable.

    - -

    Makeflow also allows the user to specify the umbrella log file prefix via -its --umbrella-log-prefix option. The umbrella log file is in the -format of ".". The default value for the ---umbrella-log-prefix option is ".umbrella.log".

    - -

    Makeflow also allows the user to specify the umbrella execution mode via -its --umbrella-mode option. Currently, this option can be set to the -following three modes: local, parrot, and docker. The default value of the ---umbrella-mode option is local, which first tries to utilize the -docker mode, and tries to utilize the parrot mode if the docker mode is not -available.

    - -

    You can also specify an Umbrella specification for a group of rule(s) in the -Makefile by putting the following directives before the rule(s) you want to apply -the Umbrella spec to:

    - -.MAKEFLOW CATEGORY 1 -.UMBRELLA SPEC convert_S.umbrella - - -

    In this case, the specified Umbrella spec will be applied to all the -following rules until a new ".MAKEFLOW CATEGORY ..." directive is declared. All -the rules before the first ".MAKEFLOW CATEGORY ..." directive will use the -Umbrella spec specified by the --umbrella-spec option. If the ---umbrella-spec option is not specified, these rules will run without being -wrapped by Umbrella.

    - -

    Wrapper Commands

    - -Makeflow allows a global wrapper command to be applied to every rule in the workflow. This is particularly useful for applying troubleshooting tools, or for setting up a global environment without rewriting the entire workflow. The --wrapper option will prefix a command in front of every rule, while the --wrapper-input and --wrapper-output options will specify input and output files related to the wrapper.

    - -

    A few special characters are supported by wrappers. If the wrapper command or wrapper files contain two percents (%%), then the number of the current rule will be substituted there. If the command contains curly braces ({}) the original command will be substituted at that point. -Square brackets ([]) are the same as curly braces, except that the command is quoted and escaped before substitution. -If neither specifier is given, Makeflow appends /bin/sh -c [] to the wrapper command.

    - -

    For example, suppose that you wish to shell builtin command time to -every rule in the workflow. Instead of modifying the workflow, run it like -this:

    - -makeflow --wrapper 'time -p' example.makeflow - -

    Since the preceding wrapper did not specify where to substitute the command, it is equivalent to

    -makeflow --wrapper 'time -p /bin/sh -c []' example.makeflow -

    This way, if a single rule specifies multiple commands, the wrapper will time all of them.

    - -

    The square brackets and the default -behavior of running commands in a shell were added because Makeflow allows a rule to run multiple commands. The curly braces simply perform text substitution, so for example

    -makeflow --wrapper 'env -i {}' example.makeflow -does not work correctly if multiple commands are specified. -target_1: source_1 - command_1; command_2; command_3 -will be executed as -env -i command_1; command_2; command_3 -

    Notice that only command_1's environment will be cleared; subsequent commands are not affected. -Thus this wrapper should be given as

    -makeflow --wrapper 'env -i /bin/sh -c []' example.makeflow -or more succinctly as -makeflow --wrapper 'env -i' example.makeflow - -

    Suppose you want to apply strace to every rule, to obtain system call traces. Since every rule would have to have its own output file for the trace, you could indicate output files like this:

    - -makeflow --wrapper 'strace -o trace.%%' --wrapper-output 'trace.%%' example.makeflow - -

    Suppose you want to wrap every command with a script that would set up an appropriate Java environment. You might write a script called setupjava.sh like this:

    - -#!/bin/sh -export JAVA_HOME=/opt/java-9.8.3.6.7 -export PATH=${JAVA_HOME}/bin:$PATH -echo "using java in $JAVA_HOME" -exec "$@" - - -

    And then invoke Makeflow like this:

    - -makeflow --wrapper ./setupjava.sh --wrapper-input setupjava.sh example.makeflow - -

    Advanced Features

    - -

    Shared File Systems

    - -

    By default, Makeflow does not assume that your cluster has a shared -filesystem like NFS or HDFS, and so, to be safe, it copies all necessary dependencies for each job. However, if you do have a shared filesystem, it can -be used to efficiently access files without making remote copies. -Makeflow must be told where the shared filesystem is located, so that it -can take advantage of it. To enable this, invoke Makeflow with the ---shared-fs option, indicating the path where the shared -filesystem is mounted. (This option can be given multiple times.) -Makeflow will then verify the existence of input and output files in these -locations, but will not cause them to be transferred. -

    - -

    -For example, if you use NFS to access the /home and -/software directories on your cluster, then invoke makeflow like this: -

    - -makeflow --shared-fs /home --shared-fs /software example.makeflow ... - - -

    NFS Consistency Delay

    - -

    -After a job completes, Makeflow checks that the expected output files -were actually created. However, if the output files were written via -NFS (or another shared filesystem), it is possible that the outputs -may not be visible for a few seconds. This is due to caching and buffering -effects in many filesystems. -

    - -

    -If you experience this problem, you can instruct Makeflow to retry -the output file check for a limited amount of time, before concluding -that the files are not there. Use the ---wait-for-files-upto option to specify the number of seconds -to wait. -

    - -

    Mounting Remote Files

    - -

    -It is often convenient to separate the logical purpose of -a file from it's physical location. For example, you may -have a workflow which makes use of a large reference database called -ref.db which is a standard file downloaded from a common data -repository whenever needed. -

    -

    -Makeflow allows you to map logical file names within the workflow -to arbitrary locations on disk, or downloaded from URLs. -This is accomplished by writing a "mount file" in which each line -lists a logical file name and its physical location. -

    - -

    Here is an example of a mountfile:

    - -curl /usr/bin/curl -convert ../bin/convert -data/file1 /home/bob/input1 -1.root http://myresearch.org/1.root - - -

    Then, simply execute Makeflow with the --mounts option -to apply the desred mountfile:

    - -makeflow --mounts my.mountfile example.makeflow ... - - -

    Before execution, Makeflow first parses each line of the mountfile when the --mounts option is set, and copies the specified dependency from the location specified by source field into a local cache, and then links the target to the item under the cache. Makeflow also records the location of the local cache and the info (source, target, filename under the cache dir, and so on) of each dependencies specified in the mountfile into its log. -

    - -

    To cleanup a makeflow together with the local cache and all the links created due to the mountfile:

    - -makeflow -c example.makeflow - -

    By default, makeflow creates a unique directory under the current working -directory to hold all the dependencies introduced by the mountfile. -This location can be adjusted with the --cache-dir option. - -

    To only cleanup the local cache and all the links created due to the mountfile:

    - -makeflow -ccache example.makeflow - -

    To limit the behavoir of a makeflow inside the current working directory, the target field should satisfy the following requirements:

    -
      -
    • the target path should not exist;
    • -
    • the target path should be relative;
    • -
    • the target path should not include any symbolic links; (For example, - if the target path is a/b/c/d, then a, b, - c should not be symbolic links.) This avoids the makeflow - leaving the current working directory through symbolic links.
    • -
    • the target path should not include doubledots (..) to limit - makeflow to the current working directory. For example, a/../b - is an invalid target, however, a/b..c/d is a valid target.
    • -
    • the target path should be the same with its usage in Makeflow makefiles. - For example, the target path for the path ./mycurl from a makefile - must also be ./mycurl, can not be mycurl. -
    - -

    The source field can be a local file path or a http URL. When a local file path is specified, -the following requirements should be satisfied:

    -
      -
    • the source path should exist;
    • -
    • the source path can be relative or absolute;
    • -
    • the source path can include doubledots (..);
    • -
    • the source path should only be regular files, directories, and symbolic links;
    • -
    • the source path should not be any ancestor directory of the target to avoid infinite loop;
    • -
    - -

    To limit the behavoir of a makeflow inside the current working directory, the cache_dir should satisfy the following requirements:

    -
      -
    • the cache_dir path should be a relative path;
    • -
    • the cache_dir path should not include any symbolic link; (For example, - if the cache_dir path is a/b/c/d, then a, b, - c should not be symbolic link.) This limitation aims to avoid the makeflow - leaving the current working directory through symbolic links.
    • -
    • the cache_dir path should not include doubledots (..) to limit the - behavoir of the makeflow within the current working directory. For example, a/../b - is an invalid cache_dir, however, a/b..c/d is a valid cache_dir.
    - - -

    Garbage Collection

    - -

    As the workflow execution progresses, Makeflow can automatically delete -intermediate files that are no longer needed. In this context, an intermediate -file is an input of some rule that is the target of another rule. Therefore, by -default, garbage collection does not delete the original input files, nor -final target files.

    - -

    Which files are deleted can be tailored from the default by appending files -to the Makeflow variables MAKEFLOW_INPUTS and MAKEFLOW_OUTPUTS. -Files added to MAKEFLOW_INPUTS augment the original inputs files that -should not be deleted. MAKEFLOW_OUTPUTS marks final target files that -should not be deleted. However, different from MAKEFLOW_INPUTS, files -specified in MAKEFLOW_OUTPUTS does not include all output files. If -MAKEFLOW_OUTPUTS is not specified, then all files not used in subsequent -rules are considered outputs. It is considered best practice to always specify -MAKEFLOW_INPUTS/OUTPUTS to clearly specify which files are considered -inputs and outputs and allow for better space management if garbage collection -is used.

    - -

    Makeflow offers two modes for garbage collection: reference count, and on -demand. With the reference count mode, intermediate files are deleted as soon -as no rule has them listed as input. The on-demand mode is similar to reference -count, only that files are deleted until the space on the local file system is -below a given threshold.

    - -

    To activate reference count garbage collection:

    - -makeflow -gref_cnt - -

    To activate on-demand garbage collection, with a threshold of 500MB:

    - -makeflow -gon_demand -G500000000 - -

    Visualization

    - -

    There are several ways to visualize both the structure of a Makeflow -as well as its progress over time. -makeflow_viz can be used to convert a Makeflow into -a file that can be displayed by Graphviz DOT tools like this:

    - -makeflow_viz -D dot example.makeflow > example.dot -dot -Tgif < example.dot > example.gif - -

    -Or use a similar command to generate a Cytoscape input file. (This will also create a Cytoscape style.xml file.)

    - -makeflow_viz -D cyto example.makeflow > example.xgmml - -

    To observe how a makeflow runs over time, use makeflow_graph_log to convert a log file into a timeline that shows the number of tasks ready, running, and complete over time:

    - -makeflow_graph_log example.makeflowlog example.png - -

    Archiving Jobs

    - -

    Makeflow allows for users to archive the results of each job within a specified archive directory. This is done using the --archive option, which by default creates a archiving directory at /tmp/makeflow.archive.$UID. Both files and jobs are stored as the workflow executes. Makeflow will also check to see if a job has already been archived into the archiving directory, and if so the outputs of the job will be copied to the working directory and the job will skip execution.

    - - makeflow --archive example.makeflow - -

    To only write to the archiving directory (and ensure that all nodes will be executed instead), pass --archive-write. To only read from the archive and use the outputs of any archived job, pass --archive-read. To specify a directory to use for the archiving directory, give an optional argument as shown below

    - - makeflow --archive=/path/to/directory/ example.makeflow - -

    Linking Dependencies

    - -

    Makeflow provides a tool to collect all of the dependencies for a -given workflow into one directory. By collecting all of the input files and -programs contained in a workflow it is possible to run the workflow on other -machines.

    - -

    Currently, Makeflow copies all of the files specified as -dependencies by the rules in the makeflow file, including scripts and data -files. Some of the files not collected are dynamically linked libraries, -executables not listed as dependencies (python, perl), and -configuration files (mail.rc).

    - -

    To avoid naming conflicts, files which would otherwise have an identical -path are renamed when copied into the bundle:

    - -
      -
    • All file paths are relative to the top level directory.
    • -
    • The makeflow file is rewritten with the new file locations and placed in the top level directory.
    • -
    • Files originally specified with an absolute path are placed into the top level directory.
    • -
    • Files with the same path are appended with a unique number
    • -
    - -

    Example usage:

    - -makeflow_analyze -b some_output_directory example.makeflow - -

    Technical Reference

    - -

    Language Reference

    - -

    The Makeflow language is very similar to Make, but it does have a few important differences that you should be aware of.

    - -

    Get the Dependencies Right

    - -

    You must be careful to accurately specify all of the files that a rule -requires and creates, including any custom executables. This is because -Makeflow requires all these information to construct the environment for a -remote job. For example, suppose that you have written a simulation program -called mysim.exe that reads calib.data and then produces and -output file. The following rule won't work, because it doesn't inform Makeflow -what files are neded to execute the simulation:

    - -# This is an incorrect rule. - -output.txt: - ./mysim.exe -c calib.data -o output.txt - - -

    However, the following is correct, because the rule states all of the files -needed to run the simulation. Makeflow will use this information to construct -a batch job that consists of mysim.exe and calib.data and -uses it to produce output.txt:

    - -# This is a correct rule. - -output.txt: mysim.exe calib.data - ./mysim.exe -c calib.data -o output.txt - - -

    Note that when a directory is specified as an input dependency, it -means that the command relies on the directory and all of its contents. -So, if you have a large collection of input data, you can place it -in a single directory, and then simply give the name of that directory. -

    - -

    No Phony Rules

    - -

    For a similar reason, you cannot have "phony" rules that don't actually -create the specified files. For example, it is common practice to define a -clean rule in Make that deletes all derived files. This doesn't make -sense in Makeflow, because such a rule does not actually create a file named -clean. Instead use the -c option as shown above.

    - -

    Just Plain Rules

    - -

    Makeflow does not support all of the syntax that you find in various -versions of Make. Each rule must have exactly one command to execute. If you -have multiple commands, simply join them together with semicolons. Makeflow -allows you to define and use variables, but it does not support pattern rules, -wildcards, or special variables like $< or $@. You simply -have to write out the rules longhand, or write a script in your favorite -language to generate a large Makeflow.

    - -

    Local Job Execution

    - -

    Certain jobs don't make much sense to distribute. For example, if you have -a very fast running job that consumes a large amount of data, then it should -simply run on the same machine as Makeflow. To force this, simply add the word -LOCAL to the beginning of the command line in the rule.

    - -

    Rule Lexical Scope

    - -

    Variables in Makeflow have global scope, that is, once defined, their value -can be accessed from any rule. Sometimes it is useful to define a variable -locally inside a rule, without affecting the global value. In Makeflow, this -can be achieved by defining the variables after the rule's requirements, but -before the rule's command, and prepending the name of the variable with -@, as follows:

    - -SOME_VARIABLE=original_value - -target_1: source_1 - command_1 - -target_2: source_2 -@SOME_VARIABLE=local_value_for_2 - command_2 - -target_3: source_3 - command_3 - -In this example, SOME_VARIABLE has the value 'original_value' for rules 1 and -3, and the value 'local_value_for_2' for rule 2. - -

    Environment Variables

    - -Environment variables can be defined with the export keyword inside a workflow. Makeflow will communicate explicitly named environment variables -to remote batch systems, where they will override whatever local setting is present. For example, suppose you want to modify the PATH for every job in the makeflow: - -export PATH=/opt/tools/bin:${PATH} - -If no value is given, then the current value of the environment variable is passed along to the job: - -export USER - -

    Remote File Renaming

    - -

    When the underlying batch system supports it, -Makeflow supports "Remote Renaming" where the name -of a file in the execution sandbox is different than -the name of the same file in the DAG. -This is currently supported by the Work Queue, Condor, and Amazon batch system. -

    - -

    -For example, local_name->remote_name indicates that the file local_name is called remote_name -in the remote system. Consider the following example:

    - -b.out: a.in myprog -LOCAL myprog a.in > b.out - -c.out->out: a.in->in1 b.out myprog->prog - prog in1 b.out > out - - -

    The first rule runs locally, using the executable myprog and the -local file a.in to locally create b.out. The second rule -runs remotely, but the remote system expects a.in to be named -in1, c.out, to be named out and so on. Note that we -did not need to rename the file b.out. Without remote file renaming, -we would have to create either a symbolic link, or a copy of the files with the -expected correct names.

    - -

    Nested Makeflows

    - -One Makeflow can be nested inside of another by writing a rule -with the following syntax: - -output-files: input-files - MAKEFLOW makeflow-file [working-dir] - - -The input and output files are specified as usual, describing the files -consumed and created by the child makeflow as a whole. Then, the MAKEFLOW keyword introduces the child makeflow specification, and an -optional working directory into which the makeflow will be executed. -If not given, the current working directory is assumed. - -

    Resources and Categories

    - -

    -Makeflow has the capability of automatically setting the cores, memory, -and disk space requirements to the underlying batch system (currently this only -works with Work Queue and Condor). Jobs are grouped into job categories -, and jobs in the same category have the same cores, memory, and disk -requirements. -

    -

    -Job categories and resources are specified with variables. Jobs are assigned -to the category named in the value of the variable CATEGORY. Likewise, the -values of the variables CORES, MEMORY (in MB), and DISK (in MB) describe the -resources requirements for the category specified in CATEGORY. -

    -

    -Jobs without an explicit category are assigned to default. Jobs in -the default category get their resource requirements from the value of the -environment variables CORES, MEMORY, and DISK. -

    - -Consider the following example: - - # These tasks are assigned to the category preprocessing. -# MEMORY and CORES are read from the environment, if defined. - -CATEGORY="preprocessing" -DISK=500 - -one: src - cmd - -two: src - cmd - -# These tasks have the category "simulation". Note that now CORES, MEMORY, and DISK are specified. - -CATEGORY="simulation" -CORES=1 -MEMORY=400 -DISK=400 - -three: src - cmd - -four: src - cmd - -# Another category switch. MEMORY is read from the environment. - -CATEGORY="analysis" -CORES=4 -DISK=600 - -five: src - cmd - - -export MEMORY=800 -makeflow ... - - -

    Resources Specified

    - - - - - - -
    CategoryCoresMemory (MB)Disk (MB)
    preprocessing (unspecified) 800 (from environment) 500
    simulation 1 400 400
    analysis 4 800 (from environment) 600
    - -

    Transaction Log

    - -

    -As Makeflow runs, it creates a transaction log that records the details -of each job, where it was sent, how long it ran, and what resources it consumed. -By default, this log is named X.makeflowlog where X is the name of the -original makeflow file. -

    - -

    -The transaction log serves several purposes: -

      -
    1. Recovery. The transaction log allows Makeflow to continue where it left off. -If you must restart Makeflow after a crash, it will read the transaction log, determine -what jobs are complete (or still running) and then continue forward from there. -
    2. Cleanup. The --clean option relies on the transaction log to quickly -determine exactly which files have been created and which jobs have been submitted, -so that they can be quickly and precisely deleted and removed. (There is no need to -create a clean rule by hand, as you would in traditional Make.) -
    3. Monitoring. Tools like makeflow_monitor and makeflow_graph_log -read the transaction log to determine the current state of the workflow and display it -to the user. -
    - -

    A sample transaction log might look like this:

    - -# STARTED 1435251570723463 -# 1 capitol.jpg 1435251570725086 -1435251570725528 5 1 17377 5 1 0 0 0 6 -# 2 capitol.jpg 1435251570876426 -1435251570876486 5 2 17377 5 0 1 0 0 6 -# 1 capitol.360.jpg 1435251570876521 -1435251570876866 4 1 17379 4 1 1 0 0 6 -# 1 capitol.270.jpg 1435251570876918 -1435251570877166 3 1 17380 3 2 1 0 0 6 -# 2 capitol.270.jpg 1435251570984114 -1435251570984161 3 2 17380 3 1 2 0 0 6 -# 1 capitol.180.jpg 1435251570984199 -1435251570984533 2 1 17383 2 2 2 0 0 6 -# 2 capitol.360.jpg 1435251571003847 -1435251571003923 4 2 17379 2 1 3 0 0 6 -# 1 capitol.90.jpg 1435251571003969 -1435251571004476 1 1 17384 1 2 3 0 0 6 -# 2 capitol.180.jpg 1435251571058319 -1435251571058369 2 2 17383 1 1 4 0 0 6 -# 2 capitol.90.jpg 1435251571094157 -1435251571094214 1 2 17384 1 0 5 0 0 6 -# 1 capitol.anim.gif 1435251571094257 -1435251571094590 0 1 17387 0 1 5 0 0 6 -# 2 capitol.anim.gif 1435251575980215 -# 3 capitol.360.jpg 1435251575980270 -# 3 capitol.270.jpg 1435251575980288 -# 3 capitol.180.jpg 1435251575980303 -# 3 capitol.90.jpg 1435251575980319 -# 3 capitol.jpg 1435251575980334 -1435251575980350 0 2 17387 0 0 6 0 0 6 -# COMPLETED 1435251575980391 - - -

    -Each line in the log file represents a single action taken on a single rule in the workflow. -For simplicity, rules are numbered from the beginning of the Makeflow, starting with zero. -Each line contains the following items: -

    -timestamp task_id new_state job_id tasks_waiting tasks_running tasks_complete tasks_failed tasks_aborted task_id_counter - -

    Which are defined as follows:

    - -
      -
    • timestamp - the unix time (in microseconds) when this line is written to the log file.
    • -
    • task_id - the id of this n.
    • -
    • new_state - a integer represents the new state this task (whose id is in the task_id column) has just entered. The value of the integer ranges from 0 to 4 and the states they are representing are:
    • -
        -
      1. waiting
      2. -
      3. running
      4. -
      5. complete
      6. -
      7. failed
      8. -
      9. aborted
      10. -
      -
    • job_id - the underline execution system is a batch system, such as Condor or SGE, - the job id would be the job id assigned by the batch system when the task - was sent to the batch system for execution.
    • -
    • tasks_waiting - the number of tasks are waiting to be executed.
    • -
    • tasks_running - the number of tasks are being executed.
    • -
    • tasks_complete - the number of tasks has been completed.
    • -
    • tasks_failed - the number of tasks has failed.
    • -
    • tasks_aborted - the number of tasks has been aborted.
    • -
    • task_id_counter - total number of tasks in this Makeflow
    • -
    - -

    In addition, lines starting with a pound sign are comments and -contain additional high-level information that can be safely ignored. -The transaction log begins with a comment to indicate the starting time, and ends with -a comment indicating whether the entire workflow completed, failed, or was aborted. -

    - -

    Aside from the high-level information, file states are also recorded in the log. -This allows for tracking files throughout the workflow execution. This information -is shown starting with the #:

    - -# new_state filename timestamp - -

    Each file state line records the state change and time:

    - -
      -
    • new_state - the integer represents the new state this file has just entered. The value of the integer ranges from 0 to 4 and the states they are representing are:
    • -
        -
      1. unknown
      2. -
      3. expect
      4. -
      5. exists
      6. -
      7. complete
      8. -
      9. delete
      10. -
      -
    • filename - the file name given in the rule specification of Makeflow.
    • -
    • timestamp - the unix time (in microseconds) when this line is written to the log file.
    • -
    - -
    - - diff -Nru cctools-7.0.22/doc/man/allpairs_master.m4 cctools-7.1.2/doc/man/allpairs_master.m4 --- cctools-7.0.22/doc/man/allpairs_master.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/allpairs_master.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,132 +0,0 @@ -include(manual.h)dnl -HEADER(allpairs_master) - -SECTION(NAME) -BOLD(allpairs_master) - executes All-Pairs workflow in parallel on distributed systems - -SECTION(SYNOPSIS) -CODE(BOLD(allparis_master [options] PARAM(set A) PARAM(set B) PARAM(compare function))) - -SECTION(DESCRIPTION) - -BOLD(allpairs_master) computes the Cartesian product of two sets -(BOLD(PARAM(set A)) and BOLD(PARAM(set B))), generating a matrix where each cell -M[i,j] contains the output of the function F (BOLD(PARAM(compare function))) on -objects A[i] (an item in BOLD(PARAM(set A))) and B[j] (an item in -BOLD(PARAM(set B))). The resulting matrix is displayed on the standard output, -one comparison result per line along with the associated X and Y indices. -PARA -BOLD(allpairs_master) uses the Work Queue system to distribute tasks among -processors. Each processor utilizes the MANPAGE(allpairs_multicore,1) program -to execute the tasks in parallel if multiple cores are present. After starting -BOLD(allpairs_master), you must start a number of MANPAGE(work_queue_worker,1) -processes on remote machines. The workers will then connect back to the master -process and begin executing tasks. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_TRIPLET(-p,port,port)The port that the master will be listening on. -OPTION_TRIPLET(-e,extra-args,args)Extra arguments to pass to the comparison function. -OPTION_TRIPLET(-f,input-file,file)Extra input file needed by the comparison function. (may be given multiple times) -OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). -OPTION_TRIPLET(-O,--output-file,file)Write task output to this file (default to standard output) -OPTION_TRIPLET(-t,estimated-time,seconds)Estimated time to run one comparison. (default chosen at runtime) -OPTION_TRIPLET(-x,width,item)Width of one work unit, in items to compare. (default chosen at runtime) -OPTION_TRIPLET(-y,height,items)Height of one work unit, in items to compare. (default chosen at runtime) -OPTION_TRIPLET(-N,project-name,project)Report the master information to a catalog server with the project name - PARAM(project) -OPTION_TRIPLET(-P,priority,integer)Priority. Higher the value, higher the priority. -OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. (Try -d all to start.) -OPTION_ITEM(`-v, --version')Show program version. -OPTION_PAIR(`-h, --help')Display this message. -OPTION_TRIPLET(-Z,port-file,file)Select port at random and write it to this file. (default is disabled) -OPTION_PAIR(--work-queue-preferred-connection,connection)Indicate preferred connection. Chose one of by_ip or by_hostname. (default is by_ip) -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Let's suppose you have a whole lot of files that you want to compare all to -each other, named CODE(a), CODE(b), CODE(c), and so on. Suppose that you also -have a program named BOLD(compareit) that when invoked as CODE(compareit a b) -will compare files CODE(a) and CODE(b) and produce some output summarizing the -difference between the two, like this: - -LONGCODE_BEGIN - a b are 45 percent similar -LONGCODE_END - -To use the allpairs framework, create a file called CODE(set.list) that lists each of -your files, one per line: - -LONGCODE_BEGIN - a - b - c - ... -LONGCODE_END - -Because BOLD(allpairs_master) utilizes MANPAGE(allpairs_multicore,1), so please -make sure MANPAGE(allpairs_multicore,1) is in your PATH before you proceed.To run -a All-Pairs workflow sequentially, start a single MANPAGE(work_queue_worker,1) -process in the background. Then, invoke BOLD(allpairs_master). - -LONGCODE_BEGIN - % work_queue_worker localhost 9123 & - % allpairs_master set.list set.list compareit -LONGCODE_END - -The framework will carry out all possible comparisons of the objects, and print -the results one by one (note that the first two columns are X and Y indices in -the resulting matrix): - -LONGCODE_BEGIN - 1 1 a a are 100 percent similar - 1 2 a b are 45 percent similar - 1 3 a c are 37 percent similar - ... -LONGCODE_END - -To speed up the process, run more MANPAGE(work_queue_worker,1) processes on -other machines, or use MANPAGE(condor_submit_workers,1) or -MANPAGE(sge_submit_workers,1) to start hundreds of workers in your local batch -system. -PARA -The following is an example of adding more workers to execute a All-Pairs -workflow. Suppose your BOLD(allpairs_master) is running on a machine named -barney.nd.edu. If you have access to login to other machines, you could simply -start worker processes on each one, like this: - -LONGCODE_BEGIN - % work_queue_worker barney.nd.edu 9123 -LONGCODE_END - -If you have access to a batch system like Condor, you can submit multiple -workers at once: - -LONGCODE_BEGIN - % condor_submit_workers barney.nd.edu 9123 10 - Submitting job(s).......... - Logging submit event(s).......... - 10 job(s) submitted to cluster 298. -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -LIST_BEGIN -LIST_ITEM(LINK(The Cooperative Computing Tools,"http://ccl.cse.nd.edu/software/manuals")) -LIST_ITEM(LINK(All-Pairs User Manual,"http://ccl.cse.nd.edu/software/manuals/allpairs.html")) -LIST_ITEM(LINK(Work Queue User Manual,"http://ccl.cse.nd.edu/software/manuals/workqueue.html")) -LIST_ITEM(MANPAGE(work_queue_worker,1)) -LIST_ITEM(MANPAGE(condor_submit_workers,1)) -LIST_ITEM(MANPAGE(sge_submit_workers,1)) -LIST_ITEM(MANPAGE(allpairs_multicore,1)) -LIST_END - -FOOTER diff -Nru cctools-7.0.22/doc/man/allpairs_multicore.m4 cctools-7.1.2/doc/man/allpairs_multicore.m4 --- cctools-7.0.22/doc/man/allpairs_multicore.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/allpairs_multicore.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ -include(manual.h)dnl -HEADER(allpairs_multicore) - -SECTION(NAME) -BOLD(allpairs_multicore) - executes All-Pairs workflow in parallel on a multicore machine - -SECTION(SYNOPSIS) -CODE(BOLD(allparis_multicore [options] PARAM(set A) PARAM(set B) PARAM(compare function))) - -SECTION(DESCRIPTION) - -BOLD(allpairs_multicore) computes the Cartesian product of two sets -(BOLD(PARAM(set A)) and BOLD(PARAM(set B))), generating a matrix where each cell -M[i,j] contains the output of the function F (BOLD(PARAM(compare function))) on -objects A[i] (an item in BOLD(PARAM(set A))) and B[j] (an item in -BOLD(PARAM(set B))). The resulting matrix is displayed on the standard output, -one comparison result per line along with the associated X and Y indices. -PARA -For large sets of objects, BOLD(allpairs_multicore) will use as many cores as -you have available, and will carefully manage virtual memory to exploit -locality and avoid thrashing. Because of this, you should be prepared for the -results to come back in any order. If you want to further exploit the -parallelism of executing All-Pairs workflows on multiple (multicore) machines, -please refer to the MANPAGE(allpairs_master,1) utility. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_TRIPLET(-b, block-size, items)Block size: number of items to hold in memory at once. (default: 50% of RAM) -OPTION_TRIPLET(-c, cores, cores)Number of cores to be used. (default: # of cores in machine) -OPTION_TRIPLET(-e, extra-args, args)Extra arguments to pass to the comparison program. -OPTION_TRIPLET(-d, debug, flag)Enable debugging for this subsystem. -OPTION_ITEM(`-v, --version')Show program version. -OPTION_ITEM(`-h, --help')Display this message. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Let's suppose you have a whole lot of files that you want to compare all to -each other, named CODE(a), CODE(b), CODE(c), and so on. Suppose that you also -have a program named BOLD(CODE(compareit)) that when invoked as CODE(compareit a b) -will compare files CODE(a) and CODE(b) and produce some output summarizing the -difference between the two, like this: - -LONGCODE_BEGIN - a b are 45 percent similar -LONGCODE_END - -To use the allpairs framework, create a file called CODE(set.list) that lists each of -your files, one per line: - -LONGCODE_BEGIN - a - b - c - ... -LONGCODE_END - -Then, invoke BOLD(allpairs_multicore) like this: - -LONGCODE_BEGIN - % allpairs_multicore set.list set.list compareit -LONGCODE_END - -The framework will carry out all possible comparisons of the objects, and print -the results one by one (note that the first two columns are X and Y indices in -the resulting matrix): - -LONGCODE_BEGIN - 1 1 a a are 100 percent similar - 1 2 a b are 45 percent similar - 1 3 a c are 37 percent similar - ... -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -LIST_BEGIN -LIST_ITEM(LINK(The Cooperative Computing Tools,"http://ccl.cse.nd.edu/software/manuals")) -LIST_ITEM(LINK(All-Pairs User Manual,"http://ccl.cse.nd.edu/software/manuals/allpairs.html")) -LIST_ITEM(MANPAGE(allpairs_master,1)) -LIST_END - -FOOTER diff -Nru cctools-7.0.22/doc/man/catalog_query.m4 cctools-7.1.2/doc/man/catalog_query.m4 --- cctools-7.0.22/doc/man/catalog_query.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/catalog_query.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -include(manual.h)dnl -HEADER(catalog_query) - -SECTION(NAME) -BOLD(catalog_query) - query records from the catalog server - -SECTION(SYNOPSIS) -CODE(BOLD(catalog_query [--where [expr]] [--catalog [host]] [-d [flag]] [-o [file]] [-O [size]] [-t [timeout]] [-h] )) - -SECTION(DESCRIPTION) - -BOLD(catalog_query) is a tool that queries a catalog server for raw -JSON records. The records can be filtered by an optional --where expression. -This tool is handy for querying custom record types not handled -by other tools. - -SECTION(ARGUMENTS) - -OPTIONS_BEGIN -OPTION_ITEM(--where expr) Only records matching this expression will be displayed. -OPTION_ITEM(--catalog host) Query this catalog host. -OPTION_ITEM(--debug flag) Enable debugging for this subsystem. -OPTION_ITEM(--debug-file file) Send debug output to this file. -OPTION_ITEM(--debug-rotate-max bytes) Rotate debug file once it reaches this size. -OPTION_ITEM(--timeout seconds) Abandon the query after this many seconds. -OPTION_ITEM(--help) Show command options. -OPTIONS_END - -SECTION(EXAMPLES) - -To show all records in the catalog server: - -LONGCODE_BEGIN -% catalog_query -LONGCODE_END - -To show all records of other catalog servers: - -LONGCODE_BEGIN -% catalog_query --where \'type=="catalog"\' -LONGCODE_END - -To show all records of Chirp servers with more than 4 cpus: - -LONGCODE_BEGIN -% catalog_query --where \'type=="chirp" && cpus > 4\' -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_CATALOG - -FOOTER diff -Nru cctools-7.0.22/doc/man/catalog_server.m4 cctools-7.1.2/doc/man/catalog_server.m4 --- cctools-7.0.22/doc/man/catalog_server.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/catalog_server.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ -include(manual.h)dnl -HEADER(catalog_server) - -SECTION(NAME) -BOLD(catalog_server) - start a catalog server - -SECTION(SYNOPSIS) -CODE(BOLD(catalog_server [options])) - -SECTION(DESCRIPTION) - -PARA -A catalog server provides naming and discovery for multiple components -of the Cooperative Computing Tools, particularly the Chirp distributed -filesystem and the Work Queue distributed programming framework. -Services that wish to be known on the network periodically publish -their information to the catalog server via a short UDP packet. -Clients wishing to discover services by name may query the catalog -by issuing an HTTP request to the catalog server and will receive -back a listing of all known services. - -PARA -To view the complete contents of the catalog, users can direct -their browser to CODE(http://catalog.cse.nd.edu:9097). Command line tools -CODE(work_queue_status) and CODE(chirp_status) present the same data in -a form most useful for Work Queue and Chirp, respectively. -Large sites are encouraged -to run their own catalog server and set the CODE(CATALOG_HOST) -and CODE(CATALOG_PORT) environment variables to direct clients to their server. - -PARA -The catalog server is a discovery service, not an authentication service, -so services are free to advertise whatever names and properties they please. -However, the catalog does update each incoming record with the actual IP address -and port from which it came, thus preventing a malicious service from -overwriting another service's record. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_ITEM(`-b, --background')Run as a daemon. -OPTION_TRIPLET(-B, pid-file,file)Write process identifier (PID) to file. -OPTION_TRIPLET(-d, debug, flag)Enable debugging for this subsystem -OPTION_ITEM(`-h, --help')Show this help screen -OPTION_TRIPLET(-H, history, directory) Store catalog history in this directory. Enables fast data recovery after a failure or restart, and enables historical queries via deltadb_query. -OPTION_TRIPLET(-I, interface, addr)Listen only on this network interface. -OPTION_TRIPLET(-l, lifetime, secs)Lifetime of data, in seconds (default is 1800) -OPTION_TRIPLET(-L, update-log,file)Log new updates to this file. -OPTION_TRIPLET(-m, max-jobs,n)Maximum number of child processes. (default is 50) -OPTION_TRIPLET(-M, server-size, size)Maximum size of a server to be believed. (default is any) -OPTION_TRIPLET(-n, name, name)Set the preferred hostname of this server. -OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). -OPTION_TRIPLET(-O, debug-rotate-max, bytes)Rotate debug file once it reaches this size (default 10M, 0 disables). -OPTION_TRIPLET(-p,, port, port)Port number to listen on (default is 9097) -OPTION_ITEM(`-S, --single')Single process mode; do not fork on queries. -OPTION_TRIPLET(-T, timeout, time)Maximum time to allow a query process to run. (default is 60s) -OPTION_TRIPLET(-u, update-host, host)Send status updates to this host. (default is catalog.cse.nd.edu,backup-catalog.cse.nd.edu) -OPTION_TRIPLET(-U, update-interval, time)Send status updates at this interval. (default is 5m) -OPTION_ITEM(`-v, --version')Show version string -OPTION_TRIPLET(-Z,port-file,file)Select port at random and write it to this file. (default is disabled) -OPTIONS_END - -SECTION(ENVIRONMENT VARIABLES) - -LIST_BEGIN -LIST_ITEM(CODE(BOLD(CATALOG_HOST)) Hostname of catalog server (same as CODE(-u)).) -LIST_ITEM(CODE(BOLD(CATALOG_PORT)) Port number of catalog server to be contacted.) -LIST_ITEM(CODE(BOLD(TCP_LOW_PORT)) Inclusive low port in range used with CODE(-Z).) -LIST_ITEM(CODE(BOLD(TCP_HIGH_PORT)) Inclusive high port in range used with CODE(-Z).) -LIST_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(COPYRIGHT) -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_CATALOG - -FOOTER diff -Nru cctools-7.0.22/doc/man/catalog_update.m4 cctools-7.1.2/doc/man/catalog_update.m4 --- cctools-7.0.22/doc/man/catalog_update.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/catalog_update.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ -include(manual.h)dnl -HEADER(catalog_update) - -SECTION(NAME) -BOLD(catalog_update) - send update to catalog server - -SECTION(SYNOPSIS) -CODE(BOLD(catalog_update [options] [name=value] ..)) - -SECTION(DESCRIPTION) - -PARA -The CODE(catalog_update) tool allows users to manually send an update to a -catalog server via a short UDP packet. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_TRIPLET(-c, catalog, host)Send update to this catalog host. -OPTION_TRIPLET(-f, file, json-file) Send additional JSON attributes in this file. -OPTION_TRIPLET(-d, debug, flags) Enable debug flags. -OPTION_TRIPLET(-o, debug-file, file) Send debug output to this file. -OPTION_PAIR(-v,version) Show software version. -OPTION_PAIR(-h, help) Show all options. - -PARA -The CODE(catalog_update) tool sends a custom message to the catalog -server in the from of a JSON object with various properties describing -the host. By default, the CODE(catalog_update) tool includes the following -fields in the update: - -LIST_BEGIN -LIST_ITEM(CODE(BOLD(type)) This describes the node type (default is "node").) -LIST_ITEM(CODE(BOLD(version)) This is the version of CCTools.) -LIST_ITEM(CODE(BOLD(cpu)) This is CPU architecture of the machine.) -LIST_ITEM(CODE(BOLD(opsys)) This is operating system of the machine.) -LIST_ITEM(CODE(BOLD(opsysversion)) This is operating system version of the machine.) -LIST_ITEM(CODE(BOLD(load1)) This is 1-minute load of the machine.) -LIST_ITEM(CODE(BOLD(load5)) This is 5-minute load of the machine.) -LIST_ITEM(CODE(BOLD(load15)) This is 15-minute load of the machine.) -LIST_ITEM(CODE(BOLD(memory_total)) This is total amount of memory on the machine) -LIST_ITEM(CODE(BOLD(memory_avail)) This is amount of available memory on the machine) -LIST_ITEM(CODE(BOLD(cpus)) This is number of detected CPUs on the machine.) -LIST_ITEM(CODE(BOLD(uptime)) This how long the machine has been running.) -LIST_ITEM(CODE(BOLD(owner)) This is user who sent the update.) -LIST_END -OPTIONS_END - -SECTION(ENVIRONMENT VARIABLES) - -LIST_BEGIN -LIST_ITEM(CODE(BOLD(CATALOG_HOST)) Hostname of catalog server (same as CODE(-c)).) -LIST_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) -PARA - -The following example sends an update to the catalog server located at -CODE(catalog.cse.nd.edu) with three custom fields. - -LONGCODE_BEGIN -% cat > test.json << EOF -{ - "type" : "node", - "has_java" : true, - "mode" : 3 -} -EOF -% catalog_update -c catalog.cse.nd.edu -f test.json -LONGCODE_END - -SECTION(COPYRIGHT) -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_CATALOG - -FOOTER diff -Nru cctools-7.0.22/doc/man/chirp_benchmark.m4 cctools-7.1.2/doc/man/chirp_benchmark.m4 --- cctools-7.0.22/doc/man/chirp_benchmark.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/chirp_benchmark.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -include(manual.h)dnl -HEADER(chirp_benchmark) - -SECTION(NAME) -BOLD(chirp_benchmark) - do micro-performance tests on a Chirp server - -SECTION(SYNOPSIS) -CODE(BOLD(chirp_benchmark PARAM(host[:port]) PARAM(file) PARAM(loops) PARAM(cycles) PARAM(bwloops))) - -SECTION(DESCRIPTION) - -PARA -CODE(chirp_benchmark) tests a Chirp server's bandwidth and latency for various -Remote Procedure Calls. The command uses a combination of RPCs that do and do -not use I/O bandwidth on the backend filesystem to measure the latency. It also -tests the throughput for reading and writing to the given filename with -various block sizes. - -PARA -For complete details with examples, see the LINK(Chirp User's Manual,http://ccl.cse.nd.edu/software/manuals/chirp.html). - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To test a Chirp server, you may use: - -LONGCODE_BEGIN -$ chirp_benchmark host:port foobar 10 10 10 -getpid 1.0000 +/- 0.1414 usec -write1 496.3200 +/- 41.1547 usec -write8 640.0400 +/- 23.8790 usec -read1 41.0400 +/- 91.3210 usec -read8 0.9200 +/- 0.1789 usec -stat 530.2400 +/- 14.2425 usec -open 1048.1200 +/- 15.5097 usec -... -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_CHIRP - -FOOTER diff -Nru cctools-7.0.22/doc/man/chirp_distribute.m4 cctools-7.1.2/doc/man/chirp_distribute.m4 --- cctools-7.0.22/doc/man/chirp_distribute.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/chirp_distribute.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ -include(manual.h)dnl -HEADER(chirp_stream_files) - -SECTION(NAME) -BOLD(chirp_distribute) - copy a directory from one Chirp server to one or more Chirp server(s). - -SECTION(SYNOPSIS) -CODE(BOLD(chirp_distribute [options] PARAM(sourcehost) PARAM(sourcepath) PARAM(host1) PARAM(host2) PARAM(host3) ...)) - -SECTION(DESCRIPTION) -BOLD(chirp_distribute) is a tool for coping commonly used data across Chirp servers. Data is originated from a Chirp server PARAM(sourcehost) PARAM(sourcepath) and is copied to a given list of Chirp server(s) PARAM(host1) PARAM(host2) PARAM(host3), etc ... -PARA -BOLD(chirp_distribute) is a quick and simple way for replicating a directory from a Chirp server to many Chirp Servers by creating a spanning tree and then transferring data concurrently from host to host using third party transfer. It is faster than manually copying data using BOLD(parrot cp), BOLD(chirp_put) or BOLD(chirp_third_put) -PARA -BOLD(chirp_distribute) also can clean up replicated data using -X option. -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_TRIPLET(-a,auth,flag)Require this authentication mode. -OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. -OPTION_ITEM(`-D, --info-transfer')Show detailed location, time, and performance of each transfer. -OPTION_TRIPLET(-F,failures-file,file)Write matrix of failures to this file. -OPTION_TRIPLET(-i,tickets,files)Comma-delimited list of tickets to use for authentication. -OPTION_TRIPLET(-N, copies-max,num)Stop after this number of successful copies. -OPTION_TRIPLET(-p,jobs,num)Maximum number of processes to run at once (default=100) -OPTION_ITEM(`-R, --randomize-hosts')Randomize order of target hosts given on command line. -OPTION_TRIPLET(-t,timeout,time)Timeout for for each copy. (default is 3600s) -OPTION_TRIPLET(-T,timeout-all,time)Overall timeout for entire distribution. (default is 3600). -OPTION_ITEM(`-v, --verbose')Show program version. -OPTION_ITEM(`-X, --delete-target')Delete data from all of the target hosts. -OPTION_ITEM(`-Y, --info-success')Show confirmation of successful placements. -OPTION_ITEM(`-h, --help')Show help text. -OPTIONS_END - -SECTION(ENVIRONMENT VARIABLES) - -LIST_BEGIN -LIST_ITEM(CODE(BOLD(CHIRP_CLIENT_TICKETS)) Comma delimited list of tickets to authenticate with (same as CODE(-i)).) -LIST_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) -To copy a directory from server1 to server2, server3, server4 using BOLD(chirp_distribute): -LONGCODE_BEGIN -chirp_distribute server1.somewhere.edu /mydata server2.somewhere.edu server3.somewhere.edu server4.somewhere.edu -LONGCODE_END - -To replicate a directory from server1 to all available Chirp server(s) in Chirp catalog using BOLD(chirp_distribute) and BOLD(chirp_status): -changequote() -LONGCODE_BEGIN -chirp_distribute server1.somewhere.edu /mydata \`chirp_status -s\` -LONGCODE_END - -To replicate a directory from server1 to all available Chirp server(s) in Chirp catalog using BOLD(chirp_distribute) and BOLD(chirp_status). However stop when reach 100 copies with -N option: -LONGCODE_BEGIN -chirp_distribute -N 100 server1.somewhere.edu /mydata \`chirp_status -s\` -LONGCODE_END - -To clean up replicated data using BOLD(chirp_distribute) using -X option: -LONGCODE_BEGIN -chirp_distribute -X server1.somewhere.edu /mydata \`chirp_status -s\` -LONGCODE_END -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_CHIRP - -FOOTER diff -Nru cctools-7.0.22/doc/man/chirp_fuse.m4 cctools-7.1.2/doc/man/chirp_fuse.m4 --- cctools-7.0.22/doc/man/chirp_fuse.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/chirp_fuse.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -include(manual.h)dnl -HEADER(chirp_fuse) - -SECTION(NAME) -BOLD(chirp_fuse) - create a CODE(FUSE) mount point with virtual access to remote chirp servers - -SECTION(SYNOPSIS) -CODE(BOLD(chirp_fuse [options] PARAM(mount path))) - -SECTION(DESCRIPTION) - -PARA -You can attach to a Chirp filesystems by using the FUSE package to attach Chirp -as a kernel filesystem module. Unlike MANPAGE(parrot,1), this requires -superuser privileges to install the FUSE package, but will likely work more -reliably on a larger number of programs and environments. Using FUSE allows for -transparent access to a Chirp server via the local filesystem. This allows user -applications to use a Chirp store unmodified. - -PARA -Once you have installed and permissions to use FUSE, simply run chirp_fuse with -the name of a directory on which the filesystem should be mounted. - -PARA -For complete details with examples, see the -LINK(Chirp User's Manual,http://ccl.cse.nd.edu/software/manuals/chirp.html). - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_TRIPLET(-a, auth,flag)Require this authentication mode. -OPTION_TRIPLET(-b,block-size,bytes)Block size for network I/O. (default is 65536s) -OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. -OPTION_ITEM(`-D, --no-optimize')Disable small file optimizations such as recursive delete. -OPTION_ITEM(`-f, --foreground')Run in foreground for debugging. -OPTION_TRIPLET(-i,tickets,files)Comma-delimited list of tickets to use for authentication. -OPTION_TRIPLET(-m,mount-options,option)Pass mount option to FUSE. Can be specified multiple times. -OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). -OPTION_TRIPLET(-t,timeout,timeout)Timeout for network operations. (default is 60s) -OPTION_ITEM(`-v, --version')Show program version. -OPTION_ITEM(`-h, --help')Give help information. -OPTIONS_END - -SECTION(ENVIRONMENT VARIABLES) - -LIST_BEGIN -LIST_ITEM(CODE(BOLD(CHIRP_CLIENT_TICKETS)) Comma delimited list of tickets to authenticate with (same as CODE(-i)).) -LIST_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To create and use a CODE(FUSE) mount point for access to remote chirp servers: - -LONGCODE_BEGIN -% chirp_fuse /tmp/chirp-fuse & -% cd /tmp/chirp-fuse -% ls -% cd host:port -% cat foo/bar -% exit -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_CHIRP - -FOOTER diff -Nru cctools-7.0.22/doc/man/chirp_get.m4 cctools-7.1.2/doc/man/chirp_get.m4 --- cctools-7.0.22/doc/man/chirp_get.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/chirp_get.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -include(manual.h)dnl -HEADER(chirp_get) - -SECTION(NAME) -BOLD(chirp_get) - get a single file from a Chirp server to local machine - -SECTION(SYNOPSIS) -CODE(BOLD(chirp_get [options] PARAM(hostname[:port]) PARAM(remotefile) PARAM(localfile))) - -SECTION(DESCRIPTION) - -BOLD(chirp_get) is a tool for copying a single file from a Chirp server to local storage. -PARA -BOLD(chirp_get) is a quick and simple way to copy a remote file given PARAM(hostname[:port]) PARAM(path) and write it to a local file PARAM(localfile) -PARA -BOLD(chirp_get) also can stream data which can be useful in a shell pipeline. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_TRIPLET(-a,auth,flag)Require this authentication mode. -OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. -OPTION_TRIPLET(-t,timeout,time)Timeout for failure. (default is 3600s) -OPTION_TRIPLET(-i,tickets,files)Comma-delimited list of tickets to use for authentication. -OPTION_ITEM(`-v, --version')Show program version. -OPTION_ITEM(`-h, --help')Show help text. -OPTIONS_END - -SECTION(ENVIRONMENT VARIABLES) - -LIST_BEGIN -LIST_ITEM(CODE(BOLD(CHIRP_CLIENT_TICKETS)) Comma delimited list of tickets to authenticate with (same as CODE(-i)).) -LIST_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To copy a single remote file using BOLD(chirp_get): - -LONGCODE_BEGIN -% chirp_get server1.somewhere.edu /mydata/mydata.dat /tmp/mydata.dat -LONGCODE_END - -To get, while at the same time, untar a single remote archive file using BOLD(chirp_get): - -LONGCODE_BEGIN -% chirp_get myhost.somewhere.edu /mydata/archive.tar.gz - | tar xvzf -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_CHIRP - -FOOTER diff -Nru cctools-7.0.22/doc/man/chirp.m4 cctools-7.1.2/doc/man/chirp.m4 --- cctools-7.0.22/doc/man/chirp.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/chirp.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ -include(manual.h)dnl -HEADER(chirp) - -SECTION(NAME) -BOLD(chirp) - command line tool providing explicit control of a Chirp server. - -SECTION(SYNOPSIS) -CODE(BOLD(chirp [options] [hostname] [command])) - -SECTION(DESCRIPTION) - -BOLD(chirp) is a tool to connect and manage a Chirp server in a similar way to an FTP client. BOLD(chirp) allows connecting to a Chirp server, copying files, and managing directories, auditing node etc... -PARA -Here are some important BOLD(chirp) commands: - -LIST_BEGIN -LIST_ITEM(BOLD(open) PARAM(host) Connect to a Chirp server.) -LIST_ITEM(BOLD(close) Close connection to current Chirp server. ) -LIST_ITEM(BOLD(get) PARAM(remotefile) [localfile] Copy a remote file to local storage.) -LIST_ITEM(BOLD(put) PARAM(localfile) [remotefile] Copy a local file to Chirp server.) -LIST_ITEM(BOLD(thirdput) PARAM(file) PARAM(3rdhost) PARAM(3rdfile) Copy a remote file to another Chirp server.) -LIST_ITEM(BOLD(getacl) PARAM(remotepath) Get acl of a remote file/directory.) -LIST_ITEM(BOLD(setacl) PARAM(remotepath) PARAM(user) PARAM(rwldax) Set acl for a remote file/directory.) -LIST_ITEM(BOLD(ls) [-la] [remotepath] List contents of a remote directory.) -LIST_ITEM(BOLD(mv) PARAM(oldname) PARAM(newname) Change name of a remote file.) -LIST_ITEM(BOLD(rm) PARAM(file) Delete a remote file.) -LIST_ITEM(BOLD(audit) [-r] Audit current Chirp server.) -LIST_ITEM(BOLD(exit) Close connection and exit BOLD(Chirp).) -LIST_END - -BOLD(chirp) also manages Chirp tickets for authentication purpose. - -LIST_BEGIN -LIST_ITEM(BOLD(ticket_create) [-o[utput] PARAM(ticket filename)] [-s[ubject] PARAM(subject/user)] [-d[uration] PARAM(duration)] [-b[its] ] [[PARAM(directory) PARAM(acl)] ...] Creat a ticket) -LIST_ITEM(BOLD(ticket_register) PARAM(name) [PARAM(subject)] PARAM(duration) Manually register a ticket with multiple Chirp severs.) -LIST_ITEM(BOLD(ticket_delete) PARAM(name) Remove a ticket.) -LIST_ITEM(BOLD(ticket_list) PARAM(name) List registered tickets on a Chirp server.) -LIST_ITEM(BOLD(ticket_get) PARAM(name) Check status of a ticket.) -LIST_ITEM(BOLD(ticket_modify) PARAM(name) PARAM(directory) PARAM(aclmask) Modify a ticket.) -LIST_END - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_TRIPLET(-a, auth, flag)Require this authentication mode. -OPTION_TRIPLET(-d, debug, flag)Enable debugging for this subsystem. -OPTION_TRIPLET(-i, tickets, files)Comma-delimited list of tickets to use for authentication. -OPTION_ITEM(`-l, --verbose')Long transfer information. -OPTION_TRIPLET(-t, timeout, time)Set remote operation timeout. -OPTION_ITEM(`-v, --version')Show program version. -OPTION_ITEM(`-h, --help')Show help text. -OPTIONS_END - -SECTION(ENVIRONMENT VARIABLES) - -LIST_BEGIN -LIST_ITEM(CODE(BOLD(CHIRP_CLIENT_TICKETS)) Comma delimited list of tickets to authenticate with (same as CODE(-i)).) -LIST_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To conenct to a Chirp server using BOLD(chirp): - -LONGCODE_BEGIN -% chirp server1.somewhere.edu -chirp> (enter more commands here) -LONGCODE_END - -To copy a single local file using BOLD(chirp): - -LONGCODE_BEGIN -% chirp server1.somewhere.edu put /tmp/mydata.dat /mydata/mydata.dat -LONGCODE_END - -To get a single remote file using BOLD(chirp): - -LONGCODE_BEGIN -% chirp server1.somewhere.edu get /mydata/mydata.dat /tmp/mydata.dat -LONGCODE_END - -To create a ticket using: - -LONGCODE_BEGIN -% chirp server1.somewhere.edu get ticket_create -output myticket.ticket -subject unix:user -bits 1024 -duration 86400 / rl /foo rwl -LONGCODE_END - -To register a ticket with other Chirp servers: - -LONGCODE_BEGIN -% chirp server2.somewhere.edu ticket_register myticket.ticket unix:user 86400 -LONGCODE_END - -To delete a ticket: - -LONGCODE_BEGIN -% chirp server1.somewhere.edu ticket_delete myticket.ticket -LONGCODE_END - - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_CHIRP - -FOOTER diff -Nru cctools-7.0.22/doc/man/chirp_put.m4 cctools-7.1.2/doc/man/chirp_put.m4 --- cctools-7.0.22/doc/man/chirp_put.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/chirp_put.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ -include(manual.h)dnl -HEADER(chirp_put) - -SECTION(NAME) -BOLD(chirp_put) - copy a single file from local machine to a Chirp server - -SECTION(SYNOPSIS) -CODE(BOLD(chirp_put [options] PARAM(localfile) PARAM(hostname[:port]) PARAM(remotefile))) - -SECTION(DESCRIPTION) - -BOLD(chirp_put) is a tool for copying a single file from local storage to a Chirp server. -PARA -BOLD(chirp_put) is a quick and simple way to copy a single local file PARAM(localfile) to a remote file given PARAM(hostname[:port]) PARAM(path) - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_TRIPLET(-a,auth, flag)Require this authentication mode. -OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. -OPTION_TRIPLET(-b,block-size,size)Set transfer buffer size. (default is 65536 bytes). -OPTION_ITEM(`-f, --follow')Follow input file like tail -f. -OPTION_TRIPLET(-i,tickets,files)Comma-delimited list of tickets to use for authentication. -OPTION_TRIPLET(-t,timeout, time)Timeout for failure. (default is 3600s) -OPTION_ITEM(`-v, --version')Show program version. -OPTION_ITEM(`-h, --help')Show help text. -OPTIONS_END - -SECTION(ENVIRONMENT VARIABLES) - -LIST_BEGIN -LIST_ITEM(CODE(BOLD(CHIRP_CLIENT_TICKETS)) Comma delimited list of tickets to authenticate with (same as CODE(-i)).) -LIST_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To copy a single local file using BOLD(chirp_put): - -LONGCODE_BEGIN -% chirp_put /tmp/mydata.dat server1.somewhere.edu /mydata/mydata.dat -LONGCODE_END - -When copying big data files that take longer than 3600s to copy, using BOLD(chirp_put) with option -t time to make sure BOLD(chirp_put) have enough time to finish: - -LONGCODE_BEGIN -% chirp_put -t 36000 /tmp/mybigdata.dat server1.somewhere.edu /mydata/mybigdata.dat -LONGCODE_END - - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_CHIRP - -FOOTER diff -Nru cctools-7.0.22/doc/man/chirp_server_hdfs.m4 cctools-7.1.2/doc/man/chirp_server_hdfs.m4 --- cctools-7.0.22/doc/man/chirp_server_hdfs.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/chirp_server_hdfs.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ -include(manual.h)dnl -HEADER(chirp_server_hdfs) - -SECTION(NAME) -BOLD(chirp_server_hdfs) - run a chirp server with HDFS client setup - -SECTION(SYNOPSIS) -CODE(BOLD(chirp_server_hdfs [options])) - -SECTION(DESCRIPTION) - -PARA -HDFS is the primary distributed filesystem used in the Hadoop project. -CODE(chirp_server_hdfs) enables running CODE(chirp_server) with the proper -environment variables set for using accessing HDFS. The command requires that -the CODE(JAVA_HOME) and CODE(HADOOP_HOME) environment variables be defined. Once -the environment is setup, the Chirp server will execute using HDFS as the backend -filesystem for all filesystem access. - -PARA -For complete details with examples, see the LINK(Chirp User's Manual,http://ccl.cse.nd.edu/software/manuals/chirp.html). - -SECTION(OPTIONS) - -See MANPAGE(chirp_server,1) for option listing. - -SECTION(ENVIRONMENT VARIABLES) - -LIST_BEGIN -LIST_ITEM(CODE(BOLD(JAVA_HOME)) Location of your Java installation.) -LIST_ITEM(CODE(BOLD(HADOOP_HOME)) Location of your Hadoop installation.) -LIST_END - - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To start a Chirp server with a HDFS backend filesystem: - -LONGCODE_BEGIN -% chirp_server_hdfs -r hdfs://host:port/foo/bar -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_CHIRP - -FOOTER diff -Nru cctools-7.0.22/doc/man/chirp_server.m4 cctools-7.1.2/doc/man/chirp_server.m4 --- cctools-7.0.22/doc/man/chirp_server.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/chirp_server.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ -include(manual.h)dnl -HEADER(chirp_server) - -SECTION(NAME) -BOLD(chirp_server) - create a Chirp user-level filesystem - -SECTION(SYNOPSIS) -CODE(BOLD(chirp_server [options])) - -SECTION(DESCRIPTION) - -PARA -Starts a Chirp server which allows the sharing of data with friends and -colleagues without requiring any administrator privileges. Chirp provides an -RPC network interface to a "backend" filesystem which can be the local -filesystem or even the Hadoop HDFS filesystem. Chirp supports flexible and -robust ACL management of data. - -PARA -For complete details with examples, see the LINK(Chirp User's Manual,http://ccl.cse.nd.edu/software/manuals/chirp.html). - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_TRIPLET(-A, default-acl,file)Use this file as the default ACL. -OPTION_ITEM(--inherit-default-acl) Directories without an ACL inherit from parent directories. -OPTION_TRIPLET(-a, auth,method)Enable this authentication method. -OPTION_ITEM(`-b, --background')Run as daemon. -OPTION_TRIPLET(-B, pid-file,file)Write PID to file. -OPTION_ITEM(`-C, --no-core-dump')Do not create a core dump, even due to a crash. -OPTION_TRIPLET(-c, challenge-dir,dir)Challenge directory for unix filesystem authentication. -OPTION_TRIPLET(-d, debug, flag)Enable debugging for this sybsystem -OPTION_ITEM(`-E, --parent-death')Exit if parent process dies. -OPTION_TRIPLET(-e, parent-check,time)Check for presence of parent at this interval. (default is 300s) -OPTION_TRIPLET(-F, free-space,size)Leave this much space free in the filesystem. -OPTION_TRIPLET(-G,group-url, url)Base url for group lookups. (default: disabled) -OPTION_ITEM(`-h, --help')Give help information. -OPTION_TRIPLET(-I, interface,addr)Listen only on this network interface. -OPTION_TRIPLET(-M, max-clients,count)Set the maximum number of clients to accept at once. (default unlimited) -OPTION_TRIPLET(-n, catalog-name,name)Use this name when reporting to the catalog. -OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). -OPTION_TRIPLET(-O, debug-rotate-max,bytes)Rotate debug file once it reaches this size. -OPTION_TRIPLET(-P,superuser,user)Superuser for all directories. (default is none) -OPTION_TRIPLET(-p,port,port)Listen on this port (default is 9094, arbitrary is 0) -OPTION_PAIR(--project-name,name)Project name this Chirp server belongs to. -OPTION_TRIPLET(-Q,root-quota,size)Enforce this root quota in software. -OPTION_ITEM(`-R, --read-only')Read-only mode. -OPTION_TRIPLET(-r, root,url)URL of storage directory, like file://path or hdfs://host:port/path. -OPTION_TRIPLET(-s,stalled,time)Abort stalled operations after this long. (default is 3600s) -OPTION_TRIPLET(-T,group-cache-exp,time)Maximum time to cache group information. (default is 900s) -OPTION_TRIPLET(-t,idle-clients,time)Disconnect idle clients after this time. (default is 60s) -OPTION_TRIPLET(-U,catalog-update,time)Send status updates at this interval. (default is 5m) -OPTION_TRIPLET(-u,advertize,host)Send status updates to this host. (default is catalog.cse.nd.edu) -OPTION_ITEM(`-v, --version')Show version info. -OPTION_TRIPLET(-W,passwd,file)Use alternate password file for unix authentication -OPTION_TRIPLET(-w,owner,name)The name of this server's owner. (default is username) -OPTION_TRIPLET(-y,transient,dir)Location of transient data (default is pwd). -OPTION_TRIPLET(-Z,port-file,file)Select port at random and write it to this file. (default is disabled) -OPTION_TRIPLET(-z, unix-timeout,time)Set max timeout for unix filesystem authentication. (default is 5s) -OPTIONS_END - -SECTION(ENVIRONMENT VARIABLES) - -LIST_BEGIN -LIST_ITEM(CODE(BOLD(CATALOG_HOST)) Hostname of catalog server (same as CODE(-u)).) -LIST_ITEM(CODE(BOLD(TCP_LOW_PORT)) Inclusive low port in range used with CODE(-Z).) -LIST_ITEM(CODE(BOLD(TCP_HIGH_PORT)) Inclusive high port in range used with CODE(-Z).) -LIST_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To start a Chirp server with a local root directory: - -LONGCODE_BEGIN -% chirp_server -r file:///tmp/foo -LONGCODE_END - -Setting various authentication modes: - -LONGCODE_BEGIN -% chirp_server -a hostname -a unix -a ticket -r file:///tmp/foo -LONGCODE_END - -SECTION(COPYRIGHT) -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_CHIRP - -FOOTER diff -Nru cctools-7.0.22/doc/man/chirp_status.m4 cctools-7.1.2/doc/man/chirp_status.m4 --- cctools-7.0.22/doc/man/chirp_status.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/chirp_status.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ -include(manual.h)dnl -HEADER(chirp_status) - -SECTION(NAME) -BOLD(chirp_status) - get current status of a one or more Chirp server(s) - -SECTION(SYNOPSIS) -CODE(BOLD(chirp_status [options] PARAM(nane) PARAM(value))) - -SECTION(DESCRIPTION) -BOLD(chirp_status) is a tool for checking status of Chirp server(s). -PARA -BOLD(chirp_status) can look up Chirp server(s) using type, name, port, owner and version. -PARA -BOLD(chirp_status) by default lists type, name, port, owner, version, total and available storage of Chirp server(s) -PARA -When using CODE(chirp_status) with long form option (-l), it lists additional information such as average load, available memory, operating system, up time, etc... - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_PAIR(--where,expr) Show only servers matching this expression. -OPTION_TRIPLET(-c,catalog,host)Query the catalog on this host. -OPTION_TRIPLET(-A,server-space,size)Only show servers with this space available. (example: -A 100MB). -OPTION_PAIR(--server-project,name)Only servers with this project name. -OPTION_TRIPLET(-t,timeout,time)Timeout. -OPTION_ITEM(`-s, --brief')Short output. -OPTION_ITEM(`-l, --verbose')Long output. -OPTION_ITEM(`-T, --totals')Totals output. -OPTION_ITEM(`-v, --version')Show program version. -OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. -OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). -OPTION_TRIPLET(-O,debug-rotate-max,bytes)Rotate file once it reaches this size. -OPTION_ITEM(`-h, --help')Show help text. -OPTIONS_END - -SECTION(ENVIRONMENT VARIABLES) - -LIST_BEGIN -LIST_ITEM(CODE(BOLD(CHIRP_CLIENT_TICKETS)) Comma delimited list of tickets to authenticate with (same as CODE(-i)).) -LIST_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To show status of all available Chirp servers using BOLD(chirp_status): - -LONGCODE_BEGIN -% chirp_status -LONGCODE_END - -To show status of a particular Chirp server: - -LONGCODE_BEGIN -% chirp_status --where 'name=="server1.somewhere.edu"' -LONGCODE_END - -To show status of Chirp servers which belong to a particular owner: - -LONGCODE_BEGIN -% chirp_status --where 'owner=="fred"' -LONGCODE_END - -To show all details in JSON format: - -LONGCODE_BEGIN -% chirp_status --long -LONGCODE_END - -To show aggregate status of all Chirp servers using BOLD(chirp_status): - -LONGCODE_BEGIN -% chirp_status -T -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_CHIRP - -FOOTER diff -Nru cctools-7.0.22/doc/man/chirp_stream_files.m4 cctools-7.1.2/doc/man/chirp_stream_files.m4 --- cctools-7.0.22/doc/man/chirp_stream_files.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/chirp_stream_files.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ -include(manual.h)dnl -HEADER(chirp_stream_files) - -SECTION(NAME) -BOLD(chirp_stream_files) - move data to/from chirp servers in parallel - -SECTION(SYNOPSIS) -CODE(BOLD(chirp_stream_files [options] PARAM(copy|split|join) PARAM(localfile) { PARAM(hostname[:port]) PARAM(remotefile))) - -SECTION(DESCRIPTION) - -BOLD(chirp_stream_files) is a tool for moving data from one machine to and from many machines, with the option to split or join the file along the way. It is useful for constructing scatter-gather types of applications on top of Chirp. -PARA -CODE(chirp_stream_files copy) duplicates a single file to multiple hosts. The PARAM(localfile) argument names a file on the local filesystem. The command will then open a connection to the following list of hosts, and stream the file to all simultaneously. -PARA -CODE(chirp_stream_files split) divides an ASCII file up among multiple hosts. The first line of PARAM(localfile) is sent to the first host, the second line to the second, and so on, round-robin. -PARA -CODE(chirp_stream_files join) collects multiple remote files into one. The argument PARAM(localfile) is opened for writing, and the remote files for reading. The remote files are read line-by-line and assembled round-robin into the local file. -PARA -In all cases, files are accessed in a streaming manner, making this particularly efficient for processing large files. A local file name of CODE(-) indicates standard input or standard output, so that the command can be used in a pipeline. -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_TRIPLET(-a, auth,flag)Require this authentication mode. -OPTION_TRIPLET(-b,block-size,size)Set transfer buffer size. (default is 1048576 bytes) -OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. -OPTION_TRIPLET(-i,tickes,files)Comma-delimited list of tickets to use for authentication. -OPTION_TRIPLET(-t,timeout,time)Timeout for failure. (default is 3600s) -OPTION_ITEM(`-v, --version')Show program version. -OPTION_ITEM(`-h, --help')Show help text. -OPTIONS_END - -SECTION(ENVIRONMENT VARIABLES) -List any environment variables used or set in this section. - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To copy the file CODE(mydata) to three locations: - -LONGCODE_BEGIN -% chirp_stream_files copy mydata server1.somewhere.edu /mydata - server2.somewhere.edu /mydata - server2.somewhere.edu /mydata -LONGCODE_END - -To split the file CODE(mydata) into subsets at three locations: - -LONGCODE_BEGIN -% chirp_stream_files split mydata server1.somewhere.edu /part1 - server2.somewhere.edu /part2 - server2.somewhere.edu /part3 -LONGCODE_END - -To join three remote files back into one called CODE(newdata): - -LONGCODE_BEGIN -% chirp_stream_files join newdata server1.somewhere.edu /part1 - server2.somewhere.edu /part2 - server2.somewhere.edu /part3 -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_CHIRP - -FOOTER diff -Nru cctools-7.0.22/doc/man/chroot_package_run.m4 cctools-7.1.2/doc/man/chroot_package_run.m4 --- cctools-7.0.22/doc/man/chroot_package_run.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/chroot_package_run.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -include(manual.h)dnl -HEADER(chroot_package_run)dnl - -SECTION(NAME) -BOLD(chroot_package_run) - repeat a program within the package with the help of CODE(chroot) - -SECTION(SYNOPSIS) -CODE(BOLD(chroot_package_run --package-path your-package-path [command])) - -SECTION(DESCRIPTION) -If CODE(chroot) is used to help repeat one experiment, common directories like BOLD(/proc), BOLD(/dev), BOLD(/net), BOLD(/sys), BOLD(/var), BOLD(/misc) and BOLD(/selinux) will be remounted into the package if they exists on your local filesystem. After you finish all your test within CODE(chroot_package_run), these remounted directories will be unmounted. If no command is given, a /bin/sh shell will be returned. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_ITEM(`-p, --package-path')The path of the package. -OPTION_ITEM(`-e, --env-list')The path of the environment file, each line is in the format of =. (Default: package-path/env_list) -OPTION_ITEM(`-h, --help')Show this help message. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) -To repeat one program within one package BOLD(/tmp/package) in a BOLD(bash) shell: -LONGCODE_BEGIN -% chroot_package_run --package-path /tmp/package /bin/bash -LONGCODE_END -After the execution of this command, one shell will be returned, where you can repeat your original program. After everything is done, exit CODE(chroot_package_run): -LONGCODE_BEGIN -% exit -LONGCODE_END -You can also directly set your command as the arguments of CODE(chroot_package_run). In this case, CODE(chroot_package_run) will exit automatically after the command is finished, and you do not need to use CODE(exit) to exit. However, your command must belong to the original command set executed inside CODE(parrot_run) and preserved by CODE(parrot_package_create). -LONGCODE_BEGIN -% chroot_package_run --package-path /tmp/package ls -al -LONGCODE_END - -Here is a short instruction about how to make use of CODE(parrot_run), CODE(parrot_package_create) and CODE(chroot_package_run) -to generate one package for your experiment and repeat your experiment within your package. -PARA -Step 1: Run your program under CODE(parrot_run) and using BOLD(--name-list) and BOLD(--env-list) parameters to -record the filename list and environment variables. -LONGCODE_BEGIN -% parrot_run --name-list namelist --env-list envlist /bin/bash -LONGCODE_END -After the execution of this command, you can run your program inside CODE(parrot_run). At the end of step 1, one file named BOLD(namelist) containing all the accessed file names and one file named BOLD(envlist) containing environment variables will be generated. -After everything is done, exit CODE(parrot_run): -LONGCODE_BEGIN -% exit -LONGCODE_END -PARA -Step 2: Using CODE(parrot_package_create) to generate a package. -LONGCODE_BEGIN -% parrot_package_create --name-list namelist --env-path envlist --package-path /tmp/package -LONGCODE_END -At the end of step 2, one package with the path of BOLD(/tmp/package) will be generated. -PARA -Step 3: Repeat your program within your package. -LONGCODE_BEGIN -% chroot_package_run --package-path /tmp/package /bin/bash -LONGCODE_END -After the execution of this command, one shell will be returned, where you can repeat your original program. After everything is done, exit CODE(chroot_package_run): -LONGCODE_BEGIN -% exit -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_PARROT - -FOOTER diff -Nru cctools-7.0.22/doc/man/condor_submit_workers.m4 cctools-7.1.2/doc/man/condor_submit_workers.m4 --- cctools-7.0.22/doc/man/condor_submit_workers.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/condor_submit_workers.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -include(manual.h)dnl -HEADER(condor_submit_workers)dnl - -SECTION(NAME) -BOLD(condor_submit_workers) - submit work_queue_worker to the Condor grid. - -SECTION(SYNOPSIS) -LONGCODE_BEGIN -CODE(BOLD(condor_submit_workers [options] PARAM(servername) PARAM(port) PARAM(num-workers))) -LONGCODE_END - -or - -LONGCODE_BEGIN -CODE(BOLD(condor_submit_workers [options] --master-name PARAM(name) PARAM(num-workers))) -LONGCODE_END - - -SECTION(DESCRIPTION) -CODE(condor_submit_workers) schedules the execution of MANPAGE(work_queue_worker,1) -on a grid managed by Condor through its job submission interface, condor_submit. -The number of BOLD(work_queue_worker) scheduled and run is given by the BOLD(num-workers) -argument. - -The BOLD(servername) and BOLD(port) arguments specify the hostname and port number of the -master for the work_queue_worker to connect. Alternatively, this information can be obtained from -the catalog server by specifying the name of the work queue using the --master-name parameter. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_TRIPLET(-M, master-name, name)Name of the preferred master for worker. -OPTION_TRIPLET(-N, name, name)Same as -M (backwards compatibility). -OPTION_TRIPLET(-C, catalog, catalog)Set catalog server to . format: HOSTNAME:PORT. -OPTION_TRIPLET(-t, timeout, time)Abort after this amount of idle time (default=900s). -OPTION_TRIPLET(-d, debug, subsystem)Enable debugging on worker for this subsystem (try -d all to start). -OPTION_TRIPLET(-w, tcp-window-size, size)Set TCP window size -OPTION_TRIPLET(-i, min-backoff, time)Set initial value for backoff interval when worker fails to connect to a master. (default=1s) -OPTION_TRIPLET(-b, max-backoff, time)Set maxmimum value for backoff interval when worker fails to connect to a master. (default=60s) -OPTION_TRIPLET(-z, disk-threshold, size)Set available disk space threshold (in MB). When exceeded worker will clean up and reconnect. (default=100MB) -OPTION_TRIPLET(-A, arch, arch)Set architecture string for the worker to report to master instead of the value in uname. -OPTION_TRIPLET(-O, os, os)Set operating system string for the worker to report to master instead of the value in uname. -OPTION_TRIPLET(-s, workdir, path)Set the location for creating the working directory of the worker. -OPTION_TRIPLET(-P,--password, file)Password file to authenticate workers to master. -OPTION_PAIR(--cores, cores)Set the number of cores each worker should use (0=auto). (default=1) -OPTION_PAIR(--memory, size)Manually set the amonut of memory (in MB) reported by this worker. -OPTION_PAIR(--disk, size)Manually set the amount of disk (in MB) reported by this worker. -OPTION_ITEM(`-h,--help')Show help message. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Submit 10 worker instances to run on Condor and connect to a specific master: - -LONGCODE_BEGIN -condor_submit_workers master.somewhere.edu 9123 10 -LONGCODE_END - -Submit 10 work_queue_worker instances to run on Condor in auto mode with their -preferred project name set to Project_A and abort timeout set to 3600 seconds: - -LONGCODE_BEGIN -condor_submit_workers -a -t 3600 -M Project_A 10 -LONGCODE_END - -SECTION(COPYRIGHT) -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_WORK_QUEUE - -FOOTER diff -Nru cctools-7.0.22/doc/man/confuga_adm.m4 cctools-7.1.2/doc/man/confuga_adm.m4 --- cctools-7.0.22/doc/man/confuga_adm.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/confuga_adm.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -include(manual.h)dnl -HEADER(confuga_adm) - -SECTION(NAME) -BOLD(Confuga Administration) - Administrating the Confuga cluster. - -SECTION(SYNOPSIS) -CODE(BOLD(confuga_adm [options] [command options] ...)) - -SECTION(DESCRIPTION) - -PARA -Performs administrative commands on the Confuga cluster. - -PARA -For complete details with examples, see the LINK(Confuga User's Manual,http://ccl.cse.nd.edu/software/manuals/confuga.html). - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_TRIPLET(-d, debug, flag)Enable debugging for this sybsystem -OPTION_ITEM(`-h, --help')Give help information. -OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). -OPTION_ITEM(`-v, --version')Show version info. -OPTIONS_END - -SECTION(COMMANDS) - -LIST_BEGIN -LIST_ITEM(BOLD(sn-add [-r ] [-p ] <"uuid"|"address"> )) Add a storage node to the cluster. Using the UUID of the Chirp server is recommended. -LIST_ITEM(BOLD(sn-rm [options] <"uuid"|"address"> )) Remove a storage from the cluster. Using the UUID of the Chirp server is recommended. The storage node is removed when Confuga no longer relies on it to maintain minimum replication for files and when the storage node completes all running jobs. -LIST_END - -SECTION(EXAMPLES) - -PARA -Add a storage node with Confuga state stored in BOLD(/u/joe/confuga): - -LONGCODE_BEGIN -confuga_adm sn-add -r /u/joe/confuga address 10.0.1.125:9090 -LONGCODE_END - -PARA -Remove a storage node: - -LONGCODE_BEGIN -confuga_adm sn-rm address 10.0.1.125:9090 -LONGCODE_END - -SECTION(COPYRIGHT) -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -MANPAGE(confuga,1) - -FOOTER diff -Nru cctools-7.0.22/doc/man/confuga.m4 cctools-7.1.2/doc/man/confuga.m4 --- cctools-7.0.22/doc/man/confuga.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/confuga.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,202 +0,0 @@ -include(manual.h)dnl -HEADER(confuga) - -SECTION(NAME) -BOLD(Confuga) - An active storage cluster file system. - -SECTION(SYNOPSIS) -CODE(BOLD(chirp_server --jobs --root= [options])) - -SECTION(DESCRIPTION) - -PARA -Configures and starts a Chirp server to act as the head node for a Confuga -storage cluster. - -PARA -For complete details with examples, see the LINK(Confuga User's Manual,http://ccl.cse.nd.edu/software/manuals/confuga.html). - -SECTION(OPTIONS) - -PARA -A Chirp server acting as the Confuga head node uses normal -MANPAGE(chirp_server,1) options. In order to run the Chirp server as the -Confuga head node, use the BOLD(--root) switch with the Confuga URI. You must -also enable job execution with the BOLD(--jobs) switch. - -PARA -The format for the Confuga URI is: -BOLD(confuga:///path/to/workspace?option1=value&option2=value). The workspace -path is the location Confuga maintains metadata and databases for the head -node. Confuga specific options are also passed through the URI, documented -below. Examples demonstrating how to start Confuga and a small cluster are at -the end of this manual. - -OPTIONS_BEGIN -OPTION_PAIR(auth,method)Enable this method for Head Node to Storage Node authentication. The default is to enable all available authentication mechanisms. -OPTION_PAIR(concurrency,limit)Limits the number of concurrent jobs executed by the cluster. The default is 0 for limitless. -OPTION_PAIR(pull-threshold,bytes)Sets the threshold for pull transfers. The default is 128MB. -OPTION_PAIR(replication,type)Sets the replication mode for satisfying job dependencies. BOLD(type) may be BOLD(push-sync) or BOLD(push-async-N). The default is BOLD(push-async-1). -OPTION_PAIR(scheduler,type)Sets the scheduler used to assign jobs to storage nodes. The default is BOLD(fifo-0). -OPTION_PAIR(tickets,tickets)Sets tickets to use for authenticating with storage nodes. Paths must be absolute. -OPTIONS_END - -SECTION(STORAGE NODES) - -PARA -Confuga uses regular Chirp servers as storage nodes. Each storage node is -added to the cluster using the MANPAGE(confuga_adm,1) command. All storage -node Chirp servers must be run with: - -LIST_BEGIN -LIST_ITEM(Ticket authentication enabled (BOLD(--auth=ticket)). Remember by default all authentication mechanisms are enabled.) -LIST_ITEM(Job execution enabled (BOLD(--jobs)).) -LIST_ITEM(Job concurrency of at least two (BOLD(--job-concurrency=2)).) -LIST_END - -PARA -These options are also suggested but not required: - -LIST_BEGIN -LIST_ITEM(More frequent Catalog updates (BOLD(--catalog-update=30s)).) -LIST_ITEM(Project name for the cluster (BOLD(--project-name=foo)).) -LIST_END - -PARA -You must also ensure that the storage nodes and the Confuga head node are using -the same MANPAGE(catalog_server,1). By default, this should be the case. The -BOLD(EXAMPLES) section below includes an example cluster using a manually -hosted catalog server. - -SUBSECTION(ADDING STORAGE NODES) - -PARA -To add storage nodes to the Confuga cluster, use the MANPAGE(confuga_adm,1) -administrative tool. - -SECTION(EXECUTING WORKFLOWS) - -PARA -The easiest way to execute workflows on Confuga is through MANPAGE(makeflow,1). -Only two options to Makeflow are required, BOLD(--batch-type) and -BOLD(--working-dir). Confuga uses the Chirp job protocol, so the batch type is -BOLD(chirp). It is also necessary to define the executing server, the Confuga -Head Node, and the ITALIC(namespace) the workflow executes in. For example: - -LONGCODE_BEGIN -makeflow --batch-type=chirp --working-dir=chirp://confuga.example.com:9094/BOLD(path/to/workflow) -LONGCODE_END - -PARA -The workflow namespace is logically prepended to all file paths defined in the -Makeflow specification. So for example, if you have this Makeflow file: - -LONGCODE_BEGIN -a: exe - ./exe > a -LONGCODE_END - -PARA -Confuga will execute BOLD(/path/to/workflow/exe) and produce the output file BOLD(/path/to/workflow/a). - -PARA -Unlike other batch systems used with Makeflow, like Condor or Work Queue, -ITALIC(all files used by a workflow must be in the Confuga file system). Condor -and Work Queue both stage workflow files from the submission site to the -execution sites. In Confuga, the entire workflow dataset, including -executables, is already resident. So when executing a new workflow, you need -to upload the workflow dataset to Confuga. The easiest way to do this is using -the MANPAGE(chirp,1) command line tool: - -LONGCODE_BEGIN -chirp confuga.example.com put workflow/ /path/to/ -LONGCODE_END - -PARA -Finally, Confuga does not save the ITALIC(stdout) or ITALIC(stderr) of jobs. -If you want these files for debugging purposes, you must explicitly save them. -To streamline the process, you may use Makeflow's BOLD(--wrapper) options to -save ITALIC(stdout) and ITALIC(stderr): - -LONGCODE_BEGIN -makeflow --batch-type=chirp \\ - --working-dir=chirp://confuga.example.com/ \\ - --wrapper=$'{\\n{}\\n} > stdout.%% 2> stderr.%%' \\ - --wrapper-output='stdout.%%' \\ - --wrapper-output='stderr.%%' -LONGCODE_END - -SECTION(EXAMPLES) - -PARA -Launch a head node with Confuga state stored in BOLD(./confuga.root): - -LONGCODE_BEGIN -chirp_server --jobs --root="confuga://$(pwd)/confuga.root/" -LONGCODE_END - -PARA -Launch a head node with workspace BOLD(/tmp/confuga.root) using storage nodes BOLD(chirp://localhost:10001) and BOLD(chirp://localhost:10002/u/joe/confuga): - -LONGCODE_BEGIN -chirp_server --jobs --root='confuga:///tmp/confuga.root/' -confuga_adm confuga:///tmp/confuga.root/ sn-add address localhost:10001 -confuga_adm confuga:///tmp/confuga.root/ sn-add -r /u/joe/confuga address localhost:10001 -LONGCODE_END - -PARA -Run a simple test cluster on your workstation: - -LONGCODE_BEGIN -# start a catalog server in the background -catalog_server --history=catalog.history \\ - --update-log=catalog.update \\ - --interface=127.0.0.1 \\ - & -# sleep for a time so catalog can start -sleep 1 -# start storage node 1 in the background -chirp_server --advertise=localhost \\ - --catalog-name=localhost \\ - --catalog-update=10s \\ - --interface=127.0.0.1 \\ - --jobs \\ - --job-concurrency=10 \\ - --root=./root.1 \\ - --port=9001 \\ - --project-name=test \\ - --transient=./tran.1 \\ - & -# start storage node 2 in the background -chirp_server --advertise=localhost \\ - --catalog-name=localhost \\ - --catalog-update=10s \\ - --interface=127.0.0.1 \\ - --jobs \\ - --job-concurrency=10 \\ - --root=./root.2 \\ - --port=9002 \\ - --project-name=test \\ - --transient=./tran.2 \\ - & -# sleep for a time so catalog can receive storage node status -sleep 5 -confuga_adm confuga:///$(pwd)/confuga.root/ sn-add address localhost:9001 -confuga_adm confuga:///$(pwd)/confuga.root/ sn-add address localhost:9002 -# start the Confuga head node -chirp_server --advertise=localhost \\ - --catalog-name=localhost \\ - --catalog-update=30s \\ - --debug=confuga \\ - --jobs \\ - --root="confuga://$(pwd)/confuga.root/?auth=unix" \\ - --port=9000 -LONGCODE_END - -SECTION(COPYRIGHT) -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -MANPAGE(confuga_adm,1) SEE_ALSO_CHIRP - -FOOTER diff -Nru cctools-7.0.22/doc/man/deltadb_query.m4 cctools-7.1.2/doc/man/deltadb_query.m4 --- cctools-7.0.22/doc/man/deltadb_query.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/deltadb_query.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ -include(manual.h)dnl -HEADER(deltadb_query) - -SECTION(NAME) -BOLD(deltadb_query) - query historical data stored by the catalog server. - -SECTION(SYNOPSIS) -CODE(BOLD(deltadb_query --db [source_directory] --from [starttime] --to [endtime] [--filter [expr]] [--where [expr]] [--output [expr]])) - -SECTION(DESCRIPTION) - -BOLD(deltadb_query) is a tool that examines and displays historical data of the catalog server. -(If given the -H option, the catalog server will record historical data in a format -known as DeltaDB, hence the name of this tool.) -The results can be displayed as a stream of time-ordered updates -or as summaries of properties across all records over time. -This is useful for reporting, for example, the total resources and clients -served by a large collection of servers over the course of a year. - -A paper entitled DeltaDB describes the operation of the tools in detail (see reference below). - -SECTION(ARGUMENTS) -OPTIONS_BEGIN -OPTION_ITEM(--db path) Query this database directory. -OPTION_ITEM(--file path) Query the data stream in this file. -OPTION_ITEM(--from time) (required) The starting date and time of the query in an absolute time like "YYYY-MM-DD HH:MM:SS" or "YYYY-MM-DD" or a relative time like 5s, 5m, 5h, 5d to indicate five seconds, minutes, hours, or days ago, respectively. -OPTION_ITEM(--to time) The ending time of the query, in the same format as the --from option. If omitted, the current time is assumed. -OPTION_ITEM(--every interval) The intervals at which output should be produced, like 5s, 5m, 5h, 5d to indicate five seconds, minutes, hours, or days ago, respectively. -OPTION_ITEM(--epoch) Causes the output to be expressed in integer Unix epoch time, instead of a formatted time. -OPTION_ITEM(--filter expr) (multiple) If given, only records matching this expression will be processed. Use --filter to apply expressions that do not change over time, such as the name or type of a record. -OPTION_ITEM(--where expr) (multiple) If given, only records matching this expression will be displayed. Use --where to apply expressions that may change over time, such as load average or storage space consumed. -OPTION_ITEM(--output expr) (multiple) Display this expression on the output. -OPTIONS_END - -SECTION(EXAMPLES) - -To show 1 week worth of history starting on 15 April 2013: - -LONGCODE_BEGIN -% deltadb_query --db /data/catalog.history --from 2013-04-15 --to 2015-04-22 -LONGCODE_END - -To show all history after 1 March 2013: - -LONGCODE_BEGIN -% deltadb_query --db /data/catalog.history --from 2013-03-01 -LONGCODE_END - -To show the names of fred's servers where load5 exceeds 2.0: - -LONGCODE_BEGIN -% deltadb_query --db /data/catalog.history --from 2013-03-01 --filter 'owner=="fred"' --where 'load5>2.0' --output name --output load5 -LONGCODE_END - -To show the average load of all servers owned by fred at one hour intervals: - -LONGCODE_BEGIN -% deltadb_query --db /data/catalog.history --from 2013-03-01 --filter 'owner=="fred"' --output 'AVERAGE(load5)' --every 1h -LONGCODE_END - -The raw event output of a query can be saved to a file, and then queried using the --file option, which can accelerate operations on reduced data. For example: - -LONGCODE_BEGIN -% deltadb_query --db /data/catalog.history --from 2014-01-01 --to 2015-01-01 --filter 'type=="wq_master"' > wq.data -% deltadb_query --file wq.data --from 2014-01-01 --output 'COUNT(name)' --output 'MAX(tasks_running)' -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_CATALOG - -FOOTER diff -Nru cctools-7.0.22/doc/man/disk_allocator.m4 cctools-7.1.2/doc/man/disk_allocator.m4 --- cctools-7.0.22/doc/man/disk_allocator.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/disk_allocator.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -include(manual.h)dnl -HEADER(disk_allocator) - -SECTION(NAME) -BOLD(disk_allocator) - tool for creating and deleting loop device allocations of a given size. - -SECTION(SYNOPSIS) -CODE(BOLD(disk_allocator [options] PARAM(create|delete) PARAM(target directory) PARAM(size) PARAM(filesystem))) - -SECTION(DESCRIPTION) - -BOLD(disk_allcator) is a tool for creating and deleting loop device allocations -of a given size in order to sandbox an application. For creating an allocation, -it accepts a desired location for the device, the size for the sandbox, and the -filesystem to mount. For deleting an allocation, BOLD(disk_allocator) needs only -the directory of the mounted loop device which is to be removed. - -PARA - -You will need superuser priveleges to run BOLD(disk_allocator) on your local machine. - -PARA - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_ITEM(`-h, --help')Show this help screen. -OPTION_ITEM(`-v, --version')Show version string. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Create a disk allocation: -LONGCODE_BEGIN -disk_allocator create /tmp/test 100MB ext2 -LONGCODE_END - -Delete a disk allocation: -LONGCODE_BEGIN -disk_allocator delete /tmp/test -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -FOOTER diff -Nru cctools-7.0.22/doc/man/m4/allpairs_master.m4 cctools-7.1.2/doc/man/m4/allpairs_master.m4 --- cctools-7.0.22/doc/man/m4/allpairs_master.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/allpairs_master.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,132 @@ +include(manual.h)dnl +HEADER(allpairs_master) + +SECTION(NAME) +BOLD(allpairs_master) - executes All-Pairs workflow in parallel on distributed systems + +SECTION(SYNOPSIS) +CODE(BOLD(allparis_master [options] PARAM(set A) PARAM(set B) PARAM(compare function))) + +SECTION(DESCRIPTION) + +BOLD(allpairs_master) computes the Cartesian product of two sets +(BOLD(PARAM(set A)) and BOLD(PARAM(set B))), generating a matrix where each cell +M[i,j] contains the output of the function F (BOLD(PARAM(compare function))) on +objects A[i] (an item in BOLD(PARAM(set A))) and B[j] (an item in +BOLD(PARAM(set B))). The resulting matrix is displayed on the standard output, +one comparison result per line along with the associated X and Y indices. +PARA +BOLD(allpairs_master) uses the Work Queue system to distribute tasks among +processors. Each processor utilizes the MANPAGE(allpairs_multicore,1) program +to execute the tasks in parallel if multiple cores are present. After starting +BOLD(allpairs_master), you must start a number of MANPAGE(work_queue_worker,1) +processes on remote machines. The workers will then connect back to the master +process and begin executing tasks. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_TRIPLET(-p,port,port)The port that the master will be listening on. +OPTION_TRIPLET(-e,extra-args,args)Extra arguments to pass to the comparison function. +OPTION_TRIPLET(-f,input-file,file)Extra input file needed by the comparison function. (may be given multiple times) +OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). +OPTION_TRIPLET(-O,--output-file,file)Write task output to this file (default to standard output) +OPTION_TRIPLET(-t,estimated-time,seconds)Estimated time to run one comparison. (default chosen at runtime) +OPTION_TRIPLET(-x,width,item)Width of one work unit, in items to compare. (default chosen at runtime) +OPTION_TRIPLET(-y,height,items)Height of one work unit, in items to compare. (default chosen at runtime) +OPTION_TRIPLET(-N,project-name,project)Report the master information to a catalog server with the project name - PARAM(project) +OPTION_TRIPLET(-P,priority,integer)Priority. Higher the value, higher the priority. +OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. (Try -d all to start.) +OPTION_ITEM(`-v, --version')Show program version. +OPTION_PAIR(`-h, --help')Display this message. +OPTION_TRIPLET(-Z,port-file,file)Select port at random and write it to this file. (default is disabled) +OPTION_PAIR(--work-queue-preferred-connection,connection)Indicate preferred connection. Chose one of by_ip or by_hostname. (default is by_ip) +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Let's suppose you have a whole lot of files that you want to compare all to +each other, named CODE(a), CODE(b), CODE(c), and so on. Suppose that you also +have a program named BOLD(compareit) that when invoked as CODE(compareit a b) +will compare files CODE(a) and CODE(b) and produce some output summarizing the +difference between the two, like this: + +LONGCODE_BEGIN + a b are 45 percent similar +LONGCODE_END + +To use the allpairs framework, create a file called CODE(set.list) that lists each of +your files, one per line: + +LONGCODE_BEGIN + a + b + c + ... +LONGCODE_END + +Because BOLD(allpairs_master) utilizes MANPAGE(allpairs_multicore,1), so please +make sure MANPAGE(allpairs_multicore,1) is in your PATH before you proceed.To run +a All-Pairs workflow sequentially, start a single MANPAGE(work_queue_worker,1) +process in the background. Then, invoke BOLD(allpairs_master). + +LONGCODE_BEGIN + % work_queue_worker localhost 9123 & + % allpairs_master set.list set.list compareit +LONGCODE_END + +The framework will carry out all possible comparisons of the objects, and print +the results one by one (note that the first two columns are X and Y indices in +the resulting matrix): + +LONGCODE_BEGIN + 1 1 a a are 100 percent similar + 1 2 a b are 45 percent similar + 1 3 a c are 37 percent similar + ... +LONGCODE_END + +To speed up the process, run more MANPAGE(work_queue_worker,1) processes on +other machines, or use MANPAGE(condor_submit_workers,1) or +MANPAGE(sge_submit_workers,1) to start hundreds of workers in your local batch +system. +PARA +The following is an example of adding more workers to execute a All-Pairs +workflow. Suppose your BOLD(allpairs_master) is running on a machine named +barney.nd.edu. If you have access to login to other machines, you could simply +start worker processes on each one, like this: + +LONGCODE_BEGIN + % work_queue_worker barney.nd.edu 9123 +LONGCODE_END + +If you have access to a batch system like Condor, you can submit multiple +workers at once: + +LONGCODE_BEGIN + % condor_submit_workers barney.nd.edu 9123 10 + Submitting job(s).......... + Logging submit event(s).......... + 10 job(s) submitted to cluster 298. +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +LIST_BEGIN +LIST_ITEM(LINK(The Cooperative Computing Tools,"http://ccl.cse.nd.edu/software/manuals")) +LIST_ITEM(LINK(All-Pairs User Manual,"http://ccl.cse.nd.edu/software/manuals/allpairs.html")) +LIST_ITEM(LINK(Work Queue User Manual,"http://ccl.cse.nd.edu/software/manuals/workqueue.html")) +LIST_ITEM(MANPAGE(work_queue_worker,1)) +LIST_ITEM(MANPAGE(condor_submit_workers,1)) +LIST_ITEM(MANPAGE(sge_submit_workers,1)) +LIST_ITEM(MANPAGE(allpairs_multicore,1)) +LIST_END + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/allpairs_multicore.m4 cctools-7.1.2/doc/man/m4/allpairs_multicore.m4 --- cctools-7.0.22/doc/man/m4/allpairs_multicore.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/allpairs_multicore.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,91 @@ +include(manual.h)dnl +HEADER(allpairs_multicore) + +SECTION(NAME) +BOLD(allpairs_multicore) - executes All-Pairs workflow in parallel on a multicore machine + +SECTION(SYNOPSIS) +CODE(BOLD(allparis_multicore [options] PARAM(set A) PARAM(set B) PARAM(compare function))) + +SECTION(DESCRIPTION) + +BOLD(allpairs_multicore) computes the Cartesian product of two sets +(BOLD(PARAM(set A)) and BOLD(PARAM(set B))), generating a matrix where each cell +M[i,j] contains the output of the function F (BOLD(PARAM(compare function))) on +objects A[i] (an item in BOLD(PARAM(set A))) and B[j] (an item in +BOLD(PARAM(set B))). The resulting matrix is displayed on the standard output, +one comparison result per line along with the associated X and Y indices. +PARA +For large sets of objects, BOLD(allpairs_multicore) will use as many cores as +you have available, and will carefully manage virtual memory to exploit +locality and avoid thrashing. Because of this, you should be prepared for the +results to come back in any order. If you want to further exploit the +parallelism of executing All-Pairs workflows on multiple (multicore) machines, +please refer to the MANPAGE(allpairs_master,1) utility. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_TRIPLET(-b, block-size, items)Block size: number of items to hold in memory at once. (default: 50% of RAM) +OPTION_TRIPLET(-c, cores, cores)Number of cores to be used. (default: # of cores in machine) +OPTION_TRIPLET(-e, extra-args, args)Extra arguments to pass to the comparison program. +OPTION_TRIPLET(-d, debug, flag)Enable debugging for this subsystem. +OPTION_ITEM(`-v, --version')Show program version. +OPTION_ITEM(`-h, --help')Display this message. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Let's suppose you have a whole lot of files that you want to compare all to +each other, named CODE(a), CODE(b), CODE(c), and so on. Suppose that you also +have a program named CODE(BOLD(compareit)) that when invoked as CODE(compareit a b) +will compare files CODE(a) and CODE(b) and produce some output summarizing the +difference between the two, like this: + +LONGCODE_BEGIN + a b are 45 percent similar +LONGCODE_END + +To use the allpairs framework, create a file called CODE(set.list) that lists each of +your files, one per line: + +LONGCODE_BEGIN + a + b + c + ... +LONGCODE_END + +Then, invoke BOLD(allpairs_multicore) like this: + +LONGCODE_BEGIN + % allpairs_multicore set.list set.list compareit +LONGCODE_END + +The framework will carry out all possible comparisons of the objects, and print +the results one by one (note that the first two columns are X and Y indices in +the resulting matrix): + +LONGCODE_BEGIN + 1 1 a a are 100 percent similar + 1 2 a b are 45 percent similar + 1 3 a c are 37 percent similar + ... +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +LIST_BEGIN +LIST_ITEM(LINK(The Cooperative Computing Tools,"http://ccl.cse.nd.edu/software/manuals")) +LIST_ITEM(LINK(All-Pairs User Manual,"http://ccl.cse.nd.edu/software/manuals/allpairs.html")) +LIST_ITEM(MANPAGE(allpairs_master,1)) +LIST_END + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/catalog_query.m4 cctools-7.1.2/doc/man/m4/catalog_query.m4 --- cctools-7.0.22/doc/man/m4/catalog_query.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/catalog_query.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,56 @@ +include(manual.h)dnl +HEADER(catalog_query) + +SECTION(NAME) +BOLD(catalog_query) - query records from the catalog server + +SECTION(SYNOPSIS) +CODE(BOLD(catalog_query [--where [expr]] [--catalog [host]] [-d [flag]] [-o [file]] [-O [size]] [-t [timeout]] [-h] )) + +SECTION(DESCRIPTION) + +BOLD(catalog_query) is a tool that queries a catalog server for raw +JSON records. The records can be filtered by an optional --where expression. +This tool is handy for querying custom record types not handled +by other tools. + +SECTION(ARGUMENTS) + +OPTIONS_BEGIN +OPTION_ITEM(--where expr) Only records matching this expression will be displayed. +OPTION_ITEM(--catalog host) Query this catalog host. +OPTION_ITEM(--debug flag) Enable debugging for this subsystem. +OPTION_ITEM(--debug-file file) Send debug output to this file. +OPTION_ITEM(--debug-rotate-max bytes) Rotate debug file once it reaches this size. +OPTION_ITEM(--timeout seconds) Abandon the query after this many seconds. +OPTION_ITEM(--help) Show command options. +OPTIONS_END + +SECTION(EXAMPLES) + +To show all records in the catalog server: + +LONGCODE_BEGIN +% catalog_query +LONGCODE_END + +To show all records of other catalog servers: + +LONGCODE_BEGIN +% catalog_query --where \'type=="catalog"\' +LONGCODE_END + +To show all records of Chirp servers with more than 4 cpus: + +LONGCODE_BEGIN +% catalog_query --where \'type=="chirp" && cpus > 4\' +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_CATALOG + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/catalog_server.m4 cctools-7.1.2/doc/man/m4/catalog_server.m4 --- cctools-7.0.22/doc/man/m4/catalog_server.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/catalog_server.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,81 @@ +include(manual.h)dnl +HEADER(catalog_server) + +SECTION(NAME) +BOLD(catalog_server) - start a catalog server + +SECTION(SYNOPSIS) +CODE(BOLD(catalog_server [options])) + +SECTION(DESCRIPTION) + +PARA +A catalog server provides naming and discovery for multiple components +of the Cooperative Computing Tools, particularly the Chirp distributed +filesystem and the Work Queue distributed programming framework. +Services that wish to be known on the network periodically publish +their information to the catalog server via a short UDP packet. +Clients wishing to discover services by name may query the catalog +by issuing an HTTP request to the catalog server and will receive +back a listing of all known services. + +PARA +To view the complete contents of the catalog, users can direct +their browser to CODE(http://catalog.cse.nd.edu:9097). Command line tools +CODE(work_queue_status) and CODE(chirp_status) present the same data in +a form most useful for Work Queue and Chirp, respectively. +Large sites are encouraged +to run their own catalog server and set the CODE(CATALOG_HOST) +and CODE(CATALOG_PORT) environment variables to direct clients to their server. + +PARA +The catalog server is a discovery service, not an authentication service, +so services are free to advertise whatever names and properties they please. +However, the catalog does update each incoming record with the actual IP address +and port from which it came, thus preventing a malicious service from +overwriting another service's record. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_ITEM(`-b, --background')Run as a daemon. +OPTION_TRIPLET(-B, pid-file,file)Write process identifier (PID) to file. +OPTION_TRIPLET(-d, debug, flag)Enable debugging for this subsystem +OPTION_ITEM(`-h, --help')Show this help screen +OPTION_TRIPLET(-H, history, directory) Store catalog history in this directory. Enables fast data recovery after a failure or restart, and enables historical queries via deltadb_query. +OPTION_TRIPLET(-I, interface, addr)Listen only on this network interface. +OPTION_TRIPLET(-l, lifetime, secs)Lifetime of data, in seconds (default is 1800) +OPTION_TRIPLET(-L, update-log,file)Log new updates to this file. +OPTION_TRIPLET(-m, max-jobs,n)Maximum number of child processes. (default is 50) +OPTION_TRIPLET(-M, server-size, size)Maximum size of a server to be believed. (default is any) +OPTION_TRIPLET(-n, name, name)Set the preferred hostname of this server. +OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). +OPTION_TRIPLET(-O, debug-rotate-max, bytes)Rotate debug file once it reaches this size (default 10M, 0 disables). +OPTION_TRIPLET(-p,, port, port)Port number to listen on (default is 9097) +OPTION_ITEM(`-S, --single')Single process mode; do not fork on queries. +OPTION_TRIPLET(-T, timeout, time)Maximum time to allow a query process to run. (default is 60s) +OPTION_TRIPLET(-u, update-host, host)Send status updates to this host. (default is catalog.cse.nd.edu,backup-catalog.cse.nd.edu) +OPTION_TRIPLET(-U, update-interval, time)Send status updates at this interval. (default is 5m) +OPTION_ITEM(`-v, --version')Show version string +OPTION_TRIPLET(-Z,port-file,file)Select port at random and write it to this file. (default is disabled) +OPTIONS_END + +SECTION(ENVIRONMENT VARIABLES) + +LIST_BEGIN +LIST_ITEM(CODE(BOLD(CATALOG_HOST)) Hostname of catalog server (same as CODE(-u)).) +LIST_ITEM(CODE(BOLD(CATALOG_PORT)) Port number of catalog server to be contacted.) +LIST_ITEM(CODE(BOLD(TCP_LOW_PORT)) Inclusive low port in range used with CODE(-Z).) +LIST_ITEM(CODE(BOLD(TCP_HIGH_PORT)) Inclusive high port in range used with CODE(-Z).) +LIST_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_CATALOG + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/catalog_update.m4 cctools-7.1.2/doc/man/m4/catalog_update.m4 --- cctools-7.0.22/doc/man/m4/catalog_update.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/catalog_update.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,85 @@ +include(manual.h)dnl +HEADER(catalog_update) + +SECTION(NAME) +BOLD(catalog_update) - send update to catalog server + +SECTION(SYNOPSIS) +CODE(BOLD(catalog_update [options] [name=value] ..)) + +SECTION(DESCRIPTION) + +PARA +The CODE(catalog_update) tool allows users to manually send an update to a +catalog server via a short UDP packet. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_TRIPLET(-c, catalog, host)Send update to this catalog host. +OPTION_TRIPLET(-f, file, json-file) Send additional JSON attributes in this file. +OPTION_TRIPLET(-d, debug, flags) Enable debug flags. +OPTION_TRIPLET(-o, debug-file, file) Send debug output to this file. +OPTION_PAIR(-v,version) Show software version. +OPTION_PAIR(-h, help) Show all options. + +PARA +The CODE(catalog_update) tool sends a custom message to the catalog +server in the from of a JSON object with various properties describing +the host. By default, the CODE(catalog_update) tool includes the following +fields in the update: + +LIST_BEGIN +LIST_ITEM(CODE(BOLD(type)) This describes the node type (default is "node").) +LIST_ITEM(CODE(BOLD(version)) This is the version of CCTools.) +LIST_ITEM(CODE(BOLD(cpu)) This is CPU architecture of the machine.) +LIST_ITEM(CODE(BOLD(opsys)) This is operating system of the machine.) +LIST_ITEM(CODE(BOLD(opsysversion)) This is operating system version of the machine.) +LIST_ITEM(CODE(BOLD(load1)) This is 1-minute load of the machine.) +LIST_ITEM(CODE(BOLD(load5)) This is 5-minute load of the machine.) +LIST_ITEM(CODE(BOLD(load15)) This is 15-minute load of the machine.) +LIST_ITEM(CODE(BOLD(memory_total)) This is total amount of memory on the machine) +LIST_ITEM(CODE(BOLD(memory_avail)) This is amount of available memory on the machine) +LIST_ITEM(CODE(BOLD(cpus)) This is number of detected CPUs on the machine.) +LIST_ITEM(CODE(BOLD(uptime)) This how long the machine has been running.) +LIST_ITEM(CODE(BOLD(owner)) This is user who sent the update.) +LIST_END +OPTIONS_END + +The field CODE(name) is intended to give a human-readable name to a service or +application which accepts incoming connections at CODE(port). + + +SECTION(ENVIRONMENT VARIABLES) + +LIST_BEGIN +LIST_ITEM(CODE(BOLD(CATALOG_HOST)) Hostname of catalog server (same as CODE(-c)).) +LIST_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) +PARA + +The following example sends an update to the catalog server located at +CODE(catalog.cse.nd.edu) with three custom fields. + +LONGCODE_BEGIN +% cat > test.json << EOF +{ + "type" : "node", + "has_java" : true, + "mode" : 3 +} +EOF +% catalog_update -c catalog.cse.nd.edu -f test.json +LONGCODE_END + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_CATALOG + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/chirp_benchmark.m4 cctools-7.1.2/doc/man/m4/chirp_benchmark.m4 --- cctools-7.0.22/doc/man/m4/chirp_benchmark.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/chirp_benchmark.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,49 @@ +include(manual.h)dnl +HEADER(chirp_benchmark) + +SECTION(NAME) +BOLD(chirp_benchmark) - do micro-performance tests on a Chirp server + +SECTION(SYNOPSIS) +CODE(BOLD(chirp_benchmark PARAM(host[:port]) PARAM(file) PARAM(loops) PARAM(cycles) PARAM(bwloops))) + +SECTION(DESCRIPTION) + +PARA +CODE(chirp_benchmark) tests a Chirp server's bandwidth and latency for various +Remote Procedure Calls. The command uses a combination of RPCs that do and do +not use I/O bandwidth on the backend filesystem to measure the latency. It also +tests the throughput for reading and writing to the given filename with +various block sizes. + +PARA +For complete details with examples, see the LINK(Chirp User's Manual,http://ccl.cse.nd.edu/software/manuals/chirp.html). + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To test a Chirp server, you may use: + +LONGCODE_BEGIN +$ chirp_benchmark host:port foobar 10 10 10 +getpid 1.0000 +/- 0.1414 usec +write1 496.3200 +/- 41.1547 usec +write8 640.0400 +/- 23.8790 usec +read1 41.0400 +/- 91.3210 usec +read8 0.9200 +/- 0.1789 usec +stat 530.2400 +/- 14.2425 usec +open 1048.1200 +/- 15.5097 usec +... +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_CHIRP + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/chirp_distribute.m4 cctools-7.1.2/doc/man/m4/chirp_distribute.m4 --- cctools-7.0.22/doc/man/m4/chirp_distribute.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/chirp_distribute.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,81 @@ +include(manual.h)dnl +HEADER(chirp_stream_files) + +SECTION(NAME) +BOLD(chirp_distribute) - copy a directory from one Chirp server to one or more Chirp server(s). + +SECTION(SYNOPSIS) +CODE(BOLD(chirp_distribute [options] PARAM(sourcehost) PARAM(sourcepath) PARAM(host1) PARAM(host2) PARAM(host3) ...)) + +SECTION(DESCRIPTION) +BOLD(chirp_distribute) is a tool for coping commonly used data across Chirp servers. Data is originated from a Chirp server PARAM(sourcehost) PARAM(sourcepath) and is copied to a given list of Chirp server(s) PARAM(host1) PARAM(host2) PARAM(host3), etc ... +PARA +BOLD(chirp_distribute) is a quick and simple way for replicating a directory from a Chirp server to many Chirp Servers by creating a spanning tree and then transferring data concurrently from host to host using third party transfer. It is faster than manually copying data using BOLD(parrot cp), BOLD(chirp_put) or BOLD(chirp_third_put) +PARA +BOLD(chirp_distribute) also can clean up replicated data using -X option. +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_TRIPLET(-a,auth,flag)Require this authentication mode. +OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. +OPTION_ITEM(`-D, --info-transfer')Show detailed location, time, and performance of each transfer. +OPTION_TRIPLET(-F,failures-file,file)Write matrix of failures to this file. +OPTION_TRIPLET(-i,tickets,files)Comma-delimited list of tickets to use for authentication. +OPTION_TRIPLET(-N, copies-max,num)Stop after this number of successful copies. +OPTION_TRIPLET(-p,jobs,num)Maximum number of processes to run at once (default=100) +OPTION_ITEM(`-R, --randomize-hosts')Randomize order of target hosts given on command line. +OPTION_TRIPLET(-t,timeout,time)Timeout for for each copy. (default is 3600s) +OPTION_TRIPLET(-T,timeout-all,time)Overall timeout for entire distribution. (default is 3600). +OPTION_ITEM(`-v, --verbose')Show program version. +OPTION_ITEM(`-X, --delete-target')Delete data from all of the target hosts. +OPTION_ITEM(`-Y, --info-success')Show confirmation of successful placements. +OPTION_ITEM(`-h, --help')Show help text. +OPTIONS_END + +SECTION(ENVIRONMENT VARIABLES) + +LIST_BEGIN +LIST_ITEM(CODE(BOLD(CHIRP_CLIENT_TICKETS)) Comma delimited list of tickets to authenticate with (same as CODE(-i)).) +LIST_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) +To copy a directory from server1 to server2, server3, server4 using BOLD(chirp_distribute): +LONGCODE_BEGIN +chirp_distribute server1.somewhere.edu /mydata server2.somewhere.edu server3.somewhere.edu server4.somewhere.edu +LONGCODE_END + +To replicate a directory from server1 to all available Chirp server(s) in Chirp catalog using BOLD(chirp_distribute) and BOLD(chirp_status): + +LONGCODE_BEGIN +changequote() +chirp_distribute server1.somewhere.edu /mydata \`chirp_status -s\` +changequote +LONGCODE_END + +To replicate a directory from server1 to all available Chirp server(s) in Chirp catalog using BOLD(chirp_distribute) and BOLD(chirp_status). However stop when reach 100 copies with -N option: +LONGCODE_BEGIN +changequote() +chirp_distribute -N 100 server1.somewhere.edu /mydata \`chirp_status -s\` +changequote +LONGCODE_END + +To clean up replicated data using BOLD(chirp_distribute) using -X option: +LONGCODE_BEGIN +changequote() +chirp_distribute -X server1.somewhere.edu /mydata \`chirp_status -s\` +changequote +LONGCODE_END + + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_CHIRP + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/chirp_fuse.m4 cctools-7.1.2/doc/man/m4/chirp_fuse.m4 --- cctools-7.0.22/doc/man/m4/chirp_fuse.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/chirp_fuse.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,74 @@ +include(manual.h)dnl +HEADER(chirp_fuse) + +SECTION(NAME) +BOLD(chirp_fuse) - create a CODE(FUSE) mount point with virtual access to remote chirp servers + +SECTION(SYNOPSIS) +CODE(BOLD(chirp_fuse [options] PARAM(mount path))) + +SECTION(DESCRIPTION) + +PARA +You can attach to a Chirp filesystems by using the FUSE package to attach Chirp +as a kernel filesystem module. Unlike MANPAGE(parrot_run,1), this requires +superuser privileges to install the FUSE package, but will likely work more +reliably on a larger number of programs and environments. Using FUSE allows for +transparent access to a Chirp server via the local filesystem. This allows user +applications to use a Chirp store unmodified. + +PARA +Once you have installed and permissions to use FUSE, simply run chirp_fuse with +the name of a directory on which the filesystem should be mounted. + +PARA +For complete details with examples, see the +LINK(Chirp User's Manual,http://ccl.cse.nd.edu/software/manuals/chirp.html). + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_TRIPLET(-a, auth,flag)Require this authentication mode. +OPTION_TRIPLET(-b,block-size,bytes)Block size for network I/O. (default is 65536s) +OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. +OPTION_ITEM(`-D, --no-optimize')Disable small file optimizations such as recursive delete. +OPTION_ITEM(`-f, --foreground')Run in foreground for debugging. +OPTION_TRIPLET(-i,tickets,files)Comma-delimited list of tickets to use for authentication. +OPTION_TRIPLET(-m,mount-options,option)Pass mount option to FUSE. Can be specified multiple times. +OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). +OPTION_TRIPLET(-t,timeout,timeout)Timeout for network operations. (default is 60s) +OPTION_ITEM(`-v, --version')Show program version. +OPTION_ITEM(`-h, --help')Give help information. +OPTIONS_END + +SECTION(ENVIRONMENT VARIABLES) + +LIST_BEGIN +LIST_ITEM(CODE(BOLD(CHIRP_CLIENT_TICKETS)) Comma delimited list of tickets to authenticate with (same as CODE(-i)).) +LIST_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To create and use a CODE(FUSE) mount point for access to remote chirp servers: + +LONGCODE_BEGIN +% chirp_fuse /tmp/chirp-fuse & +% cd /tmp/chirp-fuse +% ls +% cd host:port +% cat foo/bar +% exit +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_CHIRP + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/chirp_get.m4 cctools-7.1.2/doc/man/m4/chirp_get.m4 --- cctools-7.0.22/doc/man/m4/chirp_get.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/chirp_get.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,60 @@ +include(manual.h)dnl +HEADER(chirp_get) + +SECTION(NAME) +BOLD(chirp_get) - get a single file from a Chirp server to local machine + +SECTION(SYNOPSIS) +CODE(BOLD(chirp_get [options] PARAM(hostname[:port]) PARAM(remotefile) PARAM(localfile))) + +SECTION(DESCRIPTION) + +BOLD(chirp_get) is a tool for copying a single file from a Chirp server to local storage. +PARA +BOLD(chirp_get) is a quick and simple way to copy a remote file given PARAM(hostname[:port]) PARAM(path) and write it to a local file PARAM(localfile) +PARA +BOLD(chirp_get) also can stream data which can be useful in a shell pipeline. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_TRIPLET(-a,auth,flag)Require this authentication mode. +OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. +OPTION_TRIPLET(-t,timeout,time)Timeout for failure. (default is 3600s) +OPTION_TRIPLET(-i,tickets,files)Comma-delimited list of tickets to use for authentication. +OPTION_ITEM(`-v, --version')Show program version. +OPTION_ITEM(`-h, --help')Show help text. +OPTIONS_END + +SECTION(ENVIRONMENT VARIABLES) + +LIST_BEGIN +LIST_ITEM(CODE(BOLD(CHIRP_CLIENT_TICKETS)) Comma delimited list of tickets to authenticate with (same as CODE(-i)).) +LIST_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To copy a single remote file using BOLD(chirp_get): + +LONGCODE_BEGIN +% chirp_get server1.somewhere.edu /mydata/mydata.dat /tmp/mydata.dat +LONGCODE_END + +To get, while at the same time, untar a single remote archive file using BOLD(chirp_get): + +LONGCODE_BEGIN +% chirp_get myhost.somewhere.edu /mydata/archive.tar.gz - | tar xvzf +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_CHIRP + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/chirp.m4 cctools-7.1.2/doc/man/m4/chirp.m4 --- cctools-7.0.22/doc/man/m4/chirp.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/chirp.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,110 @@ +include(manual.h)dnl +HEADER(chirp) + +SECTION(NAME) +BOLD(chirp) - command line tool providing explicit control of a Chirp server. + +SECTION(SYNOPSIS) +CODE(BOLD(chirp [options] [hostname] [command])) + +SECTION(DESCRIPTION) + +BOLD(chirp) is a tool to connect and manage a Chirp server in a similar way to an FTP client. BOLD(chirp) allows connecting to a Chirp server, copying files, and managing directories, auditing node etc... +PARA +Here are some important BOLD(chirp) commands: + +LIST_BEGIN +LIST_ITEM(BOLD(open) PARAM(host) Connect to a Chirp server.) +LIST_ITEM(BOLD(close) Close connection to current Chirp server. ) +LIST_ITEM(BOLD(get) PARAM(remotefile) [localfile] Copy a remote file to local storage.) +LIST_ITEM(BOLD(put) PARAM(localfile) [remotefile] Copy a local file to Chirp server.) +LIST_ITEM(BOLD(thirdput) PARAM(file) PARAM(3rdhost) PARAM(3rdfile) Copy a remote file to another Chirp server.) +LIST_ITEM(BOLD(getacl) PARAM(remotepath) Get acl of a remote file/directory.) +LIST_ITEM(BOLD(setacl) PARAM(remotepath) PARAM(user) PARAM(rwldax) Set acl for a remote file/directory.) +LIST_ITEM(BOLD(ls) [-la] [remotepath] List contents of a remote directory.) +LIST_ITEM(BOLD(mv) PARAM(oldname) PARAM(newname) Change name of a remote file.) +LIST_ITEM(BOLD(rm) PARAM(file) Delete a remote file.) +LIST_ITEM(BOLD(audit) [-r] Audit current Chirp server.) +LIST_ITEM(BOLD(exit) Close connection and exit BOLD(Chirp).) +LIST_END + +BOLD(chirp) also manages Chirp tickets for authentication purpose. + +LIST_BEGIN +LIST_ITEM(BOLD(ticket_create) [-o[utput] PARAM(ticket filename)] [-s[ubject] PARAM(subject/user)] [-d[uration] PARAM(duration)] [-b[its] ] [[PARAM(directory) PARAM(acl)] ...] Creat a ticket) +LIST_ITEM(BOLD(ticket_register) PARAM(name) [PARAM(subject)] PARAM(duration) Manually register a ticket with multiple Chirp severs.) +LIST_ITEM(BOLD(ticket_delete) PARAM(name) Remove a ticket.) +LIST_ITEM(BOLD(ticket_list) PARAM(name) List registered tickets on a Chirp server.) +LIST_ITEM(BOLD(ticket_get) PARAM(name) Check status of a ticket.) +LIST_ITEM(BOLD(ticket_modify) PARAM(name) PARAM(directory) PARAM(aclmask) Modify a ticket.) +LIST_END + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_TRIPLET(-a, auth, flag)Require this authentication mode. +OPTION_TRIPLET(-d, debug, flag)Enable debugging for this subsystem. +OPTION_TRIPLET(-i, tickets, files)Comma-delimited list of tickets to use for authentication. +OPTION_ITEM(`-l, --verbose')Long transfer information. +OPTION_TRIPLET(-t, timeout, time)Set remote operation timeout. +OPTION_ITEM(`-v, --version')Show program version. +OPTION_ITEM(`-h, --help')Show help text. +OPTIONS_END + +SECTION(ENVIRONMENT VARIABLES) + +LIST_BEGIN +LIST_ITEM(CODE(BOLD(CHIRP_CLIENT_TICKETS)) Comma delimited list of tickets to authenticate with (same as CODE(-i)).) +LIST_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To conenct to a Chirp server using BOLD(chirp): + +LONGCODE_BEGIN +% chirp server1.somewhere.edu +chirp> (enter more commands here) +LONGCODE_END + +To copy a single local file using BOLD(chirp): + +LONGCODE_BEGIN +% chirp server1.somewhere.edu put /tmp/mydata.dat /mydata/mydata.dat +LONGCODE_END + +To get a single remote file using BOLD(chirp): + +LONGCODE_BEGIN +% chirp server1.somewhere.edu get /mydata/mydata.dat /tmp/mydata.dat +LONGCODE_END + +To create a ticket using: + +LONGCODE_BEGIN +% chirp server1.somewhere.edu get ticket_create -output myticket.ticket -subject unix:user -bits 1024 -duration 86400 / rl /foo rwl +LONGCODE_END + +To register a ticket with other Chirp servers: + +LONGCODE_BEGIN +% chirp server2.somewhere.edu ticket_register myticket.ticket unix:user 86400 +LONGCODE_END + +To delete a ticket: + +LONGCODE_BEGIN +% chirp server1.somewhere.edu ticket_delete myticket.ticket +LONGCODE_END + + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_CHIRP + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/chirp_put.m4 cctools-7.1.2/doc/man/m4/chirp_put.m4 --- cctools-7.0.22/doc/man/m4/chirp_put.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/chirp_put.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,61 @@ +include(manual.h)dnl +HEADER(chirp_put) + +SECTION(NAME) +BOLD(chirp_put) - copy a single file from local machine to a Chirp server + +SECTION(SYNOPSIS) +CODE(BOLD(chirp_put [options] PARAM(localfile) PARAM(hostname[:port]) PARAM(remotefile))) + +SECTION(DESCRIPTION) + +BOLD(chirp_put) is a tool for copying a single file from local storage to a Chirp server. +PARA +BOLD(chirp_put) is a quick and simple way to copy a single local file PARAM(localfile) to a remote file given PARAM(hostname[:port]) PARAM(path) + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_TRIPLET(-a,auth, flag)Require this authentication mode. +OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. +OPTION_TRIPLET(-b,block-size,size)Set transfer buffer size. (default is 65536 bytes). +OPTION_ITEM(`-f, --follow')Follow input file like tail -f. +OPTION_TRIPLET(-i,tickets,files)Comma-delimited list of tickets to use for authentication. +OPTION_TRIPLET(-t,timeout, time)Timeout for failure. (default is 3600s) +OPTION_ITEM(`-v, --version')Show program version. +OPTION_ITEM(`-h, --help')Show help text. +OPTIONS_END + +SECTION(ENVIRONMENT VARIABLES) + +LIST_BEGIN +LIST_ITEM(CODE(BOLD(CHIRP_CLIENT_TICKETS)) Comma delimited list of tickets to authenticate with (same as CODE(-i)).) +LIST_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To copy a single local file using BOLD(chirp_put): + +LONGCODE_BEGIN +% chirp_put /tmp/mydata.dat server1.somewhere.edu /mydata/mydata.dat +LONGCODE_END + +When copying big data files that take longer than 3600s to copy, using BOLD(chirp_put) with option -t time to make sure BOLD(chirp_put) have enough time to finish: + +LONGCODE_BEGIN +% chirp_put -t 36000 /tmp/mybigdata.dat server1.somewhere.edu /mydata/mybigdata.dat +LONGCODE_END + + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_CHIRP + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/chirp_server_hdfs.m4 cctools-7.1.2/doc/man/m4/chirp_server_hdfs.m4 --- cctools-7.0.22/doc/man/m4/chirp_server_hdfs.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/chirp_server_hdfs.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,54 @@ +include(manual.h)dnl +HEADER(chirp_server_hdfs) + +SECTION(NAME) +BOLD(chirp_server_hdfs) - run a chirp server with HDFS client setup + +SECTION(SYNOPSIS) +CODE(BOLD(chirp_server_hdfs [options])) + +SECTION(DESCRIPTION) + +PARA +HDFS is the primary distributed filesystem used in the Hadoop project. +CODE(chirp_server_hdfs) enables running CODE(chirp_server) with the proper +environment variables set for using accessing HDFS. The command requires that +the CODE(JAVA_HOME) and CODE(HADOOP_HOME) environment variables be defined. Once +the environment is setup, the Chirp server will execute using HDFS as the backend +filesystem for all filesystem access. + +PARA +For complete details with examples, see the LINK(Chirp User's Manual,http://ccl.cse.nd.edu/software/manuals/chirp.html). + +SECTION(OPTIONS) + +See MANPAGE(chirp_server,1) for option listing. + +SECTION(ENVIRONMENT VARIABLES) + +LIST_BEGIN +LIST_ITEM(CODE(BOLD(JAVA_HOME)) Location of your Java installation.) +LIST_ITEM(CODE(BOLD(HADOOP_HOME)) Location of your Hadoop installation.) +LIST_END + + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To start a Chirp server with a HDFS backend filesystem: + +LONGCODE_BEGIN +% chirp_server_hdfs -r hdfs://host:port/foo/bar +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_CHIRP + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/chirp_server.m4 cctools-7.1.2/doc/man/m4/chirp_server.m4 --- cctools-7.0.22/doc/man/m4/chirp_server.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/chirp_server.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,93 @@ +include(manual.h)dnl +HEADER(chirp_server) + +SECTION(NAME) +BOLD(chirp_server) - create a Chirp user-level filesystem + +SECTION(SYNOPSIS) +CODE(BOLD(chirp_server [options])) + +SECTION(DESCRIPTION) + +PARA +Starts a Chirp server which allows the sharing of data with friends and +colleagues without requiring any administrator privileges. Chirp provides an +RPC network interface to a "backend" filesystem which can be the local +filesystem or even the Hadoop HDFS filesystem. Chirp supports flexible and +robust ACL management of data. + +PARA +For complete details with examples, see the LINK(Chirp User's Manual,http://ccl.cse.nd.edu/software/manuals/chirp.html). + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_TRIPLET(-A, default-acl,file)Use this file as the default ACL. +OPTION_ITEM(--inherit-default-acl) Directories without an ACL inherit from parent directories. +OPTION_TRIPLET(-a, auth,method)Enable this authentication method. +OPTION_ITEM(`-b, --background')Run as daemon. +OPTION_TRIPLET(-B, pid-file,file)Write PID to file. +OPTION_ITEM(`-C, --no-core-dump')Do not create a core dump, even due to a crash. +OPTION_TRIPLET(-c, challenge-dir,dir)Challenge directory for unix filesystem authentication. +OPTION_TRIPLET(-d, debug, flag)Enable debugging for this sybsystem +OPTION_ITEM(`-E, --parent-death')Exit if parent process dies. +OPTION_TRIPLET(-e, parent-check,time)Check for presence of parent at this interval. (default is 300s) +OPTION_TRIPLET(-F, free-space,size)Leave this much space free in the filesystem. +OPTION_TRIPLET(-G,group-url, url)Base url for group lookups. (default: disabled) +OPTION_ITEM(`-h, --help')Give help information. +OPTION_TRIPLET(-I, interface,addr)Listen only on this network interface. +OPTION_TRIPLET(-M, max-clients,count)Set the maximum number of clients to accept at once. (default unlimited) +OPTION_TRIPLET(-n, catalog-name,name)Use this name when reporting to the catalog. +OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). +OPTION_TRIPLET(-O, debug-rotate-max,bytes)Rotate debug file once it reaches this size. +OPTION_TRIPLET(-P,superuser,user)Superuser for all directories. (default is none) +OPTION_TRIPLET(-p,port,port)Listen on this port (default is 9094, arbitrary is 0) +OPTION_PAIR(--project-name,name)Project name this Chirp server belongs to. +OPTION_TRIPLET(-Q,root-quota,size)Enforce this root quota in software. +OPTION_ITEM(`-R, --read-only')Read-only mode. +OPTION_TRIPLET(-r, root,url)URL of storage directory, like file://path or hdfs://host:port/path. +OPTION_TRIPLET(-s,stalled,time)Abort stalled operations after this long. (default is 3600s) +OPTION_TRIPLET(-T,group-cache-exp,time)Maximum time to cache group information. (default is 900s) +OPTION_TRIPLET(-t,idle-clients,time)Disconnect idle clients after this time. (default is 60s) +OPTION_TRIPLET(-U,catalog-update,time)Send status updates at this interval. (default is 5m) +OPTION_TRIPLET(-u,advertize,host)Send status updates to this host. (default is catalog.cse.nd.edu) +OPTION_ITEM(`-v, --version')Show version info. +OPTION_TRIPLET(-W,passwd,file)Use alternate password file for unix authentication +OPTION_TRIPLET(-w,owner,name)The name of this server's owner. (default is username) +OPTION_TRIPLET(-y,transient,dir)Location of transient data (default is pwd). +OPTION_TRIPLET(-Z,port-file,file)Select port at random and write it to this file. (default is disabled) +OPTION_TRIPLET(-z, unix-timeout,time)Set max timeout for unix filesystem authentication. (default is 5s) +OPTIONS_END + +SECTION(ENVIRONMENT VARIABLES) + +LIST_BEGIN +LIST_ITEM(CODE(BOLD(CATALOG_HOST)) Hostname of catalog server (same as CODE(-u)).) +LIST_ITEM(CODE(BOLD(TCP_LOW_PORT)) Inclusive low port in range used with CODE(-Z).) +LIST_ITEM(CODE(BOLD(TCP_HIGH_PORT)) Inclusive high port in range used with CODE(-Z).) +LIST_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To start a Chirp server with a local root directory: + +LONGCODE_BEGIN +% chirp_server -r file:///tmp/foo +LONGCODE_END + +Setting various authentication modes: + +LONGCODE_BEGIN +% chirp_server -a hostname -a unix -a ticket -r file:///tmp/foo +LONGCODE_END + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_CHIRP + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/chirp_status.m4 cctools-7.1.2/doc/man/m4/chirp_status.m4 --- cctools-7.0.22/doc/man/m4/chirp_status.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/chirp_status.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,85 @@ +include(manual.h)dnl +HEADER(chirp_status) + +SECTION(NAME) +BOLD(chirp_status) - get current status of a one or more Chirp server(s) + +SECTION(SYNOPSIS) +CODE(BOLD(chirp_status [options] PARAM(nane) PARAM(value))) + +SECTION(DESCRIPTION) +BOLD(chirp_status) is a tool for checking status of Chirp server(s). +PARA +BOLD(chirp_status) can look up Chirp server(s) using type, name, port, owner and version. +PARA +BOLD(chirp_status) by default lists type, name, port, owner, version, total and available storage of Chirp server(s) +PARA +When using CODE(chirp_status) with long form option (-l), it lists additional information such as average load, available memory, operating system, up time, etc... + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_PAIR(--where,expr) Show only servers matching this expression. +OPTION_TRIPLET(-c,catalog,host)Query the catalog on this host. +OPTION_TRIPLET(-A,server-space,size)Only show servers with this space available. (example: -A 100MB). +OPTION_PAIR(--server-project,name)Only servers with this project name. +OPTION_TRIPLET(-t,timeout,time)Timeout. +OPTION_ITEM(`-s, --brief')Short output. +OPTION_ITEM(`-l, --verbose')Long output. +OPTION_ITEM(`-T, --totals')Totals output. +OPTION_ITEM(`-v, --version')Show program version. +OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. +OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). +OPTION_TRIPLET(-O,debug-rotate-max,bytes)Rotate file once it reaches this size. +OPTION_ITEM(`-h, --help')Show help text. +OPTIONS_END + +SECTION(ENVIRONMENT VARIABLES) + +LIST_BEGIN +LIST_ITEM(CODE(BOLD(CHIRP_CLIENT_TICKETS)) Comma delimited list of tickets to authenticate with (same as CODE(-i)).) +LIST_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To show status of all available Chirp servers using BOLD(chirp_status): + +LONGCODE_BEGIN +% chirp_status +LONGCODE_END + +To show status of a particular Chirp server: + +LONGCODE_BEGIN +% chirp_status --where 'name=="server1.somewhere.edu"' +LONGCODE_END + +To show status of Chirp servers which belong to a particular owner: + +LONGCODE_BEGIN +% chirp_status --where 'owner=="fred"' +LONGCODE_END + +To show all details in JSON format: + +LONGCODE_BEGIN +% chirp_status --long +LONGCODE_END + +To show aggregate status of all Chirp servers using BOLD(chirp_status): + +LONGCODE_BEGIN +% chirp_status -T +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_CHIRP + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/chirp_stream_files.m4 cctools-7.1.2/doc/man/m4/chirp_stream_files.m4 --- cctools-7.0.22/doc/man/m4/chirp_stream_files.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/chirp_stream_files.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,73 @@ +include(manual.h)dnl +HEADER(chirp_stream_files) + +SECTION(NAME) +BOLD(chirp_stream_files) - move data to/from chirp servers in parallel + +SECTION(SYNOPSIS) +CODE(BOLD(chirp_stream_files [options] PARAM(copy|split|join) PARAM(localfile) { PARAM(hostname[:port]) PARAM(remotefile))) + +SECTION(DESCRIPTION) + +BOLD(chirp_stream_files) is a tool for moving data from one machine to and from many machines, with the option to split or join the file along the way. It is useful for constructing scatter-gather types of applications on top of Chirp. +PARA +CODE(chirp_stream_files copy) duplicates a single file to multiple hosts. The PARAM(localfile) argument names a file on the local filesystem. The command will then open a connection to the following list of hosts, and stream the file to all simultaneously. +PARA +CODE(chirp_stream_files split) divides an ASCII file up among multiple hosts. The first line of PARAM(localfile) is sent to the first host, the second line to the second, and so on, round-robin. +PARA +CODE(chirp_stream_files join) collects multiple remote files into one. The argument PARAM(localfile) is opened for writing, and the remote files for reading. The remote files are read line-by-line and assembled round-robin into the local file. +PARA +In all cases, files are accessed in a streaming manner, making this particularly efficient for processing large files. A local file name of CODE(-) indicates standard input or standard output, so that the command can be used in a pipeline. +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_TRIPLET(-a, auth,flag)Require this authentication mode. +OPTION_TRIPLET(-b,block-size,size)Set transfer buffer size. (default is 1048576 bytes) +OPTION_TRIPLET(-d,debug,flag)Enable debugging for this subsystem. +OPTION_TRIPLET(-i,tickes,files)Comma-delimited list of tickets to use for authentication. +OPTION_TRIPLET(-t,timeout,time)Timeout for failure. (default is 3600s) +OPTION_ITEM(`-v, --version')Show program version. +OPTION_ITEM(`-h, --help')Show help text. +OPTIONS_END + +SECTION(ENVIRONMENT VARIABLES) +List any environment variables used or set in this section. + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To copy the file CODE(mydata) to three locations: + +LONGCODE_BEGIN +% chirp_stream_files copy mydata server1.somewhere.edu /mydata + server2.somewhere.edu /mydata + server2.somewhere.edu /mydata +LONGCODE_END + +To split the file CODE(mydata) into subsets at three locations: + +LONGCODE_BEGIN +% chirp_stream_files split mydata server1.somewhere.edu /part1 + server2.somewhere.edu /part2 + server2.somewhere.edu /part3 +LONGCODE_END + +To join three remote files back into one called CODE(newdata): + +LONGCODE_BEGIN +% chirp_stream_files join newdata server1.somewhere.edu /part1 + server2.somewhere.edu /part2 + server2.somewhere.edu /part3 +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_CHIRP + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/chroot_package_run.m4 cctools-7.1.2/doc/man/m4/chroot_package_run.m4 --- cctools-7.0.22/doc/man/m4/chroot_package_run.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/chroot_package_run.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,74 @@ +include(manual.h)dnl +HEADER(chroot_package_run) + +SECTION(NAME) +BOLD(chroot_package_run) - repeat a program within the package with the help of CODE(chroot) + +SECTION(SYNOPSIS) +CODE(BOLD(chroot_package_run --package-path your-package-path [command])) + +SECTION(DESCRIPTION) +If CODE(chroot) is used to help repeat one experiment, common directories like BOLD(/proc), BOLD(/dev), BOLD(/net), BOLD(/sys), BOLD(/var), BOLD(/misc) and BOLD(/selinux) will be remounted into the package if they exists on your local filesystem. After you finish all your test within CODE(chroot_package_run), these remounted directories will be unmounted. If no command is given, a /bin/sh shell will be returned. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_ITEM(`-p, --package-path')The path of the package. +OPTION_ITEM(`-e, --env-list')The path of the environment file, each line is in the format of =. (Default: package-path/env_list) +OPTION_ITEM(`-h, --help')Show this help message. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) +To repeat one program within one package BOLD(/tmp/package) in a BOLD(bash) shell: +LONGCODE_BEGIN +% chroot_package_run --package-path /tmp/package /bin/bash +LONGCODE_END +After the execution of this command, one shell will be returned, where you can repeat your original program. After everything is done, exit CODE(chroot_package_run): +LONGCODE_BEGIN +% exit +LONGCODE_END +You can also directly set your command as the arguments of CODE(chroot_package_run). In this case, CODE(chroot_package_run) will exit automatically after the command is finished, and you do not need to use CODE(exit) to exit. However, your command must belong to the original command set executed inside CODE(parrot_run) and preserved by CODE(parrot_package_create). +LONGCODE_BEGIN +% chroot_package_run --package-path /tmp/package ls -al +LONGCODE_END + +Here is a short instruction about how to make use of CODE(parrot_run), CODE(parrot_package_create) and CODE(chroot_package_run) +to generate one package for your experiment and repeat your experiment within your package. +PARA +Step 1: Run your program under CODE(parrot_run) and using BOLD(--name-list) and BOLD(--env-list) parameters to +record the filename list and environment variables. +LONGCODE_BEGIN +% parrot_run --name-list namelist --env-list envlist /bin/bash +LONGCODE_END +After the execution of this command, you can run your program inside CODE(parrot_run). At the end of step 1, one file named BOLD(namelist) containing all the accessed file names and one file named BOLD(envlist) containing environment variables will be generated. +After everything is done, exit CODE(parrot_run): +LONGCODE_BEGIN +% exit +LONGCODE_END +PARA +Step 2: Using CODE(parrot_package_create) to generate a package. +LONGCODE_BEGIN +% parrot_package_create --name-list namelist --env-path envlist --package-path /tmp/package +LONGCODE_END +At the end of step 2, one package with the path of BOLD(/tmp/package) will be generated. +PARA +Step 3: Repeat your program within your package. +LONGCODE_BEGIN +% chroot_package_run --package-path /tmp/package /bin/bash +LONGCODE_END +After the execution of this command, one shell will be returned, where you can repeat your original program. After everything is done, exit CODE(chroot_package_run): +LONGCODE_BEGIN +% exit +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/condor_submit_makeflow.m4 cctools-7.1.2/doc/man/m4/condor_submit_makeflow.m4 --- cctools-7.0.22/doc/man/m4/condor_submit_makeflow.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/condor_submit_makeflow.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,39 @@ +include(manual.h)dnl +HEADER(condor_submit_makeflow) + +SECTION(NAME) +BOLD(condor_submit_makeflow) - submit workflow to HTCondor batch system + +SECTION(SYNOPSIS) +LONGCODE_BEGIN +CODE(BOLD(condor_submit_makeflow [options] PARAM(workflow))) +LONGCODE_END + +SECTION(DESCRIPTION) +CODE(condor_submit_makeflow) submits Makeflow itself as a batch job, +allowing HTCondor to monitor and control the job, so the user does +not need to remain logged in while the workflow runs. All options +given to condor_submit_makeflow are passed along to the underlying Makeflow. + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLE) +LONGCODE_BEGIN +condor_submit_makeflow example.mf + +Submitting example.mf as a background job to HTCondor... +Submitting job(s). +1 job(s) submitted to cluster 364. +Makeflow Output : makeflow.364.output +Makeflow Error : makeflow.364.error +Condor Log : makeflow.364.condorlog +LONGCODE_END + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_MAKEFLOW + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/condor_submit_workers.m4 cctools-7.1.2/doc/man/m4/condor_submit_workers.m4 --- cctools-7.0.22/doc/man/m4/condor_submit_workers.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/condor_submit_workers.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,74 @@ +include(manual.h)dnl +HEADER(condor_submit_workers) + +SECTION(NAME) +BOLD(condor_submit_workers) - submit work_queue_worker to the Condor grid. + +SECTION(SYNOPSIS) +LONGCODE_BEGIN +CODE(BOLD(condor_submit_workers [options] PARAM(servername) PARAM(port) PARAM(num-workers))) +LONGCODE_END + +or + +LONGCODE_BEGIN +CODE(BOLD(condor_submit_workers [options] --master-name PARAM(name) PARAM(num-workers))) +LONGCODE_END + + +SECTION(DESCRIPTION) +CODE(condor_submit_workers) schedules the execution of MANPAGE(work_queue_worker,1) +on a grid managed by Condor through its job submission interface, condor_submit. +The number of BOLD(work_queue_worker) scheduled and run is given by the BOLD(num-workers) +argument. + +The BOLD(servername) and BOLD(port) arguments specify the hostname and port number of the +master for the work_queue_worker to connect. Alternatively, this information can be obtained from +the catalog server by specifying the name of the work queue using the --master-name parameter. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_TRIPLET(-M, master-name, name)Name of the preferred master for worker. +OPTION_TRIPLET(-N, name, name)Same as -M (backwards compatibility). +OPTION_TRIPLET(-C, catalog, catalog)Set catalog server to . format: HOSTNAME:PORT. +OPTION_TRIPLET(-t, timeout, time)Abort after this amount of idle time (default=900s). +OPTION_TRIPLET(-d, debug, subsystem)Enable debugging on worker for this subsystem (try -d all to start). +OPTION_TRIPLET(-w, tcp-window-size, size)Set TCP window size +OPTION_TRIPLET(-i, min-backoff, time)Set initial value for backoff interval when worker fails to connect to a master. (default=1s) +OPTION_TRIPLET(-b, max-backoff, time)Set maxmimum value for backoff interval when worker fails to connect to a master. (default=60s) +OPTION_TRIPLET(-z, disk-threshold, size)Set available disk space threshold (in MB). When exceeded worker will clean up and reconnect. (default=100MB) +OPTION_TRIPLET(-A, arch, arch)Set architecture string for the worker to report to master instead of the value in uname. +OPTION_TRIPLET(-O, os, os)Set operating system string for the worker to report to master instead of the value in uname. +OPTION_TRIPLET(-s, workdir, path)Set the location for creating the working directory of the worker. +OPTION_TRIPLET(-P,--password, file)Password file to authenticate workers to master. +OPTION_PAIR(--cores, cores)Set the number of cores each worker should use (0=auto). (default=1) +OPTION_PAIR(--memory, size)Manually set the amonut of memory (in MB) reported by this worker. +OPTION_PAIR(--disk, size)Manually set the amount of disk (in MB) reported by this worker. +OPTION_ITEM(`-h,--help')Show help message. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Submit 10 worker instances to run on Condor and connect to a specific master: + +LONGCODE_BEGIN +condor_submit_workers master.somewhere.edu 9123 10 +LONGCODE_END + +Submit 10 work_queue_worker instances to run on Condor in auto mode with their +preferred project name set to Project_A and abort timeout set to 3600 seconds: + +LONGCODE_BEGIN +condor_submit_workers -a -t 3600 -M Project_A 10 +LONGCODE_END + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_WORK_QUEUE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/confuga_adm.m4 cctools-7.1.2/doc/man/m4/confuga_adm.m4 --- cctools-7.0.22/doc/man/m4/confuga_adm.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/confuga_adm.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,56 @@ +include(manual.h)dnl +HEADER(confuga_adm) + +SECTION(NAME) +BOLD(Confuga Administration) - Administrating the Confuga cluster. + +SECTION(SYNOPSIS) +CODE(BOLD(confuga_adm [options] [command options] ...)) + +SECTION(DESCRIPTION) + +PARA +Performs administrative commands on the Confuga cluster. + +PARA +For complete details with examples, see the LINK(Confuga User's Manual,http://ccl.cse.nd.edu/software/manuals/confuga.html). + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_TRIPLET(-d, debug, flag)Enable debugging for this sybsystem +OPTION_ITEM(`-h, --help')Give help information. +OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). +OPTION_ITEM(`-v, --version')Show version info. +OPTIONS_END + +SECTION(COMMANDS) + +LIST_BEGIN +LIST_ITEM(BOLD(sn-add [-r ] [-p ] <"uuid"|"address"> )) Add a storage node to the cluster. Using the UUID of the Chirp server is recommended. +LIST_ITEM(BOLD(sn-rm [options] <"uuid"|"address"> )) Remove a storage from the cluster. Using the UUID of the Chirp server is recommended. The storage node is removed when Confuga no longer relies on it to maintain minimum replication for files and when the storage node completes all running jobs. +LIST_END + +SECTION(EXAMPLES) + +PARA +Add a storage node with Confuga state stored in BOLD(/u/joe/confuga): + +LONGCODE_BEGIN +confuga_adm sn-add -r /u/joe/confuga address 10.0.1.125:9090 +LONGCODE_END + +PARA +Remove a storage node: + +LONGCODE_BEGIN +confuga_adm sn-rm address 10.0.1.125:9090 +LONGCODE_END + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +MANPAGE(confuga,1) + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/confuga.m4 cctools-7.1.2/doc/man/m4/confuga.m4 --- cctools-7.0.22/doc/man/m4/confuga.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/confuga.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,202 @@ +include(manual.h)dnl +HEADER(confuga) + +SECTION(NAME) +BOLD(Confuga) - An active storage cluster file system. + +SECTION(SYNOPSIS) +CODE(BOLD(chirp_server --jobs --root= [options])) + +SECTION(DESCRIPTION) + +PARA +Configures and starts a Chirp server to act as the head node for a Confuga +storage cluster. + +PARA +For complete details with examples, see the LINK(Confuga User's Manual,http://ccl.cse.nd.edu/software/manuals/confuga.html). + +SECTION(OPTIONS) + +PARA +A Chirp server acting as the Confuga head node uses normal +MANPAGE(chirp_server,1) options. In order to run the Chirp server as the +Confuga head node, use the BOLD(--root) switch with the Confuga URI. You must +also enable job execution with the BOLD(--jobs) switch. + +PARA +The format for the Confuga URI is: +BOLD(confuga:///path/to/workspace?option1=value&option2=value). The workspace +path is the location Confuga maintains metadata and databases for the head +node. Confuga specific options are also passed through the URI, documented +below. Examples demonstrating how to start Confuga and a small cluster are at +the end of this manual. + +OPTIONS_BEGIN +OPTION_PAIR(auth,method)Enable this method for Head Node to Storage Node authentication. The default is to enable all available authentication mechanisms. +OPTION_PAIR(concurrency,limit)Limits the number of concurrent jobs executed by the cluster. The default is 0 for limitless. +OPTION_PAIR(pull-threshold,bytes)Sets the threshold for pull transfers. The default is 128MB. +OPTION_PAIR(replication,type)Sets the replication mode for satisfying job dependencies. BOLD(type) may be BOLD(push-sync) or BOLD(push-async-N). The default is BOLD(push-async-1). +OPTION_PAIR(scheduler,type)Sets the scheduler used to assign jobs to storage nodes. The default is BOLD(fifo-0). +OPTION_PAIR(tickets,tickets)Sets tickets to use for authenticating with storage nodes. Paths must be absolute. +OPTIONS_END + +SECTION(STORAGE NODES) + +PARA +Confuga uses regular Chirp servers as storage nodes. Each storage node is +added to the cluster using the MANPAGE(confuga_adm,1) command. All storage +node Chirp servers must be run with: + +LIST_BEGIN +LIST_ITEM(Ticket authentication enabled (BOLD(--auth=ticket)). Remember by default all authentication mechanisms are enabled.) +LIST_ITEM(Job execution enabled (BOLD(--jobs)).) +LIST_ITEM(Job concurrency of at least two (BOLD(--job-concurrency=2)).) +LIST_END + +PARA +These options are also suggested but not required: + +LIST_BEGIN +LIST_ITEM(More frequent Catalog updates (BOLD(--catalog-update=30s)).) +LIST_ITEM(Project name for the cluster (BOLD(--project-name=foo)).) +LIST_END + +PARA +You must also ensure that the storage nodes and the Confuga head node are using +the same MANPAGE(catalog_server,1). By default, this should be the case. The +BOLD(EXAMPLES) section below includes an example cluster using a manually +hosted catalog server. + +SUBSECTION(ADDING STORAGE NODES) + +PARA +To add storage nodes to the Confuga cluster, use the MANPAGE(confuga_adm,1) +administrative tool. + +SECTION(EXECUTING WORKFLOWS) + +PARA +The easiest way to execute workflows on Confuga is through MANPAGE(makeflow,1). +Only two options to Makeflow are required, BOLD(--batch-type) and +BOLD(--working-dir). Confuga uses the Chirp job protocol, so the batch type is +BOLD(chirp). It is also necessary to define the executing server, the Confuga +Head Node, and the ITALIC(namespace) the workflow executes in. For example: + +LONGCODE_BEGIN +makeflow --batch-type=chirp --working-dir=chirp://confuga.example.com:9094/BOLD(path/to/workflow) +LONGCODE_END + +PARA +The workflow namespace is logically prepended to all file paths defined in the +Makeflow specification. So for example, if you have this Makeflow file: + +LONGCODE_BEGIN +a: exe + ./exe > a +LONGCODE_END + +PARA +Confuga will execute BOLD(/path/to/workflow/exe) and produce the output file BOLD(/path/to/workflow/a). + +PARA +Unlike other batch systems used with Makeflow, like Condor or Work Queue, +ITALIC(all files used by a workflow must be in the Confuga file system). Condor +and Work Queue both stage workflow files from the submission site to the +execution sites. In Confuga, the entire workflow dataset, including +executables, is already resident. So when executing a new workflow, you need +to upload the workflow dataset to Confuga. The easiest way to do this is using +the MANPAGE(chirp,1) command line tool: + +LONGCODE_BEGIN +chirp confuga.example.com put workflow/ /path/to/ +LONGCODE_END + +PARA +Finally, Confuga does not save the ITALIC(stdout) or ITALIC(stderr) of jobs. +If you want these files for debugging purposes, you must explicitly save them. +To streamline the process, you may use Makeflow's BOLD(--wrapper) options to +save ITALIC(stdout) and ITALIC(stderr): + +LONGCODE_BEGIN +makeflow --batch-type=chirp \\ + --working-dir=chirp://confuga.example.com/ \\ + --wrapper=$'{\\n{}\\n} > stdout.%% 2> stderr.%%' \\ + --wrapper-output='stdout.%%' \\ + --wrapper-output='stderr.%%' +LONGCODE_END + +SECTION(EXAMPLES) + +PARA +Launch a head node with Confuga state stored in BOLD(./confuga.root): + +LONGCODE_BEGIN +chirp_server --jobs --root="confuga://$(pwd)/confuga.root/" +LONGCODE_END + +PARA +Launch a head node with workspace BOLD(/tmp/confuga.root) using storage nodes BOLD(chirp://localhost:10001) and BOLD(chirp://localhost:10002/u/joe/confuga): + +LONGCODE_BEGIN +chirp_server --jobs --root='confuga:///tmp/confuga.root/' +confuga_adm confuga:///tmp/confuga.root/ sn-add address localhost:10001 +confuga_adm confuga:///tmp/confuga.root/ sn-add -r /u/joe/confuga address localhost:10001 +LONGCODE_END + +PARA +Run a simple test cluster on your workstation: + +LONGCODE_BEGIN +# start a catalog server in the background +catalog_server --history=catalog.history \\ + --update-log=catalog.update \\ + --interface=127.0.0.1 \\ + & +# sleep for a time so catalog can start +sleep 1 +# start storage node 1 in the background +chirp_server --advertise=localhost \\ + --catalog-name=localhost \\ + --catalog-update=10s \\ + --interface=127.0.0.1 \\ + --jobs \\ + --job-concurrency=10 \\ + --root=./root.1 \\ + --port=9001 \\ + --project-name=test \\ + --transient=./tran.1 \\ + & +# start storage node 2 in the background +chirp_server --advertise=localhost \\ + --catalog-name=localhost \\ + --catalog-update=10s \\ + --interface=127.0.0.1 \\ + --jobs \\ + --job-concurrency=10 \\ + --root=./root.2 \\ + --port=9002 \\ + --project-name=test \\ + --transient=./tran.2 \\ + & +# sleep for a time so catalog can receive storage node status +sleep 5 +confuga_adm confuga:///$(pwd)/confuga.root/ sn-add address localhost:9001 +confuga_adm confuga:///$(pwd)/confuga.root/ sn-add address localhost:9002 +# start the Confuga head node +chirp_server --advertise=localhost \\ + --catalog-name=localhost \\ + --catalog-update=30s \\ + --debug=confuga \\ + --jobs \\ + --root="confuga://$(pwd)/confuga.root/?auth=unix" \\ + --port=9000 +LONGCODE_END + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +MANPAGE(confuga_adm,1) SEE_ALSO_CHIRP + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/deltadb_query.m4 cctools-7.1.2/doc/man/m4/deltadb_query.m4 --- cctools-7.0.22/doc/man/m4/deltadb_query.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/deltadb_query.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,75 @@ +include(manual.h)dnl +HEADER(deltadb_query) + +SECTION(NAME) +BOLD(deltadb_query) - query historical data stored by the catalog server. + +SECTION(SYNOPSIS) +CODE(BOLD(deltadb_query --db [source_directory] --from [starttime] --to [endtime] [--filter [expr]] [--where [expr]] [--output [expr]])) + +SECTION(DESCRIPTION) + +BOLD(deltadb_query) is a tool that examines and displays historical data of the catalog server. +(If given the -H option, the catalog server will record historical data in a format +known as DeltaDB, hence the name of this tool.) +The results can be displayed as a stream of time-ordered updates +or as summaries of properties across all records over time. +This is useful for reporting, for example, the total resources and clients +served by a large collection of servers over the course of a year. + +A paper entitled DeltaDB describes the operation of the tools in detail (see reference below). + +SECTION(ARGUMENTS) +OPTIONS_BEGIN +OPTION_ITEM(--db path) Query this database directory. +OPTION_ITEM(--file path) Query the data stream in this file. +OPTION_ITEM(--from time) (required) The starting date and time of the query in an absolute time like "YYYY-MM-DD HH:MM:SS" or "YYYY-MM-DD" or a relative time like 5s, 5m, 5h, 5d to indicate five seconds, minutes, hours, or days ago, respectively. +OPTION_ITEM(--to time) The ending time of the query, in the same format as the --from option. If omitted, the current time is assumed. +OPTION_ITEM(--every interval) The intervals at which output should be produced, like 5s, 5m, 5h, 5d to indicate five seconds, minutes, hours, or days ago, respectively. +OPTION_ITEM(--epoch) Causes the output to be expressed in integer Unix epoch time, instead of a formatted time. +OPTION_ITEM(--filter expr) (multiple) If given, only records matching this expression will be processed. Use --filter to apply expressions that do not change over time, such as the name or type of a record. +OPTION_ITEM(--where expr) (multiple) If given, only records matching this expression will be displayed. Use --where to apply expressions that may change over time, such as load average or storage space consumed. +OPTION_ITEM(--output expr) (multiple) Display this expression on the output. +OPTIONS_END + +SECTION(EXAMPLES) + +To show 1 week worth of history starting on 15 April 2013: + +LONGCODE_BEGIN +% deltadb_query --db /data/catalog.history --from 2013-04-15 --to 2015-04-22 +LONGCODE_END + +To show all history after 1 March 2013: + +LONGCODE_BEGIN +% deltadb_query --db /data/catalog.history --from 2013-03-01 +LONGCODE_END + +To show the names of fred's servers where load5 exceeds 2.0: + +LONGCODE_BEGIN +% deltadb_query --db /data/catalog.history --from 2013-03-01 --filter 'owner=="fred"' --where 'load5>2.0' --output name --output load5 +LONGCODE_END + +To show the average load of all servers owned by fred at one hour intervals: + +LONGCODE_BEGIN +% deltadb_query --db /data/catalog.history --from 2013-03-01 --filter 'owner=="fred"' --output 'AVERAGE(load5)' --every 1h +LONGCODE_END + +The raw event output of a query can be saved to a file, and then queried using the --file option, which can accelerate operations on reduced data. For example: + +LONGCODE_BEGIN +% deltadb_query --db /data/catalog.history --from 2014-01-01 --to 2015-01-01 --filter 'type=="wq_master"' > wq.data +% deltadb_query --file wq.data --from 2014-01-01 --output 'COUNT(name)' --output 'MAX(tasks_running)' +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_CATALOG + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/disk_allocator.m4 cctools-7.1.2/doc/man/m4/disk_allocator.m4 --- cctools-7.0.22/doc/man/m4/disk_allocator.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/disk_allocator.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,49 @@ +include(manual.h)dnl +HEADER(disk_allocator) + +SECTION(NAME) +BOLD(disk_allocator) - tool for creating and deleting loop device allocations of a given size. + +SECTION(SYNOPSIS) +CODE(BOLD(disk_allocator [options] PARAM(create|delete) PARAM(target directory) PARAM(size) PARAM(filesystem))) + +SECTION(DESCRIPTION) + +BOLD(disk_allcator) is a tool for creating and deleting loop device allocations +of a given size in order to sandbox an application. For creating an allocation, +it accepts a desired location for the device, the size for the sandbox, and the +filesystem to mount. For deleting an allocation, BOLD(disk_allocator) needs only +the directory of the mounted loop device which is to be removed. + +PARA + +You will need superuser priveleges to run BOLD(disk_allocator) on your local machine. + +PARA + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_ITEM(`-h, --help')Show this help screen. +OPTION_ITEM(`-v, --version')Show version string. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Create a disk allocation: +LONGCODE_BEGIN +disk_allocator create /tmp/test 100MB ext2 +LONGCODE_END + +Delete a disk allocation: +LONGCODE_BEGIN +disk_allocator delete /tmp/test +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/makeflow_amazon_batch_cleanup.m4 cctools-7.1.2/doc/man/m4/makeflow_amazon_batch_cleanup.m4 --- cctools-7.0.22/doc/man/m4/makeflow_amazon_batch_cleanup.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/makeflow_amazon_batch_cleanup.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,41 @@ +include(manual.h)dnl +HEADER(makeflow_amazon_batch_cleanup) + +SECTION(NAME) +BOLD(makeflow_amazon_batch_cleanup) - clean up Amazon services after running Makeflow + +SECTION(SYNOPSIS) +CODE(BOLD(makeflow_amazon_batch_cleanup PARAM(config-file))) + +SECTION(DESCRIPTION) + +CODE(makeflow_amazon_batch_cleanup) cleans up the virtual private cluster, +subnets, and other details that were created by CODE(makeflow_amazon_batch_setup) +and stored in the config file passed on the command line. + +It is possible that cleanup may fail, if the cluster or other elements +are still in use, and display a message from AWS. In this case, make +sure that you have terminated any workflows running in the cluster and +try again. If cleanup still fails, you may need to use the AWS console +to view and delete the relevant items listed in the config file. + +SECTION(OPTIONS) +None. + +SECTION(EXAMPLES) + +LONGCODE_BEGIN +makeflow_amazon_batch_setup 3 2 4 my.config +makeflow -T amazon-batch --amazon-batch-config=my.config --amazon-ami=USER_PROVIDED_ECS_IMAGE_ARN example.makeflow +makeflow_amazon_batch_cleanup my.config +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_MAKEFLOW + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/makeflow_amazon_batch_setup.m4 cctools-7.1.2/doc/man/m4/makeflow_amazon_batch_setup.m4 --- cctools-7.0.22/doc/man/m4/makeflow_amazon_batch_setup.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/makeflow_amazon_batch_setup.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,67 @@ +include(manual.h)dnl +HEADER(makeflow_amazon_batch_setup) + +SECTION(NAME) +BOLD(makeflow_amazon_batch_setup) - set up Amazon services for running Makeflow + +SECTION(SYNOPSIS) +CODE(BOLD(makeflow_amazon_batch_setup PARAM(desired-num-cores) PARAM(min-num-cores) PARAM(max-num-cores) PARAM(config-file) )) + +SECTION(DESCRIPTION) + +BOLD(makeflow_ec2_setup) prepares Amazon services for running a Makeflow. It creates a virtual private cluster, subnets, key pairs, and other details, and writes these out to a configuration file given by the fourth argument. If the fourth argument is not provided, then it will be writen out to CODE(makeflow_amazon_batch.config) in the director this script is called. The first argument is the desired number of cores for the environment. The second argument is the minimum number of cores acceptable for the environment. The third argument is the maximum number of cores that the environment should ever have at its disposal. + +Once the configuration file is created, you may run CODE(makeflow) +with the CODE(-T amazon-batch) option and give the name of the created +config file with CODE(--amazon-batch-config). + +When complete, you can clean up the virtual cluster and related +items by running CODE(makeflow_amazon_batch_cleanup) + +SECTION(PRE-RUN SETUP) + +Before using CODE(makeflow_amazon_batch_setup), make sure that you install the AWS Command +Line Interface tools, have the CODE(aws) command in your PATH, +and run CODE(aws configure) to set up your secret keys and default region. + +Next, ensure that the IAM associated with the secret keys passed to CODE(aws configure) has the following policies attached to it: + +*AmazonEC2FullAccess + +*AmazonS3FullAccess + +*AWSBatchServiceRole + +*AWSBatchFullAccess + +After ensuring that, the script requires that you have the following Roles enabled on your account: + +*AWSBatchServiceRole -- This should have an arn which looks like CODE(arn:aws:iam:ACCOUNT_ID_NUM:role/service-role/AWSBatchServiceRole) which has the policy AWSBatchServiceRole attached. + +*ecsInstanceRole -- This should have an arn which looks like CODE(arn:aws:iam:ACCOUNT_ID_NUM:role/ecsInstanceRole) which has the policy AmazonEC2ContainerServiceforEC2Role attached. + +The easiest way to create these roles is to enter the Amazon Batch dashboard and create an environment via their wizard. In the "Serice role" and "Instance role" fields, have "Create new role" selected. + +When these steps have been accomplished, then the script will run correctly and setup for you a batch environment for you to run your makeflow in. + + +SECTION(OPTIONS) +None. + +SECTION(EXAMPLES) + +LONGCODE_BEGIN +makeflow_amazon_batch_setup 3 2 4 my.config +makeflow -T amazon-batch --amazon-batch-config=my.config --amazon-ami=USER_PROVIDED_ECS_IMAGE_ARN example.makeflow +makeflow_amazon_batch_cleanup my.config +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_MAKEFLOW + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/makeflow_analyze.m4 cctools-7.1.2/doc/man/m4/makeflow_analyze.m4 --- cctools-7.0.22/doc/man/m4/makeflow_analyze.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/makeflow_analyze.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,40 @@ +include(manual.h)dnl +HEADER(makeflow_analyze) + +SECTION(NAME) +BOLD(makeflow_analyze) - analysis of Makeflow workflows + +SECTION(SYNOPSIS) +CODE(BOLD(makeflow_analyze [options] PARAM(dagfile))) + +SECTION(DESCRIPTION) + +BOLD(makeflow_analyze) is a collection of tools to provide insight into the structure of workflows. This includes syntax analysis and dag statistics. + +SECTION(OPTIONS) +SUBSECTION(Commands) +OPTIONS_BEGIN +OPTION_TRIPLET(-b, bundle-dir, directory)Create portable bundle of workflow. +OPTION_ITEM(`-h, --help')Show this help screen. +OPTION_ITEM(`-I, --show-input')Show input files. +OPTION_ITEM(`-k, --syntax-check')Syntax check. +OPTION_ITEM(`-O, --show-output')Show output files. +OPTION_ITEM(`-v, --version')Show version string. +OPTIONS_END + +SECTION(EXAMPLES) + +Analyze the syntax of a workflow: +LONGCODE_BEGIN +makeflow_analyze -k Makeflow +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_MAKEFLOW + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/makeflow_blast.m4 cctools-7.1.2/doc/man/m4/makeflow_blast.m4 --- cctools-7.0.22/doc/man/m4/makeflow_blast.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/makeflow_blast.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,45 @@ +include(manual.h)dnl +HEADER(makeflow_blast) + +SECTION(NAME) +BOLD(makeflow_blast) - Generate a Makeflow to parallelize and distribute blastall jobs + +SECTION(SYNOPSIS) +CODE(BOLD(makeflow_blast query_granularity character_granularity [blast_options])) + +SECTION(DESCRIPTION) +BOLD(makeflow_blast) is a script to generate MANPAGE(makeflow) workflows to execute CODE(blastall) jobs. Essentially, the script uses query_granularity (the maximum number of sequences per fasta file split) and character_granularity (the maximum number of characters per fasta file split) to determine how to break up the input fasta file. It then creates a makeflow that will execute a blastall with the desired parameters on each part and concatenate the results into the desired output file. For simplicity, all of the arguments following query_granularity and character_granularity are passed through as the options to CODE(blastall) +PARA +BOLD(makeflow_blast) executes a small test BLAST job with the user provided parameters in order to be sure that the given parameters are sane. It then calculates the number of parts the provided fasta input file will require, prints a makeflow rule to generate those parts using MANPAGE(split_fasta), and enumerates makeflow rules to execute blastall with the given parameters on each part. Subsequent rules to condense and clean the intermediate input and output are then produced. +PARA +BOLD(makeflow_blast) expects a blastall in the path, and should be used from the directory containing the input files and databases. For distribution convenience, it is required that the files constituting a given BLAST database must be stored in a folder with the same name as that database. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_PAIR(-i, input)Specifiy the input fasta file for querying the BLAST database +OPTION_PAIR(-o, output)Specify the output file for final results +OPTION_PAIR(-d, databse)Specify the BLAST database to be queried +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(ENVIRONMENT VARIABLES) + +SECTION(EXAMPLES) + +To generate a makeflow to run blastall -p blastn on smallpks.fa and testdb, splitting smallpks.fa every 500 sequences or 10000 characters and placing the blast output into test.txt do: +LONGCODE_BEGIN +python makeflow_blast 500 10000 -i smallpks.fa -o test -d testdb/testdb -p blastn > Makeflow +LONGCODE_END +You can then execute this workflow in a variety of distributed and parallel environments using the makeflow command. + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_MAKEFLOW + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/makeflow_ec2_cleanup.m4 cctools-7.1.2/doc/man/m4/makeflow_ec2_cleanup.m4 --- cctools-7.0.22/doc/man/m4/makeflow_ec2_cleanup.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/makeflow_ec2_cleanup.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,41 @@ +include(manual.h)dnl +HEADER(makeflow_ec2_cleanup) + +SECTION(NAME) +BOLD(makeflow_ec2_cleanup) - clean up Amazon services after running Makeflow + +SECTION(SYNOPSIS) +CODE(BOLD(makeflow_ec2_cleanup PARAM(config-file))) + +SECTION(DESCRIPTION) + +CODE(makeflow_ec2_cleanup) cleans up the virtual private cluster, +subnets, and other details that were created by CODE(makeflow_ec2_setup) +and stored in the config file passed on the command line. + +It is possible that cleanup may fail, if the cluster or other elements +are still in use, and display a message from AWS. In this case, make +sure that you have terminated any workflows running in the cluster and +try again. If cleanup still fails, you may need to use the AWS console +to view and delete the relevant items listed in the config file. + +SECTION(OPTIONS) +None. + +SECTION(EXAMPLES) + +LONGCODE_BEGIN +makeflow_ec2_cleanup my.config ami-343a694f +makeflow -T amazon --amazon-config my.config example.makeflow +makeflow_ec2_cleanup my.config +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_MAKEFLOW + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/makeflow_ec2_setup.m4 cctools-7.1.2/doc/man/m4/makeflow_ec2_setup.m4 --- cctools-7.0.22/doc/man/m4/makeflow_ec2_setup.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/makeflow_ec2_setup.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,49 @@ +include(manual.h)dnl +HEADER(makeflow_ec2_setup) + +SECTION(NAME) +BOLD(makeflow_ec2_setup) - set up Amazon services for running Makeflow + +SECTION(SYNOPSIS) +CODE(BOLD(makeflow_ec2_setup PARAM(config-file) PARAM(ami))) + +SECTION(DESCRIPTION) + +Before using CODE(makeflow_ec2_setup), make sure that you install the AWS Command +Line Interface tools, have the CODE(aws) command in your PATH, +and run CODE(aws configure) to set up your secret keys and default region. + +BOLD(makeflow_ec2_setup) prepares Amazon services for running a Makeflow. +It creates a virtual private cluster, subnets, key pairs, and other +details, and writes these out to a configuration file given by the +first argument. The second argument is the Amazon Machine Image (AMI) +that will be used by default in the workflow, if not specified for +individual jobs. + +Once the configuration file is created, you may run CODE(makeflow) +with the CODE(-T amazon) option and give the name of the created +config file with CODE(--amazon-config). + +When complete, you can clean up the virtual cluster and related +items by running CODE(makeflow_ec2_cleanup) + +SECTION(OPTIONS) +None. + +SECTION(EXAMPLES) + +LONGCODE_BEGIN +makeflow_ec2_setup my.config ami-343a694f +makeflow -T amazon --amazon-config my.config example.makeflow +makeflow_ec2_cleanup my.config +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_MAKEFLOW + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/makeflow_graph_log.m4 cctools-7.1.2/doc/man/m4/makeflow_graph_log.m4 --- cctools-7.0.22/doc/man/m4/makeflow_graph_log.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/makeflow_graph_log.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,37 @@ +include(manual.h)dnl +HEADER(makeflow_graph_log) + +SECTION(NAME) +BOLD(makeflow_graph_log) - convert a makeflow log into a graph + +SECTION(SYNOPSIS) +CODE(BOLD(makeflow_graph_log PARAM(logfile) PARAM(imagefile))) + +SECTION(DESCRIPTION) + +BOLD(makeflow_graph_log) converts a makeflow log into a graph +that shows the number of tasks ready, running, and completed over time. +The output graph is generated by using gnuplot to create a postscript +file, which is then converted to the desired type using ImageMagick. +The type of the output file is determined by the name, so any image +type supported by ImageMagick can be selected. + +SECTION(OPTIONS) +None. + +SECTION(EXAMPLES) + +LONGCODE_BEGIN +makeflow_graph_log small.makeflowlog small.pdf +makeflow_graph_log big.makeflowlog big.gif +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_MAKEFLOW + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/makeflow_linker.m4 cctools-7.1.2/doc/man/m4/makeflow_linker.m4 --- cctools-7.0.22/doc/man/m4/makeflow_linker.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/makeflow_linker.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,56 @@ +include(manual.h)dnl +HEADER(makeflow_linker) + +SECTION(NAME) +BOLD(makeflow_linker) - automatic dependency location for workflows + +SECTION(SYNOPSIS) +CODE(BOLD(makeflow_linker [options] PARAM(workflow_description))) + +SECTION(DESCRIPTION) +BOLD(makeflow_linker) is a tool for automatically determining dependencies of workflows. It accepts a workflow description, currently Makeflow syntax is required, and recursively determines the dependencies and produces a self-contained package. BOLD(makeflow_linker) supports Python, Perl, and shared libraries. + +PARA + +BOLD(makeflow_linker) finds dependencies by static analysis. CODE(eval) and other dynamic code loading may obscure dependencies causing BOLD(makeflow_linker) to miss some critical dependencies. Therefore it is recommended to avoid these techniques when desiging a workflow. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_ITEM(`--dry-run')Run without creating directories or copying dependencies. +OPTION_ITEM(`-h, --help')Show this help screen. +OPTION_ITEM(`-n, --use-named')Do not copy files which are part of a named dependency, e.g. standard libraries. +OPTION_TRIPLET(-o, output, directory)Specify output directory. +OPTION_ITEM(`--verbose')Output status during run. +OPTION_ITEM(`-v, --version')Display version information. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure (typically permission errors), returns non-zero. + +SECTION(BUGS) +LIST_BEGIN +LIST_ITEM(The makeflow_linker does not check for naming collisions beyond the initial workflow inputs.) +LIST_ITEM(The makeflow_linker relies on regex parsing of files, so some forms of import statements may be missing.) +LIST_END + +SECTION(EXAMPLES) + +Package a workflow: +LONGCODE_BEGIN +makeflow_linker -o example_mf example.mf +LONGCODE_END + +Run packaged workflow: +LONGCODE_BEGIN +makeflow example_mf/example.mf +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_LINKER + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/makeflow.m4 cctools-7.1.2/doc/man/m4/makeflow.m4 --- cctools-7.0.22/doc/man/m4/makeflow.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/makeflow.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,306 @@ +include(manual.h)dnl +HEADER(makeflow) + +SECTION(NAME) +BOLD(makeflow) - workflow engine for executing distributed workflows + +SECTION(SYNOPSIS) +CODE(BOLD(makeflow [options] PARAM(dagfile))) + +SECTION(DESCRIPTION) + +BOLD(Makeflow) is a workflow engine for distributed computing. It accepts a +specification of a large amount of work to be performed, and runs it on remote +machines in parallel where possible. In addition, BOLD(Makeflow) is +fault-tolerant, so you can use it to coordinate very large tasks that may run +for days or weeks in the face of failures. BOLD(Makeflow) is designed to be +similar to Make, so if you can write a Makefile, then you can write a +BOLD(Makeflow). + +PARA + +You can run a BOLD(Makeflow) on your local machine to test it out. If you have +a multi-core machine, then you can run multiple tasks simultaneously. If you +have a Condor pool or a Sun Grid Engine batch system, then you can send your +jobs there to run. If you don't already have a batch system, BOLD(Makeflow) +comes with a system called Work Queue that will let you distribute the load +across any collection of machines, large or small. BOLD(Makeflow) also +supports execution in a Docker container, regardless of the batch system +used. + +PARA + +SECTION(OPTIONS) +When CODE(makeflow) is ran without arguments, it will attempt to execute the +workflow specified by the BOLD(Makeflow) dagfile using the CODE(local) +execution engine. + +SUBSECTION(Commands) +OPTIONS_BEGIN +OPTION_TRIPLET(-c, --clean, option)Clean up: remove logfile and all targets. If option is one of [intermediates, outputs, cache], only indicated files are removed. +OPTION_TRIPLET(-f, summary-log, file)Write summary of workflow to file. +OPTION_ITEM(`-h, --help')Show this help screen. +OPTION_ITEM(`-v, --version')Show version string. +OPTION_TRIPLET(-X, chdir, directory)Chdir to enable executing the Makefile in other directory. +OPTION_PAIR(--argv, file)Use command line arguments from JSON file. +OPTIONS_END + +SUBSECTION(Workflow Handling) +OPTIONS_BEGIN +OPTION_ITEM(`-a, --advertise')Advertise the master information to a catalog server. +OPTION_TRIPLET(-l, makeflow-log, logfile)Use this file for the makeflow log. (default is X.makeflowlog) +OPTION_TRIPLET(-L, batch-log, logfile)Use this file for the batch system log. (default is X.PARAM(type)log) +OPTION_TRIPLET(-m, email, email)Email summary of workflow to address. +OPTION_TRIPLET(-j, max-local, #)Max number of local jobs to run at once. (default is # of cores) +OPTION_TRIPLET(-J, max-remote, #)Max number of remote jobs to run at once. (default is 1000 for -Twq, 100 otherwise) +OPTION_ITEM(`-R, --retry')Automatically retry failed batch jobs up to 100 times. +OPTION_TRIPLET(-r, retry-count, n)Automatically retry failed batch jobs up to n times. +OPTION_PAIR(--local-cores, #)Max number of cores used for local execution. +OPTION_PAIR(--local-memory, #)Max amount of memory used for local execution. +OPTION_PAIR(--local-disk, #)Max amount of disk used for local execution. + +OPTION_END + +SUBSECTION(Batch Options) +OPTIONS_BEGIN +OPTION_TRIPLET(-B, batch-options, options)Add these options to all batch submit files. +OPTION_ITEM(`--send-environment')Send all local environment variables in remote execution. +OPTION_PAIR(--wait-for-files-upto, #)Wait for output files to be created upto this many seconds (e.g., to deal with NFS semantics). +OPTION_TRIPLET(-S, submission-timeout, timeout)Time to retry failed batch job submission. (default is 3600s) +OPTION_TRIPLET(-T, batch-type, type)Batch system type: local, dryrun, condor, sge, pbs, torque, blue_waters, slurm, moab, cluster, wq, amazon, mesos. (default is local) +OPTION_ITEM(`--safe-submit-mode')Excludes resources at submission. (SLURM, TORQUE, and PBS) +OPTION_ITEM(`--ignore-memory-spec')Excludes memory at submission. (SLURM) +OPTION_PAIR(--batch-mem-type, type)Specify memory resource type. (SGE) +OPTION_PAIR(--working-dir, dir|url)Working directory for batch system. +OPTION_ITEM(`--sandbox')Run task in sandbox using bash script and task directory. +OPTION_ITEM(`--verbose-jobnames')Set the job name based on the command. +OPTIONS_END + +SUBSECTION(JSON/JX Options) +OPTIONS_BEGIN +OPTION_ITEM(--json)Interpret PARAM(dagfile) as a JSON format Makeflow. +OPTION_ITEM(--jx)Evaluate JX expressions in PARAM(dagfile). Implies --json. +OPTION_PAIR(--jx-args, args)Read variable definitions from the JX file PARAM(args). +OPTION_PAIR(--jx-define, VAL=EXPR)Set the variable PARAM(VAL) to the JX expression PARAM(EXPR). +OPTION_PAIR(--jx-context, ctx)Deprecated. See '--jx-args'. +OPTIONS_END + +SUBSECTION(Debugging Options) +OPTIONS_BEGIN +OPTION_TRIPLET(-d, debug, subsystem)Enable debugging for this subsystem. +OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). +OPTION_PAIR(--debug-rotate-max, byte)Rotate debug file once it reaches this size. +OPTION_ITEM(`--verbose')Display runtime progress on stdout. +OPTIONS_END + +SUBSECTION(WorkQueue Options) +OPTIONS_BEGIN +OPTION_TRIPLET(-C, catalog-server, catalog)Set catalog server to PARAM(catalog). Format: HOSTNAME:PORT +OPTION_TRIPLET(-F, wq-fast-abort, #)WorkQueue fast abort multiplier. (default is deactivated) +OPTION_TRIPLET(-M,-N, project-name, project)Set the project name to PARAM(project). +OPTION_TRIPLET(-p, port, port)Port number to use with WorkQueue. (default is 9123, 0=arbitrary) +OPTION_TRIPLET(-Z, port-file, file)Select port at random and write it to this file. (default is disabled) +OPTION_TRIPLET(-P, priority, integer)Priority. Higher the value, higher the priority. +OPTION_TRIPLET(-t, wq-keepalive-timeout, #)Work Queue keepalive timeout (default: 30s) +OPTION_TRIPLET(-u, wq-keepalive-interval, #)Work Queue keepalive interval (default: 120s) +OPTION_TRIPLET(-W, wq-schedule, mode)WorkQueue scheduling algorithm. (time|files|fcfs) +OPTION_PAIR(password, pwfile)Password file for authenticating workers. +OPTION_ITEM(`--disable-cache')Disable file caching (currently only Work Queue, default is false) +OPTION_PAIR(--work-queue-preferred-connection,connection)Indicate preferred connection. Chose one of by_ip or by_hostname. (default is by_ip) +OPTIONS_END + +SUBSECTION(Monitor Options) +OPTIONS_BEGIN +OPTION_PAIR(--monitor, dir)Enable the resource monitor, and write the monitor logs to +OPTION_PAIR(--monitor-exe, file)Specify resource monitor executable. +OPTION_ITEM(`--monitor-with-time-series')Enable monitor time series. (default is disabled) +OPTION_ITEM(`--monitor-with-opened-files')Enable monitoring of openened files. (default is disabled) +OPTION_PAIR(--monitor-interval, #)Set monitor interval to <#> seconds. (default 1 second) +OPTION_PAIR(--monitor-log-fmt, fmt)Format for monitor logs. (default resource-rule-%06.6d, %d -> rule number) +OPTION_ITEM(`--monitor-measure-dir')Monitor measures the task's current execution directory size. +OPTION_PAIR(--allocation, waste,throughput)When monitoring is enabled, automatically assign resource allocations to tasks. Makeflow will try to minimize CODE(waste) or maximize CODE(throughput). +OPTIONS_END + +SUBSECTION(Umbrella Options) +OPTIONS_BEGIN +OPTION_PAIR(--umbrella-binary, filepath)Umbrella binary for running every rule in a makeflow. +OPTION_PAIR(--umbrella-log-prefix, filepath)Umbrella log file prefix for running every rule in a makeflow. (default is .umbrella.log) +OPTION_PAIR(--umbrella-mode, mode)Umbrella execution mode for running every rule in a makeflow. (default is local) +OPTION_PAIR(--umbrella-spec, filepath)Umbrella spec for running every rule in a makeflow. +OPTIONS_END + +SUBSECTION(Docker Support) +OPTIONS_BEGIN +OPTION_PAIR(--docker,image) Run each task in the Docker container with this name. The image will be obtained via "docker pull" if it is not already available. +OPTION_PAIR(--docker-tar,tar) Run each task in the Docker container given by this tar file. The image will be uploaded via "docker load" on each execution site. +OPTION_PAIR(--docker-opt,string)Specify options to be used in DSingularityocker execution. +OPTIONS_END + +SUBSECTION(Singularity Support) +OPTIONS_BEGIN +OPTION_PAIR(--singularity,image) Run each task in the Singularity container with this name. The container will be created from the passed in image. +OPTION_PAIR(--singularity-opt,string)Specify options to be used in Singularity execution. +OPTIONS_END + +SUBSECTION(Amazon Options) +OPTIONS_BEGIN +OPTION_PAIR(--amazon-config,path) Path to Amazon EC2 configuration file generated by makeflow_ec2_setup. +OPTIONS_END + +SUBSECTION(Amazon Lambda Options) +OPTIONS_BEGIN +OPTION_PAIR(--lambda-config,path) Path to Amazon Lambda configuration file generated by makeflow_lambda_setup. +OPTIONS_END + +SUBSECTION(Amazon Batch Options) +OPTIONS_BEGIN +OPTION_PAIR(--amazon-batch-config,path) Path to Amazon Batch configuration file generated by makeflow_amazon_batch_setup. +OPTION_PAIR(--amazon-batch-img,img) Specify image used for Amazon Batch execution. +OPTIONS_END + +SUBSECTION(Mesos Options) +OPTIONS_BEGIN +OPTION_PAIR(--mesos-master, hostname) Indicate the host name of preferred mesos master. +OPTION_PAIR(--mesos-path, filepath) Indicate the path to mesos python2 site-packages. +OPTION_PAIR(--mesos-preload, library) Indicate the linking libraries for running mesos.. + +SUBSECTION(Kubernetes Options) +OPTIONS_BEGIN +OPTION_PAIR(--k8s-image, docker_image) Indicate the Docker image for running pods on Kubernetes cluster. +OPTIONS_END + +SUBSECTION(Mountfile Support) +OPTIONS_BEGIN +OPTION_PAIR(--mounts, mountfile)Use this file as a mountlist. Every line of a mountfile can be used to specify the source and target of each input dependency in the format of BOLD(target source) (Note there should be a space between target and source.). +OPTION_PAIR(--cache, cache_dir)Use this dir as the cache for file dependencies. +OPTIONS_END + +SUBSECTION(Archiving Options) +OPTIONS_BEGIN +OPTION_PAIR(--archive)Archive results of workflow at the specified path (by default /tmp/makeflow.archive.$UID) and use outputs of any archived jobs instead of re-executing job +OPTION_PAIR(--archive-dir,path)Specify archive base directory. +OPTION_PAIR(--archive-read,path)Only check to see if jobs have been cached and use outputs if it has been +OPTION_PAIR(--archive-s3,s3_bucket)Base S3 Bucket name +OPTION_PAIR(--archive-s3-no-check,s3_bucket)Blind upload files to S3 bucket (No existence check in bucket). +OPTION_PAIR(--s3-hostname, s3_hostname)Base S3 hostname. Used for AWS S3. +OPTION_PAIR(--s3-keyid, s3_key_id)Access Key for cloud server. Used for AWS S3. +OPTION_PAIR(--s3-secretkey, secret_key)Secret Key for cloud server. Used for AWS S3. +OPTIONS_END + +SUBSECTION(VC3 Builder Options) +OPTIONS_BEGIN +OPTION_ITEM(`--vc3-builder')Enable VC3 Builder +OPTION_PAIR(--vc3-exe, file)VC3 Builder executable location +OPTION_PAIR(--vc3-log, file)VC3 Builder log name +OPTION_PAIR(--vc3-options, string)VC3 Builder option string +OPTIONS_END + +SUBSECTION(Other Options) +OPTIONS_BEGIN +OPTION_ITEM(`-A, --disable-afs-check')Disable the check for AFS. (experts only) +OPTION_ITEM(`-z, --zero-length-error')Force failure on zero-length output files. +OPTION_TRIPLET(-g, gc, type)Enable garbage collection. (ref_cnt|on_demand|all) +OPTION_PAIR(--gc-size, int)Set disk size to trigger GC. (on_demand only) +OPTION_TRIPLET(-G, gc-count, int)Set number of files to trigger GC. (ref_cnt only) +OPTION_PAIR(--wrapper,script) Wrap all commands with this BOLD(script). Each rule's original recipe is appended to BOLD(script) or replaces the first occurrence of BOLD({}) in BOLD(script). +OPTION_PAIR(--wrapper-input,file) Wrapper command requires this input file. This option may be specified more than once, defining an array of inputs. Additionally, each job executing a recipe has a unique integer identifier that replaces occurrences BOLD(%%) in BOLD(file). +OPTION_PAIR(--wrapper-output,file) Wrapper command requires this output file. This option may be specified more than once, defining an array of outputs. Additionally, each job executing a recipe has a unique integer identifier that replaces occurrences BOLD(%%) in BOLD(file). +OPTION_ITEM(`--enforcement')Use Parrot to restrict access to the given inputs/outputs. +OPTION_PAIR(--parrot-path,path)Path to parrot_run executable on the host system. +OPTION_PAIR(--env-replace-path,path)Path to env_replace executable on the host system. +OPTION_ITEM(`--skip-file-check')Do not check for file existence before running. +OPTION_ITEM(`--do-not-save-failed-output')Disable saving failed nodes to directory for later analysis. +OPTION_PAIR(--shared-fs,dir)Assume the given directory is a shared filesystem accessible at all execution sites. +OPTION_TRIPLET(-X, change-directory, dir)Change to prior to executing the workflow. +OPTIONS_END + +SUBSECTION(MPI Options) +OPTIONS_BEGIN +OPTION_PAIR(--mpi-cores, #)Number of cores each MPI worker uses. +OPTION_PAIR(--mpi-memory, #)Amount of memory each MPI worker uses. +OPTION_PAIR(--mpi-task-working-dir, path)Path to the MPI tasks working directory. +OPTIONS_END + +SECTION(DRYRUN MODE) + +When the batch system is set to BOLD(-T) PARAM(dryrun), Makeflow runs as usual +but does not actually execute jobs or modify the system. This is useful to +check that wrappers and substitutions are applied as expected. In addition, +Makeflow will write an equivalent shell script to the batch system log +specified by BOLD(-L) PARAM(logfile). This script will run the commands in +serial that Makeflow would have run. This shell script format may be useful +for archival purposes, since it does not depend on Makeflow. + +SECTION(MPI) +When cctools is built with --with-mpicc-path=`which mpicc` configuration, Makeflow can be ran as an MPI program. +To do so, run Makeflow as an argument to BOLD(mpirun)/BOLD(mpiexec) and set BOLD(-T) PARAM(mpi) as a Makeflow option. +When submitting mpi, request one process per core. Makeflow will count up how many processes each node given to MPI +has, and use that as the core count for the worker on that node. Makeflow will then share memory evenly amongst the cores +on the node, following the following equation BOLD(worker_memory) = (BOLD(total_memory) / BOLD(total_logical_cores)) * BOLD(num_cores_for_worker). +To override Makeflow sharing memory equally, or setting per-worker cores value, use OPTION_ITEM('--mpi-cores') and OPTION_ITEM('--mpi-memory'). + +Tasks can also have their own sandbox. To specify the directory for tasks to create their sandbox subdirectory in, use OPTION_ITEM('--mpi-task-working-dir'). + +SECTION(ENVIRONMENT VARIABLES) + +The following environment variables will affect the execution of your +BOLD(Makeflow): +SUBSECTION(BATCH_OPTIONS) + +This corresponds to the BOLD(-B) PARAM(options) parameter and will pass extra +batch options to the underlying execution engine. + +SUBSECTION(MAKEFLOW_MAX_LOCAL_JOBS) +This corresponds to the BOLD(-j) PARAM(#) parameter and will set the maximum +number of local batch jobs. If a BOLD(-j) PARAM(#) parameter is specified, the +minimum of the argument and the environment variable is used. + +SUBSECTION(MAKEFLOW_MAX_REMOTE_JOBS) +This corresponds to the BOLD(-J) PARAM(#) parameter and will set the maximum +number of local batch jobs. If a BOLD(-J) PARAM(#) parameter is specified, the +minimum of the argument and the environment variable is used. +PARA +Note that variables defined in your BOLD(Makeflow) are exported to the +environment. + +SUBSECTION(TCP_LOW_PORT) +Inclusive low port in range used with CODE(-p 0). + +SUBSECTION(TCP_HIGH_PORT)) +Inclusive high port in range used with CODE(-p 0). + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Run makeflow locally with debugging: +LONGCODE_BEGIN +makeflow -d all Makeflow +LONGCODE_END + +Run makeflow on Condor will special requirements: +LONGCODE_BEGIN +makeflow -T condor -B "requirements = MachineGroup == 'ccl'" Makeflow +LONGCODE_END + +Run makeflow with WorkQueue using named workers: +LONGCODE_BEGIN +makeflow -T wq -a -N project.name Makeflow +LONGCODE_END + +Create a directory containing all of the dependencies required to run the +specified makeflow +LONGCODE_BEGIN +makeflow -b bundle Makeflow +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_MAKEFLOW + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/makeflow_monitor.m4 cctools-7.1.2/doc/man/m4/makeflow_monitor.m4 --- cctools-7.0.22/doc/man/m4/makeflow_monitor.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/makeflow_monitor.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,58 @@ +include(manual.h)dnl +HEADER(makeflow_monitor) + +SECTION(NAME) +BOLD(makeflow_monitor) - Makeflow log monitor + +SECTION(SYNOPSIS) +CODE(BOLD(makeflow_monitor [options] PARAM(makeflowlog))) + +SECTION(DESCRIPTION) +CODE(makeflow_monitor) is simple BOLD(Makeflow) log monitor that displays the +progress and statistics of a workflow based on the provided PARAM(makeflowlog). +Once started, it will continually monitor the specified PARAM(makeflowlogs) for +new events and update the progress display. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_ITEM(-h)Show this help message and exit. +OPTION_PAIR(-f, format)Output format to emit. +OPTION_PAIR(-t, seconds)Timeout for reading the logs. +OPTION_PAIR(-m, minimum)Mininum number of tasks. +OPTION_ITEM(-S)Sort logs by progress. +OPTION_ITEM(-P)Parse dag for node information. +OPTION_ITEM(-H)Hide finished makeflows. +OPTIONS_END +PARA +Currently, the only supported PARAM(format) is "text", which means +CODE(makeflow_monitor) will display the progress of the workflows directly to +the console. +PARA +Additionally, the CODE(-P) parameter current does not do anything. + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) +Monitor a BOLD(Makeflow) log: +LONGCODE_BEGIN +makeflow_monitor Makeflow.makeflowlog +LONGCODE_END +Monitor multiple BOLD(Makeflow) logs and hide finished workflows: +LONGCODE_BEGIN +makeflow_monitor -H */*.makeflowlog +LONGCODE_END +Monitor multiple BOLD(Makeflow) logs under current directory and only display +currently running workflows with a minimum of 4 tasks: +LONGCODE_BEGIN +find . -name '*.makeflowlog' | xargs makeflow_monitor -m 4 -H +LONGCODE_END +The example above is useful for hierarchical workflows. + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_MAKEFLOW + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/makeflow_mpi_starter.m4 cctools-7.1.2/doc/man/m4/makeflow_mpi_starter.m4 --- cctools-7.0.22/doc/man/m4/makeflow_mpi_starter.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/makeflow_mpi_starter.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,76 @@ +include(manual.h)dnl +HEADER(makeflow_mpi_starter) + +SECTION(NAME) +BOLD(makeflow_mpi_starter) - mpi wrapper program for makeflow and workqueue + +SECTION(SYNOPSIS) +CODE(BOLD(makeflow_mpi_starter [options])) + +SECTION(DESCRIPTION) + +BOLD(makeflow_mpi_starter) is an MPI wrapper program that will start Makeflow and +WorkQueue on the nodes allocated to it. It is intended as a simple, easy way for +users to take advantage of MPI-based system while using Makeflow and WorkQueue. To +use it, the user simply needs to call it as one would a regular MPI program. For +the program to work, cctools needs to be configured with CODE(--with-mpicc-path). + +SECTION(OPTIONS) +When CODE(makeflow_mpi_starter) is ran without arguments, it will attempt to execute the +workflow specified by the BOLD(Makeflow) dagfile. + +SUBSECTION(Commands) +OPTIONS_BEGIN +OPTION_TRIPLET(-m, makeflow-arguments, option)Options to pass to makeflow, such as dagfile, etc +OPTION_TRIPLET(-p, makeflow-port, port)The port for Makeflow to use when communicating with workers +OPTION_TRIPLET(-q, workqueue-arguments, option)Options to pass to work_queue_worker +OPTION_TRIPLET(-c, copy-out, location)Where to copy out all files produced +OPTION_TRIPLET(-d, debug, debugprefix)Base Debug file name +OPTION_ITEM(`-h, --help')Print out this help +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Run with debugging: +LONGCODE_BEGIN +mpirun -np $NUM_PROC makeflow_mpi_starter -m "Makeflow.mf" -d mydebug +LONGCODE_END + +Run makeflow with custom port: +LONGCODE_BEGIN +mpirun -np $NUM_PROC makeflow_mpi_starter -m "Makeflow.mf" -d mydebug -p 9001 +LONGCODE_END + +Run makeflow with garbage collection +LONGCODE_BEGIN +mpirun -np $NUM_PROC makeflow_mpi_starter -m "-gall Makeflow.mf" -d mydebug +LONGCODE_END + +Example SGE submission script +LONGCODE_BEGIN + +#!/bin/csh + +#$ -pe mpi-* 120 +#$ -q debug +#$ -N mpi_starter_example + +module load ompi + +mpirun -np $NSLOTS makeflow_mpi_starter -m "Makeflow.mf" -d mydebug +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_MAKEFLOW + +SEE_ALSO_WORKQUEUE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/makeflow_status.m4 cctools-7.1.2/doc/man/m4/makeflow_status.m4 --- cctools-7.0.22/doc/man/m4/makeflow_status.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/makeflow_status.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,48 @@ +include(manual.h)dnl +HEADER(makeflow_status) + +SECTION(NAME) +BOLD(makeflow_status) - command line tool retrieving the status of makeflow programs. + +SECTION(SYNOPSIS) +CODE(BOLD(makeflow_status [options])) + +SECTION(DESCRIPTION) + +BOLD(makeflow_status) retrieves the status of makeflow programs and prints out a report to BOLD(stdout). By using flags, users can filter out certain responses, such as only finding reports of a certain projet, or a certain project owner. + + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_TRIPLET(-N, project, project)The project on which to filter results. +OPTION_TRIPLET(-u, username, user)The owner on which to filter results. +OPTION_TRIPLET(-s, server, server)The catalog server to retrieve the reports from. +OPTION_TRIPLET(-p, port, port)The port to contact the catalog server on. +OPTION_TRIPLET(-t, timeout, time)Set remote operation timeout. +OPTION_ITEM(`-h, --help')Show help text. +OPTIONS_END + +SECTION(ENVIRONMENT VARIABLES) + +LIST_BEGIN +LIST_ITEM(CODE(BOLD(CATALOG_HOST)) The catalog server to retrieve reports from (same as CODE(-s)).) +LIST_ITEM(CODE(BOLD(CATALOG_PORT)) The port to contact the catalog server on (same as CODE(-p)).) +LIST_END + +SECTION(EXIT STATUS) +On success, returns 0 and prints out the report to stdout. + +SECTION(EXAMPLES) + +Retrieving reports related to project "awesome" + +LONGCODE_BEGIN +% makeflow_status -N awesome +LONGCODE_END + + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/makeflow_viz.m4 cctools-7.1.2/doc/man/m4/makeflow_viz.m4 --- cctools-7.0.22/doc/man/m4/makeflow_viz.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/makeflow_viz.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,70 @@ +include(manual.h)dnl +HEADER(makeflow_viz) + +SECTION(NAME) +BOLD(makeflow_viz) - visualization of Makeflow workflows + +SECTION(SYNOPSIS) +CODE(BOLD(makeflow_viz [options] PARAM(dagfile))) + +SECTION(DESCRIPTION) + +BOLD(makeflow_viz) is a collection of tools to graphically display workflows. This includes DOT and PPM. + +SECTION(OPTIONS) +SUBSECTION(Commands) +OPTIONS_BEGIN +OPTION_ITEM(`-v, --version')Show version string. +OPTION_ITEM(`-h, --help')Show help message. +OPTION_TRIPLET(-D, display, opt) Translate the makeflow to the desired visualization format: + dot DOT file format for precise graph drawing. + ppm PPM file format for rapid iconic display. + cyto Cytoscape format for browsing and customization. + dax DAX format for use by the Pegasus workflow manager. + json JSON representation of the DAG. +OPTION_ITEM(` ')Options for dot output: +OPTION_ITEM(`--dot-merge-similar')Condense similar boxes +OPTION_ITEM(`--dot-proportional')Change the size of the boxes proportional to file size +OPTION_ITEM(`--dot-no-labels')Show only shapes with no text labels. +OPTION_ITEM(`--dot-details')Display a more detailed graph including an operating sandbox for each task. +OPTION_ITEM(`--dot-task-id')Set task label to ID number instead of command. +OPTION_ITEM(`--dot-graph-attr')Set graph attributes. +OPTION_ITEM(`--dot-node-attr')Set node attributes. +OPTION_ITEM(`--dot-edge-attr')Set edge attributes. +OPTION_ITEM(`--dot-task-attr')Set task attributes. +OPTION_ITEM(`--dot-file-attr')Set file attributes. +OPTION_ITEM(` ')The following options for ppm generation are mutually exclusive: +OPTION_PAIR(--ppm-highlight-row, row)Highlight row in completion grap +OPTION_PAIR(--ppm-highlight-file,file)Highlight node that creates file in completion graph +OPTION_PAIR(--ppm-highlight-executable,exe)Highlight executable in completion grap +OPTION_ITEM(`--ppm-show-levels')Display different levels of depth in completion graph +OPTION_ITEM(` ')Options for JSON output: +OPTION_ITEM(`--json')Use JSON format for the workflow specification. +OPTION_ITEM(`--jx')Use JX format for the workflow specification. +OPTION_PAIR(--jx-args, )Evaluate the JX input with keys and values in file defined as variables. +OPTION_PAIR(--jx-define, =)Set the JX variable VAR to the JX expression EXPR. +OPTIONS_END + + + +SECTION(EXAMPLES) + +To produce a DOT representation of the workflow +LONGCODE_BEGIN +makeflow_viz -D dot Makeflow +LONGCODE_END + +To produce a cytoscape representation of the workflow +LONGCODE_BEGIN +makeflow_viz -D cyto Makeflow +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_MAKEFLOW + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/make_growfs.m4 cctools-7.1.2/doc/man/m4/make_growfs.m4 --- cctools-7.0.22/doc/man/m4/make_growfs.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/make_growfs.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,70 @@ +include(manual.h)dnl +HEADER(make_growfs) + +SECTION(NAME) +BOLD(make_growfs) - generate directory listings for the GROW filesystem + +SECTION(SYNOPSIS) +CODE(BOLD(make_growfs [options] PARAM(directory))) + +SECTION(DESCRIPTION) + +BOLD(make_growfs) prepares a local filesystem to be exported as +a GROW filesystem which can be accessed by MANPAGE(parrot_run,1). +Given a directory as an argument, it recursively visits all of +the directories underneath and creates files named CODE(.__growfsdir) +that summarize the metadata of all files in that directory. +PARA +Once the directory files are generated, the files may be accessed +through a web server as if there were on a full-fledged filesystem +with complete metadata. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_ITEM(-v)Give verbose messages. +OPTION_ITEM(-K)Create checksums for files. (default) +OPTION_ITEM(-k)Disable checksums for files. +OPTION_ITEM(-f)Follow all symbolic links. +OPTION_ITEM(-F)Do not follow any symbolic links. +OPTION_ITEM(-a)Only follow links that fall outside the root. (default) +OPTION_ITEM(-h)Show help text. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Suppose that your university web server exports the +directory CODE(/home/fred/www) as CODE(http://www.somewhere.edu/fred). +To create a GROW filesystem, put whatever files and directories you +like into CODE(/home/fred/www). Then, run the following to generate +the GROW data: + +LONGCODE_BEGIN +% make_growfs /home/fred/www +LONGCODE_END + +Now that the GROW data is generated, you can use MANPAGE(parrot_run,1) +to treat the web address as a read-only filesystem: + +LONGCODE_BEGIN +% parrot_run bash +% cd /growfs/www.somewhere.edu/fred +% ls -la +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +LIST_BEGIN +LIST_ITEM(LINK(The Cooperative Computing Tools,"http://ccl.cse.nd.edu/software/manuals")) +LIST_ITEM(LINK(Parrot User Manual,"http://ccl.cse.nd.edu/software/manuals/parrot.html")) +LIST_ITEM(MANPAGE(parrot_run,1)) +LIST_END + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/maker_wq.m4 cctools-7.1.2/doc/man/m4/maker_wq.m4 --- cctools-7.0.22/doc/man/m4/maker_wq.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/maker_wq.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,41 @@ +include(manual.h)dnl +HEADER(maker_wq) + +SECTION(NAME) +BOLD(maker_wq) - Run the Maker genome annotation tool using Work Queue to harness heterogenous resources + +SECTION(SYNOPSIS) +CODE(BOLD(maker_wq [options] )) + +SECTION(DESCRIPTION) +BOLD(maker_wq) is a master script to run the Maker genome annotation tool using Work Queue to enable the user to harness the heterogenous power of multiple systems simultaneously. It accepts all of the Maker inputs. The primary difference is that the MPI code has been replaced with Work Queue components. +PARA +BOLD(maker_wq) expects a maker_wq_worker in the path, and can be used from any working directory. All required input files are specified in the standard Maker control files just as in the standard Maker distribution. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_PAIR(-port, port)Specify the port on which to create the Work Queue +OPTION_PAIR(-fa, fast_abort)Specify a fast abort multiplier +OPTION_PAIR(-N, project)Specify a project name for utilizing shared workers +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(ENVIRONMENT VARIABLES) + +SECTION(EXAMPLES) + +To run maker_wq, specify the same arguments as standard Maker: +LONGCODE_BEGIN +maker_wq maker_opts.ctl maker_bopts.ctl maker_exe.ctl > output +LONGCODE_END +This will begin the Maker run. All that is needed now is to submit workers that can be accessed by our master. + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_cp.m4 cctools-7.1.2/doc/man/m4/parrot_cp.m4 --- cctools-7.0.22/doc/man/m4/parrot_cp.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_cp.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,63 @@ +include(manual.h)dnl +HEADER(parrot_cp) + +SECTION(NAME) +BOLD(parrot_cp) - a replacement for CODE(cp) that provides higher performance when dealing +with remote files via CODE(parrot_run). + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_cp [options] ... sources ... PARAM(dest))) + +SECTION(DESCRIPTION) + +CODE(parrot_cp) is a drop-in replacement for the Unix CODE(cp) command. +It provides better performance when copying files to or from remote storage +systems by taking advantage of whole-file transfer rather than copying files +block-by-block. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_ITEM(`-f, --force')Forcibly remove target before copying. +OPTION_ITEM(`-i, --interactive')Interactive mode: ask before overwriting. +OPTION_ITEM(-r) Same as -R +OPTION_ITEM(`-R, --recursive')Recursively copy directories. +OPTION_ITEM(`-s, --symlinks')Make symbolic links instead of copying files. +OPTION_ITEM(`-l, --hardlinks' )Make hard links instead of copying files. +OPTION_ITEM(`-u, --update-only')Update mode: Copy only if source is newer than target. +OPTION_ITEM(`-v, --version')Verbose mode: Show names of files copied. +OPTION_ITEM(`-h, --help')Help: Show these options. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To use parrot_cp you can either call the code directly: + +LONGCODE_BEGIN +% parrot_run tcsh +% parrot_cp /tmp/mydata /chirp/server.nd.edu/joe/data +% exit +LONGCODE_END + +or alias calls to CODE(cp) with calls to CODE(parrot_cp): + +LONGCODE_BEGIN +% parrot_run bash +% alias cp parrot_cp +% cp -r /chirp/server.nd.edu/joe /tmp/joe +% exit +LONGCODE_END + + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_getacl.m4 cctools-7.1.2/doc/man/m4/parrot_getacl.m4 --- cctools-7.0.22/doc/man/m4/parrot_getacl.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_getacl.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,34 @@ +include(manual.h)dnl +HEADER(parrot_getacl) + +SECTION(NAME) +BOLD(parrot_getacl) - get ACL information for Parrot filesystem + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_getacl PARAM(path))) + +SECTION(DESCRIPTION) +CODE(parrot_getacl) utilizes BOLD(Parrot) system calls to retrieve the access +control list (ACL) information for the filesystem located at the specified +PARAM(path). +PARA +Note, this program only works if it is executed under BOLD(Parrot) and if the +underlying filesystem supports ACLs. + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) +Get ACL for BOLD(Chirp) directory: + +LONGCODE_BEGIN +% parrot_run parrot_getacl /chirp/student00.cse.nd.edu/ +LONGCODE_END + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_locate.m4 cctools-7.1.2/doc/man/m4/parrot_locate.m4 --- cctools-7.0.22/doc/man/m4/parrot_locate.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_locate.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,59 @@ +include(manual.h)dnl +HEADER(parrot_locate) + +SECTION(NAME) +BOLD(parrot_locate) - provides the true location of the data stored in a named file. + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_locate path)) + +SECTION(DESCRIPTION) + +CODE(parrot_locate) utilises BOLD(parrot) system calls to identify where the data stored as the file +at CODE(PARAM(path)) is actually located. For example, running CODE(parrot_locate) on a file stored in a +BOLD(chirp) multi-volume will return the server name and file path on the server where the data is. +Running it on a file stored in BOLD(hdfs) will return the list of chunk servers storing the file. +PARA +Note that CODE(parrot_locate) varies depending on the underlying system. Most systems return output +in the form "CODE(PARAM(server):PARAM(real path))", but that output is not guaranteed. + + +SECTION(OPTIONS) + +CODE(parrot_locate) has no options. + + +SECTION(ENVIRONMENT VARIABLES) +Environment variables required by CODE(parrot_locate) are system dependent. +Most systems do not use or require any. Refer to the specific system's documentation +for more information. + + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To check the location of a file stored in chirp: + +LONGCODE_BEGIN +% parrot_run parrot_locate /chirp/server.nd.edu/joe/data + server.nd.edu:/chirp/server.nd.edu/joe/data +LONGCODE_END + +or a file stored in a chirp multi-volume + +LONGCODE_BEGIN +% parrot_run parrot_locate /multi/server.nd.edu@multivol/data + datastore01.nd.edu:multivol/data/ttmtteotsznxewoj +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_lsalloc.m4 cctools-7.1.2/doc/man/m4/parrot_lsalloc.m4 --- cctools-7.0.22/doc/man/m4/parrot_lsalloc.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_lsalloc.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,59 @@ +include(manual.h)dnl +HEADER(parrot_lsalloc) + +SECTION(NAME) +BOLD(parrot_lsalloc) - list current status of a space allocation + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_lsalloc [path])) + +SECTION(DESCRIPTION) + +CODE(parrot_lsalloc) examines a given directory, determines if it is +contained within a space allocation, and then displays the allocation +size and the current usage. As the name suggests, the command only runs +correctly inside of the Parrot virtual file system, on file servers where space allocation is enabled. +PARA +The BOLD(path) argument gives the directory to examine. +If none is given, the current directory is assumed. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_ITEM(-h)Show help text. +OPTIONS_END + + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. +If the command is attempted on a filesystem that does not support +space allocation, it will give the following error: + +LONGCODE_BEGIN +parrot_lsalloc: This filesystem does not support allocations. +LONGCODE_END + +SECTION(EXAMPLES) + +To list a space allocation on a Chirp server: + +LONGCODE_BEGIN +% parrot_run bash +% cd /chirp/myserver.somewhere.edu +% parrot_lsalloc bigdir +/chirp/myserver.somewhere.edu/bigdir +10 GB TOTAL +1 GB INUSE +9 GB AVAIL +% exit +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_md5.m4 cctools-7.1.2/doc/man/m4/parrot_md5.m4 --- cctools-7.0.22/doc/man/m4/parrot_md5.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_md5.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,42 @@ +include(manual.h)dnl +HEADER(parrot_md5) + +SECTION(NAME) +BOLD(parrot_md5) - returns the BOLD(MD5) checksum of a file, generated on the remote system if possible. + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_md5 PARAM(path))) + +SECTION(DESCRIPTION) + +CODE(parrot_md5) returns the BOLD(MD5) checksum of the file stored at PARAM(path). If possible +it calls a native function of the remote system to get the checksum, without requiring the transfer +of the file's contents to the user's machine. +If the filesystem does not support the checksum function internally, +it is computed by the user-level program in the normal fashion. + +SECTION(OPTIONS) +CODE(parrot_md5) has no options. + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To retrieve the BOLD(MD5) checksum of a file stored on a BOLD(chirp) server: + +LONGCODE_BEGIN +% parrot_run parrot_md5 /chirp/server.nd.edu/joe/data + d41d8cd98f00b204e9800998ecf8427e data +LONGCODE_END + + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_mkalloc.m4 cctools-7.1.2/doc/man/m4/parrot_mkalloc.m4 --- cctools-7.0.22/doc/man/m4/parrot_mkalloc.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_mkalloc.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,55 @@ +include(manual.h)dnl +HEADER(parrot_mkalloc) + +SECTION(NAME) +BOLD(parrot_mkalloc) - create a directory with a space allocation + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_mkalloc PARAM(path) PARAM(size))) + +SECTION(DESCRIPTION) + +CODE(parrot_mkalloc) creates a new directory with a space allocation. +As the name suggests, the command only runs correctly inside of the +Parrot virtual file system, on file servers where space allocation is enabled. +PARA +The BOLD(path) argument gives the new directory to create, and +the BOLD(size) argument indicates how large the space allocation should be. +The latter may use metric units such as K, M, B, etc to indicate kilobytes, +megabytes, gigabytes, and so forth. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_ITEM(-h)Show help text. +OPTIONS_END + + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. +If the command is attempted on a filesystem that does not support +space allocation, it will give the following error: + +LONGCODE_BEGIN +parrot_mkalloc: This filesystem does not support allocations. +LONGCODE_END + +SECTION(EXAMPLES) + +To create a space allocation of ten gigabytes on a Chirp server: + +LONGCODE_BEGIN +% parrot_run bash +% cd /chirp/myserver.somewhere.edu +% parrot_mkalloc bigdir 10G +% exit +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_mount.m4 cctools-7.1.2/doc/man/m4/parrot_mount.m4 --- cctools-7.0.22/doc/man/m4/parrot_mount.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_mount.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,46 @@ +include(manual.h)dnl +HEADER(parrot_mount) + +SECTION(NAME) +BOLD(parrot_mount) - mount new directories inside of a Parrot instance. + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_mount PARAM(path) PARAM(destination) PARAM(permissions))) + +SECTION(DESCRIPTION) +CODE(parrot_mount) utilizes BOLD(Parrot) system calls to change the namespace +of the parrot filesystem while it is running. New mount points can be +added with read, write, or execute permissions, and existing mount points +can be removed. The namespace can be locked down with the CODE(--disable) +option, which prevents any further changes in the current session. + +OPTIONS_BEGIN +OPTION_PAIR(--unmount,path) Unmount a previously mounted path. +OPTION_ITEM(--disable) Disable any further mounting/unmounting in this parrot session. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Mount a remote Chirp filesystem as a read-only data directory: + +LONGCODE_BEGIN +% parrot_run bash +% parrot_mount /chirp/fs.somewhere.edu/data /data R +LONGCODE_END + +Umount the same directory: + +LONGCODE_BEGIN +parrot_mount --unmount /data +LONGCODE_END + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_namespace.m4 cctools-7.1.2/doc/man/m4/parrot_namespace.m4 --- cctools-7.0.22/doc/man/m4/parrot_namespace.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_namespace.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,60 @@ +include(manual.h)dnl +HEADER(parrot_namespace) + +SECTION(NAME) +BOLD(parrot_namespace) - run a command in a modified namespace. + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_cp [options] PARAM(command))) + +SECTION(DESCRIPTION) + +CODE(parrot_namespace) detects whether it is already running under Parrot +and either forks a new mount namespace in the existing Parrot session or +simply executes CODE(parrot_run). For applications that only need to make +mount-related changes, CODE(parrot_namespace) is a drop-in replacement +for CODE(parrot_run) that automatically handles nested invocations. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_ITEM(`-M, --mount /foo=/bar')Mount (redirect) CODE(/foo) +to CODE(/bar) (CODE(PARROT_MOUNT_STRING)) +OPTION_ITEM(`-m, --ftab-file ')Use CODE() as a +mountlist (CODE(PARROT_MOUNT_FILE)) +OPTION_TRIPLET(-l, ld-path, path)Path to ld.so to use. +OPTION_ITEM(`--parrot-path')Path to CODE(parrot_run) (CODE(PARROT_PATH)) +OPTION_ITEM(`-v, --version')Show version number +OPTION_ITEM(`-h, --help')Help: Show these options +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To run Parrot under Parrot with a modified mount environment, +use CODE(parrot_namespace) + +LONGCODE_BEGIN +% parrot_namespace -M /tmp=/tmp/job01 sh +% parrot_mount --unmount /tmp # not allowed +LONGCODE_END + +Now in the same shell, we can call CODE(parrot_namespace) regardless +of whether we're already running under Parrot or not. + +LONGCODE_BEGIN +% parrot_namespace -m mountfile foo +LONGCODE_END + + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_package_create.m4 cctools-7.1.2/doc/man/m4/parrot_package_create.m4 --- cctools-7.0.22/doc/man/m4/parrot_package_create.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_package_create.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,77 @@ +include(manual.h)dnl +HEADER(parrot_package_create) + +SECTION(NAME) +BOLD(parrot_package_create) - generate a package based on the accessed files and the preserved environment variables + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_package_create [options])) + +SECTION(DESCRIPTION) +After recording the accessed files and environment variables of one program with the help of the CODE(--name-list) parameter and the CODE(--env-list) of CODE(parrot_run), CODE(parrot_package_create) can generate a package containing all the accessed files. You can also add the dependencies recorded in a new namelist file into an existing package. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_TRIPLET(-a, add, path)The path of an existing package. +OPTION_TRIPLET(-e, env-list, path)The path of the environment variables. +OPTION_ITEM(` --new-env')The relative path of the environment variable file under the package. +OPTION_TRIPLET(-n, name-list, path)The path of the namelist list. +OPTION_TRIPLET(-p, package-path, path)The path of the package. +OPTION_TRIPLET(-d, debug, flag)Enable debugging for this sub-system. +OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). +OPTION_ITEM(`-h, --help')Show the help info. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) +To generate the package corresponding to BOLD(namelist) and BOLD(envlist): +LONGCODE_BEGIN +% parrot_package_create --name-list namelist --env-list envlist --package-path /tmp/package +LONGCODE_END +After executing this command, one package with the path of BOLD(/tmp/package) will be generated. +PARA + +Here is a short instruction about how to make use of CODE(parrot_run), CODE(parrot_package_create) and CODE(parrot_package_run) +to generate one package for your experiment and repeat your experiment within your package. +PARA +Step 1: Run your program under CODE(parrot_run) and using BOLD(--name-list) and BOLD(--env-list) parameters to +record the filename list and environment variables. +LONGCODE_BEGIN +% parrot_run --name-list namelist --env-list envlist /bin/bash +LONGCODE_END +After the execution of this command, you can run your program inside CODE(parrot_run). At the end of step 1, one file named BOLD(namelist) containing all the accessed file names and one file named BOLD(envlist) containing environment variables will be generated. +After everything is done, exit CODE(parrot_run): +LONGCODE_BEGIN +% exit +LONGCODE_END +PARA +Step 2: Using CODE(parrot_package_create) to generate a package. +LONGCODE_BEGIN +% parrot_package_create --name-list namelist --env-path envlist --package-path /tmp/package +LONGCODE_END +At the end of step 2, one package with the path of BOLD(/tmp/package) will be generated. +PARA +Step 3: Repeat your program within your package. +LONGCODE_BEGIN +% parrot_package_run --package-path /tmp/package --shell-type bash ... +LONGCODE_END +After the execution of this command, one shell will be returned, where you can repeat your original program (Please replace BOLD(--shell-type) parameter with the shell type you actually used). After everything is done, exit CODE(parrot_package_run): +LONGCODE_BEGIN +% exit +LONGCODE_END + +You can also add the dependencies recorded in a new namelist file, BOLD(namelist1), into an existing package: +LONGCODE_BEGIN +% parrot_package_create --name-list namelist1 --env-list envlist1 --new-env envlist1 --add /tmp/package +LONGCODE_END +After executing this command, all the new dependencies mentioned in BOLD(namelist1) will be added into BOLD(/tmp/package), the new envlist, BOLD(envlist1), will also be added into BOLD(/tmp/package) with the name specified by the BOLD(--new-env) option. + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_PARROT +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_package_run.m4 cctools-7.1.2/doc/man/m4/parrot_package_run.m4 --- cctools-7.0.22/doc/man/m4/parrot_package_run.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_package_run.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,74 @@ +include(manual.h)dnl +HEADER(parrot_package_run) + +SECTION(NAME) +BOLD(parrot_package_run) - repeat a program within the package with the help of CODE(parrot_run) + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_package_run --package-path your-package-path [command])) + +SECTION(DESCRIPTION) +If CODE(parrot_run) is used to repeat one experiment, one mountlist must be created so that the file access request of your program can be redirected into the package. CODE(parrot_package_run) is used to create the mountlist and repeat your program within the package with the help of CODE(parrot_run) and BOLD(mountlist). If no command is given, a /bin/sh shell will be returned. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_ITEM(`-p, --package-path')The path of the package. +OPTION_ITEM(`-e, --env-list')The path of the environment file, each line is in the format of =. (Default: package-path/env_list) +OPTION_ITEM(`-h, --help')Show this help message. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) +To repeat one program within one package BOLD(/tmp/package) in a BOLD(bash) shell: +LONGCODE_BEGIN +% parrot_package_run --package-path /tmp/package /bin/bash +LONGCODE_END +After the execution of this command, one shell will be returned, where you can repeat your original program. After everything is done, exit CODE(parrot_package_run): +LONGCODE_BEGIN +% exit +LONGCODE_END +You can also directly set your command as the arguments of CODE(parrot_package_run). In this case, CODE(parrot_package_run) will exit automatically after the command is finished, and you do not need to use CODE(exit) to exit. However, your command must belong to the original command set executed inside CODE(parrot_run) and preserved by CODE(parrot_package_create). +LONGCODE_BEGIN +% parrot_package_run --package-path /tmp/package ls -al +LONGCODE_END + +Here is a short instruction about how to make use of CODE(parrot_run), CODE(parrot_package_create) and CODE(parrot_package_run) +to generate one package for your experiment and repeat your experiment within your package. +PARA +Step 1: Run your program under CODE(parrot_run) and using BOLD(--name-list) and BOLD(--env-list) parameters to +record the filename list and environment variables. +LONGCODE_BEGIN +% parrot_run --name-list namelist --env-list envlist /bin/bash +LONGCODE_END +After the execution of this command, you can run your program inside CODE(parrot_run). At the end of step 1, one file named BOLD(namelist) containing all the accessed file names and one file named BOLD(envlist) containing environment variables will be generated. +After everything is done, exit CODE(parrot_run): +LONGCODE_BEGIN +% exit +LONGCODE_END +PARA +Step 2: Using CODE(parrot_package_create) to generate a package. +LONGCODE_BEGIN +% parrot_package_create --name-list namelist --env-path envlist --package-path /tmp/package +LONGCODE_END +At the end of step 2, one package with the path of BOLD(/tmp/package) will be generated. +PARA +Step 3: Repeat your program within your package. +LONGCODE_BEGIN +% parrot_package_run --package-path /tmp/package /bin/bash +LONGCODE_END +After the execution of this command, one shell will be returned, where you can repeat your original program. After everything is done, exit CODE(parrot_package_run): +LONGCODE_BEGIN +% exit +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_run.m4 cctools-7.1.2/doc/man/m4/parrot_run.m4 --- cctools-7.0.22/doc/man/m4/parrot_run.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_run.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,128 @@ +include(manual.h)dnl +HEADER(parrot_run) + +SECTION(NAME) +BOLD(parrot_run) - run a program in the Parrot virtual file system + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_run [parrot_options] program [program_options])) + +SECTION(DESCRIPTION) +CODE(parrot_run) runs an application or a shell inside the Parrot virtual filesystem. Parrot redirects the application's system calls to remote storage systems. Parrot currently supports the following remote storage systems: HTTP, GROW, FTP, GridFTP, iRODS, HDFS, XRootd, Chirp. This list may vary depending on how Parrot was built. Run CODE(parrot -h) to see exactly what support is available on your system. +PARA +Parrot works by trapping the application's system calls through the CODE(ptrace) debugging interface. It does not require any special privileges to install or run, so it is useful to ordinary users that wish to access data across wide area networks. The CODE(ptrace) debugging interface does have some cost, so applications may run slower, depending on how many I/O operations they perform. +PARA +For complete details with examples, see the LINK(Parrot User's Manual,http://ccl.cse.nd.edu/software/manuals/parrot.html) + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_PAIR(--check-driver,driver) Check for the presence of a given driver (e.g. http, ftp, etc) and return success if it is currently enabled. +OPTION_TRIPLET(-a,chirp-auth,unix|hostname|ticket|globus|kerberos)Use this Chirp authentication method. May be invoked multiple times to indicate a preferred list, in order. +OPTION_TRIPLET(-b, block-size, bytes)Set the I/O block size hint. +OPTION_TRIPLET(-c, status-file, file)Print exit status information to file. +OPTION_ITEM(-C, channel-auth)Enable data channel authentication in GridFTP. +OPTION_TRIPLET(-d, debug, flag)Enable debugging for this sub-system. +OPTION_ITEM(-D, --no-optimize)Disable small file optimizations. +OPTION_ITEM(--dynamic-mounts) Enable the use of parot_mount in this session. +OPTION_ITEM(-F, --with-snapshots)Enable file snapshot caching for all protocols. +OPTION_ITEM(-f, --no-follow-symlinks)Disable following symlinks. +OPTION_TRIPLET(-G,gid,num)Fake this gid; Real gid stays the same. +OPTION_ITEM(-h, --help)Show this screen. +OPTION_ITEM(--helper)Enable use of helper library. +OPTION_TRIPLET(-i, tickets, files)Comma-delimited list of tickets to use for authentication. +OPTION_TRIPLET(-I, debug-level-irods, num)Set the iRODS driver internal debug level. +OPTION_ITEM(-K, --with-checksums)Checksum files where available. +OPTION_ITEM(-k, --no-checksums)Do not checksum files. +OPTION_TRIPLET(-l, ld-path, path)Path to ld.so to use. +OPTION_TRIPLET(-m, ftab-file, file)Use this file as a mountlist. +OPTION_TRIPLET(-M, mount, /foo=/bar)Mount (redirect) /foo to /bar. +OPTION_TRIPLET(-e, env-list, path)Record the environment variables. +OPTION_TRIPLET(-n, name-list, path)Record all the file names. +OPTION_ITEM(--no-set-foreground)Disable changing the foreground process group of the session. +OPTION_TRIPLET(-N, hostname, name)Pretend that this is my hostname. +OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). +OPTION_TRIPLET(-O, debug-rotate-max, bytes)Rotate debug files of this size. +OPTION_TRIPLET(-p, proxy, host:port)Use this proxy server for HTTP requests. +OPTION_ITEM(-Q, --no-chirp-catalog)Inhibit catalog queries to list /chirp. +OPTION_TRIPLET(-r, cvmfs-repos, repos)CVMFS repositories to enable (PARROT_CVMFS_REPO). +OPTION_ITEM(--cvmfs-repo-switching) Allow repository switching with CVMFS. +OPTION_TRIPLET(-R, root-checksum, cksum)Enforce this root filesystem checksum, where available. +OPTION_ITEM(-s, --stream-no-cache)Use streaming protocols without caching. +OPTION_ITEM(-S, --session-caching)Enable whole session caching for all protocols. +OPTION_ITEM(--syscall-disable-debug)Disable tracee access to the Parrot debug syscall. +OPTION_TRIPLET(-t, tempdir, dir)Where to store temporary files. +OPTION_TRIPLET(-T, timeout, time)Maximum amount of time to retry failures. +time)Maximum amount of time to retry failures. +OPTION_ITEM(--time-stop) Stop virtual time at midnight, Jan 1st, 2001 UTC. +OPTION_ITEM(--time-warp) Warp virtual time starting from midnight, Jan 1st, 2001 UTC. +OPTION_TRIPLET(-U, uid, num)Fake this unix uid; Real uid stays the same. +OPTION_TRIPLET(-u, username, name)Use this extended username. +OPTION_ITEM(--fake-setuid)Track changes from setuid and setgid. +OPTION_ITEM(--valgrind)Enable valgrind support for Parrot. +OPTION_ITEM(-v, --version)Display version number. +OPTION_ITEM(--is-running)Test is Parrot is already running. +OPTION_TRIPLET(-w, work-dir, dir)Initial working directory. +OPTION_ITEM(-W, --syscall-table)Display table of system calls trapped. +OPTION_ITEM(-Y, --sync-write)Force synchronous disk writes. +OPTION_ITEM(-Z, --auto-decompress)Enable automatic decompression on .gz files. +OPTION_PAIR(--disable-service,service) Disable a compiled-in service (e.g. http, cvmfs, etc.) +OPTIONS_END + +SECTION(ENVIRONMENT VARIABLES) +CODE(parrot_run) sets the environment variable CODE(PARROT_ENABLED) to the value CODE(1) +for its child processes. This makes it possible to set a visible flag in your shell prompt +when CODE(parrot_run) is enabled. + +SECTION(EXIT STATUS) +CODE(parrot_run) returns the exit status of the process that it runs. +If CODE(parrot_run) is unable to start the process, it will return non-zero. + +SECTION(EXAMPLES) +To access a single remote file using CODE(vi): +LONGCODE_BEGIN +% parrot_run vi /anonftp/ftp.gnu.org/pub/README +LONGCODE_END + +You can also run an entire shell inside of Parrot, like this: +LONGCODE_BEGIN +% parrot_run bash +% cd /anonftp/ftp.gnu.org/pub +% ls -la +% cat README +% exit +LONGCODE_END + +To see the list of available Chirp servers around the world: +LONGCODE_BEGIN +% parrot_run ls -la /chirp +LONGCODE_END + +Parrot can record the names of all the accessed files and the environment variables during the execution process of one program, like this: +LONGCODE_BEGIN +% parrot_run --name-list list.txt --env-list envlist ls ~ +LONGCODE_END +The environment variables at the starting moment of your program will be recorded into BOLD(envlist). The absolute paths of all the accessed files, together with the system call types, will be recorded into BOLD(list.txt). For example, the file BOLD(/usr/bin/ls) is accessed using the BOLD(stat) system call, like this: +LONGCODE_BEGIN +% /usr/bin/ls|stat +LONGCODE_END + +SECTION(NOTES ON DOCKER) + +Docker by default blocks ptrace, the system call on which parrot relies. To +run parrot inside docker, the container needs to be started using the +CODE(--security-opt seccomp=unconfined) command line argument. For +example: + +LONGCODE_BEGIN + docker run --security-opt seccomp=unconfined MY-DOCKER-IMAGE +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_setacl.m4 cctools-7.1.2/doc/man/m4/parrot_setacl.m4 --- cctools-7.0.22/doc/man/m4/parrot_setacl.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_setacl.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,35 @@ +include(manual.h)dnl +HEADER(parrot_setacl) + +SECTION(NAME) +BOLD(parrot_setacl) - set ACL information for Parrot filesystem + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_setacl PARAM(path) PARAM(subject) PARAM(rights))) + +SECTION(DESCRIPTION) +CODE(parrot_setacl) utilizes BOLD(Parrot) system calls to set the access +control list (ACL) information for the directory specified by PARAM(path). The +PARAM(subject) argument refers to the entity to authorize, while the +PARAM(rights) argument is one of the following: read, write, admin, none. +PARA +Note, this program only works if it is executed under MANPAGE(parrot_run,1) and if the +underlying filesystem supports ACLs. + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) +Set read and list permissions for subject "unix:user" on a BOLD(Chirp) directory: + +LONGCODE_BEGIN +% parrot_run parrot_setacl /chirp/student00.cse.nd.edu/user unix:user rl +LONGCODE_END + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_timeout.m4 cctools-7.1.2/doc/man/m4/parrot_timeout.m4 --- cctools-7.0.22/doc/man/m4/parrot_timeout.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_timeout.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,52 @@ +include(manual.h)dnl +HEADER(parrot_timeout) + +SECTION(NAME) +BOLD(parrot_timeout) - changes or resets the master timeout for the current BOLD(parrot) session + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_timeout PARAM(time))) + +SECTION(DESCRIPTION) + +CODE(parrot_timeout) changes the master timeout for the current BOLD(parrot) session to +PARAM(time). If PARAM(time) was not given, it resets it to the default value (5 minutes if +an interactive session or 1 hour for a non-interactive session). + +SECTION(OPTIONS) + +CODE(parrot_timeout) has no options. + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To change the master timeout to 5 hours: + +LONGCODE_BEGIN +% parrot_run tcsh +% parrot_timeout 5h +% ./my_executable +% exit +LONGCODE_END + +To change it to 30 seconds for one program and then reset it to the default value +LONGCODE_BEGIN +% parrot_run tcsh +% parrot_timeout 40m +% ./my_executable +% parrot_timeout +% ./my_second_executable +% exit +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/parrot_whoami.m4 cctools-7.1.2/doc/man/m4/parrot_whoami.m4 --- cctools-7.0.22/doc/man/m4/parrot_whoami.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/parrot_whoami.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,50 @@ +include(manual.h)dnl +HEADER(parrot_whoami) + +SECTION(NAME) +BOLD(parrot_whoami) - returns the user's credentials (id and authentication method) from the perspective of the system being accessed. + +SECTION(SYNOPSIS) +CODE(BOLD(parrot_whoami PARAM(path))) + +SECTION(DESCRIPTION) + +CODE(parrot_whoami) interrogates the system being accessed at PARAM(path) and returns the user's id +from the perspective of that system as well as the authentication method being used. The specific +results depend on the system being accessed. +PARA +If PARAM(path) is not provided the current working directory is used. + +SECTION(OPTIONS) + +CODE(parrot_whoami) has no options. + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To get the user's credentials when accessing a remote chirp server: +LONGCODE_BEGIN +% parrot_run parrot_whoami /chirp/server.nd.edu/joe_data/data +unix:joe +LONGCODE_END + +If you're working within a remote directory, PARAM(path) is not necessary: +LONGCODE_BEGIN +% parrot_run tcsh +% cd /chirp/server.nd.edu/joe_data/data +% parrot_whoami +unix:joe +% exit +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_PARROT + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/pbs_submit_workers.m4 cctools-7.1.2/doc/man/m4/pbs_submit_workers.m4 --- cctools-7.0.22/doc/man/m4/pbs_submit_workers.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/pbs_submit_workers.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,64 @@ +include(manual.h)dnl +HEADER(pbs_submit_workers) + +SECTION(NAME) +BOLD(pbs_submit_workers) - submit work_queue_worker to a PBS cluster. + +SECTION(SYNOPSIS) +CODE(BOLD(pbs_submit_workers [options] PARAM(servername) PARAM(port) PARAM(num-workers))) + +SECTION(DESCRIPTION) +CODE(pbs_submit_workers) schedules the execution of MANPAGE(work_queue_worker,1) +on the PBS batch system through its job submission interface, qsub. +The number of BOLD(work_queue_worker) scheduled and run is given by the BOLD(num-workers) +argument. + +The BOLD(servername) and BOLD(port) arguments specify the hostname and port number of the +master for the work_queue_worker to connect. These two arguments become optional when the +auto mode option is specified for work_queue_worker. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_ITEM(-M, name)Name of the preferred master for worker. +OPTION_PAIR(-N, name)Preferred project name for work_queue_worker to connect. +OPTION_PAIR(-c, cores)Set the number of cores each worker should use (0=auto). (default=1) +OPTION_PAIR(-C, catalog)Set catalog server for work_queue_worker to . format: HOSTNAME:PORT. +OPTION_PAIR(-t, seconds)Abort work_queue_worker after this amount of idle time (default=900s). +OPTION_PAIR(-d, subsystem)Enable debugging on worker for this subsystem (try -d all to start). +OPTION_PAIR(-w, size)Set TCP window size +OPTION_PAIR(-i, time)Set initial value for backoff interval when worker fails to connect to a master. (default=1s) +OPTION_PAIR(-b, time)Set maxmimum value for backoff interval when worker fails to connect to a master. (default=60s) +OPTION_PAIR(-z, size)Set available disk space threshold (in MB). When exceeded worker will clean up and reconnect. (default=100MB) +OPTION_PAIR(-A, arch)Set architecture string for the worker to report to master instead of the value in uname. +OPTION_PAIR(-O, os)Set operating system string for the worker to report to master instead of the value in uname. +OPTION_PAIR(-s, path)Set the location for creating the working directory of the worker. +OPTION_PAIR(-j)Use job array to submit workers. +OPTION_PAIR(-p, parameters)PBS qsub parameters. +OPTION_ITEM(-h)Show help message. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Submit 10 worker instances to run on PBS and connect to a specific master: + +LONGCODE_BEGIN +pbs_submit_workers master.somewhere.edu 9123 10 +LONGCODE_END + +Submit 10 work_queue_worker instances to run on PBS in auto mode with their +preferred project name set to Project_A and abort timeout set to 3600 seconds: + +LONGCODE_BEGIN +pbs_submit_workers -a -t 3600 -M Project_A 10 +LONGCODE_END + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_WORK_QUEUE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/replica_exchange.m4 cctools-7.1.2/doc/man/m4/replica_exchange.m4 --- cctools-7.0.22/doc/man/m4/replica_exchange.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/replica_exchange.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,70 @@ +include(manual.h)dnl +HEADER(replica_exchange) + +SECTION(NAME) +BOLD(replica_exchange) - Work Queue application for running replica exchange simulations using ProtoMol + +SECTION(SYNOPSIS) +CODE(BOLD(replica_exchange [options] PARAM(pdb_file) PARAM(psf_file) PARAM(par_file) PARAM(min_temp) PARAM(max_temp) PARAM(num_replicas))) + +SECTION(DESCRIPTION) +BOLD(replica_exchange) is a Work Queue application for running replica exchange simulations using the ProtoMol simulation package. The application supports both barrier and non-barrier based runs. +PARA +The barrier based run transfers the configuration files and input data for each replica to the connected MANPAGE(work_queue_worker) instances, runs the ProtoMol simulation package, and gathers the output, at each Monte Carlo step. It waits for the completion of simulation of all replicas at each step before proceeding to the next step and, therefore, incorporates a barrier at each step. At the end of every step, it randomly picks two neigboring replicas, applies the metropolis criterion, and if it is satisfied, swaps the parameters of the two replicas and continues simulations. +PARA +The non-barrier based run is equivalent to the barrier run in the output and results produced. However, it avoids the use of a barrier by running multiple monte carlo steps for each replica until that replica is picked to attempt an exchange. By default, the application will run using this non-barrier implementation. +PARA +The BOLD(pdb_file), BOLD(psf_file), and BOLD(par_file) arguments specify the input files required for the simulation run. The BOLD(min_temp) and BOLD(max_temp) specify the temperature range in which the replicas are simulated. The number of replicas simulated is given by BOLD(num_replicas). +PARA +BOLD(replica_exchange) can be run on any machine accesible to work_queue_worker instances. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_PAIR(-n, name)Specify a project name for using exclusive work_queue_worker instances. +OPTION_PAIR(-x, filename)Specify the name of the xyz file for output. +OPTION_PAIR(-d, filename)Specify the name of the dcd file for output. +OPTION_PAIR(-m, number)Specify the number of monte carlo steps. Default = 100. +OPTION_PAIR(-s, number)Specify the number of molecular dynamics steps. Default = 10000. +OPTION_PAIR(-p, path)Specify path for storing output files. +OPTION_ITEM(-q)Assign closer temperature values to replicas in the first and last quartile. +OPTION_ITEM(-i)Assume ProtoMol is installed and available in PATH on worker site. +OPTION_ITEM(-b)Use barrier in waiting for all replicas to finish their steps before attempting exchange. +OPTION_ITEM(-l)Print debuggging information. +OPTION_ITEM(-h)Show this help message. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(ENVIRONMENT VARIABLES) + +If the cctools are installed in a non-system directory, such as your +home directory, then you must set the CODE(PYTHONPATH) environment +so that the workqueue python module can be found. For example: + +LONGCODE_BEGIN +% setenv PYTHONPATH $HOME/cctools/lib/python2.4/site-packages +LONGCODE_END + +SECTION(EXAMPLES) + +To run a replica exchange experiment with 84 replicas in the temperature range 278 to 400K using the sample input files: +LONGCODE_BEGIN +% replica_exchange ww_exteq_nowater1.pdb ww_exteq_nowater1.psf par_all27_prot_lipid.inp 278 400 84 +LONGCODE_END + +To run a replica exchange experiment, with project name ReplExch, over 250 Monte Carlo steps running 1000 molecular dynamics steps +and involving 84 replicas in the temperature range 278 to 400K using the sample input files: +LONGCODE_BEGIN +% replica_exchange -N ReplExch -m 250 -s 1000 ww_exteq_nowater1.pdb ww_exteq_nowater1.psf par_all27_prot_lipid.inp 278 400 84 +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_WORK_QUEUE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/resource_monitor_histograms.m4 cctools-7.1.2/doc/man/m4/resource_monitor_histograms.m4 --- cctools-7.0.22/doc/man/m4/resource_monitor_histograms.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/resource_monitor_histograms.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,80 @@ +include(manual.h)dnl +HEADER(resource_monitor_histograms) + +SECTION(NAME) +BOLD(resource_monitor_histograms) - create HTML pages and graphs of resource monitor data + +SECTION(SYNOPSIS) +CODE(BOLD(resource_monitor_histograms [options] -L monitor_data_file_list output_directory [workflow_name])) +CODE(BOLD(resource_monitor_histograms [options] output_directory < monitor_data_file_list [workflow_name])) + +SECTION(DESCRIPTION) + +BOLD(resource_monitor_histograms) is a tool to visualize resource usage as +reported by BOLD(resource_monitor). BOLD(resource_monitor_histograms) expects +a file listing the paths of summary files (-L option or from standard +input). Results are written to BOLD(output_directory) in the form of several +webpages showing histograms and statistics per resource. + +SECTION(ARGUMENTS) + +SUBSECTION(Input Options) +OPTIONS_BEGIN +OPTION_PAIR(-L, monitor_data_file_list)File with one summary file path per line. +OPTIONS_END + +SUBSECTION(Output Options) +OPTIONS_BEGIN +OPTION_PAIR(` output_directory')The path in which to store the visualizations. See index.html for the root of the visualization. +OPTION_ITEM(` workflow_name')Optional name to include to describe the workflow being visualized. +OPTION_PAIR(-f,str)Select which fields for the histograms. Default is "cores,memory,disk". Available fields are: +OPTIONS_END + +LONGCODE_BEGIN +bandwidth +bytes_read +bytes_received +bytes_send +bytes_written +cores +cpu_time +disk +max_concurrent_processes +memory +swap_memory +total_files +total_processes +virtual_memory +wall_time +LONGCODE_END + +SUBSECTION(Debugging Options) +OPTIONS_BEGIN +OPTION_TRIPLET(-d, debug, subsystem)Enable debugging for this subsystem. +OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). +OPTION_ITEM(`--verbose')Display runtime progress on stdout. +OPTIONS_END + + +SECTION(EXAMPLES) + +Most common usage: + +LONGCODE_BEGIN +% find my_summary_files_directory -name "*.summary" > summary_list +% resource_monitor_histograms -L summary_list my_histograms my_workflow_name +% # open my_histograms/index.html +LONGCODE_END + +Splitting on categories, generating only resident memory related histograms: + +LONGCODE_BEGIN +% resource_monitor_histograms -f memory -L summary_list my_histograms my_workflow_name +% # open my_histograms/index.html +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/resource_monitor.m4 cctools-7.1.2/doc/man/m4/resource_monitor.m4 --- cctools-7.0.22/doc/man/m4/resource_monitor.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/resource_monitor.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,346 @@ +include(manual.h)dnl +HEADER(resource_monitor) + +SECTION(NAME) +BOLD(resource_monitor) - monitors the cpu, memory, io, and disk usage of a tree of processes. + +SECTION(SYNOPSIS) +CODE(BOLD(resource_monitor [options] -- command [command-options])) + +SECTION(DESCRIPTION) + +BOLD(resource_monitor) is a tool to monitor the computational +resources used by the process created by the command given as an +argument, and all its descendants. The monitor works +'indirectly', that is, by observing how the environment changed +while a process was running, therefore all the information +reported should be considered just as an estimate (this is in +contrast with direct methods, such as ptrace). It works on +Linux, and can be used automatically by +CODE(makeflow) and CODE(work queue) applications. + +Additionally, the user can specify maximum resource limits in the +form of a file, or a string given at the command line. If one of +the resources goes over the limit specified, then the monitor +terminates the task, and reports which resource went over the +respective limits. + +In systems that support it, BOLD(resource_monitor) wraps some +libc functions to obtain a better estimate of the resources used. + +Currently, the monitor does not support interactive applications. That +is, if a process issues a read call from standard input, and standard +input has not been redirected, then the tree process is +terminated. This is likely to change in future versions of the tool. + +BOLD(resource_monitor) generates up to three log files: a summary file encoded +as json with the maximum values of resource used, a time-series that shows the +resources used at given time intervals, and a list of files that were opened +during execution. + +The summary file is a JSON document with the following fields. Unless +indicated, all fields are an array with two values, a number that describes the +measurement, and a string describing the units (e.g., CODE([ measurement, "units" ])). + +LONGCODE_BEGIN +command: the command line given as an argument +start: time at start of execution, since the epoch +end: time at end of execution, since the epoch +exit_type: one of "normal", "signal" or "limit" (a string) +signal: number of the signal that terminated the process + Only present if exit_type is signal +cores: maximum number of cores used +cores_avg: number of cores as cpu_time/wall_time +exit_status: final status of the parent process +max_concurrent_processes: the maximum number of processes running concurrently +total_processes: count of all of the processes created +wall_time: duration of execution, end - start +cpu_time: user+system time of the execution +virtual_memory: maximum virtual memory across all processes +memory: maximum resident size across all processes +swap_memory: maximum swap usage across all processes +bytes_read: amount of data read from disk +bytes_written: amount of data written to disk +bytes_received: amount of data read from network interfaces +bytes_sent: amount of data written to network interfaces +bandwidth: maximum bandwidth used +total_files: total maximum number of files and directories of + all the working directories in the tree +disk: size of all working directories in the tree +limits_exceeded: resources over the limit with -l, -L options (JSON object) +peak_times: seconds from start when a maximum occured (JSON object) +snapshots: List of intermediate measurements, identified by + snapshot_name (JSON object) +LONGCODE_END + +The time-series log has a row per time sample. For each row, the columns have the following meaning (all columns are integers): + +LONGCODE_BEGIN +wall_clock the sample time, since the epoch, in microseconds +cpu_time accumulated user + kernel time, in microseconds +cores current number of cores used +max_concurrent_processes concurrent processes at the time of the sample +virtual_memory current virtual memory size, in MB +memory current resident memory size, in MB +swap_memory current swap usage, in MB +bytes_read accumulated number of bytes read, in bytes +bytes_written accumulated number of bytes written, in bytes +bytes_received accumulated number of bytes received, in bytes +bytes_sent accumulated number of bytes sent, in bytes +bandwidth current bandwidth, in bps +total_files current number of files and directories, across all + working directories in the tree +disk current size of working directories in the tree, in MB +LONGCODE_END + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_TRIPLET(-d,debug,subsystem)Enable debugging for this subsystem. +OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). +OPTION_ITEM(`-v,--version')Show version string. +OPTION_ITEM(`-h,--help')Show help text. +OPTION_TRIPLET(-i,interval,n)Maximum interval between observations, in seconds (default=1). +OPTION_ITEM(--pid=pid)Track pid instead of executing a command line (warning: less precise measurements). +OPTION_ITEM(--accurate-short-processes)Accurately measure short running processes (adds overhead). +OPTION_TRIPLET(-c,sh,str)Read command line from CODE(str), and execute as '/bin/sh -c CODE(str)'. +OPTION_TRIPLET(-l,limits-file,file)Use maxfile with list of var: value pairs for resource limits. +OPTION_TRIPLET(-L,limits,string)String of the form `"var: value, var: value\' to specify resource limits. (Could be specified multiple times.) +OPTION_ITEM(`-f, --child-in-foreground')Keep the monitored process in foreground (for interactive use). +OPTION_TRIPLET(-O,with-output-files,template)Specify CODE(template) for log files (default=CODE(resource-pid)). +OPTION_ITEM(--with-time-series)Write resource time series to CODE(template.series). +OPTION_ITEM(--with-inotify)Write inotify statistics of opened files to default=CODE(template.files). +OPTION_TRIPLET(-V,verbatim-to-summary,str)Include this string verbatim in a line in the summary. (Could be specified multiple times.) +OPTION_ITEM(--measure-dir=dir)Follow the size of dir. By default the directory at the start of execution is followed. Can be specified multiple times. See --without-disk-footprint below. +OPTION_ITEM(--follow-chdir)Follow processes' current working directories. +OPTION_ITEM(--without-disk-footprint)Do not measure working directory footprint. Overrides --measure-dir. +OPTION_ITEM(--no-pprint)Do not pretty-print summaries. +OPTION_ITEM(--snapshot-events=file)Configuration file for snapshots on file patterns. See below. +OPTION_ITEM(--catalog-task-name=)Report measurements to catalog server with "task"=. +OPTION_ITEM(--catalog-project=)Set project name of catalog update to (default=). +OPTION_ITEM(--catalog=)Use catalog server . (default=catalog.cse.nd.edu:9097).\n", "--catalog="); +OPTION_ITEM(--catalog-interval=)Send update to catalog every seconds. (default=30). + +OPTIONS_END + +The limits file should contain lines of the form: + +LONGCODE_BEGIN +resource: max_value +LONGCODE_END + +It may contain any of the following fields, in the same units as +defined for the summary file: + +CODE(max_concurrent_processes), +CODE(`wall_time, cpu_time'), +CODE(`virtual_memory, resident_memory, swap_memory'), +CODE(`bytes_read, bytes_written'), +CODE(`workdir_number_files_dirs, workdir_footprint') + +SECTION(ENVIRONMENT VARIABLES) + +LIST_BEGIN +LIST_ITEM(CODE(BOLD(CCTOOLS_RESOURCE_MONITOR_HELPER)) Location of the desired helper library to wrap libc calls. If not provided, a version of the helper library is packed with the resource_monitor executable.) +LIST_END + +SECTION(EXIT STATUS) + +LIST_BEGIN +LIST_ITEM 0 The command exit status was 0, and the monitor process ran without errors. +LIST_ITEM 1 The command exit status was non-zero, and the monitor process ran without errors. +LIST_ITEM 2 The command was terminated because it ran out of resources (see options -l, -L). +LIST_ITEM 3 The command did not run succesfully because the monitor process had an error. +LIST_END + +To obtain the exit status of the original command, see the generated file with extension CODE(.summary). + + +SECTION(SNAPSHOTS) + +The resource_monitor can be directed to take snapshots of the resources used +according to the files created by the processes monitored. The typical use of +monitoring snapshots is to set a watch on a log file, and generate a snapshot +when a line in the log matches a pattern. To activate the snapshot facility, +use the command line argument --snapshot-events=CODE(file), in which CODE(file) is a +JSON-encoded document with the following format: + +LONGCODE_BEGIN + { + "FILENAME": { + "from-start":boolean, + "from-start-if-truncated":boolean, + "delete-if-found":boolean, + "events": [ + { + "label":"EVENT_NAME", + "on-create":boolean, + "on-truncate":boolean, + "on-pattern":"REGEXP", + "count":integer + }, + { + "label":"EVENT_NAME", + ... + } + ] + }, + "FILENAME": { + ... + } +LONGCODE_END + +All fields but BOLD(label) are optional. + +LIST_BEGIN + LIST_ITEM FILENAME: Name of a file to watch. + LIST_ITEM from-start:boolean If FILENAME exits when the monitor starts running, process from line 1. Default: false, as monitored processes may be appending to already existing files. + LIST_ITEM from-start-if-truncated If FILENAME is truncated, process from line 1. Default: true, to account for log rotations. + LIST_ITEM delete-if-found Delete FILENAME when found. Default: false + + LIST_ITEM events: +LIST_BEGIN + LIST_ITEM label Name that identifies the snapshot. Only alphanumeric, -, + and _ characters are allowed. + LIST_ITEM on-create Take a snapshot every time the file is created. Default: false + LIST_ITEM on-delete Take a snapshot every time the file is deleted. Default: false + LIST_ITEM on-truncate Take a snapshot when the file is truncated. Default: false + LIST_ITEM on-pattern Take a snapshot when a line matches the regexp pattern. Default: none + LIST_ITEM count Maximum number of snapshots for this label. Default: -1 (no limit) +LIST_END +LIST_END + +The snapshots are recorded both in the main resource summary file under the key +BOLD(snapshots), and as a JSON-encoded document, with the extension +.snapshot.NN, in which NN is the sequence number of the snapshot. The snapshots +are identified with the key "snapshot_name", which is a comma separated string +of BOLD(label)`('count`)' elements. A label corresponds to a name that +identifies the snapshot, and the count is the number of times an event was +triggered since last check (several events may be triggered, for example, when +several matching lines are written to the log). Several events may have the same label, and exactly one of on-create, on-truncate, and on-pattern should be specified per event. + + +SECTION(EXAMPLES) + +To monitor 'sleep 10', at 2 second intervals, with output to sleep-log.summary, and with a monitor alarm at 5 seconds: + +LONGCODE_BEGIN +% resource_monitor --interval=2 -L"wall_time: 5" -o sleep-log -- sleep 10 +LONGCODE_END + +Execute 'date' and redirect its output to a file: + +LONGCODE_BEGIN +% resource_monitor --sh 'date > date.output' +LONGCODE_END + +It can also be run automatically from makeflow, by specifying the '-M' flag: + +LONGCODE_BEGIN +% makeflow --monitor=some-log-dir Makeflow +LONGCODE_END + +In this case, makeflow wraps every command line rule with the +monitor, and writes the resulting logs per rule in the +CODE(some-log-dir) directory + +Additionally, it can be run automatically from Work Queue: + +LONGCODE_BEGIN +q = work_queue_create_monitoring(port); +work_queue_enable_monitoring(q, some-log-dir, /*kill tasks on exhaustion*/ 1); +LONGCODE_END + +wraps every task with the monitor and writes the resulting summaries in +CODE(some-log-file). + +SECTION(SNAPSHOTS EXAMPLES) + +Generate a snapshot when "my.log" is created: + +LONGCODE_BEGIN +{ + "my.log": + { + "events":[ + { + "label":"MY_LOG_STARTED", + "on-create:true + } + ] + } +} +LONGCODE_END + +Generate snapshots every time a line is added to "my.log": + +LONGCODE_BEGIN +{ + "my.log": + { + "events":[ + { + "label":"MY_LOG_LINE", + "on-pattern":"^.*$" + } + ] + } +} +LONGCODE_END + +Generate snapshots on particular lines of "my.log": + +LONGCODE_BEGIN +{ + "my.log": + { + "events":[ + { + "label":"started", + "on-pattern":"^# START" + }, + { + "label":"end-of-start", + "on-pattern":"^# PROCESSING" + } + { + "label":"end-of-processing", + "on-pattern":"^# ANALYSIS" + } + ] + } +} +LONGCODE_END + +The monitor can also generate a snapshot when a particular file is created. The +monitor can detected this file, generate a snapshot, and delete the file to get +ready for the next snapshot. In the following example the monitor takes a +snapshot everytime the file CODE(please-take-a-snapshot) is created: + +LONGCODE_BEGIN +{ + "please-take-a-snapshot": + { + "delete-if-found":true, + "events":[ + { + "label":"manual-snapshot", + "on-create":true + } + ] + } +} +LONGCODE_END + + +SECTION(BUGS AND KNOWN ISSUES) + +LIST_BEGIN +LIST_ITEM(The monitor cannot track the children of statically linked executables.) +LIST_ITEM(The option --snapshot-events assumes that the watched files are written by appending to them. File truncation may not be detected if between checks the size of the file is larger or equal to the size after truncation. File checks are fixed at intervals of 1 second.) +LIST_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/resource_monitor_visualizer.m4 cctools-7.1.2/doc/man/m4/resource_monitor_visualizer.m4 --- cctools-7.0.22/doc/man/m4/resource_monitor_visualizer.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/resource_monitor_visualizer.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,18 @@ +include(manual.h)dnl +HEADER(resource_monitor_visualizer) + +SECTION(NAME) +BOLD(resource_monitor_visualizer.py) - create HTML pages and graphs of resource monitor data + +SECTION(SYNOPSIS) +CODE(BOLD(resource_monitor_visualizer.py data_path destination_path workflow_name)) + +SECTION(DESCRIPTION) + +BOLD(resource_monitor_visualizer.py) has been deprecated in favor of resource_monitor_histograms. + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/sand_align_kernel.m4 cctools-7.1.2/doc/man/m4/sand_align_kernel.m4 --- cctools-7.0.22/doc/man/m4/sand_align_kernel.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/sand_align_kernel.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,60 @@ +include(manual.h)dnl +HEADER(sand_align_kernel) + +SECTION(NAME) +BOLD(sand_align_kernel) - align candidate sequences sequentially + +SECTION(SYNOPSIS) +CODE(BOLD(sand_align_kernel [options] [input file])) + +SECTION(DESCRIPTION) + +BOLD(sand_align_kernel) aligns candidate sequences sequentially. +It is not normally called by the user, but is invoked by +MANPAGE(sand_align_master,1) for each sequential step of a distributed +alignment workload. The options to BOLD(sand_align_kernel) control +the type of alignment (Smith-Waterman, Prefix-Suffix, Banded, etc) +and the quality threshhold for reporting alignments. These options +are typically passed in by giving the BOLD(-e) option to BOLD(sand_align_master). +PARA +BOLD(sand_align_kernel) reads a list of sequences +from the given input file, or from standard input if none is given. +The sequences are in the compressed fasta format produced +by MANPAGE(sand_compress_reads,1). The first sequence in the input +is compared against all following sequences until a separator line. +Following the separator, the next sequence is compared against +all following sequences until the following separator, and so on. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_PAIR(-a,sw|ps|banded)Specify the type of alignment: sw (Smith-Waterman), ps (Prefix-Suffix), or banded. If not specified, default is banded. +OPTION_PAIR(-o,ovl|ovl_new|align|matrix)Specify how each alignment should be output: ovl (Celera V5, V6 OVL format), ovl_new (Celera V7 overlap format), align (display the sequences and alignment graphically) or matrix (display the dynamic programming matrix). MANPAGE(sand_align_master,1) expects the ovl output format, which is the default. The other formats are useful for debugging. +OPTION_PAIR(-m,length)Minimum aligment length (default: 0). +OPTION_PAIR(-q,quality)Minimum match quality (default: 1.00) +OPTION_ITEM(-x)Delete input file after completion. +OPTION_PAIR(-d,subsystem)Enable debugging for this subsystem. (Try BOLD(-d all) to start. +OPTION_ITEM(-v)Show program version. +OPTION_ITEM(-h)Display this message. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Users do not normally invoke sand_align_kernel directly. Instead, pass arguments by using the BOLD(-e) option to MANPAGE(sand_align_master,1). For example, to specify a minimum alignment length of 5 and a minimum quality of 0.25: + +LONGCODE_BEGIN +% sand_align_master sand_align_kernel -e "-m 5 -q 0.25" mydata.cand mydata.cfa mydata.ovl +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_SAND + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/sand_align_master.m4 cctools-7.1.2/doc/man/m4/sand_align_master.m4 --- cctools-7.0.22/doc/man/m4/sand_align_master.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/sand_align_master.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,65 @@ +include(manual.h)dnl +HEADER(sand_align_master) + +SECTION(NAME) +BOLD(sand_align_master) - align candidate sequences in parallel + +SECTION(SYNOPSIS) +CODE(BOLD(sand_align_master [options] sand_align_kernel candidates.cand sequences.cfa overlaps.ovl)) + +SECTION(DESCRIPTION) + +BOLD(sand_align_master) is the second step in the SAND assembler. +It reads in a list of sequences and a list of candidate pairs +to consider, generated by MANPAGE(sand_filter_master,1). +It then performs all of the comparisons and produces a list +of overlaps (in OVL format) that exceed a quality threshhold. +PARA +This program uses the Work Queue system to distributed tasks +among processors. After starting BOLD(sand_align_master), +you must start a number of MANPAGE(work_queue_worker,1) processes +on remote machines. The workers will then connect back to the +master process and begin executing tasks. The actual alignments +are performed by MANPAGE(sand_align_kernel,1) on each machine. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_PAIR(-p,port)Port number for work queue master to listen on. (default: 9123) +OPTION_PAIR(-n,number)Maximum number of candidates per task. (default is 10000) +OPTION_PAIR(-e,args)Extra arguments to pass to the alignment program. +OPTION_PAIR(-d,subsystem)Enable debugging for this subsystem. (Try BOLD(-d all) to start.) +OPTION_PAIR(-F,mult)Work Queue fast abort multiplier.(default is 10.) +OPTION_PAIR(-Z,file)Select port at random and write it out to this file. +OPTION_PAIR(-o,file)Send debugging to this file. +OPTION_ITEM(-v)Show version string. +OPTION_ITEM(-h)Show help text. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Suppose that you begin with a compressed FASTA file (CODE(mydata.cfa)) +and a list of candidate reads (CODE(mydata.cand)) generated by MANPAGE(sand_filter_master,1). +First, start a single MANPAGE(work_queue_worker,1) process in the background. +Then, invoke MANPAGE(sand_align_master) as follows: + +LONGCODE_BEGIN +% work_queue_worker localhost 9123 & +% sand_align_master sand_align_kernel mydata.cand mydata.cfa mydata.ovl +LONGCODE_END + +To speed up the process, run more MANPAGE(work_queue_worker) processes +on other machines, or use MANPAGE(condor_submit_workers,1) or MANPAGE(sge_submit_workers,1) to start hundreds of workers in your local batch system. + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_SAND + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/sand_compress_reads.m4 cctools-7.1.2/doc/man/m4/sand_compress_reads.m4 --- cctools-7.0.22/doc/man/m4/sand_compress_reads.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/sand_compress_reads.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,50 @@ +include(manual.h)dnl +HEADER(sand_compress_reads) + +SECTION(NAME) +BOLD(sand_compress_reads) - compress sequence data + +SECTION(SYNOPSIS) +CODE(BOLD(sand_compress_reads [-qcivh] [infile] [outfile])) + +SECTION(DESCRIPTION) + +BOLD(sand_compress_reads) reads sequence data in standard FASTA format, +and produces output in the compressed FASTA (cfa) format used by +the MANPAGE(sand_filter_master,1) and MANPAGE(sand_align_master,1). +PARA +If the output file is omitted, standard output is used. +if the input file is omitted, standard input is used. +After completing the compression, this program will output a summary +line of sequences and bytes compressed. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_ITEM(-q)Quiet mode: suppress summary line. +OPTION_ITEM(-c)Remove Celera read ids if data came from the Celera gatekeeper. +OPTION_ITEM(-i)Remove Celera read ids but leave internal ids if the data came from the Celera gatekeeper. +OPTION_ITEM(-h)Display version information. +OPTION_ITEM(-v)Show help text. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To compress CODE(mydata.fasta) into CODE(mydata.cfa): + +LONGCODE_BEGIN +% sand_compress_reads mydata.fasta mydata.cfa +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_SAND + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/sand_filter_kernel.m4 cctools-7.1.2/doc/man/m4/sand_filter_kernel.m4 --- cctools-7.0.22/doc/man/m4/sand_filter_kernel.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/sand_filter_kernel.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,57 @@ +include(manual.h)dnl +HEADER(sand_filter_kernel) + +SECTION(NAME) +BOLD(sand_filter_kernel) - filter read sequences sequentially + +SECTION(SYNOPSIS) +CODE(BOLD(sand_filter_kernel [options] PARAM(sequence file) [second sequence file])) + +SECTION(DESCRIPTION) + +BOLD(sand_filter_kernel) filters a list of genomic sequences, +and produces a list of candidate pairs for more detailed alignment. +It is not normally called by the user, but is invoked by +MANPAGE(sand_filter_master,1) for each sequential step of a distributed +alignment workload. +PARA +If one sequence file is given, BOLD(sand_filter_kernel) will look for +similarities between all sequences in that file. If given two files, +it will look for similarities between sequences in the first file and +the second file. The output is a list of candidate pairs, listing the +name of the candidate sequences and a starting position for alignment. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_PAIR(-s,size)Size of "rectangle" for filtering. You can determine +the size dynamically by passing in d rather than a number. +OPTION_PAIR(-r,file)A meryl file of repeat mers to be ignored. +OPTION_PAIR(-k,size)The k-mer size to use in candidate selection (default is 22). +OPTION_PAIR(-w,number)The minimizer window size to use in candidate selection (default is 22). +OPTION_PAIR(-o,filename)The output file. Default is stdout. +OPTION_PAIR(-d,subsystem)Enable debug messages for this subsystem. Try BOLD(-d all) to start. +OPTION_ITEM(-v)Show version string. +OPTION_ITEM(-h)Show help screen. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Users do not normally invoke BOLD(sand_filter_kernel) directly. Instead, options such as the k-mer size, minimizer window, and repeat file may be specified by the same arguments to MANPAGE(sand_filter_master,1) instead. For example, to run a filter with a k-mer size of 20, window size of 24, and repeat file of CODE(mydata.repeats): + +LONGCODE_BEGIN +% sand_filter_master -k 20 -w 24 -r mydata.repeats mydata.cfa mydata.cand +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_SAND + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/sand_filter_master.m4 cctools-7.1.2/doc/man/m4/sand_filter_master.m4 --- cctools-7.0.22/doc/man/m4/sand_filter_master.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/sand_filter_master.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,71 @@ +include(manual.h)dnl +HEADER(sand_filter_master) + +SECTION(NAME) +BOLD(sand_filter_master) - filter sequences for alignment in parallel + +SECTION(SYNOPSIS) +CODE(BOLD(sand_filter_master [options] sequences.cfa candidates.cand)) + +SECTION(DESCRIPTION) + +BOLD(sand_filter_master) is the first step in the SAND assembler. +It reads in a body of sequences, and uses a linear-time algorithm +to produce a list of candidate sequences to be aligned in detail +by MANPAGE(sand_align_master,1). +PARA +This program uses the Work Queue system to distributed tasks +among processors. After starting BOLD(sand_filter_master), +you must start a number of MANPAGE(work_queue_worker,1) processes +on remote machines. The workers will then connect back to the +master process and begin executing tasks. The actual filtering +is performed by MANPAGE(sand_filter_kernel,1) on each machine. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_PAIR(-p,port)Port number for queue master to listen on. (default: 9123) +OPTION_PAIR(-s,size)Number of sequences in each filtering task. (default: 1000) +OPTION_PAIR(-r,file)A meryl file of repeat mers to be filtered out. +OPTION_PAIR(-R,n)Automatically retry failed jobs up to n times. (default: 100) +OPTION_PAIR(-k,size)The k-mer size to use in candidate selection (default is 22). +OPTION_PAIR(-w,size)The minimizer window size. (default is 22). +OPTION_ITEM(-u)If set, do not unlink temporary binary output files. +OPTION_PAIR(-c,file)Checkpoint filename; will be created if necessary. +OPTION_PAIR(-d,flag)Enable debugging for this subsystem. (Try BOLD(-d all) to start.) +OPTION_PAIR(-F,number)Work Queue fast abort multiplier. (default is 10.) +OPTION_PAIR(-Z,file)Select port at random and write it out to this file. +OPTION_PAIR(-o,file)Send debugging to this file. +OPTION_ITEM(-v)Show version string +OPTION_ITEM(-h)Show this help screen +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +If you begin with a FASTA formatted file of reads, +used MANPAGE(sand_compress_reads,1) to produce a +compressed FASTA (cfa) file. To run filtering sequentially, +start a single MANPAGE(work_queue_worker,1) process in the background. +Then, invoke BOLD(sand_filter_master). + +LONGCODE_BEGIN +% sand_compress_reads mydata.fasta mydata.cfa +% work_queue_worker localhost 9123 & +% sand_filter_master mydata.cfa mydata.cand +LONGCODE_END + +To speed up the process, run more MANPAGE(work_queue_worker,1) processes +on other machines, or use MANPAGE(condor_submit_workers,1) or MANPAGE(sge_submit_workers,1) to start hundreds of workers in your local batch system. + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_SAND + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/sand_uncompress_reads.m4 cctools-7.1.2/doc/man/m4/sand_uncompress_reads.m4 --- cctools-7.0.22/doc/man/m4/sand_uncompress_reads.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/sand_uncompress_reads.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,47 @@ +include(manual.h)dnl +HEADER(sand_uncompress_reads) + +SECTION(NAME) +BOLD(sand_uncompress_reads) - uncompress sequence data + +SECTION(SYNOPSIS) +CODE(BOLD(sand_uncompress_reads [-qvh] [infile] [outfile])) + +SECTION(DESCRIPTION) + +BOLD(sand_uncompress_reads) reads sequence data in compressed FASTA format (cfa) used by MANPAGE(sand_filter_master,1) and MANPAGE(sand_align_master,1). +and produces output in the standard FASTA format. +PARA +If the output file is omitted, standard output is used. +if the input file is omitted, standard input is used. +After completing the compression, this program will output a summary +line of sequences and bytes compressed. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_ITEM(-q)Quiet mode: suppress summary line. +OPTION_ITEM(-h)Display version information. +OPTION_ITEM(-v)Show help text. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To uncompress CODE(mydata.cfa) into CODE(mydata.fasta): + +LONGCODE_BEGIN +% sand_uncompress_reads mydata.cfa mydata.fa +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_SAND + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/sge_submit_workers.m4 cctools-7.1.2/doc/man/m4/sge_submit_workers.m4 --- cctools-7.0.22/doc/man/m4/sge_submit_workers.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/sge_submit_workers.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,77 @@ +include(manual.h)dnl +HEADER(sge_submit_workers) + +SECTION(NAME) +BOLD(sge_submit_workers) - submit work_queue_worker to a SUN Grid Engine (SGE). + +SECTION(SYNOPSIS) +LONGCODE_BEGIN +CODE(BOLD(sge_submit_workers [options] PARAM(servername) PARAM(port) PARAM(num-workers))) +LONGCODE_END + +when auto mode is not enabled for the worker, or + +LONGCODE_BEGIN +CODE(BOLD(sge_submit_workers [options] PARAM(num-workers))) +LONGCODE_END + +when auto mode is enabled for the worker. + +SECTION(DESCRIPTION) +CODE(sge_submit_workers) schedules the execution of MANPAGE(work_queue_worker,1) +on the SUN Grid Engine (SGE) through its job submission interface, qsub. +The number of BOLD(work_queue_worker) scheduled and run is given by the BOLD(num-workers) +argument. + +The BOLD(servername) and BOLD(port) arguments specify the hostname and port number of the +master for the work_queue_worker to connect. These two arguments become optional when the +auto mode option is specified for work_queue_worker. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_TRIPLET(-M, master-name, name)Name of the preferred master for worker. (auto mode enabled) +OPTION_TRIPLET(-N, name, name)Preferred project name for work_queue_worker to connect. (auto mode enabled) +OPTION_TRIPLET(-C, catalog, catalog)Set catalog server for work_queue_worker to . format: HOSTNAME:PORT. +OPTION_TRIPLET(-t, timeout, seconds)Abort work_queue_worker after this amount of idle time (default=900s). +OPTION_TRIPLET(-d, debug, subsystem)Enable debugging on worker for this subsystem (try -d all to start). +OPTION_TRIPLET(-w, tcp-window-size, size)Set TCP window size +OPTION_TRIPLET(-i, min-backoff, time)Set initial value for backoff interval when worker fails to connect to a master. (default=1s) +OPTION_TRIPLET(-b, max-backoff, time)Set maxmimum value for backoff interval when worker fails to connect to a master. (default=60s) +OPTION_TRIPLET(-z, disk-threshold, size)Set available disk space threshold (in MB). When exceeded worker will clean up and reconnect. (default=100MB) +OPTION_TRIPLET(-A, arch, arch)Set architecture string for the worker to report to master instead of the value in uname. +OPTION_TRIPLET(-O, os, os)Set operating system string for the worker to report to master instead of the value in uname. +OPTION_TRIPLET(-s, workdir, path)Set the location for creating the working directory of the worker. +OPTION_TRIPLET(-P,--password, file)Password file to authenticate workers to master. +OPTION_PAIR(--cores, cores)Set the number of cores each worker should use (0=auto). (default=1) +OPTION_PAIR(--memory, size)Manually set the amonut of memory (in MB) reported by this worker. +OPTION_PAIR(--disk, size)Manually set the amount of disk (in MB) reported by this worker. +OPTION_ITEM(`-j')Use job array to submit workers. +OPTION_PAIR(-p, parameters)SGE qsub parameters. +OPTION_ITEM(`-h,--help')Show help message. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Submit 10 worker instances to run on SGE and connect to a specific master: + +LONGCODE_BEGIN +sge_submit_workers master.somewhere.edu 9123 10 +LONGCODE_END + +Submit 10 work_queue_worker instances to run on SGE in auto mode with their +preferred project name set to Project_A and abort timeout set to 3600 seconds: + +LONGCODE_BEGIN +sge_submit_workers -a -t 3600 -M Project_A 10 +LONGCODE_END + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_WORK_QUEUE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/slurm_submit_workers.m4 cctools-7.1.2/doc/man/m4/slurm_submit_workers.m4 --- cctools-7.0.22/doc/man/m4/slurm_submit_workers.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/slurm_submit_workers.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,63 @@ +include(manual.h)dnl +HEADER(slurm_submit_workers) + +SECTION(NAME) +BOLD(slurm_submit_workers) - submit work_queue_worker to a SLURM cluster. + +SECTION(SYNOPSIS) +CODE(BOLD(slurm_submit_workers [options] PARAM(servername) PARAM(port) PARAM(num-workers))) + +SECTION(DESCRIPTION) +CODE(slurm_submit_workers) schedules the execution of MANPAGE(work_queue_worker,1) +on the SLURM batch system through its job submission interface, qsub. +The number of BOLD(work_queue_worker) scheduled and run is given by the BOLD(num-workers) +argument. + +The BOLD(servername) and BOLD(port) arguments specify the hostname and port number of the +master for the work_queue_worker to connect. These two arguments become optional when the +auto mode option is specified for work_queue_worker. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_ITEM(-M, name)Name of the preferred master for worker. +OPTION_PAIR(-N, name)Preferred project name for work_queue_worker to connect. +OPTION_PAIR(-c, cores)Set the number of cores each worker should use (0=auto). (default=1) +OPTION_PAIR(-C, catalog)Set catalog server for work_queue_worker to . format: HOSTNAME:PORT. +OPTION_PAIR(-t, seconds)Abort work_queue_worker after this amount of idle time (default=900s). +OPTION_PAIR(-d, subsystem)Enable debugging on worker for this subsystem (try -d all to start). +OPTION_PAIR(-w, size)Set TCP window size +OPTION_PAIR(-i, time)Set initial value for backoff interval when worker fails to connect to a master. (default=1s) +OPTION_PAIR(-b, time)Set maxmimum value for backoff interval when worker fails to connect to a master. (default=60s) +OPTION_PAIR(-z, size)Set available disk space threshold (in MB). When exceeded worker will clean up and reconnect. (default=100MB) +OPTION_PAIR(-A, arch)Set architecture string for the worker to report to master instead of the value in uname. +OPTION_PAIR(-O, os)Set operating system string for the worker to report to master instead of the value in uname. +OPTION_PAIR(-s, path)Set the location for creating the working directory of the worker. +OPTION_PAIR(-p, parameters)SLURM qsub parameters. +OPTION_ITEM(-h)Show help message. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Submit 10 worker instances to run on SLURM and connect to a specific master: + +LONGCODE_BEGIN +slurm_submit_workers master.somewhere.edu 9123 10 +LONGCODE_END + +Submit 10 work_queue_worker instances to run on SLURM in auto mode with their +preferred project name set to Project_A and abort timeout set to 3600 seconds: + +LONGCODE_BEGIN +slurm_submit_workers -a -t 3600 -M Project_A 10 +LONGCODE_END + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_WORK_QUEUE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/split_fasta.m4 cctools-7.1.2/doc/man/m4/split_fasta.m4 --- cctools-7.0.22/doc/man/m4/split_fasta.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/split_fasta.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,38 @@ +include(manual.h)dnl +HEADER(split_fasta) + +SECTION(NAME) +BOLD(split_fasta) - Split a fasta file according to sequence and character counts + +SECTION(SYNOPSIS) +CODE(BOLD(split_fasta query_granularity character_granularity fasta_file)) + +SECTION(DESCRIPTION) +BOLD(split_fasta) is a simple script to split a fasta file according to user provided parameters. The script iterates over the given file, generating a new sub_file called input.i each time the contents of the previous file (input.(i-1)) exceed the number of queries given by query_granularity or the number of characters given by character_granularity. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(ENVIRONMENT VARIABLES) + +SECTION(EXAMPLES) + +To split a fasta file smallpks.fa into pieces no larger than 500 queries and with no piece receiving additional sequences if it exceeds 10000 characters we would do: +LONGCODE_BEGIN +python split_fasta 500 10000 smallpks.fa +LONGCODE_END +This would generate files input.0, input.1, ..., input.N where N is the number of appropriately constrained files necessary to contain all sequences in smallpks.fa. + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_MAKEFLOW + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/starch.m4 cctools-7.1.2/doc/man/m4/starch.m4 --- cctools-7.0.22/doc/man/m4/starch.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/starch.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,135 @@ +include(manual.h)dnl +HEADER(starch) + +SECTION(NAME) +BOLD(starch) - STandalone application ARCHiver + +SECTION(SYNOPSIS) +CODE(BOLD(starch [options] PARAM(sfx_path))) + +SECTION(DESCRIPTION) + +BOLD(Starch) is a script that creates standalone application archives in the +form of self-extracting executables (CODE(SFX)). Users may specify the command, +executables, libraries, data, and environment scripts associated with the +application by specifying the appropriate command line options or by using a +configuration file. BOLD(starch) is particularly useful for distributed +computing, in that it makes an executable portable across different +operating system variants. + +SECTION(OPTIONS) + +To create a CODE(SFX), simply specify the name of the CODE(SFX) to create along +with the PARAM(command) to execute and any other dependencies such as +PARAM(executables), PARAM(libraries), PARAM(data), or PARAM(environment) +scripts. +PARA +If a PARAM(command) is specified, but no PARAM(executable) is passed, then the +first token in the PARAM(command) will be used as the executable. +PARA +By default, CODE(starch) will use CODE(ldd) to detect any necessary libraries +from the specified set of PARAM(executables) and include them in the CODE(SFX). +OPTIONS_BEGIN +OPTION_ITEM(-A)Do not automatically detect library dependencies. +OPTION_PAIR(-C, cfg)Use configuration file. +OPTION_PAIR(-c, cmd)Specify command to execute. +OPTION_PAIR(-d, npath:opath)Add data (new path:old path). +OPTION_PAIR(-e, env)Add environment script. +OPTION_PAIR(-l, lib)Add library. +OPTION_PAIR(-x, exe)Add executable. +OPTION_ITEM(-h)Show help message and exit. +OPTION_ITEM(-v)Display verbose messages (default: False). +OPTIONS_END +Once a CODE(SFX) is generated, you can use it as a normal executable. + +SECTION(CONFIGURATION FILE) +The command line options may be stored in a configuration file and passed to +starch using the CODE(starch -C) option. The format of the configuration file is as +follows: +LONGCODE_BEGIN +[starch] +executables = echo date hostname +libraries = libz.so +data = hosts.txt:/etc/hosts localtime:/etc/localtime images:/usr/share/pixmaps +command = echo $(hostname) $(date $@) +LONGCODE_END + +SECTION(ENVIRONMENT VARIABLES) + +The following environment variables will affect the execution of the CODE(SFX) +generated by CODE(starch): + +SUBSECTION(SFX_DIR) +Determines the target directory where the CODE(SFX) will be extracted. By +default this is CODE(/tmp/$hostname.$user.$basename.dir). + +SUBSECTION(SFX_EXTRACT_ONLY) +Only extract the CODE(SFX). By default it is extracted and executed. + +SUBSECTION(SFX_EXTRACT_FORCE) +Extract the CODE(SFX) even if the CODE(SFX_DIR) exists. This is disabled by +default to as an optimization to avoid unnecessarily extracting. + +SUBSECTION(SFX_KEEP) +Keep extracted files. By default the files will be removed after execution. + +SUBSECTION(SFX_UNIQUE) + +Use CODE(mktempd) to generate a unique CODE(SFX_DIR) target directory. This +will prevent CODE(SFX_KEEP) from working properly since the names will change +in between invocations. + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Package the date program: +LONGCODE_BEGIN + $ starch -c date -x date date.sfx +LONGCODE_END + +Package the date program using a configuration file: +LONGCODE_BEGIN + $ cat data.cfg + [starch] + executables = date + command = date + $ starch -C date.cfg date.sfx +LONGCODE_END + +Run standalone date program with parameters: +LONGCODE_BEGIN + $ ./date.sfx +%s +LONGCODE_END + +Only extract the archive: +LONGCODE_BEGIN + $ env SFX_EXTRACT_ONLY=1 ./date.sfx +LONGCODE_END + +Run and keep extracted directory: +LONGCODE_BEGIN + $ env SFX_KEEP=1 ./date.sfx +LONGCODE_END + +Run with unique directory: +LONGCODE_BEGIN + $ env SFX_UNIQUE=1 ./date.sfx +LONGCODE_END + +Advanced example involving a complex shell command: +LONGCODE_BEGIN + $ starch -v -x tar -x rm -c 'tar_test() { for f in $@; do if ! tar xvf $f; then exit 1; fi; done; rm $@'; }; tar_test' extract_and_remove.sfx + $ ./extract_and_remove.sfx *.tar.gz +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_MAKEFLOW + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/torque_submit_workers.m4 cctools-7.1.2/doc/man/m4/torque_submit_workers.m4 --- cctools-7.0.22/doc/man/m4/torque_submit_workers.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/torque_submit_workers.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,64 @@ +include(manual.h)dnl +HEADER(torque_submit_workers) + +SECTION(NAME) +BOLD(torque_submit_workers) - submit work_queue_worker to a Torque cluster. + +SECTION(SYNOPSIS) +CODE(BOLD(torque_submit_workers [options] PARAM(servername) PARAM(port) PARAM(num-workers))) + +SECTION(DESCRIPTION) +CODE(torque_submit_workers) schedules the execution of MANPAGE(work_queue_worker,1) +on the Torque batch system through its job submission interface, qsub. +The number of BOLD(work_queue_worker) scheduled and run is given by the BOLD(num-workers) +argument. + +The BOLD(servername) and BOLD(port) arguments specify the hostname and port number of the +master for the work_queue_worker to connect. These two arguments become optional when the +auto mode option is specified for work_queue_worker. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_ITEM(-M, name)Name of the preferred master for worker. +OPTION_PAIR(-N, name)Preferred project name for work_queue_worker to connect. +OPTION_PAIR(-c, cores)Set the number of cores each worker should use (0=auto). (default=1) +OPTION_PAIR(-C, catalog)Set catalog server for work_queue_worker to . format: HOSTNAME:PORT. +OPTION_PAIR(-t, seconds)Abort work_queue_worker after this amount of idle time (default=900s). +OPTION_PAIR(-d, subsystem)Enable debugging on worker for this subsystem (try -d all to start). +OPTION_PAIR(-w, size)Set TCP window size +OPTION_PAIR(-i, time)Set initial value for backoff interval when worker fails to connect to a master. (default=1s) +OPTION_PAIR(-b, time)Set maxmimum value for backoff interval when worker fails to connect to a master. (default=60s) +OPTION_PAIR(-z, size)Set available disk space threshold (in MB). When exceeded worker will clean up and reconnect. (default=100MB) +OPTION_PAIR(-A, arch)Set architecture string for the worker to report to master instead of the value in uname. +OPTION_PAIR(-O, os)Set operating system string for the worker to report to master instead of the value in uname. +OPTION_PAIR(-s, path)Set the location for creating the working directory of the worker. +OPTION_PAIR(-j)Use job array to submit workers. +OPTION_PAIR(-p, parameters)Torque qsub parameters. +OPTION_ITEM(-h)Show help message. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Submit 10 worker instances to run on Torque and connect to a specific master: + +LONGCODE_BEGIN +torque_submit_workers master.somewhere.edu 9123 10 +LONGCODE_END + +Submit 10 work_queue_worker instances to run on Torque in auto mode with their +preferred project name set to Project_A and abort timeout set to 3600 seconds: + +LONGCODE_BEGIN +torque_submit_workers -a -t 3600 -M Project_A 10 +LONGCODE_END + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) +SEE_ALSO_WORK_QUEUE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/wavefront_master.m4 cctools-7.1.2/doc/man/m4/wavefront_master.m4 --- cctools-7.0.22/doc/man/m4/wavefront_master.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/wavefront_master.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,124 @@ +include(manual.h)dnl +HEADER(wavefront_master) + +SECTION(NAME) +BOLD(wavefront_master) - executes Wavefront workflow in parallel on distributed systems + +SECTION(SYNOPSIS) +CODE(BOLD(wavefront [options] PARAM(command) PARAM(xsize) PARAM(ysize) PARAM(inputdata) PARAM(outputdata))) + +SECTION(DESCRIPTION) + +BOLD(wavefront_master) computes a two dimensional recurrence relation. You +provide a function F (BOLD(PARAM(command))) that accepts the left (x), right +(y), and diagonal (d) values and initial values (BOLD(PARAM(inputdata))) for +the edges of the matrix. The output matrix, whose size is determined by +BOLD(PARAM(xsize)) and BOLD(PARAM(ysize)), will be stored in a file specified +by BOLD(PARAM(outputdata)). +PARA +BOLD(wavefront_master) uses the Work Queue system to distribute tasks among +processors. After starting BOLD(wavefront_master), you must start a number of +MANPAGE(work_queue_worker,1) processes on remote machines. The workers will +then connect back to the master process and begin executing tasks. + +SECTION(OPTIONS) + +OPTIONS_BEGIN +OPTION_ITEM(`-h, --help')Show this help screen +OPTION_ITEM(`-v, --version')Show version string +OPTION_TRIPLET(-d, debug, subsystem)Enable debugging for this subsystem. (Try -d all to start.) +OPTION_TRIPLET(-N, project-name, project)Set the project name to +OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). +OPTION_TRIPLET(-p, port, port)Port number for queue master to listen on. +OPTION_TRIPLET(-P, priority, num)Priority. Higher the value, higher the priority. +OPTION_TRIPLET(-Z, port-file, file)Select port at random and write it to this file. (default is disabled) +OPTION_PAIR(--work-queue-preferred-connection,connection)Indicate preferred connection. Chose one of by_ip or by_hostname. (default is by_ip) +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Suppose you have a program named CODE(function) that you want to use in the +Wavefont workflow computation. The program CODE(function), when invoked as +CODE(function a b c), should do some computations on files CODE(a), CODE(b) and +CODE(c) and produce some output on the standard output. +PARA +Before running BOLD(wavefront_master), you need to create a file, say +CODE(input.data), that lists initial values of the matrix (values on the left +and bottom edges), one per line: + +LONGCODE_BEGIN + 0 0 value.0.0 + 0 1 value.0.1 + ... + 0 n value.0.n + 1 0 value.1.0 + 2 0 value.2.0 + ... + n 0 value.n.0 +LONGCODE_END + +To run a Wavefront workflow sequentially, start a single +MANPAGE(work_queue_worker,1) process in the background. Then, invoke +BOLD(wavefront_master). The following example computes a 10 by 10 Wavefront +matrix: + +LONGCODE_BEGIN + % work_queue_worker localhost 9123 & + % wavefront_master function 10 10 input.data output.data +LONGCODE_END + +The framework will carry out the computations in the order of dependencies, and +print the results one by one (note that the first two columns are X and Y +indices in the resulting matrix) in the specified output file. Below is an +example of what the output file - CODE(output.data) would look like: + +LONGCODE_BEGIN + 1 1 value.1.1 + 1 2 value.1.2 + 1 3 value.1.3 + ... +LONGCODE_END + +To speed up the process, run more MANPAGE(work_queue_worker,1) processes on +other machines, or use MANPAGE(condor_submit_workers,1) or +MANPAGE(sge_submit_workers,1) to start hundreds of workers in your local batch +system. +PARA +The following is an example of adding more workers to execute a Wavefront +workflow. Suppose your BOLD(wavefront_master) is running on a machine named +barney.nd.edu. If you have access to login to other machines, you could simply +start worker processes on each one, like this: + +LONGCODE_BEGIN + % work_queue_worker barney.nd.edu 9123 +LONGCODE_END + +If you have access to a batch system like Condor, you can submit multiple +workers at once: + +LONGCODE_BEGIN + % condor_submit_workers barney.nd.edu 9123 10 + Submitting job(s).......... + Logging submit event(s).......... + 10 job(s) submitted to cluster 298. +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +LIST_BEGIN +LIST_ITEM(LINK(The Cooperative Computing Tools,"http://ccl.cse.nd.edu/software/manuals")) +LIST_ITEM(LINK(Wavefront User Manual,"http://ccl.cse.nd.edu/software/manuals/wavefront.html")) +LIST_ITEM(LINK(Work Queue User Manual,"http://ccl.cse.nd.edu/software/manuals/workqueue.html")) +LIST_ITEM(MANPAGE(work_queue_worker,1)) +LIST_ITEM(MANPAGE(condor_submit_workers,1)) +LIST_ITEM(MANPAGE(sge_submit_workers,1)) +LIST_END + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/weaver.m4 cctools-7.1.2/doc/man/m4/weaver.m4 --- cctools-7.0.22/doc/man/m4/weaver.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/weaver.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,94 @@ +include(manual.h)dnl +HEADER(weaver) + +SECTION(NAME) +BOLD(weaver) - workflow engine for executing distributed workflows + +SECTION(SYNOPSIS) +CODE(BOLD(weaver [options] PARAM(weaverfile))) + +SECTION(DESCRIPTION) + +BOLD(Weaver) is a high level interface to BOLD(makeflow). A +BOLD(weaver) input file is written in BOLD(python), with the +definition of functions to be applied on sets of files. BOLD(weaver) +interprets this input file and generates a workflow specification that +can be executed by BOLD(makeflow). This allows an straightforward +implementation of different workflow execution patterns, such as +MapReduce, and AllPairs. + +LONGCODE_BEGIN + + + /--------\ + +-+ Python | + | \---+----/ ++---------------------------------+ | | Generate DAG +| Weaver +-+ v ++---------------------------------+ /-------\ +| Makeflow +---+ DAG | ++--------+-----------+-----+------+ \-------/ +| Condor | WorkQueue | SGE | Unix +-+ | Dispatch Jobs ++--------+-----------+-----+------+ | v + | /-------\ + +-+ Jobs | + \-------/ + +LONGCODE_END + +SECTION(OPTIONS) + +By default, running CODE(weaver) on a PARAM(weaverfile) generates an +input file for CODE(makeflow), PARAM(Makeflow), and a directory, +PARAM(_Stash), in which intermediate files are stored. + +General options: +OPTIONS_BEGIN +OPTION_ITEM(`-h')Give help information. +OPTION_ITEM(`-W')Stop on warnings. +OPTION_ITEM(`-g')Include debugging symbols in DAG. +OPTION_ITEM(`-I')Do not automatically import built-ins. +OPTION_ITEM(`-N')Do not normalize paths. +OPTION_PAIR(`-b', options)Set batch job options (cpu, memory, disk, batch, local, collect). +OPTION_PAIR(`-d', subsystem)Enable debugging for subsystem. +OPTION_PAIR(`-o', log_path)Set log path (default: stderr). +OPTION_PAIR(`-O', directory)Set stash output directory (default PARAM(_Stash)). +OPTIONS_END + +Optimization Options: +OPTIONS_BEGIN +OPTIONS_END +OPTION_ITEM(`-a')Automatically nest abstractions. +OPTION_PAIR(`-t', group_size)Inline tasks based on group size. + +Engine Options: + +OPTIONS_BEGIN +OPTION_ITEM(`-x')Execute DAG using workflow engine after compiling. +OPTION_PAIR(`-e', arguments)Set arguments to workflow engine when executing. +OPTION_PAIR(`-w' wrapper)Set workflow engine wrapper. +OPTIONS_END + +SECTION(EXIT STATUS) + +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +BOLD(Weaver) expresses common workflow patterns succinctly. For +example, with only the following three lines of code we can express a +BOLD(map) pattern, in which we convert some images to the jpeg format: + +LONGCODE_BEGIN + +convert = ParseFunction('convert {IN} {OUT}') +dataset = Glob('/usr/share/pixmaps/*.xpm') +jpgs = Map(convert, dataset, '{basename_woext}.jpg') + +LONGCODE_END + +Please refer to CODE(cctools/doc/weaver_examples) for further information. + +COPYRIGHT_BOILERPLATE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/work_queue_factory.m4 cctools-7.1.2/doc/man/m4/work_queue_factory.m4 --- cctools-7.0.22/doc/man/m4/work_queue_factory.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/work_queue_factory.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,175 @@ +include(manual.h)dnl +HEADER(work_queue_factory) + +SECTION(NAME) +BOLD(work_queue_factory) - maintain a pool of Work Queue workers on a batch system. + +SECTION(SYNOPSIS) +CODE(BOLD(work_queue_factory -M PARAM(project-name) -T PARAM(batch-type) [options])) + +SECTION(DESCRIPTION) +BOLD(work_queue_factory) submits and maintains a number +of MANPAGE(work_queue_worker,1) processes on various batch systems, such as +Condor and SGE. All the workers managed by a BOLD(work_queue_factory) process +will be directed to work for a specific master, or any set of masters matching +a given project name. BOLD(work_queue_factory) will automatically determine +the correct number of workers to have running, based on criteria set on +the command line. The decision on how many workers to run is reconsidered +once per minute. +PARA +By default, BOLD(work_queue_factory) will run as many workers as the +indicated masters have tasks ready to run. If there are multiple +masters, then enough workers will be started to satisfy their collective needs. +For example, if there are two masters with the same project name, each with +10 tasks to run, then BOLD(work_queue_factory) will start a total of 20 workers. +PARA +If the number of needed workers increases, BOLD(work_queue_factory) will submit +more workers to meet the desired need. However, it will not run more than +a fixed maximum number of workers, given by the -W option. +PARA +If the need for workers drops, BOLD(work_queue_factory) does not remove them immediately, +but waits to them to exit on their own. (This happens when the worker has been idle +for a certain time.) A minimum number of workers will be maintained, given +by the -w option. +PARA +If given the -c option, then BOLD(work_queue_factory) will consider the capacity +reported by each master. The capacity is the estimated number of workers +that the master thinks it can handle, based on the task execution and data +transfer times currently observed at the master. With the -c option on, +BOLD(work_queue_factory) will consider the master's capacity to be the maximum +number of workers to run. +PARA +If BOLD(work_queue_factory) receives a terminating signal, it will attempt to +remove all running workers before exiting. + +SECTION(OPTIONS) + +SUBSECTION(Batch Options) +OPTIONS_BEGIN +OPTION_TRIPLET(-M,master-name,project)Project name of masters to serve, can be a regular expression. +OPTION_TRIPLET(-F,foremen-name,project)Foremen to serve, can be a regular expression. +OPTION_PAIR(--catalog, catalog)Catalog server to query for masters (default: catalog.cse.nd.edu,backup-catalog.cse.nd.edu:9097). +OPTION_TRIPLET(-T,batch-type,type)Batch system type (required). One of: local, wq, condor, sge, torque, mesos, k8s, moab, slurm, chirp, amazon, lambda, dryrun, amazon-batch +OPTION_TRIPLET(-B,batch-options,options)Add these options to all batch submit files. +OPTION_TRIPLET(-P,password,file)Password file for workers to authenticate to master. +OPTION_TRIPLET(-C,config-file,file)Use the configuration file . +OPTION_TRIPLET(-w,min-workers,workers)Minimum workers running. (default=5) +OPTION_TRIPLET(-W,max-workers,workers)Maximum workers running. (default=100) +OPTION_PAIR(--workers-per-cycle,workers)Maximum number of new workers per 30 seconds. ( less than 1 disables limit, default=5) +OPTION_PAIR(--tasks-per-worker,workers)Average tasks per worker (default=one task per core). +OPTION_TRIPLET(-t,timeout,time)Workers abort after this amount of idle time (default=300). +OPTION_PAIR(--env,variable=value)Environment variable that should be added to the worker (May be specified multiple times). +OPTION_TRIPLET(-E,extra-options,options)Extra options that should be added to the worker. +OPTION_PAIR(--cores,n)Set the number of cores requested per worker. +OPTION_PAIR(--gpus,n)Set the number of GPUs requested per worker. +OPTION_PAIR(--memory,mb)Set the amount of memory (in MB) requested per worker. +OPTION_PAIR(--disk,mb)Set the amount of disk (in MB) requested per worker. +OPTION_ITEM(--autosize)Automatically size a worker to an available slot (Condor, Mesos, and Kubernetes). +OPTION_ITEM(--condor-requirements)Set requirements for the workers as Condor jobs. May be specified several times with expresions and-ed together (Condor only). +OPTION_PAIR(--factory-timeout,n)Exit after no master has been seen in seconds. +OPTION_TRIPLET(-S,scratch-dir,file)Use this scratch dir for temporary files (default is /tmp/wq-pool-$uid). +OPTION_ITEM(`-c, --capacity')Use worker capacity reported by masters. +OPTION_TRIPLET(-d,debug,subsystem)Enable debugging for this subsystem. +OPTION_ITEM(--amazon-config)Specify Amazon config file (for use with -T amazon). +OPTION_ITEM(--wrapper)Wrap factory with this command prefix. +OPTION_ITEM(--wrapper-input)Add this input file needed by the wrapper. +OPTION_PAIR(--mesos-master,hostname)Specify the host name to mesos master node (for use with -T mesos). +OPTION_PAIR(--mesos-path,filepath)Specify path to mesos python library (for use with -T mesos). +OPTION_PAIR(--mesos-preload,library)Specify the linking libraries for running mesos (for use with -T mesos). +OPTION_ITEM(--k8s-image)Specify the container image for using Kubernetes (for use with -T k8s). +OPTION_ITEM(--k8s-worker-image)Specify the container image that contains work_queue_worker availabe for using Kubernetes (for use with -T k8s). +OPTION_TRIPLET(-o,debug-file,file)Send debugging to this file (can also be :stderr, :stdout, :syslog, or :journal). +OPTION_TRIPLET(-O,debug-file-size,mb)Specify the size of the debug file (must use with -o option). +OPTION_PAIR(--worker-binary,file)Specify the binary to use for the worker (relative or hard path). It should accept the same arguments as the default work_queue_worker. +OPTION_PAIR(--runos,img)Will make a best attempt to ensure the worker will execute in the specified OS environment, regardless of the underlying OS. +OPTION_ITEM(--run-factory-as-master)Force factory to run itself as a work queue master. +OPTION_ITEM(`-v, --version')Show the version string. +OPTION_ITEM(`-h, --help')Show this screen. +OPTIONS_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +Suppose you have a Work Queue master with a project name of "barney". +To maintain workers for barney, do this: + +LONGCODE_BEGIN +work_queue_factory -T condor -M barney +LONGCODE_END + +To maintain a maximum of 100 workers on an SGE batch system, do this: + +LONGCODE_BEGIN +work_queue_factory -T sge -M barney -W 100 +LONGCODE_END + +To start workers such that the workers exit after 5 minutes (300s) of idleness: + +LONGCODE_BEGIN +work_queue_factory -T condor -M barney -t 300 +LONGCODE_END + +If you want to start workers that match any project that begins +with barney, use a regular expression: + +LONGCODE_BEGIN +work_queue_factory -T condor -M barney.\* -t 300 +LONGCODE_END + +If running on condor, you may manually specify condor requirements: + +LONGCODE_BEGIN +work_queue_factory -T condor -M barney --condor-requirements 'MachineGroup == "disc"' --condor-requirements 'has_matlab == true' +LONGCODE_END + +Repeated uses of CODE(condor-requirements) are and-ed together. The previous example will produce a statement equivalent to: + +CODE(requirements = ((MachineGroup == "disc") && (has_matlab == true))) + +Use the configuration file BOLD(my_conf): + +LONGCODE_BEGIN +work_queue_factory -Cmy_conf +LONGCODE_END + +BOLD(my_conf) should be a proper JSON document, as: +LONGCODE_BEGIN +{ + "master-name": "my_master.*", + "max-workers": 100, + "min-workers": 0 +} +LONGCODE_END + +Valid configuration fields are: + +LONGCODE_BEGIN +master-name +foremen-name +min-workers +max-workers +workers-per-cycle +task-per-worker +timeout +worker-extra-options +condor-requirements +cores +memory +disk +LONGCODE_END + +SECTION(KNOWN BUGS) + +The capacity measurement currently assumes single-core tasks running on single-core +workers, and behaves unexpectedly with multi-core tasks or multi-core workers. + +SECTION(COPYRIGHT) +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_WORK_QUEUE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/work_queue_graph_log.m4 cctools-7.1.2/doc/man/m4/work_queue_graph_log.m4 --- cctools-7.0.22/doc/man/m4/work_queue_graph_log.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/work_queue_graph_log.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,82 @@ +include(manual.h)dnl +HEADER(work_queue_graph_log) + +SECTION(NAME) +BOLD(work_queue_graph_log) - plots Work Queue statistics logs. + +SECTION(SYNOPSIS) +CODE(BOLD(work_queue_graph_log [options] work-queue-log)) + +SECTION(DESCRIPTION) + +BOLD(work_queue_graph_log) is a script to plot some of the statistics from a +Work Queue log, as generated by CODE(work_queue_specify_log) from the C and Perl Work Queue APIs, or by +CODE(q.specify_log) from the Python Work Queue API. It assumes the availability of +CODE(gnuplot). + +BOLD(work_queue_graph_log) generates four plots, all with CODE(timestamp) as +the independent variable: + +CODE(time): + timestamp, total_send_time, total_receive_time, total_transfer_time, and total_master_time. (The last two generated by the script, not in the log.) + +CODE(time-log): + log-scale version of CODE(times), plus total_execute_time. + +CODE(tasks): + total_tasks_waiting, total_tasks_running, total_workers_connected, total_workers_busy, and total_cores + +CODE(tasks-log): + log-scale version of CODE(tasks), plus total_complete_tasks. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_PAIR(-o,prefix-output)Generate prefix-output.{time,time-log,tasks,tasks-log}.. Default is . +OPTION_PAIR(-c,gnuplot-path)Specify the location of the gnuplot executable. Default is gnuplot. +OPTION_PAIR(-r,range)Range of time to plot, in time units (see -u) from the start of execution. Of the form: min:max, min:, or :max. +OPTION_PAIR(-T,output-format)Set output format. Default is png. If "text", then the gnuplot scripts are written instead of the images. +OPTION_PAIR(-u,time-unit)Time scale to output. One of s,m,h or d, for seconds, minutes (default), hours or days. +OPTION_ITEM(`-h')Show help text. +OPTIONS_END + +SECTION(EXAMPLES) + +General use: + +LONGCODE_BEGIN +% work_queue_graph_log mylog +% ls mylog*.png +mylog.tasks.png mylog.tasks-log.png mylog.time.png mylog.time-log.png +LONGCODE_END + +Plot up to the eleventh hour: + +LONGCODE_BEGIN +% work_queue_graph_log -u h -r :11 mylog + +LONGCODE_END +Generate script text: + +LONGCODE_BEGIN +% work_queue_graph_log -Ttext mylog +% ls mylog*.gnuplot +mylog.tasks.png.gnuplot mylog.tasks-log.png.gnuplot mylog.time.png.gnuplot mylog.time-log.png.gnuplot +LONGCODE_END + +Specify gnuplot path: + +LONGCODE_BEGIN +% work_queue_graph_log -c/some/dir/bin/gnuplot mylog +LONGCODE_END + +SECTION(BUGS) + +LIST_BEGIN +LIST_ITEM(Some formats need a special setup for their gnuplot output terminal. `-T' blindly passes the output format, which may cause gnuplot to fail.) +LIST_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/work_queue_pool.m4 cctools-7.1.2/doc/man/m4/work_queue_pool.m4 --- cctools-7.0.22/doc/man/m4/work_queue_pool.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/work_queue_pool.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,18 @@ +include(manual.h)dnl +HEADER(work_queue_pool) + +SECTION(NAME) +BOLD(work_queue_pool) - maintain a pool of Work Queue workers on a batch system. + +SECTION(SYNOPSIS) +CODE(BOLD(work_queue_pool -M PARAM(project-name) -T PARAM(batch-type) [options])) + +SECTION(DESCRIPTION) +BOLD(work_queue_pool) is an alias for BOLD(work_queue_factory), +please see that man page for details. + +SECTION(SEE ALSO) + +SEE_ALSO_WORK_QUEUE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/work_queue_status.m4 cctools-7.1.2/doc/man/m4/work_queue_status.m4 --- cctools-7.0.22/doc/man/m4/work_queue_status.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/work_queue_status.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,150 @@ +include(manual.h)dnl +HEADER(work_queue_status) + +SECTION(NAME) +BOLD(work_queue_status) - display status of currently running Work Queue applications. + +SECTION(SYNOPSIS) +CODE(BOLD(work_queue_status [options] [master] [port])) + +SECTION(DESCRIPTION) + +BOLD(work_queue_status) displays the status of currently running Work Queue applications. +When run with no options, it queries the global catalog server to list the currently running +Work Queue masters. When given an address and a port, it queries a master directly to obtain +more detailed information about tasks and workers. + +LIST_BEGIN +LIST_ITEM(Hostname and port number of the application.) +LIST_ITEM(Number of waiting tasks.) +LIST_ITEM(Number of completed tasks.) +LIST_ITEM(Number of connected workers.) +LIST_ITEM(Number of tasks currently being executed.) +LIST_ITEM(Timestamp of when there was last communication with the application.) +LIST_END + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_PAIR(--where,expr) Show only Work Queue masters matching this expression. +OPTION_ITEM(`-Q, --statistics')Show summary information about queues. (default) +OPTION_ITEM(`-M, --project-name=')Filter results of -Q for masters matching . +OPTION_ITEM(`-W, --workers')Show details of all workers connected to the master. +OPTION_ITEM(`-T, --tasks')Show details of all tasks in the queue. +OPTION_ITEM(`-A, --able-workers')List categories of the given master, size of largest task, and workers that can run it. +OPTION_ITEM(`-R, --resources')Show available resources for each master. +OPTION_ITEM(`--capacity')Show resource capacities for each master. +OPTION_ITEM(`-l, --verbose')Long output. +OPTION_TRIPLET(-C, catalog, catalog)Set catalog server to . Format: HOSTNAME:PORT +OPTION_TRIPLET(-d, debug, flag)Enable debugging for the given subsystem. Try -d all as a start. +OPTION_TRIPLET(-t, timeout, time)RPC timeout (default=300s). +OPTION_TRIPLET(-o, debug-file, file)Send debugging to this file. (can also be :stderr, :stdout, :syslog, or :journal) +OPTION_TRIPLET(-O, debug-rotate-max, bytes)Rotate debug file once it reaches this size. +OPTION_ITEM(`-v, --version')Show work_queue_status version. +OPTION_ITEM(`-h, --help')Show this help message. +OPTIONS_END + +SECTION(EXAMPLES) + +Without arguments, CODE(work_queue_status) shows a summary of all of the +projects currently reporting to the default catalog server. Waiting, running, +and complete columns refer to number of tasks: + +LONGCODE_BEGIN +$ work_queue_status +PROJECT HOST PORT WAITING RUNNING COMPLETE WORKERS +shrimp cclws16.cse.nd.edu 9001 963 37 2 33 +crustacea terra.solar.edu 9000 0 2310 32084 700 +LONGCODE_END + +With the CODE(-R) option, a summary of the resources available to each master is shown: + +LONGCODE_BEGIN +$ work_queue_status -R +MASTER CORES MEMORY DISK +shrimp 228 279300 932512 +crustacea 4200 4136784 9049985 +LONGCODE_END + +With the CODE(--capacity) option, a summary of the resource capacities for each master is shown: + +LONGCODE_BEGIN +$ work_queue_status --capacity +MASTER TASKS CORES MEMORY DISK +refine ??? ??? ??? ??? +shrimp 99120 99120 781362960 1307691584 +crustacea 318911 318911 326564864 326564864 +LONGCODE_END + +Use the CODE(-W) option to list the workers connected to a particular master. +Completed and running columns refer to numbers of tasks: + +LONGCODE_BEGIN +$ work_queue_status -W cclws16.cse.nd.edu 9001 +HOST ADDRESS COMPLETED RUNNING +mccourt02.helios.nd.edu 10.176.48.102:40 0 4 +cse-ws-23.cse.nd.edu 129.74.155.120:5 0 0 +mccourt50.helios.nd.edu 10.176.63.50:560 4 4 +dirt02.cse.nd.edu 129.74.20.156:58 4 4 +cclvm03.virtual.crc.nd.e 129.74.246.235:3 0 0 +LONGCODE_END + +With the CODE(-T) option, a list of all the tasks submitted to the queue is shown: + +LONGCODE_BEGIN +$ work_queue_status -T cclws16.cse.nd.edu 9001 +ID STATE PRIORITY HOST COMMAND +1000 WAITING 0 ??? ./rmapper-cs -M fast -M 50bp 1 +999 WAITING 0 ??? ./rmapper-cs -M fast -M 50bp 1 +21 running 0 cse-ws-35.cse.nd.edu ./rmapper-cs -M fast -M 50bp 3 +20 running 0 cse-ws-35.cse.nd.edu ./rmapper-cs -M fast -M 50bp 2 +19 running 0 cse-ws-35.cse.nd.edu ./rmapper-cs -M fast -M 50bp 2 +18 running 0 cse-ws-35.cse.nd.edu ./rmapper-cs -M fast -M 50bp 2 +... +LONGCODE_END + + +The CODE(-A) option shows a summary of the resources observed per task +category. + +LONGCODE_BEGIN +$ work_queue_status -T cclws16.cse.nd.edu 9001 +CATEGORY RUNNING WAITING FIT-WORKERS MAX-CORES MAX-MEMORY MAX-DISK +analysis 216 784 54 4 ~1011 ~3502 +merge 20 92 30 ~1 ~4021 21318 +default 1 25 54 >1 ~503 >243 +LONGCODE_END + +With the -A option: +LIST_BEGIN +LIST_ITEM(Running and waiting correspond to number of tasks in the category.) +LIST_ITEM(Fit-workers shows the number of connected workers able to run the largest task in the category.) +LIST_ITEM()max-cores, max-memory, and max-disk show the corresponding largest value in the category. +LIST_END + +The value may have the following prefixes: +LIST_BEGIN +LIST_ITEM(No prefix.) The maximum value was manually specified. +LIST_ITEM(~) All the task have run with at most this quantity of resources. +LIST_ITEM(>) There is at least one task that has used more than this quantity of resources, but the maximum remains unknown. +LIST_END + + +Finally, the CODE(-l) option shows statistics of the queue in a JSON object: + +LONGCODE_BEGIN +$ work_queue_status -l cclws16.cse.nd.edu 9001 +{"categories":[{"max_disk":"3500","max_memory":"1024","max_cores":"1",... +LONGCODE_END + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_WORK_QUEUE + +FOOTER diff -Nru cctools-7.0.22/doc/man/m4/work_queue_worker.m4 cctools-7.1.2/doc/man/m4/work_queue_worker.m4 --- cctools-7.0.22/doc/man/m4/work_queue_worker.m4 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/m4/work_queue_worker.m4 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,133 @@ +include(manual.h)dnl +HEADER(work_queue_worker) + +SECTION(NAME) +BOLD(work_queue_worker) - worker process for executing tasks +dispatched through Work Queue + +SECTION(SYNOPSIS) +CODE(BOLD(work_queue_worker [options] PARAM(masterhost) PARAM(port))) + +CODE(BOLD(work_queue_worker [options] PARAM(masterhost:port]))) + +CODE(BOLD(work_queue_worker [options] "PARAM(masterhost:port;[masterhost:port;masterhost:port;...])))" + +CODE(BOLD(work_queue_worker [options] -M PARAM(projectname))) + +SECTION(DESCRIPTION) + +BOLD(work_queue_worker) is the worker process for executing tasks dispatched +from a master application built using the BOLD(Work Queue) API. BOLD(work_queue_worker) +connects to the master application, accepts, runs, and returns tasks dispatched to it. + +PARA + +The BOLD(masterhost) and BOLD(port) arguments specify the hostname and port +number of the master application for work_queue_worker to connect. Several +masterhosts and ports may be specified, separated with a semicolon (;), with the +worker connecting to any of the masters specified (When specifying multiple +masters, remember to escape the ; from shell interpretation, for example, using +quotes.) + +Alternatevely, the master may be specified by name, using the BOLD(-M) option. + +PARA + +BOLD(work_queue_worker) can be run locally or deployed remotely on any of the +grid or cloud computing environments such as SGE, PBS, SLURM, and HTCondor using +MANPAGE(sge_submit_workers,1), MANPAGE(pbs_submit_workers,1), MANPAGE(slurm_submit_workers), and MANPAGE(condor_submit_workers,1) respectively. + +SECTION(OPTIONS) +OPTIONS_BEGIN +OPTION_ITEM(-v, --version')Show version string. +OPTION_ITEM(-h, --help')Show this help message. +OPTION_TRIPLET(-N,-M, master-name, name)Set the name of the project this worker should work for. A worker can have multiple projects. +OPTION_TRIPLET(-C, catalog, catalog)Set catalog server to PARAM(catalog). Format: HOSTNAME:PORT +OPTION_TRIPLET(-d, debug, flag)Enable debugging for the given subsystem. Try -d all as a start. +OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). +OPTION_PAIR(--debug-max-rotate, bytes)Set the maximum file size of the debug log. If the log exceeds this size, it is renamed to "filename.old" and a new logfile is opened. (default=10M. 0 disables) +OPTION_ITEM(--debug-release-reset)Debug file will be closed, renamed, and a new one opened after being released from a master. +OPTION_ITEM(`--foreman')Enable foreman mode. +OPTION_TRIPLET(-f, foreman-name, name)Set the project name of this foreman to PARAM(project). Implies --foreman. +OPTION_PAIR(--foreman-port, port[:highport]) Set the port for the foreman to listen on. If PARAM(highport) is specified the port is chosen from between PARAM(port) and PARAM(highport). Implies --foreman. +OPTION_TRIPLET(-Z, foreman-port-file, file)Select port to listen to at random and write to this file. Implies --foreman. +OPTION_TRIPLET(-F, fast-abort, mult)Set the fast abort multiplier for foreman (default=disabled). +OPTION_PAIR(--specify-log, logfile)Send statistics about foreman to this file. +OPTION_TRIPLET(-P, password, pwfile)Password file for authenticating to the master. +OPTION_TRIPLET(-t, timeout, time)Abort after this amount of idle time. (default=900s) +OPTION_TRIPLET(-w, tcp-window-size, size)Set TCP window size. +OPTION_TRIPLET(-i, min-backoff, time)Set initial value for backoff interval when worker fails to connect to a master. (default=1s) +OPTION_TRIPLET(-b, max-backoff, time)Set maxmimum value for backoff interval when worker fails to connect to a master. (default=60s) +OPTION_TRIPLET(-z, disk-threshold, size)Minimum free disk space in MB. When free disk space is less than this value, the worker will clean up and try to reconnect. (default=100MB) +OPTION_PAIR(--memory-threshold, size)Set available memory threshold (in MB). When exceeded worker will clean up and reconnect. (default=100MB) +OPTION_TRIPLET(-A, arch, arch)Set the architecture string the worker reports to its supervisor. (default=the value reported by uname) +OPTION_TRIPLET(-O, os, os)Set the operating system string the worker reports to its supervisor. (default=the value reported by uname) +OPTION_TRIPLET(-s, workdir, path)Set the location where the worker should create its working directory. (default=/tmp) +OPTION_PAIR(--bandwidth, mbps)Set the maximum bandwidth the foreman will consume in Mbps. (default=unlimited) +OPTION_PAIR(--cores, n)Set the number of cores this worker should use. Set it to 0 to have the worker use all of the available resources. (default=1) +OPTION_PAIR(--gpus, n)Set the number of GPUs this worker should use. (default=0) +OPTION_PAIR(--memory, mb)Manually set the amount of memory (in MB) reported by this worker. +OPTION_PAIR(--disk, mb)Manually set the amount of disk space (in MB) reported by this worker. +OPTION_PAIR(--wall-time, s)Set the maximum number of seconds the worker may be active. +OPTION_PAIR(--feature, feature)Specifies a user-defined feature the worker provides (option can be repeated). +OPTION_PAIR(--docker, image) Enable the worker to run each task with a container based on this image. +OPTION_PAIR(--docker-preserve, image) Enable the worker to run all tasks with a shared container based on this image. +OPTION_PAIR(--docker-tar, tarball) Load docker image from this tarball. +OPTION_PAIR(--volatility, chance)Set the percent chance per minute that the worker will shut down (simulates worker failures, for testing only). +OPTIONS_END + +SECTION(FOREMAN MODE) + +BOLD(work_queue_worker) can also be run in BOLD(foreman) mode, in which it connects to a +master as a worker while acting as a master itself. Any tasks the foreman receives from +its master are sent to its subordinate worker processes. + +PARA + +BOLD(Foreman) mode is enabled by either specifying a port to listen on using the BOLD(-f PARAM(port)) option or by +setting the mode directly with the BOLD(--foreman) option. The foreman can be directed to advertise its +presence on the MANPAGE(catalog_server) with the BOLD(-N PARAM(project name)) flag, which other workers can use to +contact the foreman. + +SECTION(CONTAINER MODE) +BOLD(work_queue_worker) can be run with container. Docker is the default management tool and docker deamon should be enabled +in computing nodes. Tasks received from master can be run with container based on user specified docker image. + +PARA + +BOLD(Container) mode is enable by either specifying a image name using the BOLD(--docker PARAM(image)) option, which enable workers +running each tasks with an independent container or by using the BOLD(--docker-preserve PARAM(image)) option, which enable workers +running all tasks with a shared container. The default way to manage the image is using docker hub, which means user +has to push the container image into the docker hub in advance. If the image is saved in a tarball and cached in the +computing node, BOLD(--docker-tar PARAM(tarball)) option can be adopted to load the image from the tarball. + +SECTION(EXIT STATUS) +On success, returns zero. On failure, returns non-zero. + +SECTION(EXAMPLES) + +To run BOLD(work_queue_worker) to join a specific master process running on host CODE(master.somewhere.edu) port 9123: +LONGCODE_BEGIN +% work_queue_worker master.somewhere.edu 9123 +LONGCODE_END + +To run BOLD(work_queue_worker) in auto mode with debugging turned on for all subsystems and +to accept tasks only from a master application with project name set to project_A: +LONGCODE_BEGIN +% work_queue_worker -a -d all -M project_A +LONGCODE_END + +To run BOLD(work_queue_worker) as a foreman working for project_A and advertising itself as foreman_A1 while listening on port 9123: +LONGCODE_BEGIN +% work_queue_worker --foreman -M project_A -N foreman_A1 -f 9123 +LONGCODE_END + +SECTION(COPYRIGHT) + +COPYRIGHT_BOILERPLATE + +SECTION(SEE ALSO) + +SEE_ALSO_WORK_QUEUE + +FOOTER diff -Nru cctools-7.0.22/doc/man/Makefile cctools-7.1.2/doc/man/Makefile --- cctools-7.0.22/doc/man/Makefile 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,54 @@ +include ../../config.mk + +SOURCES=${shell find m4 -type f -name '*.m4' -print} + +MDFILES = ${SOURCES:m4/%.m4=md/%.md} +HTMLFILES = ${SOURCES:m4/%.m4=html/%.html} +TXTFILES = ${SOURCES:m4/%.m4=txt/%.txt} +PDFFILES = ${SOURCES:m4/%.m4=pdf/%.pdf} +MANFILES = ${SOURCES:m4/%.m4=man/%.1} +ZIPFILES = ${MANFILES:man/%.m4=man/%.1.gz} + +all: ${CCTOOLS_DOCTARGETS} + +apipages: + +mdpages: ${MDFILES} + +htmlpages: ${HTMLFILES} + +manpages: ${ZIPFILES} + +md/%.md: m4/%.m4 + mkdir -p md + m4 -DMD ${CCTOOLS_M4_ARGS} $< > $@ + +html/%.html: m4/%.m4 + mkdir -p html + m4 -DHTML ${CCTOOLS_M4_ARGS} $< > $@ + +man/%.1: m4/%.m4 + mkdir -p man + m4 -DMAN ${CCTOOLS_M4_ARGS} $< > $@ + +man/%.gz: man/%.1 + mkdir -p man + gzip < $< > $@ + +txt/%.txt: man/%.1 + mkdir -p txt + nroff -man $< > $@ + +install: all + mkdir -p $(CCTOOLS_INSTALL_DIR)/doc + mkdir -p $(CCTOOLS_INSTALL_DIR)/man + mkdir -p $(CCTOOLS_INSTALL_DIR)/share/man/man1 + if [ -f man/chirp.1.gz ]; then cp man/*.1.gz $(CCTOOLS_INSTALL_DIR)/share/man/man1; fi + if [ -f html ]; then cp -r html $(CCTOOLS_INSTALL_DIR)/doc/man/; fi + +test: + +clean: + rm -rf $(HTMLFILES) $(MANFILES) $(ZIPFILES) *~ + +.PHONY: all clean install test diff -Nru cctools-7.0.22/doc/man/makeflow_amazon_batch_cleanup.m4 cctools-7.1.2/doc/man/makeflow_amazon_batch_cleanup.m4 --- cctools-7.0.22/doc/man/makeflow_amazon_batch_cleanup.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/makeflow_amazon_batch_cleanup.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -include(manual.h)dnl -HEADER(makeflow_amazon_batch_cleanup) - -SECTION(NAME) -BOLD(makeflow_amazon_batch_cleanup) - clean up Amazon services after running Makeflow - -SECTION(SYNOPSIS) -CODE(BOLD(makeflow_amazon_batch_cleanup PARAM(config-file))) - -SECTION(DESCRIPTION) - -CODE(makeflow_amazon_batch_cleanup) cleans up the virtual private cluster, -subnets, and other details that were created by CODE(makeflow_amazon_batch_setup) -and stored in the config file passed on the command line. - -It is possible that cleanup may fail, if the cluster or other elements -are still in use, and display a message from AWS. In this case, make -sure that you have terminated any workflows running in the cluster and -try again. If cleanup still fails, you may need to use the AWS console -to view and delete the relevant items listed in the config file. - -SECTION(OPTIONS) -None. - -SECTION(EXAMPLES) - -LONGCODE_BEGIN -makeflow_amazon_batch_setup 3 2 4 my.config -makeflow -T amazon-batch --amazon-batch-config=my.config --amazon-ami=USER_PROVIDED_ECS_IMAGE_ARN example.makeflow -makeflow_amazon_batch_cleanup my.config -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_MAKEFLOW - -FOOTER diff -Nru cctools-7.0.22/doc/man/makeflow_amazon_batch_setup.m4 cctools-7.1.2/doc/man/makeflow_amazon_batch_setup.m4 --- cctools-7.0.22/doc/man/makeflow_amazon_batch_setup.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/makeflow_amazon_batch_setup.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ -include(manual.h)dnl -HEADER(makeflow_amazon_batch_setup) - -SECTION(NAME) -BOLD(makeflow_amazon_batch_setup) - set up Amazon services for running Makeflow - -SECTION(SYNOPSIS) -CODE(BOLD(makeflow_amazon_batch_setup PARAM(desired-num-cores) PARAM(min-num-cores) PARAM(max-num-cores) PARAM(config-file) )) - -SECTION(DESCRIPTION) - -BOLD(makeflow_ec2_setup) prepares Amazon services for running a Makeflow. It creates a virtual private cluster, subnets, key pairs, and other details, and writes these out to a configuration file given by the fourth argument. If the fourth argument is not provided, then it will be writen out to CODE(makeflow_amazon_batch.config) in the director this script is called. The first argument is the desired number of cores for the environment. The second argument is the minimum number of cores acceptable for the environment. The third argument is the maximum number of cores that the environment should ever have at its disposal. - -Once the configuration file is created, you may run CODE(makeflow) -with the CODE(-T amazon-batch) option and give the name of the created -config file with CODE(--amazon-batch-config). - -When complete, you can clean up the virtual cluster and related -items by running CODE(makeflow_amazon_batch_cleanup) - -SECTION(PRE-RUN SETUP) - -Before using CODE(makeflow_amazon_batch_setup), make sure that you install the AWS Command -Line Interface tools, have the CODE(aws) command in your PATH, -and run CODE(aws configure) to set up your secret keys and default region. - -Next, ensure that the IAM associated with the secret keys passed to CODE(aws configure) has the following policies attached to it: - -*AmazonEC2FullAccess - -*AmazonS3FullAccess - -*AWSBatchServiceRole - -*AWSBatchFullAccess - -After ensuring that, the script requires that you have the following Roles enabled on your account: - -*AWSBatchServiceRole -- This should have an arn which looks like CODE(arn:aws:iam:ACCOUNT_ID_NUM:role/service-role/AWSBatchServiceRole) which has the policy AWSBatchServiceRole attached. - -*ecsInstanceRole -- This should have an arn which looks like CODE(arn:aws:iam:ACCOUNT_ID_NUM:role/ecsInstanceRole) which has the policy AmazonEC2ContainerServiceforEC2Role attached. - -The easiest way to create these roles is to enter the Amazon Batch dashboard and create an environment via their wizard. In the "Serice role" and "Instance role" fields, have "Create new role" selected. - -When these steps have been accomplished, then the script will run correctly and setup for you a batch environment for you to run your makeflow in. - - -SECTION(OPTIONS) -None. - -SECTION(EXAMPLES) - -LONGCODE_BEGIN -makeflow_amazon_batch_setup 3 2 4 my.config -makeflow -T amazon-batch --amazon-batch-config=my.config --amazon-ami=USER_PROVIDED_ECS_IMAGE_ARN example.makeflow -makeflow_amazon_batch_cleanup my.config -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_MAKEFLOW - -FOOTER diff -Nru cctools-7.0.22/doc/man/makeflow_analyze.m4 cctools-7.1.2/doc/man/makeflow_analyze.m4 --- cctools-7.0.22/doc/man/makeflow_analyze.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/makeflow_analyze.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -include(manual.h)dnl -HEADER(makeflow_analyze) - -SECTION(NAME) -BOLD(makeflow_analyze) - analysis of Makeflow workflows - -SECTION(SYNOPSIS) -CODE(BOLD(makeflow_analyze [options] PARAM(dagfile))) - -SECTION(DESCRIPTION) - -BOLD(makeflow_analyze) is a collection of tools to provide insight into the structure of workflows. This includes syntax analysis and dag statistics. - -SECTION(OPTIONS) -SUBSECTION(Commands) -OPTIONS_BEGIN -OPTION_TRIPLET(-b, bundle-dir, directory)Create portable bundle of workflow. -OPTION_ITEM(`-h, --help')Show this help screen. -OPTION_ITEM(`-I, --show-input')Show input files. -OPTION_ITEM(`-k, --syntax-check')Syntax check. -OPTION_ITEM(`-O, --show-output')Show output files. -OPTION_ITEM(`-v, --version')Show version string. -OPTIONS_END - -SECTION(EXAMPLES) - -Analyze the syntax of a workflow: -LONGCODE_BEGIN -makeflow_analyze -k Makeflow -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_MAKEFLOW - -FOOTER diff -Nru cctools-7.0.22/doc/man/makeflow_blast.m4 cctools-7.1.2/doc/man/makeflow_blast.m4 --- cctools-7.0.22/doc/man/makeflow_blast.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/makeflow_blast.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -include(manual.h)dnl -HEADER(makeflow_blast) - -SECTION(NAME) -BOLD(makeflow_blast) - Generate a Makeflow to parallelize and distribute blastall jobs - -SECTION(SYNOPSIS) -CODE(BOLD(makeflow_blast query_granularity character_granularity [blast_options])) - -SECTION(DESCRIPTION) -BOLD(makeflow_blast) is a script to generate MANPAGE(makeflow) workflows to execute blastall jobs. Essentially, the script uses query_granularity (the maximum number of sequences per fasta file split) and character_granularity (the maximum number of characters per fasta file split) to determine how to break up the input fasta file. It then creates a makeflow that will execute a blastall with the desired parameters on each part and concatenate the results into the desired output file. For simplicity, all of the arguments following query_granularity and character_granularity are passed through as the options to MANPAGE(blastall). -PARA -BOLD(makeflow_blast) executes a small test BLAST job with the user provided parameters in order to be sure that the given parameters are sane. It then calculates the number of parts the provided fasta input file will require, prints a makeflow rule to generate those parts using MANPAGE(split_fasta), and enumerates makeflow rules to execute blastall with the given parameters on each part. Subsequent rules to condense and clean the intermediate input and output are then produced. -PARA -BOLD(makeflow_blast) expects a blastall in the path, and should be used from the directory containing the input files and databases. For distribution convenience, it is required that the files constituting a given BLAST database must be stored in a folder with the same name as that database. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_PAIR(-i, input)Specifiy the input fasta file for querying the BLAST database -OPTION_PAIR(-o, output)Specify the output file for final results -OPTION_PAIR(-d, databse)Specify the BLAST database to be queried -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(ENVIRONMENT VARIABLES) - -SECTION(EXAMPLES) - -To generate a makeflow to run blastall -p blastn on smallpks.fa and testdb, splitting smallpks.fa every 500 sequences or 10000 characters and placing the blast output into test.txt do: -LONGCODE_BEGIN -python makeflow_blast 500 10000 -i smallpks.fa -o test -d testdb/testdb -p blastn > Makeflow -LONGCODE_END -You can then execute this workflow in a variety of distributed and parallel environments using the makeflow command. - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_MAKEFLOW - -FOOTER diff -Nru cctools-7.0.22/doc/man/makeflow_ec2_cleanup.m4 cctools-7.1.2/doc/man/makeflow_ec2_cleanup.m4 --- cctools-7.0.22/doc/man/makeflow_ec2_cleanup.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/makeflow_ec2_cleanup.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -include(manual.h)dnl -HEADER(makeflow_ec2_cleanup) - -SECTION(NAME) -BOLD(makeflow_ec2_cleanup) - clean up Amazon services after running Makeflow - -SECTION(SYNOPSIS) -CODE(BOLD(makeflow_ec2_cleanup PARAM(config-file))) - -SECTION(DESCRIPTION) - -CODE(makeflow_ec2_cleanup) cleans up the virtual private cluster, -subnets, and other details that were created by CODE(makeflow_ec2_setup) -and stored in the config file passed on the command line. - -It is possible that cleanup may fail, if the cluster or other elements -are still in use, and display a message from AWS. In this case, make -sure that you have terminated any workflows running in the cluster and -try again. If cleanup still fails, you may need to use the AWS console -to view and delete the relevant items listed in the config file. - -SECTION(OPTIONS) -None. - -SECTION(EXAMPLES) - -LONGCODE_BEGIN -makeflow_ec2_cleanup my.config ami-343a694f -makeflow -T amazon --amazon-config my.config example.makeflow -makeflow_ec2_cleanup my.config -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_MAKEFLOW - -FOOTER diff -Nru cctools-7.0.22/doc/man/makeflow_ec2_setup.m4 cctools-7.1.2/doc/man/makeflow_ec2_setup.m4 --- cctools-7.0.22/doc/man/makeflow_ec2_setup.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/makeflow_ec2_setup.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -include(manual.h)dnl -HEADER(makeflow_ec2_setup) - -SECTION(NAME) -BOLD(makeflow_ec2_setup) - set up Amazon services for running Makeflow - -SECTION(SYNOPSIS) -CODE(BOLD(makeflow_ec2_setup PARAM(config-file) PARAM(ami))) - -SECTION(DESCRIPTION) - -Before using CODE(makeflow_ec2_setup), make sure that you install the AWS Command -Line Interface tools, have the CODE(aws) command in your PATH, -and run CODE(aws configure) to set up your secret keys and default region. - -BOLD(makeflow_ec2_setup) prepares Amazon services for running a Makeflow. -It creates a virtual private cluster, subnets, key pairs, and other -details, and writes these out to a configuration file given by the -first argument. The second argument is the Amazon Machine Image (AMI) -that will be used by default in the workflow, if not specified for -individual jobs. - -Once the configuration file is created, you may run CODE(makeflow) -with the CODE(-T amazon) option and give the name of the created -config file with CODE(--amazon-config). - -When complete, you can clean up the virtual cluster and related -items by running CODE(makeflow_ec2_cleanup) - -SECTION(OPTIONS) -None. - -SECTION(EXAMPLES) - -LONGCODE_BEGIN -makeflow_ec2_setup my.config ami-343a694f -makeflow -T amazon --amazon-config my.config example.makeflow -makeflow_ec2_cleanup my.config -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_MAKEFLOW - -FOOTER diff -Nru cctools-7.0.22/doc/man/makeflow_graph_log.m4 cctools-7.1.2/doc/man/makeflow_graph_log.m4 --- cctools-7.0.22/doc/man/makeflow_graph_log.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/makeflow_graph_log.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -include(manual.h)dnl -HEADER(makeflow_graph_log) - -SECTION(NAME) -BOLD(makeflow_graph_log) - convert a makeflow log into a graph - -SECTION(SYNOPSIS) -CODE(BOLD(makeflow_graph_log PARAM(logfile) PARAM(imagefile))) - -SECTION(DESCRIPTION) - -BOLD(makeflow_graph_log) converts a makeflow log into a graph -that shows the number of tasks ready, running, and completed over time. -The output graph is generated by using gnuplot to create a postscript -file, which is then converted to the desired type using ImageMagick. -The type of the output file is determined by the name, so any image -type supported by ImageMagick can be selected. - -SECTION(OPTIONS) -None. - -SECTION(EXAMPLES) - -LONGCODE_BEGIN -makeflow_graph_log small.makeflowlog small.pdf -makeflow_graph_log big.makeflowlog big.gif -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_MAKEFLOW - -FOOTER diff -Nru cctools-7.0.22/doc/man/makeflow_linker.m4 cctools-7.1.2/doc/man/makeflow_linker.m4 --- cctools-7.0.22/doc/man/makeflow_linker.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/makeflow_linker.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -include(manual.h)dnl -HEADER(makeflow_linker) - -SECTION(NAME) -BOLD(makeflow_linker) - automatic dependency location for workflows - -SECTION(SYNOPSIS) -CODE(BOLD(makeflow_linker [options] PARAM(workflow_description))) - -SECTION(DESCRIPTION) -BOLD(makeflow_linker) is a tool for automatically determining dependencies of workflows. It accepts a workflow description, currently Makeflow syntax is required, and recursively determines the dependencies and produces a self-contained package. BOLD(makeflow_linker) supports Python, Perl, and shared libraries. - -PARA - -BOLD(makeflow_linker) finds dependencies by static analysis. CODE(eval) and other dynamic code loading may obscure dependencies causing BOLD(makeflow_linker) to miss some critical dependencies. Therefore it is recommended to avoid these techniques when desiging a workflow. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_ITEM(`--dry-run')Run without creating directories or copying dependencies. -OPTION_ITEM(`-h, --help')Show this help screen. -OPTION_ITEM(`-n, --use-named')Do not copy files which are part of a named dependency, e.g. standard libraries. -OPTION_TRIPLET(-o, output, directory)Specify output directory. -OPTION_ITEM(`--verbose')Output status during run. -OPTION_ITEM(`-v, --version')Display version information. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure (typically permission errors), returns non-zero. - -SECTION(BUGS) -LIST_BEGIN -LIST_ITEM(The makeflow_linker does not check for naming collisions beyond the initial workflow inputs.) -LIST_ITEM(The makeflow_linker relies on regex parsing of files, so some forms of import statements may be missing.) -LIST_END - -SECTION(EXAMPLES) - -Package a workflow: -LONGCODE_BEGIN -makeflow_linker -o example_mf example.mf -LONGCODE_END - -Run packaged workflow: -LONGCODE_BEGIN -makeflow example_mf/example.mf -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_LINKER - -FOOTER diff -Nru cctools-7.0.22/doc/man/makeflow.m4 cctools-7.1.2/doc/man/makeflow.m4 --- cctools-7.0.22/doc/man/makeflow.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/makeflow.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,255 +0,0 @@ -include(manual.h)dnl -HEADER(makeflow) - -SECTION(NAME) -BOLD(makeflow) - workflow engine for executing distributed workflows - -SECTION(SYNOPSIS) -CODE(BOLD(makeflow [options] PARAM(dagfile))) - -SECTION(DESCRIPTION) - -BOLD(Makeflow) is a workflow engine for distributed computing. It accepts a -specification of a large amount of work to be performed, and runs it on remote -machines in parallel where possible. In addition, BOLD(Makeflow) is -fault-tolerant, so you can use it to coordinate very large tasks that may run -for days or weeks in the face of failures. BOLD(Makeflow) is designed to be -similar to Make, so if you can write a Makefile, then you can write a -BOLD(Makeflow). - -PARA - -You can run a BOLD(Makeflow) on your local machine to test it out. If you have -a multi-core machine, then you can run multiple tasks simultaneously. If you -have a Condor pool or a Sun Grid Engine batch system, then you can send your -jobs there to run. If you don't already have a batch system, BOLD(Makeflow) -comes with a system called Work Queue that will let you distribute the load -across any collection of machines, large or small. BOLD(Makeflow) also -supports execution in a Docker container, regardless of the batch system -used. - -PARA - -SECTION(OPTIONS) -When CODE(makeflow) is ran without arguments, it will attempt to execute the -workflow specified by the BOLD(Makeflow) dagfile using the CODE(local) -execution engine. - -SUBSECTION(Commands) -OPTIONS_BEGIN -OPTION_TRIPLET(-c, --clean, option)Clean up: remove logfile and all targets. If option is one of [intermediates, outputs, cache], only indicated files are removed. -OPTION_TRIPLET(-f, summary-log, file)Write summary of workflow to file. -OPTION_ITEM(`-h, --help')Show this help screen. -OPTION_TRIPLET(-m, email, email)Email summary of workflow to address. -OPTION_ITEM(`-v, --version')Show version string. -OPTION_TRIPLET(-X, chdir, directory)Chdir to enable executing the Makefile in other directory. -OPTIONS_END - -SUBSECTION(Batch Options) -OPTIONS_BEGIN -OPTION_TRIPLET(-B, batch-options, options)Add these options to all batch submit files. -OPTION_TRIPLET(-j, max-local, #)Max number of local jobs to run at once. (default is # of cores) -OPTION_TRIPLET(-J, max-remote, #)Max number of remote jobs to run at once. (default is 1000 for -Twq, 100 otherwise) -OPTION_TRIPLET(-l, makeflow-log, logfile)Use this file for the makeflow log. (default is X.makeflowlog) -OPTION_TRIPLET(-L, batch-log, logfile)Use this file for the batch system log. (default is X.PARAM(type)log) -OPTION_ITEM(`-R, --retry')Automatically retry failed batch jobs up to 100 times. -OPTION_TRIPLET(-r, retry-count, n)Automatically retry failed batch jobs up to n times. -OPTION_ITEM(`--send-environment')Send all local environment variables in remote execution. -OPTION_PAIR(--wait-for-files-upto, #)Wait for output files to be created upto this many seconds (e.g., to deal with NFS semantics). -OPTION_TRIPLET(-S, submission-timeout, timeout)Time to retry failed batch job submission. (default is 3600s) -OPTION_TRIPLET(-T, batch-type, type)Batch system type: local, dryrun, condor, sge, pbs, torque, blue_waters, slurm, moab, cluster, wq, amazon, mesos. (default is local) -OPTION_ITEM(`--safe-submit-mode')Excludes resources at submission. (SLURM, TORQUE, and PBS) -OPTION_ITEM(`--ignore-memory-spec')Excludes memory at submission. (SLURM) -OPTION_ITEM(`--verbose-jobnames')Set the job name based on the command. -OPTIONS_END - -SUBSECTION(JSON/JX Options) -OPTIONS_BEGIN -OPTION_ITEM(--json)Interpret PARAM(dagfile) as a JSON format Makeflow. -OPTION_ITEM(--jx)Evaluate JX expressions in PARAM(dagfile). Implies --json. -OPTION_PAIR(--jx-args, args)Read variable definitions from the JX file PARAM(args). -OPTION_PAIR(--jx-define, VAL=EXPR)Set the variable PARAM(VAL) to the JX expression PARAM(EXPR). -OPTION_PAIR(--jx-context, ctx)Deprecated. -OPTIONS_END - -SUBSECTION(Debugging Options) -OPTIONS_BEGIN -OPTION_TRIPLET(-d, debug, subsystem)Enable debugging for this subsystem. -OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). -OPTION_ITEM(`--verbose')Display runtime progress on stdout. -OPTIONS_END - -SUBSECTION(WorkQueue Options) -OPTIONS_BEGIN -OPTION_ITEM(`-a, --advertise')Advertise the master information to a catalog server. -OPTION_TRIPLET(-C, catalog-server, catalog)Set catalog server to PARAM(catalog). Format: HOSTNAME:PORT -OPTION_TRIPLET(-F, wq-fast-abort, #)WorkQueue fast abort multiplier. (default is deactivated) -OPTION_TRIPLET(-M,-N, project-name, project)Set the project name to PARAM(project). -OPTION_TRIPLET(-p, port, port)Port number to use with WorkQueue. (default is 9123, 0=arbitrary) -OPTION_TRIPLET(-Z, port-file, file)Select port at random and write it to this file. (default is disabled) -OPTION_TRIPLET(-P, priority, integer)Priority. Higher the value, higher the priority. -OPTION_TRIPLET(-W, wq-schedule, mode)WorkQueue scheduling algorithm. (time|files|fcfs) -OPTION_TRIPLET(-s, password, pwfile)Password file for authenticating workers. -OPTION_ITEM(`--disable-cache')Disable file caching (currently only Work Queue, default is false) -OPTION_PAIR(--work-queue-preferred-connection,connection)Indicate preferred connection. Chose one of by_ip or by_hostname. (default is by_ip) -OPTIONS_END - -SUBSECTION(Monitor Options) -OPTIONS_BEGIN -OPTION_PAIR(--monitor, dir)Enable the resource monitor, and write the monitor logs to -OPTION_ITEM(`--monitor-with-time-series')Enable monitor time series. (default is disabled) -OPTION_ITEM(`--monitor-with-opened-files')Enable monitoring of openened files. (default is disabled) -OPTION_PAIR(--monitor-interval, #)Set monitor interval to <#> seconds. (default 1 second) -OPTION_PAIR(--monitor-log-fmt, fmt)Format for monitor logs. (default resource-rule-%06.6d, %d -> rule number) -OPTION_PAIR(--allocation, waste,throughput)When monitoring is enabled, automatically assign resource allocations to tasks. Makeflow will try to minimize CODE(waste) or maximize CODE(throughput). -OPTIONS_END - -SUBSECTION(Umbrella Options) -OPTIONS_BEGIN -OPTION_PAIR(--umbrella-binary, filepath)Umbrella binary for running every rule in a makeflow. -OPTION_PAIR(--umbrella-log-prefix, filepath)Umbrella log file prefix for running every rule in a makeflow. (default is .umbrella.log) -OPTION_PAIR(--umbrella-mode, mode)Umbrella execution mode for running every rule in a makeflow. (default is local) -OPTION_PAIR(--umbrella-spec, filepath)Umbrella spec for running every rule in a makeflow. -OPTIONS_END - -SUBSECTION(Docker Support) -OPTIONS_BEGIN -OPTION_PAIR(--docker,image) Run each task in the Docker container with this name. The image will be obtained via "docker pull" if it is not already available. -OPTION_PAIR(--docker-tar,tar) Run each task in the Docker container given by this tar file. The image will be uploaded via "docker load" on each execution site. -OPTIONS_END - -SUBSECTION(Singularity Support) -OPTIONS_BEGIN -OPTION_PAIR(--singularity,image) Run each task in the Singularity container with this name. The container will be created from the passed in image. -OPTIONS_END - -SUBSECTION(Amazon Options) -OPTIONS_BEGIN -OPTION_PAIR(--amazon-credentials,path) Specify path to Amazon credentials file. -The credentials file should be in the following JSON format: -LONGCODE_BEGIN -{ -"aws_access_key_id" : "AAABBBBCCCCDDD" -"aws_secret_access_key" : "AAABBBBCCCCDDDAAABBBBCCCCDDD" -} -LONGCODE_END -OPTION_PAIR(--amazon-ami, image-id) Specify an amazon machine image. -OPTIONS_END - -SUBSECTION(Mesos Options) -OPTIONS_BEGIN -OPTION_PAIR(--mesos-master, hostname) Indicate the host name of preferred mesos master. -OPTION_PAIR(--mesos-path, filepath) Indicate the path to mesos python2 site-packages. -OPTION_PAIR(--mesos-preload, library) Indicate the linking libraries for running mesos.. - -SUBSECTION(Amazon Lambda Options) -OPTIONS_BEGIN -OPTION_PAIR(--lambda-config,path) Path to the configuration file generated by makeflow_lambda_setup -OPTIONS_END - -SUBSECTION(Kubernetes Options) -OPTIONS_BEGIN -OPTION_PAIR(--k8s-image, docker_image) Indicate the Docker image for running pods on Kubernetes cluster. -OPTIONS_END - -SUBSECTION(Mountfile Support) -OPTIONS_BEGIN -OPTION_PAIR(--mounts, mountfile)Use this file as a mountlist. Every line of a mountfile can be used to specify the source and target of each input dependency in the format of BOLD(target source) (Note there should be a space between target and source.). -OPTION_PAIR(--cache, cache_dir)Use this dir as the cache for file dependencies. -OPTIONS_END - -SUBSECTION(Archiving Options) -OPTIONS_BEGIN -OPTION_PAIR(--archive,path)Archive results of workflow at the specified path (by default /tmp/makeflow.archive.$UID) and use outputs of any archived jobs instead of re-executing job -OPTION_PAIR(--archive-read,path)Only check to see if jobs have been cached and use outputs if it has been -OPTION_PAIR(--archive-write,path)Write only results of each job to the archiving directory at the specified path -OPTIONS_END - -SUBSECTION(Other Options) -OPTIONS_BEGIN -OPTION_ITEM(`-A, --disable-afs-check')Disable the check for AFS. (experts only) -OPTION_ITEM(`-z, --zero-length-error')Force failure on zero-length output files. -OPTION_TRIPLET(-g, gc, type)Enable garbage collection. (ref_cnt|on_demand|all) -OPTION_PAIR(--gc-size, int)Set disk size to trigger GC. (on_demand only) -OPTION_TRIPLET(-G, gc-count, int)Set number of files to trigger GC. (ref_cnt only) -OPTION_PAIR(--wrapper,script) Wrap all commands with this BOLD(script). Each rule's original recipe is appended to BOLD(script) or replaces the first occurrence of BOLD({}) in BOLD(script). -OPTION_PAIR(--wrapper-input,file) Wrapper command requires this input file. This option may be specified more than once, defining an array of inputs. Additionally, each job executing a recipe has a unique integer identifier that replaces occurrences BOLD(%%) in BOLD(file). -OPTION_PAIR(--wrapper-output,file) Wrapper command requires this output file. This option may be specified more than once, defining an array of outputs. Additionally, each job executing a recipe has a unique integer identifier that replaces occurrences BOLD(%%) in BOLD(file). -OPTION_ITEM(`--enforcement')Use Parrot to restrict access to the given inputs/outputs. -OPTION_PAIR(--parrot,path)Path to parrot_run executable on the host system. -OPTION_PAIR(--shared-fs,dir)Assume the given directory is a shared filesystem accessible at all execution sites. -OPTIONS_END - -SECTION(DRYRUN MODE) - -When the batch system is set to BOLD(-T) PARAM(dryrun), Makeflow runs as usual -but does not actually execute jobs or modify the system. This is useful to -check that wrappers and substitutions are applied as expected. In addition, -Makeflow will write an equivalent shell script to the batch system log -specified by BOLD(-L) PARAM(logfile). This script will run the commands in -serial that Makeflow would have run. This shell script format may be useful -for archival purposes, since it does not depend on Makeflow. - -SECTION(ENVIRONMENT VARIABLES) - -The following environment variables will affect the execution of your -BOLD(Makeflow): -SUBSECTION(BATCH_OPTIONS) - -This corresponds to the BOLD(-B) PARAM(options) parameter and will pass extra -batch options to the underlying execution engine. - -SUBSECTION(MAKEFLOW_MAX_LOCAL_JOBS) -This corresponds to the BOLD(-j) PARAM(#) parameter and will set the maximum -number of local batch jobs. If a BOLD(-j) PARAM(#) parameter is specified, the -minimum of the argument and the environment variable is used. - -SUBSECTION(MAKEFLOW_MAX_REMOTE_JOBS) -This corresponds to the BOLD(-J) PARAM(#) parameter and will set the maximum -number of local batch jobs. If a BOLD(-J) PARAM(#) parameter is specified, the -minimum of the argument and the environment variable is used. -PARA -Note that variables defined in your BOLD(Makeflow) are exported to the -environment. - -SUBSECTION(TCP_LOW_PORT) -Inclusive low port in range used with CODE(-p 0). - -SUBSECTION(TCP_HIGH_PORT)) -Inclusive high port in range used with CODE(-p 0). - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Run makeflow locally with debugging: -LONGCODE_BEGIN -makeflow -d all Makeflow -LONGCODE_END - -Run makeflow on Condor will special requirements: -LONGCODE_BEGIN -makeflow -T condor -B "requirements = MachineGroup == 'ccl'" Makeflow -LONGCODE_END - -Run makeflow with WorkQueue using named workers: -LONGCODE_BEGIN -makeflow -T wq -a -N project.name Makeflow -LONGCODE_END - -Create a directory containing all of the dependencies required to run the -specified makeflow -LONGCODE_BEGIN -makeflow -b bundle Makeflow -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_MAKEFLOW - -FOOTER diff -Nru cctools-7.0.22/doc/man/makeflow_monitor.m4 cctools-7.1.2/doc/man/makeflow_monitor.m4 --- cctools-7.0.22/doc/man/makeflow_monitor.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/makeflow_monitor.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ -include(manual.h)dnl -HEADER(makeflow_monitor) - -SECTION(NAME) -BOLD(makeflow_monitor) - Makeflow log monitor - -SECTION(SYNOPSIS) -CODE(BOLD(makeflow_monitor [options] PARAM(makeflowlog))) - -SECTION(DESCRIPTION) -CODE(makeflow_monitor) is simple BOLD(Makeflow) log monitor that displays the -progress and statistics of a workflow based on the provided PARAM(makeflowlog). -Once started, it will continually monitor the specified PARAM(makeflowlogs) for -new events and update the progress display. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_ITEM(-h)Show this help message and exit. -OPTION_PAIR(-f, format)Output format to emit. -OPTION_PAIR(-t, seconds)Timeout for reading the logs. -OPTION_PAIR(-m, minimum)Mininum number of tasks. -OPTION_ITEM(-S)Sort logs by progress. -OPTION_ITEM(-P)Parse dag for node information. -OPTION_ITEM(-H)Hide finished makeflows. -OPTIONS_END -PARA -Currently, the only supported PARAM(format) is "text", which means -CODE(makeflow_monitor) will display the progress of the workflows directly to -the console. -PARA -Additionally, the CODE(-P) parameter current does not do anything. - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) -Monitor a BOLD(Makeflow) log: -LONGCODE_BEGIN -makeflow_monitor Makeflow.makeflowlog -LONGCODE_END -Monitor multiple BOLD(Makeflow) logs and hide finished workflows: -LONGCODE_BEGIN -makeflow_monitor -H */*.makeflowlog -LONGCODE_END -Monitor multiple BOLD(Makeflow) logs under current directory and only display -currently running workflows with a minimum of 4 tasks: -LONGCODE_BEGIN -find . -name '*.makeflowlog' | xargs makeflow_monitor -m 4 -H -LONGCODE_END -The example above is useful for hierarchical workflows. - -SECTION(COPYRIGHT) -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_MAKEFLOW - -FOOTER diff -Nru cctools-7.0.22/doc/man/makeflow_status.m4 cctools-7.1.2/doc/man/makeflow_status.m4 --- cctools-7.0.22/doc/man/makeflow_status.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/makeflow_status.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -include(manual.h)dnl -HEADER(makeflow_status) - -SECTION(NAME) -BOLD(makeflow_status) - command line tool retrieving the status of makeflow programs. - -SECTION(SYNOPSIS) -CODE(BOLD(makeflow_status [options])) - -SECTION(DESCRIPTION) - -BOLD(makeflow_status) retrieves the status of makeflow programs and prints out a report to BOLD(stdout). By using flags, users can filter out certain responses, such as only finding reports of a certain projet, or a certain project owner. - - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_TRIPLET(-N, project, project)The project on which to filter results. -OPTION_TRIPLET(-u, username, user)The owner on which to filter results. -OPTION_TRIPLET(-s, server, server)The catalog server to retrieve the reports from. -OPTION_TRIPLET(-p, port, port)The port to contact the catalog server on. -OPTION_TRIPLET(-t, timeout, time)Set remote operation timeout. -OPTION_ITEM(`-h, --help')Show help text. -OPTIONS_END - -SECTION(ENVIRONMENT VARIABLES) - -LIST_BEGIN -LIST_ITEM(CODE(BOLD(CATALOG_HOST)) The catalog server to retrieve reports from (same as CODE(-s)).) -LIST_ITEM(CODE(BOLD(CATALOG_PORT)) The port to contact the catalog server on (same as CODE(-p)).) -LIST_END - -SECTION(EXIT STATUS) -On success, returns 0 and prints out the report to stdout. - -SECTION(EXAMPLES) - -Retrieving reports related to project "awesome" - -LONGCODE_BEGIN -% makeflow_status -N awesome -LONGCODE_END - - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -FOOTER diff -Nru cctools-7.0.22/doc/man/makeflow_viz.m4 cctools-7.1.2/doc/man/makeflow_viz.m4 --- cctools-7.0.22/doc/man/makeflow_viz.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/makeflow_viz.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ -include(manual.h)dnl -HEADER(makeflow_viz) - -SECTION(NAME) -BOLD(makeflow_viz) - visualization of Makeflow workflows - -SECTION(SYNOPSIS) -CODE(BOLD(makeflow_viz [options] PARAM(dagfile))) - -SECTION(DESCRIPTION) - -BOLD(makeflow_viz) is a collection of tools to graphically display workflows. This includes DOT and PPM. - -SECTION(OPTIONS) -SUBSECTION(Commands) -OPTIONS_BEGIN -OPTION_ITEM(`-v, --version')Show version string. -OPTION_ITEM(`-h, --help')Show help message. -OPTION_TRIPLET(-D, display, opt) Translate the makeflow to the desired visualization format: - dot DOT file format for precise graph drawing. - ppm PPM file format for rapid iconic display. - cyto Cytoscape format for browsing and customization. - dax DAX format for use by the Pegasus workflow manager. - json JSON representation of the DAG. -OPTION_ITEM(` ')Options for dot output: -OPTION_ITEM(`--dot-merge-similar')Condense similar boxes -OPTION_ITEM(`--dot-proportional')Change the size of the boxes proportional to file size -OPTION_ITEM(`--dot-no-labels')Show only shapes with no text labels. -OPTION_ITEM(`--dot-details')Display a more detailed graph including an operating sandbox for each task. -OPTION_ITEM(`--dot-task-id')Set task label to ID number instead of command. -OPTION_ITEM(`--dot-graph-attr')Set graph attributes. -OPTION_ITEM(`--dot-node-attr')Set node attributes. -OPTION_ITEM(`--dot-edge-attr')Set edge attributes. -OPTION_ITEM(`--dot-task-attr')Set task attributes. -OPTION_ITEM(`--dot-file-attr')Set file attributes. -OPTION_ITEM(` ')The following options for ppm generation are mutually exclusive: -OPTION_PAIR(--ppm-highlight-row, row)Highlight row in completion grap -OPTION_PAIR(--ppm-highlight-file,file)Highlight node that creates file in completion graph -OPTION_PAIR(--ppm-highlight-executable,exe)Highlight executable in completion grap -OPTION_ITEM(`--ppm-show-levels')Display different levels of depth in completion graph -OPTION_ITEM(` ')Options for JSON output: -OPTION_ITEM(`--json')Use JSON format for the workflow specification. -OPTION_ITEM(`--jx')Use JX format for the workflow specification. -OPTION_PAIR(--jx-args, )Evaluate the JX input with keys and values in file defined as variables. -OPTION_PAIR(--jx-define, =)Set the JX variable VAR to the JX expression EXPR. -OPTIONS_END - - - -SECTION(EXAMPLES) - -To produce a DOT representation of the workflow -LONGCODE_BEGIN -makeflow_viz -D dot Makeflow -LONGCODE_END - -To produce a cytoscape representation of the workflow -LONGCODE_BEGIN -makeflow_viz -D cyto Makeflow -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_MAKEFLOW - -FOOTER diff -Nru cctools-7.0.22/doc/man/make_growfs.m4 cctools-7.1.2/doc/man/make_growfs.m4 --- cctools-7.0.22/doc/man/make_growfs.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/make_growfs.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ -include(manual.h)dnl -HEADER(make_growfs) - -SECTION(NAME) -BOLD(make_growfs) - generate directory listings for the GROW filesystem - -SECTION(SYNOPSIS) -CODE(BOLD(make_growfs [options] PARAM(directory))) - -SECTION(DESCRIPTION) - -BOLD(make_growfs) prepares a local filesystem to be exported as -a GROW filesystem which can be accessed by MANPAGE(parrot_run,1). -Given a directory as an argument, it recursively visits all of -the directories underneath and creates files named CODE(.__growfsdir) -that summarize the metadata of all files in that directory. -PARA -Once the directory files are generated, the files may be accessed -through a web server as if there were on a full-fledged filesystem -with complete metadata. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_ITEM(-v)Give verbose messages. -OPTION_ITEM(-K)Create checksums for files. (default) -OPTION_ITEM(-k)Disable checksums for files. -OPTION_ITEM(-f)Follow all symbolic links. -OPTION_ITEM(-F)Do not follow any symbolic links. -OPTION_ITEM(-a)Only follow links that fall outside the root. (default) -OPTION_ITEM(-h)Show help text. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Suppose that your university web server exports the -directory CODE(/home/fred/www) as CODE(http://www.somewhere.edu/fred). -To create a GROW filesystem, put whatever files and directories you -like into CODE(/home/fred/www). Then, run the following to generate -the GROW data: - -LONGCODE_BEGIN -% make_growfs /home/fred/www -LONGCODE_END - -Now that the GROW data is generated, you can use MANPAGE(parrot_run,1) -to treat the web address as a read-only filesystem: - -LONGCODE_BEGIN -% parrot_run bash -% cd /growfs/www.somewhere.edu/fred -% ls -la -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -LIST_BEGIN -LIST_ITEM(LINK(The Cooperative Computing Tools,"http://ccl.cse.nd.edu/software/manuals")) -LIST_ITEM(LINK(Parrot User Manual,"http://ccl.cse.nd.edu/software/manuals/parrot.html")) -LIST_ITEM(MANPAGE(parrot_run,1)) -LIST_END - -FOOTER diff -Nru cctools-7.0.22/doc/man/maker_wq.m4 cctools-7.1.2/doc/man/maker_wq.m4 --- cctools-7.0.22/doc/man/maker_wq.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/maker_wq.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -include(manual.h)dnl -HEADER(maker_wq) - -SECTION(NAME) -BOLD(maker_wq) - Run the Maker genome annotation tool using Work Queue to harness heterogenous resources - -SECTION(SYNOPSIS) -CODE(BOLD(maker_wq [options] )) - -SECTION(DESCRIPTION) -BOLD(maker_wq) is a master script to run the Maker genome annotation tool using Work Queue to enable the user to harness the heterogenous power of multiple systems simultaneously. It accepts all of the Maker inputs. The primary difference is that the MPI code has been replaced with Work Queue components. -PARA -BOLD(maker_wq) expects a maker_wq_worker in the path, and can be used from any working directory. All required input files are specified in the standard Maker control files just as in the standard Maker distribution. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_PAIR(-port, port)Specify the port on which to create the Work Queue -OPTION_PAIR(-fa, fast_abort)Specify a fast abort multiplier -OPTION_PAIR(-N, project)Specify a project name for utilizing shared workers -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(ENVIRONMENT VARIABLES) - -SECTION(EXAMPLES) - -To run maker_wq, specify the same arguments as standard Maker: -LONGCODE_BEGIN -maker_wq maker_opts.ctl maker_bopts.ctl maker_exe.ctl > output -LONGCODE_END -This will begin the Maker run. All that is needed now is to submit workers that can be accessed by our master. - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -FOOTER diff -Nru cctools-7.0.22/doc/man/manual.h cctools-7.1.2/doc/man/manual.h --- cctools-7.0.22/doc/man/manual.h 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/manual.h 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,49 @@ +ifdef(`HTML',`include(manual_html.h)')dnl +ifdef(`MD',`include(manual_md.h)')dnl +ifdef(`MAN',`include(manual_man.h)')dnl +changecom(`@@')dnl +define(COPYRIGHT_BOILERPLATE,The Cooperative Computing Tools are Copyright (C) 2005-2019 The University of Notre Dame. This software is distributed under the GNU General Public License. See the file COPYING for details.)dnl +dnl +define(SEE_ALSO_MAKEFLOW, +`LIST_BEGIN +LIST_ITEM(MANUAL(Cooperative Computing Tools Documentation,"../index.html")) +LIST_ITEM(MANUAL(Makeflow User Manual,"../makeflow.html")) +LIST_ITEM(MANPAGE(makeflow,1) MANPAGE(makeflow_monitor,1) MANPAGE(makeflow_analyze,1) MANPAGE(makeflow_viz,1) MANPAGE(makeflow_graph_log,1) MANPAGE(starch,1) MANPAGE(makeflow_ec2_setup,1) MANPAGE(makeflow_ec2_cleanup,1) ) +LIST_END')dnl +dnl +define(SEE_ALSO_WORK_QUEUE, +`LIST_BEGIN +LIST_ITEM(MANUAL(Cooperative Computing Tools Documentation,"../index.html")) +LIST_ITEM(MANUAL(Work Queue User Manual,"../workqueue.html")) +LIST_ITEM(MANPAGE(work_queue_worker,1) MANPAGE(work_queue_status,1) MANPAGE(work_queue_factory,1) MANPAGE(condor_submit_workers,1) MANPAGE(sge_submit_workers,1) MANPAGE(torque_submit_workers,1) ) +LIST_END')dnl +dnl +define(SEE_ALSO_PARROT, +`LIST_BEGIN +LIST_ITEM(MANUAL(Cooperative Computing Tools Documentation,"../index.html")) +LIST_ITEM(MANUAL(Parrot User Manual,"../parrot.html")) +LIST_ITEM(MANPAGE(parrot_run,1) MANPAGE(parrot_cp,1) MANPAGE(parrot_getacl,1) MANPAGE(parrot_setacl,1) MANPAGE(parrot_mkalloc,1) MANPAGE(parrot_lsalloc,1) MANPAGE(parrot_locate,1) MANPAGE(parrot_timeout,1) MANPAGE(parrot_whoami,1) MANPAGE(parrot_mount,1) MANPAGE(parrot_md5,1) MANPAGE(parrot_package_create,1) MANPAGE(parrot_package_run,1) MANPAGE(chroot_package_run,1)) +LIST_END')dnl +define(SEE_ALSO_CHIRP, +`LIST_BEGIN +LIST_ITEM(MANUAL(Cooperative Computing Tools Documentation,"../index.html")) +LIST_ITEM(MANUAL(Chirp User Manual,"../chirp.html")) +LIST_ITEM(MANPAGE(chirp,1) MANPAGE(chirp_status,1) MANPAGE(chirp_fuse,1) MANPAGE(chirp_get,1) MANPAGE(chirp_put,1) MANPAGE(chirp_stream_files,1) MANPAGE(chirp_distribute,1) MANPAGE(chirp_benchmark,1) MANPAGE(chirp_server,1)) +LIST_END')dnl +dnl +define(SEE_ALSO_SAND, +`LIST_BEGIN +LIST_ITEM(MANUAL(Cooperative Computing Tools Documentation,"../index.html")) +LIST_ITEM(MANUAL(SAND User Manual,"../sand.html")) +LIST_ITEM(MANPAGE(sand_filter_master,1) MANPAGE(sand_filter_kernel,1) MANPAGE(sand_align_master,1) MANPAGE(sand_align_kernel,1) MANPAGE(sand_compress_reads,1) MANPAGE(sand_uncompress_reads,1) MANPAGE(work_queue_worker,1)) +LIST_END')dnl +define(SEE_ALSO_LINKER, +`LIST_BEGIN +LIST_ITEM MANPAGE(makeflow,1) perl(1), python(1), ldd(1) +LIST_END')dnl +define(SEE_ALSO_CATALOG, +`LIST_BEGIN +LIST_ITEM(MANUAL(Cooperative Computing Tools Documentation,"../index.html")) +LIST_ITEM(MANPAGE(catalog_server,1) MANPAGE(catalog_update,1) MANPAGE(catalog_query,1) MANPAGE(chirp_status,1) MANPAGE(work_queue_status,1) MANPAGE(deltadb_query,1)) +LIST_END')dnl +dnl diff -Nru cctools-7.0.22/doc/man/manual_html.h cctools-7.1.2/doc/man/manual_html.h --- cctools-7.0.22/doc/man/manual_html.h 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/manual_html.h 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,37 @@ +define(HEADER,$1(1)

    $1(1)

    )dnl +define(SECTION,

    $1

    )dnl +define(SUBSECTION,

    $1

    )dnl +define(SUBSUBSECTION,

    $1

    )dnl +define(PARA,

    )dnl +define(LINK,$1)dnl +define(MANUAL,LINK($1,$2))dnl +define(MANPAGE,LINK($1($2),$1.html))dnl +define(BOLD,$1)dnl +define(ITALIC,$1)dnl +define(CODE,$1)dnl + +define(LIST_BEGIN,

      ) +define(LIST_ITEM,
    • $1
    • ) +define(LIST_END,
    ) + +define(SPACE, ) +define(HALFTAB,SPACE()SPACE()SPACE()SPACE()) +define(TAB,HALFTAB()HALFTAB()) +define(PARAM,<$1>) + +define(OPTIONS_BEGIN,)dnl +define(OPTION_ITEM,
    BOLD(CODE($1)) )dnl +define(OPTION_PAIR,
    BOLD(CODE($1 PARAM($2)))
    )dnl +define(OPTION_TRIPLET,
    BOLD(CODE($1)``,''BOLD(CODE(--$2)) BOLD(CODE(PARAM($3))))
    )dnl +define(OPTIONS_END,
    )dnl + +define(LONGCODE_BEGIN,
    )
    +define(LONGCODE_END,
    ) + +define(FOOTER,


    CCTools CCTOOLS_VERSION released on CCTOOLS_RELEASE_DATE)dnl + +define(TABLE_START,)dnl +define(ROW,)dnl +define(COL,
    )dnl +define(TABLE_END,
    )dnl +define(CALLOUT,`
    $1
    ')dnl diff -Nru cctools-7.0.22/doc/man/manual_man.h cctools-7.1.2/doc/man/manual_man.h --- cctools-7.0.22/doc/man/manual_man.h 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/manual_man.h 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,41 @@ +define(HEADER,.TH "$1" 1 "CCTOOLS_RELEASE_DATE" "CCTools CCTOOLS_VERSION" "Cooperative Computing Tools")dnl +define(SECTION,.SH $1 +.LP)dnl +define(SUBSECTION,.SS $1 +.LP)dnl +define(PARA,.PP)dnl +define(BOLD,\fB$1\fP)dnl +define(ITALIC,\fI$1\fP)dnl +define(CODE,\FC$1\FT)dnl +define(LINK,$1 (BOLD($2)))dnl +define(MANUAL,BOLD($1))dnl +define(MANPAGE,BOLD($1($2)))dnl +define(LIST_BEGIN)dnl +define(LIST_ITEM,`.IP \(bu 4 +$1')dnl +define(LIST_END)dnl +define(PARAM,<$1>)dnl +define(OPTIONS_BEGIN,.LP)dnl +define(OPTION_ITEM,.TP +.B \ $1 +. +)dnl +define(OPTION_PAIR,.TP +.BI \ $1 \ PARAM($2) +. +)dnl +define(OPTION_TRIPLET,.TP +BOLD($1)`,' BOLD(-\-$2)`='ITALIC(PARAM($3)) +. +)dnl +define(OPTIONS_END)dnl +define(LONGCODE_BEGIN,.fam C +.nf +.nh +.IP "" 8)dnl +define(LONGCODE_END,.fi +.hy +.fam +.P)dnl +define(FOOTER)dnl +dnl diff -Nru cctools-7.0.22/doc/man/manual_md.h cctools-7.1.2/doc/man/manual_md.h --- cctools-7.0.22/doc/man/manual_md.h 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/manual_md.h 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,38 @@ + +changequote([,]) + +define(HEADER,[#] $1(1))dnl +define(SECTION,[##] $1)dnl +define(SUBSECTION,[###] $1)dnl +define(SUBSUBSECTION,[####] $1)dnl + +changequote + +define(PARA,)dnl +define(LINK,[$1]($2))dnl +define(MANUAL,LINK($1,$2))dnl +define(MANPAGE,LINK($1($2),$1.md))dnl +define(BOLD,**$1**)dnl +define(ITALIC,_$1_)dnl +define(CODE,**$1**)dnl + + +define(LIST_BEGIN,) +define(LIST_ITEM,- $1) +define(LIST_END,) + +define(SPACE, ) +define(HALFTAB, ) +define(TAB,HALFTAB()HALFTAB()) +define(PARAM,<$1>) + +define(OPTIONS_BEGIN,LIST_BEGIN) +define(OPTION_ITEM,LIST_ITEM(BOLD($1) ))dnl +define(OPTION_PAIR,LIST_ITEM(BOLD($1 $2) ))dnl +define(OPTION_TRIPLET,LIST_ITEM(BOLD($1 --$2 PARAM($3)) ))dnl +define(OPTIONS_END,LIST_END) + +define(LONGCODE_BEGIN,changequote([,])[changequote([,])```changequote]changequote) +define(LONGCODE_END,changequote([,])[changequote([,])```changequote]changequote) + +define(FOOTER,CCTools CCTOOLS_VERSION released on CCTOOLS_RELEASE_DATE)dnl diff -Nru cctools-7.0.22/doc/man/md/.gitignore cctools-7.1.2/doc/man/md/.gitignore --- cctools-7.0.22/doc/man/md/.gitignore 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/man/md/.gitignore 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1 @@ +*.md diff -Nru cctools-7.0.22/doc/man/parrot_cp.m4 cctools-7.1.2/doc/man/parrot_cp.m4 --- cctools-7.0.22/doc/man/parrot_cp.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/parrot_cp.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -include(manual.h)dnl -HEADER(parrot_cp) - -SECTION(NAME) -BOLD(parrot_cp) - a replacement for CODE(cp) that provides higher performance when dealing -with remote files via CODE(parrot_run). - -SECTION(SYNOPSIS) -CODE(BOLD(parrot_cp [options] ... sources ... PARAM(dest))) - -SECTION(DESCRIPTION) - -CODE(parrot_cp) is a drop-in replacement for the Unix CODE(cp) command. -It provides better performance when copying files to or from remote storage -systems by taking advantage of whole-file transfer rather than copying files -block-by-block. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_ITEM(`-f, --force')Forcibly remove target before copying. -OPTION_ITEM(`-i, --interactive')Interactive mode: ask before overwriting. -OPTION_ITEM(-r) Same as -R -OPTION_ITEM(`-R, --recursive')Recursively copy directories. -OPTION_ITEM(`-s, --symlinks')Make symbolic links instead of copying files. -OPTION_ITEM(`-l, --hardlinks' )Make hard links instead of copying files. -OPTION_ITEM(`-u, --update-only')Update mode: Copy only if source is newer than target. -OPTION_ITEM(`-v, --version')Verbose mode: Show names of files copied. -OPTION_ITEM(`-h, --help')Help: Show these options. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To use parrot_cp you can either call the code directly: - -LONGCODE_BEGIN -% parrot_run tcsh -% parrot_cp /tmp/mydata /chirp/server.nd.edu/joe/data -% exit -LONGCODE_END - -or alias calls to CODE(cp) with calls to CODE(parrot_cp): - -LONGCODE_BEGIN -% parrot_run bash -% alias cp parrot_cp -% cp -r /chirp/server.nd.edu/joe /tmp/joe -% exit -LONGCODE_END - - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_PARROT - -FOOTER diff -Nru cctools-7.0.22/doc/man/parrot_getacl.m4 cctools-7.1.2/doc/man/parrot_getacl.m4 --- cctools-7.0.22/doc/man/parrot_getacl.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/parrot_getacl.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -include(manual.h)dnl -HEADER(parrot_getacl) - -SECTION(NAME) -BOLD(parrot_getacl) - get ACL information for Parrot filesystem - -SECTION(SYNOPSIS) -CODE(BOLD(parrot_getacl PARAM(path))) - -SECTION(DESCRIPTION) -CODE(parrot_getacl) utilizes BOLD(Parrot) system calls to retrieve the access -control list (ACL) information for the filesystem located at the specified -PARAM(path). -PARA -Note, this program only works if it is executed under BOLD(Parrot) and if the -underlying filesystem supports ACLs. - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) -Get ACL for BOLD(Chirp) directory: - -LONGCODE_BEGIN -% parrot_run parrot_getacl /chirp/student00.cse.nd.edu/ -LONGCODE_END - -SECTION(COPYRIGHT) -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_PARROT - -FOOTER diff -Nru cctools-7.0.22/doc/man/parrot_locate.m4 cctools-7.1.2/doc/man/parrot_locate.m4 --- cctools-7.0.22/doc/man/parrot_locate.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/parrot_locate.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ -include(manual.h)dnl -HEADER(parrot_locate) - -SECTION(NAME) -BOLD(parrot_locate) - provides the true location of the data stored in a named file. - -SECTION(SYNOPSIS) -CODE(BOLD(parrot_locate path)) - -SECTION(DESCRIPTION) - -CODE(parrot_locate) utilises BOLD(parrot) system calls to identify where the data stored as the file -at CODE(PARAM(path)) is actually located. For example, running CODE(parrot_locate) on a file stored in a -BOLD(chirp) multi-volume will return the server name and file path on the server where the data is. -Running it on a file stored in BOLD(hdfs) will return the list of chunk servers storing the file. -PARA -Note that CODE(parrot_locate) varies depending on the underlying system. Most systems return output -in the form "CODE(PARAM(server):PARAM(real path))", but that output is not guaranteed. - - -SECTION(OPTIONS) - -CODE(parrot_locate) has no options. - - -SECTION(ENVIRONMENT VARIABLES) -Environment variables required by CODE(parrot_locate) are system dependent. -Most systems do not use or require any. Refer to the specific system's documentation -for more information. - - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To check the location of a file stored in chirp: - -LONGCODE_BEGIN -% parrot_run parrot_locate /chirp/server.nd.edu/joe/data - server.nd.edu:/chirp/server.nd.edu/joe/data -LONGCODE_END - -or a file stored in a chirp multi-volume - -LONGCODE_BEGIN -% parrot_run parrot_locate /multi/server.nd.edu@multivol/data - datastore01.nd.edu:multivol/data/ttmtteotsznxewoj -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_PARROT - -FOOTER diff -Nru cctools-7.0.22/doc/man/parrot_lsalloc.m4 cctools-7.1.2/doc/man/parrot_lsalloc.m4 --- cctools-7.0.22/doc/man/parrot_lsalloc.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/parrot_lsalloc.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ -include(manual.h)dnl -HEADER(parrot_lsalloc) - -SECTION(NAME) -BOLD(parrot_lsalloc) - list current status of a space allocation - -SECTION(SYNOPSIS) -CODE(BOLD(parrot_lsalloc [path])) - -SECTION(DESCRIPTION) - -CODE(parrot_lsalloc) examines a given directory, determines if it is -contained within a space allocation, and then displays the allocation -size and the current usage. As the name suggests, the command only runs -correctly inside of the Parrot virtual file system, on file servers where space allocation is enabled. -PARA -The BOLD(path) argument gives the directory to examine. -If none is given, the current directory is assumed. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_ITEM(-h)Show help text. -OPTIONS_END - - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. -If the command is attempted on a filesystem that does not support -space allocation, it will give the following error: - -LONGCODE_BEGIN -parrot_lsalloc: This filesystem does not support allocations. -LONGCODE_END - -SECTION(EXAMPLES) - -To list a space allocation on a Chirp server: - -LONGCODE_BEGIN -% parrot_run bash -% cd /chirp/myserver.somewhere.edu -% parrot_lsalloc bigdir -/chirp/myserver.somewhere.edu/bigdir -10 GB TOTAL -1 GB INUSE -9 GB AVAIL -% exit -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_PARROT - -FOOTER diff -Nru cctools-7.0.22/doc/man/parrot_md5.m4 cctools-7.1.2/doc/man/parrot_md5.m4 --- cctools-7.0.22/doc/man/parrot_md5.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/parrot_md5.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -include(manual.h)dnl -HEADER(parrot_md5) - -SECTION(NAME) -BOLD(parrot_md5) - returns the BOLD(MD5) checksum of a file, generated on the remote system if possible. - -SECTION(SYNOPSIS) -CODE(BOLD(parrot_md5 PARAM(path))) - -SECTION(DESCRIPTION) - -CODE(parrot_md5) returns the BOLD(MD5) checksum of the file stored at PARAM(path). If possible -it calls a native function of the remote system to get the checksum, without requiring the transfer -of the file's contents to the user's machine. -If the filesystem does not support the checksum function internally, -it is computed by the user-level program in the normal fashion. - -SECTION(OPTIONS) -CODE(parrot_md5) has no options. - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To retrieve the BOLD(MD5) checksum of a file stored on a BOLD(chirp) server: - -LONGCODE_BEGIN -% parrot_run parrot_md5 /chirp/server.nd.edu/joe/data - d41d8cd98f00b204e9800998ecf8427e data -LONGCODE_END - - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_PARROT - -FOOTER diff -Nru cctools-7.0.22/doc/man/parrot_mkalloc.m4 cctools-7.1.2/doc/man/parrot_mkalloc.m4 --- cctools-7.0.22/doc/man/parrot_mkalloc.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/parrot_mkalloc.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -include(manual.h)dnl -HEADER(parrot_mkalloc) - -SECTION(NAME) -BOLD(parrot_mkalloc) - create a directory with a space allocation - -SECTION(SYNOPSIS) -CODE(BOLD(parrot_mkalloc PARAM(path) PARAM(size))) - -SECTION(DESCRIPTION) - -CODE(parrot_mkalloc) creates a new directory with a space allocation. -As the name suggests, the command only runs correctly inside of the -Parrot virtual file system, on file servers where space allocation is enabled. -PARA -The BOLD(path) argument gives the new directory to create, and -the BOLD(size) argument indicates how large the space allocation should be. -The latter may use metric units such as K, M, B, etc to indicate kilobytes, -megabytes, gigabytes, and so forth. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_ITEM(-h)Show help text. -OPTIONS_END - - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. -If the command is attempted on a filesystem that does not support -space allocation, it will give the following error: - -LONGCODE_BEGIN -parrot_mkalloc: This filesystem does not support allocations. -LONGCODE_END - -SECTION(EXAMPLES) - -To create a space allocation of ten gigabytes on a Chirp server: - -LONGCODE_BEGIN -% parrot_run bash -% cd /chirp/myserver.somewhere.edu -% parrot_mkalloc bigdir 10G -% exit -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_PARROT - -FOOTER diff -Nru cctools-7.0.22/doc/man/parrot_namespace.m4 cctools-7.1.2/doc/man/parrot_namespace.m4 --- cctools-7.0.22/doc/man/parrot_namespace.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/parrot_namespace.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -include(manual.h)dnl -HEADER(parrot_namespace) - -SECTION(NAME) -BOLD(parrot_namespace) - run a command in a modified namespace. - -SECTION(SYNOPSIS) -CODE(BOLD(parrot_cp [options] PARAM(command))) - -SECTION(DESCRIPTION) - -CODE(parrot_namespace) detects whether it is already running under Parrot -and either forks a new mount namespace in the existing Parrot session or -simply executes CODE(parrot_run). For applications that only need to make -mount-related changes, CODE(parrot_namespace) is a drop-in replacement -for CODE(parrot_run) that automatically handles nested invocations. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_ITEM(`-M, --mount /foo=/bar')Mount (redirect) CODE(/foo) -to CODE(/bar) (CODE(PARROT_MOUNT_STRING)) -OPTION_ITEM(`-m, --ftab-file ')Use CODE() as a -mountlist (CODE(PARROT_MOUNT_FILE)) -OPTION_TRIPLET(-l, ld-path, path)Path to ld.so to use. -OPTION_ITEM(`--parrot-path')Path to CODE(parrot_run) (CODE(PARROT_PATH)) -OPTION_ITEM(`-v, --version')Show version number -OPTION_ITEM(`-h, --help')Help: Show these options -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To run Parrot under Parrot with a modified mount environment, -use CODE(parrot_namespace) - -LONGCODE_BEGIN -% parrot_namespace -M /tmp=/tmp/job01 sh -% parrot_mount --unmount /tmp # not allowed -LONGCODE_END - -Now in the same shell, we can call CODE(parrot_namespace) regardless -of whether we're already running under Parrot or not. - -LONGCODE_BEGIN -% parrot_namespace -m mountfile foo -LONGCODE_END - - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_PARROT - -FOOTER diff -Nru cctools-7.0.22/doc/man/parrot_package_create.m4 cctools-7.1.2/doc/man/parrot_package_create.m4 --- cctools-7.0.22/doc/man/parrot_package_create.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/parrot_package_create.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ -include(manual.h)dnl -HEADER(parrot_package_create)dnl - -SECTION(NAME) -BOLD(parrot_package_create) - generate a package based on the accessed files and the preserved environment variables - -SECTION(SYNOPSIS) -CODE(BOLD(parrot_package_create [options])) - -SECTION(DESCRIPTION) -After recording the accessed files and environment variables of one program with the help of the CODE(--name-list) parameter and the CODE(--env-list) of CODE(parrot_run), CODE(parrot_package_create) can generate a package containing all the accessed files. You can also add the dependencies recorded in a new namelist file into an existing package. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_TRIPLET(-a, add, path)The path of an existing package. -OPTION_TRIPLET(-e, env-list, path)The path of the environment variables. -OPTION_ITEM(` --new-env')The relative path of the environment variable file under the package. -OPTION_TRIPLET(-n, name-list, path)The path of the namelist list. -OPTION_TRIPLET(-p, package-path, path)The path of the package. -OPTION_TRIPLET(-d, debug, flag)Enable debugging for this sub-system. -OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). -OPTION_ITEM(`-h, --help')Show the help info. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) -To generate the package corresponding to BOLD(namelist) and BOLD(envlist): -LONGCODE_BEGIN -% parrot_package_create --name-list namelist --env-list envlist --package-path /tmp/package -LONGCODE_END -After executing this command, one package with the path of BOLD(/tmp/package) will be generated. -PARA - -Here is a short instruction about how to make use of CODE(parrot_run), CODE(parrot_package_create) and CODE(parrot_package_run) -to generate one package for your experiment and repeat your experiment within your package. -PARA -Step 1: Run your program under CODE(parrot_run) and using BOLD(--name-list) and BOLD(--env-list) parameters to -record the filename list and environment variables. -LONGCODE_BEGIN -% parrot_run --name-list namelist --env-list envlist /bin/bash -LONGCODE_END -After the execution of this command, you can run your program inside CODE(parrot_run). At the end of step 1, one file named BOLD(namelist) containing all the accessed file names and one file named BOLD(envlist) containing environment variables will be generated. -After everything is done, exit CODE(parrot_run): -LONGCODE_BEGIN -% exit -LONGCODE_END -PARA -Step 2: Using CODE(parrot_package_create) to generate a package. -LONGCODE_BEGIN -% parrot_package_create --name-list namelist --env-path envlist --package-path /tmp/package -LONGCODE_END -At the end of step 2, one package with the path of BOLD(/tmp/package) will be generated. -PARA -Step 3: Repeat your program within your package. -LONGCODE_BEGIN -% parrot_package_run --package-path /tmp/package --shell-type bash ... -LONGCODE_END -After the execution of this command, one shell will be returned, where you can repeat your original program (Please replace BOLD(--shell-type) parameter with the shell type you actually used). After everything is done, exit CODE(parrot_package_run): -LONGCODE_BEGIN -% exit -LONGCODE_END - -You can also add the dependencies recorded in a new namelist file, BOLD(namelist1), into an existing package: -LONGCODE_BEGIN -% parrot_package_create --name-list namelist1 --env-list envlist1 --new-env envlist1 --add /tmp/package -LONGCODE_END -After executing this command, all the new dependencies mentioned in BOLD(namelist1) will be added into BOLD(/tmp/package), the new envlist, BOLD(envlist1), will also be added into BOLD(/tmp/package) with the name specified by the BOLD(--new-env) option. - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_PARROT -FOOTER diff -Nru cctools-7.0.22/doc/man/parrot_package_run.m4 cctools-7.1.2/doc/man/parrot_package_run.m4 --- cctools-7.0.22/doc/man/parrot_package_run.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/parrot_package_run.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -include(manual.h)dnl -HEADER(parrot_package_run)dnl - -SECTION(NAME) -BOLD(parrot_package_run) - repeat a program within the package with the help of CODE(parrot_run) - -SECTION(SYNOPSIS) -CODE(BOLD(parrot_package_run --package-path your-package-path [command])) - -SECTION(DESCRIPTION) -If CODE(parrot_run) is used to repeat one experiment, one mountlist must be created so that the file access request of your program can be redirected into the package. CODE(parrot_package_run) is used to create the mountlist and repeat your program within the package with the help of CODE(parrot_run) and BOLD(mountlist). If no command is given, a /bin/sh shell will be returned. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_ITEM(`-p, --package-path')The path of the package. -OPTION_ITEM(`-e, --env-list')The path of the environment file, each line is in the format of =. (Default: package-path/env_list) -OPTION_ITEM(`-h, --help')Show this help message. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) -To repeat one program within one package BOLD(/tmp/package) in a BOLD(bash) shell: -LONGCODE_BEGIN -% parrot_package_run --package-path /tmp/package /bin/bash -LONGCODE_END -After the execution of this command, one shell will be returned, where you can repeat your original program. After everything is done, exit CODE(parrot_package_run): -LONGCODE_BEGIN -% exit -LONGCODE_END -You can also directly set your command as the arguments of CODE(parrot_package_run). In this case, CODE(parrot_package_run) will exit automatically after the command is finished, and you do not need to use CODE(exit) to exit. However, your command must belong to the original command set executed inside CODE(parrot_run) and preserved by CODE(parrot_package_create). -LONGCODE_BEGIN -% parrot_package_run --package-path /tmp/package ls -al -LONGCODE_END - -Here is a short instruction about how to make use of CODE(parrot_run), CODE(parrot_package_create) and CODE(parrot_package_run) -to generate one package for your experiment and repeat your experiment within your package. -PARA -Step 1: Run your program under CODE(parrot_run) and using BOLD(--name-list) and BOLD(--env-list) parameters to -record the filename list and environment variables. -LONGCODE_BEGIN -% parrot_run --name-list namelist --env-list envlist /bin/bash -LONGCODE_END -After the execution of this command, you can run your program inside CODE(parrot_run). At the end of step 1, one file named BOLD(namelist) containing all the accessed file names and one file named BOLD(envlist) containing environment variables will be generated. -After everything is done, exit CODE(parrot_run): -LONGCODE_BEGIN -% exit -LONGCODE_END -PARA -Step 2: Using CODE(parrot_package_create) to generate a package. -LONGCODE_BEGIN -% parrot_package_create --name-list namelist --env-path envlist --package-path /tmp/package -LONGCODE_END -At the end of step 2, one package with the path of BOLD(/tmp/package) will be generated. -PARA -Step 3: Repeat your program within your package. -LONGCODE_BEGIN -% parrot_package_run --package-path /tmp/package /bin/bash -LONGCODE_END -After the execution of this command, one shell will be returned, where you can repeat your original program. After everything is done, exit CODE(parrot_package_run): -LONGCODE_BEGIN -% exit -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_PARROT - -FOOTER diff -Nru cctools-7.0.22/doc/man/parrot_run.m4 cctools-7.1.2/doc/man/parrot_run.m4 --- cctools-7.0.22/doc/man/parrot_run.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/parrot_run.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,128 +0,0 @@ -include(manual.h)dnl -HEADER(parrot_run)dnl - -SECTION(NAME) -BOLD(parrot_run) - run a program in the Parrot virtual file system - -SECTION(SYNOPSIS) -CODE(BOLD(parrot_run [parrot_options] program [program_options])) - -SECTION(DESCRIPTION) -CODE(parrot_run) runs an application or a shell inside the Parrot virtual filesystem. Parrot redirects the application's system calls to remote storage systems. Parrot currently supports the following remote storage systems: HTTP, GROW, FTP, GridFTP, iRODS, HDFS, XRootd, Chirp. This list may vary depending on how Parrot was built. Run CODE(parrot -h) to see exactly what support is available on your system. -PARA -Parrot works by trapping the application's system calls through the CODE(ptrace) debugging interface. It does not require any special privileges to install or run, so it is useful to ordinary users that wish to access data across wide area networks. The CODE(ptrace) debugging interface does have some cost, so applications may run slower, depending on how many I/O operations they perform. -PARA -For complete details with examples, see the LINK(Parrot User's Manual,http://ccl.cse.nd.edu/software/manuals/parrot.html) - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_PAIR(--check-driver,driver) Check for the presence of a given driver (e.g. http, ftp, etc) and return success if it is currently enabled. -OPTION_TRIPLET(-a,chirp-auth,unix|hostname|ticket|globus|kerberos)Use this Chirp authentication method. May be invoked multiple times to indicate a preferred list, in order. -OPTION_TRIPLET(-b, block-size, bytes)Set the I/O block size hint. -OPTION_TRIPLET(-c, status-file, file)Print exit status information to file. -OPTION_ITEM(-C, channel-auth)Enable data channel authentication in GridFTP. -OPTION_TRIPLET(-d, debug, flag)Enable debugging for this sub-system. -OPTION_ITEM(-D, --no-optimize)Disable small file optimizations. -OPTION_ITEM(--dynamic-mounts) Enable the use of parot_mount in this session. -OPTION_ITEM(-F, --with-snapshots)Enable file snapshot caching for all protocols. -OPTION_ITEM(-f, --no-follow-symlinks)Disable following symlinks. -OPTION_TRIPLET(-G,gid,num)Fake this gid; Real gid stays the same. -OPTION_ITEM(-h, --help)Show this screen. -OPTION_ITEM(--helper)Enable use of helper library. -OPTION_TRIPLET(-i, tickets, files)Comma-delimited list of tickets to use for authentication. -OPTION_TRIPLET(-I, debug-level-irods, num)Set the iRODS driver internal debug level. -OPTION_ITEM(-K, --with-checksums)Checksum files where available. -OPTION_ITEM(-k, --no-checksums)Do not checksum files. -OPTION_TRIPLET(-l, ld-path, path)Path to ld.so to use. -OPTION_TRIPLET(-m, ftab-file, file)Use this file as a mountlist. -OPTION_TRIPLET(-M, mount, /foo=/bar)Mount (redirect) /foo to /bar. -OPTION_TRIPLET(-e, env-list, path)Record the environment variables. -OPTION_TRIPLET(-n, name-list, path)Record all the file names. -OPTION_ITEM(--no-set-foreground)Disable changing the foreground process group of the session. -OPTION_TRIPLET(-N, hostname, name)Pretend that this is my hostname. -OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). -OPTION_TRIPLET(-O, debug-rotate-max, bytes)Rotate debug files of this size. -OPTION_TRIPLET(-p, proxy, host:port)Use this proxy server for HTTP requests. -OPTION_ITEM(-Q, --no-chirp-catalog)Inhibit catalog queries to list /chirp. -OPTION_TRIPLET(-r, cvmfs-repos, repos)CVMFS repositories to enable (PARROT_CVMFS_REPO). -OPTION_ITEM(--cvmfs-repo-switching) Allow repository switching with CVMFS. -OPTION_TRIPLET(-R, root-checksum, cksum)Enforce this root filesystem checksum, where available. -OPTION_ITEM(-s, --stream-no-cache)Use streaming protocols without caching. -OPTION_ITEM(-S, --session-caching)Enable whole session caching for all protocols. -OPTION_ITEM(--syscall-disable-debug)Disable tracee access to the Parrot debug syscall. -OPTION_TRIPLET(-t, tempdir, dir)Where to store temporary files. -OPTION_TRIPLET(-T, timeout, time)Maximum amount of time to retry failures. -time)Maximum amount of time to retry failures. -OPTION_ITEM(--time-stop) Stop virtual time at midnight, Jan 1st, 2001 UTC. -OPTION_ITEM(--time-warp) Warp virtual time starting from midnight, Jan 1st, 2001 UTC. -OPTION_TRIPLET(-U, uid, num)Fake this unix uid; Real uid stays the same. -OPTION_TRIPLET(-u, username, name)Use this extended username. -OPTION_ITEM(--fake-setuid)Track changes from setuid and setgid. -OPTION_ITEM(--valgrind)Enable valgrind support for Parrot. -OPTION_ITEM(-v, --version)Display version number. -OPTION_ITEM(--is-running)Test is Parrot is already running. -OPTION_TRIPLET(-w, work-dir, dir)Initial working directory. -OPTION_ITEM(-W, --syscall-table)Display table of system calls trapped. -OPTION_ITEM(-Y, --sync-write)Force synchronous disk writes. -OPTION_ITEM(-Z, --auto-decompress)Enable automatic decompression on .gz files. -OPTION_PAIR(--disable-service,service) Disable a compiled-in service (e.g. http, cvmfs, etc.) -OPTIONS_END - -SECTION(ENVIRONMENT VARIABLES) -CODE(parrot_run) sets the environment variable CODE(PARROT_ENABLED) to the value CODE(1) -for its child processes. This makes it possible to set a visible flag in your shell prompt -when CODE(parrot_run) is enabled. - -SECTION(EXIT STATUS) -CODE(parrot_run) returns the exit status of the process that it runs. -If CODE(parrot_run) is unable to start the process, it will return non-zero. - -SECTION(EXAMPLES) -To access a single remote file using CODE(vi): -LONGCODE_BEGIN -% parrot_run vi /anonftp/ftp.gnu.org/pub/README -LONGCODE_END - -You can also run an entire shell inside of Parrot, like this: -LONGCODE_BEGIN -% parrot_run bash -% cd /anonftp/ftp.gnu.org/pub -% ls -la -% cat README -% exit -LONGCODE_END - -To see the list of available Chirp servers around the world: -LONGCODE_BEGIN -% parrot_run ls -la /chirp -LONGCODE_END - -Parrot can record the names of all the accessed files and the environment variables during the execution process of one program, like this: -LONGCODE_BEGIN -% parrot_run --name-list list.txt --env-list envlist ls ~ -LONGCODE_END -The environment variables at the starting moment of your program will be recorded into BOLD(envlist). The absolute paths of all the accessed files, together with the system call types, will be recorded into BOLD(list.txt). For example, the file BOLD(/usr/bin/ls) is accessed using the BOLD(stat) system call, like this: -LONGCODE_BEGIN -% /usr/bin/ls|stat -LONGCODE_END - -SECTION(NOTES ON DOCKER) - -Docker by default blocks ptrace, the system call on which parrot relies. To -run parrot inside docker, the container needs to be started using the -CODE(--security-opt seccomp=unconfined) command line argument. For -example: - -LONGCODE_BEGIN - docker run --security-opt seccomp=unconfined MY-DOCKER-IMAGE -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_PARROT - -FOOTER diff -Nru cctools-7.0.22/doc/man/parrot_setacl.m4 cctools-7.1.2/doc/man/parrot_setacl.m4 --- cctools-7.0.22/doc/man/parrot_setacl.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/parrot_setacl.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -include(manual.h)dnl -HEADER(parrot_setacl) - -SECTION(NAME) -BOLD(parrot_setacl) - set ACL information for Parrot filesystem - -SECTION(SYNOPSIS) -CODE(BOLD(parrot_setacl PARAM(path) PARAM(subject) PARAM(rights))) - -SECTION(DESCRIPTION) -CODE(parrot_setacl) utilizes BOLD(Parrot) system calls to set the access -control list (ACL) information for the directory specified by PARAM(path). The -PARAM(subject) argument refers to the entity to authorize, while the -PARAM(rights) argument is one of the following: read, write, admin, none. -PARA -Note, this program only works if it is executed under MANPAGE(parrot_run,1) and if the -underlying filesystem supports ACLs. - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) -Set read and list permissions for subject "unix:user" on a BOLD(Chirp) directory: - -LONGCODE_BEGIN -% parrot_run parrot_setacl /chirp/student00.cse.nd.edu/user unix:user rl -LONGCODE_END - -SECTION(COPYRIGHT) -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_PARROT - -FOOTER diff -Nru cctools-7.0.22/doc/man/parrot_timeout.m4 cctools-7.1.2/doc/man/parrot_timeout.m4 --- cctools-7.0.22/doc/man/parrot_timeout.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/parrot_timeout.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ -include(manual.h)dnl -HEADER(parrot_timeout) - -SECTION(NAME) -BOLD(parrot_timeout) - changes or resets the master timeout for the current BOLD(parrot) session - -SECTION(SYNOPSIS) -CODE(BOLD(parrot_timeout PARAM(time))) - -SECTION(DESCRIPTION) - -CODE(parrot_timeout) changes the master timeout for the current BOLD(parrot) session to -PARAM(time). If PARAM(time) was not given, it resets it to the default value (5 minutes if -an interactive session or 1 hour for a non-interactive session). - -SECTION(OPTIONS) - -CODE(parrot_timeout) has no options. - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To change the master timeout to 5 hours: - -LONGCODE_BEGIN -% parrot_run tcsh -% parrot_timeout 5h -% ./my_executable -% exit -LONGCODE_END - -To change it to 30 seconds for one program and then reset it to the default value -LONGCODE_BEGIN -% parrot_run tcsh -% parrot_timeout 40m -% ./my_executable -% parrot_timeout -% ./my_second_executable -% exit -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_PARROT - -FOOTER diff -Nru cctools-7.0.22/doc/man/parrot_whoami.m4 cctools-7.1.2/doc/man/parrot_whoami.m4 --- cctools-7.0.22/doc/man/parrot_whoami.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/parrot_whoami.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -include(manual.h)dnl -HEADER(parrot_whoami) - -SECTION(NAME) -BOLD(parrot_whoami) - returns the user's credentials (id and authentication method) from the perspective of the system being accessed. - -SECTION(SYNOPSIS) -CODE(BOLD(parrot_whoami PARAM(path))) - -SECTION(DESCRIPTION) - -CODE(parrot_whoami) interrogates the system being accessed at PARAM(path) and returns the user's id -from the perspective of that system as well as the authentication method being used. The specific -results depend on the system being accessed. -PARA -If PARAM(path) is not provided the current working directory is used. - -SECTION(OPTIONS) - -CODE(parrot_whoami) has no options. - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To get the user's credentials when accessing a remote chirp server: -LONGCODE_BEGIN -% parrot_run parrot_whoami /chirp/server.nd.edu/joe_data/data -unix:joe -LONGCODE_END - -If you're working within a remote directory, PARAM(path) is not necessary: -LONGCODE_BEGIN -% parrot_run tcsh -% cd /chirp/server.nd.edu/joe_data/data -% parrot_whoami -unix:joe -% exit -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_PARROT - -FOOTER diff -Nru cctools-7.0.22/doc/man/pbs_submit_workers.m4 cctools-7.1.2/doc/man/pbs_submit_workers.m4 --- cctools-7.0.22/doc/man/pbs_submit_workers.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/pbs_submit_workers.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ -include(manual.h)dnl -HEADER(pbs_submit_workers)dnl - -SECTION(NAME) -BOLD(pbs_submit_workers) - submit work_queue_worker to a PBS cluster. - -SECTION(SYNOPSIS) -CODE(BOLD(pbs_submit_workers [options] PARAM(servername) PARAM(port) PARAM(num-workers))) - -SECTION(DESCRIPTION) -CODE(pbs_submit_workers) schedules the execution of MANPAGE(work_queue_worker,1) -on the PBS batch system through its job submission interface, qsub. -The number of BOLD(work_queue_worker) scheduled and run is given by the BOLD(num-workers) -argument. - -The BOLD(servername) and BOLD(port) arguments specify the hostname and port number of the -master for the work_queue_worker to connect. These two arguments become optional when the -auto mode option is specified for work_queue_worker. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_ITEM(-M, name)Name of the preferred master for worker. -OPTION_PAIR(-N, name)Preferred project name for work_queue_worker to connect. -OPTION_PAIR(-c, cores)Set the number of cores each worker should use (0=auto). (default=1) -OPTION_PAIR(-C, catalog)Set catalog server for work_queue_worker to . format: HOSTNAME:PORT. -OPTION_PAIR(-t, seconds)Abort work_queue_worker after this amount of idle time (default=900s). -OPTION_PAIR(-d, subsystem)Enable debugging on worker for this subsystem (try -d all to start). -OPTION_PAIR(-w, size)Set TCP window size -OPTION_PAIR(-i, time)Set initial value for backoff interval when worker fails to connect to a master. (default=1s) -OPTION_PAIR(-b, time)Set maxmimum value for backoff interval when worker fails to connect to a master. (default=60s) -OPTION_PAIR(-z, size)Set available disk space threshold (in MB). When exceeded worker will clean up and reconnect. (default=100MB) -OPTION_PAIR(-A, arch)Set architecture string for the worker to report to master instead of the value in uname. -OPTION_PAIR(-O, os)Set operating system string for the worker to report to master instead of the value in uname. -OPTION_PAIR(-s, path)Set the location for creating the working directory of the worker. -OPTION_PAIR(-j)Use job array to submit workers. -OPTION_PAIR(-p, parameters)PBS qsub parameters. -OPTION_ITEM(-h)Show help message. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Submit 10 worker instances to run on PBS and connect to a specific master: - -LONGCODE_BEGIN -pbs_submit_workers master.somewhere.edu 9123 10 -LONGCODE_END - -Submit 10 work_queue_worker instances to run on PBS in auto mode with their -preferred project name set to Project_A and abort timeout set to 3600 seconds: - -LONGCODE_BEGIN -pbs_submit_workers -a -t 3600 -M Project_A 10 -LONGCODE_END - -SECTION(COPYRIGHT) -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_WORK_QUEUE - -FOOTER diff -Nru cctools-7.0.22/doc/man/replica_exchange.m4 cctools-7.1.2/doc/man/replica_exchange.m4 --- cctools-7.0.22/doc/man/replica_exchange.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/replica_exchange.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ -include(manual.h)dnl -HEADER(replica_exchange) - -SECTION(NAME) -BOLD(replica_exchange) - Work Queue application for running replica exchange simulations using ProtoMol - -SECTION(SYNOPSIS) -CODE(BOLD(replica_exchange [options] PARAM(pdb_file) PARAM(psf_file) PARAM(par_file) PARAM(min_temp) PARAM(max_temp) PARAM(num_replicas))) - -SECTION(DESCRIPTION) -BOLD(replica_exchange) is a Work Queue application for running replica exchange simulations using the ProtoMol simulation package. The application supports both barrier and non-barrier based runs. -PARA -The barrier based run transfers the configuration files and input data for each replica to the connected MANPAGE(work_queue_worker) instances, runs the ProtoMol simulation package, and gathers the output, at each Monte Carlo step. It waits for the completion of simulation of all replicas at each step before proceeding to the next step and, therefore, incorporates a barrier at each step. At the end of every step, it randomly picks two neigboring replicas, applies the metropolis criterion, and if it is satisfied, swaps the parameters of the two replicas and continues simulations. -PARA -The non-barrier based run is equivalent to the barrier run in the output and results produced. However, it avoids the use of a barrier by running multiple monte carlo steps for each replica until that replica is picked to attempt an exchange. By default, the application will run using this non-barrier implementation. -PARA -The BOLD(pdb_file), BOLD(psf_file), and BOLD(par_file) arguments specify the input files required for the simulation run. The BOLD(min_temp) and BOLD(max_temp) specify the temperature range in which the replicas are simulated. The number of replicas simulated is given by BOLD(num_replicas). -PARA -BOLD(replica_exchange) can be run on any machine accesible to work_queue_worker instances. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_PAIR(-n, name)Specify a project name for using exclusive work_queue_worker instances. -OPTION_PAIR(-x, filename)Specify the name of the xyz file for output. -OPTION_PAIR(-d, filename)Specify the name of the dcd file for output. -OPTION_PAIR(-m, number)Specify the number of monte carlo steps. Default = 100. -OPTION_PAIR(-s, number)Specify the number of molecular dynamics steps. Default = 10000. -OPTION_PAIR(-p, path)Specify path for storing output files. -OPTION_ITEM(-q)Assign closer temperature values to replicas in the first and last quartile. -OPTION_ITEM(-i)Assume ProtoMol is installed and available in PATH on worker site. -OPTION_ITEM(-b)Use barrier in waiting for all replicas to finish their steps before attempting exchange. -OPTION_ITEM(-l)Print debuggging information. -OPTION_ITEM(-h)Show this help message. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(ENVIRONMENT VARIABLES) - -If the cctools are installed in a non-system directory, such as your -home directory, then you must set the CODE(PYTHONPATH) environment -so that the workqueue python module can be found. For example: - -LONGCODE_BEGIN -% setenv PYTHONPATH $HOME/cctools/lib/python2.4/site-packages -LONGCODE_END - -SECTION(EXAMPLES) - -To run a replica exchange experiment with 84 replicas in the temperature range 278 to 400K using the sample input files: -LONGCODE_BEGIN -% replica_exchange ww_exteq_nowater1.pdb ww_exteq_nowater1.psf par_all27_prot_lipid.inp 278 400 84 -LONGCODE_END - -To run a replica exchange experiment, with project name ReplExch, over 250 Monte Carlo steps running 1000 molecular dynamics steps -and involving 84 replicas in the temperature range 278 to 400K using the sample input files: -LONGCODE_BEGIN -% replica_exchange -N ReplExch -m 250 -s 1000 ww_exteq_nowater1.pdb ww_exteq_nowater1.psf par_all27_prot_lipid.inp 278 400 84 -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_WORK_QUEUE - -FOOTER diff -Nru cctools-7.0.22/doc/man/resource_monitor_histograms.m4 cctools-7.1.2/doc/man/resource_monitor_histograms.m4 --- cctools-7.0.22/doc/man/resource_monitor_histograms.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/resource_monitor_histograms.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ -include(manual.h)dnl -HEADER(resource_monitor_histograms) - -SECTION(NAME) -BOLD(resource_monitor_histograms) - create HTML pages and graphs of resource monitor data - -SECTION(SYNOPSIS) -CODE(BOLD(resource_monitor_histograms [options] -L monitor_data_file_list output_directory [workflow_name])) -CODE(BOLD(resource_monitor_histograms [options] output_directory < monitor_data_file_list [workflow_name])) - -SECTION(DESCRIPTION) - -BOLD(resource_monitor_histograms) is a tool to visualize resource usage as -reported by BOLD(resource_monitor). BOLD(resource_monitor_histograms) expects -a file listing the paths of summary files (-L option or from standard -input). Results are written to BOLD(output_directory) in the form of several -webpages showing histograms and statistics per resource. - -SECTION(ARGUMENTS) - -SUBSECTION(Input Options) -OPTIONS_BEGIN -OPTION_PAIR(-L, monitor_data_file_list)File with one summary file path per line. -OPTIONS_END - -SUBSECTION(Output Options) -OPTIONS_BEGIN -OPTION_PAIR(` output_directory')The path in which to store the visualizations. See index.html for the root of the visualization. -OPTION_ITEM(` workflow_name')Optional name to include to describe the workflow being visualized. -OPTION_PAIR(-f,str)Select which fields for the histograms. Default is "cores,memory,disk". Available fields are: -OPTIONS_END - -LONGCODE_BEGIN -bandwidth -bytes_read -bytes_received -bytes_send -bytes_written -cores -cpu_time -disk -max_concurrent_processes -memory -swap_memory -total_files -total_processes -virtual_memory -wall_time -LONGCODE_END - -SUBSECTION(Debugging Options) -OPTIONS_BEGIN -OPTION_TRIPLET(-d, debug, subsystem)Enable debugging for this subsystem. -OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). -OPTION_ITEM(`--verbose')Display runtime progress on stdout. -OPTIONS_END - - -SECTION(EXAMPLES) - -Most common usage: - -LONGCODE_BEGIN -% find my_summary_files_directory -name "*.summary" > summary_list -% resource_monitor_histograms -L summary_list my_histograms my_workflow_name -% # open my_histograms/index.html -LONGCODE_END - -Splitting on categories, generating only resident memory related histograms: - -LONGCODE_BEGIN -% resource_monitor_histograms -f memory -L summary_list my_histograms my_workflow_name -% # open my_histograms/index.html -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -FOOTER diff -Nru cctools-7.0.22/doc/man/resource_monitor.m4 cctools-7.1.2/doc/man/resource_monitor.m4 --- cctools-7.0.22/doc/man/resource_monitor.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/resource_monitor.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,343 +0,0 @@ -include(manual.h)dnl -HEADER(resource_monitor) - -SECTION(NAME) -BOLD(resource_monitor) - monitors the cpu, memory, io, and disk usage of a tree of processes. - -SECTION(SYNOPSIS) -CODE(BOLD(resource_monitor [options] -- command [command-options])) - -SECTION(DESCRIPTION) - -BOLD(resource_monitor) is a tool to monitor the computational -resources used by the process created by the command given as an -argument, and all its descendants. The monitor works -'indirectly', that is, by observing how the environment changed -while a process was running, therefore all the information -reported should be considered just as an estimate (this is in -contrast with direct methods, such as ptrace). It works on -Linux, and can be used automatically by -CODE(makeflow) and CODE(work queue) applications. - -Additionally, the user can specify maximum resource limits in the -form of a file, or a string given at the command line. If one of -the resources goes over the limit specified, then the monitor -terminates the task, and reports which resource went over the -respective limits. - -In systems that support it, BOLD(resource_monitor) wraps some -libc functions to obtain a better estimate of the resources used. - -Currently, the monitor does not support interactive applications. That -is, if a process issues a read call from standard input, and standard -input has not been redirected, then the tree process is -terminated. This is likely to change in future versions of the tool. - -BOLD(resource_monitor) generates up to three log files: a summary file encoded -as json with the maximum values of resource used, a time-series that shows the -resources used at given time intervals, and a list of files that were opened -during execution. - -The summary file is a JSON document with the following fields. Unless -indicated, all fields are an array with two values, a number that describes the -measurement, and a string describing the units (e.g., CODE([ measurement, "units" ])). - -LONGCODE_BEGIN -command: the command line given as an argument -start: time at start of execution, since the epoch -end: time at end of execution, since the epoch -exit_type: one of "normal", "signal" or "limit" (a string) -signal: number of the signal that terminated the process - Only present if exit_type is signal -cores: maximum number of cores used -cores_avg: number of cores as cpu_time/wall_time -exit_status: final status of the parent process -max_concurrent_processes: the maximum number of processes running concurrently -total_processes: count of all of the processes created -wall_time: duration of execution, end - start -cpu_time: user+system time of the execution -virtual_memory: maximum virtual memory across all processes -memory: maximum resident size across all processes -swap_memory: maximum swap usage across all processes -bytes_read: amount of data read from disk -bytes_written: amount of data written to disk -bytes_received: amount of data read from network interfaces -bytes_sent: amount of data written to network interfaces -bandwidth: maximum bandwidth used -total_files: total maximum number of files and directories of - all the working directories in the tree -disk: size of all working directories in the tree -limits_exceeded: resources over the limit with -l, -L options (JSON object) -peak_times: seconds from start when a maximum occured (JSON object) -snapshots: List of intermediate measurements, identified by - snapshot_name (JSON object) -LONGCODE_END - -The time-series log has a row per time sample. For each row, the columns have the following meaning (all columns are integers): - -LONGCODE_BEGIN -wall_clock the sample time, since the epoch, in microseconds -cpu_time accumulated user + kernel time, in microseconds -cores current number of cores used -max_concurrent_processes concurrent processes at the time of the sample -virtual_memory current virtual memory size, in MB -memory current resident memory size, in MB -swap_memory current swap usage, in MB -bytes_read accumulated number of bytes read, in bytes -bytes_written accumulated number of bytes written, in bytes -bytes_received accumulated number of bytes received, in bytes -bytes_sent accumulated number of bytes sent, in bytes -bandwidth current bandwidth, in bps -total_files current number of files and directories, across all - working directories in the tree -disk current size of working directories in the tree, in MB -LONGCODE_END - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_TRIPLET(-d,debug,subsystem)Enable debugging for this subsystem. -OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). -OPTION_ITEM(`-v,--version')Show version string. -OPTION_ITEM(`-h,--help')Show help text. -OPTION_TRIPLET(-i,interval,n)Maximum interval between observations, in seconds (default=1). -OPTION_ITEM(--pid=pid)Track pid instead of executing a command line (warning: less precise measurements). -OPTION_ITEM(--accurate-short-processes)Accurately measure short running processes (adds overhead). -OPTION_TRIPLET(-c,sh,str)Read command line from CODE(str), and execute as '/bin/sh -c CODE(str)'. -OPTION_TRIPLET(-l,limits-file,file)Use maxfile with list of var: value pairs for resource limits. -OPTION_TRIPLET(-L,limits,string)String of the form `"var: value, var: value\' to specify resource limits. (Could be specified multiple times.) -OPTION_ITEM(`-f, --child-in-foreground')Keep the monitored process in foreground (for interactive use). -OPTION_TRIPLET(-O,with-output-files,template)Specify CODE(template) for log files (default=CODE(resource-pid)). -OPTION_ITEM(--with-time-series)Write resource time series to CODE(template.series). -OPTION_ITEM(--with-inotify)Write inotify statistics of opened files to default=CODE(template.files). -OPTION_TRIPLET(-V,verbatim-to-summary,str)Include this string verbatim in a line in the summary. (Could be specified multiple times.) -OPTION_ITEM(--measure-dir=dir)Follow the size of dir. By default the directory at the start of execution is followed. Can be specified multiple times. See --without-disk-footprint below. -OPTION_ITEM(--follow-chdir)Follow processes' current working directories. -OPTION_ITEM(--without-disk-footprint)Do not measure working directory footprint. Overrides --measure-dir. -OPTION_ITEM(--no-pprint)Do not pretty-print summaries. -OPTION_ITEM(--snapshot-events=file)Configuration file for snapshots on file patterns. See below. - - -OPTIONS_END - -The limits file should contain lines of the form: - -LONGCODE_BEGIN -resource: max_value -LONGCODE_END - -It may contain any of the following fields, in the same units as -defined for the summary file: - -CODE(max_concurrent_processes), -CODE(`wall_time, cpu_time'), -CODE(`virtual_memory, resident_memory, swap_memory'), -CODE(`bytes_read, bytes_written'), -CODE(`workdir_number_files_dirs, workdir_footprint') - -SECTION(ENVIRONMENT VARIABLES) - -LIST_BEGIN -LIST_ITEM(CODE(BOLD(CCTOOLS_RESOURCE_MONITOR_HELPER)) Location of the desired helper library to wrap libc calls. If not provided, a version of the helper library is packed with the resource_monitor executable.) -LIST_END - -SECTION(EXIT STATUS) - -LIST_BEGIN -LIST_ITEM 0 The command exit status was 0, and the monitor process ran without errors. -LIST_ITEM 1 The command exit status was non-zero, and the monitor process ran without errors. -LIST_ITEM 2 The command was terminated because it ran out of resources (see options -l, -L). -LIST_ITEM 3 The command did not run succesfully because the monitor process had an error. -LIST_END - -To obtain the exit status of the original command, see the generated file with extension CODE(.summary). - - -SECTION(SNAPSHOTS) - -The resource_monitor can be directed to take snapshots of the resources used -according to the files created by the processes monitored. The typical use of -monitoring snapshots is to set a watch on a log file, and generate a snapshot -when a line in the log matches a pattern. To activate the snapshot facility, -use the command line argument --snapshot-events=CODE(file), in which CODE(file) is a -JSON-encoded document with the following format: - -LONGCODE_BEGIN - { - "FILENAME": { - "from-start":boolean, - "from-start-if-truncated":boolean, - "delete-if-found":boolean, - "events": [ - { - "label":"EVENT_NAME", - "on-create":boolean, - "on-truncate":boolean, - "on-pattern":"REGEXP", - "count":integer - }, - { - "label":"EVENT_NAME", - ... - } - ] - }, - "FILENAME": { - ... - } -LONGCODE_END - -All fields but BOLD(label) are optional. - -LIST_BEGIN - LIST_ITEM FILENAME: Name of a file to watch. - LIST_ITEM from-start:boolean If FILENAME exits when the monitor starts running, process from line 1. Default: false, as monitored processes may be appending to already existing files. - LIST_ITEM from-start-if-truncated If FILENAME is truncated, process from line 1. Default: true, to account for log rotations. - LIST_ITEM delete-if-found Delete FILENAME when found. Default: false - - LIST_ITEM events: -LIST_BEGIN - LIST_ITEM label Name that identifies the snapshot. Only alphanumeric, -, - and _ characters are allowed. - LIST_ITEM on-create Take a snapshot every time the file is created. Default: false - LIST_ITEM on-delete Take a snapshot every time the file is deleted. Default: false - LIST_ITEM on-truncate Take a snapshot when the file is truncated. Default: false - LIST_ITEM on-pattern Take a snapshot when a line matches the regexp pattern. Default: none - LIST_ITEM count Maximum number of snapshots for this label. Default: -1 (no limit) -LIST_END -LIST_END - -The snapshots are recorded both in the main resource summary file under the key -BOLD(snapshots), and as a JSON-encoded document, with the extension -.snapshot.NN, in which NN is the sequence number of the snapshot. The snapshots -are identified with the key "snapshot_name", which is a comma separated string -of BOLD(label)`('count`)' elements. A label corresponds to a name that -identifies the snapshot, and the count is the number of times an event was -triggered since last check (several events may be triggered, for example, when -several matching lines are written to the log). Several events may have the same label, and exactly one of on-create, on-truncate, and on-pattern should be specified per event. - - -SECTION(EXAMPLES) - -To monitor 'sleep 10', at 2 second intervals, with output to sleep-log.summary, and with a monitor alarm at 5 seconds: - -LONGCODE_BEGIN -% resource_monitor --interval=2 -L"wall_time: 5" -o sleep-log -- sleep 10 -LONGCODE_END - -Execute 'date' and redirect its output to a file: - -LONGCODE_BEGIN -% resource_monitor --sh 'date > date.output' -LONGCODE_END - -It can also be run automatically from makeflow, by specifying the '-M' flag: - -LONGCODE_BEGIN -% makeflow --monitor=some-log-dir Makeflow -LONGCODE_END - -In this case, makeflow wraps every command line rule with the -monitor, and writes the resulting logs per rule in the -CODE(some-log-dir) directory - -Additionally, it can be run automatically from Work Queue: - -LONGCODE_BEGIN -q = work_queue_create_monitoring(port); -work_queue_enable_monitoring(q, some-log-dir, /*kill tasks on exhaustion*/ 1); -LONGCODE_END - -wraps every task with the monitor and writes the resulting summaries in -CODE(some-log-file). - -SECTION(SNAPSHOTS EXAMPLES) - -Generate a snapshot when "my.log" is created: - -LONGCODE_BEGIN -{ - "my.log": - { - "events":[ - { - "label":"MY_LOG_STARTED", - "on-create:true - } - ] - } -} -LONGCODE_END - -Generate snapshots every time a line is added to "my.log": - -LONGCODE_BEGIN -{ - "my.log": - { - "events":[ - { - "label":"MY_LOG_LINE", - "on-pattern":"^.*$" - } - ] - } -} -LONGCODE_END - -Generate snapshots on particular lines of "my.log": - -LONGCODE_BEGIN -{ - "my.log": - { - "events":[ - { - "label":"started", - "on-pattern":"^# START" - }, - { - "label":"end-of-start", - "on-pattern":"^# PROCESSING" - } - { - "label":"end-of-processing", - "on-pattern":"^# ANALYSIS" - } - ] - } -} -LONGCODE_END - -The monitor can also generate a snapshot when a particular file is created. The -monitor can detected this file, generate a snapshot, and delete the file to get -ready for the next snapshot. In the following example the monitor takes a -snapshot everytime the file CODE(please-take-a-snapshot) is created: - -LONGCODE_BEGIN -{ - "please-take-a-snapshot": - { - "delete-if-found":true, - "events":[ - { - "label":"manual-snapshot", - "on-create":true - } - ] - } -} -LONGCODE_END - - -SECTION(BUGS AND KNOWN ISSUES) - -LIST_BEGIN -LIST_ITEM(The monitor cannot track the children of statically linked executables.) -LIST_ITEM(The option --snapshot-events assumes that the watched files are written by appending to them. File truncation may not be detected if between checks the size of the file is larger or equal to the size after truncation. File checks are fixed at intervals of 1 second.) -LIST_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -FOOTER diff -Nru cctools-7.0.22/doc/man/resource_monitor_visualizer.m4 cctools-7.1.2/doc/man/resource_monitor_visualizer.m4 --- cctools-7.0.22/doc/man/resource_monitor_visualizer.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/resource_monitor_visualizer.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -include(manual.h)dnl -HEADER(resource_monitor_visualizer) - -SECTION(NAME) -BOLD(resource_monitor_visualizer.py) - create HTML pages and graphs of resource monitor data - -SECTION(SYNOPSIS) -CODE(BOLD(resource_monitor_visualizer.py data_path destination_path workflow_name)) - -SECTION(DESCRIPTION) - -BOLD(resource_monitor_visualizer.py) has been deprecated in favor of resource_monitor_histograms. - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -FOOTER diff -Nru cctools-7.0.22/doc/man/sand_align_kernel.m4 cctools-7.1.2/doc/man/sand_align_kernel.m4 --- cctools-7.0.22/doc/man/sand_align_kernel.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/sand_align_kernel.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -include(manual.h)dnl -HEADER(sand_align_kernel) - -SECTION(NAME) -BOLD(sand_align_kernel) - align candidate sequences sequentially - -SECTION(SYNOPSIS) -CODE(BOLD(sand_align_kernel [options] [input file])) - -SECTION(DESCRIPTION) - -BOLD(sand_align_kernel) aligns candidate sequences sequentially. -It is not normally called by the user, but is invoked by -MANPAGE(sand_align_master,1) for each sequential step of a distributed -alignment workload. The options to BOLD(sand_align_kernel) control -the type of alignment (Smith-Waterman, Prefix-Suffix, Banded, etc) -and the quality threshhold for reporting alignments. These options -are typically passed in by giving the BOLD(-e) option to BOLD(sand_align_master). -PARA -BOLD(sand_align_kernel) reads a list of sequences -from the given input file, or from standard input if none is given. -The sequences are in the compressed fasta format produced -by MANPAGE(sand_compress_reads,1). The first sequence in the input -is compared against all following sequences until a separator line. -Following the separator, the next sequence is compared against -all following sequences until the following separator, and so on. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_PAIR(-a,sw|ps|banded)Specify the type of alignment: sw (Smith-Waterman), ps (Prefix-Suffix), or banded. If not specified, default is banded. -OPTION_PAIR(-o,ovl|ovl_new|align|matrix)Specify how each alignment should be output: ovl (Celera V5, V6 OVL format), ovl_new (Celera V7 overlap format), align (display the sequences and alignment graphically) or matrix (display the dynamic programming matrix). MANPAGE(sand_align_master,1) expects the ovl output format, which is the default. The other formats are useful for debugging. -OPTION_PAIR(-m,length)Minimum aligment length (default: 0). -OPTION_PAIR(-q,quality)Minimum match quality (default: 1.00) -OPTION_ITEM(-x)Delete input file after completion. -OPTION_PAIR(-d,subsystem)Enable debugging for this subsystem. (Try BOLD(-d all) to start. -OPTION_ITEM(-v)Show program version. -OPTION_ITEM(-h)Display this message. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Users do not normally invoke sand_align_kernel directly. Instead, pass arguments by using the BOLD(-e) option to MANPAGE(sand_align_master,1). For example, to specify a minimum alignment length of 5 and a minimum quality of 0.25: - -LONGCODE_BEGIN -% sand_align_master sand_align_kernel -e "-m 5 -q 0.25" mydata.cand mydata.cfa mydata.ovl -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_SAND - -FOOTER diff -Nru cctools-7.0.22/doc/man/sand_align_master.m4 cctools-7.1.2/doc/man/sand_align_master.m4 --- cctools-7.0.22/doc/man/sand_align_master.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/sand_align_master.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -include(manual.h)dnl -HEADER(sand_align_master) - -SECTION(NAME) -BOLD(sand_align_master) - align candidate sequences in parallel - -SECTION(SYNOPSIS) -CODE(BOLD(sand_align_master [options] sand_align_kernel candidates.cand sequences.cfa overlaps.ovl)) - -SECTION(DESCRIPTION) - -BOLD(sand_align_master) is the second step in the SAND assembler. -It reads in a list of sequences and a list of candidate pairs -to consider, generated by MANPAGE(sand_filter_master,1). -It then performs all of the comparisons and produces a list -of overlaps (in OVL format) that exceed a quality threshhold. -PARA -This program uses the Work Queue system to distributed tasks -among processors. After starting BOLD(sand_align_master), -you must start a number of MANPAGE(work_queue_worker,1) processes -on remote machines. The workers will then connect back to the -master process and begin executing tasks. The actual alignments -are performed by MANPAGE(sand_align_kernel,1) on each machine. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_PAIR(-p,port)Port number for work queue master to listen on. (default: 9123) -OPTION_PAIR(-n,number)Maximum number of candidates per task. (default is 10000) -OPTION_PAIR(-e,args)Extra arguments to pass to the alignment program. -OPTION_PAIR(-d,subsystem)Enable debugging for this subsystem. (Try BOLD(-d all) to start.) -OPTION_PAIR(-F,mult)Work Queue fast abort multiplier.(default is 10.) -OPTION_PAIR(-Z,file)Select port at random and write it out to this file. -OPTION_PAIR(-o,file)Send debugging to this file. -OPTION_ITEM(-v)Show version string. -OPTION_ITEM(-h)Show help text. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Suppose that you begin with a compressed FASTA file (CODE(mydata.cfa)) -and a list of candidate reads (CODE(mydata.cand)) generated by MANPAGE(sand_filter_master,1). -First, start a single MANPAGE(work_queue_worker,1) process in the background. -Then, invoke MANPAGE(sand_align_master) as follows: - -LONGCODE_BEGIN -% work_queue_worker localhost 9123 & -% sand_align_master sand_align_kernel mydata.cand mydata.cfa mydata.ovl -LONGCODE_END - -To speed up the process, run more MANPAGE(work_queue_worker) processes -on other machines, or use MANPAGE(condor_submit_workers,1) or MANPAGE(sge_submit_workers,1) to start hundreds of workers in your local batch system. - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_SAND - -FOOTER diff -Nru cctools-7.0.22/doc/man/sand_compress_reads.m4 cctools-7.1.2/doc/man/sand_compress_reads.m4 --- cctools-7.0.22/doc/man/sand_compress_reads.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/sand_compress_reads.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -include(manual.h)dnl -HEADER(sand_compress_reads) - -SECTION(NAME) -BOLD(sand_compress_reads) - compress sequence data - -SECTION(SYNOPSIS) -CODE(BOLD(sand_compress_reads [-qcivh] [infile] [outfile])) - -SECTION(DESCRIPTION) - -BOLD(sand_compress_reads) reads sequence data in standard FASTA format, -and produces output in the compressed FASTA (cfa) format used by -the MANPAGE(sand_filter_master,1) and MANPAGE(sand_align_master,1). -PARA -If the output file is omitted, standard output is used. -if the input file is omitted, standard input is used. -After completing the compression, this program will output a summary -line of sequences and bytes compressed. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_ITEM(-q)Quiet mode: suppress summary line. -OPTION_ITEM(-c)Remove Celera read ids if data came from the Celera gatekeeper. -OPTION_ITEM(-i)Remove Celera read ids but leave internal ids if the data came from the Celera gatekeeper. -OPTION_ITEM(-h)Display version information. -OPTION_ITEM(-v)Show help text. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To compress CODE(mydata.fasta) into CODE(mydata.cfa): - -LONGCODE_BEGIN -% sand_compress_reads mydata.fasta mydata.cfa -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_SAND - -FOOTER diff -Nru cctools-7.0.22/doc/man/sand_filter_kernel.m4 cctools-7.1.2/doc/man/sand_filter_kernel.m4 --- cctools-7.0.22/doc/man/sand_filter_kernel.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/sand_filter_kernel.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -include(manual.h)dnl -HEADER(sand_filter_kernel) - -SECTION(NAME) -BOLD(sand_filter_kernel) - filter read sequences sequentially - -SECTION(SYNOPSIS) -CODE(BOLD(sand_filter_kernel [options] PARAM(sequence file) [second sequence file])) - -SECTION(DESCRIPTION) - -BOLD(sand_filter_kernel) filters a list of genomic sequences, -and produces a list of candidate pairs for more detailed alignment. -It is not normally called by the user, but is invoked by -MANPAGE(sand_filter_master,1) for each sequential step of a distributed -alignment workload. -PARA -If one sequence file is given, BOLD(sand_filter_kernel) will look for -similarities between all sequences in that file. If given two files, -it will look for similarities between sequences in the first file and -the second file. The output is a list of candidate pairs, listing the -name of the candidate sequences and a starting position for alignment. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_PAIR(-s,size)Size of "rectangle" for filtering. You can determine -the size dynamically by passing in d rather than a number. -OPTION_PAIR(-r,file)A meryl file of repeat mers to be ignored. -OPTION_PAIR(-k,size)The k-mer size to use in candidate selection (default is 22). -OPTION_PAIR(-w,number)The minimizer window size to use in candidate selection (default is 22). -OPTION_PAIR(-o,filename)The output file. Default is stdout. -OPTION_PAIR(-d,subsystem)Enable debug messages for this subsystem. Try BOLD(-d all) to start. -OPTION_ITEM(-v)Show version string. -OPTION_ITEM(-h)Show help screen. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Users do not normally invoke BOLD(sand_filter_kernel) directly. Instead, options such as the k-mer size, minimizer window, and repeat file may be specified by the same arguments to MANPAGE(sand_filter_master,1) instead. For example, to run a filter with a k-mer size of 20, window size of 24, and repeat file of CODE(mydata.repeats): - -LONGCODE_BEGIN -% sand_filter_master -k 20 -w 24 -r mydata.repeats mydata.cfa mydata.cand -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_SAND - -FOOTER diff -Nru cctools-7.0.22/doc/man/sand_filter_master.m4 cctools-7.1.2/doc/man/sand_filter_master.m4 --- cctools-7.0.22/doc/man/sand_filter_master.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/sand_filter_master.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -include(manual.h)dnl -HEADER(sand_filter_master) - -SECTION(NAME) -BOLD(sand_filter_master) - filter sequences for alignment in parallel - -SECTION(SYNOPSIS) -CODE(BOLD(sand_filter_master [options] sequences.cfa candidates.cand)) - -SECTION(DESCRIPTION) - -BOLD(sand_filter_master) is the first step in the SAND assembler. -It reads in a body of sequences, and uses a linear-time algorithm -to produce a list of candidate sequences to be aligned in detail -by MANPAGE(sand_align_master,1). -PARA -This program uses the Work Queue system to distributed tasks -among processors. After starting BOLD(sand_filter_master), -you must start a number of MANPAGE(work_queue_worker,1) processes -on remote machines. The workers will then connect back to the -master process and begin executing tasks. The actual filtering -is performed by MANPAGE(sand_filter_kernel,1) on each machine. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_PAIR(-p,port)Port number for queue master to listen on. (default: 9123) -OPTION_PAIR(-s,size)Number of sequences in each filtering task. (default: 1000) -OPTION_PAIR(-r,file)A meryl file of repeat mers to be filtered out. -OPTION_PAIR(-R,n)Automatically retry failed jobs up to n times. (default: 100) -OPTION_PAIR(-k,size)The k-mer size to use in candidate selection (default is 22). -OPTION_PAIR(-w,size)The minimizer window size. (default is 22). -OPTION_ITEM(-u)If set, do not unlink temporary binary output files. -OPTION_PAIR(-c,file)Checkpoint filename; will be created if necessary. -OPTION_PAIR(-d,flag)Enable debugging for this subsystem. (Try BOLD(-d all) to start.) -OPTION_PAIR(-F,number)Work Queue fast abort multiplier. (default is 10.) -OPTION_PAIR(-Z,file)Select port at random and write it out to this file. -OPTION_PAIR(-o,file)Send debugging to this file. -OPTION_ITEM(-v)Show version string -OPTION_ITEM(-h)Show this help screen -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -If you begin with a FASTA formatted file of reads, -used MANPAGE(sand_compress_reads,1) to produce a -compressed FASTA (cfa) file. To run filtering sequentially, -start a single MANPAGE(work_queue_worker,1) process in the background. -Then, invoke BOLD(sand_filter_master). - -LONGCODE_BEGIN -% sand_compress_reads mydata.fasta mydata.cfa -% work_queue_worker localhost 9123 & -% sand_filter_master mydata.cfa mydata.cand -LONGCODE_END - -To speed up the process, run more MANPAGE(work_queue_worker,1) processes -on other machines, or use MANPAGE(condor_submit_workers,1) or MANPAGE(sge_submit_workers,1) to start hundreds of workers in your local batch system. - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_SAND - -FOOTER diff -Nru cctools-7.0.22/doc/man/sand_uncompress_reads.m4 cctools-7.1.2/doc/man/sand_uncompress_reads.m4 --- cctools-7.0.22/doc/man/sand_uncompress_reads.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/sand_uncompress_reads.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -include(manual.h)dnl -HEADER(sand_uncompress_reads) - -SECTION(NAME) -BOLD(sand_uncompress_reads) - uncompress sequence data - -SECTION(SYNOPSIS) -CODE(BOLD(sand_uncompress_reads [-qvh] [infile] [outfile])) - -SECTION(DESCRIPTION) - -BOLD(sand_uncompress_reads) reads sequence data in compressed FASTA format (cfa) used by MANPAGE(sand_filter_master,1) and MANPAGE(sand_align_master,1). -and produces output in the standard FASTA format. -PARA -If the output file is omitted, standard output is used. -if the input file is omitted, standard input is used. -After completing the compression, this program will output a summary -line of sequences and bytes compressed. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_ITEM(-q)Quiet mode: suppress summary line. -OPTION_ITEM(-h)Display version information. -OPTION_ITEM(-v)Show help text. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To uncompress CODE(mydata.cfa) into CODE(mydata.fasta): - -LONGCODE_BEGIN -% sand_uncompress_reads mydata.cfa mydata.fa -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_SAND - -FOOTER diff -Nru cctools-7.0.22/doc/man/sge_submit_workers.m4 cctools-7.1.2/doc/man/sge_submit_workers.m4 --- cctools-7.0.22/doc/man/sge_submit_workers.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/sge_submit_workers.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ -include(manual.h)dnl -HEADER(sge_submit_workers)dnl - -SECTION(NAME) -BOLD(sge_submit_workers) - submit work_queue_worker to a SUN Grid Engine (SGE). - -SECTION(SYNOPSIS) -LONGCODE_BEGIN -CODE(BOLD(sge_submit_workers [options] PARAM(servername) PARAM(port) PARAM(num-workers))) -LONGCODE_END - -when auto mode is not enabled for the worker, or - -LONGCODE_BEGIN -CODE(BOLD(sge_submit_workers [options] PARAM(num-workers))) -LONGCODE_END - -when auto mode is enabled for the worker. - -SECTION(DESCRIPTION) -CODE(sge_submit_workers) schedules the execution of MANPAGE(work_queue_worker,1) -on the SUN Grid Engine (SGE) through its job submission interface, qsub. -The number of BOLD(work_queue_worker) scheduled and run is given by the BOLD(num-workers) -argument. - -The BOLD(servername) and BOLD(port) arguments specify the hostname and port number of the -master for the work_queue_worker to connect. These two arguments become optional when the -auto mode option is specified for work_queue_worker. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_TRIPLET(-M, master-name, name)Name of the preferred master for worker. (auto mode enabled) -OPTION_TRIPLET(-N, name, name)Preferred project name for work_queue_worker to connect. (auto mode enabled) -OPTION_TRIPLET(-C, catalog, catalog)Set catalog server for work_queue_worker to . format: HOSTNAME:PORT. -OPTION_TRIPLET(-t, timeout, seconds)Abort work_queue_worker after this amount of idle time (default=900s). -OPTION_TRIPLET(-d, debug, subsystem)Enable debugging on worker for this subsystem (try -d all to start). -OPTION_TRIPLET(-w, tcp-window-size, size)Set TCP window size -OPTION_TRIPLET(-i, min-backoff, time)Set initial value for backoff interval when worker fails to connect to a master. (default=1s) -OPTION_TRIPLET(-b, max-backoff, time)Set maxmimum value for backoff interval when worker fails to connect to a master. (default=60s) -OPTION_TRIPLET(-z, disk-threshold, size)Set available disk space threshold (in MB). When exceeded worker will clean up and reconnect. (default=100MB) -OPTION_TRIPLET(-A, arch, arch)Set architecture string for the worker to report to master instead of the value in uname. -OPTION_TRIPLET(-O, os, os)Set operating system string for the worker to report to master instead of the value in uname. -OPTION_TRIPLET(-s, workdir, path)Set the location for creating the working directory of the worker. -OPTION_TRIPLET(-P,--password, file)Password file to authenticate workers to master. -OPTION_PAIR(--cores, cores)Set the number of cores each worker should use (0=auto). (default=1) -OPTION_PAIR(--memory, size)Manually set the amonut of memory (in MB) reported by this worker. -OPTION_PAIR(--disk, size)Manually set the amount of disk (in MB) reported by this worker. -OPTION_ITEM(`-j')Use job array to submit workers. -OPTION_PAIR(-p, parameters)SGE qsub parameters. -OPTION_ITEM(`-h,--help')Show help message. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Submit 10 worker instances to run on SGE and connect to a specific master: - -LONGCODE_BEGIN -sge_submit_workers master.somewhere.edu 9123 10 -LONGCODE_END - -Submit 10 work_queue_worker instances to run on SGE in auto mode with their -preferred project name set to Project_A and abort timeout set to 3600 seconds: - -LONGCODE_BEGIN -sge_submit_workers -a -t 3600 -M Project_A 10 -LONGCODE_END - -SECTION(COPYRIGHT) -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_WORK_QUEUE - -FOOTER diff -Nru cctools-7.0.22/doc/man/split_fasta.m4 cctools-7.1.2/doc/man/split_fasta.m4 --- cctools-7.0.22/doc/man/split_fasta.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/split_fasta.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -include(manual.h)dnl -HEADER(split_fasta) - -SECTION(NAME) -BOLD(split_fasta) - Split a fasta file according to sequence and character counts - -SECTION(SYNOPSIS) -CODE(BOLD(split_fasta query_granularity character_granularity fasta_file)) - -SECTION(DESCRIPTION) -BOLD(split_fasta) is a simple script to split a fasta file according to user provided parameters. The script iterates over the given file, generating a new sub_file called input.i each time the contents of the previous file (input.(i-1)) exceed the number of queries given by query_granularity or the number of characters given by character_granularity. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(ENVIRONMENT VARIABLES) - -SECTION(EXAMPLES) - -To split a fasta file smallpks.fa into pieces no larger than 500 queries and with no piece receiving additional sequences if it exceeds 10000 characters we would do: -LONGCODE_BEGIN -python split_fasta 500 10000 smallpks.fa -LONGCODE_END -This would generate files input.0, input.1, ..., input.N where N is the number of appropriately constrained files necessary to contain all sequences in smallpks.fa. - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_MAKEFLOW - -FOOTER diff -Nru cctools-7.0.22/doc/man/starch.m4 cctools-7.1.2/doc/man/starch.m4 --- cctools-7.0.22/doc/man/starch.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/starch.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,135 +0,0 @@ -include(manual.h)dnl -HEADER(starch) - -SECTION(NAME) -BOLD(starch) - STandalone application ARCHiver - -SECTION(SYNOPSIS) -CODE(BOLD(starch [options] PARAM(sfx_path))) - -SECTION(DESCRIPTION) - -BOLD(Starch) is a script that creates standalone application archives in the -form of self-extracting executables (CODE(SFX)). Users may specify the command, -executables, libraries, data, and environment scripts associated with the -application by specifying the appropriate command line options or by using a -configuration file. BOLD(starch) is particularly useful for distributed -computing, in that it makes an executable portable across different -operating system variants. - -SECTION(OPTIONS) - -To create a CODE(SFX), simply specify the name of the CODE(SFX) to create along -with the PARAM(command) to execute and any other dependencies such as -PARAM(executables), PARAM(libraries), PARAM(data), or PARAM(environment) -scripts. -PARA -If a PARAM(command) is specified, but no PARAM(executable) is passed, then the -first token in the PARAM(command) will be used as the executable. -PARA -By default, CODE(starch) will use CODE(ldd) to detect any necessary libraries -from the specified set of PARAM(executables) and include them in the CODE(SFX). -OPTIONS_BEGIN -OPTION_ITEM(-A)Do not automatically detect library dependencies. -OPTION_PAIR(-C, cfg)Use configuration file. -OPTION_PAIR(-c, cmd)Specify command to execute. -OPTION_PAIR(-d, npath:opath)Add data (new path:old path). -OPTION_PAIR(-e, env)Add environment script. -OPTION_PAIR(-l, lib)Add library. -OPTION_PAIR(-x, exe)Add executable. -OPTION_ITEM(-h)Show help message and exit. -OPTION_ITEM(-v)Display verbose messages (default: False). -OPTIONS_END -Once a CODE(SFX) is generated, you can use it as a normal executable. - -SECTION(CONFIGURATION FILE) -The command line options may be stored in a configuration file and passed to -starch using the CODE(starch -C) option. The format of the configuration file is as -follows: -LONGCODE_BEGIN -[starch] -executables = echo date hostname -libraries = libz.so -data = hosts.txt:/etc/hosts localtime:/etc/localtime images:/usr/share/pixmaps -command = echo $(hostname) $(date $@) -LONGCODE_END - -SECTION(ENVIRONMENT VARIABLES) - -The following environment variables will affect the execution of the CODE(SFX) -generated by CODE(starch): - -SUBSECTION(SFX_DIR) -Determines the target directory where the CODE(SFX) will be extracted. By -default this is CODE(/tmp/$hostname.$user.$basename.dir). - -SUBSECTION(SFX_EXTRACT_ONLY) -Only extract the CODE(SFX). By default it is extracted and executed. - -SUBSECTION(SFX_EXTRACT_FORCE) -Extract the CODE(SFX) even if the CODE(SFX_DIR) exists. This is disabled by -default to as an optimization to avoid unnecessarily extracting. - -SUBSECTION(SFX_KEEP) -Keep extracted files. By default the files will be removed after execution. - -SUBSECTION(SFX_UNIQUE) - -Use CODE(mktempd) to generate a unique CODE(SFX_DIR) target directory. This -will prevent CODE(SFX_KEEP) from working properly since the names will change -in between invocations. - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Package the date program: -LONGCODE_BEGIN - $ starch -c date -x date date.sfx -LONGCODE_END - -Package the date program using a configuration file: -LONGCODE_BEGIN - $ cat data.cfg - [starch] - executables = date - command = date - $ starch -C date.cfg date.sfx -LONGCODE_END - -Run standalone date program with parameters: -LONGCODE_BEGIN - $ ./date.sfx +%s -LONGCODE_END - -Only extract the archive: -LONGCODE_BEGIN - $ env SFX_EXTRACT_ONLY=1 ./date.sfx -LONGCODE_END - -Run and keep extracted directory: -LONGCODE_BEGIN - $ env SFX_KEEP=1 ./date.sfx -LONGCODE_END - -Run with unique directory: -LONGCODE_BEGIN - $ env SFX_UNIQUE=1 ./date.sfx -LONGCODE_END - -Advanced example involving a complex shell command: -LONGCODE_BEGIN - $ starch -v -x tar -x rm -c 'tar_test() { for f in $@; do if ! tar xvf $f; then exit 1; fi; done; rm $@'; }; tar_test' extract_and_remove.sfx - $ ./extract_and_remove.sfx *.tar.gz -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_MAKEFLOW - -FOOTER diff -Nru cctools-7.0.22/doc/man/torque_submit_workers.m4 cctools-7.1.2/doc/man/torque_submit_workers.m4 --- cctools-7.0.22/doc/man/torque_submit_workers.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/torque_submit_workers.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ -include(manual.h)dnl -HEADER(torque_submit_workers)dnl - -SECTION(NAME) -BOLD(torque_submit_workers) - submit work_queue_worker to a Torque cluster. - -SECTION(SYNOPSIS) -CODE(BOLD(torque_submit_workers [options] PARAM(servername) PARAM(port) PARAM(num-workers))) - -SECTION(DESCRIPTION) -CODE(torque_submit_workers) schedules the execution of MANPAGE(work_queue_worker,1) -on the Torque batch system through its job submission interface, qsub. -The number of BOLD(work_queue_worker) scheduled and run is given by the BOLD(num-workers) -argument. - -The BOLD(servername) and BOLD(port) arguments specify the hostname and port number of the -master for the work_queue_worker to connect. These two arguments become optional when the -auto mode option is specified for work_queue_worker. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_ITEM(-M, name)Name of the preferred master for worker. -OPTION_PAIR(-N, name)Preferred project name for work_queue_worker to connect. -OPTION_PAIR(-c, cores)Set the number of cores each worker should use (0=auto). (default=1) -OPTION_PAIR(-C, catalog)Set catalog server for work_queue_worker to . format: HOSTNAME:PORT. -OPTION_PAIR(-t, seconds)Abort work_queue_worker after this amount of idle time (default=900s). -OPTION_PAIR(-d, subsystem)Enable debugging on worker for this subsystem (try -d all to start). -OPTION_PAIR(-w, size)Set TCP window size -OPTION_PAIR(-i, time)Set initial value for backoff interval when worker fails to connect to a master. (default=1s) -OPTION_PAIR(-b, time)Set maxmimum value for backoff interval when worker fails to connect to a master. (default=60s) -OPTION_PAIR(-z, size)Set available disk space threshold (in MB). When exceeded worker will clean up and reconnect. (default=100MB) -OPTION_PAIR(-A, arch)Set architecture string for the worker to report to master instead of the value in uname. -OPTION_PAIR(-O, os)Set operating system string for the worker to report to master instead of the value in uname. -OPTION_PAIR(-s, path)Set the location for creating the working directory of the worker. -OPTION_PAIR(-j)Use job array to submit workers. -OPTION_PAIR(-p, parameters)Torque qsub parameters. -OPTION_ITEM(-h)Show help message. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Submit 10 worker instances to run on Torque and connect to a specific master: - -LONGCODE_BEGIN -torque_submit_workers master.somewhere.edu 9123 10 -LONGCODE_END - -Submit 10 work_queue_worker instances to run on Torque in auto mode with their -preferred project name set to Project_A and abort timeout set to 3600 seconds: - -LONGCODE_BEGIN -torque_submit_workers -a -t 3600 -M Project_A 10 -LONGCODE_END - -SECTION(COPYRIGHT) -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) -SEE_ALSO_WORK_QUEUE - -FOOTER diff -Nru cctools-7.0.22/doc/man/wavefront_master.m4 cctools-7.1.2/doc/man/wavefront_master.m4 --- cctools-7.0.22/doc/man/wavefront_master.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/wavefront_master.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,124 +0,0 @@ -include(manual.h)dnl -HEADER(wavefront_master) - -SECTION(NAME) -BOLD(wavefront_master) - executes Wavefront workflow in parallel on distributed systems - -SECTION(SYNOPSIS) -CODE(BOLD(wavefront [options] PARAM(command) PARAM(xsize) PARAM(ysize) PARAM(inputdata) PARAM(outputdata))) - -SECTION(DESCRIPTION) - -BOLD(wavefront_master) computes a two dimensional recurrence relation. You -provide a function F (BOLD(PARAM(command))) that accepts the left (x), right -(y), and diagonal (d) values and initial values (BOLD(PARAM(inputdata))) for -the edges of the matrix. The output matrix, whose size is determined by -BOLD(PARAM(xsize)) and BOLD(PARAM(ysize)), will be stored in a file specified -by BOLD(PARAM(outputdata)). -PARA -BOLD(wavefront_master) uses the Work Queue system to distribute tasks among -processors. After starting BOLD(wavefront_master), you must start a number of -MANPAGE(work_queue_worker,1) processes on remote machines. The workers will -then connect back to the master process and begin executing tasks. - -SECTION(OPTIONS) - -OPTIONS_BEGIN -OPTION_ITEM(`-h, --help')Show this help screen -OPTION_ITEM(`-v, --version')Show version string -OPTION_TRIPLET(-d, debug, subsystem)Enable debugging for this subsystem. (Try -d all to start.) -OPTION_TRIPLET(-N, project-name, project)Set the project name to -OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). -OPTION_TRIPLET(-p, port, port)Port number for queue master to listen on. -OPTION_TRIPLET(-P, priority, num)Priority. Higher the value, higher the priority. -OPTION_TRIPLET(-Z, port-file, file)Select port at random and write it to this file. (default is disabled) -OPTION_PAIR(--work-queue-preferred-connection,connection)Indicate preferred connection. Chose one of by_ip or by_hostname. (default is by_ip) -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Suppose you have a program named CODE(function) that you want to use in the -Wavefont workflow computation. The program CODE(function), when invoked as -CODE(function a b c), should do some computations on files CODE(a), CODE(b) and -CODE(c) and produce some output on the standard output. -PARA -Before running BOLD(wavefront_master), you need to create a file, say -CODE(input.data), that lists initial values of the matrix (values on the left -and bottom edges), one per line: - -LONGCODE_BEGIN - 0 0 value.0.0 - 0 1 value.0.1 - ... - 0 n value.0.n - 1 0 value.1.0 - 2 0 value.2.0 - ... - n 0 value.n.0 -LONGCODE_END - -To run a Wavefront workflow sequentially, start a single -MANPAGE(work_queue_worker,1) process in the background. Then, invoke -BOLD(wavefront_master). The following example computes a 10 by 10 Wavefront -matrix: - -LONGCODE_BEGIN - % work_queue_worker localhost 9123 & - % wavefront_master function 10 10 input.data output.data -LONGCODE_END - -The framework will carry out the computations in the order of dependencies, and -print the results one by one (note that the first two columns are X and Y -indices in the resulting matrix) in the specified output file. Below is an -example of what the output file - CODE(output.data) would look like: - -LONGCODE_BEGIN - 1 1 value.1.1 - 1 2 value.1.2 - 1 3 value.1.3 - ... -LONGCODE_END - -To speed up the process, run more MANPAGE(work_queue_worker,1) processes on -other machines, or use MANPAGE(condor_submit_workers,1) or -MANPAGE(sge_submit_workers,1) to start hundreds of workers in your local batch -system. -PARA -The following is an example of adding more workers to execute a Wavefront -workflow. Suppose your BOLD(wavefront_master) is running on a machine named -barney.nd.edu. If you have access to login to other machines, you could simply -start worker processes on each one, like this: - -LONGCODE_BEGIN - % work_queue_worker barney.nd.edu 9123 -LONGCODE_END - -If you have access to a batch system like Condor, you can submit multiple -workers at once: - -LONGCODE_BEGIN - % condor_submit_workers barney.nd.edu 9123 10 - Submitting job(s).......... - Logging submit event(s).......... - 10 job(s) submitted to cluster 298. -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -LIST_BEGIN -LIST_ITEM(LINK(The Cooperative Computing Tools,"http://ccl.cse.nd.edu/software/manuals")) -LIST_ITEM(LINK(Wavefront User Manual,"http://ccl.cse.nd.edu/software/manuals/wavefront.html")) -LIST_ITEM(LINK(Work Queue User Manual,"http://ccl.cse.nd.edu/software/manuals/workqueue.html")) -LIST_ITEM(MANPAGE(work_queue_worker,1)) -LIST_ITEM(MANPAGE(condor_submit_workers,1)) -LIST_ITEM(MANPAGE(sge_submit_workers,1)) -LIST_END - -FOOTER diff -Nru cctools-7.0.22/doc/man/weaver.m4 cctools-7.1.2/doc/man/weaver.m4 --- cctools-7.0.22/doc/man/weaver.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/weaver.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ -include(manual.h)dnl -HEADER(weaver) - -SECTION(NAME) -BOLD(weaver) - workflow engine for executing distributed workflows - -SECTION(SYNOPSIS) -CODE(BOLD(weaver [options] PARAM(weaverfile))) - -SECTION(DESCRIPTION) - -BOLD(Weaver) is a high level interface to BOLD(makeflow). A -BOLD(weaver) input file is written in BOLD(python), with the -definition of functions to be applied on sets of files. BOLD(weaver) -interprets this input file and generates a workflow specification that -can be executed by BOLD(makeflow). This allows an straightforward -implementation of different workflow execution patterns, such as -MapReduce, and AllPairs. - -LONGCODE_BEGIN - - - /--------\ - +-+ Python | - | \---+----/ -+---------------------------------+ | | Generate DAG -| Weaver +-+ v -+---------------------------------+ /-------\ -| Makeflow +---+ DAG | -+--------+-----------+-----+------+ \-------/ -| Condor | WorkQueue | SGE | Unix +-+ | Dispatch Jobs -+--------+-----------+-----+------+ | v - | /-------\ - +-+ Jobs | - \-------/ - -LONGCODE_END - -SECTION(OPTIONS) - -By default, running CODE(weaver) on a PARAM(weaverfile) generates an -input file for CODE(makeflow), PARAM(Makeflow), and a directory, -PARAM(_Stash), in which intermediate files are stored. - -General options: -OPTIONS_BEGIN -OPTION_ITEM(`-h')Give help information. -OPTION_ITEM(`-W')Stop on warnings. -OPTION_ITEM(`-g')Include debugging symbols in DAG. -OPTION_ITEM(`-I')Do not automatically import built-ins. -OPTION_ITEM(`-N')Do not normalize paths. -OPTION_PAIR(`-b', options)Set batch job options (cpu, memory, disk, batch, local, collect). -OPTION_PAIR(`-d', subsystem)Enable debugging for subsystem. -OPTION_PAIR(`-o', log_path)Set log path (default: stderr). -OPTION_PAIR(`-O', directory)Set stash output directory (default PARAM(_Stash)). -OPTIONS_END - -Optimization Options: -OPTIONS_BEGIN -OPTIONS_END -OPTION_ITEM(`-a')Automatically nest abstractions. -OPTION_PAIR(`-t', group_size)Inline tasks based on group size. - -Engine Options: - -OPTIONS_BEGIN -OPTION_ITEM(`-x')Execute DAG using workflow engine after compiling. -OPTION_PAIR(`-e', arguments)Set arguments to workflow engine when executing. -OPTION_PAIR(`-w' wrapper)Set workflow engine wrapper. -OPTIONS_END - -SECTION(EXIT STATUS) - -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -BOLD(Weaver) expresses common workflow patterns succinctly. For -example, with only the following three lines of code we can express a -BOLD(map) pattern, in which we convert some images to the jpeg format: - -LONGCODE_BEGIN - -convert = ParseFunction('convert {IN} {OUT}') -dataset = Glob('/usr/share/pixmaps/*.xpm') -jpgs = Map(convert, dataset, '{basename_woext}.jpg') - -LONGCODE_END - -Please refer to CODE(cctools/doc/weaver_examples) for further information. - -COPYRIGHT_BOILERPLATE - -FOOTER diff -Nru cctools-7.0.22/doc/man/work_queue_factory.m4 cctools-7.1.2/doc/man/work_queue_factory.m4 --- cctools-7.0.22/doc/man/work_queue_factory.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/work_queue_factory.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,174 +0,0 @@ -include(manual.h)dnl -HEADER(work_queue_factory)dnl - -SECTION(NAME) -BOLD(work_queue_factory) - maintain a pool of Work Queue workers on a batch system. - -SECTION(SYNOPSIS) -CODE(BOLD(work_queue_factory -M PARAM(project-name) -T PARAM(batch-type) [options])) - -SECTION(DESCRIPTION) -BOLD(work_queue_factory) submits and maintains a number -of MANPAGE(work_queue_worker,1) processes on various batch systems, such as -Condor and SGE. All the workers managed by a BOLD(work_queue_factory) process -will be directed to work for a specific master, or any set of masters matching -a given project name. BOLD(work_queue_factory) will automatically determine -the correct number of workers to have running, based on criteria set on -the command line. The decision on how many workers to run is reconsidered -once per minute. -PARA -By default, BOLD(work_queue_factory) will run as many workers as the -indicated masters have tasks ready to run. If there are multiple -masters, then enough workers will be started to satisfy their collective needs. -For example, if there are two masters with the same project name, each with -10 tasks to run, then BOLD(work_queue_factory) will start a total of 20 workers. -PARA -If the number of needed workers increases, BOLD(work_queue_factory) will submit -more workers to meet the desired need. However, it will not run more than -a fixed maximum number of workers, given by the -W option. -PARA -If the need for workers drops, BOLD(work_queue_factory) does not remove them immediately, -but waits to them to exit on their own. (This happens when the worker has been idle -for a certain time.) A minimum number of workers will be maintained, given -by the -w option. -PARA -If given the -c option, then BOLD(work_queue_factory) will consider the capacity -reported by each master. The capacity is the estimated number of workers -that the master thinks it can handle, based on the task execution and data -transfer times currently observed at the master. With the -c option on, -BOLD(work_queue_factory) will consider the master's capacity to be the maximum -number of workers to run. -PARA -If BOLD(work_queue_factory) receives a terminating signal, it will attempt to -remove all running workers before exiting. - -SECTION(OPTIONS) - -SUBSECTION(Batch Options) -OPTIONS_BEGIN -OPTION_TRIPLET(-M,master-name,project)Project name of masters to serve, can be a regular expression. -OPTION_TRIPLET(-F,foremen-name,project)Foremen to serve, can be a regular expression. -OPTION_PAIR(--catalog, catalog)Catalog server to query for masters (default: catalog.cse.nd.edu,backup-catalog.cse.nd.edu:9097). -OPTION_TRIPLET(-T,batch-type,type)Batch system type (required). One of: local, wq, condor, sge, torque, mesos, k8s, moab, slurm, chirp, amazon, lambda, dryrun, amazon-batch -OPTION_TRIPLET(-B,batch-options,options)Add these options to all batch submit files. -OPTION_TRIPLET(-P,password,file)Password file for workers to authenticate to master. -OPTION_TRIPLET(-C,config-file,file)Use the configuration file . -OPTION_TRIPLET(-w,min-workers,workers)Minimum workers running. (default=5) -OPTION_TRIPLET(-W,max-workers,workers)Maximum workers running. (default=100) -OPTION_PAIR(--workers-per-cycle,workers)Maximum number of new workers per 30 seconds. ( less than 1 disables limit, default=5) -OPTION_PAIR(--tasks-per-worker,workers)Average tasks per worker (default=one task per core). -OPTION_TRIPLET(-t,timeout,time)Workers abort after this amount of idle time (default=300). -OPTION_PAIR(--env,variable=value)Environment variable that should be added to the worker (May be specified multiple times). -OPTION_TRIPLET(-E,extra-options,options)Extra options that should be added to the worker. -OPTION_PAIR(--cores,n)Set the number of cores requested per worker. -OPTION_PAIR(--gpus,n)Set the number of GPUs requested per worker. -OPTION_PAIR(--memory,mb)Set the amount of memory (in MB) requested per worker. -OPTION_PAIR(--disk,mb)Set the amount of disk (in MB) requested per worker. -OPTION_ITEM(--autosize)Automatically size a worker to an available slot (Condor, Mesos, and Kubernetes). -OPTION_ITEM(--condor-requirements)Set requirements for the workers as Condor jobs. May be specified several times with expresions and-ed together (Condor only). -OPTION_PAIR(--factory-timeout,n)Exit after no master has been seen in seconds. -OPTION_TRIPLET(-S,scratch-dir,file)Use this scratch dir for temporary files (default is /tmp/wq-pool-$uid). -OPTION_ITEM(`-c, --capacity')Use worker capacity reported by masters. -OPTION_TRIPLET(-d,debug,subsystem)Enable debugging for this subsystem. -OPTION_ITEM(--amazon-config)Specify Amazon config file (for use with -T amazon). -OPTION_ITEM(--wrapper)Wrap factory with this command prefix. -OPTION_ITEM(--wrapper-input)Add this input file needed by the wrapper. -OPTION_PAIR(--mesos-master,hostname)Specify the host name to mesos master node (for use with -T mesos). -OPTION_PAIR(--mesos-path,filepath)Specify path to mesos python library (for use with -T mesos). -OPTION_PAIR(--mesos-preload,library)Specify the linking libraries for running mesos (for use with -T mesos). -OPTION_ITEM(--k8s-image)Specify the container image for using Kubernetes (for use with -T k8s). -OPTION_ITEM(--k8s-worker-image)Specify the container image that contains work_queue_worker availabe for using Kubernetes (for use with -T k8s). -OPTION_TRIPLET(-o,debug-file,file)Send debugging to this file (can also be :stderr, :stdout, :syslog, or :journal). -OPTION_TRIPLET(-O,debug-file-size,mb)Specify the size of the debug file (must use with -o option). -OPTION_PAIR(--worker-binary,file)Specify the binary to use for the worker (relative or hard path). It should accept the same arguments as the default work_queue_worker. -OPTION_PAIR(--runos,img)Will make a best attempt to ensure the worker will execute in the specified OS environment, regardless of the underlying OS. -OPTION_ITEM(`-v, --version')Show the version string. -OPTION_ITEM(`-h, --help')Show this screen. -OPTIONS_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -Suppose you have a Work Queue master with a project name of "barney". -To maintain workers for barney, do this: - -LONGCODE_BEGIN -work_queue_factory -T condor -M barney -LONGCODE_END - -To maintain a maximum of 100 workers on an SGE batch system, do this: - -LONGCODE_BEGIN -work_queue_factory -T sge -M barney -W 100 -LONGCODE_END - -To start workers such that the workers exit after 5 minutes (300s) of idleness: - -LONGCODE_BEGIN -work_queue_factory -T condor -M barney -t 300 -LONGCODE_END - -If you want to start workers that match any project that begins -with barney, use a regular expression: - -LONGCODE_BEGIN -work_queue_factory -T condor -M barney.\* -t 300 -LONGCODE_END - -If running on condor, you may manually specify condor requirements: - -LONGCODE_BEGIN -work_queue_factory -T condor -M barney --condor-requirements 'MachineGroup == "disc"' --condor-requirements 'has_matlab == true' -LONGCODE_END - -Repeated uses of CODE(condor-requirements) are and-ed together. The previous example will produce a statement equivalent to: - -CODE(requirements = ((MachineGroup == "disc") && (has_matlab == true))) - -Use the configuration file BOLD(my_conf): - -LONGCODE_BEGIN -work_queue_factory -Cmy_conf -LONGCODE_END - -BOLD(my_conf) should be a proper JSON document, as: -LONGCODE_BEGIN -{ - "master-name": "my_master.*", - "max-workers": 100, - "min-workers": 0 -} -LONGCODE_END - -Valid configuration fields are: - -LONGCODE_BEGIN -master-name -foremen-name -min-workers -max-workers -workers-per-cycle -task-per-worker -timeout -worker-extra-options -condor-requirements -cores -memory -disk -LONGCODE_END - -SECTION(KNOWN BUGS) - -The capacity measurement currently assumes single-core tasks running on single-core -workers, and behaves unexpectedly with multi-core tasks or multi-core workers. - -SECTION(COPYRIGHT) -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_WORK_QUEUE - -FOOTER diff -Nru cctools-7.0.22/doc/man/work_queue_graph_log.m4 cctools-7.1.2/doc/man/work_queue_graph_log.m4 --- cctools-7.0.22/doc/man/work_queue_graph_log.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/work_queue_graph_log.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ -include(manual.h)dnl -HEADER(work_queue_graph_log) - -SECTION(NAME) -BOLD(work_queue_graph_log) - plots Work Queue statistics logs. - -SECTION(SYNOPSIS) -CODE(BOLD(work_queue_graph_log [options] work-queue-log)) - -SECTION(DESCRIPTION) - -BOLD(work_queue_graph_log) is a script to plot some of the statistics from a -Work Queue log, as generated by CODE(work_queue_specify_log) from the C and Perl Work Queue APIs, or by -CODE(q.specify_log) from the Python Work Queue API. It assumes the availability of -CODE(gnuplot). - -BOLD(work_queue_graph_log) generates four plots, all with CODE(timestamp) as -the independent variable: - -CODE(time): - timestamp, total_send_time, total_receive_time, total_transfer_time, and total_master_time. (The last two generated by the script, not in the log.) - -CODE(time-log): - log-scale version of CODE(times), plus total_execute_time. - -CODE(tasks): - total_tasks_waiting, total_tasks_running, total_workers_connected, total_workers_busy, and total_cores - -CODE(tasks-log): - log-scale version of CODE(tasks), plus total_complete_tasks. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_PAIR(-o,prefix-output)Generate prefix-output.{time,time-log,tasks,tasks-log}.. Default is . -OPTION_PAIR(-c,gnuplot-path)Specify the location of the gnuplot executable. Default is gnuplot. -OPTION_PAIR(-r,range)Range of time to plot, in time units (see -u) from the start of execution. Of the form: min:max, min:, or :max. -OPTION_PAIR(-T,output-format)Set output format. Default is png. If "text", then the gnuplot scripts are written instead of the images. -OPTION_PAIR(-u,time-unit)Time scale to output. One of s,m,h or d, for seconds, minutes (default), hours or days. -OPTION_ITEM(`-h')Show help text. -OPTIONS_END - -SECTION(EXAMPLES) - -General use: - -LONGCODE_BEGIN -% work_queue_graph_log mylog -% ls mylog*.png -mylog.tasks.png mylog.tasks-log.png mylog.time.png mylog.time-log.png -LONGCODE_END - -Plot up to the eleventh hour: - -LONGCODE_BEGIN -% work_queue_graph_log -u h -r :11 mylog - -LONGCODE_END -Generate script text: - -LONGCODE_BEGIN -% work_queue_graph_log -Ttext mylog -% ls mylog*.gnuplot -mylog.tasks.png.gnuplot mylog.tasks-log.png.gnuplot mylog.time.png.gnuplot mylog.time-log.png.gnuplot -LONGCODE_END - -Specify gnuplot path: - -LONGCODE_BEGIN -% work_queue_graph_log -c/some/dir/bin/gnuplot mylog -LONGCODE_END - -SECTION(BUGS) - -LIST_BEGIN -LIST_ITEM(Some formats need a special setup for their gnuplot output terminal. `-T' blindly passes the output format, which may cause gnuplot to fail.) -LIST_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -FOOTER diff -Nru cctools-7.0.22/doc/man/work_queue_pool.m4 cctools-7.1.2/doc/man/work_queue_pool.m4 --- cctools-7.0.22/doc/man/work_queue_pool.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/work_queue_pool.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -include(manual.h)dnl -HEADER(work_queue_pool)dnl - -SECTION(NAME) -BOLD(work_queue_pool) - maintain a pool of Work Queue workers on a batch system. - -SECTION(SYNOPSIS) -CODE(BOLD(work_queue_pool -M PARAM(project-name) -T PARAM(batch-type) [options])) - -SECTION(DESCRIPTION) -BOLD(work_queue_pool) is an alias for BOLD(work_queue_factory), -please see that man page for details. - -SECTION(SEE ALSO) - -SEE_ALSO_WORK_QUEUE - -FOOTER diff -Nru cctools-7.0.22/doc/man/work_queue_status.m4 cctools-7.1.2/doc/man/work_queue_status.m4 --- cctools-7.0.22/doc/man/work_queue_status.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/work_queue_status.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,150 +0,0 @@ -include(manual.h)dnl -HEADER(work_queue_status) - -SECTION(NAME) -BOLD(work_queue_status) - display status of currently running Work Queue applications. - -SECTION(SYNOPSIS) -CODE(BOLD(work_queue_status [options] [master] [port])) - -SECTION(DESCRIPTION) - -BOLD(work_queue_status) displays the status of currently running Work Queue applications. -When run with no options, it queries the global catalog server to list the currently running -Work Queue masters. When given an address and a port, it queries a master directly to obtain -more detailed information about tasks and workers. - -LIST_BEGIN -LIST_ITEM(Hostname and port number of the application.) -LIST_ITEM(Number of waiting tasks.) -LIST_ITEM(Number of completed tasks.) -LIST_ITEM(Number of connected workers.) -LIST_ITEM(Number of tasks currently being executed.) -LIST_ITEM(Timestamp of when there was last communication with the application.) -LIST_END - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_PAIR(--where,expr) Show only Work Queue masters matching this expression. -OPTION_ITEM(`-Q, --statistics')Show summary information about queues. (default) -OPTION_ITEM(`-M, --project-name=')Filter results of -Q for masters matching . -OPTION_ITEM(`-W, --workers')Show details of all workers connected to the master. -OPTION_ITEM(`-T, --tasks')Show details of all tasks in the queue. -OPTION_ITEM(`-A, --able-workers')List categories of the given master, size of largest task, and workers that can run it. -OPTION_ITEM(`-R, --resources')Show available resources for each master. -OPTION_ITEM(`--capacity')Show resource capacities for each master. -OPTION_ITEM(`-l, --verbose')Long output. -OPTION_TRIPLET(-C, catalog, catalog)Set catalog server to . Format: HOSTNAME:PORT -OPTION_TRIPLET(-d, debug, flag)Enable debugging for the given subsystem. Try -d all as a start. -OPTION_TRIPLET(-t, timeout, time)RPC timeout (default=300s). -OPTION_TRIPLET(-o, debug-file, file)Send debugging to this file. (can also be :stderr, :stdout, :syslog, or :journal) -OPTION_TRIPLET(-O, debug-rotate-max, bytes)Rotate debug file once it reaches this size. -OPTION_ITEM(`-v, --version')Show work_queue_status version. -OPTION_ITEM(`-h, --help')Show this help message. -OPTIONS_END - -SECTION(EXAMPLES) - -Without arguments, CODE(work_queue_status) shows a summary of all of the -projects currently reporting to the default catalog server. Waiting, running, -and complete columns refer to number of tasks: - -LONGCODE_BEGIN -$ work_queue_status -PROJECT HOST PORT WAITING RUNNING COMPLETE WORKERS -shrimp cclws16.cse.nd.edu 9001 963 37 2 33 -crustacea terra.solar.edu 9000 0 2310 32084 700 -LONGCODE_END - -With the CODE(-R) option, a summary of the resources available to each master is shown: - -LONGCODE_BEGIN -$ work_queue_status -R -MASTER CORES MEMORY DISK -shrimp 228 279300 932512 -crustacea 4200 4136784 9049985 -LONGCODE_END - -With the CODE(--capacity) option, a summary of the resource capacities for each master is shown: - -LONGCODE_BEGIN -$ work_queue_status --capacity -MASTER TASKS CORES MEMORY DISK -refine ??? ??? ??? ??? -shrimp 99120 99120 781362960 1307691584 -crustacea 318911 318911 326564864 326564864 -LONGCODE_END - -Use the CODE(-W) option to list the workers connected to a particular master. -Completed and running columns refer to numbers of tasks: - -LONGCODE_BEGIN -$ work_queue_status -W cclws16.cse.nd.edu 9001 -HOST ADDRESS COMPLETED RUNNING -mccourt02.helios.nd.edu 10.176.48.102:40 0 4 -cse-ws-23.cse.nd.edu 129.74.155.120:5 0 0 -mccourt50.helios.nd.edu 10.176.63.50:560 4 4 -dirt02.cse.nd.edu 129.74.20.156:58 4 4 -cclvm03.virtual.crc.nd.e 129.74.246.235:3 0 0 -LONGCODE_END - -With the CODE(-T) option, a list of all the tasks submitted to the queue is shown: - -LONGCODE_BEGIN -$ work_queue_status -T cclws16.cse.nd.edu 9001 -ID STATE PRIORITY HOST COMMAND -1000 WAITING 0 ??? ./rmapper-cs -M fast -M 50bp 1 -999 WAITING 0 ??? ./rmapper-cs -M fast -M 50bp 1 -21 running 0 cse-ws-35.cse.nd.edu ./rmapper-cs -M fast -M 50bp 3 -20 running 0 cse-ws-35.cse.nd.edu ./rmapper-cs -M fast -M 50bp 2 -19 running 0 cse-ws-35.cse.nd.edu ./rmapper-cs -M fast -M 50bp 2 -18 running 0 cse-ws-35.cse.nd.edu ./rmapper-cs -M fast -M 50bp 2 -... -LONGCODE_END - - -The CODE(-A) option shows a summary of the resources observed per task -category. - -LONGCODE_BEGIN -$ work_queue_status -T cclws16.cse.nd.edu 9001 -CATEGORY RUNNING WAITING FIT-WORKERS MAX-CORES MAX-MEMORY MAX-DISK -analysis 216 784 54 4 ~1011 ~3502 -merge 20 92 30 ~1 ~4021 21318 -default 1 25 54 >1 ~503 >243 -LONGCODE_END - -With the -A option: -LIST_BEGIN -LIST_ITEM(Running and waiting correspond to number of tasks in the category.) -LIST_ITEM(Fit-workers shows the number of connected workers able to run the largest task in the category.) -LIST_ITEM()max-cores, max-memory, and max-disk show the corresponding largest value in the category. -LIST_END - -The value may have the following prefixes: -LIST_BEGIN -LIST_ITEM(No prefix.) The maximum value was manually specified. -LIST_ITEM(~) All the task have run with at most this quantity of resources. -LIST_ITEM(>) There is at least one task that has used more than this quantity of resources, but the maximum remains unknown. -LIST_END - - -Finally, the CODE(-l) option shows statistics of the queue in a JSON object: - -LONGCODE_BEGIN -$ work_queue_status -l cclws16.cse.nd.edu 9001 -{"categories":[{"max_disk":"3500","max_memory":"1024","max_cores":"1",... -LONGCODE_END - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_WORK_QUEUE - -FOOTER diff -Nru cctools-7.0.22/doc/man/work_queue_worker.m4 cctools-7.1.2/doc/man/work_queue_worker.m4 --- cctools-7.0.22/doc/man/work_queue_worker.m4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/man/work_queue_worker.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,134 +0,0 @@ -include(manual.h)dnl -HEADER(work_queue_worker) - -SECTION(NAME) -BOLD(work_queue_worker) - worker process for executing tasks -dispatched through Work Queue - -SECTION(SYNOPSIS) -CODE(BOLD(work_queue_worker [options] PARAM(masterhost) PARAM(port))) - -CODE(BOLD(work_queue_worker [options] PARAM(masterhost:port]))) - -CODE(BOLD(work_queue_worker [options] "PARAM(masterhost:port;[masterhost:port;masterhost:port;...])))" - -CODE(BOLD(work_queue_worker [options] -M PARAM(projectname))) - -SECTION(DESCRIPTION) - -BOLD(work_queue_worker) is the worker process for executing tasks dispatched -from a master application built using the BOLD(Work Queue) API. BOLD(work_queue_worker) -connects to the master application, accepts, runs, and returns tasks dispatched to it. - -PARA - -The BOLD(masterhost) and BOLD(port) arguments specify the hostname and port -number of the master application for work_queue_worker to connect. Several -masterhosts and ports may be specified, separated with a semicolon (;), with the -worker connecting to any of the masters specified (When specifying multiple -masters, remember to escape the ; from shell interpretation, for example, using -quotes.) - -Alternatevely, the master may be specified by name, using the BOLD(-M) option. - -PARA - -BOLD(work_queue_worker) can be run locally or deployed remotely on any of the -grid or cloud computing environments such as SGE, Amazon EC2, Condor using -MANPAGE(sge_submit_workers,1), MANPAGE(ec2_submit_workers,1), -MANPAGE(condor_submit_workers,1) respectively. - -SECTION(OPTIONS) -OPTIONS_BEGIN -OPTION_ITEM(-v, --version')Show version string. -OPTION_ITEM(-h, --help')Show this help message. -OPTION_TRIPLET(-N,-M, master-name, name)Set the name of the project this worker should work for. A worker can have multiple projects. -OPTION_TRIPLET(-C, catalog, catalog)Set catalog server to PARAM(catalog). Format: HOSTNAME:PORT -OPTION_TRIPLET(-d, debug, flag)Enable debugging for the given subsystem. Try -d all as a start. -OPTION_TRIPLET(-o,debug-file,file)Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You may specify logs be sent to stdout (":stdout"), to the system syslog (":syslog"), or to the systemd journal (":journal"). -OPTION_PAIR(--debug-max-rotate, bytes)Set the maximum file size of the debug log. If the log exceeds this size, it is renamed to "filename.old" and a new logfile is opened. (default=10M. 0 disables) -OPTION_ITEM(--debug-release-reset)Debug file will be closed, renamed, and a new one opened after being released from a master. -OPTION_ITEM(`--foreman')Enable foreman mode. -OPTION_TRIPLET(-f, foreman-name, name)Set the project name of this foreman to PARAM(project). Implies --foreman. -OPTION_PAIR(--foreman-port, port[:highport]) Set the port for the foreman to listen on. If PARAM(highport) is specified the port is chosen from between PARAM(port) and PARAM(highport). Implies --foreman. -OPTION_TRIPLET(-Z, foreman-port-file, file)Select port to listen to at random and write to this file. Implies --foreman. -OPTION_TRIPLET(-F, fast-abort, mult)Set the fast abort multiplier for foreman (default=disabled). -OPTION_PAIR(--specify-log, logfile)Send statistics about foreman to this file. -OPTION_TRIPLET(-P, password, pwfile)Password file for authenticating to the master. -OPTION_TRIPLET(-t, timeout, time)Abort after this amount of idle time. (default=900s) -OPTION_TRIPLET(-w, tcp-window-size, size)Set TCP window size. -OPTION_TRIPLET(-i, min-backoff, time)Set initial value for backoff interval when worker fails to connect to a master. (default=1s) -OPTION_TRIPLET(-b, max-backoff, time)Set maxmimum value for backoff interval when worker fails to connect to a master. (default=60s) -OPTION_TRIPLET(-z, disk-threshold, size)Minimum free disk space in MB. When free disk space is less than this value, the worker will clean up and try to reconnect. (default=100MB) -OPTION_PAIR(--memory-threshold, size)Set available memory threshold (in MB). When exceeded worker will clean up and reconnect. (default=100MB) -OPTION_TRIPLET(-A, arch, arch)Set the architecture string the worker reports to its supervisor. (default=the value reported by uname) -OPTION_TRIPLET(-O, os, os)Set the operating system string the worker reports to its supervisor. (default=the value reported by uname) -OPTION_TRIPLET(-s, workdir, path)Set the location where the worker should create its working directory. (default=/tmp) -OPTION_PAIR(--bandwidth, mbps)Set the maximum bandwidth the foreman will consume in Mbps. (default=unlimited) -OPTION_PAIR(--cores, n)Set the number of cores this worker should use. Set it to 0 to have the worker use all of the available resources. (default=1) -OPTION_PAIR(--gpus, n)Set the number of GPUs this worker should use. (default=0) -OPTION_PAIR(--memory, mb)Manually set the amount of memory (in MB) reported by this worker. -OPTION_PAIR(--disk, mb)Manually set the amount of disk space (in MB) reported by this worker. -OPTION_PAIR(--wall-time, s)Set the maximum number of seconds the worker may be active. -OPTION_PAIR(--feature, feature)Specifies a user-defined feature the worker provides (option can be repeated). -OPTION_PAIR(--docker, image) Enable the worker to run each task with a container based on this image. -OPTION_PAIR(--docker-preserve, image) Enable the worker to run all tasks with a shared container based on this image. -OPTION_PAIR(--docker-tar, tarball) Load docker image from this tarball. -OPTION_PAIR(--volatility, chance)Set the percent chance per minute that the worker will shut down (simulates worker failures, for testing only). -OPTIONS_END - -SECTION(FOREMAN MODE) - -BOLD(work_queue_worker) can also be run in BOLD(foreman) mode, in which it connects to a -master as a worker while acting as a master itself. Any tasks the foreman receives from -its master are sent to its subordinate worker processes. - -PARA - -BOLD(Foreman) mode is enabled by either specifying a port to listen on using the BOLD(-f PARAM(port)) option or by -setting the mode directly with the BOLD(--foreman) option. The foreman can be directed to advertise its -presence on the MANPAGE(catalog_server) with the BOLD(-N PARAM(project name)) flag, which other workers can use to -contact the foreman. - -SECTION(CONTAINER MODE) -BOLD(work_queue_worker) can be run with container. Docker is the default management tool and docker deamon should be enabled -in computing nodes. Tasks received from master can be run with container based on user specified docker image. - -PARA - -BOLD(Container) mode is enable by either specifying a image name using the BOLD(--docker PARAM(image)) option, which enable workers -running each tasks with an independent container or by using the BOLD(--docker-preserve PARAM(image)) option, which enable workers -running all tasks with a shared container. The default way to manage the image is using docker hub, which means user -has to push the container image into the docker hub in advance. If the image is saved in a tarball and cached in the -computing node, BOLD(--docker-tar PARAM(tarball)) option can be adopted to load the image from the tarball. - -SECTION(EXIT STATUS) -On success, returns zero. On failure, returns non-zero. - -SECTION(EXAMPLES) - -To run BOLD(work_queue_worker) to join a specific master process running on host CODE(master.somewhere.edu) port 9123: -LONGCODE_BEGIN -% work_queue_worker master.somewhere.edu 9123 -LONGCODE_END - -To run BOLD(work_queue_worker) in auto mode with debugging turned on for all subsystems and -to accept tasks only from a master application with project name set to project_A: -LONGCODE_BEGIN -% work_queue_worker -a -d all -M project_A -LONGCODE_END - -To run BOLD(work_queue_worker) as a foreman working for project_A and advertising itself as foreman_A1 while listening on port 9123: -LONGCODE_BEGIN -% work_queue_worker --foreman -M project_A -N foreman_A1 -f 9123 -LONGCODE_END - -SECTION(COPYRIGHT) - -COPYRIGHT_BOILERPLATE - -SECTION(SEE ALSO) - -SEE_ALSO_WORK_QUEUE - -FOOTER diff -Nru cctools-7.0.22/doc/manual.css cctools-7.1.2/doc/manual.css --- cctools-7.0.22/doc/manual.css 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/manual.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ -body { - background: gray; - font: normal normal normal 14pt Times, serif; -} - -#manual { - background: white; - border: 2px solid #000000; - padding: 20px; - margin: 20px auto 20px auto; -} - -h1 { - border-top: 3px solid #000000; - border-bottom: 3px solid #000000; - font-family: arial; - font-weight: bold; - text-align: center; -} - -h2 { - border-top: 2px solid #000000; - border-bottom: 2px solid #000000; - font-family: arial; - font-weight: bold; -} - -h3 { - font-family: arial; - font-weight: bold; - text-decoration: underline; -} - -h4 { - font-weight: bold; - text-decoration: underline; -} - -hr { - border: 0; - width: 80%; - height: 5px; - color: black; -} -table { - background: #dddddd; - border-collapse: collapse; - margin: 10px auto 10px auto; -} -tr { - border-spacing: 0; - margin: none; - padding: 5px; -} -td { - border: 2px solid black; - margin: none; - padding: 10px; -} -th { - border: 3px solid black; - font-variant: small-caps; - margin: none; - padding: 10px; -} -tt { - font-family: "Courier New", Courier, monospace; -} -code { - background: #ffffcc; - border: 1px dashed #000000; - color: #000000; - display: block; - font: normal normal normal 14pt "Courier New", Courier, monospace; - font-size: 16px; - margin: 10px 0 10px 20px; - max-width: 65em; /* a little more than .75*80 */ - /* FIXME always takes up max WIDTH!!! :( */ - overflow-x: auto; /* CSS 3 */ - padding: 10px 10px 10px 10px; - text-align: left; - text-decoration: none; - white-space: pre; -} -.sectionlink { - color: blue; - border: none; - display: none; - float: right; - font-weight: normal; - text-decoration: none; -} -code .prompt { - color: #cc0000; - font-weight: bold; -} -h1:hover .sectionlink, h2:hover .sectionlink, h3:hover .sectionlink, h4:hover .sectionlink, h5:hover .sectionlink, h6:hover .sectionlink { - display: block; -} - -.man { - font-weight: bold; - font-family: monospace; -} - -img.center { - display: block; - margin-left: auto; - margin-right: auto -} diff -Nru cctools-7.0.22/doc/manual.h cctools-7.1.2/doc/manual.h --- cctools-7.0.22/doc/manual.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/manual.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -ifdef(`HTML',`include(manual_html.h)',`include(manual_man.h)')dnl -changecom(`@@')dnl -define(COPYRIGHT_BOILERPLATE,The Cooperative Computing Tools are Copyright (C) 2003-2004 Douglas Thain and Copyright (C) 2005-2015 The University of Notre Dame. This software is distributed under the GNU General Public License. See the file COPYING for details.)dnl -dnl -define(SEE_ALSO_MAKEFLOW, -`LIST_BEGIN -LIST_ITEM(MANUAL(Cooperative Computing Tools Documentation,"../index.html")) -LIST_ITEM(MANUAL(Makeflow User Manual,"../makeflow.html")) -LIST_ITEM(MANPAGE(makeflow,1) MANPAGE(makeflow_monitor,1) MANPAGE(makeflow_analyze,1) MANPAGE(makeflow_viz,1) MANPAGE(makeflow_graph_log,1) MANPAGE(starch,1) MANPAGE(makeflow_ec2_setup,1) MANPAGE(makeflow_ec2_cleanup,1) ) -LIST_END')dnl -dnl -define(SEE_ALSO_WORK_QUEUE, -`LIST_BEGIN -LIST_ITEM(MANUAL(Cooperative Computing Tools Documentation,"../index.html")) -LIST_ITEM(MANUAL(Work Queue User Manual,"../workqueue.html")) -LIST_ITEM(MANPAGE(work_queue_worker,1) MANPAGE(work_queue_status,1) MANPAGE(work_queue_factory,1) MANPAGE(condor_submit_workers,1) MANPAGE(sge_submit_workers,1) MANPAGE(torque_submit_workers,1) ) -LIST_END')dnl -dnl -define(SEE_ALSO_PARROT, -`LIST_BEGIN -LIST_ITEM(MANUAL(Cooperative Computing Tools Documentation,"../index.html")) -LIST_ITEM(MANUAL(Parrot User Manual,"../parrot.html")) -LIST_ITEM(MANPAGE(parrot_run,1) MANPAGE(parrot_run_hdfs,1) MANPAGE(parrot_cp,1) MANPAGE(parrot_getacl,1) MANPAGE(parrot_setacl,1) MANPAGE(parrot_mkalloc,1) MANPAGE(parrot_lsalloc,1) MANPAGE(parrot_locate,1) MANPAGE(parrot_timeout,1) MANPAGE(parrot_whoami,1) MANPAGE(parrot_mount,1) MANPAGE(parrot_md5,1) MANPAGE(parrot_package_create,1) MANPAGE(parrot_package_run,1) MANPAGE(chroot_package_run,1)) -LIST_END')dnl -define(SEE_ALSO_CHIRP, -`LIST_BEGIN -LIST_ITEM(MANUAL(Cooperative Computing Tools Documentation,"../index.html")) -LIST_ITEM(MANUAL(Chirp User Manual,"../chirp.html")) -LIST_ITEM(MANPAGE(chirp,1) MANPAGE(chirp_status,1) MANPAGE(chirp_fuse,1) MANPAGE(chirp_get,1) MANPAGE(chirp_put,1) MANPAGE(chirp_stream_files,1) MANPAGE(chirp_distribute,1) MANPAGE(chirp_benchmark,1) MANPAGE(chirp_server,1)) -LIST_END')dnl -dnl -define(SEE_ALSO_SAND, -`LIST_BEGIN -LIST_ITEM(MANUAL(Cooperative Computing Tools Documentation,"../index.html")) -LIST_ITEM(MANUAL(SAND User Manual,"../sand.html")) -LIST_ITEM(MANPAGE(sand_filter_master,1) MANPAGE(sand_filter_kernel,1) MANPAGE(sand_align_master,1) MANPAGE(sand_align_kernel,1) MANPAGE(sand_compress_reads,1) MANPAGE(sand_uncompress_reads,1) MANPAGE(work_queue_worker,1)) -LIST_END')dnl -define(SEE_ALSO_LINKER, -`LIST_BEGIN -LIST_ITEM MANPAGE(makeflow,1) MANPAGE(perl,1) MANPAGE(python,1) MANPAGE(ldd,1) -LIST_END')dnl -define(SEE_ALSO_CATALOG, -`LIST_BEGIN -LIST_ITEM(MANUAL(Cooperative Computing Tools Documentation,"../index.html")) -LIST_ITEM(MANPAGE(catalog_server,1) MANPAGE(catalog_update,1) MANPAGE(catalog_query,1) MANPAGE(chirp_status,1) MANPAGE(work_queue_status,1) MANPAGE(deltadb_query,1)) -LIST_END')dnl -dnl diff -Nru cctools-7.0.22/doc/manual_html.h cctools-7.1.2/doc/manual_html.h --- cctools-7.0.22/doc/manual_html.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/manual_html.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -define(HEADER,$1(1)

    $1(1)

    )dnl -define(SECTION,

    $1

    )dnl -define(SUBSECTION,

    $1

    )dnl -define(SUBSUBSECTION,

    $1

    )dnl -define(PARA,

    )dnl -define(LINK,$1)dnl -define(MANUAL,LINK($1,$2))dnl -define(MANPAGE,LINK($1($2),$1.html))dnl -define(BOLD,$1)dnl -define(ITALIC,$1)dnl -define(CODE,$1)dnl - -define(LIST_BEGIN,

      ) -define(LIST_ITEM,
    • $1
    • ) -define(LIST_END,
    ) - -define(SPACE, ) -define(HALFTAB,SPACE()SPACE()SPACE()SPACE()) -define(TAB,HALFTAB()HALFTAB()) -define(PARAM,<$1>) - -define(OPTIONS_BEGIN,)dnl -define(OPTION_ITEM,
    BOLD(CODE($1)) )dnl -define(OPTION_PAIR,
    BOLD(CODE($1 PARAM($2)))
    )dnl -define(OPTION_TRIPLET,
    BOLD(CODE($1)``,''BOLD(CODE(--$2)) BOLD(CODE(PARAM($3))))
    )dnl -define(OPTIONS_END,
    )dnl - -define(LONGCODE_BEGIN,
    )
    -define(LONGCODE_END,
    ) - -define(FOOTER,


    CCTools CCTOOLS_VERSION released on CCTOOLS_RELEASE_DATE)dnl - -define(TABLE_START,)dnl -define(ROW,)dnl -define(COL,
    )dnl -define(TABLE_END,
    )dnl -define(CALLOUT,`
    $1
    ')dnl diff -Nru cctools-7.0.22/doc/manual_man.h cctools-7.1.2/doc/manual_man.h --- cctools-7.0.22/doc/manual_man.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/manual_man.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -define(HEADER,.TH "$1" 1 "CCTOOLS_RELEASE_DATE" "CCTools CCTOOLS_VERSION" "Cooperative Computing Tools")dnl -define(SECTION,.SH $1 -.LP)dnl -define(SUBSECTION,.SS $1 -.LP)dnl -define(PARA,.PP)dnl -define(BOLD,\fB$1\fP)dnl -define(ITALIC,\fI$1\fP)dnl -define(CODE,\FC$1\FT)dnl -define(LINK,$1 (BOLD($2)))dnl -define(MANUAL,BOLD($1))dnl -define(MANPAGE,BOLD($1($2)))dnl -define(LIST_BEGIN)dnl -define(LIST_ITEM,`.IP \(bu 4 -$1')dnl -define(LIST_END)dnl -define(PARAM,<$1>)dnl -define(OPTIONS_BEGIN,.LP)dnl -define(OPTION_ITEM,.TP -.B \ $1 -. -)dnl -define(OPTION_PAIR,.TP -.BI \ $1 \ PARAM($2) -. -)dnl -define(OPTION_TRIPLET,.TP -BOLD($1)`,' BOLD(-\-$2)`='ITALIC(PARAM($3)) -. -)dnl -define(OPTIONS_END)dnl -define(LONGCODE_BEGIN,.fam C -.nf -.nh -.IP "" 8)dnl -define(LONGCODE_END,.fi -.hy -.fam -.P)dnl -define(FOOTER)dnl -dnl diff -Nru cctools-7.0.22/doc/manuals/about.md cctools-7.1.2/doc/manuals/about.md --- cctools-7.0.22/doc/manuals/about.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/about.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,41 @@ +# About the Cooperative Computing Tools + +The [Cooperating Computing Tools (CCTools)](index.md) help you to design +and deploy scalable applications that run on hundreds or thousands +of machines at once. If you have a large quantity of computational +work to accomplish that would take years to complete on your laptop, +then you have come to the right place. + + + +If you are a first-time user, start by checking out the +[Makeflow workflow system](../makeflow), and use it to get your work +organized into a regular graph. You can test it on your laptop, +and when you are ready, throw the switch to dispatch jobs to +your account University campus cluster, a national supercomputing site, +or a commercial cloud. + +For more advanced dynamic applications, take a look at the +the [Work Queue framework](../work_queue), which can be used to construct +applications that consist of many asynchronous tasks running across +multiple distributed systems. WQ has been used to build custom genome assemblers, ensemble molecular simulators, data analysis systems, and more. + +This software is used by a broad community of people in multiple fields, +including high energy physics, molecular dynamics, bioinformatics, +astronomy, economics, digital humanities, and more. We have an active +mailing list and issue tracker, and we regularly interact with our users +at annual meetings. It is production-ready: we have +a regular engineering process, automated builds, and distribution through +packaging channels such as Conda and Spack. + +CCTools is published by the [Cooperative Computing Lab](http://ccl.cse.nd.edu) at the [University of Notre Dame](http://www.nd.edu/~dthain). +We are a research group funded by the National Science Foundation and +the Department of Energy to design, evaluate, and deploy software systems +that enable new discoveries in many fields of science and engineering. +We thrive on helping people to succeed, so if you have a challenging +problem or just want to exchange ideas, then please [get in touch](help.md) -- +we are eager to work with you. + +This work has been sponsored in part by the National Science Foundation via grants OAC-1931348 (CSSI 2019-2022), OAC-1642409 (SI2 2016-2019), OAC-1148330 (SI2 2013-2016), and CNS-0453229 (CAREER 2007-2012) + +This software is Copyright (C) 2019- The University of Notre Dame. The software is distributed unt the GNU General Public License V2. See the file COPYING for details. Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/awe/images/ala-rama-awe.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/awe/images/ala-rama-awe.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/awe/images/ala-rama-msm.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/awe/images/ala-rama-msm.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/awe/images/flowchart.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/awe/images/flowchart.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/awe/images/walkers.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/awe/images/walkers.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/awe/images/workflow.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/awe/images/workflow.png differ diff -Nru cctools-7.0.22/doc/manuals/awe/index.md cctools-7.1.2/doc/manuals/awe/index.md --- cctools-7.0.22/doc/manuals/awe/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/awe/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,331 @@ +# AWE User's Manual + +## Overview + +Accelerated Weighted Ensemble or AWE package provides a Python library for +adaptive sampling of molecular dynamics. The framework decomposes the +resampling computations and the molecular dynamics simulations into tasks that +are dispatched for execution on resources allocated from clusters, clouds, +grids, or any idle machines. + +AWE uses Work Queue, which is part of the Cooperating Computing Tools +(CCTools) package, for dispatching jobs for execution on allocated resources. +Documentation on downloading, installing, and using Work Queue can be found +[here](../work_queue). + +## Software Requirements + +AWE currently uses the GROMACS molecular dynamics simulation package. So it +requires an installation of GROMACS 4.5 or above and its installed location +added to PATH. It also requires the GROMACS XTC library for operation. + +The software requirements of AWE are summarized below along with how AWE finds +and accesses them: + +Software| Version| Must be present in environment variable +---|---|--- +[Python](http://python.org)| 2.6 or 2.7| PATH and PYTHONPATH +[GROMACS](http://www.gromacs.org)| 4.5 or higher| PATH +[GROMACS XTC Library](http://www.gromacs.org/Developer_Zone/Programming_Guide/XTC_Library)| 1.1 or higher| C_INCLUDE_PATH and LD_LIBRARY_PATH +[Numpy](http://www.numpy.org)| 1.5 or higher| PYTHONPATH +[Prody](http://www.csb.pitt.edu/prody)| 0.9.4 or higher| PYTHONPATH +[GNU Scientific Library](http://www.gnu.org/software/gsl/)| 1.15 or higher| C_INCLUDE_PATH and LD_LIBRARY_PATH +[Matplotlib](http://matplotlib.org)| 1.1.0 or higher| PYTHONPATH + +## Building and Installing AWE + +Download the CCTools source package from this [web +page](http://ccl.cse.nd.edu/software/download) and install using the steps +[here](http://ccl.cse.nd.edu/software/manuals/install.html). + +First, determine the location where AWE is to be installed. For example: + +```sh +$ export AWE_INSTALL_PATH=$HOME/awe +``` + +Compile and install AWE in the location pointed by `$AWE_INSTALL_PATH` using: + +```sh +$ cd cctools-xxx-src +$ cd apps/awe +$ ./configure --prefix $AWE_INSTALL_PATH +$ make install +``` + +Next, set `PATH` to include the installed AWE binaries: + +```sh +$ export PATH=${AWE_INSTALL_PATH}/bin:${PATH} +``` + +Finally, set PYTHONPATH to include the installed AWE Python modules: + +```sh +export PYTHONPATH=${AWE_INSTALL_PATH}/lib/python2.6/site-packages:${PYTHONPATH} +``` + +Note that the AWE Python modules will be built for the version of Python accessible +in your installed environment. The installation script creates a directory +(under `$AWE_INSTALL_PATH/lib`) named with the version of Python for which the +modules are built and copies the modules to this directory. So if your +environment has a Python version different from 2.6, replace the version +string accordingly when setting `PYTHONPATH`. + +You can check if AWE was correctly installed by running: + +```sh +$ awe-verify +``` + +## Running AWE + +### Introduction + +The general workflow for running AWE-WQ is outlined below. Three preprocessing +steps are required before AWE-WQ can be executed: first, a sample the +conformational space; second, cluster the results from the sampling procedure; +third, define cell regions and import file formats. There are numerous options +and ways to accomplish the sampling step. Different programs, such as GROMACS, +NAMD, CHARMM, or AMBER may be used to run the simulations. Clustering may be +done using the [MSMBuilder](http://msmbuilder.org) program. Finally use the +`SaveStructures.py` command from MSMBuilder to extract conformations from each +of the clusters, as well as the `awe-import-gens` and `awe-prepare` scripts +from AWE-WQ to import convert to AWE-WQ file formats. If desired, the +`awe-calc-gens-rmsd` will compute the RMSD of the cluster centers to a +reference structure and `awe-define-regions` can be used to determine the +regions cells belong to based on RMSD. ![](images/workflow.png) + +AWE-WQ uses a Master/Worker model to execute tasks on remote machines. A task +is comprised of several files: The cell definitions, the starting +conformation, requisite MD software, assignment program, and a script that +executes the task. The AWE-WQ execution flowchart is illustrated below: +![](images/flowchart.png) + +### Tutorial + +Within the `tutorial` directory of the source code we provide several input +files for you to follow along. Checkout the sourcecode using: + +```sh +$ git clone https://github.com/cooperative-computing-lab/awe.git awe.git +$ cd awe.git +``` + +The tutorial is also stored as an IPython notebook file which you can start +using: + +```sh +$ cd tutorial +$ ipython notebook +``` + +The following files are provided: + + * `XTC.tar.bz2`: MD trajectory files for Alanine Dipeptide + * `native.pdb`: Conformation of the "native" structure + * `AtomIndices.dat`: atoms to use + +#### Sampling + +Sampling has already been done and the files are stored in `XTC.tar.bz2` +Extract the trajectory files: `% tar xf XTC.tar.bz2` The directory structure +is `XTC/RUN#/frame0.xtc`, where `#` is the trajectory number. + +#### Determine Cell Definitions + +The sampling data is imported into MSMBuilder using the `ConvertDataToHDF.py` +command, paramterized with a PDB file containing the system coordinates and +the path to the MD data: + +```sh +$ ConvertDataToHDF.py -s native.pdb -i XTC +``` + +The next step defines the cells. Conformations are clustered with a hybrid +k-centers/k-medoids algorithm using the RMSD between atoms as the distance +metric. The AtomIndices.dat defines the atoms to consider when computing the +distance between conformations. Using a subset (such as all non-hydrogens) +prevents too fine a granularity from overfitting the data. Finally, we will +cluster the data into 100 cells. + +```sh +$ Cluster.py rmsd -a AtomIndices.dat hybrid -k 100 +``` + +By inspecting the implied timescales (not shown) we build a Markov State Model +at lagtime 10. + +```sh +$ BuildMSM.py -l 10 +``` + +#### AWE-WQ Input Preparation + +Extract a given number of conformations from each of the cells defined above +(`SaveStructures.py`) and import the cell definitions from MSMBuilder format +to AWE-WQ format (`awe-import-gens`) and setup the initial files for the AWE- +WQ run (`awe-prepare`). Regions of metastable states need to then be +determined, which are ultimately given as a list of the cells belonging to +each region (e.g. â€folded†and â€unfoldedâ€) and scripts are given to do so +using RMSD to a reference structure (`awe-calc-gens-rmsd`, `awe-define-regions`). + +Since we plan to maintain 10 simulations in the cells, so we need to extract +conformations from the states using MSMBuilder. `% SaveStructures.py -c 10 -f +pdb -S sep -o Walkers` In order to run AWE-WQ we must then import the cell +definitions which were written by MSMBuilder to `Gens.lh5`. When building the +Markiov State Model using `BuildMSM.py`, several of the clusters may be +prunned. This information is stored in `Data/Mapping.dat` and needs to be +included when importing to AWE-WQ. The following command will output the cell +definitions to `cells.dat`: + +```sh +$ awe-import-gens -g Data/Gens.lh5 -o cells.dat -m Data/Mapping.dat +``` + +In order to compute reaction rates we need to specify regions of metastable +states. AWE-WQ provides some commands to assist with this process: awe-calc- +gens-rmsd and awe-define-regions. We use awe-calc-gens-rmsd to compute the +RMSD of each cell to some reference conformation such as the native state. + +```sh +$ awe-calc-gens-rmsd \ +-r native.pdb \ +-n AtomIndices.dat \ +-g Data/Gens.lh5 \ +-o native-rmsd.dat +``` + +By plotting the distribution of values we can classify +conformations with RMSD ≤ 2.3 Ã… as folded and those with RMSD ≥ 2.5 Ã… as +unfolded. The two output files `folded.dat` and `unfolded.dat` now contain the +integer indices of the states belonging to these regions. + +```sh +$ awe-define-regions -i native-rmsd.dat -c 0.23 -O ’<=’ -o folded.dat +$ awe-define-regions -i native-rmsd.dat -c 0.25 -O ’>=’ -o unfolded.dat +``` + +We can now prepare for AWE-WQ by checking dependencies and populating the +directory with other necessary files by running awe-prepare. This will create +two directories named `awe-generic-data` and `awe-instance-data`. `awe-generic-data` will contain files that all AWE runs will require, such as the +task executables and Gromacs forcefield files. `awe-instance-data` will +contain files that are particular to a protein system such as the state +definitions, initial protein coordinates, etc. + +```sh +$ awe-prepare + +Checking for compatible python...OK +Checking for executable work_queue_status...OK +Checking for executable pdb2gmx...OK +Checking for executable grompp...OK +Checking for executable mdrun...OK +Checking for executable awe-assign...OK +Checking for compatible Gromacs...OK +Checking for python module work_queue...OK +Checking for python module numpy...OK +Checking for python module prody...OK +Checking for python module pylab...OK +Checking for python module trax...OK +Checking for python module awe...OK +Decompressing awe-generic-data.tar.bz2 +Decompressing awe-instance-data.tar.bz2 +Copying example +Copying binaries +Copying Gromacs forcefield files +``` + +#### Running AWE-WQ + +There are two components to consider when running AWE-WQ: the master process +and the resources. The master is the driver of the algorithm, managing task +definitions, scheduling, processing, and the resampling procedure. In order to +run the walkers, resources must be allocated. + +**Master:** Start the AWE-WQ process on a machine. This process loads the +initial conformations (walk- ers) for each cell, and is in charge of +scheduling each task, processing the result, and the resampling procedure. +This runs AWE-WQ maintaining 10 walkers in 100 cells, whose definition is +provided in cells.dat with initial weights in Data/Populations.dat. The +coordinates for the walkers are found in the Walkers directory. The metastable +regions are provided in folded.dat and unfolded.dat as a list of cell id +numbers belonging to each region. Finally, we give a name to the master (“awe- +wqâ€) to that workers can easily locate the host and port. + +```sh +$ awe-wq -N 10 -C 100 -c cells.dat -w Data/Populations.dat -W Walkers -r folded.dat unfolded.dat -n awe-wq +``` + +**Workers** Resources can be allocated either directly using work_queue_worker +to run tasks locally. To run jobs on SGE or CONDOR use ` sge_submit_workers` +and `condor_submit_workers`. Additionally, resources can be managed +automatically using `work_queue_factory`. Using `work_queue_worker` also +allows the worker to operate as a â€Foremanâ€, enabling the hierarchical +distribution of tasks. Since the master has started we can start a worker +locally. + +```sh +$ work_queue_worker -a -N awe-wq +``` + +#### Monitoring AWE-WQ Progress + +Use `work_queue_status` to get the current resources runtime status (number of +workers, number of tasks waiting/completed, etc). By using `awe-plot-wq-stats` +the plot of the resource usage over the runtime of the program can be +obtained. In this case, I've submitted several workers to SGE. + +```sh +$ work_queue_status +PROJECT HOST PORT WAITING BUSY COMPLETE WORKERS +awe-wq fah.crc.nd.edu 1024 133 36 57547 36 +... +``` + +The `awe-flux` command allows the convergence of the calculated flux to be +monitored. Once convergence within a determined threshold is obtained the +program may be halted. + +Additionally, other analyses are appropriate. For instance, the energy surface +for Alanine Dipeptide can be visualized as a function of its dihedral angles. +As such, we can plot, as shown below, the cell coordinates and the initial +estimation of the weights as well as computed weights after several iterations +of AWE-WQ. + +Before | After +---|--- +![](images/ala-rama-msm.png) | ![](images/ala-rama-awe.png) + +## Running AWE on Different Protein Systems + +You can run AWE to sample a different protein system by following the steps +below: + + 1. Sample the conformations space of the protein using ensemble simulations, replica exchange, etc. + 2. Cluster the data to obtain the cell definitions. + 3. Extract the conformations from each cluster as individual walkers. + +Specifically, these steps translate to the following: + + 1. Describe the topology of the system in `topol.pdb`. + 2. Prepare the state definitions and list them in `cells.dat` + 3. Select the subset of atoms from the cell definitions `cells.dat` and list them in `CellIndices.dat` + 4. Select the subset of atoms from the walker topology file `topol.pdb` and list them in `StructureIndices.dat` + 5. Define the initial coordinates for the walkers in `State$i-$j.pdb` where `i` is the index of the cell and `j` is the index of the walker. + 6. Specify the parameters for the walker simulation by GROMACS in `sim.mdp`. + + +## For More Information + +For the latest information about AWE, please visit our [web +site](http://ccl.cse.nd.edu/software/awe) and subscribe to our [mailing +list](http://ccl.cse.nd.edu/software/help.shtml). + +AWE is Copyright (C) 2013- The University of Notre Dame. This software is +distributed under the GNU General Public License. See the file COPYING for +details. + + +**Last Updated August 2019** + diff -Nru cctools-7.0.22/doc/manuals/catalog/index.md cctools-7.1.2/doc/manuals/catalog/index.md --- cctools-7.0.22/doc/manuals/catalog/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/catalog/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,183 @@ +# Catalog Server User's Manual + +## Overview + +Catalog servers function as connection points for tools that need to share +information and interact remotely. Various services and tools send periodic +updates to a catalog server to advertise their presence and vital details such +as addresses, resources, and performance. Tools like `chirp_status` and +`work_queue_status` query the server to displays servers that are currently +running. Catalog updates are sent via UDP, and the catalog server exposes a +JSON interface to view status and make queries. + +By default, the cctools software makes use of the central catalog server (and +automatic backup) at Notre Dame: + +[catalog.cse.nd.edu:9097](http://catalog.cse.nd.edu:9097) + +[backup- catalog.cse.nd.edu:9097](http://backup-catalog.cse.nd.edu:9097) + +The default view for a catalog server is a human-readable HTML summary. +Machine-readable data is also available as JSON, text, XML, or ClassAds. Many +parts of cctools make use of a catalog server internally. Chirp servers send +regular catalog updates indicating the host system's load, available disk +space, cctools version, etc. Work Queue masters also advertise their projects +through the catalog. When a worker starts, it can query the catalog to +automatically discover a master to contact. + +## Specifying Catalog Servers + +Many of the tools accept command line arguments or environment variables to +specify the catalog server(s) to use. The catalog host is specified as a comma +delimited list of servers to use. Each may optionally include a port number. +If no port is specified, the value of the environment variable `CATALOG_PORT` +is used, or the default of port 9097. If no catalog server is given on the +command line, the `CATALOG_HOST` environment variable is used. If that is +unset, the default of `catalog.cse.nd.edu,backup-catalog.cse.nd.edu` This +could be written more verbosely as `catalog.cse.nd.edu:9097,backup-catalog.cse.nd.edu:9097` assuming the catalog port was not set in the +environment. + +## Querying Catalog Servers + +There are several ways to query a catalog server. If you are querying +specifically for Chirp servers or Work Queue applications, then use the +`chirp_status` or `work_queue_status` tools, which query the server and +display fields specific for those uses. + +To view all kinds of records in raw JSON format, use the `catalog_query` tool. +This can be used to simply dump all records in JSON format: + +```sh +catalog_query +``` + +Or, use the `--where` option to show only records matching an expression. (The +expression must be quoted to protect it from the shell.) + +For example, to show all records of catalog servers: + +```sh +catalog_query --where 'type=="catalog"' +``` + +Or to show all chirp servers with more than 4 cpus: + +```sh +catalog_query --where 'type=="chirp" && cpus > 4' +``` + +When any of these tools are configured with multiple servers, the program will +try each in succession until receiving an answer. If no servers give valid +responses, the query as a whole fails. The order in which servers are listed +sets the initial query order. If a server fails to respond, it will be marked +as down before trying the next server in the list. On subsequent queries, +servers that were down will not be tried unless every other server is non- +responsive. If in this scenario the previously down server answers the query, +it will be marked as up again and used with normal priority in future queries. + +## Updating Catalog Servers + +When any program is sending catalog updates, it will examine the environment +and/or configuration options to get a list of catalog servers in use. Updates +are then sent to every server listed. The program will consider it a success +if at least one update can be sent successfully. If DNS resolution fails for +every catalog server, for example, the program will report a failed update. + +If you are constructing your own service, you can use the `catalog_update` +program to construct a custom message and send it to the catalog server. To do +so, create a file containing a valid JSON object with the desired properties, +and then run `catalog_update`. For example: + +```json +cat > update.json << EOF +{ + "color" : "red", + "active" : true, + "size": 1200 +} +EOF +``` +```sh +catalog_update --catalog catalog.cse.nd.edu --file update.json +``` + +The `catalog_update` will insert into the object some additional basic +information about the node, such as the operating system, load average, and so +forth. When the update is received at the catalog server the name, address, +and port of the sender will be automatically overwritten, so it is not +possible to modify another machine's information. + +These updates must be repeated on a regular basis, typically every 5 minutes, +in order to keep the catalog up to date. If an update is not received after 15 +minutes, the entry is removed from the catalog. + +Catalog updates are now able to be compressed, limiting the possibility of +packets being dropped enroute to the catalog. To enable this set the +environment variable **CATALOG_COMPRESS_UPDATES** to **on**. + +Examples +CSH: +```csh +setenv CATALOG_COMPRESS_UPDATES on +``` + +Bash: +```sh +export CATALOG_COMPRESS_UPDATES=on +``` + +By default, catalog updates are sent via the UDP protocol, which is fast and +efficient for small ( <1KB) messages. If you have large messages or unusual +networking conditions, you can alternatively send catalog updates via TCP +instead. To do this, set the following environment variable: + +```sh +CATALOG_UPDATE_PROTOCOL=tcp +``` + +## Running a Catalog Server + +You may want to establish your own catalog server. This can be useful for +keeping your systems logically distinct from the main storage pool, but can +also help performance and availability if your catalog is close to your Chirp +servers. The catalog server is installed in the same place as the Chirp +server. Simply run it on any machine that you like and then direct your Chirp +servers to update the new catalog with the -u option. The catalog will be +published via HTTP on port 9097 of the catalog machine. + +For example, suppose that you wish to run a catalog server on a machine named +`dopey` and a Chirp server on a machine named `sneezy`: + +```sh +dopey$ catalog_server ... + +sneezy$ chirp_server -u dopey [more options] +``` + +Finally, point your web browser to: `http://dopey:9097` + +Or, set an environment variable and use Parrot: + +```bash +$ export CATALOG_HOST=dopey +$ parrot_run bash +$ ls /chirp +``` + +And you will see [something like this.](http://catalog.cse.nd.edu:9097) You +may easily run multiple catalogs for either scalability or fault tolerance. +Simply give each Chirp server the name of each running catalog separated by +commas, e.g. `$ chirp_server -u 'dopey,happy:9000,grumpy'` + +(Hint: If you want to ensure that your chirp and catalog servers run +continuously and are automatically restarted after an upgrade, consider using +[Watchdog](../watchdog).) + +## Further Information + +For more information, please see [Getting Help](../help) or visit the [Cooperative Computing Lab](http://ccl.cse.nd.edu) website. + +## Copyright + +CCTools is Copyright (C) 2019- The University of Notre Dame. This software is distributed under the GNU General Public License Version 2. See the file COPYING for +details. diff -Nru cctools-7.0.22/doc/manuals/chirp/chirp_protocol.md cctools-7.1.2/doc/manuals/chirp/chirp_protocol.md --- cctools-7.0.22/doc/manuals/chirp/chirp_protocol.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/chirp/chirp_protocol.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,650 @@ +# Chirp Protocol Version 2 + +## Introduction + +Chirp is a simple and lightweight remote I/O protocol with multiple +implementations. It is used in several distributed computing systems where +users wish to access data over the wide area using a Unix filesystem like +protocol. + +This document lays out the underlying protocol so as to promote +interoperability between implementations, and permit additional implementations +by other parties. + +At the time of writing, there are four independent implementations used for +both research and production: + +* A standalone C server and client maintained by Douglas Thain at the University of Notre Dame. +* A Java client implementation by Justin Wozniak used by the GEMS project at the University of Notre Dame. +* A C server and Java client embedded in the Condor distributed processing system at the University of Wisconsin. +* A C client implementation that is part of the ROOT I/O library used in the high energy physics community. + +## Authentication Protocol + +Chirp is carried over a stream protocol such as TCP or Unix domain sockets. A +server waits for a client to connect by the appropriate mechanism, and then +waits for the client to identify itself. There are currently two methods of +authentication: cookie authentication and negotiated authentication. + +### Cookie Authentication + +In certain situations, the client may be provided in advance with a "cookie" +that provides expedited access to a server with a fixed identity. This method +is typically used within Condor when communicating with the embedded Chirp +proxy. + +In this situation, the client is provided with a file named `chirp.config` +which contains the host and port of the server, and a cookie string. The +client must connect to the server and immediately send `cookie`, a space, the +cookie string, and a newline. If the response from the server is `0\n` then +the cookie is accepted, and the client may proceed to the main Chirp protocol +described below. Any other response indicates the cookie was rejected, and the +client must abort. + +### Negotiated Authentication + +In the general case, the client must prove its identity to the server. There +are several possible methods of authentication, and both client and server may +only accept some subset of them. The client drives the negotiation process by +simply sending the requested authentication type as a plain string followed by +a newline. If the server does not support the method, it responds `no\n` and +waits for the client to request another. If it does support the method, it +responds `yes\n` and then performs that method. At the time of writing, the +supported authentication methods are `hostname`, `unix`, `kerberos`, and +`globus`. + +In this example, a client first requests `kerberos` authentication, and then +`hostname`: + +``` +client: kerberos +server: no +client: unix +server: yes +``` + +#### Hostname Authentication + +This method of authentication simply asks that the server identify by the +client by the name of the host it is calling from. The server responds by +performing a remote domain name lookup on the caller's IP address. If this +succeeds, the server responds `yes\n`, otherwise `no\n` and fails (see below). +If the client is authorized to connect, the server sends an additional `yes\n` +otherwise `no\n` and fails. + +#### Unix Authentication + +This method of authentication causes the server the challenge the client to +prove its identity by creating a file on the local file system. The server +transmits the name of a non-existent file in a writable directory. The client +must then attempt to create it. If successful, the client should respond +`yes\n` otherwise `no\n` and fails. The server then checks that the file was +actually created, and if satisfied responds `yes\n` otherwise `no\n` and +fails. + +#### Kerberos Authentication + +This method is performed by invoking the standard Kerberos 5 libraries to +authenticate in the usual manner, and is defined by that standard. + +#### Globus Authentication + +This method is performed by invoking the Secure Sockets Layer to authenticate +using Globus credentials and is defined by that standard. + +### Completing Authentication + +If the authentication method succeeds, then the server will send two lines to +the client, giving the successful authentication method and the client's +identity. The client may then proceed to the main protocol below. If the +method fails, then the server and client return to negotiating a method. + +## Chirp Protocol + +A request consists of an LF-terminated line possibly followed by binary data. +At a minimum, a Chirp server must accept requests of 1024 characters. It may +accept longer lines. If a line exceeds a server's internal maximum, it must +gracefully consume the excess characters and return a TOO_BIG error code, +defined below. Certain requests are immediately followed by binary data. The +number of bytes is dependent on the semantics of the request, also described +below. + +A request is parsed into words separated by any amount of white space +consisting of spaces and tabs. The first word of the request is called the +"command" and the rest are called "arguments." + +Words fall into two categories: strings and decimals. A string is any +arbitrary sequence of characters, with whitespaces and unprintables encoding +according to RFC 2396. (Very briefly, RFC 2396 says that whitespace must be +encoding using a percent sign and two hex digits: `ab cd` becomes `ab%20cd`.) +A decimal is any sequence of the digits 0-9, optionally prefixed by a single + +or -. + +At the protocol level, words have no maximum size. They may stretch on to fill +any number of bytes. Of course, each implementation has limits on concepts +such a file name lengths and integer sizes. If a receiver cannot parse, store, +or execute a word contained in a request, it must gracefully consume the +excess characters and return a TOO_BIG error response, defined below. + +A response consists of an LF-terminated line, bearing an ASCII integer. A +valid response may also contain whitespace and additional optional material +following the response. If the response is greater than or equal to zero, the +response indicates the operation succeeded. If negative, the operation failed, +and the exact value tells why: + +| | | +|-|-| +-1 | NOT_AUTHENTICATED | The client has not authenticated its identity. +-2 | NOT_AUTHORIZED | The client is not authorized to perform that action. +-3 | DOESNT_EXIST | There is no object by that name. +-4 | ALREADY_EXISTS | There is already an object by that name. +-5 | TOO_BIG | That request is too big to execute. +-6 | NO_SPACE | There is not enough space to store that. +-7 | NO_MEMORY | The server is out of memory. +-8 | INVALID_REQUEST | The form of the request is invalid. +-9 | TOO_MANY_OPEN | There are too many resources in use. +-10 | BUSY | That object is in use by someone else. +-11 | TRY_AGAIN | A temporary condition prevented the request. +-12 | BAD_FD | The file descriptor requested is invalid. +-13 | IS_DIR | A file-only operation was attempted on a directory. +-14 | NOT_DIR | A directory operation was attempted on a file. +-15 | NOT_EMPTY | A directory cannot be removed because it is not empty. +-16 | CROSS_DEVICE_LINK | A hard link was attempted across devices. +-17 | OFFLINE | The requested resource is temporarily not available. +-127 | UNKNOWN | An unknown error occurred. + + +!!! note + Negative values beyond -17 are reserved for future expansion. The receipt + of such a values should be interpreted in the same way as UNKNOWN. + +## Chirp Commands + +Following are the available commands. Each argument to a command is specific +Here are the available commands that are standardized. Note that each +implementation may support some additional commands which are not (yet) +documented because they are still experimental. Each argument to a command is +specified with a type and a name. + +*** +```text +open (string:name) (string:flags) (decimal:mode) +``` + +Open the file named "name" "mode" is interpreted in the same +manner as a POSIX file mode. Note that the mode is printed in decimal +representation, although the UNIX custom is to use octal. For example, the +octal mode 0755, representing readable and executable by everyone would be +printed as 493. "flags" may contain any of these characters which affect the +nature of the call: + +| | | +|-|-| +r | open for reading +w | open for writing +a | force all writes to append +t | truncate before use +c | create if it doesn't exist +x | fail if 'c' is given and the file already exists + +The open command returns an integer file description which may be used with +later calls referring to open files. The implementation may optionally return +file metadata in the same form as the stat command, immediately following the +result. A client implementation must be prepared for both forms of result. + +On failure, returns a negative value in the response. Note that a file +descriptor returned by open only has meaning within the current connection +between the client and the server. If the connection is lost, the server will +implicitly close all open files. A file descriptor opened in one connection has +no meaning in another connection. + +*** +```text +close (decimal:fd) +``` + +Complete access to this file descriptor. If the connection between a client an server is lost, all files are implicitly closed. + +*** +```text +read (decimal:fd) (decimal:length) +``` + +Read up to __length__ bytes from the file descriptor __fd__. If successful, the +server may respond with any value between zero and __length__. Immediately +following the response will be binary data of exactly as many bytes indicated +in the response. If zero, the end of the file has been reached. If any other +value is given, no assumptions about the file size may be made. + +*** +```text +pread (decimal:fd) (decimal:length) (decimal:offset) +``` + +Read up to __length__ bytes from the file descriptor __fd__, starting at __offset__. Return value is identical to that of read. + +*** +```text +read (decimal:fd) (decimal:length) (decimal:offset) (decimal:stride_length) (decimal:stride_skip) +``` + +Read up to __length__ bytes from the file descriptor __fd__, starting at +__offset__, retrieving __stride_length__ bytes every __stride_skip__ bytes. +Return value is identical to that of read. + +*** +```text +write (decimal:fd) (decimal:length) +``` + +Write up to __length__ bytes to the file descriptor __fd.__ This request should +be immediately followed by __length__ binary bytes. If successful, may return +any value between 0 and __length,__ indicating the number of bytes actually +accepted for writing. An efficient server should avoid accepting fewer bytes +than requested, but the client must be prepared for this possibility. + +*** +```text +pwrite (decimal:fd) (decimal:length) (decimal:offset) +``` + +Write up to __length__ bytes to the file descriptor __fd__ at offset +__offset__. Return value is identical to that of write. + +*** +```text +swrite (decimal:fd) (decimal:length) (decimal:offset) (decimal:stride_length) (decimal:stride_skip) +``` + +Write up to __length__ bytes to the file descriptor __fd__, starting at +__offset__, writing __stride_length__ bytes every __stride_skip__ bytes. Return +value is identical to that of write. + +*** +```text +fstat (decimal:fd) +``` + +Get metadata. + +*** +```text +fsync (decimal:fd) +``` + +Block until all uncommitted changes to this file descriptor have been written +to stable storage. + +*** +```text +lseek (decimal:fd) (decimal:offset) (decimal:whence) +``` + +Move the current seek pointer of __fd__ by __offset__ bytes from the base given +by __whence.__ __whence__ may be: + +| | | +|-|-| +| 0 | from the beginning of the file +| 1 | from the current seek position +| 2 | from the end of the file. + +Returns the current seek position. + + +*** +```text +rename (string:oldpath) (string:newpath) +``` + +Rename the file __oldpath__ to be renamed to __newpath__. + +*** +```text +unlink (string:path) +``` + +Delete the file named __path__. + +*** +```text +rmdir (string:path) +``` + +Delete a directory by this name. + +*** +```text +rmall (string:path) +``` + +Recursively delete an entire directory. + +*** +```text +mkdir (string:name) (decimal:mode) +``` + +Create a new directory by this name. __mode__ is interpreted in the same manner +as a POSIX file mode. Note that mode is expressed in decimal rather than octal +form. + +*** +```text +fstat (decimal:fd) +``` + +Get metadata describing an open file. If the response line indicates success, it is followed by a second line of thirteen integer values, indicating the following values: + +| | | +|-|-| +| st_dev | Device number. +| st_ino | Inode number +| st_mode | Mode bits. +| st_nlink | Number of hard links. +| st_uid | User ID of the file's owner. +| st_gid | Group ID of the file. +| st_rdev | Device number, if this file represents a device. +| st_size | Size of the file in bytes. +| st_blksize | Recommended transfer block size for accessing this file. +| st_blocks | Number of physical blocks consumed by this file. +| st_atime | Last time file was accessed in Unix time() format. +| st_mtime | Last time file data was modified in Unix time() format. +| st_ctime | Last time the inode was changed, in Unix time() format. + +!!! note + Note that not all fields may have meaning to all implementations. For + example, in the standalone Chirp server, st_uid has no bearing on access + control, and the user should employ setacl and getacl instead. + + +*** +```text +fstatfs (string:path) +``` + +Get filesystem metadata for an open file. If the response line indicates +success, it is followed by a second line of seven decimals with the following +interpretation: + +| | | +|-|-| +| f_type | The integer type of the filesystem. +| f_blocks | The total number of blocks in the filesystem. +| f_bavail | The number of blocks available to an ordinary user. +| f_bsize | The size in bytes of a block. +| f_bfree | The number of blocks free. +| f_files | The maximum number of files (inodes) on the filesystem. +| f_ffree | The number of files (inodes) currently in use. + +*** +```text +fchown (decimal:fd) (decimal:uid) (decimal:gid) +``` + +Change the ownership of an open file to the UID and GID indicated. + + +*** +```text +fchmod (decimal:fd) (decimal:mode) +``` + +Change the Unix mode bits on an open file. + + +*** +```text +ftruncate (decimal:fd) (decimal:length) +``` + +Truncate an open file. + + +*** +```text +getfile (string:path) +``` + +Retrieves an entire file efficiently. A positive response indicates the number +of bytes in the file, and is followed by exactly that many bytes of binary data +which are the file's contents. + +*** +```text +putfile (string:path) (decimal:mode) (decimal:length) +``` + +Stores an entire file efficiently. The client first sends the request line +indicating the file name, the desired mode bits, and the length in bytes. The +response indicates whether the client may proceed. If it indicates success, the +client must write exactly __length__ bytes of data, which are the file's +contents. If the response indicates failure, the client must not send any +additional data. + +*** +```text +getlongdir (string:path) +``` + +Lists a directory and all metadata. If the response indicates success, it will +be followed by a series of lines, alternating the name of a directory entry +with its metadata in the same form as returned by fstat. The end of the list is +indicated by a single blank line. + + +*** +```text +getdir (string:path) +``` + +Lists a directory. If the response indicates success, it will be followed by a +series of lines indicating the name of each directory entry. The end of the +list is indicated by a single blank line. + + +*** +```text +getacl (string:path) +``` + +Get an access control list. If the response indicates success, it will be +followed by a series of lines indicating each entry of the access control list. +The end of the list is indicated by a single blank line. + + +*** +```text +setacl (string:path) (string:subject) (string:rights) +``` + +Modify an access control list. On an object identified by path, set rights +rights for a given subject. The string __-__ (a single hyphen) may be used to +indicate no rights. + + +*** +```text +whoami +``` + +Get the user's current identity with respect to this server. If the response is +greater than zero, it is followed by exactly that many bytes in data, +containing the user's identity. + + +*** +```text +whoareyou (string:rhost) +``` + +Get the server's current identity with respect to a remote host. If the +response is greater than zero, it is followed by exactly that many bytes in +data, containing the server's identity. + +*** +```text +link (string:oldpath) (string:newpath) +``` + +Create a hard link from newpath to oldpath. + + +*** +```text +symlink (string:oldpath) (string:newpath) +``` + +Create a symlink from newpath to oldpath. + + +*** +```text +readlink (string:path) +``` + +Read the contents of a symbolic link. If the response is greater than zero, it +is followed by exactly that many bytes in data, containing the contents of the +link. + + +*** +```text +mkdir (string:path) (decimal:mode) +``` + +Create a new directory with the given Unix mode bits. + + +*** +```text +stat (string:path) +``` + +Get file status. If the response indicates success, it is followed by a second +line in the same format as the command fstat. If the pathname represents a +symbolic link, this command examines the target of the link. + + +*** +```text +lstat (string:path) +``` + +Get file status. If the response indicates success, it is followed by a second +line in the same format as the command fstat. If the pathname represents a +symbolic link, this command examines the link itself. + + +*** +```text +statfs (string:path) +``` + +Get filesystem status. If the response indicates success, it is followed by a +second line in the same format as the command fstatfs. + + +*** +```text +access (string:path) (decimal:mode) +``` + +Check access permissions. Returns success if the user may access the file +according to the specified mode. The __mode__ may be any of the values logical-or'd together: + +| | | +|-|-| +| 0 | Test for existence of the file. (F_OK) +| 1 | Test if the file is executable. (X_OK) +| 2 | Test if the file is readable. (W_OK) +| 4 | Test if the file is executable. (R_OK) + +*** +```text +chmod (string:path) (decimal:mode) +``` + +Change the Unix mode bits on a given path. ([Note 1.](#note-1)) + + +*** +```text +chown (string:path) (decimal:uid) (decimal:gid) +``` + +Change the Unix UID or GID on a given path. If the path is a symbolic link, +change its target. ([Note 1.](#note-1)) + +*** +```text +lchown (string:path) (decimal:uid) (decimal:gid) +``` + +Change the Unix UID or GID on a given path. If the path is a symbolic link, +change the link. ([Note 1.](#note-1)) + +*** +```text +truncate (string:path) (decimal:length) +``` + +Truncate a file to a given number of bytes. + + +*** +```text +utime (string:path) (decimal:actime) (decimal:mtime) +``` + +Change the access and modification times of a file. + + +*** +```text +md5 (string:path) +``` + +Checksum a remote file using the MD5 message digest algorithm. If successful, +the response will be 16, and will be followed by 16 bytes of data representing +the checksum in binary form. + + +*** +```text +thirdput (string:path) (string:remotehost) (string:remotepath) +``` + +Direct the server to transfer the path to a remote host and remote path. If the +indicated path is a directory, it will be transferred recursively, preserving +metadata such as access control lists. + + +*** +```text +mkalloc (string:path) (decimal:size) (decimal:mode) +``` + +Create a new space allocation at the given path that can contain __size__ bytes of data and has initial mode of __mode__. + +*** +```text +lsalloc (string:path) +``` + +List the space allocation state on a directory. If the response indicates +success, it is followed by a second line which gives the path of the containing +allocation, the total size of the allocation, and the + + +## Notes + +### Note 1 + +The standalone Chirp server ignores the traditional Unix mode bits when +performing access control. Calls such as fchmod, chmod, chown, and fchown are +essentially ignored, and the caller should employ setacl and getacl instead. + + +**Last edited: August 2019** + diff -Nru cctools-7.0.22/doc/manuals/chirp/index.md cctools-7.1.2/doc/manuals/chirp/index.md --- cctools-7.0.22/doc/manuals/chirp/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/chirp/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,1191 @@ +# Chirp User's Manual + + +## Overview + +Chirp is a system for performing input and output across the Internet. Using +Chirp, an ordinary user can share storage space and data with friends and +colleagues without requiring any sort of administrator privileges anywhere. + +Chirp is like a distributed filesystem (such as NFS) except that it can be run +over wide area networks and requires no special privileges on either the +client or the server end. Chirp allows the end user to set up fine-grained +access control so that data can be shared (or not shared) with the right +people. + +Chirp is also like a file transfer system (such as FTP) that provides +streaming point-to-point data transfer over the Internet. However, Chirp also +provides fine-grained Unix-like data access suitable for direct access by +ordinary programs. + +Chirp also includes several advanced features for authentication tickets, +space allocation, and more. However, each of these features must be explicitly +enabled, so you don't have to worry about them if all you want is simple +storage access. Read on below for more details. + +## Getting Started + +### Installing + +See the [Installation Instructions](../install) for the Cooperative Computing Tools package. Then, Make sure to set your `PATH` appropriately. + +### Running a Chirp Server + +Running a Chirp server is easy. You may run a Chirp server as any ordinary +user, and you do **not** need to install the software or even run the programs +as root. To run a Chirp server, you must do three things: pick a storage +directory, run the server, and then adjust the access control. + +- **Pick a storage directory.** The Chirp server will only allow access to the + directory that you choose. It could be a scratch directory, your home + directory, or even your filesystem root. For now, let's store everything in a + temporary directory: `/tmp/mydata` + +- **Run the server.** Run `chirp_server` and direct it to your storage directory: + +```sh +$ chirp_server -r /tmp/mydata & +``` + +- *Adjust the access control.** When first started, the Chirp server will allow + access only to YOU from the same host. You will probably want to change this + to allow access to other people and hosts. To adjust the access control, use + the ` chirp` tool and the `setacl` command to set the access control list. + For example, to also allow other hosts in your domain to read and write the + server: + +```sh +$ chirp localhost +chirp:localhost:/> +chirp:localhost:/> setacl . hostname:*.mydomain.edu write +``` + +Now that you have a server running on one machine, let's use some tools to +move data to and from your server. + +## Accessing Chirp Servers + +The easiest way to access Chirp servers is by using a tool called +**[Parrot](http://ccl.cse.nd.edu/software/parrot)**. Parrot is a personal +virtual filesystem: it "speaks" remote I/O operations on behalf of ordinary +programs. For example, you can use Parrot with your regular shell to list and +access Chirp servers like so: + +```sh +$ parrot_run bash +$ cd /chirp +$ ls angband.somewhere.edu:9094 dustpuppy.somewhere.edu:9094 peanuts.somewhere.edu:9094 ... +$ cd /chirp/peanuts.somewhere.edu +$ cp /tmp/bigfile . +$ ls -la + +total 804 +drwx------ 2 fred users 4096 Sep 10 12:40 . +drwx------ 2 fred users 4096 Sep 10 12:40 .. +-rw-r--r-- 1 fred users 104857600 Sep 10 12:57 bigfile +-rw-r--r-- 1 fred users 147 Sep 10 12:39 hosts + +$ parrot_getacl unix:fred rwlda hostname:hedwig rl ... +``` + +If you are having difficulting accessing your server, have a look at +[debugging hints](#debugging-advice) below. + +Parrot is certainly the most convenient way to access storage, but it has some +limitations: it only works on Linux, and it imposes some performance penalty. + +You can also attach to Chirp filesystems by using the FUSE package to attach +Chirp as a kernel filesystem module. Unlike Parrot, this requires superuser +privileges to install the FUSE package, but will likely work more reliably on +a larger number of programs. You can do this with either [Linux FUSE](http://fuse.sourceforge.net) or +[MacFuse](http://code.google.com/p/macfuse). Once you have downloaded and +installed FUSE, simply run `chirp_fuse` with the name of a directory on which +the filesystem should be mounted. For example: + +```sh +$ mkdir /tmp/chirp +$ chirp_fuse /tmp/chirp +$ cd /tmp/chirp +$ ls -la +total 9742 +dr-xr-xr-x 0 fred users 6697 Feb 22 13:54 albus.cse.nd.edu:9094 +dr-xr-xr-x 0 fred users 6780 Feb 22 13:54 aluminum.helios.nd.edu:9094 +dr-xr-xr-x 0 fred users 27956 Feb 22 13:54 angband.cse.nd.edu:9094 +dr-xr-xr-x 0 fred users 6466 Feb 22 13:54 angelico.helios.nd.edu:9094 +``` + +For more portable, explicit control of a Chirp server, use the Chirp command +line tool. This allows you to connect to a server, copy files, and manage +directories, much like an FTP client: + +```sh +$ chirp +chirp::> open myhost.somewhere.edu +chirp:myhost.somewhere.edu:/> put /tmp/bigfile file +/tmp/bigfile -> /bigfile (11.01 MB/s) +chirp:myhost.somewhere.edu:/> ls -la +dir 4096 . Fri Sep 10 12:40:27 2018 +dir 4096 .. Fri Sep 10 12:40:27 2018 +file 147 hosts Fri Sep 10 12:39:54 2018 +file 104857600 bigfile Fri Sep 10 12:53:21 2018 +chirp:myhost.somewhere.edu:/> +``` + +In scripts, you may find it easier to use the standalone commands `chirp_get` +and `chirp_put`, which move single files to and from a Chirp server. These +commands also allow for streaming data, which can be helpful in a shell +pipeline. Also, the `-f` option to both commands allows you to follow a file, +much like the Unix `tail` command: + +```sh +$ tar cvzf archive.tar.gz ~/mydata +$ chirp_put archive.tar.gz myhost.somewhere.edu archive.tar.gz + +$ chirp_get myhost.somewhere.edu archive.tar.gz - | tar xv + +$ chirp_get -f myhost.somewhere.edu logfile - |& less +``` + +You can also write programs that access the Chirp C interface directly. This +interface is relatively self explanatory: programs written to use this library +may perform explicit I/O operations in a manner very similar to Unix. For more +information, see the [HOWTO: Write Code that Uses Chirp](http://ccl.cse.nd.edu/software/howto/code.shtml) + +## Finding Chirp Servers + +Now that you know how to run and use Chirp servers, you will need a way to +keep track of all of the servers that are available for use. For this purpose, +consult the Chirp [storage catalog](http://catalog.cse.nd.edu:9097). This web +page is a list of all known Chirp servers and their locations. Note that this +same list appears if you use Parrot to perform an `ls` on `/chirp` + +The storage catalog is highly dynamic. By default, each Chirp server makes +itself known to the storage catalog every five minutes. The catalog server +records and reports all Chirp servers that it knows about, but will discard +servers that have not reported for fifteen minutes. + +If you **do not** want your servers to report to a catalog, then run them +setting the option `-u` to `-`: + +```sh +$ chirp_server -u - +``` + +Alternatively, you may establish your own catalog server. See [Catalog +Servers](../catalog) for details. + +## Security + +Different sites require different levels of security and +different technological methods of enforcing security. For these reasons, +Chirp has a very flexible security system that allows for a range of tools and +policies from simple address checks to Kerberos authentiation. + +Security really has two aspects: authentication and authorization. +Authentication deals with the question __Who are you?__ Once your identity has +been established, then authorization deals with the question __What are you +allowed to do?__: + +### Authentication + +Chirp supports the following authentication schemes: + +|**Type**| **Summary**| **Regular User?**| **Root?** | +|----|----|----|----| +| | | (non-root)| (root) | +| kerberos | Centralized private key system| no | yes (host cert) | +globus | Distributed public key system| yes (user cert) | yes (host cert) | +unix | Authenticate with local unix user ids. | yes | yes | +| hostname | Reverse DNS lookup | yes | yes | +| address | Identify by IP address | yes | yes | + +The Chirp tools will attempt all of the authentication types that are known +and available in the order above until one works. For example, if you have +Kerberos installed in your system, Chirp will try that first. If not, Chirp +attempts the others. + +Once an authentication scheme has succeeded, Chirp assigns the incoming user a +**subject** that describes both the authentication method and the user name +within that method. For example, a user that authenticates via Kerberos might +have the subject: + +`kerberos:dthain@nd.edu` + +A user authenticating with Globus credentials might be: +(Note that Chirp substitutes underscores for spaces.) + +`globus:/O=Cooperative_Computing_Lab/CN=Douglas_L_Thain` + +While another user authenticating by local unix ids might be: + +`unix:dthain` + +While a user authenticating by simple hostnames might be: + +`hostname:pigwidgeon.cse.nd.edu` + +Take note that Chirp considers all of the subjects as different identities, +although some of them might correspond to the same person in varying +circumstances. + +### Authorization + +Once Chirp has authenticated your identity, you are logged into a server. +However, when you attempt to read or manipulate files on a server, Chirp +checks to see whether you are authorized to do so. This is determined by +**access control lists** or **ACLs**. + +Every directory in a Chirp server has an ACL, much like filesystems such as as +AFS or NTFS. To see the ACL for a directory, use the Chirp tool and the ` +getacl` command: + +```sh +chirp:host.mydomain.edu:/> getacl +unix:dthain rwlda hostname:*.mydomain.edu rwl +``` + +Or, if you are using Parrot, you can use `parrot_getacl` to examine ACLs in +the same way: + +```sh +$ parrot_run bash +$ cd /chirp/host.mydomain.edu +$ parrot_getacl +unix:dthain rwlda hostname:*.mydomain.edu rwl +``` + +This ACL indicates that the subject `unix:dthain` has five access rights, +while the subject pattern `hostname:*.mydomain.edu` has only three access +rights. The access rights are as follows: + +| | | +|---|---| +| **r** | The subject may read items in the directory. | +| **w** | The subject may write items in the directory. | +| **l** | The subject may list the directory contents. | +| **d** | The subject may delete items in the directory. | +| **p** | The subject may put new files into the directory. | +| **a** | The subject may administer the directory, including changing the ACL. | +| **x** | The subject may execute programs in the directory. | +| **v** | The subject may reserve a directory. | + +Access rights often come in combinations, so there are a few aliases for your +convenience: + +| | | +|---|---| +| **read** | alias for **rl** +| **write** | alias for **rwld** +| **admin** | alias for **rwlda** +| **none** | delete the entry + +To change an access control list on a directory, use the `setacl` command in +the Chirp command line tool: + +```sh +chirp:host.mydomain.edu:/> setacl / kerberos:dthain@nd.edu write +chirp:host.mydomain.edu:/> getacl +unix:dthain rwlda hostname:*.mydomain.edu rwl kerberos:dthain@nd.edu rwld +``` + +Note that for subject names that contain spaces, you should simply substitute +underscores. For example, if your subject name is `/O=Univ of Somewhere/CN=Fred Flint`, then you might issue a `setacl` command like this: + +```sh +chirp:host.mydomain.edu:/> setacl / /O=Univ_of_Somewhere/CN=Fred_Flint rwlda +``` + +Or, you can accomplish the same thing using `parrot_setacl` inside of Parrot: + +```sh +$ parrot_run bash +$ cd /chirp/host.mydomain.edu $ parrot_setacl . /O=Univ_of_Somewhere/CN=Fred_Flint rwlda +``` + +The meaning of ACLs is fairly obvious, but there are few subtleties you should +know: + +- **Rights are generally inherited.** When a new directory is created, it + automatically gets the ACL of its parent. Exception: read about the + **reserve** right below. + +- **Rights are generally not hierarchical.** In order to access a directory, + you only need the appropriate permissions on _that_ directory. For example, + if you have permission to write to ` /data/x/y/z`, you do **not** need any + other permissions on ` /data`, `/data/x` and so forth. Of course, it may + be difficult to discover a deep directory without rights on the parents, + but you can still access it. + +- **The delete right is absolute.** If you have permission to delete a + directory, then you are able to delete the _entire_ subtree that it contains, + regardless of any other ACLs underneath. + +!!! note + It is possible to use Chirp to export an existing directory tree without + manually populating every directory with ACLs. Simply create an ACL in an + external file, and then use the -A option to tell the Chirp server to use + that file as the default ACL. + +### Reservation + +The **v - reserve** right is an important concept that deserves its own +discussion. + +A shared-storage environment such as Chirp aims to allow many people to read +and write common storage space. Of course, with many people reading and +writing, we need some mechanism to make sure that everybody does not step on +each other's toes. + +The **reserve** right allows a user to create what is essentially a fresh +workspace for their own use. When a user creates a new directory and has the +**v** right (but not the **w** right), Chirp will create a new directory with +a fresh ACL that gives the creating user restricted rights. + +A good way to use the reserve right is with a wildcard at the top directory. +Here's an example. Suppose that Fred creates a new Chirp server on the host +`bigwig`. Initially, no-one except Fred can access the server. The first time +it starts, the Chirp server initializes its root directory with the following +ACL: + +`unix:fred rwla` + +Now, Fred wants other users in his organization to be able to use this +storage, but doesn't want them messing up his existing data. So, Fred uses the +Chirp tool to give the list ( **l** ) and reserve ( **v** ) rights to anyone +calling from any machine in his organization: + +```sh +chirp:bigwig:/> setacl / hostname:*.somewhere.edu lv(rwlda) +chirp:bigwig:/> getacl / +unix:fred rwlda hostname:*.somewhere.edu lv(rwlda) +``` + +Now, any user calling from anywhere in `somewhere.edu` can access this server. +But, all that any user can do is issue `ls` or `mkdir` in the root directory. +For example, suppose that Betty logs into this server from +`ws1.somewhere.edu`. She can not modify the root directory, but she can create +her own directory: + +```sh +chirp:bigwig:/> mkdir /mydata +``` + +And, in the new directory, `ws1.somewhere.edu` can do anything, including edit +the access control. Here is the new ACL for `/mydata`: + +```sh +chirp:bigwig:/> getacl /mydata +hostname:ws1.somewhere.edu rwlda +``` + +If Betty wants to authenticate with Globus credentials from here on, she can +change the access control as follows: + +```sh +chirp:bigwig:/> setacl /mydata globus:/O=Univ_of_Somewhere/CN=Betty rwla +``` + +And, the new acl will look as follows: + +```sh +chirp:bigwig:/> getacl /mydata +hostname:ws1.somewhere.edu rwlda globus:/O=Univ_of_Somewhere/CN=Betty rwla +``` + +### Simple Group Management + +Chirp currently supports a simple group management system based on files. +Create a directory on your local filesystem in which to store the groups. Each +file in the directory will have the name of the desired groups, and contain a +list of the members of the group in plain text format. Then, give your Chirp +server the `-G` argument to indicate the URL of the group directory. Once the +groups are defined, you can refer to them in access control lists using the +`group:` prefix. + +For example, suppose you wish to have two groups named `group:students` and +`group:faculty`. You could define the groups in the `/data/groups` directory +as follows: + +```sh +/data/groups/students: unix:astudent unix:bstudent +/data/groups/faculty: unix:aprof unix:bprof +``` + +Then, run the chirp server with the option `-G file:///data/groups`. (Notice +the URL syntax.) Then, to make a directory `/homework` that is readable by +students and writable by faculty, do this: + +```sh +chirp:bigwig:/> mkdir /homework +chirp:bigwig:/> setacl /homework group:students rl +chirp:bigwig:/> setacl /homework group:faculty rwld +``` + +If the groups are to be shared among many Chirp servers, place the group +directory on a web server and refer to it via an `http` URL. + +### Notes on Authentication + +Each of the authentication types has a few things you should know: + +- **Kerberos:** The server will attempt to use the Kerberos identity of the + host it is run on. (i.e. host/coral.cs.wisc.edu@CS.WISC.EDU) Thus, it must be + run as the superuser in order to access its certificates. Once authentication + is complete, there is no need for the server to keep its root access, so it + will change to any unprivileged user that you like. Use the ` -i` option to + select the userid. + +- **Globus:** The server and client will attempt to perform client + authentication using the Grid Security Infrastructure (GSI)> Both sides will + load either user or host credentials, depending on what is available. If the + server is running as an ordinary user, then you must give a it a proxy + certificate with grid-proxy-init. Or, the server can be run as root and will + use host certificates in the usual place. + +- **Unix:** This method makes use of a challenge-response in the local Unix + filesystem to determine the client's Unix identity. It assumes that both + machines share the same conception of the user database and have a common + directory which they can read and write. By default, the server will pick a + filename in /tmp, and challenge the client to create that file. If it can, + then the server will examine the owner of the file to determine the client's + username. Naturally, /tmp will only be available to clients on the same + machine. However, if a shared filesystem directory is available, give that to + the chirp server via the -c option. Then, any authorized client of the + filesystem can authenticate to the server. + For example, at Notre Dame, we use + `-c /afs/group/ccl/software/rendezvous` to authenticate via our AFS + distributed file system. + +- **Hostname:** The server will rely on a reverse DNS lookup to establish the + fully-qualified hostname of the calling client. The second field gives the + hostname to be accepted. It may contain an asterisk as a wildcard. The third + field is ignored. The fourth field is then used to select an appropriate + local username. + +- **Address:** Like "hostname" authentication, except the server simply looks + at the client's IP address. + +By default, Chirp and/or Parrot will attempt every authentication type knows +until one succeeds. If you wish to restrict or re-order the authentication +types used, give one or more **-a** options to the client, naming the +authentication types to be used, in order. For example, to attempt only +hostname and kerberos authentication, in that order: + +```sh +$ chirp -a hostname -a kerberos +``` + +## Advanced Topics + +### Cluster Management + +Several tools are available for managing a large cluster of Chirp servers. + +First, a [Java visual display applet](http://ccl.cse.nd.edu/viz) gives a +graphical view of all servers in a cluster, as well as active network +connections between each client and server. This tool can be used to quickly +view whether storage is free or used, whether CPUs are idle or busy, and +whether the network is idle or in use. Clicking on individual nodes shows the +same detailed data as is avaliable in the [catalog +page](http://catalog.cse.nd.edu:9097). + +Next, it can be helpful to give a single 'superuser' limited access to all +servers and directories in a cluster, allowing them to fix broken access +controls and solve other problems. To allow this, the `-P user` argument can +be given to a Chirp server, and will implicitly give the named user the **L** +and **A** rights on any directory on that server. + +When managing a large system with many users, it is important to keep track of +what users are employing the cluster, and how much space they have consumed. +We refer to this as **auditing** the cluster. To audit a single node, use the +`audit` command of the Chirp tool. This produces a listing of all users of a +single host. (You must have the `A` right in the root directory of the server +to run this command.) For example: + +```sh +$ chirp ccl01.cse.nd.edu audit +FILES DIRS DATA OWNER +82842 27 5.0 GB globus:/O=UnivNowhere/CN=Fred + 6153 607 503.4 MB unix:fred 2 2 200.3 MB hostname:laptop.nowhere.edu 12 2 3.9 MB unix:betty +``` + +To audit an entire cluster, run the `chirp_audit_cluster` tool. This will +extract the current list of hosts from your catalog, run an audit on all hosts +in parallel, and then produce several reports in text files: +`audit.users.txt`, `audit.hosts.txt`, `audit.users.hosts.txt`, and +`audit.hosts.users.txt`. + +Often, users of a cluster will wish to replicate commonly used data across all +disks in the system, perhaps to provide fast access to relatively static data. +The `chirp_distribute` tool can be used to rapidly move data from one node to +all others. Given a source host and path, `chirp_distribute` will create a +spanning tree and then move data directly from host to host in parallel. This +is much faster than running `cp` or `chirp put` directly. For example, this +will copy the `/database` directory from host `server.nd.edu` to all hosts in +your cluster: + +```sh +# First we get a list of all the chirp hosts in the cluster: +ALL_CHIRP_HOSTS=$(chirp_status -s) + +# Then we use chirp_distribute to copy /database to all the hosts found: +$ chirp_distribute server.nd.edu /database $ALL_CHIRP_HOSTS +``` + +Another common pattern is cleaning up data that has been copied this way. To +delete, simply run `chirp_distribute` again with the `-X` option and the same +arguments, that is: + +```sh +$ chirp_distribute -X server.nd.edu /database $ALL_CHIRP_HOSTS +``` + +### Space Management + +When multiple users share a common storage space, there is the danger that one +aggressive user can accidentally (or deliberately) consume all available +storage and prevent other work from happening. Chirp has two mechanisms +available to deal with this problem. + +The simpler tool is just a free space limit. If run with the `-F` option, a +Chirp server will stop consuming space when the free space on the disk falls +below this limit. External users will see a `"No space left on device."` +error. For example, `-F 100MB` will leave a minimum of 100MB free on the local +disk. This mechanism imposes little or no performance penalty on the server. + +The more complex tool is a user-level quota and allocation system. If run with +the `-Q` option, a Chirp server will establish a software quota for all +external users. That is, `-Q 2GB` will limit external users to consuming a +total of 2 GB of storage within a single Chirp server. This mechanism imposes +some run-time performance penalty, and also delays server startup somewhere: +the Chirp server must traverse its storage directory to count up the available +space. + +With the `-Q` option enabled, external users can `allocate` space before +consuming it. Using the Chirp tools, users may use the `mkalloc` command to +create new directories with an attached space allocation. For example, +`mkalloc /mydata 1GB` will create a new directory `/mydata` with an allocation +of 1GB. This allocation is a _limit_ that prevents files in that directory +from consuming more than 1GB; it is also a _guarantee_ that other users of the +server will not be able to steal the space. Such allocations may also be +subdivided by using ` mkalloc` to create sub-directories. + +!!! note + Users employing Parrot can also use the `parrot_mkalloc` and + `parrot_lsalloc` commands in ordinary scripts to achieve the same effect. + +To examine an allocation, use the `lsalloc` command. + +To destroy an allocation, simply delete the corresponding directory. + + +### Ticket Authentication + +Often a user will want to access a Chirp server storing files for cluster +computing jobs but will have difficulty accessing it securely without +transferring their credentials with the jobs dispatched to the cluster. To +facilitate ease-of-use, users typically solve this by giving rights to a +hostname mask (e.g. _*.cse.nd.edu_ ) on the Chirp server. However, this level +of access can be innappropriate due to sensitive data. Instead, these users +are forced to use difficult authentication methods such as Globus or Kerberos +for running the Chirp server. They may also use a virtual network solution but +users typically lack this amount of control on clusters. To provide an easy +solution to this problem, Chirp offers its own ticket based authentication +system which is convenient and simple to setup. + +To start, users may create a ticket for authentication using: + +```sh +$ chirp ticket_create -output myticket.ticket -subject unix:USER -bits 1024 -duration 86400 / rl /foo rwl +``` + +This command performs multiple tasks in three stages: + +First, it creates a ticket which is composed of an RSA Private Key with a key +(modulus) size of 1024 bits. When we refer to the ticket, we are speaking of +this Private Key. By default, the ticket file generated is named +**ticket.MD5SUM** where **MD5SUM** is the MD5 digest of the Public Key of the +ticket. + +Once the ticket is created, it is registered with the Chirp server with a +validity period in seconds defined by the duration option (86400, or a day). +The `-subject unix:USER` switch allows the user to set the ticket for another +user with unix id USER; however, only the **chirp_server** superuser (-P) may set tickets for +any subject. For regular users, the -subject option is unnecessary as it is by +default the subject you possess when registering the ticket. Users who +authenticate using this ticket in the future will become this subject with +certain masked rights. + +Once the ticket is created and registered, we give the ticket a set of _ACL +masks_. The ACL mask will mask the rights of the ticket-authenticated user +with the rights of the subject that registered the ticket. For example, if a +user named _foo_ (subject is ` unix:foo`) has rights **rwl** in the root +directory of the Chirp server and if a ticket is registered for _foo_ with the +ACL mask ` / rlx`, the effective rights of the ticket-authenticated user is +**rl** in the root directory. + +ACL masks are also inherited from parent directories. So, in the above +example, the root directory has the ACL mask **rl** while the foo directory +has the ACL mask **rwl**. Other nested directories within the root directory +also inherit the **rl** mask. Similarly, nested directories of the foo +directory inherit the **rwl** mask. We emphasize that the ACL mask does not +give rights but limits them. If the user that registers a ticket has no rights +in a directory, then neither will the ticket authenticated user. + +#### Authenticating with a ticket + +To authenticate using a ticket, it can be as simple as including the ticket +file with your job. Tickets that follow the **ticket.MD5SUM** template are +automatically added to the list of tickets to try when authenticating. You can +also give specific tickets to authenticate with using a comma-delimited list +of ticket filenames in either the **CHIRP_CLIENT_TICKETS** environment +variable or via the **-i ** option. Tickets are tried in the order +they are specified. + +```sh +$ chirp +``` + +The above command will try ticket authentication as a last resort but will use +tickets it finds in the current directory following the template. + +```sh +$ chirp -a ticket -i file.ticket +``` + +The above command forces ticket authentication and only uses the +**file.ticket** ticket to authenticate. + +Authenticating is this simple. It is important to note that tickets are +obviously not protected in any way from theft when you distribute the ticket +with jobs in a distributed computing environment (no ticket system can give +this guarantee). Users may want to protect their tickets in basic ways by +setting a restrictive file mode and by giving tickets a limited duration on +the server. + +Finally, users should be careful to experiment with small key sizes for a +balance of quick authentication and security. Smaller key sizes may be +rejected outright by openssl when given a 64 byte challenge to sign. Chirp +will not authenticate or use smaller challenge sizes if openssl rejects the +ticket. + +#### Manually Registering a Ticket + +A ticket is only useful when registered with a server. The ticket_create +command does this for you automatically but you may also wish to register the +ticket with multiple servers. To do this, you can manually register a ticket +that is already created by using the `ticket_register` command: + +```sh +$ chirp ticket_register myticket.ticket unix:user 86400 +``` + +The first argument to `ticket_register` is the name of the ticket, followed by +the subject, and finally the ticket duration. The second option (the subject) +is optional. As described earlier, specifying the subject allows you to +register a ticket with a user other than yourself. This is only possible if +you are authenticated with the server as the super user. + +#### Modifying the Rights of a Ticket + +You may use the `ticket_modify` command to change the rights a ticket has in a +directory. You are restricted to giving rights to a ticket you already +possess. Recall, however, that the rights are actually a mask that are +logically ANDed with the rights the user has at the time. + +```sh +$ chirp ticket_modify myticket.ticket / rl +``` + +The above command changes the ACL mask of `myticket.ticket` to `rl` in the +root directory. + +A ticket identifier as returned by `ticket_list` may also be used instead of a +ticket filename. + + +#### Deleting a Ticket + +Deleting a ticket unregisters the ticket with the server. Additionally, the +ticket on the client is deleted. + +```sh +$ chirp ticket_delete myticket.ticket +``` + +A ticket identifier as returned by `ticket_list` may also be used instead of a +ticket filename. + +### Listing the Registered Tickets on the Server + +To list the tickets registered on a server, use the `ticket_list` command: + +```sh +$ chirp ticket_list unix:user +``` + +The subject argument instructs the command to fetch all the tickets belonging +to the user. You may also use `ticket_list all` to list all the tickets of all +users on the server. The latter command is only executable by the Chirp super +user. The output is a list of tickets identifiers. You can query information +about a ticket using these identifiers with the `ticket_get` command. + + +#### Getting the Information of a Registered Ticket from the Server + +To check the status of a ticket on a server, you may use the `ticket_get` +command: + +```sh +$ chirp ticket_get myticket.ticket +``` + +So long as you own the ticket or are authenticated as the super user, the +server will return to you information associated with the ticket. The ticket +must also exist and must also not have expired. `ticket_get` takes a client +side ticket filename as an argument or a ticket identifier as returned by the +`ticket_list` command. + +`ticket_get` prints the subject that owns the ticket, the base64 encoded +public key of the ticket, the time left until the ticket expires in seconds, +and a variable number of directory and ACL masks. For example, we might have +the following output: + +```sh +$ chirp host:port ticket_get myticket.ticket +unix:pdonnel3 +LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0Jp +UUtCZ1FEZVoyZWxKYXdlcHBHK0J4SFlaMmlmWFIzNAovU3RhUElta0lmeit4TDZxN21wS2lnMDJQZ2Z5 +emdKRWFjMk50NzJrUlBpOEJWYWdkOHdvSGhWc25YZ1YvNjFPCjVkaG13STNLYWRlYjNUbkZXUUo3bFhh +anhmVTZZR1hXb2VNY1BsdjVQUWloWm8yWmFXTUUvQVA4WUtnVVphdXcKelI2RkdZWGd6N2RGZzR6Yk9R +SURBUUFCCi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo= +5993 +/ rl /foo rwl +``` + +Note that the base64 encoded public key above is wrapped to fit an 80 character +width for this manual. In the actual output, the public key is on one line. All +of the information is new-line-delimited. + + +### HDFS Backend Storage for Chirp + +The Chirp server is able to bind to backend filesystems besides the local +filesystem. In particular, it is able to act as a frontend for the Hadoop HDFS +filesystem. When used on top of HDFS, Chirp gives you the benefit of a robust +system of ACLs, simple userspace access and POSIX semantics (with some +limitations, discussed below). Perhaps best of all, client jobs will no longer +have any Hadoop or Java (version) dependencies. + +To run a Chirp server as a frontend to your HDFS filesystem, you will need to +install the `libhdfs-devel` package and then set several environment variables +which describe your Hadoop installation. `JAVA_HOME` and `HADOOP_HOME` +LIBHDFS_PATH should be set to indicate the location of the libhdfs library. +Common values for the Cloudera Hadoop installation would be this: + +`setenv JAVA_HOME /usr/lib/jvm/java-openjdk setenv HADOOP_HOME /usr/lib/hadoop +setenv LIBHDFS_PATH /usr/lib64/libhdfs.so ` Then, start `chirp_server` and +indicate the root storage directory in HDFS with `-r` like this: + +```sh +$ chirp_server -r hdfs://headnode.hadoop.domain.edu/mydata ...other arguments... +``` + +By default, chirp will use whatever default replication factor is defined by +HDFS (typically 3). To change the replication factor of a single file, use the +`chirp setrep` or `parrot_setrep` commands. A path of `&&&` will set the +replication factor for all new files created in that session. + +#### Temporary Local Storage + +Chirp allows you to setup a location to place temporary files such as those +for caching groups, and other items. You can set this using the `-y path`. +This allows for faster access, POSIX semantics, and less load on HDFS. By +default, Chirp assumes the current directory for temporary storage. + + +#### Limitations + +Chirp tries to preserve POSIX filesystem semantics where possible despite HDFS +violating certain assumptions. For example, random writes are not possible for +Chirp on HDFS. When the user requests to open a file for writing, Chirp +assumes an implicit `O_APPEND` flag was added. In addition, HDFS does not +maintain an execute permission bit for regular files. Chirp assumes all files +have the execute bit set. + +Chirp also does not allow using the thirdput command or user space management +(`-F`) when using HDFS as a backend. + + +### Job Execution on Chirp + +As of version 4.2.0, Chirp supports job execution. Jobs run using executables +and files located on the Chirp server. Each job description sent to the Chirp +server provides a _binding_ of each file the job requires to a local namespace +(a sandbox). + +To support the new job interface, Chirp has the following new RPCs: + +```sh + = **job_create** + = **job_commit** + = **job_status** + = **job_wait** + = **job_reap** + = **job_kill** +``` + +As usual, these RPCs may be sent through the Chirp client command line tool or through the C API. + + +!!! note + To enable job execution on a Chirp server, the `--jobs` switch must be passed. + + +#### Creating a Job + +To create a job, you need the usual attributes of an executable to run, the +arguments to pass to the executable, any environment variables to add, and any +files to bind into the job's namespace. + +In Chirp's Job execution framework, files are _bound_ into the job's +namespace. The name of the file in the task's name space is labeled ` +task_path` while the name in the server namespace is labeled `serv_path`. +**Files are bound in the task namespace at job start and job end, for inputs +and outputs, respectively.** + +##### Example 1 + +[my-first-job.json](my-first-job.json) +```json +my-first-job.json: +{ + "executable": "/bin/sh", + "arguments": [ "sh", "-c", "echo Hello, world! > my.output" ], + "files": [ + { + "task_path": "my.output", + "serv_path": "/some/directory/my.0.output", + "type": "OUTPUT" + } + ] +} +``` + +!!! note + Notice that the first argument is `"sh"`. This argument corresponds to + `argv[0]` in a regular POSIX application. + +!!! note + Additionally, the output file is explicitly marked as an `OUTPUT`. This + file is bound into the server namespace at task completion. + +This job can be created from the command line as follows: + +```sh +# We make sure the appropiate directories exist: +$ chirp mkdir -p /some/directory + +# Create the job. It prints the job-id when the job is succesfully created: +# = **job_create** + +$ chirp job_create "$(cat my-first-job.json)" +1 +``` + +##### Example 2 -- Two Inputs + +[job-with-two-inputs.json](job-with-two-inputs.json) +```json +{ + "executable": "/bin/tar", + "arguments": [ "tar", "-cf", "archive.tar", "a", "b" ], + "files": [ + { + "task_path": "a", + "serv_path": "/users/btovar/a.txt", + "type": "INPUT", + "binding": "LINK" + }, + { + "task_path": "b", + "serv_path": "/users/btovar/b.txt", + "type": "INPUT", + "binding": "LINK" + }, + { "task_path": "archive.tar", + "serv_path": "/users/btovar/archive.tar", + "type": "OUTPUT", + "binding": "LINK" + } + ] +} +``` + +Here, each file is bound using hard links to the file located on the server. +This type of access is fast as the server does not need make a copy. You may +also bind files as `COPY` if necessary. `LINK` is the default. + +```sh +# Create the job: +$ chirp job_create "$(cat job-with-two-inputs.json)" +2 +``` + +##### Example 3 -- Using custom executable + +Often, you will have a script or executable which is present on the Chirp +server which you want to execute directly. To do this, bind the executable as +you would any other file and give a relative (task) path for the `executable` +job attribute: + +In this example [my-custom-exec.sh](my-custom-exec.sh), takes as first argument +the name of a file to print its output. + +[job-with-custom-exec.json](job-with-custom-exec.json) +```json +{ + "executable": "./my-custom-exec.sh", + "arguments": [ "my-custom-exec.sh", "output.txt" ], + "files": [ + { + "task_path": "my-custom-exec.sh", + "serv_path": "/some/directory/my-custom-exec.sh", + "type": "INPUT", + "binding": "LINK" }, + { + "task_path": "output.txt", + "serv_path": "/some/directory/output.txt", + "type": "OUTPUT", + "binding": "LINK" + } + ] +} +``` + +```sh +# Make sure that myscript.sh is in the correct location: +$ chirp put my-custom-exec.sh /some/directory/my-custom-exec.sh + +$ chirp job_create "$(cat job-with-custom-exec.sh)" +4 +``` + + +#### Committing (to Start) a Job + +Chirp uses two-phase commit for creating a job. This serves to protect against +orphan jobs which become lost because a client or the server lose a +connection. + +To commit a job, pass a JSON-encoded array of job identifiers to the +`job_commit` RPC. For example: + +```sh +# = **job_commit** + +$ chirp host:port job_commit '[1, 2, 4]' +``` + +will commit jobs `1`, `2`, and `4`. + +Once a job is committed, the Chirp server is free to schedule and execute the +job. You may query the status of the job to see if it has begun executing or +wait for the job to finish. + + +#### Querying the Status of a Job + +At any point in a job's lifetime, you may query its status. Status information +is JSON-encoded and holds all job metadata. + +#### Example 1 -- Status of Example 1 + +```sh +# = **job_status** + +$ chirp host:port job_status '[1]' +[ + { + "id": 1, + "error": null, + "executable": "/bin/sh", + "exit_code": 0, + "exit_status": "EXITED", + "exit_signal": null, + "priority": 1, + "status": "FINISHED", + "subject": "unix:btovar", + "tag": "(unknown)", + "time_commit": 1565793785, + "time_create": 1565793785, + "time_error": null, + "time_finish": 1565793785, + "time_kill": null, + "time_start": 1565793785, + "time_reap": null, + "arguments": [ + "sh", + "-c", + "echo Hello, world! > my.output" + ], + "environment": {}, + "files": [ + { + "binding": "LINK", + "serv_path": "/some/directory/my.0.output", + "size": 14, + "tag": null, + "task_path": "my.output", + "type": "OUTPUT" + } + ] + } +] +``` + +You can get the status of a job at any time, that is, before commit, during execution, and on completion. However, this RPC does not help +with waiting for one or more jobs to finish. For that, we use the `job_wait` +RPC discussed next. + + +#### Waiting for a Job to Terminate + +Use `job_wait` to wait for a job to finish. This will give you the status +information of jobs which have completed and have a `status` of `FINISHED`, +`KILLED`, or `ERRORED`. + +`job_wait` takes a job identifier argument which matches jobs in the following +way: + +| | | +|---|---| +| **0** | Match all jobs for the current user. +|**X > 0** | Match job with id equal to **X**. +|**X < 0** | Match job with id greater than ** abs(X)**. + +`job_wait` is essentially `job_status` except the RPC blocks until a job +matches the above condition or the `timeout` is exceeded: + +```sh +# = **job_wait** + + +# wait 10 seconds for any job to finish: +$ chirp host:port job_wait 0 10 + +# wait indefinitely for job_wait 1 to finish: +$ chirp host:port job_wait 1 +[{"id":1,"error":null,"executable":"\/bin\/sh","exit_code":0,"exit_status":"EXITED",...] + +# wait 10 seconds for any job with id greater than 500 to finish: +$ chirp host:port job_wait -500 10 +[] + +# Note the empty array above, which indicates that no such job finished in the +# given timeout. +``` + +!!! note + Unlike the regular UNIX wait system call, Chirp's `job_wait` does not reap a + job you wait for. You must do that through the `job_reap` RPC discussed next. + + +#### Reaping a Finished Job + +Similar in intent to `job_commit`, `job_reap` notifies the Chirp server that +your application has logged the termination of the job. This allows the Chirp +server to reap the job. The side-effect of this operation is future calls to +`job_wait` will not include the reaped jobs. + +```sh +# = **job_reap** + +# Reap jobs 1, 2, and 4: +$ chirp host:port job_reap '[1, 2, 4]' +``` + + +#### Killing a Job + +`job_kill` informs the Chirp server to kill a job. Any job which has not +reached a terminal state (`FINISHED`, `KILLED`, or `ERRORED`) will immediately +be moved to the `KILLED` state. If the job is running, the internal Chirp +scheduler will also terminate the job at its convenience. + +```sh +# = **job_kill** ` + +# Kill jobs 1 and 2 +$ chirp host:port job_kill '[1, 2]' +``` + + +### Chirp Jobs on AFS + +On the AFS file system, Chirp job execution will not work with `LINK` file +bindings. This is due to limitations in AFS preventing hard links across +directories. For this reason we recommend against using AFS as the backing +storage for Chirp (`--root`). If you must use AFS, the `COPY` binding should +work. + + +## Debugging Advice + +Debugging a distributed system can be quite difficult because of the sheer +number of hosts involved and the mass of information to be collected. If you +are having difficulty with Chirp, we recommend that you make good use of the +debugging traces built into the tools. + +In all of the Chirp and Parrot tools, the `-d` option allows you to turn on +selected debugging messages. The simplest option is `-d all` which will show +every event that occurs in the system. + +To best debug a problem, we recommend that you turn on the debugging options +on **both** the client and server that you are operating. For example, if you +are having trouble getting Parrot to connect to a Chirp server, then run both +as follows: + +```sh +$ chirp_server -d all [more options] ... +$ parrot_run -d all bash +``` + +Of course, this is likely to show way more information than you will be able +to process. Instead, turn on a debugging flags selectively. For example, if +you are having a problem with authentication, just show those messages with +`-d auth` on both sides. + +When debugging problems with Chirp and Parrot, we recommend selectively using +`-d chirp`, `-d tcp`, `-d auth`, and `-d libcall` as needed. + + +## Further Information + +### The Chirp Protocol + +[The Chirp Protocol](chirp_protocol.md) + + + +### Confuga + +Confuga is an active storage cluster file system harnessing Chirp. To learn +more about it, please see the [Confuga manual](../confuga). + + + +## Citation + +Please use the following citation for Chirp in a scientific publication: + +- Douglas Thain, Christopher Moretti, and Jeffrey Hemmes,[Chirp: A Practical Global Filesystem for Cluster and Grid Computing](http://www.cse.nd.edu/~dthain/papers/chirp-jgc.pdf), _Journal of Grid Computing_ , Springer, 2008. DOI: 10.1007/s10723-008-9100-5. (The original is available on .) + +## Further Information + +For more information, please see [Getting Help](../help) or visit the [Cooperative Computing Lab](http://ccl.cse.nd.edu) website. + +## Copyright + +CCTools is Copyright (C) 2019- The University of Notre Dame. This software is distributed under the GNU General Public License Version 2. See the file COPYING for +details. diff -Nru cctools-7.0.22/doc/manuals/chirp/job-with-custom-exec.json cctools-7.1.2/doc/manuals/chirp/job-with-custom-exec.json --- cctools-7.0.22/doc/manuals/chirp/job-with-custom-exec.json 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/chirp/job-with-custom-exec.json 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,18 @@ +{ + "executable": "./my-custom-exec.sh", + "arguments": [ "my-custom-exec.sh", "output.txt" ], + "files": [ + { + "task_path": "my-custom-exec.sh", + "serv_path": "/some/directory/my-custom-exec.sh", + "type": "INPUT", + "binding": "LINK" }, + { + "task_path": "output.txt", + "serv_path": "/some/directory/output.txt", + "type": "OUTPUT", + "binding": "LINK" + } + ] +} + diff -Nru cctools-7.0.22/doc/manuals/chirp/job-with-two-inputs.json cctools-7.1.2/doc/manuals/chirp/job-with-two-inputs.json --- cctools-7.0.22/doc/manuals/chirp/job-with-two-inputs.json 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/chirp/job-with-two-inputs.json 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,24 @@ +{ + "executable": "/bin/tar", + "arguments": [ "tar", "-cf", "archive.tar", "a", "b" ], + "files": [ + { + "task_path": "a", + "serv_path": "/some/directory/a.txt", + "type": "INPUT", + "binding": "LINK" + }, + { + "task_path": "b", + "serv_path": "/some/directory/b.txt", + "type": "INPUT", + "binding": "LINK" + }, + { "task_path": "archive.tar", + "serv_path": "/some/directory/archive.tar", + "type": "OUTPUT", + "binding": "LINK" + } + ] +} + diff -Nru cctools-7.0.22/doc/manuals/chirp/my-custom-exec.sh cctools-7.1.2/doc/manuals/chirp/my-custom-exec.sh --- cctools-7.0.22/doc/manuals/chirp/my-custom-exec.sh 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/chirp/my-custom-exec.sh 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,6 @@ +#! /bin/sh + +output="$1" + +echo Hello from custom script! > $output + diff -Nru cctools-7.0.22/doc/manuals/chirp/my-first-job.json cctools-7.1.2/doc/manuals/chirp/my-first-job.json --- cctools-7.0.22/doc/manuals/chirp/my-first-job.json 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/chirp/my-first-job.json 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,12 @@ +{ + "executable": "/bin/sh", + "arguments": [ "sh", "-c", "echo Hello, world! > my.output" ], + "files": [ + { + "task_path": "my.output", + "serv_path": "/some/directory/my.0.output", + "type": "OUTPUT" + } + ] +} + diff -Nru cctools-7.0.22/doc/manuals/confuga/example.makeflow cctools-7.1.2/doc/manuals/confuga/example.makeflow --- cctools-7.0.22/doc/manuals/confuga/example.makeflow 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/confuga/example.makeflow 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,37 @@ +# +# This is a sample Makeflow script that retrieves an image from the web, +# creates four variations of it, and then combines them into an animation. + +# A Makeflow script is a subset of the Makefile language (see the manual +# for more information). For example, for convenience we can define the +# textual substitutions: +CURL=/usr/bin/curl +CONVERT=/usr/bin/convert +URL="http://ccl.cse.nd.edu/images/capitol.jpg" + +# We specify the set of inputs and outputs. This is not required, but strongly +# recommended. MAKEFLOW_INPUTS files should exist in the local filesystem, but +# they are not copied to a remote execution site unless they appear as a rule +# prerequisite. +MAKEFLOW_INPUTS= +MAKEFLOW_OUTPUTS="capitol.montage.gif" + +capitol.montage.gif: capitol.jpg capitol.90.jpg capitol.180.jpg capitol.270.jpg capitol.360.jpg + $(CONVERT) -delay 10 -loop 0 capitol.jpg capitol.90.jpg capitol.180.jpg capitol.270.jpg capitol.360.jpg capitol.270.jpg capitol.180.jpg capitol.90.jpg capitol.montage.gif + +capitol.90.jpg: capitol.jpg + $(CONVERT) -swirl 90 capitol.jpg capitol.90.jpg + +capitol.180.jpg: capitol.jpg + $(CONVERT) -swirl 180 capitol.jpg capitol.180.jpg + +capitol.270.jpg: capitol.jpg + $(CONVERT) -swirl 270 capitol.jpg capitol.270.jpg + +capitol.360.jpg: capitol.jpg + $(CONVERT) -swirl 360 capitol.jpg capitol.360.jpg + +# If a rule is preceded by LOCAL, it executes at the local site. +capitol.jpg: + LOCAL $(CURL) -o capitol.jpg $(URL) + Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/confuga/images/confuga.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/confuga/images/confuga.png differ diff -Nru cctools-7.0.22/doc/manuals/confuga/index.md cctools-7.1.2/doc/manuals/confuga/index.md --- cctools-7.0.22/doc/manuals/confuga/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/confuga/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,354 @@ +# Confuga User's Manual + +## Overview + +Confuga is an active storage cluster file system designed for executing DAG- +structured scientific workflows. It is used as a collaborative distributed +file system and as a platform for execution of scientific workflows with full +data locality for all job dependencies. + +A high-level perspective of Confuga is visualized in the figure below. + +![](images/confuga.png) + +Confuga is composed of a head node and multiple storage nodes. The head node +acts as the metadata server and job scheduler for the cluster. Users interact +with Confuga using the head node. All file and job operations go through the +head node. + +A Confuga cluster can be setup as an ordinary user or maintained as a dedicated +service within the cluster. The head node and storage nodes run the +[Chirp](../chirp) file system service. Users may interact with Confuga using +Chirp's client toolset [chirp(1)](../chirp), [Parrot](../parrot), or +[Makeflow](../makeflow). + +Confuga manages the details of scheduling and executing jobs for you. However, +it does not concern itself with job ordering; it appears as a simple batch +execution platform. We recommend using a high-level workflow execution system +like [Makeflow](../makeflow) to manage your workflow and to handle the +details of submitting jobs. However, you can also program job submmission +directly using the [Chirp job protocol](../chirp#job-execution-on-chirp). + +Confuga is designed to exploit the unique parameters and characteristics of +POSIX scientific workflows. Jobs are single task POSIX applications that are +expressed with all input files and all output files. Confuga uses this +restricted job specification to achieve performance and to control load within +the cluster. + +To get started using Confuga, please begin by [installing CCTools](../install) +on your system. When you are ready, proceed with the Getting Started section +below. + +## Getting Started with Confuga + +There are three services you need to start to get an operational cluster: + + * **The Storage Nodes (1 or more).** You must start a number of storage nodes which host data and execute jobs, all managed by Confuga. Each storage node is a Chirp server. Each storage node is added to the list of nodes passed to the Confuga head node. + * **The Confuga Head Node.** This is naturally the core service for the cluster. It manages the storage nodes, distributing data and jobs. + * **The Catalog Server (Optional).** The catalog server keeps track of operational storage nodes. It functions as a heartbeat listener for the Confuga head node. This service is optional because you may use the default catalog server managed by the Cooperative Computing Lab. Or you can start your own. See [Catalog Servers](../catalog) for details. + +### Running a Test Cluster + +Let's get started quickly by setting up a 2 storage node test cluster on your +local workstation. + +**Start Storage Node 1:** +```sh +$ chirp_server \ +--catalog-name=localhost \ +--catalog-update=10s \ +--interface=127.0.0.1 \ +--jobs \ +--job-concurrency=10 \ +--root=./root.1 \ +--port=9001 \ +--project-name=$(whoami)-test \ +--transient=./tran.1 & +``` + +**Start Storage Node 2:** +```sh +$ chirp_server \ +--catalog-name=localhost \ +--catalog-update=10s \ +--interface=127.0.0.1 \ +--jobs \ +--job-concurrency=10 \ +--root=./root.2 \ +--port=9002 \ +--project-name=$(whoami)-test \ +--transient=./tran.2 & +``` + +**Add the Storage Nodes to Confuga:** + +```sh +$ confuga_adm confuga:///$(pwd)/confuga.root/ sn-add address localhost:9001 +$ confuga_adm confuga:///$(pwd)/confuga.root/ sn-add address localhost:9002 +``` + +**Start the Head Node:** + +```sh +$ chirp_server \ +--catalog-name=localhost \ +--catalog-update=30s \ +--debug=confuga \ +--jobs \ +--port=9000 \ +--project-name=$(whoami)-test \ +--root="confuga://$(pwd)/confuga.root/?auth=unix" +``` + +Confuga will output debug information to your terminal, so you can see what is +happening. In another terminal, use `chirp_status` to query the catalog +allowing you to see the status of the cluster: + +```sh +$ chirp_status --server-project=$(whoami)-test +TYPE NAME PORT OWNER VERSION TOTAL AVAIL +chirp *.*.*.* 9002 batrick 6.0.0 81.6 GB 56.2 GB +chirp *.*.*.* 9001 batrick 6.0.0 81.6 GB 56.2 GB +chirp *.*.*.* 9000 batrick 6.0.0 163.1 GB 112.4 GB +``` + + +### Running a Workflow + +In another terminal, we can run the [standard Makeflow example](../makeflow) +against the cluster to confirm everything works: + +[example.makeflow](example.makeflow) +```make +CURL=/usr/bin/curl +CONVERT=/usr/bin/convert +URL=http://ccl.cse.nd.edu/images/capitol.jpg + +MAKEFLOW_INPUTS= +MAKEFLOW_OUTPUTS=capitol.montage.gif + +capitol.montage.gif: capitol.jpg capitol.90.jpg capitol.180.jpg capitol.270.jpg capitol.360.jpg + $CONVERT -delay 10 -loop 0 capitol.jpg capitol.90.jpg capitol.180.jpg capitol.270.jpg capitol.360.jpg capitol.270.jpg capitol.180.jpg capitol.90.jpg capitol.montage.gif + +capitol.90.jpg: capitol.jpg + $CONVERT -swirl 90 capitol.jpg capitol.90.jpg + +capitol.180.jpg: capitol.jpg + $CONVERT -swirl 180 capitol.jpg capitol.180.jpg + +capitol.270.jpg: capitol.jpg + $CONVERT -swirl 270 capitol.jpg capitol.270.jpg + +capitol.360.jpg: capitol.jpg + $CONVERT -swirl 360 capitol.jpg capitol.360.jpg + +# If a rule is preceded by LOCAL, it executes at the local site. +capitol.jpg: + LOCAL $CURL -o capitol.jpg $URL +``` + +```sh +$ makeflow --batch-type=chirp --working-dir=chirp://localhost:9000/ example.makeflow +parsing example.makeflow... +checking example.makeflow for consistency... +example.makeflow has 6 rules. recovering from log file +example.makeflow.makeflowlog... starting workflow.... +submitting job: /usr/bin/curl -o capitol.jpg http://ccl.cse.nd.edu/images/capitol.jpg +submitted job 14 job 14 completed +submitting job: /usr/bin/convert -swirl 360 capitol.jpg capitol.360.jpg +submitted job 15 +submitting job: /usr/bin/convert -swirl 270 capitol.jpg capitol.270.jpg +submitted job 16 submitting job: /usr/bin/convert -swirl 180 capitol.jpg capitol.180.jpg +submitted job 17 submitting job: /usr/bin/convert -swirl 90 capitol.jpg capitol.90.jpg +submitted job 18 +job 15 completed +job 16 completed +job 17 completed +job 18 completed +submitting job: /usr/bin/convert -delay 10 -loop 0 capitol.jpg capitol.90.jpg capitol.180.jpg capitol.270.jpg capitol.360.jpg capitol.270.jpg capitol.180.jpg capitol.90.jpg capitol.montage.gif +submitted job 19 +job 19 completed +nothing left to do. +``` + +You can then view the result by fetching the output and using your favorite +`gif` viewing program: + +```sh +$ chirp localhost:9000 get /capitol.montage.gif +903.4 KB read in 0.05s (16.1 MB/s) + +$ display ./capitol.montage.gif +``` + +You can also achieve the same thing using [Parrot](../parrot): + +```sh +$ parrot_run display /chirp/localhost:9000/capitol.montage.gif +``` + + +## Setting up Confuga + +### Running Storage Nodes + +Confuga uses regular Chirp servers as storage nodes. Each storage node is +added to the cluster using the [confuga_adm(1)](../man_pages/confuga_adm.md). +command. All storage node Chirp servers must be run with: + + * Ticket authentication enabled (`--auth=ticket`). Remember by default all authentication mechanisms are enabled. + * Job execution enabled (`--jobs`). + * Job concurrency of at least two (`--job-concurrency=2`). + +These options are also suggested but not required: + + * More frequent Catalog updates (`--catalog-update=30s`). + * Project name for the cluster (`--project-name=foo`). + +You must also ensure that the storage nodes and the Confuga head node are +using the same [catalog_server](../catalog). By default, this +should be the case. + +### Confuga Options + +A Chirp server acting as the Confuga head node uses normal +[chirp_server(1)](../man_pages/chirp_server.md) options. In order to run the Chirp +server as the Confuga head node, use the `--root` switch with the Confuga URI. +You must also enable job execution with the `--jobs` switch. + +The format for the Confuga URI is: + +```sh +confuga:///path/to/workspace?option1=value&option2=value +``` + +The workspace path is the location Confuga maintains metadata and databases +for the head node. Confuga specific options are also passed through the URI. +The primary option is documented below. + + * `auth=method` Enable this method for Head Node to Storage Node authentication. The default is to enable all available authentication mechanisms. + +Please refer to Confuga's man page [confuga(1)](../man_pages/confuga.md) for a +complete and up-to-date listing of Confuga's options. + +## Executing Jobs + +To execute jobs on Confuga, you must first place all of the jobs data +requirements, including the executable itself, within Confuga. This can be +done using Chirp's client toolset [chirp](../chirp), and [parrot](../parrot). + +Once data is located on Confuga, you may begin executing jobs. Normally, you +will construct a workflow that executes within a **workflow namespace** within +Confuga. In simpler terms, this is just the root directory your workflow +operates in, probably your home directory on Confuga. For example, if you +place your files in Confuga like so: + +```sh +$ chirp confuga.name.org put workflow /users/me +``` + +and your workflow looks something like this: + +```make +simulation.txt: bin/sim params + bin/sim -i params +``` + +The executable used by Confuga will be `/users/me/workflow/bin/sim` and the +parameter file will be `/users/me/workflow/params`. Likewise, after the job +completes, the output will be placed `/users/me/workflow/simulation.txt`. As +you may tell, the namespace your workflow is operating in is +`/users/me/workflow`. You will give this namespace to the workflow manager you +use along with your workflow. It describes the mapping relationship between +the namespace the **job** executes within and the namespace the **workflow** +executes within. + +As an example, you might run Makeflow for the above situation like so: + +```sh +$ makeflow -T chirp --working-dir=chirp://confuga.name.org /users/me/workflow +``` + + +### Protocol + +Jobs are executed using the [Chirp job protocol](../chirp#job-execution-on-chirp). No special +modifications are required to submit jobs to Confuga. We recommend using the +Makeflow workflow manager but you may also program your own jobs using this +protocol if so desired. + + +## Security + +### Authentication + +There are three authentication realms to consider for a Confuga cluster: user +to head node, head node to storage node, and storage node to storage node +authentication. + +The head node is accessed by clients just like a regular Chirp server. +Therefore, you authenticate with Confuga in the [same way as +Chirp](../chirp#security). You may enable authentication +mechanisms on the head node using the `--auth` switch, documented in +[chirp_server(1)](../man_pages/chirp_server.md). + +Head node authentication with storage nodes is controlled via the `auth` +Confuga option. Confuga will uses these authentication mechanisms to +authenticate with its storage nodes. + +Lastly, Confuga handles the details of storage node to storage node +authentication. This is done using Chirp's [ticket authentication +mechanism.](../chirp#ticket-authentication) You as a user do not need to +do anything special to get this working beyond enabling ticket authentication (`--auth=ticket`) on +each storage node. + +### Authorization + +Confuga offers the same strong authorization system as Chirp. This includes +per-directory access control lists (ACL). For information on authorization +controls in Chirp, please see the [Authorization +section](../chirp#security) in the Chirp manual. + +## Debugging + +### Debugging Jobs + +Confuga does not save the `stdout` or `stderr` of jobs. If you need to debug +your jobs by examining these files, you must explicitly save them. If you are +using Makeflow to submit jobs to Confuga, you may do this simply by using +Makeflow's `--wrapper` option to save these `stdout` and `stderr`. For +example: + +```sh +$ makeflow --batch-type=chirp \ +--working-dir=chirp://confuga.example.com/ \ +--wrapper=$'{\\n{}\\n} > stdout.%% 2> stderr.%%' \ +--wrapper-output='stdout.%%' \ +--wrapper-output='stderr.%%' +``` + + +## Notes + +### AFS + +Storage nodes used by Confuga must [not use AFS as their backing +storage](../chirp#chirp-jobs-on-afs). Confuga requires use of the Chirp job `LINK` +file binding. For this reason, it cannot use Chirp servers running with +`--root` on AFS. + + +# Further Information + +## Please use the following citation for Confuga in a scientific publication + +Patrick Donnelly, Nicholas Hazekamp, Douglas Thain, [Confuga: Scalable Data Intensive Computing for POSIX Workflows](http://ccl.cse.nd.edu/research/papers/confuga-ccgrid2015.pdf), IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing, May, 2015. + + +Confuga is Copyright (C) 2015 The University of Notre Dame. +All rights reserved. +This software is distributed under the GNU General Public License. +See the file COPYING for details. + +Last edited: August 2019 + diff -Nru cctools-7.0.22/doc/manuals/help.md cctools-7.1.2/doc/manuals/help.md --- cctools-7.0.22/doc/manuals/help.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/help.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,16 @@ +# Getting Help + +We have an active community of users and developers, and we would be happy to help you get your applications working at scale with the CCTools. If you have a problem, please get in touch with us! + +First, please check out our detailed documentation: + +- [**CCTools** Manuals](index.md) + +Post general questions about the software to our forum: + +- [**CCTools** Forum](http://ccl.cse.nd.edu/community/forum) + +Send code patches and highly technical issues directly to github: + +- [**CCTools** Issue Tracker](https://github.com/cooperative-computing-lab/cctools/issues) + diff -Nru cctools-7.0.22/doc/manuals/index.md cctools-7.1.2/doc/manuals/index.md --- cctools-7.0.22/doc/manuals/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,78 @@ +# Cooperative Computing Tools Documentation + +## Getting Started + +- **[About](about.md)** +- **[Installation](install)** +- **[Getting Help](help)** + +## Software Components + +- [**Makeflow**](makeflow) is a workflow system for parallel and distributed + computing using either the classic Make syntax or the more advanced + [JX Workflow Language](jx). Using Makeflow, you can + write simple scripts that easily execute on hundreds or thousands of + machines. + +- [**Work Queue**](work_queue) is a system and library for creating and + managing scalable master-worker style programs that scale up to thousands of + machines on clusters, clouds, and grids. Work Queue programs are easy to +Python ([example](work_queue/examples/work_queue_example.py)|[api](http://ccl.cse.nd.edu/software/manuals/api/html/namespaceWorkQueuePython.html)) +Perl ([example](work_queue/examples/work_queue_example.pl)|[api](http://ccl.cse.nd.edu/software/manuals/api/html/work__queue_8h.html)), +or C ([example](work_queue/examples/work_queue_example.c)|[api](http://ccl.cse.nd.edu/software/manuals/api/html/work__queue_8h.html)) +. + +- [**Resource Monitor**](resource_monitor) is a tool to monitors the cpu, + memory, io, and disk usage of applications running in distributed systems, + and can optionally enforce limits on each resource. The monitor can be + compiled to a single executable that is easily deployed to track executable + file, or it can be used as a library to track the execution of [Python + functions](http://ccl.cse.nd.edu/software/manuals/api/html/namespaceresource__monitor.html). + +- [**Parrot**](parrot) is a transparent user-level virtual filesystem that + allows any ordinary program to be attached to many different remote storage + systems, including HDFS, iRODS, Chirp, and FTP. + +- [**Chirp**](chirp) is a personal user-level distributed filesystem that + allows unprivileged users to share space securely, efficiently, and + conveniently. When combined with Parrot, Chirp allows users to create custom + wide-area distributed filesystems. + +- [**Catalog Server**](catalog) is a common facility used to monitor + running services, workflows, and tasks. It provides real-time status + and historical data on all components of the CCTools. + +## Research Prototypes + +- [**Accelerated Weighted Ensemble**](awe) (AWE) is an ensemble + molecular dynamics applications that uses Work Queue to scale + out molecular simulations to thousands of GPUs on multipel clusters. + +- [**Confuga**](confuga) is an active storage cluster file system designed for + executing DAG-structured scientific workflows. It is used as a collaborative + distributed file system and as a platform for execution of scientific + workflows with full data locality for all job dependencies. + +- [**Umbrella**](umbrella) is a tool for specifying and materializing execution + environments, from the hardware all the way up to software and data. Umbrella + parses a task specification and determines the minimum mechanism necessary to + run it. It downloads missing dependencies, and executes the application + through the available minimal mechanism, which may be direct execution, a + system container, a virtual machine, or submissions to a cloud and cluster environments. + +- [**Prune**](prune) Prune is a system for executing and precisely preserving + scientific workflows to ensure reproducibility. Every task to be executed in + a workflow is wrapped in a functional interface and coupled with a strictly + defined environment. + +## Reference Information + +- [**Man Pages**](man_pages.md) + +- [**JX Workflow Language**](jx) + +- [**Chirp Protocol Specification**](chirp/chirp_protocol.md) + +- [**Networking Configuration**](network) + +- [**API**](http://ccl.cse.nd.edu/software/manuals/api/html/index.html) diff -Nru cctools-7.0.22/doc/manuals/install/from-source.md cctools-7.1.2/doc/manuals/install/from-source.md --- cctools-7.0.22/doc/manuals/install/from-source.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/install/from-source.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,208 @@ +# Installing CCTools from source + +### Using the official released version... + +Download a source package from the [download +page](http://ccl.cse.nd.edu/software/download). And follow this recipe while +logged in as any ordinary user: + +```sh +$ tar zxf cctools-*-source.tar.gz +$ cd cctools-*-source +$ ./configure +$ make + +# by default, CCTools is installed at ~/cctools. See below to change this default. +$ make install +``` + +### ...or from the git repository + +Instead of installing from the source of the current released version, you can +can directly build the latest version from our git repository: + +```sh +$ git clone https://github.com/cooperative-computing-lab/cctools cctools-source +$ cd cctools-source +$ ./configure +$ make +$ make install +``` + +!!! warning + If you need to compile CCTools with **python** or **perl** support, you + need [SWIG](http://www.swig.org) somewhere in your system. Follow the + [instructions below.](#python-and-perl). + + SWIG is only needed for compilation, and it is no longer needed in the + binaries produced. + +!!! note + After installation, you will need to set the environment variables `PATH`, `PYTHONPATH`, and `PERL5LIB` as explained [here.](#setting-your-environment) + +!!! note + If you need to install CCTools in a directory different from + `${HOME}/cctools`, you can use `./configure --prefix /some/desired/dir`. + Remember to export `PATH`, `PYTHONPATH`, and `PERL5LIB` as above, but changing + `~/cctools` to the directory of your choosing. + + + + +## Setting Your Environment + +If you installed **CCTools** from a source tarball, from github, or from a binary tarball, you will need to set some environment variables. This is not needed if you installed **CCTools** from conda or spack. + +First determine the `python` and `perl` versions you are using: + +```sh +# Note: your output may vary according to your python version. +$ python -c 'from sys import version_info; print("{}.{}".format(version_info.major, version_info.minor))' +3.7 + +# Note: your output may vary according to your perl version. +$ perl -e 'print("$^V\n")' +5.16.3 +``` + +Now we update the environment variables with the values we found: + +```sh +$ export PATH=~/cctools/bin:$PATH + +# Change 3.7 to the python version you found above. +$ export PYTHONPATH=~/cctools/lib/python3.7/site-packages:${PYTHONPATH} + +# Change 5.16.3 to the perl version you found above. +$ export PERL5LIB=~/cctools/lib/perl5/site_perl/5.16.3:${PERL5LIB} +``` + + +## Special Cases + +The software will happily build and run without installing any external +packages. Optionally, the CCTools will interoperate with a variety of external +packages for security and data access. To use these, you must download and +install them separately: + +* [Python](https://www.python.org) +* [Perl](https://www.perl.org) +* [CVMFS](https://cvmfs.readthedocs.io/en/stable/cpt-quickstart.html) +* [FUSE](http://fuse.sourceforge.net) +* [iRODS](http://irods.org) (version 4.0.3) +* [Globus](http://www.globus.org) (version 5.0.3) +* [Hadoop](http://hadoop.apache.org) +* [xRootD](http://xrootd.slac.stanford.edu) + +Once the desired packages are correctly installed, unpack the CCTools and then +issue a configure command that points to all of the other installations. Then, +make and install as before. For example: + +```sh +$ ./configure --with-globus-path /usr/local/globus +$ make && make install +``` + +### python and perl + +CCTools needs [SWIG](http://www.swig.org) during compilation to provide python +and perl support. SWIG is available through conda, or as a package of many +linux distributions. Once SWIG is installed, the `configure` script should +automatically find it if the executable `swig` is somewhere in your `PATH`. + +!!! note + If `./configure` cannot find your SWIG installation, you can use a command line option as follows: + + `./configure --with-swig-path /path/to/swig` + +### iRODS + +Building Parrot with support for the iRODS service requires some custom build +instructions, since Parrot requires access to some internals of iRODS that are +not usually available. To do this, first make a source build of iRODS in your +home directory: + +```sh +cd $HOME +git clone https://github.com/irods/irods-source +cd irods-source +git checkout 4.0.3 +$ packaging/build.sh --run-in-place icommands +cd .. +``` + +Then, configure and build CCTools relative to that installation: + +``` +$ git clone https://github.com/cooperative-computing-lab/cctools cctools-source +$ cd cctools-source +$ ./configure --with-irods-path ../irods-src +$ make && make install +``` + + +### MPI + +Building with MPI requires a valid MPI installation to be in your path. +Generally CCTools compiles with both intel-ompi and MPICH. If you do not have +mpi installed already, we suggest downloading the latest MPICH from [the MPICH +website](https://www.mpich.org/). The latest known supporting version of MPICH +with CCTools is MPICH-3.2.1. Simply build MPICH as is best for your +site/system, and then place the binaries in your path. We also suggest +configuring MPICH to use ` gcc` as the compiling software. For example: + +```sh +$ tar -xvf MPICH-3.2.1.tar.gz +$ cd MPICH-3.2.1 CC=gcc CXX=g++ +$ ./configure +$ make && make install +``` + +Once MPI is in your path, configure CCTools to use MPI and then install. For example: + +```sh +$ cd ~/cctools +$ ./configure --with-mpicc-path=`which mpicc` +$ make && install ` +``` + +Now, our tools will be MPI enabled, allowing you to run Makeflow as an MPI job, +as well as using both WorkQueue as MPI jobs, and submitting Makeflow and +WorkQueue together as a single MPI job. + +### Build on Mac OSX + +In order to build CCTools on Mac OS X you must first have the Xcode Command +Line Tools installed. For OS X 10.9 and later this can be done using the +following command: + +```sh +xcode-select --install +``` + +Then, click "Install" in the window that appears on the screen. If the command +line tools are already installed, you will get an error and can proceed with +the instructions in the "Installing From Source" section above. For OS X +versions before 10.9, you will need to first install Xcode. Xcode can be found +in the App Store or on the installation disk. + + +## Install from Binary Tarball + +Binary packages are available for several operating systems at the [download +page](http://ccl.cse.nd.edu/software/download) Simply unpack the tarball +in any directory that you like, and then add the `bin` directory to your path. + +For example, to install CCTools for RHEL7 / CentOS7 in your home directory in a directory +called `cctools`: + +```sh +$ tar xvf cctools-*-centos7-x86_64.tar.gz +``` + +!!! note + After unpackaging the tarball you will need to set the environment variables `PATH`, `PYTHONPATH`, and `PERL5LIB` as explained [here.](#setting-your-environment) + + + + diff -Nru cctools-7.0.22/doc/manuals/install/index.md cctools-7.1.2/doc/manuals/install/index.md --- cctools-7.0.22/doc/manuals/install/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/install/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,132 @@ +# Installing the Cooperative Computing Tools + +## Overview + +The Cooperative Computing Tools (**CCTools**) are a collection of programs that +enable large scale distributed computing on systems such as clusters, clouds, +and grids. These tools are commonly used in fields of science and engineering +that rely on large amounts of computing. + + +**CCTools** can be installed on Linux and Mac. + + + +## Install from Conda + +If you need a personal installation of **CCTools**, say for your laptop, or an +account in your campus cluster, the easiest way to install **CCTools** is using the +**conda** package manager. To check that you have conda install, in a terminal try: + +```sh +$ conda list +``` + +If it fails, then you need to install either +[miniconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install) +or [anaconda](https://docs.anaconda.com/anaconda/install). Miniconda is a +__light__ version of anaconda, and we recommend it as it is much faster to +install. We also recommend installing the versions for `Python 3.7` + +!!! warning + On Mac, the available from conda **CCTools** does not work with `Python 2.7` or with `perl`. For such case, please compile **CCTools** from [source](#from-source.md). + +With `conda` command available, install **CCTools** with: + +```sh +$ conda install -y -c conda-forge ndcctools +``` + +And that's it! You can test your setup following the instructions [here](#testing-your-installation). + + +## Install from Spack + +Alternatively, you can install **CCTools** using the [spack.io](https://www.spack.org) +package manager. Spack will compile **CCTools** for you, and it is recommended +for HPC sites for which a conda installation is not available, or which have +special software stack requirements (such as specially compiled python versions). + +First you need to check that the `spack` command is available. In a terminal type: + +```sh +$ spack help +``` + +If this command fails, then please install spack following the instructions [here.](https://spack.io) + +Once spack is installed, install **CCTools** with: + +```sh +$ spack install cctools +``` + +To use **CCTools**, you need to load it into the spack environment with: + +```sh +$ spack load cctools +``` + +You only need to do `spack install` once, but you will need `spack load +cctools` everytime you want to use **CCTools**. + +Once this command finished, you can test your installation following the +instructions [here](#testing-your-installation). + +## Install From Source + +To install from source, please follow the instructions [here](from-source.md). + +You will only need to install **CCTools** from source if you want to track our +latest developments on our [github +repository](https://github.com/cooperative-computing-lab/cctools +cctools-source), to propose a bug fix, or if you need to add a driver support +to **parrot** not normally included in the **conda** installation, such as +CVMFS, or iRODS. + +## Install from Binary Tarball + +Binary packages are available for several operating systems. Please follow the instructions [here](from-source.md#install-from-binary-tarball). + + +## Testing Your Installation + +You can test that the python and perl modules are available with: + +```sh +$ python -c 'import work_queue; print(work_queue.WORK_QUEUE_DEFAULT_PORT)' +9123 + +$ perl -MWork_Queue -e 'print("$Work_Queue::WORK_QUEUE_DEFAULT_PORT\n")' +9123 +``` + +If the above commands fail, please make sure that you follow one (and only +one!) of the methods above. For example, if you are using a conda installation, +make sure that your PYTHONPATH is unset. + +You can test the availability of *CCTools** commands with: + +```sh +$ makeflow --version + +makeflow version X.Y.Z... +...(output trimmed)... +``` + +!!! warning + Remember that for installations from source you need [swig](http://www.swig.org) at compile time, and to set + the environment variables `PATH`, `PYTHONPATH` and `PERL5LIB` appropriately, as explained [here.](from-source.md#setting-your-environment) + + For **conda** and **spack** installation you should not need to manually + set any of these variables, and in fact setting them may produce errors. + + +# License + +The Cooperative Computing Tools are Copyright (C) 2003-2004 Douglas Thain and Copyright (C) 2005- The University of Notre Dame. + +All rights reserved. + +This software is distributed under the GNU General Public License. + diff -Nru cctools-7.0.22/doc/manuals/jx/define-hello.jx cctools-7.1.2/doc/manuals/jx/define-hello.jx --- cctools-7.0.22/doc/manuals/jx/define-hello.jx 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/jx/define-hello.jx 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,13 @@ +{ + "define":{ + "message" : "hello world!" + }, + "rules": [ + { + "command": "/bin/echo " +message+ " > output-from-define.txt", + "outputs": [ "output-from-define.txt" ], + "inputs": [ ], + } + ] +} + diff -Nru cctools-7.0.22/doc/manuals/jx/gather.jx cctools-7.1.2/doc/manuals/jx/gather.jx --- cctools-7.0.22/doc/manuals/jx/gather.jx 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/jx/gather.jx 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,19 @@ +{ + "define" : { + "RANGE" : range(1,4), + "FILELIST" : [ "output." + N + ".txt" for N in RANGE ], + }, + + "rules" : [ + { + "command" : "python ./simulate.py --parameter " + N + " > output."+N+".txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output." + N + ".txt" ] + } for N in RANGE, + { + "command" : "/bin/cat " + join(FILELIST," ") + " > output.all.txt", + "inputs" : FILELIST, + "outputs" : [ "output.all.txt" ] + } + ] +} diff -Nru cctools-7.0.22/doc/manuals/jx/gather-with-categories.jx cctools-7.1.2/doc/manuals/jx/gather-with-categories.jx --- cctools-7.0.22/doc/manuals/jx/gather-with-categories.jx 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/jx/gather-with-categories.jx 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,30 @@ +{ + "define" : { + "RANGE" : range(1,4), + "FILELIST" : [ "output." + N + ".txt" for N in RANGE ], + }, + + "categories" : { + "simulate" : { + "resources" : { "cores" : 4, "memory" : 512, "disk" : 1024 } + }, + "collect" : { + "resources" : { "cores" : 1, "memory" : 512, "disk" : 8192 } + } + }, + + "rules" : [ + { + "command" : "python ./simulate.py --parameter " + N + " > output."+N+".txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output." + N + ".txt" ], + "category" : "simulate" + } for N in RANGE, + { + "command" : "/bin/cat " + join(FILELIST," ") + " > output.all.txt", + "inputs" : FILELIST, + "outputs" : [ "output.all.txt" ], + "category" : "collect" + } + ] +} diff -Nru cctools-7.0.22/doc/manuals/jx/hello-world.jx cctools-7.1.2/doc/manuals/jx/hello-world.jx --- cctools-7.0.22/doc/manuals/jx/hello-world.jx 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/jx/hello-world.jx 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,10 @@ +{ + "rules": [ + { + "command" : "/bin/echo hello world > output.txt", + "outputs" : [ "output.txt" ], + "inputs" : [ ] + } + ] +} + diff -Nru cctools-7.0.22/doc/manuals/jx/index.md cctools-7.1.2/doc/manuals/jx/index.md --- cctools-7.0.22/doc/manuals/jx/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/jx/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,24 @@ +# The JX Workflow Language + +JX (JSON eXtended) is a language for expressing workflows that allows for easy +manipulations to the structure and partitioning of a workflow. + +JX extends a JSON representation of the workflow by supporting a Python-like +syntax for expressions, allowing for a concise intermediate representation that +expands to a normal JSON document. Using JX, it is easy to treat a subset of +the workflow as if it were an atomic job that can be dispatched as part of a +higher-level application. + +## Getting Started + + * [JX Tutorial](jx-tutorial) + +## Quick Reference + + * [JX Quick Reference](jx-quick) + +## Complete Reference + + * [JX Complete Reference](jx) + + diff -Nru cctools-7.0.22/doc/manuals/jx/jx.md cctools-7.1.2/doc/manuals/jx/jx.md --- cctools-7.0.22/doc/manuals/jx/jx.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/jx/jx.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,585 @@ +# JX Workflow Language Reference + +## Overview + +[Makeflow](../../makeflow) allows for workflows to be expressed in pure [JSON](http://json.org) +or in an extended language known as JX which can be evaluated to produce pure +JSON. This document provides the detailed reference for this language. If you +are just getting started, see the [JX Tutorial](../jx-tutorial) before +reading this reference manual. + +## JSON Workflow Representation + +### Workflow + +A workflow is encoded as a JSON object with the following keys: + +```json +{ + "rules":[ , , ... ], + + "define":{ :, :, ... }, + + "environment":{ :, :, ... }, + + "categories": { :, :, ... }, + + "default_category": +} + +``` +| Key | Required | Description | +|-----|:--------:|-------------| +|[**rules**](#rules)| yes | Unordered array of rules comprising the workflow.
    Each `` corresponds to a single job represented as a JSON object to be executed in the workflow. +|[**define**](#defining-values) | no | Defines [expression substitutions](#jx-expressions) that can be used when defining rules, environments, and categories. +|[**environment**](#environments) | no | Defines environment variables to be set when executing all rules. +|[**categories**](#categories)| no | Rules are grouped into categories. Rules inside a category are run with the same [environment variables values](#environments), and the same resource requirements. +|default_category | no | Name of the category used if none is specified for a rule.
    If there is no corresponding category defined, default values will be filled in. If not provided, the default category is `"default"`. + +### Rules + +There are two types of rules. The first type describes single commands, and the second describes sub-workflows. + +A rule encoding **a single command** is a JSON object with the following keys. + +```json +{ + "command" : , + + "inputs" : [ , , ... ], + + "outputs" : [ , , ... ], + + "local_job" : , + + "environment":{ :, :, ... }, + + "category" : , + + "resources" : , + + "allocation" : +} +``` + +A rule specifying **a sub-workflow** is a JSON object similar to the one for a +single command, but it replaces the key `command` with keys `workflow` and +`args`: + +```json +{ + "workflow" : , + + "args" : { ... }, + + # inputs, outputs, local_job, environment, category, resources, and allocation + # as for a single command. + + ... +} +``` + +| Key | Required | Description | +|-----|:--------:|-------------| +| command
    _or_
    workflow | yes | Either `command`, which is a single Unix program to run, or a `workflow` which names another workflow to be run as a sub-job. +| args | no | **Only used with workflow key.** Gives arguments as a JSON array to be passed to a sub-workflow. +| inputs | no | An array of [file specifications](#Files) required by the command or sub-workflow. +| outputs | no | An array of [file specifications](#Files) produced by the command or sub-workflow. +| local_job | no | If `true` indicates that the job is best run locally by the workflow manager, rather than dispatched to a distributed system. This is a performance hint provided by the end user and not a functional requirement. Default is `false`. +| category | no | Specifies the name of a job category. The name given should correspond to the key of a category object in the global workflow object. +| resources | no | Specifies the specific [resource requirements](#resources) of this job. +| allocation | no | Specifies the resource allocation policy:
    • `first` computes the best "first allocation" based on the prior history of jobs in this category.
    • `max` selects the maximum resources observed by any job in this category.
    • `error` attempts to execute the job and increases the resources offered if an error results.
    +| environment | no | Specifies [environment variables](#environments). + + +### Files + +A file is encoded as either a JSON string or a JSON object. If a file is given +simply as a string, then the string gives the name of the file in all +contexts. For example: + +```json +"output.txt" +``` + +If a file is given as an object, then it the object describes the (possibly +different) names of the file in the workflow context (DAG context) and the task +context. The file will be renamed as needed when dispatched from the workflow +to the task, and vice versa. For example: + +```json +{ + "dag_name" : "output.5.txt", + "task_name" : "output.txt" +} +``` + + +### Categories + +A **category** is encoded as a JSON object with the following keys: + +```json +{ + "environment": , + + "resources": +} +``` + +The category describes the [environment variables](#environments) and +[resources required](#resources) per rule for all the rules that share that +category name. + + +### Environments + +Environments are encoded as a JSON object where each key/value pair describes +the name and value of a Unix environment variable: + +```json +{ + "PATH":"/opt/bin:/bin:/usr/bin", + "LC_ALL":C.UTF-8" +} +``` + + +An environment may be given at the global workflow level, in a category +description, or in an individual job, where it applies to the corresponding +object. If the same environment variable appears in multiple places, then the +job value overrides the category value, and the category value overrides the +global value. + + +### Resources + +Resources are encoded as a JSON object with the following keys: + +```json +{ + "cores" : , + "memory" : , + "disk" : , + "gpus" : , + "wall-time": +} +``` + +A resource specification may appear in an individual job or in a category +description. `"cores"` and `"gpus"` give the number of CPU cores and GPUs, +respectively, required to execute a rule. `"disk"` gives the disk space +required, in MB. `"memory"` gives the RAM required, in MB. + +`"wall-time"` specifies the maximum allowed running time, in seconds. + + +## JX Expressions + +JX is a superset of JSON with additional syntax for dynamically generating +data. The use case in mind when designing JX was writing job descriptions for +a workflow manager accepting JSON input. + +For workflows with a large number of +rules with similar structure, it is sometimes necessary to write a script in +another language like Python to generate the JSON output. It is +desirable to have a special-purpose language that can dynamically generate +rules while still bearing a resemblance to JSON, and more importantly, still +being readable. JX is much lighter than a full-featured language like Python +or JavaScript, and is suited to embedding in other systems like a workflow +manager. + +Standard JSON syntax is supported, with some additions from Python. JX allows +for expressions using Python's basic operators. These include the usual +arithmetic, comparison, and logical operators (e.g. `+`, `<=`, `and`, etc.). +JX also includes Python's `range()` function for generating sequences of +numbers. + +```json +"123" + "4" +=> "1234" + +123 + 4 +=> 127 + +"123" + 4 +=> Error{"source":"jx_eval", + "name":"mismatched types", + "message":"mismatched types for operator", + "operator":"123"+4, + "code":2} + +``` + + +Evaluation will produce plain JSON types from JX, assuming the evaluation +succeeded. If an error occurs, evaluation stops and an error is returned to +the caller. Error objects can include additional information indicating where +the failure occurred and what the cause was. Details on the syntax and usage +of Errors are given [below](#errors). + +If a non-error type is returned, then evaluation succeeded and the result +contains only plain JSON types. JX expressions are evaluated in a _context_ , +which is an object mapping names to arbitrary JX values. On evaluating a +variable, the variable's name is looked up in the current context. If found, +the value from the context is substituted in place of the variable. If the +variable is not found in the context, an error is returned. + +!!! note + JX supports comments, introduced by the `#` character and continuing for + the rest of the line. + +#### Unary Operators + +##### Logical Complement + +> not -> + +Computes the logical NOT of the given boolean. Unlike C, integers may _not_ be +used as truth values. + + +#### Negation + +> -A -> A where A is or + +Computes the additive inverse of its operand. + + +#### Positive Prefix + +> +A -> A where A is , , or + +Returns its operand unmodified. + + + +### Binary Operators + +For complicated expressions, parentheses may be used as grouping symbols. JX +does not allow tuples. In the absence of parentheses, operators are evaluated +left to right in order of precedence. From highest to lowest precedence, + +| | +|-| +|lookup, function call +|*, %, / +|+, - +|==, !=, <, <=, >, >= +|not +|and +|or + + +### Lookup + +> A[B] -> C where A is and B is , +> or A is and B is + +Gets the item at the given index/key in a collection type. A negative index +into an array is taken as the offset from the tail end. + +Arrays also support slicing, with the index is given as `N:M` where `N` and +`M` are optional values that evaluate to integers. If either is absent, the +beginning/end of the array is used. This slice syntax is based on Python's. + + +```python +range(10) +=> range [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + +range(10)[:3] +=> [0, 1, 2] + +range(10)[4:] +=> [4, 5, 6, 7, 8, 9] + +range(10)[3:7] +=> [3, 4, 5, 6] +``` + +### Concatenation + +> A + A -> A where A is , or + +### Arithmetic operators + +> A + A -> A (addition) +> A - A -> A (subtraction) +> A * A -> A (multiplication) +> A / A -> A (division) +> A % A -> A (modulo) +> where A is , + +Division and modulo by zero generate an error. + + +### Logic operators + +> and -> (conjunction) +> or -> (disjunction) + + +### Comparison operators + +> A == B -> (equality) +> A != B -> (inequality) +> C < C -> (less-than) +> C <= C -> (less-than-or-equal) +> C > C -> (greater-than) +> C >= C -> (greater-than-or-equal) + +> where A and B are any type, +> and C is , or + +For equality operators, all instances of *null* are considered to be equal. For +arrays and objects, equality is checked recursively. Note that if `x` and `y` +are of incompatible types, `x == y` returns `false`, and `x != y` return +`true`. + +For `<`, `<=`, `>`, and `>=` the behaviour depends on the type of its arguments: + +| | | +|-|-| +integer _or_ double | Compares its operands numerically +string | Compares its operands in lexicographical order (as given by strcmp(3)) +|| It is an error to compare a string to an integer or double. + + + +### Functions + +#### range + +> range(A) -> +> range(A, A[, A]) -> +> +> where A is + +Returns an array of integers ranging over the given values. This function is a +reimplementation of [Python's range +function](https://docs.python.org/2/library/functions.html#range). range has +two forms: + +> range(stop) +> range(start, stop[, step]) + + +The first form returns an array of integers from zero to stop (exclusive). + + +```python +range(10) +=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +``` + +The second form returns an array of integers ranging from start (inclusive) to +stop (exclusive). + + + +```python +range(3, 7) +=> [3, 4, 5, 6] + +range(7, 3) +=> [] +``` + +The second form also allows an optional third parameter, step. If not given, +step defaults to one. + +```python +range(-1, 10, 2) +=> [-1,1,3,5,7,9] + +range(5,0,-1) +=> [5, 4, 3, 2, 1] +``` + +Calling with step = 0 is an error. + +#### format + +> format(A, ...) -> String +> where A is + + +Replaces format specifiers in the given string. This function is based on C's +`printf` function and provides the following conversion specifiers. + +| | | +|-|-| +`%%` | the `%` character +`%s` | string +`%d`, `%i` | signed decimal integer +`%e` | scientific notation (mantissa/exponent) using 'e' +`%E` | scientific notation (mantissa/exponent) using 'E' +`%f`,`%F` | decimal floating point +`%g`,`%G` | double argument is converted in the style of `%f` or `%e` (`%F` or `%G`),
    whichever is more compact. + + +```python +format("file%d.txt", 10) += "file10.txt" + +format("SM%s_%d.sam", "10001", 23) += "SM10001_23.sam" +``` + + +This function serves the same purpose as Python's format operator (%). Since +JX does not include tuples, it provides a function to allow formatting with +multiple fields. JX's format function could be written in Python as follows. + + + +```python +def format(spec, *args): + return spec % tuple(args) +``` + +#### template + +> template(A[,B]) -> String +> where A = String and B = Object + +template() replaces format placeholders in the given string. +This function is based on Python's sting formatting capabilities. +Variable names enclosed in curly braces are looked up in the current context. +Suppose that the ID variable is defined as 10. + + +```python +template("file{ID}.txt") += "file10.txt" +``` + +It's also possible to specify values directly within the template expression. +The optional second argument is an object consisting of name-value pairs to use in addition to the local context. +This allows overriding defined variables and writing complex expressions. +Suppose that the variable N is defined as 48. + +```python +template("SM{PLATE}_{ID}.sam", {"PLATE": "10001", "ID": N/2 - 1}) += "SM10001_23.sam" +``` + +#### len + +> len([1,2,3]) -> Integer + +len() returns the length when passed in an array and errors when not an array. This function is +based on Python's own len() function. + +```python +len([1,2,3]) += 3 +``` + + +### Comprehensions + +JX supports list comprehensions for expressing repeated structure. An entry in +a list can be postfixed with one or more `for` clauses to evaluate the list +item once for each entry in the specified list. A `for` clause consists of a +variable and a list, along with an optional condition. + + +```python +[x + x for x in ["a", "b", "c"]] += ["aa", "bb", "cc"] + +[3 * i for i in range(4)] += [0, 3, 6, 9] + +[i for i in range(10) if i%2 == 0] += [0, 2, 4, 6, 8] +``` + +If multiple clauses are specified, they are evaluated from left to right. + + +```python +[[i, j] for i in range(5) for j in range(4) if (i + j)%2 == 0] += [[0, 0], [0, 2], [1, 1], [2, 0], [2, 2], [3, 1]] +``` + + +### Errors + +JX has a special type, *Error*, to indicate some kind of failure or exceptional +condition. + +If a function or operator is misapplied, jx_eval will return an +error indicating the cause of the failure. Errors are akin to Python's +exceptions, but JX does not allow Errors to be caught; they simply terminate +evaluation and report what happened. + +Errors do not evaluate in the same way as other types. The additional +information in an error is protected from evaluation, so calling jx_eval on an +Error simply returns a copy. It is therefore safe to directly include the +invalid function/operator in the body of an error. If a function or operator +encounters an error as an argument, evaluation is aborted and the Error is +returned as the result of evaluation. Thus if an error occurs deeply nested +within a structure, the error will be passed up as the result of the entire +evaluation. + +Errors are defined using the keyword Error followed by a body enclosed in curly +braces. + +```json +Error{ + "source": "jx_eval", + "message": "undefined symbol", + "context": { + "outfile": "results", + "infile": "mydata", + "a": true, + "b": false, + "f": 0.5, + "g": 3.14159, + "x": 10, + "y": 20, + "list": [ + 100, + 200, + 300 + ], + "object": { + "house": "home" + } + }, + "symbol": my-undefined-variable, + "code": 0 +} +``` + + +All errors _MUST_ include these keys with string values: + +| Required error keys | | +|-|-| +source | Indicates where the error comes from, and the structure of the additional data. +message | Some human-readable details about the conditions of the error. + +Errors from "jx_eval" have some additional keys, described below, to aid in +debugging. Other sources are free to use any structure for their additional +error data. + +#### JX Errors + +The following errors may produced by jx_eval. + +|message|description| +|-|-| +undefined symbol | The given symbol was not present in the evaluation context. +unsupported operator | The operator cannot be applied to the type given. +mismatched types | The binary operator was applied to operands of incompatible types. +key not found | Object lookup failed because the given object does not contain the requested key. +range error | Array lookup failed because the requested index is outside the given array's bounds. +arithmetic error | The operands are outside the given arithmetic operator's range. +division by zero | Some arithmetic operation resulted in a division by zero. +invalid arguments | The function arguments are not valid for the given function. + + diff -Nru cctools-7.0.22/doc/manuals/jx/jx-quick.md cctools-7.1.2/doc/manuals/jx/jx-quick.md --- cctools-7.0.22/doc/manuals/jx/jx-quick.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/jx/jx-quick.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,144 @@ +# JX Workflow Language Quick Reference + +[Makeflow](../../makeflow) | [JX Tutorial](../jx-tutorial) | [JX Full Reference](../jx) + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Workflow Rules
    +```json +{ + # Required elements: + "rules" : [ + # Array of rules goes here. + ], + # Optional elements: + "define" : { + "temp" : 32.5, + }, + "environment" : { + "PATH" : "/usr/local/bin:/bin", + }, + "categories" : { + "simulation" : { + "resources" : { ... }, + "environment" : { ... }, + "allocation" : "auto" | "max" | "error" + } + } +} +``` + + +```json +{ + # Required elements + "command" : "./sim calib.dat > out", + "inputs" : [ "sim", "calib.dat" ], + "outputs" : [ "out" ], + + # Optional elements + "local_job" : true | false, + "resources" : { + "cores":4, + "memory":8, + "disk":16, + "wall-time":3600 + }, + "environment" : { ... } + "category" : "simulation", + "allocation" : "first"|"max"|"error" +} +``` +
    Values Operators Functions
    +```json +"string" + +42 +3.14159 + +true | false + +[ 1, 2, 3 ] + +{ "temp" : 32.5, + "name" : "fred" } +``` + + +```json +a["b"] +func(x) + +* % / ++ - + +== != < <= > >= + +not +and +or + +expr for x in [1,2,3] +``` + + +```json + format( "str: %s int: %d float: %f", + "hello", 42, 3.14159 ) + join( array, delim ) + range( start, stop, step ) + ceil( value ) + floor( value ) + basename( path ) + dirname( path ) + escape( string ) + len( array ) +``` + +
    Examples
    + +```json +# A hash at the beginning of a line starts a comment. + +# Generate an array of 100 files named "output.1.txt", etc... +[ "output."+x+".txt" for x in range(1,100) ] + +# Generate one string containing those 100 file names separated by a space. +join( [ "output."+x+".txt" for x in range(1,100) ], " ") + +# Generate five jobs that produce output files alpha.txt, beta.txt, ... +{ + "command" : "simulate.py > "name + ".txt", + "outputs" : [ name + ".txt" ], + "inputs" : "simulate.py", +} for name in [ "alpha", "beta", "gamma", "delta", "epsilon" ] +``` +
    + + + diff -Nru cctools-7.0.22/doc/manuals/jx/jx-tutorial.md cctools-7.1.2/doc/manuals/jx/jx-tutorial.md --- cctools-7.0.22/doc/manuals/jx/jx-tutorial.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/jx/jx-tutorial.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,383 @@ +# Tutorial: JX Workflow Language + +This is a gentle introduction to the [JX workflow language](jx.md), which is the +"advanced" language used by the [Makeflow](../../makeflow) workflow engine. JX +is an extension of standard [JSON](http://json.org) expressions, so if you are +familiar with those from another language, you will find it easy to get +started. + +To use these examples, you will first need to install the +[Makeflow](../makeflow) workflow engine and ensure that the `makeflow` +command is in your `PATH`. + +## Hello World + +Let's begin by creating a simple workflow that executes exactly one task, +which outputs the text "hello world". Enter the following workflow using your +favorite text editor and save it into a file called `hello-world.jx`: + +[hello-world.jx](hello-world.jx) + +```json +{ + "rules": [ + { + "command" : "/bin/echo hello world > output.txt", + "outputs" : [ "output.txt" ], + "inputs" : [ ] + } + ] +} +``` + +Now run it locally with the following command: + +```sh +$ makeflow --jx hello-world.jx +``` + +You should see some output like this: + +```sh +parsing hello-world.jx... +local resources: 4 cores, 7764 MB memory, 2097151 MB disk +max running local jobs: 4 +checking hello-world.jx for consistency... +hello-world.jx has 1 rules. +starting workflow.... +submitting job: echo hello world > output.txt +submitted job 27758 +job 27758 completed +nothing left to do. +``` + +Now examine the file `output.txt`: + +```sh +cat output.txt +``` + +and you should see that it contains "hello world". Congratulations, you have run your first workflow! + + +## Defining Values + +JX allows you to programmatically define elements of your workflow, using +expressions to substitute in for parts of jobs. The general structure of a +workflow is this: + +```json +{ + "define": { + # symbol definitions go here + }, + "rules": [ + # rules go here + ] +} +``` + +Building on the previous example, suppose that you want to parameterize the +message constant called `message` To do that, define it in the `define` +section, and then concatentate `message` into the job, like this: + +[define-hello.jx](define-hello.jx) +```json +{ + "define":{ + "message" : "hello world!" + }, + "rules": [ + { + "command": "/bin/echo " +message+ " > output-from-define.txt", + "outputs": [ "output-from-define.txt" ], + "inputs": [ ], + } + ] +} +``` + +```sh +$ makeflow --jx define-hello.jx + +parsing define-hello.jx... +local resources: 4 cores, 7764 MB memory, 2097151 MB disk +max running local jobs: 4 +checking define-hello.jx for consistency... +define-hello.jx has 1 rules. +starting workflow.... +submitting job: /bin/echo hello world! > output-from-define.txt +submitted job 1376 +job 1376 completed + +$ cat output-from-define.txt +hello world! +``` + + +## Generating Multiple Jobs + +A common use of workflows is to drive a large number of simulation or analysis +codes. Suppose that you have a custom simulation code called `simulate.py` +which takes a command line argument `--parameter` and produces its output on the +console. To run one instance of that simulator, you could do this: + +[simulate.py](simulate.py) + +[simulate-once.jx](simulate-once.jx) +```json +{ + "rules": [ + { + "command" : "python ./simulate.py --parameter 1 > output.txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output.txt" ] + } + ] +} +``` + +(Note that the simulator code itself is treated as an input file, so that the +code can be copied to the target execution machine as needed.) + +If you wanted to run three simulations with slightly different arguments, you +could simply write each one out longhand, giving each one a different command +line argument and sending output to a different file: + +[simulate-many-long-form.jx](simulate-many-long-form.jx) +```json +{ + "rules": [ + { + "command" : "python ./simulate.py --parameter 1 > output.1.txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output.1.txt" ] + }, + { + "command" : "python ./simulate.py --parameter 2 > output.2.txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output.2.txt" ] + }, + { + "command" : "python ./simulate.py --parameter 3 > output.3.txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output.3.txt" ] + } + ] +} +``` + + +But of +course that would be tiresome for a large number of jobs. Instead, you can +write out the job once and use the `for` operator (sometimes known as a _list +comprehension_ ) to generate multiple instance of the job: + +[simulate-many-concat.jx](simulate-many-concat.jx) +```json +{ + "rules": [ + { + "command" : "python ./simulate.py --parameter " + N + " > output." + N + ".txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output." + N + ".txt" ] + } for N in [1, 2, 3] + ] +} +``` + +Note that the value of `N` is substituted into both the commands +string and the output list by using the plus sign to indicate string +concatenation. If you prefer a more compact style, you can +use the `template()` function to insert values into strings +into places indicate by curly braces: + +``` +{ + "rules": [ + { + "command" : template("./simulate.py -n {N} > output.{N}.txt") + "inputs" : [ "simulate.py" ], + "outputs" : [ "output."+N+".txt" ], + } for N in [ 1, 2, 3 ] +``` + +If you want to preview how +these list comprehensions expand into individual jobs, use the program `jx2json` to reduce the JX program into plain JSON: + +```sh +jx2json --pretty simulate-many-concat.jx +``` + +Which should produce output like this: + +```json +{ + "rules": + [ + { + "command":"python ./simulate.py --parameter 1 > output.1.txt", + "inputs": + [ + "simulate.py" + ], + "outputs": + [ + "output.1.txt" + ] + }, + + { + "command":"python ./simulate.py --parameter 2 > output.2.txt", + ... +``` + + +## Gather Results + +So far, out example workflow will run three simulations independently. But +suppose you want the workflow to have a final step which runs after all the +simulations are complete, to collect the results in a single file called +`output.all.txt`. + +You _could_ write the rule out longhand for three files explicitly: + +```json +{ + "command" : "/bin/cat output.1.txt output.2.txt output.3.txt > output.all.txt", + "inputs" : [ "output.1.txt", "output.2.txt", "output.3.txt" ], + "outputs" : [ "output.all.txt" ] +} +``` + +Of course, it would be better to generate the list +automatically. The list of output files is easy using a list comprehension: + +```json +[ "output." + N + ".txt" for N in [1,2,3] ] +``` + +evaluates to + +```json +["output.1.txt","output.2.txt","output.3.txt"] +``` + +!!! note + You can corroborate this with: `echo '[ "output." + N + ".txt" for N in [1,2,3] ]' | jx2json` + +The command line string takes more thought, because we want a string containing all of those filenames, +rather than the array. The `join()` function is used to join an array into a +single string. + +For example, the expression: + +```json +join(["output.1.txt","output.2.txt","output.3.txt"], " ") +``` + +evaluates to: + +```json +"output.1.txt output.2.txt output.3.txt" +``` + +We _could_ put all of those bits into a single rule, like this: + +```json +{ + "command" : "/bin/cat " + join([ "output." + N + ".txt" for N in [1,2,3]]) + " > output.all.txt", + "inputs" : [ "output." + N + ".txt" ] for N in [ 1, 2, 3 ] ], + "outputs" : [ "output.all.txt" ] +} +``` + +That is correct, but it's rather hard to read. Instead, we can make things +clearer by factoring out the definition of the list and the range to the +`define` section of the workflow. Putting it all together, we have this: + +[gather.jx](gather.jx) +```json +{ + "define" : { + "RANGE" : range(1,4), + "FILELIST" : [ "output." + N + ".txt" for N in RANGE ], + }, + + "rules" : [ + { + "command" : "python ./simulate.py --parameter " + N + " > output."+N+".txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output." + N + ".txt" ] + } for N in RANGE, + { + "command" : "/bin/cat " + join(FILELIST," ") + " > output.all.txt", + "inputs" : FILELIST, + "outputs" : [ "output.all.txt" ] + } + ] +} +``` + +## Computational Resources + +JX allows you to specify the number of cores, and the memory and disk sizes a +rule requires. To this end, rules are grouped into **categories**. Rules in the +same category are expected to use the same quantity of resources. Following +with our example, we have two natural categories, rules that perform a +simulation, and a rule that collects the results: + +[gather-with-categories.jx](gather-with-categories.jx) +```json +{ + "define" : { + "RANGE" : range(1,4), + "FILELIST" : [ "output." + N + ".txt" for N in RANGE ], + }, + + "categories" : { + "simulate" : { + "resources" : { "cores" : 4, "memory" : 512, "disk" : 1024 } + }, + "collect" : { + "resources" : { "cores" : 1, "memory" : 512, "disk" : 8192 } + } + }, + + "rules" : [ + { + "command" : "python ./simulate.py --parameter " + N + " > output."+N+".txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output." + N + ".txt" ], + "category" : "simulate" + } for N in RANGE, + { + "command" : "/bin/cat " + join(FILELIST," ") + " > output.all.txt", + "inputs" : FILELIST, + "outputs" : [ "output.all.txt" ], + "category" : "collect" + } + ] +} +``` + +In the previous example, the category names `simulate` and `collect` are +arbitrary names. Also,both **memory** and **disk** are specified in megabytes +(MB). Note that we both defined `categories` and labeled each rule with its +`category`. All rules not explicitly labeled with a category belong to the +`default` category. + +The resource specifications are used in two ways: + + * To describe the batch jobs used to run a rule. Thus, `makeflow` is able to request the batch system for appropiate resources. + * When makeflow is run using resource monitoring (`--monitor=...`), if the resource usage of a rule exceeds the resources declared, it is terminated and marked as failed rule. + +When the resources used by a rule are not known, we recommend to set the +resource specification to the largest resources available (e.g., the largest +size possible for a batch job), and add to the category definition the key- +value `"allocation" : "auto"`. As measurements become available, makeflow +computes efficient resource allocations to maximize throughput. If a rule +fails because the computed allocation is too small, it is retried once using +the maximum resources specified. With this scheme, even when some rules are +retried, overall throughput is increased in most cases. + diff -Nru cctools-7.0.22/doc/manuals/jx/simulate-many-concat.jx cctools-7.1.2/doc/manuals/jx/simulate-many-concat.jx --- cctools-7.0.22/doc/manuals/jx/simulate-many-concat.jx 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/jx/simulate-many-concat.jx 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,9 @@ +{ + "rules": [ + { + "command" : "python ./simulate.py --parameter " + N + " > output." + N + ".txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output." + N + ".txt" ] + } for N in [1, 2, 3] + ] +} diff -Nru cctools-7.0.22/doc/manuals/jx/simulate-many-format.jx cctools-7.1.2/doc/manuals/jx/simulate-many-format.jx --- cctools-7.0.22/doc/manuals/jx/simulate-many-format.jx 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/jx/simulate-many-format.jx 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,9 @@ +{ + "rules": [ + { + "command" : format("python ./simulate.py --parameter %d > output.%d.txt", N, N), + "inputs" : [ "simulate.py" ], + "outputs" : [ format("output.%d.txt", N) ] + } for N in [1, 2, 3] + ] +} diff -Nru cctools-7.0.22/doc/manuals/jx/simulate-many-long-form.jx cctools-7.1.2/doc/manuals/jx/simulate-many-long-form.jx --- cctools-7.0.22/doc/manuals/jx/simulate-many-long-form.jx 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/jx/simulate-many-long-form.jx 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,19 @@ +{ + "rules": [ + { + "command" : "python ./simulate.py --parameter 1 > output.1.txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output.1.txt" ] + }, + { + "command" : "python ./simulate.py --parameter 2 > output.2.txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output.2.txt" ] + }, + { + "command" : "python ./simulate.py --parameter 3 > output.3.txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output.3.txt" ] + } + ] +} diff -Nru cctools-7.0.22/doc/manuals/jx/simulate-once.jx cctools-7.1.2/doc/manuals/jx/simulate-once.jx --- cctools-7.0.22/doc/manuals/jx/simulate-once.jx 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/jx/simulate-once.jx 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,9 @@ +{ + "rules": [ + { + "command" : "python ./simulate.py --parameter 1 > output.txt", + "inputs" : [ "simulate.py" ], + "outputs" : [ "output.txt" ] + } + ] +} diff -Nru cctools-7.0.22/doc/manuals/jx/simulate.py cctools-7.1.2/doc/manuals/jx/simulate.py --- cctools-7.0.22/doc/manuals/jx/simulate.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/jx/simulate.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,18 @@ +#! /usr/bin/env python + +# Mock simulator. It simply reads the parameter passed with --parameter, and +# prints a message to stdout. + +import sys + +if len(sys.argv) != 3 or sys.argv[1] != '--parameter': + sys.stderr.write("""Usage: + {} --parameter N +where N is a number. +""".format(sys.argv[0])) + sys.exit(1) + +parameter = sys.argv[2] + +print('Simulation with parameter {}'.format(parameter)) + diff -Nru cctools-7.0.22/doc/manuals/makeflow/index.md cctools-7.1.2/doc/manuals/makeflow/index.md --- cctools-7.0.22/doc/manuals/makeflow/index.md 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/manuals/makeflow/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -471,7 +471,7 @@ * Add the `aws` command to your PATH. -* Run `aws configure` and enter your AWS Access Key ID, your AWS Secret Access Key, and your preferred region name. (The keys can be obtained from the AWS web page by going to your profile menu, selecting "My Security Credentials" and then "Access Keys". You may need to create a new access key.) +* Run `aws configure` and enter your AWS Access Key ID, your AWS Secret Access Key, your preferred region name and json output format. (The keys can be obtained from the AWS web page by going to your profile menu, selecting "My Security Credentials" and then "Access Keys". You may need to create a new access key.) * Test that the command-line tool is working by entering: `aws ec2 describe-hosts ` Which should display: `{ "Hosts": [] }` @@ -494,8 +494,10 @@ ``` to use the configuration you just created. You can run multiple workflows using -a single configuration. When you are done, destroy the configuration with this -command: `makeflow_ec2_cleanup my.config ` +a single configuration. Intances are reused between makeflow jobs. + +When you are done, terminate created instances and destroy +the configuration with this command: `makeflow_ec2_cleanup my.config ` Makeflow selects the virtual machine instance type automatically by translating the job resources into an appropriate instance type of the `c4` or `m4` diff -Nru cctools-7.0.22/doc/manuals/man_pages/.gitignore cctools-7.1.2/doc/manuals/man_pages/.gitignore --- cctools-7.0.22/doc/manuals/man_pages/.gitignore 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/man_pages/.gitignore 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1 @@ +*.md diff -Nru cctools-7.0.22/doc/manuals/man_pages.md cctools-7.1.2/doc/manuals/man_pages.md --- cctools-7.0.22/doc/manuals/man_pages.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/man_pages.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,84 @@ +# Man Pages + +These pages contain a brief synopsis of every command, +for reference purposes. Please see the user manuals +for a broader discussion of how each tool is used. + +## Makeflow + + * [makeflow(1)](man_pages/makeflow.md) + * [makeflow_status(1)](man_pages/makeflow_status.md) + * [makeflow_monitor(1)](man_pages/makeflow_monitor.md) + * [makeflow_linker(1)](man_pages/makeflow_linker.md) + * [makeflow_analyze(1)](man_pages/makeflow_analyze.md) + * [makeflow_viz(1)](man_pages/makeflow_viz.md) + * [makeflow_graph_log(1)](man_pages/makeflow_graph_log.md) + * [starch(1)](man_pages/starch.md) + * [makeflow_ec2_setup(1)](man_pages/makeflow_ec2_setup.md) + * [makeflow_ec2_cleanup(1)](man_pages/makeflow_ec2_cleanup.md) + * [condor_submit_makeflow(1)](man_pages/condor_submit_makeflow.md) + +## Work Queue + + * [work_queue_worker(1)](man_pages/work_queue_worker.md) + * [work_queue_status(1)](man_pages/work_queue_status.md) + * [work_queue_graph_log(1)](man_pages/work_queue_graph_log.md) + * [work_queue_factory(1)](man_pages/work_queue_factory.md) + +### Worker Submission Scripts + + * [condor_submit_workers(1)](man_pages/condor_submit_workers.md) + * [sge_submit_workers(1)](man_pages/sge_submit_workers.md) + * [pbs_submit_workers(1)](man_pages/pbs_submit_workers.md) + * [torque_submit_workers(1)](man_pages/torque_submit_workers.md) + * [slurm_submit_workers(1)](man_pages/slurm_submit_workers.md) + +## Resource Monitor + + * [resource_monitor(1)](man_pages/resource_monitor.md) + * [resource_monitor_histograms(1)](man_pages/resource_monitor_histograms.md) + * [resource_monitor_visualizer(1)](man_pages/resource_monitor_visualizer.md) + +## Catalog Server + + * [catalog_server(1)](man_pages/catalog_server.md) + * [catalog_update(1)](man_pages/catalog_update.md) + * [catalog_query(1)](man_pages/catalog_query.md) + * [deltadb_query(1)](man_pages/deltadb_query.md) + +## Parrot + + * [parrot_run(1)](man_pages/parrot_run.md) + * [parrot_cp(1)](man_pages/parrot_cp.md) + * [parrot_md5(1)](man_pages/parrot_md5.md) + * [parrot_getacl(1)](man_pages/parrot_getacl.md) + * [parrot_setacl(1)](man_pages/parrot_setacl.md) + * [parrot_mkalloc(1)](man_pages/parrot_mkalloc.md) + * [parrot_lsalloc(1)](man_pages/parrot_lsalloc.md) + * [parrot_locate(1)](man_pages/parrot_locate.md) + * [parrot_timeout(1)](man_pages/parrot_timeout.md) + * [parrot_whoami(1)](man_pages/parrot_whoami.md) + * [parrot_package_create(1)](man_pages/parrot_package_create.md) + * [parrot_package_run(1)](man_pages/parrot_package_run.md) + * [chroot_package_run(1)](man_pages/chroot_package_run.md) + * [parrot_mount(1)](man_pages/parrot_mount.md) + * [parrot_namespace(1)](man_pages/parrot_namespace.md) + +## Chirp File System + + * [chirp(1)](man_pages/chirp.md) + * [chirp_status(1)](man_pages/chirp_status.md) + * [chirp_fuse(1)](man_pages/chirp_fuse.md) + * [chirp_get(1)](man_pages/chirp_get.md) + * [chirp_put(1)](man_pages/chirp_put.md) + * [chirp_stream_files(1)](man_pages/chirp_stream_files.md) + * [chirp_distribute(1)](man_pages/chirp_distribute.md) + * [chirp_benchmark(1)](man_pages/chirp_benchmark.md) + * [chirp_server(1)](man_pages/chirp_server.md) + * [chirp_server_hdfs(1)](man_pages/chirp_server_hdfs.md) + * [The Chirp Protocol](chirp/chirp_protocol.md) + +## Confuga File System + + * [confuga(1)](man_pages/confuga.md) + diff -Nru cctools-7.0.22/doc/manuals/network/index.md cctools-7.1.2/doc/manuals/network/index.md --- cctools-7.0.22/doc/manuals/network/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/network/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,98 @@ +# CCTools Network Options + +When working in a cloud or HPC environment, you may find complex network +conditions such as multiple network interfaces, firewalls, and other +conditions. The following environment variables can be used to shape the +network behavior of Makeflow, Work Queue, Parrot, Chirp, and other tools, so +as to work correctly in these environments. + +## IPV6 Support + +IPV6 is supported by all of the CCTools components, however it is not turned +on by default because IPV6 is not reliably deployed at all sites. You can +enable IPV6 support with the `CCTOOLS_IP_MODE` environment variable. + +To enable both IPV4 and IPV6 support according to the local system +configuration: (recommended use) + + + + export CCTOOLS_IP_MODE=AUTO + + +To enable **only** IPV4 support: (the default) + + + + export CCTOOLS_IP_MODE=IPV4 + + +To enable **only** IPV6 support: (not recommended; use only for testing IPV6) + + + + export CCTOOLS_IP_MODE=IPV6 + + +Where it is necessary to combine an address and port together into a single +string, an IPV4 combination looks like this: + + + + 192.168.0.1:9094 + + +But an IPV6 combination looks like this: + + + + [1234::abcd]:9094 + + +## TCP Port Ranges + +When creating a listening TCP port, the CCTools will, by default, pick any +port available on the machine. However, some computing sites set up firewall +rules that only permit connections within certain port ranges. To accommodate +this, set the ` TCP_LOW_PORT` and `TCP_HIGH_PORT` environment variables, and +the CCTools will only use ports within that range. + +For example, if your site firewall only allows ports 8000-9000, do this: + + + + export TCP_LOW_PORT=8000 + export TCP_HIGH_PORT=9000 + + +## TCP Window Size + +The performance of TCP connections over wide area links can be significantly +affected by the "window size" used within the kernel. Ideally, the window size +is set to the product of the network bandwidth and latency, and is managed +automatically by the kernel. In certain cases, you may wish to set it manually +with the `TCP_WINDOW_SIZE` environment variable, which gives the window size +in bytes. + +For example, to se the window size to 1MB: + + + + export TCP_WINDOW_SIZE=1048576 + + +## HTTP Proxies + +if your computing site requires all HTTP requests to be routed through a +proxy, specify that proxy with the `HTTP_PROXY` environment variable. The +value should be a semi-colon separated list of proxy URLs, in order of +preference. The final entry may be `DIRECT` indicating that a direct +connection should be attempted if all proxy connections fail. + +For example: + + + + export HTTP_PROXY=http://proxy01.nd.edu:3128;http://proxy02.nd.edu:3129;DIRECT + + diff -Nru cctools-7.0.22/doc/manuals/old_projects/allpairs.md cctools-7.1.2/doc/manuals/old_projects/allpairs.md --- cctools-7.0.22/doc/manuals/old_projects/allpairs.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/old_projects/allpairs.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,156 @@ +# Allpairs User's Manual + +**Last Updated October 2010** + +Allpairs is Copyright (C) 2009 The University of Notre Dame. This software is +distributed under the GNU General Public License. See the file COPYING for +details. + +## Overview⇗ + +[![](http://ccl.cse.nd.edu/software/allpairs/small.gif)](http://ccl.cse.nd.edu/software/allpairs/large.gif) +| + +All-Pairs( array A[i], array B[j], function F(x,y) ) +returns matrix M where +M[i,j] = F( A[i], B[j] ) + + +---|--- + +The All-Pairs abstraction computes the Cartesian product of two sets, +generating a matrix where each cell M[i,j] contains the output of the function +F on objects A[i] and B[j]. You provide two sets of data files (as in the +above figure, one set is setA = {A0, A1, A2, A3} and the other set is setB = +{B0, B1, B2, B3}) and a function F that computes on them (later in the text we +refer to this fuction F as either **compare program** or **compare function**. +You may optionally provide additional parameters to control the actual +computation, such as computing only part of the matrix, using a specified +number of CPU cores. The abstraction then runs each of the functions in +parallel, automatically handling load balancing, data movement, fault +tolerance and so on for you. + +## All-Pairs on a Single Machine⇗ + +Let's suppose you have a whole lot of files that you want to compare all to +each other, named ` a`, `b`, `c`, and so on. Suppose that you also have a +program named `compareit` that when invoked as `compareit a b` will compare +files `a` and `b` and produce some output summarizing the difference between +the two, like this: `a b are 45 percent similar` + +To use the allpairs framework, create a file called `set.list` that lists each +of your files, one per line: `a b c ... ` Then, invoke `allpairs_multicore` +like this: `allpairs_multicore set.list set.list compareit` The framework will +carry out all possible comparisons of the objects, and print the results one +by one: `a a are 100 percent similar a b are 45 percent similar a c are 37 +percent similar ... ` + +For large sets of objects, allpairs_multicore will use as many cores as you +have available, and will carefully manage virtual memory to exploit locality +and avoid thrashing. Because of this, you should be prepared for the results +to come back in any order. + +## All-Pairs on a Distributed System⇗ + +So far, we have introduced how to use All-Pairs abstraction on a single +machine. But sometimes the All-Pairs problem is too big to allow a single +machine to finish it in a reasonable amount of time, even if the single +machine is multicore. So, we have built a [Work +Queue](http://ccl.cse.nd.edu/software/workqueue) version of the All-Pairs +abstraction which allows the users to easily apply the All-Pairs abstraction +on clusters, grids or clouds. + +To use the All-Pairs Work Queue version, you will need to start a All-Pairs +master program called `allpairs_master` and a number of workers. The workers +will perform the tasks distributed by the master and return the results to the +master. The individual tasks that the master program distributes are sub- +matrix computation tasks and all the tasks would be performed by the +`allpairs_multicore` program on the workers. For end users, the only extra +step involved here is starting the workers. Starting the All-Pairs master +program is almost identical to starting the All-Pairs multicore program. + +For example, to run the same example as above on a distributed system: +`allpairs_master set.list set.list compareit` + +This will start the master process, which will wait for workers to connect. +Let's suppose the master is running on a machine named `barney.nd.edu`. If you +have access to login to other machines, you could simply start worker +processes by hand on each one, like this: `% work_queue_worker barney.nd.edu +9123` If you have access to a batch system like +[Condor](http://www.cs.wisc.edu/condor), you can submit multiple workers at +once: `% condor_submit_workers barney.nd.edu 9123 10 Submitting +job(s).......... Logging submit event(s).......... 10 job(s) submitted to +cluster 298. ` + +A similar script is available for Sun Grid Engine: `% sge_submit_workers +barney.nd.edu 9123 10` + +In the above two examples, the first argument is the port number that the +master process will be or is listening on and the second the argument is the +number of workers to start. Note that `9123` is the default port number that +the master process uses. If you use the '-p' option in the `allpairs_master` +to change the listening port, you will need to modify the port argument in the +starting worker command accordingly. + +Once the workers are running, the `allpairs_master` can dispatch tasks to each +one very quickly. If a worker should fail, Work Queue will retry the work +elsewhere, so it is safe to submit many workers to an unreliable system. + +When the All-Pairs master process completes, your workers will still be +available, so you can either run another master with the same workers, remove +them from the batch system, or wait for them to expire. If you do nothing for +15 minutes, they will automatically exit by default. You can change this +worker expiration time by setting the '`-t`' option. + +Note that `condor_submit_workers` and `sge_submit_workers` are simple shell +scripts, so you can edit them directly if you would like to change batch +options or other details. + +## Using an Internal Function⇗ + +If you have a very fast comparison program (less than a tenth of a second), +the allpairs framework may be spending more time starting your program than +actually accomplishing real work. If you can express your comparison as a +simple function in C, you can embed that into the allpairs framework to +achieve significant speedups. + +To accomplish this, [download](http://ccl.cse.nd.edu/software/download.shtml) +the CCTools source code, and build it. Then, look for the file +`allpairs/src/allpairs_compare.c`. At the top, you will see a function named +`allpairs_compare_CUSTOM`, which accepts two memory objects as arguments. +Implement your comparison function, and then rebuild the code. Test you code +by running `allpairs_multicore` on a small set of data, but specify `CUSTOM` +as the name of the comparison program. If your tests succeeed on a small set +of data, then proceed to using `allpairs_master`. + +We have implemented several internal comparison functions as examples, +including: + +* BITWISE - Counts the number of bytes different in each object. +* SWALIGN - Performs a Smith-Waterman alignment on two genomic sequences. +* IRIS - Performs a similarity comparison between two iris templates. + +## Tuning Performance⇗ + +By default, both `allpairs_master` and `allpairs_multicore` will adjust to the +proprties of your workload to run it efficiently. `allpairs_master` will run a +few sample executions of your comparison program to measure how long it takes, +and then break up the work units into tasks that take abuot one minute each. +Likewise, `allpairs_multicore` will measure the number of cores and amount of +memory available on your system, and then arrange the computation to maximize +performance. + +If you like, you can use the options to further tune how the problem is +decomposed: + +* `-t` can be used to inform `allpairs_master` how long (in seconds) it takes to perform each comparison. If given, `allpairs_master` will not sample the execution, and will start the computation immediately. +* `-x` and `-y` can be used to set the size of the sub-problem dispatched from `allpairs_master` to `allpairs_multicore` +* `-c` controls the number of cores used by `allpairs_multicore`, which is all available cores by default. +* `-b` controls the block size of elements maintained in memory by `allpairs_multicore`, which is 3/4 of memory by default. + +## For More Information⇗ + +For the latest information about Allpairs, please visit our [web +site](http://ccl.cse.nd.edu/software/allpairs) and subscribe to our [mailing +list](http://ccl.cse.nd.edu/software/help.shtml). + diff -Nru cctools-7.0.22/doc/manuals/old_projects/ftp_lite.md cctools-7.1.2/doc/manuals/old_projects/ftp_lite.md --- cctools-7.0.22/doc/manuals/old_projects/ftp_lite.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/old_projects/ftp_lite.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,151 @@ +# FTP-Lite Manual + +**Last edited: 27 August 2004** + +## Table of Contents⇗ + + * Front Matter + * Introduction + * Installation + * Examples + * Reference + +## Front Matter⇗ + +The FTP-Lite Library is copyright (C) 2004 Douglas Thain and the University of +Notre Dame. + +This product includes software developed by and/or derived from the Globus +Project (http://www.globus.org/) to which the U.S. Government retains certain +rights. + +This program is released under the GNU General Public License. See the file +COPYING for details. + +This software comes with no warranty and no guarantee of support. Questions, +bug reports, and patches may be sent to [condor- +admin@cs.wisc.edu](mailto:condor-admin@cs.wisc.edu). We will address such +inquiries as time and resources permit. + +## Introduction⇗ + +FTP-Lite is a library for accessing FTP servers from UNIX C programs. + +It is designed to be simple, correct, and easily debuggable. In particular, +FTP-Lite presents an FTP service in terms of UNIX abstractions. Errors are +return in standard ` errno` values. Data streams are presented as `FILE` +objects. All procedures perform blocking I/O. + +The library may be built as-is in order to communicate with ordinary +name/password or anonymous FTP servers. However, if the [Globus +Toolkit](http://www.globus.org) is available, it will also perform GSI +authentication with your proxy certificate. + +FTP-Lite provides perfectly reasonable performance for simple clients that +access one file at a time. For clients that need to manage multiple servers at +once, we heartily recommend the FTP implementation found in the Globus +Toolkit. It uses a variety of techniques, such as multiple data streams and +non-blocking interfaces, for achieving high performance and multi-server +access. + +This library was designed specifiy to be used with the [Pluggable File +System](http://www.cs.wisc.edu/condor/pfs), which presents network storage +devices as UNIX file systems. You are welcome to use it for other purposes, +according to the terms set out in the GNU Library General Public License. + +## Installation⇗ + +Download the FTP-Lite source package from the [web +page](http://www.cs.wisc.edu/condor/ftp_lite). Unpack the archive like so: `% +gunzip ftp_lite-0.0.tar.gz % tar xvf ftp_lite-0.0.tar ` Decide on a place to +install FTP-Lite. If you have the Globus and SSL libraries, figure out where +they are installed, and feed the information to `configure`: `% cd +ftp_lite-0.0 % ./configure --prefix /install/dir --with-globus-path +/path/to/globus --with-ssl-path /path/to/ssl ` (At UW-Madison, the appropriate +invocation would be:) `% cd ftp_lite-0.0 % ./configure --prefix ~/ftp_lite +--with-globus-path /p/condor/workspaces/globus --with-ssl-path +/p/condor/workspaces/ssl ` Finally, build and install the library: `% make % +make install ` To build a program using FTP-Lite, change your compile and link +options like so: `CCFLAGS += -I/install/dir/include LDFLAGS += +-L/install/dir/lib -lftp_lite ` + +## Examples⇗ + +For examples of using the library, we recommend that you begin by examining +the code for the simple programs `ftp_lite_test` and `ftp_lite_copy`. A +complete description of every function may be found in the reference section +below. Here is a brief example to get you started. + +A program using the library must first include `ftp_lite.h`: `#include +"ftp_lite.h"` To open a server, `ftp_lite_open` with a server name, port +number, and a stream on which to send debugging messages. For no debugging, +leave the third argument null. On success, this function returns a pointer to +a server. `struct ftp_server *s; s = ftp_lite_open( "ftp.cs.wisc.edu", +FTP_LITE_DEFAULT_PORT, stderr ); if(!s) { perror("couldn't open server"); +return 0; } ` You must authenticate yourself to the server before accessing +any data. Three sorts of authentication are currently provided: anonymous, +userpass, and Globus. For example, to authenticate with a username and +password: `success = ftp_lite_auth_userpass(server,"fred","secret"); +if(!success) { perror("couldn't log in"); return 0; } ` For convenience, FTP- +Lite provides a single procedure which tries the various authentication +methods, possible requesting information from the console. Most users will +find it easiest to replace the above two steps with : `s = +ftp_lite_open_and_auth( "ftp.cs.wisc.edu", stderr ); if(!s) { perror("couldn't +open server"); return 0; } ` To retrieve a file, `ftp_lite_get` with the +server pointer, a path name, and the offset at which to begin. On success, it +returns a `FILE` object. `FILE *f; f = ftp_lite_get( s, "README", 0 ); if(!f) +{ perror("couldn't get file"); return 0; } ` You may read from this stream +pointer using any of the standard UNIX I/O operations, such as `fscanf`, +`fread`, and so on. For convenience, FTP-Lite provides a function +`ftp_lite_stream_to_stream` that will copy one whole file pointer into +another. So, to display this file, you might do this: `length = +ftp_lite_stream_to_stream( f, stdout ); if(length<0) { perror("couldn't +transfer data"); return 0; } ` When done reading data, you must close the +stream and inform the server that you are done: `fclose(f); ftp_lite_done(s); +` To close the connection to the server completely: `ftp_lite_close(s);` + +## Reference⇗ + +This section lists all of the public functions in the FTP-Lite library. + +Unless noted otherwise, all functions return true (non-zero) on success or +false (zero) on failure. In addition, every function sets `errno` +appropriately on a failure. Tools for handling error values can be found in +the UNIX man pages for `errno`, `strerror`, and `perror`. Nearly every error +value is a possible result of any function. + +Some error values are inacurrate, due to weaknesses in the FTP protocol +itself. For example, the FTP error 550 is represented as the errno `EEXIST`. +However, a brief poll of servers shows that many return the same error value +for errors that should be distinct, such as "no such file", and "file already +exists." So, be careful. + +If the library is returning unexpected results, we recommend that you debug +the code by passing `stderr` as the debugging argument to `ftp_lite_open`. +This will show a low of events in the protocol, and is invaluable in revealing +unexpected events. + +So, here are the procedures in the library: + +* **ftp_lite_auth_anonymous** `int ftp_lite_auth_anonymous( struct ftp_lite_server *s );` Attempt to log in anonymously to an already-opened server. +* **ftp_lite_auth_globus** `int ftp_lite_auth_globus( struct ftp_lite_server *s );` Attempt to log in with Globus credentials to an already-opened server. The er must have already established a proxy certificate with ` grid-proxy-init` or a similar tool. +* **ftp_lite_auth_userpass** `int ftp_lite_auth_userpass( struct ftp_lite_server *s, const char *user, const char *password );` Attempt to log in with this name and password. This mechanism sends names and passwords in the clear and should be deprecated in favor of Globus authentication. +* **ftp_lite_change_dir** `int ftp_lite_change_dir( struct ftp_lite_server *s, const char *dir );` Change the current working directory to that given. +* **ftp_lite_close** `void ftp_lite_close( struct ftp_lite_server *server );` Close this open server. Once a connection is closed, the server pointer is no longer valid. +* **ftp_lite_delete int** `int ftp_lite_delete( struct ftp_lite_server *s, const char *path );` Delete a file. +* **ftp_lite_delete_dir** `int ftp_lite_delete_dir( struct ftp_lite_server *s, const char *dir );` Delete a directory. Most servers will not permit the deletion of a directory that is not empty. +* **ftp_lite_done** `int ftp_lite_done( struct ftp_lite_server *s );` Signal that a data transfer is complete. This must be ed before any other functions are invoked. +* **ftp_lite_get** `FILE * ftp_lite_get( struct ftp_lite_server *s, const char *path, off_t offset );` Retrieve a file beginning from this offset. On success, returns a stream pointer. On failure, returns null. After reading to the end of the stream, you must ` fclose` and `ftp_lite_done`. +* **ftp_lite_list** `FILE * ftp_lite_list( struct ftp_lite_server *s, const char *path );` Retrieve the list of names contained in this directory. On success, return a stream pointer which will provide the list of newline-terminated names. On failure, returns null. After reading to the end of the stream, you must ` fclose` and `ftp_lite_done`. +* **ftp_lite_login** `int ftp_lite_login( const char *prompt, char *name, int namelen, char *pass, int passlen );` Display a prompt on the console and ask the user to enter a name and password. ` name` and `pass` are filled in up to the lengths given. +* **ftp_lite_make_dir** `int ftp_lite_make_dir( struct ftp_lite_server *s, const char *dir );` Create a directory. +* **ftp_lite_nop** `int ftp_lite_nop( struct ftp_lite_server *s );` Send a no-operation command to the server. This command is useful for determining if a connection is still alive. +* **ftp_lite_open** `struct ftp_lite_server * ftp_lite_open( const char *host, int port, FILE *log );` Connect to a server on the given host and port. The third argument gives a stream which is used for debugging information. On success, return an opaque pointer to a server. On failure, return null. The appropriate port depends on the authentication method to be used. For Globus authentication, connect to ` FTP_LITE_GSS_DEFAULT_PORT`. For anonymous and userpass authentication, connect to `FTP_LITE_DEFAULT_PORT`. +* **ftp_lite_open_and_auth** `struct ftp_lite_server * ftp_lite_open_and_auth( const char *host, FILE *log );` Connect to a server, but try all available ports and authentication methods. The second argument gives a stream to be used for debugging. On success, return an opaque pointer to a server. On failure, return null. +* **ftp_lite_put** `FILE * ftp_lite_put( struct ftp_lite_server *s, const char *path, off_t offset, size_t size );` Transmit a file to a server. On success, returns a stream to be written to. On failure, returns null. After writing all data to the stream, you must ` fclose` and `ftp_lite_done`. `offset` controls the point at which writing will begin in the target file. If `size` is `FTP_LITE_WHOLE_FILE`, then the target file will be truncated when the stream is closed. A variety of FTP commands may be used to implement a put, and not all severs will support all combinations of `offset` and `size`. +* **ftp_lite_rename** `int ftp_lite_rename( struct ftp_lite_server *s, const char *oldname, const char *newname );` Move the file ` oldname` in `newname`. +* **ftp_lite_size** `size_t ftp_lite_size( struct ftp_lite_server *s, const char *path );` Return the number of bytes stored in this file. On failure, returns -1. +* **ftp_lite_stream_to_buffer** `int ftp_lite_stream_to_buffer( FILE *input, char **buffer );` Copy the contents of this stream into a memory buffer. On success, returns the number of bytes copied. On failure, returns -1. ` input` must be a stream opened for reading, and `buffer` must be a pointer to an uninitialized `char *`. Space for the buffer will be allocated with `malloc`. The er becomes responsible for freeing the buffer when done. +* **ftp_lite_stream_to_stream** `int ftp_lite_stream_to_stream( FILE *input, FILE *output );` Copy the contents of one stream into another. On success, returns the number of bytes copied. On failure, returns -1. +* **ftp_lite_third_party_transfer** `int ftp_lite_third_party_transfer( struct ftp_lite_server *source, const char *source_file, struct ftp_lite_server *target, const char *target_file );` Performs a third-party transfer between two servers. Each server must already be opened and authenticated. There are a large number of reasons for which a third party transfer might fail. We recommend you use this feature with the debugging stream enabled. + diff -Nru cctools-7.0.22/doc/manuals/old_projects/ftsh.md cctools-7.1.2/doc/manuals/old_projects/ftsh.md --- cctools-7.0.22/doc/manuals/old_projects/ftsh.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/old_projects/ftsh.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,385 @@ +# Fault-Tolerant Shell (ftsh) Technical Manual + +**Last edited: 27 August 2004** + +The Fault Tolerant Shell (ftsh) is Copyright (c) 2003-2004 Douglas Thain and +Copyright (c) 2005 The University of Notre Dame. All rights reserved. This +software is distributed under the GNU General Public License. Please see the +file COPYING for details. + +**Please use the following citation for FTSH:** + + * Douglas Thain and Miron Livny, [The Ethernet Approach to Grid Computing](http://www.cse.nd.edu/~dthain/papers/ethernet-hpdc12.pdf), IEEE High Performance Distributed Computing, August 2003. + +## Introduction⇗ + +Shell scripts are a vital tool for integrating software. They are +indispensable for rapid prototyping and system assembly. Yet, they are +extraordinarily sensitive to errors. A missing file, a broken network, or a +sick file server can cause a script to barrel through its actions with +surprising results. It is possible to write error-safe scripts, but only with +extraordinary discipline and complexity. + +The Fault Tolerant Shell (ftsh) aims to solve this problem by combining the +ease of scripting with precise error semantics. Ftsh is a balance between the +flexibility and power of script languages and the precision of most compiled +languages. Ftsh parses complete programs in order to eliminate run-time +errors. An exception-like structure allows scripts to be both succinct and +safe. A focus on timed repetition simplifies the most common form of recovery +in a distributed system. A carefully-vetted set of language features limits +the "surprises" that haunt system programmers. + +As an example, consider this innocuous script written in Bourne Shell: +`#!/bin/sh cd /work/foo rm -rf bar cp -r /fresh/data . ` Suppose that the +`/work` filesystem is temporarily unavailable, perhaps due to an NFS failure. +The `cd` command will fail and print a message on the console. The shell will +ignore this error result -- it is primarily designed as a user interface tool +-- and proceed to execute the `rm` and `cp` in the directory it happened to be +before. + +Naturally, we may attempt to head off these cases with code that checks error +codes, attempts to recover, and so on. However, even the disciplined +programmer that leaves no value unturned must admit that this makes shell +scripts incomprehensible: `#!/bin/sh for attempt in 1 2 3 cd /work/foo if [ ! +$? ] then echo "cd failed, trying again..." sleep 5 else break fi done if [ ! +$? ] then echo "couldn't cd, giving up..." return 1 fi ` And that's just the +first line! + +If we accept that failure, looping, timeouts, and job cancellation are +fundamental concerns in distributed systems, we may both simplify and +strengthen programs by making them fundamental expressions in a programming +language. These concepts are embodied in the simple `try` command: +`#!/usr/bin/ftsh try for 5 minutes every 30 seconds cd /work/foo rm -rf bar cp +-r /fresh/data . end ` + +Ftsh provides simple structures that encourage explicit acknowledgement of +failure while maintaining the readability of script code. You might think of +this as exceptions for scripts. + +Want to learn more? This document is a short introduction to the fault +tolerant shell. It quickly breezes over the language features in order to get +started. You can learn more about the motivation for the language in ["The +Ethernet Approach to Grid +Computing"](http://ccl.cse.nd.edu/software/ftsh/ethernet-hpdc12.pdf), +available from the [ftsh web page](http://ccl.cse.nd.edu/software/ftsh) For a +quick introduction, read on! + +## Basics⇗ + +### Simple Commands⇗ + +An ftsh program is built up from simple commands. A simple command names a +program to be executed, just `sh` or `csh`. The command is separated from its +arguments by whitespaces. Quotation marks may be used to escape whitespace. +For example: `ls -l /etc/hosts` or: `cat /etc/passwd` or: `cp "This File" +"That File"` + +As you may know, a command (a UNIX process) returns an integer known as its +"exit code." Convention dictates that an exit code of zero indicates success +while any other number indicates failure. Languages tend to differ in their +mapping of integers to success or failure, so from here on, we will simply use +the abstract terms "success" and "failure." + +A command may also fail in a variety of other ways without returning an exit +code. It may be killed by a signal, or it may fail to start altogether if the +program does not exist or its image cannot be loaded. These cases are also +considered failures. + +### Groups⇗ + +A "group" is simply a list of commands. Each command only runs if the previous +command succeeded. Let's return our first example: `#!/usr/bin/ftsh cd +/work/foo rm -rf bar cp -r /fresh/data . ` This group succeeds only if **every +command** in the group succeeds. So, if ` cd` fails, then the whole group +fails and no further commands are executed. + +This is called the "brittle" property of ftsh. If anything goes wrong, then +processing stops instantly. When something goes wrong, you will know it, and +the program will not "run away" executing more commands blindly. We will see +ways to contain the brittleness of a program below. + +Ftsh itself has an exit code. Ftsh returns the result of the top-level group +that makes up the program. So, if any command in the top-level group fails, +then ftsh itself will fail. If they all succeed, then ftsh succeeds. + +### Try Statements⇗ + +A try statement is used to contain and retry group failure. Here is a simple +try statement: `#!/usr/bin/ftsh try 5 times cd /work/foo rm -rf bar cp -r +/fresh/data . end ` The try statement attempts to execute the enclosed group +until the conditions in its header expire. Here, the group will be attempted +five times. Recall that a group fails as soon as any one command fails. So, if +`rm` fails, then the try statement will stop and attempt the group again from +the beginning. + +If the five times are exceeded, then the try statement itself fails, and (if +it is the top-level try-statement) the whole shell program itself will fail. +If you prefer, you may catch and react to a try statement in a manner similar +to an exception. The `failure` keyword may be used to cause a new exception, +just like `throw` in other languages. `try 5 times cd /work/foo rm -rf bar cp +-r /fresh/data . catch echo "Oops, it failed. Oh well!" failure end ` + +Try statements come in several forms. They may limit the number of times the +group is executed. For example: `try for 10 times` A try statement may allow +an unlimited number of loops, terminated by a maximum amount of time, given in +seconds, minutes, hours, or days: `try for 45 seconds` Both may be combined, +yielding a try statement that stops when either the loop limit or the time +limit expires: `try for 3 days or 100 times` Note that such an statement does +not limit the length of any single attempt to execute the contained group. If +a single command is delayed for three days, the try statement will wait that +long and then kill the command. To force individual attempts to be shorter, +try statements may be nested. For example: `try for 3 days or 100 times try +for 1 time or 1 minute /bin/big-simulation end end ` Here, `big-simulation` +will be executed for no more than a minute at a time. Such one-minute attempts +will be tried for up to three days or one hundred attempts before the outer +try statement fails. + +By default, ftsh uses an exponential backoff. If a group fails once, ftsh will +wait one second, and then try again. If it fails again, it will wait 2 +seconds, then 4 seconds, and so on, doubling the waiting time after each +failure, up to a maximum of one hour. This prevents failures from consuming +excessive resources in fruitless retries. + +If you prefer to have the retries occur at regular intervals (though we don't +recommend it) use the `every` keyword to control how frequently errors are +retried. For example: `try for 3 days every 1 hour try for 10 times every 30 +seconds try for 1 minute or 3 times every 15 seconds ` If a time limit expires +in the middle of a try statement, then the currently running command is +forcibly cancelled. If an `every` clause is used, it merely ensures that each +attempt is at **least** that long. However, group will not be cancelled merely +to satisfy an ` every` clause. To ensure that a single loop attempt will be +time limited, you may combine two try statements as above: `try for 3 days or +100 times **every 1 minute** try for 1 time or **1 minute** /bin/big- +simulation end end ` Try statements themselves return either success or +failure in the same way as a simple command. If the enclosed group finally +succeeds, then the try expression itself succeeds. If the try expression +exhausts its attempts, then the try statement itself fails. We will make use +of this success or failure value in the next section. + +Cancelling a process is somewhat more complicated than one might think. For +all the details on how this actually works, see the section on cancelling +processes below. + +In (almost) all cases, a try statement absolutely controls what comes inside +of it. There are two ways for a subprogram to break out of the control of a +try. The first is to invoke ` exit`, which causes the entire ftsh process to +exit immediately with the given exit code. The second is to call `exec`, which +causes the given process to be run in place of the current shell process, thus +voiding any surrounding controls. + +### Redirection⇗ + +Ftsh uses Bourne shell style I/O redirection. For example: `echo "hello" > +outfile` ...sends the output `hello` into the file `outfile`, likewise, ftsh +supports many of the more arcane redirections of the Bourne shell, such as the +redirection of explicit file descriptors: `grep needle 0outfile +2>errfile` ...appending to output files: `grep needle >>outfile 2>>errfile` +...redirection to an open file descriptor: `grep needle >outfile 2>&1` ...and +redirection of both input and output at once: `grep needle >& out-and-err- +file` + +## Variables⇗ + +Ftsh provides variables similar to that of the Bourne shell. For example, +`name=Douglas echo "Hello, ${name}!" echo "Hello, $(name)!" echo "Hello, +$name!" ` Ftsh also allows variables to be the source and target of +redirections. That is, a variable may act as a file! The benefit of this +approach is that ftsh manages the storage and name space of variables for you. +You don't have to worry about cleaning up or clashing with other programs. + +Variable redirection looks just like file redirection, except a dash is put in +front of the redirector. For example, For example, suppose that we want to +capture the output of `grep` and then run it through `sort`: `grep needle +/tmp/haystack -> needles sort -< needles ` This sort of operation takes the +place of a pipeline, which ftsh does not have (yet). However, by using +variables instead of pipelines, different retry conditions may be placed on +each stage of the work: `try for 5 times grep needle /tmp/haystack -> needles +end try for 1 hour sort -< needles end ` + +All of the variations on file redirection are available for variable +redirection, including -> and 2-> and ->> and 2->> and ->& and ->>&. + +Like the Bourne shell, several variable names are reserved. Simple integers +are used to refer to the command line arguments given to ftsh itself. `$$` +names the current process. `$#` gives the number of arguments passed to the +program. `$*` gives all of the unquoted current arguments, while `"$@"` gives +all of the arguments individually quoted. The `shift` command can be used to +pop off the first positional argument. + +Variables are implemented by creating temporary files and immediately +unlinking them after creation. Thus, no matter how ftsh exits \-- even if it +crashes -- the kernel deletes buffer space after you. This prevents both the +namespace and garbage collection problem left by scripts that manually read +and write to files. + +## Structures⇗ + +Complex programs are built up by combining basic elements with programming +structures. Ftsh has most of the decision elements of other programming +languages, such as conditionals and loops. Each of these elements behaves in a +very precise way with respect to successes and failures. + +### For-Statements⇗ + +A for-statement executes a command group once for each word in a list. For +example: `for food in bread wine meatballs echo "I like ${food}" end ` Of +course, the list of items may also come from a variable: +`packages="bread.tar.gz wine.tar.gz meatballs.tar.gz" for p in ${packages} +echo "Unpacking package ${p}..." tar xvzf ${p} end ` The more interesting +variations are `forany` and `forall`. A `forany` attempts to make a group +succeed once for any of the options given in the header, chosen randomly. +After the for-statement has run, the branch that succeeds in made available +through the control variable: `hosts="mirror1.wisc.edu mirror2.wisc.edu +mirror3.wisc.edu" forany h in ${hosts} echo "Attempting host ${host}" wget +http://${h}/some-file end echo "Got file from ${h}" ` A `forall` attempts to +make a group succeed for all of the options given in the header, +simultaneously: `forall h in ${hosts} ssh ${h} reboot end ` Both `for` and +`forall` are brittle with respect to failures. If any instance fails, then the +entire for-statement fails. A try-statement may be added in one of two ways. +If you wish to make each iteration resilient, place the try-statement inside +the for-statement: `for p in ${packages} try for 1 hour every 5 minutes echo +"Unpacking package ${p}..." tar xvzf ${p} end end ` Or, if you wish to make +the entire for-statement restart after a failure, place it outside: `try for 1 +hour every 5 minutes for p in ${packages} echo "Unpacking package ${p}..." tar +xvzf ${p} end end ` + +### Loops, Conditionals, and Expressions⇗ + +Ftsh has loops and conditionals similar to other languages. For example: `n=0 +while $n .lt. 10 echo "n is now ${n}" n=$n .add. 1 end ` And: `if $n .lt. 1000 +echo "n is less than 1000" else if $n .eq. 1000 echo "n is equal to 1000" else +echo "n is greater than 1000" end ` You'll notice right away that arithmetic +expressions look a little different than other languages. Here's how it works: + +The arithmetic operators .add. .sub. .mul. .div. .mod. .pow. represent +addition, subtraction, multiplication, division, modulus, and exponentiation, +including parenthesis and the usual order of operations. For example: `a=$x +.mul. ( $y .add. $z )` The comparison operators .eq. .ne. .le. .lt. .ge. .gt +represent equal, not-equal, less-than-or-equal, less-than, greater-than-or- +equal, and greater-than. These return the literal strings "true" and "false". +`uname -s -> n if $n .ne. Linux ... end ` For integer comparison, use the +operators .eql. and .neql.. `if $x .eql. 5 ... end ` The Boolean operators +.and. .or .not. have the usual meaning. An exception is thrown if they are +given arguments that are not the boolean strings "true" or "false". `while ( +$x .lt. 10 ) .and. ( $y .gt. 20 ) ... end ` The unary file operators .exists. +.isr. .isw. .isx. test whether a filename exists, is readable, writeable, or +executable, respectively. The similar operators .isfile. .isdir. .issock. +.isfile. .isblock. .ischar. test for the type of a named file. All these +operators throw exceptions if the named file is unavailable for examination. +`f=/etc/passwd if ( .isfile. $f ) .and. ( .isr. $f ) ... end ` Finally, the +.to. and .step. operators are conveniences for generating numeric lists to be +used with for-loops: `forall x in 1 .to. 100 ssh c$x reboot end for x in 1 +.to. 100 .step. 5 y=$x .mul. $x echo "$x times $x is $y" end ` Notice that, +unlike other shells, there is a distinction between expressions, which compute +a value or throw an exception, and external commands, which return no value. +Therefore, you cannot do this: `# !!! This is wrong !!! if rm $f echo "Removed +$f" else echo "Couldn't remove $f" end ` Instead, you want this: `try rm $f +echo "Removed $f" catch echo "Couldn't remove $f" end ` + +### Functions⇗ + +Simple functions are named groups of commands that may be called in the same +manner as an external program. The arguments passed to the function are +available in the same way as arguments to the shell: `function +compress_and_move echo "Working on ${1}..." gzip ${1} mv ${1}.gz ${2} end +compress_and_move /etc/hosts /tmp/hosts.gz compress_and_move /etc/passwd +/tmp/passwd.gz compress_and_move /usr/dict/words /tmp/dict.gz ` A function may +also be used to compute and return a value: `function fib if $1 .le. 1 return +1 else return fib($1 .sub. 1) .add. fib($1 .sub. 2) end end value=fib(100) +echo $value ` Functions, like groups, are brittle with respect to failures. A +failure inside a function causes the entire function to stop and fail +immediately. As in most languages, functions may be both nested and recursive. +However, ftsh aborts recursive function calls deeper than 1000 steps. If a +function is used in an expression but does not return a value, then the +expression evaluation fails. + +## Miscellaneous Features⇗ + +### Environment⇗ + +Variables may be exported into the environment, just like the Bourne shell: +`PATH="/usr/bin:/usr/local/bin" export PATH ` + +### Nested Shells⇗ + +Ftsh is perfectly safe to nest. That is, an ftsh script may safely call other +scripts written in ftsh. One ftsh passes all of its options to sub-shells +using environment variables, so logs, error settings, and timeouts are uniform +from top to bottom. If a sub-shell provides its own arguments, these override +the environment settings of the parent. + +### Error Logging⇗ + +Ftsh may optionally keep a log that describes all the details of a script's +execution. The -f option specifies a log file. Logs are open for appending, so +parallel and sub-shells may share the same log. The time, process number, +script, and line number are all recorded with every event. + +**Note: Logs shared between processes must not be recorded in NFS or AFS +filesystems. NFS is not designed to support shared appending: your logs will +be corrupted sooner or later. AFS is not designed to support simultaneous +write sharing of a file: you will end up with the log of one process or +another, but not both. These are deliberate design limitations of these +filesystems and are not bugs in UNIX or ftsh.** + +The amount of detail kept in a log is controled with the -l option. These +logging levels are currently defined: + + * **0** \- Nothing is logged. + * **10** \- Display failed commands and structures. + * **20** \- Display executed commands and their exit codes. + * **30** \- Display structural elements such as TRY and IF-THEN. + * **40** \- Display process activities such as signals and completions. + +### Command-Line Arguments⇗ + +Ftsh accepts the following command-line arguments: + + * **-f ** The name of a log file for tracing the execution of a script. This log file is opened in append mode. Equivalent to the environment variable FTSH_LOG_FILE. + * **-l ** The logging level, on a scale of 0 to 100. Higher numbers log more data about a script. Equivalent to the environment variable FTSH_LOG_LEVEL. + * **-k ** \- Controls whether ftsh trusts the operating system to actually kill a process. If set to 'weak', ftsh will assume that processes die without checking. If set to 'strong', ftsh will issue SIGKILL repeatedly until a process actually dies. Equivalent to the environment variable FTSH_KILL_MODE. + * **-t ** \- The amount of time ftsh will wait between requesting a process to exit (SIGTERM) and killing it forcibly (SIGKILL). Equivalent to the environment variable FTSH_KILL_TIMEOUT. + * **-p** Parse, but do not execute the script. This option may be used to test the validity of an Ftsh script. + * **-v** Show the version of ftsh. + * **-h** Show the help screen. + +### Cancelling Processes⇗ + +Cancelling a running process in UNIX is rather quite complex. Although +starting and stopping one single process is fairly easy, there are several +complications to manging a tree of processes, as well as dealing with the +various failures that can occur in the transmission of a signal. + +Ftsh can clean up any set of processes that it starts, given the following +restrictions: + +* Your programs must not create a new UNIX "process session" with the ` setsid()` system call. If you don't know what this is, then don't worry about it. +* The operating system must actually kill a process when ftsh asks it to. Some variants of Linux won't kill processes using distributed file systems. Consider using the "weak" mode of ftsh. +* Rogue system administrators must not forcibly kill an ftsh with a SIGKILL. However, you may safely send a SIGTERM, SIGHUP, SIGINT, or SIGQUIT to an ftsh, and it will clean up its children and exit. + +Ftsh starts every command as a separate UNIX process in its own process +session (i.e. `setsid`). This simplifies the administration of large process +tress. To cancel a command, ftsh sends a SIGTERM to every process in the +group. Ftsh then waits up to thirty seconds for the child to exit willingly. +At the end of that time, it forcibly terminates the entire process group with +a SIGKILL. + +Surprisingly, SIGKILL is not always effective. Some operating systems have +bugs in which signals are occasionally lost or the process may be in such a +state that it cannot be killed at all. By default, ftsh tries very hard to +kill processes by issuing SIGKILL repeatedly until the process actually dies. +This is called the "strong" kill mode. If you do not wish to have this +behavior -- perhaps you have a bug resulting in unkillable processes -- then +you may run ftsh in the "weak" kill mode, using the "-k weak" option. + +Ftsh may be safely nested. That is, an ftsh may invoke another program written +using ftsh. However, this child needs to clean up faster than its parents. If +the parent shell issues forcible kills after waiting for 30 seconds, then the +child must issue forcible kills before that. This problem is handled +transparently for you. Each ftsh informs its children of the current kill +timeout by setting the FTSH_KILL_TIMEOUT variable to five seconds less than +the current timeout. Thus, subshells are progressively less tolerant of +programs that refuse to exit cleanly. + +* * * + Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/old_projects/images/wavefront_large.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/old_projects/images/wavefront_large.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/old_projects/images/wavefront_progress1.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/old_projects/images/wavefront_progress1.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/old_projects/images/wavefront_progress2.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/old_projects/images/wavefront_progress2.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/old_projects/images/wavefront_progress3.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/old_projects/images/wavefront_progress3.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/old_projects/images/wavefront_progress4.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/old_projects/images/wavefront_progress4.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/old_projects/images/wavefront_progress5.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/old_projects/images/wavefront_progress5.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/old_projects/images/wavefront_progress6.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/old_projects/images/wavefront_progress6.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/old_projects/images/wavefront_progress.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/old_projects/images/wavefront_progress.gif differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/old_projects/images/wavefront_small.gif and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/old_projects/images/wavefront_small.gif differ diff -Nru cctools-7.0.22/doc/manuals/old_projects/sand.md cctools-7.1.2/doc/manuals/old_projects/sand.md --- cctools-7.0.22/doc/manuals/old_projects/sand.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/old_projects/sand.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,146 @@ +# SAND User's Manual + +**Last edited: January 2011** + +SAND is Copyright (C) 2010- The University of Notre Dame. +All rights reserved. +This software is distributed under the GNU General Public License. +See the file COPYING for details. + +## Overview + +SAND is a set of modules for accelerating genome assembly and other +bioinformatics tasks. Using the [Work +Queue](http://ccl.cse.nd.edu/software/workqueue/) framework, SAND can +distribute computational tasks to hundreds of nodes harnessed from clusters, +clouds, grids, or just the idle machines you have in your office. SAND can be +used as a drop-in replacement for the conventional overlapper in the Celera +Assembler, or can be used as a standalone tool by advanced users. + +SAND is part of the [Cooperating Computing +Tools](http://ccl.cse.nd.edu/software). You can download the CCTools from +[this web page](http://ccl.cse.nd.edu/software/download), follow the +[installation instructions](../install), and you are ready to go. + +## Using SAND with the Celera Assembler + +If you are already using the Celera Assembler version 5.4, you can easily +switch to using SAND to accelerate assemblies by using our modified +`sand_runCA_5.4` script. If you are using the newer Celera Assembler version +6.1, you can switch to SAND by using the ` sand_runCA_6.1 ` script. If you are +using Celera Assembler version 7.0, you can switch to SAND by using the ` +sand_runCA_7.0 ` script. We assume that you have installed SAND according to +the instructions above and addeed it to your `PATH`. + + 1. Copy the script `sand_runCA_X.X` into the same directory where you have the normal `runCA` installed. + 2. Set `ovlOverlapper=sand` to your `spec` file. + 3. For Celera 7.0, add `sandAlignFlags=-e "-o ovl_new"` to your `spec` file. This tells the alignment program to output new Celera 7.0 style overlaps. + 4. Run `sand_runCA_X.X` just like you normally use `runCA` +You will see the assembly start as normal. When the overlapping stage begins, +you will see output like this: `Total | Workers | Tasks Avg | Candidates Time +| Idle Busy | Submit Idle Run Done Time | Found 0 | 0 0 | 0 0 0 0 nan | 0 5 | +0 0 | 0 0 0 0 nan | 0 10 | 0 0 | 0 0 0 0 nan | 0 15 | 0 0 | 0 0 0 0 nan | 0 +... ` SAND is now waiting for you to start `work_queue_worker` processes. Each +worker that you start will connect back to the master process nd perform small +pieces of the work at a time. In general, the more machines that you can +harness, the faster the work will go. + +For testing SAND, just open a new console window and start a single worker, +specifying the hostname where the master runs and the port number it is +listening on. (This can be changed with the sandPort option in the CA spec +file.) For example: `% work_queue_worker master.somewhere.edu 9123` With one +worker, you will see some change in the output, like this: `Total | Workers | +Tasks Avg | Candidates Time | Idle Busy | Submit Idle Run Done Time | Found 0 +| 0 0 | 0 0 0 0 nan | 0 5 | 0 1 | 100 83 1 16 0.32 | 1858 10 | 0 1 | 100 69 1 +30 0.33 | 3649 15 | 0 1 | 100 55 1 44 0.34 | 5464 ` For a very small assembly, +a single worker might be sufficient. However, to run a really large assembly +at scale, you will need to run as many workers as possible. A simple (but +tiresome) way of doing so is to `ssh` into lots of machines and manually run +`work_queue_worker` as above. But, if you have access to a batch system like +[Condor](http://www.cs.wisc.edu/condor) or +[SGE](http://www.sun.com/software/sge), you can use them to start many workers +with a single submit command. + +We have provided some simple scripts to make this easy. For example, to submit +10 workers to your local Condor pool: `% condor_submit_workers +master.somewhere.edu 9123 10 Submitting job(s).......... Logging submit +event(s).......... 10 job(s) submitted to cluster 298. ` Or, to submit 10 +worker processes to your SGE cluster: `% sge_submit_workers +master.somewhere.edu 9123 10 Your job 1054781 ("worker.sh") has been submitted +Your job 1054782 ("worker.sh") has been submitted Your job 1054783 +("worker.sh") has been submitted ... ` Note that `condor_submit_workers` and +`sge_submit_workers` are simple shell scripts, so you can edit them directly +if you would like to change batch options or other details. + +Once the workers begin running, the SAND modules can dispatch tasks to each +one very quickly. It's ok if a machine running a worker crashes or is turned +off; the work will be silently sent elsewhere to run. + +When the SAND module's master process completes, your workers will still be +available, so you can either run another master with the same workers, remove +them from the batch system, or wait for them to expire. If you do nothing for +15 minutes, they will automatically exit. + +## SAND in More Detail + +This section explains the two SAND modules in more detail, if you would like +to tune the performance or use them independently of Celera. We assume that +you begin with a file of reads in FASTA format. To use the SAND modules, you +must first generate repeats and compress the data. (If you don't have data +handy, download `small.cfa` and `small.repeats` data from the [SAND +Webpage](http://ccl.cse.nd.edu/software/sand).) To generate repeats from a +FASTA file, use the `meryl` tool from the Celera Assembler: `% meryl -B -m 24 +-C -L 100 -v -o small.meryl -s small.fa % meryl -Dt -s small.meryl -n 100 > +small.repeats ` Then use `sand_compress_reads` to compress the sequence data +into a compressed FASTA (.cfa) file: `% sand_compress_reads small.fa +small.cfa` The filtering step will read in the compressed sequence data +(`small.cfa`) and quickly produce a list of candidate sequences (`small.cand`) +for the following step to consider in detail. Start the filtering step as +follows: `% sand_filter_master -r small.repeats small.cfa small.cand` While +the filtering step runs, it will print some statistics to the console, showing +the number of workers available, tasks running, and so forth: `Total | Workers +| Tasks Avg | Candidates Time | Idle Busy | Submit Idle Run Done Time | Found +0 | 0 0 | 0 0 0 0 nan | 0 5 | 0 14 | 158 14 14 130 0.39 | 16452 10 | 0 15 | +356 15 15 326 0.38 | 42382 15 | 0 15 | 549 15 15 519 0.38 | 69055 20 | 0 15 | +744 15 15 714 0.38 | 96298 25 | 0 15 | 942 15 15 912 0.38 | 124284 ` The +alignment step will take the list of candidates generated in the previous step +(`small.cand`), the compressed sequences (`small.cfa`) and produce a listing +of how and where the sequences overlap (`small.ovl`). For example: `% +sand_align_master sand_align_kernel -e "-q 0.04 -m 40" small.cand small.cfa +small.ovl` The options `-q 0.04 -m 40` passed to `sand_align_kernel` indicate +a minimum alignment quality of 0.04 and a minimum alignment length of 40 +bases. Again, a progress table will be printed to standard out: `Total | +Workers | Tasks Avg | K-Cand K-Seqs | Total Time | Idle Busy | Submit Idle Run +Done Time | Loaded Loaded | Speedup 0 | 0 0 | 0 0 0 0 0.00 | 0 0 | 0.00 8 | 0 +48 | 100 52 48 0 0.00 | 1000 284 | 0.00 10 | 0 86 | 100 13 86 1 7.07 | 1000 +284 | 0.71 36 | 1 83 | 181 14 83 2 19.47 | 1810 413 | 1.08 179 | 1 83 | 259 92 +83 3 22.51 | 2590 1499 | 0.38 186 | 2 80 | 259 15 80 85 28.54 | 2590 1499 | +13.04 199 | 2 80 | 334 90 80 86 29.96 | 3340 1499 | 12.95 200 | 2 80 | 334 90 +80 114 59.43 | 3340 1499 | 33.88 202 | 2 81 | 334 9 81 165 86.08 | 3340 1499 | +70.32 ` After the sequence alignment step completes, you will have an overlap +(`.ovl`) file that can be fed into the final stages of your assembler to +complete the consensus step. + +## Tuning Suggestions + +* As a rule of thumb, a single task should take a minute or two. If tasks are much longer than that, it becomes more difficult to measure progress and recover from failures. If tasks are much shorter than that, the overhead of managing the tasks becomes excessive. Use the `-n` parameter to increase or decrease the size of tasks. +* When using banded alignment (the default), the `-q` match quality parameter has a significant effect on speed. A higher quality threshhold will consider more alignments, but take longer and produce more output. +* The columns of the output are as follows: +* Total Time is the elapsed time the master has been running. +* Workers Idle is the number of workers that are connected, but do not have a task to run. +* Workers Busy is the number of workers that are currently running a task. +* Tasks Submitted is the cumulative number of tasks created by the master. +* Tasks Idle is the number of tasks waiting for a worker. +* Tasks Running is the number of tasks currently running on a worker. +* Tasks Done is the cumulative number of tasks completed. +* Avg Time is the average time a task takes to run. An average time of 60 seconds is a good goal. +* K-Cand Loaded indicates the number of candidates loaded into memory (in thousands). +* K-Seqs Loaded indicates the number of sequences loaded into memory (in thousands). +* Speedup is the approximate speed of the distributed framework, relative to one processor. + +## For More Information + +For the latest information about SAND, please visit our [web +site](http://ccl.cse.nd.edu/software/sand) and subscribe to our [mailing +list](http://ccl.cse.nd.edu/software). + diff -Nru cctools-7.0.22/doc/manuals/old_projects/wavefront.md cctools-7.1.2/doc/manuals/old_projects/wavefront.md --- cctools-7.0.22/doc/manuals/old_projects/wavefront.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/old_projects/wavefront.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,78 @@ +# Wavefront User's Manual + +**Last edited: June 2013** + +Wavefront is Copyright (C) 2010- The University of Notre Dame. +All rights reserved. +This software is distributed under the GNU General Public License. +See the file COPYING for details. + +## Introduction + +[![](images/wavefront_small.gif)](images/wavefront_large.gif) | + +Wavefront( array R[x,0], array R[0,y], function F(x,y,d) ) +returns matrix R where +R[i,j] = F( R[i-1,j], R[i,j-1], R[i-1,j-1] ) + + +---|--- +The Wavefront abstraction computes a two dimensional recurrence relation. You +provide a function F that accepts the left (x), right (y), and diagonal (d). +The abstraction then runs each of the functions in the order of dependency, +handling load balancing, data movement, fault tolerance, and so on. + +To use Wavefront, install the [Cooperative Computing +Tools](http://ccl.cse.nd.edu/software/downloadfiles.shtml) and run the program +named `**wavefront_master**`. You need to set up an input file with initial +boundary values of R, and provide a function that computes a new cell from +adjacent cells. Each line of the input file has the format: `row column +arg1,arg2,...` In which row and column describe the position of a cell, with +zero-based indices, and arg1,arg2,... is the list of arguments fed to F (that +is, each R[i,j] is actually a tuple). To run wavefront, specifying the program +that computes each cell, and the number of cells in each dimension, for +example: `wavefront_master ./func.exe 10 10 input.data output.data` in which +input.data is the file with the initial boundary conditions, and output.data +are the results computed for a 10x10 matrix. The program ` func.exe` may be +written in any language that you like. For each cell of the result, the +program will be invoked like this: `./func.exe x y x-file y-file d-file` in +which each of `x-file`, `y-file` and `d-file` are files that contain the data +from the x, y, and diagonal neighbors, in the format: `arg1,arg2,...` These +files are generated automatically by `wavefront_master`. Your function is +required to parse them, and to print the result of the current cell to +`stdout`, in the format: `arg1,arg2,...` `wavefront_master` is a Work Queue +application, thus it does not perform any work by itself, but it relies on +workers connecting to it. To launch a single worker: `work_queue_worker +mymachine.somewhere.edu 9123` in which 9123 is the default port for Work Queue +applications. Work Queue provides convenient alternatives to launch many +workers simultaneously for different batch systems (e.g. condor), which are +explained in the section **Project names** in the [ Work Queue manual +](../work_queue). Wavefront will check for a few error conditions, and then +start to run, showing progress on the console like this: `# elapsed time : +waiting jobs / running jobs / complete jobs (percent complete) 0 : 0 / 1 / 0 +(%0.00) 5 : 0 / 2 / 1 (%1.23) 10 : 0 / 3 / 3 (%3.70) 16 : 0 / 4 / 6 (%7.41) 21 +: 0 / 4 / 8 (%9.88) ... ` When complete, your outputs will be stored in the +output file specified, with the same format as for the input data. Here is a +graph of a 100 by 100 problem run on a 64-core machine, where each F takes +about five seconds to execute: + +![](images/wavefront_progress.gif) + +The **-B** option will write a bitmap progress image every second. Each pixel +represents the state of one cell in the matrix: green indicates complete, blue +currently running, yellow ready to run, and red not ready. Here is an example +of the progress of a small ten by ten job using five CPUs: + +![](images/wavefront_progress1.gif) | ![](images/wavefront_progress2.gif) | +![](images/wavefront_progress4.gif) | ![](images/wavefront_progress5.gif) Note +that at the broadest part of the workload, there are not enough CPUs to run +all cells at once, so some must wait. Also note that the wave does not need to +run synchronously: cells may begin to compute as soon as their dependencies +are satisfied. + +## For More Information + +For the latest information about Wavefront, please visit our [web +site](http://ccl.cse.nd.edu/software/wavefront) and subscribe to our [mailing +list](http://ccl.cse.nd.edu/software). + diff -Nru cctools-7.0.22/doc/manuals/parrot/index.md cctools-7.1.2/doc/manuals/parrot/index.md --- cctools-7.0.22/doc/manuals/parrot/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/parrot/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,872 @@ +# Parrot User's Manual + +## Overview + +Parrot is a tool for attaching old programs to new storage systems. Parrot +makes a remote storage system appear as a file system to a legacy application. + +Parrot does not require any special privileges, any recompiling, or any change +whatsoever to existing programs. It can be used by normal users doing normal +tasks. + +For example, an anonymous FTP service is made available to `vi` like +so: + +```sh +$ parrot_run vi /anonftp/ftp.gnu.org/pub/README +``` + +Parrot is particularly handy for distributed computing, because it allows your +application to access remote software and data, regardless of where it is +actually executing. For example, it is commonly used in the high energy +physics community to obtain remote access to the CVMFS distributed software +repository. + +Almost any application - whether static or dynmically linked, standard or +commercial, command-line or GUI - should work with Parrot. There are a few +exceptions. Because Parrot relies on the Linux `ptrace` interface any program +that relies on the ptrace interface cannot run under Parrot. This means Parrot +cannot run a debugger, nor can it run itself recursively. In addition, Parrot +cannot run setuid programs, as the operating system system considers this a +security risk. + +Parrot also provide a new experimental features called _identity boxing_. This +feature allows you to securely run a visiting application within a protection +domain without become root or creating a new account. Read below for more +information on identity boxing. + +Parrot currently runs on the Linux operating system with either AMD compatible +(x86_64) or Intel compatible (i386) processors. It relies on some fairly low +level details in order to implement system call trapping. Ports to other +platforms and processors Linux may be possible in the future. + +Like any software, Parrot is bound to have some bugs. Please post questions to +our [forum](http://ccl.cse.nd.edu/community/forum) and bugs to our +[issue tracker](https://github.com/cooperative-computing-lab/cctools/issues). + +### Installing + +See the [Installation Instructions](../install) for the Cooperative Computing Tools package. Then, make sure to set your `PATH` appropriately. + +## Examples + +To use Parrot, you simply use the `parrot_run` command followed by any other Unix +program. Of course, it can be clumsy to +put `parrot_run` before every command you run, so try starting a shell with +Parrot already loaded: + +```sh +$ parrot_run bash + +# Now, you should be able to run any standard command using Parrot filenames: + +$ cp /http/ccl.cse.nd.edu/research/papers/parrot-agm2003.pdf . + +$ grep google /http/www.google.com + +$ cat /anonftp/ftp.gnu.org/pub[Press TAB here] +``` + +### Interactive Use of Parrot + +You may find it useful to have some visual indication of when Parrot is +active, so we recommend that you modify your shell startup scripts to change +the prompt when Parrot is enabled. Scripts may execute `parrot_run --is- +running` to detect if Parrot is already running in the current session: + +#### Bash + +Add to your `.bashrc`: + +```sh +if parrot_run --is-running > /dev/null 2> /dev/null; then PS1="(Parrot) ${PS1}" fi +``` +#### CSH + +Add to your `.cshrc`: + +```csh +which parrot_run > /dev/null && parrot_run --is-running > /dev/null if ($? == 0) then set prompt = " (Parrot) %n@%m%~%# " else set prompt = " %n@%m%~%# " endif +``` + + +## Protocols + +We have limited the examples so far to HTTP and anonymous FTP, as they are the +only services we know that absolutely everyone is familiar with. There are a +number of other more powerful and secure remote services that you may be less +familiar with. Parrot supports them in the same form: The filename begins with +the service type, then the host name, then the file name. Here are all the +currently supported services: + +* * * + +**example path**| **remote service**| **more info** | +|--|--|--| +/http/www.somewhere.com/index.html| Hypertext Transfer Protocol| included | +/grow/www.somewhere.com/index.html| GROW - Global Read-Only Web Filesystem | included | +/ftp/ftp.cs.wisc.edu/RoadMap| File Transfer Protocol| included | +/anonftp/ftp.cs.wisc.edu/RoadMap| Anonymous File Transfer Protocol| included | +/gsiftp/ftp.globus.org/path| Globus Security + File Transfer Protocol| [more info](http://www.globus.org/gridftp) | +/irods/host:port/zone/home/user/path| iRODS| [more info](http://irods.org) | +/hdfs/namenode:port/path| Hadoop Distributed File System (HDFS)| [more info](http://hadoop.apache.org/common/docs/current/hdfs_user_guide.html) | +/xrootd/host:port/path| XRootD/Scalla Distributed Storage System (xrootd)| [more info](http://project-arda-dev.web.cern.ch/project-arda- dev/xrootd/site/index.html) | +/cvmfs/grid.cern.ch/path| CernVM-FS| [more info](http://cernvm.cern.ch/portal/filesystem) | +/chirp/target.cs.wisc.edu/path| Chirp Storage System| included + [more info](../chirp) + +The following protocols have been supported in the past, but are not currently +in active use. + + +**example path**| **remote service**| **more info** | +|--|--|--| +| /nest/nest.cs.wisc.edu/path| Network Storage Technology| [more info](http://www.cs.wisc.edu/condor/nest) | +/rfio/host.cern.ch/path| Castor Remote File I/O| [more info](http://castor.web.cern.ch/castor/Welcome.html) | +/dcap/dcap.cs.wisc.edu/pnfs/cs.wisc.edu/path| DCache Access Protocol| [more info](http://dcache.desy.de) | +/lfn/logical/path| Logical File Name - Grid File Access Library| [more info](http://grid-deployment.web.cern.ch/grid-deployment/gis/GFAL/GFALindex.html) | +/srm/server/path| Site File Name - Grid File Access Library| [more info](http://grid-deployment.web.cern.ch/grid-deployment/gis/GFAL/GFALindex.html) | +/guid/abc123| Globally Unique File Name - Grid File Access Library| [more info](http://grid-deployment.web.cern.ch/grid-deployment/gis/GFAL/GFALindex.html) | +/gfal/protocol://host//path| Grid File Access Library| [more info](http://grid-deployment.web.cern.ch/grid-deployment/gis/GFAL/GFALindex.html) + +If a remote service is interfering with your system, e.g. you already have +CVMFS mounted at /cvmfs, you can run Parrot as + +```sh +$ parrot_run --disable-service cvmfs ...etc.. +``` + +to disable Parrot's handling. This option can be specified multiple times. + + +You will notice quite quickly that not all remote I/O systems provide all of +the functionality common to an ordinary file system. For example, HTTP is +incapable of listing files. If you attempt to perform a directory listing on +an HTTP server, Parrot will attempt to keep `ls` happy by producing a bogus +directory entry: + +```sh +$ parrot_run ls -la /http/www.google.com/ +-r-xr-xr-x 1 btovar campus 0 Aug 14 13:40 /http/www.google.com +``` + +A less-drastic example is found in FTP. If you attempt to perform a directory +listing of an FTP server, Parrot fills in the available information, such as +file names and their sizes, but again inserts bogus information to fill the +rest out: + +```sh +$ parrot_run ls -la /anonftp/ftp.gnu.org/pub +total 0M +-rwxrwxrwx 1 btovar campus 405121 Aug 14 13:41 before-2003-08-01.md5sums.asc +-rwxrwxrwx 1 btovar campus 1125 Aug 14 13:41 CRYPTO.README +-rwxrwxrwx 1 btovar campus 263387 Aug 14 13:41 find.txt.gz +... +``` + +If you would like to get a better idea of the underlying behavior of Parrot, +try running it with the `-d remote` option, which will display all of the +remote I/O operations that it performs on a program's behalf: + +```sh +$ parrot_run -d remote ls -la /anonftp/ftp.gnu.org +2019/08/14 13:43:52.25 parrot_run[17703] ftp: connecting to ftp.gnu.org:21 +2019/08/14 13:43:52.32 parrot_run[17703] ftp: ftp.gnu.org 220 GNU FTP server ready. +2019/08/14 13:43:52.32 parrot_run[17703] ftp: ftp.gnu.org USER anonymous +2019/08/14 13:43:52.32 parrot_run[17703] ftp: ftp.gnu.org PASS ****** +... +2019/08/14 13:43:52.54 parrot_run[17703] ftp: ftp.gnu.org 200 Switching to Binary mode. +2019/08/14 13:43:52.54 parrot_run[17703] ftp: ftp.gnu.org PASV +2019/08/14 13:43:52.57 parrot_run[17703] ftp: ftp.gnu.org 227 Entering Passive Mode (209,51,188,20,92,187). +2019/08/14 13:43:52.57 parrot_run[17703] ftp: ftp.gnu.org NLST / +2019/08/14 13:43:52.63 parrot_run[17703] ftp: ftp.gnu.org 150 Here comes the directory listing. +2019/08/14 13:43:52.66 parrot_run[17703] ftp: ftp.gnu.org 226 Directory send OK. +2019/08/14 13:43:52.66 parrot_run[17703] ftp: ftp.gnu.org CWD /CRYPTO.README +... +``` + +If your program is upset by the unusual semantics of such storage systems, +then consider using the Chirp protocol and server: + + +## The Chirp Protocol and Server + +Although Parrot works with many different protocols, is it limited by the +capabilities provided by each underlying system. (For example, HTTP does not +have reliable directory listings.) Thus, we have developed a custom protocol, +**Chirp** , which provides secure remote file access with all of the +capabilities needed for running arbitrary Unix programs. **Chirp** is included +with the distribution of Parrot, and requires no extra steps to install. + +To start a Chirp server, simply do the following: + +```sh +$ chirp_server -d all -r .` +``` + +The ` -d all` option turns on debugging, which helps you to understand how it +works initially. You may remove this option once everything is working. + +Suppose the Chirp server is running on `bird.cs.wisc.edu`. Using Parrot, you +may access all of the Unix features of that host from elsewhere: + +```sh +$ parrot_run bash +$ cd /chirp/bird.cs.wisc.edu +$ ls -la +... +``` + +In general, Parrot gives better performance and usability with Chirp than with +other protocols. You can read extensively about the Chirp server and protocol +[in the Chirp manual](../chirp). + +In addition, Parrot provides several custom command line tools, such as +`parrot_getacl`, `parrot_setacl`, `parrot_lsalloc`, and `parrot_mkalloc`, that +can be used to manage the access control and space allocation features of Chirp +from the Unix command line. + + +## Name Resolution + +In addition to accessing remote storage, Parrot allows you to create a custom +namespace for any program. All file name activity passes through the Parrot +**name resolver** , which can transform any given filename according to a +series of rules that you specify. + +The simplest name resolver is the **mountlist** , given by the **-m +mountfile** option. (If you are familiar with Unix, this file resembles ` +/etc/fstab`). A mountlist is simply a file with one mount entry given per line. +The first column is the path in Parrot's namespace. The next column can be +either an access control specifier or a path in the host's filesystem. If two +paths are given, then the third column can contain an optional access control +specifier. + +!!! note + The path in the host's filesystem should be an absolute path, that is, it + should start with a `/`. + + +For example, the GNU FTP server available at `/anonftp/ftp.gnu.org` can +be accessed into the filesystem under `/gnu` with a mount list like this: + +```sh +# file: my.mountfile +/gnu /anonftp/ftp.gnu.org +``` + +Instruct Parrot to use the mountlist as follows: + +```sh +$ parrot_run -m my.mountfile bash +$ cd /gnu +$ ls -la +... +``` + +Additionally, an **access control specifier** which restricts the operations allowed under a given +path can be added to the mountlist. There are three access control specifiers: + +| | | +|-|-| +DENY | Blocks all operations +ENOENT | Makes operations fail as if nothing was present at the path +LOCAL | Only allows operation on the local filesystem. +|| **Or any combination of the following letters:** +R | Allow read operations +W | Allow write operations +X | Allow execute/search operations + +!!! note + Without an access control specifier, the default is `RWX`. + +For example, a mountlist could contain the following entries: + +```sh +/ RX +/home DENY +/tmp /tmp/sandbox +/opt /home/fred/project RX +``` + +The previous mountlist allows read and execute operations on `/`, denies all +operations on `/home`, mounts `/tmp` in `/tmp/sandbox`, and mounts `/opt` on +`/home/fred/project` with read and write permissions. + +Individual mount entries may be given on the command line with the `-M` option +as follows: + +```sh +$ parrot_run -M /gnu=/anonftp/ftp.gnu.org bash` +``` + +!!! warning + Access control specifiers cannot be used with the -M option. + +If you need to change the mount list at runtime, you need to execute +`parrot_run` with the option `--dynamic-mounts`, and inside the `parrot_run` +session use the `parrot_mount` utility, such as: + +```sh +$ parrot_run --dynamic-mounts bash +$ ls /gnu +ls: cannot access /gnu: No such file or directory + +$ parrot_mount /gnu /anonftp/ftp.gnu.org/gnu RWX +$ ls /gnu +... + +$ parrot_mount --unmount /gnu +$ ls /gnu +ls: cannot access /gnu: No such file or directory +``` + +A more sophisticated way to perform name binding is with an _external +resolver_. This is a program executed whenever Parrot needs to locate a file or +directory. The program accepts a logical file name and then returns the +physical location where it can be found. + +Suppose that you have a database service that locates the nearest copy of a +file for you via a program called `locate_file`. If you run the command +`locate_file`, it will print out the nearest copy of a file. For example, +consider: + +[locate_file](locate_file) +```python +#! /usr/bin/env python + +# locate_file script +# Prints the absolute path of the file corresponding to its argument. + +import sys + +sites = { + 'CA': '/anonftp/mirror.csclub.uwaterloo.ca/gnu', + 'EU': '/anonftp/ftp.mirror.nl/pub/mirror/gnu', + 'default': '/anonftp/ftp.gnu.org' +} + +def where_am_i(): + # figure out the site closest to our geographical location + # ... ... ... + # (mock with random choice) + import random + + location = random.choice(sites.keys()) + return location + +if __name__ == '__main__': + try: + filename = '' + + if len(sys.argv) > 1: + filename = sys.argv[1] + + location = where_am_i() + location = 'default' + site = sites[location] + + print('{}/{}'.format(site, filename)) + + except Exception as e: + raise e + print('') + +``` + +To connect the program `locate_file` to Parrot, simply give a mount string +that specifies the program as a resolver: + +```sh +$ parrot_run -M /gnu=resolver:/path/to/locate_file -- ls /gnu/pub +``` + +Now, if you attempt to access files under /gnu, Parrot will execute +`locate_file` and access the data stored there. + +## Mount Namespaces + +Mount entries in Parrot are organized into hierarchical, reference counted +namespaces. A fresh instance of Parrot puts all process into a single, global +namespace. This means that normally, all processes running under a Parrot +instance see the same view of the filesystem. More concretely, all processes +share the same mount list specified by the `-m` and `-M` options. The +`parrot_mount` command allows programs to edit this mount list. + +Processes are also free to fork their mount namespaces with the Parrot- +specific `parrot_fork_namespace` syscall. Whenever a process forks its +namespace, its child will inherit a reference to its parent’s mount namespace. +Mount namespace changes are visible to processes subject to the following +rules. Given a process _P_ in namespace _N_ , + + * _P_ may add/remove mount entries in _N_. + * any other process with a reference to _N_ , will see changes by _P_. + * suppose another process _P’_ forks _N_ , so that _P’_ is in namespace _N’_ , then + * any changes to _N’_ **are not** visible in _N_. + * any changes to _N_ **are** visible in _N’_. + * when adding a mount entry to _N_ , the redirect is resolved in the parent namespace of _N_. + +A process' mount namespace forms a closure over the set of visible mount +entries. Forking another namespace will capture all visible mount entries, and +allow the process to make local changes independently from the parent +namespace. + +Names are lexically scoped, i.e. a new mount is resolved in its +enclosing scope. When Parrot starts, the global mount namespace has no parent, +so mounts passed in are resolved in the host filesystem. Unless the +`--dynamic-mounts` flag is passed, Parrot **seals** the global mount namespace +before running the tracee by making a new child namespace. Thus all processes +are, by default, locked into the namespace set up by the command +line/environment variables. + +Any processes may add mount entries to its own +mount namespace via ` parrot_mount`, but may not remove mount entries defined +in parent and sealed namespace(s). A process can make changes to its mount +namespace, then seal it with `parrot_mount --disable` to prevent the process +or its children from undoing those changes. If `--dynamic-mounts` is passed, +the global namespace is left unsealed, so mounts/unmounts are resolved in the +host filesystem. This allows a setup script to modify the command line mounts, +then seal the global namespace so that it can no longer be modified. Likewise, +a process can fork its namespace, add mount entries, then seal it so that all +children will be locked into the current view of the system. + +The `parrot_namespace` utility gives a more convenient way to create new mount +namespaces rather than using the `parrot_fork_namespace` syscall directly. +This utility forks the current mount namespace and performs any mounts +specified on the command line. `parrot_namespace` detects whether or not it is +already running under Parrot. If so, `parrot_namespace` uses Parrot-specific +syscalls to make the mount changes in a newly-forked mount namespace. If not +running under Parrot, `parrot_namespace` simply executes `parrot_run`. + +For applications that want to nest Parrot sessions and only need to make +changes to mounts, `parrot_namespace` should work as a drop-in replacement for +`parrot_run`. `parrot_namespace` only supports a limited subset of the options +available for `parrot_run`. By always using `parrot_namespace`, the user need +not be concerned with whether Parrot is already running. + +## Packaging Dependencies + +### Recording Dependencies + +To figure out the underlying file dependencies and execution environment, +Parrot allows you to record the names of all the accessed files during the +execution process of one program, which is implemented as the **\--name-list +dependencylist** option, and allows you to record the environment variables of +your program, which is implemented as the **\--env-list envlist** option. When +one filename is resolved by the Parrot **name resolver** , it is also recorded +into the **dependencylist** file. The system call type of a file is also +transferred to the name resolver and recorded into the dependencylist file. +For example, all the accessed file names will be recorded into **list.txt** , +and the environment variables will be recorded into **envlist** , if we run +the following command: + +```sh +$ parrot_run --name-list namelist --env-list envlist ls ~ +``` + +The format of list.txt is **filename|system-call-type** , such as +`usr/bin/ls|stat`, which means the file `/usr/bin/ls` is accessed using the +`stat` system call. + +### Creating a Package + +After recording the accessed files of one program with the help of the +**\--name-list** parameter of ` parrot_run` and the environment variables with +the help of the **\--env-list** parameter of ` parrot_run`, +`parrot_package_create` can generate a package containing all the accessed +files and the environment variables. `parrot_package_create` shares the same +**\--name-list** and **\--env-list** parameters with ` parrot_run`. +**\--package-path** parameter is used to specify the location of package. + +```sh +$ parrot_package_create --name-list namelist --env-list envlist --package-path /tmp/my.package +``` + +After executing this command, one package with the path of **/tmp/package** +will be generated. The envlist file, **envlist** will be put under +**/tmp/package** with the name of **env_list**. + +You can also add the dependencies recorded in a new namelist file into an +existing package: + +```sh +parrot_package_create --name-list namelist1 --env-list envlist1 --new-env envlist1 --add /tmp/my.package +``` + +After executing this command, all the new dependencies mentioned in +**namelist1** will be added into **/tmp/package** , the new envlist, +**envlist1** , will also be added into **/tmp/package** with the name +specified by the **\--new-env** option. + +### Running a Package + +Once a package is generated with the help of `parrot_package_create`, we can +use `parrot_package_run` to repeat the program within the package. +`parrot_package_run` is based on the mountlist redirection mechanism of +`parrot_run`. One mountlist wll be created so that the file access request of +your program can be redirected into the package. **\--package-path** parameter +specifies the paht of the package. If no command is given, a /bin/sh shell +will be returned. + +```sh +$ parrot_package_run --package-path /tmp/package /bin/bash +``` + +After the execution of this command, one shell will be returned, where you can +repeat your original program. After everything is done, exit +`parrot_package_run`: + +```sh +$ exit +``` + +You can also directly set your command as the arguments of +`parrot_package_run`. In this case, `parrot_package_run` will exit +automatically after the command is finished, and you do not need to use `exit` +to exit. However, your command must belong to the original command set +executed inside `parrot_run` and preserved by `parrot_package_create`. + +``` +$ parrot_package_run --package-path /tmp/package ls -al +``` + +You can also specify a different environment file to run programs inside a +package with the **\--env-list** option. + +```sh +$ parrot_package_run -env-list /tmp/package/envlist1 --package-path /tmp/package ls -al +``` + +## Optimizing File Copies + +### Reflink (reference link) Copy + +Parrot can take advantage of the reflink feature (added in coreutils 7.5) when +using ` cp`. To use this feature, invoke `cp` as `$ cp --reflink foo bar` This +works by intercepting `BTRFS_IOC_CLONE` to trigger an in-Parrot copy with no +further interaction with `cp`, avoiding the overhead of moving data into the +client's buffer and then immediately back to Parrot. When run in Parrot, `cp --reflink` +is not restricted to files on the same BTRFS volume, and can be used +for efficiently copying any regular file. + +As of coreutils 8.24, `mv` will automatically attempt a reflink copy when +moving files across mount points. Parrot's reflink feature allows e.g. `mv`ing +a file into a tmpfs like `/tmp` with minimal overhead. + +### Parrot Native File Copies + +If you are using Parrot to copy lots of files across the network, you may see +better performance using the `parrot_cp` tool. This program looks like an +ordinary `cp`, but it makes use of an optimized Parrot system call that +streams entire files over the network, instead of copying them block by block. + +To use `parrot_cp`, simply use your shell to alias calls to `cp` with calls to +`parrot_cp`: + +```sh +$ parrot_run bash +$ alias cp=parrot_cp +$ cp /tmp/mydata /chirp/server.nd.edu/joe/data +$ cp -rR /chirp/server.nd.edu/joe /tmp/joe +``` + +If run outside of Parrot, `parrot_cp` will operate as an ordinary `cp` without +any performance gain or loss. + +## File Access Protocols + +### HTTP Proxy Servers + +HTTP, CVMFS, and GROW can take advantage of standard HTTP proxy servers. To +route requests through a single proxy server, set the HTTP_PROXY environment +variable to the server name and port: + +```sh +$ export HTTP_PROXY="http://proxy.nd.edu:8080" +``` + +Multiple proxy servers can be given, separated by a semicolon. This will cause +Parrot to try each proxy in order until one succeeds. If `DIRECT` is given as +the last name in the list, then Parrot will fall back on a direct connection +to the target web server. For example: + +```sh +$ export HTTP_PROXY="http://proxy.nd.edu:8080;http://proxy.wisc.edu:1000;DIRECT" +``` + +### GROW - Global Read Only Web Filesystem + +Although the strict HTTP protocol does not allow for correct structured +directory listings, it is possible to emulate directory listings with a little +help from the underlying filesystem. We call this technique GROW, a global +filesystem based on the Web. GROW requires the exporter of data to run a +script (`make_growfs`) that generates a complete directory listing of the data +that you wish to export. This directory listing is then used to produce +reliable metadata. Of course, if the data changes, the script must be run +again, so GROW is only useful for data that changes infrequently. + +To set up an GROW filesystem, you must run `make_growfs` on the web server +machine with the name of the local storage directory as the argument. For +example, suppose that the web server `my.server.com` stores pages for the URL +`http://my.server.com/~fred` in the local directory `/home/fred/www`. In this +case, you should run the following command: + +```sh +$ make_growfs /home/fred/www +``` + +Now, others may perceive the web server as a +file server under the /grow hierarchy. For example: + +```sh +$ parrot_run bash +$cd /grow/my.server.com/~fred +$ ls -la +``` + +In addition to providing precise directory metadata, GROW offers two +additional advantages over plain HTTP: + +* **Aggressive Caching.** GROW caches files in an on-disk cache, but unlike plain HTTP, does not need to issue up-to-date checks against the server. Using the cached directory metadata, it can tell if a file is up-to-date without any network communication. The directory is only checked for changes at the beginning of program execution, so changes become visible only to newly executed programs. +* **SHA-1 Integrity.** ` make_growfs` generates SHA-1 checksums on the directory and each file so that the integrity of the system can be verified at runtime. If a checksum fails, GROW will attempt to reload the file or directory listing in order to repair the error, trying until the master timeout (set by the -T option) expires. This will also occur if the underlying files have been modified and `make_growfs` has not yet been re-run. If necessary, checksums can be disabled by giving the `-k` option to either Parrot or `make_growfs`. + +### iRODS + +To use Parrot with [iRODS](http://www.irods.org), you must first follow the [special +build instructions](../install). + +Then, use the `iinit` command to log into the desired iRODS service, and +verify that you are connected with the `ils` command. If those work, then you +can use Parrot to access files under the scheme `/irods/server/zone/path`. For +example, to access the iPlant data service: + + + + parrot_run bash + cd /irods/data.iplantcollaborative.org/iplant/home/username + cp /tmp/mydata . + + +### CVMFS - CernVM-FS + +CVMFS is a read-only filesystem, which was initially based on GROW. It is used +within CernVM-FS to provide access to software repositories. It may be used +outside of CernVM-FS by mounting it as a FUSE module. Parrot makes it possible +to access CVMFS in cases where mounting CVMFS via FUSE is not an option. Like +GROW, CVMFS makes use of web proxies and local disk caching for scalability. +For security, data integrity is verified with cryptographic checksums. For +increased reliability and performance, CVMFS repositories may also be mirrored +in multiple locations and accessed via groups of load-balanced web proxies, +with fail-over between groups. + +The CVMFS repositories hosted by the [CernVM project](http://cernvm.cern.ch/) +and by Open Science Grid (OASIS) are enabled by default. To access a different +repository, it is necessary to configure parrot to know how to access the +repository. This may be done with the `-r` option or with the +`PARROT_CVMFS_REPO` environment variable. + +The repository configuration syntax is `repo_name:options repo_name2:option2 ...` + +The repository with `repo_name` is used when the parrot user attempts to +access the matching path `/cvmfs/repo_name/...`. The configured repository +name may begin with `*`, which acts as a wildcard, matching one or more +characters in the requested repository name. This is useful when multiple +repositories are hosted at the same site and all configuration details are the +same except the beginnings of the repository names, as in `atlas.cern.ch` and +`cms.cern.ch`. Any `*` appearing in the options is replaced by the characters +in the requested path that were matched by the `*` in the configured +repository name. If a cvmfs path matches more than one configured repository, +the last one appearing in the configuration takes precedence. + +The format of the repository options is `option1=value1,option2=value2,...` + +Literal spaces, tabs, newlines, asterisks, equal signs, or commas in the +options must be proceeded by a backslash to avoid being interpreted as +delimiters. If the same option is specified more than once, the last value +takes precedence. The possible options are listed in the table below. The +`url` option is required and has no default. The `proxies` option is required +and defaults to the proxy used by parrot, if any. + +| | | +|-|-| +| **url=URL** | The URL of the CernVM-FS server(s): 'url1;url2;...' +| **proxies=HTTP_PROXIES** | Set the HTTP proxy list, such as 'proxy1\|proxy2'; default is given by -P option (HTTP_PROXY).

    Proxies separated by \|; are randomly chosen for load balancing.

    Groups of proxies separated by ';' may be specified for failover.

    If the first group fails, the second group is used, and so on down the chain. +| **cachedir=DIR** | Where to store disk cache; default is within parrot temp directory (-t option) +| **timeout=SECONDS** | Timeout for network operations; default is given by -T option (PARROT_TIMEOUT) +| **timeout_direct=SECONDS** | Timeout in for network operations without proxy; default is given by -T option (PARROT_TIMEOUT) +| **max_ttl=MINUTES** | Maximum TTL for file catalogs; default: take from catalog +| **allow_unsigned** | Accept unsigned catalogs (allows man-in-the-middle attacks) +| **whitelist=URL** | HTTP location of trusted catalog certificates (defaults is /.cvmfswhitelist) +| **pubkey=PEMFILE** | Public RSA key that is used to verify the whitelist signature. +| **rebuild_cachedb** | Force rebuilding the quota cache db from cache directory +| **quota_limit=MB** | Limit size of cache. -1 (the default) means unlimited. If not -1, files larger than +quota_limit-quota_threshold will not be readable. +| **quota_threshold=MB** | Cleanup cache until size is <= threshold +| **deep_mount=prefix** | Path prefix if a repository is mounted on a nested catalog +| **repo_name=NAME** | Unique name of the mounted repository; default is the name used for this configuration entry +| **mountpoint=PATH** | Path to root of repository; default is /cvmfs/repo_name +| **blacklist=FILE** | Local blacklist for invalid certificates. Has precedence over the whitelist. +| **try_local_filesystem** | If this cvmfs repository is mounted on the local filesystem, use that instead of Parrot's CVMFS client. + +Setting the CVMFS configuration overrides the default configuration. If it is +desired to configure additional repositories but still retain the default +repositories, the configuration entry `` may be put in +the configuration string. For example: + +```sh +$ parrot_run -r ' my.repo:url=http://cvmfs.server.edu/cvmfs/my.repo.edu' ... +``` + +The entry `` should come first, because it contains a +catch-all clause `*:try_local_filesystem` that matches anything that isn't +caught by later entries. This clause allows access to locally mounted CVMFS +repositories that Parrot is not configured to access internally. + +The configuration of the default repositories may be modified by specifying +additional options using the syntax `:option1=value1,option2=value2`. + + +### Parrot Cache + +If a service does not allow partial reads of a file (e.g. the HTTP protocol: +`/http/foo.com/a.txt`), then Parrot will cache an entire copy of the file in +its temporary directory (`-t` or `$PARROT_TEMP_DIR` or `$TMPDIR/parrot.`, +in order). Cached files are named based on the hash of the canonical file +name. + +!!! warning + You can also force Parrot to cache all non-local files using the + `-F/--with-snapshots` option. This is not usually recommended because Parrot + will download the entire copy of the file when opened by the application. This + also means that updates to the file during run-time are ignored (hence the + name, "snapshot")! + +Some services have their own cache, like `cvmfs`. This is a cache independent +of the regular Parrot cache. **It is important to note that some versions of +CVMFS may not correctly operate on the same cache. In that case, it is +essential to run concurrent instances of Parrot with different temporary +directories.** + +### Hadoop Distributed File System (HDFS) + +HDFS is the primary distributed filesystem used in the +[Hadoop](http://hadoop.apache.org) project. Parrot supports read and write +access to HDFS systems using the ` parrot_run_hdfs` wrapper. This script +checks that the appropriate environmental variables are defined and calls +`parrot`. + +In particular, you must ensure that you define the following environmental +variables: + +| | | +|-|-| +JAVA_HOME | Location of your Java installation. +HADOOP_HOME | Location of your Hadoop installation. + +Based on these environmental variables, `parrot_run_hdfs` will attempt to find +the appropriate paths for `libjvm.so` and `libhdfs.so`. These paths are stored +in the environmental variables `LIBJVM_PATH` and `LIBHDFS_PATH`, which are +used by the HDFS Parrot module to load the necessary shared libraries at run- +time. To avoid the startup overhead of searching for these libraries, you may +set the paths manually in your environment before calling `parrot_run_hdfs`, +or you may edit the script directly. + +Note that while Parrot supports read access to HDFS, it only provides write- +once support on HDFS. This is because the current implementations of HDFS do +not provide reliable append operations. Likewise, files can only be opened in +either read (`O_RDONLY`) or write mode (`O_WRONLY`), and not both (`O_RDWR`). + +## Identity Boxing + +Parot provides a unique feature known as _identity boxing_. This feature +allows you to run a (possibly) untrusted program within a protection domain, +as if it were run in a completely separate account. Using an identity box, you +do not need to become root or even to manage account names: you can create any +identity that you like on the fly. + +For example, suppose that you wish to allow a friend to log into your private +workstation. Instead of creating a new account, simply use a script supplied +with Parrot to create an identity box: + +```sh +$ whoami dthain +$ parrot_identity_box MyFriend +$ whoami MyFriend +$ touch ~dthain/some-data +$ touch: creating ~dthain/some-data': Permission denied +``` + +Note that the shell running within the identity box cannot change or modify +any of the supervising user's data. In fact, the contained user can only +access items that are world-readable or world-writable. + +You can give the contained user access to other parts of the filesystem by +creating access control lists. (ACLs) An ACL is a list of users and the +resources that they are allowed to access. Each directory has it's own ACL in +the file `.__acl`. This file does not appear in a directory listing, but you +can read and write it just the same. + +For example, ` MyFriend` above can see his initial ACL as follows: + +```sh +$ cat .__acl +MyFriend rwlxa +``` + +This means that `MyFriend` can read, write, list, execute, and administer +items in the current directory. Now, suppose that `MyFriend` wants to allow +`Freddy` read access to the same directory. Simply edit the ACL file to read: +`MyFriend rwlxa Freddy rl ` Identity boxing and ACLs are particularly useful +when using distributed storage. You can read more about ACLs and identity +boxing in the [Chirp](../chirp) manual. + +## 64-Bit Support + +In all modes, Parrot supports applications that access large (>2GB) files that +require 64-bit seek pointers. However, be aware that many tools and +filesystems do not manipulate such large files properly. If possible, we +advise users to break up files into smaller pieces for processing. + +Parrot supports 64 bit programs and processors in the following combinations: + +| 32-bit| 64-bit| CPU Type | +|----|------|---| +|YES | NO | Parrot for 32-bit X86 CPU
    Pentium, Xeon, Athlon, Sempron +|YES | YES | Parrot for 64-bit X86_64 CPU
    Opteron, Athlon64, Turion64, Sempron64 + +## A Note on Docker + +Docker by default blocks ptrace, the system call on which parrot relies. To +run parrot inside docker, the container needs to be started using the +`--security-opt seccomp=unconfined` command line argument. For example: ` +docker run --security-opt seccomp=unconfined MY-DOCKER-IMAGE ` + +## Man Pages + +An exhaustive list of all options and commands can be found in the manual +pages: + +* [parrot_run](../man_pages/parrot_run.md) +* [parrot_cp](../man_pages/parrot_cp.md) +* [parrot_md5](../man_pages/parrot_md5.md) +* [parrot_getacl](../man_pages/parrot_getacl.md) +* [parrot_setacl](../man_pages/parrot_setacl.md) +* [parrot_mkalloc](../man_pages/parrot_mkalloc.md) +* [parrot_lsalloc](../man_pages/parrot_lsalloc.md) +* [parrot_locate](../man_pages/parrot_locate.md) +* [parrot_timeout](../man_pages/parrot_timeout.md) +* [parrot_whoami](../man_pages/parrot_whoami.md) +* [parrot_mount](../man_pages/parrot_mount.md) + + +## Citation + +Douglas Thain and Miron Livny, [Parrot: An Application Environment for Data-Intensive Computing](http://www.cse.nd.edu/~dthain/papers/parrot-scpe.pdf), Scalable Computing: Practice and Experience, Volume 6, Number 3, Pages 9--18, 2005. + +## Further Information + +For more information, please see [Getting Help](../help) or visit the [Cooperative Computing Lab](http://ccl.cse.nd.edu) website. + +## Copyright + +CCTools is Copyright (C) 2019- The University of Notre Dame. This software is distributed under the GNU General Public License Version 2. See the file COPYING for +details. diff -Nru cctools-7.0.22/doc/manuals/parrot/locate_file cctools-7.1.2/doc/manuals/parrot/locate_file --- cctools-7.0.22/doc/manuals/parrot/locate_file 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/parrot/locate_file 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,40 @@ +#! /usr/bin/env python + +# locate_file script +# Prints the absolute path of the file corresponding to its argument. + +import sys +import random + + +sites = { + 'CA': '/anonftp/mirror.csclub.uwaterloo.ca/gnu', + 'EU': '/anonftp/ftp.mirror.nl/pub/mirror/gnu', + 'default': '/anonftp/ftp.gnu.org' +} + +def where_am_i(): + # figure out the site closest to our geographical location + # ... ... ... + # (mock with random choice) + location = random.choice(sites.keys()) + + return location + +if __name__ == '__main__': + try: + filename = '' + + if len(sys.argv) > 1: + filename = sys.argv[1] + + location = where_am_i() + location = 'default' + site = sites[location] + + print('{}/{}'.format(site, filename)) + + except Exception as e: + raise e + print('') + diff -Nru cctools-7.0.22/doc/manuals/prune/examples/census/compare_surnames.py cctools-7.1.2/doc/manuals/prune/examples/census/compare_surnames.py --- cctools-7.0.22/doc/manuals/prune/examples/census/compare_surnames.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/census/compare_surnames.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,228 @@ +#!/usr/bin/env python + +# Copyright (c) 2010- The University of Notre Dame. +# This software is distributed under the GNU General Public License. +# See the file COPYING for details. +import os, sys, random, time + +from prune import client +from os.path import expanduser + + +HOME = expanduser("~") +prune = client.Connect(base_dir = HOME+'/.prune') #Prune data is stored in base_dir + + +years = [3000,3010] + + +############################### +########## STAGE 0 ########## +############################### +print 'Stage 0' + +folder = './simulated_data/' +f = [] +for (dirpath, dirnames, filenames) in os.walk(folder): + f.extend(filenames) + break +f.sort() + +normalized_data_keys = {} +for year in years: + normalized_data_keys[year] = [] +for fname in f: + year = int(fname[0:4]) + if year in years: + original_file_id = prune.file_add( folder+fname ) + normalized_data_keys[year].append( original_file_id ) + print 'Input: ' + original_file_id + ' (' + folder+fname + ')' + + + + +############################### +########## STAGE 1-2 ######### +############################### +# Stage 1 = Decompression +# Stage 2 = Normalization +# These stages are currently unnecessary with the simulated census data + + +############################### +########## STAGE 3 ########## +############################### + +counts = {} +for year in years: + counts[year] = [] + +print 'Stage 3' + +# Count words ocurrences in the data +counter = prune.file_add( 'count' ) +for year in years: + for k,nkey in enumerate(normalized_data_keys[year]): + cmd = "python count < input_data_%i_%i > output" % (year,k) + ckey, = prune.task_add( returns=['output'], + env=prune.nil, cmd=cmd, + args=[counter, nkey], params=['count','input_data_%i_%i'%(year,k)] ) + counts[year].append( ckey ) + + # prune.file_dump( counts[year][-1], 'count%i.txt'%year ) + +for year in years: + print 'counts[%i] = %s' % (year, counts[year]) + + +############################## +########## STAGE 4 ########## +############################## + + +print 'Stage 4' + +# Summarize words ocurrence counts by year +countsummer = prune.file_add( 'count_sum' ) +for year in years: + ar = counts[year] + ar2 = ['input'+str(i) for i in range(1,len(ar)+1)] + cmd = "python count_sum.%i %s > output" % (year, ' '.join(ar2)) + skey, = prune.task_add( returns=['output'], + env=prune.nil, cmd=cmd, + args=[countsummer]+ar, params=['count_sum.%i'%year]+ar2 ) + counts[year] = skey + + #prune.file_dump( counts[year], 'counts_%i.txt'%year ) + + +for year in years: + print 'counts[%i] = \'%s\'' % (year, counts[year]) + + + + + + +############################## +########## STAGE 5 ########## +############################## + +frequencies = {} + +print 'Stage 5' + +# Summarize total words ocurrence counts +countsummer = prune.file_add( 'count_sum' ) +ar = [] +for year in years: + ar += [counts[year]] +ar2 = ['input'+str(i) for i in range(1,len(ar)+1)] +cmd = "python count_sum.all %s > output" % (' '.join(ar2)) +print cmd +counts_all, = prune.task_add( returns=['output'], + env=prune.nil, cmd=cmd, + args=[countsummer]+ar, params=['count_sum.all']+ar2 ) + + +###### Execute the workflow ###### +prune.execute( worker_type='local', cores=8 ) +# prune.execute( worker_type='work_queue', name='prune_census_example' ) + +prune.file_dump( counts_all, 'counts_all.txt' ) + +print 'counts_all = \'%s\'' % (counts_all) + + + + + + +############################## +########## STAGE 6 ########## +############################## + +fields = ['CY','CS','CC','CT','HS','FM','PN', 'FN','GN','BY','BP','SX', 'RL','ET','RC','AG'] +filtered = {} + +print 'Stage 6' + +for field in fields: + # Filter into field types + filtered[field], = prune.task_add( returns=['output_data'], + #env=umbrella_env, cmd="grep '^%s' /tmp/input > output_data" % (field), + env=prune.nil, cmd="grep '^%s' input > output_data" % (field), + args=[counts_all], params=['input'] ) + #prune.file_dump( filtered[field], 'filtered_%s.txt' % (field) ) + + + +for field in fields: + print 'filtered[\'%s\'] = \'%s\'' % (field, filtered[field]) + + + + + + +############################## +########## STAGE 7 ########## +############################## + +frequent_values = {} + +print 'Stage 7' + +for field in fields: + frequent_values[field], = prune.task_add( returns=['output'], + env=prune.nil, cmd="sort -t\| -rnk3 input%s > output"%field, + args=[filtered[field]], params=['input'+field] ) + +for field in fields: + print 'frequent_values[\'%s\'] = \'%s\'' % (field, frequent_values[field]) + + +###### Execute the workflow ###### +prune.execute( worker_type='local', cores=8 ) +# prune.execute( worker_type='work_queue', name='prune_census_example' ) + +prune.file_dump( frequent_values['FN'], 'most_frequent_FN.txt' ) + + + + + +############################## +########## STAGE 8 ########## +############################## +print 'Stage 8' + +zipped_jellyfish_folder = prune.file_add( 'jellyfish.tar.gz' ) +jelly_env = prune.envi_add(engine='wrapper', open='tar -zxf jellyfish.tar.gz', close='rm -rf jellyfish', args=[zipped_jellyfish_folder], params=['jellyfish.tar.gz']) + +final_keys = [] +compare_words = prune.file_add( 'compare_word' ) + +max_comparison = 25 +all_top_matches = [] +for i in range(0, max_comparison): + cmd = "python compare_word input_data %i > output_data" % (i) + print cmd + top_matches, = prune.task_add( returns=['output_data'], + env=jelly_env, cmd=cmd, + args=[frequent_values['FN'],compare_words], params=['input_data','compare_word'] ) + all_top_matches.append( top_matches ) + #print top_matches + prune.file_dump( top_matches, '%s_similarities_%i.txt' % ('FN',i) ) + #final_keys.append( top_matches ) + #if i == 9131: + # prune.file_dump( top_matches, 'tops/%ssimilarities_%i.txt' % ('FN',i) ) + + +###### Execute the workflow ###### +prune.execute( worker_type='local', cores=8 ) +# prune.execute( worker_type='work_queue', name='prune_census_example' ) + +###### Save output data to local directory ###### +prune.export( all_top_matches[0], 'similarity_results.%i.txt'%(0) ) + diff -Nru cctools-7.0.22/doc/manuals/prune/examples/census/compare_word cctools-7.1.2/doc/manuals/prune/examples/census/compare_word --- cctools-7.0.22/doc/manuals/prune/examples/census/compare_word 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/census/compare_word 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,55 @@ +#!/usr/bin/env python + +import os, sys +from operator import itemgetter + +sys.path.append('./jellyfish') +import jellyfish + +#indata = sys.stdin +outdata = sys.stdout + +indata = open( sys.argv[1], 'r' ) +pos = int(sys.argv[2]) + +cnt = 0 +counts = [] +values = [] +line=indata.readline() +while line: + if len(line)>1: + line = line[0:-1] + ar = line.strip().split('|') + if len(ar)==3: + field, value, cnt_str = ar + if len(value)>0: + values.append( value ) + counts.append( int(cnt_str) ) + + #cnt += 1 + #if cnt>1000: + # break + line=indata.readline() + +#print len(values), 'total fields...\n' +print('## This file shows the similarity scores for the first entry') +print('## based on the Jaro-Winkler string comparison algorithm') +print('#Similarity score|Word A|Frequency|Word B|Frequency') + +#max_scores = 200 +max_scores = sys.maxint +for i in range(pos,len(values)): + top_scores = [] + for j in range(0,len(values)): + similarity = jellyfish.jaro_distance(values[i].decode("utf-8"), values[j].decode("utf-8")) + if similarity>0.65: + #if similarity>0.5: + top_scores.append( [ similarity, i, j ] ) + top_scores.sort(key=lambda x: x[0], reverse=True) + #if len(top_scores)>=max_scores: + # top_scores = top_scores[0:max_scores] + for ar in top_scores: + sim, i, j = ar + print('%s|%s|%i|%s|%i' % (sim, values[i], counts[i], values[j], counts[j])) + break + diff -Nru cctools-7.0.22/doc/manuals/prune/examples/census/count cctools-7.1.2/doc/manuals/prune/examples/census/count --- cctools-7.0.22/doc/manuals/prune/examples/census/count 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/census/count 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,48 @@ +#!/usr/bin/env python + +import os, sys, json +import re + +indata = sys.stdin +outdata = sys.stdout + +input_fields = ['CY','CS','CC','CT','HS','FM','PN', 'FN','GN','BY','BP','SX', 'RL','ET','RC','AG','ID', 'FW','BW'] +output_fields = ['CY','CS','CC','CT','HS','FM','PN', 'FN','GN','BY','BP','SX', 'RL','ET','RC','AG'] +output_fields.sort() + +output_positions = [] + + +counts = [] +for field in output_fields: + pos = input_fields.index( field ) + output_positions.append( pos ) + counts.append( {} ) + +pattern = re.compile('[\W_]+') + + +cnt = 0 +line=indata.readline() +while line: + if len(line)>1: + line = line[0:-1] + fields = line.strip().split('|') + for i,pos in enumerate(output_positions): + value = pattern.sub( '_', fields[pos] ) + if value in counts[i]: + counts[i][value] += 1 + else: + counts[i][value] = 1 + #cnt += 1 + #if cnt>100: + # break + line=indata.readline() + +for c,cnts in enumerate(counts): + field_name = input_fields[output_positions[c]] + keys = sorted(cnts.keys()) + for key in keys: + outdata.write( "%s|%s|%i\n" % (field_name, key, cnts[key]) ) + + diff -Nru cctools-7.0.22/doc/manuals/prune/examples/census/count_sum cctools-7.1.2/doc/manuals/prune/examples/census/count_sum --- cctools-7.0.22/doc/manuals/prune/examples/census/count_sum 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/census/count_sum 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,54 @@ +#!/usr/bin/env python + +import os, sys, json + +outdata = sys.stdout + + +streams = [] +lines = [] +lowests = [] +for fname in sys.argv[1:]: + f = open( fname, 'r' ) + line = f.readline() + #print(line) + pos = line.rfind('|') + key = line[0:pos] + cnt = int( line[pos+1:-1] ) + + streams.append( f ) + lines.append( [key,cnt] ) + + + +c = 0 +while True: + lowest = None + lowests = [] + for i,ar in enumerate(lines): + if ar: + key,cnt = ar + if not lowest or key < lowest: + lowest = key + lowests = [ i ] + elif key == lowest: + lowests.append( i ) + + total = 0 + if len(lowests)==0: + break + for i in lowests: + total += lines[i][1] + line = streams[i].readline() + if len(line)>1: + pos = line.rfind('|') + key = line[0:pos] + cnt = int( line[pos+1:-1] ) + lines[i] = [key,cnt] + else: + lines[i] = None + + outdata.write( "%s|%i\n" % (lowest, total) ) + #c += 1 + #if c>10: + # break diff -Nru cctools-7.0.22/doc/manuals/prune/examples/census/dups cctools-7.1.2/doc/manuals/prune/examples/census/dups --- cctools-7.0.22/doc/manuals/prune/examples/census/dups 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/census/dups 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,42 @@ +#!/usr/bin/env python + +import os, sys, json +import hashlib +import subprocess + + +fields = ['MD','KY','CY','CS','CC','CT','HS','FM','PN', 'FN','GN','BY','BP','SX', 'RL','ET','RC','AG', 'ID'] +numbers = ['CY', 'HS','FM','PN', 'BY', 'AG'] # These fields should be numerical + +indata = sys.stdin + +cnt = 0 +line = indata.readline()[:-1] +last_ar = None +matching_lines = [] +first_line = '' +while line: + ar = line.split('|') + line = '|'.join( ar[2:] ) + + #if last_ar: + #print last_ar[0], ar[0] + if last_ar and last_ar[0] == ar[0]: + matching_lines.append( line ) + else: + if len(matching_lines)>0: + print(first_line) + for l in matching_lines: + print(l) + print('') + matching_lines = [] + first_line = line + cnt += 1 + #if cnt>100: + #sys.exit(0) + + #sys.stdout.write('.') + #sys.stdout.flush() + + last_ar = ar + line = indata.readline()[:-1] diff -Nru cctools-7.0.22/doc/manuals/prune/examples/census/map_all cctools-7.1.2/doc/manuals/prune/examples/census/map_all --- cctools-7.0.22/doc/manuals/prune/examples/census/map_all 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/census/map_all 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,64 @@ +#!/usr/bin/env python + +import os, sys, json +import hashlib +import subprocess + + +#key_fields = sys.argv[1].split(',') +key_fields = ['CS', 'CC', 'CT', 'FN', 'GN', 'BY', 'SX'] +#key_fields = ['CS', 'FN'] +concurrency = int(sys.argv[1]) +#output_prefix = 'mapped/' +output_prefix = 'result_' + +fields = ['CY','CS','CC','CT','HS','FM','PN', 'FN','GN','BY','BP','SX', 'RL','ET','RC','AG', 'ID'] +numbers = ['CY', 'HS','FM','PN', 'BY', 'AG'] # These fields should get sorted numerically (not alpha-numerically) + + + +key_index = [] +for key in key_fields: + key_index.append( fields.index(key) ) + +indata = sys.stdin + +hashes = [] +files = [] +for i in range(0,concurrency): + hashes.append( 0 ) + files.append( open(output_prefix+str(i), 'a') ) + +cnt = 0 +line = indata.readline() +while line: + ar = line[:-1].split('|') + if (len(ar)>1): + + key = '' + for f in key_index: + key += ar[f] + ':' + key = key[:-1] + hash_object = hashlib.sha1(key) + hex_dig = hash_object.hexdigest() + hash_id = int(hex_dig, 16) % concurrency + files[ hash_id ].write( hex_dig+'|'+key+'|'+line ) + #hash_id = key % concurrency + #files[ hash_id ].write( key+'|'+line ) + + cnt += 1 + #if cnt>100: + #sys.exit(0) + + line = indata.readline() + + +# This takes 50% more time on top of the mapping above (in initial tests). +for f, file in enumerate(files): + file.close() + filename = output_prefix+str(f) + p = subprocess.Popen( "sort -t\| -k1 %s -o %s" % (filename,filename), stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True ) + (stdout, stderr) = p.communicate() + + + diff -Nru cctools-7.0.22/doc/manuals/prune/examples/census/matches cctools-7.1.2/doc/manuals/prune/examples/census/matches --- cctools-7.0.22/doc/manuals/prune/examples/census/matches 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/census/matches 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,52 @@ +#!/usr/bin/env python + +import os, sys, json +import hashlib + + + +years = [3000,3010] + +fields = ['CY','CS','CC','CT','HS','FM','PN', 'FN','GN','BY','BP','SX', 'RL','ET','RC','AG', 'ID'] +numbers = ['CY', 'HS','FM','PN', 'BY', 'AG'] # These fields should be numerical + +indata = sys.stdin + + +cnt = 0 +ycnts = {} +for year in years: + ycnts[year] = 0 +matching_lines = [] + + +line = indata.readline() +while line: + line = line[:-1] + if len(line)>0: + ar = line.split('|') + year = int(ar[0]) + ycnts[year] += 1 + cnt += 1 + matching_lines.append(line) + else: + no_more = True + ones = False + for year in years: + if ycnts[year]>1: + no_more = False + elif ycnts[year]==1: + ones = True + if ones and no_more: + for l in matching_lines: + print(l) + print('') + + cnt = 0 + ycnts = {} + for year in years: + ycnts[year] = 0 + matching_lines = [] + + + line = indata.readline() diff -Nru cctools-7.0.22/doc/manuals/prune/examples/census/match_people.py cctools-7.1.2/doc/manuals/prune/examples/census/match_people.py --- cctools-7.0.22/doc/manuals/prune/examples/census/match_people.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/census/match_people.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,273 @@ +#!/usr/bin/env python + +# Copyright (c) 2010- The University of Notre Dame. +# This software is distributed under the GNU General Public License. +# See the file COPYING for details. +import os, sys, random, time + +from prune import client +from os.path import expanduser + + +HOME = expanduser("~") +prune = client.Connect(base_dir = HOME+'/.prune') #Prune data is stored in base_dir + + +years = [3000,3010] + + +############################### +########## STAGE 0 ########## +############################### +print 'Stage 0' + +folder = './simulated_data/' +f = [] +for (dirpath, dirnames, filenames) in os.walk(folder): + f.extend(filenames) + break +f.sort() + +normalized_data_keys = {} +for year in years: + normalized_data_keys[year] = [] +for fname in f: + year = int(fname[0:4]) + if year in years: + original_file_id = prune.file_add( folder+fname ) + normalized_data_keys[year].append( original_file_id ) + print 'Input: ' + original_file_id + ' (' + folder+fname + ')' + + + + +############################### +########## STAGE 1-2 ######### +############################### +# Stage 1 = Decompression +# Stage 2 = Normalization +# These stages are currently unnecessary with the simulated census data + + + +############################## +########## STAGE 3 ########## +############################## + +#fields = ['CY','CS','CC','CT','HS','FM','PN', 'FN','GN','BY','BP','SX', 'RL','ET','RC','AG'] +#numbers = ['CY', 'HS','FM','PN', 'BY', 'AG'] # These fields should get sorted numerically (not alpha-numerically) + +#concurrency = 256 +concurrency = 16 + + +returns = [] +for i in range(0,concurrency): + returns.append('result_'+str(i)) +key_sorted_data = {} +for year in years: + key_sorted_data[year] = [] + for i in range(0,concurrency): + key_sorted_data[year].append( [] ) + +print 'Stage 3' + + +map_all = prune.file_add( 'map_all' ) +for year in years: + + for u,ukey in enumerate(normalized_data_keys[year]): + + param = 'input_%i_%i' % (year, u) + cmd = "python map_all %i < %s " % (concurrency, param) + sorteds = prune.task_add( returns=returns, + env=prune.nil, cmd=cmd, + args=[map_all,ukey], params=['map_all',param] ) + + for i in range(0,concurrency): + key_sorted_data[year][i].append( sorteds[i] ) + +for year in years: + print 'key_sorted_data[%i] = %s' % (year, key_sorted_data[year]) + + +###### Execute the workflow ###### +# prune.execute( worker_type='local', cores=8 ) +prune.execute( worker_type='work_queue', name='prune_census_example' ) + +prune.export( key_sorted_data[3000][1][1], '3000.1.1.txt' ) + + + + +############################## +########## STAGE 4 ########## +############################## + +year_blocks = [] +for u in range(0,concurrency): + year_ar = {} + for year in years: + year_ar[ year ] = [] + year_blocks.append( year_ar ) + +print 'Stage 4' + +for u in range(0,concurrency): + + # year_args = [] + # year_params = [] + + for year in years: + all_args = [] + all_params = [] + for j,file in enumerate(key_sorted_data[year][u]): + all_args.append( file ) + all_params.append( 'input_%i_%i_%i'%(u,year,j) ) + cmd = "sort -m -t\| -k1 input_* > output_%i_%i " % (u, year) + full_year, = prune.task_add( returns=['output_%i_%i'%(u, year)], + env=prune.nil, cmd=cmd, + args=all_args, params=all_params ) + + year_blocks[ u ][ year ] = full_year + + # #print cmd + # #print all_params + + # year_args.append( full_year ) + # year_params.append( 'input_%i_%i'%(u,year) ) + + # cmd = "sort -m -t\| -k1 -nk3 input_* > output_%i " % (u) + # all_key, = prune.task_add( returns=['output_%i'%(u)], + # env=prune.nil, cmd=cmd, + # args=year_args, params=year_params ) + + # blocks.append( all_key ) + # #print cmd + # #print year_params + + # #prune.file_dump( all_key, 'all_key_sample_%i.txt'%u ) + +###### Execute the workflow ###### +# prune.execute( worker_type='local', cores=8 ) +prune.execute( worker_type='work_queue', name='prune_census_example' ) + +prune.export( year_blocks[ 0 ][ 3000 ], 'year_blocks.%i.%i.txt'%(0,3000) ) + + + + + +############################## +########## STAGE 5 ########## +############################## + +blocks = [] + +print 'Stage 5' + +for u in range(0,concurrency): + blocks.append( {} ) + for y1 in range(0,len(years)): + year1 = years[y1] + for y2 in range(y1+1,len(years)): + year2 = years[y2] + ykey = year1+year2 + + cmd = "sort -m -t\| -k1 -nk3 input_* > output_%i " % (u) + all_key, = prune.task_add( returns=['output_%i'%(u)], + env=prune.nil, cmd=cmd, + args=[ year_blocks[u][year1], year_blocks[u][year2] ], params=['input_%i_%i'%(u,year1),'input_%i_%i'%(u,year2)] ) + + # cmd = "sort -m -t\| -k1 -nk3 input_* > output_%i_%i" % (u,ykey) + # all_key, = prune.task_add( returns=['output_%i_%i'%(u,ykey)], + # env=prune.nil, cmd=cmd, + # args=[ year_blocks[u][year1], year_blocks[u][year2] ], params=['input_%i_%i'%(u,year1),'input_%i_%i'%(u,year2)] ) + + blocks[u][ykey] = all_key + + print 'blocks[%i][%i] = %s' % (u, ykey, all_key) + + + +###### Execute the workflow ###### +# prune.execute( worker_type='local', cores=8 ) +prune.execute( worker_type='work_queue', name='prune_census_example' ) + +prune.export( blocks[ 0 ][ 6010 ], 'blocks.0.6010.txt' ) + + + + + +############################## +########## STAGE 6 ########## +############################## + +grouped_blocks = [] + +print 'Stage 6' + +dups = prune.file_add( 'dups' ) +for u in range(0,concurrency): + grouped_blocks.append( {} ) + for y1 in range(0,len(years)): + year1 = years[y1] + for y2 in range(y1+1,len(years)): + year2 = years[y2] + ykey = year1+year2 + + cmd = "python dups < input_%i_%i > output_%i_%i" % (u,ykey, u,ykey) + block_grouped, = prune.task_add( returns=['output_%i_%i'%(u,ykey)], + env=prune.nil, cmd=cmd, + args=[dups,blocks[u][ykey]], params=['dups','input_%i_%i'%(u,ykey)] ) + + grouped_blocks[u][ykey] = block_grouped + + print 'grouped_blocks[%i][%i] = %s' % (u, ykey, block_grouped) + + +###### Execute the workflow ###### +# prune.execute( worker_type='local', cores=8 ) +prune.execute( worker_type='work_queue', name='prune_census_example' ) + +prune.export( grouped_blocks[ 1 ][ 6010 ], 'grouped_blocks.1.6010.txt' ) + + + + + +############################## +########## STAGE 7 ########## +############################## + +matched_blocks = [] +final_ids = [] +print 'Stage 7' + +matches = prune.file_add( 'matches' ) +for u in range(0,concurrency): + matched_blocks.append( {} ) + for y1 in range(0,len(years)): + year1 = years[y1] + for y2 in range(y1+1,len(years)): + year2 = years[y2] + ykey = year1+year2 + + cmd = "python matches < input_%i_%i > output_%i_%i" % (u,ykey, u,ykey) + block_matches, = prune.task_add( returns=['output_%i_%i'%(u,ykey)], + env=prune.nil, cmd=cmd, + args=[matches,grouped_blocks[u][ykey]], params=['matches','input_%i_%i'%(u,ykey)] ) + + final_ids.append( block_matches ) + +print 'final_ids = %s' % (final_ids) + + +###### Execute the workflow ###### +# prune.execute( worker_type='local', cores=8 ) +prune.execute( worker_type='work_queue', name='prune_census_example' ) + +###### Save output data to local directory ###### +prune.export( final_ids[1], 'final_ids.1.txt' ) + diff -Nru cctools-7.0.22/doc/manuals/prune/examples/census/simulated_data/3000.1.txt cctools-7.1.2/doc/manuals/prune/examples/census/simulated_data/3000.1.txt --- cctools-7.0.22/doc/manuals/prune/examples/census/simulated_data/3000.1.txt 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/census/simulated_data/3000.1.txt 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,6244 @@ +3000|TX|Hockley County|Anton city|1|0|1|Gray|Wilber Lupe|2974|South Carolina|M|Head|||26|1 +3000|TX|Hockley County|Anton city|1|0|2|Gray|Melia|2972|Delaware|F|Spouse|||28|2 +3000|TX|Hockley County|Anton city|1|0|3|Gray|Daryl|2994|Iowa|M|Son|||6|3 +3000|TX|Hockley County|Anton city|1|0|4|Gray|Myron|2996|Montana|M|Son|||4|4 + +3000|MI|Muskegon County|Montague city|2|0|1|Steinour|Markus|2978|Alabama|M|Head|||22|5 +3000|MI|Muskegon County|Montague city|2|0|2|Steinour|Natashia|2977|Maryland|F|Spouse|||23|6 +3000|MI|Muskegon County|Montague city|2|0|3|Steinour|Kimberlie|2997|Hawaii|F|Daughter|||3|7 +3000|MI|Muskegon County|Montague city|2|0|4|Steinour|Scott|2999|Idaho|F|Daughter|||1|8 + +3000|WI|Grant County|Watterstown town|3|0|1|Palaia|Alden Joe|2956|New York|M|Head|||44|9 +3000|WI|Grant County|Watterstown town|3|0|2|Palaia|Marnie|2973|Wisconsin|F|Spouse|||27|10 +3000|WI|Grant County|Watterstown town|3|0|3|Palaia|Anisa|2995|Louisiana|F|Daughter|||5|11 + +3000|NJ|Ocean County|Seaside Park borough|4|0|1|Rebeck|Pauline|2950|Iowa|F|Head|||50|12 +3000|NJ|Ocean County|Seaside Park borough|4|0|2|Rebeck|Ryan|2976|Ohio|M|Son|||24|13 +3000|NJ|Ocean County|Seaside Park borough|4|0|3|Rebeck|Vernell|2978|Libyan Arab Jamahiriya|F|Daughter|||22|14 +3000|NJ|Ocean County|Seaside Park borough|4|0|4|Rebeck|Zaida|2986|Arkansas|F|Daughter|||14|15 +3000|NJ|Ocean County|Seaside Park borough|4|0|5|Rebeck|Stephen|2992|Wisconsin|M|Son|||8|16 +3000|NJ|Ocean County|Seaside Park borough|4|0|6|Rebeck|Nathanial|2994|Idaho|M|Son|||6|17 +3000|NJ|Ocean County|Seaside Park borough|4|0|7|Rebeck|Mao Darline|2998|Massachusetts|F|Daughter|||2|18 + +3000|MA|Middlesex County|Maynard town|5|0|1|Ficher|Kasi|2971|Montana|F|Head|||29|19 +3000|MA|Middlesex County|Maynard town|5|0|2|Ficher|Sanjuanita|2991|Oregon|F|Daughter|||9|20 +3000|MA|Middlesex County|Maynard town|5|0|3|Ficher|Versie John|2995|Montana|F|Daughter|||5|21 +3000|MA|Middlesex County|Maynard town|5|0|4|Ficher|Eloise|2997|Thailand|F|Daughter|||3|22 + +3000|KY|Crittenden County|Crayne CDP|6|0|1|Huey|Ron Blake|2942|South Georgia And The South Sandwich Islands|M|Head|||58|23 +3000|KY|Crittenden County|Crayne CDP|6|0|2|Huey|Delilah Ingeborg|2966|Croatia|F|Spouse|||34|24 +3000|KY|Crittenden County|Crayne CDP|6|0|3|Huey|Caterina|2986|New Mexico|F|Daughter|||14|25 +3000|KY|Crittenden County|Crayne CDP|6|0|4|Huey|Elizabet|2990|Minnesota|F|Daughter|||10|26 +3000|KY|Crittenden County|Crayne CDP|6|0|5|Huey|Isabella|2994|Israel|F|Daughter|||6|27 +3000|KY|Crittenden County|Crayne CDP|6|0|6|Huey|Joe|2996|Delaware|M|Son|||4|28 + +3000|MS|Pearl River County|Picayune city|7|0|1|Chester|Santo Dennis|2938|Florida|M|Head|||62|29 +3000|MS|Pearl River County|Picayune city|7|0|2|Chester|Nikia Danelle|2944|Colorado|F|Spouse|||56|30 +3000|MS|Pearl River County|Picayune city|7|0|3|Chester|Shavon|2970|Tennessee|F|Daughter|||30|31 +3000|MS|Pearl River County|Picayune city|7|0|4|Chester|Theron Carroll|2980|Pennsylvania|M|Son|||20|32 +3000|MS|Pearl River County|Picayune city|7|0|5|Chester|Devon|2986|Pennsylvania|M|Son|||14|33 +3000|MS|Pearl River County|Picayune city|7|0|6|Chester|Alejandro|2988|New Jersey|M|Son|||12|34 +3000|MS|Pearl River County|Picayune city|7|0|7|Chester|Charlie|2992|Grenada|F|Daughter|||8|35 +3000|MS|Pearl River County|Picayune city|7|0|8|Chester|Wilson|2994|Arizona|M|Son|||6|36 +3000|MS|Pearl River County|Picayune city|7|0|9|Chester|Clarinda|2998|Dominican Republic|F|Daughter|||2|37 +3000|MS|Pearl River County|Picayune city|7|0|10|Chester|Rosendo|3000|Arkansas|M|Son|||0|38 + +3000|MA|Plymouth County|Hingham CDP|8|0|1|Debaecke|Augusta|2972|Maryland|F|Head|||28|39 +3000|MA|Plymouth County|Hingham CDP|8|0|2|Debaecke|Ike|2992|Alabama|M|Son|||8|40 +3000|MA|Plymouth County|Hingham CDP|8|0|3|Debaecke|Cortez|2994|Missouri|M|Son|||6|41 +3000|MA|Plymouth County|Hingham CDP|8|0|4|Debaecke|Brittaney Maude|2998|Maryland|F|Daughter|||2|42 +3000|MA|Plymouth County|Hingham CDP|8|0|5|Debaecke|Jerold|3000|South Carolina|M|Son|||0|43 + +3000|AR|Pulaski County|College Station CDP|9|0|1|Gamache|Ilona|2970|Utah|F|Head|||30|44 +3000|AR|Pulaski County|College Station CDP|9|0|2|Gamache|Elvina|2994|Pennsylvania|F|Daughter|||6|45 +3000|AR|Pulaski County|College Station CDP|9|0|3|Gamache|Madlyn|2996|Ohio|F|Daughter|||4|46 +3000|AR|Pulaski County|College Station CDP|9|0|4|Gamache|Vance|3000|Delaware|M|Son|||0|47 + +3000|TX|El Paso County|Homestead Meadows South CDP|10|0|1|Hughes|Sid Harvey|2938|Reunion|M|Head|||62|48 +3000|TX|El Paso County|Homestead Meadows South CDP|10|0|2|Hughes|Tammi|2937|Missouri|F|Spouse|||63|49 +3000|TX|El Paso County|Homestead Meadows South CDP|10|0|3|Hughes|Jordon|2959|Vermont|M|Son|||41|50 +3000|TX|El Paso County|Homestead Meadows South CDP|10|0|4|Hughes|Dick Michel|2961|Washington|M|Son|||39|51 +3000|TX|El Paso County|Homestead Meadows South CDP|10|0|5|Hughes|Roxy|2963|Georgia|F|Daughter|||37|52 +3000|TX|El Paso County|Homestead Meadows South CDP|10|0|6|Hughes|Angle|2985|Nebraska|F|Daughter|||15|53 +3000|TX|El Paso County|Homestead Meadows South CDP|10|0|7|Hughes|Mariano|2987|New Jersey|M|Son|||13|54 +3000|TX|El Paso County|Homestead Meadows South CDP|10|0|8|Hughes|Robt|2991|Arizona|M|Son|||9|55 +3000|TX|El Paso County|Homestead Meadows South CDP|10|0|9|Hughes|Nelson|2999|Alaska|M|Son|||1|56 + +3000|WI|Wood County|Hansen town|11|0|1|Reed|Esteban Duane|2968|New Jersey|M|Head|||32|57 +3000|WI|Wood County|Hansen town|11|0|2|Reed|Faith|2972|Sudan|F|Spouse|||28|58 +3000|WI|Wood County|Hansen town|11|0|3|Reed|Marry|2992|Lesotho|F|Daughter|||8|59 +3000|WI|Wood County|Hansen town|11|0|4|Reed|Irving|2994|Arizona|M|Son|||6|60 +3000|WI|Wood County|Hansen town|11|0|5|Reed|Douglas|2996|New Jersey|M|Son|||4|61 +3000|WI|Wood County|Hansen town|11|0|6|Reed|Carmina Ellyn|2998|Wisconsin|F|Daughter|||2|62 +3000|WI|Wood County|Hansen town|11|0|7|Reed|Erick Laverne|3000|Nebraska|M|Son|||0|63 + +3000|MI|Shiawassee County|Laingsburg city|12|0|1|Zarn|Sheree|2963|Virgin Islands, British|F|Head|||37|64 +3000|MI|Shiawassee County|Laingsburg city|12|0|2|Zarn|Lenny|2985|Aruba|M|Son|||15|65 +3000|MI|Shiawassee County|Laingsburg city|12|0|3|Zarn|Iliana|2987|Arizona|F|Daughter|||13|66 +3000|MI|Shiawassee County|Laingsburg city|12|0|4|Zarn|Rachal|2989|Tennessee|F|Daughter|||11|67 +3000|MI|Shiawassee County|Laingsburg city|12|0|5|Zarn|Kaitlin|2991|Maine|F|Daughter|||9|68 +3000|MI|Shiawassee County|Laingsburg city|12|0|6|Zarn|Maryellen|2999|Louisiana|F|Daughter|||1|69 + +3000|TX|Hale County|Plainview city|13|0|1|Chatfield|Scottie Werner|2959|Michigan|M|Head|||41|70 +3000|TX|Hale County|Plainview city|13|0|2|Chatfield|Merrill Alan|2986|New Mexico|M|Son|||14|71 +3000|TX|Hale County|Plainview city|13|0|3|Chatfield|Elliot|2990|Mexico|M|Son|||10|72 +3000|TX|Hale County|Plainview city|13|0|4|Chatfield|Albertina|2992|Washington|F|Daughter|||8|73 + +3000|IA|Monona County|Onawa city|14|0|1|Rodenberger|Elisha Shelton|2947|Maryland|M|Head|||53|74 +3000|IA|Monona County|Onawa city|14|0|2|Rodenberger|King|2989|Rhode Island|M|Son|||11|75 +3000|IA|Monona County|Onawa city|14|0|3|Rodenberger|Odessa|2993|Ethiopia|F|Daughter|||7|76 +3000|IA|Monona County|Onawa city|14|0|4|Rodenberger|Jacquline Emilia|2995|Minnesota|F|Daughter|||5|77 +3000|IA|Monona County|Onawa city|14|0|5|Rodenberger|Alyse|2997|North Carolina|F|Daughter|||3|78 + +3000|IL|Cook County|Chicago Heights city|15|0|1|Camper|Reginald|2938|Nevada|M|Head|||62|79 +3000|IL|Cook County|Chicago Heights city|15|0|2|Camper|Ellan|2959|Louisiana|F|Spouse|||41|80 +3000|IL|Cook County|Chicago Heights city|15|0|3|Camper|Nathaniel|2981|Mississippi|M|Son|||19|81 +3000|IL|Cook County|Chicago Heights city|15|0|4|Camper|Kristina|2987|British Indian Ocean Territory|F|Daughter|||13|82 +3000|IL|Cook County|Chicago Heights city|15|0|5|Camper|Tosha|2991|New Mexico|F|Daughter|||9|83 +3000|IL|Cook County|Chicago Heights city|15|0|6|Camper|David|2995|Uruguay|F|Daughter|||5|84 +3000|IL|Cook County|Chicago Heights city|15|0|7|Camper|Jonas|2997|Idaho|M|Son|||3|85 + +3000|NY|Chautauqua County|Brocton village|16|0|1|Mas|Denver Jackson|2948|Nevada|M|Head|||52|86 +3000|NY|Chautauqua County|Brocton village|16|0|2|Mas|Ja|2953|Utah|F|Spouse|||47|87 +3000|NY|Chautauqua County|Brocton village|16|0|3|Mas|Young|2977|Missouri|M|Son|||23|88 +3000|NY|Chautauqua County|Brocton village|16|0|4|Mas|Jae|2979|Ukraine|M|Son|||21|89 +3000|NY|Chautauqua County|Brocton village|16|0|5|Mas|Jenni|2981|New York|F|Daughter|||19|90 +3000|NY|Chautauqua County|Brocton village|16|0|6|Mas|Joella Mirtha|2983|Guinea-bissau|F|Daughter|||17|91 +3000|NY|Chautauqua County|Brocton village|16|0|7|Mas|Terrance|2985|Missouri|M|Son|||15|92 +3000|NY|Chautauqua County|Brocton village|16|0|8|Mas|Robert|2993|Wyoming|M|Son|||7|93 +3000|NY|Chautauqua County|Brocton village|16|0|9|Mas|Anthony|2995|Virginia|M|Son|||5|94 +3000|NY|Chautauqua County|Brocton village|16|0|10|Mas|Rudolph|2997|Georgia|M|Son|||3|95 + +3000|PA|Huntingdon County|Allenport CDP|17|0|1|Seitz|Minh Gail|2971|Ohio|M|Head|||29|96 +3000|PA|Huntingdon County|Allenport CDP|17|0|2|Seitz|Julienne|2983|South Dakota|F|Spouse|||17|97 + +3000|PA|York County|Railroad borough|18|0|1|Soule|Bennett Vince|2947|Rhode Island|M|Head|||53|98 +3000|PA|York County|Railroad borough|18|0|2|Soule|Brenda|2985|Maryland|F|Daughter|||15|99 +3000|PA|York County|Railroad borough|18|0|3|Soule|Jeremy Eldon|2987|Colorado|M|Son|||13|100 +3000|PA|York County|Railroad borough|18|0|4|Soule|Shila|2993|Nebraska|F|Daughter|||7|101 +3000|PA|York County|Railroad borough|18|0|5|Soule|Derek|2995|Pennsylvania|M|Son|||5|102 +3000|PA|York County|Railroad borough|18|0|6|Soule|Christian Marquis|2997|Montana|M|Son|||3|103 +3000|PA|York County|Railroad borough|18|0|7|Soule|Glennis|2999|Indiana|F|Daughter|||1|104 + +3000|AK|Matanuska-Susitna Borough|Houston city|19|0|1|Schop|Rene Colby|2981|Washington|M|Head|||19|105 +3000|AK|Matanuska-Susitna Borough|Houston city|19|0|2|Schop|Holly|2981|Pennsylvania|F|Spouse|||19|106 + +3000|PA|Fayette County|Springhill township|20|0|1|Niese|Len|2961|Mississippi|M|Head|||39|107 +3000|PA|Fayette County|Springhill township|20|0|2|Niese|Keira|2980|Arizona|F|Spouse|||20|108 +3000|PA|Fayette County|Springhill township|20|0|3|Niese|Chia|3000|New York|F|Daughter|||0|109 + +3000|NJ|Hudson County|Guttenberg town|21|0|1|Dejarnett|Nanci|2976|Kosovo|F|Head|||24|110 +3000|NJ|Hudson County|Guttenberg town|21|0|2|Dejarnett|Jeffery|2996|Maine|M|Son|||4|111 +3000|NJ|Hudson County|Guttenberg town|21|0|3|Dejarnett|Newton|3000|Congo|M|Son|||0|112 + +3000|KY|Perry County|Hazard city|22|0|1|Mejia|Nick Orval|2955|Finland|M|Head|||45|113 +3000|KY|Perry County|Hazard city|22|0|2|Mejia|Roselee|2970|Serbia|F|Spouse|||30|114 +3000|KY|Perry County|Hazard city|22|0|3|Mejia|Lacie Evelia|2990|Kentucky|F|Daughter|||10|115 +3000|KY|Perry County|Hazard city|22|0|4|Mejia|Jose|2992|Idaho|M|Son|||8|116 +3000|KY|Perry County|Hazard city|22|0|5|Mejia|Louann Tobie|2994|Delaware|F|Daughter|||6|117 +3000|KY|Perry County|Hazard city|22|0|6|Mejia|Rhett|2996|Georgia|M|Son|||4|118 + +3000|AK|Fairbanks North Star Borough|Fairbanks city|23|0|1|Cammack|Alton Vito|2942|New Mexico|M|Head|||58|119 +3000|AK|Fairbanks North Star Borough|Fairbanks city|23|0|2|Cammack|Chong|2989|North Dakota|M|Son|||11|120 +3000|AK|Fairbanks North Star Borough|Fairbanks city|23|0|3|Cammack|Angila|2997|Texas|F|Daughter|||3|121 +3000|AK|Fairbanks North Star Borough|Fairbanks city|23|0|4|Cammack|Sebastian|2999|North Dakota|M|Son|||1|122 + +3000|PA|Schuylkill County|Washington township|24|0|1|Wardinsky|Ismael Rolf|2971|Arkansas|M|Head|||29|123 +3000|PA|Schuylkill County|Washington township|24|0|2|Wardinsky|Shayne|2984|South Carolina|F|Spouse|||16|124 + +3000|TX|Milam County|Buckholts town|25|0|1|Bario|Milford Dion|2965|South Carolina|M|Head|||35|125 +3000|TX|Milam County|Buckholts town|25|0|2|Bario|Sheryll Kam|2984|Arkansas|F|Spouse|||16|126 + +3000|MN|Olmsted County|Eyota city|26|0|1|Dunphe|Brock Leslie|2941|Alaska|M|Head|||59|127 +3000|MN|Olmsted County|Eyota city|26|0|2|Dunphe|Ignacia|2950|Connecticut|F|Spouse|||50|128 +3000|MN|Olmsted County|Eyota city|26|0|3|Dunphe|Jerrod|2978|Oregon|M|Son|||22|129 +3000|MN|Olmsted County|Eyota city|26|0|4|Dunphe|Terry|2990|Nebraska|M|Son|||10|130 +3000|MN|Olmsted County|Eyota city|26|0|5|Dunphe|Ocie|2994|Mexico|F|Daughter|||6|131 +3000|MN|Olmsted County|Eyota city|26|0|6|Dunphe|So|2996|South Dakota|F|Daughter|||4|132 +3000|MN|Olmsted County|Eyota city|26|0|7|Dunphe|Lanny|2998|New Jersey|M|Son|||2|133 +3000|MN|Olmsted County|Eyota city|26|0|8|Dunphe|Valencia|3000|Indiana|F|Daughter|||0|134 + +3000|WI|Clark County, Marathon County|Colby city|27|0|1|Desanty|Weldon Cedric|2960|North Carolina|M|Head|||40|135 +3000|WI|Clark County, Marathon County|Colby city|27|0|2|Desanty|Leslie|2959|Washington|F|Spouse|||41|136 +3000|WI|Clark County, Marathon County|Colby city|27|0|3|Desanty|Danny|2985|Nebraska|M|Son|||15|137 +3000|WI|Clark County, Marathon County|Colby city|27|0|4|Desanty|Tamika|2987|West Virginia|F|Daughter|||13|138 +3000|WI|Clark County, Marathon County|Colby city|27|0|5|Desanty|Kaylee|2989|Ohio|F|Daughter|||11|139 +3000|WI|Clark County, Marathon County|Colby city|27|0|6|Desanty|Arron Miquel|2991|Kansas|M|Son|||9|140 +3000|WI|Clark County, Marathon County|Colby city|27|0|7|Desanty|Darin Hilario|2993|Kentucky|M|Son|||7|141 +3000|WI|Clark County, Marathon County|Colby city|27|0|8|Desanty|Freida|2995|Utah|F|Daughter|||5|142 +3000|WI|Clark County, Marathon County|Colby city|27|0|9|Desanty|Teodoro|2997|Taiwan, Province Of China|M|Son|||3|143 +3000|WI|Clark County, Marathon County|Colby city|27|0|10|Desanty|Hilton|2999|Nevada|M|Son|||1|144 + +3000|MN|Meeker County|Union Grove township|28|0|1|Chicca|Karl Jimmy|2937|Texas|M|Head|||63|145 +3000|MN|Meeker County|Union Grove township|28|0|2|Chicca|Curtis Louvenia|2940|Alabama|F|Spouse|||60|146 +3000|MN|Meeker County|Union Grove township|28|0|3|Chicca|Jackie|2962|Connecticut|M|Son|||38|147 +3000|MN|Meeker County|Union Grove township|28|0|4|Chicca|Shad|2966|Northern Mariana Islands|M|Son|||34|148 +3000|MN|Meeker County|Union Grove township|28|0|5|Chicca|Allene|2970|Virgin Islands, U.s.|F|Daughter|||30|149 +3000|MN|Meeker County|Union Grove township|28|0|6|Chicca|Dee|2976|Colorado|M|Son|||24|150 +3000|MN|Meeker County|Union Grove township|28|0|7|Chicca|Kaitlyn|2986|Indiana|F|Daughter|||14|151 +3000|MN|Meeker County|Union Grove township|28|0|8|Chicca|Dominic|2998|Kansas|M|Son|||2|152 + +3000|IA|Fremont County|Imogene city|29|0|1|Negron|Wilburn Denver|2950|Iowa|M|Head|||50|153 +3000|IA|Fremont County|Imogene city|29|0|2|Negron|Arie|2953|Indiana|F|Spouse|||47|154 +3000|IA|Fremont County|Imogene city|29|0|3|Negron|Burl|2987|South Dakota|M|Son|||13|155 +3000|IA|Fremont County|Imogene city|29|0|4|Negron|Aurora|2991|Louisiana|F|Daughter|||9|156 +3000|IA|Fremont County|Imogene city|29|0|5|Negron|Lorine Jessika|2993|Myanmar|F|Daughter|||7|157 +3000|IA|Fremont County|Imogene city|29|0|6|Negron|Mohammed|2995|Nebraska|M|Son|||5|158 +3000|IA|Fremont County|Imogene city|29|0|7|Negron|Alfonzo|2997|Ecuador|M|Son|||3|159 + +3000|NJ|Gloucester County|Turnersville CDP|30|0|1|Ingram|Octavio Will|2966|California|M|Head|||34|160 +3000|NJ|Gloucester County|Turnersville CDP|30|0|2|Ingram|Margarete|2978|South Dakota|F|Spouse|||22|161 +3000|NJ|Gloucester County|Turnersville CDP|30|0|3|Ingram|Harlan|3000|Florida|M|Son|||0|162 + +3000|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|1|Himmelright|Jasper Felix|2943|New Jersey|M|Head|||57|163 +3000|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|2|Himmelright|Sammy|2947|Belarus|F|Spouse|||53|164 +3000|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|3|Himmelright|Galen|2967|South Dakota|M|Son|||33|165 +3000|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|4|Himmelright|Rueben|2975|East Timor|M|Son|||25|166 +3000|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|5|Himmelright|Reuben Terence|2989|Netherlands|M|Son|||11|167 +3000|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|6|Himmelright|Nidia|2997|Florida|F|Daughter|||3|168 +3000|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|7|Himmelright|Rufina|2999|Massachusetts|F|Daughter|||1|169 + +3000|NH|Coos County|Gorham CDP|32|0|1|Featherston|Emilio Courtney|2965|Rhode Island|M|Head|||35|170 +3000|NH|Coos County|Gorham CDP|32|0|2|Featherston|Jesusa|2969|Netherlands Antilles|F|Spouse|||31|171 +3000|NH|Coos County|Gorham CDP|32|0|3|Featherston|Terry|2989|Missouri|M|Son|||11|172 +3000|NH|Coos County|Gorham CDP|32|0|4|Featherston|Alba|2991|Idaho|F|Daughter|||9|173 +3000|NH|Coos County|Gorham CDP|32|0|5|Featherston|Erlene|2993|Pennsylvania|F|Daughter|||7|174 + +3000|CA|Marin County|Larkspur city|33|0|1|Brallier|Lindsay Mervin|2967|New Jersey|M|Head|||33|175 +3000|CA|Marin County|Larkspur city|33|0|2|Brallier|Cody|2972|Georgia|F|Spouse|||28|176 +3000|CA|Marin County|Larkspur city|33|0|3|Brallier|Desmond|2994|Alaska|M|Son|||6|177 +3000|CA|Marin County|Larkspur city|33|0|4|Brallier|Millard Roland|2996|South Georgia And The South Sandwich Islands|M|Son|||4|178 +3000|CA|Marin County|Larkspur city|33|0|5|Brallier|Leatrice Monika|3000|Iowa|F|Daughter|||0|179 + +3000|OH|Monroe County|Clarington village|34|0|1|Vickery|Chi Napoleon|2961|Montana|M|Head|||39|180 +3000|OH|Monroe County|Clarington village|34|0|2|Vickery|Kendall|2961|Texas|F|Spouse|||39|181 +3000|OH|Monroe County|Clarington village|34|0|3|Vickery|Velvet|2985|Massachusetts|F|Daughter|||15|182 +3000|OH|Monroe County|Clarington village|34|0|4|Vickery|Elbert|2989|Wyoming|M|Son|||11|183 +3000|OH|Monroe County|Clarington village|34|0|5|Vickery|Shelby|2997|Louisiana|M|Son|||3|184 + +3000|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|1|Moorhead|Thad|2944|Illinois|M|Head|||56|185 +3000|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|2|Moorhead|Vickey Janey|2941|Vermont|F|Spouse|||59|186 +3000|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|3|Moorhead|Werner|2961|Delaware|M|Son|||39|187 +3000|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|4|Moorhead|Bobbye|2967|Delaware|F|Daughter|||33|188 +3000|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|5|Moorhead|Theodora|2969|Montana|F|Daughter|||31|189 +3000|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|6|Moorhead|Marlin|2977|Massachusetts|M|Son|||23|190 +3000|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|7|Moorhead|Chanda|2987|Oklahoma|F|Daughter|||13|191 +3000|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|8|Moorhead|Kati|2997|Montana|F|Daughter|||3|192 +3000|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|9|Moorhead|Casey|2999|Nebraska|M|Son|||1|193 + +3000|NE|Dixon County|Martinsburg village|36|0|1|Thomas|Wes Rodrick|2938|Micronesia, Federated States Of|M|Head|||62|194 +3000|NE|Dixon County|Martinsburg village|36|0|2|Thomas|Monnie|2939|Virginia|F|Spouse|||61|195 +3000|NE|Dixon County|Martinsburg village|36|0|3|Thomas|Elnora|2959|Austria|F|Daughter|||41|196 +3000|NE|Dixon County|Martinsburg village|36|0|4|Thomas|Elden|2961|Georgia|M|Son|||39|197 +3000|NE|Dixon County|Martinsburg village|36|0|5|Thomas|Emil Luciano|2969|Virginia|M|Son|||31|198 +3000|NE|Dixon County|Martinsburg village|36|0|6|Thomas|Ronald|2975|California|M|Son|||25|199 +3000|NE|Dixon County|Martinsburg village|36|0|7|Thomas|Lashandra|2981|North Dakota|F|Daughter|||19|200 +3000|NE|Dixon County|Martinsburg village|36|0|8|Thomas|Jeanelle|2989|Pennsylvania|F|Daughter|||11|201 +3000|NE|Dixon County|Martinsburg village|36|0|9|Thomas|Jarvis|2993|Sierra Leone|M|Son|||7|202 +3000|NE|Dixon County|Martinsburg village|36|0|10|Thomas|Ailene|2995|Washington|F|Daughter|||5|203 + +3000|NY|Saratoga County|Ballston town|37|0|1|Felton|Leroy|2960|Wyoming|M|Head|||40|204 +3000|NY|Saratoga County|Ballston town|37|0|2|Felton|Noelia|2967|Tunisia|F|Spouse|||33|205 +3000|NY|Saratoga County|Ballston town|37|0|3|Felton|Lauren|2995|Nebraska|M|Son|||5|206 +3000|NY|Saratoga County|Ballston town|37|0|4|Felton|Curtis|2999|Maldives|M|Son|||1|207 + +3000|IL|Marion County|Alma village|38|0|1|Adank|Rusty Robin|2975|Colorado|M|Head|||25|208 +3000|IL|Marion County|Alma village|38|0|2|Adank|Daniele|2983|Indiana|F|Spouse|||17|209 + +3000|IL|Jackson County|De Soto village|39|0|1|Menietto|Loren|2976|Alabama|F|Head|||24|210 + +3000|MA|Plymouth County|Brockton city|40|0|1|Hernandez|Marilee|2944|California|F|Head|||56|211 +3000|MA|Plymouth County|Brockton city|40|0|2|Hernandez|Alva|2964|Massachusetts|M|Son|||36|212 +3000|MA|Plymouth County|Brockton city|40|0|3|Hernandez|Gus Kerry|2988|Cameroon|M|Son|||12|213 +3000|MA|Plymouth County|Brockton city|40|0|4|Hernandez|Lilliam Shea|2994|Maine|F|Daughter|||6|214 +3000|MA|Plymouth County|Brockton city|40|0|5|Hernandez|Nicolette|2996|Guam|F|Daughter|||4|215 + +3000|MN|Kittson County|Svea township|41|0|1|Hoppenstedt|Myron Leonardo|2950|Idaho|M|Head|||50|216 +3000|MN|Kittson County|Svea township|41|0|2|Hoppenstedt|Clementine|2994|French Guiana|F|Daughter|||6|217 +3000|MN|Kittson County|Svea township|41|0|3|Hoppenstedt|Flavia|2996|Oregon|F|Daughter|||4|218 +3000|MN|Kittson County|Svea township|41|0|4|Hoppenstedt|Thurman|3000|Florida|M|Son|||0|219 + +3000|IL|Cook County|Forest View village|42|0|1|Lysaght|Clement Rodger|2953|United States|M|Head|||47|220 +3000|IL|Cook County|Forest View village|42|0|2|Lysaght|Shantay|2952|Nevada|F|Spouse|||48|221 +3000|IL|Cook County|Forest View village|42|0|3|Lysaght|Tracey|2986|Ohio|M|Son|||14|222 +3000|IL|Cook County|Forest View village|42|0|4|Lysaght|Hong|2990|Norway|M|Son|||10|223 +3000|IL|Cook County|Forest View village|42|0|5|Lysaght|Ken|2992|Mississippi|M|Son|||8|224 +3000|IL|Cook County|Forest View village|42|0|6|Lysaght|Alexander Nathanial|2994|Maine|M|Son|||6|225 + +3000|WI|Waukesha County|Menomonee Falls village|43|0|1|Widger|Stefani|2975|Gibraltar|F|Head|||25|226 +3000|WI|Waukesha County|Menomonee Falls village|43|0|2|Widger|Elmira Ollie|2997|Nevada|F|Daughter|||3|227 + +3000|MN|Beltrami County|Sugar Bush township|44|0|1|Osborne|Brooks Jerald|2959|Maldives|M|Head|||41|228 +3000|MN|Beltrami County|Sugar Bush township|44|0|2|Osborne|Shawnee|2962|Iowa|F|Spouse|||38|229 +3000|MN|Beltrami County|Sugar Bush township|44|0|3|Osborne|Santa|2988|West Virginia|F|Daughter|||12|230 +3000|MN|Beltrami County|Sugar Bush township|44|0|4|Osborne|Joella|2990|Vermont|F|Daughter|||10|231 +3000|MN|Beltrami County|Sugar Bush township|44|0|5|Osborne|Broderick|2998|Washington|M|Son|||2|232 +3000|MN|Beltrami County|Sugar Bush township|44|0|6|Osborne|Dick Gil|3000|Virginia|M|Son|||0|233 + +3000|PA|Luzerne County|Hilldale CDP|45|0|1|Sison|Vernon|2943|Costa Rica|M|Head|||57|234 +3000|PA|Luzerne County|Hilldale CDP|45|0|2|Sison|Gwyn Allene|2949|Hawaii|F|Spouse|||51|235 +3000|PA|Luzerne County|Hilldale CDP|45|0|3|Sison|Stacy|2981|Wyoming|F|Daughter|||19|236 +3000|PA|Luzerne County|Hilldale CDP|45|0|4|Sison|Jannet|2985|Estonia|F|Daughter|||15|237 +3000|PA|Luzerne County|Hilldale CDP|45|0|5|Sison|Yuri|2987|Alaska|F|Daughter|||13|238 +3000|PA|Luzerne County|Hilldale CDP|45|0|6|Sison|Raymon|2989|Rhode Island|M|Son|||11|239 +3000|PA|Luzerne County|Hilldale CDP|45|0|7|Sison|Lenny|2995|Oregon|M|Son|||5|240 + +3000|IA|Dubuque County|Rickardsville city|46|0|1|Davison|Angel Lowell|2945|Nevada|M|Head|||55|241 +3000|IA|Dubuque County|Rickardsville city|46|0|2|Davison|Shera|2968|New York|F|Spouse|||32|242 +3000|IA|Dubuque County|Rickardsville city|46|0|3|Davison|Maxima Terresa|2988|Kentucky|F|Daughter|||12|243 +3000|IA|Dubuque County|Rickardsville city|46|0|4|Davison|Antwan|2990|Colorado|M|Son|||10|244 +3000|IA|Dubuque County|Rickardsville city|46|0|5|Davison|Anton|2996|Maine|M|Son|||4|245 +3000|IA|Dubuque County|Rickardsville city|46|0|6|Davison|Marilyn|2998|Rhode Island|F|Daughter|||2|246 +3000|IA|Dubuque County|Rickardsville city|46|0|7|Davison|Bev|3000|New Hampshire|F|Daughter|||0|247 + +3000|TX|Navarro County|Retreat town|47|0|1|Willia|Wade Mervin|2979|Rhode Island|M|Head|||21|248 +3000|TX|Navarro County|Retreat town|47|0|2|Willia|Maynard|2998|Washington|M|Son|||2|249 +3000|TX|Navarro County|Retreat town|47|0|3|Willia|Rosalinda|3000|Utah|F|Daughter|||0|250 + +3000|WV|Logan County|Bruno CDP|48|0|1|Bron|Kennith Shad|2981|Delaware|M|Head|||19|251 +3000|WV|Logan County|Bruno CDP|48|0|2|Bron|Will|2999|Minnesota|M|Son|||1|252 + +3000|NY|Cattaraugus County|Allegany town|49|0|1|Montrella|Brendan Nigel|2978|Massachusetts|M|Head|||22|253 + +3000|SD|Marshall County|Langford town|50|0|1|Wilson|Jarred|2946|Kosovo|M|Head|||54|254 +3000|SD|Marshall County|Langford town|50|0|2|Wilson|Brenna|2979|Estonia|F|Daughter|||21|255 +3000|SD|Marshall County|Langford town|50|0|3|Wilson|Chance|2987|Oregon|M|Son|||13|256 +3000|SD|Marshall County|Langford town|50|0|4|Wilson|Muoi|2989|Mississippi|F|Daughter|||11|257 +3000|SD|Marshall County|Langford town|50|0|5|Wilson|Ginger|2997|Mozambique|F|Daughter|||3|258 + +3000|OR|Polk County, Yamhill County|Grand Ronde CDP|51|0|1|Nestel|Taylor Major|2954|North Dakota|M|Head|||46|259 +3000|OR|Polk County, Yamhill County|Grand Ronde CDP|51|0|2|Nestel|Lilla|2965|North Carolina|F|Spouse|||35|260 +3000|OR|Polk County, Yamhill County|Grand Ronde CDP|51|0|3|Nestel|Heath|2985|Haiti|M|Son|||15|261 +3000|OR|Polk County, Yamhill County|Grand Ronde CDP|51|0|4|Nestel|Adriane|2987|San Marino|F|Daughter|||13|262 +3000|OR|Polk County, Yamhill County|Grand Ronde CDP|51|0|5|Nestel|Philip|2989|Vermont|M|Son|||11|263 +3000|OR|Polk County, Yamhill County|Grand Ronde CDP|51|0|6|Nestel|Marquerite|2993|Kentucky|F|Daughter|||7|264 + +3000|PA|Erie County|North East township|52|0|1|Renaud|Sylvester Jamaal|2947|Nevada|M|Head|||53|265 +3000|PA|Erie County|North East township|52|0|2|Renaud|Tandra|2976|Arizona|F|Daughter|||24|266 +3000|PA|Erie County|North East township|52|0|3|Renaud|Ward|2982|Louisiana|M|Son|||18|267 +3000|PA|Erie County|North East township|52|0|4|Renaud|Lavette|2986|Alaska|F|Daughter|||14|268 +3000|PA|Erie County|North East township|52|0|5|Renaud|Lyn|2990|Alabama|F|Daughter|||10|269 +3000|PA|Erie County|North East township|52|0|6|Renaud|Carter Titus|2994|Kansas|M|Son|||6|270 +3000|PA|Erie County|North East township|52|0|7|Renaud|Julian|2998|Maryland|M|Son|||2|271 +3000|PA|Erie County|North East township|52|0|8|Renaud|Darrell|3000|Kentucky|M|Son|||0|272 + +3000|VA|Washington County|Glade Spring town|53|0|1|Michael|Steven Wade|2947|Tennessee|M|Head|||53|273 +3000|VA|Washington County|Glade Spring town|53|0|2|Michael|Glinda|2971|California|F|Daughter|||29|274 +3000|VA|Washington County|Glade Spring town|53|0|3|Michael|Emmitt|2977|Oklahoma|M|Son|||23|275 +3000|VA|Washington County|Glade Spring town|53|0|4|Michael|Ava|2979|West Virginia|F|Daughter|||21|276 +3000|VA|Washington County|Glade Spring town|53|0|5|Michael|Malisa|2985|Svalbard And Jan Mayen|F|Daughter|||15|277 +3000|VA|Washington County|Glade Spring town|53|0|6|Michael|Darwin|2987|Moldova, Republic Of|M|Son|||13|278 +3000|VA|Washington County|Glade Spring town|53|0|7|Michael|Ronni|2991|New Zealand|F|Daughter|||9|279 + +3000|TX|Travis County|Shady Hollow CDP|54|0|1|Fronek|Santiago Lazaro|2971|California|M|Head|||29|280 +3000|TX|Travis County|Shady Hollow CDP|54|0|2|Fronek|Collen|2969|West Virginia|F|Spouse|||31|281 +3000|TX|Travis County|Shady Hollow CDP|54|0|3|Fronek|Miquel|2991|Hawaii|M|Son|||9|282 +3000|TX|Travis County|Shady Hollow CDP|54|0|4|Fronek|Gino|2997|Nebraska|M|Son|||3|283 +3000|TX|Travis County|Shady Hollow CDP|54|0|5|Fronek|Carlos|2999|New Mexico|M|Son|||1|284 + +3000|MA|Barnstable County|South Yarmouth CDP|55|0|1|Siska|Antione Kennith|2966|Indiana|M|Head|||34|285 +3000|MA|Barnstable County|South Yarmouth CDP|55|0|2|Siska|Valerie Clotilde|2973|Vermont|F|Spouse|||27|286 +3000|MA|Barnstable County|South Yarmouth CDP|55|0|3|Siska|Jadwiga|2993|California|F|Daughter|||7|287 +3000|MA|Barnstable County|South Yarmouth CDP|55|0|4|Siska|Wai|2995|California|F|Daughter|||5|288 +3000|MA|Barnstable County|South Yarmouth CDP|55|0|5|Siska|Bronwyn|2997|Arizona|F|Daughter|||3|289 +3000|MA|Barnstable County|South Yarmouth CDP|55|0|6|Siska|Calvin Lamont|2999|Kentucky|M|Son|||1|290 + +3000|IA|Scott County|Long Grove city|56|0|1|Fernandes|Merissa|2976|North Dakota|F|Head|||24|291 + +3000|PA|Westmoreland County|Mount Pleasant borough|57|0|1|Coulibaly|Reynaldo Benedict|2957|Swaziland|M|Head|||43|292 +3000|PA|Westmoreland County|Mount Pleasant borough|57|0|2|Coulibaly|Cecile|2969|Indiana|F|Spouse|||31|293 +3000|PA|Westmoreland County|Mount Pleasant borough|57|0|3|Coulibaly|Rosalina|2989|Korea, Democratic People's Republic Of|F|Daughter|||11|294 +3000|PA|Westmoreland County|Mount Pleasant borough|57|0|4|Coulibaly|Renetta|2993|Georgia|F|Daughter|||7|295 +3000|PA|Westmoreland County|Mount Pleasant borough|57|0|5|Coulibaly|Meryl|2995|Oklahoma|F|Daughter|||5|296 +3000|PA|Westmoreland County|Mount Pleasant borough|57|0|6|Coulibaly|Mario|2997|Utah|M|Son|||3|297 +3000|PA|Westmoreland County|Mount Pleasant borough|57|0|7|Coulibaly|Bart|2999|Mississippi|M|Son|||1|298 + +3000|TX|Rains County, Wood County|Alba town|58|0|1|Worrell|Cole Norbert|2940|Florida|M|Head|||60|299 +3000|TX|Rains County, Wood County|Alba town|58|0|2|Worrell|Julian|2974|Iowa|M|Son|||26|300 +3000|TX|Rains County, Wood County|Alba town|58|0|3|Worrell|Lelah|2976|Montana|F|Daughter|||24|301 +3000|TX|Rains County, Wood County|Alba town|58|0|4|Worrell|Harlan|2992|Viet Nam|M|Son|||8|302 +3000|TX|Rains County, Wood County|Alba town|58|0|5|Worrell|Angelena Leana|2996|Pennsylvania|F|Daughter|||4|303 +3000|TX|Rains County, Wood County|Alba town|58|0|6|Worrell|Pedro|2998|Lebanon|M|Son|||2|304 + +3000|KS|Sedgwick County|Derby city|59|0|1|Wojtowicz|Benito Edmond|2967|Oregon|M|Head|||33|305 +3000|KS|Sedgwick County|Derby city|59|0|2|Wojtowicz|Cristal|2964|Nebraska|F|Spouse|||36|306 +3000|KS|Sedgwick County|Derby city|59|0|3|Wojtowicz|Clayton|2984|Louisiana|M|Son|||16|307 +3000|KS|Sedgwick County|Derby city|59|0|4|Wojtowicz|Wendolyn Ashly|2990|Massachusetts|F|Daughter|||10|308 +3000|KS|Sedgwick County|Derby city|59|0|5|Wojtowicz|Milton Rueben|2992|New Hampshire|M|Son|||8|309 +3000|KS|Sedgwick County|Derby city|59|0|6|Wojtowicz|Zachary|2994|Alaska|M|Son|||6|310 + +3000|WA|Grant County|Electric City city|60|0|1|Westerfeld|Xavier Will|2960|Mississippi|M|Head|||40|311 +3000|WA|Grant County|Electric City city|60|0|2|Westerfeld|Jonell Millie|2978|Oregon|F|Spouse|||22|312 +3000|WA|Grant County|Electric City city|60|0|3|Westerfeld|Berna|2998|Virginia|F|Daughter|||2|313 +3000|WA|Grant County|Electric City city|60|0|4|Westerfeld|Olen|3000|Lebanon|M|Son|||0|314 + +3000|WV|Mercer County|Oakvale town|61|0|1|Hohl|Mel Garry|2963|Minnesota|M|Head|||37|315 +3000|WV|Mercer County|Oakvale town|61|0|2|Hohl|Krissy|2973|Maine|F|Spouse|||27|316 +3000|WV|Mercer County|Oakvale town|61|0|3|Hohl|Brittny|2995|North Carolina|F|Daughter|||5|317 +3000|WV|Mercer County|Oakvale town|61|0|4|Hohl|Buddy|2997|Ohio|M|Son|||3|318 +3000|WV|Mercer County|Oakvale town|61|0|5|Hohl|Ivory|2999|Alaska|M|Son|||1|319 + +3000|PA|Mercer County|Farrell city|62|0|1|Walker|Mickey Anibal|2963|Greece|M|Head|||37|320 +3000|PA|Mercer County|Farrell city|62|0|2|Walker|Gemma|2977|North Dakota|F|Spouse|||23|321 +3000|PA|Mercer County|Farrell city|62|0|3|Walker|Douglass|2997|North Dakota|M|Son|||3|322 +3000|PA|Mercer County|Farrell city|62|0|4|Walker|Ashley Lashawna|2999|Minnesota|F|Daughter|||1|323 + +3000|NH|Grafton County|Enfield town|63|0|1|Loeppke|Blaine Giuseppe|2955|Saint Pierre And Miquelon|M|Head|||45|324 +3000|NH|Grafton County|Enfield town|63|0|2|Loeppke|Stephen|2991|West Virginia|F|Daughter|||9|325 +3000|NH|Grafton County|Enfield town|63|0|3|Loeppke|Doug|2993|Missouri|M|Son|||7|326 +3000|NH|Grafton County|Enfield town|63|0|4|Loeppke|Cameron|2995|Arizona|M|Son|||5|327 +3000|NH|Grafton County|Enfield town|63|0|5|Loeppke|Shawn|2999|Maine|M|Son|||1|328 + +3000|OH|Hamilton County|Pleasant Run Farm CDP|64|0|1|Damour|Leland Marion|2942|New Mexico|M|Head|||58|329 +3000|OH|Hamilton County|Pleasant Run Farm CDP|64|0|2|Damour|Buena|2943|Maine|F|Spouse|||57|330 +3000|OH|Hamilton County|Pleasant Run Farm CDP|64|0|3|Damour|Lacy|2967|Kansas|M|Son|||33|331 +3000|OH|Hamilton County|Pleasant Run Farm CDP|64|0|4|Damour|Krystle|2973|Delaware|F|Daughter|||27|332 +3000|OH|Hamilton County|Pleasant Run Farm CDP|64|0|5|Damour|Emilee|2977|West Virginia|F|Daughter|||23|333 +3000|OH|Hamilton County|Pleasant Run Farm CDP|64|0|6|Damour|Anita Gayla|2985|South Carolina|F|Daughter|||15|334 +3000|OH|Hamilton County|Pleasant Run Farm CDP|64|0|7|Damour|Lowell|2987|Maine|M|Son|||13|335 +3000|OH|Hamilton County|Pleasant Run Farm CDP|64|0|8|Damour|Tereasa|2993|Massachusetts|F|Daughter|||7|336 +3000|OH|Hamilton County|Pleasant Run Farm CDP|64|0|9|Damour|Harry|2995|Oklahoma|M|Son|||5|337 +3000|OH|Hamilton County|Pleasant Run Farm CDP|64|0|10|Damour|Hue|2999|Illinois|F|Daughter|||1|338 + +3000|MO|Sullivan County|Newtown town|65|0|1|Hinojosa|Donovan Normand|2954|Washington|M|Head|||46|339 +3000|MO|Sullivan County|Newtown town|65|0|2|Hinojosa|Kristie Ardell|2995|Poland|F|Daughter|||5|340 +3000|MO|Sullivan County|Newtown town|65|0|3|Hinojosa|Rico|2999|Portugal|M|Son|||1|341 + +3000|CT|Windham County|North Grosvenor Dale CDP|66|0|1|Scholes|Quincy Trent|2970|Italy|M|Head|||30|342 +3000|CT|Windham County|North Grosvenor Dale CDP|66|0|2|Scholes|Isis Margy|2972|Arkansas|F|Spouse|||28|343 +3000|CT|Windham County|North Grosvenor Dale CDP|66|0|3|Scholes|Juliet|2994|Estonia|F|Daughter|||6|344 +3000|CT|Windham County|North Grosvenor Dale CDP|66|0|4|Scholes|Bruno|3000|Texas|M|Son|||0|345 + +3000|FL|Collier County|Plantation Island CDP|67|0|1|Webb|Kelley Dean|2963|Connecticut|M|Head|||37|346 + +3000|SD|Lincoln County, Union County|Beresford city|68|0|1|Chilek|Normand Luigi|2960|New Hampshire|M|Head|||40|347 +3000|SD|Lincoln County, Union County|Beresford city|68|0|2|Chilek|Johanne|2966|Alaska|F|Spouse|||34|348 +3000|SD|Lincoln County, Union County|Beresford city|68|0|3|Chilek|Quincy|2988|Gibraltar|M|Son|||12|349 +3000|SD|Lincoln County, Union County|Beresford city|68|0|4|Chilek|Leandro|2990|Indiana|M|Son|||10|350 +3000|SD|Lincoln County, Union County|Beresford city|68|0|5|Chilek|January|2992|Pennsylvania|F|Daughter|||8|351 +3000|SD|Lincoln County, Union County|Beresford city|68|0|6|Chilek|Princess|2998|Australia|F|Daughter|||2|352 + +3000|FL|Sumter County|Coleman city|69|0|1|Dagis|Toney Edmond|2958|Washington|M|Head|||42|353 +3000|FL|Sumter County|Coleman city|69|0|2|Dagis|Li Beckie|2963|Lithuania|F|Spouse|||37|354 +3000|FL|Sumter County|Coleman city|69|0|3|Dagis|Joesph|2987|Colorado|M|Son|||13|355 +3000|FL|Sumter County|Coleman city|69|0|4|Dagis|Marcelo|2989|Oregon|M|Son|||11|356 +3000|FL|Sumter County|Coleman city|69|0|5|Dagis|Ellan|2991|Central African Republic|F|Daughter|||9|357 +3000|FL|Sumter County|Coleman city|69|0|6|Dagis|Elijah|2993|New Mexico|M|Son|||7|358 +3000|FL|Sumter County|Coleman city|69|0|7|Dagis|Delbert|2995|Oklahoma|M|Son|||5|359 +3000|FL|Sumter County|Coleman city|69|0|8|Dagis|Isiah|2999|North Dakota|M|Son|||1|360 + +3000|MA|Worcester County|Boylston town|70|0|1|Cappelluti|Darwin Merlin|2957|Maryland|M|Head|||43|361 +3000|MA|Worcester County|Boylston town|70|0|2|Cappelluti|Dong|2961|Turkey|F|Spouse|||39|362 +3000|MA|Worcester County|Boylston town|70|0|3|Cappelluti|Clifton|2991|Venezuela|M|Son|||9|363 +3000|MA|Worcester County|Boylston town|70|0|4|Cappelluti|Ivonne|2993|West Virginia|F|Daughter|||7|364 +3000|MA|Worcester County|Boylston town|70|0|5|Cappelluti|Alisha|2997|New York|F|Daughter|||3|365 + +3000|TX|Tarrant County|Kennedale city|71|0|1|Bosshart|Sheldon Brent|2952|Ohio|M|Head|||48|366 +3000|TX|Tarrant County|Kennedale city|71|0|2|Bosshart|Leta Elissa|2970|Connecticut|F|Spouse|||30|367 +3000|TX|Tarrant County|Kennedale city|71|0|3|Bosshart|Hilda|2990|Wisconsin|F|Daughter|||10|368 +3000|TX|Tarrant County|Kennedale city|71|0|4|Bosshart|Tod|2994|Arkansas|M|Son|||6|369 +3000|TX|Tarrant County|Kennedale city|71|0|5|Bosshart|Jone|2996|Washington|F|Daughter|||4|370 +3000|TX|Tarrant County|Kennedale city|71|0|6|Bosshart|Dong|2998|Colorado|M|Son|||2|371 +3000|TX|Tarrant County|Kennedale city|71|0|7|Bosshart|Quinton|3000|Louisiana|M|Son|||0|372 + +3000|NY|Lewis County|West Turin town|72|0|1|Mckeel|Zackary|2962|Nebraska|M|Head|||38|373 +3000|NY|Lewis County|West Turin town|72|0|2|Mckeel|Ellena|2973|Illinois|F|Spouse|||27|374 +3000|NY|Lewis County|West Turin town|72|0|3|Mckeel|Delena|2993|Kansas|F|Daughter|||7|375 + +3000|MN|Aitkin County|Nordland township|73|0|1|Deegan|Sammy Carey|2940|Qatar|M|Head|||60|376 +3000|MN|Aitkin County|Nordland township|73|0|2|Deegan|Carmon|2949|Maryland|F|Spouse|||51|377 +3000|MN|Aitkin County|Nordland township|73|0|3|Deegan|Hillary|2977|California|F|Daughter|||23|378 +3000|MN|Aitkin County|Nordland township|73|0|4|Deegan|Earnest|2979|Illinois|M|Son|||21|379 +3000|MN|Aitkin County|Nordland township|73|0|5|Deegan|Quintin|2981|Eritrea|M|Son|||19|380 +3000|MN|Aitkin County|Nordland township|73|0|6|Deegan|Teodoro|2987|Nebraska|M|Son|||13|381 +3000|MN|Aitkin County|Nordland township|73|0|7|Deegan|Marcel|2989|Central African Republic|M|Son|||11|382 +3000|MN|Aitkin County|Nordland township|73|0|8|Deegan|Pat Daren|2991|New Mexico|M|Son|||9|383 +3000|MN|Aitkin County|Nordland township|73|0|9|Deegan|Elfriede|2993|Mississippi|F|Daughter|||7|384 +3000|MN|Aitkin County|Nordland township|73|0|10|Deegan|Naoma Melia|2995|Missouri|F|Daughter|||5|385 +3000|MN|Aitkin County|Nordland township|73|0|11|Deegan|Blondell Darlena|2999|Georgia|F|Daughter|||1|386 + +3000|MI|Antrim County|Elk Rapids township|74|0|1|Fitzmier|Glenn Moises|2945|South Carolina|M|Head|||55|387 +3000|MI|Antrim County|Elk Rapids township|74|0|2|Fitzmier|Violet|2962|Delaware|F|Spouse|||38|388 +3000|MI|Antrim County|Elk Rapids township|74|0|3|Fitzmier|Debby|2986|Maryland|F|Daughter|||14|389 +3000|MI|Antrim County|Elk Rapids township|74|0|4|Fitzmier|Ona Magdalena|2988|New York|F|Daughter|||12|390 +3000|MI|Antrim County|Elk Rapids township|74|0|5|Fitzmier|Garland Randall|2996|Michigan|M|Son|||4|391 +3000|MI|Antrim County|Elk Rapids township|74|0|6|Fitzmier|Rodrigo Monte|2998|Colorado|M|Son|||2|392 + +3000|OK|Rogers County|Inola town|75|0|1|Burditt|Dennis Tuan|2963|Rhode Island|M|Head|||37|393 +3000|OK|Rogers County|Inola town|75|0|2|Burditt|Krysten|2976|Tajikistan|F|Spouse|||24|394 +3000|OK|Rogers County|Inola town|75|0|3|Burditt|Jeremiah|2996|Florida|M|Son|||4|395 +3000|OK|Rogers County|Inola town|75|0|4|Burditt|Marvin|2998|Mississippi|M|Son|||2|396 + +3000|MD|Cecil County|Chesapeake City town|76|0|1|Walker|Ira Basil|2971|Idaho|M|Head|||29|397 +3000|MD|Cecil County|Chesapeake City town|76|0|2|Walker|Regena|2978|California|F|Spouse|||22|398 +3000|MD|Cecil County|Chesapeake City town|76|0|3|Walker|Lavinia|2998|Hawaii|F|Daughter|||2|399 +3000|MD|Cecil County|Chesapeake City town|76|0|4|Walker|Candy|3000|Georgia|F|Daughter|||0|400 + +3000|TX|Bexar County|Hill Country Village city|77|0|1|Deckman|Alethia|2968|Nebraska|F|Head|||32|401 +3000|TX|Bexar County|Hill Country Village city|77|0|2|Deckman|Juan|2988|Arkansas|M|Son|||12|402 +3000|TX|Bexar County|Hill Country Village city|77|0|3|Deckman|Hoyt|2990|Arkansas|M|Son|||10|403 +3000|TX|Bexar County|Hill Country Village city|77|0|4|Deckman|Agripina|2992|Washington|F|Daughter|||8|404 +3000|TX|Bexar County|Hill Country Village city|77|0|5|Deckman|Pilar|2998|Cuba|F|Daughter|||2|405 +3000|TX|Bexar County|Hill Country Village city|77|0|6|Deckman|Augustus|3000|Massachusetts|M|Son|||0|406 + +3000|AZ|Cochise County|Palominas CDP|78|0|1|Stevens|Earle Paris|2958|Hawaii|M|Head|||42|407 +3000|AZ|Cochise County|Palominas CDP|78|0|2|Stevens|Luther|2991|Oregon|M|Son|||9|408 +3000|AZ|Cochise County|Palominas CDP|78|0|3|Stevens|Brock|2993|Hungary|M|Son|||7|409 +3000|AZ|Cochise County|Palominas CDP|78|0|4|Stevens|Hugo|2995|Ohio|M|Son|||5|410 + +3000|WV|Harrison County|Enterprise CDP|79|0|1|Balmaceda|Elmo Harry|2939|Marshall Islands|M|Head|||61|411 +3000|WV|Harrison County|Enterprise CDP|79|0|2|Balmaceda|Daphine|2953|North Carolina|F|Spouse|||47|412 +3000|WV|Harrison County|Enterprise CDP|79|0|3|Balmaceda|Sammie|2975|Hawaii|M|Son|||25|413 +3000|WV|Harrison County|Enterprise CDP|79|0|4|Balmaceda|Ted|2977|Florida|M|Son|||23|414 +3000|WV|Harrison County|Enterprise CDP|79|0|5|Balmaceda|Farrah|2985|Oregon|F|Daughter|||15|415 +3000|WV|Harrison County|Enterprise CDP|79|0|6|Balmaceda|Angel Ira|2993|Maine|M|Son|||7|416 + +3000|MN|Winona County|Stockton city|80|0|1|Follis|Abraham Rafael|2938|Connecticut|M|Head|||62|417 +3000|MN|Winona County|Stockton city|80|0|2|Follis|Sherwood|2978|Syrian Arab Republic|M|Son|||22|418 +3000|MN|Winona County|Stockton city|80|0|3|Follis|Annalisa|2982|Kentucky|F|Daughter|||18|419 +3000|MN|Winona County|Stockton city|80|0|4|Follis|Daria|2990|Texas|F|Daughter|||10|420 +3000|MN|Winona County|Stockton city|80|0|5|Follis|Rafael|2992|Illinois|M|Son|||8|421 +3000|MN|Winona County|Stockton city|80|0|6|Follis|Jc|2994|Minnesota|M|Son|||6|422 + +3000|AR|Crawford County|Mulberry city|81|0|1|Feagin|Lyman Dewayne|2964|Michigan|M|Head|||36|423 +3000|AR|Crawford County|Mulberry city|81|0|2|Feagin|Pura|2970|New Hampshire|F|Spouse|||30|424 +3000|AR|Crawford County|Mulberry city|81|0|3|Feagin|Valene|2992|Virginia|F|Daughter|||8|425 +3000|AR|Crawford County|Mulberry city|81|0|4|Feagin|Kanisha|2994|Kansas|F|Daughter|||6|426 +3000|AR|Crawford County|Mulberry city|81|0|5|Feagin|Micah|2996|Florida|M|Son|||4|427 + +3000|NY|Franklin County|Paul Smiths CDP|82|0|1|Anderson|Rubin Isidro|2970|Nigeria|M|Head|||30|428 +3000|NY|Franklin County|Paul Smiths CDP|82|0|2|Anderson|Lavada|2975|Canada|F|Spouse|||25|429 +3000|NY|Franklin County|Paul Smiths CDP|82|0|3|Anderson|Ona Leeanna|2995|Wyoming|F|Daughter|||5|430 +3000|NY|Franklin County|Paul Smiths CDP|82|0|4|Anderson|Alecia|2997|Mauritania|F|Daughter|||3|431 +3000|NY|Franklin County|Paul Smiths CDP|82|0|5|Anderson|Simona|2999|West Virginia|F|Daughter|||1|432 + +3000|WI|Iowa County|Hollandale village|83|0|1|Stiteler|Wendie|2978|Iowa|F|Head|||22|433 +3000|WI|Iowa County|Hollandale village|83|0|2|Stiteler|Hank|2998|Montana|M|Son|||2|434 + +3000|CA|Mono County|Sunny Slopes CDP|84|0|1|Pou|Cesar Davis|2941|Oregon|M|Head|||59|435 +3000|CA|Mono County|Sunny Slopes CDP|84|0|2|Pou|Erika|2964|Saint Pierre And Miquelon|F|Spouse|||36|436 +3000|CA|Mono County|Sunny Slopes CDP|84|0|3|Pou|Leandro|2988|Tajikistan|M|Son|||12|437 +3000|CA|Mono County|Sunny Slopes CDP|84|0|4|Pou|Evan|2990|Jordan|M|Son|||10|438 +3000|CA|Mono County|Sunny Slopes CDP|84|0|5|Pou|Aimee|2996|South Carolina|F|Daughter|||4|439 +3000|CA|Mono County|Sunny Slopes CDP|84|0|6|Pou|Adam|3000|Oregon|M|Son|||0|440 + +3000|MO|Jackson County|Grandview city|85|0|1|Staebell|Vinnie|2951|Hawaii|F|Head|||49|441 +3000|MO|Jackson County|Grandview city|85|0|2|Staebell|Derick|2971|Alaska|M|Son|||29|442 +3000|MO|Jackson County|Grandview city|85|0|3|Staebell|Audry|2985|Netherlands Antilles|F|Daughter|||15|443 +3000|MO|Jackson County|Grandview city|85|0|4|Staebell|Napoleon|2999|South Carolina|M|Son|||1|444 + +3000|ND|Rolette County|Shell Valley CDP|86|0|1|Meredith|Olin Britt|2937|Alabama|M|Head|||63|445 +3000|ND|Rolette County|Shell Valley CDP|86|0|2|Meredith|Alexis|2958|Indiana|F|Spouse|||42|446 +3000|ND|Rolette County|Shell Valley CDP|86|0|3|Meredith|Billy|2986|Louisiana|M|Son|||14|447 +3000|ND|Rolette County|Shell Valley CDP|86|0|4|Meredith|Carey|2988|Vermont|F|Daughter|||12|448 +3000|ND|Rolette County|Shell Valley CDP|86|0|5|Meredith|Bertram|2990|Washington|M|Son|||10|449 +3000|ND|Rolette County|Shell Valley CDP|86|0|6|Meredith|Andreas|2994|Utah|M|Son|||6|450 +3000|ND|Rolette County|Shell Valley CDP|86|0|7|Meredith|Nigel Trevor|2998|Uganda|M|Son|||2|451 +3000|ND|Rolette County|Shell Valley CDP|86|0|8|Meredith|Royce|3000|South Dakota|M|Son|||0|452 + +3000|NJ|Passaic County|Paterson city|87|0|1|Childers|Nigel Doyle|2950|Rhode Island|M|Head|||50|453 +3000|NJ|Passaic County|Paterson city|87|0|2|Childers|Clarine Regena|2954|Maine|F|Spouse|||46|454 +3000|NJ|Passaic County|Paterson city|87|0|3|Childers|Luther|2974|Arkansas|M|Son|||26|455 +3000|NJ|Passaic County|Paterson city|87|0|4|Childers|Reyes|2980|Nebraska|M|Son|||20|456 +3000|NJ|Passaic County|Paterson city|87|0|5|Childers|Hertha Danika|2982|Rhode Island|F|Daughter|||18|457 +3000|NJ|Passaic County|Paterson city|87|0|6|Childers|Margarita|2986|Tunisia|F|Daughter|||14|458 +3000|NJ|Passaic County|Paterson city|87|0|7|Childers|Zachary|2990|Rhode Island|M|Son|||10|459 +3000|NJ|Passaic County|Paterson city|87|0|8|Childers|Katie|2998|Georgia|F|Daughter|||2|460 + +3000|CO|Grand County|Parshall CDP|88|0|1|Leinen|Darleen|2981|Delaware|F|Head|||19|461 + +3000|NM|Sandoval County|Jemez Pueblo CDP|89|0|1|Kim|Shawn Branden|2964|Arizona|M|Head|||36|462 +3000|NM|Sandoval County|Jemez Pueblo CDP|89|0|2|Kim|Shara|2984|Alaska|F|Spouse|||16|463 + +3000|WI|Jefferson County|Jefferson city|90|0|1|Weber|Jo|2954|Kuwait|F|Head|||46|464 +3000|WI|Jefferson County|Jefferson city|90|0|2|Weber|Shan|2982|Kansas|F|Daughter|||18|465 +3000|WI|Jefferson County|Jefferson city|90|0|3|Weber|Stan|2984|Washington|M|Son|||16|466 +3000|WI|Jefferson County|Jefferson city|90|0|4|Weber|Keven|2986|Wisconsin|M|Son|||14|467 +3000|WI|Jefferson County|Jefferson city|90|0|5|Weber|Dorla|2988|New York|F|Daughter|||12|468 +3000|WI|Jefferson County|Jefferson city|90|0|6|Weber|Helen|2994|Georgia|F|Daughter|||6|469 +3000|WI|Jefferson County|Jefferson city|90|0|7|Weber|Horacio|2998|North Dakota|M|Son|||2|470 +3000|WI|Jefferson County|Jefferson city|90|0|8|Weber|Charla|3000|Arkansas|F|Daughter|||0|471 + +3000|KS|Franklin County|Wellsville city|91|0|1|Difranco|Pierre Monte|2943|Kansas|M|Head|||57|472 +3000|KS|Franklin County|Wellsville city|91|0|2|Difranco|Fran|2958|Georgia|F|Spouse|||42|473 +3000|KS|Franklin County|Wellsville city|91|0|3|Difranco|Treasa|2988|Arkansas|F|Daughter|||12|474 +3000|KS|Franklin County|Wellsville city|91|0|4|Difranco|Lynsey|2990|Michigan|F|Daughter|||10|475 +3000|KS|Franklin County|Wellsville city|91|0|5|Difranco|Nigel|2994|New Mexico|M|Son|||6|476 +3000|KS|Franklin County|Wellsville city|91|0|6|Difranco|Joana|3000|Louisiana|F|Daughter|||0|477 + +3000|PA|Allegheny County|Sharpsburg borough|92|0|1|Russell|Teri|2955|Missouri|F|Head|||45|478 +3000|PA|Allegheny County|Sharpsburg borough|92|0|2|Russell|Kimberlee Andre|2975|West Virginia|F|Daughter|||25|479 +3000|PA|Allegheny County|Sharpsburg borough|92|0|3|Russell|Yolande|2985|Delaware|F|Daughter|||15|480 +3000|PA|Allegheny County|Sharpsburg borough|92|0|4|Russell|Mica Lorette|2991|Rhode Island|F|Daughter|||9|481 +3000|PA|Allegheny County|Sharpsburg borough|92|0|5|Russell|Pasquale|2999|Georgia|M|Son|||1|482 + +3000|CO|Arapahoe County, Douglas County, Jefferson County|Littleton city|93|0|1|Patterson|Marlon Quentin|2955|Puerto Rico|M|Head|||45|483 +3000|CO|Arapahoe County, Douglas County, Jefferson County|Littleton city|93|0|2|Patterson|Tara|2978|Pennsylvania|F|Spouse|||22|484 +3000|CO|Arapahoe County, Douglas County, Jefferson County|Littleton city|93|0|3|Patterson|Arthur|3000|Indiana|F|Daughter|||0|485 + +3000|LA|Jefferson Parish|Waggaman CDP|94|0|1|Moe|Roscoe Harry|2954|Alabama|M|Head|||46|486 +3000|LA|Jefferson Parish|Waggaman CDP|94|0|2|Moe|Johnny|2984|Benin|F|Daughter|||16|487 +3000|LA|Jefferson Parish|Waggaman CDP|94|0|3|Moe|Deetta|2988|Maine|F|Daughter|||12|488 +3000|LA|Jefferson Parish|Waggaman CDP|94|0|4|Moe|Florencio|2990|New Jersey|M|Son|||10|489 +3000|LA|Jefferson Parish|Waggaman CDP|94|0|5|Moe|Rana|3000|Arkansas|F|Daughter|||0|490 + +3000|OH|Paulding County, Van Wert County|Scott village|95|0|1|Ascheman|Rosemary|2982|California|F|Head|||18|491 + +3000|FL|Volusia County|Ormond-by-the-Sea CDP|96|0|1|Grando|Noe Sebastian|2951|New Hampshire|M|Head|||49|492 +3000|FL|Volusia County|Ormond-by-the-Sea CDP|96|0|2|Grando|Leora|2960|Indiana|F|Spouse|||40|493 +3000|FL|Volusia County|Ormond-by-the-Sea CDP|96|0|3|Grando|Georgeanna|2980|Poland|F|Daughter|||20|494 +3000|FL|Volusia County|Ormond-by-the-Sea CDP|96|0|4|Grando|Jena|2988|Wyoming|F|Daughter|||12|495 +3000|FL|Volusia County|Ormond-by-the-Sea CDP|96|0|5|Grando|Ricky Carter|2996|Idaho|M|Son|||4|496 + +3000|KS|McPherson County|Marquette city|97|0|1|Sahagian|Millard Morris|2957|Cocos (keeling) Islands|M|Head|||43|497 +3000|KS|McPherson County|Marquette city|97|0|2|Sahagian|Willia Dorla|2954|Maryland|F|Spouse|||46|498 +3000|KS|McPherson County|Marquette city|97|0|3|Sahagian|Yukiko|2986|Connecticut|F|Daughter|||14|499 +3000|KS|McPherson County|Marquette city|97|0|4|Sahagian|Alvera|2988|Alaska|F|Daughter|||12|500 +3000|KS|McPherson County|Marquette city|97|0|5|Sahagian|Gerard|2992|Arkansas|M|Son|||8|501 +3000|KS|McPherson County|Marquette city|97|0|6|Sahagian|Eli|2996|Maryland|M|Son|||4|502 +3000|KS|McPherson County|Marquette city|97|0|7|Sahagian|Ranae|3000|North Dakota|F|Daughter|||0|503 + +3000|NY|Columbia County|Ghent CDP|98|0|1|Laprade|Irving Elias|2947|Alaska|M|Head|||53|504 +3000|NY|Columbia County|Ghent CDP|98|0|2|Laprade|Tonie|2962|Connecticut|F|Spouse|||38|505 +3000|NY|Columbia County|Ghent CDP|98|0|3|Laprade|Lorraine|2984|New York|F|Daughter|||16|506 +3000|NY|Columbia County|Ghent CDP|98|0|4|Laprade|Bryon|2986|Alabama|M|Son|||14|507 +3000|NY|Columbia County|Ghent CDP|98|0|5|Laprade|Farah|2988|Illinois|F|Daughter|||12|508 +3000|NY|Columbia County|Ghent CDP|98|0|6|Laprade|Kala|2994|Saudi Arabia|F|Daughter|||6|509 +3000|NY|Columbia County|Ghent CDP|98|0|7|Laprade|Tifany|2996|New Mexico|F|Daughter|||4|510 +3000|NY|Columbia County|Ghent CDP|98|0|8|Laprade|Lon|3000|West Virginia|M|Son|||0|511 + +3000|MO|Clay County|Oakwood village|99|0|1|Bohorquez|Guy Santos|2944|Iowa|M|Head|||56|512 +3000|MO|Clay County|Oakwood village|99|0|2|Bohorquez|Catherine|2960|Massachusetts|F|Spouse|||40|513 +3000|MO|Clay County|Oakwood village|99|0|3|Bohorquez|Sylvester David|2980|Liechtenstein|M|Son|||20|514 +3000|MO|Clay County|Oakwood village|99|0|4|Bohorquez|Zada|2988|Turkey|F|Daughter|||12|515 +3000|MO|Clay County|Oakwood village|99|0|5|Bohorquez|Dwain|2990|Alaska|M|Son|||10|516 +3000|MO|Clay County|Oakwood village|99|0|6|Bohorquez|Lavonna Alex|2992|Switzerland|F|Daughter|||8|517 +3000|MO|Clay County|Oakwood village|99|0|7|Bohorquez|Shannon|2994|Oklahoma|F|Daughter|||6|518 +3000|MO|Clay County|Oakwood village|99|0|8|Bohorquez|Brandon Britt|2998|West Virginia|M|Son|||2|519 +3000|MO|Clay County|Oakwood village|99|0|9|Bohorquez|Shiela|3000|Connecticut|F|Daughter|||0|520 + +3000|VT|Orleans County|Newport city|100|0|1|Nolan|Tambra Adelaide|2963|Oklahoma|F|Head|||37|521 +3000|VT|Orleans County|Newport city|100|0|2|Nolan|Christian|2983|New Jersey|M|Son|||17|522 +3000|VT|Orleans County|Newport city|100|0|3|Nolan|Jose|2987|Mississippi|M|Son|||13|523 +3000|VT|Orleans County|Newport city|100|0|4|Nolan|Cherryl|2991|Delaware|F|Daughter|||9|524 +3000|VT|Orleans County|Newport city|100|0|5|Nolan|Fletcher|2993|Georgia|M|Son|||7|525 +3000|VT|Orleans County|Newport city|100|0|6|Nolan|Dylan Adrian|2997|Montana|M|Son|||3|526 + +3000|NY|Cattaraugus County|South Dayton village|101|0|1|Mcelroy|Craig Clark|2954|Virginia|M|Head|||46|527 +3000|NY|Cattaraugus County|South Dayton village|101|0|2|Mcelroy|Ludivina|3000|Louisiana|F|Daughter|||0|528 + +3000|WI|Waushara County|Coloma village|102|0|1|Mannion|Abe Herbert|2947|Massachusetts|M|Head|||53|529 +3000|WI|Waushara County|Coloma village|102|0|2|Mannion|Venetta|2943|South Dakota|F|Spouse|||57|530 +3000|WI|Waushara County|Coloma village|102|0|3|Mannion|Lu|2963|Kenya|F|Daughter|||37|531 +3000|WI|Waushara County|Coloma village|102|0|4|Mannion|Pamelia Chassidy|2975|Delaware|F|Daughter|||25|532 +3000|WI|Waushara County|Coloma village|102|0|5|Mannion|Bethany Elenor|2977|Louisiana|F|Daughter|||23|533 +3000|WI|Waushara County|Coloma village|102|0|6|Mannion|Guillermina|2979|Montana|F|Daughter|||21|534 +3000|WI|Waushara County|Coloma village|102|0|7|Mannion|Deandre|2987|Texas|M|Son|||13|535 +3000|WI|Waushara County|Coloma village|102|0|8|Mannion|Catheryn Jerry|2991|East Timor|F|Daughter|||9|536 +3000|WI|Waushara County|Coloma village|102|0|9|Mannion|Guillermo|2993|Indiana|M|Son|||7|537 + +3000|IL|St. Clair County|Cahokia village|103|0|1|Bennett|Leandro|2962|Connecticut|M|Head|||38|538 +3000|IL|St. Clair County|Cahokia village|103|0|2|Bennett|Concha|2982|Virginia|F|Spouse|||18|539 + +3000|TX|Hays County|Wimberley city|104|0|1|Ramos|Stephen Alec|2967|Utah|M|Head|||33|540 + +3000|NJ|Monmouth County|Lake Como borough|105|0|1|Hanenkrat|Shane Florentino|2946|Texas|M|Head|||54|541 +3000|NJ|Monmouth County|Lake Como borough|105|0|2|Hanenkrat|Yuko|2947|Wisconsin|F|Spouse|||53|542 +3000|NJ|Monmouth County|Lake Como borough|105|0|3|Hanenkrat|Ruby|2973|New Mexico|F|Daughter|||27|543 +3000|NJ|Monmouth County|Lake Como borough|105|0|4|Hanenkrat|Echo|2987|Nevada|F|Daughter|||13|544 +3000|NJ|Monmouth County|Lake Como borough|105|0|5|Hanenkrat|Luigi|2989|Georgia|M|Son|||11|545 +3000|NJ|Monmouth County|Lake Como borough|105|0|6|Hanenkrat|Reyes|2991|Alabama|M|Son|||9|546 +3000|NJ|Monmouth County|Lake Como borough|105|0|7|Hanenkrat|Emmitt|2997|Kansas|M|Son|||3|547 + +3000|NC|Surry County|Dobson town|106|0|1|Gentery|Chad|2945|Montana|M|Head|||55|548 +3000|NC|Surry County|Dobson town|106|0|2|Gentery|Winter|2975|Virginia|F|Daughter|||25|549 +3000|NC|Surry County|Dobson town|106|0|3|Gentery|Isis Jeniffer|2985|California|F|Daughter|||15|550 +3000|NC|Surry County|Dobson town|106|0|4|Gentery|Rufina|2989|Oregon|F|Daughter|||11|551 +3000|NC|Surry County|Dobson town|106|0|5|Gentery|Rich Newton|2993|Alaska|M|Son|||7|552 +3000|NC|Surry County|Dobson town|106|0|6|Gentery|Loura|2999|Netherlands Antilles|F|Daughter|||1|553 + +3000|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|1|Santos|Paul Linwood|2937|Nevada|M|Head|||63|554 +3000|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|2|Santos|David|2944|Reunion|F|Spouse|||56|555 +3000|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|3|Santos|Marlene|2974|Bouvet Island|F|Daughter|||26|556 +3000|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|4|Santos|Nicolas|2978|Ohio|M|Son|||22|557 +3000|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|5|Santos|Byron|2986|Malawi|M|Son|||14|558 +3000|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|6|Santos|Jeremiah|2990|Missouri|M|Son|||10|559 +3000|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|7|Santos|Krishna Rae|2992|Liechtenstein|F|Daughter|||8|560 +3000|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|8|Santos|Jose|2994|Michigan|M|Son|||6|561 +3000|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|9|Santos|Delbert|2996|Hungary|M|Son|||4|562 +3000|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|10|Santos|Hedwig Precious|2998|South Carolina|F|Daughter|||2|563 + +3000|ID|Payette County|Payette city|108|0|1|Hofstetter|Jamal Kurt|2943|Michigan|M|Head|||57|564 +3000|ID|Payette County|Payette city|108|0|2|Hofstetter|Joi Jaqueline|2945|New Jersey|F|Spouse|||55|565 +3000|ID|Payette County|Payette city|108|0|3|Hofstetter|Ahmed|2969|Indiana|M|Son|||31|566 +3000|ID|Payette County|Payette city|108|0|4|Hofstetter|Alva|2985|Rhode Island|M|Son|||15|567 +3000|ID|Payette County|Payette city|108|0|5|Hofstetter|Robbie|2993|Tennessee|F|Daughter|||7|568 +3000|ID|Payette County|Payette city|108|0|6|Hofstetter|Douglass|2999|New Hampshire|M|Son|||1|569 + +3000|VT|Windham County|Athens town|109|0|1|Baskow|Numbers Orlando|2949|Rhode Island|M|Head|||51|570 +3000|VT|Windham County|Athens town|109|0|2|Baskow|Dimple|2956|Maryland|F|Spouse|||44|571 +3000|VT|Windham County|Athens town|109|0|3|Baskow|Manuel|2976|Zimbabwe|M|Son|||24|572 +3000|VT|Windham County|Athens town|109|0|4|Baskow|Denisse|2982|Anguilla|F|Daughter|||18|573 +3000|VT|Windham County|Athens town|109|0|5|Baskow|Elbert|2984|Zambia|M|Son|||16|574 +3000|VT|Windham County|Athens town|109|0|6|Baskow|Yolande|2988|Bhutan|F|Daughter|||12|575 +3000|VT|Windham County|Athens town|109|0|7|Baskow|Derick|2990|Indiana|M|Son|||10|576 +3000|VT|Windham County|Athens town|109|0|8|Baskow|Rupert|2994|Pennsylvania|M|Son|||6|577 +3000|VT|Windham County|Athens town|109|0|9|Baskow|Bambi|2998|Zambia|F|Daughter|||2|578 + +3000|PA|Somerset County|Benson borough|110|0|1|Edmonson|Millicent|2978|Lithuania|F|Head|||22|579 +3000|PA|Somerset County|Benson borough|110|0|2|Edmonson|Devin Theodore|2998|Maine|M|Son|||2|580 +3000|PA|Somerset County|Benson borough|110|0|3|Edmonson|Yajaira|3000|Alabama|F|Daughter|||0|581 + +3000|PA|Bucks County|Doylestown borough|111|0|1|Rappley|Bobby Davis|2953|Arkansas|M|Head|||47|582 +3000|PA|Bucks County|Doylestown borough|111|0|2|Rappley|Lorna|2960|Hawaii|F|Spouse|||40|583 +3000|PA|Bucks County|Doylestown borough|111|0|3|Rappley|Alan|2982|Wyoming|M|Son|||18|584 +3000|PA|Bucks County|Doylestown borough|111|0|4|Rappley|Debbie Brianne|2986|Massachusetts|F|Daughter|||14|585 +3000|PA|Bucks County|Doylestown borough|111|0|5|Rappley|Charla|2990|Kansas|F|Daughter|||10|586 +3000|PA|Bucks County|Doylestown borough|111|0|6|Rappley|Gillian|2992|Kansas|F|Daughter|||8|587 +3000|PA|Bucks County|Doylestown borough|111|0|7|Rappley|Aubrey|2996|Indiana|M|Son|||4|588 +3000|PA|Bucks County|Doylestown borough|111|0|8|Rappley|Racheal|2998|Ohio|F|Daughter|||2|589 + +3000|NC|Edgecombe County|Speed town|112|0|1|Bottolene|Reggie Mohammed|2944|Oklahoma|M|Head|||56|590 +3000|NC|Edgecombe County|Speed town|112|0|2|Bottolene|Elna|2974|Guinea-bissau|F|Daughter|||26|591 +3000|NC|Edgecombe County|Speed town|112|0|3|Bottolene|Owen|2986|North Carolina|M|Son|||14|592 +3000|NC|Edgecombe County|Speed town|112|0|4|Bottolene|Daria Kaley|2990|California|F|Daughter|||10|593 +3000|NC|Edgecombe County|Speed town|112|0|5|Bottolene|Lien|2994|Kansas|F|Daughter|||6|594 + +3000|MI|Ontonagon County|Ontonagon village|113|0|1|Jarnagin|Sang Manual|2953|Washington|M|Head|||47|595 +3000|MI|Ontonagon County|Ontonagon village|113|0|2|Jarnagin|Noriko|2974|Iowa|F|Spouse|||26|596 +3000|MI|Ontonagon County|Ontonagon village|113|0|3|Jarnagin|Wendell|2996|Zimbabwe|M|Son|||4|597 +3000|MI|Ontonagon County|Ontonagon village|113|0|4|Jarnagin|Stephaine|2998|Nevada|F|Daughter|||2|598 + +3000|MI|Muskegon County|Roosevelt Park city|114|0|1|Salmonsen|Porter Neil|2941|Pennsylvania|M|Head|||59|599 +3000|MI|Muskegon County|Roosevelt Park city|114|0|2|Salmonsen|Ludie|2975|North Dakota|F|Daughter|||25|600 +3000|MI|Muskegon County|Roosevelt Park city|114|0|3|Salmonsen|Fletcher Brant|2979|Texas|M|Son|||21|601 +3000|MI|Muskegon County|Roosevelt Park city|114|0|4|Salmonsen|Frank|2985|Arkansas|M|Son|||15|602 +3000|MI|Muskegon County|Roosevelt Park city|114|0|5|Salmonsen|Marianela|2987|Rhode Island|F|Daughter|||13|603 +3000|MI|Muskegon County|Roosevelt Park city|114|0|6|Salmonsen|Mario|2991|Alabama|M|Son|||9|604 +3000|MI|Muskegon County|Roosevelt Park city|114|0|7|Salmonsen|Alice|2997|Florida|F|Daughter|||3|605 + +3000|MN|Swift County|Kerkhoven township|115|0|1|Aro|Tyron Samual|2957|Washington|M|Head|||43|606 +3000|MN|Swift County|Kerkhoven township|115|0|2|Aro|Farah|2953|Alaska|F|Spouse|||47|607 +3000|MN|Swift County|Kerkhoven township|115|0|3|Aro|Hiedi|2975|Iowa|F|Daughter|||25|608 +3000|MN|Swift County|Kerkhoven township|115|0|4|Aro|Wayne|2987|Idaho|M|Son|||13|609 +3000|MN|Swift County|Kerkhoven township|115|0|5|Aro|Lesia|2991|China|F|Daughter|||9|610 +3000|MN|Swift County|Kerkhoven township|115|0|6|Aro|Valene|2993|Iowa|F|Daughter|||7|611 +3000|MN|Swift County|Kerkhoven township|115|0|7|Aro|Jamey|2999|Ohio|M|Son|||1|612 + +3000|KS|Cherokee County|Galena city|116|0|1|Meadows|Ahmed Henry|2941|South Carolina|M|Head|||59|613 +3000|KS|Cherokee County|Galena city|116|0|2|Meadows|Sudie|2951|Kansas|F|Spouse|||49|614 +3000|KS|Cherokee County|Galena city|116|0|3|Meadows|Pura|2981|Maryland|F|Daughter|||19|615 +3000|KS|Cherokee County|Galena city|116|0|4|Meadows|Nicholas|2983|Mozambique|M|Son|||17|616 +3000|KS|Cherokee County|Galena city|116|0|5|Meadows|Melvin|2985|Colorado|M|Son|||15|617 +3000|KS|Cherokee County|Galena city|116|0|6|Meadows|Corrine|2991|Mexico|F|Daughter|||9|618 +3000|KS|Cherokee County|Galena city|116|0|7|Meadows|Alvaro|2997|Nebraska|M|Son|||3|619 +3000|KS|Cherokee County|Galena city|116|0|8|Meadows|Benedict|2999|North Dakota|M|Son|||1|620 + +3000|ME|Penobscot County|Hampden town|117|0|1|Davis|Lane Wilton|2970|Colorado|M|Head|||30|621 +3000|ME|Penobscot County|Hampden town|117|0|2|Davis|Marisol|2968|Alaska|F|Spouse|||32|622 +3000|ME|Penobscot County|Hampden town|117|0|3|Davis|Alix|2988|Delaware|F|Daughter|||12|623 +3000|ME|Penobscot County|Hampden town|117|0|4|Davis|Willy|2990|New Mexico|M|Son|||10|624 +3000|ME|Penobscot County|Hampden town|117|0|5|Davis|Laraine|2992|Illinois|F|Daughter|||8|625 +3000|ME|Penobscot County|Hampden town|117|0|6|Davis|Bernardo|2996|Ohio|M|Son|||4|626 +3000|ME|Penobscot County|Hampden town|117|0|7|Davis|Efren|3000|Oklahoma|M|Son|||0|627 + +3000|MT|Carbon County|Red Lodge city|118|0|1|Ricketts|Jeffry Gayle|2954|Georgia|M|Head|||46|628 +3000|MT|Carbon County|Red Lodge city|118|0|2|Ricketts|Susy|2957|Illinois|F|Spouse|||43|629 +3000|MT|Carbon County|Red Lodge city|118|0|3|Ricketts|Gaston|2979|Wisconsin|M|Son|||21|630 +3000|MT|Carbon County|Red Lodge city|118|0|4|Ricketts|Danilo|2985|Connecticut|M|Son|||15|631 +3000|MT|Carbon County|Red Lodge city|118|0|5|Ricketts|Eldridge|2997|Alaska|M|Son|||3|632 +3000|MT|Carbon County|Red Lodge city|118|0|6|Ricketts|Caprice|2999|Rhode Island|F|Daughter|||1|633 + +3000|ID|Kootenai County|Harrison city|119|0|1|Anderson|Louie Ruben|2981|Virginia|M|Head|||19|634 +3000|ID|Kootenai County|Harrison city|119|0|2|Anderson|Karen|2983|Arizona|F|Spouse|||17|635 + +3000|NM|Lea County|Nadine CDP|120|0|1|Helton|Jamie Domingo|2945|North Dakota|M|Head|||55|636 +3000|NM|Lea County|Nadine CDP|120|0|2|Helton|Oralee|2958|Pennsylvania|F|Spouse|||42|637 +3000|NM|Lea County|Nadine CDP|120|0|3|Helton|Mary|2986|Illinois|M|Son|||14|638 +3000|NM|Lea County|Nadine CDP|120|0|4|Helton|Suzette|2988|Arizona|F|Daughter|||12|639 +3000|NM|Lea County|Nadine CDP|120|0|5|Helton|Elbert Rod|2998|Florida|M|Son|||2|640 +3000|NM|Lea County|Nadine CDP|120|0|6|Helton|Nga|3000|Texas|F|Daughter|||0|641 + +3000|CA|Alpine County, Amador County|Kirkwood CDP|121|0|1|Kosh|Gale Kieth|2946|Arkansas|M|Head|||54|642 +3000|CA|Alpine County, Amador County|Kirkwood CDP|121|0|2|Kosh|Kasandra|2956|Hawaii|F|Spouse|||44|643 +3000|CA|Alpine County, Amador County|Kirkwood CDP|121|0|3|Kosh|Nia|2976|Iowa|F|Daughter|||24|644 +3000|CA|Alpine County, Amador County|Kirkwood CDP|121|0|4|Kosh|Layla Lanie|2986|Delaware|F|Daughter|||14|645 +3000|CA|Alpine County, Amador County|Kirkwood CDP|121|0|5|Kosh|Bennett|2992|Minnesota|M|Son|||8|646 +3000|CA|Alpine County, Amador County|Kirkwood CDP|121|0|6|Kosh|Cristobal|2996|Louisiana|M|Son|||4|647 +3000|CA|Alpine County, Amador County|Kirkwood CDP|121|0|7|Kosh|Cyndy|2998|North Dakota|F|Daughter|||2|648 +3000|CA|Alpine County, Amador County|Kirkwood CDP|121|0|8|Kosh|Moira Isabella|3000|Florida|F|Daughter|||0|649 + +3000|IL|McLean County|Carlock village|122|0|1|Dejesus|Jefferey Ryan|2948|Hawaii|M|Head|||52|650 +3000|IL|McLean County|Carlock village|122|0|2|Dejesus|Oretha Jennefer|2954|South Dakota|F|Spouse|||46|651 +3000|IL|McLean County|Carlock village|122|0|3|Dejesus|Gema Vanessa|2986|Florida|F|Daughter|||14|652 +3000|IL|McLean County|Carlock village|122|0|4|Dejesus|Teena|2988|Maine|F|Daughter|||12|653 +3000|IL|McLean County|Carlock village|122|0|5|Dejesus|Cory|2990|Tennessee|M|Son|||10|654 +3000|IL|McLean County|Carlock village|122|0|6|Dejesus|Bethel|2996|New Hampshire|F|Daughter|||4|655 +3000|IL|McLean County|Carlock village|122|0|7|Dejesus|Catharine|2998|Minnesota|F|Daughter|||2|656 + +3000|MI|Missaukee County|West Branch township|123|0|1|Allis|Shaun Quentin|2970|Oklahoma|M|Head|||30|657 +3000|MI|Missaukee County|West Branch township|123|0|2|Allis|Arthur|2972|Pakistan|F|Spouse|||28|658 +3000|MI|Missaukee County|West Branch township|123|0|3|Allis|Julius|2992|Oklahoma|M|Son|||8|659 +3000|MI|Missaukee County|West Branch township|123|0|4|Allis|Randal|2998|Virgin Islands, U.s.|M|Son|||2|660 +3000|MI|Missaukee County|West Branch township|123|0|5|Allis|Mason|3000|Indiana|M|Son|||0|661 + +3000|NJ|Union County|Summit city|124|0|1|Branck|Luis Ellis|2955|Wisconsin|M|Head|||45|662 +3000|NJ|Union County|Summit city|124|0|2|Branck|Emeline|2957|Mississippi|F|Spouse|||43|663 +3000|NJ|Union County|Summit city|124|0|3|Branck|Leonard|2979|Hawaii|M|Son|||21|664 +3000|NJ|Union County|Summit city|124|0|4|Branck|Albertina|2981|Saint Helena|F|Daughter|||19|665 +3000|NJ|Union County|Summit city|124|0|5|Branck|Cary Kamilah|2985|Missouri|F|Daughter|||15|666 +3000|NJ|Union County|Summit city|124|0|6|Branck|Moises|2989|Indiana|M|Son|||11|667 +3000|NJ|Union County|Summit city|124|0|7|Branck|Tonia Lanita|2991|Kentucky|F|Daughter|||9|668 + +3000|AZ|Graham County|Fort Thomas CDP|125|0|1|Haigler|Tom Eddy|2953|Arizona|M|Head|||47|669 +3000|AZ|Graham County|Fort Thomas CDP|125|0|2|Haigler|Elois|2986|Rhode Island|F|Daughter|||14|670 +3000|AZ|Graham County|Fort Thomas CDP|125|0|3|Haigler|Retha|2988|Connecticut|F|Daughter|||12|671 +3000|AZ|Graham County|Fort Thomas CDP|125|0|4|Haigler|Kenny|2998|Pennsylvania|M|Son|||2|672 +3000|AZ|Graham County|Fort Thomas CDP|125|0|5|Haigler|Ty|3000|Barbados|M|Son|||0|673 + +3000|WV|Fayette County|Meadow Bridge town|126|0|1|James|Roy Riley|2970|Mississippi|M|Head|||30|674 +3000|WV|Fayette County|Meadow Bridge town|126|0|2|James|Joya|2969|Florida|F|Spouse|||31|675 +3000|WV|Fayette County|Meadow Bridge town|126|0|3|James|Macie|2995|Tennessee|F|Daughter|||5|676 + +3000|OR|Clackamas County|Happy Valley city|127|0|1|Garvey|Hiram|2954|Oregon|M|Head|||46|677 +3000|OR|Clackamas County|Happy Valley city|127|0|2|Garvey|Shemeka|2973|Arkansas|F|Spouse|||27|678 +3000|OR|Clackamas County|Happy Valley city|127|0|3|Garvey|Mark|2993|Georgia|M|Son|||7|679 +3000|OR|Clackamas County|Happy Valley city|127|0|4|Garvey|Denis|2995|Mississippi|M|Son|||5|680 + +3000|MO|St. Louis County|Manchester city|128|0|1|Sizemore|Louis|2979|Sweden|M|Head|||21|681 +3000|MO|St. Louis County|Manchester city|128|0|2|Sizemore|Concha|2977|North Carolina|F|Spouse|||23|682 +3000|MO|St. Louis County|Manchester city|128|0|3|Sizemore|Juliette|2997|Arkansas|F|Daughter|||3|683 + +3000|MA|Worcester County|Baldwinville CDP|129|0|1|Matteo|Lincoln Thad|2941|Massachusetts|M|Head|||59|684 +3000|MA|Worcester County|Baldwinville CDP|129|0|2|Matteo|Magdalena|2945|Mozambique|F|Spouse|||55|685 +3000|MA|Worcester County|Baldwinville CDP|129|0|3|Matteo|Merrie|2973|Kentucky|F|Daughter|||27|686 +3000|MA|Worcester County|Baldwinville CDP|129|0|4|Matteo|Mittie|2985|Saint Lucia|F|Daughter|||15|687 +3000|MA|Worcester County|Baldwinville CDP|129|0|5|Matteo|Ardelle|2987|Colorado|F|Daughter|||13|688 +3000|MA|Worcester County|Baldwinville CDP|129|0|6|Matteo|Randolph|2989|Kentucky|M|Son|||11|689 +3000|MA|Worcester County|Baldwinville CDP|129|0|7|Matteo|Rod|2999|Illinois|M|Son|||1|690 + +3000|OK|Pottawatomie County|Johnson town|130|0|1|Villaverde|Brooks Erick|2951|Nevada|M|Head|||49|691 +3000|OK|Pottawatomie County|Johnson town|130|0|2|Villaverde|Lee|2963|California|F|Spouse|||37|692 +3000|OK|Pottawatomie County|Johnson town|130|0|3|Villaverde|Walter|2983|Alaska|M|Son|||17|693 +3000|OK|Pottawatomie County|Johnson town|130|0|4|Villaverde|Germaine|2985|New York|F|Daughter|||15|694 +3000|OK|Pottawatomie County|Johnson town|130|0|5|Villaverde|Nathanial|2987|West Virginia|M|Son|||13|695 +3000|OK|Pottawatomie County|Johnson town|130|0|6|Villaverde|Hiram Geraldo|2991|Nebraska|M|Son|||9|696 +3000|OK|Pottawatomie County|Johnson town|130|0|7|Villaverde|Janeth Edie|2995|India|F|Daughter|||5|697 +3000|OK|Pottawatomie County|Johnson town|130|0|8|Villaverde|Virgilio Blake|2999|Hawaii|M|Son|||1|698 + +3000|CO|Chaffee County|Johnson Village CDP|131|0|1|Mostowy|Orval Victor|2967|Nebraska|M|Head|||33|699 +3000|CO|Chaffee County|Johnson Village CDP|131|0|2|Mostowy|September|2972|Iowa|F|Spouse|||28|700 +3000|CO|Chaffee County|Johnson Village CDP|131|0|3|Mostowy|Lala|3000|Minnesota|F|Daughter|||0|701 + +3000|TX|Zapata County|Lopeño CDP|132|0|1|Auble|Mitch King|2948|North Dakota|M|Head|||52|702 +3000|TX|Zapata County|Lopeño CDP|132|0|2|Auble|Milagros|2946|North Dakota|F|Spouse|||54|703 +3000|TX|Zapata County|Lopeño CDP|132|0|3|Auble|Ali|2970|Montana|M|Son|||30|704 +3000|TX|Zapata County|Lopeño CDP|132|0|4|Auble|Stefan|2976|South Dakota|M|Son|||24|705 +3000|TX|Zapata County|Lopeño CDP|132|0|5|Auble|Corina Sherill|2982|Alabama|F|Daughter|||18|706 +3000|TX|Zapata County|Lopeño CDP|132|0|6|Auble|Marti|2988|Arkansas|F|Daughter|||12|707 +3000|TX|Zapata County|Lopeño CDP|132|0|7|Auble|Linette|2998|Cocos (keeling) Islands|F|Daughter|||2|708 +3000|TX|Zapata County|Lopeño CDP|132|0|8|Auble|Lennie|3000|Virginia|F|Daughter|||0|709 + +3000|MA|Worcester County|Sterling town|133|0|1|Tinsman|Modesto Franklyn|2957|Maryland|M|Head|||43|710 +3000|MA|Worcester County|Sterling town|133|0|2|Tinsman|Agueda Ola|2968|Oklahoma|F|Spouse|||32|711 +3000|MA|Worcester County|Sterling town|133|0|3|Tinsman|Jamar Teodoro|2988|Maine|M|Son|||12|712 +3000|MA|Worcester County|Sterling town|133|0|4|Tinsman|Pasquale|2990|Botswana|M|Son|||10|713 +3000|MA|Worcester County|Sterling town|133|0|5|Tinsman|Devin|2992|Maryland|M|Son|||8|714 + +3000|NJ|Bergen County|Hackensack city|134|0|1|Cadoff|Fannie|2979|New Mexico|F|Head|||21|715 + +3000|TX|Bexar County|Randolph AFB CDP|135|0|1|Griffin|Jack|2967|Texas|M|Head|||33|716 +3000|TX|Bexar County|Randolph AFB CDP|135|0|2|Griffin|Cherrie|2984|Pakistan|F|Spouse|||16|717 + +3000|NY|Livingston County|Livonia village|136|0|1|Ruckman|Conrad Archie|2961|Illinois|M|Head|||39|718 +3000|NY|Livingston County|Livonia village|136|0|2|Ruckman|Shela|2966|North Carolina|F|Spouse|||34|719 +3000|NY|Livingston County|Livonia village|136|0|3|Ruckman|Laurence|2986|Pennsylvania|M|Son|||14|720 +3000|NY|Livingston County|Livonia village|136|0|4|Ruckman|Florencia Nicole|2988|South Carolina|F|Daughter|||12|721 +3000|NY|Livingston County|Livonia village|136|0|5|Ruckman|Ernest|2990|Massachusetts|M|Son|||10|722 +3000|NY|Livingston County|Livonia village|136|0|6|Ruckman|Gustavo|2992|Arizona|M|Son|||8|723 +3000|NY|Livingston County|Livonia village|136|0|7|Ruckman|Jann|2996|Connecticut|F|Daughter|||4|724 + +3000|TX|Tyler County|Woodville town|137|0|1|Vanzyl|Tammera|2952|Illinois|F|Head|||48|725 +3000|TX|Tyler County|Woodville town|137|0|2|Vanzyl|Gidget|2980|Wisconsin|F|Daughter|||20|726 +3000|TX|Tyler County|Woodville town|137|0|3|Vanzyl|Viva|2986|Minnesota|F|Daughter|||14|727 +3000|TX|Tyler County|Woodville town|137|0|4|Vanzyl|Hertha|2994|Illinois|F|Daughter|||6|728 +3000|TX|Tyler County|Woodville town|137|0|5|Vanzyl|Glenn|3000|Utah|M|Son|||0|729 + +3000|IA|Emmet County|Ringsted city|138|0|1|Phillips|Gabriel Ramon|2957|Arkansas|M|Head|||43|730 +3000|IA|Emmet County|Ringsted city|138|0|2|Phillips|Latrisha|2982|North Carolina|F|Daughter|||18|731 +3000|IA|Emmet County|Ringsted city|138|0|3|Phillips|Gwenda|2986|Oklahoma|F|Daughter|||14|732 +3000|IA|Emmet County|Ringsted city|138|0|4|Phillips|Hugo Burt|2988|Oklahoma|M|Son|||12|733 +3000|IA|Emmet County|Ringsted city|138|0|5|Phillips|Sidney Ellsworth|2994|Arkansas|M|Son|||6|734 +3000|IA|Emmet County|Ringsted city|138|0|6|Phillips|Otis|3000|Colorado|M|Son|||0|735 + +3000|MT|Lincoln County|Stryker CDP|139|0|1|Shettleroe|Kaley|2976|North Dakota|F|Head|||24|736 +3000|MT|Lincoln County|Stryker CDP|139|0|2|Shettleroe|Rolande|2996|Qatar|F|Daughter|||4|737 +3000|MT|Lincoln County|Stryker CDP|139|0|3|Shettleroe|Nickolas|3000|North Carolina|M|Son|||0|738 + +3000|NY|Oneida County|Vienna town|140|0|1|Stinnett|Booker|2953|Missouri|M|Head|||47|739 +3000|NY|Oneida County|Vienna town|140|0|2|Stinnett|Malvina|2959|Maine|F|Spouse|||41|740 +3000|NY|Oneida County|Vienna town|140|0|3|Stinnett|Cyril Lamar|2985|Saudi Arabia|M|Son|||15|741 +3000|NY|Oneida County|Vienna town|140|0|4|Stinnett|Lena|2987|Iowa|F|Daughter|||13|742 +3000|NY|Oneida County|Vienna town|140|0|5|Stinnett|Fermin|2989|Pennsylvania|M|Son|||11|743 +3000|NY|Oneida County|Vienna town|140|0|6|Stinnett|Mikel|2995|Arizona|M|Son|||5|744 + +3000|PA|Lycoming County|Washington township|141|0|1|Odonovan|Devin Scottie|2946|Alaska|M|Head|||54|745 +3000|PA|Lycoming County|Washington township|141|0|2|Odonovan|Deja|2957|California|F|Spouse|||43|746 +3000|PA|Lycoming County|Washington township|141|0|3|Odonovan|Briana|2989|Syrian Arab Republic|F|Daughter|||11|747 +3000|PA|Lycoming County|Washington township|141|0|4|Odonovan|Raquel|2991|New Jersey|F|Daughter|||9|748 +3000|PA|Lycoming County|Washington township|141|0|5|Odonovan|Drew|2993|Faroe Islands|M|Son|||7|749 + +3000|MO|Lincoln County|Silex village|142|0|1|Canterbury|Lemuel Shirley|2983|Florida|M|Head|||17|750 +3000|MO|Lincoln County|Silex village|142|0|2|Canterbury|Carlyn|2982|Vermont|F|Spouse|||18|751 + +3000|MI|Eaton County|Oneida charter township|143|0|1|Hunt|Alonso Clyde|2949|Martinique|M|Head|||51|752 +3000|MI|Eaton County|Oneida charter township|143|0|2|Hunt|Chu|2956|Minnesota|F|Spouse|||44|753 +3000|MI|Eaton County|Oneida charter township|143|0|3|Hunt|Stacey|2980|Virginia|M|Son|||20|754 +3000|MI|Eaton County|Oneida charter township|143|0|4|Hunt|Bennett|2990|Indiana|M|Son|||10|755 +3000|MI|Eaton County|Oneida charter township|143|0|5|Hunt|Kristi|3000|Tennessee|F|Daughter|||0|756 + +3000|MI|Ingham County|Mason city|144|0|1|Emmerson|Rudy Donald|2943|New York|M|Head|||57|757 +3000|MI|Ingham County|Mason city|144|0|2|Emmerson|Lilliana|2962|Egypt|F|Spouse|||38|758 +3000|MI|Ingham County|Mason city|144|0|3|Emmerson|Domenica|2990|Equatorial Guinea|F|Daughter|||10|759 +3000|MI|Ingham County|Mason city|144|0|4|Emmerson|Viviana Kaila|2992|Nevada|F|Daughter|||8|760 +3000|MI|Ingham County|Mason city|144|0|5|Emmerson|Rex|2998|Texas|M|Son|||2|761 +3000|MI|Ingham County|Mason city|144|0|6|Emmerson|Jan|3000|Lebanon|M|Son|||0|762 + +3000|TN|Putnam County|Baxter town|145|0|1|Bradac|Fred Daron|2950|West Virginia|M|Head|||50|763 +3000|TN|Putnam County|Baxter town|145|0|2|Bradac|Patricia|2963|Svalbard And Jan Mayen|F|Spouse|||37|764 +3000|TN|Putnam County|Baxter town|145|0|3|Bradac|Woodrow|2985|Tennessee|M|Son|||15|765 +3000|TN|Putnam County|Baxter town|145|0|4|Bradac|Takisha|2987|Delaware|F|Daughter|||13|766 +3000|TN|Putnam County|Baxter town|145|0|5|Bradac|Berry|2995|South Dakota|F|Daughter|||5|767 +3000|TN|Putnam County|Baxter town|145|0|6|Bradac|Fredrick|2999|Missouri|M|Son|||1|768 + +3000|NY|Orange County|Monroe village|146|0|1|Mortier|Malcolm Bryan|2957|Illinois|M|Head|||43|769 +3000|NY|Orange County|Monroe village|146|0|2|Mortier|Arlette|2971|Washington|F|Spouse|||29|770 +3000|NY|Orange County|Monroe village|146|0|3|Mortier|Dave|2993|Tennessee|M|Son|||7|771 + +3000|NY|Allegany County|Willing town|147|0|1|Tur|Anderson Hollis|2952|Virginia|M|Head|||48|772 +3000|NY|Allegany County|Willing town|147|0|2|Tur|Ladawn|2957|Missouri|F|Spouse|||43|773 +3000|NY|Allegany County|Willing town|147|0|3|Tur|Liane|2985|Illinois|F|Daughter|||15|774 +3000|NY|Allegany County|Willing town|147|0|4|Tur|Sammie|2987|Delaware|M|Son|||13|775 +3000|NY|Allegany County|Willing town|147|0|5|Tur|Larry|2989|Mississippi|M|Son|||11|776 +3000|NY|Allegany County|Willing town|147|0|6|Tur|Leonie|2991|Oregon|F|Daughter|||9|777 +3000|NY|Allegany County|Willing town|147|0|7|Tur|Laverne|2993|Michigan|M|Son|||7|778 +3000|NY|Allegany County|Willing town|147|0|8|Tur|Orville|2995|Belarus|M|Son|||5|779 + +3000|MN|Kandiyohi County|Edwards township|148|0|1|Christenson|Erwin Forrest|2973|California|M|Head|||27|780 +3000|MN|Kandiyohi County|Edwards township|148|0|2|Christenson|Merrilee|2976|Bosnia And Herzegovina|F|Spouse|||24|781 +3000|MN|Kandiyohi County|Edwards township|148|0|3|Christenson|Jerilyn|3000|Vermont|F|Daughter|||0|782 + +3000|KS|Crawford County|Mulberry city|149|0|1|Tankson|Jefferson Clyde|2945|Oklahoma|M|Head|||55|783 +3000|KS|Crawford County|Mulberry city|149|0|2|Tankson|Alina Carly|2943|Utah|F|Spouse|||57|784 +3000|KS|Crawford County|Mulberry city|149|0|3|Tankson|Cira|2973|Kentucky|F|Daughter|||27|785 +3000|KS|Crawford County|Mulberry city|149|0|4|Tankson|Roxanne|2985|Pennsylvania|F|Daughter|||15|786 +3000|KS|Crawford County|Mulberry city|149|0|5|Tankson|Nida|2987|Alabama|F|Daughter|||13|787 +3000|KS|Crawford County|Mulberry city|149|0|6|Tankson|Yesenia|2989|Wisconsin|F|Daughter|||11|788 +3000|KS|Crawford County|Mulberry city|149|0|7|Tankson|Magali|2991|Nevada|F|Daughter|||9|789 +3000|KS|Crawford County|Mulberry city|149|0|8|Tankson|Winnifred Coretta|2997|Arkansas|F|Daughter|||3|790 + +3000|TX|Tarrant County|Pelican Bay city|150|0|1|Vandivort|Quincy Chance|2960|West Virginia|M|Head|||40|791 +3000|TX|Tarrant County|Pelican Bay city|150|0|2|Vandivort|Roxanne|2979|Botswana|F|Spouse|||21|792 + +3000|NJ|Monmouth County|Neptune township|151|0|1|Yingst|Bradly Lowell|2939|Maine|M|Head|||61|793 +3000|NJ|Monmouth County|Neptune township|151|0|2|Yingst|Basilia|2955|Kansas|F|Spouse|||45|794 +3000|NJ|Monmouth County|Neptune township|151|0|3|Yingst|Tierra|2979|Mississippi|F|Daughter|||21|795 +3000|NJ|Monmouth County|Neptune township|151|0|4|Yingst|Cecil|2983|Wisconsin|F|Daughter|||17|796 +3000|NJ|Monmouth County|Neptune township|151|0|5|Yingst|Brigid|2985|Oklahoma|F|Daughter|||15|797 +3000|NJ|Monmouth County|Neptune township|151|0|6|Yingst|Sanda Rina|2987|Texas|F|Daughter|||13|798 +3000|NJ|Monmouth County|Neptune township|151|0|7|Yingst|Darcel|2989|Missouri|F|Daughter|||11|799 +3000|NJ|Monmouth County|Neptune township|151|0|8|Yingst|Beatris|2997|Indiana|F|Daughter|||3|800 + +3000|VA|Wise County|Big Stone Gap town|152|0|1|Teixeira|Esteban Isaiah|2957|Nevada|M|Head|||43|801 +3000|VA|Wise County|Big Stone Gap town|152|0|2|Teixeira|Chloe|2971|Spain|F|Spouse|||29|802 +3000|VA|Wise County|Big Stone Gap town|152|0|3|Teixeira|Marry|2991|Louisiana|F|Daughter|||9|803 +3000|VA|Wise County|Big Stone Gap town|152|0|4|Teixeira|Reed|2995|Maryland|M|Son|||5|804 +3000|VA|Wise County|Big Stone Gap town|152|0|5|Teixeira|Dina|2997|Minnesota|F|Daughter|||3|805 +3000|VA|Wise County|Big Stone Gap town|152|0|6|Teixeira|Guy|2999|Idaho|M|Son|||1|806 + +3000|AL|Cullman County|Cullman city|153|0|1|Yu|Dario Kyle|2941|Idaho|M|Head|||59|807 +3000|AL|Cullman County|Cullman city|153|0|2|Yu|Henriette|2976|Marshall Islands|F|Daughter|||24|808 +3000|AL|Cullman County|Cullman city|153|0|3|Yu|Judson|2978|Utah|M|Son|||22|809 +3000|AL|Cullman County|Cullman city|153|0|4|Yu|Dylan Carson|2980|Belgium|M|Son|||20|810 +3000|AL|Cullman County|Cullman city|153|0|5|Yu|Tori|2986|Netherlands Antilles|F|Daughter|||14|811 +3000|AL|Cullman County|Cullman city|153|0|6|Yu|Rory Diedre|2990|South Dakota|F|Daughter|||10|812 +3000|AL|Cullman County|Cullman city|153|0|7|Yu|Alec|2992|Kansas|M|Son|||8|813 +3000|AL|Cullman County|Cullman city|153|0|8|Yu|Chung|2994|South Dakota|M|Son|||6|814 +3000|AL|Cullman County|Cullman city|153|0|9|Yu|Francis|2996|California|F|Daughter|||4|815 + +3000|ID|Valley County|Smiths Ferry CDP|154|0|1|Klun|Felix Kelvin|2952|Kiribati|M|Head|||48|816 +3000|ID|Valley County|Smiths Ferry CDP|154|0|2|Klun|Percy|2983|Rhode Island|M|Son|||17|817 +3000|ID|Valley County|Smiths Ferry CDP|154|0|3|Klun|Addie|2985|South Carolina|F|Daughter|||15|818 +3000|ID|Valley County|Smiths Ferry CDP|154|0|4|Klun|Devin|2987|Seychelles|M|Son|||13|819 +3000|ID|Valley County|Smiths Ferry CDP|154|0|5|Klun|Laverne|2991|Alaska|F|Daughter|||9|820 +3000|ID|Valley County|Smiths Ferry CDP|154|0|6|Klun|Matha|2997|Maine|F|Daughter|||3|821 + +3000|MA|Worcester County|Sutton town|155|0|1|Green|Chastity|2956|New Jersey|F|Head|||44|822 +3000|MA|Worcester County|Sutton town|155|0|2|Green|Katerine|2990|Illinois|F|Daughter|||10|823 +3000|MA|Worcester County|Sutton town|155|0|3|Green|Tom|2992|Connecticut|M|Son|||8|824 +3000|MA|Worcester County|Sutton town|155|0|4|Green|Marna|2994|Brazil|F|Daughter|||6|825 +3000|MA|Worcester County|Sutton town|155|0|5|Green|Lessie|2996|Wisconsin|F|Daughter|||4|826 +3000|MA|Worcester County|Sutton town|155|0|6|Green|Brigitte|2998|New Mexico|F|Daughter|||2|827 +3000|MA|Worcester County|Sutton town|155|0|7|Green|Ricardo Waldo|3000|Cocos (keeling) Islands|M|Son|||0|828 + +3000|MT|Wibaux County|Wibaux town|156|0|1|Sturgul|Rodrick Junior|2947|New Mexico|M|Head|||53|829 +3000|MT|Wibaux County|Wibaux town|156|0|2|Sturgul|Magda Lauralee|2951|Rhode Island|F|Spouse|||49|830 +3000|MT|Wibaux County|Wibaux town|156|0|3|Sturgul|Jonas|2971|Michigan|M|Son|||29|831 +3000|MT|Wibaux County|Wibaux town|156|0|4|Sturgul|Tamiko|2977|Christmas Island|F|Daughter|||23|832 +3000|MT|Wibaux County|Wibaux town|156|0|5|Sturgul|Simon|2985|Wyoming|M|Son|||15|833 +3000|MT|Wibaux County|Wibaux town|156|0|6|Sturgul|Boyd|2991|Michigan|M|Son|||9|834 +3000|MT|Wibaux County|Wibaux town|156|0|7|Sturgul|Rocio|2993|Rhode Island|F|Daughter|||7|835 + +3000|FL|Brevard County|Cape Canaveral city|157|0|1|Schnabel|Micheal Merle|2947|Hawaii|M|Head|||53|836 +3000|FL|Brevard County|Cape Canaveral city|157|0|2|Schnabel|Milton Levi|2986|Virginia|M|Son|||14|837 +3000|FL|Brevard County|Cape Canaveral city|157|0|3|Schnabel|Royce|2988|Nevada|F|Daughter|||12|838 +3000|FL|Brevard County|Cape Canaveral city|157|0|4|Schnabel|Kera|2990|Heard Island And Mcdonald Islands|F|Daughter|||10|839 +3000|FL|Brevard County|Cape Canaveral city|157|0|5|Schnabel|Danica|2992|Algeria|F|Daughter|||8|840 +3000|FL|Brevard County|Cape Canaveral city|157|0|6|Schnabel|Gaye|2996|Sudan|F|Daughter|||4|841 +3000|FL|Brevard County|Cape Canaveral city|157|0|7|Schnabel|Tinisha|2998|Mississippi|F|Daughter|||2|842 + +3000|MN|Crow Wing County|Crosslake city|158|0|1|Esparza|Ricardo|2940|Fiji|M|Head|||60|843 +3000|MN|Crow Wing County|Crosslake city|158|0|2|Esparza|Kym|2960|Hawaii|F|Spouse|||40|844 +3000|MN|Crow Wing County|Crosslake city|158|0|3|Esparza|Allan|2984|Tonga|M|Son|||16|845 +3000|MN|Crow Wing County|Crosslake city|158|0|4|Esparza|Arianna|2988|New York|F|Daughter|||12|846 +3000|MN|Crow Wing County|Crosslake city|158|0|5|Esparza|Tammy|2994|Virginia|F|Daughter|||6|847 +3000|MN|Crow Wing County|Crosslake city|158|0|6|Esparza|Roman|3000|Bangladesh|M|Son|||0|848 + +3000|IA|Lyon County|Alvord city|159|0|1|Ruge|Orville Matt|2952|Minnesota|M|Head|||48|849 +3000|IA|Lyon County|Alvord city|159|0|2|Ruge|Sharika Lisabeth|2955|Hungary|F|Spouse|||45|850 +3000|IA|Lyon County|Alvord city|159|0|3|Ruge|Maggie|2985|Indiana|F|Daughter|||15|851 +3000|IA|Lyon County|Alvord city|159|0|4|Ruge|Voncile|2989|Cocos (keeling) Islands|F|Daughter|||11|852 +3000|IA|Lyon County|Alvord city|159|0|5|Ruge|Sindy|2991|Minnesota|F|Daughter|||9|853 +3000|IA|Lyon County|Alvord city|159|0|6|Ruge|Alida|2995|Myanmar|F|Daughter|||5|854 +3000|IA|Lyon County|Alvord city|159|0|7|Ruge|Elene Lasonya|2997|Alaska|F|Daughter|||3|855 + +3000|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|1|Naputi|Matthew Tristan|2944|South Dakota|M|Head|||56|856 +3000|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|2|Naputi|Hazel Santos|2955|Oregon|F|Spouse|||45|857 +3000|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|3|Naputi|Chasity|2975|Palestinian Territory, Occupied|F|Daughter|||25|858 +3000|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|4|Naputi|Eldon|2977|South Carolina|M|Son|||23|859 +3000|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|5|Naputi|Mack Rufus|2979|Alaska|M|Son|||21|860 +3000|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|6|Naputi|Melodee|2989|Chile|F|Daughter|||11|861 +3000|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|7|Naputi|Caleb|2995|Louisiana|M|Son|||5|862 +3000|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|8|Naputi|Ramon|2997|Mississippi|M|Son|||3|863 + +3000|SC|Sumter County|Cane Savannah CDP|161|0|1|Bergamini|Cletus Forrest|2978|Georgia|M|Head|||22|864 +3000|SC|Sumter County|Cane Savannah CDP|161|0|2|Bergamini|Stacee|2979|Algeria|F|Spouse|||21|865 +3000|SC|Sumter County|Cane Savannah CDP|161|0|3|Bergamini|Dominic|2999|Ohio|M|Son|||1|866 + +3000|NV|Lyon County|Silver Springs CDP|162|0|1|Dukelow|Alfonzo Dominic|2946|Kazakstan|M|Head|||54|867 +3000|NV|Lyon County|Silver Springs CDP|162|0|2|Dukelow|Zandra|2947|California|F|Spouse|||53|868 +3000|NV|Lyon County|Silver Springs CDP|162|0|3|Dukelow|Steven|2973|Oregon|M|Son|||27|869 +3000|NV|Lyon County|Silver Springs CDP|162|0|4|Dukelow|Marcelo|2985|Missouri|M|Son|||15|870 +3000|NV|Lyon County|Silver Springs CDP|162|0|5|Dukelow|Ila|2989|Oregon|F|Daughter|||11|871 +3000|NV|Lyon County|Silver Springs CDP|162|0|6|Dukelow|Vada|2993|Tokelau|F|Daughter|||7|872 +3000|NV|Lyon County|Silver Springs CDP|162|0|7|Dukelow|Ayanna Hallie|2995|Idaho|F|Daughter|||5|873 + +3000|WI|Dane County|Blue Mounds village|163|0|1|Bronson|Dillon Del|2945|Missouri|M|Head|||55|874 +3000|WI|Dane County|Blue Mounds village|163|0|2|Bronson|Daniella|2969|Congo|F|Spouse|||31|875 +3000|WI|Dane County|Blue Mounds village|163|0|3|Bronson|Tamala|2991|Indiana|F|Daughter|||9|876 +3000|WI|Dane County|Blue Mounds village|163|0|4|Bronson|Shakia|2993|Texas|F|Daughter|||7|877 +3000|WI|Dane County|Blue Mounds village|163|0|5|Bronson|Angelique|2995|New Jersey|F|Daughter|||5|878 + +3000|TX|Montgomery County|Montgomery city|164|0|1|Helwig|Dane Bruce|2947|New York|M|Head|||53|879 +3000|TX|Montgomery County|Montgomery city|164|0|2|Helwig|Lucienne|2944|Wyoming|F|Spouse|||56|880 +3000|TX|Montgomery County|Montgomery city|164|0|3|Helwig|Bennie|2974|Wyoming|M|Son|||26|881 +3000|TX|Montgomery County|Montgomery city|164|0|4|Helwig|Letitia|2986|Nebraska|F|Daughter|||14|882 +3000|TX|Montgomery County|Montgomery city|164|0|5|Helwig|Rod|2990|North Carolina|M|Son|||10|883 +3000|TX|Montgomery County|Montgomery city|164|0|6|Helwig|Clemente|2992|North Carolina|M|Son|||8|884 + +3000|PA|Tioga County|Farmington township|165|0|1|Budds|Gustavo Manual|2949|Maine|M|Head|||51|885 +3000|PA|Tioga County|Farmington township|165|0|2|Budds|Jeanette|2963|Massachusetts|F|Spouse|||37|886 +3000|PA|Tioga County|Farmington township|165|0|3|Budds|Rodrick|2985|Wisconsin|M|Son|||15|887 +3000|PA|Tioga County|Farmington township|165|0|4|Budds|Eugene Alfonzo|2987|South Dakota|M|Son|||13|888 +3000|PA|Tioga County|Farmington township|165|0|5|Budds|Brittney|2989|Washington|F|Daughter|||11|889 +3000|PA|Tioga County|Farmington township|165|0|6|Budds|Raphael|2995|Nebraska|M|Son|||5|890 +3000|PA|Tioga County|Farmington township|165|0|7|Budds|Lasonya|2997|Indiana|F|Daughter|||3|891 + +3000|NC|Stanly County|Stanfield town|166|0|1|Buren|Douglass Leandro|2951|California|M|Head|||49|892 +3000|NC|Stanly County|Stanfield town|166|0|2|Buren|Sarai|2973|Michigan|F|Spouse|||27|893 +3000|NC|Stanly County|Stanfield town|166|0|3|Buren|Clarinda|2995|Alaska|F|Daughter|||5|894 +3000|NC|Stanly County|Stanfield town|166|0|4|Buren|Leila|2999|New Mexico|F|Daughter|||1|895 + +3000|CA|Shasta County|Millville CDP|167|0|1|Orvis|Judson Dick|2939|Grenada|M|Head|||61|896 +3000|CA|Shasta County|Millville CDP|167|0|2|Orvis|Lonnie|2963|Maine|F|Spouse|||37|897 +3000|CA|Shasta County|Millville CDP|167|0|3|Orvis|Glory|2987|Nevada|F|Daughter|||13|898 +3000|CA|Shasta County|Millville CDP|167|0|4|Orvis|Aubrey|2989|Wisconsin|F|Daughter|||11|899 +3000|CA|Shasta County|Millville CDP|167|0|5|Orvis|Alyssa|2991|Utah|F|Daughter|||9|900 +3000|CA|Shasta County|Millville CDP|167|0|6|Orvis|Rico|2997|Oman|M|Son|||3|901 +3000|CA|Shasta County|Millville CDP|167|0|7|Orvis|Louisa|2999|Mali|F|Daughter|||1|902 + +3000|IL|Vermilion County|Indianola village|168|0|1|Szczeblewski|Adolph Shaun|2961|Massachusetts|M|Head|||39|903 +3000|IL|Vermilion County|Indianola village|168|0|2|Szczeblewski|Codi|2972|Vermont|F|Spouse|||28|904 +3000|IL|Vermilion County|Indianola village|168|0|3|Szczeblewski|Lenora|2992|Namibia|F|Daughter|||8|905 +3000|IL|Vermilion County|Indianola village|168|0|4|Szczeblewski|Kera|2994|Norfolk Island|F|Daughter|||6|906 +3000|IL|Vermilion County|Indianola village|168|0|5|Szczeblewski|Randell|2996|Texas|M|Son|||4|907 +3000|IL|Vermilion County|Indianola village|168|0|6|Szczeblewski|Gerald|2998|Massachusetts|M|Son|||2|908 + +3000|ME|Penobscot County|Kingman UT|169|0|1|Glidewell|Ray Weston|2953|Washington|M|Head|||47|909 +3000|ME|Penobscot County|Kingman UT|169|0|2|Glidewell|Xuan|2960|Rwanda|F|Spouse|||40|910 +3000|ME|Penobscot County|Kingman UT|169|0|3|Glidewell|Geri|2986|Arizona|F|Daughter|||14|911 +3000|ME|Penobscot County|Kingman UT|169|0|4|Glidewell|Charolette|2996|California|F|Daughter|||4|912 +3000|ME|Penobscot County|Kingman UT|169|0|5|Glidewell|Maxwell|2998|Mississippi|M|Son|||2|913 + +3000|SC|Spartanburg County|Inman Mills CDP|170|0|1|Henderson|Jamie Chance|2937|New Jersey|M|Head|||63|914 +3000|SC|Spartanburg County|Inman Mills CDP|170|0|2|Henderson|Tess|2945|Kentucky|F|Spouse|||55|915 +3000|SC|Spartanburg County|Inman Mills CDP|170|0|3|Henderson|Leana|2969|Oklahoma|F|Daughter|||31|916 +3000|SC|Spartanburg County|Inman Mills CDP|170|0|4|Henderson|Werner|2981|North Carolina|M|Son|||19|917 +3000|SC|Spartanburg County|Inman Mills CDP|170|0|5|Henderson|Sherilyn|2995|Nebraska|F|Daughter|||5|918 + +3000|MN|Big Stone County|Prior township|171|0|1|Golec|Armanda Tammy|2979|Maryland|F|Head|||21|919 + +3000|PA|Potter County|Summit township|172|0|1|Curci|Reynaldo Leonardo|2952|Massachusetts|M|Head|||48|920 +3000|PA|Potter County|Summit township|172|0|2|Curci|Vanessa Ossie|2950|Georgia|F|Spouse|||50|921 +3000|PA|Potter County|Summit township|172|0|3|Curci|Sam|2978|Pennsylvania|M|Son|||22|922 +3000|PA|Potter County|Summit township|172|0|4|Curci|Ronnie|2988|Delaware|M|Son|||12|923 +3000|PA|Potter County|Summit township|172|0|5|Curci|Paula|2990|Illinois|F|Daughter|||10|924 +3000|PA|Potter County|Summit township|172|0|6|Curci|Vicky|2992|Tennessee|F|Daughter|||8|925 +3000|PA|Potter County|Summit township|172|0|7|Curci|Shad|2994|Colorado|M|Son|||6|926 + +3000|NY|Nassau County|Bellerose Terrace CDP|173|0|1|Larsen|Toney Dwayne|2970|Virginia|M|Head|||30|927 +3000|NY|Nassau County|Bellerose Terrace CDP|173|0|2|Larsen|Marietta|2995|Pennsylvania|F|Daughter|||5|928 +3000|NY|Nassau County|Bellerose Terrace CDP|173|0|3|Larsen|Jacquiline|2999|Burundi|F|Daughter|||1|929 + +3000|ID|Payette County|New Plymouth city|174|0|1|Peterson|Erick Marion|2949|Mississippi|M|Head|||51|930 +3000|ID|Payette County|New Plymouth city|174|0|2|Peterson|Bettyann|2952|New Jersey|F|Spouse|||48|931 +3000|ID|Payette County|New Plymouth city|174|0|3|Peterson|Cory|2976|Maryland|M|Son|||24|932 +3000|ID|Payette County|New Plymouth city|174|0|4|Peterson|Audrea|2982|Maryland|F|Daughter|||18|933 +3000|ID|Payette County|New Plymouth city|174|0|5|Peterson|Lacy|2988|West Virginia|M|Son|||12|934 +3000|ID|Payette County|New Plymouth city|174|0|6|Peterson|Lucius|2990|Georgia|M|Son|||10|935 +3000|ID|Payette County|New Plymouth city|174|0|7|Peterson|Kennith|2992|Kansas|M|Son|||8|936 +3000|ID|Payette County|New Plymouth city|174|0|8|Peterson|Mireille Lizzie|3000|Maine|F|Daughter|||0|937 + +3000|CA|Riverside County|Glen Avon CDP|175|0|1|Thomas|Julius Stephen|2949|New York|M|Head|||51|938 +3000|CA|Riverside County|Glen Avon CDP|175|0|2|Thomas|Arlene|2969|Ohio|F|Spouse|||31|939 +3000|CA|Riverside County|Glen Avon CDP|175|0|3|Thomas|Renea|2993|West Virginia|F|Daughter|||7|940 +3000|CA|Riverside County|Glen Avon CDP|175|0|4|Thomas|Lana|2995|Delaware|F|Daughter|||5|941 +3000|CA|Riverside County|Glen Avon CDP|175|0|5|Thomas|Lizeth|2997|Rhode Island|F|Daughter|||3|942 +3000|CA|Riverside County|Glen Avon CDP|175|0|6|Thomas|Jettie Marketta|2999|Gabon|F|Daughter|||1|943 + +3000|AZ|Apache County|Wide Ruins CDP|176|0|1|Novida|Stuart Ken|2953|Kansas|M|Head|||47|944 +3000|AZ|Apache County|Wide Ruins CDP|176|0|2|Novida|Merrilee|2950|Texas|F|Spouse|||50|945 +3000|AZ|Apache County|Wide Ruins CDP|176|0|3|Novida|Kim|2974|Benin|M|Son|||26|946 +3000|AZ|Apache County|Wide Ruins CDP|176|0|4|Novida|Dede|2984|Ecuador|F|Daughter|||16|947 +3000|AZ|Apache County|Wide Ruins CDP|176|0|5|Novida|Donovan|2988|Colorado|M|Son|||12|948 +3000|AZ|Apache County|Wide Ruins CDP|176|0|6|Novida|Eloise|2990|New Jersey|F|Daughter|||10|949 +3000|AZ|Apache County|Wide Ruins CDP|176|0|7|Novida|Jody|2994|New Hampshire|M|Son|||6|950 +3000|AZ|Apache County|Wide Ruins CDP|176|0|8|Novida|Glynda|2998|Hawaii|F|Daughter|||2|951 + +3000|NY|Greene County|Palenville CDP|177|0|1|Leger|Bryce Rusty|2968|Luxembourg|M|Head|||32|952 +3000|NY|Greene County|Palenville CDP|177|0|2|Leger|Hortense|2964|Alaska|F|Spouse|||36|953 +3000|NY|Greene County|Palenville CDP|177|0|3|Leger|Wilhemina|2990|Florida|F|Daughter|||10|954 +3000|NY|Greene County|Palenville CDP|177|0|4|Leger|Elly|2994|Dominican Republic|F|Daughter|||6|955 + +3000|TN|Washington County|Oak Grove CDP|178|0|1|Cabrera|Minh|2973|Utah|F|Head|||27|956 +3000|TN|Washington County|Oak Grove CDP|178|0|2|Cabrera|Garland|2995|Nebraska|M|Son|||5|957 +3000|TN|Washington County|Oak Grove CDP|178|0|3|Cabrera|Charlott|2997|Nebraska|F|Daughter|||3|958 +3000|TN|Washington County|Oak Grove CDP|178|0|4|Cabrera|Miquel Malik|2999|Florida|M|Son|||1|959 + +3000|MI|Berrien County|Chikaming township|179|0|1|Bilodeau|Theo Jason|2952|Ohio|M|Head|||48|960 +3000|MI|Berrien County|Chikaming township|179|0|2|Bilodeau|Marsha|2984|Minnesota|F|Daughter|||16|961 +3000|MI|Berrien County|Chikaming township|179|0|3|Bilodeau|Theodore Josef|2988|Michigan|M|Son|||12|962 +3000|MI|Berrien County|Chikaming township|179|0|4|Bilodeau|Lashaun|2990|Wyoming|F|Daughter|||10|963 +3000|MI|Berrien County|Chikaming township|179|0|5|Bilodeau|Clayton Deangelo|2994|Nepal|M|Son|||6|964 +3000|MI|Berrien County|Chikaming township|179|0|6|Bilodeau|Diego|2998|Florida|M|Son|||2|965 + +3000|ME|Oxford County|Canton town|180|0|1|Aalbers|Major Rigoberto|2952|North Carolina|M|Head|||48|966 +3000|ME|Oxford County|Canton town|180|0|2|Aalbers|Glory Susanna|2956|South Dakota|F|Spouse|||44|967 +3000|ME|Oxford County|Canton town|180|0|3|Aalbers|Nolan Minh|2988|Alaska|M|Son|||12|968 +3000|ME|Oxford County|Canton town|180|0|4|Aalbers|Elisha|2990|Minnesota|M|Son|||10|969 +3000|ME|Oxford County|Canton town|180|0|5|Aalbers|Rafael|2992|Idaho|M|Son|||8|970 +3000|ME|Oxford County|Canton town|180|0|6|Aalbers|Valarie|2994|Mississippi|F|Daughter|||6|971 + +3000|VA|Northumberland County|Heathsville CDP|181|0|1|Pauley|Leonardo|2953|Vermont|M|Head|||47|972 +3000|VA|Northumberland County|Heathsville CDP|181|0|2|Pauley|Elizabeth|2960|Illinois|F|Spouse|||40|973 +3000|VA|Northumberland County|Heathsville CDP|181|0|3|Pauley|Milton|2984|Arkansas|M|Son|||16|974 +3000|VA|Northumberland County|Heathsville CDP|181|0|4|Pauley|Kent|2986|Delaware|M|Son|||14|975 +3000|VA|Northumberland County|Heathsville CDP|181|0|5|Pauley|Erica|2988|Alabama|F|Daughter|||12|976 +3000|VA|Northumberland County|Heathsville CDP|181|0|6|Pauley|Wendi Carmelita|2990|Benin|F|Daughter|||10|977 +3000|VA|Northumberland County|Heathsville CDP|181|0|7|Pauley|Salvatore|2996|Hawaii|M|Son|||4|978 +3000|VA|Northumberland County|Heathsville CDP|181|0|8|Pauley|Beverley|3000|Vermont|F|Daughter|||0|979 + +3000|TX|Tarrant County|Forest Hill city|182|0|1|Chadbourne|Jason Leo|2981|Delaware|M|Head|||19|980 +3000|TX|Tarrant County|Forest Hill city|182|0|2|Chadbourne|Zelda|2997|Alaska|F|Daughter|||3|981 +3000|TX|Tarrant County|Forest Hill city|182|0|3|Chadbourne|Dylan|2999|Svalbard And Jan Mayen|M|Son|||1|982 + +3000|MO|Jasper County|Webb City city|183|0|1|Mathis|Thomas Agustin|2973|Illinois|M|Head|||27|983 +3000|MO|Jasper County|Webb City city|183|0|2|Mathis|Milagros|2979|Washington|F|Spouse|||21|984 +3000|MO|Jasper County|Webb City city|183|0|3|Mathis|Haydee|2999|Alabama|F|Daughter|||1|985 + +3000|KY|Boone County|Hebron CDP|184|0|1|Stork|Martin Shawn|2962|New Mexico|M|Head|||38|986 +3000|KY|Boone County|Hebron CDP|184|0|2|Stork|Miki|2964|Georgia|F|Spouse|||36|987 +3000|KY|Boone County|Hebron CDP|184|0|3|Stork|Emerson|2988|Alaska|M|Son|||12|988 +3000|KY|Boone County|Hebron CDP|184|0|4|Stork|Shandra|2998|Nevada|F|Daughter|||2|989 +3000|KY|Boone County|Hebron CDP|184|0|5|Stork|Darron|3000|Alabama|M|Son|||0|990 + +3000|VA|Mecklenburg County|Baskerville CDP|185|0|1|Brailsford|Royce Andrea|2949|Missouri|M|Head|||51|991 +3000|VA|Mecklenburg County|Baskerville CDP|185|0|2|Brailsford|Rosamond|2954|South Carolina|F|Spouse|||46|992 +3000|VA|Mecklenburg County|Baskerville CDP|185|0|3|Brailsford|Alonso|2982|Rhode Island|M|Son|||18|993 +3000|VA|Mecklenburg County|Baskerville CDP|185|0|4|Brailsford|Scott|2984|Vermont|F|Daughter|||16|994 +3000|VA|Mecklenburg County|Baskerville CDP|185|0|5|Brailsford|Gracia|2990|Iowa|F|Daughter|||10|995 +3000|VA|Mecklenburg County|Baskerville CDP|185|0|6|Brailsford|Tama Earleen|2996|Alabama|F|Daughter|||4|996 +3000|VA|Mecklenburg County|Baskerville CDP|185|0|7|Brailsford|Elnora|2998|Hawaii|F|Daughter|||2|997 + +3000|OK|Cherokee County|Briggs CDP|186|0|1|Akright|Jordon Clifton|2939|West Virginia|M|Head|||61|998 +3000|OK|Cherokee County|Briggs CDP|186|0|2|Akright|Thanh|2947|Netherlands Antilles|F|Spouse|||53|999 +3000|OK|Cherokee County|Briggs CDP|186|0|3|Akright|Frankie|2967|Ireland|F|Daughter|||33|1000 +3000|OK|Cherokee County|Briggs CDP|186|0|4|Akright|Jeff|2971|Maine|M|Son|||29|1001 +3000|OK|Cherokee County|Briggs CDP|186|0|5|Akright|Justin Vaughn|2987|Denmark|M|Son|||13|1002 +3000|OK|Cherokee County|Briggs CDP|186|0|6|Akright|Jayson|2991|New Hampshire|M|Son|||9|1003 +3000|OK|Cherokee County|Briggs CDP|186|0|7|Akright|Lashaun|2993|Kansas|F|Daughter|||7|1004 +3000|OK|Cherokee County|Briggs CDP|186|0|8|Akright|Blossom|2999|Arkansas|F|Daughter|||1|1005 + +3000|MN|Otter Tail County|Newton township|187|0|1|Mctiernan|Gerard|2969|Oklahoma|M|Head|||31|1006 +3000|MN|Otter Tail County|Newton township|187|0|2|Mctiernan|Shila|2980|Maine|F|Spouse|||20|1007 + +3000|FL|Baker County|Macclenny city|188|0|1|Estrada|Doyle|2946|Arkansas|M|Head|||54|1008 +3000|FL|Baker County|Macclenny city|188|0|2|Estrada|Stella|2968|South Dakota|F|Spouse|||32|1009 +3000|FL|Baker County|Macclenny city|188|0|3|Estrada|Sima Kym|2994|Kansas|F|Daughter|||6|1010 +3000|FL|Baker County|Macclenny city|188|0|4|Estrada|David|2996|Wisconsin|M|Son|||4|1011 +3000|FL|Baker County|Macclenny city|188|0|5|Estrada|Bryant|2998|Kosovo|M|Son|||2|1012 +3000|FL|Baker County|Macclenny city|188|0|6|Estrada|Lavada|3000|Bouvet Island|F|Daughter|||0|1013 + +3000|OH|Delaware County|Powell city|189|0|1|Hammond|Rickie|2939|Gibraltar|F|Head|||61|1014 +3000|OH|Delaware County|Powell city|189|0|2|Hammond|Jerold|2971|West Virginia|M|Son|||29|1015 +3000|OH|Delaware County|Powell city|189|0|3|Hammond|Leticia|2987|Myanmar|F|Daughter|||13|1016 +3000|OH|Delaware County|Powell city|189|0|4|Hammond|Bridgette|2989|Wisconsin|F|Daughter|||11|1017 +3000|OH|Delaware County|Powell city|189|0|5|Hammond|Kermit|2991|Kentucky|M|Son|||9|1018 +3000|OH|Delaware County|Powell city|189|0|6|Hammond|Rod|2997|Minnesota|M|Son|||3|1019 +3000|OH|Delaware County|Powell city|189|0|7|Hammond|Humberto|2999|Illinois|M|Son|||1|1020 + +3000|MN|Pipestone County|Sweet township|190|0|1|Heasley|Wendell Ike|2948|Vermont|M|Head|||52|1021 +3000|MN|Pipestone County|Sweet township|190|0|2|Heasley|Wendolyn|2969|Indonesia|F|Spouse|||31|1022 +3000|MN|Pipestone County|Sweet township|190|0|3|Heasley|Taina|2995|Mississippi|F|Daughter|||5|1023 +3000|MN|Pipestone County|Sweet township|190|0|4|Heasley|Elmer Leighann|2997|Connecticut|F|Daughter|||3|1024 +3000|MN|Pipestone County|Sweet township|190|0|5|Heasley|Earl|2999|Macau|M|Son|||1|1025 + +3000|MN|Pipestone County|Eden township|191|0|1|Thomas|Kelly Brenton|2944|Arkansas|M|Head|||56|1026 +3000|MN|Pipestone County|Eden township|191|0|2|Thomas|Cheree|2968|New Jersey|F|Daughter|||32|1027 +3000|MN|Pipestone County|Eden township|191|0|3|Thomas|Carroll Lorenza|2984|Oklahoma|F|Daughter|||16|1028 +3000|MN|Pipestone County|Eden township|191|0|4|Thomas|Tijuana|2986|Oregon|F|Daughter|||14|1029 +3000|MN|Pipestone County|Eden township|191|0|5|Thomas|Reggie|2996|Idaho|M|Son|||4|1030 +3000|MN|Pipestone County|Eden township|191|0|6|Thomas|Lewis Malcolm|3000|Georgia|M|Son|||0|1031 + +3000|PA|Indiana County|Washington township|192|0|1|Bartkowski|Wilber Emerson|2950|Wyoming|M|Head|||50|1032 +3000|PA|Indiana County|Washington township|192|0|2|Bartkowski|Scarlett Inger|2955|Alaska|F|Spouse|||45|1033 +3000|PA|Indiana County|Washington township|192|0|3|Bartkowski|Buena|2983|Turkmenistan|F|Daughter|||17|1034 +3000|PA|Indiana County|Washington township|192|0|4|Bartkowski|Mohammad Ahmed|2987|Wyoming|M|Son|||13|1035 +3000|PA|Indiana County|Washington township|192|0|5|Bartkowski|Lorelei|2989|Rhode Island|F|Daughter|||11|1036 +3000|PA|Indiana County|Washington township|192|0|6|Bartkowski|Maragret|2991|Arizona|F|Daughter|||9|1037 +3000|PA|Indiana County|Washington township|192|0|7|Bartkowski|Williemae|2997|Antigua And Barbuda|F|Daughter|||3|1038 +3000|PA|Indiana County|Washington township|192|0|8|Bartkowski|Ali Josef|2999|Nevada|M|Son|||1|1039 + +3000|SC|Greenville County|Wade Hampton CDP|193|0|1|Martz|Benito|2973|Connecticut|M|Head|||27|1040 +3000|SC|Greenville County|Wade Hampton CDP|193|0|2|Martz|Robbie Kip|2995|New Hampshire|M|Son|||5|1041 +3000|SC|Greenville County|Wade Hampton CDP|193|0|3|Martz|Nam|2999|Washington|F|Daughter|||1|1042 + +3000|PA|Armstrong County|Rural Valley borough|194|0|1|Schneider|Nelson Nathanael|2963|Minnesota|M|Head|||37|1043 +3000|PA|Armstrong County|Rural Valley borough|194|0|2|Schneider|Digna|2971|Djibouti|F|Spouse|||29|1044 +3000|PA|Armstrong County|Rural Valley borough|194|0|3|Schneider|Synthia|2993|New York|F|Daughter|||7|1045 +3000|PA|Armstrong County|Rural Valley borough|194|0|4|Schneider|Lovie Corene|2995|Wyoming|F|Daughter|||5|1046 +3000|PA|Armstrong County|Rural Valley borough|194|0|5|Schneider|Karina|2997|Nevada|F|Daughter|||3|1047 + +3000|NY|Chautauqua County|Sherman town|195|0|1|Scheidt|Jeff|2969|Alabama|M|Head|||31|1048 +3000|NY|Chautauqua County|Sherman town|195|0|2|Scheidt|Cassey|2970|Sri Lanka|F|Spouse|||30|1049 +3000|NY|Chautauqua County|Sherman town|195|0|3|Scheidt|Judi|2994|New Mexico|F|Daughter|||6|1050 +3000|NY|Chautauqua County|Sherman town|195|0|4|Scheidt|Jeannetta|2998|New Hampshire|F|Daughter|||2|1051 + +3000|PA|Cambria County|Lilly borough|196|0|1|Townsend|Desmond|2950|Louisiana|M|Head|||50|1052 +3000|PA|Cambria County|Lilly borough|196|0|2|Townsend|Shanel|2974|New Jersey|F|Spouse|||26|1053 +3000|PA|Cambria County|Lilly borough|196|0|3|Townsend|Gaston|2996|Ethiopia|M|Son|||4|1054 +3000|PA|Cambria County|Lilly borough|196|0|4|Townsend|Cyndi|2998|Missouri|F|Daughter|||2|1055 + +3000|NM|Hidalgo County|Windmill CDP|197|0|1|Zien|Andreas Hipolito|2947|United States Minor Outlying Islands|M|Head|||53|1056 +3000|NM|Hidalgo County|Windmill CDP|197|0|2|Zien|Renata|2966|West Virginia|F|Spouse|||34|1057 +3000|NM|Hidalgo County|Windmill CDP|197|0|3|Zien|Christian Eliana|2986|Tennessee|F|Daughter|||14|1058 +3000|NM|Hidalgo County|Windmill CDP|197|0|4|Zien|Ahmad|2988|Georgia|M|Son|||12|1059 +3000|NM|Hidalgo County|Windmill CDP|197|0|5|Zien|Hillary|2992|Arkansas|F|Daughter|||8|1060 +3000|NM|Hidalgo County|Windmill CDP|197|0|6|Zien|Jenniffer|2994|Iowa|F|Daughter|||6|1061 +3000|NM|Hidalgo County|Windmill CDP|197|0|7|Zien|Kareem|2998|Oregon|M|Son|||2|1062 + +3000|MT|Glacier County|Babb CDP|198|0|1|Irvin|Lou Darrel|2970|California|M|Head|||30|1063 +3000|MT|Glacier County|Babb CDP|198|0|2|Irvin|Kennith|2992|New York|M|Son|||8|1064 +3000|MT|Glacier County|Babb CDP|198|0|3|Irvin|Debora|2994|Oregon|F|Daughter|||6|1065 +3000|MT|Glacier County|Babb CDP|198|0|4|Irvin|Erich|2996|Maine|M|Son|||4|1066 + +3000|OH|Hamilton County|Wyoming city|199|0|1|Bridgford|Felipe Phillip|2970|Nebraska|M|Head|||30|1067 +3000|OH|Hamilton County|Wyoming city|199|0|2|Bridgford|Fernande|2975|South Carolina|F|Spouse|||25|1068 +3000|OH|Hamilton County|Wyoming city|199|0|3|Bridgford|Joey|2995|Oklahoma|M|Son|||5|1069 + +3000|TX|Henderson County|Poynor town|200|0|1|Kimbell|Walker Jewel|2944|Kentucky|M|Head|||56|1070 +3000|TX|Henderson County|Poynor town|200|0|2|Kimbell|Jenelle|2940|Maryland|F|Spouse|||60|1071 +3000|TX|Henderson County|Poynor town|200|0|3|Kimbell|Gale|2966|Iowa|M|Son|||34|1072 +3000|TX|Henderson County|Poynor town|200|0|4|Kimbell|Dudley|2968|South Dakota|M|Son|||32|1073 +3000|TX|Henderson County|Poynor town|200|0|5|Kimbell|Georgina|2970|Pennsylvania|F|Daughter|||30|1074 +3000|TX|Henderson County|Poynor town|200|0|6|Kimbell|Malka Adelina|2988|Andorra|F|Daughter|||12|1075 +3000|TX|Henderson County|Poynor town|200|0|7|Kimbell|Gordon|2992|Connecticut|M|Son|||8|1076 + +3000|OK|Creek County|Bristow city|201|0|1|Dement|Sean Bernard|2941|Texas|M|Head|||59|1077 +3000|OK|Creek County|Bristow city|201|0|2|Dement|Gertie|2965|Georgia|F|Spouse|||35|1078 +3000|OK|Creek County|Bristow city|201|0|3|Dement|Yang|2985|Louisiana|F|Daughter|||15|1079 +3000|OK|Creek County|Bristow city|201|0|4|Dement|Carmelo|2987|Nevada|M|Son|||13|1080 +3000|OK|Creek County|Bristow city|201|0|5|Dement|Lindsay|2991|New Mexico|M|Son|||9|1081 +3000|OK|Creek County|Bristow city|201|0|6|Dement|Trevor|2993|Kentucky|M|Son|||7|1082 + +3000|CA|Madera County|Coarsegold CDP|202|0|1|Ferrar|Roselia|2968|Latvia|F|Head|||32|1083 +3000|CA|Madera County|Coarsegold CDP|202|0|2|Ferrar|Chiquita|2988|Utah|F|Daughter|||12|1084 +3000|CA|Madera County|Coarsegold CDP|202|0|3|Ferrar|Errol|2992|Connecticut|M|Son|||8|1085 +3000|CA|Madera County|Coarsegold CDP|202|0|4|Ferrar|Donn|2998|Indiana|M|Son|||2|1086 +3000|CA|Madera County|Coarsegold CDP|202|0|5|Ferrar|Granville|3000|Tanzania, United Republic Of|M|Son|||0|1087 + +3000|MI|Osceola County|Marion township|203|0|1|Dohm|Damion Freddy|2940|Washington|M|Head|||60|1088 +3000|MI|Osceola County|Marion township|203|0|2|Dohm|Jo|2945|Delaware|F|Spouse|||55|1089 +3000|MI|Osceola County|Marion township|203|0|3|Dohm|Soo|2973|New York|F|Daughter|||27|1090 +3000|MI|Osceola County|Marion township|203|0|4|Dohm|Hugo|2985|Uzbekistan|M|Son|||15|1091 +3000|MI|Osceola County|Marion township|203|0|5|Dohm|Lewis|2987|Alaska|M|Son|||13|1092 +3000|MI|Osceola County|Marion township|203|0|6|Dohm|Sol|2989|Idaho|F|Daughter|||11|1093 +3000|MI|Osceola County|Marion township|203|0|7|Dohm|Kurt|2999|Delaware|M|Son|||1|1094 + +3000|NE|Thomas County|Seneca village|204|0|1|Jeswald|Rupert Ian|2955|Texas|M|Head|||45|1095 +3000|NE|Thomas County|Seneca village|204|0|2|Jeswald|Holly|2982|Illinois|F|Daughter|||18|1096 +3000|NE|Thomas County|Seneca village|204|0|3|Jeswald|Octavio|2984|New Zealand|M|Son|||16|1097 +3000|NE|Thomas County|Seneca village|204|0|4|Jeswald|Codi|2990|Texas|F|Daughter|||10|1098 +3000|NE|Thomas County|Seneca village|204|0|5|Jeswald|Malcom|2996|New York|M|Son|||4|1099 + +3000|PA|Northampton County|Freemansburg borough|205|0|1|Sthilaire|Douglass|2944|Idaho|M|Head|||56|1100 +3000|PA|Northampton County|Freemansburg borough|205|0|2|Sthilaire|Vesta|2967|Nebraska|F|Spouse|||33|1101 +3000|PA|Northampton County|Freemansburg borough|205|0|3|Sthilaire|Antoinette|2987|American Samoa|F|Daughter|||13|1102 +3000|PA|Northampton County|Freemansburg borough|205|0|4|Sthilaire|Creola|2989|Pennsylvania|F|Daughter|||11|1103 +3000|PA|Northampton County|Freemansburg borough|205|0|5|Sthilaire|Marivel|2991|Hawaii|F|Daughter|||9|1104 + +3000|AL|Monroe County|Excel town|206|0|1|Stear|Antonia Jarod|2939|Maryland|M|Head|||61|1105 +3000|AL|Monroe County|Excel town|206|0|2|Stear|Rachele|2973|North Carolina|F|Daughter|||27|1106 +3000|AL|Monroe County|Excel town|206|0|3|Stear|Percy|2981|Western Sahara|M|Son|||19|1107 +3000|AL|Monroe County|Excel town|206|0|4|Stear|Hoa Karen|2985|Missouri|F|Daughter|||15|1108 +3000|AL|Monroe County|Excel town|206|0|5|Stear|Clay|2987|Egypt|M|Son|||13|1109 +3000|AL|Monroe County|Excel town|206|0|6|Stear|Don|2989|Utah|M|Son|||11|1110 +3000|AL|Monroe County|Excel town|206|0|7|Stear|Brandie|2991|Vermont|F|Daughter|||9|1111 +3000|AL|Monroe County|Excel town|206|0|8|Stear|Kory|2997|Tennessee|M|Son|||3|1112 + +3000|FL|Lake County|Yalaha CDP|207|0|1|Mckinley|Clifton Jude|2960|Kentucky|M|Head|||40|1113 +3000|FL|Lake County|Yalaha CDP|207|0|2|Mckinley|Amira|2975|Massachusetts|F|Spouse|||25|1114 +3000|FL|Lake County|Yalaha CDP|207|0|3|Mckinley|Waylon|2995|Alaska|M|Son|||5|1115 +3000|FL|Lake County|Yalaha CDP|207|0|4|Mckinley|Flo|2997|Utah|F|Daughter|||3|1116 +3000|FL|Lake County|Yalaha CDP|207|0|5|Mckinley|Matt|2999|West Virginia|M|Son|||1|1117 + +3000|CO|Larimer County|Laporte CDP|208|0|1|Dickey|Wendell Paris|2967|Gibraltar|M|Head|||33|1118 +3000|CO|Larimer County|Laporte CDP|208|0|2|Dickey|Kittie|2968|Illinois|F|Spouse|||32|1119 +3000|CO|Larimer County|Laporte CDP|208|0|3|Dickey|Otis|2988|Georgia|M|Son|||12|1120 +3000|CO|Larimer County|Laporte CDP|208|0|4|Dickey|Donny|2992|Montana|M|Son|||8|1121 +3000|CO|Larimer County|Laporte CDP|208|0|5|Dickey|Russ|2996|Maryland|M|Son|||4|1122 +3000|CO|Larimer County|Laporte CDP|208|0|6|Dickey|Nikita Mable|2998|Nebraska|F|Daughter|||2|1123 +3000|CO|Larimer County|Laporte CDP|208|0|7|Dickey|Tomas|3000|Mississippi|M|Son|||0|1124 + +3000|LA|Jefferson Parish|Elmwood CDP|209|0|1|Barjas|Zack Barrett|2964|Oregon|M|Head|||36|1125 +3000|LA|Jefferson Parish|Elmwood CDP|209|0|2|Barjas|Chelsie|3000|California|F|Daughter|||0|1126 + +3000|PA|Allegheny County|Franklin Park borough|210|0|1|Block|Ezequiel Josue|2976|Florida|M|Head|||24|1127 +3000|PA|Allegheny County|Franklin Park borough|210|0|2|Block|Lakiesha|2977|Bahrain|F|Spouse|||23|1128 +3000|PA|Allegheny County|Franklin Park borough|210|0|3|Block|Jonathon Raphael|2999|Minnesota|M|Son|||1|1129 + +3000|MA|Franklin County|Whately town|211|0|1|Leimkuhler|Winford Sherwood|2965|Colorado|M|Head|||35|1130 +3000|MA|Franklin County|Whately town|211|0|2|Leimkuhler|Camellia|2997|Bulgaria|F|Daughter|||3|1131 +3000|MA|Franklin County|Whately town|211|0|3|Leimkuhler|Gerry|2999|North Carolina|F|Daughter|||1|1132 + +3000|CA|Stanislaus County|Ceres city|212|0|1|Reeves|Quentin|2972|West Virginia|M|Head|||28|1133 +3000|CA|Stanislaus County|Ceres city|212|0|2|Reeves|Anjanette|2982|Florida|F|Spouse|||18|1134 + +3000|KY|Oldham County|La Grange city|213|0|1|Wood|Adolfo Alex|2937|Wyoming|M|Head|||63|1135 +3000|KY|Oldham County|La Grange city|213|0|2|Wood|Juliet Tarra|2938|Tennessee|F|Spouse|||62|1136 +3000|KY|Oldham County|La Grange city|213|0|3|Wood|Simon|2964|Viet Nam|M|Son|||36|1137 +3000|KY|Oldham County|La Grange city|213|0|4|Wood|Michel|2972|Rhode Island|M|Son|||28|1138 +3000|KY|Oldham County|La Grange city|213|0|5|Wood|Ian|2992|Saint Kitts And Nevis|M|Son|||8|1139 +3000|KY|Oldham County|La Grange city|213|0|6|Wood|Euna|3000|Missouri|F|Daughter|||0|1140 + +3000|KS|Marion County|Lehigh city|214|0|1|Thorngren|Raymon Garry|2955|Indonesia|M|Head|||45|1141 +3000|KS|Marion County|Lehigh city|214|0|2|Thorngren|Tim|2999|Alabama|M|Son|||1|1142 + +3000|NH|Belknap County|Alton CDP|215|0|1|Haisten|Alberto Vern|2980|Italy|M|Head|||20|1143 +3000|NH|Belknap County|Alton CDP|215|0|2|Haisten|Francesco|2999|Illinois|M|Son|||1|1144 + +3000|AZ|Maricopa County|Kaka CDP|216|0|1|Adelman|Thalia|2984|Montana|F|Head|||16|1145 + +3000|ND|Griggs County|Hannaford city|217|0|1|Abraham|Giovanni Mickey|2950|Maine|M|Head|||50|1146 +3000|ND|Griggs County|Hannaford city|217|0|2|Abraham|Mollie|2965|Tennessee|F|Spouse|||35|1147 +3000|ND|Griggs County|Hannaford city|217|0|3|Abraham|Lindsey|2985|Poland|F|Daughter|||15|1148 +3000|ND|Griggs County|Hannaford city|217|0|4|Abraham|Lyndon|2989|Wisconsin|M|Son|||11|1149 +3000|ND|Griggs County|Hannaford city|217|0|5|Abraham|Irvin|2997|South Carolina|M|Son|||3|1150 +3000|ND|Griggs County|Hannaford city|217|0|6|Abraham|Zofia|2999|Nebraska|F|Daughter|||1|1151 + +3000|PA|Perry County|Liverpool borough|218|0|1|Ruopp|Keven Lawrence|2980|West Virginia|M|Head|||20|1152 + +3000|GA|Barrow County, Gwinnett County, Hall County, Jackson County|Braselton town|219|0|1|Gill|Monserrate|2965|South Dakota|F|Head|||35|1153 +3000|GA|Barrow County, Gwinnett County, Hall County, Jackson County|Braselton town|219|0|2|Gill|Karin Ozella|2987|Virginia|F|Daughter|||13|1154 +3000|GA|Barrow County, Gwinnett County, Hall County, Jackson County|Braselton town|219|0|3|Gill|Maurice|2989|Arizona|M|Son|||11|1155 +3000|GA|Barrow County, Gwinnett County, Hall County, Jackson County|Braselton town|219|0|4|Gill|Marquis|2991|New York|M|Son|||9|1156 +3000|GA|Barrow County, Gwinnett County, Hall County, Jackson County|Braselton town|219|0|5|Gill|Donn|2997|Lao People's Democratic Republic|M|Son|||3|1157 + +3000|MI|Oakland County|Clawson city|220|0|1|Drakos|Larry Aubrey|2960|Minnesota|M|Head|||40|1158 +3000|MI|Oakland County|Clawson city|220|0|2|Drakos|Myrtice|2960|Virginia|F|Spouse|||40|1159 +3000|MI|Oakland County|Clawson city|220|0|3|Drakos|Darrell|2982|Indiana|M|Son|||18|1160 +3000|MI|Oakland County|Clawson city|220|0|4|Drakos|Shawnda|2988|Bahamas|F|Daughter|||12|1161 +3000|MI|Oakland County|Clawson city|220|0|5|Drakos|Kattie|2990|Spain|F|Daughter|||10|1162 +3000|MI|Oakland County|Clawson city|220|0|6|Drakos|Estrella|2992|Pennsylvania|F|Daughter|||8|1163 +3000|MI|Oakland County|Clawson city|220|0|7|Drakos|Guy|2998|Wisconsin|M|Son|||2|1164 + +3000|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|1|Ketterman|Merle Alec|2946|Delaware|M|Head|||54|1165 +3000|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|2|Ketterman|Patty|2958|North Dakota|F|Spouse|||42|1166 +3000|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|3|Ketterman|Tomi|2978|Pennsylvania|F|Daughter|||22|1167 +3000|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|4|Ketterman|Royce|2986|Falkland Islands (malvinas)|M|Son|||14|1168 +3000|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|5|Ketterman|Jewell|2988|Michigan|M|Son|||12|1169 +3000|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|6|Ketterman|Blossom|2992|Chile|F|Daughter|||8|1170 +3000|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|7|Ketterman|Ellis|2998|Taiwan, Province Of China|M|Son|||2|1171 + +3000|LA|Jefferson Parish|Kenner city|222|0|1|Lapari|Rufus Benton|2941|Missouri|M|Head|||59|1172 +3000|LA|Jefferson Parish|Kenner city|222|0|2|Lapari|Breanne Alena|2954|Nevada|F|Spouse|||46|1173 +3000|LA|Jefferson Parish|Kenner city|222|0|3|Lapari|Jessica|2982|Montserrat|F|Daughter|||18|1174 +3000|LA|Jefferson Parish|Kenner city|222|0|4|Lapari|Lindsey|2986|Georgia|F|Daughter|||14|1175 +3000|LA|Jefferson Parish|Kenner city|222|0|5|Lapari|Breanna Carla|2992|Illinois|F|Daughter|||8|1176 +3000|LA|Jefferson Parish|Kenner city|222|0|6|Lapari|Denisha|2996|Ohio|F|Daughter|||4|1177 +3000|LA|Jefferson Parish|Kenner city|222|0|7|Lapari|Jerrell|2998|Ghana|M|Son|||2|1178 + +3000|NM|Taos County|Rio Lucio CDP|223|0|1|Mohr|Abdul Herschel|2943|Indiana|M|Head|||57|1179 +3000|NM|Taos County|Rio Lucio CDP|223|0|2|Mohr|Britt Erminia|2942|Greece|F|Spouse|||58|1180 +3000|NM|Taos County|Rio Lucio CDP|223|0|3|Mohr|Abdul|2962|Minnesota|M|Son|||38|1181 +3000|NM|Taos County|Rio Lucio CDP|223|0|4|Mohr|Francisca|2990|Alaska|F|Daughter|||10|1182 +3000|NM|Taos County|Rio Lucio CDP|223|0|5|Mohr|Mellie|2994|Czech Republic|F|Daughter|||6|1183 +3000|NM|Taos County|Rio Lucio CDP|223|0|6|Mohr|Paul|2998|Vermont|M|Son|||2|1184 +3000|NM|Taos County|Rio Lucio CDP|223|0|7|Mohr|Aracelis|3000|Montana|F|Daughter|||0|1185 + +3000|ME|Penobscot County|Garland town|224|0|1|Welch|Benton Mason|2954|Kansas|M|Head|||46|1186 +3000|ME|Penobscot County|Garland town|224|0|2|Welch|Yetta|2974|New York|F|Spouse|||26|1187 +3000|ME|Penobscot County|Garland town|224|0|3|Welch|Concha|2994|Jordan|F|Daughter|||6|1188 +3000|ME|Penobscot County|Garland town|224|0|4|Welch|Georgia Gabriel|2998|Tennessee|F|Daughter|||2|1189 +3000|ME|Penobscot County|Garland town|224|0|5|Welch|Micha|3000|Ohio|F|Daughter|||0|1190 + +3000|SD|Corson County|Bullhead CDP|225|0|1|Fergus|Kent Jeffrey|2953|Massachusetts|M|Head|||47|1191 +3000|SD|Corson County|Bullhead CDP|225|0|2|Fergus|Vasiliki|2957|Alaska|F|Spouse|||43|1192 +3000|SD|Corson County|Bullhead CDP|225|0|3|Fergus|Irwin Mauricio|2985|Qatar|M|Son|||15|1193 +3000|SD|Corson County|Bullhead CDP|225|0|4|Fergus|Lindsay Wayne|2989|New Mexico|M|Son|||11|1194 +3000|SD|Corson County|Bullhead CDP|225|0|5|Fergus|Junior|2995|Dominican Republic|M|Son|||5|1195 +3000|SD|Corson County|Bullhead CDP|225|0|6|Fergus|Sharan|2997|Kansas|F|Daughter|||3|1196 +3000|SD|Corson County|Bullhead CDP|225|0|7|Fergus|Art|2999|Grenada|M|Son|||1|1197 + +3000|WI|Waupaca County|Mukwa town|226|0|1|Webb|Buster Gustavo|2937|Pennsylvania|M|Head|||63|1198 +3000|WI|Waupaca County|Mukwa town|226|0|2|Webb|Dion|2959|Idaho|F|Spouse|||41|1199 +3000|WI|Waupaca County|Mukwa town|226|0|3|Webb|Evan|2979|Colorado|M|Son|||21|1200 +3000|WI|Waupaca County|Mukwa town|226|0|4|Webb|Petrina Minda|2985|Iowa|F|Daughter|||15|1201 +3000|WI|Waupaca County|Mukwa town|226|0|5|Webb|Lina|2987|West Virginia|F|Daughter|||13|1202 +3000|WI|Waupaca County|Mukwa town|226|0|6|Webb|Mee|2991|Washington|F|Daughter|||9|1203 +3000|WI|Waupaca County|Mukwa town|226|0|7|Webb|Harvey|2993|Minnesota|M|Son|||7|1204 +3000|WI|Waupaca County|Mukwa town|226|0|8|Webb|Chas|2995|Michigan|M|Son|||5|1205 + +3000|FL|Broward County|Lazy Lake village|227|0|1|Pickering|Terence Phillip|2977|Hawaii|M|Head|||23|1206 + +3000|LA|Avoyelles Parish|Marksville city|228|0|1|Vannatta|Cornelius Elias|2948|Idaho|M|Head|||52|1207 +3000|LA|Avoyelles Parish|Marksville city|228|0|2|Vannatta|Robert Shanita|2945|Kentucky|F|Spouse|||55|1208 +3000|LA|Avoyelles Parish|Marksville city|228|0|3|Vannatta|Daniela|2973|Uzbekistan|F|Daughter|||27|1209 +3000|LA|Avoyelles Parish|Marksville city|228|0|4|Vannatta|Amber Trudy|2983|Virgin Islands, British|F|Daughter|||17|1210 +3000|LA|Avoyelles Parish|Marksville city|228|0|5|Vannatta|Celsa|2985|Minnesota|F|Daughter|||15|1211 +3000|LA|Avoyelles Parish|Marksville city|228|0|6|Vannatta|Eliza|2987|Oklahoma|F|Daughter|||13|1212 +3000|LA|Avoyelles Parish|Marksville city|228|0|7|Vannatta|Gracie|2989|Virgin Islands, British|F|Daughter|||11|1213 +3000|LA|Avoyelles Parish|Marksville city|228|0|8|Vannatta|Damon|2991|Ireland|M|Son|||9|1214 +3000|LA|Avoyelles Parish|Marksville city|228|0|9|Vannatta|Desmond|2997|Mississippi|M|Son|||3|1215 + +3000|OK|Osage County|Foraker town|229|0|1|Oliver|Gaylord|2960|Iowa|M|Head|||40|1216 +3000|OK|Osage County|Foraker town|229|0|2|Oliver|Chantal|2962|Maryland|F|Spouse|||38|1217 +3000|OK|Osage County|Foraker town|229|0|3|Oliver|Pete|2984|Massachusetts|M|Son|||16|1218 +3000|OK|Osage County|Foraker town|229|0|4|Oliver|Jules|2986|Rhode Island|M|Son|||14|1219 +3000|OK|Osage County|Foraker town|229|0|5|Oliver|Mitchel Kieth|2988|South Carolina|M|Son|||12|1220 +3000|OK|Osage County|Foraker town|229|0|6|Oliver|King|2994|Wyoming|M|Son|||6|1221 +3000|OK|Osage County|Foraker town|229|0|7|Oliver|Marlin|2996|South Dakota|M|Son|||4|1222 +3000|OK|Osage County|Foraker town|229|0|8|Oliver|Scottie|3000|Texas|F|Daughter|||0|1223 + +3000|AR|Saline County|Bryant city|230|0|1|Black|Titus Chet|2939|North Dakota|M|Head|||61|1224 +3000|AR|Saline County|Bryant city|230|0|2|Black|Nevada Mika|2962|Montana|F|Spouse|||38|1225 +3000|AR|Saline County|Bryant city|230|0|3|Black|Paris|2984|Canada|F|Daughter|||16|1226 +3000|AR|Saline County|Bryant city|230|0|4|Black|Audra Billie|2986|Illinois|F|Daughter|||14|1227 +3000|AR|Saline County|Bryant city|230|0|5|Black|Darwin Adolph|2988|Indiana|M|Son|||12|1228 +3000|AR|Saline County|Bryant city|230|0|6|Black|Genevive|2990|Barbados|F|Daughter|||10|1229 +3000|AR|Saline County|Bryant city|230|0|7|Black|Robert|2992|Micronesia, Federated States Of|M|Son|||8|1230 +3000|AR|Saline County|Bryant city|230|0|8|Black|Norene|3000|Connecticut|F|Daughter|||0|1231 + +3000|MA|Franklin County|Millers Falls CDP|231|0|1|Esper|Jonah Jules|2954|Cameroon|M|Head|||46|1232 +3000|MA|Franklin County|Millers Falls CDP|231|0|2|Esper|Melanie|2950|New Caledonia|F|Spouse|||50|1233 +3000|MA|Franklin County|Millers Falls CDP|231|0|3|Esper|Easter|2980|California|F|Daughter|||20|1234 +3000|MA|Franklin County|Millers Falls CDP|231|0|4|Esper|Wayne Riley|2982|Arkansas|M|Son|||18|1235 +3000|MA|Franklin County|Millers Falls CDP|231|0|5|Esper|Milford|2988|Oklahoma|M|Son|||12|1236 +3000|MA|Franklin County|Millers Falls CDP|231|0|6|Esper|Cruz|2992|North Carolina|F|Daughter|||8|1237 +3000|MA|Franklin County|Millers Falls CDP|231|0|7|Esper|Corene|2994|Alabama|F|Daughter|||6|1238 +3000|MA|Franklin County|Millers Falls CDP|231|0|8|Esper|Valentine|2998|Wisconsin|M|Son|||2|1239 + +3000|WA|Clark County|Cherry Grove CDP|232|0|1|Shin|Darwin Brooks|2937|Mississippi|M|Head|||63|1240 +3000|WA|Clark County|Cherry Grove CDP|232|0|2|Shin|Giselle|2960|Maine|F|Spouse|||40|1241 +3000|WA|Clark County|Cherry Grove CDP|232|0|3|Shin|Armanda|2986|Florida|F|Daughter|||14|1242 +3000|WA|Clark County|Cherry Grove CDP|232|0|4|Shin|Shayne|2988|Burundi|F|Daughter|||12|1243 +3000|WA|Clark County|Cherry Grove CDP|232|0|5|Shin|Cyndy|2996|Connecticut|F|Daughter|||4|1244 + +3000|AZ|Cochise County|Tombstone city|233|0|1|Cooper|Kerry Herman|2976|Lao People's Democratic Republic|M|Head|||24|1245 +3000|AZ|Cochise County|Tombstone city|233|0|2|Cooper|Michael|2978|Vermont|F|Spouse|||22|1246 +3000|AZ|Cochise County|Tombstone city|233|0|3|Cooper|Winfred|2998|California|M|Son|||2|1247 + +3000|PA|Cumberland County|Upper Frankford township|234|0|1|Hall|Jordan Johnie|2969|Louisiana|M|Head|||31|1248 +3000|PA|Cumberland County|Upper Frankford township|234|0|2|Hall|Virgie|2970|Mississippi|F|Spouse|||30|1249 +3000|PA|Cumberland County|Upper Frankford township|234|0|3|Hall|Russel|2990|Oregon|M|Son|||10|1250 +3000|PA|Cumberland County|Upper Frankford township|234|0|4|Hall|Marguerite|2994|Indiana|F|Daughter|||6|1251 +3000|PA|Cumberland County|Upper Frankford township|234|0|5|Hall|Frieda|2996|Nevada|F|Daughter|||4|1252 +3000|PA|Cumberland County|Upper Frankford township|234|0|6|Hall|Michael|2998|Oklahoma|M|Son|||2|1253 + +3000|WI|Lincoln County|Rock Falls town|235|0|1|Fleming|Reid Millard|2943|Michigan|M|Head|||57|1254 +3000|WI|Lincoln County|Rock Falls town|235|0|2|Fleming|Latricia|2939|Minnesota|F|Spouse|||61|1255 +3000|WI|Lincoln County|Rock Falls town|235|0|3|Fleming|Lincoln|2969|Kentucky|M|Son|||31|1256 +3000|WI|Lincoln County|Rock Falls town|235|0|4|Fleming|Pasquale|2973|Wyoming|M|Son|||27|1257 +3000|WI|Lincoln County|Rock Falls town|235|0|5|Fleming|Avis|2989|Indiana|F|Daughter|||11|1258 +3000|WI|Lincoln County|Rock Falls town|235|0|6|Fleming|Jamie Rusty|2991|Maryland|M|Son|||9|1259 +3000|WI|Lincoln County|Rock Falls town|235|0|7|Fleming|Dominick|2997|Norway|M|Son|||3|1260 + +3000|AZ|Mohave County|Crozier CDP|236|0|1|Maloof|Guillermo Alberto|2952|South Carolina|M|Head|||48|1261 +3000|AZ|Mohave County|Crozier CDP|236|0|2|Maloof|Johanne|2961|New Mexico|F|Spouse|||39|1262 +3000|AZ|Mohave County|Crozier CDP|236|0|3|Maloof|Leif|2983|Mayotte|M|Son|||17|1263 +3000|AZ|Mohave County|Crozier CDP|236|0|4|Maloof|Melonie|2987|Costa Rica|F|Daughter|||13|1264 +3000|AZ|Mohave County|Crozier CDP|236|0|5|Maloof|Alisa Jeffie|2989|Nevada|F|Daughter|||11|1265 +3000|AZ|Mohave County|Crozier CDP|236|0|6|Maloof|Christy|2991|California|F|Daughter|||9|1266 +3000|AZ|Mohave County|Crozier CDP|236|0|7|Maloof|Jamison|2995|Bouvet Island|M|Son|||5|1267 +3000|AZ|Mohave County|Crozier CDP|236|0|8|Maloof|Clinton|2997|Virginia|M|Son|||3|1268 + +3000|CA|San Diego County|Camp Pendleton South CDP|237|0|1|Rios|Vance Jerrell|2960|New Hampshire|M|Head|||40|1269 +3000|CA|San Diego County|Camp Pendleton South CDP|237|0|2|Rios|Kimberli|2992|West Virginia|F|Daughter|||8|1270 +3000|CA|San Diego County|Camp Pendleton South CDP|237|0|3|Rios|Wilford|2994|Tennessee|M|Son|||6|1271 +3000|CA|San Diego County|Camp Pendleton South CDP|237|0|4|Rios|Omega|3000|Florida|F|Daughter|||0|1272 + +3000|CO|Garfield County|Catherine CDP|238|0|1|Rawlins|Nigel Gene|2976|Virginia|M|Head|||24|1273 +3000|CO|Garfield County|Catherine CDP|238|0|2|Rawlins|Dana Tamiko|2981|Louisiana|F|Spouse|||19|1274 + +3000|TX|Wilson County|La Vernia city|239|0|1|Leonard|Dante|2953|New Mexico|M|Head|||47|1275 +3000|TX|Wilson County|La Vernia city|239|0|2|Leonard|Maurita|2962|Tennessee|F|Spouse|||38|1276 +3000|TX|Wilson County|La Vernia city|239|0|3|Leonard|Karleen|2984|France|F|Daughter|||16|1277 +3000|TX|Wilson County|La Vernia city|239|0|4|Leonard|Porsha|2986|Illinois|F|Daughter|||14|1278 +3000|TX|Wilson County|La Vernia city|239|0|5|Leonard|Kourtney|2996|Washington|F|Daughter|||4|1279 +3000|TX|Wilson County|La Vernia city|239|0|6|Leonard|Junior|2998|Russian Federation|M|Son|||2|1280 +3000|TX|Wilson County|La Vernia city|239|0|7|Leonard|Janelle|3000|Delaware|F|Daughter|||0|1281 + +3000|AR|Columbia County|Waldo city|240|0|1|Pfleger|Jed Colton|2972|Falkland Islands (malvinas)|M|Head|||28|1282 +3000|AR|Columbia County|Waldo city|240|0|2|Pfleger|Devin|2971|Maryland|F|Spouse|||29|1283 +3000|AR|Columbia County|Waldo city|240|0|3|Pfleger|Pearl Monnie|2999|Pennsylvania|F|Daughter|||1|1284 + +3000|WI|Racine County|Union Grove village|241|0|1|Wild|Marcos Grover|2973|New Jersey|M|Head|||27|1285 +3000|WI|Racine County|Union Grove village|241|0|2|Wild|Claudie|2978|Pennsylvania|F|Spouse|||22|1286 + +3000|MI|Kalkaska County|Boardman township|242|0|1|Leroux|Nicolas Rolando|2944|Wisconsin|M|Head|||56|1287 +3000|MI|Kalkaska County|Boardman township|242|0|2|Leroux|Toccara|2957|South Carolina|F|Spouse|||43|1288 +3000|MI|Kalkaska County|Boardman township|242|0|3|Leroux|Mario|2985|New Jersey|M|Son|||15|1289 +3000|MI|Kalkaska County|Boardman township|242|0|4|Leroux|Junior|2989|Vermont|M|Son|||11|1290 +3000|MI|Kalkaska County|Boardman township|242|0|5|Leroux|Thresa|2995|Nebraska|F|Daughter|||5|1291 + +3000|OK|Jackson County|East Duke town|243|0|1|Wyrich|Hank Calvin|2982|Colorado|M|Head|||18|1292 +3000|OK|Jackson County|East Duke town|243|0|2|Wyrich|Francine|2978|Tennessee|F|Spouse|||22|1293 +3000|OK|Jackson County|East Duke town|243|0|3|Wyrich|Fredrick|2998|North Carolina|M|Son|||2|1294 +3000|OK|Jackson County|East Duke town|243|0|4|Wyrich|Thanh|3000|North Dakota|M|Son|||0|1295 + +3000|WV|Fayette County|Deep Water CDP|244|0|1|Palmer|Sonny Tyree|2937|Utah|M|Head|||63|1296 +3000|WV|Fayette County|Deep Water CDP|244|0|2|Palmer|Wesley|2985|Massachusetts|F|Daughter|||15|1297 +3000|WV|Fayette County|Deep Water CDP|244|0|3|Palmer|Jaclyn|2991|Ohio|F|Daughter|||9|1298 +3000|WV|Fayette County|Deep Water CDP|244|0|4|Palmer|Neoma|2993|Vermont|F|Daughter|||7|1299 +3000|WV|Fayette County|Deep Water CDP|244|0|5|Palmer|Sonny|2997|West Virginia|M|Son|||3|1300 + +3000|CA|Nevada County|Lake of the Pines CDP|245|0|1|Simers|Alva Jesus|2976|Rhode Island|M|Head|||24|1301 +3000|CA|Nevada County|Lake of the Pines CDP|245|0|2|Simers|Deidre|2982|Georgia|F|Spouse|||18|1302 + +3000|KS|Marshall County|Waterville city|246|0|1|Wilson|Yvette|2981|Illinois|F|Head|||19|1303 + +3000|MN|Washington County|Afton city|247|0|1|Mathews|Benny|2961|Alabama|M|Head|||39|1304 +3000|MN|Washington County|Afton city|247|0|2|Mathews|Josephine|2979|Maine|F|Spouse|||21|1305 + +3000|GA|Laurens County|Dexter town|248|0|1|Best|Dusty|2963|Nebraska|M|Head|||37|1306 +3000|GA|Laurens County|Dexter town|248|0|2|Best|Fiona|2989|Vermont|F|Daughter|||11|1307 +3000|GA|Laurens County|Dexter town|248|0|3|Best|Lesley|2993|Florida|F|Daughter|||7|1308 +3000|GA|Laurens County|Dexter town|248|0|4|Best|Katina Rayna|2999|California|F|Daughter|||1|1309 + +3000|NV|Clark County|Indian Springs CDP|249|0|1|Kerns|Jerold Tyree|2942|Wyoming|M|Head|||58|1310 +3000|NV|Clark County|Indian Springs CDP|249|0|2|Kerns|Alleen|2950|Maryland|F|Spouse|||50|1311 +3000|NV|Clark County|Indian Springs CDP|249|0|3|Kerns|Orville Hobert|2972|Viet Nam|M|Son|||28|1312 +3000|NV|Clark County|Indian Springs CDP|249|0|4|Kerns|Shayne|2982|Alaska|M|Son|||18|1313 +3000|NV|Clark County|Indian Springs CDP|249|0|5|Kerns|Demarcus Mauricio|2984|Arizona|M|Son|||16|1314 +3000|NV|Clark County|Indian Springs CDP|249|0|6|Kerns|Herb|2988|Illinois|M|Son|||12|1315 + +3000|NY|Suffolk County|Melville CDP|250|0|1|Henry|Ashley Chadwick|2948|Missouri|M|Head|||52|1316 +3000|NY|Suffolk County|Melville CDP|250|0|2|Henry|Mark German|2988|Madagascar|M|Son|||12|1317 +3000|NY|Suffolk County|Melville CDP|250|0|3|Henry|Genaro Dick|2990|Washington|M|Son|||10|1318 +3000|NY|Suffolk County|Melville CDP|250|0|4|Henry|Arlyne Ashley|2994|Missouri|F|Daughter|||6|1319 +3000|NY|Suffolk County|Melville CDP|250|0|5|Henry|Lisha|2998|Rhode Island|F|Daughter|||2|1320 +3000|NY|Suffolk County|Melville CDP|250|0|6|Henry|Mason|3000|Luxembourg|M|Son|||0|1321 + +3000|IN|Decatur County|Millhousen town|251|0|1|Beucler|Garrett Emilio|2950|Taiwan, Province Of China|M|Head|||50|1322 +3000|IN|Decatur County|Millhousen town|251|0|2|Beucler|Ronda|2956|Michigan|F|Spouse|||44|1323 +3000|IN|Decatur County|Millhousen town|251|0|3|Beucler|Tory|2976|New Hampshire|F|Daughter|||24|1324 +3000|IN|Decatur County|Millhousen town|251|0|4|Beucler|Yee Joelle|2980|Oregon|F|Daughter|||20|1325 +3000|IN|Decatur County|Millhousen town|251|0|5|Beucler|Gudrun|2988|Missouri|F|Daughter|||12|1326 +3000|IN|Decatur County|Millhousen town|251|0|6|Beucler|Isaura|2990|Missouri|F|Daughter|||10|1327 +3000|IN|Decatur County|Millhousen town|251|0|7|Beucler|Ahmad|2994|Utah|M|Son|||6|1328 +3000|IN|Decatur County|Millhousen town|251|0|8|Beucler|Adelia|2996|Utah|F|Daughter|||4|1329 +3000|IN|Decatur County|Millhousen town|251|0|9|Beucler|Ella Elaine|2998|Oklahoma|F|Daughter|||2|1330 + +3000|VA|Southampton County|Branchville town|252|0|1|Foster|Riley Wade|2950|Illinois|M|Head|||50|1331 +3000|VA|Southampton County|Branchville town|252|0|2|Foster|Clarence|2947|Nebraska|F|Spouse|||53|1332 +3000|VA|Southampton County|Branchville town|252|0|3|Foster|Young|2969|Michigan|F|Daughter|||31|1333 +3000|VA|Southampton County|Branchville town|252|0|4|Foster|Trenton|2971|Somalia|M|Son|||29|1334 +3000|VA|Southampton County|Branchville town|252|0|5|Foster|Alton Elliot|2981|Virginia|M|Son|||19|1335 +3000|VA|Southampton County|Branchville town|252|0|6|Foster|Riley|2983|Kentucky|M|Son|||17|1336 +3000|VA|Southampton County|Branchville town|252|0|7|Foster|Annita Ulrike|2987|Wyoming|F|Daughter|||13|1337 +3000|VA|Southampton County|Branchville town|252|0|8|Foster|Dewayne|2989|Oregon|M|Son|||11|1338 +3000|VA|Southampton County|Branchville town|252|0|9|Foster|Alla Lynette|2997|North Dakota|F|Daughter|||3|1339 + +3000|PA|Fayette County|Point Marion borough|253|0|1|Body|Walter Rey|2939|New Hampshire|M|Head|||61|1340 +3000|PA|Fayette County|Point Marion borough|253|0|2|Body|Velia|2986|Michigan|F|Daughter|||14|1341 +3000|PA|Fayette County|Point Marion borough|253|0|3|Body|Jae|2988|Alabama|M|Son|||12|1342 +3000|PA|Fayette County|Point Marion borough|253|0|4|Body|Fausto|2990|Hong Kong|M|Son|||10|1343 +3000|PA|Fayette County|Point Marion borough|253|0|5|Body|Dennis Edgar|2996|New Hampshire|M|Son|||4|1344 +3000|PA|Fayette County|Point Marion borough|253|0|6|Body|Gregorio|2998|Texas|M|Son|||2|1345 + +3000|OK|Delaware County, Mayes County|Kenwood CDP|254|0|1|Lirag|Lynsey|2960|Massachusetts|F|Head|||40|1346 +3000|OK|Delaware County, Mayes County|Kenwood CDP|254|0|2|Lirag|Drucilla|2980|Turkmenistan|F|Daughter|||20|1347 +3000|OK|Delaware County, Mayes County|Kenwood CDP|254|0|3|Lirag|Rudy Ross|2986|Kentucky|M|Son|||14|1348 +3000|OK|Delaware County, Mayes County|Kenwood CDP|254|0|4|Lirag|Palmer|2988|Alabama|M|Son|||12|1349 +3000|OK|Delaware County, Mayes County|Kenwood CDP|254|0|5|Lirag|Lucio|2996|Delaware|M|Son|||4|1350 +3000|OK|Delaware County, Mayes County|Kenwood CDP|254|0|6|Lirag|Fredrick|2998|Saint Kitts And Nevis|M|Son|||2|1351 +3000|OK|Delaware County, Mayes County|Kenwood CDP|254|0|7|Lirag|Pasquale|3000|Liechtenstein|M|Son|||0|1352 + +3000|IA|Washington County|West Chester city|255|0|1|Pietzsch|Emil Lawrence|2972|Rhode Island|M|Head|||28|1353 +3000|IA|Washington County|West Chester city|255|0|2|Pietzsch|Tiffani|2974|Idaho|F|Spouse|||26|1354 +3000|IA|Washington County|West Chester city|255|0|3|Pietzsch|Dane|2994|Malawi|M|Son|||6|1355 +3000|IA|Washington County|West Chester city|255|0|4|Pietzsch|Zona|2996|Djibouti|F|Daughter|||4|1356 +3000|IA|Washington County|West Chester city|255|0|5|Pietzsch|Virgilio|2998|Pennsylvania|M|Son|||2|1357 + +3000|TX|Clay County|Jolly city|256|0|1|Plomma|Mariano Hung|2963|Nebraska|M|Head|||37|1358 +3000|TX|Clay County|Jolly city|256|0|2|Plomma|Akilah Katharine|2968|Kiribati|F|Spouse|||32|1359 +3000|TX|Clay County|Jolly city|256|0|3|Plomma|Gayle|2992|Brazil|M|Son|||8|1360 +3000|TX|Clay County|Jolly city|256|0|4|Plomma|Denny|2994|Kyrgyzstan|M|Son|||6|1361 +3000|TX|Clay County|Jolly city|256|0|5|Plomma|Benny|2998|Mozambique|M|Son|||2|1362 +3000|TX|Clay County|Jolly city|256|0|6|Plomma|Charisse Charity|3000|North Dakota|F|Daughter|||0|1363 + +3000|IN|Jennings County|North Vernon city|257|0|1|Stubson|Wayne Jonah|2940|West Virginia|M|Head|||60|1364 +3000|IN|Jennings County|North Vernon city|257|0|2|Stubson|Marianne|2941|Maine|F|Spouse|||59|1365 +3000|IN|Jennings County|North Vernon city|257|0|3|Stubson|Raylene|2971|Pennsylvania|F|Daughter|||29|1366 +3000|IN|Jennings County|North Vernon city|257|0|4|Stubson|Theresa|2975|New York|F|Daughter|||25|1367 +3000|IN|Jennings County|North Vernon city|257|0|5|Stubson|Keven|2979|Nebraska|M|Son|||21|1368 +3000|IN|Jennings County|North Vernon city|257|0|6|Stubson|Ambrose|2985|Rhode Island|M|Son|||15|1369 +3000|IN|Jennings County|North Vernon city|257|0|7|Stubson|Evia Kathern|2991|Massachusetts|F|Daughter|||9|1370 +3000|IN|Jennings County|North Vernon city|257|0|8|Stubson|Stephen|2995|Delaware|F|Daughter|||5|1371 +3000|IN|Jennings County|North Vernon city|257|0|9|Stubson|Derrick|2997|South Carolina|M|Son|||3|1372 + +3000|VT|Franklin County|Fairfax town|258|0|1|Pandey|Lino Chung|2941|New Hampshire|M|Head|||59|1373 +3000|VT|Franklin County|Fairfax town|258|0|2|Pandey|Coral|2940|Montana|F|Spouse|||60|1374 +3000|VT|Franklin County|Fairfax town|258|0|3|Pandey|Nolan|2986|Tennessee|M|Son|||14|1375 +3000|VT|Franklin County|Fairfax town|258|0|4|Pandey|Nathanael|2992|North Carolina|M|Son|||8|1376 +3000|VT|Franklin County|Fairfax town|258|0|5|Pandey|Teofila|2998|Ohio|F|Daughter|||2|1377 + +3000|PR|Cidra Municipio|Parcelas Nuevas comunidad|259|0|1|Colella|Arden|2964|Nebraska|M|Head|||36|1378 +3000|PR|Cidra Municipio|Parcelas Nuevas comunidad|259|0|2|Colella|Denny|2992|Kentucky|M|Son|||8|1379 +3000|PR|Cidra Municipio|Parcelas Nuevas comunidad|259|0|3|Colella|Leeanne|2996|Gambia|F|Daughter|||4|1380 +3000|PR|Cidra Municipio|Parcelas Nuevas comunidad|259|0|4|Colella|Kaylene|2998|Nebraska|F|Daughter|||2|1381 +3000|PR|Cidra Municipio|Parcelas Nuevas comunidad|259|0|5|Colella|Dion Lazaro|3000|Indiana|M|Son|||0|1382 + +3000|ME|Kennebec County|Hallowell city|260|0|1|Raffaele|Ruben Napoleon|2942|Maine|M|Head|||58|1383 +3000|ME|Kennebec County|Hallowell city|260|0|2|Raffaele|Nadene|2941|Oklahoma|F|Spouse|||59|1384 +3000|ME|Kennebec County|Hallowell city|260|0|3|Raffaele|Jeniffer|2963|North Dakota|F|Daughter|||37|1385 +3000|ME|Kennebec County|Hallowell city|260|0|4|Raffaele|Marcene|2973|Illinois|F|Daughter|||27|1386 +3000|ME|Kennebec County|Hallowell city|260|0|5|Raffaele|Hiroko|2985|Bahrain|F|Daughter|||15|1387 +3000|ME|Kennebec County|Hallowell city|260|0|6|Raffaele|Leopoldo|2989|Illinois|M|Son|||11|1388 +3000|ME|Kennebec County|Hallowell city|260|0|7|Raffaele|August|2991|Oregon|M|Son|||9|1389 +3000|ME|Kennebec County|Hallowell city|260|0|8|Raffaele|Pamila|2995|Hawaii|F|Daughter|||5|1390 +3000|ME|Kennebec County|Hallowell city|260|0|9|Raffaele|Georgiann|2997|Burkina Faso|F|Daughter|||3|1391 +3000|ME|Kennebec County|Hallowell city|260|0|10|Raffaele|Kathaleen Yvette|2999|North Carolina|F|Daughter|||1|1392 + +3000|IN|Montgomery County|Lake Holiday CDP|261|0|1|Moskau|Glayds|2954|Mississippi|F|Head|||46|1393 +3000|IN|Montgomery County|Lake Holiday CDP|261|0|2|Moskau|Sima|2974|Cuba|F|Daughter|||26|1394 +3000|IN|Montgomery County|Lake Holiday CDP|261|0|3|Moskau|Vern|2980|Alabama|M|Son|||20|1395 +3000|IN|Montgomery County|Lake Holiday CDP|261|0|4|Moskau|Nathalie|2992|New Jersey|F|Daughter|||8|1396 +3000|IN|Montgomery County|Lake Holiday CDP|261|0|5|Moskau|Frieda|2994|Michigan|F|Daughter|||6|1397 + +3000|NJ|Ocean County|Ocean township|262|0|1|Nelson|Frederic Edmundo|2970|Bouvet Island|M|Head|||30|1398 +3000|NJ|Ocean County|Ocean township|262|0|2|Nelson|Rosy Shela|2970|Costa Rica|F|Spouse|||30|1399 +3000|NJ|Ocean County|Ocean township|262|0|3|Nelson|Blossom Tess|2990|West Virginia|F|Daughter|||10|1400 +3000|NJ|Ocean County|Ocean township|262|0|4|Nelson|Wallace Levi|3000|Montana|M|Son|||0|1401 + +3000|MN|Kandiyohi County|Sunburg city|263|0|1|White|Oliver Burl|2969|Arkansas|M|Head|||31|1402 + +3000|MI|Grand Traverse County, Leelanau County|Traverse City city|264|0|1|Leatherwood|Michal|2959|Virginia|M|Head|||41|1403 +3000|MI|Grand Traverse County, Leelanau County|Traverse City city|264|0|2|Leatherwood|Neville|2982|Morocco|M|Son|||18|1404 +3000|MI|Grand Traverse County, Leelanau County|Traverse City city|264|0|3|Leatherwood|Marco Berry|2986|Wyoming|M|Son|||14|1405 +3000|MI|Grand Traverse County, Leelanau County|Traverse City city|264|0|4|Leatherwood|Josefine|2996|North Carolina|F|Daughter|||4|1406 +3000|MI|Grand Traverse County, Leelanau County|Traverse City city|264|0|5|Leatherwood|Mercedez|2998|Texas|F|Daughter|||2|1407 + +3000|MN|Norman County|Borup city|265|0|1|Walker|Rolf Charles|2953|Missouri|M|Head|||47|1408 +3000|MN|Norman County|Borup city|265|0|2|Walker|Loni|2974|Latvia|F|Spouse|||26|1409 +3000|MN|Norman County|Borup city|265|0|3|Walker|Kaley|2994|Russian Federation|F|Daughter|||6|1410 +3000|MN|Norman County|Borup city|265|0|4|Walker|Andreas|2996|Rhode Island|M|Son|||4|1411 + +3000|CA|Mendocino County|Mendocino CDP|266|0|1|Johll|Wally Maria|2962|Alabama|M|Head|||38|1412 +3000|CA|Mendocino County|Mendocino CDP|266|0|2|Johll|Makeda|2981|Oklahoma|F|Spouse|||19|1413 + +3000|NY|Onondaga County|Liverpool village|267|0|1|Strang|Marion Malcom|2956|Israel|M|Head|||44|1414 +3000|NY|Onondaga County|Liverpool village|267|0|2|Strang|Sharonda|2968|Georgia|F|Spouse|||32|1415 +3000|NY|Onondaga County|Liverpool village|267|0|3|Strang|Liana|2988|Louisiana|F|Daughter|||12|1416 +3000|NY|Onondaga County|Liverpool village|267|0|4|Strang|Jake|2990|New Mexico|M|Son|||10|1417 +3000|NY|Onondaga County|Liverpool village|267|0|5|Strang|Donetta|2994|Hawaii|F|Daughter|||6|1418 +3000|NY|Onondaga County|Liverpool village|267|0|6|Strang|Rosalie|2996|Tanzania, United Republic Of|F|Daughter|||4|1419 +3000|NY|Onondaga County|Liverpool village|267|0|7|Strang|Rubin|2998|Connecticut|M|Son|||2|1420 +3000|NY|Onondaga County|Liverpool village|267|0|8|Strang|Lowell|3000|Delaware|M|Son|||0|1421 + +3000|NE|Perkins County|Venango village|268|0|1|Gonzalez|Horace Floyd|2957|New York|M|Head|||43|1422 +3000|NE|Perkins County|Venango village|268|0|2|Gonzalez|Eveline|2976|South Dakota|F|Spouse|||24|1423 +3000|NE|Perkins County|Venango village|268|0|3|Gonzalez|Ezequiel Ahmed|3000|New York|M|Son|||0|1424 + +3000|CO|Ouray County|Loghill Village CDP|269|0|1|Monarque|Lorenzo Asa|2947|South Carolina|M|Head|||53|1425 +3000|CO|Ouray County|Loghill Village CDP|269|0|2|Monarque|Esperanza Melynda|2968|West Virginia|F|Spouse|||32|1426 +3000|CO|Ouray County|Loghill Village CDP|269|0|3|Monarque|Nydia|2988|Kansas|F|Daughter|||12|1427 +3000|CO|Ouray County|Loghill Village CDP|269|0|4|Monarque|Wendy Paulene|2990|Croatia|F|Daughter|||10|1428 + +3000|IL|Knox County|St. Augustine village|270|0|1|Starr|Roberto Riley|2940|Congo|M|Head|||60|1429 +3000|IL|Knox County|St. Augustine village|270|0|2|Starr|Valorie|2954|Utah|F|Spouse|||46|1430 +3000|IL|Knox County|St. Augustine village|270|0|3|Starr|Pasquale|2974|Kentucky|M|Son|||26|1431 +3000|IL|Knox County|St. Augustine village|270|0|4|Starr|Zoila|2982|Ohio|F|Daughter|||18|1432 +3000|IL|Knox County|St. Augustine village|270|0|5|Starr|Jennefer|2984|New Jersey|F|Daughter|||16|1433 +3000|IL|Knox County|St. Augustine village|270|0|6|Starr|Teisha|2988|Lithuania|F|Daughter|||12|1434 +3000|IL|Knox County|St. Augustine village|270|0|7|Starr|Monique|2998|Wisconsin|F|Daughter|||2|1435 +3000|IL|Knox County|St. Augustine village|270|0|8|Starr|Larry|3000|Mississippi|F|Daughter|||0|1436 + +3000|WI|Marinette County|Athelstane town|271|0|1|Maxey|Stephan Neal|2951|South Georgia And The South Sandwich Islands|M|Head|||49|1437 +3000|WI|Marinette County|Athelstane town|271|0|2|Maxey|Maritza Roxanna|2953|New York|F|Spouse|||47|1438 +3000|WI|Marinette County|Athelstane town|271|0|3|Maxey|Fred|2975|Iowa|M|Son|||25|1439 +3000|WI|Marinette County|Athelstane town|271|0|4|Maxey|Jorge|2979|Missouri|M|Son|||21|1440 +3000|WI|Marinette County|Athelstane town|271|0|5|Maxey|Jeramy|2985|Louisiana|M|Son|||15|1441 +3000|WI|Marinette County|Athelstane town|271|0|6|Maxey|Yuriko|2991|Virginia|F|Daughter|||9|1442 +3000|WI|Marinette County|Athelstane town|271|0|7|Maxey|Gus|2993|Alabama|M|Son|||7|1443 + +3000|OH|Muskingum County|Fultonham village|272|0|1|Brooks|Alonzo Jackson|2978|Montana|M|Head|||22|1444 +3000|OH|Muskingum County|Fultonham village|272|0|2|Brooks|Pansy|2980|Montana|F|Spouse|||20|1445 +3000|OH|Muskingum County|Fultonham village|272|0|3|Brooks|Denise|3000|Kentucky|F|Daughter|||0|1446 + +3000|MI|Barry County|Maple Grove township|273|0|1|Vasquez|Walter Cory|2952|Kentucky|M|Head|||48|1447 +3000|MI|Barry County|Maple Grove township|273|0|2|Vasquez|Lottie|2952|Indiana|F|Spouse|||48|1448 +3000|MI|Barry County|Maple Grove township|273|0|3|Vasquez|Jodi|2976|Texas|F|Daughter|||24|1449 +3000|MI|Barry County|Maple Grove township|273|0|4|Vasquez|Ben Lonny|2986|Washington|M|Son|||14|1450 +3000|MI|Barry County|Maple Grove township|273|0|5|Vasquez|Lorena|2990|Virginia|F|Daughter|||10|1451 +3000|MI|Barry County|Maple Grove township|273|0|6|Vasquez|Latosha|2994|South Dakota|F|Daughter|||6|1452 +3000|MI|Barry County|Maple Grove township|273|0|7|Vasquez|Numbers|2998|Colorado|M|Son|||2|1453 +3000|MI|Barry County|Maple Grove township|273|0|8|Vasquez|Graig|3000|Idaho|M|Son|||0|1454 + +3000|TX|Bowie County|Red Lick city|274|0|1|Zeidan|Weldon Don|2941|Ohio|M|Head|||59|1455 +3000|TX|Bowie County|Red Lick city|274|0|2|Zeidan|Danika Gina|2986|Louisiana|F|Daughter|||14|1456 +3000|TX|Bowie County|Red Lick city|274|0|3|Zeidan|Royce|2990|Delaware|M|Son|||10|1457 +3000|TX|Bowie County|Red Lick city|274|0|4|Zeidan|Ryan|2992|Georgia|M|Son|||8|1458 +3000|TX|Bowie County|Red Lick city|274|0|5|Zeidan|Jordon|2994|California|M|Son|||6|1459 + +3000|KS|Dickinson County|Manchester city|275|0|1|Blount|Brad Manuel|2960|Virginia|M|Head|||40|1460 +3000|KS|Dickinson County|Manchester city|275|0|2|Blount|Lorri|2972|Alabama|F|Spouse|||28|1461 +3000|KS|Dickinson County|Manchester city|275|0|3|Blount|Benito|2994|Idaho|M|Son|||6|1462 +3000|KS|Dickinson County|Manchester city|275|0|4|Blount|Carma Nerissa|2998|Arizona|F|Daughter|||2|1463 + +3000|NV|Clark County|Mount Charleston CDP|276|0|1|Graffeo|Gustavo Francisco|2974|Oklahoma|M|Head|||26|1464 +3000|NV|Clark County|Mount Charleston CDP|276|0|2|Graffeo|Tessa|2975|Indiana|F|Spouse|||25|1465 +3000|NV|Clark County|Mount Charleston CDP|276|0|3|Graffeo|Faustino|2995|Nevada|M|Son|||5|1466 + +3000|NY|Nassau County|Albertson CDP|277|0|1|Thomas|Jamel Nicholas|2967|Samoa|M|Head|||33|1467 +3000|NY|Nassau County|Albertson CDP|277|0|2|Thomas|Jesusita Emily|2980|Virginia|F|Spouse|||20|1468 +3000|NY|Nassau County|Albertson CDP|277|0|3|Thomas|Jeffry Dane|3000|Belize|M|Son|||0|1469 + +3000|FL|Manatee County, Sarasota County|Longboat Key town|278|0|1|Vanhamme|Young|2951|Arizona|M|Head|||49|1470 +3000|FL|Manatee County, Sarasota County|Longboat Key town|278|0|2|Vanhamme|Idalia|2958|Arizona|F|Spouse|||42|1471 +3000|FL|Manatee County, Sarasota County|Longboat Key town|278|0|3|Vanhamme|Pei|2980|Eritrea|F|Daughter|||20|1472 +3000|FL|Manatee County, Sarasota County|Longboat Key town|278|0|4|Vanhamme|Tyree|2984|Oregon|M|Son|||16|1473 +3000|FL|Manatee County, Sarasota County|Longboat Key town|278|0|5|Vanhamme|Joaquin|2986|Virginia|M|Son|||14|1474 +3000|FL|Manatee County, Sarasota County|Longboat Key town|278|0|6|Vanhamme|Neil|2996|South Carolina|M|Son|||4|1475 +3000|FL|Manatee County, Sarasota County|Longboat Key town|278|0|7|Vanhamme|Erlinda|2998|Virgin Islands, British|F|Daughter|||2|1476 + +3000|VT|Essex County|Lunenburg town|279|0|1|Peels|Dallas Jamel|2956|North Dakota|M|Head|||44|1477 +3000|VT|Essex County|Lunenburg town|279|0|2|Peels|Trula|2979|South Carolina|F|Spouse|||21|1478 +3000|VT|Essex County|Lunenburg town|279|0|3|Peels|Courtney|2999|Delaware|M|Son|||1|1479 + +3000|MS|Copiah County|Georgetown town|280|0|1|Figueroa|Brittanie|2969|South Carolina|F|Head|||31|1480 +3000|MS|Copiah County|Georgetown town|280|0|2|Figueroa|Patrica Marquetta|2989|United Kingdom|F|Daughter|||11|1481 +3000|MS|Copiah County|Georgetown town|280|0|3|Figueroa|Shakita Leena|2991|Illinois|F|Daughter|||9|1482 +3000|MS|Copiah County|Georgetown town|280|0|4|Figueroa|Cruz|2993|Massachusetts|M|Son|||7|1483 +3000|MS|Copiah County|Georgetown town|280|0|5|Figueroa|Macy|2999|Arizona|F|Daughter|||1|1484 + +3000|PA|Northampton County|Lower Nazareth township|281|0|1|Driskill|Dirk Gino|2937|New Mexico|M|Head|||63|1485 +3000|PA|Northampton County|Lower Nazareth township|281|0|2|Driskill|Ben|2962|North Carolina|M|Son|||38|1486 +3000|PA|Northampton County|Lower Nazareth township|281|0|3|Driskill|Eustolia|2982|South Carolina|F|Daughter|||18|1487 +3000|PA|Northampton County|Lower Nazareth township|281|0|4|Driskill|Gladys|2986|Mississippi|F|Daughter|||14|1488 +3000|PA|Northampton County|Lower Nazareth township|281|0|5|Driskill|Dustin|2988|Alabama|M|Son|||12|1489 +3000|PA|Northampton County|Lower Nazareth township|281|0|6|Driskill|Manuel|2990|South Dakota|M|Son|||10|1490 +3000|PA|Northampton County|Lower Nazareth township|281|0|7|Driskill|Madison|2992|Florida|F|Daughter|||8|1491 +3000|PA|Northampton County|Lower Nazareth township|281|0|8|Driskill|August|2996|Pakistan|M|Son|||4|1492 +3000|PA|Northampton County|Lower Nazareth township|281|0|9|Driskill|Chelsie Tawny|2998|South Carolina|F|Daughter|||2|1493 + +3000|DE|Sussex County|Frankford town|282|0|1|Roberts|Hoyt Jermaine|2949|West Virginia|M|Head|||51|1494 +3000|DE|Sussex County|Frankford town|282|0|2|Roberts|Jewell Shannon|2975|New Mexico|M|Son|||25|1495 +3000|DE|Sussex County|Frankford town|282|0|3|Roberts|Rosendo|2987|Florida|M|Son|||13|1496 +3000|DE|Sussex County|Frankford town|282|0|4|Roberts|Deangelo|2989|Missouri|M|Son|||11|1497 +3000|DE|Sussex County|Frankford town|282|0|5|Roberts|Lawerence|2999|Ohio|M|Son|||1|1498 + +3000|WV|Preston County|Aurora CDP|283|0|1|Haskins|Wilton Dario|2983|Liberia|M|Head|||17|1499 + +3000|AR|Jackson County|Tuckerman city|284|0|1|Nicolai|Burton Wilford|2962|Indiana|M|Head|||38|1500 +3000|AR|Jackson County|Tuckerman city|284|0|2|Nicolai|Antonio|2992|Wyoming|M|Son|||8|1501 +3000|AR|Jackson County|Tuckerman city|284|0|3|Nicolai|Lakeesha|2996|Iowa|F|Daughter|||4|1502 +3000|AR|Jackson County|Tuckerman city|284|0|4|Nicolai|Soila|3000|California|F|Daughter|||0|1503 + +3000|NY|Madison County|Madison village|285|0|1|Prose|Anderson|2969|Alabama|M|Head|||31|1504 +3000|NY|Madison County|Madison village|285|0|2|Prose|Viviana|2983|Wyoming|F|Spouse|||17|1505 + +3000|CA|Humboldt County|Indianola CDP|286|0|1|Devaney|Cory Truman|2956|Virginia|M|Head|||44|1506 + +3000|MD|St. Mary's County|Mechanicsville CDP|287|0|1|Shunnarah|Noah|2958|Texas|M|Head|||42|1507 +3000|MD|St. Mary's County|Mechanicsville CDP|287|0|2|Shunnarah|Rolande|2968|New Caledonia|F|Spouse|||32|1508 +3000|MD|St. Mary's County|Mechanicsville CDP|287|0|3|Shunnarah|Kandice|2988|Vermont|F|Daughter|||12|1509 +3000|MD|St. Mary's County|Mechanicsville CDP|287|0|4|Shunnarah|Julius|2992|New Jersey|M|Son|||8|1510 +3000|MD|St. Mary's County|Mechanicsville CDP|287|0|5|Shunnarah|Sheryl Barrie|2998|Kenya|F|Daughter|||2|1511 + +3000|PA|Susquehanna County|Harford township|288|0|1|Winch|Haywood Claud|2941|Serbia|M|Head|||59|1512 +3000|PA|Susquehanna County|Harford township|288|0|2|Winch|Yaeko|2965|Nevada|F|Spouse|||35|1513 +3000|PA|Susquehanna County|Harford township|288|0|3|Winch|Stephen|2985|Guyana|M|Son|||15|1514 +3000|PA|Susquehanna County|Harford township|288|0|4|Winch|Lucille|2987|Montana|F|Daughter|||13|1515 +3000|PA|Susquehanna County|Harford township|288|0|5|Winch|Elmira|2993|Louisiana|F|Daughter|||7|1516 +3000|PA|Susquehanna County|Harford township|288|0|6|Winch|Florentino|2995|Utah|M|Son|||5|1517 +3000|PA|Susquehanna County|Harford township|288|0|7|Winch|Kirstin|2999|Maryland|F|Daughter|||1|1518 + +3000|PA|Lawrence County|Washington township|289|0|1|Peacock|Gary|2960|Missouri|M|Head|||40|1519 +3000|PA|Lawrence County|Washington township|289|0|2|Peacock|Millie|2969|Texas|F|Spouse|||31|1520 +3000|PA|Lawrence County|Washington township|289|0|3|Peacock|Neil|2991|Delaware|M|Son|||9|1521 +3000|PA|Lawrence County|Washington township|289|0|4|Peacock|Genie|2993|Delaware|F|Daughter|||7|1522 +3000|PA|Lawrence County|Washington township|289|0|5|Peacock|Noble Hyman|2995|Panama|M|Son|||5|1523 + +3000|WA|Yakima County|Grandview city|290|0|1|Coolbaugh|Florentino Merle|2956|Mauritania|M|Head|||44|1524 +3000|WA|Yakima County|Grandview city|290|0|2|Coolbaugh|Cynthia|2965|Maine|F|Spouse|||35|1525 +3000|WA|Yakima County|Grandview city|290|0|3|Coolbaugh|Mose|2989|New Mexico|M|Son|||11|1526 +3000|WA|Yakima County|Grandview city|290|0|4|Coolbaugh|Pasquale|2991|Pennsylvania|M|Son|||9|1527 +3000|WA|Yakima County|Grandview city|290|0|5|Coolbaugh|Chet|2993|Missouri|M|Son|||7|1528 +3000|WA|Yakima County|Grandview city|290|0|6|Coolbaugh|Nga|2995|United States|F|Daughter|||5|1529 + +3000|VA|Shenandoah County|Toms Brook town|291|0|1|Heatherly|Tyree Carey|2947|Pennsylvania|M|Head|||53|1530 +3000|VA|Shenandoah County|Toms Brook town|291|0|2|Heatherly|Bethany|2956|Montana|F|Spouse|||44|1531 +3000|VA|Shenandoah County|Toms Brook town|291|0|3|Heatherly|Valentine|2982|Illinois|M|Son|||18|1532 +3000|VA|Shenandoah County|Toms Brook town|291|0|4|Heatherly|Clifton|2986|Kyrgyzstan|M|Son|||14|1533 +3000|VA|Shenandoah County|Toms Brook town|291|0|5|Heatherly|Alec|2988|Utah|M|Son|||12|1534 +3000|VA|Shenandoah County|Toms Brook town|291|0|6|Heatherly|Celestine|2990|Delaware|F|Daughter|||10|1535 +3000|VA|Shenandoah County|Toms Brook town|291|0|7|Heatherly|Leigh|2994|Idaho|M|Son|||6|1536 + +3000|SC|Hampton County|Estill town|292|0|1|Brumfield|Steve Gayle|2944|Montana|M|Head|||56|1537 +3000|SC|Hampton County|Estill town|292|0|2|Brumfield|Genoveva|2956|Missouri|F|Spouse|||44|1538 +3000|SC|Hampton County|Estill town|292|0|3|Brumfield|Timmy|2984|Jordan|M|Son|||16|1539 +3000|SC|Hampton County|Estill town|292|0|4|Brumfield|Garland|2988|Connecticut|M|Son|||12|1540 +3000|SC|Hampton County|Estill town|292|0|5|Brumfield|Alejandrina|2990|Guadeloupe|F|Daughter|||10|1541 +3000|SC|Hampton County|Estill town|292|0|6|Brumfield|Lauran|2996|Indiana|F|Daughter|||4|1542 +3000|SC|Hampton County|Estill town|292|0|7|Brumfield|Phyllis Gracie|2998|Maine|F|Daughter|||2|1543 +3000|SC|Hampton County|Estill town|292|0|8|Brumfield|Khadijah|3000|Illinois|F|Daughter|||0|1544 + +3000|PA|Wayne County|Waymart borough|293|0|1|Gillan|Laquanda|2955|Iowa|F|Head|||45|1545 +3000|PA|Wayne County|Waymart borough|293|0|2|Gillan|Rashad|2981|South Dakota|M|Son|||19|1546 +3000|PA|Wayne County|Waymart borough|293|0|3|Gillan|Fabian|2985|North Dakota|M|Son|||15|1547 +3000|PA|Wayne County|Waymart borough|293|0|4|Gillan|Terence|2995|Georgia|M|Son|||5|1548 +3000|PA|Wayne County|Waymart borough|293|0|5|Gillan|Mark|2997|South Carolina|F|Daughter|||3|1549 + +3000|NY|Orleans County|Clarendon town|294|0|1|Floros|Basil Theron|2955|West Virginia|M|Head|||45|1550 +3000|NY|Orleans County|Clarendon town|294|0|2|Floros|Michaele|2972|Delaware|F|Spouse|||28|1551 +3000|NY|Orleans County|Clarendon town|294|0|3|Floros|Roscoe|2992|Missouri|M|Son|||8|1552 +3000|NY|Orleans County|Clarendon town|294|0|4|Floros|Cruz|2996|Guinea|M|Son|||4|1553 + +3000|MN|Dakota County|Randolph city|295|0|1|Lachapelle|Rolland Phil|2952|Kentucky|M|Head|||48|1554 +3000|MN|Dakota County|Randolph city|295|0|2|Lachapelle|Terrell|2961|Virginia|F|Spouse|||39|1555 +3000|MN|Dakota County|Randolph city|295|0|3|Lachapelle|Fidel|2989|South Dakota|M|Son|||11|1556 +3000|MN|Dakota County|Randolph city|295|0|4|Lachapelle|Brad|2991|West Virginia|M|Son|||9|1557 +3000|MN|Dakota County|Randolph city|295|0|5|Lachapelle|Frances|2995|North Carolina|M|Son|||5|1558 +3000|MN|Dakota County|Randolph city|295|0|6|Lachapelle|Lucila|2999|New York|F|Daughter|||1|1559 + +3000|OH|Harrison County|Tippecanoe CDP|296|0|1|Lanclos|Mohammad|2960|Maryland|M|Head|||40|1560 +3000|OH|Harrison County|Tippecanoe CDP|296|0|2|Lanclos|Jesse|2965|Wyoming|F|Spouse|||35|1561 +3000|OH|Harrison County|Tippecanoe CDP|296|0|3|Lanclos|Laure|2993|Washington|F|Daughter|||7|1562 +3000|OH|Harrison County|Tippecanoe CDP|296|0|4|Lanclos|Felicia Heidi|2995|Maryland|F|Daughter|||5|1563 +3000|OH|Harrison County|Tippecanoe CDP|296|0|5|Lanclos|Eli|2999|Florida|M|Son|||1|1564 + +3000|MI|Clinton County|Bath charter township|297|0|1|Sanders|Theo|2975|Micronesia, Federated States Of|M|Head|||25|1565 +3000|MI|Clinton County|Bath charter township|297|0|2|Sanders|Angel Grover|3000|Montana|M|Son|||0|1566 + +3000|MN|Pope County|Langhei township|298|0|1|Hartzell|Marshall Kendall|2963|Indiana|M|Head|||37|1567 +3000|MN|Pope County|Langhei township|298|0|2|Hartzell|Agnus|3000|Idaho|F|Daughter|||0|1568 + +3000|TN|Wilson County|Mount Juliet city|299|0|1|Kosters|Jon Abraham|2968|Turkmenistan|M|Head|||32|1569 +3000|TN|Wilson County|Mount Juliet city|299|0|2|Kosters|Juliet|2974|Alabama|F|Spouse|||26|1570 +3000|TN|Wilson County|Mount Juliet city|299|0|3|Kosters|Pierre|2994|New Mexico|M|Son|||6|1571 +3000|TN|Wilson County|Mount Juliet city|299|0|4|Kosters|Wanda|2996|Australia|F|Daughter|||4|1572 +3000|TN|Wilson County|Mount Juliet city|299|0|5|Kosters|Bibi|3000|Washington|F|Daughter|||0|1573 + +3000|FL|Orange County|Zellwood CDP|300|0|1|Vanvolkinburg|Harlan Damion|2960|Missouri|M|Head|||40|1574 +3000|FL|Orange County|Zellwood CDP|300|0|2|Vanvolkinburg|Jacqueline|2984|South Dakota|F|Spouse|||16|1575 + +3000|PA|Armstrong County|Boggs township|301|0|1|White|Stacey Parker|2953|Ohio|M|Head|||47|1576 +3000|PA|Armstrong County|Boggs township|301|0|2|White|Camellia|2957|Tunisia|F|Spouse|||43|1577 +3000|PA|Armstrong County|Boggs township|301|0|3|White|Carrol|2989|Idaho|M|Son|||11|1578 +3000|PA|Armstrong County|Boggs township|301|0|4|White|Barbar|2995|Alabama|F|Daughter|||5|1579 + +3000|FL|Union County|Worthington Springs town|302|0|1|Chatman|Alonzo Emmett|2969|Wyoming|M|Head|||31|1580 +3000|FL|Union County|Worthington Springs town|302|0|2|Chatman|Araceli|2979|Jordan|F|Spouse|||21|1581 +3000|FL|Union County|Worthington Springs town|302|0|3|Chatman|Monty|2999|Georgia|M|Son|||1|1582 + +3000|MI|Missaukee County|McBain city|303|0|1|Baisden|Roxie|2944|Missouri|F|Head|||56|1583 +3000|MI|Missaukee County|McBain city|303|0|2|Baisden|Frieda|2968|Utah|F|Daughter|||32|1584 +3000|MI|Missaukee County|McBain city|303|0|3|Baisden|Emelia|2980|New York|F|Daughter|||20|1585 +3000|MI|Missaukee County|McBain city|303|0|4|Baisden|Florentino Jean|2982|Illinois|M|Son|||18|1586 +3000|MI|Missaukee County|McBain city|303|0|5|Baisden|Tatum|2988|New York|F|Daughter|||12|1587 +3000|MI|Missaukee County|McBain city|303|0|6|Baisden|Davis|2990|Louisiana|M|Son|||10|1588 +3000|MI|Missaukee County|McBain city|303|0|7|Baisden|Maia|2994|Georgia|F|Daughter|||6|1589 +3000|MI|Missaukee County|McBain city|303|0|8|Baisden|Peggie|2998|Equatorial Guinea|F|Daughter|||2|1590 + +3000|ND|Traill County|Buxton city|304|0|1|Delcine|Bennie|2944|Kentucky|M|Head|||56|1591 +3000|ND|Traill County|Buxton city|304|0|2|Delcine|Jeanice|2944|Montana|F|Spouse|||56|1592 +3000|ND|Traill County|Buxton city|304|0|3|Delcine|Devin|2978|Cameroon|F|Daughter|||22|1593 +3000|ND|Traill County|Buxton city|304|0|4|Delcine|Cecelia|2988|Nebraska|F|Daughter|||12|1594 +3000|ND|Traill County|Buxton city|304|0|5|Delcine|Nathaniel Hilton|2990|Montana|M|Son|||10|1595 +3000|ND|Traill County|Buxton city|304|0|6|Delcine|Vance Houston|2992|Thailand|M|Son|||8|1596 +3000|ND|Traill County|Buxton city|304|0|7|Delcine|Chad|2994|New Mexico|M|Son|||6|1597 +3000|ND|Traill County|Buxton city|304|0|8|Delcine|Venessa|3000|Hawaii|F|Daughter|||0|1598 + +3000|NE|Dixon County|Allen village|305|0|1|Carlson|Ronald Willis|2939|Niue|M|Head|||61|1599 +3000|NE|Dixon County|Allen village|305|0|2|Carlson|Julie|2940|Virginia|F|Spouse|||60|1600 +3000|NE|Dixon County|Allen village|305|0|3|Carlson|Glenn|2974|Colorado|M|Son|||26|1601 +3000|NE|Dixon County|Allen village|305|0|4|Carlson|Sarah Stormy|2976|Panama|F|Daughter|||24|1602 +3000|NE|Dixon County|Allen village|305|0|5|Carlson|Mariam|2980|Vermont|F|Daughter|||20|1603 +3000|NE|Dixon County|Allen village|305|0|6|Carlson|Lawana China|2984|Texas|F|Daughter|||16|1604 +3000|NE|Dixon County|Allen village|305|0|7|Carlson|Geraldo|2986|Ohio|M|Son|||14|1605 +3000|NE|Dixon County|Allen village|305|0|8|Carlson|Blondell|2990|Iowa|F|Daughter|||10|1606 +3000|NE|Dixon County|Allen village|305|0|9|Carlson|Kaye|2992|California|F|Daughter|||8|1607 + +3000|WI|Monroe County|Leon town|306|0|1|Goetsch|Stanton Adam|2937|Tuvalu|M|Head|||63|1608 +3000|WI|Monroe County|Leon town|306|0|2|Goetsch|Daniele|2955|Virginia|F|Spouse|||45|1609 +3000|WI|Monroe County|Leon town|306|0|3|Goetsch|Cayla|2991|Wisconsin|F|Daughter|||9|1610 +3000|WI|Monroe County|Leon town|306|0|4|Goetsch|Wallace|2995|North Carolina|M|Son|||5|1611 +3000|WI|Monroe County|Leon town|306|0|5|Goetsch|Hai Tory|2997|Tennessee|M|Son|||3|1612 + +3000|AL|Baldwin County|Robertsdale city|307|0|1|Benton|Christoper Elvin|2970|Georgia|M|Head|||30|1613 + +3000|PA|Clearfield County|Burnside borough|308|0|1|Houck|Claud Bradford|2965|Lesotho|M|Head|||35|1614 +3000|PA|Clearfield County|Burnside borough|308|0|2|Houck|Glenda|2970|Alaska|F|Spouse|||30|1615 +3000|PA|Clearfield County|Burnside borough|308|0|3|Houck|Marylou|2990|California|F|Daughter|||10|1616 +3000|PA|Clearfield County|Burnside borough|308|0|4|Houck|Markus|2992|Missouri|M|Son|||8|1617 +3000|PA|Clearfield County|Burnside borough|308|0|5|Houck|Ellamae|2998|Washington|F|Daughter|||2|1618 + +3000|WI|Trempealeau County|Preston town|309|0|1|Bryant|Russell Dwain|2937|West Virginia|M|Head|||63|1619 +3000|WI|Trempealeau County|Preston town|309|0|2|Bryant|Eboni|2949|Tennessee|F|Spouse|||51|1620 +3000|WI|Trempealeau County|Preston town|309|0|3|Bryant|Jeannine|2983|Maryland|F|Daughter|||17|1621 +3000|WI|Trempealeau County|Preston town|309|0|4|Bryant|Daniel|2991|Paraguay|M|Son|||9|1622 +3000|WI|Trempealeau County|Preston town|309|0|5|Bryant|Eliseo|2995|Svalbard And Jan Mayen|M|Son|||5|1623 +3000|WI|Trempealeau County|Preston town|309|0|6|Bryant|Mose|2997|Alaska|M|Son|||3|1624 + +3000|WV|Raleigh County|Sophia town|310|0|1|Harmon|Armando Ollie|2952|New Hampshire|M|Head|||48|1625 +3000|WV|Raleigh County|Sophia town|310|0|2|Harmon|Erna Pearlie|2952|North Carolina|F|Spouse|||48|1626 +3000|WV|Raleigh County|Sophia town|310|0|3|Harmon|Fredrick|2972|Illinois|M|Son|||28|1627 +3000|WV|Raleigh County|Sophia town|310|0|4|Harmon|Charlesetta Troy|2988|New York|F|Daughter|||12|1628 +3000|WV|Raleigh County|Sophia town|310|0|5|Harmon|Damion Joey|2992|Utah|M|Son|||8|1629 + +3000|MN|Cass County|North Central Cass UT|311|0|1|Anderson|Lino Philip|2941|Alabama|M|Head|||59|1630 +3000|MN|Cass County|North Central Cass UT|311|0|2|Anderson|Adrianne|2939|New Hampshire|F|Spouse|||61|1631 +3000|MN|Cass County|North Central Cass UT|311|0|3|Anderson|Kirby|2973|Oregon|M|Son|||27|1632 +3000|MN|Cass County|North Central Cass UT|311|0|4|Anderson|Donn|2989|Massachusetts|M|Son|||11|1633 +3000|MN|Cass County|North Central Cass UT|311|0|5|Anderson|Lesha Lu|2991|Louisiana|F|Daughter|||9|1634 +3000|MN|Cass County|North Central Cass UT|311|0|6|Anderson|Gabriel|2993|Delaware|F|Daughter|||7|1635 +3000|MN|Cass County|North Central Cass UT|311|0|7|Anderson|Georgann|2995|Nigeria|F|Daughter|||5|1636 +3000|MN|Cass County|North Central Cass UT|311|0|8|Anderson|Royce Cedric|2999|Montana|M|Son|||1|1637 + +3000|CA|Trinity County|Burnt Ranch CDP|312|0|1|Dellow|Junior Oren|2942|Samoa|M|Head|||58|1638 +3000|CA|Trinity County|Burnt Ranch CDP|312|0|2|Dellow|Audry Tilda|2945|Rhode Island|F|Spouse|||55|1639 +3000|CA|Trinity County|Burnt Ranch CDP|312|0|3|Dellow|Layne|2965|Hawaii|F|Daughter|||35|1640 +3000|CA|Trinity County|Burnt Ranch CDP|312|0|4|Dellow|Emmett|2971|New Hampshire|M|Son|||29|1641 +3000|CA|Trinity County|Burnt Ranch CDP|312|0|5|Dellow|William|2981|Kansas|M|Son|||19|1642 +3000|CA|Trinity County|Burnt Ranch CDP|312|0|6|Dellow|Michelina|2985|Utah|F|Daughter|||15|1643 +3000|CA|Trinity County|Burnt Ranch CDP|312|0|7|Dellow|Johnathon|2987|Montana|M|Son|||13|1644 +3000|CA|Trinity County|Burnt Ranch CDP|312|0|8|Dellow|Jarred|2989|Kentucky|M|Son|||11|1645 +3000|CA|Trinity County|Burnt Ranch CDP|312|0|9|Dellow|Jasper|2993|Missouri|M|Son|||7|1646 + +3000|VA|Loudoun County|Sterling CDP|313|0|1|Benoit|Amado Armando|2945|Marshall Islands|M|Head|||55|1647 +3000|VA|Loudoun County|Sterling CDP|313|0|2|Benoit|Alysa|2960|South Dakota|F|Spouse|||40|1648 +3000|VA|Loudoun County|Sterling CDP|313|0|3|Benoit|Emmitt|2984|Nebraska|M|Son|||16|1649 +3000|VA|Loudoun County|Sterling CDP|313|0|4|Benoit|Kenny|2992|Iowa|M|Son|||8|1650 +3000|VA|Loudoun County|Sterling CDP|313|0|5|Benoit|Hanna|2994|South Carolina|F|Daughter|||6|1651 + +3000|IL|DuPage County|Wood Dale city|314|0|1|Oxford|Cordell Kenny|2976|Florida|M|Head|||24|1652 +3000|IL|DuPage County|Wood Dale city|314|0|2|Oxford|Sharee|2982|West Virginia|F|Spouse|||18|1653 + +3000|ME|Cumberland County|Yarmouth CDP|315|0|1|Nordin|Malcolm Brain|2957|Ohio|M|Head|||43|1654 +3000|ME|Cumberland County|Yarmouth CDP|315|0|2|Nordin|Nisha Hazel|2965|New Hampshire|F|Spouse|||35|1655 +3000|ME|Cumberland County|Yarmouth CDP|315|0|3|Nordin|Patricia|2985|Vanuatu|M|Son|||15|1656 +3000|ME|Cumberland County|Yarmouth CDP|315|0|4|Nordin|Berna|2987|Romania|F|Daughter|||13|1657 +3000|ME|Cumberland County|Yarmouth CDP|315|0|5|Nordin|Ellena|2997|Tennessee|F|Daughter|||3|1658 +3000|ME|Cumberland County|Yarmouth CDP|315|0|6|Nordin|Cruz|2999|Reunion|F|Daughter|||1|1659 + +3000|OH|Portage County|Kent city|316|0|1|Johnsey|Alene|2940|South Dakota|F|Head|||60|1660 +3000|OH|Portage County|Kent city|316|0|2|Johnsey|Kristel|2960|Nevada|F|Daughter|||40|1661 +3000|OH|Portage County|Kent city|316|0|3|Johnsey|Brandie|2974|Missouri|F|Daughter|||26|1662 +3000|OH|Portage County|Kent city|316|0|4|Johnsey|Phuong|2986|Gambia|F|Daughter|||14|1663 +3000|OH|Portage County|Kent city|316|0|5|Johnsey|Etha|2992|Texas|F|Daughter|||8|1664 +3000|OH|Portage County|Kent city|316|0|6|Johnsey|Keven|3000|Nebraska|M|Son|||0|1665 + +3000|OK|Oklahoma County|Warr Acres city|317|0|1|Parsons|Wilfred Mark|2961|New York|M|Head|||39|1666 +3000|OK|Oklahoma County|Warr Acres city|317|0|2|Parsons|Sherita|2992|Arizona|F|Daughter|||8|1667 +3000|OK|Oklahoma County|Warr Acres city|317|0|3|Parsons|Tillie|2996|New York|F|Daughter|||4|1668 +3000|OK|Oklahoma County|Warr Acres city|317|0|4|Parsons|Milda|2998|Vermont|F|Daughter|||2|1669 +3000|OK|Oklahoma County|Warr Acres city|317|0|5|Parsons|Ewa|3000|Virgin Islands, U.s.|F|Daughter|||0|1670 + +3000|WI|Clark County, Marathon County|Abbotsford city|318|0|1|Grabski|Sheila|2958|French Guiana|F|Head|||42|1671 +3000|WI|Clark County, Marathon County|Abbotsford city|318|0|2|Grabski|Dottie|2990|Guinea-bissau|F|Daughter|||10|1672 +3000|WI|Clark County, Marathon County|Abbotsford city|318|0|3|Grabski|Hollis|2994|Connecticut|F|Daughter|||6|1673 +3000|WI|Clark County, Marathon County|Abbotsford city|318|0|4|Grabski|Byron Ted|2998|New Mexico|M|Son|||2|1674 + +3000|OH|Meigs County|Pomeroy village|319|0|1|Spearman|Rupert Dino|2962|South Carolina|M|Head|||38|1675 +3000|OH|Meigs County|Pomeroy village|319|0|2|Spearman|Roxy|2998|Wisconsin|F|Daughter|||2|1676 + +3000|MS|Chickasaw County|Okolona city|320|0|1|Annunziata|Jimmy Mohammed|2961|Utah|M|Head|||39|1677 +3000|MS|Chickasaw County|Okolona city|320|0|2|Annunziata|Loma|2980|Cote D'ivoire|F|Spouse|||20|1678 +3000|MS|Chickasaw County|Okolona city|320|0|3|Annunziata|Gina|3000|Montana|F|Daughter|||0|1679 + +3000|MN|Koochiching County|Mizpah city|321|0|1|Mobley|Forrest Len|2952|Nevada|M|Head|||48|1680 +3000|MN|Koochiching County|Mizpah city|321|0|2|Mobley|Masako|2976|Trinidad And Tobago|F|Spouse|||24|1681 +3000|MN|Koochiching County|Mizpah city|321|0|3|Mobley|Stanton|3000|Georgia|M|Son|||0|1682 + +3000|CA|Fresno County|Mendota city|322|0|1|Viguerie|Nicky|2956|Mississippi|F|Head|||44|1683 +3000|CA|Fresno County|Mendota city|322|0|2|Viguerie|Colton|2978|Dominica|M|Son|||22|1684 +3000|CA|Fresno County|Mendota city|322|0|3|Viguerie|Meggan|2988|Mississippi|F|Daughter|||12|1685 +3000|CA|Fresno County|Mendota city|322|0|4|Viguerie|Edward|2994|New Mexico|M|Son|||6|1686 +3000|CA|Fresno County|Mendota city|322|0|5|Viguerie|Wanetta|2996|Pennsylvania|F|Daughter|||4|1687 +3000|CA|Fresno County|Mendota city|322|0|6|Viguerie|Breann|3000|Washington|F|Daughter|||0|1688 + +3000|NJ|Monmouth County|Aberdeen township|323|0|1|Franklyn|Rex|2941|Virginia|M|Head|||59|1689 +3000|NJ|Monmouth County|Aberdeen township|323|0|2|Franklyn|Dwain|2987|New Mexico|M|Son|||13|1690 +3000|NJ|Monmouth County|Aberdeen township|323|0|3|Franklyn|Felipe|2989|New York|M|Son|||11|1691 +3000|NJ|Monmouth County|Aberdeen township|323|0|4|Franklyn|Cornelia|2991|California|F|Daughter|||9|1692 +3000|NJ|Monmouth County|Aberdeen township|323|0|5|Franklyn|Sherley|2995|Georgia|F|Daughter|||5|1693 + +3000|PA|Perry County|Newport borough|324|0|1|Larkin|Felicita|2981|New Mexico|F|Head|||19|1694 + +3000|WI|Polk County|Clear Lake village|325|0|1|Stoddard|Quentin Oswaldo|2961|Indiana|M|Head|||39|1695 +3000|WI|Polk County|Clear Lake village|325|0|2|Stoddard|Josefine|2966|Lebanon|F|Spouse|||34|1696 +3000|WI|Polk County|Clear Lake village|325|0|3|Stoddard|Lia Lorine|2990|California|F|Daughter|||10|1697 +3000|WI|Polk County|Clear Lake village|325|0|4|Stoddard|Ali|2994|Maine|M|Son|||6|1698 + +3000|MI|Monroe County|Estral Beach village|326|0|1|Dipilato|Ernie|2979|West Virginia|M|Head|||21|1699 + +3000|MN|Carlton County|Split Rock township|327|0|1|Norman|Trevor Antione|2947|Nauru|M|Head|||53|1700 +3000|MN|Carlton County|Split Rock township|327|0|2|Norman|Zulema|2955|Rhode Island|F|Spouse|||45|1701 +3000|MN|Carlton County|Split Rock township|327|0|3|Norman|Robin|2977|Virginia|M|Son|||23|1702 +3000|MN|Carlton County|Split Rock township|327|0|4|Norman|Arden|2985|Rhode Island|M|Son|||15|1703 +3000|MN|Carlton County|Split Rock township|327|0|5|Norman|Miquel|2987|Rhode Island|M|Son|||13|1704 +3000|MN|Carlton County|Split Rock township|327|0|6|Norman|Darryl|2993|West Virginia|M|Son|||7|1705 + +3000|IL|Fayette County|Bingham village|328|0|1|Yost|Harrison Doyle|2968|Georgia|M|Head|||32|1706 +3000|IL|Fayette County|Bingham village|328|0|2|Yost|Evita|2982|Massachusetts|F|Spouse|||18|1707 + +3000|CA|Shasta County|Montgomery Creek CDP|329|0|1|Germann|Stewart Courtney|2951|Arkansas|M|Head|||49|1708 +3000|CA|Shasta County|Montgomery Creek CDP|329|0|2|Germann|Savannah|2979|Arizona|F|Daughter|||21|1709 +3000|CA|Shasta County|Montgomery Creek CDP|329|0|3|Germann|Coy|2981|West Virginia|M|Son|||19|1710 +3000|CA|Shasta County|Montgomery Creek CDP|329|0|4|Germann|Domingo Glen|2983|Wisconsin|M|Son|||17|1711 +3000|CA|Shasta County|Montgomery Creek CDP|329|0|5|Germann|Deon Clark|2985|Connecticut|M|Son|||15|1712 +3000|CA|Shasta County|Montgomery Creek CDP|329|0|6|Germann|Cherri|2987|Rhode Island|F|Daughter|||13|1713 +3000|CA|Shasta County|Montgomery Creek CDP|329|0|7|Germann|Raymon|2989|New Mexico|M|Son|||11|1714 +3000|CA|Shasta County|Montgomery Creek CDP|329|0|8|Germann|Helene Stephaine|2999|Maryland|F|Daughter|||1|1715 + +3000|WV|Randolph County|Elkins city|330|0|1|Johnson|Dominic Pierre|2948|Alaska|M|Head|||52|1716 +3000|WV|Randolph County|Elkins city|330|0|2|Johnson|Marge|2958|Iowa|F|Spouse|||42|1717 +3000|WV|Randolph County|Elkins city|330|0|3|Johnson|Porsche|2988|Ghana|F|Daughter|||12|1718 +3000|WV|Randolph County|Elkins city|330|0|4|Johnson|Dustin|2990|Mississippi|M|Son|||10|1719 +3000|WV|Randolph County|Elkins city|330|0|5|Johnson|Tony|2992|Rhode Island|M|Son|||8|1720 +3000|WV|Randolph County|Elkins city|330|0|6|Johnson|Brain|2996|Illinois|M|Son|||4|1721 +3000|WV|Randolph County|Elkins city|330|0|7|Johnson|Veta|2998|Nevada|F|Daughter|||2|1722 + +3000|CO|Pueblo County|Blende CDP|331|0|1|Gasper|Dallas Jackson|2961|Ohio|M|Head|||39|1723 +3000|CO|Pueblo County|Blende CDP|331|0|2|Gasper|Sherilyn|2969|Somalia|F|Spouse|||31|1724 +3000|CO|Pueblo County|Blende CDP|331|0|3|Gasper|Leopoldo|2989|Oregon|M|Son|||11|1725 +3000|CO|Pueblo County|Blende CDP|331|0|4|Gasper|Miles|2991|Wisconsin|M|Son|||9|1726 +3000|CO|Pueblo County|Blende CDP|331|0|5|Gasper|Marlena Ninfa|2995|Tennessee|F|Daughter|||5|1727 +3000|CO|Pueblo County|Blende CDP|331|0|6|Gasper|Leonel|2997|Holy See (vatican City State)|M|Son|||3|1728 +3000|CO|Pueblo County|Blende CDP|331|0|7|Gasper|Beau|2999|Poland|M|Son|||1|1729 + +3000|MN|Brown County|Stately township|332|0|1|Phanor|Reed Alfonzo|2951|South Dakota|M|Head|||49|1730 +3000|MN|Brown County|Stately township|332|0|2|Phanor|Kandi Lynetta|2956|East Timor|F|Spouse|||44|1731 +3000|MN|Brown County|Stately township|332|0|3|Phanor|Melia|2980|Nebraska|F|Daughter|||20|1732 +3000|MN|Brown County|Stately township|332|0|4|Phanor|Graciela|2988|Virginia|F|Daughter|||12|1733 +3000|MN|Brown County|Stately township|332|0|5|Phanor|Ernest|2990|Alaska|M|Son|||10|1734 +3000|MN|Brown County|Stately township|332|0|6|Phanor|Huong|2994|Minnesota|F|Daughter|||6|1735 +3000|MN|Brown County|Stately township|332|0|7|Phanor|Debera|2998|Indiana|F|Daughter|||2|1736 +3000|MN|Brown County|Stately township|332|0|8|Phanor|Loraine|3000|Bouvet Island|F|Daughter|||0|1737 + +3000|NJ|Burlington County|Medford Lakes borough|333|0|1|Herrera|Ronald Raphael|2947|Bouvet Island|M|Head|||53|1738 +3000|NJ|Burlington County|Medford Lakes borough|333|0|2|Herrera|Cyndy|2959|Georgia|F|Spouse|||41|1739 +3000|NJ|Burlington County|Medford Lakes borough|333|0|3|Herrera|Joelle|2981|North Dakota|F|Daughter|||19|1740 +3000|NJ|Burlington County|Medford Lakes borough|333|0|4|Herrera|Towanda|2985|Georgia|F|Daughter|||15|1741 +3000|NJ|Burlington County|Medford Lakes borough|333|0|5|Herrera|Monte|2987|Martinique|M|Son|||13|1742 +3000|NJ|Burlington County|Medford Lakes borough|333|0|6|Herrera|Reginald|2991|Missouri|M|Son|||9|1743 +3000|NJ|Burlington County|Medford Lakes borough|333|0|7|Herrera|Marceline|2993|Idaho|F|Daughter|||7|1744 +3000|NJ|Burlington County|Medford Lakes borough|333|0|8|Herrera|Sharolyn Thersa|2997|Michigan|F|Daughter|||3|1745 +3000|NJ|Burlington County|Medford Lakes borough|333|0|9|Herrera|Beatris|2999|Virginia|F|Daughter|||1|1746 + +3000|TN|Grundy County|Beersheba Springs town|334|0|1|Smith|Brian Zachary|2974|Florida|M|Head|||26|1747 +3000|TN|Grundy County|Beersheba Springs town|334|0|2|Smith|Page|2970|North Dakota|F|Spouse|||30|1748 +3000|TN|Grundy County|Beersheba Springs town|334|0|3|Smith|Arcelia|2996|Minnesota|F|Daughter|||4|1749 + +3000|PA|York County|Spring Garden township|335|0|1|Bunce|Cyril Wilton|2962|Massachusetts|M|Head|||38|1750 +3000|PA|York County|Spring Garden township|335|0|2|Bunce|Wilber|2993|Maine|M|Son|||7|1751 +3000|PA|York County|Spring Garden township|335|0|3|Bunce|Elisha|2995|Michigan|M|Son|||5|1752 +3000|PA|York County|Spring Garden township|335|0|4|Bunce|Chung|2997|Washington|M|Son|||3|1753 +3000|PA|York County|Spring Garden township|335|0|5|Bunce|Karen Theressa|2999|Maryland|F|Daughter|||1|1754 + +3000|IN|Rush County|Carthage town|336|0|1|Bubrig|Marquis|2941|Oregon|M|Head|||59|1755 +3000|IN|Rush County|Carthage town|336|0|2|Bubrig|Clorinda|2966|Mozambique|F|Daughter|||34|1756 +3000|IN|Rush County|Carthage town|336|0|3|Bubrig|Leopoldo|2968|Equatorial Guinea|M|Son|||32|1757 +3000|IN|Rush County|Carthage town|336|0|4|Bubrig|Natalya|2982|Missouri|F|Daughter|||18|1758 +3000|IN|Rush County|Carthage town|336|0|5|Bubrig|Columbus|2984|Maryland|M|Son|||16|1759 +3000|IN|Rush County|Carthage town|336|0|6|Bubrig|Charles Bart|2986|West Virginia|M|Son|||14|1760 +3000|IN|Rush County|Carthage town|336|0|7|Bubrig|Benjamin Miquel|2992|Nevada|M|Son|||8|1761 + +3000|NY|Nassau County|Malverne Park Oaks CDP|337|0|1|Broomhall|Reuben Jonathan|2950|Colorado|M|Head|||50|1762 +3000|NY|Nassau County|Malverne Park Oaks CDP|337|0|2|Broomhall|Burt|2977|Nebraska|M|Son|||23|1763 +3000|NY|Nassau County|Malverne Park Oaks CDP|337|0|3|Broomhall|Jeffie Mao|2983|Massachusetts|F|Daughter|||17|1764 +3000|NY|Nassau County|Malverne Park Oaks CDP|337|0|4|Broomhall|Gustavo|2987|Hawaii|M|Son|||13|1765 +3000|NY|Nassau County|Malverne Park Oaks CDP|337|0|5|Broomhall|Marisol|2991|Rhode Island|F|Daughter|||9|1766 +3000|NY|Nassau County|Malverne Park Oaks CDP|337|0|6|Broomhall|Tim|2997|Nevada|M|Son|||3|1767 +3000|NY|Nassau County|Malverne Park Oaks CDP|337|0|7|Broomhall|Belkis|2999|Washington|F|Daughter|||1|1768 + +3000|KS|Ness County|Ness City city|338|0|1|Roberson|Deangelo Lonnie|2939|Montana|M|Head|||61|1769 +3000|KS|Ness County|Ness City city|338|0|2|Roberson|Tabitha|2958|Florida|F|Spouse|||42|1770 +3000|KS|Ness County|Ness City city|338|0|3|Roberson|Chery|2982|New Hampshire|F|Daughter|||18|1771 +3000|KS|Ness County|Ness City city|338|0|4|Roberson|Brenda|2990|Oregon|F|Daughter|||10|1772 +3000|KS|Ness County|Ness City city|338|0|5|Roberson|Pamala|2992|Iowa|F|Daughter|||8|1773 +3000|KS|Ness County|Ness City city|338|0|6|Roberson|Felice|2996|Wyoming|F|Daughter|||4|1774 +3000|KS|Ness County|Ness City city|338|0|7|Roberson|Lourie|2998|Missouri|F|Daughter|||2|1775 + +3000|SD|Davison County|Ethan town|339|0|1|Muina|Shane Alfredo|2939|Mississippi|M|Head|||61|1776 +3000|SD|Davison County|Ethan town|339|0|2|Muina|Rosio|2956|Hawaii|F|Spouse|||44|1777 +3000|SD|Davison County|Ethan town|339|0|3|Muina|Mary|2984|Cook Islands|M|Son|||16|1778 +3000|SD|Davison County|Ethan town|339|0|4|Muina|Zelda|2986|South Dakota|F|Daughter|||14|1779 +3000|SD|Davison County|Ethan town|339|0|5|Muina|Kristy|2992|Idaho|F|Daughter|||8|1780 +3000|SD|Davison County|Ethan town|339|0|6|Muina|Hollis|2996|Nevada|M|Son|||4|1781 + +3000|MA|Suffolk County|Chelsea city|340|0|1|Moore|Grover Walter|2952|Mississippi|M|Head|||48|1782 +3000|MA|Suffolk County|Chelsea city|340|0|2|Moore|Love Ella|2964|North Dakota|F|Spouse|||36|1783 +3000|MA|Suffolk County|Chelsea city|340|0|3|Moore|Omer|2990|New Zealand|M|Son|||10|1784 +3000|MA|Suffolk County|Chelsea city|340|0|4|Moore|Nam|2992|Maryland|F|Daughter|||8|1785 +3000|MA|Suffolk County|Chelsea city|340|0|5|Moore|Merissa|2994|California|F|Daughter|||6|1786 +3000|MA|Suffolk County|Chelsea city|340|0|6|Moore|Florinda|2996|Montana|F|Daughter|||4|1787 +3000|MA|Suffolk County|Chelsea city|340|0|7|Moore|Lita Lavern|2998|Minnesota|F|Daughter|||2|1788 + +3000|MN|Kandiyohi County|Kandiyohi city|341|0|1|Vandorn|Tad Dewayne|2965|Michigan|M|Head|||35|1789 +3000|MN|Kandiyohi County|Kandiyohi city|341|0|2|Vandorn|Ceola|2979|Bulgaria|F|Spouse|||21|1790 +3000|MN|Kandiyohi County|Kandiyohi city|341|0|3|Vandorn|Warren|2999|Gambia|M|Son|||1|1791 + +3000|MN|Cass County|Bena city|342|0|1|Rudoy|Jeffery|2952|Indiana|M|Head|||48|1792 +3000|MN|Cass County|Bena city|342|0|2|Rudoy|Carlee|2969|United Kingdom|F|Spouse|||31|1793 +3000|MN|Cass County|Bena city|342|0|3|Rudoy|Yon|2989|Georgia|F|Daughter|||11|1794 +3000|MN|Cass County|Bena city|342|0|4|Rudoy|Arnold|2991|Arizona|M|Son|||9|1795 +3000|MN|Cass County|Bena city|342|0|5|Rudoy|Jesse|2993|Oklahoma|M|Son|||7|1796 +3000|MN|Cass County|Bena city|342|0|6|Rudoy|Justa Beaulah|2999|Oklahoma|F|Daughter|||1|1797 + +3000|CT|Litchfield County|Barkhamsted town|343|0|1|Hasson|Hipolito Mack|2945|Cape Verde|M|Head|||55|1798 +3000|CT|Litchfield County|Barkhamsted town|343|0|2|Hasson|Shonna|2957|Guinea-bissau|F|Spouse|||43|1799 +3000|CT|Litchfield County|Barkhamsted town|343|0|3|Hasson|Inez|2981|Oregon|F|Daughter|||19|1800 +3000|CT|Litchfield County|Barkhamsted town|343|0|4|Hasson|Salley|2985|Mississippi|F|Daughter|||15|1801 +3000|CT|Litchfield County|Barkhamsted town|343|0|5|Hasson|Diedre|2987|Louisiana|F|Daughter|||13|1802 +3000|CT|Litchfield County|Barkhamsted town|343|0|6|Hasson|Johnson|2991|Macau|M|Son|||9|1803 +3000|CT|Litchfield County|Barkhamsted town|343|0|7|Hasson|Elizebeth|2997|Washington|F|Daughter|||3|1804 + +3000|UT|Washington County|Apple Valley town|344|0|1|Keithly|Mac|2956|Iowa|M|Head|||44|1805 +3000|UT|Washington County|Apple Valley town|344|0|2|Keithly|Terri Leisha|2978|South Dakota|F|Spouse|||22|1806 +3000|UT|Washington County|Apple Valley town|344|0|3|Keithly|Jeffrey|2998|Ethiopia|F|Daughter|||2|1807 +3000|UT|Washington County|Apple Valley town|344|0|4|Keithly|Genaro|3000|North Dakota|M|Son|||0|1808 + +3000|PA|Butler County|Seven Fields borough|345|0|1|Quintana|Jerrold Cesar|2942|North Dakota|M|Head|||58|1809 +3000|PA|Butler County|Seven Fields borough|345|0|2|Quintana|Basilia|2944|Christmas Island|F|Spouse|||56|1810 +3000|PA|Butler County|Seven Fields borough|345|0|3|Quintana|Mickey|2972|North Carolina|M|Son|||28|1811 +3000|PA|Butler County|Seven Fields borough|345|0|4|Quintana|Omer|2978|Idaho|M|Son|||22|1812 +3000|PA|Butler County|Seven Fields borough|345|0|5|Quintana|Lane Kareen|2988|Delaware|F|Daughter|||12|1813 +3000|PA|Butler County|Seven Fields borough|345|0|6|Quintana|Stanton|3000|Wisconsin|M|Son|||0|1814 + +3000|MN|Becker County|Ogema city|346|0|1|Smith|Stevie|2952|Maine|M|Head|||48|1815 +3000|MN|Becker County|Ogema city|346|0|2|Smith|Claudia|2952|Swaziland|F|Spouse|||48|1816 +3000|MN|Becker County|Ogema city|346|0|3|Smith|Bula|2974|Mississippi|F|Daughter|||26|1817 +3000|MN|Becker County|Ogema city|346|0|4|Smith|Kristine|2978|Tunisia|F|Daughter|||22|1818 +3000|MN|Becker County|Ogema city|346|0|5|Smith|Zachery Heriberto|2980|Afghanistan|M|Son|||20|1819 +3000|MN|Becker County|Ogema city|346|0|6|Smith|Sung|2992|Nevada|M|Son|||8|1820 +3000|MN|Becker County|Ogema city|346|0|7|Smith|Rosina|3000|Kansas|F|Daughter|||0|1821 + +3000|NY|Orange County|Blooming Grove town|347|0|1|Mimes|Ulysses Duane|2942|Idaho|M|Head|||58|1822 +3000|NY|Orange County|Blooming Grove town|347|0|2|Mimes|Abby|2955|New Mexico|F|Spouse|||45|1823 +3000|NY|Orange County|Blooming Grove town|347|0|3|Mimes|Landon Hai|2979|Nebraska|M|Son|||21|1824 +3000|NY|Orange County|Blooming Grove town|347|0|4|Mimes|Mozell|2983|Nevada|F|Daughter|||17|1825 +3000|NY|Orange County|Blooming Grove town|347|0|5|Mimes|Cecil|2985|New York|M|Son|||15|1826 +3000|NY|Orange County|Blooming Grove town|347|0|6|Mimes|Karey Shawn|2987|Pennsylvania|F|Daughter|||13|1827 +3000|NY|Orange County|Blooming Grove town|347|0|7|Mimes|Jasper|2989|Massachusetts|M|Son|||11|1828 +3000|NY|Orange County|Blooming Grove town|347|0|8|Mimes|Kimberlee|2991|Wyoming|F|Daughter|||9|1829 +3000|NY|Orange County|Blooming Grove town|347|0|9|Mimes|Mia|2997|Saint Lucia|F|Daughter|||3|1830 + +3000|HI|Honolulu County|Ewa Villages CDP|348|0|1|Chamber|Federico|2969|United States|M|Head|||31|1831 +3000|HI|Honolulu County|Ewa Villages CDP|348|0|2|Chamber|Marlon|2994|Oregon|M|Son|||6|1832 +3000|HI|Honolulu County|Ewa Villages CDP|348|0|3|Chamber|Elvie Marylouise|3000|New Mexico|F|Daughter|||0|1833 + +3000|PA|Westmoreland County|Scottdale borough|349|0|1|Hodgson|Anthony Dwight|2967|Kansas|M|Head|||33|1834 +3000|PA|Westmoreland County|Scottdale borough|349|0|2|Hodgson|Val|2966|Hawaii|F|Spouse|||34|1835 +3000|PA|Westmoreland County|Scottdale borough|349|0|3|Hodgson|Wilson Fritz|2986|North Carolina|M|Son|||14|1836 +3000|PA|Westmoreland County|Scottdale borough|349|0|4|Hodgson|Hal Frankie|2990|North Carolina|M|Son|||10|1837 +3000|PA|Westmoreland County|Scottdale borough|349|0|5|Hodgson|Mauro|2992|Andorra|M|Son|||8|1838 +3000|PA|Westmoreland County|Scottdale borough|349|0|6|Hodgson|Viola|2996|Ohio|F|Daughter|||4|1839 +3000|PA|Westmoreland County|Scottdale borough|349|0|7|Hodgson|Monique|3000|Turkmenistan|F|Daughter|||0|1840 + +3000|MN|Itasca County|Nashwauk city|350|0|1|Rippey|Elijah Dwight|2947|Ireland|M|Head|||53|1841 +3000|MN|Itasca County|Nashwauk city|350|0|2|Rippey|Sanora|2961|Minnesota|F|Spouse|||39|1842 +3000|MN|Itasca County|Nashwauk city|350|0|3|Rippey|Margarette|2983|Michigan|F|Daughter|||17|1843 +3000|MN|Itasca County|Nashwauk city|350|0|4|Rippey|Odell|2987|Ukraine|M|Son|||13|1844 +3000|MN|Itasca County|Nashwauk city|350|0|5|Rippey|Alejandro|2991|Vermont|M|Son|||9|1845 +3000|MN|Itasca County|Nashwauk city|350|0|6|Rippey|Norman|2995|Colorado|M|Son|||5|1846 +3000|MN|Itasca County|Nashwauk city|350|0|7|Rippey|Angelo|2997|Alabama|M|Son|||3|1847 +3000|MN|Itasca County|Nashwauk city|350|0|8|Rippey|Salena|2999|Georgia|F|Daughter|||1|1848 + +3000|MA|Bristol County|Berkley town|351|0|1|Ranweiler|Barrett Billie|2968|Pennsylvania|M|Head|||32|1849 +3000|MA|Bristol County|Berkley town|351|0|2|Ranweiler|Denisha|2986|Illinois|F|Daughter|||14|1850 +3000|MA|Bristol County|Berkley town|351|0|3|Ranweiler|Tula|2990|Malaysia|F|Daughter|||10|1851 +3000|MA|Bristol County|Berkley town|351|0|4|Ranweiler|Syreeta|2992|Tonga|F|Daughter|||8|1852 +3000|MA|Bristol County|Berkley town|351|0|5|Ranweiler|Bernie|2998|Dominican Republic|M|Son|||2|1853 +3000|MA|Bristol County|Berkley town|351|0|6|Ranweiler|Belen|3000|Illinois|F|Daughter|||0|1854 + +3000|MN|Clay County|Ulen city|352|0|1|Roper|Ollie Salvatore|2958|Oklahoma|M|Head|||42|1855 +3000|MN|Clay County|Ulen city|352|0|2|Roper|Eunice|2980|Tennessee|F|Spouse|||20|1856 +3000|MN|Clay County|Ulen city|352|0|3|Roper|Geneva|3000|France|F|Daughter|||0|1857 + +3000|AL|DeKalb County|Pine Ridge town|353|0|1|Ryser|Larry Derek|2945|Iraq|M|Head|||55|1858 +3000|AL|DeKalb County|Pine Ridge town|353|0|2|Ryser|Ashton|2961|New Jersey|F|Spouse|||39|1859 +3000|AL|DeKalb County|Pine Ridge town|353|0|3|Ryser|Bella Loida|2987|New Jersey|F|Daughter|||13|1860 +3000|AL|DeKalb County|Pine Ridge town|353|0|4|Ryser|Shaneka|2989|Connecticut|F|Daughter|||11|1861 +3000|AL|DeKalb County|Pine Ridge town|353|0|5|Ryser|Gwenn|2991|Hawaii|F|Daughter|||9|1862 +3000|AL|DeKalb County|Pine Ridge town|353|0|6|Ryser|Sonya|2999|Utah|F|Daughter|||1|1863 + +3000|PA|Beaver County|New Galilee borough|354|0|1|Berens|Lovie Shanika|2974|Singapore|F|Head|||26|1864 +3000|PA|Beaver County|New Galilee borough|354|0|2|Berens|Lucretia|2994|Dominica|F|Daughter|||6|1865 +3000|PA|Beaver County|New Galilee borough|354|0|3|Berens|Trent|2996|Rhode Island|M|Son|||4|1866 +3000|PA|Beaver County|New Galilee borough|354|0|4|Berens|Leonardo|3000|Arizona|M|Son|||0|1867 + +3000|MN|Freeborn County|Freeborn city|355|0|1|Lysaght|Claud Willian|2948|Nevada|M|Head|||52|1868 +3000|MN|Freeborn County|Freeborn city|355|0|2|Lysaght|Maira|2959|Maine|F|Spouse|||41|1869 +3000|MN|Freeborn County|Freeborn city|355|0|3|Lysaght|Viva|2979|California|F|Daughter|||21|1870 +3000|MN|Freeborn County|Freeborn city|355|0|4|Lysaght|Kenya Marisa|2985|Colorado|F|Daughter|||15|1871 +3000|MN|Freeborn County|Freeborn city|355|0|5|Lysaght|Valentine|2987|Michigan|M|Son|||13|1872 +3000|MN|Freeborn County|Freeborn city|355|0|6|Lysaght|Troy|2995|Egypt|F|Daughter|||5|1873 + +3000|PA|Butler County|Petrolia borough|356|0|1|Schulte|Britt Jeffery|2956|New Jersey|M|Head|||44|1874 +3000|PA|Butler County|Petrolia borough|356|0|2|Schulte|Tawnya|2978|Ohio|F|Spouse|||22|1875 +3000|PA|Butler County|Petrolia borough|356|0|3|Schulte|Leandro|2998|Indiana|M|Son|||2|1876 +3000|PA|Butler County|Petrolia borough|356|0|4|Schulte|Ricarda|3000|Egypt|F|Daughter|||0|1877 + +3000|KY|Knox County|Barbourville city|357|0|1|Masuda|Todd Jefferey|2954|Delaware|M|Head|||46|1878 +3000|KY|Knox County|Barbourville city|357|0|2|Masuda|Altha|2968|Japan|F|Spouse|||32|1879 +3000|KY|Knox County|Barbourville city|357|0|3|Masuda|Birdie|2988|Pitcairn|F|Daughter|||12|1880 +3000|KY|Knox County|Barbourville city|357|0|4|Masuda|Dannie|2990|Texas|F|Daughter|||10|1881 +3000|KY|Knox County|Barbourville city|357|0|5|Masuda|Seth|2992|Montana|M|Son|||8|1882 +3000|KY|Knox County|Barbourville city|357|0|6|Masuda|Lester|2994|Hawaii|M|Son|||6|1883 +3000|KY|Knox County|Barbourville city|357|0|7|Masuda|Gaynelle|2996|New Hampshire|F|Daughter|||4|1884 +3000|KY|Knox County|Barbourville city|357|0|8|Masuda|Douglas Trenton|2998|Georgia|M|Son|||2|1885 +3000|KY|Knox County|Barbourville city|357|0|9|Masuda|Lanny|3000|Arizona|M|Son|||0|1886 + +3000|MN|Wadena County|Aldrich township|358|0|1|Wilder|Kory Ronny|2948|Arkansas|M|Head|||52|1887 +3000|MN|Wadena County|Aldrich township|358|0|2|Wilder|Sylvie Tai|2952|Indiana|F|Spouse|||48|1888 +3000|MN|Wadena County|Aldrich township|358|0|3|Wilder|Isidro|2976|Michigan|M|Son|||24|1889 +3000|MN|Wadena County|Aldrich township|358|0|4|Wilder|Len|2982|Colorado|M|Son|||18|1890 +3000|MN|Wadena County|Aldrich township|358|0|5|Wilder|Ross|2986|North Dakota|M|Son|||14|1891 +3000|MN|Wadena County|Aldrich township|358|0|6|Wilder|Flossie|2990|New Jersey|F|Daughter|||10|1892 +3000|MN|Wadena County|Aldrich township|358|0|7|Wilder|Addie|2996|Indiana|F|Daughter|||4|1893 + +3000|MA|Worcester County|Uxbridge town|359|0|1|Schroth|Kraig|2942|Pennsylvania|M|Head|||58|1894 +3000|MA|Worcester County|Uxbridge town|359|0|2|Schroth|Emmy|2963|Michigan|F|Spouse|||37|1895 +3000|MA|Worcester County|Uxbridge town|359|0|3|Schroth|Nona Lydia|2985|New Mexico|F|Daughter|||15|1896 +3000|MA|Worcester County|Uxbridge town|359|0|4|Schroth|Moises|2987|Minnesota|M|Son|||13|1897 +3000|MA|Worcester County|Uxbridge town|359|0|5|Schroth|Norman|2993|Cape Verde|M|Son|||7|1898 +3000|MA|Worcester County|Uxbridge town|359|0|6|Schroth|Tyrell|2997|Iowa|M|Son|||3|1899 + +3000|MI|Bay County|Garfield township|360|0|1|Chiz|Merlin Al|2945|Delaware|M|Head|||55|1900 +3000|MI|Bay County|Garfield township|360|0|2|Chiz|Georgiann|2985|Louisiana|F|Daughter|||15|1901 +3000|MI|Bay County|Garfield township|360|0|3|Chiz|Bridgett Tamera|2987|Maryland|F|Daughter|||13|1902 +3000|MI|Bay County|Garfield township|360|0|4|Chiz|Allen|2989|Iowa|M|Son|||11|1903 +3000|MI|Bay County|Garfield township|360|0|5|Chiz|Jerome|2991|Maryland|M|Son|||9|1904 +3000|MI|Bay County|Garfield township|360|0|6|Chiz|Tyrone|2995|Wallis And Futuna|M|Son|||5|1905 +3000|MI|Bay County|Garfield township|360|0|7|Chiz|Shirley|2999|Wyoming|M|Son|||1|1906 + +3000|UT|Cache County|North Logan city|361|0|1|Arredondo|Howard Reyes|2973|Hawaii|M|Head|||27|1907 +3000|UT|Cache County|North Logan city|361|0|2|Arredondo|Argentina|2984|Pennsylvania|F|Spouse|||16|1908 + +3000|MO|Mississippi County|Bertrand city|362|0|1|Molyneaux|Lester Antwan|2977|Colorado|M|Head|||23|1909 +3000|MO|Mississippi County|Bertrand city|362|0|2|Molyneaux|Shavon Santos|2997|Kentucky|F|Daughter|||3|1910 + +3000|KS|Ford County|Dodge City city|363|0|1|Oravec|Marlin Wilber|2973|New Jersey|M|Head|||27|1911 +3000|KS|Ford County|Dodge City city|363|0|2|Oravec|Raul|2991|South Carolina|M|Son|||9|1912 +3000|KS|Ford County|Dodge City city|363|0|3|Oravec|Nikita|2999|Virginia|F|Daughter|||1|1913 + +3000|KS|Jefferson County|Nortonville city|364|0|1|Tercero|Marisol|2948|North Carolina|F|Head|||52|1914 +3000|KS|Jefferson County|Nortonville city|364|0|2|Tercero|Burma|2968|South Dakota|F|Daughter|||32|1915 +3000|KS|Jefferson County|Nortonville city|364|0|3|Tercero|Bethann Trena|2976|Anguilla|F|Daughter|||24|1916 +3000|KS|Jefferson County|Nortonville city|364|0|4|Tercero|Alissa|2980|Bosnia And Herzegovina|F|Daughter|||20|1917 +3000|KS|Jefferson County|Nortonville city|364|0|5|Tercero|Britany|2992|Alabama|F|Daughter|||8|1918 +3000|KS|Jefferson County|Nortonville city|364|0|6|Tercero|Elmer Morris|2996|Nebraska|M|Son|||4|1919 +3000|KS|Jefferson County|Nortonville city|364|0|7|Tercero|Sean|3000|Louisiana|M|Son|||0|1920 + +3000|MN|Aitkin County|Beaver township|365|0|1|Durrett|Jaime Harrison|2960|Kansas|M|Head|||40|1921 +3000|MN|Aitkin County|Beaver township|365|0|2|Durrett|Gia|2998|Mississippi|F|Daughter|||2|1922 +3000|MN|Aitkin County|Beaver township|365|0|3|Durrett|Kylie Sherita|3000|Wisconsin|F|Daughter|||0|1923 + +3000|CT|Tolland County|Vernon town|366|0|1|Triguro|Myron|2957|New York|M|Head|||43|1924 +3000|CT|Tolland County|Vernon town|366|0|2|Triguro|Evalyn|2956|Florida|F|Spouse|||44|1925 +3000|CT|Tolland County|Vernon town|366|0|3|Triguro|Rona|2980|Mississippi|F|Daughter|||20|1926 +3000|CT|Tolland County|Vernon town|366|0|4|Triguro|Orville Wilford|2986|New Mexico|M|Son|||14|1927 +3000|CT|Tolland County|Vernon town|366|0|5|Triguro|Russell|2990|Hawaii|M|Son|||10|1928 +3000|CT|Tolland County|Vernon town|366|0|6|Triguro|Leia Magaret|2992|Florida|F|Daughter|||8|1929 +3000|CT|Tolland County|Vernon town|366|0|7|Triguro|Rosendo|2996|Florida|M|Son|||4|1930 +3000|CT|Tolland County|Vernon town|366|0|8|Triguro|Ilana|3000|Sudan|F|Daughter|||0|1931 + +3000|MN|Todd County|Burtrum city|367|0|1|Gingery|Dwight|2954|Minnesota|M|Head|||46|1932 +3000|MN|Todd County|Burtrum city|367|0|2|Gingery|Aiko Jettie|2961|Louisiana|F|Spouse|||39|1933 +3000|MN|Todd County|Burtrum city|367|0|3|Gingery|Nathanael|2987|Kyrgyzstan|M|Son|||13|1934 +3000|MN|Todd County|Burtrum city|367|0|4|Gingery|Marlon Donny|2989|Kiribati|M|Son|||11|1935 +3000|MN|Todd County|Burtrum city|367|0|5|Gingery|Courtney|2991|Maine|M|Son|||9|1936 +3000|MN|Todd County|Burtrum city|367|0|6|Gingery|Shirl Cristine|2999|Louisiana|F|Daughter|||1|1937 + +3000|WI|Waukesha County|North Prairie village|368|0|1|Parks|Alvin Lenard|2951|South Dakota|M|Head|||49|1938 +3000|WI|Waukesha County|North Prairie village|368|0|2|Parks|Vernice|2958|Missouri|F|Spouse|||42|1939 +3000|WI|Waukesha County|North Prairie village|368|0|3|Parks|Lucius|2978|Wyoming|M|Son|||22|1940 +3000|WI|Waukesha County|North Prairie village|368|0|4|Parks|Guillermo|2988|Massachusetts|M|Son|||12|1941 +3000|WI|Waukesha County|North Prairie village|368|0|5|Parks|Matt Armando|2990|Tonga|M|Son|||10|1942 +3000|WI|Waukesha County|North Prairie village|368|0|6|Parks|Francis|2992|Georgia|M|Son|||8|1943 +3000|WI|Waukesha County|North Prairie village|368|0|7|Parks|Lincoln|2994|Rhode Island|M|Son|||6|1944 +3000|WI|Waukesha County|North Prairie village|368|0|8|Parks|Micheal|2996|Senegal|M|Son|||4|1945 +3000|WI|Waukesha County|North Prairie village|368|0|9|Parks|Alleen|2998|North Carolina|F|Daughter|||2|1946 +3000|WI|Waukesha County|North Prairie village|368|0|10|Parks|Erasmo|3000|Minnesota|M|Son|||0|1947 + +3000|MO|Buchanan County|Easton city|369|0|1|Hojnacki|Nathanael Edward|2962|Kosovo|M|Head|||38|1948 +3000|MO|Buchanan County|Easton city|369|0|2|Hojnacki|Samatha|2977|Florida|F|Spouse|||23|1949 +3000|MO|Buchanan County|Easton city|369|0|3|Hojnacki|Gregory|2997|Oklahoma|M|Son|||3|1950 +3000|MO|Buchanan County|Easton city|369|0|4|Hojnacki|Tonja|2999|Louisiana|F|Daughter|||1|1951 + +3000|ME|Kennebec County|Randolph CDP|370|0|1|Kluesner|Tod|2939|Kansas|M|Head|||61|1952 +3000|ME|Kennebec County|Randolph CDP|370|0|2|Kluesner|Joy|2961|Tokelau|F|Spouse|||39|1953 +3000|ME|Kennebec County|Randolph CDP|370|0|3|Kluesner|Consuela|2985|California|F|Daughter|||15|1954 +3000|ME|Kennebec County|Randolph CDP|370|0|4|Kluesner|Kimberli|2987|New Hampshire|F|Daughter|||13|1955 +3000|ME|Kennebec County|Randolph CDP|370|0|5|Kluesner|Danial|2989|Ethiopia|M|Son|||11|1956 +3000|ME|Kennebec County|Randolph CDP|370|0|6|Kluesner|Stephan|2991|Connecticut|M|Son|||9|1957 +3000|ME|Kennebec County|Randolph CDP|370|0|7|Kluesner|Leon|2993|Guinea|M|Son|||7|1958 +3000|ME|Kennebec County|Randolph CDP|370|0|8|Kluesner|Micah|2997|Hawaii|M|Son|||3|1959 +3000|ME|Kennebec County|Randolph CDP|370|0|9|Kluesner|Wilber|2999|United States Minor Outlying Islands|M|Son|||1|1960 + +3000|NY|Rockland County|West Haverstraw village|371|0|1|Mane|Edwin Abram|2969|Ohio|M|Head|||31|1961 +3000|NY|Rockland County|West Haverstraw village|371|0|2|Mane|Phyllis|2995|New York|F|Daughter|||5|1962 +3000|NY|Rockland County|West Haverstraw village|371|0|3|Mane|Jay|2997|Nebraska|M|Son|||3|1963 + +3000|ME|Aroostook County|Mapleton town|372|0|1|Easler|Bryant|2938|Kentucky|M|Head|||62|1964 +3000|ME|Aroostook County|Mapleton town|372|0|2|Easler|Lucrecia|2950|Arizona|F|Spouse|||50|1965 +3000|ME|Aroostook County|Mapleton town|372|0|3|Easler|Harley|2984|Ohio|M|Son|||16|1966 +3000|ME|Aroostook County|Mapleton town|372|0|4|Easler|Chance|2988|Argentina|M|Son|||12|1967 +3000|ME|Aroostook County|Mapleton town|372|0|5|Easler|Ronald|2990|Greenland|M|Son|||10|1968 +3000|ME|Aroostook County|Mapleton town|372|0|6|Easler|Alexander|3000|Peru|M|Son|||0|1969 + +3000|CA|Los Angeles County|Rolling Hills Estates city|373|0|1|Anglin|Wiley Jonah|2973|West Virginia|M|Head|||27|1970 +3000|CA|Los Angeles County|Rolling Hills Estates city|373|0|2|Anglin|Shavonne|2973|Montana|F|Spouse|||27|1971 +3000|CA|Los Angeles County|Rolling Hills Estates city|373|0|3|Anglin|Bulah|2993|Minnesota|F|Daughter|||7|1972 +3000|CA|Los Angeles County|Rolling Hills Estates city|373|0|4|Anglin|Janay|2997|Massachusetts|F|Daughter|||3|1973 + +3000|OH|Cuyahoga County|Shaker Heights city|374|0|1|Johnson|Francis Wayne|2949|Mississippi|M|Head|||51|1974 +3000|OH|Cuyahoga County|Shaker Heights city|374|0|2|Johnson|Marina|2959|Florida|F|Spouse|||41|1975 +3000|OH|Cuyahoga County|Shaker Heights city|374|0|3|Johnson|Suzanne|2985|Florida|F|Daughter|||15|1976 +3000|OH|Cuyahoga County|Shaker Heights city|374|0|4|Johnson|Zola Perla|2993|Kansas|F|Daughter|||7|1977 +3000|OH|Cuyahoga County|Shaker Heights city|374|0|5|Johnson|Ozell|2995|California|F|Daughter|||5|1978 + +3000|KS|Gove County|Grinnell city|375|0|1|Fischel|Jarrett|2939|Alabama|M|Head|||61|1979 +3000|KS|Gove County|Grinnell city|375|0|2|Fischel|Oralia|2941|North Dakota|F|Spouse|||59|1980 +3000|KS|Gove County|Grinnell city|375|0|3|Fischel|Devon|2963|Idaho|F|Daughter|||37|1981 +3000|KS|Gove County|Grinnell city|375|0|4|Fischel|Giovanni|2967|Iowa|M|Son|||33|1982 +3000|KS|Gove County|Grinnell city|375|0|5|Fischel|Robbyn|2977|North Carolina|F|Daughter|||23|1983 +3000|KS|Gove County|Grinnell city|375|0|6|Fischel|Ashley|2983|South Carolina|M|Son|||17|1984 +3000|KS|Gove County|Grinnell city|375|0|7|Fischel|Ellsworth|2989|New Mexico|M|Son|||11|1985 +3000|KS|Gove County|Grinnell city|375|0|8|Fischel|Paul|2991|Mississippi|M|Son|||9|1986 +3000|KS|Gove County|Grinnell city|375|0|9|Fischel|Bibi|2999|Mississippi|F|Daughter|||1|1987 + +3000|AZ|Yavapai County|Williamson CDP|376|0|1|Devore|Micha|2953|Bulgaria|F|Head|||47|1988 +3000|AZ|Yavapai County|Williamson CDP|376|0|2|Devore|Sudie|2973|Oregon|F|Daughter|||27|1989 +3000|AZ|Yavapai County|Williamson CDP|376|0|3|Devore|Wilfred|2985|Tennessee|M|Son|||15|1990 +3000|AZ|Yavapai County|Williamson CDP|376|0|4|Devore|Maida|2987|Georgia|F|Daughter|||13|1991 +3000|AZ|Yavapai County|Williamson CDP|376|0|5|Devore|Benton|2999|Alaska|M|Son|||1|1992 + +3000|WI|Columbia County|Doylestown village|377|0|1|Miranda|Marco Lacy|2939|Wyoming|M|Head|||61|1993 +3000|WI|Columbia County|Doylestown village|377|0|2|Miranda|Salley|2954|Nebraska|F|Spouse|||46|1994 +3000|WI|Columbia County|Doylestown village|377|0|3|Miranda|Byron|2978|Peru|M|Son|||22|1995 +3000|WI|Columbia County|Doylestown village|377|0|4|Miranda|Waldo Emmett|2986|Haiti|M|Son|||14|1996 +3000|WI|Columbia County|Doylestown village|377|0|5|Miranda|Clarice|2992|Indiana|F|Daughter|||8|1997 +3000|WI|Columbia County|Doylestown village|377|0|6|Miranda|Jung|3000|Vermont|F|Daughter|||0|1998 + +3000|MN|Pope County|Long Beach city|378|0|1|Benavidez|Garrett Weston|2969|Texas|M|Head|||31|1999 +3000|MN|Pope County|Long Beach city|378|0|2|Benavidez|Novella|2981|Bouvet Island|F|Spouse|||19|2000 + +3000|FL|Polk County|Medulla CDP|379|0|1|Ricker|Lucas|2940|New Hampshire|M|Head|||60|2001 +3000|FL|Polk County|Medulla CDP|379|0|2|Ricker|Ellis|2958|North Dakota|M|Son|||42|2002 +3000|FL|Polk County|Medulla CDP|379|0|3|Ricker|Holly|2966|Idaho|F|Daughter|||34|2003 +3000|FL|Polk County|Medulla CDP|379|0|4|Ricker|Tom|2968|Tajikistan|M|Son|||32|2004 +3000|FL|Polk County|Medulla CDP|379|0|5|Ricker|Jettie|2974|Colorado|F|Daughter|||26|2005 +3000|FL|Polk County|Medulla CDP|379|0|6|Ricker|Jammie|2986|Texas|F|Daughter|||14|2006 +3000|FL|Polk County|Medulla CDP|379|0|7|Ricker|Samara|2994|Arkansas|F|Daughter|||6|2007 +3000|FL|Polk County|Medulla CDP|379|0|8|Ricker|Noah|2996|Massachusetts|M|Son|||4|2008 +3000|FL|Polk County|Medulla CDP|379|0|9|Ricker|Milo|2998|Montana|M|Son|||2|2009 +3000|FL|Polk County|Medulla CDP|379|0|10|Ricker|Guadalupe|3000|Massachusetts|F|Daughter|||0|2010 + +3000|MI|Isabella County|Vernon township|380|0|1|Falk|Quincy Everette|2945|Florida|M|Head|||55|2011 +3000|MI|Isabella County|Vernon township|380|0|2|Falk|Tanika|2943|Georgia|F|Spouse|||57|2012 +3000|MI|Isabella County|Vernon township|380|0|3|Falk|David|2977|West Virginia|M|Son|||23|2013 +3000|MI|Isabella County|Vernon township|380|0|4|Falk|Asha|2985|Zimbabwe|F|Daughter|||15|2014 +3000|MI|Isabella County|Vernon township|380|0|5|Falk|Royce Candie|2989|United States|F|Daughter|||11|2015 +3000|MI|Isabella County|Vernon township|380|0|6|Falk|Fernando|2991|Saint Lucia|M|Son|||9|2016 +3000|MI|Isabella County|Vernon township|380|0|7|Falk|Kent|2997|Massachusetts|M|Son|||3|2017 +3000|MI|Isabella County|Vernon township|380|0|8|Falk|Randee|2999|New Mexico|F|Daughter|||1|2018 + +3000|LA|Calcasieu Parish|Gillis CDP|381|0|1|Guymon|Hilton|2947|Virginia|M|Head|||53|2019 +3000|LA|Calcasieu Parish|Gillis CDP|381|0|2|Guymon|Tammi|2963|Alaska|F|Spouse|||37|2020 +3000|LA|Calcasieu Parish|Gillis CDP|381|0|3|Guymon|Chase|2987|Colorado|M|Son|||13|2021 +3000|LA|Calcasieu Parish|Gillis CDP|381|0|4|Guymon|Rosemary|2991|North Carolina|F|Daughter|||9|2022 +3000|LA|Calcasieu Parish|Gillis CDP|381|0|5|Guymon|Sierra|2993|Antarctica|F|Daughter|||7|2023 +3000|LA|Calcasieu Parish|Gillis CDP|381|0|6|Guymon|Michal|2995|Portugal|M|Son|||5|2024 +3000|LA|Calcasieu Parish|Gillis CDP|381|0|7|Guymon|Eloise|2999|Alabama|F|Daughter|||1|2025 + +3000|NY|Montgomery County|Hagaman village|382|0|1|Anstine|Howard Shon|2953|Connecticut|M|Head|||47|2026 +3000|NY|Montgomery County|Hagaman village|382|0|2|Anstine|Sabra|2966|Utah|F|Spouse|||34|2027 +3000|NY|Montgomery County|Hagaman village|382|0|3|Anstine|Taylor|2986|Alabama|F|Daughter|||14|2028 +3000|NY|Montgomery County|Hagaman village|382|0|4|Anstine|Arnetta|2988|Anguilla|F|Daughter|||12|2029 +3000|NY|Montgomery County|Hagaman village|382|0|5|Anstine|Tiny|2990|Georgia|F|Daughter|||10|2030 +3000|NY|Montgomery County|Hagaman village|382|0|6|Anstine|Jeanetta|2994|Wyoming|F|Daughter|||6|2031 + +3000|PR|Manatí Municipio|Manatí zona urbana|383|0|1|Roeker|Fletcher Wilburn|2949|Minnesota|M|Head|||51|2032 +3000|PR|Manatí Municipio|Manatí zona urbana|383|0|2|Roeker|Joycelyn|2948|Michigan|F|Spouse|||52|2033 +3000|PR|Manatí Municipio|Manatí zona urbana|383|0|3|Roeker|Raymond|2988|Luxembourg|M|Son|||12|2034 +3000|PR|Manatí Municipio|Manatí zona urbana|383|0|4|Roeker|Herbert|2990|Indiana|M|Son|||10|2035 +3000|PR|Manatí Municipio|Manatí zona urbana|383|0|5|Roeker|Nolan Kermit|2994|Rhode Island|M|Son|||6|2036 +3000|PR|Manatí Municipio|Manatí zona urbana|383|0|6|Roeker|Lien|2998|South Carolina|F|Daughter|||2|2037 + +3000|MD|Baltimore County|Rosedale CDP|384|0|1|Mcquaid|Ron Eldridge|2954|Virginia|M|Head|||46|2038 +3000|MD|Baltimore County|Rosedale CDP|384|0|2|Mcquaid|Hortencia|2976|Colorado|F|Spouse|||24|2039 +3000|MD|Baltimore County|Rosedale CDP|384|0|3|Mcquaid|Lurlene|2996|Wisconsin|F|Daughter|||4|2040 +3000|MD|Baltimore County|Rosedale CDP|384|0|4|Mcquaid|Tanesha Iona|2998|Namibia|F|Daughter|||2|2041 + +3000|NY|Ulster County|Wawarsing town|385|0|1|Gaston|Marvin Freddie|2941|Montana|M|Head|||59|2042 +3000|NY|Ulster County|Wawarsing town|385|0|2|Gaston|John|2955|Tennessee|F|Spouse|||45|2043 +3000|NY|Ulster County|Wawarsing town|385|0|3|Gaston|Lyla Latasha|2977|Guam|F|Daughter|||23|2044 +3000|NY|Ulster County|Wawarsing town|385|0|4|Gaston|Andree|2985|Delaware|F|Daughter|||15|2045 +3000|NY|Ulster County|Wawarsing town|385|0|5|Gaston|Stephani|2987|Arizona|F|Daughter|||13|2046 + +3000|OK|Comanche County, Tillman County|Chattanooga town|386|0|1|Bryan|Elias Deshawn|2948|Delaware|M|Head|||52|2047 +3000|OK|Comanche County, Tillman County|Chattanooga town|386|0|2|Bryan|Lila|2961|Vermont|F|Spouse|||39|2048 +3000|OK|Comanche County, Tillman County|Chattanooga town|386|0|3|Bryan|Marshall|2983|South Carolina|M|Son|||17|2049 +3000|OK|Comanche County, Tillman County|Chattanooga town|386|0|4|Bryan|Maurice|2985|California|M|Son|||15|2050 +3000|OK|Comanche County, Tillman County|Chattanooga town|386|0|5|Bryan|Berry|2989|Tennessee|M|Son|||11|2051 +3000|OK|Comanche County, Tillman County|Chattanooga town|386|0|6|Bryan|Pearle|2991|North Dakota|F|Daughter|||9|2052 +3000|OK|Comanche County, Tillman County|Chattanooga town|386|0|7|Bryan|Virgil|2995|Tennessee|M|Son|||5|2053 +3000|OK|Comanche County, Tillman County|Chattanooga town|386|0|8|Bryan|Latoria Mathilde|2997|New York|F|Daughter|||3|2054 + +3000|PA|York County|East Hopewell township|387|0|1|Burr|Len Doug|2947|Delaware|M|Head|||53|2055 +3000|PA|York County|East Hopewell township|387|0|2|Burr|Guy|2976|Syrian Arab Republic|M|Son|||24|2056 +3000|PA|York County|East Hopewell township|387|0|3|Burr|Pamula Lakiesha|2978|South Dakota|F|Daughter|||22|2057 +3000|PA|York County|East Hopewell township|387|0|4|Burr|Logan Jarred|2982|Greece|M|Son|||18|2058 +3000|PA|York County|East Hopewell township|387|0|5|Burr|Shelby|2986|Georgia|M|Son|||14|2059 +3000|PA|York County|East Hopewell township|387|0|6|Burr|Clarinda|3000|Washington|F|Daughter|||0|2060 + +3000|TX|Calhoun County|Seadrift city|388|0|1|Reagan|Tod Kurt|2945|South Carolina|M|Head|||55|2061 +3000|TX|Calhoun County|Seadrift city|388|0|2|Reagan|Avril|2965|Montana|F|Spouse|||35|2062 +3000|TX|Calhoun County|Seadrift city|388|0|3|Reagan|Georgianne|2985|Oklahoma|F|Daughter|||15|2063 +3000|TX|Calhoun County|Seadrift city|388|0|4|Reagan|Wyatt|2991|South Carolina|M|Son|||9|2064 +3000|TX|Calhoun County|Seadrift city|388|0|5|Reagan|Florene|2993|Utah|F|Daughter|||7|2065 +3000|TX|Calhoun County|Seadrift city|388|0|6|Reagan|Bobbye|2997|Maryland|F|Daughter|||3|2066 + +3000|FL|Palm Beach County|Glen Ridge town|389|0|1|Pop|Jamar Burt|2974|Illinois|M|Head|||26|2067 +3000|FL|Palm Beach County|Glen Ridge town|389|0|2|Pop|Saturnina|2981|Delaware|F|Spouse|||19|2068 + +3000|MA|Worcester County|Mendon town|390|0|1|Kanoza|Barry Alphonse|2957|Delaware|M|Head|||43|2069 +3000|MA|Worcester County|Mendon town|390|0|2|Kanoza|Lillie|2968|New Hampshire|F|Spouse|||32|2070 +3000|MA|Worcester County|Mendon town|390|0|3|Kanoza|Harry Tanner|2988|Kansas|M|Son|||12|2071 +3000|MA|Worcester County|Mendon town|390|0|4|Kanoza|Craig|2990|Maldives|M|Son|||10|2072 +3000|MA|Worcester County|Mendon town|390|0|5|Kanoza|Bennett|2992|Colorado|M|Son|||8|2073 +3000|MA|Worcester County|Mendon town|390|0|6|Kanoza|Leonardo|2996|Florida|M|Son|||4|2074 + +3000|AZ|Yuma County|Fortuna Foothills CDP|391|0|1|Gershey|Bennett Howard|2946|Somalia|M|Head|||54|2075 +3000|AZ|Yuma County|Fortuna Foothills CDP|391|0|2|Gershey|Hye|2961|Louisiana|F|Spouse|||39|2076 +3000|AZ|Yuma County|Fortuna Foothills CDP|391|0|3|Gershey|James Oliver|2981|Kansas|M|Son|||19|2077 +3000|AZ|Yuma County|Fortuna Foothills CDP|391|0|4|Gershey|Diann|2985|Vermont|F|Daughter|||15|2078 +3000|AZ|Yuma County|Fortuna Foothills CDP|391|0|5|Gershey|Anderson Mohammad|2987|Pennsylvania|M|Son|||13|2079 +3000|AZ|Yuma County|Fortuna Foothills CDP|391|0|6|Gershey|Tiara|2989|Tennessee|F|Daughter|||11|2080 +3000|AZ|Yuma County|Fortuna Foothills CDP|391|0|7|Gershey|Maggie|2991|Ohio|F|Daughter|||9|2081 +3000|AZ|Yuma County|Fortuna Foothills CDP|391|0|8|Gershey|Jarrett|2993|Illinois|M|Son|||7|2082 + +3000|OH|Brown County|St. Martin village|392|0|1|Levy|Lincoln Harland|2958|Ohio|M|Head|||42|2083 +3000|OH|Brown County|St. Martin village|392|0|2|Levy|Onie|2980|East Timor|F|Daughter|||20|2084 +3000|OH|Brown County|St. Martin village|392|0|3|Levy|Del|2984|West Virginia|M|Son|||16|2085 +3000|OH|Brown County|St. Martin village|392|0|4|Levy|Tyree Adalberto|2986|Texas|M|Son|||14|2086 +3000|OH|Brown County|St. Martin village|392|0|5|Levy|Neida Jenice|2988|Indiana|F|Daughter|||12|2087 +3000|OH|Brown County|St. Martin village|392|0|6|Levy|Reggie|2998|New Mexico|M|Son|||2|2088 + +3000|CA|Los Angeles County|Temple City city|393|0|1|Neihoff|Tommy Rusty|2952|Nevada|M|Head|||48|2089 +3000|CA|Los Angeles County|Temple City city|393|0|2|Neihoff|Jc|2980|Iowa|M|Son|||20|2090 +3000|CA|Los Angeles County|Temple City city|393|0|3|Neihoff|Sharmaine|2992|New Hampshire|F|Daughter|||8|2091 +3000|CA|Los Angeles County|Temple City city|393|0|4|Neihoff|Hyman|2994|Congo|M|Son|||6|2092 +3000|CA|Los Angeles County|Temple City city|393|0|5|Neihoff|Sha|2996|Indiana|F|Daughter|||4|2093 + +3000|MI|Wayne County|Lincoln Park city|394|0|1|Sherman|Johnathon Gabriel|2966|Mauritius|M|Head|||34|2094 +3000|MI|Wayne County|Lincoln Park city|394|0|2|Sherman|Bette|2979|Hawaii|F|Spouse|||21|2095 + +3000|NY|Erie County|Alden town|395|0|1|Martinez|Fernando Maximo|2955|Oregon|M|Head|||45|2096 +3000|NY|Erie County|Alden town|395|0|2|Martinez|Nicholas|2985|Wyoming|M|Son|||15|2097 +3000|NY|Erie County|Alden town|395|0|3|Martinez|Christian|2991|New Hampshire|M|Son|||9|2098 +3000|NY|Erie County|Alden town|395|0|4|Martinez|Alida|2993|Montana|F|Daughter|||7|2099 +3000|NY|Erie County|Alden town|395|0|5|Martinez|Scott|2997|Delaware|M|Son|||3|2100 +3000|NY|Erie County|Alden town|395|0|6|Martinez|Eden|2999|Oregon|F|Daughter|||1|2101 + +3000|WY|Carbon County|Arlington CDP|396|0|1|Olquin|Lawrence Doyle|2961|Tennessee|M|Head|||39|2102 +3000|WY|Carbon County|Arlington CDP|396|0|2|Olquin|Maranda|2964|Maldives|F|Spouse|||36|2103 +3000|WY|Carbon County|Arlington CDP|396|0|3|Olquin|Willette|2986|United States|F|Daughter|||14|2104 +3000|WY|Carbon County|Arlington CDP|396|0|4|Olquin|Aubrey|2994|Virginia|M|Son|||6|2105 +3000|WY|Carbon County|Arlington CDP|396|0|5|Olquin|Angelo Coy|2996|Texas|M|Son|||4|2106 +3000|WY|Carbon County|Arlington CDP|396|0|6|Olquin|Tinisha Marica|3000|Pennsylvania|F|Daughter|||0|2107 + +3000|NJ|Warren County|Brass Castle CDP|397|0|1|Smith|Alphonso Demarcus|2952|Virginia|M|Head|||48|2108 +3000|NJ|Warren County|Brass Castle CDP|397|0|2|Smith|Ariane|2974|Rhode Island|F|Spouse|||26|2109 +3000|NJ|Warren County|Brass Castle CDP|397|0|3|Smith|Becky|2994|Montana|F|Daughter|||6|2110 +3000|NJ|Warren County|Brass Castle CDP|397|0|4|Smith|Gilbert|2996|Tennessee|M|Son|||4|2111 +3000|NJ|Warren County|Brass Castle CDP|397|0|5|Smith|Calvin|3000|Illinois|M|Son|||0|2112 + +3000|MN|Meeker County|Watkins city|398|0|1|Banda|Kris Berry|2968|Cyprus|M|Head|||32|2113 +3000|MN|Meeker County|Watkins city|398|0|2|Banda|Jenni|2965|Christmas Island|F|Spouse|||35|2114 +3000|MN|Meeker County|Watkins city|398|0|3|Banda|Georgianne Ronnie|2985|Maine|F|Daughter|||15|2115 +3000|MN|Meeker County|Watkins city|398|0|4|Banda|Wilton|2991|New Mexico|M|Son|||9|2116 +3000|MN|Meeker County|Watkins city|398|0|5|Banda|Amy Niesha|2999|Mississippi|F|Daughter|||1|2117 + +3000|WV|Randolph County|Whitmer CDP|399|0|1|Hernandez|Raymond Waldo|2960|Wisconsin|M|Head|||40|2118 +3000|WV|Randolph County|Whitmer CDP|399|0|2|Hernandez|Jordan|2960|New Caledonia|F|Spouse|||40|2119 +3000|WV|Randolph County|Whitmer CDP|399|0|3|Hernandez|Elin|2980|Missouri|F|Daughter|||20|2120 +3000|WV|Randolph County|Whitmer CDP|399|0|4|Hernandez|Rebecca|2986|New Mexico|F|Daughter|||14|2121 +3000|WV|Randolph County|Whitmer CDP|399|0|5|Hernandez|Birdie|2988|Sao Tome And Principe|F|Daughter|||12|2122 +3000|WV|Randolph County|Whitmer CDP|399|0|6|Hernandez|Jimmie|2998|Wyoming|M|Son|||2|2123 + +3000|PA|Perry County|Jackson township|400|0|1|Ross|Michale Mikel|2960|Uzbekistan|M|Head|||40|2124 +3000|PA|Perry County|Jackson township|400|0|2|Ross|Alfredia Maryetta|2980|Norway|F|Spouse|||20|2125 +3000|PA|Perry County|Jackson township|400|0|3|Ross|Refugio|3000|California|F|Daughter|||0|2126 + +3000|ND|Bottineau County|Kramer city|401|0|1|Paramore|Loren Grady|2954|Pennsylvania|M|Head|||46|2127 +3000|ND|Bottineau County|Kramer city|401|0|2|Paramore|Petronila|2968|New Mexico|F|Spouse|||32|2128 +3000|ND|Bottineau County|Kramer city|401|0|3|Paramore|Damion|2988|South Dakota|M|Son|||12|2129 +3000|ND|Bottineau County|Kramer city|401|0|4|Paramore|Otha|2994|Illinois|F|Daughter|||6|2130 +3000|ND|Bottineau County|Kramer city|401|0|5|Paramore|Berniece|2996|Utah|F|Daughter|||4|2131 +3000|ND|Bottineau County|Kramer city|401|0|6|Paramore|Arnetta|2998|New Hampshire|F|Daughter|||2|2132 +3000|ND|Bottineau County|Kramer city|401|0|7|Paramore|Justin|3000|Holy See (vatican City State)|M|Son|||0|2133 + +3000|NY|Niagara County|Olcott CDP|402|0|1|Stafford|Ocie|2979|Arkansas|F|Head|||21|2134 + +3000|MN|Lake County|Lake No. 2 UT|403|0|1|Pletcher|Shara|2973|Kansas|F|Head|||27|2135 +3000|MN|Lake County|Lake No. 2 UT|403|0|2|Pletcher|Kaley Sophie|2995|Delaware|F|Daughter|||5|2136 +3000|MN|Lake County|Lake No. 2 UT|403|0|3|Pletcher|Brandon|2999|Cameroon|M|Son|||1|2137 + +3000|PA|Fayette County|Bullskin township|404|0|1|Grant|Adalberto Adolph|2943|New Jersey|M|Head|||57|2138 +3000|PA|Fayette County|Bullskin township|404|0|2|Grant|Devin|2948|Wyoming|F|Spouse|||52|2139 +3000|PA|Fayette County|Bullskin township|404|0|3|Grant|Hipolito|2972|Nevada|M|Son|||28|2140 +3000|PA|Fayette County|Bullskin township|404|0|4|Grant|Lidia Taneka|2974|Missouri|F|Daughter|||26|2141 +3000|PA|Fayette County|Bullskin township|404|0|5|Grant|Jacki|2976|Pennsylvania|F|Daughter|||24|2142 +3000|PA|Fayette County|Bullskin township|404|0|6|Grant|Chante|2986|Ohio|F|Daughter|||14|2143 +3000|PA|Fayette County|Bullskin township|404|0|7|Grant|Scottie|2994|Mississippi|M|Son|||6|2144 +3000|PA|Fayette County|Bullskin township|404|0|8|Grant|Ingrid|2996|New Jersey|F|Daughter|||4|2145 +3000|PA|Fayette County|Bullskin township|404|0|9|Grant|Leslie|2998|Tennessee|M|Son|||2|2146 + +3000|MA|Suffolk County|Chelsea city|405|0|1|Shawley|Shirley|2974|Louisiana|M|Head|||26|2147 +3000|MA|Suffolk County|Chelsea city|405|0|2|Shawley|Renay|2970|Gibraltar|F|Spouse|||30|2148 +3000|MA|Suffolk County|Chelsea city|405|0|3|Shawley|Gerry|2990|Indiana|M|Son|||10|2149 +3000|MA|Suffolk County|Chelsea city|405|0|4|Shawley|Becky|2992|Iowa|F|Daughter|||8|2150 +3000|MA|Suffolk County|Chelsea city|405|0|5|Shawley|Oralia|2994|Arizona|F|Daughter|||6|2151 +3000|MA|Suffolk County|Chelsea city|405|0|6|Shawley|Jesse|2996|North Dakota|M|Son|||4|2152 +3000|MA|Suffolk County|Chelsea city|405|0|7|Shawley|Allen|3000|Wisconsin|M|Son|||0|2153 + +3000|MI|Alpena County|Ossineke CDP|406|0|1|Dimmer|Zofia Marica|2976|Colorado|F|Head|||24|2154 +3000|MI|Alpena County|Ossineke CDP|406|0|2|Dimmer|Isaiah|2998|Virginia|M|Son|||2|2155 +3000|MI|Alpena County|Ossineke CDP|406|0|3|Dimmer|Farah|3000|Tunisia|F|Daughter|||0|2156 + +3000|PR|Utuado Municipio|Cayuco comunidad|407|0|1|Milz|Johnny Devin|2967|Oklahoma|M|Head|||33|2157 +3000|PR|Utuado Municipio|Cayuco comunidad|407|0|2|Milz|Drew|2992|Hawaii|M|Son|||8|2158 +3000|PR|Utuado Municipio|Cayuco comunidad|407|0|3|Milz|Nakesha Stefani|2998|Rhode Island|F|Daughter|||2|2159 + +3000|WI|Barron County|Oak Grove town|408|0|1|Smyth|Dario Royce|2953|Wallis And Futuna|M|Head|||47|2160 +3000|WI|Barron County|Oak Grove town|408|0|2|Smyth|Claudette|2965|New York|F|Spouse|||35|2161 +3000|WI|Barron County|Oak Grove town|408|0|3|Smyth|Kareen Gwenn|2987|North Dakota|F|Daughter|||13|2162 +3000|WI|Barron County|Oak Grove town|408|0|4|Smyth|Enoch|2989|Arizona|M|Son|||11|2163 +3000|WI|Barron County|Oak Grove town|408|0|5|Smyth|Roxy|2991|Nevada|F|Daughter|||9|2164 +3000|WI|Barron County|Oak Grove town|408|0|6|Smyth|Rosario|2999|Illinois|M|Son|||1|2165 + +3000|OH|Highland County|Sinking Spring village|409|0|1|Venneman|Bradley Kip|2954|Massachusetts|M|Head|||46|2166 +3000|OH|Highland County|Sinking Spring village|409|0|2|Venneman|Jerold Robin|2990|Tanzania, United Republic Of|M|Son|||10|2167 +3000|OH|Highland County|Sinking Spring village|409|0|3|Venneman|Jamey|2992|Alabama|M|Son|||8|2168 + +3000|AL|Houston County|Columbia town|410|0|1|Petrelli|Leon Parker|2969|Oklahoma|M|Head|||31|2169 +3000|AL|Houston County|Columbia town|410|0|2|Petrelli|Philomena|2969|Louisiana|F|Spouse|||31|2170 +3000|AL|Houston County|Columbia town|410|0|3|Petrelli|Pierre|2989|Massachusetts|M|Son|||11|2171 +3000|AL|Houston County|Columbia town|410|0|4|Petrelli|Kenny|2993|Illinois|M|Son|||7|2172 +3000|AL|Houston County|Columbia town|410|0|5|Petrelli|Paulita|2995|Tennessee|F|Daughter|||5|2173 +3000|AL|Houston County|Columbia town|410|0|6|Petrelli|Adelia|2999|Texas|F|Daughter|||1|2174 + +3000|NY|St. Lawrence County|Massena town|411|0|1|Davis|Enoch Thanh|2939|Netherlands|M|Head|||61|2175 +3000|NY|St. Lawrence County|Massena town|411|0|2|Davis|Larisa|2960|Algeria|F|Spouse|||40|2176 +3000|NY|St. Lawrence County|Massena town|411|0|3|Davis|Mickey|2980|Pennsylvania|F|Daughter|||20|2177 +3000|NY|St. Lawrence County|Massena town|411|0|4|Davis|Brain|2986|Alaska|M|Son|||14|2178 +3000|NY|St. Lawrence County|Massena town|411|0|5|Davis|Deangelo|2988|Mississippi|M|Son|||12|2179 +3000|NY|St. Lawrence County|Massena town|411|0|6|Davis|Brice Luis|2994|Utah|M|Son|||6|2180 +3000|NY|St. Lawrence County|Massena town|411|0|7|Davis|Doretta|2996|Delaware|F|Daughter|||4|2181 +3000|NY|St. Lawrence County|Massena town|411|0|8|Davis|Valrie|2998|Vermont|F|Daughter|||2|2182 + +3000|IL|Cook County|Streamwood village|412|0|1|Crum|Damion|2956|South Carolina|M|Head|||44|2183 +3000|IL|Cook County|Streamwood village|412|0|2|Crum|Pennie|2973|Lithuania|F|Spouse|||27|2184 +3000|IL|Cook County|Streamwood village|412|0|3|Crum|Broderick|2993|Nebraska|M|Son|||7|2185 +3000|IL|Cook County|Streamwood village|412|0|4|Crum|Colton|2995|Texas|M|Son|||5|2186 +3000|IL|Cook County|Streamwood village|412|0|5|Crum|Shaunte|2999|Virgin Islands, British|F|Daughter|||1|2187 + +3000|WA|Yakima County|Tieton town|413|0|1|Nozick|Linwood Cecil|2958|Pennsylvania|M|Head|||42|2188 +3000|WA|Yakima County|Tieton town|413|0|2|Nozick|Tyson Collin|2992|Michigan|M|Son|||8|2189 +3000|WA|Yakima County|Tieton town|413|0|3|Nozick|Bianca|2996|Maryland|F|Daughter|||4|2190 +3000|WA|Yakima County|Tieton town|413|0|4|Nozick|Lavonna|2998|Albania|F|Daughter|||2|2191 +3000|WA|Yakima County|Tieton town|413|0|5|Nozick|Misty|3000|North Carolina|F|Daughter|||0|2192 + +3000|CA|San Bernardino County|Upland city|414|0|1|Ramirez|Man Geoffrey|2953|Michigan|M|Head|||47|2193 +3000|CA|San Bernardino County|Upland city|414|0|2|Ramirez|Annabelle|2969|Minnesota|F|Spouse|||31|2194 +3000|CA|San Bernardino County|Upland city|414|0|3|Ramirez|Roberto|2989|Missouri|M|Son|||11|2195 +3000|CA|San Bernardino County|Upland city|414|0|4|Ramirez|Deangelo|2991|Arkansas|M|Son|||9|2196 +3000|CA|San Bernardino County|Upland city|414|0|5|Ramirez|Marcel|2999|West Virginia|M|Son|||1|2197 + +3000|NE|Frontier County|Stockville village|415|0|1|Gittelman|Elvin Whitney|2961|Utah|M|Head|||39|2198 +3000|NE|Frontier County|Stockville village|415|0|2|Gittelman|Gigi|2977|Arizona|F|Spouse|||23|2199 +3000|NE|Frontier County|Stockville village|415|0|3|Gittelman|Addie|2997|Idaho|F|Daughter|||3|2200 +3000|NE|Frontier County|Stockville village|415|0|4|Gittelman|Gaston|2999|Indiana|M|Son|||1|2201 + +3000|MI|Wayne County|Grosse Ile township|416|0|1|Snow|Christian Brendon|2957|Virginia|M|Head|||43|2202 +3000|MI|Wayne County|Grosse Ile township|416|0|2|Snow|Lucia Jacquelynn|2970|Georgia|F|Spouse|||30|2203 +3000|MI|Wayne County|Grosse Ile township|416|0|3|Snow|Efrain|2994|South Dakota|M|Son|||6|2204 +3000|MI|Wayne County|Grosse Ile township|416|0|4|Snow|Gracie|2996|Sao Tome And Principe|F|Daughter|||4|2205 +3000|MI|Wayne County|Grosse Ile township|416|0|5|Snow|Micheline|3000|Kentucky|F|Daughter|||0|2206 + +3000|WI|Juneau County|Kildare town|417|0|1|Chesher|Dong Wyatt|2959|Connecticut|M|Head|||41|2207 +3000|WI|Juneau County|Kildare town|417|0|2|Chesher|Rosaline|2980|Virginia|F|Spouse|||20|2208 +3000|WI|Juneau County|Kildare town|417|0|3|Chesher|Julian|3000|North Carolina|F|Daughter|||0|2209 + +3000|TX|Kendall County|Comfort CDP|418|0|1|Moraga|Emmanuel Lenard|2949|French Southern Territories|M|Head|||51|2210 +3000|TX|Kendall County|Comfort CDP|418|0|2|Moraga|Joellen Miyoko|2967|Missouri|F|Spouse|||33|2211 +3000|TX|Kendall County|Comfort CDP|418|0|3|Moraga|Tereasa|2989|Washington|F|Daughter|||11|2212 +3000|TX|Kendall County|Comfort CDP|418|0|4|Moraga|Juan|2993|Georgia|M|Son|||7|2213 +3000|TX|Kendall County|Comfort CDP|418|0|5|Moraga|Georgann|2995|Guinea|F|Daughter|||5|2214 +3000|TX|Kendall County|Comfort CDP|418|0|6|Moraga|Sunday|2999|Rhode Island|F|Daughter|||1|2215 + +3000|KS|Cowley County|Cambridge city|419|0|1|Shatto|Logan Elmer|2941|Arizona|M|Head|||59|2216 +3000|KS|Cowley County|Cambridge city|419|0|2|Shatto|Jordan Hassan|2982|Washington|M|Son|||18|2217 +3000|KS|Cowley County|Cambridge city|419|0|3|Shatto|Dusty|2984|Virginia|F|Daughter|||16|2218 +3000|KS|Cowley County|Cambridge city|419|0|4|Shatto|Agatha|2990|Wisconsin|F|Daughter|||10|2219 +3000|KS|Cowley County|Cambridge city|419|0|5|Shatto|Brock|2992|Rhode Island|M|Son|||8|2220 +3000|KS|Cowley County|Cambridge city|419|0|6|Shatto|Luella|2998|Iraq|F|Daughter|||2|2221 +3000|KS|Cowley County|Cambridge city|419|0|7|Shatto|Jonah|3000|New Jersey|M|Son|||0|2222 + +3000|MN|Becker County|White Earth township|420|0|1|Gleaton|Lakiesha|2974|Maine|F|Head|||26|2223 +3000|MN|Becker County|White Earth township|420|0|2|Gleaton|Raphael|2996|Wyoming|M|Son|||4|2224 + +3000|TX|Hidalgo County|Villa Verde CDP|421|0|1|Desomma|Cliff|2951|Austria|M|Head|||49|2225 +3000|TX|Hidalgo County|Villa Verde CDP|421|0|2|Desomma|Miranda|2970|South Carolina|F|Spouse|||30|2226 +3000|TX|Hidalgo County|Villa Verde CDP|421|0|3|Desomma|Grisel Beulah|2990|New York|F|Daughter|||10|2227 +3000|TX|Hidalgo County|Villa Verde CDP|421|0|4|Desomma|Dorene|2992|Utah|F|Daughter|||8|2228 +3000|TX|Hidalgo County|Villa Verde CDP|421|0|5|Desomma|Novella|2994|Arizona|F|Daughter|||6|2229 + +3000|SC|Aiken County, Edgefield County|North Augusta city|422|0|1|Williams|Seth Rich|2971|Estonia|M|Head|||29|2230 +3000|SC|Aiken County, Edgefield County|North Augusta city|422|0|2|Williams|Shonda|2977|Kansas|F|Spouse|||23|2231 +3000|SC|Aiken County, Edgefield County|North Augusta city|422|0|3|Williams|Ling|2997|Michigan|F|Daughter|||3|2232 +3000|SC|Aiken County, Edgefield County|North Augusta city|422|0|4|Williams|Omega|2999|Rhode Island|F|Daughter|||1|2233 + +3000|MN|Carlton County|Barnum city|423|0|1|Smith|Rickey Oren|2961|Liechtenstein|M|Head|||39|2234 +3000|MN|Carlton County|Barnum city|423|0|2|Smith|Roxann|2966|Iowa|F|Spouse|||34|2235 +3000|MN|Carlton County|Barnum city|423|0|3|Smith|Nell|2988|Colorado|F|Daughter|||12|2236 +3000|MN|Carlton County|Barnum city|423|0|4|Smith|Maddie|2996|Kansas|F|Daughter|||4|2237 +3000|MN|Carlton County|Barnum city|423|0|5|Smith|Roderick Andreas|2998|Massachusetts|M|Son|||2|2238 + +3000|CA|San Bernardino County|Twentynine Palms city|424|0|1|Wurster|Laurence Neil|2940|Egypt|M|Head|||60|2239 +3000|CA|San Bernardino County|Twentynine Palms city|424|0|2|Wurster|Nola|2958|Michigan|F|Spouse|||42|2240 +3000|CA|San Bernardino County|Twentynine Palms city|424|0|3|Wurster|Joanie|2988|Virginia|F|Daughter|||12|2241 +3000|CA|San Bernardino County|Twentynine Palms city|424|0|4|Wurster|Ray Stacy|2990|Serbia|M|Son|||10|2242 +3000|CA|San Bernardino County|Twentynine Palms city|424|0|5|Wurster|Evangelina|2998|Georgia|F|Daughter|||2|2243 + +3000|TX|Hamilton County|Hamilton city|425|0|1|Purtle|Gracia|2963|West Virginia|F|Head|||37|2244 +3000|TX|Hamilton County|Hamilton city|425|0|2|Purtle|Irwin|2983|Guam|M|Son|||17|2245 +3000|TX|Hamilton County|Hamilton city|425|0|3|Purtle|Stanford|2985|New Jersey|M|Son|||15|2246 +3000|TX|Hamilton County|Hamilton city|425|0|4|Purtle|Eliz Melba|2991|Minnesota|F|Daughter|||9|2247 +3000|TX|Hamilton County|Hamilton city|425|0|5|Purtle|Deidre Betty|2997|Mississippi|F|Daughter|||3|2248 +3000|TX|Hamilton County|Hamilton city|425|0|6|Purtle|Josiah|2999|Burkina Faso|M|Son|||1|2249 + +3000|MI|Antrim County|Echo township|426|0|1|Seen|Clark Weston|2948|Tajikistan|M|Head|||52|2250 +3000|MI|Antrim County|Echo township|426|0|2|Seen|Marry|2963|Georgia|F|Spouse|||37|2251 +3000|MI|Antrim County|Echo township|426|0|3|Seen|Lelia|2985|Mississippi|F|Daughter|||15|2252 +3000|MI|Antrim County|Echo township|426|0|4|Seen|Sidney|2999|Ohio|M|Son|||1|2253 + +3000|MO|St. Louis County|Riverview village|427|0|1|Broussard|Dominique Buster|2973|Massachusetts|M|Head|||27|2254 +3000|MO|St. Louis County|Riverview village|427|0|2|Broussard|Daniella|2975|Arkansas|F|Spouse|||25|2255 +3000|MO|St. Louis County|Riverview village|427|0|3|Broussard|Olympia|2995|Maldives|F|Daughter|||5|2256 +3000|MO|St. Louis County|Riverview village|427|0|4|Broussard|Cyndi|2997|Arizona|F|Daughter|||3|2257 +3000|MO|St. Louis County|Riverview village|427|0|5|Broussard|Sid|2999|Maine|M|Son|||1|2258 + +3000|MN|Goodhue County, Rice County|Dennison city|428|0|1|Szczygiel|Noe|2959|Poland|M|Head|||41|2259 +3000|MN|Goodhue County, Rice County|Dennison city|428|0|2|Szczygiel|Ila|2974|New York|F|Spouse|||26|2260 +3000|MN|Goodhue County, Rice County|Dennison city|428|0|3|Szczygiel|Allena Majorie|2994|Texas|F|Daughter|||6|2261 +3000|MN|Goodhue County, Rice County|Dennison city|428|0|4|Szczygiel|Howard|2996|Estonia|M|Son|||4|2262 +3000|MN|Goodhue County, Rice County|Dennison city|428|0|5|Szczygiel|Kenton|2998|Indiana|M|Son|||2|2263 +3000|MN|Goodhue County, Rice County|Dennison city|428|0|6|Szczygiel|Zachery|3000|Peru|M|Son|||0|2264 + +3000|NY|Erie County|Buffalo city|429|0|1|Cartwright|Boyd Merlin|2943|Reunion|M|Head|||57|2265 +3000|NY|Erie County|Buffalo city|429|0|2|Cartwright|Mirtha|2965|Idaho|F|Spouse|||35|2266 +3000|NY|Erie County|Buffalo city|429|0|3|Cartwright|Will|2985|Colorado|M|Son|||15|2267 +3000|NY|Erie County|Buffalo city|429|0|4|Cartwright|Hugo|2987|Kentucky|M|Son|||13|2268 +3000|NY|Erie County|Buffalo city|429|0|5|Cartwright|Freeman|2989|North Dakota|M|Son|||11|2269 +3000|NY|Erie County|Buffalo city|429|0|6|Cartwright|Cythia|2991|Arkansas|F|Daughter|||9|2270 +3000|NY|Erie County|Buffalo city|429|0|7|Cartwright|Dora|2993|Arizona|F|Daughter|||7|2271 +3000|NY|Erie County|Buffalo city|429|0|8|Cartwright|Jayme|2995|New Hampshire|F|Daughter|||5|2272 +3000|NY|Erie County|Buffalo city|429|0|9|Cartwright|Annamarie|2997|New York|F|Daughter|||3|2273 + +3000|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|1|Lanctot|Rolland Mikel|2961|Washington|M|Head|||39|2274 +3000|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|2|Lanctot|Else|2966|Tennessee|F|Spouse|||34|2275 +3000|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|3|Lanctot|Forest|2986|West Virginia|M|Son|||14|2276 +3000|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|4|Lanctot|Peggie|2990|California|F|Daughter|||10|2277 +3000|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|5|Lanctot|Isreal|2992|New Jersey|M|Son|||8|2278 +3000|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|6|Lanctot|Sheridan|2994|Morocco|F|Daughter|||6|2279 +3000|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|7|Lanctot|Jannie Manuela|2998|Louisiana|F|Daughter|||2|2280 +3000|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|8|Lanctot|Maren Joellen|3000|Cape Verde|F|Daughter|||0|2281 + +3000|MI|Osceola County|Tustin village|431|0|1|Alamillo|Franklin Davis|2944|Arizona|M|Head|||56|2282 +3000|MI|Osceola County|Tustin village|431|0|2|Alamillo|Bok|2955|New York|F|Spouse|||45|2283 +3000|MI|Osceola County|Tustin village|431|0|3|Alamillo|Renea|2987|Pennsylvania|F|Daughter|||13|2284 +3000|MI|Osceola County|Tustin village|431|0|4|Alamillo|Harley|2993|Arizona|M|Son|||7|2285 +3000|MI|Osceola County|Tustin village|431|0|5|Alamillo|James|2997|Delaware|M|Son|||3|2286 + +3000|IL|Clark County|Martinsville city|432|0|1|Perrotti|Robert Clair|2951|Uruguay|M|Head|||49|2287 +3000|IL|Clark County|Martinsville city|432|0|2|Perrotti|Shin|2957|Tennessee|F|Spouse|||43|2288 +3000|IL|Clark County|Martinsville city|432|0|3|Perrotti|Aleisha|2981|Washington|F|Daughter|||19|2289 +3000|IL|Clark County|Martinsville city|432|0|4|Perrotti|Antonetta|2985|Pennsylvania|F|Daughter|||15|2290 +3000|IL|Clark County|Martinsville city|432|0|5|Perrotti|Karren|2993|Montana|F|Daughter|||7|2291 + +3000|IN|Decatur County|Westport town|433|0|1|Rawls|Perry Stanford|2962|Idaho|M|Head|||38|2292 +3000|IN|Decatur County|Westport town|433|0|2|Rawls|Pa|2961|Montana|F|Spouse|||39|2293 +3000|IN|Decatur County|Westport town|433|0|3|Rawls|Gertrud|2981|Nebraska|F|Daughter|||19|2294 +3000|IN|Decatur County|Westport town|433|0|4|Rawls|Diana|2985|Botswana|F|Daughter|||15|2295 +3000|IN|Decatur County|Westport town|433|0|5|Rawls|Contessa|2989|Michigan|F|Daughter|||11|2296 + +3000|OH|Trumbull County|Newton Falls city|434|0|1|Hilliard|Jeffrey Wilmer|2964|West Virginia|M|Head|||36|2297 +3000|OH|Trumbull County|Newton Falls city|434|0|2|Hilliard|Rosario|2975|Oregon|F|Spouse|||25|2298 +3000|OH|Trumbull County|Newton Falls city|434|0|3|Hilliard|Oswaldo|2997|North Dakota|M|Son|||3|2299 + +3000|TX|Cooke County|Lake Kiowa CDP|435|0|1|Hughes|Ivory Calvin|2945|Hawaii|M|Head|||55|2300 +3000|TX|Cooke County|Lake Kiowa CDP|435|0|2|Hughes|Bao|2983|Oklahoma|F|Daughter|||17|2301 +3000|TX|Cooke County|Lake Kiowa CDP|435|0|3|Hughes|Delora|2985|Kentucky|F|Daughter|||15|2302 +3000|TX|Cooke County|Lake Kiowa CDP|435|0|4|Hughes|Keven|2989|Maryland|M|Son|||11|2303 +3000|TX|Cooke County|Lake Kiowa CDP|435|0|5|Hughes|Esta|2991|Ohio|F|Daughter|||9|2304 +3000|TX|Cooke County|Lake Kiowa CDP|435|0|6|Hughes|Walker|2997|Oregon|M|Son|||3|2305 + +3000|KY|Jefferson County|Lynnview city|436|0|1|Green|Augustine|2943|Michigan|M|Head|||57|2306 +3000|KY|Jefferson County|Lynnview city|436|0|2|Green|Santiago|2969|New Jersey|M|Son|||31|2307 +3000|KY|Jefferson County|Lynnview city|436|0|3|Green|Jene|2971|Kansas|F|Daughter|||29|2308 +3000|KY|Jefferson County|Lynnview city|436|0|4|Green|Virginia|2973|Kentucky|F|Daughter|||27|2309 +3000|KY|Jefferson County|Lynnview city|436|0|5|Green|Patricia|2985|Alabama|M|Son|||15|2310 +3000|KY|Jefferson County|Lynnview city|436|0|6|Green|Millard|2987|Greenland|M|Son|||13|2311 +3000|KY|Jefferson County|Lynnview city|436|0|7|Green|Ruthann|2991|North Carolina|F|Daughter|||9|2312 + +3000|CA|Contra Costa County|Montalvin Manor CDP|437|0|1|Mangiamele|Eusebio Renato|2956|Arizona|M|Head|||44|2313 +3000|CA|Contra Costa County|Montalvin Manor CDP|437|0|2|Mangiamele|Josie|2957|Delaware|F|Spouse|||43|2314 +3000|CA|Contra Costa County|Montalvin Manor CDP|437|0|3|Mangiamele|Lesley|2985|Arkansas|M|Son|||15|2315 +3000|CA|Contra Costa County|Montalvin Manor CDP|437|0|4|Mangiamele|Lucas|2987|Vermont|M|Son|||13|2316 +3000|CA|Contra Costa County|Montalvin Manor CDP|437|0|5|Mangiamele|Quentin Diego|2989|Pennsylvania|M|Son|||11|2317 +3000|CA|Contra Costa County|Montalvin Manor CDP|437|0|6|Mangiamele|Jung|2995|Poland|F|Daughter|||5|2318 +3000|CA|Contra Costa County|Montalvin Manor CDP|437|0|7|Mangiamele|Vonda|2997|Iowa|F|Daughter|||3|2319 + +3000|NH|Rockingham County|Salem town|438|0|1|Mead|Ken Antonio|2941|North Carolina|M|Head|||59|2320 +3000|NH|Rockingham County|Salem town|438|0|2|Mead|Marlin|2956|Pennsylvania|F|Spouse|||44|2321 +3000|NH|Rockingham County|Salem town|438|0|3|Mead|Tommie Stephan|2976|Nevada|M|Son|||24|2322 +3000|NH|Rockingham County|Salem town|438|0|4|Mead|Lindsay|2986|Alabama|M|Son|||14|2323 +3000|NH|Rockingham County|Salem town|438|0|5|Mead|Cristy|2990|French Polynesia|F|Daughter|||10|2324 +3000|NH|Rockingham County|Salem town|438|0|6|Mead|Lyman|2992|South Carolina|M|Son|||8|2325 +3000|NH|Rockingham County|Salem town|438|0|7|Mead|Kaylee|2994|Connecticut|F|Daughter|||6|2326 +3000|NH|Rockingham County|Salem town|438|0|8|Mead|Jewel|2998|Guinea|M|Son|||2|2327 + +3000|HI|Honolulu County|Pearl City CDP|439|0|1|Dunn|Dwain|2978|Maine|M|Head|||22|2328 +3000|HI|Honolulu County|Pearl City CDP|439|0|2|Dunn|Twanda|2983|Massachusetts|F|Spouse|||17|2329 + +3000|AK|Northwest Arctic Borough|Kivalina city|440|0|1|Wilson|Brandon Ty|2953|Colorado|M|Head|||47|2330 +3000|AK|Northwest Arctic Borough|Kivalina city|440|0|2|Wilson|Shakira|2953|Arizona|F|Spouse|||47|2331 +3000|AK|Northwest Arctic Borough|Kivalina city|440|0|3|Wilson|Fritz|2981|Utah|M|Son|||19|2332 +3000|AK|Northwest Arctic Borough|Kivalina city|440|0|4|Wilson|Angelita|2985|Vermont|F|Daughter|||15|2333 +3000|AK|Northwest Arctic Borough|Kivalina city|440|0|5|Wilson|Olympia|2989|Hawaii|F|Daughter|||11|2334 +3000|AK|Northwest Arctic Borough|Kivalina city|440|0|6|Wilson|Marvis|2991|Rhode Island|F|Daughter|||9|2335 + +3000|MN|Sibley County|Henderson city|441|0|1|Austill|Katheleen|2961|Louisiana|F|Head|||39|2336 +3000|MN|Sibley County|Henderson city|441|0|2|Austill|Quentin|2985|Iowa|M|Son|||15|2337 +3000|MN|Sibley County|Henderson city|441|0|3|Austill|Stanton|2989|Bhutan|M|Son|||11|2338 +3000|MN|Sibley County|Henderson city|441|0|4|Austill|Nannette|2991|Congo, The Democratic Republic Of The|F|Daughter|||9|2339 +3000|MN|Sibley County|Henderson city|441|0|5|Austill|Kimberlie|2997|Louisiana|F|Daughter|||3|2340 + +3000|PA|Chester County|Coatesville city|442|0|1|Fink|Lance|2954|Colorado|M|Head|||46|2341 +3000|PA|Chester County|Coatesville city|442|0|2|Fink|Davida|2951|Arkansas|F|Spouse|||49|2342 +3000|PA|Chester County|Coatesville city|442|0|3|Fink|Jessie|2975|Wisconsin|M|Son|||25|2343 +3000|PA|Chester County|Coatesville city|442|0|4|Fink|Abel|2987|Armenia|M|Son|||13|2344 +3000|PA|Chester County|Coatesville city|442|0|5|Fink|Ellsworth Jamar|2993|South Dakota|M|Son|||7|2345 +3000|PA|Chester County|Coatesville city|442|0|6|Fink|Walton|2995|Mauritius|M|Son|||5|2346 +3000|PA|Chester County|Coatesville city|442|0|7|Fink|Krystina|2997|Georgia|F|Daughter|||3|2347 + +3000|CA|Mendocino County|Calpella CDP|443|0|1|Leroux|Leonard Frederick|2966|Vermont|M|Head|||34|2348 +3000|CA|Mendocino County|Calpella CDP|443|0|2|Leroux|Ryan|2995|Arkansas|F|Daughter|||5|2349 +3000|CA|Mendocino County|Calpella CDP|443|0|3|Leroux|Etha|2999|Uruguay|F|Daughter|||1|2350 + +3000|VT|Essex County|Avery's gore|444|0|1|Belchior|Ned|2982|Arkansas|M|Head|||18|2351 +3000|VT|Essex County|Avery's gore|444|0|2|Belchior|Hollie|2982|West Virginia|F|Spouse|||18|2352 + +3000|IL|Knox County|Williamsfield village|445|0|1|Pearce|Haywood Desmond|2960|Arizona|M|Head|||40|2353 +3000|IL|Knox County|Williamsfield village|445|0|2|Pearce|Starr|2991|West Virginia|F|Daughter|||9|2354 +3000|IL|Knox County|Williamsfield village|445|0|3|Pearce|Suzanne|2995|New Jersey|F|Daughter|||5|2355 +3000|IL|Knox County|Williamsfield village|445|0|4|Pearce|Izetta|2999|California|F|Daughter|||1|2356 + +3000|AL|Lee County, Russell County|Phenix City city|446|0|1|Cavanaugh|Marshall Valentine|2938|Virginia|M|Head|||62|2357 +3000|AL|Lee County, Russell County|Phenix City city|446|0|2|Cavanaugh|Makeda|2945|Kansas|F|Spouse|||55|2358 +3000|AL|Lee County, Russell County|Phenix City city|446|0|3|Cavanaugh|Ocie|2965|Ohio|F|Daughter|||35|2359 +3000|AL|Lee County, Russell County|Phenix City city|446|0|4|Cavanaugh|Lanita Armandina|2969|New York|F|Daughter|||31|2360 +3000|AL|Lee County, Russell County|Phenix City city|446|0|5|Cavanaugh|Holli|2973|Taiwan, Province Of China|F|Daughter|||27|2361 +3000|AL|Lee County, Russell County|Phenix City city|446|0|6|Cavanaugh|Elicia Mee|2979|Faroe Islands|F|Daughter|||21|2362 +3000|AL|Lee County, Russell County|Phenix City city|446|0|7|Cavanaugh|Catharine|2989|Wisconsin|F|Daughter|||11|2363 +3000|AL|Lee County, Russell County|Phenix City city|446|0|8|Cavanaugh|Joan|2991|Macau|F|Daughter|||9|2364 +3000|AL|Lee County, Russell County|Phenix City city|446|0|9|Cavanaugh|Herman|2995|South Dakota|M|Son|||5|2365 +3000|AL|Lee County, Russell County|Phenix City city|446|0|10|Cavanaugh|Garth|2997|Brazil|M|Son|||3|2366 + +3000|PA|Cambria County|Daisytown borough|447|0|1|Assum|Angel Hilario|2944|Massachusetts|M|Head|||56|2367 +3000|PA|Cambria County|Daisytown borough|447|0|2|Assum|Clarice|2954|Missouri|F|Spouse|||46|2368 +3000|PA|Cambria County|Daisytown borough|447|0|3|Assum|Marshall|2980|Texas|M|Son|||20|2369 +3000|PA|Cambria County|Daisytown borough|447|0|4|Assum|Johnathon|2986|South Carolina|M|Son|||14|2370 +3000|PA|Cambria County|Daisytown borough|447|0|5|Assum|Charles|2990|California|M|Son|||10|2371 +3000|PA|Cambria County|Daisytown borough|447|0|6|Assum|Ryan|2992|Faroe Islands|M|Son|||8|2372 +3000|PA|Cambria County|Daisytown borough|447|0|7|Assum|Lucien|2994|California|M|Son|||6|2373 +3000|PA|Cambria County|Daisytown borough|447|0|8|Assum|Ed|3000|Wyoming|M|Son|||0|2374 + +3000|CO|Lake County|Leadville city|448|0|1|Beltrain|Jayson Tyson|2937|New York|M|Head|||63|2375 +3000|CO|Lake County|Leadville city|448|0|2|Beltrain|Terence|2974|Utah|M|Son|||26|2376 +3000|CO|Lake County|Leadville city|448|0|3|Beltrain|Karey|2988|Florida|F|Daughter|||12|2377 +3000|CO|Lake County|Leadville city|448|0|4|Beltrain|Randell|2994|California|M|Son|||6|2378 +3000|CO|Lake County|Leadville city|448|0|5|Beltrain|Thomas|2996|Iowa|M|Son|||4|2379 +3000|CO|Lake County|Leadville city|448|0|6|Beltrain|Lucio|2998|Illinois|M|Son|||2|2380 + +3000|WI|Outagamie County|Seymour town|449|0|1|Haque|Michell|2971|Nevada|F|Head|||29|2381 +3000|WI|Outagamie County|Seymour town|449|0|2|Haque|Lavonna|2993|Montana|F|Daughter|||7|2382 +3000|WI|Outagamie County|Seymour town|449|0|3|Haque|Antonia|2997|New Mexico|M|Son|||3|2383 +3000|WI|Outagamie County|Seymour town|449|0|4|Haque|Estefana|2999|Mississippi|F|Daughter|||1|2384 + +3000|PA|Centre County|Philipsburg borough|450|0|1|Fuller|Samuel Phil|2959|Dominican Republic|M|Head|||41|2385 +3000|PA|Centre County|Philipsburg borough|450|0|2|Fuller|Mathilda Katrice|2958|New Jersey|F|Spouse|||42|2386 +3000|PA|Centre County|Philipsburg borough|450|0|3|Fuller|Peter|2978|Oklahoma|M|Son|||22|2387 +3000|PA|Centre County|Philipsburg borough|450|0|4|Fuller|Lulu|2982|Florida|F|Daughter|||18|2388 +3000|PA|Centre County|Philipsburg borough|450|0|5|Fuller|Valentin|2986|Slovakia|M|Son|||14|2389 +3000|PA|Centre County|Philipsburg borough|450|0|6|Fuller|Sharan|2988|Virginia|F|Daughter|||12|2390 +3000|PA|Centre County|Philipsburg borough|450|0|7|Fuller|Stanford|2990|Papua New Guinea|M|Son|||10|2391 +3000|PA|Centre County|Philipsburg borough|450|0|8|Fuller|Yolando Karina|2992|New Hampshire|F|Daughter|||8|2392 +3000|PA|Centre County|Philipsburg borough|450|0|9|Fuller|Arnulfo|2994|Wisconsin|M|Son|||6|2393 +3000|PA|Centre County|Philipsburg borough|450|0|10|Fuller|Tana|2996|New York|F|Daughter|||4|2394 + +3000|OK|Choctaw County|Sawyer town|451|0|1|Rammer|Stevie Elmo|2951|Maine|M|Head|||49|2395 +3000|OK|Choctaw County|Sawyer town|451|0|2|Rammer|Gene|2985|Rhode Island|F|Daughter|||15|2396 +3000|OK|Choctaw County|Sawyer town|451|0|3|Rammer|Joannie|2991|Alaska|F|Daughter|||9|2397 +3000|OK|Choctaw County|Sawyer town|451|0|4|Rammer|Meda|2999|Tennessee|F|Daughter|||1|2398 + +3000|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|1|Vezina|Shawn Jefferey|2947|Wyoming|M|Head|||53|2399 +3000|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|2|Vezina|Charlette|2946|Tennessee|F|Spouse|||54|2400 +3000|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|3|Vezina|Johnna|2968|Missouri|F|Daughter|||32|2401 +3000|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|4|Vezina|Shella|2986|California|F|Daughter|||14|2402 +3000|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|5|Vezina|Donovan|2990|New Mexico|M|Son|||10|2403 +3000|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|6|Vezina|Angelina|2994|Indiana|F|Daughter|||6|2404 +3000|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|7|Vezina|Ronald|3000|Alabama|M|Son|||0|2405 + +3000|GA|Henry County, Spalding County|Heron Bay CDP|453|0|1|Fullenwider|Woodrow Raymon|2946|New Hampshire|M|Head|||54|2406 +3000|GA|Henry County, Spalding County|Heron Bay CDP|453|0|2|Fullenwider|Milagro Roma|2986|Mississippi|F|Daughter|||14|2407 +3000|GA|Henry County, Spalding County|Heron Bay CDP|453|0|3|Fullenwider|Denese|2988|North Dakota|F|Daughter|||12|2408 +3000|GA|Henry County, Spalding County|Heron Bay CDP|453|0|4|Fullenwider|Rachal|2990|Maine|F|Daughter|||10|2409 +3000|GA|Henry County, Spalding County|Heron Bay CDP|453|0|5|Fullenwider|Kasey|2994|Utah|M|Son|||6|2410 +3000|GA|Henry County, Spalding County|Heron Bay CDP|453|0|6|Fullenwider|Velda|2996|Virginia|F|Daughter|||4|2411 + +3000|AR|Searcy County|Leslie city|454|0|1|Cameron|Hershel Carlton|2958|Virginia|M|Head|||42|2412 +3000|AR|Searcy County|Leslie city|454|0|2|Cameron|Florencio|3000|Michigan|M|Son|||0|2413 + +3000|OH|Williams County|Pulaski CDP|455|0|1|Olson|Esteban Reggie|2969|Connecticut|M|Head|||31|2414 +3000|OH|Williams County|Pulaski CDP|455|0|2|Olson|Bao|2981|Delaware|F|Spouse|||19|2415 + +3000|PA|Butler County|Lancaster township|456|0|1|Marra|Charlie Enoch|2974|Alabama|M|Head|||26|2416 +3000|PA|Butler County|Lancaster township|456|0|2|Marra|Floy|3000|Montana|F|Daughter|||0|2417 + +3000|WI|Shawano County|Mattoon village|457|0|1|Lele|Josiah Leonard|2950|Arkansas|M|Head|||50|2418 +3000|WI|Shawano County|Mattoon village|457|0|2|Lele|Mirian|2961|Minnesota|F|Spouse|||39|2419 +3000|WI|Shawano County|Mattoon village|457|0|3|Lele|Ollie|2985|Texas|M|Son|||15|2420 +3000|WI|Shawano County|Mattoon village|457|0|4|Lele|Angeline|2987|Azerbaijan|F|Daughter|||13|2421 +3000|WI|Shawano County|Mattoon village|457|0|5|Lele|Nikia|2995|West Virginia|F|Daughter|||5|2422 +3000|WI|Shawano County|Mattoon village|457|0|6|Lele|Catina|2997|Nevada|F|Daughter|||3|2423 + +3000|NY|Dutchess County|Poughkeepsie town|458|0|1|Dancy|Jerome Jules|2951|Alaska|M|Head|||49|2424 +3000|NY|Dutchess County|Poughkeepsie town|458|0|2|Dancy|Natasha|2975|New York|F|Spouse|||25|2425 +3000|NY|Dutchess County|Poughkeepsie town|458|0|3|Dancy|Elroy|2995|Namibia|M|Son|||5|2426 +3000|NY|Dutchess County|Poughkeepsie town|458|0|4|Dancy|Demetrius|2999|Alabama|M|Son|||1|2427 + +3000|MN|Mille Lacs County|Dailey township|459|0|1|Foor|Stuart Rory|2960|Svalbard And Jan Mayen|M|Head|||40|2428 + +3000|KS|Crawford County|McCune city|460|0|1|Graves|Warren Issac|2940|Kentucky|M|Head|||60|2429 +3000|KS|Crawford County|McCune city|460|0|2|Graves|Deanna|2953|Massachusetts|F|Spouse|||47|2430 +3000|KS|Crawford County|McCune city|460|0|3|Graves|Loyd|2977|Hawaii|M|Son|||23|2431 +3000|KS|Crawford County|McCune city|460|0|4|Graves|Marcelle|2985|Arizona|F|Daughter|||15|2432 +3000|KS|Crawford County|McCune city|460|0|5|Graves|Joel|2999|Reunion|M|Son|||1|2433 + +3000|FL|Putnam County|Pomona Park town|461|0|1|Cinelli|Freeman Marcellus|2957|South Dakota|M|Head|||43|2434 +3000|FL|Putnam County|Pomona Park town|461|0|2|Cinelli|Kenya|2993|Tennessee|F|Daughter|||7|2435 + +3000|TX|Motley County|Matador town|462|0|1|Hamre|Randall Bryce|2952|Georgia|M|Head|||48|2436 +3000|TX|Motley County|Matador town|462|0|2|Hamre|Estrella|2952|Ohio|F|Spouse|||48|2437 +3000|TX|Motley County|Matador town|462|0|3|Hamre|Booker|2972|Kentucky|M|Son|||28|2438 +3000|TX|Motley County|Matador town|462|0|4|Hamre|Shane|2974|California|M|Son|||26|2439 +3000|TX|Motley County|Matador town|462|0|5|Hamre|Irving|2978|Nebraska|M|Son|||22|2440 +3000|TX|Motley County|Matador town|462|0|6|Hamre|Ricarda|2980|Missouri|F|Daughter|||20|2441 +3000|TX|Motley County|Matador town|462|0|7|Hamre|Jamika|2994|Ohio|F|Daughter|||6|2442 +3000|TX|Motley County|Matador town|462|0|8|Hamre|Zack Antony|2998|New Jersey|M|Son|||2|2443 +3000|TX|Motley County|Matador town|462|0|9|Hamre|Arnulfo|3000|Nebraska|M|Son|||0|2444 + +3000|PA|Washington County|Charleroi borough|463|0|1|Colbert|Kattie Apolonia|2972|Ohio|F|Head|||28|2445 +3000|PA|Washington County|Charleroi borough|463|0|2|Colbert|Carina|2996|New Hampshire|F|Daughter|||4|2446 +3000|PA|Washington County|Charleroi borough|463|0|3|Colbert|Rico|3000|Taiwan, Province Of China|M|Son|||0|2447 + +3000|SD|Lawrence County|Lead city|464|0|1|Parker|Marshall Fernando|2953|New Hampshire|M|Head|||47|2448 +3000|SD|Lawrence County|Lead city|464|0|2|Parker|Rosie|2953|Arkansas|F|Spouse|||47|2449 +3000|SD|Lawrence County|Lead city|464|0|3|Parker|Herb|2973|Saint Kitts And Nevis|M|Son|||27|2450 +3000|SD|Lawrence County|Lead city|464|0|4|Parker|Edgar|2979|Wisconsin|M|Son|||21|2451 +3000|SD|Lawrence County|Lead city|464|0|5|Parker|Somer|2999|Washington|F|Daughter|||1|2452 + +3000|TN|Davidson County, Robertson County|Ridgetop city|465|0|1|Florez|Isidro Buford|2967|New Mexico|M|Head|||33|2453 +3000|TN|Davidson County, Robertson County|Ridgetop city|465|0|2|Florez|Peggie|2969|Iraq|F|Spouse|||31|2454 +3000|TN|Davidson County, Robertson County|Ridgetop city|465|0|3|Florez|Charles|2989|Louisiana|M|Son|||11|2455 +3000|TN|Davidson County, Robertson County|Ridgetop city|465|0|4|Florez|Deon|2991|Maryland|F|Daughter|||9|2456 +3000|TN|Davidson County, Robertson County|Ridgetop city|465|0|5|Florez|Leia Teresa|2995|Nevada|F|Daughter|||5|2457 + +3000|GA|Wayne County|Odum city|466|0|1|Furtak|Bernie Efren|2938|Vermont|M|Head|||62|2458 +3000|GA|Wayne County|Odum city|466|0|2|Furtak|Annabell Dorethea|2953|Ohio|F|Spouse|||47|2459 +3000|GA|Wayne County|Odum city|466|0|3|Furtak|Isabelle Mable|2981|Maryland|F|Daughter|||19|2460 +3000|GA|Wayne County|Odum city|466|0|4|Furtak|Clementina|2985|Mexico|F|Daughter|||15|2461 +3000|GA|Wayne County|Odum city|466|0|5|Furtak|Ronnie Mohammed|2991|Congo, The Democratic Republic Of The|M|Son|||9|2462 +3000|GA|Wayne County|Odum city|466|0|6|Furtak|Micki Indira|2995|Arizona|F|Daughter|||5|2463 + +3000|KS|Jewell County|Esbon city|467|0|1|Smudrick|Ronny Dan|2943|Wisconsin|M|Head|||57|2464 +3000|KS|Jewell County|Esbon city|467|0|2|Smudrick|Minda|2956|Pennsylvania|F|Spouse|||44|2465 +3000|KS|Jewell County|Esbon city|467|0|3|Smudrick|Deann Gertie|2976|Oklahoma|F|Daughter|||24|2466 +3000|KS|Jewell County|Esbon city|467|0|4|Smudrick|Royce|2978|Louisiana|M|Son|||22|2467 +3000|KS|Jewell County|Esbon city|467|0|5|Smudrick|Teri|2990|New York|F|Daughter|||10|2468 +3000|KS|Jewell County|Esbon city|467|0|6|Smudrick|Rashad|2992|Virginia|M|Son|||8|2469 +3000|KS|Jewell County|Esbon city|467|0|7|Smudrick|Felecia|2996|Iowa|F|Daughter|||4|2470 +3000|KS|Jewell County|Esbon city|467|0|8|Smudrick|Fannie Tatiana|2998|New Jersey|F|Daughter|||2|2471 +3000|KS|Jewell County|Esbon city|467|0|9|Smudrick|Carmon|3000|Ohio|F|Daughter|||0|2472 + +3000|ME|Penobscot County|Orono CDP|468|0|1|Taccone|Shirley|2963|North Carolina|M|Head|||37|2473 +3000|ME|Penobscot County|Orono CDP|468|0|2|Taccone|Mitchell|2997|Connecticut|M|Son|||3|2474 +3000|ME|Penobscot County|Orono CDP|468|0|3|Taccone|Stanley|2999|Belgium|M|Son|||1|2475 + +3000|CO|El Paso County|Black Forest CDP|469|0|1|Kriesel|Ulysses Dudley|2939|Morocco|M|Head|||61|2476 +3000|CO|El Paso County|Black Forest CDP|469|0|2|Kriesel|Sheilah|2942|California|F|Spouse|||58|2477 +3000|CO|El Paso County|Black Forest CDP|469|0|3|Kriesel|Wen|2970|West Virginia|F|Daughter|||30|2478 +3000|CO|El Paso County|Black Forest CDP|469|0|4|Kriesel|Shondra|2980|Wyoming|F|Daughter|||20|2479 +3000|CO|El Paso County|Black Forest CDP|469|0|5|Kriesel|Rosario|2984|Arkansas|M|Son|||16|2480 +3000|CO|El Paso County|Black Forest CDP|469|0|6|Kriesel|Rashad|2986|Pakistan|M|Son|||14|2481 +3000|CO|El Paso County|Black Forest CDP|469|0|7|Kriesel|Delores|2988|Lebanon|F|Daughter|||12|2482 +3000|CO|El Paso County|Black Forest CDP|469|0|8|Kriesel|Roxane|2994|Louisiana|F|Daughter|||6|2483 + +3000|NY|Herkimer County|Winfield town|470|0|1|Zahnen|Dewayne Mose|2962|Arizona|M|Head|||38|2484 +3000|NY|Herkimer County|Winfield town|470|0|2|Zahnen|Tara|2960|Texas|F|Spouse|||40|2485 +3000|NY|Herkimer County|Winfield town|470|0|3|Zahnen|Paulette|2986|Nebraska|F|Daughter|||14|2486 +3000|NY|Herkimer County|Winfield town|470|0|4|Zahnen|Nettie|2988|Florida|F|Daughter|||12|2487 +3000|NY|Herkimer County|Winfield town|470|0|5|Zahnen|Bong|2990|Mississippi|F|Daughter|||10|2488 +3000|NY|Herkimer County|Winfield town|470|0|6|Zahnen|Todd|3000|Singapore|M|Son|||0|2489 + +3000|OK|Haskell County|Tamaha town|471|0|1|Roses|Frankie Augustine|2970|Idaho|M|Head|||30|2490 +3000|OK|Haskell County|Tamaha town|471|0|2|Roses|Cordie|2988|Delaware|F|Daughter|||12|2491 +3000|OK|Haskell County|Tamaha town|471|0|3|Roses|Emory|2990|Illinois|M|Son|||10|2492 +3000|OK|Haskell County|Tamaha town|471|0|4|Roses|Isreal|2994|Wisconsin|M|Son|||6|2493 +3000|OK|Haskell County|Tamaha town|471|0|5|Roses|Lesia|2998|Maldives|F|Daughter|||2|2494 +3000|OK|Haskell County|Tamaha town|471|0|6|Roses|Long Tommie|3000|Denmark|M|Son|||0|2495 + +3000|IA|Jackson County|Andrew city|472|0|1|Molyneux|Grant Micah|2940|New Mexico|M|Head|||60|2496 +3000|IA|Jackson County|Andrew city|472|0|2|Molyneux|Willodean|2961|Oklahoma|F|Spouse|||39|2497 +3000|IA|Jackson County|Andrew city|472|0|3|Molyneux|Irvin|2983|Florida|M|Son|||17|2498 +3000|IA|Jackson County|Andrew city|472|0|4|Molyneux|Carrol|2987|Belgium|M|Son|||13|2499 +3000|IA|Jackson County|Andrew city|472|0|5|Molyneux|Usha Nathalie|2995|Nevada|F|Daughter|||5|2500 + +3000|IN|DeKalb County|Waterloo town|473|0|1|Stanton|Noble Orlando|2937|Georgia|M|Head|||63|2501 +3000|IN|DeKalb County|Waterloo town|473|0|2|Stanton|Nadene Viviana|2951|Kansas|F|Spouse|||49|2502 +3000|IN|DeKalb County|Waterloo town|473|0|3|Stanton|Brett|2973|Vermont|F|Daughter|||27|2503 +3000|IN|DeKalb County|Waterloo town|473|0|4|Stanton|Silvia|2977|Palau|F|Daughter|||23|2504 +3000|IN|DeKalb County|Waterloo town|473|0|5|Stanton|Mathew Leon|2989|Oklahoma|M|Son|||11|2505 +3000|IN|DeKalb County|Waterloo town|473|0|6|Stanton|Sanford|2993|Germany|M|Son|||7|2506 +3000|IN|DeKalb County|Waterloo town|473|0|7|Stanton|Matthew|2995|Bahamas|F|Daughter|||5|2507 + +3000|MI|Menominee County|Menominee city|474|0|1|Cardenas|Terence Von|2983|Arkansas|M|Head|||17|2508 +3000|MI|Menominee County|Menominee city|474|0|2|Cardenas|Gilda|2980|New York|F|Spouse|||20|2509 +3000|MI|Menominee County|Menominee city|474|0|3|Cardenas|Terrence|3000|Vermont|M|Son|||0|2510 + +3000|IL|Shelby County|Findlay village|475|0|1|Darks|Haywood Cesar|2959|Maryland|M|Head|||41|2511 +3000|IL|Shelby County|Findlay village|475|0|2|Darks|Loria|2958|New Hampshire|F|Spouse|||42|2512 +3000|IL|Shelby County|Findlay village|475|0|3|Darks|Salvatore|2978|Rhode Island|M|Son|||22|2513 +3000|IL|Shelby County|Findlay village|475|0|4|Darks|Lavelle|2986|Illinois|F|Daughter|||14|2514 +3000|IL|Shelby County|Findlay village|475|0|5|Darks|Kami|2988|Oklahoma|F|Daughter|||12|2515 +3000|IL|Shelby County|Findlay village|475|0|6|Darks|Susan|2992|Indiana|F|Daughter|||8|2516 +3000|IL|Shelby County|Findlay village|475|0|7|Darks|Carlo|2994|Utah|M|Son|||6|2517 +3000|IL|Shelby County|Findlay village|475|0|8|Darks|Conrad Chad|2996|Texas|M|Son|||4|2518 +3000|IL|Shelby County|Findlay village|475|0|9|Darks|Lisabeth|3000|Virginia|F|Daughter|||0|2519 + +3000|TX|Wise County|Chico city|476|0|1|Kovach|Timmy Ward|2959|Montana|M|Head|||41|2520 +3000|TX|Wise County|Chico city|476|0|2|Kovach|Jasmine Tommie|2962|Idaho|F|Spouse|||38|2521 +3000|TX|Wise County|Chico city|476|0|3|Kovach|Florance|2984|California|F|Daughter|||16|2522 +3000|TX|Wise County|Chico city|476|0|4|Kovach|Alexander|2986|Massachusetts|M|Son|||14|2523 +3000|TX|Wise County|Chico city|476|0|5|Kovach|Joesph|2990|Vermont|M|Son|||10|2524 +3000|TX|Wise County|Chico city|476|0|6|Kovach|Dulcie|2994|Arkansas|F|Daughter|||6|2525 +3000|TX|Wise County|Chico city|476|0|7|Kovach|Idalia|2996|Maine|F|Daughter|||4|2526 + +3000|OH|Tuscarawas County|Midvale village|477|0|1|Vess|Lavon|2980|Alaska|F|Head|||20|2527 +3000|OH|Tuscarawas County|Midvale village|477|0|2|Vess|Desire Cecile|3000|Tennessee|F|Daughter|||0|2528 + +3000|ME|Lincoln County|Louds Island UT|478|0|1|Kasparian|Refugio Demarcus|2946|Ohio|M|Head|||54|2529 +3000|ME|Lincoln County|Louds Island UT|478|0|2|Kasparian|Candra|2949|Colorado|F|Spouse|||51|2530 +3000|ME|Lincoln County|Louds Island UT|478|0|3|Kasparian|Katina|2973|Arkansas|F|Daughter|||27|2531 +3000|ME|Lincoln County|Louds Island UT|478|0|4|Kasparian|Brittany|2975|Suriname|F|Daughter|||25|2532 +3000|ME|Lincoln County|Louds Island UT|478|0|5|Kasparian|Jenni|2981|Arkansas|F|Daughter|||19|2533 +3000|ME|Lincoln County|Louds Island UT|478|0|6|Kasparian|Sheilah|2987|New Mexico|F|Daughter|||13|2534 +3000|ME|Lincoln County|Louds Island UT|478|0|7|Kasparian|Weldon|2989|New Mexico|M|Son|||11|2535 +3000|ME|Lincoln County|Louds Island UT|478|0|8|Kasparian|Tessie|2993|Utah|F|Daughter|||7|2536 +3000|ME|Lincoln County|Louds Island UT|478|0|9|Kasparian|Cinthia|2995|Nebraska|F|Daughter|||5|2537 +3000|ME|Lincoln County|Louds Island UT|478|0|10|Kasparian|Albert|2997|New Hampshire|M|Son|||3|2538 + +3000|CA|Plumas County|Valley Ranch CDP|479|0|1|Bald|Marnie|2954|Mississippi|F|Head|||46|2539 +3000|CA|Plumas County|Valley Ranch CDP|479|0|2|Bald|Frederick|2986|Tennessee|M|Son|||14|2540 +3000|CA|Plumas County|Valley Ranch CDP|479|0|3|Bald|Herminia|2988|Florida|F|Daughter|||12|2541 +3000|CA|Plumas County|Valley Ranch CDP|479|0|4|Bald|Daryl|2994|Tunisia|M|Son|||6|2542 +3000|CA|Plumas County|Valley Ranch CDP|479|0|5|Bald|Dexter|3000|Hawaii|M|Son|||0|2543 + +3000|MN|Grant County|Herman city|480|0|1|Toot|Shad Trinidad|2958|Pakistan|M|Head|||42|2544 +3000|MN|Grant County|Herman city|480|0|2|Toot|Sarah|2954|Arizona|F|Spouse|||46|2545 +3000|MN|Grant County|Herman city|480|0|3|Toot|Emmett|2976|New Mexico|M|Son|||24|2546 +3000|MN|Grant County|Herman city|480|0|4|Toot|Jonathan|2980|Delaware|M|Son|||20|2547 +3000|MN|Grant County|Herman city|480|0|5|Toot|Brooks|2984|Maryland|M|Son|||16|2548 +3000|MN|Grant County|Herman city|480|0|6|Toot|Blanche|2990|Louisiana|F|Daughter|||10|2549 +3000|MN|Grant County|Herman city|480|0|7|Toot|Zetta Laverne|2994|West Virginia|F|Daughter|||6|2550 +3000|MN|Grant County|Herman city|480|0|8|Toot|Jovan|3000|New Zealand|F|Daughter|||0|2551 + +3000|GA|Chatham County|Pooler city|481|0|1|Guerrero|Theodore Isidro|2963|Arkansas|M|Head|||37|2552 + +3000|IA|Decatur County|Leon city|482|0|1|Slowinski|Prince Freeman|2939|Romania|M|Head|||61|2553 +3000|IA|Decatur County|Leon city|482|0|2|Slowinski|Anya|2942|Tennessee|F|Spouse|||58|2554 +3000|IA|Decatur County|Leon city|482|0|3|Slowinski|Hannah|2962|Thailand|F|Daughter|||38|2555 +3000|IA|Decatur County|Leon city|482|0|4|Slowinski|Bradford|2970|Wisconsin|M|Son|||30|2556 +3000|IA|Decatur County|Leon city|482|0|5|Slowinski|Rhett|2974|Virginia|M|Son|||26|2557 +3000|IA|Decatur County|Leon city|482|0|6|Slowinski|Agustin|2978|Tanzania, United Republic Of|M|Son|||22|2558 +3000|IA|Decatur County|Leon city|482|0|7|Slowinski|Lou|2980|Michigan|M|Son|||20|2559 +3000|IA|Decatur County|Leon city|482|0|8|Slowinski|Asuncion|2982|Nebraska|F|Daughter|||18|2560 +3000|IA|Decatur County|Leon city|482|0|9|Slowinski|Susie|2986|New Hampshire|F|Daughter|||14|2561 +3000|IA|Decatur County|Leon city|482|0|10|Slowinski|Oretha|2988|Florida|F|Daughter|||12|2562 +3000|IA|Decatur County|Leon city|482|0|11|Slowinski|Jules|2992|Egypt|M|Son|||8|2563 +3000|IA|Decatur County|Leon city|482|0|12|Slowinski|Ezekiel|2998|South Carolina|M|Son|||2|2564 + +3000|TX|Wise County|Lake Bridgeport city|483|0|1|Mclean|Major Gordon|2953|Alaska|M|Head|||47|2565 +3000|TX|Wise County|Lake Bridgeport city|483|0|2|Mclean|Eliza|2977|Delaware|F|Spouse|||23|2566 +3000|TX|Wise County|Lake Bridgeport city|483|0|3|Mclean|Jacinto|2997|Montana|M|Son|||3|2567 +3000|TX|Wise County|Lake Bridgeport city|483|0|4|Mclean|Gerry|2999|New York|F|Daughter|||1|2568 + +3000|TX|Hood County|Granbury city|484|0|1|Clark|Howard Santiago|2954|Alaska|M|Head|||46|2569 +3000|TX|Hood County|Granbury city|484|0|2|Clark|Vannessa|2974|Iowa|F|Spouse|||26|2570 +3000|TX|Hood County|Granbury city|484|0|3|Clark|Reed|2994|Mississippi|M|Son|||6|2571 +3000|TX|Hood County|Granbury city|484|0|4|Clark|Antione|2996|Maryland|M|Son|||4|2572 +3000|TX|Hood County|Granbury city|484|0|5|Clark|Cameron Cheree|2998|Germany|F|Daughter|||2|2573 +3000|TX|Hood County|Granbury city|484|0|6|Clark|Shayne|3000|Virgin Islands, U.s.|M|Son|||0|2574 + +3000|WA|Yakima County|Outlook CDP|485|0|1|Tenn|Bernardo Earnest|2941|Ohio|M|Head|||59|2575 +3000|WA|Yakima County|Outlook CDP|485|0|2|Tenn|Bernie Grover|2972|Nebraska|M|Son|||28|2576 +3000|WA|Yakima County|Outlook CDP|485|0|3|Tenn|Julian|2978|Iowa|F|Daughter|||22|2577 +3000|WA|Yakima County|Outlook CDP|485|0|4|Tenn|Shon|2980|Missouri|M|Son|||20|2578 +3000|WA|Yakima County|Outlook CDP|485|0|5|Tenn|Charlie|2986|Washington|M|Son|||14|2579 +3000|WA|Yakima County|Outlook CDP|485|0|6|Tenn|Eddie|2990|Indiana|F|Daughter|||10|2580 +3000|WA|Yakima County|Outlook CDP|485|0|7|Tenn|Tom|2996|Tunisia|M|Son|||4|2581 +3000|WA|Yakima County|Outlook CDP|485|0|8|Tenn|Shaquana|2998|Arizona|F|Daughter|||2|2582 + +3000|NE|Lancaster County|Yankee Hill CDP|486|0|1|Freeborn|Cicely Noriko|2955|Malawi|F|Head|||45|2583 +3000|NE|Lancaster County|Yankee Hill CDP|486|0|2|Freeborn|Samual|2977|New York|M|Son|||23|2584 +3000|NE|Lancaster County|Yankee Hill CDP|486|0|3|Freeborn|Marg|2981|New Jersey|F|Daughter|||19|2585 +3000|NE|Lancaster County|Yankee Hill CDP|486|0|4|Freeborn|Marshall|2983|Michigan|M|Son|||17|2586 +3000|NE|Lancaster County|Yankee Hill CDP|486|0|5|Freeborn|Rosanne|2985|Virginia|F|Daughter|||15|2587 +3000|NE|Lancaster County|Yankee Hill CDP|486|0|6|Freeborn|Erasmo|2989|Rhode Island|M|Son|||11|2588 +3000|NE|Lancaster County|Yankee Hill CDP|486|0|7|Freeborn|Jamee|2993|Fiji|F|Daughter|||7|2589 +3000|NE|Lancaster County|Yankee Hill CDP|486|0|8|Freeborn|Elroy|2997|Montana|M|Son|||3|2590 +3000|NE|Lancaster County|Yankee Hill CDP|486|0|9|Freeborn|Delmer Clarence|2999|Oklahoma|M|Son|||1|2591 + +3000|WY|Platte County|Hartville town|487|0|1|Mazzie|Jarrod Neville|2984|Zambia|M|Head|||16|2592 + +3000|ME|Washington County|Calais city|488|0|1|Brisbone|Sal Lonny|2947|Zambia|M|Head|||53|2593 +3000|ME|Washington County|Calais city|488|0|2|Brisbone|Pat|2989|New York|M|Son|||11|2594 +3000|ME|Washington County|Calais city|488|0|3|Brisbone|Ignacio|2991|New Hampshire|M|Son|||9|2595 +3000|ME|Washington County|Calais city|488|0|4|Brisbone|Verdie Magaret|2999|Connecticut|F|Daughter|||1|2596 + +3000|KY|McCracken County|Paducah city|489|0|1|Ibale|Vern Wendell|2962|Pennsylvania|M|Head|||38|2597 +3000|KY|McCracken County|Paducah city|489|0|2|Ibale|Nicol|2965|Slovenia|F|Spouse|||35|2598 +3000|KY|McCracken County|Paducah city|489|0|3|Ibale|Linnie|2985|Virgin Islands, U.s.|F|Daughter|||15|2599 +3000|KY|McCracken County|Paducah city|489|0|4|Ibale|Raylene|2987|United States Minor Outlying Islands|F|Daughter|||13|2600 +3000|KY|McCracken County|Paducah city|489|0|5|Ibale|Toby|2989|Washington|F|Daughter|||11|2601 + +3000|LA|St. Mary Parish|Berwick town|490|0|1|Jasinski|Salvatore|2949|Palau|M|Head|||51|2602 +3000|LA|St. Mary Parish|Berwick town|490|0|2|Jasinski|Lanie|2946|North Dakota|F|Spouse|||54|2603 +3000|LA|St. Mary Parish|Berwick town|490|0|3|Jasinski|Dana|2972|Tennessee|M|Son|||28|2604 +3000|LA|St. Mary Parish|Berwick town|490|0|4|Jasinski|Elise|2974|South Carolina|F|Daughter|||26|2605 +3000|LA|St. Mary Parish|Berwick town|490|0|5|Jasinski|Caleb|2976|Nebraska|M|Son|||24|2606 +3000|LA|St. Mary Parish|Berwick town|490|0|6|Jasinski|Randell|2978|Washington|M|Son|||22|2607 +3000|LA|St. Mary Parish|Berwick town|490|0|7|Jasinski|Elbert|2986|South Dakota|M|Son|||14|2608 +3000|LA|St. Mary Parish|Berwick town|490|0|8|Jasinski|Hobert Loren|2988|Cameroon|M|Son|||12|2609 + +3000|MN|Ramsey County|Lauderdale city|491|0|1|Odea|Terence|2975|Malawi|M|Head|||25|2610 +3000|MN|Ramsey County|Lauderdale city|491|0|2|Odea|Kaylene|2984|California|F|Spouse|||16|2611 + +3000|MA|Essex County|Lawrence city|492|0|1|Taylor|Allen Palmer|2937|Alaska|M|Head|||63|2612 +3000|MA|Essex County|Lawrence city|492|0|2|Taylor|Tiana|2948|Lesotho|F|Spouse|||52|2613 +3000|MA|Essex County|Lawrence city|492|0|3|Taylor|Garry|2970|Utah|M|Son|||30|2614 +3000|MA|Essex County|Lawrence city|492|0|4|Taylor|Stephenie|2980|Nevada|F|Daughter|||20|2615 +3000|MA|Essex County|Lawrence city|492|0|5|Taylor|Harmony|2986|Macau|F|Daughter|||14|2616 +3000|MA|Essex County|Lawrence city|492|0|6|Taylor|Maricruz|2992|Missouri|F|Daughter|||8|2617 +3000|MA|Essex County|Lawrence city|492|0|7|Taylor|Art|2994|Missouri|M|Son|||6|2618 +3000|MA|Essex County|Lawrence city|492|0|8|Taylor|Willy|3000|Wisconsin|M|Son|||0|2619 + +3000|FL|Manatee County|Bradenton city|493|0|1|Tolson|Justin Roosevelt|2977|China|M|Head|||23|2620 +3000|FL|Manatee County|Bradenton city|493|0|2|Tolson|Evie|2976|Guam|F|Spouse|||24|2621 +3000|FL|Manatee County|Bradenton city|493|0|3|Tolson|Dee Rudy|2996|Missouri|M|Son|||4|2622 + +3000|WI|Chippewa County|Chippewa Falls city|494|0|1|Clark|Dwayne Dion|2959|Mississippi|M|Head|||41|2623 +3000|WI|Chippewa County|Chippewa Falls city|494|0|2|Clark|Rana|2957|New Hampshire|F|Spouse|||43|2624 +3000|WI|Chippewa County|Chippewa Falls city|494|0|3|Clark|Stephnie|2979|South Carolina|F|Daughter|||21|2625 +3000|WI|Chippewa County|Chippewa Falls city|494|0|4|Clark|Maryam|2987|American Samoa|F|Daughter|||13|2626 +3000|WI|Chippewa County|Chippewa Falls city|494|0|5|Clark|Mauricio|2991|Hong Kong|M|Son|||9|2627 + +3000|MS|Wayne County|Waynesboro city|495|0|1|Kincaid|Jordan|2938|Nevada|M|Head|||62|2628 +3000|MS|Wayne County|Waynesboro city|495|0|2|Kincaid|Thalia|2958|New Jersey|F|Spouse|||42|2629 +3000|MS|Wayne County|Waynesboro city|495|0|3|Kincaid|Esther|2986|Maine|F|Daughter|||14|2630 +3000|MS|Wayne County|Waynesboro city|495|0|4|Kincaid|Malik|2990|Minnesota|M|Son|||10|2631 +3000|MS|Wayne County|Waynesboro city|495|0|5|Kincaid|Ferdinand|2994|Alaska|M|Son|||6|2632 +3000|MS|Wayne County|Waynesboro city|495|0|6|Kincaid|Davis|3000|Texas|M|Son|||0|2633 + +3000|MI|Kent County|Sparta village|496|0|1|Castiglia|Franklin Louie|2946|French Southern Territories|M|Head|||54|2634 +3000|MI|Kent County|Sparta village|496|0|2|Castiglia|Tena|2967|New Mexico|F|Spouse|||33|2635 +3000|MI|Kent County|Sparta village|496|0|3|Castiglia|Alica|2987|Argentina|F|Daughter|||13|2636 +3000|MI|Kent County|Sparta village|496|0|4|Castiglia|Woodrow|2989|Massachusetts|M|Son|||11|2637 +3000|MI|Kent County|Sparta village|496|0|5|Castiglia|Boris|2991|Ohio|M|Son|||9|2638 +3000|MI|Kent County|Sparta village|496|0|6|Castiglia|Clayton Fermin|2993|Pennsylvania|M|Son|||7|2639 +3000|MI|Kent County|Sparta village|496|0|7|Castiglia|Shay|2995|Virginia|F|Daughter|||5|2640 +3000|MI|Kent County|Sparta village|496|0|8|Castiglia|Richie|2997|Arizona|M|Son|||3|2641 + +3000|TX|Starr County|La Carla CDP|497|0|1|Romulus|Jong|2975|Pennsylvania|F|Head|||25|2642 +3000|TX|Starr County|La Carla CDP|497|0|2|Romulus|Charolette|2995|Kentucky|F|Daughter|||5|2643 +3000|TX|Starr County|La Carla CDP|497|0|3|Romulus|Emilia|2997|New Jersey|F|Daughter|||3|2644 +3000|TX|Starr County|La Carla CDP|497|0|4|Romulus|Fred Andrea|2999|Rhode Island|M|Son|||1|2645 + +3000|OR|Linn County|Waterloo town|498|0|1|Scott|Ryan Thanh|2966|Costa Rica|M|Head|||34|2646 +3000|OR|Linn County|Waterloo town|498|0|2|Scott|Alexandria|2965|Utah|F|Spouse|||35|2647 +3000|OR|Linn County|Waterloo town|498|0|3|Scott|Simona|2985|Wyoming|F|Daughter|||15|2648 +3000|OR|Linn County|Waterloo town|498|0|4|Scott|Douglas Clinton|2989|Delaware|M|Son|||11|2649 +3000|OR|Linn County|Waterloo town|498|0|5|Scott|Bertram Hipolito|2991|Connecticut|M|Son|||9|2650 +3000|OR|Linn County|Waterloo town|498|0|6|Scott|Maurine Tiesha|2995|Wyoming|F|Daughter|||5|2651 +3000|OR|Linn County|Waterloo town|498|0|7|Scott|Owen|2997|New Mexico|M|Son|||3|2652 + +3000|CA|Plumas County|Graeagle CDP|499|0|1|Nelson|Gerard|2963|Kentucky|M|Head|||37|2653 +3000|CA|Plumas County|Graeagle CDP|499|0|2|Nelson|Terrell|2960|Michigan|F|Spouse|||40|2654 +3000|CA|Plumas County|Graeagle CDP|499|0|3|Nelson|Vanesa|2980|Texas|F|Daughter|||20|2655 +3000|CA|Plumas County|Graeagle CDP|499|0|4|Nelson|Lacey|2988|Washington|F|Daughter|||12|2656 +3000|CA|Plumas County|Graeagle CDP|499|0|5|Nelson|Herta Brett|2990|French Southern Territories|F|Daughter|||10|2657 +3000|CA|Plumas County|Graeagle CDP|499|0|6|Nelson|Tobias|2994|Finland|M|Son|||6|2658 +3000|CA|Plumas County|Graeagle CDP|499|0|7|Nelson|Darrel|3000|Alabama|M|Son|||0|2659 + +3000|IL|Greene County|Greenfield city|500|0|1|Ferrara|Rodney Corey|2984|South Dakota|M|Head|||16|2660 + +3000|GA|Chattooga County|Trion town|501|0|1|Johnson|Kirby Erwin|2942|Indiana|M|Head|||58|2661 +3000|GA|Chattooga County|Trion town|501|0|2|Johnson|Julianna|2969|Kansas|F|Daughter|||31|2662 +3000|GA|Chattooga County|Trion town|501|0|3|Johnson|Eugenio|2983|Delaware|M|Son|||17|2663 +3000|GA|Chattooga County|Trion town|501|0|4|Johnson|Margarito|2989|Massachusetts|M|Son|||11|2664 + +3000|NH|Coos County|Crawfords purchase|502|0|1|Hyrkas|Dexter|2957|Nebraska|M|Head|||43|2665 +3000|NH|Coos County|Crawfords purchase|502|0|2|Hyrkas|Dallas|2955|Barbados|F|Spouse|||45|2666 +3000|NH|Coos County|Crawfords purchase|502|0|3|Hyrkas|Kirstie Fran|2975|New Mexico|F|Daughter|||25|2667 +3000|NH|Coos County|Crawfords purchase|502|0|4|Hyrkas|Lindsey|2977|South Dakota|F|Daughter|||23|2668 +3000|NH|Coos County|Crawfords purchase|502|0|5|Hyrkas|Sheree|2985|Washington|F|Daughter|||15|2669 +3000|NH|Coos County|Crawfords purchase|502|0|6|Hyrkas|Cecilia|2987|Guatemala|F|Daughter|||13|2670 +3000|NH|Coos County|Crawfords purchase|502|0|7|Hyrkas|Ramon|2989|Pennsylvania|M|Son|||11|2671 +3000|NH|Coos County|Crawfords purchase|502|0|8|Hyrkas|Sol Min|2991|Pennsylvania|F|Daughter|||9|2672 +3000|NH|Coos County|Crawfords purchase|502|0|9|Hyrkas|Dewayne Mac|2993|Florida|M|Son|||7|2673 +3000|NH|Coos County|Crawfords purchase|502|0|10|Hyrkas|Darby Penni|2997|California|F|Daughter|||3|2674 + +3000|MI|Wexford County|Manton city|503|0|1|Walkinshaw|Betsy|2955|Nebraska|F|Head|||45|2675 +3000|MI|Wexford County|Manton city|503|0|2|Walkinshaw|Lorene|2987|Idaho|F|Daughter|||13|2676 +3000|MI|Wexford County|Manton city|503|0|3|Walkinshaw|Tuan|2991|Idaho|M|Son|||9|2677 +3000|MI|Wexford County|Manton city|503|0|4|Walkinshaw|Nicolas|2993|Mississippi|M|Son|||7|2678 +3000|MI|Wexford County|Manton city|503|0|5|Walkinshaw|Olen|2995|Massachusetts|M|Son|||5|2679 +3000|MI|Wexford County|Manton city|503|0|6|Walkinshaw|Ima|2997|Hawaii|F|Daughter|||3|2680 +3000|MI|Wexford County|Manton city|503|0|7|Walkinshaw|Solomon|2999|Tonga|M|Son|||1|2681 + +3000|FL|Hillsborough County|Bloomingdale CDP|504|0|1|Osborn|James|2937|New Mexico|M|Head|||63|2682 +3000|FL|Hillsborough County|Bloomingdale CDP|504|0|2|Osborn|Sina|2942|Colombia|F|Spouse|||58|2683 +3000|FL|Hillsborough County|Bloomingdale CDP|504|0|3|Osborn|Gregory Pok|2968|Hawaii|F|Daughter|||32|2684 +3000|FL|Hillsborough County|Bloomingdale CDP|504|0|4|Osborn|Rob|2982|New Hampshire|M|Son|||18|2685 +3000|FL|Hillsborough County|Bloomingdale CDP|504|0|5|Osborn|Rodrick|2984|Barbados|M|Son|||16|2686 +3000|FL|Hillsborough County|Bloomingdale CDP|504|0|6|Osborn|Tianna|2986|Maryland|F|Daughter|||14|2687 +3000|FL|Hillsborough County|Bloomingdale CDP|504|0|7|Osborn|Russell|2988|Kentucky|M|Son|||12|2688 +3000|FL|Hillsborough County|Bloomingdale CDP|504|0|8|Osborn|Melia|2996|Missouri|F|Daughter|||4|2689 +3000|FL|Hillsborough County|Bloomingdale CDP|504|0|9|Osborn|Lizzie|2998|Tennessee|F|Daughter|||2|2690 + +3000|PA|Jefferson County|Big Run borough|505|0|1|Gruber|Kali Joey|2967|Mississippi|F|Head|||33|2691 +3000|PA|Jefferson County|Big Run borough|505|0|2|Gruber|Violeta|2991|Illinois|F|Daughter|||9|2692 +3000|PA|Jefferson County|Big Run borough|505|0|3|Gruber|Norris|2997|Alaska|M|Son|||3|2693 +3000|PA|Jefferson County|Big Run borough|505|0|4|Gruber|Ezequiel|2999|New Jersey|M|Son|||1|2694 + +3000|MN|Otter Tail County|Richville city|506|0|1|Wright|Vincent Terrence|2938|Christmas Island|M|Head|||62|2695 +3000|MN|Otter Tail County|Richville city|506|0|2|Wright|Camille Claretha|2959|Western Sahara|F|Spouse|||41|2696 +3000|MN|Otter Tail County|Richville city|506|0|3|Wright|Eldridge|2979|Sweden|M|Son|||21|2697 +3000|MN|Otter Tail County|Richville city|506|0|4|Wright|Dulcie|2993|Ohio|F|Daughter|||7|2698 +3000|MN|Otter Tail County|Richville city|506|0|5|Wright|Tommy|2995|Illinois|M|Son|||5|2699 +3000|MN|Otter Tail County|Richville city|506|0|6|Wright|Andria|2999|Wyoming|F|Daughter|||1|2700 + +3000|MN|Cottonwood County|Highwater township|507|0|1|Evans|Graham|2970|Ohio|M|Head|||30|2701 +3000|MN|Cottonwood County|Highwater township|507|0|2|Evans|Kennith|2994|Ohio|M|Son|||6|2702 +3000|MN|Cottonwood County|Highwater township|507|0|3|Evans|Leonard|2996|New Mexico|M|Son|||4|2703 +3000|MN|Cottonwood County|Highwater township|507|0|4|Evans|Hershel|2998|New Hampshire|M|Son|||2|2704 +3000|MN|Cottonwood County|Highwater township|507|0|5|Evans|Geraldo Elton|3000|Mississippi|M|Son|||0|2705 + +3000|NY|Oswego County|Altmar village|508|0|1|Prim|Rickey|2949|Washington|M|Head|||51|2706 +3000|NY|Oswego County|Altmar village|508|0|2|Prim|Karmen|2946|Wisconsin|F|Spouse|||54|2707 +3000|NY|Oswego County|Altmar village|508|0|3|Prim|Timmy|2976|Saint Helena|M|Son|||24|2708 +3000|NY|Oswego County|Altmar village|508|0|4|Prim|Talia|2986|Guatemala|F|Daughter|||14|2709 +3000|NY|Oswego County|Altmar village|508|0|5|Prim|Yoshie|2988|Virginia|F|Daughter|||12|2710 +3000|NY|Oswego County|Altmar village|508|0|6|Prim|Susana|2990|Arizona|F|Daughter|||10|2711 +3000|NY|Oswego County|Altmar village|508|0|7|Prim|Chang|2992|Vermont|M|Son|||8|2712 +3000|NY|Oswego County|Altmar village|508|0|8|Prim|Sean|2996|Moldova, Republic Of|M|Son|||4|2713 +3000|NY|Oswego County|Altmar village|508|0|9|Prim|Benjamin|2998|Wyoming|M|Son|||2|2714 + +3000|KS|Saline County|Brookville city|509|0|1|Sells|Paul Harold|2965|Ohio|M|Head|||35|2715 +3000|KS|Saline County|Brookville city|509|0|2|Sells|Vernell|2970|Missouri|F|Spouse|||30|2716 +3000|KS|Saline County|Brookville city|509|0|3|Sells|Jerome|2990|Louisiana|M|Son|||10|2717 +3000|KS|Saline County|Brookville city|509|0|4|Sells|Mimi|2994|Wyoming|F|Daughter|||6|2718 +3000|KS|Saline County|Brookville city|509|0|5|Sells|Maureen Yolande|2996|Colorado|F|Daughter|||4|2719 +3000|KS|Saline County|Brookville city|509|0|6|Sells|Emmitt|2998|Alabama|M|Son|||2|2720 + +3000|WI|Monroe County|Sparta city|510|0|1|Brahm|Guadalupe Jermaine|2972|Pennsylvania|M|Head|||28|2721 +3000|WI|Monroe County|Sparta city|510|0|2|Brahm|Julianne|2976|Wisconsin|F|Spouse|||24|2722 +3000|WI|Monroe County|Sparta city|510|0|3|Brahm|Armando|2998|North Dakota|M|Son|||2|2723 + +3000|MN|Rock County|Hardwick city|511|0|1|Meyers|Hipolito Louie|2974|Massachusetts|M|Head|||26|2724 + +3000|WI|St. Croix County|Woodville village|512|0|1|Rymes|Regina|2964|Colorado|F|Head|||36|2725 +3000|WI|St. Croix County|Woodville village|512|0|2|Rymes|Leonila|2986|Iowa|F|Daughter|||14|2726 +3000|WI|St. Croix County|Woodville village|512|0|3|Rymes|Layla|2988|Virgin Islands, British|F|Daughter|||12|2727 +3000|WI|St. Croix County|Woodville village|512|0|4|Rymes|Arletha|2994|Wisconsin|F|Daughter|||6|2728 +3000|WI|St. Croix County|Woodville village|512|0|5|Rymes|Yasmine|2998|New Mexico|F|Daughter|||2|2729 +3000|WI|St. Croix County|Woodville village|512|0|6|Rymes|Natisha|3000|Kentucky|F|Daughter|||0|2730 + +3000|PA|Armstrong County|Dayton borough|513|0|1|Randles|Hank Rickey|2962|Colorado|M|Head|||38|2731 +3000|PA|Armstrong County|Dayton borough|513|0|2|Randles|Sheba|2981|New Mexico|F|Spouse|||19|2732 + +3000|OR|Baker County|Sumpter city|514|0|1|Krynicki|Nolan Shane|2948|Pitcairn|M|Head|||52|2733 +3000|OR|Baker County|Sumpter city|514|0|2|Krynicki|Maryrose|2945|Ohio|F|Spouse|||55|2734 +3000|OR|Baker County|Sumpter city|514|0|3|Krynicki|Kristian|2967|Kansas|F|Daughter|||33|2735 +3000|OR|Baker County|Sumpter city|514|0|4|Krynicki|Mariam|2979|Florida|F|Daughter|||21|2736 +3000|OR|Baker County|Sumpter city|514|0|5|Krynicki|Elton|2983|Nebraska|M|Son|||17|2737 +3000|OR|Baker County|Sumpter city|514|0|6|Krynicki|Vania|2987|Minnesota|F|Daughter|||13|2738 +3000|OR|Baker County|Sumpter city|514|0|7|Krynicki|Casey Kieth|2989|Nevada|M|Son|||11|2739 +3000|OR|Baker County|Sumpter city|514|0|8|Krynicki|Reginald|2991|Georgia|M|Son|||9|2740 +3000|OR|Baker County|Sumpter city|514|0|9|Krynicki|Dallas|2993|Colorado|M|Son|||7|2741 +3000|OR|Baker County|Sumpter city|514|0|10|Krynicki|Branda|2995|Oklahoma|F|Daughter|||5|2742 +3000|OR|Baker County|Sumpter city|514|0|11|Krynicki|Miquel|2997|Kenya|M|Son|||3|2743 + +3000|MI|Oceana County|County Subdivisions not defined|515|0|1|Contos|Ken Trey|2962|Arkansas|M|Head|||38|2744 +3000|MI|Oceana County|County Subdivisions not defined|515|0|2|Contos|David|2980|Oregon|F|Spouse|||20|2745 + +3000|NY|Allegany County|Independence town|516|0|1|Heitmuller|Cletus Chester|2954|Minnesota|M|Head|||46|2746 +3000|NY|Allegany County|Independence town|516|0|2|Heitmuller|Laquita|2977|Nevada|F|Spouse|||23|2747 +3000|NY|Allegany County|Independence town|516|0|3|Heitmuller|Rubie|2997|New York|F|Daughter|||3|2748 +3000|NY|Allegany County|Independence town|516|0|4|Heitmuller|Sherron|2999|Idaho|F|Daughter|||1|2749 + +3000|VT|Windham County|Grafton town|517|0|1|Peach|Stan Adolfo|2946|Florida|M|Head|||54|2750 +3000|VT|Windham County|Grafton town|517|0|2|Peach|Sade|2956|Vermont|F|Spouse|||44|2751 +3000|VT|Windham County|Grafton town|517|0|3|Peach|Ferdinand|2978|North Carolina|M|Son|||22|2752 +3000|VT|Windham County|Grafton town|517|0|4|Peach|Tamie Shela|2982|West Virginia|F|Daughter|||18|2753 +3000|VT|Windham County|Grafton town|517|0|5|Peach|Remedios|2988|West Virginia|F|Daughter|||12|2754 +3000|VT|Windham County|Grafton town|517|0|6|Peach|Arianne|2990|Illinois|F|Daughter|||10|2755 +3000|VT|Windham County|Grafton town|517|0|7|Peach|Jon|2992|Nevada|M|Son|||8|2756 +3000|VT|Windham County|Grafton town|517|0|8|Peach|Moses|2994|New Hampshire|M|Son|||6|2757 +3000|VT|Windham County|Grafton town|517|0|9|Peach|Joy|2998|Louisiana|F|Daughter|||2|2758 +3000|VT|Windham County|Grafton town|517|0|10|Peach|Bradley|3000|Bolivia|M|Son|||0|2759 + +3000|TX|Williamson County|Taylor city|518|0|1|Lawrence|Felipe Luke|2943|Macedonia, The Former Yugoslav Republic Of|M|Head|||57|2760 +3000|TX|Williamson County|Taylor city|518|0|2|Lawrence|Isaura Vannesa|2985|Iowa|F|Daughter|||15|2761 +3000|TX|Williamson County|Taylor city|518|0|3|Lawrence|Blythe Paulette|2987|South Carolina|F|Daughter|||13|2762 +3000|TX|Williamson County|Taylor city|518|0|4|Lawrence|Rafaela|2989|New Mexico|F|Daughter|||11|2763 +3000|TX|Williamson County|Taylor city|518|0|5|Lawrence|Morgan|2991|New Caledonia|F|Daughter|||9|2764 +3000|TX|Williamson County|Taylor city|518|0|6|Lawrence|Kendall|2995|Kansas|F|Daughter|||5|2765 +3000|TX|Williamson County|Taylor city|518|0|7|Lawrence|Long|2999|Anguilla|M|Son|||1|2766 + +3000|IL|Grundy County|Morris city|519|0|1|Mauney|Alec|2955|Virginia|M|Head|||45|2767 +3000|IL|Grundy County|Morris city|519|0|2|Mauney|Dayna|2976|New Jersey|F|Spouse|||24|2768 +3000|IL|Grundy County|Morris city|519|0|3|Mauney|Fredericka|2998|Florida|F|Daughter|||2|2769 + +3000|ND|Pierce County|Barton CDP|520|0|1|Creel|Ernesto Odell|2942|Macau|M|Head|||58|2770 +3000|ND|Pierce County|Barton CDP|520|0|2|Creel|Starr|2946|Montana|F|Spouse|||54|2771 +3000|ND|Pierce County|Barton CDP|520|0|3|Creel|Claribel|2974|Iowa|F|Daughter|||26|2772 +3000|ND|Pierce County|Barton CDP|520|0|4|Creel|Saturnina|2978|Texas|F|Daughter|||22|2773 +3000|ND|Pierce County|Barton CDP|520|0|5|Creel|Antony Louie|2986|Nevada|M|Son|||14|2774 +3000|ND|Pierce County|Barton CDP|520|0|6|Creel|Clarinda|2988|Virginia|F|Daughter|||12|2775 +3000|ND|Pierce County|Barton CDP|520|0|7|Creel|Micheal|2990|Oregon|F|Daughter|||10|2776 +3000|ND|Pierce County|Barton CDP|520|0|8|Creel|Zofia|2994|Guyana|F|Daughter|||6|2777 +3000|ND|Pierce County|Barton CDP|520|0|9|Creel|Marguerite|2998|Mississippi|F|Daughter|||2|2778 + +3000|MI|Monroe County|South Monroe CDP|521|0|1|Herbert|Isaiah Agustin|2982|Hawaii|M|Head|||18|2779 +3000|MI|Monroe County|South Monroe CDP|521|0|2|Herbert|Leonie|2978|Guam|F|Spouse|||22|2780 + +3000|NJ|Middlesex County|Brownville CDP|522|0|1|Duell|Russell Riley|2959|Montana|M|Head|||41|2781 +3000|NJ|Middlesex County|Brownville CDP|522|0|2|Duell|Joy|2980|North Carolina|F|Spouse|||20|2782 + +3000|NC|Cleveland County|Kingstown town|523|0|1|Pickering|Terrance Donny|2957|Mississippi|M|Head|||43|2783 +3000|NC|Cleveland County|Kingstown town|523|0|2|Pickering|Giselle|2964|Idaho|F|Spouse|||36|2784 +3000|NC|Cleveland County|Kingstown town|523|0|3|Pickering|Cherlyn|2988|Nevada|F|Daughter|||12|2785 +3000|NC|Cleveland County|Kingstown town|523|0|4|Pickering|Ilse|2990|Texas|F|Daughter|||10|2786 +3000|NC|Cleveland County|Kingstown town|523|0|5|Pickering|Jonathon|2992|Nevada|M|Son|||8|2787 + +3000|SC|Horry County|Myrtle Beach city|524|0|1|Schader|Darell Calvin|2969|Oregon|M|Head|||31|2788 +3000|SC|Horry County|Myrtle Beach city|524|0|2|Schader|Sherill|2970|Georgia|F|Spouse|||30|2789 +3000|SC|Horry County|Myrtle Beach city|524|0|3|Schader|Chelsey|2992|Washington|F|Daughter|||8|2790 +3000|SC|Horry County|Myrtle Beach city|524|0|4|Schader|Jeremy Brooks|2994|Botswana|M|Son|||6|2791 +3000|SC|Horry County|Myrtle Beach city|524|0|5|Schader|Kendrick|2996|Oklahoma|M|Son|||4|2792 +3000|SC|Horry County|Myrtle Beach city|524|0|6|Schader|Wally|3000|French Guiana|M|Son|||0|2793 + +3000|OH|Logan County|Quincy village|525|0|1|Sobon|Chad Jeremy|2940|Illinois|M|Head|||60|2794 +3000|OH|Logan County|Quincy village|525|0|2|Sobon|Joseph|2972|Connecticut|M|Son|||28|2795 +3000|OH|Logan County|Quincy village|525|0|3|Sobon|Waylon|2988|New Jersey|M|Son|||12|2796 +3000|OH|Logan County|Quincy village|525|0|4|Sobon|Yvonne|2994|Kansas|F|Daughter|||6|2797 +3000|OH|Logan County|Quincy village|525|0|5|Sobon|Brigette|2996|Martinique|F|Daughter|||4|2798 + +3000|WI|Barron County|Dallas town|526|0|1|Sampson|Isreal Haywood|2946|Kentucky|M|Head|||54|2799 +3000|WI|Barron County|Dallas town|526|0|2|Sampson|Agnes|2967|Alabama|F|Spouse|||33|2800 +3000|WI|Barron County|Dallas town|526|0|3|Sampson|Hertha|2991|Alaska|F|Daughter|||9|2801 +3000|WI|Barron County|Dallas town|526|0|4|Sampson|Darryl|2993|Washington|M|Son|||7|2802 +3000|WI|Barron County|Dallas town|526|0|5|Sampson|Georgianna|2995|Michigan|F|Daughter|||5|2803 +3000|WI|Barron County|Dallas town|526|0|6|Sampson|Omar|2999|Kansas|M|Son|||1|2804 + +3000|MN|Fillmore County|Fountain township|527|0|1|Wray|Kirby Bruce|2938|Mississippi|M|Head|||62|2805 +3000|MN|Fillmore County|Fountain township|527|0|2|Wray|Carolyn|2944|Minnesota|F|Spouse|||56|2806 +3000|MN|Fillmore County|Fountain township|527|0|3|Wray|Matilda Germaine|2972|Illinois|F|Daughter|||28|2807 +3000|MN|Fillmore County|Fountain township|527|0|4|Wray|Denna|2978|New Jersey|F|Daughter|||22|2808 +3000|MN|Fillmore County|Fountain township|527|0|5|Wray|Garret|2994|New York|M|Son|||6|2809 +3000|MN|Fillmore County|Fountain township|527|0|6|Wray|Gene|2996|Sweden|M|Son|||4|2810 +3000|MN|Fillmore County|Fountain township|527|0|7|Wray|Anibal Darryl|3000|Washington|M|Son|||0|2811 + +3000|PA|Armstrong County|Lenape Heights CDP|528|0|1|Greenhaw|Silas Mitch|2937|Minnesota|M|Head|||63|2812 +3000|PA|Armstrong County|Lenape Heights CDP|528|0|2|Greenhaw|Bernice|2955|Illinois|F|Spouse|||45|2813 +3000|PA|Armstrong County|Lenape Heights CDP|528|0|3|Greenhaw|Kate Loura|2981|Vermont|F|Daughter|||19|2814 +3000|PA|Armstrong County|Lenape Heights CDP|528|0|4|Greenhaw|Bulah|2983|New York|F|Daughter|||17|2815 +3000|PA|Armstrong County|Lenape Heights CDP|528|0|5|Greenhaw|Takako|2985|Michigan|F|Daughter|||15|2816 +3000|PA|Armstrong County|Lenape Heights CDP|528|0|6|Greenhaw|Levi|2987|Tennessee|M|Son|||13|2817 +3000|PA|Armstrong County|Lenape Heights CDP|528|0|7|Greenhaw|Rosendo|2989|Maine|M|Son|||11|2818 +3000|PA|Armstrong County|Lenape Heights CDP|528|0|8|Greenhaw|Jermaine|2991|California|M|Son|||9|2819 +3000|PA|Armstrong County|Lenape Heights CDP|528|0|9|Greenhaw|Virgil|2997|Nebraska|M|Son|||3|2820 + +3000|CA|San Bernardino County|Upland city|529|0|1|Rykert|Oscar|2952|Cambodia|F|Head|||48|2821 +3000|CA|San Bernardino County|Upland city|529|0|2|Rykert|Lon|2972|Maryland|M|Son|||28|2822 +3000|CA|San Bernardino County|Upland city|529|0|3|Rykert|Stanley|2986|Virginia|M|Son|||14|2823 +3000|CA|San Bernardino County|Upland city|529|0|4|Rykert|Wyatt|2988|South Carolina|M|Son|||12|2824 +3000|CA|San Bernardino County|Upland city|529|0|5|Rykert|Candie|2990|Indiana|F|Daughter|||10|2825 +3000|CA|San Bernardino County|Upland city|529|0|6|Rykert|Octavia Dania|2994|Haiti|F|Daughter|||6|2826 +3000|CA|San Bernardino County|Upland city|529|0|7|Rykert|Kittie|2998|Oklahoma|F|Daughter|||2|2827 + +3000|MI|Marquette County|Humboldt township|530|0|1|Truman|Art Lowell|2945|Washington|M|Head|||55|2828 +3000|MI|Marquette County|Humboldt township|530|0|2|Truman|Rosella|2941|Missouri|F|Spouse|||59|2829 +3000|MI|Marquette County|Humboldt township|530|0|3|Truman|Bettyann|2963|Romania|F|Daughter|||37|2830 +3000|MI|Marquette County|Humboldt township|530|0|4|Truman|Hans|2967|Delaware|M|Son|||33|2831 +3000|MI|Marquette County|Humboldt township|530|0|5|Truman|Bree|2969|Comoros|F|Daughter|||31|2832 +3000|MI|Marquette County|Humboldt township|530|0|6|Truman|Kim|2973|Indiana|F|Daughter|||27|2833 +3000|MI|Marquette County|Humboldt township|530|0|7|Truman|Roscoe|2985|North Dakota|M|Son|||15|2834 +3000|MI|Marquette County|Humboldt township|530|0|8|Truman|Harlan|2997|Kentucky|M|Son|||3|2835 + +3000|MO|St. Louis County|Champ village|531|0|1|Winder|Kristopher Clair|2961|Connecticut|M|Head|||39|2836 +3000|MO|St. Louis County|Champ village|531|0|2|Winder|Mercedez|2969|Arkansas|F|Spouse|||31|2837 +3000|MO|St. Louis County|Champ village|531|0|3|Winder|Gay|2991|Texas|F|Daughter|||9|2838 +3000|MO|St. Louis County|Champ village|531|0|4|Winder|Barbie|2993|Senegal|F|Daughter|||7|2839 +3000|MO|St. Louis County|Champ village|531|0|5|Winder|Moises|2997|New Hampshire|M|Son|||3|2840 + +3000|AK|Fairbanks North Star Borough|Goldstream CDP|532|0|1|Teran|Randall Romeo|2979|North Dakota|M|Head|||21|2841 +3000|AK|Fairbanks North Star Borough|Goldstream CDP|532|0|2|Teran|Micheline|2996|Illinois|F|Daughter|||4|2842 + +3000|MD|Prince George's County|Fort Washington CDP|533|0|1|Bowgren|Luetta Lina|2971|Utah|F|Head|||29|2843 +3000|MD|Prince George's County|Fort Washington CDP|533|0|2|Bowgren|Rickie|2991|Iowa|M|Son|||9|2844 +3000|MD|Prince George's County|Fort Washington CDP|533|0|3|Bowgren|Lucia|2993|Texas|F|Daughter|||7|2845 +3000|MD|Prince George's County|Fort Washington CDP|533|0|4|Bowgren|Merrill|2995|Tennessee|M|Son|||5|2846 +3000|MD|Prince George's County|Fort Washington CDP|533|0|5|Bowgren|Kevin|2997|California|M|Son|||3|2847 +3000|MD|Prince George's County|Fort Washington CDP|533|0|6|Bowgren|Idell Chana|2999|United Kingdom|F|Daughter|||1|2848 + +3000|GA|Catoosa County|Ringgold city|534|0|1|Relic|Cecil Emery|2951|Utah|M|Head|||49|2849 +3000|GA|Catoosa County|Ringgold city|534|0|2|Relic|Bao|2965|Hawaii|F|Spouse|||35|2850 +3000|GA|Catoosa County|Ringgold city|534|0|3|Relic|Marcellus|2989|Argentina|M|Son|||11|2851 +3000|GA|Catoosa County|Ringgold city|534|0|4|Relic|Alvin|2995|Massachusetts|M|Son|||5|2852 +3000|GA|Catoosa County|Ringgold city|534|0|5|Relic|Stephen|2997|New Mexico|M|Son|||3|2853 + +3000|MT|Cascade County|Great Falls city|535|0|1|Wilhoit|Willy Columbus|2941|Missouri|M|Head|||59|2854 +3000|MT|Cascade County|Great Falls city|535|0|2|Wilhoit|Karon Sina|2938|Alaska|F|Spouse|||62|2855 +3000|MT|Cascade County|Great Falls city|535|0|3|Wilhoit|Mervin|2964|Tennessee|M|Son|||36|2856 +3000|MT|Cascade County|Great Falls city|535|0|4|Wilhoit|Becki|2970|New Jersey|F|Daughter|||30|2857 +3000|MT|Cascade County|Great Falls city|535|0|5|Wilhoit|Kayleen|2986|New Hampshire|F|Daughter|||14|2858 +3000|MT|Cascade County|Great Falls city|535|0|6|Wilhoit|Harley|2988|Tennessee|M|Son|||12|2859 +3000|MT|Cascade County|Great Falls city|535|0|7|Wilhoit|Nickolas|2994|Wyoming|M|Son|||6|2860 +3000|MT|Cascade County|Great Falls city|535|0|8|Wilhoit|Elizbeth|3000|Georgia|F|Daughter|||0|2861 + +3000|MO|Pemiscot County|Hayti city|536|0|1|Butler|Lupe Jerry|2944|South Dakota|M|Head|||56|2862 +3000|MO|Pemiscot County|Hayti city|536|0|2|Butler|Karoline|2965|Syrian Arab Republic|F|Spouse|||35|2863 +3000|MO|Pemiscot County|Hayti city|536|0|3|Butler|Irwin|2989|Missouri|M|Son|||11|2864 +3000|MO|Pemiscot County|Hayti city|536|0|4|Butler|Natacha|2991|Delaware|F|Daughter|||9|2865 +3000|MO|Pemiscot County|Hayti city|536|0|5|Butler|Aura|2995|Montana|F|Daughter|||5|2866 +3000|MO|Pemiscot County|Hayti city|536|0|6|Butler|Lesley|2997|California|M|Son|||3|2867 +3000|MO|Pemiscot County|Hayti city|536|0|7|Butler|Herta|2999|Arkansas|F|Daughter|||1|2868 + +3000|OH|Warren County|Maineville village|537|0|1|Weisbrod|Edgar Delmer|2965|Arizona|M|Head|||35|2869 +3000|OH|Warren County|Maineville village|537|0|2|Weisbrod|Myrtie|2967|Wyoming|F|Spouse|||33|2870 +3000|OH|Warren County|Maineville village|537|0|3|Weisbrod|Kurtis|2991|Delaware|M|Son|||9|2871 +3000|OH|Warren County|Maineville village|537|0|4|Weisbrod|Herbert|2993|Florida|M|Son|||7|2872 +3000|OH|Warren County|Maineville village|537|0|5|Weisbrod|Alden|2997|Missouri|M|Son|||3|2873 + +3000|WI|Brown County, Outagamie County|Howard village|538|0|1|Burdo|Nick Israel|2954|Utah|M|Head|||46|2874 +3000|WI|Brown County, Outagamie County|Howard village|538|0|2|Burdo|Zena|2964|South Dakota|F|Spouse|||36|2875 +3000|WI|Brown County, Outagamie County|Howard village|538|0|3|Burdo|Annis|2984|Vermont|F|Daughter|||16|2876 +3000|WI|Brown County, Outagamie County|Howard village|538|0|4|Burdo|Lacresha|2986|Montana|F|Daughter|||14|2877 +3000|WI|Brown County, Outagamie County|Howard village|538|0|5|Burdo|Fredricka Carlene|2992|Washington|F|Daughter|||8|2878 +3000|WI|Brown County, Outagamie County|Howard village|538|0|6|Burdo|Jeffry|2994|Pennsylvania|M|Son|||6|2879 +3000|WI|Brown County, Outagamie County|Howard village|538|0|7|Burdo|Nigel Lacy|2996|Zambia|M|Son|||4|2880 + +3000|OH|Belmont County|Bethesda village|539|0|1|Cordle|Zackary|2978|Virginia|M|Head|||22|2881 +3000|OH|Belmont County|Bethesda village|539|0|2|Cordle|Verena|2983|Maine|F|Spouse|||17|2882 + +3000|PA|Lancaster County|West Hempfield township|540|0|1|Bonder|Lewis Cleveland|2961|Connecticut|M|Head|||39|2883 +3000|PA|Lancaster County|West Hempfield township|540|0|2|Bonder|Earlie Vanesa|2975|Washington|F|Spouse|||25|2884 +3000|PA|Lancaster County|West Hempfield township|540|0|3|Bonder|Norberto|2999|Minnesota|M|Son|||1|2885 + +3000|MN|Yellow Medicine County|Echo city|541|0|1|Winthrop|Karlene|2979|New York|F|Head|||21|2886 +3000|MN|Yellow Medicine County|Echo city|541|0|2|Winthrop|Leida|2999|Kentucky|F|Daughter|||1|2887 + +3000|PA|Somerset County|Addison borough|542|0|1|Womack|Lonny Nestor|2955|California|M|Head|||45|2888 +3000|PA|Somerset County|Addison borough|542|0|2|Womack|Genesis|2967|Michigan|F|Spouse|||33|2889 +3000|PA|Somerset County|Addison borough|542|0|3|Womack|Raul Ivan|2989|Maryland|M|Son|||11|2890 +3000|PA|Somerset County|Addison borough|542|0|4|Womack|Orville|2991|Arizona|M|Son|||9|2891 +3000|PA|Somerset County|Addison borough|542|0|5|Womack|Chase|2995|Wisconsin|M|Son|||5|2892 +3000|PA|Somerset County|Addison borough|542|0|6|Womack|Harlan|2999|West Virginia|M|Son|||1|2893 + +3000|OH|Adams County|Manchester village|543|0|1|Tandy|Brooks Matt|2947|Brazil|M|Head|||53|2894 +3000|OH|Adams County|Manchester village|543|0|2|Tandy|Stephanie|2960|Rhode Island|F|Spouse|||40|2895 +3000|OH|Adams County|Manchester village|543|0|3|Tandy|Chance Ted|2980|Florida|M|Son|||20|2896 +3000|OH|Adams County|Manchester village|543|0|4|Tandy|Nicole|2986|Washington|F|Daughter|||14|2897 +3000|OH|Adams County|Manchester village|543|0|5|Tandy|Simona|2988|Iowa|F|Daughter|||12|2898 +3000|OH|Adams County|Manchester village|543|0|6|Tandy|Cody|2992|Ohio|M|Son|||8|2899 +3000|OH|Adams County|Manchester village|543|0|7|Tandy|Jc|2996|Utah|M|Son|||4|2900 +3000|OH|Adams County|Manchester village|543|0|8|Tandy|Michal|3000|Minnesota|M|Son|||0|2901 + +3000|MI|Clinton County|Bath charter township|544|0|1|Davis|Lou Bennett|2968|Guinea-bissau|M|Head|||32|2902 +3000|MI|Clinton County|Bath charter township|544|0|2|Davis|Caprice|2976|Virginia|F|Spouse|||24|2903 +3000|MI|Clinton County|Bath charter township|544|0|3|Davis|Felton|2998|Texas|M|Son|||2|2904 + +3000|WI|Rock County|Avon town|545|0|1|Davis|Gaston Vance|2940|North Dakota|M|Head|||60|2905 +3000|WI|Rock County|Avon town|545|0|2|Davis|Patrick|2938|Minnesota|F|Spouse|||62|2906 +3000|WI|Rock County|Avon town|545|0|3|Davis|Beau|2962|Indiana|M|Son|||38|2907 +3000|WI|Rock County|Avon town|545|0|4|Davis|Alvaro|2964|Alabama|M|Son|||36|2908 +3000|WI|Rock County|Avon town|545|0|5|Davis|Allyson|2972|Iceland|F|Daughter|||28|2909 +3000|WI|Rock County|Avon town|545|0|6|Davis|Marcel|2978|Maine|M|Son|||22|2910 +3000|WI|Rock County|Avon town|545|0|7|Davis|Dorsey Forest|2988|Montana|M|Son|||12|2911 +3000|WI|Rock County|Avon town|545|0|8|Davis|Terrell Dane|2990|New Caledonia|M|Son|||10|2912 +3000|WI|Rock County|Avon town|545|0|9|Davis|Lemuel|2998|Indiana|M|Son|||2|2913 + +3000|WV|Kanawha County|East Bank town|546|0|1|Padgett|Micheal Rigoberto|2968|Massachusetts|M|Head|||32|2914 +3000|WV|Kanawha County|East Bank town|546|0|2|Padgett|Jeanetta|2972|Wyoming|F|Spouse|||28|2915 +3000|WV|Kanawha County|East Bank town|546|0|3|Padgett|Cortez|2992|Maine|M|Son|||8|2916 + +3000|NY|Schenectady County|Rotterdam CDP|547|0|1|Fasching|Thomas Michael|2956|Arkansas|M|Head|||44|2917 +3000|NY|Schenectady County|Rotterdam CDP|547|0|2|Fasching|Loralee|2963|Georgia|F|Spouse|||37|2918 +3000|NY|Schenectady County|Rotterdam CDP|547|0|3|Fasching|Alta|2985|Washington|F|Daughter|||15|2919 +3000|NY|Schenectady County|Rotterdam CDP|547|0|4|Fasching|Jerica|2987|Missouri|F|Daughter|||13|2920 +3000|NY|Schenectady County|Rotterdam CDP|547|0|5|Fasching|Anja|2989|Mayotte|F|Daughter|||11|2921 +3000|NY|Schenectady County|Rotterdam CDP|547|0|6|Fasching|Ethelyn Dinah|2995|Nebraska|F|Daughter|||5|2922 +3000|NY|Schenectady County|Rotterdam CDP|547|0|7|Fasching|Griselda|2997|Rhode Island|F|Daughter|||3|2923 + +3000|UT|Cache County|River Heights city|548|0|1|Hile|Victor Shad|2948|Idaho|M|Head|||52|2924 +3000|UT|Cache County|River Heights city|548|0|2|Hile|Gregory|2946|Texas|F|Spouse|||54|2925 +3000|UT|Cache County|River Heights city|548|0|3|Hile|Peter|2974|Minnesota|F|Daughter|||26|2926 +3000|UT|Cache County|River Heights city|548|0|4|Hile|Gerri|2992|Wisconsin|F|Daughter|||8|2927 +3000|UT|Cache County|River Heights city|548|0|5|Hile|Whitney|2998|Maine|M|Son|||2|2928 +3000|UT|Cache County|River Heights city|548|0|6|Hile|Toby|3000|Colorado|M|Son|||0|2929 + +3000|HI|Maui County|Waikapu CDP|549|0|1|Gay|Sergio Joey|2952|Arizona|M|Head|||48|2930 +3000|HI|Maui County|Waikapu CDP|549|0|2|Gay|Tamatha Cira|2969|Montana|F|Spouse|||31|2931 +3000|HI|Maui County|Waikapu CDP|549|0|3|Gay|Forrest|2991|New Jersey|M|Son|||9|2932 +3000|HI|Maui County|Waikapu CDP|549|0|4|Gay|Santo|2999|California|M|Son|||1|2933 + +3000|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|1|Mok|Alphonso|2940|Maine|M|Head|||60|2934 +3000|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|2|Mok|Tora|2955|Montana|F|Spouse|||45|2935 +3000|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|3|Mok|Adelia|2975|Russian Federation|F|Daughter|||25|2936 +3000|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|4|Mok|Demarcus|2977|Georgia|M|Son|||23|2937 +3000|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|5|Mok|Breana|2985|Virginia|F|Daughter|||15|2938 +3000|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|6|Mok|Noe|2987|Oregon|M|Son|||13|2939 +3000|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|7|Mok|Reita Merideth|2989|Tennessee|F|Daughter|||11|2940 +3000|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|8|Mok|Kiera|2993|Michigan|F|Daughter|||7|2941 + +3000|IA|Franklin County|Hansell city|551|0|1|Baraby|Martin Odell|2965|Connecticut|M|Head|||35|2942 +3000|IA|Franklin County|Hansell city|551|0|2|Baraby|Cindy|2969|Kentucky|F|Spouse|||31|2943 +3000|IA|Franklin County|Hansell city|551|0|3|Baraby|Deeanna|2989|Connecticut|F|Daughter|||11|2944 +3000|IA|Franklin County|Hansell city|551|0|4|Baraby|Kraig|2991|Minnesota|M|Son|||9|2945 +3000|IA|Franklin County|Hansell city|551|0|5|Baraby|Venetta|2997|Maine|F|Daughter|||3|2946 +3000|IA|Franklin County|Hansell city|551|0|6|Baraby|Barton|2999|Massachusetts|M|Son|||1|2947 + +3000|MN|Lincoln County|Alta Vista township|552|0|1|Sage|Stevie Mauro|2961|Indiana|M|Head|||39|2948 +3000|MN|Lincoln County|Alta Vista township|552|0|2|Sage|Xiao|2967|Minnesota|F|Spouse|||33|2949 +3000|MN|Lincoln County|Alta Vista township|552|0|3|Sage|Stacy Jannette|2987|Indiana|F|Daughter|||13|2950 +3000|MN|Lincoln County|Alta Vista township|552|0|4|Sage|Vernita|2989|Texas|F|Daughter|||11|2951 +3000|MN|Lincoln County|Alta Vista township|552|0|5|Sage|Percy Gilbert|2991|Maryland|M|Son|||9|2952 +3000|MN|Lincoln County|Alta Vista township|552|0|6|Sage|Kellee|2999|Nevada|F|Daughter|||1|2953 + +3000|OH|Warren County|Pleasant Plain village|553|0|1|Oliver|Ryan German|2939|Virginia|M|Head|||61|2954 +3000|OH|Warren County|Pleasant Plain village|553|0|2|Oliver|Shavonne|2956|South Dakota|F|Spouse|||44|2955 +3000|OH|Warren County|Pleasant Plain village|553|0|3|Oliver|Alfonso|2976|Minnesota|M|Son|||24|2956 +3000|OH|Warren County|Pleasant Plain village|553|0|4|Oliver|Alia|2978|Benin|F|Daughter|||22|2957 +3000|OH|Warren County|Pleasant Plain village|553|0|5|Oliver|Tora|2980|Brunei Darussalam|F|Daughter|||20|2958 +3000|OH|Warren County|Pleasant Plain village|553|0|6|Oliver|Raylene|2982|Utah|F|Daughter|||18|2959 +3000|OH|Warren County|Pleasant Plain village|553|0|7|Oliver|Wilber|2984|Michigan|M|Son|||16|2960 +3000|OH|Warren County|Pleasant Plain village|553|0|8|Oliver|Roosevelt|2990|Georgia|M|Son|||10|2961 +3000|OH|Warren County|Pleasant Plain village|553|0|9|Oliver|Leann|2996|Mongolia|F|Daughter|||4|2962 + +3000|NJ|Warren County|Liberty township|554|0|1|Kounovsky|Hiram Milan|2967|South Dakota|M|Head|||33|2963 +3000|NJ|Warren County|Liberty township|554|0|2|Kounovsky|Sarina|2975|Arizona|F|Spouse|||25|2964 +3000|NJ|Warren County|Liberty township|554|0|3|Kounovsky|Preston|2995|Nebraska|M|Son|||5|2965 + +3000|MI|Huron County|Owendale village|555|0|1|Rodrigez|Gayle Doug|2950|Wisconsin|M|Head|||50|2966 +3000|MI|Huron County|Owendale village|555|0|2|Rodrigez|Sharyn|2948|Arkansas|F|Spouse|||52|2967 +3000|MI|Huron County|Owendale village|555|0|3|Rodrigez|Matt|2986|Texas|M|Son|||14|2968 +3000|MI|Huron County|Owendale village|555|0|4|Rodrigez|Nick|2992|Missouri|M|Son|||8|2969 +3000|MI|Huron County|Owendale village|555|0|5|Rodrigez|Abdul|3000|Michigan|M|Son|||0|2970 + +3000|TX|Jim Wells County|Rancho Alegre CDP|556|0|1|Craven|Jose|2958|West Virginia|M|Head|||42|2971 +3000|TX|Jim Wells County|Rancho Alegre CDP|556|0|2|Craven|Tish|2974|Texas|F|Spouse|||26|2972 +3000|TX|Jim Wells County|Rancho Alegre CDP|556|0|3|Craven|Ginny|2994|Connecticut|F|Daughter|||6|2973 +3000|TX|Jim Wells County|Rancho Alegre CDP|556|0|4|Craven|Alphonse|3000|Alabama|M|Son|||0|2974 + +3000|WI|Bayfield County|Grandview town|557|0|1|Kneip|Toccara|2974|Pennsylvania|F|Head|||26|2975 + +3000|MN|Chippewa County|Maynard city|558|0|1|Gasiorowski|Ladawn|2950|New Jersey|F|Head|||50|2976 +3000|MN|Chippewa County|Maynard city|558|0|2|Gasiorowski|Jodee|2972|Malaysia|F|Daughter|||28|2977 +3000|MN|Chippewa County|Maynard city|558|0|3|Gasiorowski|Micah|2992|South Georgia And The South Sandwich Islands|M|Son|||8|2978 +3000|MN|Chippewa County|Maynard city|558|0|4|Gasiorowski|Bradley|2994|California|M|Son|||6|2979 +3000|MN|Chippewa County|Maynard city|558|0|5|Gasiorowski|Audria|2996|Texas|F|Daughter|||4|2980 + +3000|NE|York County|Lushton village|559|0|1|Marose|Kory Mark|2954|Vermont|M|Head|||46|2981 +3000|NE|York County|Lushton village|559|0|2|Marose|Johanna|2956|China|F|Spouse|||44|2982 +3000|NE|York County|Lushton village|559|0|3|Marose|Odell|2980|North Dakota|M|Son|||20|2983 +3000|NE|York County|Lushton village|559|0|4|Marose|Nora|2990|Ohio|F|Daughter|||10|2984 +3000|NE|York County|Lushton village|559|0|5|Marose|Lewis|2996|Nebraska|F|Daughter|||4|2985 + +3000|MN|Brown County|Stark township|560|0|1|Truden|Xavier Clint|2974|Nevada|M|Head|||26|2986 + +3000|WA|Spokane County|Millwood town|561|0|1|Lamance|Derek Francesco|2950|Wisconsin|M|Head|||50|2987 +3000|WA|Spokane County|Millwood town|561|0|2|Lamance|Rochelle|2974|Rwanda|F|Spouse|||26|2988 +3000|WA|Spokane County|Millwood town|561|0|3|Lamance|Lyndia|2998|Zimbabwe|F|Daughter|||2|2989 +3000|WA|Spokane County|Millwood town|561|0|4|Lamance|Truman|3000|Arkansas|M|Son|||0|2990 + +3000|TX|Lubbock County|Slaton city|562|0|1|Onsurez|Jimmy Eddie|2943|Maryland|M|Head|||57|2991 +3000|TX|Lubbock County|Slaton city|562|0|2|Onsurez|Kandy|2947|Kentucky|F|Spouse|||53|2992 +3000|TX|Lubbock County|Slaton city|562|0|3|Onsurez|Donn|2967|New Jersey|M|Son|||33|2993 +3000|TX|Lubbock County|Slaton city|562|0|4|Onsurez|Avery|2979|Idaho|M|Son|||21|2994 +3000|TX|Lubbock County|Slaton city|562|0|5|Onsurez|Harland|2981|Vermont|M|Son|||19|2995 +3000|TX|Lubbock County|Slaton city|562|0|6|Onsurez|Lucina|2987|Massachusetts|F|Daughter|||13|2996 +3000|TX|Lubbock County|Slaton city|562|0|7|Onsurez|Edda|2993|Monaco|F|Daughter|||7|2997 +3000|TX|Lubbock County|Slaton city|562|0|8|Onsurez|Zonia|2995|Hawaii|F|Daughter|||5|2998 +3000|TX|Lubbock County|Slaton city|562|0|9|Onsurez|Marianela|2997|Ohio|F|Daughter|||3|2999 + +3000|VA|Smyth County|Atkins CDP|563|0|1|Erickson|Kelvin Ernie|2938|Florida|M|Head|||62|3000 +3000|VA|Smyth County|Atkins CDP|563|0|2|Erickson|Estefana Joana|2949|Ohio|F|Spouse|||51|3001 +3000|VA|Smyth County|Atkins CDP|563|0|3|Erickson|Marlena|2969|Tennessee|F|Daughter|||31|3002 +3000|VA|Smyth County|Atkins CDP|563|0|4|Erickson|Lenard|2987|Idaho|M|Son|||13|3003 +3000|VA|Smyth County|Atkins CDP|563|0|5|Erickson|Somer Michiko|2991|Kansas|F|Daughter|||9|3004 +3000|VA|Smyth County|Atkins CDP|563|0|6|Erickson|Lorette|2995|Liberia|F|Daughter|||5|3005 + +3000|GA|Twiggs County, Wilkinson County|Danville town|564|0|1|Doxey|Alexis Rueben|2947|Ohio|M|Head|||53|3006 +3000|GA|Twiggs County, Wilkinson County|Danville town|564|0|2|Doxey|Dedra|2961|Alabama|F|Spouse|||39|3007 +3000|GA|Twiggs County, Wilkinson County|Danville town|564|0|3|Doxey|Palmer|2983|Arizona|M|Son|||17|3008 +3000|GA|Twiggs County, Wilkinson County|Danville town|564|0|4|Doxey|Jordan|2993|Idaho|M|Son|||7|3009 +3000|GA|Twiggs County, Wilkinson County|Danville town|564|0|5|Doxey|Gavin|2997|Maine|M|Son|||3|3010 +3000|GA|Twiggs County, Wilkinson County|Danville town|564|0|6|Doxey|Melvin Carol|2999|Alabama|M|Son|||1|3011 + +3000|IL|Effingham County|Altamont city|565|0|1|Mclay|Marlon Lorenzo|2957|Tennessee|M|Head|||43|3012 +3000|IL|Effingham County|Altamont city|565|0|2|Mclay|Gilberte Thalia|2955|New York|F|Spouse|||45|3013 +3000|IL|Effingham County|Altamont city|565|0|3|Mclay|Caterina|2987|Arkansas|F|Daughter|||13|3014 +3000|IL|Effingham County|Altamont city|565|0|4|Mclay|Sage|2989|Tajikistan|F|Daughter|||11|3015 + +3000|TX|Austin County|Wallis city|566|0|1|Bodrick|Ellsworth|2980|Virginia|M|Head|||20|3016 +3000|TX|Austin County|Wallis city|566|0|2|Bodrick|Katheryn|2976|Kansas|F|Spouse|||24|3017 +3000|TX|Austin County|Wallis city|566|0|3|Bodrick|Val|3000|Virginia|M|Son|||0|3018 + +3000|NJ|Middlesex County|South Plainfield borough|567|0|1|Jacobs|Melvin|2972|New Jersey|F|Head|||28|3019 +3000|NJ|Middlesex County|South Plainfield borough|567|0|2|Jacobs|Elba|2992|Wisconsin|F|Daughter|||8|3020 +3000|NJ|Middlesex County|South Plainfield borough|567|0|3|Jacobs|Deon Maris|2998|Russian Federation|F|Daughter|||2|3021 + +3000|IA|Clay County|Rossie city|568|0|1|Mcniel|Earle Hershel|2979|Texas|M|Head|||21|3022 +3000|IA|Clay County|Rossie city|568|0|2|Mcniel|Colette Shelby|2998|Japan|F|Daughter|||2|3023 + +3000|OH|Highland County|Leesburg village|569|0|1|Smith|Garth Mason|2945|Alabama|M|Head|||55|3024 +3000|OH|Highland County|Leesburg village|569|0|2|Smith|Bethany|2954|Colorado|F|Spouse|||46|3025 +3000|OH|Highland County|Leesburg village|569|0|3|Smith|Dollie|2986|Connecticut|F|Daughter|||14|3026 +3000|OH|Highland County|Leesburg village|569|0|4|Smith|Damion|2988|New York|M|Son|||12|3027 +3000|OH|Highland County|Leesburg village|569|0|5|Smith|Asa|2992|Delaware|M|Son|||8|3028 +3000|OH|Highland County|Leesburg village|569|0|6|Smith|Pearle|2996|Finland|F|Daughter|||4|3029 + +3000|MN|Nobles County|Bigelow city|570|0|1|Lawler|Rueben Arlen|2974|Idaho|M|Head|||26|3030 +3000|MN|Nobles County|Bigelow city|570|0|2|Lawler|Karyl|2983|Michigan|F|Spouse|||17|3031 + +3000|OK|Kiowa County|Lone Wolf town|571|0|1|Palumbo|Gene|2981|Arkansas|M|Head|||19|3032 +3000|OK|Kiowa County|Lone Wolf town|571|0|2|Palumbo|Tory|2982|Michigan|F|Spouse|||18|3033 + +3000|AR|Fulton County, Izard County, Sharp County|Horseshoe Bend city|572|0|1|Smith|Harry Garret|2963|France|M|Head|||37|3034 +3000|AR|Fulton County, Izard County, Sharp County|Horseshoe Bend city|572|0|2|Smith|Cris|2980|New Mexico|F|Spouse|||20|3035 + +3000|OH|Jefferson County|Richmond village|573|0|1|Ybanez|Carmen Lionel|2944|Texas|M|Head|||56|3036 +3000|OH|Jefferson County|Richmond village|573|0|2|Ybanez|Jaclyn Lavonda|2945|Minnesota|F|Spouse|||55|3037 +3000|OH|Jefferson County|Richmond village|573|0|3|Ybanez|Eliseo|2967|Kentucky|M|Son|||33|3038 +3000|OH|Jefferson County|Richmond village|573|0|4|Ybanez|Werner|2975|Iowa|M|Son|||25|3039 +3000|OH|Jefferson County|Richmond village|573|0|5|Ybanez|Traci|2981|Montserrat|F|Daughter|||19|3040 +3000|OH|Jefferson County|Richmond village|573|0|6|Ybanez|Clyde|2983|Estonia|F|Daughter|||17|3041 +3000|OH|Jefferson County|Richmond village|573|0|7|Ybanez|Jacqulyn|2987|Kentucky|F|Daughter|||13|3042 +3000|OH|Jefferson County|Richmond village|573|0|8|Ybanez|Fernande|2997|Connecticut|F|Daughter|||3|3043 + +3000|IA|Decatur County|Davis City city|574|0|1|Thompson|Toney Lesley|2950|Wisconsin|M|Head|||50|3044 +3000|IA|Decatur County|Davis City city|574|0|2|Thompson|Cira|2952|South Dakota|F|Spouse|||48|3045 +3000|IA|Decatur County|Davis City city|574|0|3|Thompson|Dawna Renetta|2986|Louisiana|F|Daughter|||14|3046 +3000|IA|Decatur County|Davis City city|574|0|4|Thompson|Aleida|2988|Uruguay|F|Daughter|||12|3047 +3000|IA|Decatur County|Davis City city|574|0|5|Thompson|Quinn|2990|North Dakota|M|Son|||10|3048 +3000|IA|Decatur County|Davis City city|574|0|6|Thompson|Jayson|2992|Utah|M|Son|||8|3049 +3000|IA|Decatur County|Davis City city|574|0|7|Thompson|Leora Annabelle|2998|Tennessee|F|Daughter|||2|3050 + +3000|CO|El Paso County|Palmer Lake town|575|0|1|Sponsler|Jamal Cortez|2968|Mauritius|M|Head|||32|3051 + +3000|CA|Imperial County|Calexico city|576|0|1|Roelfs|Brain Rickey|2937|Oklahoma|M|Head|||63|3052 +3000|CA|Imperial County|Calexico city|576|0|2|Roelfs|Brenton|2986|Rhode Island|M|Son|||14|3053 +3000|CA|Imperial County|Calexico city|576|0|3|Roelfs|Margarette|2988|Guadeloupe|F|Daughter|||12|3054 +3000|CA|Imperial County|Calexico city|576|0|4|Roelfs|Erwin Irwin|2998|Virginia|M|Son|||2|3055 + +3000|MA|Essex County|Saugus town|577|0|1|Pouliot|Chase Rhett|2969|New York|M|Head|||31|3056 +3000|MA|Essex County|Saugus town|577|0|2|Pouliot|Nieves|2985|Haiti|F|Daughter|||15|3057 +3000|MA|Essex County|Saugus town|577|0|3|Pouliot|Carmine|2987|Arizona|M|Son|||13|3058 +3000|MA|Essex County|Saugus town|577|0|4|Pouliot|Brooks|2989|Maine|M|Son|||11|3059 +3000|MA|Essex County|Saugus town|577|0|5|Pouliot|Luigi|2991|Tennessee|M|Son|||9|3060 +3000|MA|Essex County|Saugus town|577|0|6|Pouliot|Laree|2993|Idaho|F|Daughter|||7|3061 + +3000|OR|Baker County|Halfway city|578|0|1|Thibaut|Fritz Brian|2959|Japan|M|Head|||41|3062 +3000|OR|Baker County|Halfway city|578|0|2|Thibaut|Kendal|2983|Korea, Democratic People's Republic Of|F|Spouse|||17|3063 + +3000|NH|Strafford County|Durham CDP|579|0|1|Jacques|Merlin Marlin|2956|Florida|M|Head|||44|3064 +3000|NH|Strafford County|Durham CDP|579|0|2|Jacques|Maurice|2968|Ohio|F|Spouse|||32|3065 +3000|NH|Strafford County|Durham CDP|579|0|3|Jacques|Benton|2992|Arizona|M|Son|||8|3066 +3000|NH|Strafford County|Durham CDP|579|0|4|Jacques|Garfield|2996|Vermont|M|Son|||4|3067 +3000|NH|Strafford County|Durham CDP|579|0|5|Jacques|Bertha|3000|West Virginia|F|Daughter|||0|3068 + +3000|CA|Riverside County|Thousand Palms CDP|580|0|1|Pedroso|Cyrus|2979|Connecticut|M|Head|||21|3069 +3000|CA|Riverside County|Thousand Palms CDP|580|0|2|Pedroso|Burma|2976|New York|F|Spouse|||24|3070 +3000|CA|Riverside County|Thousand Palms CDP|580|0|3|Pedroso|Johnathon|2998|Colorado|M|Son|||2|3071 + +3000|PA|Somerset County|Berlin borough|581|0|1|Russe|Mariano Morgan|2974|East Timor|M|Head|||26|3072 +3000|PA|Somerset County|Berlin borough|581|0|2|Russe|Gia|2984|Wisconsin|F|Spouse|||16|3073 + +3000|ME|Hancock County|Central Hancock UT|582|0|1|Soose|Junior Ivan|2968|North Carolina|M|Head|||32|3074 +3000|ME|Hancock County|Central Hancock UT|582|0|2|Soose|Tianna|2968|Iowa|F|Spouse|||32|3075 +3000|ME|Hancock County|Central Hancock UT|582|0|3|Soose|Gail|2988|Delaware|M|Son|||12|3076 +3000|ME|Hancock County|Central Hancock UT|582|0|4|Soose|Reed William|2990|Turkey|M|Son|||10|3077 +3000|ME|Hancock County|Central Hancock UT|582|0|5|Soose|Audria|2998|Eritrea|F|Daughter|||2|3078 +3000|ME|Hancock County|Central Hancock UT|582|0|6|Soose|Reiko|3000|North Dakota|F|Daughter|||0|3079 + +3000|MI|Van Buren County|Mattawan village|583|0|1|Sosebee|David Darnell|2952|Delaware|M|Head|||48|3080 +3000|MI|Van Buren County|Mattawan village|583|0|2|Sosebee|Mistie|2995|Indiana|F|Daughter|||5|3081 + +3000|MN|Grant County|Stony Brook township|584|0|1|Berlin|Yulanda|2975|West Virginia|F|Head|||25|3082 +3000|MN|Grant County|Stony Brook township|584|0|2|Berlin|Kimi|2995|New Mexico|F|Daughter|||5|3083 +3000|MN|Grant County|Stony Brook township|584|0|3|Berlin|Fred|2997|Louisiana|M|Son|||3|3084 +3000|MN|Grant County|Stony Brook township|584|0|4|Berlin|Jesus|2999|Wyoming|M|Son|||1|3085 + +3000|AR|Sebastian County|Barling city|585|0|1|Armstead|Val Elias|2946|Maine|M|Head|||54|3086 +3000|AR|Sebastian County|Barling city|585|0|2|Armstead|Annice|2968|Delaware|F|Spouse|||32|3087 +3000|AR|Sebastian County|Barling city|585|0|3|Armstead|Vicky|2988|Virginia|F|Daughter|||12|3088 +3000|AR|Sebastian County|Barling city|585|0|4|Armstead|Harland|2990|Connecticut|M|Son|||10|3089 +3000|AR|Sebastian County|Barling city|585|0|5|Armstead|Rana Tracy|2992|Connecticut|F|Daughter|||8|3090 +3000|AR|Sebastian County|Barling city|585|0|6|Armstead|Stevie|2994|Connecticut|M|Son|||6|3091 +3000|AR|Sebastian County|Barling city|585|0|7|Armstead|Myriam|2998|Arkansas|F|Daughter|||2|3092 + +3000|SD|Minnehaha County|Baltic city|586|0|1|Jennifer|Hollis Weston|2950|Iowa|M|Head|||50|3093 +3000|SD|Minnehaha County|Baltic city|586|0|2|Jennifer|Chau|2969|West Virginia|F|Spouse|||31|3094 +3000|SD|Minnehaha County|Baltic city|586|0|3|Jennifer|Randolph|2991|Rhode Island|M|Son|||9|3095 +3000|SD|Minnehaha County|Baltic city|586|0|4|Jennifer|Kelvin Eugenio|2993|Iowa|M|Son|||7|3096 + +3000|MD|Carroll County|Union Bridge town|587|0|1|Heskett|Craig Vernon|2938|Oregon|M|Head|||62|3097 +3000|MD|Carroll County|Union Bridge town|587|0|2|Heskett|Mika|2959|Faroe Islands|F|Spouse|||41|3098 +3000|MD|Carroll County|Union Bridge town|587|0|3|Heskett|Sandee Nakita|2985|Maryland|F|Daughter|||15|3099 +3000|MD|Carroll County|Union Bridge town|587|0|4|Heskett|Alfred|2995|Iowa|M|Son|||5|3100 +3000|MD|Carroll County|Union Bridge town|587|0|5|Heskett|Francesco Ramon|2997|New Jersey|M|Son|||3|3101 + +3000|KY|Mason County|Dover city|588|0|1|Faustino|Traci|2956|New York|F|Head|||44|3102 +3000|KY|Mason County|Dover city|588|0|2|Faustino|Otto|2980|Kentucky|M|Son|||20|3103 +3000|KY|Mason County|Dover city|588|0|3|Faustino|Lorri|2986|Louisiana|F|Daughter|||14|3104 +3000|KY|Mason County|Dover city|588|0|4|Faustino|Norberto|2988|Maine|M|Son|||12|3105 +3000|KY|Mason County|Dover city|588|0|5|Faustino|Millard|2994|Iowa|M|Son|||6|3106 +3000|KY|Mason County|Dover city|588|0|6|Faustino|Cordell|2996|Alabama|M|Son|||4|3107 +3000|KY|Mason County|Dover city|588|0|7|Faustino|Serina|3000|Virginia|F|Daughter|||0|3108 + +3000|VA|Mathews County|Mathews CDP|589|0|1|Marcelle|Dorian Wayne|2979|Rhode Island|M|Head|||21|3109 + +3000|MN|Cass County|Cass Lake city|590|0|1|Hawbaker|Karl Kenneth|2946|Hawaii|M|Head|||54|3110 +3000|MN|Cass County|Cass Lake city|590|0|2|Hawbaker|Jody|2970|Falkland Islands (malvinas)|F|Spouse|||30|3111 +3000|MN|Cass County|Cass Lake city|590|0|3|Hawbaker|Lanny|2990|New Hampshire|M|Son|||10|3112 +3000|MN|Cass County|Cass Lake city|590|0|4|Hawbaker|Particia Tena|2992|California|F|Daughter|||8|3113 +3000|MN|Cass County|Cass Lake city|590|0|5|Hawbaker|Lorina|2998|California|F|Daughter|||2|3114 +3000|MN|Cass County|Cass Lake city|590|0|6|Hawbaker|Heide|3000|New York|F|Daughter|||0|3115 + +3000|WI|Richland County|Willow town|591|0|1|Armstrong|Kara|2958|Vermont|F|Head|||42|3116 +3000|WI|Richland County|Willow town|591|0|2|Armstrong|Tyree|2986|New Jersey|M|Son|||14|3117 +3000|WI|Richland County|Willow town|591|0|3|Armstrong|Jackson|2988|New York|M|Son|||12|3118 +3000|WI|Richland County|Willow town|591|0|4|Armstrong|Monet|2994|Wisconsin|F|Daughter|||6|3119 +3000|WI|Richland County|Willow town|591|0|5|Armstrong|Jessie|2996|Iowa|M|Son|||4|3120 + +3000|MI|Isabella County|Beal City CDP|592|0|1|Levinthal|Logan Donald|2968|Iowa|M|Head|||32|3121 +3000|MI|Isabella County|Beal City CDP|592|0|2|Levinthal|Charlie|2984|Delaware|F|Spouse|||16|3122 + +3000|OK|Dewey County|Vici town|593|0|1|Stclair|Eduardo Hassan|2949|Arizona|M|Head|||51|3123 +3000|OK|Dewey County|Vici town|593|0|2|Stclair|Lucienne|2972|Missouri|F|Spouse|||28|3124 +3000|OK|Dewey County|Vici town|593|0|3|Stclair|Svetlana Zoila|2992|Kansas|F|Daughter|||8|3125 +3000|OK|Dewey County|Vici town|593|0|4|Stclair|Terra Gary|2994|Wisconsin|F|Daughter|||6|3126 +3000|OK|Dewey County|Vici town|593|0|5|Stclair|Sidney|2996|Virginia|M|Son|||4|3127 + +3000|NM|Valencia County|Bosque Farms village|594|0|1|Harrell|Basil Miles|2962|Vermont|M|Head|||38|3128 +3000|NM|Valencia County|Bosque Farms village|594|0|2|Harrell|Kimiko|2978|Pennsylvania|F|Spouse|||22|3129 +3000|NM|Valencia County|Bosque Farms village|594|0|3|Harrell|Edmond|2998|Maryland|M|Son|||2|3130 +3000|NM|Valencia County|Bosque Farms village|594|0|4|Harrell|Jutta|3000|North Carolina|F|Daughter|||0|3131 + +3000|PA|Crawford County|Woodcock borough|595|0|1|Kunich|Elton|2962|New Mexico|M|Head|||38|3132 +3000|PA|Crawford County|Woodcock borough|595|0|2|Kunich|Lorretta|2967|Sudan|F|Spouse|||33|3133 +3000|PA|Crawford County|Woodcock borough|595|0|3|Kunich|Phuong|2991|California|F|Daughter|||9|3134 +3000|PA|Crawford County|Woodcock borough|595|0|4|Kunich|Burton|2995|Vermont|M|Son|||5|3135 + +3000|MI|Cass County|Volinia township|596|0|1|Wada|Kirk Claudio|2955|Portugal|M|Head|||45|3136 +3000|MI|Cass County|Volinia township|596|0|2|Wada|Isobel|2993|Florida|F|Daughter|||7|3137 +3000|MI|Cass County|Volinia township|596|0|3|Wada|Dakota|2995|South Dakota|F|Daughter|||5|3138 +3000|MI|Cass County|Volinia township|596|0|4|Wada|Margret|2999|Texas|F|Daughter|||1|3139 + +3000|IA|Linn County|Coggon city|597|0|1|Wiggins|Ian Aldo|2979|New Mexico|M|Head|||21|3140 +3000|IA|Linn County|Coggon city|597|0|2|Wiggins|Bong|2975|Oklahoma|F|Spouse|||25|3141 +3000|IA|Linn County|Coggon city|597|0|3|Wiggins|Tad|2995|New Jersey|M|Son|||5|3142 +3000|IA|Linn County|Coggon city|597|0|4|Wiggins|Austin|2997|Wyoming|M|Son|||3|3143 + +3000|IL|Cook County, Lake County|Palatine village|598|0|1|Speights|Ernest Lucien|2946|Nebraska|M|Head|||54|3144 +3000|IL|Cook County, Lake County|Palatine village|598|0|2|Speights|Janiece|2942|Washington|F|Spouse|||58|3145 +3000|IL|Cook County, Lake County|Palatine village|598|0|3|Speights|Julius Terry|2966|Ohio|M|Son|||34|3146 +3000|IL|Cook County, Lake County|Palatine village|598|0|4|Speights|Minna|2974|Arizona|F|Daughter|||26|3147 +3000|IL|Cook County, Lake County|Palatine village|598|0|5|Speights|Min Lillie|2980|Florida|F|Daughter|||20|3148 +3000|IL|Cook County, Lake County|Palatine village|598|0|6|Speights|Zelda Honey|2986|Maine|F|Daughter|||14|3149 +3000|IL|Cook County, Lake County|Palatine village|598|0|7|Speights|Kortney|2990|South Carolina|F|Daughter|||10|3150 +3000|IL|Cook County, Lake County|Palatine village|598|0|8|Speights|Shera|2994|Maryland|F|Daughter|||6|3151 +3000|IL|Cook County, Lake County|Palatine village|598|0|9|Speights|Scottie|2996|Aruba|M|Son|||4|3152 + +3000|FL|Polk County|Davenport city|599|0|1|Dunkle|Rocco Patrick|2941|Maine|M|Head|||59|3153 +3000|FL|Polk County|Davenport city|599|0|2|Dunkle|Suzann|2943|South Dakota|F|Spouse|||57|3154 +3000|FL|Polk County|Davenport city|599|0|3|Dunkle|Keith|2969|Rhode Island|M|Son|||31|3155 +3000|FL|Polk County|Davenport city|599|0|4|Dunkle|Malcolm|2989|West Virginia|M|Son|||11|3156 +3000|FL|Polk County|Davenport city|599|0|5|Dunkle|Andreas|2995|Nevada|M|Son|||5|3157 +3000|FL|Polk County|Davenport city|599|0|6|Dunkle|Eboni|2999|French Guiana|F|Daughter|||1|3158 + +3000|ND|Kidder County|Pettibone city|600|0|1|Treff|Louie Jared|2949|Alaska|M|Head|||51|3159 +3000|ND|Kidder County|Pettibone city|600|0|2|Treff|Shirlene|2973|Colorado|F|Spouse|||27|3160 +3000|ND|Kidder County|Pettibone city|600|0|3|Treff|Zachary|2993|Iowa|M|Son|||7|3161 +3000|ND|Kidder County|Pettibone city|600|0|4|Treff|Haywood|2995|Oklahoma|M|Son|||5|3162 +3000|ND|Kidder County|Pettibone city|600|0|5|Treff|Delphine|2997|South Carolina|F|Daughter|||3|3163 + +3000|IL|Montgomery County|Farmersville village|601|0|1|Rebelo|Efrain Peter|2969|Saint Helena|M|Head|||31|3164 +3000|IL|Montgomery County|Farmersville village|601|0|2|Rebelo|Sharla|2981|Delaware|F|Spouse|||19|3165 + +3000|MI|Livingston County|Brighton township|602|0|1|Wanzer|Ivory Robin|2955|Delaware|M|Head|||45|3166 +3000|MI|Livingston County|Brighton township|602|0|2|Wanzer|Julissa|2975|Arkansas|F|Spouse|||25|3167 +3000|MI|Livingston County|Brighton township|602|0|3|Wanzer|Maryellen|2997|Florida|F|Daughter|||3|3168 + +3000|PA|Erie County|Waterford borough|603|0|1|Agustine|Tracey Bryon|2950|Oklahoma|M|Head|||50|3169 +3000|PA|Erie County|Waterford borough|603|0|2|Agustine|Cyrstal|2968|Washington|F|Spouse|||32|3170 +3000|PA|Erie County|Waterford borough|603|0|3|Agustine|Krystle|2990|Maine|F|Daughter|||10|3171 +3000|PA|Erie County|Waterford borough|603|0|4|Agustine|Robt|2992|Arkansas|M|Son|||8|3172 +3000|PA|Erie County|Waterford borough|603|0|5|Agustine|Gaston|2994|Wisconsin|M|Son|||6|3173 + +3000|NJ|Bergen County|Wallington borough|604|0|1|Koschnitzki|Livia|2968|Ohio|F|Head|||32|3174 +3000|NJ|Bergen County|Wallington borough|604|0|2|Koschnitzki|Hellen|2990|South Dakota|F|Daughter|||10|3175 +3000|NJ|Bergen County|Wallington borough|604|0|3|Koschnitzki|Young Teena|2992|New Mexico|F|Daughter|||8|3176 +3000|NJ|Bergen County|Wallington borough|604|0|4|Koschnitzki|Ramon|3000|Montana|M|Son|||0|3177 + +3000|TX|Limestone County|Kosse town|605|0|1|Montegut|Kyle Wyatt|2968|Arizona|M|Head|||32|3178 +3000|TX|Limestone County|Kosse town|605|0|2|Montegut|Lottie|2982|Arkansas|F|Spouse|||18|3179 + +3000|PA|Clinton County|Dunnstown CDP|606|0|1|Komada|Shane|2965|Brunei Darussalam|M|Head|||35|3180 +3000|PA|Clinton County|Dunnstown CDP|606|0|2|Komada|Agatha|2993|Colorado|F|Daughter|||7|3181 +3000|PA|Clinton County|Dunnstown CDP|606|0|3|Komada|Gia|2995|Idaho|F|Daughter|||5|3182 +3000|PA|Clinton County|Dunnstown CDP|606|0|4|Komada|Leeanna Marlin|2999|Wyoming|F|Daughter|||1|3183 + +3000|NY|Delaware County|Roxbury town|607|0|1|Binkley|Millard|2941|France|M|Head|||59|3184 +3000|NY|Delaware County|Roxbury town|607|0|2|Binkley|Tonita|2953|Lao People's Democratic Republic|F|Spouse|||47|3185 +3000|NY|Delaware County|Roxbury town|607|0|3|Binkley|Genia|2977|Faroe Islands|F|Daughter|||23|3186 +3000|NY|Delaware County|Roxbury town|607|0|4|Binkley|Bradly|2983|Illinois|M|Son|||17|3187 +3000|NY|Delaware County|Roxbury town|607|0|5|Binkley|Dustin|2985|Delaware|M|Son|||15|3188 +3000|NY|Delaware County|Roxbury town|607|0|6|Binkley|Charles|2995|South Dakota|M|Son|||5|3189 +3000|NY|Delaware County|Roxbury town|607|0|7|Binkley|Roberto|2997|North Carolina|M|Son|||3|3190 +3000|NY|Delaware County|Roxbury town|607|0|8|Binkley|Margret|2999|Vermont|F|Daughter|||1|3191 + +3000|NH|Grafton County|Plymouth CDP|608|0|1|Ferrell|Jefferson Olen|2943|Illinois|M|Head|||57|3192 +3000|NH|Grafton County|Plymouth CDP|608|0|2|Ferrell|Dorthea|2953|Peru|F|Spouse|||47|3193 +3000|NH|Grafton County|Plymouth CDP|608|0|3|Ferrell|Ena|2989|Maine|F|Daughter|||11|3194 +3000|NH|Grafton County|Plymouth CDP|608|0|4|Ferrell|Velva|2991|Idaho|F|Daughter|||9|3195 +3000|NH|Grafton County|Plymouth CDP|608|0|5|Ferrell|Young|2993|New Mexico|M|Son|||7|3196 +3000|NH|Grafton County|Plymouth CDP|608|0|6|Ferrell|Coralie|2999|Bouvet Island|F|Daughter|||1|3197 + +3000|IA|Ringgold County|Sun Valley Lake CDP|609|0|1|Surita|Yong Cole|2954|Georgia|M|Head|||46|3198 +3000|IA|Ringgold County|Sun Valley Lake CDP|609|0|2|Surita|Lisabeth|2955|Rhode Island|F|Spouse|||45|3199 +3000|IA|Ringgold County|Sun Valley Lake CDP|609|0|3|Surita|Timothy|2975|Florida|M|Son|||25|3200 +3000|IA|Ringgold County|Sun Valley Lake CDP|609|0|4|Surita|Lindsy Wanita|2979|Louisiana|F|Daughter|||21|3201 +3000|IA|Ringgold County|Sun Valley Lake CDP|609|0|5|Surita|Mariko|2989|Michigan|F|Daughter|||11|3202 +3000|IA|Ringgold County|Sun Valley Lake CDP|609|0|6|Surita|Marian|2995|Ghana|F|Daughter|||5|3203 +3000|IA|Ringgold County|Sun Valley Lake CDP|609|0|7|Surita|Andre|2999|Armenia|M|Son|||1|3204 + +3000|MI|Leelanau County|Suttons Bay village|610|0|1|Delima|Olin Hobert|2981|Missouri|M|Head|||19|3205 +3000|MI|Leelanau County|Suttons Bay village|610|0|2|Delima|Nadia|2984|Afghanistan|F|Spouse|||16|3206 + +3000|WY|Sweetwater County|James Town CDP|611|0|1|Moore|Elmer|2964|Tennessee|M|Head|||36|3207 +3000|WY|Sweetwater County|James Town CDP|611|0|2|Moore|Jamika|2977|Oman|F|Spouse|||23|3208 +3000|WY|Sweetwater County|James Town CDP|611|0|3|Moore|Karl|2997|Idaho|M|Son|||3|3209 +3000|WY|Sweetwater County|James Town CDP|611|0|4|Moore|Kasie|2999|Saudi Arabia|F|Daughter|||1|3210 + +3000|OK|Cimarron County|Keyes town|612|0|1|Perey|Roderick Miles|2972|Colorado|M|Head|||28|3211 +3000|OK|Cimarron County|Keyes town|612|0|2|Perey|Angela|2970|Idaho|F|Spouse|||30|3212 +3000|OK|Cimarron County|Keyes town|612|0|3|Perey|Fatima|2990|San Marino|F|Daughter|||10|3213 +3000|OK|Cimarron County|Keyes town|612|0|4|Perey|Emile|2998|New York|M|Son|||2|3214 +3000|OK|Cimarron County|Keyes town|612|0|5|Perey|Angella|3000|Gibraltar|F|Daughter|||0|3215 + +3000|PA|Allegheny County|West Mifflin borough|613|0|1|Vining|Krystina|2954|North Carolina|F|Head|||46|3216 +3000|PA|Allegheny County|West Mifflin borough|613|0|2|Vining|Chadwick|2974|Washington|M|Son|||26|3217 +3000|PA|Allegheny County|West Mifflin borough|613|0|3|Vining|Juan|2986|Maine|M|Son|||14|3218 +3000|PA|Allegheny County|West Mifflin borough|613|0|4|Vining|Joel|2990|Idaho|F|Daughter|||10|3219 +3000|PA|Allegheny County|West Mifflin borough|613|0|5|Vining|Bradly|2992|Michigan|M|Son|||8|3220 +3000|PA|Allegheny County|West Mifflin borough|613|0|6|Vining|Erwin|2994|Idaho|M|Son|||6|3221 + +3000|AL|Blount County|Allgood town|614|0|1|Seeley|Kirstie|2969|Costa Rica|F|Head|||31|3222 +3000|AL|Blount County|Allgood town|614|0|2|Seeley|Oralia|2993|Massachusetts|F|Daughter|||7|3223 + +3000|MN|Todd County|West Union city|615|0|1|Jens|Britt Vicente|2978|Oregon|M|Head|||22|3224 +3000|MN|Todd County|West Union city|615|0|2|Jens|Kareen|2980|New Jersey|F|Spouse|||20|3225 +3000|MN|Todd County|West Union city|615|0|3|Jens|Albina|3000|West Virginia|F|Daughter|||0|3226 + +3000|WI|Door County|Egg Harbor town|616|0|1|Crisp|William Sol|2953|Oregon|M|Head|||47|3227 +3000|WI|Door County|Egg Harbor town|616|0|2|Crisp|Florine|2965|Maine|F|Spouse|||35|3228 +3000|WI|Door County|Egg Harbor town|616|0|3|Crisp|Rosalyn|2985|Montana|F|Daughter|||15|3229 +3000|WI|Door County|Egg Harbor town|616|0|4|Crisp|Karissa|2999|California|F|Daughter|||1|3230 + +3000|WA|King County|SeaTac city|617|0|1|Gookin|Tracey Ismael|2948|Illinois|M|Head|||52|3231 +3000|WA|King County|SeaTac city|617|0|2|Gookin|Trish|2949|New Hampshire|F|Spouse|||51|3232 +3000|WA|King County|SeaTac city|617|0|3|Gookin|Aubrey|2975|Georgia|M|Son|||25|3233 +3000|WA|King County|SeaTac city|617|0|4|Gookin|Gabriela|2977|Nevada|F|Daughter|||23|3234 +3000|WA|King County|SeaTac city|617|0|5|Gookin|Michel Nanci|2997|Utah|F|Daughter|||3|3235 +3000|WA|King County|SeaTac city|617|0|6|Gookin|Britany|2999|New Hampshire|F|Daughter|||1|3236 + +3000|WA|Clallam County|Forks city|618|0|1|Phillips|Tracey|2972|Idaho|F|Head|||28|3237 +3000|WA|Clallam County|Forks city|618|0|2|Phillips|Jeremiah|2994|Alabama|M|Son|||6|3238 +3000|WA|Clallam County|Forks city|618|0|3|Phillips|Brianne|2998|Netherlands Antilles|F|Daughter|||2|3239 + +3000|ND|Ramsey County|Devils Lake city|619|0|1|Reznicek|Darron Roosevelt|2943|Alabama|M|Head|||57|3240 +3000|ND|Ramsey County|Devils Lake city|619|0|2|Reznicek|Adaline|2961|Minnesota|F|Spouse|||39|3241 +3000|ND|Ramsey County|Devils Lake city|619|0|3|Reznicek|Britt|2989|Oklahoma|M|Son|||11|3242 +3000|ND|Ramsey County|Devils Lake city|619|0|4|Reznicek|Tracey|2991|Vermont|M|Son|||9|3243 +3000|ND|Ramsey County|Devils Lake city|619|0|5|Reznicek|Vella|2993|Norway|F|Daughter|||7|3244 +3000|ND|Ramsey County|Devils Lake city|619|0|6|Reznicek|Colton|2997|Hawaii|M|Son|||3|3245 + +3000|MD|Worcester County|Snow Hill town|620|0|1|Querry|Paul Bobby|2958|Romania|M|Head|||42|3246 + +3000|PA|Delaware County|Aldan borough|621|0|1|Kimmins|Leonel Winston|2937|Vermont|M|Head|||63|3247 +3000|PA|Delaware County|Aldan borough|621|0|2|Kimmins|Sherita|2937|West Virginia|F|Spouse|||63|3248 +3000|PA|Delaware County|Aldan borough|621|0|3|Kimmins|Ena|2959|Wisconsin|F|Daughter|||41|3249 +3000|PA|Delaware County|Aldan borough|621|0|4|Kimmins|Jordan|2961|Nevada|M|Son|||39|3250 +3000|PA|Delaware County|Aldan borough|621|0|5|Kimmins|Cristi Gena|2977|Alabama|F|Daughter|||23|3251 +3000|PA|Delaware County|Aldan borough|621|0|6|Kimmins|Merlyn|2987|Mauritania|F|Daughter|||13|3252 +3000|PA|Delaware County|Aldan borough|621|0|7|Kimmins|Phillip|2995|Colorado|M|Son|||5|3253 +3000|PA|Delaware County|Aldan borough|621|0|8|Kimmins|Thanh|2997|Louisiana|F|Daughter|||3|3254 + +3000|PA|Bucks County|Lower Makefield township|622|0|1|Taylor|Alfredo Arnold|2941|Michigan|M|Head|||59|3255 +3000|PA|Bucks County|Lower Makefield township|622|0|2|Taylor|Vania|2944|Utah|F|Spouse|||56|3256 +3000|PA|Bucks County|Lower Makefield township|622|0|3|Taylor|Geoffrey|2966|Utah|M|Son|||34|3257 +3000|PA|Bucks County|Lower Makefield township|622|0|4|Taylor|Kris|2968|Costa Rica|M|Son|||32|3258 +3000|PA|Bucks County|Lower Makefield township|622|0|5|Taylor|Abraham|2970|Hawaii|M|Son|||30|3259 +3000|PA|Bucks County|Lower Makefield township|622|0|6|Taylor|Jacob|2972|South Carolina|M|Son|||28|3260 +3000|PA|Bucks County|Lower Makefield township|622|0|7|Taylor|Alina|2976|Georgia|F|Daughter|||24|3261 +3000|PA|Bucks County|Lower Makefield township|622|0|8|Taylor|Cary|2988|United States Minor Outlying Islands|M|Son|||12|3262 +3000|PA|Bucks County|Lower Makefield township|622|0|9|Taylor|Heidy|2990|Uzbekistan|F|Daughter|||10|3263 + +3000|MN|Meeker County|Collinwood township|623|0|1|Brum|Mark Ron|2973|Michigan|M|Head|||27|3264 +3000|MN|Meeker County|Collinwood township|623|0|2|Brum|Alisha|2972|South Carolina|F|Spouse|||28|3265 +3000|MN|Meeker County|Collinwood township|623|0|3|Brum|Franklin|2992|Washington|M|Son|||8|3266 +3000|MN|Meeker County|Collinwood township|623|0|4|Brum|Domingo|2996|Kentucky|M|Son|||4|3267 +3000|MN|Meeker County|Collinwood township|623|0|5|Brum|Jacquetta|2998|California|F|Daughter|||2|3268 + +3000|IN|Hamilton County|Westfield town|624|0|1|Demarinis|Faustino Cornell|2976|West Virginia|M|Head|||24|3269 +3000|IN|Hamilton County|Westfield town|624|0|2|Demarinis|Evette|2983|Iowa|F|Spouse|||17|3270 + +3000|MN|Pine County|Henriette city|625|0|1|Norrie|Buck Avery|2960|Michigan|M|Head|||40|3271 +3000|MN|Pine County|Henriette city|625|0|2|Norrie|Yuk|2969|Delaware|F|Spouse|||31|3272 +3000|MN|Pine County|Henriette city|625|0|3|Norrie|Anibal|2989|Missouri|M|Son|||11|3273 +3000|MN|Pine County|Henriette city|625|0|4|Norrie|Myles|2991|Maryland|M|Son|||9|3274 +3000|MN|Pine County|Henriette city|625|0|5|Norrie|Tu|2993|Svalbard And Jan Mayen|F|Daughter|||7|3275 +3000|MN|Pine County|Henriette city|625|0|6|Norrie|Zachary|2995|Nebraska|M|Son|||5|3276 +3000|MN|Pine County|Henriette city|625|0|7|Norrie|Hung|2997|Eritrea|M|Son|||3|3277 +3000|MN|Pine County|Henriette city|625|0|8|Norrie|Cleora|2999|Missouri|F|Daughter|||1|3278 + +3000|NY|Orange County|Salisbury Mills CDP|626|0|1|Pena|Miles Barney|2957|Djibouti|M|Head|||43|3279 +3000|NY|Orange County|Salisbury Mills CDP|626|0|2|Pena|Corey|2969|Mississippi|F|Spouse|||31|3280 +3000|NY|Orange County|Salisbury Mills CDP|626|0|3|Pena|Mikki Marjory|2989|Alaska|F|Daughter|||11|3281 +3000|NY|Orange County|Salisbury Mills CDP|626|0|4|Pena|Louetta|2991|Alaska|F|Daughter|||9|3282 +3000|NY|Orange County|Salisbury Mills CDP|626|0|5|Pena|Lidia|2997|Malaysia|F|Daughter|||3|3283 + +3000|NC|Cherokee County|Andrews town|627|0|1|Alton|Cordell|2968|Georgia|M|Head|||32|3284 + +3000|WI|Dodge County|Hustisford village|628|0|1|Sprinkel|Orval|2980|Wyoming|M|Head|||20|3285 +3000|WI|Dodge County|Hustisford village|628|0|2|Sprinkel|Georgann Chante|2979|Washington|F|Spouse|||21|3286 +3000|WI|Dodge County|Hustisford village|628|0|3|Sprinkel|Betsey|2999|Moldova, Republic Of|F|Daughter|||1|3287 + +3000|NE|Morrill County|Bridgeport city|629|0|1|Gustovich|Kathi|2973|Delaware|F|Head|||27|3288 +3000|NE|Morrill County|Bridgeport city|629|0|2|Gustovich|Allan|2993|Maine|M|Son|||7|3289 +3000|NE|Morrill County|Bridgeport city|629|0|3|Gustovich|Marnie|2999|Georgia|F|Daughter|||1|3290 + +3000|NJ|Warren County|Lopatcong Overlook CDP|630|0|1|Tuttle|Cleveland Melvin|2945|Illinois|M|Head|||55|3291 +3000|NJ|Warren County|Lopatcong Overlook CDP|630|0|2|Tuttle|Raymon Alonso|2972|Thailand|M|Son|||28|3292 +3000|NJ|Warren County|Lopatcong Overlook CDP|630|0|3|Tuttle|Jeremiah|2980|Minnesota|M|Son|||20|3293 +3000|NJ|Warren County|Lopatcong Overlook CDP|630|0|4|Tuttle|Jamie Adolph|2986|Spain|M|Son|||14|3294 +3000|NJ|Warren County|Lopatcong Overlook CDP|630|0|5|Tuttle|Janice|2990|Michigan|F|Daughter|||10|3295 +3000|NJ|Warren County|Lopatcong Overlook CDP|630|0|6|Tuttle|Clayton|2994|Illinois|M|Son|||6|3296 +3000|NJ|Warren County|Lopatcong Overlook CDP|630|0|7|Tuttle|Henriette|2998|Kansas|F|Daughter|||2|3297 +3000|NJ|Warren County|Lopatcong Overlook CDP|630|0|8|Tuttle|Alix|3000|Indiana|F|Daughter|||0|3298 + +3000|KY|Jefferson County|Murray Hill city|631|0|1|Umberger|Earl Rudolf|2981|South Carolina|M|Head|||19|3299 +3000|KY|Jefferson County|Murray Hill city|631|0|2|Umberger|Li|2977|Vermont|F|Spouse|||23|3300 + +3000|MN|Washington County|Marine on St. Croix city|632|0|1|Tenen|Jeramy Guillermo|2977|Maryland|M|Head|||23|3301 +3000|MN|Washington County|Marine on St. Croix city|632|0|2|Tenen|Katharyn|2973|Arizona|F|Spouse|||27|3302 +3000|MN|Washington County|Marine on St. Croix city|632|0|3|Tenen|Wai Maritza|2997|Virginia|F|Daughter|||3|3303 + +3000|NH|Coos County|Low and Burbanks grant|633|0|1|Campagne|Felecia|2968|Wyoming|F|Head|||32|3304 +3000|NH|Coos County|Low and Burbanks grant|633|0|2|Campagne|Elliot|2990|Togo|M|Son|||10|3305 +3000|NH|Coos County|Low and Burbanks grant|633|0|3|Campagne|Stanley Tomas|2992|Alabama|M|Son|||8|3306 +3000|NH|Coos County|Low and Burbanks grant|633|0|4|Campagne|Myong|2994|Connecticut|F|Daughter|||6|3307 +3000|NH|Coos County|Low and Burbanks grant|633|0|5|Campagne|Joey|2996|Argentina|M|Son|||4|3308 +3000|NH|Coos County|Low and Burbanks grant|633|0|6|Campagne|Monty Mathew|3000|New Hampshire|M|Son|||0|3309 + +3000|MN|Carlton County|Thomson township|634|0|1|Abraham|Roman Wilbert|2950|Faroe Islands|M|Head|||50|3310 +3000|MN|Carlton County|Thomson township|634|0|2|Abraham|Anisa|2968|Arkansas|F|Spouse|||32|3311 +3000|MN|Carlton County|Thomson township|634|0|3|Abraham|Lizbeth|2988|Tennessee|F|Daughter|||12|3312 +3000|MN|Carlton County|Thomson township|634|0|4|Abraham|Krystina|2996|Alabama|F|Daughter|||4|3313 + +3000|CA|Calaveras County|Arnold CDP|635|0|1|Desporte|Pedro Rueben|2952|Kansas|M|Head|||48|3314 +3000|CA|Calaveras County|Arnold CDP|635|0|2|Desporte|Rolande|2972|Oklahoma|F|Spouse|||28|3315 +3000|CA|Calaveras County|Arnold CDP|635|0|3|Desporte|Jeanetta|2992|Wisconsin|F|Daughter|||8|3316 +3000|CA|Calaveras County|Arnold CDP|635|0|4|Desporte|Lynn|2994|Wisconsin|M|Son|||6|3317 +3000|CA|Calaveras County|Arnold CDP|635|0|5|Desporte|Thaddeus Jaime|2998|Guinea|M|Son|||2|3318 +3000|CA|Calaveras County|Arnold CDP|635|0|6|Desporte|Lyndsay|3000|Maine|F|Daughter|||0|3319 + +3000|WA|Skamania County|Carson CDP|636|0|1|Cline|Federico Tyler|2939|South Carolina|M|Head|||61|3320 +3000|WA|Skamania County|Carson CDP|636|0|2|Cline|Shanna|2945|New Mexico|F|Spouse|||55|3321 +3000|WA|Skamania County|Carson CDP|636|0|3|Cline|Tim|2965|Wisconsin|M|Son|||35|3322 +3000|WA|Skamania County|Carson CDP|636|0|4|Cline|Seymour|2971|Illinois|M|Son|||29|3323 +3000|WA|Skamania County|Carson CDP|636|0|5|Cline|Porfirio|2989|Georgia|M|Son|||11|3324 +3000|WA|Skamania County|Carson CDP|636|0|6|Cline|Jonas|2993|Senegal|M|Son|||7|3325 +3000|WA|Skamania County|Carson CDP|636|0|7|Cline|Annemarie|2995|Rhode Island|F|Daughter|||5|3326 +3000|WA|Skamania County|Carson CDP|636|0|8|Cline|Aline|2999|Arkansas|F|Daughter|||1|3327 + +3000|PA|Montgomery County|Schwenksville borough|637|0|1|Malandruccolo|Billie Stevie|2953|North Dakota|M|Head|||47|3328 +3000|PA|Montgomery County|Schwenksville borough|637|0|2|Malandruccolo|Marth|2949|Indiana|F|Spouse|||51|3329 +3000|PA|Montgomery County|Schwenksville borough|637|0|3|Malandruccolo|Bert|2969|South Carolina|M|Son|||31|3330 +3000|PA|Montgomery County|Schwenksville borough|637|0|4|Malandruccolo|Cindie|2971|Brunei Darussalam|F|Daughter|||29|3331 +3000|PA|Montgomery County|Schwenksville borough|637|0|5|Malandruccolo|Kati|2979|Arkansas|F|Daughter|||21|3332 +3000|PA|Montgomery County|Schwenksville borough|637|0|6|Malandruccolo|Erich Wilburn|2981|Kuwait|M|Son|||19|3333 +3000|PA|Montgomery County|Schwenksville borough|637|0|7|Malandruccolo|Jenna|2993|Minnesota|F|Daughter|||7|3334 +3000|PA|Montgomery County|Schwenksville borough|637|0|8|Malandruccolo|Myung Azzie|2995|Wisconsin|F|Daughter|||5|3335 +3000|PA|Montgomery County|Schwenksville borough|637|0|9|Malandruccolo|Dakota|2997|Nevada|F|Daughter|||3|3336 + +3000|UT|Salt Lake County|West Valley City city|638|0|1|Northcut|Stanton Jimmie|2951|Pennsylvania|M|Head|||49|3337 +3000|UT|Salt Lake County|West Valley City city|638|0|2|Northcut|Rhoda Ma|2959|Mississippi|F|Spouse|||41|3338 +3000|UT|Salt Lake County|West Valley City city|638|0|3|Northcut|Dia|2983|Arkansas|F|Daughter|||17|3339 +3000|UT|Salt Lake County|West Valley City city|638|0|4|Northcut|John Eldridge|2989|Illinois|M|Son|||11|3340 +3000|UT|Salt Lake County|West Valley City city|638|0|5|Northcut|Stacy|2991|Louisiana|M|Son|||9|3341 +3000|UT|Salt Lake County|West Valley City city|638|0|6|Northcut|Kathlene|2993|Pennsylvania|F|Daughter|||7|3342 +3000|UT|Salt Lake County|West Valley City city|638|0|7|Northcut|Granville Johnie|2997|Maryland|M|Son|||3|3343 +3000|UT|Salt Lake County|West Valley City city|638|0|8|Northcut|Kayleen Niesha|2999|Singapore|F|Daughter|||1|3344 + +3000|IA|Plymouth County|Kingsley city|639|0|1|Nanez|Hilton Chris|2940|Idaho|M|Head|||60|3345 +3000|IA|Plymouth County|Kingsley city|639|0|2|Nanez|Pennie Edythe|2985|California|F|Daughter|||15|3346 +3000|IA|Plymouth County|Kingsley city|639|0|3|Nanez|Cristobal|2987|China|M|Son|||13|3347 +3000|IA|Plymouth County|Kingsley city|639|0|4|Nanez|Moriah|2989|Montana|F|Daughter|||11|3348 +3000|IA|Plymouth County|Kingsley city|639|0|5|Nanez|Marlin|2993|Texas|M|Son|||7|3349 +3000|IA|Plymouth County|Kingsley city|639|0|6|Nanez|Maxie|2995|Florida|F|Daughter|||5|3350 +3000|IA|Plymouth County|Kingsley city|639|0|7|Nanez|Gordon|2997|Tennessee|M|Son|||3|3351 + +3000|DE|Sussex County|Selbyville town|640|0|1|Junkins|Anderson Garry|2953|Colorado|M|Head|||47|3352 +3000|DE|Sussex County|Selbyville town|640|0|2|Junkins|Shonna|2964|Nebraska|F|Spouse|||36|3353 +3000|DE|Sussex County|Selbyville town|640|0|3|Junkins|Elva|2986|Brunei Darussalam|F|Daughter|||14|3354 +3000|DE|Sussex County|Selbyville town|640|0|4|Junkins|Seth|2988|Mongolia|M|Son|||12|3355 +3000|DE|Sussex County|Selbyville town|640|0|5|Junkins|Thaddeus|2990|Nevada|M|Son|||10|3356 +3000|DE|Sussex County|Selbyville town|640|0|6|Junkins|Larry|3000|Maryland|M|Son|||0|3357 + +3000|MI|Marquette County|Republic township|641|0|1|Wooley|Gavin Oliver|2941|Hawaii|M|Head|||59|3358 +3000|MI|Marquette County|Republic township|641|0|2|Wooley|Kelley|2939|Kansas|F|Spouse|||61|3359 +3000|MI|Marquette County|Republic township|641|0|3|Wooley|Lanny|2959|Kentucky|M|Son|||41|3360 +3000|MI|Marquette County|Republic township|641|0|4|Wooley|Jeremiah|2967|Tanzania, United Republic Of|M|Son|||33|3361 +3000|MI|Marquette County|Republic township|641|0|5|Wooley|Nena|2985|New Jersey|F|Daughter|||15|3362 +3000|MI|Marquette County|Republic township|641|0|6|Wooley|Tyron|2987|Massachusetts|M|Son|||13|3363 +3000|MI|Marquette County|Republic township|641|0|7|Wooley|Sharonda|2989|Indiana|F|Daughter|||11|3364 +3000|MI|Marquette County|Republic township|641|0|8|Wooley|Erick|2991|Illinois|M|Son|||9|3365 + +3000|IL|Williamson County|Johnston City city|642|0|1|Padel|Gustavo Cary|2938|Vermont|M|Head|||62|3366 +3000|IL|Williamson County|Johnston City city|642|0|2|Padel|Mittie|2949|California|F|Spouse|||51|3367 +3000|IL|Williamson County|Johnston City city|642|0|3|Padel|Paris|2973|Kenya|F|Daughter|||27|3368 +3000|IL|Williamson County|Johnston City city|642|0|4|Padel|Joi|2991|New Jersey|F|Daughter|||9|3369 +3000|IL|Williamson County|Johnston City city|642|0|5|Padel|Temple|2993|New Mexico|F|Daughter|||7|3370 +3000|IL|Williamson County|Johnston City city|642|0|6|Padel|Gwendolyn|2995|Alabama|F|Daughter|||5|3371 + +3000|NH|Rockingham County|Atkinson town|643|0|1|Talmage|Percy Hayden|2976|Missouri|M|Head|||24|3372 +3000|NH|Rockingham County|Atkinson town|643|0|2|Talmage|Temeka|2978|South Dakota|F|Spouse|||22|3373 +3000|NH|Rockingham County|Atkinson town|643|0|3|Talmage|Delaine Raylene|2998|Swaziland|F|Daughter|||2|3374 + +3000|WA|Snohomish County|Silver Firs CDP|644|0|1|Chattin|Jacqui|2971|Utah|F|Head|||29|3375 +3000|WA|Snohomish County|Silver Firs CDP|644|0|2|Chattin|Theodora|2991|Minnesota|F|Daughter|||9|3376 +3000|WA|Snohomish County|Silver Firs CDP|644|0|3|Chattin|Hildegarde|2993|Hawaii|F|Daughter|||7|3377 +3000|WA|Snohomish County|Silver Firs CDP|644|0|4|Chattin|Sofia|2995|New York|F|Daughter|||5|3378 +3000|WA|Snohomish County|Silver Firs CDP|644|0|5|Chattin|Nadia|2999|North Dakota|F|Daughter|||1|3379 + +3000|UT|Juab County|Rocky Ridge town|645|0|1|Marlowe|Zelma|2967|Spain|F|Head|||33|3380 +3000|UT|Juab County|Rocky Ridge town|645|0|2|Marlowe|Dacia|2987|New Jersey|F|Daughter|||13|3381 +3000|UT|Juab County|Rocky Ridge town|645|0|3|Marlowe|Orville|2991|Rhode Island|M|Son|||9|3382 +3000|UT|Juab County|Rocky Ridge town|645|0|4|Marlowe|Rich|2993|Argentina|M|Son|||7|3383 + +3000|CO|Garfield County|No Name CDP|646|0|1|Knight|Hugh|2947|Missouri|M|Head|||53|3384 +3000|CO|Garfield County|No Name CDP|646|0|2|Knight|Lindsay Caitlin|2951|California|F|Spouse|||49|3385 +3000|CO|Garfield County|No Name CDP|646|0|3|Knight|Elliot|2981|North Carolina|M|Son|||19|3386 +3000|CO|Garfield County|No Name CDP|646|0|4|Knight|Shayne|2985|Wyoming|M|Son|||15|3387 +3000|CO|Garfield County|No Name CDP|646|0|5|Knight|Jaleesa Carolyn|2987|New Jersey|F|Daughter|||13|3388 +3000|CO|Garfield County|No Name CDP|646|0|6|Knight|Curtis|2989|Kansas|F|Daughter|||11|3389 +3000|CO|Garfield County|No Name CDP|646|0|7|Knight|Cedric|2993|Congo|M|Son|||7|3390 +3000|CO|Garfield County|No Name CDP|646|0|8|Knight|Isaiah|2995|Iowa|M|Son|||5|3391 +3000|CO|Garfield County|No Name CDP|646|0|9|Knight|Jim|2999|Arizona|M|Son|||1|3392 + +3000|AR|Sebastian County|Hackett city|647|0|1|Miller|Jeromy Erick|2948|Argentina|M|Head|||52|3393 +3000|AR|Sebastian County|Hackett city|647|0|2|Miller|Lean|2963|Virginia|F|Spouse|||37|3394 +3000|AR|Sebastian County|Hackett city|647|0|3|Miller|Wes|2987|Idaho|M|Son|||13|3395 +3000|AR|Sebastian County|Hackett city|647|0|4|Miller|Ross|2989|Arizona|M|Son|||11|3396 +3000|AR|Sebastian County|Hackett city|647|0|5|Miller|Rudolph|2993|Iowa|M|Son|||7|3397 +3000|AR|Sebastian County|Hackett city|647|0|6|Miller|Buster Gregg|2995|Ohio|M|Son|||5|3398 +3000|AR|Sebastian County|Hackett city|647|0|7|Miller|Larry|2999|Mississippi|M|Son|||1|3399 + +3000|TX|Bosque County|Laguna Park CDP|648|0|1|Zeherquist|Harry Colton|2970|Wyoming|M|Head|||30|3400 +3000|TX|Bosque County|Laguna Park CDP|648|0|2|Zeherquist|Mee Sheila|2984|South Carolina|F|Spouse|||16|3401 + +3000|MN|Freeborn County|Clarks Grove city|649|0|1|Mcbride|Johnny Tory|2937|Nevada|M|Head|||63|3402 +3000|MN|Freeborn County|Clarks Grove city|649|0|2|Mcbride|Eulalia|2956|Arkansas|F|Spouse|||44|3403 +3000|MN|Freeborn County|Clarks Grove city|649|0|3|Mcbride|Neville Dick|2984|Nevada|M|Son|||16|3404 +3000|MN|Freeborn County|Clarks Grove city|649|0|4|Mcbride|Jenice|2986|New York|F|Daughter|||14|3405 +3000|MN|Freeborn County|Clarks Grove city|649|0|5|Mcbride|Lajuana|2990|Oklahoma|F|Daughter|||10|3406 +3000|MN|Freeborn County|Clarks Grove city|649|0|6|Mcbride|Bridgett|2996|Florida|F|Daughter|||4|3407 +3000|MN|Freeborn County|Clarks Grove city|649|0|7|Mcbride|Hollis Timothy|2998|Nebraska|M|Son|||2|3408 +3000|MN|Freeborn County|Clarks Grove city|649|0|8|Mcbride|Melina|3000|Western Sahara|F|Daughter|||0|3409 + +3000|KS|Barton County|Olmitz city|650|0|1|Arroliga|Mandie|2946|Dominican Republic|F|Head|||54|3410 +3000|KS|Barton County|Olmitz city|650|0|2|Arroliga|Jeremy|2968|South Dakota|M|Son|||32|3411 +3000|KS|Barton County|Olmitz city|650|0|3|Arroliga|Gilbert Clement|2972|West Virginia|M|Son|||28|3412 +3000|KS|Barton County|Olmitz city|650|0|4|Arroliga|Normand|2994|Washington|M|Son|||6|3413 +3000|KS|Barton County|Olmitz city|650|0|5|Arroliga|Marc|2998|Australia|M|Son|||2|3414 +3000|KS|Barton County|Olmitz city|650|0|6|Arroliga|Hae|3000|Congo|F|Daughter|||0|3415 + +3000|TX|Starr County|Hilltop CDP|651|0|1|Goeken|Jordon Dane|2962|Liberia|M|Head|||38|3416 + +3000|WV|Fayette County, Nicholas County|Dixie CDP|652|0|1|Vasbinder|Esperanza|2977|Massachusetts|F|Head|||23|3417 +3000|WV|Fayette County, Nicholas County|Dixie CDP|652|0|2|Vasbinder|Glinda|2999|Maryland|F|Daughter|||1|3418 + +3000|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|1|Iorio|Trey Emory|2958|New Mexico|M|Head|||42|3419 +3000|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|2|Iorio|Neomi|2956|Wisconsin|F|Spouse|||44|3420 +3000|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|3|Iorio|Cassandra|2976|Montana|F|Daughter|||24|3421 +3000|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|4|Iorio|Cornell|2978|New York|M|Son|||22|3422 +3000|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|5|Iorio|Angie|2984|Connecticut|F|Daughter|||16|3423 +3000|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|6|Iorio|Brenton|2986|Nebraska|M|Son|||14|3424 +3000|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|7|Iorio|Barbar|2990|Fiji|F|Daughter|||10|3425 +3000|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|8|Iorio|Rana|2992|Arkansas|F|Daughter|||8|3426 +3000|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|9|Iorio|Yvone|2996|Illinois|F|Daughter|||4|3427 +3000|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|10|Iorio|Jannie|2998|Indiana|F|Daughter|||2|3428 +3000|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|11|Iorio|Jesenia|3000|Connecticut|F|Daughter|||0|3429 + +3000|NY|Columbia County|Greenport town|654|0|1|Smith|Laurence Gustavo|2963|Utah|M|Head|||37|3430 +3000|NY|Columbia County|Greenport town|654|0|2|Smith|Jodie|2964|Missouri|F|Spouse|||36|3431 +3000|NY|Columbia County|Greenport town|654|0|3|Smith|Nathanial|2984|Missouri|M|Son|||16|3432 +3000|NY|Columbia County|Greenport town|654|0|4|Smith|Crysta|2986|Louisiana|F|Daughter|||14|3433 +3000|NY|Columbia County|Greenport town|654|0|5|Smith|Kisha|2988|Kuwait|F|Daughter|||12|3434 +3000|NY|Columbia County|Greenport town|654|0|6|Smith|Ashlee|2990|Iran, Islamic Republic Of|F|Daughter|||10|3435 +3000|NY|Columbia County|Greenport town|654|0|7|Smith|Abdul|2992|South Carolina|M|Son|||8|3436 + +3000|OH|Warren County|Five Points CDP|655|0|1|Davis|Joan Gil|2941|Virginia|M|Head|||59|3437 +3000|OH|Warren County|Five Points CDP|655|0|2|Davis|Vickie Lenore|2977|South Dakota|F|Daughter|||23|3438 +3000|OH|Warren County|Five Points CDP|655|0|3|Davis|Ofelia|2985|Liberia|F|Daughter|||15|3439 +3000|OH|Warren County|Five Points CDP|655|0|4|Davis|Verlie|2987|Vermont|F|Daughter|||13|3440 +3000|OH|Warren County|Five Points CDP|655|0|5|Davis|Cordell Jeff|2993|Montana|M|Son|||7|3441 +3000|OH|Warren County|Five Points CDP|655|0|6|Davis|Abraham|2999|Indiana|M|Son|||1|3442 + +3000|NY|Ontario County|Richmond town|656|0|1|Varela|Athena|2981|Wyoming|F|Head|||19|3443 + +3000|KS|Osage County|Olivet city|657|0|1|Odom|Mauricio Ariel|2959|Poland|M|Head|||41|3444 +3000|KS|Osage County|Olivet city|657|0|2|Odom|Melvin|2984|Louisiana|M|Son|||16|3445 +3000|KS|Osage County|Olivet city|657|0|3|Odom|Jennell Soila|2986|Wallis And Futuna|F|Daughter|||14|3446 +3000|KS|Osage County|Olivet city|657|0|4|Odom|Tristan|2988|Maryland|M|Son|||12|3447 +3000|KS|Osage County|Olivet city|657|0|5|Odom|Valorie Son|2992|Kosovo|F|Daughter|||8|3448 +3000|KS|Osage County|Olivet city|657|0|6|Odom|Salvatore|2994|Iowa|M|Son|||6|3449 +3000|KS|Osage County|Olivet city|657|0|7|Odom|Myles|3000|Georgia|M|Son|||0|3450 + +3000|CA|Mendocino County|Comptche CDP|658|0|1|Mcafee|Isidro Rey|2956|Pennsylvania|M|Head|||44|3451 +3000|CA|Mendocino County|Comptche CDP|658|0|2|Mcafee|Roxy|2956|Montana|F|Spouse|||44|3452 +3000|CA|Mendocino County|Comptche CDP|658|0|3|Mcafee|Ezra|2986|Macau|M|Son|||14|3453 +3000|CA|Mendocino County|Comptche CDP|658|0|4|Mcafee|Kermit Dwain|2988|Colorado|M|Son|||12|3454 +3000|CA|Mendocino County|Comptche CDP|658|0|5|Mcafee|Luther|2990|Hawaii|M|Son|||10|3455 +3000|CA|Mendocino County|Comptche CDP|658|0|6|Mcafee|Mckinley|2994|Oregon|M|Son|||6|3456 +3000|CA|Mendocino County|Comptche CDP|658|0|7|Mcafee|Willie|2998|Utah|M|Son|||2|3457 +3000|CA|Mendocino County|Comptche CDP|658|0|8|Mcafee|May|3000|Oklahoma|F|Daughter|||0|3458 + +3000|LA|St. Tammany Parish|Abita Springs town|659|0|1|Roddey|Leroy Wes|2956|Alaska|M|Head|||44|3459 +3000|LA|St. Tammany Parish|Abita Springs town|659|0|2|Roddey|Delores|2962|New Hampshire|F|Spouse|||38|3460 +3000|LA|St. Tammany Parish|Abita Springs town|659|0|3|Roddey|Patrick|2986|Maryland|F|Daughter|||14|3461 +3000|LA|St. Tammany Parish|Abita Springs town|659|0|4|Roddey|Grace|2988|Oregon|F|Daughter|||12|3462 +3000|LA|St. Tammany Parish|Abita Springs town|659|0|5|Roddey|Georgene|2992|Arizona|F|Daughter|||8|3463 +3000|LA|St. Tammany Parish|Abita Springs town|659|0|6|Roddey|Harland Darwin|2994|Alaska|M|Son|||6|3464 +3000|LA|St. Tammany Parish|Abita Springs town|659|0|7|Roddey|Dahlia|2998|Kansas|F|Daughter|||2|3465 + +3000|WI|Wood County|Biron village|660|0|1|Steele|Ricky Delmar|2962|Illinois|M|Head|||38|3466 +3000|WI|Wood County|Biron village|660|0|2|Steele|Marth|2965|Wisconsin|F|Spouse|||35|3467 +3000|WI|Wood County|Biron village|660|0|3|Steele|Viva|2985|Georgia|F|Daughter|||15|3468 +3000|WI|Wood County|Biron village|660|0|4|Steele|Rosamaria|2987|Nepal|F|Daughter|||13|3469 +3000|WI|Wood County|Biron village|660|0|5|Steele|Beverlee|2989|Tennessee|F|Daughter|||11|3470 +3000|WI|Wood County|Biron village|660|0|6|Steele|Matt Chance|2991|Illinois|M|Son|||9|3471 +3000|WI|Wood County|Biron village|660|0|7|Steele|Latoya|2995|Missouri|F|Daughter|||5|3472 + +3000|OK|Oklahoma County|Edmond city|661|0|1|Inzano|Vaughn Gaston|2938|Florida|M|Head|||62|3473 +3000|OK|Oklahoma County|Edmond city|661|0|2|Inzano|Colette Katelyn|2961|Alabama|F|Spouse|||39|3474 +3000|OK|Oklahoma County|Edmond city|661|0|3|Inzano|Rosario|2985|Tokelau|M|Son|||15|3475 +3000|OK|Oklahoma County|Edmond city|661|0|4|Inzano|Georgette|2989|Oklahoma|F|Daughter|||11|3476 +3000|OK|Oklahoma County|Edmond city|661|0|5|Inzano|Shay|2993|Mongolia|F|Daughter|||7|3477 +3000|OK|Oklahoma County|Edmond city|661|0|6|Inzano|Wes|2997|Georgia|M|Son|||3|3478 +3000|OK|Oklahoma County|Edmond city|661|0|7|Inzano|Georgina|2999|Colorado|F|Daughter|||1|3479 + +3000|TN|Grundy County|Palmer town|662|0|1|Inguardsen|Stanley Rosario|2937|Colorado|M|Head|||63|3480 +3000|TN|Grundy County|Palmer town|662|0|2|Inguardsen|Azucena|2946|Georgia|F|Spouse|||54|3481 +3000|TN|Grundy County|Palmer town|662|0|3|Inguardsen|Tania Zona|2968|Arizona|F|Daughter|||32|3482 +3000|TN|Grundy County|Palmer town|662|0|4|Inguardsen|Simonne|2986|Cote D'ivoire|F|Daughter|||14|3483 +3000|TN|Grundy County|Palmer town|662|0|5|Inguardsen|Guillermo|2988|Nevada|M|Son|||12|3484 +3000|TN|Grundy County|Palmer town|662|0|6|Inguardsen|Clarence|2990|North Carolina|F|Daughter|||10|3485 +3000|TN|Grundy County|Palmer town|662|0|7|Inguardsen|Kenisha|2992|North Carolina|F|Daughter|||8|3486 +3000|TN|Grundy County|Palmer town|662|0|8|Inguardsen|Damon|2996|Indiana|M|Son|||4|3487 +3000|TN|Grundy County|Palmer town|662|0|9|Inguardsen|Myrna|3000|Florida|F|Daughter|||0|3488 + +3000|VA|Russell County, Wise County|St. Paul town|663|0|1|Stenn|Clemente Elton|2964|Hawaii|M|Head|||36|3489 +3000|VA|Russell County, Wise County|St. Paul town|663|0|2|Stenn|Diedre|2979|Maryland|F|Spouse|||21|3490 + +3000|NY|Jefferson County|Clayton town|664|0|1|Davis|Shad Hosea|2965|Panama|M|Head|||35|3491 +3000|NY|Jefferson County|Clayton town|664|0|2|Davis|Cleo|2982|Indiana|F|Spouse|||18|3492 + +3000|WI|Columbia County, Sauk County|Lake Wisconsin CDP|665|0|1|Anderson|Berry Spencer|2971|Trinidad And Tobago|M|Head|||29|3493 +3000|WI|Columbia County, Sauk County|Lake Wisconsin CDP|665|0|2|Anderson|Shaunda|2973|Colorado|F|Spouse|||27|3494 +3000|WI|Columbia County, Sauk County|Lake Wisconsin CDP|665|0|3|Anderson|Joann|2993|Monaco|F|Daughter|||7|3495 +3000|WI|Columbia County, Sauk County|Lake Wisconsin CDP|665|0|4|Anderson|Janeen|2995|Washington|F|Daughter|||5|3496 +3000|WI|Columbia County, Sauk County|Lake Wisconsin CDP|665|0|5|Anderson|Jazmine Cindy|2999|California|F|Daughter|||1|3497 + +3000|NC|Robeson County|Orrum town|666|0|1|Krejcik|Jason Edmund|2945|Utah|M|Head|||55|3498 +3000|NC|Robeson County|Orrum town|666|0|2|Krejcik|Lashaun|2967|Alaska|F|Spouse|||33|3499 +3000|NC|Robeson County|Orrum town|666|0|3|Krejcik|Ping|2989|Maryland|F|Daughter|||11|3500 +3000|NC|Robeson County|Orrum town|666|0|4|Krejcik|Bonita|2993|West Virginia|F|Daughter|||7|3501 +3000|NC|Robeson County|Orrum town|666|0|5|Krejcik|Hannelore Michiko|2997|Massachusetts|F|Daughter|||3|3502 + +3000|PA|Allegheny County|Mount Oliver borough|667|0|1|Faaita|Gaye|2956|Washington|F|Head|||44|3503 +3000|PA|Allegheny County|Mount Oliver borough|667|0|2|Faaita|Darron|2976|Solomon Islands|M|Son|||24|3504 +3000|PA|Allegheny County|Mount Oliver borough|667|0|3|Faaita|Norris|2982|Hawaii|M|Son|||18|3505 +3000|PA|Allegheny County|Mount Oliver borough|667|0|4|Faaita|Benito|2986|New Hampshire|M|Son|||14|3506 +3000|PA|Allegheny County|Mount Oliver borough|667|0|5|Faaita|Desmond|2988|Illinois|M|Son|||12|3507 +3000|PA|Allegheny County|Mount Oliver borough|667|0|6|Faaita|Milan|2990|Tennessee|M|Son|||10|3508 +3000|PA|Allegheny County|Mount Oliver borough|667|0|7|Faaita|Kizzie|2994|Iowa|F|Daughter|||6|3509 + +3000|WI|Rusk County|Conrath village|668|0|1|Scocca|Annika|2964|Nebraska|F|Head|||36|3510 +3000|WI|Rusk County|Conrath village|668|0|2|Scocca|Rico|2984|Samoa|M|Son|||16|3511 +3000|WI|Rusk County|Conrath village|668|0|3|Scocca|Krystina|2986|Kentucky|F|Daughter|||14|3512 +3000|WI|Rusk County|Conrath village|668|0|4|Scocca|Irena|2990|Swaziland|F|Daughter|||10|3513 +3000|WI|Rusk County|Conrath village|668|0|5|Scocca|Johnathan Louie|2992|Wyoming|M|Son|||8|3514 +3000|WI|Rusk County|Conrath village|668|0|6|Scocca|Antony|2996|Vermont|M|Son|||4|3515 +3000|WI|Rusk County|Conrath village|668|0|7|Scocca|Domenic|2998|Florida|M|Son|||2|3516 + +3000|TX|Cochran County|Whiteface town|669|0|1|Dennis|Barrett Marlin|2952|Montana|M|Head|||48|3517 +3000|TX|Cochran County|Whiteface town|669|0|2|Dennis|Katelynn|2962|Nevada|F|Spouse|||38|3518 +3000|TX|Cochran County|Whiteface town|669|0|3|Dennis|Long|2986|Illinois|M|Son|||14|3519 +3000|TX|Cochran County|Whiteface town|669|0|4|Dennis|Albert|2988|Michigan|M|Son|||12|3520 +3000|TX|Cochran County|Whiteface town|669|0|5|Dennis|Soon|2992|New Mexico|F|Daughter|||8|3521 +3000|TX|Cochran County|Whiteface town|669|0|6|Dennis|Pamila|2994|California|F|Daughter|||6|3522 +3000|TX|Cochran County|Whiteface town|669|0|7|Dennis|Zenia|2998|Alaska|F|Daughter|||2|3523 + +3000|WI|Portage County|Sharon town|670|0|1|Werma|Yulanda|2956|Chile|F|Head|||44|3524 +3000|WI|Portage County|Sharon town|670|0|2|Werma|Abdul|2990|Ohio|M|Son|||10|3525 +3000|WI|Portage County|Sharon town|670|0|3|Werma|Arnulfo|2994|Georgia|M|Son|||6|3526 +3000|WI|Portage County|Sharon town|670|0|4|Werma|Tran|2996|Tennessee|F|Daughter|||4|3527 + +3000|WI|Lincoln County|Tomahawk city|671|0|1|Roome|Rick Christopher|2965|Mississippi|M|Head|||35|3528 +3000|WI|Lincoln County|Tomahawk city|671|0|2|Roome|Leisha Kortney|2984|Kentucky|F|Spouse|||16|3529 + +3000|MN|Clay County|Baker CDP|672|0|1|Bertsche|Jeremiah Wilfred|2960|Alaska|M|Head|||40|3530 +3000|MN|Clay County|Baker CDP|672|0|2|Bertsche|Claude|2987|Rhode Island|M|Son|||13|3531 +3000|MN|Clay County|Baker CDP|672|0|3|Bertsche|Doyle|2989|Jamaica|M|Son|||11|3532 +3000|MN|Clay County|Baker CDP|672|0|4|Bertsche|Rodney|2991|Micronesia, Federated States Of|M|Son|||9|3533 +3000|MN|Clay County|Baker CDP|672|0|5|Bertsche|Enrique|2997|Libyan Arab Jamahiriya|M|Son|||3|3534 + +3000|MN|Aitkin County|Libby township|673|0|1|Hinkle|Jan Emilio|2960|Oklahoma|M|Head|||40|3535 +3000|MN|Aitkin County|Libby township|673|0|2|Hinkle|Amira|2981|Cambodia|F|Spouse|||19|3536 + +3000|CT|Tolland County|Rockville CDP|674|0|1|Buckett|Vern Deandre|2952|Georgia|M|Head|||48|3537 +3000|CT|Tolland County|Rockville CDP|674|0|2|Buckett|Eli|2978|Mississippi|M|Son|||22|3538 +3000|CT|Tolland County|Rockville CDP|674|0|3|Buckett|Owen|2980|Florida|M|Son|||20|3539 +3000|CT|Tolland County|Rockville CDP|674|0|4|Buckett|Exie|2992|Delaware|F|Daughter|||8|3540 +3000|CT|Tolland County|Rockville CDP|674|0|5|Buckett|Dane|2994|Burkina Faso|M|Son|||6|3541 +3000|CT|Tolland County|Rockville CDP|674|0|6|Buckett|Bennie|2998|Nebraska|F|Daughter|||2|3542 + +3000|MA|Plymouth County|Marshfield CDP|675|0|1|Rieff|Moshe Palmer|2964|Belgium|M|Head|||36|3543 +3000|MA|Plymouth County|Marshfield CDP|675|0|2|Rieff|Therese Vikki|2965|Congo|F|Spouse|||35|3544 +3000|MA|Plymouth County|Marshfield CDP|675|0|3|Rieff|Nora|2987|Greenland|F|Daughter|||13|3545 +3000|MA|Plymouth County|Marshfield CDP|675|0|4|Rieff|Carla|2991|Tennessee|F|Daughter|||9|3546 +3000|MA|Plymouth County|Marshfield CDP|675|0|5|Rieff|Lauren|2999|Maryland|M|Son|||1|3547 + +3000|TX|Duval County|Benavides city|676|0|1|Ridenour|Deon Reggie|2965|Wyoming|M|Head|||35|3548 +3000|TX|Duval County|Benavides city|676|0|2|Ridenour|Vivien|2973|California|F|Spouse|||27|3549 +3000|TX|Duval County|Benavides city|676|0|3|Ridenour|Michal|2993|Virginia|M|Son|||7|3550 +3000|TX|Duval County|Benavides city|676|0|4|Ridenour|Heide|2997|Washington|F|Daughter|||3|3551 + +3000|UT|Summit County|Samak CDP|677|0|1|Huber|Donny Sterling|2961|Missouri|M|Head|||39|3552 +3000|UT|Summit County|Samak CDP|677|0|2|Huber|Tara|2977|Wyoming|F|Spouse|||23|3553 + +3000|KS|Republic County|Courtland city|678|0|1|Mason|Jackson|2959|Texas|M|Head|||41|3554 +3000|KS|Republic County|Courtland city|678|0|2|Mason|Vanessa|2974|Arizona|F|Spouse|||26|3555 +3000|KS|Republic County|Courtland city|678|0|3|Mason|Willie|2994|San Marino|F|Daughter|||6|3556 +3000|KS|Republic County|Courtland city|678|0|4|Mason|Keith|2998|Washington|M|Son|||2|3557 + +3000|IA|Worth County|Northwood city|679|0|1|Levitz|Carter|2952|Missouri|M|Head|||48|3558 +3000|IA|Worth County|Northwood city|679|0|2|Levitz|Shila|2964|New Hampshire|F|Spouse|||36|3559 +3000|IA|Worth County|Northwood city|679|0|3|Levitz|Von|2986|Delaware|M|Son|||14|3560 +3000|IA|Worth County|Northwood city|679|0|4|Levitz|Wanetta|2990|Alaska|F|Daughter|||10|3561 +3000|IA|Worth County|Northwood city|679|0|5|Levitz|Sanford|2994|Washington|M|Son|||6|3562 +3000|IA|Worth County|Northwood city|679|0|6|Levitz|Tammie|2996|Moldova, Republic Of|F|Daughter|||4|3563 + +3000|VT|Orleans County|Orleans village|680|0|1|Carleton|Claude Louie|2946|Vermont|M|Head|||54|3564 +3000|VT|Orleans County|Orleans village|680|0|2|Carleton|Jude|2968|Massachusetts|M|Son|||32|3565 +3000|VT|Orleans County|Orleans village|680|0|3|Carleton|Brinda|2970|Montana|F|Daughter|||30|3566 +3000|VT|Orleans County|Orleans village|680|0|4|Carleton|Emely|2980|Suriname|F|Daughter|||20|3567 +3000|VT|Orleans County|Orleans village|680|0|5|Carleton|Armando|2984|Oklahoma|M|Son|||16|3568 +3000|VT|Orleans County|Orleans village|680|0|6|Carleton|Riva|2988|Russian Federation|F|Daughter|||12|3569 +3000|VT|Orleans County|Orleans village|680|0|7|Carleton|Hildegard|2992|Nevada|F|Daughter|||8|3570 +3000|VT|Orleans County|Orleans village|680|0|8|Carleton|Margrett|2994|North Carolina|F|Daughter|||6|3571 +3000|VT|Orleans County|Orleans village|680|0|9|Carleton|Hunter|2998|Delaware|M|Son|||2|3572 + +3000|IN|Hamilton County|Fishers town|681|0|1|Krah|Oren Felipe|2946|Ohio|M|Head|||54|3573 +3000|IN|Hamilton County|Fishers town|681|0|2|Krah|Britteny|2952|Suriname|F|Spouse|||48|3574 +3000|IN|Hamilton County|Fishers town|681|0|3|Krah|Tristan|2974|Missouri|M|Son|||26|3575 +3000|IN|Hamilton County|Fishers town|681|0|4|Krah|Hyo|2976|Nevada|F|Daughter|||24|3576 +3000|IN|Hamilton County|Fishers town|681|0|5|Krah|Senaida|2986|New Mexico|F|Daughter|||14|3577 +3000|IN|Hamilton County|Fishers town|681|0|6|Krah|Kiersten|2990|Texas|F|Daughter|||10|3578 +3000|IN|Hamilton County|Fishers town|681|0|7|Krah|Mariah|2992|Cuba|F|Daughter|||8|3579 +3000|IN|Hamilton County|Fishers town|681|0|8|Krah|Ivory|2996|Mississippi|M|Son|||4|3580 +3000|IN|Hamilton County|Fishers town|681|0|9|Krah|George|2998|South Carolina|M|Son|||2|3581 + +3000|NJ|Hunterdon County|Milford borough|682|0|1|Gallager|Clement Kennith|2953|Nevada|M|Head|||47|3582 +3000|NJ|Hunterdon County|Milford borough|682|0|2|Gallager|Madie|2968|Utah|F|Spouse|||32|3583 +3000|NJ|Hunterdon County|Milford borough|682|0|3|Gallager|Yang|2988|Macedonia, The Former Yugoslav Republic Of|F|Daughter|||12|3584 +3000|NJ|Hunterdon County|Milford borough|682|0|4|Gallager|Bud Vito|2992|Pennsylvania|M|Son|||8|3585 +3000|NJ|Hunterdon County|Milford borough|682|0|5|Gallager|Evie|2994|Iowa|F|Daughter|||6|3586 +3000|NJ|Hunterdon County|Milford borough|682|0|6|Gallager|Alexander Bruno|2996|Utah|M|Son|||4|3587 +3000|NJ|Hunterdon County|Milford borough|682|0|7|Gallager|Gilberto|2998|Hawaii|M|Son|||2|3588 +3000|NJ|Hunterdon County|Milford borough|682|0|8|Gallager|Allyn Therese|3000|Indiana|F|Daughter|||0|3589 + +3000|NM|McKinley County|Yah-ta-hey CDP|683|0|1|Sobol|Toshia|2966|Namibia|F|Head|||34|3590 +3000|NM|McKinley County|Yah-ta-hey CDP|683|0|2|Sobol|Keira|2986|Dominica|F|Daughter|||14|3591 +3000|NM|McKinley County|Yah-ta-hey CDP|683|0|3|Sobol|Lenard|2988|Virginia|M|Son|||12|3592 +3000|NM|McKinley County|Yah-ta-hey CDP|683|0|4|Sobol|Thomas|2990|Nebraska|F|Daughter|||10|3593 +3000|NM|McKinley County|Yah-ta-hey CDP|683|0|5|Sobol|Warner|2992|Nevada|M|Son|||8|3594 +3000|NM|McKinley County|Yah-ta-hey CDP|683|0|6|Sobol|Nannie|2994|Washington|F|Daughter|||6|3595 +3000|NM|McKinley County|Yah-ta-hey CDP|683|0|7|Sobol|Renato Ollie|2998|Kentucky|M|Son|||2|3596 +3000|NM|McKinley County|Yah-ta-hey CDP|683|0|8|Sobol|Cristopher|3000|Western Sahara|M|Son|||0|3597 + +3000|OH|Hamilton County|St. Bernard city|684|0|1|Molloy|Werner Waldo|2940|New York|M|Head|||60|3598 +3000|OH|Hamilton County|St. Bernard city|684|0|2|Molloy|Lael|2949|Iowa|F|Spouse|||51|3599 +3000|OH|Hamilton County|St. Bernard city|684|0|3|Molloy|Eldon|2975|Wisconsin|M|Son|||25|3600 +3000|OH|Hamilton County|St. Bernard city|684|0|4|Molloy|Georgeanna|2977|Hawaii|F|Daughter|||23|3601 +3000|OH|Hamilton County|St. Bernard city|684|0|5|Molloy|Caron|2979|Maryland|F|Daughter|||21|3602 +3000|OH|Hamilton County|St. Bernard city|684|0|6|Molloy|Ramon Blaine|2981|Utah|M|Son|||19|3603 +3000|OH|Hamilton County|St. Bernard city|684|0|7|Molloy|Marianela Brittney|2985|Haiti|F|Daughter|||15|3604 +3000|OH|Hamilton County|St. Bernard city|684|0|8|Molloy|Blondell|2987|South Carolina|F|Daughter|||13|3605 +3000|OH|Hamilton County|St. Bernard city|684|0|9|Molloy|Hollis|2989|Svalbard And Jan Mayen|M|Son|||11|3606 +3000|OH|Hamilton County|St. Bernard city|684|0|10|Molloy|Lynn|2995|Missouri|F|Daughter|||5|3607 + +3000|NE|Otoe County|Syracuse city|685|0|1|Gomez|Joseph Larry|2980|Vermont|M|Head|||20|3608 + +3000|KS|Rush County|Otis city|686|0|1|Goodwin|Garth Myron|2966|Texas|M|Head|||34|3609 +3000|KS|Rush County|Otis city|686|0|2|Goodwin|Kimberely|2982|Maryland|F|Spouse|||18|3610 + +3000|TX|DeWitt County, Lavaca County|Yoakum city|687|0|1|Smutnick|Eliseo Darell|2941|Maine|M|Head|||59|3611 +3000|TX|DeWitt County, Lavaca County|Yoakum city|687|0|2|Smutnick|Wilson|2974|Pennsylvania|M|Son|||26|3612 +3000|TX|DeWitt County, Lavaca County|Yoakum city|687|0|3|Smutnick|Bart|2986|North Carolina|M|Son|||14|3613 +3000|TX|DeWitt County, Lavaca County|Yoakum city|687|0|4|Smutnick|Davis|2992|British Indian Ocean Territory|M|Son|||8|3614 +3000|TX|DeWitt County, Lavaca County|Yoakum city|687|0|5|Smutnick|Nedra|3000|Tennessee|F|Daughter|||0|3615 + +3000|NH|Strafford County|Dover city|688|0|1|Baca|Arnulfo Casey|2941|Washington|M|Head|||59|3616 +3000|NH|Strafford County|Dover city|688|0|2|Baca|Ardelle|2948|Rhode Island|F|Spouse|||52|3617 +3000|NH|Strafford County|Dover city|688|0|3|Baca|Meggan|2970|Vermont|F|Daughter|||30|3618 +3000|NH|Strafford County|Dover city|688|0|4|Baca|Abdul|2980|New York|M|Son|||20|3619 +3000|NH|Strafford County|Dover city|688|0|5|Baca|Curtis|2986|Mississippi|M|Son|||14|3620 +3000|NH|Strafford County|Dover city|688|0|6|Baca|Carmelia|2990|Saint Lucia|F|Daughter|||10|3621 +3000|NH|Strafford County|Dover city|688|0|7|Baca|Bud|2998|Virginia|M|Son|||2|3622 + +3000|MN|Benton County, Morrison County|Royalton city|689|0|1|Zempel|Paris|2946|Maryland|M|Head|||54|3623 +3000|MN|Benton County, Morrison County|Royalton city|689|0|2|Zempel|Delila|2952|Arizona|F|Spouse|||48|3624 +3000|MN|Benton County, Morrison County|Royalton city|689|0|3|Zempel|Scottie|2980|French Southern Territories|F|Daughter|||20|3625 +3000|MN|Benton County, Morrison County|Royalton city|689|0|4|Zempel|Taylor|2986|Texas|F|Daughter|||14|3626 +3000|MN|Benton County, Morrison County|Royalton city|689|0|5|Zempel|Sang|2988|Idaho|M|Son|||12|3627 +3000|MN|Benton County, Morrison County|Royalton city|689|0|6|Zempel|Julieta Rossana|2992|New Jersey|F|Daughter|||8|3628 +3000|MN|Benton County, Morrison County|Royalton city|689|0|7|Zempel|Ernestine|2996|Saint Vincent And The Grenadines|F|Daughter|||4|3629 +3000|MN|Benton County, Morrison County|Royalton city|689|0|8|Zempel|Vicente|3000|Ohio|M|Son|||0|3630 + +3000|MN|Wright County|Annandale city|690|0|1|Clubs|Tommy Teddy|2953|Alabama|M|Head|||47|3631 +3000|MN|Wright County|Annandale city|690|0|2|Clubs|Terica|2957|Pennsylvania|F|Spouse|||43|3632 +3000|MN|Wright County|Annandale city|690|0|3|Clubs|Cleotilde|2977|Tennessee|F|Daughter|||23|3633 +3000|MN|Wright County|Annandale city|690|0|4|Clubs|Luigi|2987|Hawaii|M|Son|||13|3634 +3000|MN|Wright County|Annandale city|690|0|5|Clubs|Meridith|2989|Arkansas|F|Daughter|||11|3635 +3000|MN|Wright County|Annandale city|690|0|6|Clubs|Davis|2993|Minnesota|M|Son|||7|3636 +3000|MN|Wright County|Annandale city|690|0|7|Clubs|William|2995|New Mexico|M|Son|||5|3637 + +3000|GA|Heard County|Ephesus city|691|0|1|Peoples|Andrea|2950|Vermont|M|Head|||50|3638 +3000|GA|Heard County|Ephesus city|691|0|2|Peoples|Cythia|2994|Lithuania|F|Daughter|||6|3639 +3000|GA|Heard County|Ephesus city|691|0|3|Peoples|Millard|2996|Utah|M|Son|||4|3640 +3000|GA|Heard County|Ephesus city|691|0|4|Peoples|Shaunte|3000|South Dakota|F|Daughter|||0|3641 + +3000|GA|Fulton County|Johns Creek city|692|0|1|Bungo|Rodger Tristan|2950|Iowa|M|Head|||50|3642 +3000|GA|Fulton County|Johns Creek city|692|0|2|Bungo|Rhea|2995|Wyoming|F|Daughter|||5|3643 +3000|GA|Fulton County|Johns Creek city|692|0|3|Bungo|Sharika|2999|Bangladesh|F|Daughter|||1|3644 + +3000|PA|Sullivan County|Dushore borough|693|0|1|Allen|Buck Ezekiel|2944|Massachusetts|M|Head|||56|3645 +3000|PA|Sullivan County|Dushore borough|693|0|2|Allen|Dora|2962|Oregon|F|Spouse|||38|3646 +3000|PA|Sullivan County|Dushore borough|693|0|3|Allen|Judie|2982|Barbados|F|Daughter|||18|3647 +3000|PA|Sullivan County|Dushore borough|693|0|4|Allen|Magnolia|2988|Comoros|F|Daughter|||12|3648 +3000|PA|Sullivan County|Dushore borough|693|0|5|Allen|Jerrod|2992|Utah|M|Son|||8|3649 +3000|PA|Sullivan County|Dushore borough|693|0|6|Allen|Jacob|2994|Connecticut|M|Son|||6|3650 +3000|PA|Sullivan County|Dushore borough|693|0|7|Allen|Meggan Miyoko|2998|Missouri|F|Daughter|||2|3651 +3000|PA|Sullivan County|Dushore borough|693|0|8|Allen|Tereasa Cinthia|3000|Arkansas|F|Daughter|||0|3652 + +3000|WI|Wood County|Port Edwards village|694|0|1|Accornero|Jarrett|2954|New Jersey|M|Head|||46|3653 +3000|WI|Wood County|Port Edwards village|694|0|2|Accornero|Newton Alejandro|2989|South Dakota|M|Son|||11|3654 +3000|WI|Wood County|Port Edwards village|694|0|3|Accornero|Geralyn|2993|Wyoming|F|Daughter|||7|3655 +3000|WI|Wood County|Port Edwards village|694|0|4|Accornero|Barrett|2997|Tennessee|M|Son|||3|3656 + +3000|WI|Lafayette County|Monticello town|695|0|1|Moan|Abe Jeffery|2953|Nebraska|M|Head|||47|3657 +3000|WI|Lafayette County|Monticello town|695|0|2|Moan|Zelma|2959|Arkansas|F|Spouse|||41|3658 +3000|WI|Lafayette County|Monticello town|695|0|3|Moan|Clair|2985|Ethiopia|M|Son|||15|3659 +3000|WI|Lafayette County|Monticello town|695|0|4|Moan|Israel|2991|Arkansas|M|Son|||9|3660 +3000|WI|Lafayette County|Monticello town|695|0|5|Moan|Daryl|2993|Pennsylvania|F|Daughter|||7|3661 +3000|WI|Lafayette County|Monticello town|695|0|6|Moan|Willy|2995|Oregon|M|Son|||5|3662 +3000|WI|Lafayette County|Monticello town|695|0|7|Moan|Lucina|2997|Delaware|F|Daughter|||3|3663 +3000|WI|Lafayette County|Monticello town|695|0|8|Moan|Domenica|2999|Virginia|F|Daughter|||1|3664 + +3000|MN|Clay County|Georgetown township|696|0|1|Storton|Doloris|2974|Colorado|F|Head|||26|3665 +3000|MN|Clay County|Georgetown township|696|0|2|Storton|Chadwick|2994|Georgia|M|Son|||6|3666 +3000|MN|Clay County|Georgetown township|696|0|3|Storton|Mel|2998|Utah|M|Son|||2|3667 +3000|MN|Clay County|Georgetown township|696|0|4|Storton|Angel|3000|Togo|M|Son|||0|3668 + +3000|MI|Leelanau County|Leland CDP|697|0|1|Saltzberg|Truman Robt|2940|Iowa|M|Head|||60|3669 +3000|MI|Leelanau County|Leland CDP|697|0|2|Saltzberg|Brandon|2960|China|F|Spouse|||40|3670 +3000|MI|Leelanau County|Leland CDP|697|0|3|Saltzberg|Loan|2988|Wisconsin|F|Daughter|||12|3671 +3000|MI|Leelanau County|Leland CDP|697|0|4|Saltzberg|Lorrine|2990|New Mexico|F|Daughter|||10|3672 +3000|MI|Leelanau County|Leland CDP|697|0|5|Saltzberg|Leah|2996|Heard Island And Mcdonald Islands|F|Daughter|||4|3673 +3000|MI|Leelanau County|Leland CDP|697|0|6|Saltzberg|Lucien Ira|3000|New York|M|Son|||0|3674 + +3000|IA|Calhoun County|Lake City city|698|0|1|Reyes|Fernando Garrett|2951|Macedonia, The Former Yugoslav Republic Of|M|Head|||49|3675 +3000|IA|Calhoun County|Lake City city|698|0|2|Reyes|Jeffrey|2968|Pennsylvania|F|Spouse|||32|3676 +3000|IA|Calhoun County|Lake City city|698|0|3|Reyes|Chun|2988|Utah|F|Daughter|||12|3677 +3000|IA|Calhoun County|Lake City city|698|0|4|Reyes|Donnell|2992|Togo|M|Son|||8|3678 +3000|IA|Calhoun County|Lake City city|698|0|5|Reyes|Timmy|2994|Arkansas|M|Son|||6|3679 + +3000|TX|Shackelford County|Moran city|699|0|1|Renick|Dale Dale|2952|West Virginia|M|Head|||48|3680 +3000|TX|Shackelford County|Moran city|699|0|2|Renick|Carmina|2988|Alabama|F|Daughter|||12|3681 +3000|TX|Shackelford County|Moran city|699|0|3|Renick|Jerrod|2990|Utah|M|Son|||10|3682 +3000|TX|Shackelford County|Moran city|699|0|4|Renick|Faustino|2992|Colorado|M|Son|||8|3683 +3000|TX|Shackelford County|Moran city|699|0|5|Renick|Chia|2996|Mississippi|F|Daughter|||4|3684 +3000|TX|Shackelford County|Moran city|699|0|6|Renick|Florencia|2998|Idaho|F|Daughter|||2|3685 +3000|TX|Shackelford County|Moran city|699|0|7|Renick|Mose|3000|Kentucky|M|Son|||0|3686 + +3000|WV|Fayette County|Thurmond town|700|0|1|Apt|Cleveland Claudio|2959|Macau|M|Head|||41|3687 +3000|WV|Fayette County|Thurmond town|700|0|2|Apt|Melina Kenyetta|2985|Michigan|F|Daughter|||15|3688 +3000|WV|Fayette County|Thurmond town|700|0|3|Apt|Alex|2987|Nebraska|M|Son|||13|3689 +3000|WV|Fayette County|Thurmond town|700|0|4|Apt|Deneen|2991|Singapore|F|Daughter|||9|3690 +3000|WV|Fayette County|Thurmond town|700|0|5|Apt|Julio|2997|Indiana|M|Son|||3|3691 + +3000|MN|Kandiyohi County|Lake Lillian township|701|0|1|Watson|Jamey Cleo|2941|Idaho|M|Head|||59|3692 +3000|MN|Kandiyohi County|Lake Lillian township|701|0|2|Watson|Philomena|2958|Illinois|F|Spouse|||42|3693 +3000|MN|Kandiyohi County|Lake Lillian township|701|0|3|Watson|Vance|2988|China|M|Son|||12|3694 +3000|MN|Kandiyohi County|Lake Lillian township|701|0|4|Watson|Ismael Felipe|2990|Washington|M|Son|||10|3695 +3000|MN|Kandiyohi County|Lake Lillian township|701|0|5|Watson|Khalilah|2996|California|F|Daughter|||4|3696 +3000|MN|Kandiyohi County|Lake Lillian township|701|0|6|Watson|Fermin|2998|Tennessee|M|Son|||2|3697 +3000|MN|Kandiyohi County|Lake Lillian township|701|0|7|Watson|Cathleen|3000|New Jersey|F|Daughter|||0|3698 + +3000|MT|Jefferson County|Whitehall town|702|0|1|Berends|Darnell Winston|2957|Arkansas|M|Head|||43|3699 +3000|MT|Jefferson County|Whitehall town|702|0|2|Berends|Isabella|2963|Oregon|F|Spouse|||37|3700 +3000|MT|Jefferson County|Whitehall town|702|0|3|Berends|Herlinda|2987|Montana|F|Daughter|||13|3701 +3000|MT|Jefferson County|Whitehall town|702|0|4|Berends|Carrol|2991|Bahamas|M|Son|||9|3702 +3000|MT|Jefferson County|Whitehall town|702|0|5|Berends|Milo|2993|Colorado|M|Son|||7|3703 +3000|MT|Jefferson County|Whitehall town|702|0|6|Berends|Randell Brandon|2995|Portugal|M|Son|||5|3704 + +3000|WI|Calumet County|Chilton town|703|0|1|Hall|Mary Antione|2970|Louisiana|M|Head|||30|3705 +3000|WI|Calumet County|Chilton town|703|0|2|Hall|Dell|2993|Lithuania|F|Daughter|||7|3706 +3000|WI|Calumet County|Chilton town|703|0|3|Hall|Cortez|2999|West Virginia|M|Son|||1|3707 + +3000|PA|Blair County|Tyrone borough|704|0|1|Johnson|Jerrod Sebastian|2959|India|M|Head|||41|3708 +3000|PA|Blair County|Tyrone borough|704|0|2|Johnson|Janyce|2980|San Marino|F|Spouse|||20|3709 + +3000|AR|Lee County|Marianna city|705|0|1|Hoerr|Donnell Francisco|2942|Tokelau|M|Head|||58|3710 +3000|AR|Lee County|Marianna city|705|0|2|Hoerr|Bobbie Duane|2982|Oregon|M|Son|||18|3711 +3000|AR|Lee County|Marianna city|705|0|3|Hoerr|Letha|2986|Bosnia And Herzegovina|F|Daughter|||14|3712 +3000|AR|Lee County|Marianna city|705|0|4|Hoerr|Rudy|2996|Vermont|M|Son|||4|3713 + +3000|KS|Meade County|Meade city|706|0|1|Sundt|Paris|2948|Malaysia|M|Head|||52|3714 +3000|KS|Meade County|Meade city|706|0|2|Sundt|Carlota|2946|Papua New Guinea|F|Spouse|||54|3715 +3000|KS|Meade County|Meade city|706|0|3|Sundt|Eusebio|2972|Vermont|M|Son|||28|3716 +3000|KS|Meade County|Meade city|706|0|4|Sundt|Regine|2974|Indiana|F|Daughter|||26|3717 +3000|KS|Meade County|Meade city|706|0|5|Sundt|Reginia Eladia|2978|Maine|F|Daughter|||22|3718 +3000|KS|Meade County|Meade city|706|0|6|Sundt|Pat|2990|Nevada|M|Son|||10|3719 +3000|KS|Meade County|Meade city|706|0|7|Sundt|Darius Emmitt|2994|New Hampshire|M|Son|||6|3720 +3000|KS|Meade County|Meade city|706|0|8|Sundt|Felton|2996|Colorado|M|Son|||4|3721 + +3000|IL|LaSalle County|Grand Ridge village|707|0|1|Lachut|Jeffrey Hollis|2976|Venezuela|M|Head|||24|3722 +3000|IL|LaSalle County|Grand Ridge village|707|0|2|Lachut|Darcey|2984|Mississippi|F|Spouse|||16|3723 + +3000|LA|East Baton Rouge Parish|Gardere CDP|708|0|1|Buhler|Demetrius Shayne|2955|South Carolina|M|Head|||45|3724 +3000|LA|East Baton Rouge Parish|Gardere CDP|708|0|2|Buhler|Araceli|2972|Vermont|F|Spouse|||28|3725 +3000|LA|East Baton Rouge Parish|Gardere CDP|708|0|3|Buhler|Nicholle|3000|Oklahoma|F|Daughter|||0|3726 + +3000|VT|Addison County|Leicester town|709|0|1|Camaron|Cathrine|2970|Indiana|F|Head|||30|3727 +3000|VT|Addison County|Leicester town|709|0|2|Camaron|Felisha Towanda|2990|Michigan|F|Daughter|||10|3728 +3000|VT|Addison County|Leicester town|709|0|3|Camaron|Isobel|2994|Georgia|F|Daughter|||6|3729 + +3000|PA|Butler County|Worth township|710|0|1|Retterbush|Danial Jere|2964|Wyoming|M|Head|||36|3730 +3000|PA|Butler County|Worth township|710|0|2|Retterbush|Lavera Megan|2979|Reunion|F|Spouse|||21|3731 + +3000|MN|Big Stone County|Graceville city|711|0|1|Ziadie|David Vito|2966|Florida|M|Head|||34|3732 +3000|MN|Big Stone County|Graceville city|711|0|2|Ziadie|Jacquelin|2962|Michigan|F|Spouse|||38|3733 +3000|MN|Big Stone County|Graceville city|711|0|3|Ziadie|Walter|2984|Indiana|M|Son|||16|3734 +3000|MN|Big Stone County|Graceville city|711|0|4|Ziadie|Ethan|2986|Alaska|M|Son|||14|3735 +3000|MN|Big Stone County|Graceville city|711|0|5|Ziadie|Arica|2990|Nevada|F|Daughter|||10|3736 +3000|MN|Big Stone County|Graceville city|711|0|6|Ziadie|Shaquana|2992|Alabama|F|Daughter|||8|3737 +3000|MN|Big Stone County|Graceville city|711|0|7|Ziadie|Tamie|2994|Pennsylvania|F|Daughter|||6|3738 +3000|MN|Big Stone County|Graceville city|711|0|8|Ziadie|Buster Eugene|2996|Sudan|M|Son|||4|3739 +3000|MN|Big Stone County|Graceville city|711|0|9|Ziadie|Rolf|2998|Nevada|M|Son|||2|3740 +3000|MN|Big Stone County|Graceville city|711|0|10|Ziadie|Ezra|3000|Somalia|M|Son|||0|3741 + +3000|MN|Brown County|Hanska city|712|0|1|Jones|Arthur Fredric|2967|Maine|M|Head|||33|3742 +3000|MN|Brown County|Hanska city|712|0|2|Jones|Justine|2965|Rhode Island|F|Spouse|||35|3743 +3000|MN|Brown County|Hanska city|712|0|3|Jones|Rickey|2985|Mayotte|M|Son|||15|3744 +3000|MN|Brown County|Hanska city|712|0|4|Jones|Rory|2987|Oklahoma|M|Son|||13|3745 +3000|MN|Brown County|Hanska city|712|0|5|Jones|Palmer|2995|North Dakota|M|Son|||5|3746 +3000|MN|Brown County|Hanska city|712|0|6|Jones|Cole Devon|2997|South Carolina|M|Son|||3|3747 +3000|MN|Brown County|Hanska city|712|0|7|Jones|Enola|2999|Arizona|F|Daughter|||1|3748 + +3000|GA|Jackson County|Talmo town|713|0|1|Carr|Retha|2950|Kansas|F|Head|||50|3749 +3000|GA|Jackson County|Talmo town|713|0|2|Carr|Emerson|2972|South Carolina|M|Son|||28|3750 +3000|GA|Jackson County|Talmo town|713|0|3|Carr|Lester|2978|Colorado|M|Son|||22|3751 +3000|GA|Jackson County|Talmo town|713|0|4|Carr|Enda|2992|Kentucky|F|Daughter|||8|3752 +3000|GA|Jackson County|Talmo town|713|0|5|Carr|Beau|2994|Pennsylvania|M|Son|||6|3753 +3000|GA|Jackson County|Talmo town|713|0|6|Carr|Jenifer Meggan|3000|Utah|F|Daughter|||0|3754 + +3000|MN|Wilkin County|Breckenridge city|714|0|1|Born|Lucio Bryce|2938|Nevada|M|Head|||62|3755 +3000|MN|Wilkin County|Breckenridge city|714|0|2|Born|Oleta|2962|Indiana|F|Spouse|||38|3756 +3000|MN|Wilkin County|Breckenridge city|714|0|3|Born|Abram|2986|Greece|M|Son|||14|3757 +3000|MN|Wilkin County|Breckenridge city|714|0|4|Born|Wilford|2988|Kentucky|M|Son|||12|3758 +3000|MN|Wilkin County|Breckenridge city|714|0|5|Born|Gavin|2990|Mississippi|M|Son|||10|3759 +3000|MN|Wilkin County|Breckenridge city|714|0|6|Born|Nisha|2996|Michigan|F|Daughter|||4|3760 +3000|MN|Wilkin County|Breckenridge city|714|0|7|Born|Jerrod|3000|Saint Kitts And Nevis|M|Son|||0|3761 + +3000|PA|Lancaster County|Salunga CDP|715|0|1|Camisa|Nigel Pasquale|2946|Idaho|M|Head|||54|3762 +3000|PA|Lancaster County|Salunga CDP|715|0|2|Camisa|Carrol|2983|Massachusetts|F|Daughter|||17|3763 +3000|PA|Lancaster County|Salunga CDP|715|0|3|Camisa|Melany|2987|Vermont|F|Daughter|||13|3764 +3000|PA|Lancaster County|Salunga CDP|715|0|4|Camisa|Fletcher Lino|2991|West Virginia|M|Son|||9|3765 +3000|PA|Lancaster County|Salunga CDP|715|0|5|Camisa|Sherwood|2995|Oklahoma|M|Son|||5|3766 +3000|PA|Lancaster County|Salunga CDP|715|0|6|Camisa|Moira|2999|South Dakota|F|Daughter|||1|3767 + +3000|PA|Bucks County|Richland township|716|0|1|Dann|Lamont Leopoldo|2953|Hawaii|M|Head|||47|3768 +3000|PA|Bucks County|Richland township|716|0|2|Dann|Cathrine|2971|Nepal|F|Spouse|||29|3769 +3000|PA|Bucks County|Richland township|716|0|3|Dann|Ann|2997|North Dakota|F|Daughter|||3|3770 +3000|PA|Bucks County|Richland township|716|0|4|Dann|Jenniffer|2999|Missouri|F|Daughter|||1|3771 + +3000|SD|Turner County|Viborg city|717|0|1|Salzar|Vincent|2953|New Mexico|M|Head|||47|3772 +3000|SD|Turner County|Viborg city|717|0|2|Salzar|Nila|2972|Ohio|F|Daughter|||28|3773 +3000|SD|Turner County|Viborg city|717|0|3|Salzar|Stasia|2980|Utah|F|Daughter|||20|3774 +3000|SD|Turner County|Viborg city|717|0|4|Salzar|Joe|2984|Iraq|M|Son|||16|3775 +3000|SD|Turner County|Viborg city|717|0|5|Salzar|Teresa|2986|France|F|Daughter|||14|3776 +3000|SD|Turner County|Viborg city|717|0|6|Salzar|Don|2992|West Virginia|M|Son|||8|3777 +3000|SD|Turner County|Viborg city|717|0|7|Salzar|Chanell|2996|Colorado|F|Daughter|||4|3778 +3000|SD|Turner County|Viborg city|717|0|8|Salzar|Millie|2998|Colorado|F|Daughter|||2|3779 + +3000|MN|Clay County|Hitterdal city|718|0|1|Pardi|Ashly|2965|Gibraltar|F|Head|||35|3780 +3000|MN|Clay County|Hitterdal city|718|0|2|Pardi|Florence|2991|California|F|Daughter|||9|3781 +3000|MN|Clay County|Hitterdal city|718|0|3|Pardi|Abram|2993|Delaware|M|Son|||7|3782 +3000|MN|Clay County|Hitterdal city|718|0|4|Pardi|Milissa|2997|Oklahoma|F|Daughter|||3|3783 +3000|MN|Clay County|Hitterdal city|718|0|5|Pardi|Bryant|2999|Massachusetts|M|Son|||1|3784 + +3000|MI|Lapeer County|Attica township|719|0|1|Rios|Sean Whitney|2953|Indiana|M|Head|||47|3785 +3000|MI|Lapeer County|Attica township|719|0|2|Rios|Ernest Darwin|2988|California|M|Son|||12|3786 +3000|MI|Lapeer County|Attica township|719|0|3|Rios|Genaro|2990|Turks And Caicos Islands|M|Son|||10|3787 +3000|MI|Lapeer County|Attica township|719|0|4|Rios|Latonya|2996|Sierra Leone|F|Daughter|||4|3788 + +3000|WV|Pendleton County|Brandywine CDP|720|0|1|Hauk|Doug Ken|2974|Michigan|M|Head|||26|3789 +3000|WV|Pendleton County|Brandywine CDP|720|0|2|Hauk|Pauline|2979|Tennessee|F|Spouse|||21|3790 +3000|WV|Pendleton County|Brandywine CDP|720|0|3|Hauk|Kevin|2999|Virginia|M|Son|||1|3791 + +3000|WV|Kanawha County|Marmet city|721|0|1|Wingerson|Gil Sam|2937|Mississippi|M|Head|||63|3792 +3000|WV|Kanawha County|Marmet city|721|0|2|Wingerson|Vaughn|2962|Oklahoma|M|Son|||38|3793 +3000|WV|Kanawha County|Marmet city|721|0|3|Wingerson|Vikki|2968|Honduras|F|Daughter|||32|3794 +3000|WV|Kanawha County|Marmet city|721|0|4|Wingerson|Kai|2976|Sierra Leone|F|Daughter|||24|3795 +3000|WV|Kanawha County|Marmet city|721|0|5|Wingerson|Bruno|2984|Connecticut|M|Son|||16|3796 +3000|WV|Kanawha County|Marmet city|721|0|6|Wingerson|Magdalene|2996|Minnesota|F|Daughter|||4|3797 + +3000|MN|Waseca County|New Richland city|722|0|1|Nicklas|Hilton Santiago|2966|Minnesota|M|Head|||34|3798 +3000|MN|Waseca County|New Richland city|722|0|2|Nicklas|Diann|2979|Hawaii|F|Spouse|||21|3799 +3000|MN|Waseca County|New Richland city|722|0|3|Nicklas|Ayanna|2999|California|F|Daughter|||1|3800 + +3000|PA|Carbon County|Jim Thorpe borough|723|0|1|Boshard|Garfield Avery|2941|Maine|M|Head|||59|3801 +3000|PA|Carbon County|Jim Thorpe borough|723|0|2|Boshard|Madalyn|2943|French Guiana|F|Spouse|||57|3802 +3000|PA|Carbon County|Jim Thorpe borough|723|0|3|Boshard|Whitley|2967|Montana|F|Daughter|||33|3803 +3000|PA|Carbon County|Jim Thorpe borough|723|0|4|Boshard|Carin|2985|Kentucky|F|Daughter|||15|3804 +3000|PA|Carbon County|Jim Thorpe borough|723|0|5|Boshard|Stanford|2993|Mississippi|M|Son|||7|3805 +3000|PA|Carbon County|Jim Thorpe borough|723|0|6|Boshard|Loretta|2995|Delaware|F|Daughter|||5|3806 +3000|PA|Carbon County|Jim Thorpe borough|723|0|7|Boshard|Ethelyn|2997|Korea, Democratic People's Republic Of|F|Daughter|||3|3807 +3000|PA|Carbon County|Jim Thorpe borough|723|0|8|Boshard|Man|2999|Delaware|M|Son|||1|3808 + +3000|NY|Ontario County|East Bloomfield town|724|0|1|Mercer|Robt Clemente|2943|Michigan|M|Head|||57|3809 +3000|NY|Ontario County|East Bloomfield town|724|0|2|Mercer|Chung|2963|Massachusetts|F|Spouse|||37|3810 +3000|NY|Ontario County|East Bloomfield town|724|0|3|Mercer|Shanae|2983|South Carolina|F|Daughter|||17|3811 +3000|NY|Ontario County|East Bloomfield town|724|0|4|Mercer|Georgeanna|2985|New Hampshire|F|Daughter|||15|3812 +3000|NY|Ontario County|East Bloomfield town|724|0|5|Mercer|Edna|2995|Alaska|F|Daughter|||5|3813 +3000|NY|Ontario County|East Bloomfield town|724|0|6|Mercer|Melisa|2997|Oklahoma|F|Daughter|||3|3814 +3000|NY|Ontario County|East Bloomfield town|724|0|7|Mercer|Maira|2999|Texas|F|Daughter|||1|3815 + +3000|TN|Cocke County|Parrottsville town|725|0|1|Burns|Lee Moses|2949|Michigan|M|Head|||51|3816 +3000|TN|Cocke County|Parrottsville town|725|0|2|Burns|Shonta|2973|Michigan|F|Spouse|||27|3817 + +3000|IL|Champaign County|Urbana city|726|0|1|Rhoderick|Vincent Nelson|2979|Wyoming|M|Head|||21|3818 +3000|IL|Champaign County|Urbana city|726|0|2|Rhoderick|Krista Cleopatra|2980|North Dakota|F|Spouse|||20|3819 +3000|IL|Champaign County|Urbana city|726|0|3|Rhoderick|Jaclyn|3000|Trinidad And Tobago|F|Daughter|||0|3820 + +3000|PA|Blair County|North Woodbury township|727|0|1|Caffey|Morris Solomon|2951|Saint Pierre And Miquelon|M|Head|||49|3821 +3000|PA|Blair County|North Woodbury township|727|0|2|Caffey|Cayla|2954|Texas|F|Spouse|||46|3822 +3000|PA|Blair County|North Woodbury township|727|0|3|Caffey|Bob Jean|2978|Virginia|M|Son|||22|3823 +3000|PA|Blair County|North Woodbury township|727|0|4|Caffey|Hong|2982|Texas|M|Son|||18|3824 +3000|PA|Blair County|North Woodbury township|727|0|5|Caffey|Buddy|2986|Sierra Leone|M|Son|||14|3825 +3000|PA|Blair County|North Woodbury township|727|0|6|Caffey|Chantal Taisha|2990|Vermont|F|Daughter|||10|3826 +3000|PA|Blair County|North Woodbury township|727|0|7|Caffey|Eldridge Nathanael|2992|New Jersey|M|Son|||8|3827 +3000|PA|Blair County|North Woodbury township|727|0|8|Caffey|Kristofer|2998|Wyoming|M|Son|||2|3828 + +3000|AK|Bethel Census Area|Akiachak CDP|728|0|1|Jett|Russel|2949|Pennsylvania|M|Head|||51|3829 +3000|AK|Bethel Census Area|Akiachak CDP|728|0|2|Jett|Rosamond|2955|Louisiana|F|Spouse|||45|3830 +3000|AK|Bethel Census Area|Akiachak CDP|728|0|3|Jett|Keven|2983|South Carolina|M|Son|||17|3831 +3000|AK|Bethel Census Area|Akiachak CDP|728|0|4|Jett|Tynisha|2985|Oregon|F|Daughter|||15|3832 +3000|AK|Bethel Census Area|Akiachak CDP|728|0|5|Jett|Benito|2987|Georgia|M|Son|||13|3833 +3000|AK|Bethel Census Area|Akiachak CDP|728|0|6|Jett|Xavier|2989|Nevada|M|Son|||11|3834 +3000|AK|Bethel Census Area|Akiachak CDP|728|0|7|Jett|Ronni|2991|South Carolina|F|Daughter|||9|3835 +3000|AK|Bethel Census Area|Akiachak CDP|728|0|8|Jett|Marguerite|2995|Iowa|F|Daughter|||5|3836 + +3000|NV|Lyon County|Silver Springs CDP|729|0|1|Sandoval|Yong Kermit|2958|France|M|Head|||42|3837 +3000|NV|Lyon County|Silver Springs CDP|729|0|2|Sandoval|Creola|2966|North Carolina|F|Spouse|||34|3838 +3000|NV|Lyon County|Silver Springs CDP|729|0|3|Sandoval|Oswaldo|2988|Idaho|M|Son|||12|3839 +3000|NV|Lyon County|Silver Springs CDP|729|0|4|Sandoval|Louise|2990|Maine|F|Daughter|||10|3840 +3000|NV|Lyon County|Silver Springs CDP|729|0|5|Sandoval|Sonya|2996|Bangladesh|F|Daughter|||4|3841 + +3000|MN|Lake of the Woods County|Spooner township|730|0|1|Carlin|Kerry Ed|2946|Texas|M|Head|||54|3842 +3000|MN|Lake of the Woods County|Spooner township|730|0|2|Carlin|Tonya|2985|Montana|F|Daughter|||15|3843 +3000|MN|Lake of the Woods County|Spooner township|730|0|3|Carlin|Mitchel|2987|Wyoming|M|Son|||13|3844 +3000|MN|Lake of the Woods County|Spooner township|730|0|4|Carlin|Eden|2989|Norfolk Island|F|Daughter|||11|3845 +3000|MN|Lake of the Woods County|Spooner township|730|0|5|Carlin|Annis|2991|Kansas|F|Daughter|||9|3846 +3000|MN|Lake of the Woods County|Spooner township|730|0|6|Carlin|Darrel|2997|Rhode Island|M|Son|||3|3847 + +3000|ME|Cumberland County|Long Island town|731|0|1|Bronson|Toney Marc|2965|Slovenia|M|Head|||35|3848 +3000|ME|Cumberland County|Long Island town|731|0|2|Bronson|Barbara|2969|Hawaii|F|Spouse|||31|3849 +3000|ME|Cumberland County|Long Island town|731|0|3|Bronson|Lan Vincenza|2989|Wyoming|F|Daughter|||11|3850 +3000|ME|Cumberland County|Long Island town|731|0|4|Bronson|Bryant|2991|Utah|M|Son|||9|3851 +3000|ME|Cumberland County|Long Island town|731|0|5|Bronson|Shon|2997|Georgia|M|Son|||3|3852 + +3000|CA|Tulare County|Strathmore CDP|732|0|1|Pettibon|Annabel|2981|Bahrain|F|Head|||19|3853 + +3000|NJ|Warren County|Hainesburg CDP|733|0|1|Hernandez|Devon|2966|Ohio|F|Head|||34|3854 +3000|NJ|Warren County|Hainesburg CDP|733|0|2|Hernandez|Madalyn|2988|Ohio|F|Daughter|||12|3855 +3000|NJ|Warren County|Hainesburg CDP|733|0|3|Hernandez|Katheryn|2990|Niue|F|Daughter|||10|3856 +3000|NJ|Warren County|Hainesburg CDP|733|0|4|Hernandez|Alphonse Ben|2992|Vermont|M|Son|||8|3857 +3000|NJ|Warren County|Hainesburg CDP|733|0|5|Hernandez|Loren|2994|Michigan|F|Daughter|||6|3858 + +3000|MI|Allegan County|Ganges township|734|0|1|Janssen|Armando Oliver|2937|Bosnia And Herzegovina|M|Head|||63|3859 +3000|MI|Allegan County|Ganges township|734|0|2|Janssen|Del|2980|New York|M|Son|||20|3860 +3000|MI|Allegan County|Ganges township|734|0|3|Janssen|Jefferson|2986|Nevada|M|Son|||14|3861 +3000|MI|Allegan County|Ganges township|734|0|4|Janssen|Shirl Mollie|2988|North Dakota|F|Daughter|||12|3862 +3000|MI|Allegan County|Ganges township|734|0|5|Janssen|Lorean|2992|Mississippi|F|Daughter|||8|3863 + +3000|LA|St. Tammany Parish|Mandeville city|735|0|1|Branco|Franklin Norman|2950|Vermont|M|Head|||50|3864 +3000|LA|St. Tammany Parish|Mandeville city|735|0|2|Branco|Dot|2971|Montana|F|Spouse|||29|3865 +3000|LA|St. Tammany Parish|Mandeville city|735|0|3|Branco|Natividad|2991|New Hampshire|F|Daughter|||9|3866 +3000|LA|St. Tammany Parish|Mandeville city|735|0|4|Branco|Jamison|2995|Wyoming|M|Son|||5|3867 +3000|LA|St. Tammany Parish|Mandeville city|735|0|5|Branco|Zane|2997|Iowa|M|Son|||3|3868 + +3000|WI|Columbia County|Lodi city|736|0|1|Davis|Tracy Trinidad|2950|Saudi Arabia|M|Head|||50|3869 +3000|WI|Columbia County|Lodi city|736|0|2|Davis|Erline|2972|Rhode Island|F|Spouse|||28|3870 +3000|WI|Columbia County|Lodi city|736|0|3|Davis|Lindsey|2992|Tennessee|M|Son|||8|3871 +3000|WI|Columbia County|Lodi city|736|0|4|Davis|King|2994|Montana|M|Son|||6|3872 +3000|WI|Columbia County|Lodi city|736|0|5|Davis|Eldridge Genaro|2996|Michigan|M|Son|||4|3873 + +3000|OH|Butler County, Warren County|Middletown city|737|0|1|Beaudoin|Fernande|2937|South Carolina|F|Head|||63|3874 +3000|OH|Butler County, Warren County|Middletown city|737|0|2|Beaudoin|Gita|2971|South Dakota|F|Daughter|||29|3875 +3000|OH|Butler County, Warren County|Middletown city|737|0|3|Beaudoin|Armando|2975|Mississippi|M|Son|||25|3876 +3000|OH|Butler County, Warren County|Middletown city|737|0|4|Beaudoin|Aron|2977|Kosovo|M|Son|||23|3877 +3000|OH|Butler County, Warren County|Middletown city|737|0|5|Beaudoin|Timmy|2987|Alaska|M|Son|||13|3878 +3000|OH|Butler County, Warren County|Middletown city|737|0|6|Beaudoin|Rocky|2993|Nevada|M|Son|||7|3879 + +3000|KY|Jefferson County|Bellemeade city|738|0|1|Watson|Vaughn Cordell|2944|Delaware|M|Head|||56|3880 +3000|KY|Jefferson County|Bellemeade city|738|0|2|Watson|Briana Ethyl|2951|Louisiana|F|Spouse|||49|3881 +3000|KY|Jefferson County|Bellemeade city|738|0|3|Watson|Lyndsey|2975|Central African Republic|F|Daughter|||25|3882 +3000|KY|Jefferson County|Bellemeade city|738|0|4|Watson|Maurice Doyle|2981|New York|M|Son|||19|3883 +3000|KY|Jefferson County|Bellemeade city|738|0|5|Watson|Darius|2985|Alabama|M|Son|||15|3884 +3000|KY|Jefferson County|Bellemeade city|738|0|6|Watson|Shiloh Kenyatta|2999|Alabama|F|Daughter|||1|3885 + +3000|PA|Northampton County|Hanover township|739|0|1|Andrews|Hai|2966|Nebraska|M|Head|||34|3886 +3000|PA|Northampton County|Hanover township|739|0|2|Andrews|Tamera Delsie|2982|Botswana|F|Spouse|||18|3887 + +3000|PR|Lajas Municipio|Lajas zona urbana|740|0|1|Alavi|Kelley Frederick|2950|Senegal|M|Head|||50|3888 +3000|PR|Lajas Municipio|Lajas zona urbana|740|0|2|Alavi|Aletha|2963|Virginia|F|Spouse|||37|3889 +3000|PR|Lajas Municipio|Lajas zona urbana|740|0|3|Alavi|Chantelle|2985|Virginia|F|Daughter|||15|3890 +3000|PR|Lajas Municipio|Lajas zona urbana|740|0|4|Alavi|Cherrie|2987|Michigan|F|Daughter|||13|3891 +3000|PR|Lajas Municipio|Lajas zona urbana|740|0|5|Alavi|Yukiko|2991|Virgin Islands, British|F|Daughter|||9|3892 +3000|PR|Lajas Municipio|Lajas zona urbana|740|0|6|Alavi|Kattie|2993|South Georgia And The South Sandwich Islands|F|Daughter|||7|3893 +3000|PR|Lajas Municipio|Lajas zona urbana|740|0|7|Alavi|Preston|2995|New York|M|Son|||5|3894 +3000|PR|Lajas Municipio|Lajas zona urbana|740|0|8|Alavi|Johana|2997|South Carolina|F|Daughter|||3|3895 + +3000|NY|Erie County|North Boston CDP|741|0|1|Kringas|Hershel Johnathon|2961|Montana|M|Head|||39|3896 +3000|NY|Erie County|North Boston CDP|741|0|2|Kringas|Kristal|2959|Utah|F|Spouse|||41|3897 +3000|NY|Erie County|North Boston CDP|741|0|3|Kringas|Brittaney|2979|North Carolina|F|Daughter|||21|3898 +3000|NY|Erie County|North Boston CDP|741|0|4|Kringas|Carrol|2981|North Carolina|M|Son|||19|3899 +3000|NY|Erie County|North Boston CDP|741|0|5|Kringas|Gordon|2985|Switzerland|M|Son|||15|3900 +3000|NY|Erie County|North Boston CDP|741|0|6|Kringas|Ferdinand Dick|2989|Maryland|M|Son|||11|3901 +3000|NY|Erie County|North Boston CDP|741|0|7|Kringas|Shandra|2991|South Dakota|F|Daughter|||9|3902 +3000|NY|Erie County|North Boston CDP|741|0|8|Kringas|Alexander|2995|Georgia|M|Son|||5|3903 + +3000|IN|Grant County|Gas City city|742|0|1|Sarles|Ramiro Sid|2962|Florida|M|Head|||38|3904 +3000|IN|Grant County|Gas City city|742|0|2|Sarles|Tyesha Vannesa|2967|Idaho|F|Spouse|||33|3905 +3000|IN|Grant County|Gas City city|742|0|3|Sarles|Minerva|2987|New Hampshire|F|Daughter|||13|3906 +3000|IN|Grant County|Gas City city|742|0|4|Sarles|Rigoberto|2991|Illinois|M|Son|||9|3907 +3000|IN|Grant County|Gas City city|742|0|5|Sarles|Isidra|2997|Massachusetts|F|Daughter|||3|3908 + +3000|PA|Northumberland County|Upper Mahanoy township|743|0|1|Hardnett|Francisco|2983|Missouri|M|Head|||17|3909 +3000|PA|Northumberland County|Upper Mahanoy township|743|0|2|Hardnett|Khalilah|2980|Nebraska|F|Spouse|||20|3910 + +3000|WI|Ashland County|Butternut village|744|0|1|Ho|Zina|2978|Idaho|F|Head|||22|3911 +3000|WI|Ashland County|Butternut village|744|0|2|Ho|Pierre|2998|Wyoming|M|Son|||2|3912 + +3000|NY|Franklin County|Dickinson town|745|0|1|Boullion|Steven Carl|2977|Nevada|M|Head|||23|3913 +3000|NY|Franklin County|Dickinson town|745|0|2|Boullion|Louis|2984|Michigan|F|Spouse|||16|3914 + +3000|WI|Washington County|Farmington town|746|0|1|Mullaney|Eugene Jarvis|2970|Oklahoma|M|Head|||30|3915 +3000|WI|Washington County|Farmington town|746|0|2|Mullaney|Lois|2973|Djibouti|F|Spouse|||27|3916 +3000|WI|Washington County|Farmington town|746|0|3|Mullaney|Sandee|2997|Nevada|F|Daughter|||3|3917 +3000|WI|Washington County|Farmington town|746|0|4|Mullaney|Alejandrina|2999|Hawaii|F|Daughter|||1|3918 + +3000|NE|Greeley County|Spalding village|747|0|1|Nonnemacher|Guadalupe Archie|2946|Indiana|M|Head|||54|3919 +3000|NE|Greeley County|Spalding village|747|0|2|Nonnemacher|Cyndi|2943|Nevada|F|Spouse|||57|3920 +3000|NE|Greeley County|Spalding village|747|0|3|Nonnemacher|Elizabet Selina|2975|Kentucky|F|Daughter|||25|3921 +3000|NE|Greeley County|Spalding village|747|0|4|Nonnemacher|Williams|2987|New Hampshire|M|Son|||13|3922 +3000|NE|Greeley County|Spalding village|747|0|5|Nonnemacher|Mireille|2989|Utah|F|Daughter|||11|3923 +3000|NE|Greeley County|Spalding village|747|0|6|Nonnemacher|Ronnie|2993|Turkmenistan|M|Son|||7|3924 +3000|NE|Greeley County|Spalding village|747|0|7|Nonnemacher|Scott|2997|Japan|F|Daughter|||3|3925 +3000|NE|Greeley County|Spalding village|747|0|8|Nonnemacher|Cornelius|2999|Kentucky|M|Son|||1|3926 + +3000|NY|Washington County|Fort Ann village|748|0|1|Privott|Roseline|2965|Colorado|F|Head|||35|3927 +3000|NY|Washington County|Fort Ann village|748|0|2|Privott|Tona Glenn|2987|West Virginia|F|Daughter|||13|3928 +3000|NY|Washington County|Fort Ann village|748|0|3|Privott|Shavon|2989|West Virginia|F|Daughter|||11|3929 +3000|NY|Washington County|Fort Ann village|748|0|4|Privott|Charlie|2993|Minnesota|F|Daughter|||7|3930 +3000|NY|Washington County|Fort Ann village|748|0|5|Privott|Tim|2995|New York|M|Son|||5|3931 + +3000|NM|Union County|Folsom village|749|0|1|Hernandez|Chloe|2976|Kentucky|F|Head|||24|3932 +3000|NM|Union County|Folsom village|749|0|2|Hernandez|Freda|2998|Georgia|F|Daughter|||2|3933 +3000|NM|Union County|Folsom village|749|0|3|Hernandez|Raymon|3000|Utah|M|Son|||0|3934 + +3000|NE|Scotts Bluff County|Terrytown city|750|0|1|Evans|Lawrence Hershel|2942|Iowa|M|Head|||58|3935 +3000|NE|Scotts Bluff County|Terrytown city|750|0|2|Evans|Irwin|2959|Arizona|M|Son|||41|3936 +3000|NE|Scotts Bluff County|Terrytown city|750|0|3|Evans|Duncan|2967|North Carolina|M|Son|||33|3937 +3000|NE|Scotts Bluff County|Terrytown city|750|0|4|Evans|Alexandria|2969|New Jersey|F|Daughter|||31|3938 +3000|NE|Scotts Bluff County|Terrytown city|750|0|5|Evans|Dion|2975|Cyprus|M|Son|||25|3939 +3000|NE|Scotts Bluff County|Terrytown city|750|0|6|Evans|Shane|2983|Oklahoma|F|Daughter|||17|3940 +3000|NE|Scotts Bluff County|Terrytown city|750|0|7|Evans|Elease Delinda|2989|Kansas|F|Daughter|||11|3941 +3000|NE|Scotts Bluff County|Terrytown city|750|0|8|Evans|Larry|2991|Wyoming|M|Son|||9|3942 +3000|NE|Scotts Bluff County|Terrytown city|750|0|9|Evans|Gino|2995|New York|M|Son|||5|3943 + +3000|IL|Calhoun County|Kampsville village|751|0|1|Mcgee|Kieth Thomas|2966|Oregon|M|Head|||34|3944 +3000|IL|Calhoun County|Kampsville village|751|0|2|Mcgee|Keena Gearldine|2970|Wyoming|F|Spouse|||30|3945 +3000|IL|Calhoun County|Kampsville village|751|0|3|Mcgee|Marisha Ruthie|2992|California|F|Daughter|||8|3946 +3000|IL|Calhoun County|Kampsville village|751|0|4|Mcgee|Rene Arnoldo|2998|Chad|M|Son|||2|3947 +3000|IL|Calhoun County|Kampsville village|751|0|5|Mcgee|Harrison|3000|Delaware|M|Son|||0|3948 + +3000|CA|Merced County|Tuttle CDP|752|0|1|Michalenko|Dwight Kelley|2962|Alabama|M|Head|||38|3949 +3000|CA|Merced County|Tuttle CDP|752|0|2|Michalenko|Shayla|2960|Arizona|F|Spouse|||40|3950 +3000|CA|Merced County|Tuttle CDP|752|0|3|Michalenko|Ike|2990|Delaware|M|Son|||10|3951 +3000|CA|Merced County|Tuttle CDP|752|0|4|Michalenko|Mina|2992|Missouri|F|Daughter|||8|3952 +3000|CA|Merced County|Tuttle CDP|752|0|5|Michalenko|Cheri|2996|East Timor|F|Daughter|||4|3953 +3000|CA|Merced County|Tuttle CDP|752|0|6|Michalenko|Carmelo|2998|Alabama|M|Son|||2|3954 + +3000|MO|Cedar County|Umber View Heights village|753|0|1|Stinson|Simonne|2965|Indiana|F|Head|||35|3955 +3000|MO|Cedar County|Umber View Heights village|753|0|2|Stinson|Wendolyn|2985|Wisconsin|F|Daughter|||15|3956 +3000|MO|Cedar County|Umber View Heights village|753|0|3|Stinson|Lavonne Melina|2987|Delaware|F|Daughter|||13|3957 +3000|MO|Cedar County|Umber View Heights village|753|0|4|Stinson|Jed|2989|Delaware|M|Son|||11|3958 + +3000|PA|Luzerne County|Conyngham borough|754|0|1|Torres|Riley Harrison|2958|Pennsylvania|M|Head|||42|3959 +3000|PA|Luzerne County|Conyngham borough|754|0|2|Torres|Tonette|2977|California|F|Spouse|||23|3960 +3000|PA|Luzerne County|Conyngham borough|754|0|3|Torres|Lynne|2997|Nevada|F|Daughter|||3|3961 + +3000|OK|Le Flore County|Poteau city|755|0|1|Bradley|Kermit Edmond|2953|West Virginia|M|Head|||47|3962 +3000|OK|Le Flore County|Poteau city|755|0|2|Bradley|Micha|2949|South Dakota|F|Spouse|||51|3963 +3000|OK|Le Flore County|Poteau city|755|0|3|Bradley|Toi|2981|Wyoming|F|Daughter|||19|3964 +3000|OK|Le Flore County|Poteau city|755|0|4|Bradley|Hildegarde Bobbie|2983|South Dakota|F|Daughter|||17|3965 +3000|OK|Le Flore County|Poteau city|755|0|5|Bradley|Olevia|2989|Mississippi|F|Daughter|||11|3966 +3000|OK|Le Flore County|Poteau city|755|0|6|Bradley|Gino|2993|Oregon|M|Son|||7|3967 +3000|OK|Le Flore County|Poteau city|755|0|7|Bradley|Ed|2995|Kentucky|M|Son|||5|3968 +3000|OK|Le Flore County|Poteau city|755|0|8|Bradley|Steve|2999|Ohio|M|Son|||1|3969 + +3000|PA|Butler County|Lancaster township|756|0|1|Toomer|Johnie Mauro|2938|Denmark|M|Head|||62|3970 +3000|PA|Butler County|Lancaster township|756|0|2|Toomer|Slyvia|2957|Maine|F|Spouse|||43|3971 +3000|PA|Butler County|Lancaster township|756|0|3|Toomer|Mauro|2985|Zimbabwe|M|Son|||15|3972 +3000|PA|Butler County|Lancaster township|756|0|4|Toomer|Geoffrey|2987|Delaware|M|Son|||13|3973 +3000|PA|Butler County|Lancaster township|756|0|5|Toomer|Joie|2991|Nebraska|F|Daughter|||9|3974 +3000|PA|Butler County|Lancaster township|756|0|6|Toomer|Olen Maximo|2995|Idaho|M|Son|||5|3975 +3000|PA|Butler County|Lancaster township|756|0|7|Toomer|Jaimie|2997|Martinique|F|Daughter|||3|3976 + +3000|MN|Washington County|Newport city|757|0|1|Dixon|Gregorio Curt|2974|South Dakota|M|Head|||26|3977 +3000|MN|Washington County|Newport city|757|0|2|Dixon|Gia Reagan|2998|Arkansas|F|Daughter|||2|3978 +3000|MN|Washington County|Newport city|757|0|3|Dixon|Margot|3000|Maine|F|Daughter|||0|3979 + +3000|NM|Doña Ana County|Santa Teresa CDP|758|0|1|Vaughn|Bernie Rocco|2945|Sri Lanka|M|Head|||55|3980 +3000|NM|Doña Ana County|Santa Teresa CDP|758|0|2|Vaughn|Shayne|2961|South Dakota|F|Spouse|||39|3981 +3000|NM|Doña Ana County|Santa Teresa CDP|758|0|3|Vaughn|Leonida|2985|Ohio|F|Daughter|||15|3982 +3000|NM|Doña Ana County|Santa Teresa CDP|758|0|4|Vaughn|Huey Arden|2989|Florida|M|Son|||11|3983 +3000|NM|Doña Ana County|Santa Teresa CDP|758|0|5|Vaughn|Brandy|2993|Haiti|F|Daughter|||7|3984 + +3000|MN|Fillmore County|Bloomfield township|759|0|1|Shadrick|Kurtis Jamison|2971|North Dakota|M|Head|||29|3985 +3000|MN|Fillmore County|Bloomfield township|759|0|2|Shadrick|Alesha|2983|North Dakota|F|Spouse|||17|3986 + +3000|MO|Warren County|Wright City city|760|0|1|Hooks|Von|2948|Nevada|M|Head|||52|3987 +3000|MO|Warren County|Wright City city|760|0|2|Hooks|Denisha|2963|Iowa|F|Spouse|||37|3988 +3000|MO|Warren County|Wright City city|760|0|3|Hooks|Maria|2985|Uzbekistan|M|Son|||15|3989 +3000|MO|Warren County|Wright City city|760|0|4|Hooks|Laveta|2989|Hawaii|F|Daughter|||11|3990 +3000|MO|Warren County|Wright City city|760|0|5|Hooks|Stefanie|2991|Kansas|F|Daughter|||9|3991 +3000|MO|Warren County|Wright City city|760|0|6|Hooks|Genevieve Jeanett|2993|Iowa|F|Daughter|||7|3992 +3000|MO|Warren County|Wright City city|760|0|7|Hooks|Shantell Rebeca|2995|Illinois|F|Daughter|||5|3993 +3000|MO|Warren County|Wright City city|760|0|8|Hooks|Carmine|2997|West Virginia|M|Son|||3|3994 + +3000|MS|Marshall County|Byhalia town|761|0|1|Drumgoole|Herman Sal|2937|Maine|M|Head|||63|3995 +3000|MS|Marshall County|Byhalia town|761|0|2|Drumgoole|Tashina|2944|North Dakota|F|Spouse|||56|3996 +3000|MS|Marshall County|Byhalia town|761|0|3|Drumgoole|Tangela|2970|Virginia|F|Daughter|||30|3997 +3000|MS|Marshall County|Byhalia town|761|0|4|Drumgoole|Guillermina|2980|West Virginia|F|Daughter|||20|3998 +3000|MS|Marshall County|Byhalia town|761|0|5|Drumgoole|Darlene Dion|2984|Tennessee|F|Daughter|||16|3999 +3000|MS|Marshall County|Byhalia town|761|0|6|Drumgoole|Karyl Micheline|2992|New Jersey|F|Daughter|||8|4000 +3000|MS|Marshall County|Byhalia town|761|0|7|Drumgoole|Kristin Phyllis|2994|Oklahoma|F|Daughter|||6|4001 +3000|MS|Marshall County|Byhalia town|761|0|8|Drumgoole|Sharri Aleshia|2998|Montserrat|F|Daughter|||2|4002 + +3000|FL|Miami-Dade County|Goulds CDP|762|0|1|Peakes|Antonia Nicky|2968|Oregon|M|Head|||32|4003 +3000|FL|Miami-Dade County|Goulds CDP|762|0|2|Peakes|Deena|2981|Vermont|F|Spouse|||19|4004 + +3000|NY|Genesee County|Le Roy town|763|0|1|Bourgeois|Irwin Tyrone|2961|Washington|M|Head|||39|4005 +3000|NY|Genesee County|Le Roy town|763|0|2|Bourgeois|Erminia|2978|Cote D'ivoire|F|Spouse|||22|4006 +3000|NY|Genesee County|Le Roy town|763|0|3|Bourgeois|Rosario Maria|2998|Panama|M|Son|||2|4007 + +3000|NC|Scotland County|Gibson town|764|0|1|Grega|Stanton|2968|Pennsylvania|M|Head|||32|4008 +3000|NC|Scotland County|Gibson town|764|0|2|Grega|Chantal Teri|2983|New York|F|Spouse|||17|4009 + +3000|OK|Creek County, Tulsa County|Sapulpa city|765|0|1|Curnutte|Jackie Dalton|2958|Illinois|M|Head|||42|4010 +3000|OK|Creek County, Tulsa County|Sapulpa city|765|0|2|Curnutte|Sherell|2981|Virginia|F|Spouse|||19|4011 + +3000|PA|Allegheny County|Indiana township|766|0|1|Cowell|Lincoln Winford|2959|Nebraska|M|Head|||41|4012 +3000|PA|Allegheny County|Indiana township|766|0|2|Cowell|Britney|2974|Hungary|F|Spouse|||26|4013 +3000|PA|Allegheny County|Indiana township|766|0|3|Cowell|Constance Shayla|2994|Kansas|F|Daughter|||6|4014 +3000|PA|Allegheny County|Indiana township|766|0|4|Cowell|Julianna|2996|Tennessee|F|Daughter|||4|4015 +3000|PA|Allegheny County|Indiana township|766|0|5|Cowell|Ted|3000|Albania|M|Son|||0|4016 + +3000|MI|Wayne County|Westland city|767|0|1|Howard|Haywood Cesar|2954|North Dakota|M|Head|||46|4017 +3000|MI|Wayne County|Westland city|767|0|2|Howard|Sachiko|2985|Spain|F|Daughter|||15|4018 +3000|MI|Wayne County|Westland city|767|0|3|Howard|Victorina|2987|Israel|F|Daughter|||13|4019 +3000|MI|Wayne County|Westland city|767|0|4|Howard|Alfonso|2989|Oregon|M|Son|||11|4020 + +3000|VT|Windham County|Guilford town|768|0|1|Dummett|Dominick Stephan|2982|El Salvador|M|Head|||18|4021 +3000|VT|Windham County|Guilford town|768|0|2|Dummett|Keira|2979|Hong Kong|F|Spouse|||21|4022 +3000|VT|Windham County|Guilford town|768|0|3|Dummett|Lonny|2999|Oklahoma|M|Son|||1|4023 + +3000|MA|Worcester County|Templeton town|769|0|1|Barbeau|Andres Lewis|2948|France|M|Head|||52|4024 +3000|MA|Worcester County|Templeton town|769|0|2|Barbeau|Terra|2973|Georgia|F|Daughter|||27|4025 +3000|MA|Worcester County|Templeton town|769|0|3|Barbeau|David|2977|North Dakota|M|Son|||23|4026 +3000|MA|Worcester County|Templeton town|769|0|4|Barbeau|Manuel|2979|Zambia|M|Son|||21|4027 +3000|MA|Worcester County|Templeton town|769|0|5|Barbeau|Eloisa|2985|New Jersey|F|Daughter|||15|4028 +3000|MA|Worcester County|Templeton town|769|0|6|Barbeau|Willian|2987|France|M|Son|||13|4029 +3000|MA|Worcester County|Templeton town|769|0|7|Barbeau|Tristan Napoleon|2999|Nebraska|M|Son|||1|4030 + +3000|PA|Bucks County|Plumstead township|770|0|1|Webster|Carla|2944|Pennsylvania|F|Head|||56|4031 +3000|PA|Bucks County|Plumstead township|770|0|2|Webster|Evangelina|2968|Iowa|F|Daughter|||32|4032 +3000|PA|Bucks County|Plumstead township|770|0|3|Webster|Madeleine Mariela|2974|Norway|F|Daughter|||26|4033 +3000|PA|Bucks County|Plumstead township|770|0|4|Webster|Lyman|2986|French Southern Territories|M|Son|||14|4034 +3000|PA|Bucks County|Plumstead township|770|0|5|Webster|Cole Lacy|2988|Chile|M|Son|||12|4035 +3000|PA|Bucks County|Plumstead township|770|0|6|Webster|Theodore Floyd|2990|New Jersey|M|Son|||10|4036 +3000|PA|Bucks County|Plumstead township|770|0|7|Webster|Brooke|2994|Arkansas|F|Daughter|||6|4037 +3000|PA|Bucks County|Plumstead township|770|0|8|Webster|Jonathon|2998|Idaho|M|Son|||2|4038 + +3000|TN|Putnam County|Cookeville city|771|0|1|Hancock|Emanuel Wilfred|2947|Montana|M|Head|||53|4039 +3000|TN|Putnam County|Cookeville city|771|0|2|Hancock|Mamie Ray|2986|Nevada|F|Daughter|||14|4040 +3000|TN|Putnam County|Cookeville city|771|0|3|Hancock|Elaine|2990|Indiana|F|Daughter|||10|4041 +3000|TN|Putnam County|Cookeville city|771|0|4|Hancock|Jamison|2992|Jordan|M|Son|||8|4042 +3000|TN|Putnam County|Cookeville city|771|0|5|Hancock|Kyung|2994|Vermont|F|Daughter|||6|4043 +3000|TN|Putnam County|Cookeville city|771|0|6|Hancock|Julian|2998|West Virginia|M|Son|||2|4044 + +3000|NJ|Morris County|Florham Park borough|772|0|1|Stander|Dusty Brooks|2943|Alaska|M|Head|||57|4045 +3000|NJ|Morris County|Florham Park borough|772|0|2|Stander|June Olimpia|2960|Ohio|F|Spouse|||40|4046 +3000|NJ|Morris County|Florham Park borough|772|0|3|Stander|Priscilla|2980|Virginia|F|Daughter|||20|4047 +3000|NJ|Morris County|Florham Park borough|772|0|4|Stander|Shelby|2986|Illinois|M|Son|||14|4048 +3000|NJ|Morris County|Florham Park borough|772|0|5|Stander|Suzann|2990|Florida|F|Daughter|||10|4049 +3000|NJ|Morris County|Florham Park borough|772|0|6|Stander|Heidi|2996|Honduras|F|Daughter|||4|4050 +3000|NJ|Morris County|Florham Park borough|772|0|7|Stander|Adele|2998|Martinique|F|Daughter|||2|4051 +3000|NJ|Morris County|Florham Park borough|772|0|8|Stander|Lyndia|3000|New York|F|Daughter|||0|4052 + +3000|IL|Madison County|St. Jacob village|773|0|1|Dorado|Hong Chadwick|2953|Vermont|M|Head|||47|4053 +3000|IL|Madison County|St. Jacob village|773|0|2|Dorado|Velva Natosha|2961|South Dakota|F|Spouse|||39|4054 +3000|IL|Madison County|St. Jacob village|773|0|3|Dorado|Leo|2985|Alabama|M|Son|||15|4055 +3000|IL|Madison County|St. Jacob village|773|0|4|Dorado|Jasper|2987|Washington|M|Son|||13|4056 +3000|IL|Madison County|St. Jacob village|773|0|5|Dorado|Ana Tyler|2995|Kansas|F|Daughter|||5|4057 +3000|IL|Madison County|St. Jacob village|773|0|6|Dorado|See|2999|Minnesota|F|Daughter|||1|4058 + +3000|NY|Schenectady County|Scotia village|774|0|1|Gordon|Faustino Reggie|2960|Virginia|M|Head|||40|4059 +3000|NY|Schenectady County|Scotia village|774|0|2|Gordon|Roberto|2984|Nebraska|F|Spouse|||16|4060 + +3000|NY|Ulster County|Kerhonkson CDP|775|0|1|Reppert|Edison Porter|2944|New Hampshire|M|Head|||56|4061 +3000|NY|Ulster County|Kerhonkson CDP|775|0|2|Reppert|Monnie|2956|Florida|F|Spouse|||44|4062 +3000|NY|Ulster County|Kerhonkson CDP|775|0|3|Reppert|Joe|2982|Georgia|M|Son|||18|4063 +3000|NY|Ulster County|Kerhonkson CDP|775|0|4|Reppert|Leif|2996|Idaho|M|Son|||4|4064 + +3000|MI|Schoolcraft County|Doyle township|776|0|1|Lind|Shelby Josh|2955|Utah|M|Head|||45|4065 +3000|MI|Schoolcraft County|Doyle township|776|0|2|Lind|Teofila Jolene|2952|Missouri|F|Spouse|||48|4066 +3000|MI|Schoolcraft County|Doyle township|776|0|3|Lind|Jamar|2974|Oregon|M|Son|||26|4067 +3000|MI|Schoolcraft County|Doyle township|776|0|4|Lind|Teresita|2980|New Jersey|F|Daughter|||20|4068 +3000|MI|Schoolcraft County|Doyle township|776|0|5|Lind|Dannie|2990|Minnesota|M|Son|||10|4069 +3000|MI|Schoolcraft County|Doyle township|776|0|6|Lind|Julienne Marguerita|2992|Czech Republic|F|Daughter|||8|4070 +3000|MI|Schoolcraft County|Doyle township|776|0|7|Lind|Flossie|2994|Ohio|F|Daughter|||6|4071 +3000|MI|Schoolcraft County|Doyle township|776|0|8|Lind|Dyan|2998|Minnesota|F|Daughter|||2|4072 + +3000|WI|Fond du Lac County|Brandon village|777|0|1|Vise|Oliver Alberto|2960|Nebraska|M|Head|||40|4073 +3000|WI|Fond du Lac County|Brandon village|777|0|2|Vise|Tiara|2973|Mauritania|F|Spouse|||27|4074 +3000|WI|Fond du Lac County|Brandon village|777|0|3|Vise|Emory Brent|2993|Indiana|M|Son|||7|4075 +3000|WI|Fond du Lac County|Brandon village|777|0|4|Vise|Carleen|2995|Missouri|F|Daughter|||5|4076 +3000|WI|Fond du Lac County|Brandon village|777|0|5|Vise|Karin|2997|South Dakota|F|Daughter|||3|4077 +3000|WI|Fond du Lac County|Brandon village|777|0|6|Vise|Nita Cecila|2999|Louisiana|F|Daughter|||1|4078 + +3000|IA|Audubon County|Brayton city|778|0|1|Silverstone|Robbin|2959|Tennessee|F|Head|||41|4079 +3000|IA|Audubon County|Brayton city|778|0|2|Silverstone|Fermina|2983|Kosovo|F|Daughter|||17|4080 +3000|IA|Audubon County|Brayton city|778|0|3|Silverstone|Dell|2987|Georgia|F|Daughter|||13|4081 +3000|IA|Audubon County|Brayton city|778|0|4|Silverstone|Marlin|2989|Georgia|M|Son|||11|4082 +3000|IA|Audubon County|Brayton city|778|0|5|Silverstone|Jessica|2993|New York|F|Daughter|||7|4083 +3000|IA|Audubon County|Brayton city|778|0|6|Silverstone|Tequila|2999|Alabama|F|Daughter|||1|4084 + +3000|SD|Clark County|Bradley town|779|0|1|Broccoli|Maynard Rene|2947|New York|M|Head|||53|4085 +3000|SD|Clark County|Bradley town|779|0|2|Broccoli|Erna|2967|New Mexico|F|Spouse|||33|4086 +3000|SD|Clark County|Bradley town|779|0|3|Broccoli|Erik|2987|Louisiana|M|Son|||13|4087 +3000|SD|Clark County|Bradley town|779|0|4|Broccoli|Aja|2993|California|F|Daughter|||7|4088 +3000|SD|Clark County|Bradley town|779|0|5|Broccoli|Stuart|2997|Alabama|M|Son|||3|4089 +3000|SD|Clark County|Bradley town|779|0|6|Broccoli|Aaron|2999|Arizona|M|Son|||1|4090 + +3000|PA|Schuylkill County|Minersville borough|780|0|1|Walker|Clemente Burton|2979|Mozambique|M|Head|||21|4091 +3000|PA|Schuylkill County|Minersville borough|780|0|2|Walker|Annis|2979|North Dakota|F|Spouse|||21|4092 +3000|PA|Schuylkill County|Minersville borough|780|0|3|Walker|Mark|2999|Switzerland|F|Daughter|||1|4093 + +3000|WI|Winnebago County|Poygan town|781|0|1|Golaszewski|Cole Joey|2958|India|M|Head|||42|4094 +3000|WI|Winnebago County|Poygan town|781|0|2|Golaszewski|Zena|2991|North Carolina|F|Daughter|||9|4095 +3000|WI|Winnebago County|Poygan town|781|0|3|Golaszewski|Mervin|2993|Tennessee|M|Son|||7|4096 +3000|WI|Winnebago County|Poygan town|781|0|4|Golaszewski|Glinda|2999|Washington|F|Daughter|||1|4097 + +3000|MN|Kanabec County|Ford township|782|0|1|Daniel|Ralph Everett|2940|Montana|M|Head|||60|4098 +3000|MN|Kanabec County|Ford township|782|0|2|Daniel|Malorie|2943|New Jersey|F|Spouse|||57|4099 +3000|MN|Kanabec County|Ford township|782|0|3|Daniel|Latrice|2979|Kentucky|F|Daughter|||21|4100 +3000|MN|Kanabec County|Ford township|782|0|4|Daniel|Kenneth|2981|Tonga|M|Son|||19|4101 +3000|MN|Kanabec County|Ford township|782|0|5|Daniel|Nicola Selena|2983|Montana|F|Daughter|||17|4102 +3000|MN|Kanabec County|Ford township|782|0|6|Daniel|Zita Cheyenne|2987|Oregon|F|Daughter|||13|4103 +3000|MN|Kanabec County|Ford township|782|0|7|Daniel|Leonel|2989|New Mexico|M|Son|||11|4104 +3000|MN|Kanabec County|Ford township|782|0|8|Daniel|Foster|2995|Indiana|M|Son|||5|4105 + +3000|TX|Cameron County|Los Indios town|783|0|1|Landrum|Lindsey Bennett|2957|Maryland|M|Head|||43|4106 +3000|TX|Cameron County|Los Indios town|783|0|2|Landrum|Boris Benjamin|2981|Arizona|M|Son|||19|4107 +3000|TX|Cameron County|Los Indios town|783|0|3|Landrum|Angel Nathalie|2987|Iowa|F|Daughter|||13|4108 +3000|TX|Cameron County|Los Indios town|783|0|4|Landrum|Jason|2989|Wyoming|M|Son|||11|4109 +3000|TX|Cameron County|Los Indios town|783|0|5|Landrum|Floy|2991|New York|F|Daughter|||9|4110 + +3000|NC|Yancey County|Burnsville town|784|0|1|Tye|Michale Damien|2951|South Carolina|M|Head|||49|4111 +3000|NC|Yancey County|Burnsville town|784|0|2|Tye|Tesha|2988|Illinois|F|Daughter|||12|4112 +3000|NC|Yancey County|Burnsville town|784|0|3|Tye|Jannie Gita|2990|Virginia|F|Daughter|||10|4113 +3000|NC|Yancey County|Burnsville town|784|0|4|Tye|Kenyetta|2994|Wisconsin|F|Daughter|||6|4114 +3000|NC|Yancey County|Burnsville town|784|0|5|Tye|Rosalind|2996|North Carolina|F|Daughter|||4|4115 +3000|NC|Yancey County|Burnsville town|784|0|6|Tye|Clair|2998|Connecticut|M|Son|||2|4116 + +3000|KS|Greenwood County|Fall River city|785|0|1|Bufford|Daryl Jonas|2970|New Hampshire|M|Head|||30|4117 +3000|KS|Greenwood County|Fall River city|785|0|2|Bufford|Genna|2974|Pennsylvania|F|Spouse|||26|4118 +3000|KS|Greenwood County|Fall River city|785|0|3|Bufford|Wade Sol|2996|Virgin Islands, U.s.|M|Son|||4|4119 +3000|KS|Greenwood County|Fall River city|785|0|4|Bufford|Afton|2998|Indiana|F|Daughter|||2|4120 +3000|KS|Greenwood County|Fall River city|785|0|5|Bufford|Charity|3000|Alabama|F|Daughter|||0|4121 + +3000|IN|Porter County|Porter town|786|0|1|Walter|Karima|2961|Eritrea|F|Head|||39|4122 +3000|IN|Porter County|Porter town|786|0|2|Walter|Jules|2991|Brazil|M|Son|||9|4123 +3000|IN|Porter County|Porter town|786|0|3|Walter|Thomasine|2993|Kansas|F|Daughter|||7|4124 +3000|IN|Porter County|Porter town|786|0|4|Walter|Terrilyn|2995|Micronesia, Federated States Of|F|Daughter|||5|4125 +3000|IN|Porter County|Porter town|786|0|5|Walter|Nathaniel|2999|American Samoa|M|Son|||1|4126 + +3000|OK|Rogers County|Justice CDP|787|0|1|Watkins|Adolfo Tyson|2950|Maryland|M|Head|||50|4127 +3000|OK|Rogers County|Justice CDP|787|0|2|Watkins|Rochelle|2957|Washington|F|Spouse|||43|4128 +3000|OK|Rogers County|Justice CDP|787|0|3|Watkins|Dino|2987|Arkansas|M|Son|||13|4129 +3000|OK|Rogers County|Justice CDP|787|0|4|Watkins|Tanisha|2989|Cook Islands|F|Daughter|||11|4130 +3000|OK|Rogers County|Justice CDP|787|0|5|Watkins|Cleora|2991|Paraguay|F|Daughter|||9|4131 +3000|OK|Rogers County|Justice CDP|787|0|6|Watkins|Hanna|2993|Solomon Islands|F|Daughter|||7|4132 + +3000|IA|Black Hawk County, Buchanan County|Jesup city|788|0|1|Thacker|Eloy|2956|Virginia|M|Head|||44|4133 +3000|IA|Black Hawk County, Buchanan County|Jesup city|788|0|2|Thacker|Xochitl Lelia|2987|Louisiana|F|Daughter|||13|4134 +3000|IA|Black Hawk County, Buchanan County|Jesup city|788|0|3|Thacker|Myong|2991|Spain|F|Daughter|||9|4135 +3000|IA|Black Hawk County, Buchanan County|Jesup city|788|0|4|Thacker|Tia Valeria|2993|Michigan|F|Daughter|||7|4136 +3000|IA|Black Hawk County, Buchanan County|Jesup city|788|0|5|Thacker|Donald|2999|Vermont|M|Son|||1|4137 + +3000|NC|Beaufort County|Aurora town|789|0|1|Barnes|Demarcus|2944|Wisconsin|M|Head|||56|4138 +3000|NC|Beaufort County|Aurora town|789|0|2|Barnes|Dustin|2986|Nebraska|M|Son|||14|4139 +3000|NC|Beaufort County|Aurora town|789|0|3|Barnes|Everett Freddie|2988|Utah|M|Son|||12|4140 +3000|NC|Beaufort County|Aurora town|789|0|4|Barnes|Refugio|2992|Nevada|M|Son|||8|4141 +3000|NC|Beaufort County|Aurora town|789|0|5|Barnes|Sharmaine|2994|Connecticut|F|Daughter|||6|4142 +3000|NC|Beaufort County|Aurora town|789|0|6|Barnes|Toney|2998|Ireland|M|Son|||2|4143 + +3000|PA|Indiana County|Cherryhill township|790|0|1|Delcour|Benny Aron|2963|Kansas|M|Head|||37|4144 +3000|PA|Indiana County|Cherryhill township|790|0|2|Delcour|Lonnie|2974|Pennsylvania|F|Spouse|||26|4145 +3000|PA|Indiana County|Cherryhill township|790|0|3|Delcour|Michael|2994|California|M|Son|||6|4146 +3000|PA|Indiana County|Cherryhill township|790|0|4|Delcour|Craig Eric|2996|South Dakota|M|Son|||4|4147 + +3000|SC|Hampton County|Furman town|791|0|1|Neske|Pete Wally|2967|Saint Vincent And The Grenadines|M|Head|||33|4148 +3000|SC|Hampton County|Furman town|791|0|2|Neske|Leanora|2990|Texas|F|Daughter|||10|4149 +3000|SC|Hampton County|Furman town|791|0|3|Neske|Mark|2994|Washington|M|Son|||6|4150 +3000|SC|Hampton County|Furman town|791|0|4|Neske|Alene|2996|Kentucky|F|Daughter|||4|4151 +3000|SC|Hampton County|Furman town|791|0|5|Neske|Jackie|2998|Oman|M|Son|||2|4152 +3000|SC|Hampton County|Furman town|791|0|6|Neske|Avelina|3000|Ohio|F|Daughter|||0|4153 + +3000|NY|Columbia County|Hudson city|792|0|1|Morgan|Abe Mack|2954|Tennessee|M|Head|||46|4154 +3000|NY|Columbia County|Hudson city|792|0|2|Morgan|Ute|2994|Mississippi|F|Daughter|||6|4155 +3000|NY|Columbia County|Hudson city|792|0|3|Morgan|Joaquin|3000|Nevada|M|Son|||0|4156 + +3000|MN|Pipestone County|Ruthton city|793|0|1|Charlebois|Edward Colby|2944|Utah|M|Head|||56|4157 +3000|MN|Pipestone County|Ruthton city|793|0|2|Charlebois|Racheal|2957|Maine|F|Spouse|||43|4158 +3000|MN|Pipestone County|Ruthton city|793|0|3|Charlebois|Bobby|2977|Ohio|F|Daughter|||23|4159 +3000|MN|Pipestone County|Ruthton city|793|0|4|Charlebois|Juliet|2987|Montana|F|Daughter|||13|4160 +3000|MN|Pipestone County|Ruthton city|793|0|5|Charlebois|Stuart|2999|Utah|M|Son|||1|4161 + +3000|OH|Franklin County|Minerva Park village|794|0|1|Carder|Carmella|2970|Florida|F|Head|||30|4162 +3000|OH|Franklin County|Minerva Park village|794|0|2|Carder|Graig|2990|Michigan|M|Son|||10|4163 +3000|OH|Franklin County|Minerva Park village|794|0|3|Carder|Floretta|2998|Kentucky|F|Daughter|||2|4164 + +3000|PA|York County|Glen Rock borough|795|0|1|Vasquez|Milford Kris|2947|New Caledonia|M|Head|||53|4165 +3000|PA|York County|Glen Rock borough|795|0|2|Vasquez|Geri|2974|North Dakota|F|Daughter|||26|4166 +3000|PA|York County|Glen Rock borough|795|0|3|Vasquez|Blair|2982|Arkansas|F|Daughter|||18|4167 +3000|PA|York County|Glen Rock borough|795|0|4|Vasquez|Bunny|2990|Singapore|F|Daughter|||10|4168 +3000|PA|York County|Glen Rock borough|795|0|5|Vasquez|Garfield|2992|New Hampshire|M|Son|||8|4169 +3000|PA|York County|Glen Rock borough|795|0|6|Vasquez|Marisol|2998|New Hampshire|F|Daughter|||2|4170 +3000|PA|York County|Glen Rock borough|795|0|7|Vasquez|Nila Carlos|3000|Utah|F|Daughter|||0|4171 + +3000|MI|Leelanau County|Leelanau township|796|0|1|Feraco|Thurman Martin|2959|Massachusetts|M|Head|||41|4172 +3000|MI|Leelanau County|Leelanau township|796|0|2|Feraco|Erica|2958|New Hampshire|F|Spouse|||42|4173 +3000|MI|Leelanau County|Leelanau township|796|0|3|Feraco|Danuta|2982|Colorado|F|Daughter|||18|4174 +3000|MI|Leelanau County|Leelanau township|796|0|4|Feraco|Dannie|2988|Suriname|F|Daughter|||12|4175 +3000|MI|Leelanau County|Leelanau township|796|0|5|Feraco|Toby|2990|Kentucky|M|Son|||10|4176 +3000|MI|Leelanau County|Leelanau township|796|0|6|Feraco|Maricruz|2992|Vermont|F|Daughter|||8|4177 +3000|MI|Leelanau County|Leelanau township|796|0|7|Feraco|Coleman|2994|Lao People's Democratic Republic|M|Son|||6|4178 +3000|MI|Leelanau County|Leelanau township|796|0|8|Feraco|Tillie|2998|South Carolina|F|Daughter|||2|4179 + +3000|CA|Santa Cruz County|Amesti CDP|797|0|1|Dudenbostel|Scotty Harold|2964|Washington|M|Head|||36|4180 +3000|CA|Santa Cruz County|Amesti CDP|797|0|2|Dudenbostel|Mari|2971|Greenland|F|Spouse|||29|4181 +3000|CA|Santa Cruz County|Amesti CDP|797|0|3|Dudenbostel|Alisha|2991|Fiji|F|Daughter|||9|4182 +3000|CA|Santa Cruz County|Amesti CDP|797|0|4|Dudenbostel|Thi|2993|Florida|F|Daughter|||7|4183 +3000|CA|Santa Cruz County|Amesti CDP|797|0|5|Dudenbostel|Emelina|2997|Rhode Island|F|Daughter|||3|4184 +3000|CA|Santa Cruz County|Amesti CDP|797|0|6|Dudenbostel|Neville|2999|Rhode Island|M|Son|||1|4185 + +3000|FL|Santa Rosa County|Navarre Beach CDP|798|0|1|Antonacci|Dewitt Forest|2941|Alabama|M|Head|||59|4186 +3000|FL|Santa Rosa County|Navarre Beach CDP|798|0|2|Antonacci|Carly|2959|Vermont|F|Spouse|||41|4187 +3000|FL|Santa Rosa County|Navarre Beach CDP|798|0|3|Antonacci|Horacio|2985|North Carolina|M|Son|||15|4188 +3000|FL|Santa Rosa County|Navarre Beach CDP|798|0|4|Antonacci|Jonathon Nickolas|2987|South Carolina|M|Son|||13|4189 +3000|FL|Santa Rosa County|Navarre Beach CDP|798|0|5|Antonacci|Ruben|2989|Vermont|M|Son|||11|4190 +3000|FL|Santa Rosa County|Navarre Beach CDP|798|0|6|Antonacci|Vincent|2993|Wisconsin|M|Son|||7|4191 +3000|FL|Santa Rosa County|Navarre Beach CDP|798|0|7|Antonacci|Glen|2999|Vermont|M|Son|||1|4192 + +3000|MN|Faribault County|Winnebago city|799|0|1|Gibbons|Merrill Sean|2955|Connecticut|M|Head|||45|4193 +3000|MN|Faribault County|Winnebago city|799|0|2|Gibbons|Jesus|2960|Wyoming|F|Spouse|||40|4194 +3000|MN|Faribault County|Winnebago city|799|0|3|Gibbons|Charisse|2980|Wyoming|F|Daughter|||20|4195 +3000|MN|Faribault County|Winnebago city|799|0|4|Gibbons|Moses|2988|Washington|M|Son|||12|4196 +3000|MN|Faribault County|Winnebago city|799|0|5|Gibbons|Charla|2990|Indiana|F|Daughter|||10|4197 +3000|MN|Faribault County|Winnebago city|799|0|6|Gibbons|Colby Richard|2992|Massachusetts|M|Son|||8|4198 +3000|MN|Faribault County|Winnebago city|799|0|7|Gibbons|Elmer|2998|Maine|F|Daughter|||2|4199 + +3000|GA|Atkinson County|Pearson city|800|0|1|Koenig|Wilfredo Ronny|2945|Delaware|M|Head|||55|4200 +3000|GA|Atkinson County|Pearson city|800|0|2|Koenig|Sunni Kathrin|2967|Wisconsin|F|Spouse|||33|4201 +3000|GA|Atkinson County|Pearson city|800|0|3|Koenig|Mikel|2989|Mississippi|M|Son|||11|4202 +3000|GA|Atkinson County|Pearson city|800|0|4|Koenig|Daren|2991|Hawaii|M|Son|||9|4203 +3000|GA|Atkinson County|Pearson city|800|0|5|Koenig|Wilfred|2993|Tunisia|M|Son|||7|4204 +3000|GA|Atkinson County|Pearson city|800|0|6|Koenig|Margie|2995|Rhode Island|F|Daughter|||5|4205 +3000|GA|Atkinson County|Pearson city|800|0|7|Koenig|Lucien|2999|Alabama|M|Son|||1|4206 + +3000|MN|Blue Earth County|Skyline city|801|0|1|Turner|Dorsey Jorge|2975|Singapore|M|Head|||25|4207 +3000|MN|Blue Earth County|Skyline city|801|0|2|Turner|Aurore Verlene|2971|Arizona|F|Spouse|||29|4208 +3000|MN|Blue Earth County|Skyline city|801|0|3|Turner|Sal|2991|Delaware|M|Son|||9|4209 +3000|MN|Blue Earth County|Skyline city|801|0|4|Turner|Rey|2995|Iowa|M|Son|||5|4210 +3000|MN|Blue Earth County|Skyline city|801|0|5|Turner|Theo Vince|2999|South Dakota|M|Son|||1|4211 + +3000|WA|Kitsap County|Bainbridge Island city|802|0|1|Payton|Freddy Alton|2968|Pennsylvania|M|Head|||32|4212 +3000|WA|Kitsap County|Bainbridge Island city|802|0|2|Payton|Danial|2994|Oklahoma|M|Son|||6|4213 +3000|WA|Kitsap County|Bainbridge Island city|802|0|3|Payton|Jolanda|2996|California|F|Daughter|||4|4214 +3000|WA|Kitsap County|Bainbridge Island city|802|0|4|Payton|Sharee Tandra|3000|Gambia|F|Daughter|||0|4215 + +3000|LA|Jefferson Davis Parish|Jennings city|803|0|1|Frum|Jeffery Kevin|2938|Oklahoma|M|Head|||62|4216 +3000|LA|Jefferson Davis Parish|Jennings city|803|0|2|Frum|Arleen|2944|Pennsylvania|F|Spouse|||56|4217 +3000|LA|Jefferson Davis Parish|Jennings city|803|0|3|Frum|Rob|2968|Georgia|M|Son|||32|4218 +3000|LA|Jefferson Davis Parish|Jennings city|803|0|4|Frum|Kermit|2972|Monaco|M|Son|||28|4219 +3000|LA|Jefferson Davis Parish|Jennings city|803|0|5|Frum|Shannon Frankie|2974|Hawaii|M|Son|||26|4220 +3000|LA|Jefferson Davis Parish|Jennings city|803|0|6|Frum|Jaqueline|2982|Vermont|F|Daughter|||18|4221 +3000|LA|Jefferson Davis Parish|Jennings city|803|0|7|Frum|Terrell|2986|Virginia|M|Son|||14|4222 +3000|LA|Jefferson Davis Parish|Jennings city|803|0|8|Frum|Johna|2996|Georgia|F|Daughter|||4|4223 +3000|LA|Jefferson Davis Parish|Jennings city|803|0|9|Frum|Lamar|2998|Illinois|M|Son|||2|4224 + +3000|IA|Sac County|Schaller city|804|0|1|Rodriguez|Herschel Ruben|2956|Colorado|M|Head|||44|4225 +3000|IA|Sac County|Schaller city|804|0|2|Rodriguez|Roma|2973|Ohio|F|Spouse|||27|4226 +3000|IA|Sac County|Schaller city|804|0|3|Rodriguez|Frank|2995|Kentucky|M|Son|||5|4227 +3000|IA|Sac County|Schaller city|804|0|4|Rodriguez|Tess|2997|Washington|F|Daughter|||3|4228 + +3000|NY|Wyoming County|Genesee Falls town|805|0|1|Hedtke|Wilfred|2962|Delaware|M|Head|||38|4229 +3000|NY|Wyoming County|Genesee Falls town|805|0|2|Hedtke|Jestine|2984|Wisconsin|F|Spouse|||16|4230 + +3000|TX|Navarro County|Goodlow city|806|0|1|Lafond|Lee|2956|North Carolina|M|Head|||44|4231 +3000|TX|Navarro County|Goodlow city|806|0|2|Lafond|Adelaide|2993|Delaware|F|Daughter|||7|4232 +3000|TX|Navarro County|Goodlow city|806|0|3|Lafond|Taunya|2995|Madagascar|F|Daughter|||5|4233 +3000|TX|Navarro County|Goodlow city|806|0|4|Lafond|Tabetha|2999|Oregon|F|Daughter|||1|4234 + +3000|CT|Litchfield County|New Preston CDP|807|0|1|Pak|Karl Bryce|2953|Massachusetts|M|Head|||47|4235 +3000|CT|Litchfield County|New Preston CDP|807|0|2|Pak|Amos|2986|Kentucky|M|Son|||14|4236 +3000|CT|Litchfield County|New Preston CDP|807|0|3|Pak|Hank|2988|Ohio|M|Son|||12|4237 +3000|CT|Litchfield County|New Preston CDP|807|0|4|Pak|Jospeh|2994|South Carolina|M|Son|||6|4238 +3000|CT|Litchfield County|New Preston CDP|807|0|5|Pak|Esteban|2998|Idaho|M|Son|||2|4239 + +3000|IL|Clay County|Iola village|808|0|1|Helbling|Brandon Dino|2956|Mississippi|M|Head|||44|4240 +3000|IL|Clay County|Iola village|808|0|2|Helbling|Walker|2993|Alaska|M|Son|||7|4241 +3000|IL|Clay County|Iola village|808|0|3|Helbling|Reyna|2995|Mississippi|F|Daughter|||5|4242 +3000|IL|Clay County|Iola village|808|0|4|Helbling|Aaron|2997|South Carolina|F|Daughter|||3|4243 + +3000|GA|Newton County, Walton County|Social Circle city|809|0|1|Deluise|Monty Seymour|2939|New Jersey|M|Head|||61|4244 +3000|GA|Newton County, Walton County|Social Circle city|809|0|2|Deluise|Erma|2938|Lesotho|F|Spouse|||62|4245 +3000|GA|Newton County, Walton County|Social Circle city|809|0|3|Deluise|Renna|2970|Arkansas|F|Daughter|||30|4246 +3000|GA|Newton County, Walton County|Social Circle city|809|0|4|Deluise|Opal|2974|Pennsylvania|F|Daughter|||26|4247 +3000|GA|Newton County, Walton County|Social Circle city|809|0|5|Deluise|Hoa Blondell|2976|Egypt|F|Daughter|||24|4248 +3000|GA|Newton County, Walton County|Social Circle city|809|0|6|Deluise|Len|2980|California|M|Son|||20|4249 +3000|GA|Newton County, Walton County|Social Circle city|809|0|7|Deluise|Orval|2982|Alaska|M|Son|||18|4250 +3000|GA|Newton County, Walton County|Social Circle city|809|0|8|Deluise|Arletha Sheri|2988|Florida|F|Daughter|||12|4251 +3000|GA|Newton County, Walton County|Social Circle city|809|0|9|Deluise|Elena|2992|North Dakota|F|Daughter|||8|4252 +3000|GA|Newton County, Walton County|Social Circle city|809|0|10|Deluise|Enrique|2996|Missouri|M|Son|||4|4253 + +3000|NJ|Monmouth County|West Long Branch borough|810|0|1|Smith|Mervin Eddy|2950|North Carolina|M|Head|||50|4254 +3000|NJ|Monmouth County|West Long Branch borough|810|0|2|Smith|Crista|2964|Alabama|F|Spouse|||36|4255 +3000|NJ|Monmouth County|West Long Branch borough|810|0|3|Smith|Agueda|2984|Iowa|F|Daughter|||16|4256 +3000|NJ|Monmouth County|West Long Branch borough|810|0|4|Smith|Frederica Hellen|2988|Missouri|F|Daughter|||12|4257 +3000|NJ|Monmouth County|West Long Branch borough|810|0|5|Smith|Vicenta|2992|Swaziland|F|Daughter|||8|4258 +3000|NJ|Monmouth County|West Long Branch borough|810|0|6|Smith|Otto|2996|Wyoming|M|Son|||4|4259 +3000|NJ|Monmouth County|West Long Branch borough|810|0|7|Smith|Chase|3000|South Dakota|M|Son|||0|4260 + +3000|IN|Wayne County|Greens Fork town|811|0|1|Simon|Darren Emmanuel|2951|West Virginia|M|Head|||49|4261 +3000|IN|Wayne County|Greens Fork town|811|0|2|Simon|Marna|2967|New Mexico|F|Spouse|||33|4262 +3000|IN|Wayne County|Greens Fork town|811|0|3|Simon|Rickie|2989|Connecticut|M|Son|||11|4263 +3000|IN|Wayne County|Greens Fork town|811|0|4|Simon|Tyree|2991|Tennessee|M|Son|||9|4264 +3000|IN|Wayne County|Greens Fork town|811|0|5|Simon|Delta|2995|Georgia|F|Daughter|||5|4265 +3000|IN|Wayne County|Greens Fork town|811|0|6|Simon|Lyndon|2997|New Jersey|M|Son|||3|4266 +3000|IN|Wayne County|Greens Fork town|811|0|7|Simon|Hugo|2999|Tennessee|M|Son|||1|4267 + +3000|VA|Chesterfield County|Bellwood CDP|812|0|1|Kellerhouse|Douglas|2941|Idaho|M|Head|||59|4268 +3000|VA|Chesterfield County|Bellwood CDP|812|0|2|Kellerhouse|Meg|2962|Ohio|F|Spouse|||38|4269 +3000|VA|Chesterfield County|Bellwood CDP|812|0|3|Kellerhouse|Velia|2990|Texas|F|Daughter|||10|4270 +3000|VA|Chesterfield County|Bellwood CDP|812|0|4|Kellerhouse|Maranda Jaclyn|2998|Tuvalu|F|Daughter|||2|4271 +3000|VA|Chesterfield County|Bellwood CDP|812|0|5|Kellerhouse|Bula|3000|South Africa|F|Daughter|||0|4272 + +3000|WI|Dane County|Dane village|813|0|1|Vaughen|Genaro|2939|Washington|M|Head|||61|4273 +3000|WI|Dane County|Dane village|813|0|2|Vaughen|Albina|2941|Korea, Democratic People's Republic Of|F|Spouse|||59|4274 +3000|WI|Dane County|Dane village|813|0|3|Vaughen|Reynaldo|2965|Arkansas|M|Son|||35|4275 +3000|WI|Dane County|Dane village|813|0|4|Vaughen|Allyn|2979|Christmas Island|F|Daughter|||21|4276 +3000|WI|Dane County|Dane village|813|0|5|Vaughen|Sharyn|2985|Maryland|F|Daughter|||15|4277 +3000|WI|Dane County|Dane village|813|0|6|Vaughen|Bula|2997|North Dakota|F|Daughter|||3|4278 + +3000|MN|Ramsey County|North Oaks city|814|0|1|Barlow|Tyson Willard|2951|New Hampshire|M|Head|||49|4279 +3000|MN|Ramsey County|North Oaks city|814|0|2|Barlow|Leonora|2952|Malawi|F|Spouse|||48|4280 +3000|MN|Ramsey County|North Oaks city|814|0|3|Barlow|Dewitt Merle|2982|Michigan|M|Son|||18|4281 +3000|MN|Ramsey County|North Oaks city|814|0|4|Barlow|Oliver|2988|Nevada|M|Son|||12|4282 +3000|MN|Ramsey County|North Oaks city|814|0|5|Barlow|Josiah|2996|Texas|M|Son|||4|4283 + +3000|MD|Allegany County|McCoole CDP|815|0|1|Mella|Garrett Dante|2976|New Jersey|M|Head|||24|4284 +3000|MD|Allegany County|McCoole CDP|815|0|2|Mella|Sindy Caitlyn|2978|Virginia|F|Spouse|||22|4285 +3000|MD|Allegany County|McCoole CDP|815|0|3|Mella|Jude|3000|Florida|M|Son|||0|4286 + +3000|MI|Antrim County|Helena township|816|0|1|Ward|Dale Oliver|2956|Tennessee|M|Head|||44|4287 +3000|MI|Antrim County|Helena township|816|0|2|Ward|Lynell|2958|Saint Pierre And Miquelon|F|Spouse|||42|4288 +3000|MI|Antrim County|Helena township|816|0|3|Ward|Emile|2986|Montana|M|Son|||14|4289 +3000|MI|Antrim County|Helena township|816|0|4|Ward|Dino|2988|Massachusetts|M|Son|||12|4290 +3000|MI|Antrim County|Helena township|816|0|5|Ward|Delfina|2996|New Mexico|F|Daughter|||4|4291 + +3000|AR|Baxter County|Cotter city|817|0|1|Silvey|Jarred Elvin|2965|New Jersey|M|Head|||35|4292 +3000|AR|Baxter County|Cotter city|817|0|2|Silvey|Elvie Jayme|2996|Georgia|F|Daughter|||4|4293 +3000|AR|Baxter County|Cotter city|817|0|3|Silvey|Forest|3000|South Carolina|M|Son|||0|4294 + +3000|TX|Comal County|Canyon Lake CDP|818|0|1|Benson|Broderick Zackary|2951|Maryland|M|Head|||49|4295 +3000|TX|Comal County|Canyon Lake CDP|818|0|2|Benson|Lucile|2966|Macedonia, The Former Yugoslav Republic Of|F|Spouse|||34|4296 +3000|TX|Comal County|Canyon Lake CDP|818|0|3|Benson|Gerard|2986|Connecticut|M|Son|||14|4297 +3000|TX|Comal County|Canyon Lake CDP|818|0|4|Benson|Tyrone|2990|Vermont|M|Son|||10|4298 +3000|TX|Comal County|Canyon Lake CDP|818|0|5|Benson|Kelley|2994|Sao Tome And Principe|M|Son|||6|4299 +3000|TX|Comal County|Canyon Lake CDP|818|0|6|Benson|Judson|3000|Nebraska|M|Son|||0|4300 + +3000|MN|Faribault County|Brush Creek township|819|0|1|Gutierrez|Antwan Perry|2971|Ohio|M|Head|||29|4301 +3000|MN|Faribault County|Brush Creek township|819|0|2|Gutierrez|Myrtis|2973|Wyoming|F|Spouse|||27|4302 +3000|MN|Faribault County|Brush Creek township|819|0|3|Gutierrez|Shawna|2993|Virginia|F|Daughter|||7|4303 +3000|MN|Faribault County|Brush Creek township|819|0|4|Gutierrez|Darin|2995|Virginia|M|Son|||5|4304 +3000|MN|Faribault County|Brush Creek township|819|0|5|Gutierrez|Treasa|2997|Oklahoma|F|Daughter|||3|4305 +3000|MN|Faribault County|Brush Creek township|819|0|6|Gutierrez|Amada|2999|Ireland|F|Daughter|||1|4306 + +3000|NY|Livingston County|Websters Crossing CDP|820|0|1|Trujillo|Clair Ariel|2949|Massachusetts|M|Head|||51|4307 +3000|NY|Livingston County|Websters Crossing CDP|820|0|2|Trujillo|Dann|2954|Arkansas|F|Spouse|||46|4308 +3000|NY|Livingston County|Websters Crossing CDP|820|0|3|Trujillo|Malcom|2986|Vermont|M|Son|||14|4309 +3000|NY|Livingston County|Websters Crossing CDP|820|0|4|Trujillo|Melinda|2988|Rhode Island|F|Daughter|||12|4310 +3000|NY|Livingston County|Websters Crossing CDP|820|0|5|Trujillo|Millie|2996|Iowa|F|Daughter|||4|4311 +3000|NY|Livingston County|Websters Crossing CDP|820|0|6|Trujillo|Johnie|2998|Michigan|F|Daughter|||2|4312 + +3000|MS|Coahoma County|Jonestown town|821|0|1|Bolivar|Steven Otis|2942|Alaska|M|Head|||58|4313 +3000|MS|Coahoma County|Jonestown town|821|0|2|Bolivar|Joey|2962|New Jersey|F|Daughter|||38|4314 +3000|MS|Coahoma County|Jonestown town|821|0|3|Bolivar|Morgan|2978|Alaska|M|Son|||22|4315 +3000|MS|Coahoma County|Jonestown town|821|0|4|Bolivar|Monte|2982|Oklahoma|M|Son|||18|4316 +3000|MS|Coahoma County|Jonestown town|821|0|5|Bolivar|Art|2984|Georgia|M|Son|||16|4317 +3000|MS|Coahoma County|Jonestown town|821|0|6|Bolivar|Diedre|2998|North Carolina|F|Daughter|||2|4318 + +3000|NH|Belknap County|Tilton town|822|0|1|Matrone|Santos Donovan|2952|Arkansas|M|Head|||48|4319 +3000|NH|Belknap County|Tilton town|822|0|2|Matrone|Emile Romeo|2976|Alaska|M|Son|||24|4320 +3000|NH|Belknap County|Tilton town|822|0|3|Matrone|Frances Mary|2984|California|M|Son|||16|4321 +3000|NH|Belknap County|Tilton town|822|0|4|Matrone|Porfirio Harvey|2988|New York|M|Son|||12|4322 +3000|NH|Belknap County|Tilton town|822|0|5|Matrone|Tyra|2998|Virginia|F|Daughter|||2|4323 + +3000|RI|Washington County|South Kingstown town|823|0|1|Rider|Aleen|2967|Nebraska|F|Head|||33|4324 +3000|RI|Washington County|South Kingstown town|823|0|2|Rider|Marguerite|2987|Texas|F|Daughter|||13|4325 +3000|RI|Washington County|South Kingstown town|823|0|3|Rider|Issac|2991|Colorado|M|Son|||9|4326 +3000|RI|Washington County|South Kingstown town|823|0|4|Rider|Jere|2997|American Samoa|M|Son|||3|4327 +3000|RI|Washington County|South Kingstown town|823|0|5|Rider|Dale|2999|Nevada|M|Son|||1|4328 + +3000|IL|Marion County|Kinmundy city|824|0|1|Burch|Edwin|2954|Oregon|M|Head|||46|4329 +3000|IL|Marion County|Kinmundy city|824|0|2|Burch|Leesa|2983|Eritrea|F|Daughter|||17|4330 +3000|IL|Marion County|Kinmundy city|824|0|3|Burch|Linn|2989|Louisiana|F|Daughter|||11|4331 +3000|IL|Marion County|Kinmundy city|824|0|4|Burch|Eulalia|2991|Arkansas|F|Daughter|||9|4332 +3000|IL|Marion County|Kinmundy city|824|0|5|Burch|Synthia Ericka|2993|Tennessee|F|Daughter|||7|4333 +3000|IL|Marion County|Kinmundy city|824|0|6|Burch|Adah|2997|Kansas|F|Daughter|||3|4334 + +3000|WV|Lincoln County|Harts CDP|825|0|1|Shepherd|Danika|2937|Virgin Islands, U.s.|F|Head|||63|4335 +3000|WV|Lincoln County|Harts CDP|825|0|2|Shepherd|Latesha|2961|Colorado|F|Daughter|||39|4336 +3000|WV|Lincoln County|Harts CDP|825|0|3|Shepherd|Tyrone Deandre|2967|Chad|M|Son|||33|4337 +3000|WV|Lincoln County|Harts CDP|825|0|4|Shepherd|Rolland|2971|Florida|M|Son|||29|4338 +3000|WV|Lincoln County|Harts CDP|825|0|5|Shepherd|Nathanael|2977|Solomon Islands|M|Son|||23|4339 +3000|WV|Lincoln County|Harts CDP|825|0|6|Shepherd|Marinda|2979|New Jersey|F|Daughter|||21|4340 +3000|WV|Lincoln County|Harts CDP|825|0|7|Shepherd|Marta|2985|Mississippi|F|Daughter|||15|4341 +3000|WV|Lincoln County|Harts CDP|825|0|8|Shepherd|Mitchel|2993|Connecticut|M|Son|||7|4342 + +3000|TN|Obion County|Woodland Mills city|826|0|1|Pisani|Forrest|2942|Pennsylvania|M|Head|||58|4343 +3000|TN|Obion County|Woodland Mills city|826|0|2|Pisani|Katheryn|2952|Kansas|F|Spouse|||48|4344 +3000|TN|Obion County|Woodland Mills city|826|0|3|Pisani|Bret|2972|Massachusetts|M|Son|||28|4345 +3000|TN|Obion County|Woodland Mills city|826|0|4|Pisani|Crystal|2976|Vermont|F|Daughter|||24|4346 +3000|TN|Obion County|Woodland Mills city|826|0|5|Pisani|Graig|2978|Mississippi|M|Son|||22|4347 +3000|TN|Obion County|Woodland Mills city|826|0|6|Pisani|Hee|2982|Myanmar|F|Daughter|||18|4348 +3000|TN|Obion County|Woodland Mills city|826|0|7|Pisani|Monika|2986|Iowa|F|Daughter|||14|4349 +3000|TN|Obion County|Woodland Mills city|826|0|8|Pisani|Omer|2992|New York|M|Son|||8|4350 +3000|TN|Obion County|Woodland Mills city|826|0|9|Pisani|Linette|2994|Tokelau|F|Daughter|||6|4351 +3000|TN|Obion County|Woodland Mills city|826|0|10|Pisani|Milton|2996|South Dakota|M|Son|||4|4352 + +3000|CA|San Luis Obispo County|Los Osos CDP|827|0|1|Hoyte|Malisa Tamesha|2973|French Guiana|F|Head|||27|4353 +3000|CA|San Luis Obispo County|Los Osos CDP|827|0|2|Hoyte|Nyla|2993|North Carolina|F|Daughter|||7|4354 +3000|CA|San Luis Obispo County|Los Osos CDP|827|0|3|Hoyte|Carmelo|2995|Arizona|M|Son|||5|4355 +3000|CA|San Luis Obispo County|Los Osos CDP|827|0|4|Hoyte|Delena Roselle|2999|Florida|F|Daughter|||1|4356 + +3000|MN|Otter Tail County|Dalton city|828|0|1|Smith|Weldon Rey|2966|Massachusetts|M|Head|||34|4357 +3000|MN|Otter Tail County|Dalton city|828|0|2|Smith|Emiko|2983|Rhode Island|F|Spouse|||17|4358 + +3000|IN|Montgomery County|Wingate town|829|0|1|Miller|Jeremiah Felton|2973|Missouri|M|Head|||27|4359 +3000|IN|Montgomery County|Wingate town|829|0|2|Miller|Renee|2981|Georgia|F|Spouse|||19|4360 + +3000|PA|Northampton County|Chapman borough|830|0|1|Harvill|Otis Eddy|2981|Arizona|M|Head|||19|4361 +3000|PA|Northampton County|Chapman borough|830|0|2|Harvill|Concetta|2999|Pennsylvania|F|Daughter|||1|4362 + +3000|NY|Oswego County|Amboy town|831|0|1|Smith|Windy|2961|Nevada|F|Head|||39|4363 +3000|NY|Oswego County|Amboy town|831|0|2|Smith|Onie|2983|West Virginia|F|Daughter|||17|4364 +3000|NY|Oswego County|Amboy town|831|0|3|Smith|Antonia|2987|Missouri|M|Son|||13|4365 +3000|NY|Oswego County|Amboy town|831|0|4|Smith|Marcia|2989|Hawaii|F|Daughter|||11|4366 +3000|NY|Oswego County|Amboy town|831|0|5|Smith|Refugio|2993|Alabama|F|Daughter|||7|4367 +3000|NY|Oswego County|Amboy town|831|0|6|Smith|Mika|2997|Massachusetts|F|Daughter|||3|4368 +3000|NY|Oswego County|Amboy town|831|0|7|Smith|Gennie|2999|Mississippi|F|Daughter|||1|4369 + +3000|OH|Wayne County|Kidron CDP|832|0|1|Stoute|Mauricio Taylor|2969|Kentucky|M|Head|||31|4370 +3000|OH|Wayne County|Kidron CDP|832|0|2|Stoute|Rebbeca|2987|Oklahoma|F|Daughter|||13|4371 +3000|OH|Wayne County|Kidron CDP|832|0|3|Stoute|Marylin|2989|Montana|F|Daughter|||11|4372 +3000|OH|Wayne County|Kidron CDP|832|0|4|Stoute|Marsha|2991|Nevada|F|Daughter|||9|4373 +3000|OH|Wayne County|Kidron CDP|832|0|5|Stoute|Tiana|2993|Ethiopia|F|Daughter|||7|4374 +3000|OH|Wayne County|Kidron CDP|832|0|6|Stoute|Ahmed Wade|2995|Montana|M|Son|||5|4375 + +3000|WV|Calhoun County|Grantsville town|833|0|1|Propes|Pasquale Danial|2949|Alaska|M|Head|||51|4376 +3000|WV|Calhoun County|Grantsville town|833|0|2|Propes|Brianne|2949|Mongolia|F|Spouse|||51|4377 +3000|WV|Calhoun County|Grantsville town|833|0|3|Propes|Calvin|2969|Georgia|M|Son|||31|4378 +3000|WV|Calhoun County|Grantsville town|833|0|4|Propes|Yuki|2985|Maryland|F|Daughter|||15|4379 +3000|WV|Calhoun County|Grantsville town|833|0|5|Propes|Eleanora|2989|Kentucky|F|Daughter|||11|4380 +3000|WV|Calhoun County|Grantsville town|833|0|6|Propes|Tressa|2991|Iowa|F|Daughter|||9|4381 + +3000|WI|Lafayette County|Wiota town|834|0|1|Etsitty|Stacey Al|2981|Wyoming|M|Head|||19|4382 +3000|WI|Lafayette County|Wiota town|834|0|2|Etsitty|Millicent|2983|Alaska|F|Spouse|||17|4383 + +3000|MN|Chippewa County|Rheiderland township|835|0|1|Babe|Eldridge Enoch|2944|Gibraltar|M|Head|||56|4384 +3000|MN|Chippewa County|Rheiderland township|835|0|2|Babe|Vennie Tonia|2953|New Jersey|F|Spouse|||47|4385 +3000|MN|Chippewa County|Rheiderland township|835|0|3|Babe|Loretta|2975|Rhode Island|F|Daughter|||25|4386 +3000|MN|Chippewa County|Rheiderland township|835|0|4|Babe|Gonzalo|2979|Vermont|M|Son|||21|4387 +3000|MN|Chippewa County|Rheiderland township|835|0|5|Babe|Roselee|2981|Alabama|F|Daughter|||19|4388 +3000|MN|Chippewa County|Rheiderland township|835|0|6|Babe|Andre|2987|Pennsylvania|M|Son|||13|4389 +3000|MN|Chippewa County|Rheiderland township|835|0|7|Babe|Lois|2989|Mexico|F|Daughter|||11|4390 +3000|MN|Chippewa County|Rheiderland township|835|0|8|Babe|Demetrius|2991|Montana|F|Daughter|||9|4391 +3000|MN|Chippewa County|Rheiderland township|835|0|9|Babe|Reid|2993|Arizona|M|Son|||7|4392 +3000|MN|Chippewa County|Rheiderland township|835|0|10|Babe|Dino|2997|South Carolina|M|Son|||3|4393 + +3000|PA|Washington County|Wickerham Manor-Fisher CDP|836|0|1|Henderson|Mac Sterling|2971|South Dakota|M|Head|||29|4394 +3000|PA|Washington County|Wickerham Manor-Fisher CDP|836|0|2|Henderson|Carlita|2978|Colorado|F|Spouse|||22|4395 +3000|PA|Washington County|Wickerham Manor-Fisher CDP|836|0|3|Henderson|Titus|2998|Vermont|M|Son|||2|4396 + +3000|PA|Tioga County|Westfield borough|837|0|1|Nordlinger|Kenton Hans|2951|Vermont|M|Head|||49|4397 +3000|PA|Tioga County|Westfield borough|837|0|2|Nordlinger|Delores|2967|United Arab Emirates|F|Spouse|||33|4398 +3000|PA|Tioga County|Westfield borough|837|0|3|Nordlinger|Leana|2991|Western Sahara|F|Daughter|||9|4399 +3000|PA|Tioga County|Westfield borough|837|0|4|Nordlinger|Dione|2993|Delaware|F|Daughter|||7|4400 +3000|PA|Tioga County|Westfield borough|837|0|5|Nordlinger|Garth|2995|Samoa|M|Son|||5|4401 +3000|PA|Tioga County|Westfield borough|837|0|6|Nordlinger|Beatrice|2997|Colorado|F|Daughter|||3|4402 +3000|PA|Tioga County|Westfield borough|837|0|7|Nordlinger|Pearly|2999|Rhode Island|F|Daughter|||1|4403 + +3000|VA|Fairfax County|Tysons Corner CDP|838|0|1|Spann|Melita Ngoc|2969|Massachusetts|F|Head|||31|4404 +3000|VA|Fairfax County|Tysons Corner CDP|838|0|2|Spann|Manuela|2989|Georgia|F|Daughter|||11|4405 +3000|VA|Fairfax County|Tysons Corner CDP|838|0|3|Spann|Magdalena|2991|Wisconsin|F|Daughter|||9|4406 +3000|VA|Fairfax County|Tysons Corner CDP|838|0|4|Spann|Russ|2995|Belize|M|Son|||5|4407 +3000|VA|Fairfax County|Tysons Corner CDP|838|0|5|Spann|Jeremy|2999|Wyoming|F|Daughter|||1|4408 + +3000|AR|Lonoke County|Carlisle city|839|0|1|Nunez|Frankie|2945|Massachusetts|M|Head|||55|4409 +3000|AR|Lonoke County|Carlisle city|839|0|2|Nunez|Randee|2959|Maine|F|Spouse|||41|4410 +3000|AR|Lonoke County|Carlisle city|839|0|3|Nunez|Myrta|2981|Connecticut|F|Daughter|||19|4411 +3000|AR|Lonoke County|Carlisle city|839|0|4|Nunez|Preston|2989|Oklahoma|M|Son|||11|4412 +3000|AR|Lonoke County|Carlisle city|839|0|5|Nunez|Dante|2997|Illinois|M|Son|||3|4413 + +3000|AL|St. Clair County|Ashville city|840|0|1|Boday|Lamont Arnoldo|2938|Croatia|M|Head|||62|4414 +3000|AL|St. Clair County|Ashville city|840|0|2|Boday|Nikki|2977|North Dakota|F|Daughter|||23|4415 +3000|AL|St. Clair County|Ashville city|840|0|3|Boday|Adalberto|2981|Kentucky|M|Son|||19|4416 +3000|AL|St. Clair County|Ashville city|840|0|4|Boday|Darin|2983|Massachusetts|M|Son|||17|4417 +3000|AL|St. Clair County|Ashville city|840|0|5|Boday|Danae|2985|South Dakota|F|Daughter|||15|4418 +3000|AL|St. Clair County|Ashville city|840|0|6|Boday|Galen|2987|Vanuatu|M|Son|||13|4419 +3000|AL|St. Clair County|Ashville city|840|0|7|Boday|Almeta|2989|New Jersey|F|Daughter|||11|4420 +3000|AL|St. Clair County|Ashville city|840|0|8|Boday|Christena|2993|Michigan|F|Daughter|||7|4421 + +3000|MO|DeKalb County|Stewartsville city|841|0|1|Lautt|Kimber|2953|Montana|F|Head|||47|4422 +3000|MO|DeKalb County|Stewartsville city|841|0|2|Lautt|Eduardo Grant|2975|New York|M|Son|||25|4423 +3000|MO|DeKalb County|Stewartsville city|841|0|3|Lautt|Clark|2979|Idaho|M|Son|||21|4424 +3000|MO|DeKalb County|Stewartsville city|841|0|4|Lautt|Heath Aubrey|2985|Oklahoma|M|Son|||15|4425 +3000|MO|DeKalb County|Stewartsville city|841|0|5|Lautt|Bea|2995|West Virginia|F|Daughter|||5|4426 +3000|MO|DeKalb County|Stewartsville city|841|0|6|Lautt|Mignon|2997|Maine|F|Daughter|||3|4427 + +3000|WI|Sauk County|Reedsburg town|842|0|1|Mazariegos|Carrol Kenneth|2962|California|M|Head|||38|4428 +3000|WI|Sauk County|Reedsburg town|842|0|2|Mazariegos|Cecil|2962|Alaska|F|Spouse|||38|4429 +3000|WI|Sauk County|Reedsburg town|842|0|3|Mazariegos|Shavon|2982|Vermont|F|Daughter|||18|4430 +3000|WI|Sauk County|Reedsburg town|842|0|4|Mazariegos|Joaquin|2984|Idaho|M|Son|||16|4431 +3000|WI|Sauk County|Reedsburg town|842|0|5|Mazariegos|Leonard|2986|Nebraska|M|Son|||14|4432 +3000|WI|Sauk County|Reedsburg town|842|0|6|Mazariegos|Nick Vince|2988|Maine|M|Son|||12|4433 +3000|WI|Sauk County|Reedsburg town|842|0|7|Mazariegos|Jacques|2990|Iraq|M|Son|||10|4434 +3000|WI|Sauk County|Reedsburg town|842|0|8|Mazariegos|Donnette|2994|Nevada|F|Daughter|||6|4435 + +3000|IL|Henry County|Cambridge village|843|0|1|Conley|Barry Willian|2937|Haiti|M|Head|||63|4436 +3000|IL|Henry County|Cambridge village|843|0|2|Conley|Pat|2971|French Polynesia|M|Son|||29|4437 +3000|IL|Henry County|Cambridge village|843|0|3|Conley|Yulanda|2975|West Virginia|F|Daughter|||25|4438 +3000|IL|Henry County|Cambridge village|843|0|4|Conley|Paz|2979|Oregon|F|Daughter|||21|4439 +3000|IL|Henry County|Cambridge village|843|0|5|Conley|Nohemi|2985|Mississippi|F|Daughter|||15|4440 +3000|IL|Henry County|Cambridge village|843|0|6|Conley|Chad|2989|Florida|M|Son|||11|4441 +3000|IL|Henry County|Cambridge village|843|0|7|Conley|Lewis|2993|Botswana|F|Daughter|||7|4442 + +3000|SD|Brookings County, Hamlin County|Lake Poinsett CDP|844|0|1|Glembocki|Melvin Clint|2968|Delaware|M|Head|||32|4443 +3000|SD|Brookings County, Hamlin County|Lake Poinsett CDP|844|0|2|Glembocki|Bryce|2992|Netherlands|M|Son|||8|4444 +3000|SD|Brookings County, Hamlin County|Lake Poinsett CDP|844|0|3|Glembocki|Lynne|2994|Texas|F|Daughter|||6|4445 +3000|SD|Brookings County, Hamlin County|Lake Poinsett CDP|844|0|4|Glembocki|Willard Dean|3000|Alabama|M|Son|||0|4446 + +3000|MI|Arenac County|Turner township|845|0|1|Richart|Joesph Sherman|2940|Hawaii|M|Head|||60|4447 +3000|MI|Arenac County|Turner township|845|0|2|Richart|Vicky|2962|Switzerland|F|Spouse|||38|4448 +3000|MI|Arenac County|Turner township|845|0|3|Richart|Esmeralda|2984|Missouri|F|Daughter|||16|4449 +3000|MI|Arenac County|Turner township|845|0|4|Richart|Cheryle|2990|Mali|F|Daughter|||10|4450 +3000|MI|Arenac County|Turner township|845|0|5|Richart|Doretha|2992|Ohio|F|Daughter|||8|4451 +3000|MI|Arenac County|Turner township|845|0|6|Richart|Rolando|2996|Congo|M|Son|||4|4452 +3000|MI|Arenac County|Turner township|845|0|7|Richart|Michal|3000|Utah|F|Daughter|||0|4453 + +3000|IL|Woodford County|Bay View Gardens village|846|0|1|Hakimian|Carmine Fernando|2947|Hawaii|M|Head|||53|4454 +3000|IL|Woodford County|Bay View Gardens village|846|0|2|Hakimian|Gertrude Agripina|2963|South Carolina|F|Spouse|||37|4455 +3000|IL|Woodford County|Bay View Gardens village|846|0|3|Hakimian|Antonette|2983|Madagascar|F|Daughter|||17|4456 +3000|IL|Woodford County|Bay View Gardens village|846|0|4|Hakimian|Nolan|2987|Azerbaijan|M|Son|||13|4457 +3000|IL|Woodford County|Bay View Gardens village|846|0|5|Hakimian|Stevie|2993|Eritrea|F|Daughter|||7|4458 +3000|IL|Woodford County|Bay View Gardens village|846|0|6|Hakimian|Jimmie|2995|Oregon|M|Son|||5|4459 +3000|IL|Woodford County|Bay View Gardens village|846|0|7|Hakimian|Genaro|2999|Idaho|M|Son|||1|4460 + +3000|TX|Parker County|Western Lake CDP|847|0|1|Cass|Trey Donald|2937|Texas|M|Head|||63|4461 +3000|TX|Parker County|Western Lake CDP|847|0|2|Cass|Buffy|2985|Illinois|F|Daughter|||15|4462 +3000|TX|Parker County|Western Lake CDP|847|0|3|Cass|Waltraud|2987|Ohio|F|Daughter|||13|4463 +3000|TX|Parker County|Western Lake CDP|847|0|4|Cass|Edgardo|2989|Massachusetts|M|Son|||11|4464 +3000|TX|Parker County|Western Lake CDP|847|0|5|Cass|Yuki Theresa|2991|West Virginia|F|Daughter|||9|4465 +3000|TX|Parker County|Western Lake CDP|847|0|6|Cass|Mackenzie Delila|2995|South Dakota|F|Daughter|||5|4466 + +3000|CA|San Diego County|La Presa CDP|848|0|1|Sheffey|Lennie|2975|Cambodia|F|Head|||25|4467 +3000|CA|San Diego County|La Presa CDP|848|0|2|Sheffey|Mollie|2997|Fiji|F|Daughter|||3|4468 + +3000|MN|Blue Earth County|Judson township|849|0|1|Anderson|Edgar Dannie|2969|New Hampshire|M|Head|||31|4469 +3000|MN|Blue Earth County|Judson township|849|0|2|Anderson|Christin|2996|Minnesota|F|Daughter|||4|4470 +3000|MN|Blue Earth County|Judson township|849|0|3|Anderson|Micheal|2998|Idaho|M|Son|||2|4471 + +3000|MN|Jackson County|Alpha city|850|0|1|Russom|Gabriel Dewey|2943|New Jersey|M|Head|||57|4472 +3000|MN|Jackson County|Alpha city|850|0|2|Russom|Wm|2961|Florida|M|Son|||39|4473 +3000|MN|Jackson County|Alpha city|850|0|3|Russom|Senaida|2967|Guyana|F|Daughter|||33|4474 +3000|MN|Jackson County|Alpha city|850|0|4|Russom|Ernest|2971|South Dakota|M|Son|||29|4475 +3000|MN|Jackson County|Alpha city|850|0|5|Russom|John|2983|North Dakota|M|Son|||17|4476 +3000|MN|Jackson County|Alpha city|850|0|6|Russom|George|2985|Belize|M|Son|||15|4477 +3000|MN|Jackson County|Alpha city|850|0|7|Russom|Frankie Willis|2997|Washington|M|Son|||3|4478 +3000|MN|Jackson County|Alpha city|850|0|8|Russom|Bryce|2999|Alaska|M|Son|||1|4479 + +3000|IA|Iowa County|Millersburg city|851|0|1|Choy|Ignacio Steven|2958|Florida|M|Head|||42|4480 +3000|IA|Iowa County|Millersburg city|851|0|2|Choy|Amanda|2968|North Dakota|F|Spouse|||32|4481 +3000|IA|Iowa County|Millersburg city|851|0|3|Choy|Retha|2988|Louisiana|F|Daughter|||12|4482 +3000|IA|Iowa County|Millersburg city|851|0|4|Choy|Rolland|2994|South Dakota|M|Son|||6|4483 +3000|IA|Iowa County|Millersburg city|851|0|5|Choy|Lindsey|2996|Massachusetts|F|Daughter|||4|4484 +3000|IA|Iowa County|Millersburg city|851|0|6|Choy|Corey|2998|Delaware|M|Son|||2|4485 +3000|IA|Iowa County|Millersburg city|851|0|7|Choy|Fredia|3000|Rhode Island|F|Daughter|||0|4486 + +3000|MN|St. Louis County|Cherry township|852|0|1|Dupre|Laurence Cornelius|2967|New Jersey|M|Head|||33|4487 +3000|MN|St. Louis County|Cherry township|852|0|2|Dupre|Hyun Tayna|2977|Arkansas|F|Spouse|||23|4488 +3000|MN|St. Louis County|Cherry township|852|0|3|Dupre|Peter|2997|United Arab Emirates|M|Son|||3|4489 + +3000|NY|Westchester County|Rye town|853|0|1|Baker|Jed Aaron|2966|Ukraine|M|Head|||34|4490 +3000|NY|Westchester County|Rye town|853|0|2|Baker|Akilah|2983|South Carolina|F|Spouse|||17|4491 + +3000|WI|Rusk County|Grant town|854|0|1|Havnen|Chang|2973|Iowa|F|Head|||27|4492 +3000|WI|Rusk County|Grant town|854|0|2|Havnen|Gustavo|2993|Cambodia|M|Son|||7|4493 + +3000|MN|Winona County|Utica city|855|0|1|Che|Brandon Elisha|2949|Benin|M|Head|||51|4494 +3000|MN|Winona County|Utica city|855|0|2|Che|William|2969|Mississippi|M|Son|||31|4495 +3000|MN|Winona County|Utica city|855|0|3|Che|Carl Denver|2985|Namibia|M|Son|||15|4496 +3000|MN|Winona County|Utica city|855|0|4|Che|Fernando|2995|Greece|M|Son|||5|4497 +3000|MN|Winona County|Utica city|855|0|5|Che|Chloe|2999|Kansas|F|Daughter|||1|4498 + +3000|WI|Walworth County|Fontana-on-Geneva Lake village|856|0|1|Howard|Darius Colton|2963|New Hampshire|M|Head|||37|4499 +3000|WI|Walworth County|Fontana-on-Geneva Lake village|856|0|2|Howard|Jeannette|2984|North Dakota|F|Spouse|||16|4500 + +3000|CO|Larimer County|Timnath town|857|0|1|Bonnell|Jarrett Allen|2950|Alaska|M|Head|||50|4501 +3000|CO|Larimer County|Timnath town|857|0|2|Bonnell|Willia|2957|Arizona|F|Spouse|||43|4502 +3000|CO|Larimer County|Timnath town|857|0|3|Bonnell|Ngoc Maryanna|2981|Delaware|F|Daughter|||19|4503 +3000|CO|Larimer County|Timnath town|857|0|4|Bonnell|Odell|2987|Wyoming|M|Son|||13|4504 +3000|CO|Larimer County|Timnath town|857|0|5|Bonnell|Tammie|2989|Ghana|F|Daughter|||11|4505 +3000|CO|Larimer County|Timnath town|857|0|6|Bonnell|Morgan Cyril|2991|Florida|M|Son|||9|4506 +3000|CO|Larimer County|Timnath town|857|0|7|Bonnell|Edwardo Michael|2993|Wyoming|M|Son|||7|4507 +3000|CO|Larimer County|Timnath town|857|0|8|Bonnell|Warren|2995|Delaware|M|Son|||5|4508 +3000|CO|Larimer County|Timnath town|857|0|9|Bonnell|Booker|2997|Colorado|M|Son|||3|4509 + +3000|PR|Arecibo Municipio|Animas comunidad|858|0|1|Herr|Ward|2981|Wyoming|M|Head|||19|4510 +3000|PR|Arecibo Municipio|Animas comunidad|858|0|2|Herr|Coleen|2977|Arkansas|F|Spouse|||23|4511 +3000|PR|Arecibo Municipio|Animas comunidad|858|0|3|Herr|Darrick|2997|Moldova, Republic Of|M|Son|||3|4512 + +3000|AZ|Maricopa County|Gilbert town|859|0|1|Young|Keturah|2949|California|F|Head|||51|4513 +3000|AZ|Maricopa County|Gilbert town|859|0|2|Young|Cecila Anisa|2971|Texas|F|Daughter|||29|4514 +3000|AZ|Maricopa County|Gilbert town|859|0|3|Young|Kendall|2975|Alaska|M|Son|||25|4515 +3000|AZ|Maricopa County|Gilbert town|859|0|4|Young|Eduardo|2989|Pennsylvania|M|Son|||11|4516 +3000|AZ|Maricopa County|Gilbert town|859|0|5|Young|Sona|2991|Oklahoma|F|Daughter|||9|4517 +3000|AZ|Maricopa County|Gilbert town|859|0|6|Young|Burl|2993|Kenya|M|Son|||7|4518 +3000|AZ|Maricopa County|Gilbert town|859|0|7|Young|Taren|2995|Maryland|F|Daughter|||5|4519 +3000|AZ|Maricopa County|Gilbert town|859|0|8|Young|Oliver|2997|Mississippi|M|Son|||3|4520 + +3000|NY|Monroe County|Mendon town|860|0|1|Faro|Larry Leopoldo|2962|Belgium|M|Head|||38|4521 +3000|NY|Monroe County|Mendon town|860|0|2|Faro|Page|2980|Maine|F|Spouse|||20|4522 +3000|NY|Monroe County|Mendon town|860|0|3|Faro|Rickie|3000|Guatemala|F|Daughter|||0|4523 + +3000|PA|Lancaster County|Lititz borough|861|0|1|Lazos|Jc Dave|2975|South Carolina|M|Head|||25|4524 +3000|PA|Lancaster County|Lititz borough|861|0|2|Lazos|Krista Daphine|2984|El Salvador|F|Spouse|||16|4525 + +3000|PA|Centre County|South Philipsburg CDP|862|0|1|Gehlbach|Billie Tom|2979|Kansas|M|Head|||21|4526 +3000|PA|Centre County|South Philipsburg CDP|862|0|2|Gehlbach|Tameka|2978|Massachusetts|F|Spouse|||22|4527 +3000|PA|Centre County|South Philipsburg CDP|862|0|3|Gehlbach|Perry|3000|Nevada|F|Daughter|||0|4528 + +3000|PA|Perry County|Juniata township|863|0|1|Keys|Erline|2963|Iowa|F|Head|||37|4529 +3000|PA|Perry County|Juniata township|863|0|2|Keys|Basil|2987|North Dakota|M|Son|||13|4530 +3000|PA|Perry County|Juniata township|863|0|3|Keys|Larisa Tarsha|2991|Papua New Guinea|F|Daughter|||9|4531 +3000|PA|Perry County|Juniata township|863|0|4|Keys|Robbie|2995|Missouri|M|Son|||5|4532 +3000|PA|Perry County|Juniata township|863|0|5|Keys|Donnie|2997|Nebraska|F|Daughter|||3|4533 + +3000|ID|Caribou County|Soda Springs city|864|0|1|Gault|Randal Dwight|2982|Bangladesh|M|Head|||18|4534 + +3000|CA|San Luis Obispo County|Templeton CDP|865|0|1|Parks|Gustavo Terry|2940|Martinique|M|Head|||60|4535 +3000|CA|San Luis Obispo County|Templeton CDP|865|0|2|Parks|Kristal|2954|Virgin Islands, British|F|Spouse|||46|4536 +3000|CA|San Luis Obispo County|Templeton CDP|865|0|3|Parks|Sumiko|2974|Cocos (keeling) Islands|F|Daughter|||26|4537 +3000|CA|San Luis Obispo County|Templeton CDP|865|0|4|Parks|Terresa|2986|Michigan|F|Daughter|||14|4538 +3000|CA|San Luis Obispo County|Templeton CDP|865|0|5|Parks|Arlean|2988|Michigan|F|Daughter|||12|4539 +3000|CA|San Luis Obispo County|Templeton CDP|865|0|6|Parks|Delphine Shanon|2994|Myanmar|F|Daughter|||6|4540 +3000|CA|San Luis Obispo County|Templeton CDP|865|0|7|Parks|Monty|2996|Iowa|M|Son|||4|4541 +3000|CA|San Luis Obispo County|Templeton CDP|865|0|8|Parks|Wm|3000|Pennsylvania|M|Son|||0|4542 + +3000|PA|Bucks County|Eddington CDP|866|0|1|Ancira|Marylynn|2970|Maine|F|Head|||30|4543 +3000|PA|Bucks County|Eddington CDP|866|0|2|Ancira|Kris|2990|Arkansas|F|Daughter|||10|4544 +3000|PA|Bucks County|Eddington CDP|866|0|3|Ancira|Edward|2994|Mississippi|M|Son|||6|4545 + +3000|NY|Livingston County|Groveland town|867|0|1|Bourque|Chadwick Rickey|2973|Michigan|M|Head|||27|4546 +3000|NY|Livingston County|Groveland town|867|0|2|Bourque|Carolyn|2993|Massachusetts|F|Daughter|||7|4547 +3000|NY|Livingston County|Groveland town|867|0|3|Bourque|Ashly|2995|Lesotho|F|Daughter|||5|4548 +3000|NY|Livingston County|Groveland town|867|0|4|Bourque|Rogelio|2997|Minnesota|M|Son|||3|4549 + +3000|MN|Cass County|Beulah township|868|0|1|Eastmond|Hubert Manual|2955|North Carolina|M|Head|||45|4550 +3000|MN|Cass County|Beulah township|868|0|2|Eastmond|Carie Vivienne|2964|Nevada|F|Spouse|||36|4551 +3000|MN|Cass County|Beulah township|868|0|3|Eastmond|Hobert|2988|Wyoming|M|Son|||12|4552 +3000|MN|Cass County|Beulah township|868|0|4|Eastmond|Tobie|2992|Nebraska|F|Daughter|||8|4553 +3000|MN|Cass County|Beulah township|868|0|5|Eastmond|Hector|2998|Michigan|M|Son|||2|4554 +3000|MN|Cass County|Beulah township|868|0|6|Eastmond|Johnny|3000|Saint Helena|M|Son|||0|4555 + +3000|AR|Garland County|Lonsdale town|869|0|1|Fugate|Ivory Arron|2968|New Hampshire|M|Head|||32|4556 +3000|AR|Garland County|Lonsdale town|869|0|2|Fugate|Calista|2982|Malaysia|F|Spouse|||18|4557 + +3000|WI|Polk County|Centuria village|870|0|1|Schultz|Lane Arron|2965|Alabama|M|Head|||35|4558 +3000|WI|Polk County|Centuria village|870|0|2|Schultz|Mariam|2967|Connecticut|F|Spouse|||33|4559 +3000|WI|Polk County|Centuria village|870|0|3|Schultz|Euna Amelia|2993|Idaho|F|Daughter|||7|4560 +3000|WI|Polk County|Centuria village|870|0|4|Schultz|Allison|2995|Ohio|F|Daughter|||5|4561 +3000|WI|Polk County|Centuria village|870|0|5|Schultz|Fabian|2999|Alabama|M|Son|||1|4562 + +3000|KY|Trimble County|Bedford city|871|0|1|Ronk|Kirby Lanny|2968|North Dakota|M|Head|||32|4563 +3000|KY|Trimble County|Bedford city|871|0|2|Ronk|Kimberli|2980|Wyoming|F|Spouse|||20|4564 +3000|KY|Trimble County|Bedford city|871|0|3|Ronk|Kerri|3000|Michigan|F|Daughter|||0|4565 + +3000|TX|El Paso County|Anthony town|872|0|1|Peth|Dwayne Dewitt|2937|Virginia|M|Head|||63|4566 +3000|TX|El Paso County|Anthony town|872|0|2|Peth|Tracey|2943|Hawaii|F|Spouse|||57|4567 +3000|TX|El Paso County|Anthony town|872|0|3|Peth|Berenice Hertha|2969|Vermont|F|Daughter|||31|4568 +3000|TX|El Paso County|Anthony town|872|0|4|Peth|Gabriel|2977|Illinois|M|Son|||23|4569 +3000|TX|El Paso County|Anthony town|872|0|5|Peth|Diedre|2987|Alaska|F|Daughter|||13|4570 +3000|TX|El Paso County|Anthony town|872|0|6|Peth|Phil|2989|Kosovo|M|Son|||11|4571 + +3000|OR|Wheeler County|Spray town|873|0|1|Teaff|Reuben|2947|Oregon|M|Head|||53|4572 +3000|OR|Wheeler County|Spray town|873|0|2|Teaff|April|2946|Arkansas|F|Spouse|||54|4573 +3000|OR|Wheeler County|Spray town|873|0|3|Teaff|Danuta|2966|Pennsylvania|F|Daughter|||34|4574 +3000|OR|Wheeler County|Spray town|873|0|4|Teaff|Buford|2968|Kansas|M|Son|||32|4575 +3000|OR|Wheeler County|Spray town|873|0|5|Teaff|Dante|2984|Antarctica|M|Son|||16|4576 +3000|OR|Wheeler County|Spray town|873|0|6|Teaff|Drew|2992|Connecticut|M|Son|||8|4577 +3000|OR|Wheeler County|Spray town|873|0|7|Teaff|Heike|2998|Honduras|F|Daughter|||2|4578 +3000|OR|Wheeler County|Spray town|873|0|8|Teaff|Cierra|3000|California|F|Daughter|||0|4579 + +3000|WI|Jackson County|Garfield town|874|0|1|Bellomy|Randolph|2968|South Carolina|M|Head|||32|4580 +3000|WI|Jackson County|Garfield town|874|0|2|Bellomy|Mirian|2970|Georgia|F|Spouse|||30|4581 +3000|WI|Jackson County|Garfield town|874|0|3|Bellomy|Cyrstal|2990|Indonesia|F|Daughter|||10|4582 +3000|WI|Jackson County|Garfield town|874|0|4|Bellomy|Errol|2998|Angola|M|Son|||2|4583 +3000|WI|Jackson County|Garfield town|874|0|5|Bellomy|Wilda|3000|Wyoming|F|Daughter|||0|4584 + +3000|LA|Tangipahoa Parish|Tangipahoa village|875|0|1|Simms|Arthur Mikel|2947|Colorado|M|Head|||53|4585 +3000|LA|Tangipahoa Parish|Tangipahoa village|875|0|2|Simms|Kathrine Delora|2961|Maine|F|Spouse|||39|4586 +3000|LA|Tangipahoa Parish|Tangipahoa village|875|0|3|Simms|Latia|2987|North Dakota|F|Daughter|||13|4587 +3000|LA|Tangipahoa Parish|Tangipahoa village|875|0|4|Simms|Janett|2989|North Carolina|F|Daughter|||11|4588 +3000|LA|Tangipahoa Parish|Tangipahoa village|875|0|5|Simms|Milo|2995|North Carolina|M|Son|||5|4589 +3000|LA|Tangipahoa Parish|Tangipahoa village|875|0|6|Simms|Shayna|2997|Ohio|F|Daughter|||3|4590 + +3000|MN|Mille Lacs County|Isle city|876|0|1|Moua|Jackson Mac|2946|Georgia|M|Head|||54|4591 +3000|MN|Mille Lacs County|Isle city|876|0|2|Moua|Season|2967|Kentucky|F|Spouse|||33|4592 +3000|MN|Mille Lacs County|Isle city|876|0|3|Moua|Adam|2987|Madagascar|F|Daughter|||13|4593 +3000|MN|Mille Lacs County|Isle city|876|0|4|Moua|Davina|2993|Idaho|F|Daughter|||7|4594 +3000|MN|Mille Lacs County|Isle city|876|0|5|Moua|Andrea|2997|Djibouti|M|Son|||3|4595 +3000|MN|Mille Lacs County|Isle city|876|0|6|Moua|Blake|2999|California|M|Son|||1|4596 + +3000|WI|Dane County|Middleton town|877|0|1|Cisneros|Miquel|2967|Georgia|M|Head|||33|4597 +3000|WI|Dane County|Middleton town|877|0|2|Cisneros|Angelic|2973|North Carolina|F|Spouse|||27|4598 +3000|WI|Dane County|Middleton town|877|0|3|Cisneros|Kenyetta|2995|Romania|F|Daughter|||5|4599 +3000|WI|Dane County|Middleton town|877|0|4|Cisneros|Cole|2997|Arkansas|M|Son|||3|4600 + +3000|ME|Washington County|Cherryfield town|878|0|1|Navarro|Titus Ian|2965|California|M|Head|||35|4601 +3000|ME|Washington County|Cherryfield town|878|0|2|Navarro|Ruthanne|2975|Alaska|F|Spouse|||25|4602 +3000|ME|Washington County|Cherryfield town|878|0|3|Navarro|Antonio|2997|Heard Island And Mcdonald Islands|F|Daughter|||3|4603 + +3000|KS|Reno County|Arlington city|879|0|1|Garrett|Diego Christoper|2945|Nebraska|M|Head|||55|4604 +3000|KS|Reno County|Arlington city|879|0|2|Garrett|Nicol|2950|Oklahoma|F|Spouse|||50|4605 +3000|KS|Reno County|Arlington city|879|0|3|Garrett|Cherrie|2978|Colorado|F|Daughter|||22|4606 +3000|KS|Reno County|Arlington city|879|0|4|Garrett|Damien Derek|2982|North Carolina|M|Son|||18|4607 +3000|KS|Reno County|Arlington city|879|0|5|Garrett|Parker|2984|Idaho|M|Son|||16|4608 +3000|KS|Reno County|Arlington city|879|0|6|Garrett|Lorie|2990|Iowa|F|Daughter|||10|4609 +3000|KS|Reno County|Arlington city|879|0|7|Garrett|Robbi|2992|Virginia|F|Daughter|||8|4610 + +3000|GA|Jefferson County|Matthews CDP|880|0|1|Diani|Esteban Benny|2947|Indiana|M|Head|||53|4611 +3000|GA|Jefferson County|Matthews CDP|880|0|2|Diani|Laurette|2992|Bouvet Island|F|Daughter|||8|4612 +3000|GA|Jefferson County|Matthews CDP|880|0|3|Diani|June Tameka|2994|Venezuela|F|Daughter|||6|4613 +3000|GA|Jefferson County|Matthews CDP|880|0|4|Diani|Angelo|2996|Arizona|M|Son|||4|4614 +3000|GA|Jefferson County|Matthews CDP|880|0|5|Diani|Victor|2998|Saint Pierre And Miquelon|M|Son|||2|4615 + +3000|AK|Lake and Peninsula Borough|Chignik Lake CDP|881|0|1|Cull|Jarvis Maria|2963|Ecuador|M|Head|||37|4616 +3000|AK|Lake and Peninsula Borough|Chignik Lake CDP|881|0|2|Cull|Natasha|2986|Pennsylvania|F|Daughter|||14|4617 +3000|AK|Lake and Peninsula Borough|Chignik Lake CDP|881|0|3|Cull|Seth|2988|North Carolina|M|Son|||12|4618 +3000|AK|Lake and Peninsula Borough|Chignik Lake CDP|881|0|4|Cull|Santos|2990|Iowa|M|Son|||10|4619 +3000|AK|Lake and Peninsula Borough|Chignik Lake CDP|881|0|5|Cull|Marquis|2994|Brunei Darussalam|M|Son|||6|4620 +3000|AK|Lake and Peninsula Borough|Chignik Lake CDP|881|0|6|Cull|Fletcher|2996|Indiana|M|Son|||4|4621 + +3000|IN|Miami County|Denver town|882|0|1|Sitaca|Arturo Norberto|2973|Michigan|M|Head|||27|4622 +3000|IN|Miami County|Denver town|882|0|2|Sitaca|Delicia|2976|West Virginia|F|Spouse|||24|4623 +3000|IN|Miami County|Denver town|882|0|3|Sitaca|Chelsea|2998|Kansas|F|Daughter|||2|4624 + +3000|MA|Essex County|County Subdivisions not defined|883|0|1|Tullis|Williams|2956|New Hampshire|M|Head|||44|4625 +3000|MA|Essex County|County Subdivisions not defined|883|0|2|Tullis|Dierdre Lesley|2956|Thailand|F|Spouse|||44|4626 +3000|MA|Essex County|County Subdivisions not defined|883|0|3|Tullis|Florencia|2980|Missouri|F|Daughter|||20|4627 +3000|MA|Essex County|County Subdivisions not defined|883|0|4|Tullis|Herbert|2982|Namibia|M|Son|||18|4628 +3000|MA|Essex County|County Subdivisions not defined|883|0|5|Tullis|Josette|2984|Niger|F|Daughter|||16|4629 +3000|MA|Essex County|County Subdivisions not defined|883|0|6|Tullis|Demetrius Cristopher|2990|Vermont|M|Son|||10|4630 +3000|MA|Essex County|County Subdivisions not defined|883|0|7|Tullis|Andy|2998|Oregon|M|Son|||2|4631 + +3000|WI|La Crosse County|La Crosse city|884|0|1|Satterthwaite|Jorge Herb|2954|Oklahoma|M|Head|||46|4632 +3000|WI|La Crosse County|La Crosse city|884|0|2|Satterthwaite|Anastacia|2966|Arizona|F|Spouse|||34|4633 +3000|WI|La Crosse County|La Crosse city|884|0|3|Satterthwaite|Dan|2990|Fiji|M|Son|||10|4634 +3000|WI|La Crosse County|La Crosse city|884|0|4|Satterthwaite|Samella|2996|Ohio|F|Daughter|||4|4635 +3000|WI|La Crosse County|La Crosse city|884|0|5|Satterthwaite|Stormy|2998|Mississippi|F|Daughter|||2|4636 +3000|WI|La Crosse County|La Crosse city|884|0|6|Satterthwaite|Darby|3000|Washington|F|Daughter|||0|4637 + +3000|WY|Hot Springs County|Kirby town|885|0|1|May|Thomas|2938|Hawaii|F|Head|||62|4638 +3000|WY|Hot Springs County|Kirby town|885|0|2|May|Roman|2964|Connecticut|M|Son|||36|4639 +3000|WY|Hot Springs County|Kirby town|885|0|3|May|Darin|2968|South Dakota|M|Son|||32|4640 +3000|WY|Hot Springs County|Kirby town|885|0|4|May|Santos|2978|California|M|Son|||22|4641 +3000|WY|Hot Springs County|Kirby town|885|0|5|May|Ricardo|2980|Idaho|M|Son|||20|4642 +3000|WY|Hot Springs County|Kirby town|885|0|6|May|Lakeesha|2982|Alabama|F|Daughter|||18|4643 +3000|WY|Hot Springs County|Kirby town|885|0|7|May|Lilli|2986|Alabama|F|Daughter|||14|4644 + +3000|MI|Kalamazoo County|Ross township|886|0|1|Flores|Christiane|2971|New Hampshire|F|Head|||29|4645 +3000|MI|Kalamazoo County|Ross township|886|0|2|Flores|Brain|2997|Iowa|M|Son|||3|4646 +3000|MI|Kalamazoo County|Ross township|886|0|3|Flores|Marvin|2999|Wisconsin|M|Son|||1|4647 + +3000|MI|Lenawee County|Adrian city|887|0|1|Meade|Tory Everett|2963|Australia|M|Head|||37|4648 +3000|MI|Lenawee County|Adrian city|887|0|2|Meade|Vina|2991|North Carolina|F|Daughter|||9|4649 +3000|MI|Lenawee County|Adrian city|887|0|3|Meade|Kendrick|2993|Idaho|M|Son|||7|4650 +3000|MI|Lenawee County|Adrian city|887|0|4|Meade|Barrett|2995|Kentucky|M|Son|||5|4651 +3000|MI|Lenawee County|Adrian city|887|0|5|Meade|Edmund Stefan|2999|Maine|M|Son|||1|4652 + +3000|MI|Barry County|Hastings charter township|888|0|1|Jenkins|Rufus Gilbert|2954|Vermont|M|Head|||46|4653 +3000|MI|Barry County|Hastings charter township|888|0|2|Jenkins|Eloise|2977|Morocco|F|Spouse|||23|4654 +3000|MI|Barry County|Hastings charter township|888|0|3|Jenkins|Grace|2997|Tanzania, United Republic Of|F|Daughter|||3|4655 +3000|MI|Barry County|Hastings charter township|888|0|4|Jenkins|Hong|2999|Puerto Rico|F|Daughter|||1|4656 + +3000|NE|Dodge County|Inglewood village|889|0|1|Shaffer|Vance Harland|2959|Massachusetts|M|Head|||41|4657 +3000|NE|Dodge County|Inglewood village|889|0|2|Shaffer|Barb|2978|Minnesota|F|Spouse|||22|4658 +3000|NE|Dodge County|Inglewood village|889|0|3|Shaffer|Pedro Robert|3000|Washington|M|Son|||0|4659 + +3000|CT|New London County|County Subdivisions not defined|890|0|1|Wichman|Felicitas Samatha|2954|Pennsylvania|F|Head|||46|4660 +3000|CT|New London County|County Subdivisions not defined|890|0|2|Wichman|Hosea|2974|Wisconsin|M|Son|||26|4661 +3000|CT|New London County|County Subdivisions not defined|890|0|3|Wichman|Valentine|2986|Martinique|M|Son|||14|4662 +3000|CT|New London County|County Subdivisions not defined|890|0|4|Wichman|Brad|3000|Vermont|M|Son|||0|4663 + +3000|MN|Traverse County|Walls township|891|0|1|Herrera|Eric|2951|Arizona|F|Head|||49|4664 +3000|MN|Traverse County|Walls township|891|0|2|Herrera|Benton Raymond|2975|Gibraltar|M|Son|||25|4665 +3000|MN|Traverse County|Walls township|891|0|3|Herrera|Ling|2987|Uganda|F|Daughter|||13|4666 +3000|MN|Traverse County|Walls township|891|0|4|Herrera|Shila|2989|Oregon|F|Daughter|||11|4667 +3000|MN|Traverse County|Walls township|891|0|5|Herrera|Walter|2993|Aruba|F|Daughter|||7|4668 +3000|MN|Traverse County|Walls township|891|0|6|Herrera|Cammy|2995|South Carolina|F|Daughter|||5|4669 + +3000|IL|Jo Daviess County|Hanover village|892|0|1|Touchet|Tommie Jacques|2978|Maryland|M|Head|||22|4670 +3000|IL|Jo Daviess County|Hanover village|892|0|2|Touchet|Lorena|2979|Maryland|F|Spouse|||21|4671 + +3000|KY|Jefferson County|Beechwood Village city|893|0|1|Sullivan|Waylon Lonny|2941|Oklahoma|M|Head|||59|4672 +3000|KY|Jefferson County|Beechwood Village city|893|0|2|Sullivan|Laquita|2943|Maryland|F|Spouse|||57|4673 +3000|KY|Jefferson County|Beechwood Village city|893|0|3|Sullivan|Nohemi|2967|Nevada|F|Daughter|||33|4674 +3000|KY|Jefferson County|Beechwood Village city|893|0|4|Sullivan|Glynda|2981|Cyprus|F|Daughter|||19|4675 +3000|KY|Jefferson County|Beechwood Village city|893|0|5|Sullivan|Ellis|2987|Connecticut|M|Son|||13|4676 +3000|KY|Jefferson County|Beechwood Village city|893|0|6|Sullivan|Barry|2991|Oklahoma|M|Son|||9|4677 +3000|KY|Jefferson County|Beechwood Village city|893|0|7|Sullivan|Milan|2995|South Carolina|M|Son|||5|4678 +3000|KY|Jefferson County|Beechwood Village city|893|0|8|Sullivan|Tandy|2997|Florida|F|Daughter|||3|4679 + +3000|NH|Grafton County|Groton town|894|0|1|Bristol|Andres Elden|2979|Colorado|M|Head|||21|4680 +3000|NH|Grafton County|Groton town|894|0|2|Bristol|Cyndi|2976|Nebraska|F|Spouse|||24|4681 +3000|NH|Grafton County|Groton town|894|0|3|Bristol|Wilber|2996|Vermont|M|Son|||4|4682 +3000|NH|Grafton County|Groton town|894|0|4|Bristol|Evie|2998|New York|F|Daughter|||2|4683 +3000|NH|Grafton County|Groton town|894|0|5|Bristol|Bart|3000|Alabama|M|Son|||0|4684 + +3000|CT|Fairfield County|Easton town|895|0|1|Poe|Stanford Dylan|2966|Tennessee|M|Head|||34|4685 +3000|CT|Fairfield County|Easton town|895|0|2|Poe|Benjamin|2994|United Kingdom|M|Son|||6|4686 +3000|CT|Fairfield County|Easton town|895|0|3|Poe|Shandra|2996|Maryland|F|Daughter|||4|4687 +3000|CT|Fairfield County|Easton town|895|0|4|Poe|Myriam|3000|New Mexico|F|Daughter|||0|4688 + +3000|NE|Knox County|Bazile Mills village|896|0|1|Burgess|Shad Alonzo|2942|Hawaii|M|Head|||58|4689 +3000|NE|Knox County|Bazile Mills village|896|0|2|Burgess|Ocie|2946|South Carolina|F|Spouse|||54|4690 +3000|NE|Knox County|Bazile Mills village|896|0|3|Burgess|Kristie|2966|Illinois|F|Daughter|||34|4691 +3000|NE|Knox County|Bazile Mills village|896|0|4|Burgess|Michel|2968|Wyoming|M|Son|||32|4692 +3000|NE|Knox County|Bazile Mills village|896|0|5|Burgess|Rochelle|2972|South Carolina|F|Daughter|||28|4693 +3000|NE|Knox County|Bazile Mills village|896|0|6|Burgess|Carolann|2980|Delaware|F|Daughter|||20|4694 +3000|NE|Knox County|Bazile Mills village|896|0|7|Burgess|Deshawn|2988|Mississippi|M|Son|||12|4695 +3000|NE|Knox County|Bazile Mills village|896|0|8|Burgess|Tereasa Shenna|2990|Kentucky|F|Daughter|||10|4696 +3000|NE|Knox County|Bazile Mills village|896|0|9|Burgess|Bibi|2994|Idaho|F|Daughter|||6|4697 +3000|NE|Knox County|Bazile Mills village|896|0|10|Burgess|Merna|3000|Myanmar|F|Daughter|||0|4698 + +3000|PA|Crawford County|Hydetown borough|897|0|1|Alvarez|Josh|2963|Pennsylvania|M|Head|||37|4699 +3000|PA|Crawford County|Hydetown borough|897|0|2|Alvarez|Wayne|2997|Utah|M|Son|||3|4700 + +3000|OR|Coos County|Myrtle Point city|898|0|1|Ordonez|Dana Myron|2940|Andorra|M|Head|||60|4701 +3000|OR|Coos County|Myrtle Point city|898|0|2|Ordonez|Marisela|2958|Nevada|F|Spouse|||42|4702 +3000|OR|Coos County|Myrtle Point city|898|0|3|Ordonez|Darin|2986|North Dakota|M|Son|||14|4703 +3000|OR|Coos County|Myrtle Point city|898|0|4|Ordonez|Roger|2990|Rhode Island|M|Son|||10|4704 +3000|OR|Coos County|Myrtle Point city|898|0|5|Ordonez|Haywood|2992|Tennessee|M|Son|||8|4705 +3000|OR|Coos County|Myrtle Point city|898|0|6|Ordonez|Mauro|2996|Montana|M|Son|||4|4706 +3000|OR|Coos County|Myrtle Point city|898|0|7|Ordonez|Lucien|3000|Massachusetts|M|Son|||0|4707 + +3000|CA|Riverside County|Mead Valley CDP|899|0|1|Stein|Wilbur Christopher|2941|Washington|M|Head|||59|4708 +3000|CA|Riverside County|Mead Valley CDP|899|0|2|Stein|Graham|2988|Arizona|M|Son|||12|4709 +3000|CA|Riverside County|Mead Valley CDP|899|0|3|Stein|Darrin Marlon|2990|Iowa|M|Son|||10|4710 +3000|CA|Riverside County|Mead Valley CDP|899|0|4|Stein|Jeane|2992|New Hampshire|F|Daughter|||8|4711 +3000|CA|Riverside County|Mead Valley CDP|899|0|5|Stein|Kathaleen|3000|Washington|F|Daughter|||0|4712 + +3000|IA|Winnebago County|Scarville city|900|0|1|Applewhite|Burton Issac|2947|North Dakota|M|Head|||53|4713 +3000|IA|Winnebago County|Scarville city|900|0|2|Applewhite|Margret Nadia|2968|Utah|F|Spouse|||32|4714 +3000|IA|Winnebago County|Scarville city|900|0|3|Applewhite|Jacquie Robbie|2988|New York|F|Daughter|||12|4715 +3000|IA|Winnebago County|Scarville city|900|0|4|Applewhite|Carlyn Ruthie|2990|Kentucky|F|Daughter|||10|4716 +3000|IA|Winnebago County|Scarville city|900|0|5|Applewhite|Cathryn Melony|2992|Chile|F|Daughter|||8|4717 +3000|IA|Winnebago County|Scarville city|900|0|6|Applewhite|Dana|2996|Georgia|M|Son|||4|4718 +3000|IA|Winnebago County|Scarville city|900|0|7|Applewhite|Haydee|2998|Australia|F|Daughter|||2|4719 + +3000|OH|Cuyahoga County|Cleveland city|901|0|1|Miklas|Wilson Logan|2952|Missouri|M|Head|||48|4720 +3000|OH|Cuyahoga County|Cleveland city|901|0|2|Miklas|Jonelle|2955|Florida|F|Spouse|||45|4721 +3000|OH|Cuyahoga County|Cleveland city|901|0|3|Miklas|Iluminada Frances|2979|Oregon|F|Daughter|||21|4722 +3000|OH|Cuyahoga County|Cleveland city|901|0|4|Miklas|Hershel|2985|South Carolina|M|Son|||15|4723 +3000|OH|Cuyahoga County|Cleveland city|901|0|5|Miklas|Brenna|2987|Kansas|F|Daughter|||13|4724 +3000|OH|Cuyahoga County|Cleveland city|901|0|6|Miklas|Ruthann|2989|Vermont|F|Daughter|||11|4725 + +3000|OH|Ashtabula County|Ashtabula city|902|0|1|Gago|Noel Howard|2964|Idaho|M|Head|||36|4726 +3000|OH|Ashtabula County|Ashtabula city|902|0|2|Gago|Dayle|3000|California|F|Daughter|||0|4727 + +3000|NM|Bernalillo County|Ponderosa Pine CDP|903|0|1|Shawley|Thaddeus James|2962|Nevada|M|Head|||38|4728 +3000|NM|Bernalillo County|Ponderosa Pine CDP|903|0|2|Shawley|Dona|2973|Ethiopia|F|Spouse|||27|4729 +3000|NM|Bernalillo County|Ponderosa Pine CDP|903|0|3|Shawley|Migdalia|2993|South Carolina|F|Daughter|||7|4730 + +3000|IL|St. Clair County|Darmstadt CDP|904|0|1|Eason|Lamont Russel|2951|Wisconsin|M|Head|||49|4731 +3000|IL|St. Clair County|Darmstadt CDP|904|0|2|Eason|Clelia Kimi|2952|Mongolia|F|Spouse|||48|4732 +3000|IL|St. Clair County|Darmstadt CDP|904|0|3|Eason|Alva|2986|Nebraska|F|Daughter|||14|4733 +3000|IL|St. Clair County|Darmstadt CDP|904|0|4|Eason|Wally|2988|Mississippi|M|Son|||12|4734 +3000|IL|St. Clair County|Darmstadt CDP|904|0|5|Eason|Bonny|2990|Colorado|F|Daughter|||10|4735 +3000|IL|St. Clair County|Darmstadt CDP|904|0|6|Eason|Emile|2992|South Carolina|M|Son|||8|4736 +3000|IL|St. Clair County|Darmstadt CDP|904|0|7|Eason|Nicolas|2996|Colorado|M|Son|||4|4737 +3000|IL|St. Clair County|Darmstadt CDP|904|0|8|Eason|Kerrie Tiera|2998|Maine|F|Daughter|||2|4738 + +3000|MN|Jackson County|Alpha city|905|0|1|Falke|Ian Darell|2974|Cape Verde|M|Head|||26|4739 +3000|MN|Jackson County|Alpha city|905|0|2|Falke|Yu|2979|Oklahoma|F|Spouse|||21|4740 +3000|MN|Jackson County|Alpha city|905|0|3|Falke|Milford|2999|Maine|M|Son|||1|4741 + +3000|MA|Plymouth County|Southfield CDP|906|0|1|Sheaman|Johnie Tyrell|2973|North Carolina|M|Head|||27|4742 +3000|MA|Plymouth County|Southfield CDP|906|0|2|Sheaman|Dominica|2977|Ohio|F|Spouse|||23|4743 +3000|MA|Plymouth County|Southfield CDP|906|0|3|Sheaman|Abel Graig|2997|Netherlands Antilles|M|Son|||3|4744 + +3000|NY|Monroe County|Rush town|907|0|1|Cuadrado|Robin Cory|2940|Connecticut|M|Head|||60|4745 +3000|NY|Monroe County|Rush town|907|0|2|Cuadrado|Debbi|2942|New Hampshire|F|Spouse|||58|4746 +3000|NY|Monroe County|Rush town|907|0|3|Cuadrado|Lina|2964|Oklahoma|F|Daughter|||36|4747 +3000|NY|Monroe County|Rush town|907|0|4|Cuadrado|Ian|2978|Florida|M|Son|||22|4748 +3000|NY|Monroe County|Rush town|907|0|5|Cuadrado|Bettyann|2980|Massachusetts|F|Daughter|||20|4749 +3000|NY|Monroe County|Rush town|907|0|6|Cuadrado|Ryan|2990|Alabama|F|Daughter|||10|4750 +3000|NY|Monroe County|Rush town|907|0|7|Cuadrado|Beau|2994|Washington|M|Son|||6|4751 +3000|NY|Monroe County|Rush town|907|0|8|Cuadrado|Karlyn|2996|Saint Helena|F|Daughter|||4|4752 +3000|NY|Monroe County|Rush town|907|0|9|Cuadrado|Kiara Tracie|2998|Rhode Island|F|Daughter|||2|4753 + +3000|MN|Lyon County|Cottonwood city|908|0|1|Christenson|Hayden Stanton|2963|Montana|M|Head|||37|4754 + +3000|KS|Decatur County|Dresden city|909|0|1|Faraldo|Emerson Chris|2961|Missouri|M|Head|||39|4755 +3000|KS|Decatur County|Dresden city|909|0|2|Faraldo|Lincoln|2983|Palestinian Territory, Occupied|M|Son|||17|4756 +3000|KS|Decatur County|Dresden city|909|0|3|Faraldo|Dexter|2985|Idaho|M|Son|||15|4757 +3000|KS|Decatur County|Dresden city|909|0|4|Faraldo|Andrew|2987|Malaysia|M|Son|||13|4758 +3000|KS|Decatur County|Dresden city|909|0|5|Faraldo|Lashay|2989|Arkansas|F|Daughter|||11|4759 +3000|KS|Decatur County|Dresden city|909|0|6|Faraldo|Emile Everette|2991|North Dakota|M|Son|||9|4760 +3000|KS|Decatur County|Dresden city|909|0|7|Faraldo|Pura|2993|Maine|F|Daughter|||7|4761 +3000|KS|Decatur County|Dresden city|909|0|8|Faraldo|Zack|2995|Macau|M|Son|||5|4762 +3000|KS|Decatur County|Dresden city|909|0|9|Faraldo|Ebony|2997|Lao People's Democratic Republic|F|Daughter|||3|4763 +3000|KS|Decatur County|Dresden city|909|0|10|Faraldo|Hermine|2999|Togo|F|Daughter|||1|4764 + +3000|MI|Eaton County|Bellevue township|910|0|1|Rudy|Rudy Tim|2938|Indiana|M|Head|||62|4765 +3000|MI|Eaton County|Bellevue township|910|0|2|Rudy|Catherine|2945|Romania|F|Spouse|||55|4766 +3000|MI|Eaton County|Bellevue township|910|0|3|Rudy|Adelia|2967|Vermont|F|Daughter|||33|4767 +3000|MI|Eaton County|Bellevue township|910|0|4|Rudy|Tracy Brandon|2969|Hawaii|M|Son|||31|4768 +3000|MI|Eaton County|Bellevue township|910|0|5|Rudy|Courtney|2975|Maine|M|Son|||25|4769 +3000|MI|Eaton County|Bellevue township|910|0|6|Rudy|Torri|2977|Kentucky|F|Daughter|||23|4770 +3000|MI|Eaton County|Bellevue township|910|0|7|Rudy|Vernetta|2979|Ohio|F|Daughter|||21|4771 +3000|MI|Eaton County|Bellevue township|910|0|8|Rudy|Chris|2985|Indiana|M|Son|||15|4772 +3000|MI|Eaton County|Bellevue township|910|0|9|Rudy|Geoffrey|2987|Arkansas|M|Son|||13|4773 +3000|MI|Eaton County|Bellevue township|910|0|10|Rudy|Lashunda|2991|Mississippi|F|Daughter|||9|4774 +3000|MI|Eaton County|Bellevue township|910|0|11|Rudy|Phillip|2993|South Carolina|M|Son|||7|4775 +3000|MI|Eaton County|Bellevue township|910|0|12|Rudy|Jonah|2995|Minnesota|M|Son|||5|4776 + +3000|KS|Reno County|Sylvia city|911|0|1|Wells|Broderick|2980|Missouri|M|Head|||20|4777 +3000|KS|Reno County|Sylvia city|911|0|2|Wells|Georgann|2977|Texas|F|Spouse|||23|4778 +3000|KS|Reno County|Sylvia city|911|0|3|Wells|Debi|2997|Andorra|F|Daughter|||3|4779 +3000|KS|Reno County|Sylvia city|911|0|4|Wells|Rubin|2999|Washington|M|Son|||1|4780 + +3000|IN|Wells County|Ossian town|912|0|1|Fischl|Gregg Wilbur|2976|Illinois|M|Head|||24|4781 +3000|IN|Wells County|Ossian town|912|0|2|Fischl|Shaunda Libby|2981|Nevada|F|Spouse|||19|4782 + +3000|CA|Inyo County|Dixon Lane-Meadow Creek CDP|913|0|1|Verrilli|Whitney Delbert|2968|California|M|Head|||32|4783 +3000|CA|Inyo County|Dixon Lane-Meadow Creek CDP|913|0|2|Verrilli|Sol|2997|Florida|M|Son|||3|4784 + +3000|NC|Craven County|Brices Creek CDP|914|0|1|Napoletano|Ivan|2952|Georgia|M|Head|||48|4785 +3000|NC|Craven County|Brices Creek CDP|914|0|2|Napoletano|Norbert|2995|South Africa|M|Son|||5|4786 +3000|NC|Craven County|Brices Creek CDP|914|0|3|Napoletano|Zachariah|2997|Missouri|M|Son|||3|4787 +3000|NC|Craven County|Brices Creek CDP|914|0|4|Napoletano|Chester|2999|New York|M|Son|||1|4788 + +3000|PA|Snyder County|Jackson township|915|0|1|Sanchez|Rafael Demetrius|2953|Virginia|M|Head|||47|4789 +3000|PA|Snyder County|Jackson township|915|0|2|Sanchez|Giuseppe|2982|North Dakota|M|Son|||18|4790 +3000|PA|Snyder County|Jackson township|915|0|3|Sanchez|Dena|2986|South Dakota|F|Daughter|||14|4791 +3000|PA|Snyder County|Jackson township|915|0|4|Sanchez|Beatrice|2988|Ohio|F|Daughter|||12|4792 +3000|PA|Snyder County|Jackson township|915|0|5|Sanchez|Ginny|2990|Niger|F|Daughter|||10|4793 +3000|PA|Snyder County|Jackson township|915|0|6|Sanchez|Devona|2996|Maryland|F|Daughter|||4|4794 + +3000|MI|Oakland County|Ferndale city|916|0|1|Biscardi|Rudy Harry|2947|Alabama|M|Head|||53|4795 +3000|MI|Oakland County|Ferndale city|916|0|2|Biscardi|Melvin|2985|Kansas|F|Daughter|||15|4796 +3000|MI|Oakland County|Ferndale city|916|0|3|Biscardi|Veronique|2987|New Hampshire|F|Daughter|||13|4797 +3000|MI|Oakland County|Ferndale city|916|0|4|Biscardi|Ali|2989|Kansas|M|Son|||11|4798 +3000|MI|Oakland County|Ferndale city|916|0|5|Biscardi|Sherise Elizabeth|2991|Alabama|F|Daughter|||9|4799 +3000|MI|Oakland County|Ferndale city|916|0|6|Biscardi|Detra|2995|Wisconsin|F|Daughter|||5|4800 + +3000|MN|Watonwan County|Butterfield township|917|0|1|Cho|Parker Will|2943|Kansas|M|Head|||57|4801 +3000|MN|Watonwan County|Butterfield township|917|0|2|Cho|Shirly|2959|Honduras|F|Spouse|||41|4802 +3000|MN|Watonwan County|Butterfield township|917|0|3|Cho|Bernie|2981|Dominican Republic|M|Son|||19|4803 +3000|MN|Watonwan County|Butterfield township|917|0|4|Cho|Merilyn|2985|Illinois|F|Daughter|||15|4804 +3000|MN|Watonwan County|Butterfield township|917|0|5|Cho|Molly|2987|Somalia|F|Daughter|||13|4805 +3000|MN|Watonwan County|Butterfield township|917|0|6|Cho|Olin|2991|Michigan|M|Son|||9|4806 +3000|MN|Watonwan County|Butterfield township|917|0|7|Cho|Birgit|2995|Utah|F|Daughter|||5|4807 + +3000|WA|Clark County|Orchards CDP|918|0|1|Pesantes|Cruz Judson|2965|Montenegro|M|Head|||35|4808 +3000|WA|Clark County|Orchards CDP|918|0|2|Pesantes|Gustavo Markus|2989|New Mexico|M|Son|||11|4809 + +3000|PA|Montgomery County|West Conshohocken borough|919|0|1|Moncrief|Milo Jess|2951|New Hampshire|M|Head|||49|4810 +3000|PA|Montgomery County|West Conshohocken borough|919|0|2|Moncrief|Brittani|2954|Arizona|F|Spouse|||46|4811 +3000|PA|Montgomery County|West Conshohocken borough|919|0|3|Moncrief|Xuan|2984|South Dakota|F|Daughter|||16|4812 +3000|PA|Montgomery County|West Conshohocken borough|919|0|4|Moncrief|Carleen|2990|Texas|F|Daughter|||10|4813 +3000|PA|Montgomery County|West Conshohocken borough|919|0|5|Moncrief|Terica|2992|France|F|Daughter|||8|4814 +3000|PA|Montgomery County|West Conshohocken borough|919|0|6|Moncrief|Felice|2994|Maine|F|Daughter|||6|4815 +3000|PA|Montgomery County|West Conshohocken borough|919|0|7|Moncrief|Toccara|2996|Christmas Island|F|Daughter|||4|4816 +3000|PA|Montgomery County|West Conshohocken borough|919|0|8|Moncrief|Ashleigh|2998|Florida|F|Daughter|||2|4817 +3000|PA|Montgomery County|West Conshohocken borough|919|0|9|Moncrief|Carry|3000|Equatorial Guinea|F|Daughter|||0|4818 + +3000|MA|Norfolk County|Quincy city|920|0|1|Willame|Ross Angel|2959|Colorado|M|Head|||41|4819 +3000|MA|Norfolk County|Quincy city|920|0|2|Willame|Brittaney|2970|Louisiana|F|Spouse|||30|4820 +3000|MA|Norfolk County|Quincy city|920|0|3|Willame|Chieko Eliana|2990|Oregon|F|Daughter|||10|4821 +3000|MA|Norfolk County|Quincy city|920|0|4|Willame|Francie Louis|2992|Iowa|F|Daughter|||8|4822 +3000|MA|Norfolk County|Quincy city|920|0|5|Willame|Jame|2996|Georgia|M|Son|||4|4823 +3000|MA|Norfolk County|Quincy city|920|0|6|Willame|Jacque|2998|Nebraska|F|Daughter|||2|4824 +3000|MA|Norfolk County|Quincy city|920|0|7|Willame|Rheba Amira|3000|Nevada|F|Daughter|||0|4825 + +3000|IL|Shelby County|Shelbyville city|921|0|1|Hartman|Parker Mario|2945|Kentucky|M|Head|||55|4826 +3000|IL|Shelby County|Shelbyville city|921|0|2|Hartman|Sindy|2952|Illinois|F|Spouse|||48|4827 +3000|IL|Shelby County|Shelbyville city|921|0|3|Hartman|Gale Hermine|2978|Mauritius|F|Daughter|||22|4828 +3000|IL|Shelby County|Shelbyville city|921|0|4|Hartman|Delbert|2982|Tennessee|M|Son|||18|4829 +3000|IL|Shelby County|Shelbyville city|921|0|5|Hartman|Luigi|2984|Chad|M|Son|||16|4830 +3000|IL|Shelby County|Shelbyville city|921|0|6|Hartman|Rozella|2986|Washington|F|Daughter|||14|4831 +3000|IL|Shelby County|Shelbyville city|921|0|7|Hartman|Alec|2994|Texas|M|Son|||6|4832 + +3000|OR|Wallowa County|Wallowa city|922|0|1|Gillming|Thomas Jeremiah|2949|Maine|M|Head|||51|4833 +3000|OR|Wallowa County|Wallowa city|922|0|2|Gillming|Clotilde Micaela|2968|Swaziland|F|Spouse|||32|4834 +3000|OR|Wallowa County|Wallowa city|922|0|3|Gillming|Levi|2988|Fiji|M|Son|||12|4835 +3000|OR|Wallowa County|Wallowa city|922|0|4|Gillming|Kristie|2992|Missouri|F|Daughter|||8|4836 +3000|OR|Wallowa County|Wallowa city|922|0|5|Gillming|Solange|2994|New Mexico|F|Daughter|||6|4837 +3000|OR|Wallowa County|Wallowa city|922|0|6|Gillming|Mirian|2998|Maryland|F|Daughter|||2|4838 + +3000|OK|Creek County, Tulsa County|Sapulpa city|923|0|1|Champlain|Weston Delmar|2946|Iowa|M|Head|||54|4839 +3000|OK|Creek County, Tulsa County|Sapulpa city|923|0|2|Champlain|Trinity|2952|Indiana|F|Spouse|||48|4840 +3000|OK|Creek County, Tulsa County|Sapulpa city|923|0|3|Champlain|Walton Mikel|2974|New Hampshire|M|Son|||26|4841 +3000|OK|Creek County, Tulsa County|Sapulpa city|923|0|4|Champlain|Tiffiny|2976|California|F|Daughter|||24|4842 +3000|OK|Creek County, Tulsa County|Sapulpa city|923|0|5|Champlain|Whitney|2978|Maryland|F|Daughter|||22|4843 +3000|OK|Creek County, Tulsa County|Sapulpa city|923|0|6|Champlain|Avelina|2992|Somalia|F|Daughter|||8|4844 +3000|OK|Creek County, Tulsa County|Sapulpa city|923|0|7|Champlain|Artie|2994|Georgia|F|Daughter|||6|4845 +3000|OK|Creek County, Tulsa County|Sapulpa city|923|0|8|Champlain|Santana|2998|New Hampshire|F|Daughter|||2|4846 +3000|OK|Creek County, Tulsa County|Sapulpa city|923|0|9|Champlain|Reid Garry|3000|Oregon|M|Son|||0|4847 + +3000|OH|Clark County, Greene County|Clifton village|924|0|1|Wilson|Donnell Wendell|2946|Utah|M|Head|||54|4848 +3000|OH|Clark County, Greene County|Clifton village|924|0|2|Wilson|Letitia|2946|Pennsylvania|F|Spouse|||54|4849 +3000|OH|Clark County, Greene County|Clifton village|924|0|3|Wilson|Hank|2970|Virgin Islands, U.s.|M|Son|||30|4850 +3000|OH|Clark County, Greene County|Clifton village|924|0|4|Wilson|Melida|2988|Indiana|F|Daughter|||12|4851 +3000|OH|Clark County, Greene County|Clifton village|924|0|5|Wilson|Deangelo|2990|Connecticut|M|Son|||10|4852 +3000|OH|Clark County, Greene County|Clifton village|924|0|6|Wilson|Jc|2992|Vermont|M|Son|||8|4853 +3000|OH|Clark County, Greene County|Clifton village|924|0|7|Wilson|Eduardo Deangelo|2994|Montana|M|Son|||6|4854 +3000|OH|Clark County, Greene County|Clifton village|924|0|8|Wilson|Audria|2996|Kansas|F|Daughter|||4|4855 + +3000|NY|Columbia County|Chatham town|925|0|1|Christle|Carlton Sal|2970|Colorado|M|Head|||30|4856 +3000|NY|Columbia County|Chatham town|925|0|2|Christle|Blanca|2969|Tennessee|F|Spouse|||31|4857 +3000|NY|Columbia County|Chatham town|925|0|3|Christle|Maxwell Warner|2989|Chad|M|Son|||11|4858 +3000|NY|Columbia County|Chatham town|925|0|4|Christle|Retha|2991|Delaware|F|Daughter|||9|4859 + +3000|NH|Sullivan County|Goshen town|926|0|1|Fitzgerald|Brice Tracey|2939|Alabama|M|Head|||61|4860 +3000|NH|Sullivan County|Goshen town|926|0|2|Fitzgerald|Gerard|2985|Minnesota|M|Son|||15|4861 +3000|NH|Sullivan County|Goshen town|926|0|3|Fitzgerald|Tarsha|2987|New Hampshire|F|Daughter|||13|4862 + +3000|GA|Morgan County|Rutledge city|927|0|1|Thibodeaux|Mark Mario|2961|Tonga|M|Head|||39|4863 +3000|GA|Morgan County|Rutledge city|927|0|2|Thibodeaux|Alyson|2967|Minnesota|F|Spouse|||33|4864 +3000|GA|Morgan County|Rutledge city|927|0|3|Thibodeaux|Freddy|2987|Michigan|M|Son|||13|4865 +3000|GA|Morgan County|Rutledge city|927|0|4|Thibodeaux|Aleisha|2993|New Hampshire|F|Daughter|||7|4866 +3000|GA|Morgan County|Rutledge city|927|0|5|Thibodeaux|Katrina|2995|Georgia|F|Daughter|||5|4867 +3000|GA|Morgan County|Rutledge city|927|0|6|Thibodeaux|Tanner|2999|Maryland|M|Son|||1|4868 + +3000|NM|Grant County|Cobre CDP|928|0|1|Lallave|Vaughn Derrick|2952|Georgia|M|Head|||48|4869 +3000|NM|Grant County|Cobre CDP|928|0|2|Lallave|Jani|2948|Indiana|F|Spouse|||52|4870 +3000|NM|Grant County|Cobre CDP|928|0|3|Lallave|Caleb|2990|South Dakota|M|Son|||10|4871 +3000|NM|Grant County|Cobre CDP|928|0|4|Lallave|Darwin|2992|Alabama|M|Son|||8|4872 +3000|NM|Grant County|Cobre CDP|928|0|5|Lallave|Tanja|2996|Minnesota|F|Daughter|||4|4873 +3000|NM|Grant County|Cobre CDP|928|0|6|Lallave|Janella|3000|South Dakota|F|Daughter|||0|4874 + +3000|WI|Grant County|Tennyson village|929|0|1|Dueber|Foster Modesto|2964|Ukraine|M|Head|||36|4875 +3000|WI|Grant County|Tennyson village|929|0|2|Dueber|Cristy Majorie|2963|Togo|F|Spouse|||37|4876 +3000|WI|Grant County|Tennyson village|929|0|3|Dueber|Devon|2983|Dominican Republic|M|Son|||17|4877 +3000|WI|Grant County|Tennyson village|929|0|4|Dueber|Stephen|2987|Hawaii|M|Son|||13|4878 +3000|WI|Grant County|Tennyson village|929|0|5|Dueber|Aida|2991|Belize|F|Daughter|||9|4879 + +3000|WA|Stevens County|Colville city|930|0|1|Jubie|Elbert Edmundo|2969|Connecticut|M|Head|||31|4880 +3000|WA|Stevens County|Colville city|930|0|2|Jubie|Kenton|2999|Netherlands Antilles|M|Son|||1|4881 + +3000|PA|Sullivan County|Eagles Mere borough|931|0|1|Goodyear|Horacio Ricky|2958|Mississippi|M|Head|||42|4882 +3000|PA|Sullivan County|Eagles Mere borough|931|0|2|Goodyear|Leonor|2954|North Dakota|F|Spouse|||46|4883 +3000|PA|Sullivan County|Eagles Mere borough|931|0|3|Goodyear|Retta Sherita|2986|New Hampshire|F|Daughter|||14|4884 +3000|PA|Sullivan County|Eagles Mere borough|931|0|4|Goodyear|Scotty|2988|Oklahoma|M|Son|||12|4885 +3000|PA|Sullivan County|Eagles Mere borough|931|0|5|Goodyear|Jackelyn|2990|Spain|F|Daughter|||10|4886 +3000|PA|Sullivan County|Eagles Mere borough|931|0|6|Goodyear|Monte Cody|2994|Texas|M|Son|||6|4887 +3000|PA|Sullivan County|Eagles Mere borough|931|0|7|Goodyear|Chaya|2996|Hawaii|F|Daughter|||4|4888 +3000|PA|Sullivan County|Eagles Mere borough|931|0|8|Goodyear|Jacquelin|2998|Minnesota|F|Daughter|||2|4889 + +3000|MD|Frederick County|Rosemont village|932|0|1|Smolen|Josue Mathew|2938|Sao Tome And Principe|M|Head|||62|4890 +3000|MD|Frederick County|Rosemont village|932|0|2|Smolen|Fabiola|2944|Nebraska|F|Spouse|||56|4891 +3000|MD|Frederick County|Rosemont village|932|0|3|Smolen|Rico|2968|South Dakota|M|Son|||32|4892 +3000|MD|Frederick County|Rosemont village|932|0|4|Smolen|Mckenzie|2980|Wisconsin|F|Daughter|||20|4893 +3000|MD|Frederick County|Rosemont village|932|0|5|Smolen|Dusty|2986|Pennsylvania|F|Daughter|||14|4894 +3000|MD|Frederick County|Rosemont village|932|0|6|Smolen|Marlin|2988|Albania|M|Son|||12|4895 +3000|MD|Frederick County|Rosemont village|932|0|7|Smolen|Liane Janyce|2998|Utah|F|Daughter|||2|4896 +3000|MD|Frederick County|Rosemont village|932|0|8|Smolen|Thelma|3000|Massachusetts|F|Daughter|||0|4897 + +3000|WI|Manitowoc County|Manitowoc Rapids town|933|0|1|Doell|Louis Vernon|2973|North Dakota|M|Head|||27|4898 + +3000|AK|Valdez-Cordova Census Area|Chitina CDP|934|0|1|Garner|Cordell Van|2984|Kiribati|M|Head|||16|4899 +3000|AK|Valdez-Cordova Census Area|Chitina CDP|934|0|2|Garner|Caroyln|2980|Alabama|F|Spouse|||20|4900 + +3000|AK|Haines Borough|Mosquito Lake CDP|935|0|1|Morris|Octavio Wilbur|2944|Burundi|M|Head|||56|4901 +3000|AK|Haines Borough|Mosquito Lake CDP|935|0|2|Morris|Jacinda|2951|Nevada|F|Spouse|||49|4902 +3000|AK|Haines Borough|Mosquito Lake CDP|935|0|3|Morris|Terrell|2973|Comoros|M|Son|||27|4903 +3000|AK|Haines Borough|Mosquito Lake CDP|935|0|4|Morris|Dana|2979|Arizona|M|Son|||21|4904 +3000|AK|Haines Borough|Mosquito Lake CDP|935|0|5|Morris|Winford Eddie|2987|Idaho|M|Son|||13|4905 +3000|AK|Haines Borough|Mosquito Lake CDP|935|0|6|Morris|Hunter|2989|Samoa|M|Son|||11|4906 +3000|AK|Haines Borough|Mosquito Lake CDP|935|0|7|Morris|Elvin|2995|Florida|M|Son|||5|4907 + +3000|NE|Adams County|Prosser village|936|0|1|Schuchmann|Nilsa Aleen|2978|Nebraska|F|Head|||22|4908 + +3000|VA|Bath County|Warm Springs CDP|937|0|1|Thomas|Sung Gregory|2938|Washington|M|Head|||62|4909 +3000|VA|Bath County|Warm Springs CDP|937|0|2|Thomas|Roma|2951|Arkansas|F|Spouse|||49|4910 +3000|VA|Bath County|Warm Springs CDP|937|0|3|Thomas|Virgil|2971|Illinois|M|Son|||29|4911 +3000|VA|Bath County|Warm Springs CDP|937|0|4|Thomas|Norman|2981|Indiana|M|Son|||19|4912 +3000|VA|Bath County|Warm Springs CDP|937|0|5|Thomas|Masako|2983|Wyoming|F|Daughter|||17|4913 +3000|VA|Bath County|Warm Springs CDP|937|0|6|Thomas|Guillermo|2987|Nebraska|M|Son|||13|4914 +3000|VA|Bath County|Warm Springs CDP|937|0|7|Thomas|Joi|2997|West Virginia|F|Daughter|||3|4915 +3000|VA|Bath County|Warm Springs CDP|937|0|8|Thomas|Jammie|2999|West Virginia|F|Daughter|||1|4916 + +3000|WI|Dane County|McFarland village|938|0|1|Carrasco|Denny Jere|2965|Georgia|M|Head|||35|4917 + +3000|MN|Redwood County|Honner township|939|0|1|Brian|Sergio Kristofer|2952|Senegal|M|Head|||48|4918 +3000|MN|Redwood County|Honner township|939|0|2|Brian|Talisha|2967|Texas|F|Spouse|||33|4919 +3000|MN|Redwood County|Honner township|939|0|3|Brian|Jerrell|2987|Gibraltar|M|Son|||13|4920 +3000|MN|Redwood County|Honner township|939|0|4|Brian|Tillie|2989|Missouri|F|Daughter|||11|4921 +3000|MN|Redwood County|Honner township|939|0|5|Brian|Jennine|2991|Montana|F|Daughter|||9|4922 +3000|MN|Redwood County|Honner township|939|0|6|Brian|Irvin|2997|Arizona|M|Son|||3|4923 + +3000|KS|Doniphan County|Leona city|940|0|1|Gordon|Cletus Sandy|2948|San Marino|M|Head|||52|4924 +3000|KS|Doniphan County|Leona city|940|0|2|Gordon|Lovetta|2950|South Dakota|F|Spouse|||50|4925 +3000|KS|Doniphan County|Leona city|940|0|3|Gordon|Milagro|2972|Maine|F|Daughter|||28|4926 +3000|KS|Doniphan County|Leona city|940|0|4|Gordon|Amy|2978|New Jersey|F|Daughter|||22|4927 +3000|KS|Doniphan County|Leona city|940|0|5|Gordon|Arla|2982|North Carolina|F|Daughter|||18|4928 +3000|KS|Doniphan County|Leona city|940|0|6|Gordon|Andrea|2988|Samoa|F|Daughter|||12|4929 +3000|KS|Doniphan County|Leona city|940|0|7|Gordon|Yong|2992|New Hampshire|M|Son|||8|4930 +3000|KS|Doniphan County|Leona city|940|0|8|Gordon|Kyra|2998|North Carolina|F|Daughter|||2|4931 + +3000|MA|Middlesex County|Melrose city|941|0|1|Norkus|Bryce Colby|2945|South Dakota|M|Head|||55|4932 +3000|MA|Middlesex County|Melrose city|941|0|2|Norkus|Victor|2954|Tennessee|F|Spouse|||46|4933 +3000|MA|Middlesex County|Melrose city|941|0|3|Norkus|Ciera|2984|Missouri|F|Daughter|||16|4934 +3000|MA|Middlesex County|Melrose city|941|0|4|Norkus|Owen|2988|Colorado|M|Son|||12|4935 +3000|MA|Middlesex County|Melrose city|941|0|5|Norkus|Willard|3000|Wisconsin|M|Son|||0|4936 + +3000|MT|Musselshell County|Camp Three CDP|942|0|1|Lund|Abdul Pierre|2958|Nebraska|M|Head|||42|4937 +3000|MT|Musselshell County|Camp Three CDP|942|0|2|Lund|Melodi|2967|New Mexico|F|Spouse|||33|4938 +3000|MT|Musselshell County|Camp Three CDP|942|0|3|Lund|Caryn|2987|Mississippi|F|Daughter|||13|4939 +3000|MT|Musselshell County|Camp Three CDP|942|0|4|Lund|Wiley|2989|Arizona|M|Son|||11|4940 +3000|MT|Musselshell County|Camp Three CDP|942|0|5|Lund|Chris|2991|Florida|M|Son|||9|4941 +3000|MT|Musselshell County|Camp Three CDP|942|0|6|Lund|Henry|2993|Colorado|M|Son|||7|4942 +3000|MT|Musselshell County|Camp Three CDP|942|0|7|Lund|Giselle|2995|Missouri|F|Daughter|||5|4943 + +3000|MI|Midland County|Edenville township|943|0|1|Oseguera|Fidel Fernando|2940|Delaware|M|Head|||60|4944 +3000|MI|Midland County|Edenville township|943|0|2|Oseguera|Remona|2946|Ghana|F|Spouse|||54|4945 +3000|MI|Midland County|Edenville township|943|0|3|Oseguera|Cheryle|2966|South Carolina|F|Daughter|||34|4946 +3000|MI|Midland County|Edenville township|943|0|4|Oseguera|Sherell|2972|Oregon|F|Daughter|||28|4947 +3000|MI|Midland County|Edenville township|943|0|5|Oseguera|Rudy|2976|Indiana|F|Daughter|||24|4948 +3000|MI|Midland County|Edenville township|943|0|6|Oseguera|Geoffrey|2980|Christmas Island|M|Son|||20|4949 +3000|MI|Midland County|Edenville township|943|0|7|Oseguera|Dan|2984|American Samoa|M|Son|||16|4950 +3000|MI|Midland County|Edenville township|943|0|8|Oseguera|Arlen Saul|2986|North Dakota|M|Son|||14|4951 +3000|MI|Midland County|Edenville township|943|0|9|Oseguera|Freeman|2994|Lao People's Democratic Republic|M|Son|||6|4952 + +3000|ME|Hancock County|Central Hancock UT|944|0|1|Clemons|Olin Gregorio|2949|Colorado|M|Head|||51|4953 +3000|ME|Hancock County|Central Hancock UT|944|0|2|Clemons|Marylou|2988|Texas|F|Daughter|||12|4954 +3000|ME|Hancock County|Central Hancock UT|944|0|3|Clemons|Stefan|2990|Maryland|M|Son|||10|4955 +3000|ME|Hancock County|Central Hancock UT|944|0|4|Clemons|Deena|2994|Washington|F|Daughter|||6|4956 +3000|ME|Hancock County|Central Hancock UT|944|0|5|Clemons|Elizabet|2996|Colorado|F|Daughter|||4|4957 +3000|ME|Hancock County|Central Hancock UT|944|0|6|Clemons|Thalia|3000|Pennsylvania|F|Daughter|||0|4958 + +3000|ME|Androscoggin County|Mechanic Falls town|945|0|1|Boomer|Alfonzo Florencio|2954|Alaska|M|Head|||46|4959 +3000|ME|Androscoggin County|Mechanic Falls town|945|0|2|Boomer|Olive|2998|Arizona|F|Daughter|||2|4960 + +3000|WV|McDowell County|Keystone city|946|0|1|Dicocco|Norbert Otis|2950|Finland|M|Head|||50|4961 +3000|WV|McDowell County|Keystone city|946|0|2|Dicocco|Cathern|2971|Iowa|F|Spouse|||29|4962 +3000|WV|McDowell County|Keystone city|946|0|3|Dicocco|Ezra|2991|Arkansas|M|Son|||9|4963 + +3000|MN|Winona County|Minnesota City city|947|0|1|Morgan|Wilton Mauricio|2973|South Carolina|M|Head|||27|4964 +3000|MN|Winona County|Minnesota City city|947|0|2|Morgan|Tonie|2976|Minnesota|F|Spouse|||24|4965 +3000|MN|Winona County|Minnesota City city|947|0|3|Morgan|Federico|2998|Australia|M|Son|||2|4966 +3000|MN|Winona County|Minnesota City city|947|0|4|Morgan|Nicholle|3000|Michigan|F|Daughter|||0|4967 + +3000|MN|Meeker County|Darwin township|948|0|1|Muncy|Carmine Jacinto|2962|Iowa|M|Head|||38|4968 +3000|MN|Meeker County|Darwin township|948|0|2|Muncy|Terry|2993|New Hampshire|M|Son|||7|4969 +3000|MN|Meeker County|Darwin township|948|0|3|Muncy|Milan|2995|South Carolina|M|Son|||5|4970 +3000|MN|Meeker County|Darwin township|948|0|4|Muncy|Aaron|2997|Georgia|M|Son|||3|4971 + +3000|ID|Bannock County|McCammon city|949|0|1|Sword|Len Marlon|2950|Louisiana|M|Head|||50|4972 +3000|ID|Bannock County|McCammon city|949|0|2|Sword|Madaline Collen|2957|Alaska|F|Spouse|||43|4973 +3000|ID|Bannock County|McCammon city|949|0|3|Sword|Ila|2977|Pakistan|F|Daughter|||23|4974 +3000|ID|Bannock County|McCammon city|949|0|4|Sword|Rikki|2983|Kentucky|F|Daughter|||17|4975 +3000|ID|Bannock County|McCammon city|949|0|5|Sword|Deangelo|2985|Vermont|M|Son|||15|4976 +3000|ID|Bannock County|McCammon city|949|0|6|Sword|Modesta|2993|Kansas|F|Daughter|||7|4977 + +3000|MI|Kalamazoo County|Westwood CDP|950|0|1|Lux|Natacha|2954|New Zealand|F|Head|||46|4978 +3000|MI|Kalamazoo County|Westwood CDP|950|0|2|Lux|Ellis|2976|Washington|M|Son|||24|4979 +3000|MI|Kalamazoo County|Westwood CDP|950|0|3|Lux|Luigi|2978|Alabama|M|Son|||22|4980 +3000|MI|Kalamazoo County|Westwood CDP|950|0|4|Lux|Fallon Lisha|2988|Georgia|F|Daughter|||12|4981 +3000|MI|Kalamazoo County|Westwood CDP|950|0|5|Lux|Lia|2990|Alaska|F|Daughter|||10|4982 +3000|MI|Kalamazoo County|Westwood CDP|950|0|6|Lux|Allyson|2994|Oregon|F|Daughter|||6|4983 +3000|MI|Kalamazoo County|Westwood CDP|950|0|7|Lux|Isaias|3000|Idaho|M|Son|||0|4984 + +3000|PA|Philadelphia County|Philadelphia city|951|0|1|Neumeister|Brock Edmond|2952|Guam|M|Head|||48|4985 +3000|PA|Philadelphia County|Philadelphia city|951|0|2|Neumeister|Wenona|2971|Nevada|F|Spouse|||29|4986 +3000|PA|Philadelphia County|Philadelphia city|951|0|3|Neumeister|Ernie|2991|Delaware|M|Son|||9|4987 +3000|PA|Philadelphia County|Philadelphia city|951|0|4|Neumeister|Christopher|2993|Vermont|M|Son|||7|4988 +3000|PA|Philadelphia County|Philadelphia city|951|0|5|Neumeister|Willodean|2995|New Jersey|F|Daughter|||5|4989 +3000|PA|Philadelphia County|Philadelphia city|951|0|6|Neumeister|Harvey Clement|2999|New Mexico|M|Son|||1|4990 + +3000|NJ|Ocean County|Dover Beaches North CDP|952|0|1|Petrauskas|Sheila|2956|Mali|F|Head|||44|4991 +3000|NJ|Ocean County|Dover Beaches North CDP|952|0|2|Petrauskas|Ena|2984|Oklahoma|F|Daughter|||16|4992 +3000|NJ|Ocean County|Dover Beaches North CDP|952|0|3|Petrauskas|Eusebio|2986|Washington|M|Son|||14|4993 +3000|NJ|Ocean County|Dover Beaches North CDP|952|0|4|Petrauskas|Jerrell|2988|South Carolina|M|Son|||12|4994 +3000|NJ|Ocean County|Dover Beaches North CDP|952|0|5|Petrauskas|Marguerite Alexander|2990|Arkansas|F|Daughter|||10|4995 +3000|NJ|Ocean County|Dover Beaches North CDP|952|0|6|Petrauskas|Doyle|2992|Wyoming|M|Son|||8|4996 +3000|NJ|Ocean County|Dover Beaches North CDP|952|0|7|Petrauskas|Salvatore|2996|Michigan|M|Son|||4|4997 +3000|NJ|Ocean County|Dover Beaches North CDP|952|0|8|Petrauskas|Conrad Dexter|2998|Ohio|M|Son|||2|4998 + +3000|PR|Arecibo Municipio|La Alianza comunidad|953|0|1|Hill|Byron Judson|2950|Mississippi|M|Head|||50|4999 +3000|PR|Arecibo Municipio|La Alianza comunidad|953|0|2|Hill|Kelli|2960|Missouri|F|Spouse|||40|5000 +3000|PR|Arecibo Municipio|La Alianza comunidad|953|0|3|Hill|Leland|2986|West Virginia|M|Son|||14|5001 +3000|PR|Arecibo Municipio|La Alianza comunidad|953|0|4|Hill|Jennifer|2992|Vermont|F|Daughter|||8|5002 +3000|PR|Arecibo Municipio|La Alianza comunidad|953|0|5|Hill|Odette|2994|Maine|F|Daughter|||6|5003 + +3000|WI|Racine County|Caledonia village|954|0|1|Bertels|Rico Earl|2965|Florida|M|Head|||35|5004 +3000|WI|Racine County|Caledonia village|954|0|2|Bertels|Murray Rodger|2994|Massachusetts|M|Son|||6|5005 +3000|WI|Racine County|Caledonia village|954|0|3|Bertels|Enrique|2996|Idaho|M|Son|||4|5006 +3000|WI|Racine County|Caledonia village|954|0|4|Bertels|Malik|3000|Maryland|M|Son|||0|5007 + +3000|NY|Yates County|Jerusalem town|955|0|1|Mitchell|Jesus Joel|2947|Faroe Islands|M|Head|||53|5008 +3000|NY|Yates County|Jerusalem town|955|0|2|Mitchell|Mammie|2949|Maryland|F|Spouse|||51|5009 +3000|NY|Yates County|Jerusalem town|955|0|3|Mitchell|Chris|2981|New Hampshire|M|Son|||19|5010 +3000|NY|Yates County|Jerusalem town|955|0|4|Mitchell|Jarvis|2985|Alaska|M|Son|||15|5011 +3000|NY|Yates County|Jerusalem town|955|0|5|Mitchell|Dante|2987|Georgia|M|Son|||13|5012 +3000|NY|Yates County|Jerusalem town|955|0|6|Mitchell|Dominique|2989|Nevada|M|Son|||11|5013 +3000|NY|Yates County|Jerusalem town|955|0|7|Mitchell|David|2991|Indiana|M|Son|||9|5014 +3000|NY|Yates County|Jerusalem town|955|0|8|Mitchell|Scott|2993|Oklahoma|M|Son|||7|5015 +3000|NY|Yates County|Jerusalem town|955|0|9|Mitchell|Janis Evon|2997|Colorado|F|Daughter|||3|5016 + +3000|OH|Stark County|Canal Fulton city|956|0|1|Stoute|Victor Barton|2942|Massachusetts|M|Head|||58|5017 +3000|OH|Stark County|Canal Fulton city|956|0|2|Stoute|Merideth|2959|Missouri|F|Spouse|||41|5018 +3000|OH|Stark County|Canal Fulton city|956|0|3|Stoute|Lincoln|2985|Virginia|M|Son|||15|5019 +3000|OH|Stark County|Canal Fulton city|956|0|4|Stoute|Eldridge|2987|Vanuatu|M|Son|||13|5020 +3000|OH|Stark County|Canal Fulton city|956|0|5|Stoute|Lindy Melisa|2991|Utah|F|Daughter|||9|5021 +3000|OH|Stark County|Canal Fulton city|956|0|6|Stoute|Evan|2993|Paraguay|M|Son|||7|5022 + +3000|WV|Boone County|Madison city|957|0|1|Matthys|Clifton Giovanni|2961|New Jersey|M|Head|||39|5023 +3000|WV|Boone County|Madison city|957|0|2|Matthys|Mara|2969|Morocco|F|Spouse|||31|5024 +3000|WV|Boone County|Madison city|957|0|3|Matthys|Hildred|2989|Massachusetts|F|Daughter|||11|5025 +3000|WV|Boone County|Madison city|957|0|4|Matthys|Victorina Angelina|2993|New Zealand|F|Daughter|||7|5026 +3000|WV|Boone County|Madison city|957|0|5|Matthys|Rick|2995|New York|M|Son|||5|5027 + +3000|NY|Nassau County|North Hempstead town|958|0|1|Hadnot|Orval Elliott|2950|Nevada|M|Head|||50|5028 +3000|NY|Nassau County|North Hempstead town|958|0|2|Hadnot|Jenice|2960|Colorado|F|Spouse|||40|5029 +3000|NY|Nassau County|North Hempstead town|958|0|3|Hadnot|Dorsey|2984|Arkansas|M|Son|||16|5030 +3000|NY|Nassau County|North Hempstead town|958|0|4|Hadnot|Kendall Leland|2986|Oklahoma|M|Son|||14|5031 +3000|NY|Nassau County|North Hempstead town|958|0|5|Hadnot|Eloy Millard|2996|Rhode Island|M|Son|||4|5032 + +3000|MA|Plymouth County|West Bridgewater town|959|0|1|Harrison|Ellyn|2951|Bermuda|F|Head|||49|5033 +3000|MA|Plymouth County|West Bridgewater town|959|0|2|Harrison|Julianne|2983|Djibouti|F|Daughter|||17|5034 +3000|MA|Plymouth County|West Bridgewater town|959|0|3|Harrison|Donn|2987|Maryland|M|Son|||13|5035 +3000|MA|Plymouth County|West Bridgewater town|959|0|4|Harrison|Dusty|2989|Mississippi|M|Son|||11|5036 +3000|MA|Plymouth County|West Bridgewater town|959|0|5|Harrison|Roy|2993|Dominica|M|Son|||7|5037 +3000|MA|Plymouth County|West Bridgewater town|959|0|6|Harrison|Alaina|2999|Michigan|F|Daughter|||1|5038 + +3000|TX|Bexar County|Live Oak city|960|0|1|Stroup|Elden Elton|2966|South Dakota|M|Head|||34|5039 +3000|TX|Bexar County|Live Oak city|960|0|2|Stroup|Soraya|2984|Washington|F|Spouse|||16|5040 + +3000|TN|Hamilton County|Falling Water CDP|961|0|1|Cunningham|Humberto Jules|2954|Kansas|M|Head|||46|5041 +3000|TN|Hamilton County|Falling Water CDP|961|0|2|Cunningham|Devin|2951|Haiti|F|Spouse|||49|5042 +3000|TN|Hamilton County|Falling Water CDP|961|0|3|Cunningham|Lean|2983|North Carolina|F|Daughter|||17|5043 +3000|TN|Hamilton County|Falling Water CDP|961|0|4|Cunningham|Mauricio|2985|Wyoming|M|Son|||15|5044 +3000|TN|Hamilton County|Falling Water CDP|961|0|5|Cunningham|Brenton|2987|Saint Lucia|M|Son|||13|5045 +3000|TN|Hamilton County|Falling Water CDP|961|0|6|Cunningham|Larisa|2989|Minnesota|F|Daughter|||11|5046 +3000|TN|Hamilton County|Falling Water CDP|961|0|7|Cunningham|Claretha Sommer|2991|Connecticut|F|Daughter|||9|5047 +3000|TN|Hamilton County|Falling Water CDP|961|0|8|Cunningham|Barton|2993|North Carolina|M|Son|||7|5048 +3000|TN|Hamilton County|Falling Water CDP|961|0|9|Cunningham|Fausto|2999|Pennsylvania|M|Son|||1|5049 + +3000|KY|Floyd County|Wayland city|962|0|1|Jurich|Erwin Myron|2957|Nebraska|M|Head|||43|5050 +3000|KY|Floyd County|Wayland city|962|0|2|Jurich|Nancey|2966|Lithuania|F|Spouse|||34|5051 +3000|KY|Floyd County|Wayland city|962|0|3|Jurich|Karleen|2986|New Hampshire|F|Daughter|||14|5052 +3000|KY|Floyd County|Wayland city|962|0|4|Jurich|Louvenia Branda|2988|Delaware|F|Daughter|||12|5053 +3000|KY|Floyd County|Wayland city|962|0|5|Jurich|Doreatha|2990|New Caledonia|F|Daughter|||10|5054 +3000|KY|Floyd County|Wayland city|962|0|6|Jurich|Carlos Dwayne|2998|Colorado|M|Son|||2|5055 +3000|KY|Floyd County|Wayland city|962|0|7|Jurich|Haywood|3000|Kansas|M|Son|||0|5056 + +3000|NY|Schuyler County|Orange town|963|0|1|Wobser|Gale Ted|2947|New Mexico|M|Head|||53|5057 +3000|NY|Schuyler County|Orange town|963|0|2|Wobser|Laree|2981|Mississippi|F|Daughter|||19|5058 +3000|NY|Schuyler County|Orange town|963|0|3|Wobser|Genaro|2983|Zambia|M|Son|||17|5059 +3000|NY|Schuyler County|Orange town|963|0|4|Wobser|Ok|2985|Mongolia|F|Daughter|||15|5060 +3000|NY|Schuyler County|Orange town|963|0|5|Wobser|Tuan Ollie|2987|New Mexico|M|Son|||13|5061 +3000|NY|Schuyler County|Orange town|963|0|6|Wobser|Wilda|2991|Oregon|F|Daughter|||9|5062 + +3000|OH|Sandusky County|Clyde city|964|0|1|Giles|Heath|2946|Massachusetts|M|Head|||54|5063 +3000|OH|Sandusky County|Clyde city|964|0|2|Giles|Raelene|2963|Georgia|F|Spouse|||37|5064 +3000|OH|Sandusky County|Clyde city|964|0|3|Giles|Sanford|2987|Somalia|M|Son|||13|5065 +3000|OH|Sandusky County|Clyde city|964|0|4|Giles|Barton|2989|Equatorial Guinea|M|Son|||11|5066 + +3000|LA|Sabine Parish|Many town|965|0|1|Vire|Yong|2941|Massachusetts|M|Head|||59|5067 +3000|LA|Sabine Parish|Many town|965|0|2|Vire|Cornelius|2980|Maryland|M|Son|||20|5068 +3000|LA|Sabine Parish|Many town|965|0|3|Vire|Catalina|2986|Vermont|F|Daughter|||14|5069 +3000|LA|Sabine Parish|Many town|965|0|4|Vire|Annamaria|2988|Indiana|F|Daughter|||12|5070 +3000|LA|Sabine Parish|Many town|965|0|5|Vire|Erin|2990|Georgia|M|Son|||10|5071 +3000|LA|Sabine Parish|Many town|965|0|6|Vire|Jasper|3000|Malta|M|Son|||0|5072 + +3000|PA|Allegheny County|North Braddock borough|966|0|1|Johnson|Renay|2964|Utah|F|Head|||36|5073 +3000|PA|Allegheny County|North Braddock borough|966|0|2|Johnson|Gaylord Wallace|2986|Rhode Island|M|Son|||14|5074 +3000|PA|Allegheny County|North Braddock borough|966|0|3|Johnson|Adrian|2988|Mississippi|M|Son|||12|5075 +3000|PA|Allegheny County|North Braddock borough|966|0|4|Johnson|Devin|2992|New Jersey|M|Son|||8|5076 +3000|PA|Allegheny County|North Braddock borough|966|0|5|Johnson|Kourtney|2996|Minnesota|F|Daughter|||4|5077 + +3000|CA|Fresno County|Lanare CDP|967|0|1|Ishman|Neville Sam|2984|Florida|M|Head|||16|5078 +3000|CA|Fresno County|Lanare CDP|967|0|2|Ishman|Sarai Marylouise|2982|Minnesota|F|Spouse|||18|5079 + +3000|NY|Westchester County|Mamaroneck town|968|0|1|Sanders|Clair Wiley|2953|New Mexico|M|Head|||47|5080 +3000|NY|Westchester County|Mamaroneck town|968|0|2|Sanders|Renate|2971|Belgium|F|Spouse|||29|5081 +3000|NY|Westchester County|Mamaroneck town|968|0|3|Sanders|Lorette|2991|Alabama|F|Daughter|||9|5082 +3000|NY|Westchester County|Mamaroneck town|968|0|4|Sanders|Tiffani|2997|North Dakota|F|Daughter|||3|5083 + +3000|MI|Wexford County|Cadillac city|969|0|1|Babcock|Theo|2949|Connecticut|M|Head|||51|5084 +3000|MI|Wexford County|Cadillac city|969|0|2|Babcock|Lakenya|2964|Colorado|F|Spouse|||36|5085 +3000|MI|Wexford County|Cadillac city|969|0|3|Babcock|Fernande|2988|North Carolina|F|Daughter|||12|5086 +3000|MI|Wexford County|Cadillac city|969|0|4|Babcock|Tabatha|2990|Oklahoma|F|Daughter|||10|5087 +3000|MI|Wexford County|Cadillac city|969|0|5|Babcock|Josiah|2992|Oklahoma|M|Son|||8|5088 +3000|MI|Wexford County|Cadillac city|969|0|6|Babcock|Marhta|2996|Maine|F|Daughter|||4|5089 + +3000|PA|Union County|Hartleton borough|970|0|1|Delaney|Gus Levi|2960|Louisiana|M|Head|||40|5090 +3000|PA|Union County|Hartleton borough|970|0|2|Delaney|Juliane|2968|Pennsylvania|F|Spouse|||32|5091 +3000|PA|Union County|Hartleton borough|970|0|3|Delaney|Ardath|2988|Nevada|F|Daughter|||12|5092 +3000|PA|Union County|Hartleton borough|970|0|4|Delaney|Jayne|2990|Florida|F|Daughter|||10|5093 +3000|PA|Union County|Hartleton borough|970|0|5|Delaney|Travis|2992|California|M|Son|||8|5094 +3000|PA|Union County|Hartleton borough|970|0|6|Delaney|Ericka Katelyn|2998|Mississippi|F|Daughter|||2|5095 + +3000|WI|Monroe County|Sparta town|971|0|1|Geller|Dominique Arnold|2946|Colorado|M|Head|||54|5096 +3000|WI|Monroe County|Sparta town|971|0|2|Geller|Felica Malia|2969|Alabama|F|Spouse|||31|5097 +3000|WI|Monroe County|Sparta town|971|0|3|Geller|Leland|2989|North Carolina|M|Son|||11|5098 +3000|WI|Monroe County|Sparta town|971|0|4|Geller|Serina|2991|Saint Kitts And Nevis|F|Daughter|||9|5099 +3000|WI|Monroe County|Sparta town|971|0|5|Geller|Toby|2995|Oregon|M|Son|||5|5100 +3000|WI|Monroe County|Sparta town|971|0|6|Geller|Kris|2997|Wyoming|M|Son|||3|5101 + +3000|IN|Gibson County|Oakland City city|972|0|1|Ruuska|Haywood Harvey|2963|Falkland Islands (malvinas)|M|Head|||37|5102 +3000|IN|Gibson County|Oakland City city|972|0|2|Ruuska|Bette|2975|Tennessee|F|Spouse|||25|5103 +3000|IN|Gibson County|Oakland City city|972|0|3|Ruuska|Myles|2999|Virginia|M|Son|||1|5104 + +3000|IL|Henry County|Alpha village|973|0|1|Wenke|Ira|2966|Kentucky|M|Head|||34|5105 +3000|IL|Henry County|Alpha village|973|0|2|Wenke|Lory|2964|Madagascar|F|Spouse|||36|5106 +3000|IL|Henry County|Alpha village|973|0|3|Wenke|Diedre|2986|Idaho|F|Daughter|||14|5107 +3000|IL|Henry County|Alpha village|973|0|4|Wenke|Jesus|2988|Delaware|M|Son|||12|5108 + +3000|MS|George County|Lucedale city|974|0|1|Herrin|Eddy Ezekiel|2977|Alabama|M|Head|||23|5109 +3000|MS|George County|Lucedale city|974|0|2|Herrin|Lon|2994|New Mexico|M|Son|||6|5110 +3000|MS|George County|Lucedale city|974|0|3|Herrin|Annice Daisy|2996|Minnesota|F|Daughter|||4|5111 +3000|MS|George County|Lucedale city|974|0|4|Herrin|Elroy|2998|Bermuda|M|Son|||2|5112 +3000|MS|George County|Lucedale city|974|0|5|Herrin|Lavinia Mikaela|3000|New Jersey|F|Daughter|||0|5113 + +3000|MD|Dorchester County|Church Creek town|975|0|1|Tervo|Heath Ralph|2960|Estonia|M|Head|||40|5114 +3000|MD|Dorchester County|Church Creek town|975|0|2|Tervo|Marvis|2971|Maryland|F|Spouse|||29|5115 +3000|MD|Dorchester County|Church Creek town|975|0|3|Tervo|Nickie|2993|Arizona|F|Daughter|||7|5116 +3000|MD|Dorchester County|Church Creek town|975|0|4|Tervo|Yong|2995|New Jersey|M|Son|||5|5117 +3000|MD|Dorchester County|Church Creek town|975|0|5|Tervo|Lucius Edwardo|2997|Mississippi|M|Son|||3|5118 +3000|MD|Dorchester County|Church Creek town|975|0|6|Tervo|Eddie|2999|Vermont|M|Son|||1|5119 + +3000|OH|Franklin County|Brice village|976|0|1|Pomainville|Lindsay Dario|2956|Nebraska|M|Head|||44|5120 +3000|OH|Franklin County|Brice village|976|0|2|Pomainville|Lindsay|2959|Wisconsin|F|Spouse|||41|5121 +3000|OH|Franklin County|Brice village|976|0|3|Pomainville|Marlon Adan|2983|Albania|M|Son|||17|5122 +3000|OH|Franklin County|Brice village|976|0|4|Pomainville|Toi|2985|Tanzania, United Republic Of|F|Daughter|||15|5123 +3000|OH|Franklin County|Brice village|976|0|5|Pomainville|Cary|2991|Puerto Rico|M|Son|||9|5124 +3000|OH|Franklin County|Brice village|976|0|6|Pomainville|Chasidy|2993|New Hampshire|F|Daughter|||7|5125 +3000|OH|Franklin County|Brice village|976|0|7|Pomainville|Sindy|2999|Alaska|F|Daughter|||1|5126 + +3000|WI|Taylor County|Pershing town|977|0|1|Barsegyan|Alison|2970|Georgia|F|Head|||30|5127 +3000|WI|Taylor County|Pershing town|977|0|2|Barsegyan|Kelly|2992|Rhode Island|M|Son|||8|5128 +3000|WI|Taylor County|Pershing town|977|0|3|Barsegyan|Isiah|2996|Ohio|M|Son|||4|5129 +3000|WI|Taylor County|Pershing town|977|0|4|Barsegyan|Margorie|2998|Iowa|F|Daughter|||2|5130 +3000|WI|Taylor County|Pershing town|977|0|5|Barsegyan|Marcellus|3000|Wisconsin|M|Son|||0|5131 + +3000|WV|Harrison County|Clarksburg city|978|0|1|Adams|Nestor Brad|2939|Sierra Leone|M|Head|||61|5132 +3000|WV|Harrison County|Clarksburg city|978|0|2|Adams|Lucinda|2961|Paraguay|F|Spouse|||39|5133 +3000|WV|Harrison County|Clarksburg city|978|0|3|Adams|Ida|2989|Washington|F|Daughter|||11|5134 +3000|WV|Harrison County|Clarksburg city|978|0|4|Adams|Priscila|2993|Colorado|F|Daughter|||7|5135 +3000|WV|Harrison County|Clarksburg city|978|0|5|Adams|Wilma|2999|New Hampshire|F|Daughter|||1|5136 + +3000|IA|Scott County|Panorama Park city|979|0|1|Karr|Denny Maria|2965|Idaho|M|Head|||35|5137 +3000|IA|Scott County|Panorama Park city|979|0|2|Karr|Meg|2971|Antigua And Barbuda|F|Spouse|||29|5138 +3000|IA|Scott County|Panorama Park city|979|0|3|Karr|Clotilde|2991|Hawaii|F|Daughter|||9|5139 +3000|IA|Scott County|Panorama Park city|979|0|4|Karr|Rubi|2993|Egypt|F|Daughter|||7|5140 + +3000|IA|Decatur County|Leon city|980|0|1|Pound|Jake Alden|2940|Alabama|M|Head|||60|5141 +3000|IA|Decatur County|Leon city|980|0|2|Pound|Cleta|2940|Bulgaria|F|Spouse|||60|5142 +3000|IA|Decatur County|Leon city|980|0|3|Pound|Lance|2960|Kyrgyzstan|M|Son|||40|5143 +3000|IA|Decatur County|Leon city|980|0|4|Pound|Lenna|2978|Panama|F|Daughter|||22|5144 +3000|IA|Decatur County|Leon city|980|0|5|Pound|Mitchell|2994|Rhode Island|M|Son|||6|5145 + +3000|WV|Kanawha County|Pratt town|981|0|1|Rafala|John Kraig|2977|Florida|M|Head|||23|5146 +3000|WV|Kanawha County|Pratt town|981|0|2|Rafala|Asuncion|2984|Dominican Republic|F|Spouse|||16|5147 + +3000|MD|Frederick County|New Market town|982|0|1|Greathouse|Zita|2967|Nevada|F|Head|||33|5148 +3000|MD|Frederick County|New Market town|982|0|2|Greathouse|Bettie|2991|Wisconsin|F|Daughter|||9|5149 +3000|MD|Frederick County|New Market town|982|0|3|Greathouse|Marcel|2995|Alaska|M|Son|||5|5150 +3000|MD|Frederick County|New Market town|982|0|4|Greathouse|Kim|2999|Somalia|M|Son|||1|5151 + +3000|GA|Laurens County|Montrose town|983|0|1|Felt|Donovan Timothy|2943|New Jersey|M|Head|||57|5152 +3000|GA|Laurens County|Montrose town|983|0|2|Felt|Myrtis|2980|Ohio|F|Daughter|||20|5153 +3000|GA|Laurens County|Montrose town|983|0|3|Felt|George|2986|Pakistan|F|Daughter|||14|5154 +3000|GA|Laurens County|Montrose town|983|0|4|Felt|Vella|2992|Maryland|F|Daughter|||8|5155 +3000|GA|Laurens County|Montrose town|983|0|5|Felt|Jerilyn|2996|Colorado|F|Daughter|||4|5156 +3000|GA|Laurens County|Montrose town|983|0|6|Felt|Fritz Allen|2998|Colorado|M|Son|||2|5157 +3000|GA|Laurens County|Montrose town|983|0|7|Felt|Heriberto Dustin|3000|Illinois|M|Son|||0|5158 + +3000|VT|Washington County|Waterbury town|984|0|1|Verdine|Claudio Jeremy|2975|Minnesota|M|Head|||25|5159 +3000|VT|Washington County|Waterbury town|984|0|2|Verdine|Jerrod|2998|Alaska|M|Son|||2|5160 + +3000|WA|Yakima County|Tieton town|985|0|1|Wallace|Sergio Ike|2974|Virginia|M|Head|||26|5161 + +3000|KY|Webster County|Onton CDP|986|0|1|Albin|Otis Geraldo|2975|Hawaii|M|Head|||25|5162 +3000|KY|Webster County|Onton CDP|986|0|2|Albin|Jamison|2995|Iowa|M|Son|||5|5163 +3000|KY|Webster County|Onton CDP|986|0|3|Albin|Arnetta|2997|Vermont|F|Daughter|||3|5164 +3000|KY|Webster County|Onton CDP|986|0|4|Albin|Pat|2999|Iowa|M|Son|||1|5165 + +3000|AZ|Pima County|Catalina Foothills CDP|987|0|1|Valdez|Collin Bruce|2938|Idaho|M|Head|||62|5166 +3000|AZ|Pima County|Catalina Foothills CDP|987|0|2|Valdez|Dinah|2972|Alabama|F|Daughter|||28|5167 +3000|AZ|Pima County|Catalina Foothills CDP|987|0|3|Valdez|Emeline|2986|Vermont|F|Daughter|||14|5168 +3000|AZ|Pima County|Catalina Foothills CDP|987|0|4|Valdez|Kellie Clementine|2990|Oklahoma|F|Daughter|||10|5169 +3000|AZ|Pima County|Catalina Foothills CDP|987|0|5|Valdez|Tony|2992|Missouri|M|Son|||8|5170 +3000|AZ|Pima County|Catalina Foothills CDP|987|0|6|Valdez|Leonardo|2994|Virginia|M|Son|||6|5171 +3000|AZ|Pima County|Catalina Foothills CDP|987|0|7|Valdez|Jamar|2998|Rhode Island|M|Son|||2|5172 +3000|AZ|Pima County|Catalina Foothills CDP|987|0|8|Valdez|Curtis|3000|Maine|F|Daughter|||0|5173 + +3000|NY|Ulster County|Kingston town|988|0|1|Messerly|Fredrick Jerald|2946|Moldova, Republic Of|M|Head|||54|5174 +3000|NY|Ulster County|Kingston town|988|0|2|Messerly|Ramonita|2953|Cape Verde|F|Spouse|||47|5175 +3000|NY|Ulster County|Kingston town|988|0|3|Messerly|Olen|2981|Connecticut|M|Son|||19|5176 +3000|NY|Ulster County|Kingston town|988|0|4|Messerly|Latesha|2993|Idaho|F|Daughter|||7|5177 +3000|NY|Ulster County|Kingston town|988|0|5|Messerly|Ruthann|2997|Massachusetts|F|Daughter|||3|5178 +3000|NY|Ulster County|Kingston town|988|0|6|Messerly|Jennine Farah|2999|Michigan|F|Daughter|||1|5179 + +3000|CO|Weld County|Eaton town|989|0|1|Hutt|Noma|2979|Montana|F|Head|||21|5180 + +3000|CO|Boulder County|Ward town|990|0|1|Newbill|Jamison Boyd|2950|West Virginia|M|Head|||50|5181 +3000|CO|Boulder County|Ward town|990|0|2|Newbill|Josie|2960|Florida|F|Spouse|||40|5182 +3000|CO|Boulder County|Ward town|990|0|3|Newbill|Roman|2986|Hawaii|M|Son|||14|5183 +3000|CO|Boulder County|Ward town|990|0|4|Newbill|Tomas|2988|Ohio|M|Son|||12|5184 +3000|CO|Boulder County|Ward town|990|0|5|Newbill|Brooke|2996|Minnesota|F|Daughter|||4|5185 +3000|CO|Boulder County|Ward town|990|0|6|Newbill|Brady|2998|Mississippi|M|Son|||2|5186 +3000|CO|Boulder County|Ward town|990|0|7|Newbill|Glenna|3000|Kansas|F|Daughter|||0|5187 + +3000|CA|Colusa County|Grimes CDP|991|0|1|Capparelli|Huey Glenn|2963|Wyoming|M|Head|||37|5188 +3000|CA|Colusa County|Grimes CDP|991|0|2|Capparelli|Johna|2971|Yemen|F|Spouse|||29|5189 +3000|CA|Colusa County|Grimes CDP|991|0|3|Capparelli|Irvin|2993|Montana|M|Son|||7|5190 +3000|CA|Colusa County|Grimes CDP|991|0|4|Capparelli|Serina|2995|Kentucky|F|Daughter|||5|5191 + +3000|NY|Genesee County|Pavilion CDP|992|0|1|Fullerton|Sung Donte|2963|Louisiana|M|Head|||37|5192 +3000|NY|Genesee County|Pavilion CDP|992|0|2|Fullerton|Edwardo|2991|Missouri|M|Son|||9|5193 +3000|NY|Genesee County|Pavilion CDP|992|0|3|Fullerton|Noel|2997|Romania|M|Son|||3|5194 +3000|NY|Genesee County|Pavilion CDP|992|0|4|Fullerton|Grant|2999|Wyoming|M|Son|||1|5195 + +3000|KS|Osborne County|Alton city|993|0|1|Bauer|Houston Steve|2962|California|M|Head|||38|5196 +3000|KS|Osborne County|Alton city|993|0|2|Bauer|Tiffany|2976|Texas|F|Spouse|||24|5197 +3000|KS|Osborne County|Alton city|993|0|3|Bauer|Malcolm|2998|Iowa|M|Son|||2|5198 +3000|KS|Osborne County|Alton city|993|0|4|Bauer|Earline|3000|Alabama|F|Daughter|||0|5199 + +3000|NJ|Morris County|Dover town|994|0|1|Rademacher|Wally Andre|2956|California|M|Head|||44|5200 +3000|NJ|Morris County|Dover town|994|0|2|Rademacher|Kacey|2956|Barbados|F|Spouse|||44|5201 +3000|NJ|Morris County|Dover town|994|0|3|Rademacher|Moriah|2986|Honduras|F|Daughter|||14|5202 +3000|NJ|Morris County|Dover town|994|0|4|Rademacher|Clara|2988|Idaho|F|Daughter|||12|5203 +3000|NJ|Morris County|Dover town|994|0|5|Rademacher|Tanner|2990|Luxembourg|M|Son|||10|5204 +3000|NJ|Morris County|Dover town|994|0|6|Rademacher|Luther|2996|South Carolina|M|Son|||4|5205 +3000|NJ|Morris County|Dover town|994|0|7|Rademacher|Ernest|2998|Nebraska|M|Son|||2|5206 +3000|NJ|Morris County|Dover town|994|0|8|Rademacher|Daryl|3000|Rhode Island|M|Son|||0|5207 + +3000|NE|Nemaha County|Brock village|995|0|1|Utter|Todd Maximo|2952|Maryland|M|Head|||48|5208 +3000|NE|Nemaha County|Brock village|995|0|2|Utter|Louise Octavia|2952|Washington|F|Spouse|||48|5209 +3000|NE|Nemaha County|Brock village|995|0|3|Utter|Randell|2986|Palestinian Territory, Occupied|M|Son|||14|5210 +3000|NE|Nemaha County|Brock village|995|0|4|Utter|Bertha|2992|France|F|Daughter|||8|5211 +3000|NE|Nemaha County|Brock village|995|0|5|Utter|Granville Damion|2998|Rhode Island|M|Son|||2|5212 +3000|NE|Nemaha County|Brock village|995|0|6|Utter|Karl|3000|Tennessee|M|Son|||0|5213 + +3000|KY|Jessamine County|High Bridge CDP|996|0|1|Fortes|Vince|2957|North Carolina|M|Head|||43|5214 +3000|KY|Jessamine County|High Bridge CDP|996|0|2|Fortes|Anja Felicitas|2976|Mississippi|F|Spouse|||24|5215 +3000|KY|Jessamine County|High Bridge CDP|996|0|3|Fortes|Antone Prince|2996|Nevada|M|Son|||4|5216 + +3000|MN|Kandiyohi County|Roseland township|997|0|1|Alvarado|Fernando Leslie|2981|Vermont|M|Head|||19|5217 +3000|MN|Kandiyohi County|Roseland township|997|0|2|Alvarado|Chaya|2983|Michigan|F|Spouse|||17|5218 + +3000|CA|Contra Costa County|San Ramon city|998|0|1|Long|Gail Raymond|2944|Wisconsin|M|Head|||56|5219 +3000|CA|Contra Costa County|San Ramon city|998|0|2|Long|Dina|2943|Maryland|F|Spouse|||57|5220 +3000|CA|Contra Costa County|San Ramon city|998|0|3|Long|Dick|2965|Tanzania, United Republic Of|M|Son|||35|5221 +3000|CA|Contra Costa County|San Ramon city|998|0|4|Long|Denny Emelia|2971|Ohio|F|Daughter|||29|5222 +3000|CA|Contra Costa County|San Ramon city|998|0|5|Long|Vern|2977|Idaho|M|Son|||23|5223 +3000|CA|Contra Costa County|San Ramon city|998|0|6|Long|Dinorah|2985|Mississippi|F|Daughter|||15|5224 +3000|CA|Contra Costa County|San Ramon city|998|0|7|Long|Brynn|2987|Norfolk Island|F|Daughter|||13|5225 +3000|CA|Contra Costa County|San Ramon city|998|0|8|Long|Ferdinand|2989|Tennessee|M|Son|||11|5226 +3000|CA|Contra Costa County|San Ramon city|998|0|9|Long|Willian|2993|California|M|Son|||7|5227 +3000|CA|Contra Costa County|San Ramon city|998|0|10|Long|Franchesca|2995|El Salvador|F|Daughter|||5|5228 + +3000|PA|Snyder County|Port Trevorton CDP|999|0|1|Crane|Deandre Les|2949|Wyoming|M|Head|||51|5229 +3000|PA|Snyder County|Port Trevorton CDP|999|0|2|Crane|Hertha|2953|Connecticut|F|Spouse|||47|5230 +3000|PA|Snyder County|Port Trevorton CDP|999|0|3|Crane|Nicolasa|2973|Nebraska|F|Daughter|||27|5231 +3000|PA|Snyder County|Port Trevorton CDP|999|0|4|Crane|Brandy|2975|Maryland|F|Daughter|||25|5232 +3000|PA|Snyder County|Port Trevorton CDP|999|0|5|Crane|Alonzo|2985|Illinois|M|Son|||15|5233 +3000|PA|Snyder County|Port Trevorton CDP|999|0|6|Crane|An|2987|Arkansas|F|Daughter|||13|5234 +3000|PA|Snyder County|Port Trevorton CDP|999|0|7|Crane|Leonardo|2991|Delaware|M|Son|||9|5235 +3000|PA|Snyder County|Port Trevorton CDP|999|0|8|Crane|Lesli|2993|Nevada|F|Daughter|||7|5236 +3000|PA|Snyder County|Port Trevorton CDP|999|0|9|Crane|Ling|2999|Rhode Island|F|Daughter|||1|5237 + +3000|TX|Cass County, Morris County|Hughes Springs city|1000|0|1|Thomasson|Deshawn Clifford|2974|Costa Rica|M|Head|||26|5238 +3000|TX|Cass County, Morris County|Hughes Springs city|1000|0|2|Thomasson|Carrol|2977|Oregon|F|Spouse|||23|5239 +3000|TX|Cass County, Morris County|Hughes Springs city|1000|0|3|Thomasson|Candie|2997|Alaska|F|Daughter|||3|5240 + +3000|NM|Socorro County|Socorro city|1001|0|1|Kump|Modesto Leif|2962|Michigan|M|Head|||38|5241 +3000|NM|Socorro County|Socorro city|1001|0|2|Kump|Takako|2969|Washington|F|Spouse|||31|5242 +3000|NM|Socorro County|Socorro city|1001|0|3|Kump|Xavier|2991|Alaska|M|Son|||9|5243 + diff -Nru cctools-7.0.22/doc/manuals/prune/examples/census/simulated_data/3000.2.txt cctools-7.1.2/doc/manuals/prune/examples/census/simulated_data/3000.2.txt --- cctools-7.0.22/doc/manuals/prune/examples/census/simulated_data/3000.2.txt 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/census/simulated_data/3000.2.txt 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,6319 @@ +3000|PA|Lycoming County|Montgomery borough|1002|0|1|Pommier|Miles|2944|Wyoming|M|Head|||56|5244 +3000|PA|Lycoming County|Montgomery borough|1002|0|2|Pommier|Britt|2942|Arizona|F|Spouse|||58|5245 +3000|PA|Lycoming County|Montgomery borough|1002|0|3|Pommier|Karoline|2978|South Carolina|F|Daughter|||22|5246 +3000|PA|Lycoming County|Montgomery borough|1002|0|4|Pommier|Rex|2986|Papua New Guinea|M|Son|||14|5247 +3000|PA|Lycoming County|Montgomery borough|1002|0|5|Pommier|Bee|2988|Ohio|F|Daughter|||12|5248 +3000|PA|Lycoming County|Montgomery borough|1002|0|6|Pommier|Lean Lora|2990|Alabama|F|Daughter|||10|5249 +3000|PA|Lycoming County|Montgomery borough|1002|0|7|Pommier|Derek|3000|Massachusetts|M|Son|||0|5250 + +3000|NY|Warren County|West Glens Falls CDP|1003|0|1|Cundick|Beau Carlo|2963|Maine|M|Head|||37|5251 +3000|NY|Warren County|West Glens Falls CDP|1003|0|2|Cundick|Carola|2980|Seychelles|F|Spouse|||20|5252 + +3000|PA|Westmoreland County|Fairfield township|1004|0|1|Menifee|Willy Seth|2969|Missouri|M|Head|||31|5253 +3000|PA|Westmoreland County|Fairfield township|1004|0|2|Menifee|Aurelio|2988|Iowa|M|Son|||12|5254 +3000|PA|Westmoreland County|Fairfield township|1004|0|3|Menifee|Kristie Migdalia|2992|Texas|F|Daughter|||8|5255 +3000|PA|Westmoreland County|Fairfield township|1004|0|4|Menifee|Elli|2994|Micronesia, Federated States Of|F|Daughter|||6|5256 +3000|PA|Westmoreland County|Fairfield township|1004|0|5|Menifee|Guy|2996|Minnesota|M|Son|||4|5257 + +3000|MN|Kittson County|Kennedy city|1005|0|1|Rosenbush|Oscar|2946|Tennessee|M|Head|||54|5258 +3000|MN|Kittson County|Kennedy city|1005|0|2|Rosenbush|Flor|2947|Florida|F|Spouse|||53|5259 +3000|MN|Kittson County|Kennedy city|1005|0|3|Rosenbush|Benjamin Harris|2967|Cambodia|M|Son|||33|5260 +3000|MN|Kittson County|Kennedy city|1005|0|4|Rosenbush|Allen|2985|Oregon|M|Son|||15|5261 +3000|MN|Kittson County|Kennedy city|1005|0|5|Rosenbush|Kelly|2989|Benin|M|Son|||11|5262 +3000|MN|Kittson County|Kennedy city|1005|0|6|Rosenbush|Aldo|2993|Connecticut|M|Son|||7|5263 +3000|MN|Kittson County|Kennedy city|1005|0|7|Rosenbush|Deon|2995|California|M|Son|||5|5264 + +3000|MS|Holmes County|Lexington city|1006|0|1|Jones|Blair Thaddeus|2954|Mozambique|M|Head|||46|5265 +3000|MS|Holmes County|Lexington city|1006|0|2|Jones|Lianne|2966|Oklahoma|F|Spouse|||34|5266 +3000|MS|Holmes County|Lexington city|1006|0|3|Jones|Valorie|2990|Ecuador|F|Daughter|||10|5267 +3000|MS|Holmes County|Lexington city|1006|0|4|Jones|Granville Lee|2992|Louisiana|M|Son|||8|5268 +3000|MS|Holmes County|Lexington city|1006|0|5|Jones|Necole|2998|Colorado|F|Daughter|||2|5269 +3000|MS|Holmes County|Lexington city|1006|0|6|Jones|Love|3000|Oman|F|Daughter|||0|5270 + +3000|PA|Bradford County|Ridgebury township|1007|0|1|Shusterman|Micah Morgan|2941|China|M|Head|||59|5271 +3000|PA|Bradford County|Ridgebury township|1007|0|2|Shusterman|Cecile|2942|West Virginia|F|Spouse|||58|5272 +3000|PA|Bradford County|Ridgebury township|1007|0|3|Shusterman|Joe|2962|Niue|M|Son|||38|5273 +3000|PA|Bradford County|Ridgebury township|1007|0|4|Shusterman|Sydney|2970|Minnesota|M|Son|||30|5274 +3000|PA|Bradford County|Ridgebury township|1007|0|5|Shusterman|Ja|2988|Florida|F|Daughter|||12|5275 + +3000|ND|Ransom County|Sheldon city|1008|0|1|Oliver|Leigh Antone|2964|South Carolina|M|Head|||36|5276 +3000|ND|Ransom County|Sheldon city|1008|0|2|Oliver|Donetta|2993|Utah|F|Daughter|||7|5277 +3000|ND|Ransom County|Sheldon city|1008|0|3|Oliver|Betty|2995|New Jersey|F|Daughter|||5|5278 + +3000|OH|Hamilton County|Dry Run CDP|1009|0|1|Turso|Art Loren|2962|Oklahoma|M|Head|||38|5279 +3000|OH|Hamilton County|Dry Run CDP|1009|0|2|Turso|Afton|2974|Oklahoma|F|Spouse|||26|5280 +3000|OH|Hamilton County|Dry Run CDP|1009|0|3|Turso|Lauren|2996|North Dakota|M|Son|||4|5281 +3000|OH|Hamilton County|Dry Run CDP|1009|0|4|Turso|Signe|3000|Pakistan|F|Daughter|||0|5282 + +3000|PA|Centre County|Taylor township|1010|0|1|Simpson|Andrew Ambrose|2941|Oklahoma|M|Head|||59|5283 +3000|PA|Centre County|Taylor township|1010|0|2|Simpson|Vicki|2947|Wyoming|F|Spouse|||53|5284 +3000|PA|Centre County|Taylor township|1010|0|3|Simpson|Russ|2967|North Carolina|M|Son|||33|5285 +3000|PA|Centre County|Taylor township|1010|0|4|Simpson|Stuart Errol|2975|Mississippi|M|Son|||25|5286 +3000|PA|Centre County|Taylor township|1010|0|5|Simpson|Alphonso Ernest|2987|Turkmenistan|M|Son|||13|5287 +3000|PA|Centre County|Taylor township|1010|0|6|Simpson|Jaime|2991|New Jersey|F|Daughter|||9|5288 +3000|PA|Centre County|Taylor township|1010|0|7|Simpson|Shin|2995|Korea, Democratic People's Republic Of|F|Daughter|||5|5289 + +3000|MA|Barnstable County|West Chatham CDP|1011|0|1|Gallusser|Eldon Andre|2970|North Dakota|M|Head|||30|5290 +3000|MA|Barnstable County|West Chatham CDP|1011|0|2|Gallusser|Jacelyn|2988|Oregon|F|Daughter|||12|5291 +3000|MA|Barnstable County|West Chatham CDP|1011|0|3|Gallusser|Eloise|2992|Arkansas|F|Daughter|||8|5292 +3000|MA|Barnstable County|West Chatham CDP|1011|0|4|Gallusser|Will|2994|Missouri|M|Son|||6|5293 +3000|MA|Barnstable County|West Chatham CDP|1011|0|5|Gallusser|Karol|2998|Massachusetts|F|Daughter|||2|5294 + +3000|MO|Henry County|Hartwell CDP|1012|0|1|Harris|Vernon Raymon|2941|Arizona|M|Head|||59|5295 +3000|MO|Henry County|Hartwell CDP|1012|0|2|Harris|Efrain|2967|North Carolina|M|Son|||33|5296 +3000|MO|Henry County|Hartwell CDP|1012|0|3|Harris|Sofia|2969|Iran, Islamic Republic Of|F|Daughter|||31|5297 +3000|MO|Henry County|Hartwell CDP|1012|0|4|Harris|Esteban|2979|Virgin Islands, U.s.|M|Son|||21|5298 +3000|MO|Henry County|Hartwell CDP|1012|0|5|Harris|Carlotta|2983|Illinois|F|Daughter|||17|5299 +3000|MO|Henry County|Hartwell CDP|1012|0|6|Harris|Dillon Theodore|2987|Delaware|M|Son|||13|5300 +3000|MO|Henry County|Hartwell CDP|1012|0|7|Harris|Franklin|2995|Arkansas|M|Son|||5|5301 + +3000|MO|Taney County|Bull Creek village|1013|0|1|James|Charley Cameron|2955|Maine|M|Head|||45|5302 +3000|MO|Taney County|Bull Creek village|1013|0|2|James|Stella|2977|Colorado|F|Daughter|||23|5303 +3000|MO|Taney County|Bull Creek village|1013|0|3|James|Patria|2987|Indiana|F|Daughter|||13|5304 +3000|MO|Taney County|Bull Creek village|1013|0|4|James|Gia|2997|Tennessee|F|Daughter|||3|5305 + +3000|NC|Burke County|Hildebran town|1014|0|1|Vera|Luis Everett|2965|West Virginia|M|Head|||35|5306 + +3000|CO|Weld County|Dacono city|1015|0|1|Wombolt|Wilbert Felipe|2951|California|M|Head|||49|5307 +3000|CO|Weld County|Dacono city|1015|0|2|Wombolt|Sulema Cristi|2980|Kentucky|F|Daughter|||20|5308 +3000|CO|Weld County|Dacono city|1015|0|3|Wombolt|Sharilyn|2988|Peru|F|Daughter|||12|5309 +3000|CO|Weld County|Dacono city|1015|0|4|Wombolt|Jocelyn|2990|Idaho|F|Daughter|||10|5310 +3000|CO|Weld County|Dacono city|1015|0|5|Wombolt|Della|2992|Senegal|F|Daughter|||8|5311 +3000|CO|Weld County|Dacono city|1015|0|6|Wombolt|Myrtice|2996|Virginia|F|Daughter|||4|5312 + +3000|KS|Phillips County|Kirwin city|1016|0|1|Scalice|Elwood Irwin|2957|Sweden|M|Head|||43|5313 +3000|KS|Phillips County|Kirwin city|1016|0|2|Scalice|Randa|2960|Louisiana|F|Spouse|||40|5314 +3000|KS|Phillips County|Kirwin city|1016|0|3|Scalice|Clifton|2980|Illinois|M|Son|||20|5315 +3000|KS|Phillips County|Kirwin city|1016|0|4|Scalice|Roselia|2988|Indiana|F|Daughter|||12|5316 +3000|KS|Phillips County|Kirwin city|1016|0|5|Scalice|Lewis|2990|Indonesia|M|Son|||10|5317 +3000|KS|Phillips County|Kirwin city|1016|0|6|Scalice|Ellena|2994|South Carolina|F|Daughter|||6|5318 +3000|KS|Phillips County|Kirwin city|1016|0|7|Scalice|Stanford|2998|South Carolina|M|Son|||2|5319 + +3000|MO|St. Louis County|Vinita Park city|1017|0|1|Ruggero|Vicente Laverne|2938|Kyrgyzstan|M|Head|||62|5320 +3000|MO|St. Louis County|Vinita Park city|1017|0|2|Ruggero|Chas|2986|New Zealand|M|Son|||14|5321 +3000|MO|St. Louis County|Vinita Park city|1017|0|3|Ruggero|Gerald|2990|Mississippi|M|Son|||10|5322 +3000|MO|St. Louis County|Vinita Park city|1017|0|4|Ruggero|Billy|2992|New Mexico|F|Daughter|||8|5323 + +3000|NH|Carroll County|Union CDP|1018|0|1|Renteria|Maxie|2956|Louisiana|F|Head|||44|5324 +3000|NH|Carroll County|Union CDP|1018|0|2|Renteria|Domingo|2976|Sweden|M|Son|||24|5325 +3000|NH|Carroll County|Union CDP|1018|0|3|Renteria|Xavier|2984|Delaware|M|Son|||16|5326 +3000|NH|Carroll County|Union CDP|1018|0|4|Renteria|Fausto|2988|West Virginia|M|Son|||12|5327 +3000|NH|Carroll County|Union CDP|1018|0|5|Renteria|Savannah|2990|North Carolina|F|Daughter|||10|5328 +3000|NH|Carroll County|Union CDP|1018|0|6|Renteria|Lavone|2992|Oklahoma|F|Daughter|||8|5329 +3000|NH|Carroll County|Union CDP|1018|0|7|Renteria|Arthur|2998|Iceland|M|Son|||2|5330 +3000|NH|Carroll County|Union CDP|1018|0|8|Renteria|Elliot|3000|California|M|Son|||0|5331 + +3000|CA|Yuba County|Beale AFB CDP|1019|0|1|Runyan|Isaac Dorsey|2940|Wallis And Futuna|M|Head|||60|5332 +3000|CA|Yuba County|Beale AFB CDP|1019|0|2|Runyan|Rosalee|2953|Virginia|F|Spouse|||47|5333 +3000|CA|Yuba County|Beale AFB CDP|1019|0|3|Runyan|Jody|2975|Texas|M|Son|||25|5334 +3000|CA|Yuba County|Beale AFB CDP|1019|0|4|Runyan|Bradford|2981|New Hampshire|M|Son|||19|5335 +3000|CA|Yuba County|Beale AFB CDP|1019|0|5|Runyan|Maurine|2985|Guadeloupe|F|Daughter|||15|5336 +3000|CA|Yuba County|Beale AFB CDP|1019|0|6|Runyan|Eliseo|2987|Arizona|M|Son|||13|5337 +3000|CA|Yuba County|Beale AFB CDP|1019|0|7|Runyan|Sharyn|2993|California|F|Daughter|||7|5338 +3000|CA|Yuba County|Beale AFB CDP|1019|0|8|Runyan|Angella|2995|New York|F|Daughter|||5|5339 +3000|CA|Yuba County|Beale AFB CDP|1019|0|9|Runyan|Luke|2999|Bermuda|M|Son|||1|5340 + +3000|IA|Winnebago County|Leland city|1020|0|1|Ohrt|Roxy|2950|Missouri|F|Head|||50|5341 +3000|IA|Winnebago County|Leland city|1020|0|2|Ohrt|Shiloh|2972|Delaware|F|Daughter|||28|5342 +3000|IA|Winnebago County|Leland city|1020|0|3|Ohrt|Saundra|2980|Barbados|F|Daughter|||20|5343 +3000|IA|Winnebago County|Leland city|1020|0|4|Ohrt|Celia|2984|Pennsylvania|F|Daughter|||16|5344 +3000|IA|Winnebago County|Leland city|1020|0|5|Ohrt|Nada|2988|Ohio|F|Daughter|||12|5345 +3000|IA|Winnebago County|Leland city|1020|0|6|Ohrt|Altha|2994|New Jersey|F|Daughter|||6|5346 +3000|IA|Winnebago County|Leland city|1020|0|7|Ohrt|Rolando|2996|Arizona|M|Son|||4|5347 + +3000|IL|Cook County, Lake County|Deer Park village|1021|0|1|Poole|Humberto Burl|2973|Mexico|M|Head|||27|5348 +3000|IL|Cook County, Lake County|Deer Park village|1021|0|2|Poole|Leonie|2970|Dominica|F|Spouse|||30|5349 +3000|IL|Cook County, Lake County|Deer Park village|1021|0|3|Poole|Sam Davis|2990|Connecticut|M|Son|||10|5350 +3000|IL|Cook County, Lake County|Deer Park village|1021|0|4|Poole|Lane|2992|Pennsylvania|M|Son|||8|5351 +3000|IL|Cook County, Lake County|Deer Park village|1021|0|5|Poole|Sterling|2996|Arizona|M|Son|||4|5352 +3000|IL|Cook County, Lake County|Deer Park village|1021|0|6|Poole|Jalisa Cinthia|2998|Virginia|F|Daughter|||2|5353 + +3000|CO|El Paso County|Cascade-Chipita Park CDP|1022|0|1|Frack|Hugh Marcellus|2976|Massachusetts|M|Head|||24|5354 +3000|CO|El Paso County|Cascade-Chipita Park CDP|1022|0|2|Frack|Natacha|2983|Congo, The Democratic Republic Of The|F|Spouse|||17|5355 + +3000|CA|Amador County|Plymouth city|1023|0|1|Fite|Alfreda|2969|Iowa|F|Head|||31|5356 +3000|CA|Amador County|Plymouth city|1023|0|2|Fite|Kasey|2989|Grenada|M|Son|||11|5357 +3000|CA|Amador County|Plymouth city|1023|0|3|Fite|Darcel|2991|Louisiana|F|Daughter|||9|5358 +3000|CA|Amador County|Plymouth city|1023|0|4|Fite|Rudolf|2993|Oklahoma|M|Son|||7|5359 +3000|CA|Amador County|Plymouth city|1023|0|5|Fite|Arlena Dena|2997|Solomon Islands|F|Daughter|||3|5360 + +3000|AL|Mobile County|Chunchula CDP|1024|0|1|Stanger|Salvador Clark|2948|South Carolina|M|Head|||52|5361 +3000|AL|Mobile County|Chunchula CDP|1024|0|2|Stanger|Blanche|2959|Norway|F|Spouse|||41|5362 +3000|AL|Mobile County|Chunchula CDP|1024|0|3|Stanger|Raphael|2979|Zambia|M|Son|||21|5363 +3000|AL|Mobile County|Chunchula CDP|1024|0|4|Stanger|Dorethea|2991|Connecticut|F|Daughter|||9|5364 + +3000|MT|Prairie County|Terry town|1025|0|1|Lee|Lou Napoleon|2946|Oregon|M|Head|||54|5365 +3000|MT|Prairie County|Terry town|1025|0|2|Lee|Cherly|2970|Delaware|F|Spouse|||30|5366 +3000|MT|Prairie County|Terry town|1025|0|3|Lee|Monet|2990|North Dakota|F|Daughter|||10|5367 +3000|MT|Prairie County|Terry town|1025|0|4|Lee|Jan|2994|Kentucky|M|Son|||6|5368 + +3000|NE|McPherson County|Tryon CDP|1026|0|1|Greisser|Van Orville|2979|Missouri|M|Head|||21|5369 +3000|NE|McPherson County|Tryon CDP|1026|0|2|Greisser|Celestine|2995|South Dakota|F|Daughter|||5|5370 +3000|NE|McPherson County|Tryon CDP|1026|0|3|Greisser|Marquetta Tyler|2997|California|F|Daughter|||3|5371 + +3000|NE|Colfax County|Rogers village|1027|0|1|Mischnick|Ervin Kirby|2955|Idaho|M|Head|||45|5372 +3000|NE|Colfax County|Rogers village|1027|0|2|Mischnick|Mui|2966|Texas|F|Spouse|||34|5373 +3000|NE|Colfax County|Rogers village|1027|0|3|Mischnick|Lewis|2992|Nevada|M|Son|||8|5374 + +3000|WA|Chelan County|Chelan Falls CDP|1028|0|1|Moore|Dallas Brendon|2981|Delaware|M|Head|||19|5375 +3000|WA|Chelan County|Chelan Falls CDP|1028|0|2|Moore|Inger|2984|Kentucky|F|Spouse|||16|5376 + +3000|OH|Clinton County|Sabina village|1029|0|1|Claffey|Richard Judson|2940|Comoros|M|Head|||60|5377 +3000|OH|Clinton County|Sabina village|1029|0|2|Claffey|Verena|2973|Arizona|F|Daughter|||27|5378 +3000|OH|Clinton County|Sabina village|1029|0|3|Claffey|Nestor|2977|New Mexico|M|Son|||23|5379 +3000|OH|Clinton County|Sabina village|1029|0|4|Claffey|Diego|2989|Rhode Island|M|Son|||11|5380 +3000|OH|Clinton County|Sabina village|1029|0|5|Claffey|Tyree|2991|Louisiana|M|Son|||9|5381 +3000|OH|Clinton County|Sabina village|1029|0|6|Claffey|Asha|2993|Utah|F|Daughter|||7|5382 + +3000|PA|Dauphin County|Halifax borough|1030|0|1|Denger|Damion|2938|California|M|Head|||62|5383 +3000|PA|Dauphin County|Halifax borough|1030|0|2|Denger|Yolando|2961|Oklahoma|F|Spouse|||39|5384 +3000|PA|Dauphin County|Halifax borough|1030|0|3|Denger|Daniel|2981|Niue|F|Daughter|||19|5385 +3000|PA|Dauphin County|Halifax borough|1030|0|4|Denger|Aurora|2985|Wyoming|F|Daughter|||15|5386 +3000|PA|Dauphin County|Halifax borough|1030|0|5|Denger|Sammie|2987|Arizona|M|Son|||13|5387 +3000|PA|Dauphin County|Halifax borough|1030|0|6|Denger|Brendan Ismael|2991|New Mexico|M|Son|||9|5388 +3000|PA|Dauphin County|Halifax borough|1030|0|7|Denger|Damian|2995|Texas|M|Son|||5|5389 +3000|PA|Dauphin County|Halifax borough|1030|0|8|Denger|Lura|2999|Texas|F|Daughter|||1|5390 + +3000|WI|Waushara County|Plainfield town|1031|0|1|Wilson|Marcos Bob|2946|Texas|M|Head|||54|5391 +3000|WI|Waushara County|Plainfield town|1031|0|2|Wilson|Roxane|2951|Hawaii|F|Spouse|||49|5392 +3000|WI|Waushara County|Plainfield town|1031|0|3|Wilson|Florida|2979|Lesotho|F|Daughter|||21|5393 +3000|WI|Waushara County|Plainfield town|1031|0|4|Wilson|Kyle Micheal|2987|Texas|M|Son|||13|5394 +3000|WI|Waushara County|Plainfield town|1031|0|5|Wilson|Abdul|2991|Maryland|M|Son|||9|5395 +3000|WI|Waushara County|Plainfield town|1031|0|6|Wilson|Eugene|2995|Alaska|F|Daughter|||5|5396 + +3000|IN|Fayette County, Rush County|Glenwood town|1032|0|1|Mottram|Darin Burl|2947|Latvia|M|Head|||53|5397 +3000|IN|Fayette County, Rush County|Glenwood town|1032|0|2|Mottram|Roslyn|2949|North Dakota|F|Spouse|||51|5398 +3000|IN|Fayette County, Rush County|Glenwood town|1032|0|3|Mottram|Zachariah|2981|Oklahoma|M|Son|||19|5399 +3000|IN|Fayette County, Rush County|Glenwood town|1032|0|4|Mottram|Felipe|2987|Seychelles|M|Son|||13|5400 +3000|IN|Fayette County, Rush County|Glenwood town|1032|0|5|Mottram|Maple|2989|Tennessee|F|Daughter|||11|5401 +3000|IN|Fayette County, Rush County|Glenwood town|1032|0|6|Mottram|Zonia|2991|Colorado|F|Daughter|||9|5402 +3000|IN|Fayette County, Rush County|Glenwood town|1032|0|7|Mottram|Wendell|2993|Hawaii|M|Son|||7|5403 +3000|IN|Fayette County, Rush County|Glenwood town|1032|0|8|Mottram|Joanie Ethel|2995|Michigan|F|Daughter|||5|5404 + +3000|PA|Indiana County|Plumville borough|1033|0|1|Horowitz|Nicolas Palmer|2955|Romania|M|Head|||45|5405 +3000|PA|Indiana County|Plumville borough|1033|0|2|Horowitz|Leia|2971|Georgia|F|Spouse|||29|5406 +3000|PA|Indiana County|Plumville borough|1033|0|3|Horowitz|Kenisha Gretchen|2995|Louisiana|F|Daughter|||5|5407 +3000|PA|Indiana County|Plumville borough|1033|0|4|Horowitz|Emil|2997|New Jersey|M|Son|||3|5408 +3000|PA|Indiana County|Plumville borough|1033|0|5|Horowitz|Willa|2999|Maryland|F|Daughter|||1|5409 + +3000|MS|Hinds County|Clinton city|1034|0|1|Mercik|Jaime Jerome|2942|Mississippi|M|Head|||58|5410 +3000|MS|Hinds County|Clinton city|1034|0|2|Mercik|Norbert Jose|2977|California|M|Son|||23|5411 +3000|MS|Hinds County|Clinton city|1034|0|3|Mercik|Joaquin|2985|Turkmenistan|M|Son|||15|5412 +3000|MS|Hinds County|Clinton city|1034|0|4|Mercik|Mirna|2989|Pennsylvania|F|Daughter|||11|5413 +3000|MS|Hinds County|Clinton city|1034|0|5|Mercik|Violette Bridgett|2991|Burundi|F|Daughter|||9|5414 +3000|MS|Hinds County|Clinton city|1034|0|6|Mercik|Loura|2993|Michigan|F|Daughter|||7|5415 +3000|MS|Hinds County|Clinton city|1034|0|7|Mercik|Clark|2995|Georgia|M|Son|||5|5416 + +3000|AZ|Gila County|Globe city|1035|0|1|Fisher|Jefferey Dave|2956|West Virginia|M|Head|||44|5417 +3000|AZ|Gila County|Globe city|1035|0|2|Fisher|Clint|2997|Wisconsin|M|Son|||3|5418 + +3000|NE|Keith County|Brule village|1036|0|1|Bracket|Raleigh Rodrick|2981|Nevada|M|Head|||19|5419 +3000|NE|Keith County|Brule village|1036|0|2|Bracket|Anthony|2977|New Mexico|F|Spouse|||23|5420 +3000|NE|Keith County|Brule village|1036|0|3|Bracket|Samuel|2999|Kentucky|M|Son|||1|5421 + +3000|FL|Palm Beach County|Boca Raton city|1037|0|1|Glander|Lamar Teodoro|2937|Alabama|M|Head|||63|5422 +3000|FL|Palm Beach County|Boca Raton city|1037|0|2|Glander|Lovie|2962|Massachusetts|F|Daughter|||38|5423 +3000|FL|Palm Beach County|Boca Raton city|1037|0|3|Glander|Elroy|2966|Kentucky|M|Son|||34|5424 +3000|FL|Palm Beach County|Boca Raton city|1037|0|4|Glander|Kristen|2974|Oklahoma|F|Daughter|||26|5425 +3000|FL|Palm Beach County|Boca Raton city|1037|0|5|Glander|Chong|2982|North Carolina|F|Daughter|||18|5426 +3000|FL|Palm Beach County|Boca Raton city|1037|0|6|Glander|Lannie|2986|Alabama|F|Daughter|||14|5427 +3000|FL|Palm Beach County|Boca Raton city|1037|0|7|Glander|Paulette|2988|New Mexico|F|Daughter|||12|5428 +3000|FL|Palm Beach County|Boca Raton city|1037|0|8|Glander|Haywood|2992|Nebraska|M|Son|||8|5429 +3000|FL|Palm Beach County|Boca Raton city|1037|0|9|Glander|Mickie|3000|Texas|F|Daughter|||0|5430 + +3000|HI|Honolulu County|Mililani Town CDP|1038|0|1|Chou|Roberto Royal|2960|Utah|M|Head|||40|5431 +3000|HI|Honolulu County|Mililani Town CDP|1038|0|2|Chou|Katharyn Hisako|2957|Armenia|F|Spouse|||43|5432 +3000|HI|Honolulu County|Mililani Town CDP|1038|0|3|Chou|Chantell|2981|Minnesota|F|Daughter|||19|5433 +3000|HI|Honolulu County|Mililani Town CDP|1038|0|4|Chou|Omar|2989|Kentucky|M|Son|||11|5434 +3000|HI|Honolulu County|Mililani Town CDP|1038|0|5|Chou|Hien|2991|Montana|F|Daughter|||9|5435 +3000|HI|Honolulu County|Mililani Town CDP|1038|0|6|Chou|Earle|2995|Florida|M|Son|||5|5436 +3000|HI|Honolulu County|Mililani Town CDP|1038|0|7|Chou|Len|2997|Iowa|M|Son|||3|5437 + +3000|WA|Walla Walla County|Burbank CDP|1039|0|1|Porst|Loren Carmine|2957|Illinois|M|Head|||43|5438 +3000|WA|Walla Walla County|Burbank CDP|1039|0|2|Porst|Kera|2994|North Dakota|F|Daughter|||6|5439 +3000|WA|Walla Walla County|Burbank CDP|1039|0|3|Porst|Shenita|2998|Hawaii|F|Daughter|||2|5440 + +3000|PA|York County|Fawn Grove borough|1040|0|1|Prutt|James Tommy|2953|Ohio|M|Head|||47|5441 +3000|PA|York County|Fawn Grove borough|1040|0|2|Prutt|Tarsha|2962|North Dakota|F|Spouse|||38|5442 +3000|PA|York County|Fawn Grove borough|1040|0|3|Prutt|Tamera|2984|Korea, Democratic People's Republic Of|F|Daughter|||16|5443 +3000|PA|York County|Fawn Grove borough|1040|0|4|Prutt|Janyce|2992|Maine|F|Daughter|||8|5444 +3000|PA|York County|Fawn Grove borough|1040|0|5|Prutt|Adrianne Lucinda|2994|South Dakota|F|Daughter|||6|5445 +3000|PA|York County|Fawn Grove borough|1040|0|6|Prutt|Beverly|2996|Denmark|F|Daughter|||4|5446 + +3000|IL|McDonough County|Prairie City village|1041|0|1|Rosso|Martin Lenny|2952|California|M|Head|||48|5447 +3000|IL|McDonough County|Prairie City village|1041|0|2|Rosso|Melodi|2961|Iowa|F|Spouse|||39|5448 +3000|IL|McDonough County|Prairie City village|1041|0|3|Rosso|Oscar|2987|Alaska|M|Son|||13|5449 +3000|IL|McDonough County|Prairie City village|1041|0|4|Rosso|Sylvie Ling|2991|Oregon|F|Daughter|||9|5450 +3000|IL|McDonough County|Prairie City village|1041|0|5|Rosso|Herbert|2995|Luxembourg|M|Son|||5|5451 +3000|IL|McDonough County|Prairie City village|1041|0|6|Rosso|Jaime|2997|New Mexico|M|Son|||3|5452 +3000|IL|McDonough County|Prairie City village|1041|0|7|Rosso|Maxima Carley|2999|West Virginia|F|Daughter|||1|5453 + +3000|WI|Portage County|Dewey town|1042|0|1|Stoner|Wilford Rey|2944|Oregon|M|Head|||56|5454 +3000|WI|Portage County|Dewey town|1042|0|2|Stoner|Fawn|2954|Colorado|F|Spouse|||46|5455 +3000|WI|Portage County|Dewey town|1042|0|3|Stoner|Tess|2978|Rhode Island|F|Daughter|||22|5456 +3000|WI|Portage County|Dewey town|1042|0|4|Stoner|Deena|2982|Delaware|F|Daughter|||18|5457 +3000|WI|Portage County|Dewey town|1042|0|5|Stoner|Curt|2984|Venezuela|M|Son|||16|5458 +3000|WI|Portage County|Dewey town|1042|0|6|Stoner|Lezlie|2988|Nevada|F|Daughter|||12|5459 +3000|WI|Portage County|Dewey town|1042|0|7|Stoner|Racheal|2994|South Carolina|F|Daughter|||6|5460 +3000|WI|Portage County|Dewey town|1042|0|8|Stoner|Emery|2996|Kansas|M|Son|||4|5461 + +3000|MA|Middlesex County|Framingham town|1043|0|1|Tllo|Julietta|2971|Louisiana|F|Head|||29|5462 +3000|MA|Middlesex County|Framingham town|1043|0|2|Tllo|Rosana|2993|Alabama|F|Daughter|||7|5463 +3000|MA|Middlesex County|Framingham town|1043|0|3|Tllo|Leigh|2995|New Jersey|F|Daughter|||5|5464 + +3000|CT|New London County|Poquonock Bridge CDP|1044|0|1|Sarelas|Winford Merlin|2967|South Carolina|M|Head|||33|5465 +3000|CT|New London County|Poquonock Bridge CDP|1044|0|2|Sarelas|Alesia|2976|Wyoming|F|Spouse|||24|5466 +3000|CT|New London County|Poquonock Bridge CDP|1044|0|3|Sarelas|Mina|2996|North Dakota|F|Daughter|||4|5467 + +3000|CA|Merced County|Gustine city|1045|0|1|Chapa|Antonia Fletcher|2960|Macedonia, The Former Yugoslav Republic Of|M|Head|||40|5468 +3000|CA|Merced County|Gustine city|1045|0|2|Chapa|Eveline|2972|West Virginia|F|Spouse|||28|5469 +3000|CA|Merced County|Gustine city|1045|0|3|Chapa|Shon|2996|Michigan|M|Son|||4|5470 +3000|CA|Merced County|Gustine city|1045|0|4|Chapa|Joeann|3000|Nevada|F|Daughter|||0|5471 + +3000|SD|Moody County|Trent town|1046|0|1|Jenkins|Jewell Roscoe|2962|California|M|Head|||38|5472 +3000|SD|Moody County|Trent town|1046|0|2|Jenkins|Thelma|2974|Kyrgyzstan|F|Spouse|||26|5473 +3000|SD|Moody County|Trent town|1046|0|3|Jenkins|Jeffry Jamie|2994|Florida|M|Son|||6|5474 +3000|SD|Moody County|Trent town|1046|0|4|Jenkins|Lurlene|3000|New Jersey|F|Daughter|||0|5475 + +3000|WI|Jackson County|Northfield town|1047|0|1|Trufin|Nelson Damon|2949|Qatar|M|Head|||51|5476 +3000|WI|Jackson County|Northfield town|1047|0|2|Trufin|Marjory|2971|Kansas|F|Spouse|||29|5477 +3000|WI|Jackson County|Northfield town|1047|0|3|Trufin|Judson Alfredo|2993|Utah|M|Son|||7|5478 +3000|WI|Jackson County|Northfield town|1047|0|4|Trufin|Bradley Jae|2995|Washington|M|Son|||5|5479 +3000|WI|Jackson County|Northfield town|1047|0|5|Trufin|Gregoria|2997|Utah|F|Daughter|||3|5480 +3000|WI|Jackson County|Northfield town|1047|0|6|Trufin|Cara|2999|Maryland|F|Daughter|||1|5481 + +3000|NJ|Monmouth County|Shark River Hills CDP|1048|0|1|Liberatore|Huey Josef|2942|Pennsylvania|M|Head|||58|5482 +3000|NJ|Monmouth County|Shark River Hills CDP|1048|0|2|Liberatore|Jolene|2959|Iowa|F|Spouse|||41|5483 +3000|NJ|Monmouth County|Shark River Hills CDP|1048|0|3|Liberatore|Wan Evalyn|2981|Maryland|F|Daughter|||19|5484 +3000|NJ|Monmouth County|Shark River Hills CDP|1048|0|4|Liberatore|Marg|2983|Idaho|F|Daughter|||17|5485 +3000|NJ|Monmouth County|Shark River Hills CDP|1048|0|5|Liberatore|Kathlene|2985|Sao Tome And Principe|F|Daughter|||15|5486 +3000|NJ|Monmouth County|Shark River Hills CDP|1048|0|6|Liberatore|Casey Victor|2987|India|M|Son|||13|5487 +3000|NJ|Monmouth County|Shark River Hills CDP|1048|0|7|Liberatore|Damien|2989|South Dakota|M|Son|||11|5488 +3000|NJ|Monmouth County|Shark River Hills CDP|1048|0|8|Liberatore|Jenniffer|2993|Hawaii|F|Daughter|||7|5489 +3000|NJ|Monmouth County|Shark River Hills CDP|1048|0|9|Liberatore|Shantelle|2995|Cuba|F|Daughter|||5|5490 +3000|NJ|Monmouth County|Shark River Hills CDP|1048|0|10|Liberatore|Millard|2999|Egypt|M|Son|||1|5491 + +3000|NM|San Miguel County|Pueblo CDP|1049|0|1|Kaucher|Hector Gaston|2939|Indiana|M|Head|||61|5492 +3000|NM|San Miguel County|Pueblo CDP|1049|0|2|Kaucher|Rolf|2970|New York|M|Son|||30|5493 +3000|NM|San Miguel County|Pueblo CDP|1049|0|3|Kaucher|Eryn Gwenn|2972|Rhode Island|F|Daughter|||28|5494 +3000|NM|San Miguel County|Pueblo CDP|1049|0|4|Kaucher|Christian|2990|Oklahoma|M|Son|||10|5495 +3000|NM|San Miguel County|Pueblo CDP|1049|0|5|Kaucher|Griselda|2992|Washington|F|Daughter|||8|5496 +3000|NM|San Miguel County|Pueblo CDP|1049|0|6|Kaucher|Sparkle|3000|Wisconsin|F|Daughter|||0|5497 + +3000|FL|St. Johns County|St. Augustine city|1050|0|1|Moya|Delbert Ruben|2950|Ohio|M|Head|||50|5498 +3000|FL|St. Johns County|St. Augustine city|1050|0|2|Moya|Royal|2975|California|M|Son|||25|5499 +3000|FL|St. Johns County|St. Augustine city|1050|0|3|Moya|Geralyn|2983|South Dakota|F|Daughter|||17|5500 +3000|FL|St. Johns County|St. Augustine city|1050|0|4|Moya|Emil|2989|Missouri|M|Son|||11|5501 +3000|FL|St. Johns County|St. Augustine city|1050|0|5|Moya|Ludie|2993|West Virginia|F|Daughter|||7|5502 +3000|FL|St. Johns County|St. Augustine city|1050|0|6|Moya|Providencia Eric|2995|Nevada|F|Daughter|||5|5503 + +3000|CO|Boulder County|Bonanza Mountain Estates CDP|1051|0|1|Starkey|Hosea Dirk|2962|Oregon|M|Head|||38|5504 +3000|CO|Boulder County|Bonanza Mountain Estates CDP|1051|0|2|Starkey|Tyesha|2983|Idaho|F|Spouse|||17|5505 + +3000|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1052|0|1|Hammond|Deangelo Leonardo|2940|Colorado|M|Head|||60|5506 +3000|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1052|0|2|Hammond|Genie|2951|Indiana|F|Spouse|||49|5507 +3000|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1052|0|3|Hammond|Joellen|2973|Alabama|F|Daughter|||27|5508 +3000|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1052|0|4|Hammond|Jenna Lashonda|2987|Michigan|F|Daughter|||13|5509 +3000|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1052|0|5|Hammond|Woodrow|2989|Serbia|M|Son|||11|5510 + +3000|ND|Benson County|York city|1053|0|1|Sletten|Gregg Roberto|2982|Nevada|M|Head|||18|5511 +3000|ND|Benson County|York city|1053|0|2|Sletten|Arvilla|2978|Cameroon|F|Spouse|||22|5512 +3000|ND|Benson County|York city|1053|0|3|Sletten|Luciano|2998|Colorado|M|Son|||2|5513 +3000|ND|Benson County|York city|1053|0|4|Sletten|Johnathan|3000|Maryland|M|Son|||0|5514 + +3000|WA|King County|Maple Valley city|1054|0|1|Logan|Rocky Carlton|2962|Alabama|M|Head|||38|5515 +3000|WA|King County|Maple Valley city|1054|0|2|Logan|Angila|2976|Hawaii|F|Spouse|||24|5516 +3000|WA|King County|Maple Valley city|1054|0|3|Logan|Von Dominique|2998|Montana|M|Son|||2|5517 +3000|WA|King County|Maple Valley city|1054|0|4|Logan|Ouida|3000|United States Minor Outlying Islands|F|Daughter|||0|5518 + +3000|NY|Jefferson County|Felts Mills CDP|1055|0|1|Ochoa|Asia|2963|San Marino|F|Head|||37|5519 +3000|NY|Jefferson County|Felts Mills CDP|1055|0|2|Ochoa|Ardath Lean|2987|Nevada|F|Daughter|||13|5520 +3000|NY|Jefferson County|Felts Mills CDP|1055|0|3|Ochoa|Babara|2991|Colorado|F|Daughter|||9|5521 +3000|NY|Jefferson County|Felts Mills CDP|1055|0|4|Ochoa|Dillon|2995|Kiribati|M|Son|||5|5522 + +3000|NY|Rensselaer County|Nassau village|1056|0|1|Rice|Allen Coy|2941|Oklahoma|M|Head|||59|5523 +3000|NY|Rensselaer County|Nassau village|1056|0|2|Rice|Joye|2952|Nebraska|F|Spouse|||48|5524 +3000|NY|Rensselaer County|Nassau village|1056|0|3|Rice|Billye|2972|South Dakota|F|Daughter|||28|5525 +3000|NY|Rensselaer County|Nassau village|1056|0|4|Rice|Jacquelyn Melina|2976|Alaska|F|Daughter|||24|5526 +3000|NY|Rensselaer County|Nassau village|1056|0|5|Rice|Jame|2992|Maine|M|Son|||8|5527 +3000|NY|Rensselaer County|Nassau village|1056|0|6|Rice|Salvador|2994|California|M|Son|||6|5528 + +3000|FL|Monroe County|Cudjoe Key CDP|1057|0|1|Wilson|Nicholas Kieth|2942|Togo|M|Head|||58|5529 +3000|FL|Monroe County|Cudjoe Key CDP|1057|0|2|Wilson|Darcel|2958|Illinois|F|Spouse|||42|5530 +3000|FL|Monroe County|Cudjoe Key CDP|1057|0|3|Wilson|Johnie|2982|Michigan|M|Son|||18|5531 +3000|FL|Monroe County|Cudjoe Key CDP|1057|0|4|Wilson|Gonzalo Wyatt|2986|China|M|Son|||14|5532 +3000|FL|Monroe County|Cudjoe Key CDP|1057|0|5|Wilson|Agatha|2988|Indiana|F|Daughter|||12|5533 +3000|FL|Monroe County|Cudjoe Key CDP|1057|0|6|Wilson|Trenton|2994|Minnesota|M|Son|||6|5534 +3000|FL|Monroe County|Cudjoe Key CDP|1057|0|7|Wilson|Halley|2996|Florida|F|Daughter|||4|5535 +3000|FL|Monroe County|Cudjoe Key CDP|1057|0|8|Wilson|Jerrica|3000|Nevada|F|Daughter|||0|5536 + +3000|AL|Washington County|Hobson CDP|1058|0|1|Pardew|Sindy Jadwiga|2961|El Salvador|F|Head|||39|5537 +3000|AL|Washington County|Hobson CDP|1058|0|2|Pardew|Margarito Geraldo|2981|Thailand|M|Son|||19|5538 +3000|AL|Washington County|Hobson CDP|1058|0|3|Pardew|Barrett Ike|2983|Colorado|M|Son|||17|5539 +3000|AL|Washington County|Hobson CDP|1058|0|4|Pardew|Willian|2993|Arizona|M|Son|||7|5540 +3000|AL|Washington County|Hobson CDP|1058|0|5|Pardew|Jere|2995|Netherlands|M|Son|||5|5541 +3000|AL|Washington County|Hobson CDP|1058|0|6|Pardew|Benito|2999|Tuvalu|M|Son|||1|5542 + +3000|TX|Montgomery County|Woodbranch city|1059|0|1|Niksich|Ethyl|2961|New Hampshire|F|Head|||39|5543 +3000|TX|Montgomery County|Woodbranch city|1059|0|2|Niksich|Cecilia Robbie|2985|Delaware|F|Daughter|||15|5544 +3000|TX|Montgomery County|Woodbranch city|1059|0|3|Niksich|Chadwick|2987|Montana|M|Son|||13|5545 +3000|TX|Montgomery County|Woodbranch city|1059|0|4|Niksich|Nathanial|2991|Washington|M|Son|||9|5546 +3000|TX|Montgomery County|Woodbranch city|1059|0|5|Niksich|Melony|2995|Arizona|F|Daughter|||5|5547 +3000|TX|Montgomery County|Woodbranch city|1059|0|6|Niksich|Noe|2999|Alaska|M|Son|||1|5548 + +3000|CT|Tolland County|Ellington town|1060|0|1|Cummins|Boyce Francesco|2947|Iceland|M|Head|||53|5549 +3000|CT|Tolland County|Ellington town|1060|0|2|Cummins|Sherise|2946|Wisconsin|F|Spouse|||54|5550 +3000|CT|Tolland County|Ellington town|1060|0|3|Cummins|Lloyd|2986|New Jersey|M|Son|||14|5551 +3000|CT|Tolland County|Ellington town|1060|0|4|Cummins|Gale|2990|Idaho|F|Daughter|||10|5552 +3000|CT|Tolland County|Ellington town|1060|0|5|Cummins|Delicia|2994|Oregon|F|Daughter|||6|5553 +3000|CT|Tolland County|Ellington town|1060|0|6|Cummins|Nichole|2998|New York|F|Daughter|||2|5554 +3000|CT|Tolland County|Ellington town|1060|0|7|Cummins|Latia|3000|New York|F|Daughter|||0|5555 + +3000|VT|Orange County|Strafford town|1061|0|1|Hussar|Eldon|2955|Connecticut|M|Head|||45|5556 +3000|VT|Orange County|Strafford town|1061|0|2|Hussar|Dessie|2985|California|F|Daughter|||15|5557 +3000|VT|Orange County|Strafford town|1061|0|3|Hussar|Basil|2987|Louisiana|M|Son|||13|5558 +3000|VT|Orange County|Strafford town|1061|0|4|Hussar|Queenie|2995|Idaho|F|Daughter|||5|5559 +3000|VT|Orange County|Strafford town|1061|0|5|Hussar|Ned|2997|Wyoming|M|Son|||3|5560 +3000|VT|Orange County|Strafford town|1061|0|6|Hussar|Bryan|2999|Estonia|M|Son|||1|5561 + +3000|NY|Delaware County|Walton town|1062|0|1|Falk|Ronny Alfred|2943|Arkansas|M|Head|||57|5562 +3000|NY|Delaware County|Walton town|1062|0|2|Falk|Cecelia|2959|Arizona|F|Spouse|||41|5563 +3000|NY|Delaware County|Walton town|1062|0|3|Falk|Arletha|2983|Connecticut|F|Daughter|||17|5564 +3000|NY|Delaware County|Walton town|1062|0|4|Falk|Burma|2985|Israel|F|Daughter|||15|5565 +3000|NY|Delaware County|Walton town|1062|0|5|Falk|Ivan|2987|Montana|M|Son|||13|5566 +3000|NY|Delaware County|Walton town|1062|0|6|Falk|Jolie|2991|Sao Tome And Principe|F|Daughter|||9|5567 +3000|NY|Delaware County|Walton town|1062|0|7|Falk|Maurice Chung|2997|Central African Republic|M|Son|||3|5568 + +3000|NV|Douglas County|Logan Creek CDP|1063|0|1|Gott|Jason Felipe|2950|Louisiana|M|Head|||50|5569 +3000|NV|Douglas County|Logan Creek CDP|1063|0|2|Gott|Jody|2983|New Mexico|M|Son|||17|5570 +3000|NV|Douglas County|Logan Creek CDP|1063|0|3|Gott|Jayna|2991|Heard Island And Mcdonald Islands|F|Daughter|||9|5571 +3000|NV|Douglas County|Logan Creek CDP|1063|0|4|Gott|Juan|2993|Indiana|M|Son|||7|5572 +3000|NV|Douglas County|Logan Creek CDP|1063|0|5|Gott|Caitlyn|2997|Iowa|F|Daughter|||3|5573 + +3000|MO|Cass County|Peculiar city|1064|0|1|Heidema|Sergio|2938|Tennessee|M|Head|||62|5574 +3000|MO|Cass County|Peculiar city|1064|0|2|Heidema|Delma|2938|Eritrea|F|Spouse|||62|5575 +3000|MO|Cass County|Peculiar city|1064|0|3|Heidema|Cinthia|2970|Iowa|F|Daughter|||30|5576 +3000|MO|Cass County|Peculiar city|1064|0|4|Heidema|Camie|2976|Moldova, Republic Of|F|Daughter|||24|5577 +3000|MO|Cass County|Peculiar city|1064|0|5|Heidema|Francisco|2982|North Dakota|M|Son|||18|5578 +3000|MO|Cass County|Peculiar city|1064|0|6|Heidema|Barry|2984|East Timor|M|Son|||16|5579 + +3000|WA|King County|Black Diamond city|1065|0|1|Lumbreras|Rigoberto Byron|2959|Nebraska|M|Head|||41|5580 +3000|WA|King County|Black Diamond city|1065|0|2|Lumbreras|Agueda|2960|California|F|Spouse|||40|5581 +3000|WA|King County|Black Diamond city|1065|0|3|Lumbreras|Cory|2982|Maryland|M|Son|||18|5582 +3000|WA|King County|Black Diamond city|1065|0|4|Lumbreras|Margarito|2984|Argentina|M|Son|||16|5583 +3000|WA|King County|Black Diamond city|1065|0|5|Lumbreras|Ardelle|2990|Liechtenstein|F|Daughter|||10|5584 +3000|WA|King County|Black Diamond city|1065|0|6|Lumbreras|Halina|2994|Florida|F|Daughter|||6|5585 +3000|WA|King County|Black Diamond city|1065|0|7|Lumbreras|Royal|2996|New York|M|Son|||4|5586 +3000|WA|King County|Black Diamond city|1065|0|8|Lumbreras|Noah|2998|French Guiana|M|Son|||2|5587 +3000|WA|King County|Black Diamond city|1065|0|9|Lumbreras|Felipa|3000|Idaho|F|Daughter|||0|5588 + +3000|NE|Nuckolls County|Nora village|1066|0|1|Stevenson|Lanny Reed|2968|Malta|M|Head|||32|5589 +3000|NE|Nuckolls County|Nora village|1066|0|2|Stevenson|Corinna|2977|Mississippi|F|Spouse|||23|5590 + +3000|NE|Saunders County|Morse Bluff village|1067|0|1|Kahl|Maricruz|2967|Ethiopia|F|Head|||33|5591 +3000|NE|Saunders County|Morse Bluff village|1067|0|2|Kahl|Amada Cathleen|2987|New Mexico|F|Daughter|||13|5592 +3000|NE|Saunders County|Morse Bluff village|1067|0|3|Kahl|Buck|2991|Rhode Island|M|Son|||9|5593 +3000|NE|Saunders County|Morse Bluff village|1067|0|4|Kahl|Simona Shamika|2997|Brunei Darussalam|F|Daughter|||3|5594 + +3000|WY|Big Horn County|Lovell town|1068|0|1|Friesen|Quentin Zack|2950|Maryland|M|Head|||50|5595 +3000|WY|Big Horn County|Lovell town|1068|0|2|Friesen|Lashaun|2956|Bangladesh|F|Spouse|||44|5596 +3000|WY|Big Horn County|Lovell town|1068|0|3|Friesen|Liliana|2986|Antarctica|F|Daughter|||14|5597 +3000|WY|Big Horn County|Lovell town|1068|0|4|Friesen|Willie|2988|Washington|F|Daughter|||12|5598 +3000|WY|Big Horn County|Lovell town|1068|0|5|Friesen|Carolyne Phylicia|2992|Jordan|F|Daughter|||8|5599 +3000|WY|Big Horn County|Lovell town|1068|0|6|Friesen|Fernando|2996|Maine|M|Son|||4|5600 + +3000|WI|Waupaca County|Fremont town|1069|0|1|Thoms|Lavern Fabian|2946|Delaware|M|Head|||54|5601 +3000|WI|Waupaca County|Fremont town|1069|0|2|Thoms|Shirlee Rosalyn|2964|Solomon Islands|F|Spouse|||36|5602 +3000|WI|Waupaca County|Fremont town|1069|0|3|Thoms|Dallas|2990|Oklahoma|F|Daughter|||10|5603 +3000|WI|Waupaca County|Fremont town|1069|0|4|Thoms|Billie|2992|North Carolina|F|Daughter|||8|5604 +3000|WI|Waupaca County|Fremont town|1069|0|5|Thoms|Rhea|2994|Alabama|F|Daughter|||6|5605 +3000|WI|Waupaca County|Fremont town|1069|0|6|Thoms|Launa|2998|Florida|F|Daughter|||2|5606 + +3000|IL|Schuyler County|Browning village|1070|0|1|Hubble|Santos Winston|2961|South Carolina|M|Head|||39|5607 +3000|IL|Schuyler County|Browning village|1070|0|2|Hubble|Karen|2978|Idaho|F|Spouse|||22|5608 +3000|IL|Schuyler County|Browning village|1070|0|3|Hubble|Efrain|3000|Indiana|M|Son|||0|5609 + +3000|PA|Butler County|Muddy Creek township|1071|0|1|Johns|Les Isidro|2964|Hong Kong|M|Head|||36|5610 +3000|PA|Butler County|Muddy Creek township|1071|0|2|Johns|Lovie|2965|Rhode Island|F|Spouse|||35|5611 +3000|PA|Butler County|Muddy Creek township|1071|0|3|Johns|Cyrus|2985|Algeria|M|Son|||15|5612 +3000|PA|Butler County|Muddy Creek township|1071|0|4|Johns|Latasha|2991|Norfolk Island|F|Daughter|||9|5613 +3000|PA|Butler County|Muddy Creek township|1071|0|5|Johns|Hai|2997|Illinois|M|Son|||3|5614 + +3000|MI|Sanilac County|Watertown township|1072|0|1|Slagle|Cleveland Gabriel|2947|Iowa|M|Head|||53|5615 +3000|MI|Sanilac County|Watertown township|1072|0|2|Slagle|Roselia|2957|Delaware|F|Spouse|||43|5616 +3000|MI|Sanilac County|Watertown township|1072|0|3|Slagle|Susan|2985|Massachusetts|F|Daughter|||15|5617 +3000|MI|Sanilac County|Watertown township|1072|0|4|Slagle|Burma|2987|Saint Pierre And Miquelon|F|Daughter|||13|5618 +3000|MI|Sanilac County|Watertown township|1072|0|5|Slagle|Rachelle|2991|Louisiana|F|Daughter|||9|5619 +3000|MI|Sanilac County|Watertown township|1072|0|6|Slagle|Jacinta Alpha|2993|Ohio|F|Daughter|||7|5620 +3000|MI|Sanilac County|Watertown township|1072|0|7|Slagle|Jackie|2995|Wyoming|M|Son|||5|5621 +3000|MI|Sanilac County|Watertown township|1072|0|8|Slagle|Alisha|2997|Wisconsin|F|Daughter|||3|5622 + +3000|MO|Barry County|Exeter city|1073|0|1|Cunningham|Lawrence Marion|2963|Hawaii|M|Head|||37|5623 +3000|MO|Barry County|Exeter city|1073|0|2|Cunningham|Carrol|2991|Sierra Leone|M|Son|||9|5624 +3000|MO|Barry County|Exeter city|1073|0|3|Cunningham|Abraham|2993|Dominican Republic|M|Son|||7|5625 +3000|MO|Barry County|Exeter city|1073|0|4|Cunningham|Ethel|2997|Minnesota|F|Daughter|||3|5626 + +3000|PA|Berks County|Lyons borough|1074|0|1|Elmore|Ollie Jerrell|2940|New York|M|Head|||60|5627 +3000|PA|Berks County|Lyons borough|1074|0|2|Elmore|Connie|2944|Utah|F|Spouse|||56|5628 +3000|PA|Berks County|Lyons borough|1074|0|3|Elmore|Loida|2990|New Jersey|F|Daughter|||10|5629 +3000|PA|Berks County|Lyons borough|1074|0|4|Elmore|Eddie|2992|Indiana|M|Son|||8|5630 +3000|PA|Berks County|Lyons borough|1074|0|5|Elmore|Jesus|2998|Arkansas|M|Son|||2|5631 +3000|PA|Berks County|Lyons borough|1074|0|6|Elmore|Felipe|3000|Tennessee|M|Son|||0|5632 + +3000|IN|Tippecanoe County|Lafayette city|1075|0|1|Lopez|Travis Dale|2950|Georgia|M|Head|||50|5633 +3000|IN|Tippecanoe County|Lafayette city|1075|0|2|Lopez|Keturah|2974|Washington|F|Spouse|||26|5634 +3000|IN|Tippecanoe County|Lafayette city|1075|0|3|Lopez|Lessie|2996|Michigan|F|Daughter|||4|5635 + +3000|MD|Garrett County|Deer Park town|1076|0|1|Waltmon|Ulysses Chong|2961|Tennessee|M|Head|||39|5636 +3000|MD|Garrett County|Deer Park town|1076|0|2|Waltmon|Janell|2957|Hawaii|F|Spouse|||43|5637 +3000|MD|Garrett County|Deer Park town|1076|0|3|Waltmon|Marie|2979|Alabama|F|Daughter|||21|5638 +3000|MD|Garrett County|Deer Park town|1076|0|4|Waltmon|Evelyn|2981|Bulgaria|F|Daughter|||19|5639 +3000|MD|Garrett County|Deer Park town|1076|0|5|Waltmon|Guillermina Kimbra|2987|Delaware|F|Daughter|||13|5640 +3000|MD|Garrett County|Deer Park town|1076|0|6|Waltmon|Jacqueline|2991|Utah|F|Daughter|||9|5641 +3000|MD|Garrett County|Deer Park town|1076|0|7|Waltmon|Rogelio|2993|Ohio|M|Son|||7|5642 +3000|MD|Garrett County|Deer Park town|1076|0|8|Waltmon|Lemuel|2999|Cuba|M|Son|||1|5643 + +3000|MI|Osceola County|Orient township|1077|0|1|Woods|Reginald Federico|2941|Ohio|M|Head|||59|5644 +3000|MI|Osceola County|Orient township|1077|0|2|Woods|Jeffie Kaila|2949|Poland|F|Spouse|||51|5645 +3000|MI|Osceola County|Orient township|1077|0|3|Woods|Tony|2969|Montana|F|Daughter|||31|5646 +3000|MI|Osceola County|Orient township|1077|0|4|Woods|Angel|2971|New Mexico|M|Son|||29|5647 +3000|MI|Osceola County|Orient township|1077|0|5|Woods|Gino Alan|2975|Nevada|M|Son|||25|5648 +3000|MI|Osceola County|Orient township|1077|0|6|Woods|Garth|2977|Bhutan|M|Son|||23|5649 +3000|MI|Osceola County|Orient township|1077|0|7|Woods|Brant|2985|Liechtenstein|M|Son|||15|5650 +3000|MI|Osceola County|Orient township|1077|0|8|Woods|Elana|2991|Colorado|F|Daughter|||9|5651 +3000|MI|Osceola County|Orient township|1077|0|9|Woods|Wes|2997|Ohio|M|Son|||3|5652 +3000|MI|Osceola County|Orient township|1077|0|10|Woods|Florencio|2999|Illinois|M|Son|||1|5653 + +3000|WA|Kitsap County|Manchester CDP|1078|0|1|Abel|Harlan Numbers|2962|Indiana|M|Head|||38|5654 +3000|WA|Kitsap County|Manchester CDP|1078|0|2|Abel|Hayley|2971|Mississippi|F|Spouse|||29|5655 +3000|WA|Kitsap County|Manchester CDP|1078|0|3|Abel|Jesus|2991|Rhode Island|M|Son|||9|5656 +3000|WA|Kitsap County|Manchester CDP|1078|0|4|Abel|Tracee|2993|Wyoming|F|Daughter|||7|5657 +3000|WA|Kitsap County|Manchester CDP|1078|0|5|Abel|Lavonna|2999|Michigan|F|Daughter|||1|5658 + +3000|CA|Fresno County|Fort Washington CDP|1079|0|1|Gitchell|Ronnie William|2951|North Carolina|M|Head|||49|5659 +3000|CA|Fresno County|Fort Washington CDP|1079|0|2|Gitchell|Adah|2961|Minnesota|F|Spouse|||39|5660 +3000|CA|Fresno County|Fort Washington CDP|1079|0|3|Gitchell|Breanna Hettie|2983|Iowa|F|Daughter|||17|5661 +3000|CA|Fresno County|Fort Washington CDP|1079|0|4|Gitchell|Hershel|2985|New Jersey|M|Son|||15|5662 +3000|CA|Fresno County|Fort Washington CDP|1079|0|5|Gitchell|Bailey|2991|Suriname|F|Daughter|||9|5663 + +3000|FL|Hillsborough County|Keystone CDP|1080|0|1|Mcmahan|Jc|2937|New Mexico|M|Head|||63|5664 +3000|FL|Hillsborough County|Keystone CDP|1080|0|2|Mcmahan|Digna|2950|New Hampshire|F|Spouse|||50|5665 +3000|FL|Hillsborough County|Keystone CDP|1080|0|3|Mcmahan|Cody Margit|2980|Belgium|F|Daughter|||20|5666 +3000|FL|Hillsborough County|Keystone CDP|1080|0|4|Mcmahan|Verdell|2982|South Carolina|F|Daughter|||18|5667 +3000|FL|Hillsborough County|Keystone CDP|1080|0|5|Mcmahan|Bryant|2986|Wyoming|M|Son|||14|5668 +3000|FL|Hillsborough County|Keystone CDP|1080|0|6|Mcmahan|Marchelle Jack|2990|New Jersey|F|Daughter|||10|5669 +3000|FL|Hillsborough County|Keystone CDP|1080|0|7|Mcmahan|Luis|2994|Arizona|M|Son|||6|5670 +3000|FL|Hillsborough County|Keystone CDP|1080|0|8|Mcmahan|Lamont|2996|Oregon|M|Son|||4|5671 + +3000|VA|Montgomery County|Christiansburg town|1081|0|1|Hodge|Jarred Manual|2971|Kentucky|M|Head|||29|5672 +3000|VA|Montgomery County|Christiansburg town|1081|0|2|Hodge|Season Sybil|2976|Hawaii|F|Spouse|||24|5673 +3000|VA|Montgomery County|Christiansburg town|1081|0|3|Hodge|Benny|2996|Hawaii|M|Son|||4|5674 + +3000|NC|Edgecombe County, Nash County|Rocky Mount city|1082|0|1|Mcguire|Davis Cedrick|2972|Sudan|M|Head|||28|5675 +3000|NC|Edgecombe County, Nash County|Rocky Mount city|1082|0|2|Mcguire|Sonia|2976|Vermont|F|Spouse|||24|5676 +3000|NC|Edgecombe County, Nash County|Rocky Mount city|1082|0|3|Mcguire|Deidra|2998|Poland|F|Daughter|||2|5677 + +3000|CO|Moffat County|Dinosaur town|1083|0|1|Hourani|Pasquale Esteban|2939|Denmark|M|Head|||61|5678 +3000|CO|Moffat County|Dinosaur town|1083|0|2|Hourani|Summer|2954|Arkansas|F|Spouse|||46|5679 +3000|CO|Moffat County|Dinosaur town|1083|0|3|Hourani|Rolande|2976|Alabama|F|Daughter|||24|5680 +3000|CO|Moffat County|Dinosaur town|1083|0|4|Hourani|Tu|2978|Wyoming|F|Daughter|||22|5681 +3000|CO|Moffat County|Dinosaur town|1083|0|5|Hourani|Grayce|2980|Holy See (vatican City State)|F|Daughter|||20|5682 +3000|CO|Moffat County|Dinosaur town|1083|0|6|Hourani|Delmar Carol|2990|Montana|M|Son|||10|5683 +3000|CO|Moffat County|Dinosaur town|1083|0|7|Hourani|Faustina|2992|Bouvet Island|F|Daughter|||8|5684 +3000|CO|Moffat County|Dinosaur town|1083|0|8|Hourani|Grant|2994|Utah|M|Son|||6|5685 +3000|CO|Moffat County|Dinosaur town|1083|0|9|Hourani|Britt|2998|Alabama|M|Son|||2|5686 + +3000|CA|Tulare County|Patterson Tract CDP|1084|0|1|Sar|Matthew Lyman|2948|Nevada|M|Head|||52|5687 +3000|CA|Tulare County|Patterson Tract CDP|1084|0|2|Sar|Paz|2949|Senegal|F|Spouse|||51|5688 +3000|CA|Tulare County|Patterson Tract CDP|1084|0|3|Sar|Anibal|2969|Wyoming|M|Son|||31|5689 +3000|CA|Tulare County|Patterson Tract CDP|1084|0|4|Sar|Matt|2987|Argentina|M|Son|||13|5690 +3000|CA|Tulare County|Patterson Tract CDP|1084|0|5|Sar|Sondra|2993|Kentucky|F|Daughter|||7|5691 +3000|CA|Tulare County|Patterson Tract CDP|1084|0|6|Sar|Dana|2997|Maine|M|Son|||3|5692 +3000|CA|Tulare County|Patterson Tract CDP|1084|0|7|Sar|Rosette|2999|Dominica|F|Daughter|||1|5693 + +3000|MS|Harrison County|Long Beach city|1085|0|1|Massey|Christopher Wes|2965|Djibouti|M|Head|||35|5694 +3000|MS|Harrison County|Long Beach city|1085|0|2|Massey|Beaulah|2979|Delaware|F|Spouse|||21|5695 + +3000|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1086|0|1|Cummings|Francis|2961|Indiana|M|Head|||39|5696 +3000|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1086|0|2|Cummings|Shawnee|2961|Alabama|F|Spouse|||39|5697 +3000|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1086|0|3|Cummings|Phillip|2987|Georgia|M|Son|||13|5698 +3000|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1086|0|4|Cummings|Mariam|2989|New York|F|Daughter|||11|5699 +3000|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1086|0|5|Cummings|Jimmy Tanner|2997|Kansas|M|Son|||3|5700 + +3000|PA|Mercer County|Perry township|1087|0|1|Brown|Harry|2939|New Hampshire|M|Head|||61|5701 +3000|PA|Mercer County|Perry township|1087|0|2|Brown|Marilyn|2945|Lebanon|F|Spouse|||55|5702 +3000|PA|Mercer County|Perry township|1087|0|3|Brown|Booker|2965|Kansas|M|Son|||35|5703 +3000|PA|Mercer County|Perry township|1087|0|4|Brown|Reinaldo|2973|Tokelau|M|Son|||27|5704 +3000|PA|Mercer County|Perry township|1087|0|5|Brown|Jorge|2985|Hawaii|M|Son|||15|5705 +3000|PA|Mercer County|Perry township|1087|0|6|Brown|Twyla|2989|Ohio|F|Daughter|||11|5706 +3000|PA|Mercer County|Perry township|1087|0|7|Brown|Rich|2993|South Dakota|M|Son|||7|5707 +3000|PA|Mercer County|Perry township|1087|0|8|Brown|Alva|2995|Kentucky|F|Daughter|||5|5708 +3000|PA|Mercer County|Perry township|1087|0|9|Brown|Nora|2999|Idaho|F|Daughter|||1|5709 + +3000|MT|Meagher County|Martinsdale CDP|1088|0|1|Bortignon|Leonardo Ben|2946|Louisiana|M|Head|||54|5710 +3000|MT|Meagher County|Martinsdale CDP|1088|0|2|Bortignon|Ola|2967|Michigan|F|Spouse|||33|5711 +3000|MT|Meagher County|Martinsdale CDP|1088|0|3|Bortignon|Reginia|2995|Tennessee|F|Daughter|||5|5712 +3000|MT|Meagher County|Martinsdale CDP|1088|0|4|Bortignon|Elena|2997|Ohio|F|Daughter|||3|5713 +3000|MT|Meagher County|Martinsdale CDP|1088|0|5|Bortignon|Sheilah|2999|New Hampshire|F|Daughter|||1|5714 + +3000|SC|Barnwell County|Kline town|1089|0|1|Javis|Jason Deon|2937|Wyoming|M|Head|||63|5715 +3000|SC|Barnwell County|Kline town|1089|0|2|Javis|Bryce|2981|Maryland|M|Son|||19|5716 +3000|SC|Barnwell County|Kline town|1089|0|3|Javis|Rafael|2987|Hong Kong|M|Son|||13|5717 +3000|SC|Barnwell County|Kline town|1089|0|4|Javis|Vonnie|2989|New Jersey|F|Daughter|||11|5718 +3000|SC|Barnwell County|Kline town|1089|0|5|Javis|Cyndi Windy|2993|Utah|F|Daughter|||7|5719 +3000|SC|Barnwell County|Kline town|1089|0|6|Javis|Mohammed|2995|Arizona|M|Son|||5|5720 +3000|SC|Barnwell County|Kline town|1089|0|7|Javis|Shannon|2999|Ohio|M|Son|||1|5721 + +3000|NH|Rockingham County|New Castle town|1090|0|1|Mcindoe|Hilton Horacio|2948|Virginia|M|Head|||52|5722 +3000|NH|Rockingham County|New Castle town|1090|0|2|Mcindoe|Peg|2946|Rhode Island|F|Spouse|||54|5723 +3000|NH|Rockingham County|New Castle town|1090|0|3|Mcindoe|Marylyn|2980|New York|F|Daughter|||20|5724 +3000|NH|Rockingham County|New Castle town|1090|0|4|Mcindoe|Rosario|2986|Virginia|M|Son|||14|5725 +3000|NH|Rockingham County|New Castle town|1090|0|5|Mcindoe|Sabra|2990|North Dakota|F|Daughter|||10|5726 +3000|NH|Rockingham County|New Castle town|1090|0|6|Mcindoe|Jonas|2994|Costa Rica|M|Son|||6|5727 +3000|NH|Rockingham County|New Castle town|1090|0|7|Mcindoe|Miquel|2996|Austria|M|Son|||4|5728 +3000|NH|Rockingham County|New Castle town|1090|0|8|Mcindoe|Penny|3000|Delaware|F|Daughter|||0|5729 + +3000|MI|Houghton County|Houghton city|1091|0|1|Hutchinson|Neal Sang|2946|Virginia|M|Head|||54|5730 +3000|MI|Houghton County|Houghton city|1091|0|2|Hutchinson|Myrta|2960|Nevada|F|Spouse|||40|5731 +3000|MI|Houghton County|Houghton city|1091|0|3|Hutchinson|Glenn Prince|2984|Luxembourg|M|Son|||16|5732 +3000|MI|Houghton County|Houghton city|1091|0|4|Hutchinson|Dudley|2990|New York|M|Son|||10|5733 +3000|MI|Houghton County|Houghton city|1091|0|5|Hutchinson|Nerissa|2992|Mississippi|F|Daughter|||8|5734 + +3000|IN|Jefferson County|Kent CDP|1092|0|1|Wagner|Orval|2948|Tennessee|M|Head|||52|5735 +3000|IN|Jefferson County|Kent CDP|1092|0|2|Wagner|Hung|2989|North Carolina|M|Son|||11|5736 +3000|IN|Jefferson County|Kent CDP|1092|0|3|Wagner|Vertie|2991|New Jersey|F|Daughter|||9|5737 + +3000|IL|Cook County|Country Club Hills city|1093|0|1|Sandiford|Bernard Carol|2954|Romania|M|Head|||46|5738 +3000|IL|Cook County|Country Club Hills city|1093|0|2|Sandiford|Alice|2975|Wisconsin|F|Spouse|||25|5739 +3000|IL|Cook County|Country Club Hills city|1093|0|3|Sandiford|Benedict|2995|Mississippi|M|Son|||5|5740 +3000|IL|Cook County|Country Club Hills city|1093|0|4|Sandiford|Wilfredo Clair|2999|Illinois|M|Son|||1|5741 + +3000|NE|Harlan County|Stamford village|1094|0|1|Klukan|Merle Brain|2950|New Mexico|M|Head|||50|5742 +3000|NE|Harlan County|Stamford village|1094|0|2|Klukan|Margarete Patty|2949|Nevada|F|Spouse|||51|5743 +3000|NE|Harlan County|Stamford village|1094|0|3|Klukan|Reatha|2973|Oklahoma|F|Daughter|||27|5744 +3000|NE|Harlan County|Stamford village|1094|0|4|Klukan|Karoline|2985|Massachusetts|F|Daughter|||15|5745 +3000|NE|Harlan County|Stamford village|1094|0|5|Klukan|Daisey|2987|Singapore|F|Daughter|||13|5746 +3000|NE|Harlan County|Stamford village|1094|0|6|Klukan|Aileen|2995|Maine|F|Daughter|||5|5747 + +3000|UT|Washington County|Veyo CDP|1095|0|1|Simpson|Randy Kenny|2951|Bahamas|M|Head|||49|5748 +3000|UT|Washington County|Veyo CDP|1095|0|2|Simpson|Patrice|2956|Dominican Republic|F|Spouse|||44|5749 +3000|UT|Washington County|Veyo CDP|1095|0|3|Simpson|Bernardo|2982|New Mexico|M|Son|||18|5750 +3000|UT|Washington County|Veyo CDP|1095|0|4|Simpson|Marguerite Marva|3000|Colorado|F|Daughter|||0|5751 + +3000|MO|Dade County|Greenfield city|1096|0|1|Regnier|Jewel Asa|2942|Louisiana|M|Head|||58|5752 +3000|MO|Dade County|Greenfield city|1096|0|2|Regnier|Christal|2964|Bolivia|F|Spouse|||36|5753 +3000|MO|Dade County|Greenfield city|1096|0|3|Regnier|Deangelo Isidro|2986|Nauru|M|Son|||14|5754 +3000|MO|Dade County|Greenfield city|1096|0|4|Regnier|Katheleen|2988|Alabama|F|Daughter|||12|5755 +3000|MO|Dade County|Greenfield city|1096|0|5|Regnier|Keven|2990|West Virginia|M|Son|||10|5756 +3000|MO|Dade County|Greenfield city|1096|0|6|Regnier|Adria|2994|Alabama|F|Daughter|||6|5757 +3000|MO|Dade County|Greenfield city|1096|0|7|Regnier|Ida|2996|Utah|F|Daughter|||4|5758 +3000|MO|Dade County|Greenfield city|1096|0|8|Regnier|Tammi|2998|Netherlands Antilles|F|Daughter|||2|5759 + +3000|LA|Assumption Parish|Labadieville CDP|1097|0|1|Estock|Jane|2946|Kansas|F|Head|||54|5760 +3000|LA|Assumption Parish|Labadieville CDP|1097|0|2|Estock|Enriqueta Carmella|2970|Palestinian Territory, Occupied|F|Daughter|||30|5761 +3000|LA|Assumption Parish|Labadieville CDP|1097|0|3|Estock|Loren|2988|Virginia|M|Son|||12|5762 +3000|LA|Assumption Parish|Labadieville CDP|1097|0|4|Estock|Brenton|2990|Nebraska|M|Son|||10|5763 +3000|LA|Assumption Parish|Labadieville CDP|1097|0|5|Estock|Gil|2994|Utah|M|Son|||6|5764 + +3000|MS|Jackson County|Helena CDP|1098|0|1|Medlar|Ethyl|2967|Utah|F|Head|||33|5765 +3000|MS|Jackson County|Helena CDP|1098|0|2|Medlar|Lesley|2987|Nevada|M|Son|||13|5766 +3000|MS|Jackson County|Helena CDP|1098|0|3|Medlar|Carlyn|2989|Colorado|F|Daughter|||11|5767 +3000|MS|Jackson County|Helena CDP|1098|0|4|Medlar|Morgan|2993|Virginia|M|Son|||7|5768 +3000|MS|Jackson County|Helena CDP|1098|0|5|Medlar|Theo|2995|North Dakota|M|Son|||5|5769 +3000|MS|Jackson County|Helena CDP|1098|0|6|Medlar|Lino|2999|Massachusetts|M|Son|||1|5770 + +3000|IA|Shelby County|Westphalia city|1099|0|1|Torres|Renaldo Bruce|2973|Texas|M|Head|||27|5771 +3000|IA|Shelby County|Westphalia city|1099|0|2|Torres|Lashaun|2999|Bangladesh|F|Daughter|||1|5772 + +3000|TX|Cameron County|Tierra Bonita CDP|1100|0|1|Hallauer|Ron King|2973|South Carolina|M|Head|||27|5773 +3000|TX|Cameron County|Tierra Bonita CDP|1100|0|2|Hallauer|Gaston|2996|Nevada|M|Son|||4|5774 +3000|TX|Cameron County|Tierra Bonita CDP|1100|0|3|Hallauer|Shamika|3000|New Jersey|F|Daughter|||0|5775 + +3000|PA|Berks County|Shoemakersville borough|1101|0|1|Case|Tarsha|2955|Israel|F|Head|||45|5776 +3000|PA|Berks County|Shoemakersville borough|1101|0|2|Case|Denyse|2977|Kentucky|F|Daughter|||23|5777 +3000|PA|Berks County|Shoemakersville borough|1101|0|3|Case|Valentine|2987|Georgia|M|Son|||13|5778 +3000|PA|Berks County|Shoemakersville borough|1101|0|4|Case|Ken|2991|Virginia|M|Son|||9|5779 +3000|PA|Berks County|Shoemakersville borough|1101|0|5|Case|Joslyn|2993|Minnesota|F|Daughter|||7|5780 +3000|PA|Berks County|Shoemakersville borough|1101|0|6|Case|Susan|2995|Kansas|F|Daughter|||5|5781 + +3000|MA|Plymouth County|Abington town|1102|0|1|Boyette|Elton|2967|Honduras|M|Head|||33|5782 +3000|MA|Plymouth County|Abington town|1102|0|2|Boyette|Ana|2980|New Jersey|F|Spouse|||20|5783 + +3000|TX|Brown County|Blanket town|1103|0|1|Hardy|Robin Jonathan|2962|Montana|M|Head|||38|5784 +3000|TX|Brown County|Blanket town|1103|0|2|Hardy|Blossom|2966|Wisconsin|F|Spouse|||34|5785 +3000|TX|Brown County|Blanket town|1103|0|3|Hardy|Paul|2986|Missouri|F|Daughter|||14|5786 +3000|TX|Brown County|Blanket town|1103|0|4|Hardy|Kellee|2988|Florida|F|Daughter|||12|5787 +3000|TX|Brown County|Blanket town|1103|0|5|Hardy|Dee|2990|Wisconsin|M|Son|||10|5788 +3000|TX|Brown County|Blanket town|1103|0|6|Hardy|Angella|2992|South Dakota|F|Daughter|||8|5789 +3000|TX|Brown County|Blanket town|1103|0|7|Hardy|Collene|2994|Arkansas|F|Daughter|||6|5790 +3000|TX|Brown County|Blanket town|1103|0|8|Hardy|Junior|2998|Hawaii|M|Son|||2|5791 +3000|TX|Brown County|Blanket town|1103|0|9|Hardy|Lawerence|3000|Maryland|M|Son|||0|5792 + +3000|NY|Jefferson County|Watertown city|1104|0|1|Doe|Moshe Sherwood|2977|South Dakota|M|Head|||23|5793 +3000|NY|Jefferson County|Watertown city|1104|0|2|Doe|Kay|2973|Alabama|F|Spouse|||27|5794 +3000|NY|Jefferson County|Watertown city|1104|0|3|Doe|Juana|2993|North Dakota|F|Daughter|||7|5795 +3000|NY|Jefferson County|Watertown city|1104|0|4|Doe|Abe|2995|Connecticut|M|Son|||5|5796 +3000|NY|Jefferson County|Watertown city|1104|0|5|Doe|Benny|2999|Utah|M|Son|||1|5797 + +3000|WA|Yakima County|Summitview CDP|1105|0|1|Soto|Carter Lanny|2946|Indiana|M|Head|||54|5798 +3000|WA|Yakima County|Summitview CDP|1105|0|2|Soto|Dreama|2957|Nevada|F|Spouse|||43|5799 +3000|WA|Yakima County|Summitview CDP|1105|0|3|Soto|Clayton|2985|Nebraska|M|Son|||15|5800 +3000|WA|Yakima County|Summitview CDP|1105|0|4|Soto|Eveline Lore|2987|Connecticut|F|Daughter|||13|5801 +3000|WA|Yakima County|Summitview CDP|1105|0|5|Soto|Zenobia|2989|Wyoming|F|Daughter|||11|5802 +3000|WA|Yakima County|Summitview CDP|1105|0|6|Soto|Sierra|2995|South Georgia And The South Sandwich Islands|F|Daughter|||5|5803 +3000|WA|Yakima County|Summitview CDP|1105|0|7|Soto|Jerrod|2999|Oregon|M|Son|||1|5804 + +3000|MN|Marshall County|Stephen city|1106|0|1|Lemaster|Trey Jose|2981|Nevada|M|Head|||19|5805 +3000|MN|Marshall County|Stephen city|1106|0|2|Lemaster|Kathy|2999|Kiribati|F|Daughter|||1|5806 + +3000|TX|Jasper County|Kirbyville city|1107|0|1|Tingstrom|Tory Michale|2950|Madagascar|M|Head|||50|5807 +3000|TX|Jasper County|Kirbyville city|1107|0|2|Tingstrom|Eartha|2968|Iowa|F|Spouse|||32|5808 +3000|TX|Jasper County|Kirbyville city|1107|0|3|Tingstrom|Giselle|2994|Idaho|F|Daughter|||6|5809 +3000|TX|Jasper County|Kirbyville city|1107|0|4|Tingstrom|Collene|2996|California|F|Daughter|||4|5810 +3000|TX|Jasper County|Kirbyville city|1107|0|5|Tingstrom|Parker|2998|Maryland|M|Son|||2|5811 + +3000|LA|Plaquemines Parish|Belle Chasse CDP|1108|0|1|Evans|Tyrone Haywood|2966|Florida|M|Head|||34|5812 +3000|LA|Plaquemines Parish|Belle Chasse CDP|1108|0|2|Evans|Lizzette|2985|Yemen|F|Daughter|||15|5813 +3000|LA|Plaquemines Parish|Belle Chasse CDP|1108|0|3|Evans|Blair Ray|2993|Arizona|M|Son|||7|5814 +3000|LA|Plaquemines Parish|Belle Chasse CDP|1108|0|4|Evans|Synthia|2997|Arkansas|F|Daughter|||3|5815 + +3000|PA|Berks County|Birdsboro borough|1109|0|1|Abbadessa|Royce Dean|2953|Delaware|M|Head|||47|5816 +3000|PA|Berks County|Birdsboro borough|1109|0|2|Abbadessa|Terese|2972|Alaska|F|Spouse|||28|5817 +3000|PA|Berks County|Birdsboro borough|1109|0|3|Abbadessa|Marivel|2994|Brunei Darussalam|F|Daughter|||6|5818 +3000|PA|Berks County|Birdsboro borough|1109|0|4|Abbadessa|Rey|2996|Iowa|M|Son|||4|5819 +3000|PA|Berks County|Birdsboro borough|1109|0|5|Abbadessa|Dan|3000|Congo|M|Son|||0|5820 + +3000|VA|Lunenburg County|Lunenburg CDP|1110|0|1|Mcpeters|Clyde Gerardo|2957|Colorado|M|Head|||43|5821 +3000|VA|Lunenburg County|Lunenburg CDP|1110|0|2|Mcpeters|Dalene|2957|Alabama|F|Spouse|||43|5822 +3000|VA|Lunenburg County|Lunenburg CDP|1110|0|3|Mcpeters|Ruby|2979|Nevada|F|Daughter|||21|5823 +3000|VA|Lunenburg County|Lunenburg CDP|1110|0|4|Mcpeters|Leisha|2983|Alaska|F|Daughter|||17|5824 +3000|VA|Lunenburg County|Lunenburg CDP|1110|0|5|Mcpeters|Coleman Ted|2985|Arkansas|M|Son|||15|5825 +3000|VA|Lunenburg County|Lunenburg CDP|1110|0|6|Mcpeters|Onie|2987|Rhode Island|F|Daughter|||13|5826 +3000|VA|Lunenburg County|Lunenburg CDP|1110|0|7|Mcpeters|Rick|2989|Texas|M|Son|||11|5827 +3000|VA|Lunenburg County|Lunenburg CDP|1110|0|8|Mcpeters|Hershel|2997|Vermont|M|Son|||3|5828 +3000|VA|Lunenburg County|Lunenburg CDP|1110|0|9|Mcpeters|Carol|2999|New York|M|Son|||1|5829 + +3000|VT|Franklin County|Bakersfield town|1111|0|1|Goodlet|Tyree Nicholas|2946|North Dakota|M|Head|||54|5830 +3000|VT|Franklin County|Bakersfield town|1111|0|2|Goodlet|Kristy|2949|Colorado|F|Spouse|||51|5831 +3000|VT|Franklin County|Bakersfield town|1111|0|3|Goodlet|Riley|2979|Missouri|M|Son|||21|5832 +3000|VT|Franklin County|Bakersfield town|1111|0|4|Goodlet|Lolita|2985|Maine|F|Daughter|||15|5833 +3000|VT|Franklin County|Bakersfield town|1111|0|5|Goodlet|Maia|2993|Mississippi|F|Daughter|||7|5834 + +3000|PA|Somerset County|Brothersvalley township|1112|0|1|Rickard|Bernardo|2942|Belgium|M|Head|||58|5835 +3000|PA|Somerset County|Brothersvalley township|1112|0|2|Rickard|Jeanna|2953|North Dakota|F|Spouse|||47|5836 +3000|PA|Somerset County|Brothersvalley township|1112|0|3|Rickard|Zoila Amelia|2973|Alabama|F|Daughter|||27|5837 +3000|PA|Somerset County|Brothersvalley township|1112|0|4|Rickard|Donnetta|2991|New Hampshire|F|Daughter|||9|5838 +3000|PA|Somerset County|Brothersvalley township|1112|0|5|Rickard|Sonia|2993|Louisiana|F|Daughter|||7|5839 +3000|PA|Somerset County|Brothersvalley township|1112|0|6|Rickard|Leigh|2995|Georgia|F|Daughter|||5|5840 +3000|PA|Somerset County|Brothersvalley township|1112|0|7|Rickard|Hoyt|2997|North Dakota|M|Son|||3|5841 + +3000|MD|Calvert County|Dunkirk CDP|1113|0|1|Mckellip|Frances Rueben|2940|Oklahoma|M|Head|||60|5842 +3000|MD|Calvert County|Dunkirk CDP|1113|0|2|Mckellip|Jesusita|2960|Alaska|F|Spouse|||40|5843 +3000|MD|Calvert County|Dunkirk CDP|1113|0|3|Mckellip|Clair|2986|Wyoming|F|Daughter|||14|5844 +3000|MD|Calvert County|Dunkirk CDP|1113|0|4|Mckellip|Jammie|2990|Alabama|F|Daughter|||10|5845 +3000|MD|Calvert County|Dunkirk CDP|1113|0|5|Mckellip|Tory|2996|Tennessee|F|Daughter|||4|5846 + +3000|CO|Eagle County|El Jebel CDP|1114|0|1|Ban|Oliver Mitchel|2947|Montana|M|Head|||53|5847 +3000|CO|Eagle County|El Jebel CDP|1114|0|2|Ban|Bettina|2958|Tennessee|F|Spouse|||42|5848 +3000|CO|Eagle County|El Jebel CDP|1114|0|3|Ban|Horace|2982|South Carolina|M|Son|||18|5849 +3000|CO|Eagle County|El Jebel CDP|1114|0|4|Ban|Enrique Trenton|2988|New Hampshire|M|Son|||12|5850 +3000|CO|Eagle County|El Jebel CDP|1114|0|5|Ban|Kaye|2990|Nevada|F|Daughter|||10|5851 +3000|CO|Eagle County|El Jebel CDP|1114|0|6|Ban|Shondra|2994|Alabama|F|Daughter|||6|5852 +3000|CO|Eagle County|El Jebel CDP|1114|0|7|Ban|Luther|2996|Georgia|M|Son|||4|5853 + +3000|MI|Oakland County|Holly village|1115|0|1|Beuchler|Ellis Nolan|2951|Vermont|M|Head|||49|5854 +3000|MI|Oakland County|Holly village|1115|0|2|Beuchler|Temika|2947|Delaware|F|Spouse|||53|5855 +3000|MI|Oakland County|Holly village|1115|0|3|Beuchler|Cindie|2969|Montana|F|Daughter|||31|5856 +3000|MI|Oakland County|Holly village|1115|0|4|Beuchler|Ernie|2981|Minnesota|M|Son|||19|5857 +3000|MI|Oakland County|Holly village|1115|0|5|Beuchler|Louis|2983|Missouri|F|Daughter|||17|5858 +3000|MI|Oakland County|Holly village|1115|0|6|Beuchler|Esta|2985|Massachusetts|F|Daughter|||15|5859 +3000|MI|Oakland County|Holly village|1115|0|7|Beuchler|Marcella|2989|Iran, Islamic Republic Of|F|Daughter|||11|5860 +3000|MI|Oakland County|Holly village|1115|0|8|Beuchler|Kermit|2995|Florida|M|Son|||5|5861 +3000|MI|Oakland County|Holly village|1115|0|9|Beuchler|Markus|2997|Maine|M|Son|||3|5862 + +3000|SD|Pennington County|Rapid Valley CDP|1116|0|1|Harman|Brett Billie|2962|Alaska|M|Head|||38|5863 +3000|SD|Pennington County|Rapid Valley CDP|1116|0|2|Harman|Tomiko|2977|Austria|F|Spouse|||23|5864 +3000|SD|Pennington County|Rapid Valley CDP|1116|0|3|Harman|Roxie Lorelei|2997|Kansas|F|Daughter|||3|5865 + +3000|NE|Buffalo County|Odessa CDP|1117|0|1|Giebler|Drew Pete|2960|Kansas|M|Head|||40|5866 + +3000|WI|Green Lake County|Kingston village|1118|0|1|Boehnlein|James|2972|California|M|Head|||28|5867 +3000|WI|Green Lake County|Kingston village|1118|0|2|Boehnlein|Clementine|2983|North Dakota|F|Spouse|||17|5868 + +3000|SD|Hanson County|Alexandria city|1119|0|1|Landucci|Mac Cesar|2958|Kansas|M|Head|||42|5869 +3000|SD|Hanson County|Alexandria city|1119|0|2|Landucci|Rachele|2956|New Mexico|F|Spouse|||44|5870 +3000|SD|Hanson County|Alexandria city|1119|0|3|Landucci|Valentin Broderick|2986|New Hampshire|M|Son|||14|5871 +3000|SD|Hanson County|Alexandria city|1119|0|4|Landucci|Luisa Natividad|2994|Kazakstan|F|Daughter|||6|5872 + +3000|KS|Coffey County|New Strawn city|1120|0|1|Squyres|Ward Nicky|2960|Pennsylvania|M|Head|||40|5873 +3000|KS|Coffey County|New Strawn city|1120|0|2|Squyres|Bev|2969|Oregon|F|Spouse|||31|5874 +3000|KS|Coffey County|New Strawn city|1120|0|3|Squyres|Merrill Sanford|2989|New Mexico|M|Son|||11|5875 +3000|KS|Coffey County|New Strawn city|1120|0|4|Squyres|Antone|2993|Delaware|M|Son|||7|5876 +3000|KS|Coffey County|New Strawn city|1120|0|5|Squyres|Alysa|2995|Alabama|F|Daughter|||5|5877 +3000|KS|Coffey County|New Strawn city|1120|0|6|Squyres|Lester|2997|Connecticut|M|Son|||3|5878 + +3000|PA|Lackawanna County|Jefferson township|1121|0|1|Pacubas|Chang Eli|2972|Kentucky|M|Head|||28|5879 +3000|PA|Lackawanna County|Jefferson township|1121|0|2|Pacubas|Sook|2974|Michigan|F|Spouse|||26|5880 +3000|PA|Lackawanna County|Jefferson township|1121|0|3|Pacubas|Tyrone|2996|Malaysia|M|Son|||4|5881 +3000|PA|Lackawanna County|Jefferson township|1121|0|4|Pacubas|Willene|3000|India|F|Daughter|||0|5882 + +3000|MN|Jackson County|Delafield township|1122|0|1|Sinegal|Warner Horacio|2937|Florida|M|Head|||63|5883 +3000|MN|Jackson County|Delafield township|1122|0|2|Sinegal|Eloise|2961|Montana|F|Spouse|||39|5884 +3000|MN|Jackson County|Delafield township|1122|0|3|Sinegal|Anibal|2985|Colorado|M|Son|||15|5885 +3000|MN|Jackson County|Delafield township|1122|0|4|Sinegal|Filomena|2987|New Hampshire|F|Daughter|||13|5886 +3000|MN|Jackson County|Delafield township|1122|0|5|Sinegal|Mohammad|2993|Louisiana|M|Son|||7|5887 +3000|MN|Jackson County|Delafield township|1122|0|6|Sinegal|Boyd|2995|Mississippi|M|Son|||5|5888 +3000|MN|Jackson County|Delafield township|1122|0|7|Sinegal|Cheryll Otelia|2997|Sweden|F|Daughter|||3|5889 +3000|MN|Jackson County|Delafield township|1122|0|8|Sinegal|Erasmo|2999|Mississippi|M|Son|||1|5890 + +3000|MN|Scott County|Cedar Lake township|1123|0|1|Malenke|Marlin Armand|2960|Guatemala|M|Head|||40|5891 +3000|MN|Scott County|Cedar Lake township|1123|0|2|Malenke|Florine|2974|Poland|F|Spouse|||26|5892 +3000|MN|Scott County|Cedar Lake township|1123|0|3|Malenke|Maggie Laquanda|2994|Michigan|F|Daughter|||6|5893 +3000|MN|Scott County|Cedar Lake township|1123|0|4|Malenke|Cordell|2996|Tanzania, United Republic Of|M|Son|||4|5894 +3000|MN|Scott County|Cedar Lake township|1123|0|5|Malenke|Issac|2998|Kansas|M|Son|||2|5895 +3000|MN|Scott County|Cedar Lake township|1123|0|6|Malenke|Emiko|3000|Vermont|F|Daughter|||0|5896 + +3000|AR|Jackson County|Amagon town|1124|0|1|Ruebush|Ramiro Trinidad|2962|Arkansas|M|Head|||38|5897 +3000|AR|Jackson County|Amagon town|1124|0|2|Ruebush|Emilie|2976|Kentucky|F|Spouse|||24|5898 +3000|AR|Jackson County|Amagon town|1124|0|3|Ruebush|Kelvin|2996|Georgia|M|Son|||4|5899 +3000|AR|Jackson County|Amagon town|1124|0|4|Ruebush|Trudi|2998|Maine|F|Daughter|||2|5900 +3000|AR|Jackson County|Amagon town|1124|0|5|Ruebush|Chas|3000|Maryland|M|Son|||0|5901 + +3000|NM|San Juan County|Upper Fruitland CDP|1125|0|1|Dean|Donette|2984|Oregon|F|Head|||16|5902 + +3000|MN|Itasca County|Bovey city|1126|0|1|Jackson|Jimmy Geoffrey|2959|Washington|M|Head|||41|5903 + +3000|NC|Lenoir County|Pink Hill town|1127|0|1|Valle|Luciano Billie|2960|New Hampshire|M|Head|||40|5904 +3000|NC|Lenoir County|Pink Hill town|1127|0|2|Valle|Belinda|2960|Afghanistan|F|Spouse|||40|5905 +3000|NC|Lenoir County|Pink Hill town|1127|0|3|Valle|Chance|2986|New Hampshire|M|Son|||14|5906 +3000|NC|Lenoir County|Pink Hill town|1127|0|4|Valle|Elmira|2988|North Dakota|F|Daughter|||12|5907 +3000|NC|Lenoir County|Pink Hill town|1127|0|5|Valle|Walter|2990|Nevada|F|Daughter|||10|5908 +3000|NC|Lenoir County|Pink Hill town|1127|0|6|Valle|Shirley|2994|Delaware|M|Son|||6|5909 +3000|NC|Lenoir County|Pink Hill town|1127|0|7|Valle|Derrick|2996|Alabama|M|Son|||4|5910 +3000|NC|Lenoir County|Pink Hill town|1127|0|8|Valle|Candice|3000|Nevada|F|Daughter|||0|5911 + +3000|WI|Vernon County|Genoa town|1128|0|1|Wallerich|Greg Zachery|2954|Connecticut|M|Head|||46|5912 +3000|WI|Vernon County|Genoa town|1128|0|2|Wallerich|Latoyia|2972|Aruba|F|Spouse|||28|5913 +3000|WI|Vernon County|Genoa town|1128|0|3|Wallerich|Marlana Sanora|2992|Georgia|F|Daughter|||8|5914 +3000|WI|Vernon County|Genoa town|1128|0|4|Wallerich|Michael|2998|Florida|F|Daughter|||2|5915 + +3000|WI|Wood County|Wisconsin Rapids city|1129|0|1|Thomas|Vincenzo Greg|2964|New Jersey|M|Head|||36|5916 +3000|WI|Wood County|Wisconsin Rapids city|1129|0|2|Thomas|Tomasa|3000|Ohio|F|Daughter|||0|5917 + +3000|NJ|Camden County|Laurel Springs borough|1130|0|1|Corrales|Leslie Kenton|2971|Alaska|M|Head|||29|5918 +3000|NJ|Camden County|Laurel Springs borough|1130|0|2|Corrales|Marx|2974|New Hampshire|F|Spouse|||26|5919 +3000|NJ|Camden County|Laurel Springs borough|1130|0|3|Corrales|Bruno|2996|Illinois|M|Son|||4|5920 +3000|NJ|Camden County|Laurel Springs borough|1130|0|4|Corrales|Joella|2998|North Dakota|F|Daughter|||2|5921 +3000|NJ|Camden County|Laurel Springs borough|1130|0|5|Corrales|Jarrett|3000|Mississippi|M|Son|||0|5922 + +3000|PA|York County|Red Lion borough|1131|0|1|Rodges|Guillermo Jesse|2957|Washington|M|Head|||43|5923 +3000|PA|York County|Red Lion borough|1131|0|2|Rodges|Cleopatra|2958|Cuba|F|Spouse|||42|5924 +3000|PA|York County|Red Lion borough|1131|0|3|Rodges|Darryl|2986|Missouri|M|Son|||14|5925 +3000|PA|York County|Red Lion borough|1131|0|4|Rodges|Zachary|2988|Utah|M|Son|||12|5926 +3000|PA|York County|Red Lion borough|1131|0|5|Rodges|Yael|2990|Iowa|F|Daughter|||10|5927 +3000|PA|York County|Red Lion borough|1131|0|6|Rodges|Allen|2992|New Hampshire|F|Daughter|||8|5928 +3000|PA|York County|Red Lion borough|1131|0|7|Rodges|Buford|2994|Nevada|M|Son|||6|5929 +3000|PA|York County|Red Lion borough|1131|0|8|Rodges|Toby|3000|Maryland|M|Son|||0|5930 + +3000|ND|Pembina County|Drayton city|1132|0|1|Lucas|Emory Joel|2948|Massachusetts|M|Head|||52|5931 +3000|ND|Pembina County|Drayton city|1132|0|2|Lucas|Moshe|2978|South Dakota|M|Son|||22|5932 +3000|ND|Pembina County|Drayton city|1132|0|3|Lucas|Jim|2988|Utah|M|Son|||12|5933 +3000|ND|Pembina County|Drayton city|1132|0|4|Lucas|Tamar|2990|Michigan|F|Daughter|||10|5934 +3000|ND|Pembina County|Drayton city|1132|0|5|Lucas|Leonel|2992|Wyoming|M|Son|||8|5935 +3000|ND|Pembina County|Drayton city|1132|0|6|Lucas|Penni|2998|Washington|F|Daughter|||2|5936 +3000|ND|Pembina County|Drayton city|1132|0|7|Lucas|Lamont|3000|Oregon|M|Son|||0|5937 + +3000|MA|Worcester County|Southbridge Town city|1133|0|1|Bessler|Erasmo Shane|2947|Georgia|M|Head|||53|5938 +3000|MA|Worcester County|Southbridge Town city|1133|0|2|Bessler|Berna|2966|Maine|F|Spouse|||34|5939 +3000|MA|Worcester County|Southbridge Town city|1133|0|3|Bessler|Tonette|2986|Louisiana|F|Daughter|||14|5940 +3000|MA|Worcester County|Southbridge Town city|1133|0|4|Bessler|Tarra|2988|Florida|F|Daughter|||12|5941 +3000|MA|Worcester County|Southbridge Town city|1133|0|5|Bessler|Cherlyn|2992|Missouri|F|Daughter|||8|5942 +3000|MA|Worcester County|Southbridge Town city|1133|0|6|Bessler|Yong|2998|Iowa|F|Daughter|||2|5943 +3000|MA|Worcester County|Southbridge Town city|1133|0|7|Bessler|Donnell|3000|Maine|M|Son|||0|5944 + +3000|AK|Kenai Peninsula Borough|Salamatof CDP|1134|0|1|Strecker|Gary Elmo|2956|Antigua And Barbuda|M|Head|||44|5945 +3000|AK|Kenai Peninsula Borough|Salamatof CDP|1134|0|2|Strecker|Dane Mack|2997|Ohio|M|Son|||3|5946 + +3000|NY|Niagara County|Lewiston town|1135|0|1|Mancuso|Dewayne Dino|2973|Maryland|M|Head|||27|5947 +3000|NY|Niagara County|Lewiston town|1135|0|2|Mancuso|Angle|2980|Sierra Leone|F|Spouse|||20|5948 +3000|NY|Niagara County|Lewiston town|1135|0|3|Mancuso|Merissa|3000|Georgia|F|Daughter|||0|5949 + +3000|GA|Liberty County|Riceboro city|1136|0|1|Castile|Riley Eugene|2953|Guyana|M|Head|||47|5950 +3000|GA|Liberty County|Riceboro city|1136|0|2|Castile|Evangelina|2975|South Dakota|F|Spouse|||25|5951 +3000|GA|Liberty County|Riceboro city|1136|0|3|Castile|Cammy|2995|New Hampshire|F|Daughter|||5|5952 +3000|GA|Liberty County|Riceboro city|1136|0|4|Castile|Winford|2999|Nebraska|M|Son|||1|5953 + +3000|MO|Johnson County|La Tour CDP|1137|0|1|Lloyd|Garland Sherman|2952|New Mexico|M|Head|||48|5954 +3000|MO|Johnson County|La Tour CDP|1137|0|2|Lloyd|Sunny|2970|Missouri|F|Spouse|||30|5955 +3000|MO|Johnson County|La Tour CDP|1137|0|3|Lloyd|Grace|2992|Hawaii|F|Daughter|||8|5956 +3000|MO|Johnson County|La Tour CDP|1137|0|4|Lloyd|Nakesha|2996|Virginia|F|Daughter|||4|5957 + +3000|MI|Barry County|Hickory Corners CDP|1138|0|1|Spence|Sal Rogelio|2982|Belgium|M|Head|||18|5958 +3000|MI|Barry County|Hickory Corners CDP|1138|0|2|Spence|Machelle|3000|Mississippi|F|Daughter|||0|5959 + +3000|IL|Crawford County|Flat Rock village|1139|0|1|Bugg|Nicky Omar|2940|Tokelau|M|Head|||60|5960 +3000|IL|Crawford County|Flat Rock village|1139|0|2|Bugg|Giselle|2957|North Carolina|F|Spouse|||43|5961 +3000|IL|Crawford County|Flat Rock village|1139|0|3|Bugg|Duncan|2981|California|M|Son|||19|5962 +3000|IL|Crawford County|Flat Rock village|1139|0|4|Bugg|Eneida|2985|Louisiana|F|Daughter|||15|5963 +3000|IL|Crawford County|Flat Rock village|1139|0|5|Bugg|Myong|2987|Pennsylvania|F|Daughter|||13|5964 +3000|IL|Crawford County|Flat Rock village|1139|0|6|Bugg|Dirk|2989|Qatar|M|Son|||11|5965 +3000|IL|Crawford County|Flat Rock village|1139|0|7|Bugg|Gladis|2997|Kyrgyzstan|F|Daughter|||3|5966 +3000|IL|Crawford County|Flat Rock village|1139|0|8|Bugg|Shelby|2999|Germany|M|Son|||1|5967 + +3000|ME|Knox County|Rockport town|1140|0|1|Kelly|Dante Sylvester|2963|Nebraska|M|Head|||37|5968 +3000|ME|Knox County|Rockport town|1140|0|2|Kelly|Cathey|2969|Nebraska|F|Spouse|||31|5969 +3000|ME|Knox County|Rockport town|1140|0|3|Kelly|Mauricio|2991|Oman|M|Son|||9|5970 +3000|ME|Knox County|Rockport town|1140|0|4|Kelly|Walter|2993|Idaho|F|Daughter|||7|5971 +3000|ME|Knox County|Rockport town|1140|0|5|Kelly|Lillie|2999|South Dakota|F|Daughter|||1|5972 + +3000|ME|Aroostook County|Eagle Lake CDP|1141|0|1|Ptaschinski|Jesus Hobert|2957|Idaho|M|Head|||43|5973 +3000|ME|Aroostook County|Eagle Lake CDP|1141|0|2|Ptaschinski|Mercedes|2980|Hawaii|F|Spouse|||20|5974 +3000|ME|Aroostook County|Eagle Lake CDP|1141|0|3|Ptaschinski|Phoebe|3000|Nevada|F|Daughter|||0|5975 + +3000|TX|Harris County|Taylor Lake Village city|1142|0|1|Poncho|Rudy Ezra|2960|Albania|M|Head|||40|5976 +3000|TX|Harris County|Taylor Lake Village city|1142|0|2|Poncho|Trula|2958|Tajikistan|F|Spouse|||42|5977 +3000|TX|Harris County|Taylor Lake Village city|1142|0|3|Poncho|Elroy Stevie|2982|Illinois|M|Son|||18|5978 +3000|TX|Harris County|Taylor Lake Village city|1142|0|4|Poncho|Reta|2984|Venezuela|F|Daughter|||16|5979 +3000|TX|Harris County|Taylor Lake Village city|1142|0|5|Poncho|Craig Mitchell|2986|Connecticut|M|Son|||14|5980 +3000|TX|Harris County|Taylor Lake Village city|1142|0|6|Poncho|Emile|2994|Arkansas|M|Son|||6|5981 +3000|TX|Harris County|Taylor Lake Village city|1142|0|7|Poncho|Margart|2996|North Dakota|F|Daughter|||4|5982 +3000|TX|Harris County|Taylor Lake Village city|1142|0|8|Poncho|Bettina|2998|Nebraska|F|Daughter|||2|5983 + +3000|OR|Tillamook County|Bay City city|1143|0|1|Ringstaff|Kevin Denny|2957|Pennsylvania|M|Head|||43|5984 +3000|OR|Tillamook County|Bay City city|1143|0|2|Ringstaff|Elvera|2957|Michigan|F|Spouse|||43|5985 +3000|OR|Tillamook County|Bay City city|1143|0|3|Ringstaff|Hunter|2985|South Dakota|M|Son|||15|5986 +3000|OR|Tillamook County|Bay City city|1143|0|4|Ringstaff|Coleman|2989|Israel|M|Son|||11|5987 +3000|OR|Tillamook County|Bay City city|1143|0|5|Ringstaff|Jadwiga Nikole|2991|Kentucky|F|Daughter|||9|5988 +3000|OR|Tillamook County|Bay City city|1143|0|6|Ringstaff|Lue|2997|Alaska|F|Daughter|||3|5989 + +3000|WI|Marinette County|Goodman CDP|1144|0|1|Alessi|Cari|2953|Cape Verde|F|Head|||47|5990 +3000|WI|Marinette County|Goodman CDP|1144|0|2|Alessi|Santiago|2981|Massachusetts|M|Son|||19|5991 +3000|WI|Marinette County|Goodman CDP|1144|0|3|Alessi|Lenore|2985|Vermont|F|Daughter|||15|5992 +3000|WI|Marinette County|Goodman CDP|1144|0|4|Alessi|Kendall|2989|California|M|Son|||11|5993 +3000|WI|Marinette County|Goodman CDP|1144|0|5|Alessi|Maxwell|2993|Maryland|M|Son|||7|5994 +3000|WI|Marinette County|Goodman CDP|1144|0|6|Alessi|Carroll|2999|Missouri|F|Daughter|||1|5995 + +3000|PR|Salinas Municipio|Central Aguirre comunidad|1145|0|1|Grover|Jerry Jere|2939|South Carolina|M|Head|||61|5996 +3000|PR|Salinas Municipio|Central Aguirre comunidad|1145|0|2|Grover|King|2967|Nebraska|M|Son|||33|5997 +3000|PR|Salinas Municipio|Central Aguirre comunidad|1145|0|3|Grover|Lola|2981|East Timor|F|Daughter|||19|5998 +3000|PR|Salinas Municipio|Central Aguirre comunidad|1145|0|4|Grover|Dawn|2985|Georgia|F|Daughter|||15|5999 +3000|PR|Salinas Municipio|Central Aguirre comunidad|1145|0|5|Grover|Miguel|2989|Oklahoma|M|Son|||11|6000 +3000|PR|Salinas Municipio|Central Aguirre comunidad|1145|0|6|Grover|Nola|2999|Pennsylvania|F|Daughter|||1|6001 + +3000|KS|Franklin County|Richmond city|1146|0|1|Manzo|Rudolph Bradly|2943|Bahrain|M|Head|||57|6002 +3000|KS|Franklin County|Richmond city|1146|0|2|Manzo|Beverlee|2956|Delaware|F|Spouse|||44|6003 +3000|KS|Franklin County|Richmond city|1146|0|3|Manzo|Shayna|2980|Oregon|F|Daughter|||20|6004 +3000|KS|Franklin County|Richmond city|1146|0|4|Manzo|Waldo|2986|Saint Lucia|M|Son|||14|6005 +3000|KS|Franklin County|Richmond city|1146|0|5|Manzo|Tommie|2988|Delaware|M|Son|||12|6006 +3000|KS|Franklin County|Richmond city|1146|0|6|Manzo|Tisa|2996|Illinois|F|Daughter|||4|6007 + +3000|MD|St. Mary's County|Leonardtown town|1147|0|1|James|Otha Ignacio|2941|Indiana|M|Head|||59|6008 +3000|MD|St. Mary's County|Leonardtown town|1147|0|2|James|Cheree|2962|Illinois|F|Spouse|||38|6009 +3000|MD|St. Mary's County|Leonardtown town|1147|0|3|James|Leonia|2982|Indiana|F|Daughter|||18|6010 +3000|MD|St. Mary's County|Leonardtown town|1147|0|4|James|Rosemarie|2988|Armenia|F|Daughter|||12|6011 +3000|MD|St. Mary's County|Leonardtown town|1147|0|5|James|Guy|2992|Nebraska|M|Son|||8|6012 +3000|MD|St. Mary's County|Leonardtown town|1147|0|6|James|Herbert|2996|Pennsylvania|M|Son|||4|6013 + +3000|NY|Greene County|Prattsville CDP|1148|0|1|Kudley|Laurence|2952|Missouri|M|Head|||48|6014 +3000|NY|Greene County|Prattsville CDP|1148|0|2|Kudley|Jennette|2958|Hawaii|F|Spouse|||42|6015 +3000|NY|Greene County|Prattsville CDP|1148|0|3|Kudley|Luigi Vince|2980|Connecticut|M|Son|||20|6016 +3000|NY|Greene County|Prattsville CDP|1148|0|4|Kudley|Adelia|2988|Holy See (vatican City State)|F|Daughter|||12|6017 +3000|NY|Greene County|Prattsville CDP|1148|0|5|Kudley|Veda|2998|Wisconsin|F|Daughter|||2|6018 +3000|NY|Greene County|Prattsville CDP|1148|0|6|Kudley|Leslie|3000|Niue|M|Son|||0|6019 + +3000|KS|Douglas County|Eudora city|1149|0|1|Lister|Von Manuel|2939|Hawaii|M|Head|||61|6020 +3000|KS|Douglas County|Eudora city|1149|0|2|Lister|Sherril|2956|Pennsylvania|F|Spouse|||44|6021 +3000|KS|Douglas County|Eudora city|1149|0|3|Lister|Shiela|2986|Burundi|F|Daughter|||14|6022 +3000|KS|Douglas County|Eudora city|1149|0|4|Lister|Maris Keira|2988|North Carolina|F|Daughter|||12|6023 +3000|KS|Douglas County|Eudora city|1149|0|5|Lister|Hector|3000|Alaska|M|Son|||0|6024 + +3000|ND|Walsh County|Conway city|1150|0|1|Rawley|Scot Bill|2966|Ohio|M|Head|||34|6025 +3000|ND|Walsh County|Conway city|1150|0|2|Rawley|Adolph|2993|Netherlands Antilles|M|Son|||7|6026 +3000|ND|Walsh County|Conway city|1150|0|3|Rawley|Zula|2995|Malaysia|F|Daughter|||5|6027 +3000|ND|Walsh County|Conway city|1150|0|4|Rawley|Angel Felton|2999|Maryland|M|Son|||1|6028 + +3000|PA|Beaver County|South Heights borough|1151|0|1|Evans|Edgardo Ronald|2944|Florida|M|Head|||56|6029 +3000|PA|Beaver County|South Heights borough|1151|0|2|Evans|Phyliss Caryn|2961|Belize|F|Spouse|||39|6030 +3000|PA|Beaver County|South Heights borough|1151|0|3|Evans|Orval|2985|Texas|M|Son|||15|6031 +3000|PA|Beaver County|South Heights borough|1151|0|4|Evans|Kathaleen|2987|Iowa|F|Daughter|||13|6032 +3000|PA|Beaver County|South Heights borough|1151|0|5|Evans|Rana|2989|Western Sahara|F|Daughter|||11|6033 +3000|PA|Beaver County|South Heights borough|1151|0|6|Evans|Lynn|2997|South Carolina|M|Son|||3|6034 + +3000|OH|Marion County|Caledonia village|1152|0|1|Kujala|Dominic Tom|2939|Alabama|M|Head|||61|6035 +3000|OH|Marion County|Caledonia village|1152|0|2|Kujala|Marquitta|2956|Vermont|F|Spouse|||44|6036 +3000|OH|Marion County|Caledonia village|1152|0|3|Kujala|Kelley|2978|Portugal|M|Son|||22|6037 +3000|OH|Marion County|Caledonia village|1152|0|4|Kujala|Marisha|2986|New York|F|Daughter|||14|6038 +3000|OH|Marion County|Caledonia village|1152|0|5|Kujala|Asia|2988|Maryland|F|Daughter|||12|6039 +3000|OH|Marion County|Caledonia village|1152|0|6|Kujala|Ward|2994|Texas|M|Son|||6|6040 +3000|OH|Marion County|Caledonia village|1152|0|7|Kujala|Donnette|2996|Minnesota|F|Daughter|||4|6041 + +3000|LA|Lafayette Parish|Ossun CDP|1153|0|1|Mcclennon|Anton Theo|2977|Missouri|M|Head|||23|6042 +3000|LA|Lafayette Parish|Ossun CDP|1153|0|2|Mcclennon|Antonio Tamekia|2978|Massachusetts|F|Spouse|||22|6043 +3000|LA|Lafayette Parish|Ossun CDP|1153|0|3|Mcclennon|Fannie|2998|Albania|F|Daughter|||2|6044 +3000|LA|Lafayette Parish|Ossun CDP|1153|0|4|Mcclennon|Karlyn|3000|Connecticut|F|Daughter|||0|6045 + +3000|MI|Livingston County|Howell township|1154|0|1|Steinau|Vincenzo Oscar|2953|North Dakota|M|Head|||47|6046 +3000|MI|Livingston County|Howell township|1154|0|2|Steinau|Meri Rhoda|2975|Arizona|F|Spouse|||25|6047 +3000|MI|Livingston County|Howell township|1154|0|3|Steinau|Ashli|2997|Arkansas|F|Daughter|||3|6048 + +3000|OR|Jefferson County|Metolius city|1155|0|1|Rozier|Orval Mel|2948|Wyoming|M|Head|||52|6049 +3000|OR|Jefferson County|Metolius city|1155|0|2|Rozier|Ann|2970|South Dakota|F|Daughter|||30|6050 +3000|OR|Jefferson County|Metolius city|1155|0|3|Rozier|Genna Alvera|2976|West Virginia|F|Daughter|||24|6051 +3000|OR|Jefferson County|Metolius city|1155|0|4|Rozier|Jestine|2978|Nauru|F|Daughter|||22|6052 +3000|OR|Jefferson County|Metolius city|1155|0|5|Rozier|Tina|2990|Sierra Leone|F|Daughter|||10|6053 +3000|OR|Jefferson County|Metolius city|1155|0|6|Rozier|Patsy|2994|Connecticut|F|Daughter|||6|6054 +3000|OR|Jefferson County|Metolius city|1155|0|7|Rozier|Heidy Angelia|2998|Texas|F|Daughter|||2|6055 + +3000|AL|Conecuh County|Repton town|1156|0|1|Yamanoha|Robt Arnoldo|2941|Papua New Guinea|M|Head|||59|6056 +3000|AL|Conecuh County|Repton town|1156|0|2|Yamanoha|Emelda|2952|Wisconsin|F|Spouse|||48|6057 +3000|AL|Conecuh County|Repton town|1156|0|3|Yamanoha|Gilberto|2978|New York|M|Son|||22|6058 +3000|AL|Conecuh County|Repton town|1156|0|4|Yamanoha|Alexandria|2982|Macau|F|Daughter|||18|6059 +3000|AL|Conecuh County|Repton town|1156|0|5|Yamanoha|Derrick|2986|Connecticut|M|Son|||14|6060 +3000|AL|Conecuh County|Repton town|1156|0|6|Yamanoha|Rickey|2990|Israel|M|Son|||10|6061 +3000|AL|Conecuh County|Repton town|1156|0|7|Yamanoha|Aurore|2998|Arizona|F|Daughter|||2|6062 +3000|AL|Conecuh County|Repton town|1156|0|8|Yamanoha|Brant Kristopher|3000|Washington|M|Son|||0|6063 + +3000|SC|Anderson County|Pelzer town|1157|0|1|Jones|Rich|2970|Maine|M|Head|||30|6064 +3000|SC|Anderson County|Pelzer town|1157|0|2|Jones|Porsha Sheridan|2973|North Dakota|F|Spouse|||27|6065 +3000|SC|Anderson County|Pelzer town|1157|0|3|Jones|Faustino|2993|New Hampshire|M|Son|||7|6066 +3000|SC|Anderson County|Pelzer town|1157|0|4|Jones|Georgine Juliet|2999|Vermont|F|Daughter|||1|6067 + +3000|NY|Dutchess County|Dover Plains CDP|1158|0|1|Camilleri|Shayne Fidel|2962|New York|M|Head|||38|6068 +3000|NY|Dutchess County|Dover Plains CDP|1158|0|2|Camilleri|Alisa|2968|Hawaii|F|Spouse|||32|6069 +3000|NY|Dutchess County|Dover Plains CDP|1158|0|3|Camilleri|Jamal|2990|Wyoming|M|Son|||10|6070 +3000|NY|Dutchess County|Dover Plains CDP|1158|0|4|Camilleri|Hugh|2992|Liechtenstein|M|Son|||8|6071 +3000|NY|Dutchess County|Dover Plains CDP|1158|0|5|Camilleri|Russ|2996|Indiana|M|Son|||4|6072 + +3000|PA|Clearfield County|Lumber City borough|1159|0|1|Gladwell|Samual Jessie|2957|Utah|M|Head|||43|6073 +3000|PA|Clearfield County|Lumber City borough|1159|0|2|Gladwell|Clora|2989|North Carolina|F|Daughter|||11|6074 +3000|PA|Clearfield County|Lumber City borough|1159|0|3|Gladwell|Allen|2991|Northern Mariana Islands|M|Son|||9|6075 +3000|PA|Clearfield County|Lumber City borough|1159|0|4|Gladwell|Cesar|2993|Hawaii|M|Son|||7|6076 +3000|PA|Clearfield County|Lumber City borough|1159|0|5|Gladwell|Jamel|2995|Alaska|M|Son|||5|6077 + +3000|TX|Medina County|LaCoste city|1160|0|1|Sussex|Jules Gaylord|2983|Pennsylvania|M|Head|||17|6078 +3000|TX|Medina County|LaCoste city|1160|0|2|Sussex|Tashia|2979|New Hampshire|F|Spouse|||21|6079 + +3000|WY|Laramie County|Burns town|1161|0|1|Louria|Elvis Jeremy|2965|Antarctica|M|Head|||35|6080 +3000|WY|Laramie County|Burns town|1161|0|2|Louria|Cody|2973|Jordan|F|Spouse|||27|6081 +3000|WY|Laramie County|Burns town|1161|0|3|Louria|Hilario|2993|Illinois|M|Son|||7|6082 +3000|WY|Laramie County|Burns town|1161|0|4|Louria|Jeannie|2999|Oregon|F|Daughter|||1|6083 + +3000|OK|Cherokee County|Welling CDP|1162|0|1|Bevins|Matt Clement|2962|Thailand|M|Head|||38|6084 +3000|OK|Cherokee County|Welling CDP|1162|0|2|Bevins|Janice|2962|Bulgaria|F|Spouse|||38|6085 +3000|OK|Cherokee County|Welling CDP|1162|0|3|Bevins|Wyatt|2984|North Dakota|M|Son|||16|6086 +3000|OK|Cherokee County|Welling CDP|1162|0|4|Bevins|Maragaret|2986|Vermont|F|Daughter|||14|6087 +3000|OK|Cherokee County|Welling CDP|1162|0|5|Bevins|Walker Thanh|2990|Ohio|M|Son|||10|6088 +3000|OK|Cherokee County|Welling CDP|1162|0|6|Bevins|Michel Dario|3000|Italy|M|Son|||0|6089 + +3000|GA|Mitchell County|Baconton city|1163|0|1|Holmes|Romeo Elliot|2946|Montana|M|Head|||54|6090 +3000|GA|Mitchell County|Baconton city|1163|0|2|Holmes|Michelina|2970|Hawaii|F|Spouse|||30|6091 +3000|GA|Mitchell County|Baconton city|1163|0|3|Holmes|Beula|2990|Kansas|F|Daughter|||10|6092 +3000|GA|Mitchell County|Baconton city|1163|0|4|Holmes|Bryce|2992|Nebraska|M|Son|||8|6093 + +3000|AK|Northwest Arctic Borough|Kivalina city|1164|0|1|Ross|Vincent Johnie|2952|Greece|M|Head|||48|6094 +3000|AK|Northwest Arctic Borough|Kivalina city|1164|0|2|Ross|Buena Rosann|2977|Illinois|F|Daughter|||23|6095 +3000|AK|Northwest Arctic Borough|Kivalina city|1164|0|3|Ross|Kirby Horacio|2979|Alabama|M|Son|||21|6096 +3000|AK|Northwest Arctic Borough|Kivalina city|1164|0|4|Ross|Jeffry|2987|Iowa|M|Son|||13|6097 +3000|AK|Northwest Arctic Borough|Kivalina city|1164|0|5|Ross|Luann Juana|2989|Alaska|F|Daughter|||11|6098 +3000|AK|Northwest Arctic Borough|Kivalina city|1164|0|6|Ross|Willie Grant|2993|British Indian Ocean Territory|M|Son|||7|6099 + +3000|GA|Coweta County|Moreland town|1165|0|1|Cottrell|Jackie Darius|2955|Anguilla|M|Head|||45|6100 +3000|GA|Coweta County|Moreland town|1165|0|2|Cottrell|Meg|2955|South Carolina|F|Spouse|||45|6101 +3000|GA|Coweta County|Moreland town|1165|0|3|Cottrell|Anette|2985|Delaware|F|Daughter|||15|6102 +3000|GA|Coweta County|Moreland town|1165|0|4|Cottrell|Rick|2987|Reunion|M|Son|||13|6103 +3000|GA|Coweta County|Moreland town|1165|0|5|Cottrell|Laila Latina|2989|Wisconsin|F|Daughter|||11|6104 +3000|GA|Coweta County|Moreland town|1165|0|6|Cottrell|Jed|2995|Oman|M|Son|||5|6105 +3000|GA|Coweta County|Moreland town|1165|0|7|Cottrell|Peggie Faviola|2997|California|F|Daughter|||3|6106 + +3000|NM|Hidalgo County|Virden village|1166|0|1|Juarez|Takisha|2970|Nevada|F|Head|||30|6107 +3000|NM|Hidalgo County|Virden village|1166|0|2|Juarez|Osvaldo|2990|Indiana|M|Son|||10|6108 +3000|NM|Hidalgo County|Virden village|1166|0|3|Juarez|Rosendo|3000|Wisconsin|M|Son|||0|6109 + +3000|NJ|Morris County|Kinnelon borough|1167|0|1|Kallberg|Thurman Abraham|2958|Massachusetts|M|Head|||42|6110 +3000|NJ|Morris County|Kinnelon borough|1167|0|2|Kallberg|Xochitl|2954|Wyoming|F|Spouse|||46|6111 +3000|NJ|Morris County|Kinnelon borough|1167|0|3|Kallberg|Emilie|2978|French Southern Territories|F|Daughter|||22|6112 +3000|NJ|Morris County|Kinnelon borough|1167|0|4|Kallberg|Jazmin|2988|South Dakota|F|Daughter|||12|6113 +3000|NJ|Morris County|Kinnelon borough|1167|0|5|Kallberg|Nancie|2994|Wisconsin|F|Daughter|||6|6114 +3000|NJ|Morris County|Kinnelon borough|1167|0|6|Kallberg|Marcelino|2998|Nebraska|M|Son|||2|6115 +3000|NJ|Morris County|Kinnelon borough|1167|0|7|Kallberg|Gilbert Maria|3000|North Dakota|M|Son|||0|6116 + +3000|GA|Walker County|Chickamauga city|1168|0|1|Fishel|Willian Wilmer|2977|Arizona|M|Head|||23|6117 +3000|GA|Walker County|Chickamauga city|1168|0|2|Fishel|Gerda|2977|Oklahoma|F|Spouse|||23|6118 +3000|GA|Walker County|Chickamauga city|1168|0|3|Fishel|Kamilah|2999|Cote D'ivoire|F|Daughter|||1|6119 + +3000|NY|Franklin County|Duane town|1169|0|1|Felch|Lane Derrick|2977|Connecticut|M|Head|||23|6120 +3000|NY|Franklin County|Duane town|1169|0|2|Felch|Janita|2998|Maine|F|Daughter|||2|6121 + +3000|HI|Maui County|Hana CDP|1170|0|1|Mcmillon|Adrian Jarrod|2960|Rhode Island|M|Head|||40|6122 +3000|HI|Maui County|Hana CDP|1170|0|2|Mcmillon|Margarita Doris|2969|Colorado|F|Spouse|||31|6123 +3000|HI|Maui County|Hana CDP|1170|0|3|Mcmillon|Keturah|2991|Vermont|F|Daughter|||9|6124 + +3000|TX|Zavala County|La Pryor CDP|1171|0|1|Malling|Sung|2953|Wyoming|M|Head|||47|6125 +3000|TX|Zavala County|La Pryor CDP|1171|0|2|Malling|Gabrielle|2974|Nevada|F|Spouse|||26|6126 +3000|TX|Zavala County|La Pryor CDP|1171|0|3|Malling|Chester|3000|Kenya|M|Son|||0|6127 + +3000|OK|Tulsa County, Wagoner County|Bixby city|1172|0|1|Eckols|Alonzo Andrea|2976|North Carolina|M|Head|||24|6128 +3000|OK|Tulsa County, Wagoner County|Bixby city|1172|0|2|Eckols|Karleen|2977|North Carolina|F|Spouse|||23|6129 +3000|OK|Tulsa County, Wagoner County|Bixby city|1172|0|3|Eckols|Yer|2997|Louisiana|F|Daughter|||3|6130 + +3000|MI|Barry County|Hastings city|1173|0|1|Dinapoli|Jeromy Freddie|2949|New York|M|Head|||51|6131 +3000|MI|Barry County|Hastings city|1173|0|2|Dinapoli|Audrie|2967|New Mexico|F|Spouse|||33|6132 +3000|MI|Barry County|Hastings city|1173|0|3|Dinapoli|Pat Ray|2987|Arizona|M|Son|||13|6133 +3000|MI|Barry County|Hastings city|1173|0|4|Dinapoli|Xochitl|2989|Kentucky|F|Daughter|||11|6134 +3000|MI|Barry County|Hastings city|1173|0|5|Dinapoli|Son Jerrod|2995|Indiana|M|Son|||5|6135 + +3000|OH|Greene County, Montgomery County|Kettering city|1174|0|1|Johnson|Stevie Cornell|2963|North Carolina|M|Head|||37|6136 +3000|OH|Greene County, Montgomery County|Kettering city|1174|0|2|Johnson|Rhoda|2986|Florida|F|Daughter|||14|6137 +3000|OH|Greene County, Montgomery County|Kettering city|1174|0|3|Johnson|Nick|2988|Pennsylvania|M|Son|||12|6138 +3000|OH|Greene County, Montgomery County|Kettering city|1174|0|4|Johnson|Rodney|2990|Oklahoma|M|Son|||10|6139 +3000|OH|Greene County, Montgomery County|Kettering city|1174|0|5|Johnson|Dianne Shenna|2992|Massachusetts|F|Daughter|||8|6140 +3000|OH|Greene County, Montgomery County|Kettering city|1174|0|6|Johnson|Belkis|2998|Illinois|F|Daughter|||2|6141 + +3000|MN|Sibley County|Green Isle city|1175|0|1|Strei|Stanley Carlton|2958|Haiti|M|Head|||42|6142 +3000|MN|Sibley County|Green Isle city|1175|0|2|Strei|Yan|2959|North Carolina|F|Spouse|||41|6143 +3000|MN|Sibley County|Green Isle city|1175|0|3|Strei|Pamella|2979|Florida|F|Daughter|||21|6144 +3000|MN|Sibley County|Green Isle city|1175|0|4|Strei|Theda Tessa|2985|Arkansas|F|Daughter|||15|6145 +3000|MN|Sibley County|Green Isle city|1175|0|5|Strei|Teddy|2993|Alabama|M|Son|||7|6146 +3000|MN|Sibley County|Green Isle city|1175|0|6|Strei|Edelmira|2995|New York|F|Daughter|||5|6147 + +3000|NY|Kings County|Brooklyn borough|1176|0|1|Kohl|Rashad|2941|Wyoming|M|Head|||59|6148 +3000|NY|Kings County|Brooklyn borough|1176|0|2|Kohl|Margareta|2946|South Africa|F|Spouse|||54|6149 +3000|NY|Kings County|Brooklyn borough|1176|0|3|Kohl|Malcom|2966|Missouri|M|Son|||34|6150 +3000|NY|Kings County|Brooklyn borough|1176|0|4|Kohl|Gene|2970|Maryland|M|Son|||30|6151 +3000|NY|Kings County|Brooklyn borough|1176|0|5|Kohl|Marian Chantelle|2974|Chile|F|Daughter|||26|6152 +3000|NY|Kings County|Brooklyn borough|1176|0|6|Kohl|Shantae|2978|Mauritania|F|Daughter|||22|6153 +3000|NY|Kings County|Brooklyn borough|1176|0|7|Kohl|Caryn Velvet|2982|Virgin Islands, U.s.|F|Daughter|||18|6154 +3000|NY|Kings County|Brooklyn borough|1176|0|8|Kohl|Marcelo Gino|2988|New Hampshire|M|Son|||12|6155 + +3000|PA|Wayne County|Waymart borough|1177|0|1|Ochocki|Garrett|2972|West Virginia|M|Head|||28|6156 +3000|PA|Wayne County|Waymart borough|1177|0|2|Ochocki|Sau|2972|Anguilla|F|Spouse|||28|6157 +3000|PA|Wayne County|Waymart borough|1177|0|3|Ochocki|Olimpia|2992|South Dakota|F|Daughter|||8|6158 +3000|PA|Wayne County|Waymart borough|1177|0|4|Ochocki|Teddy|2996|Connecticut|M|Son|||4|6159 +3000|PA|Wayne County|Waymart borough|1177|0|5|Ochocki|Marion|3000|Canada|F|Daughter|||0|6160 + +3000|VA|Manassas Park city|Manassas Park city|1178|0|1|Arciba|Joseph|2959|Nebraska|F|Head|||41|6161 +3000|VA|Manassas Park city|Manassas Park city|1178|0|2|Arciba|Hermelinda|2987|Congo|F|Daughter|||13|6162 +3000|VA|Manassas Park city|Manassas Park city|1178|0|3|Arciba|Burton|2991|North Dakota|M|Son|||9|6163 +3000|VA|Manassas Park city|Manassas Park city|1178|0|4|Arciba|Cliff|2993|Arkansas|M|Son|||7|6164 +3000|VA|Manassas Park city|Manassas Park city|1178|0|5|Arciba|Lincoln|2995|Alabama|M|Son|||5|6165 +3000|VA|Manassas Park city|Manassas Park city|1178|0|6|Arciba|Davis|2999|Idaho|M|Son|||1|6166 + +3000|PA|Cambria County|Reade township|1179|0|1|Pierce|Aurelio Ryan|2970|Philippines|M|Head|||30|6167 +3000|PA|Cambria County|Reade township|1179|0|2|Pierce|Jeanine|2975|Iowa|F|Spouse|||25|6168 +3000|PA|Cambria County|Reade township|1179|0|3|Pierce|Leonida|2995|Nevada|F|Daughter|||5|6169 +3000|PA|Cambria County|Reade township|1179|0|4|Pierce|Lexie|2997|Maryland|F|Daughter|||3|6170 + +3000|GA|Colquitt County|Ellenton town|1180|0|1|Sprouse|Brant|2968|West Virginia|M|Head|||32|6171 +3000|GA|Colquitt County|Ellenton town|1180|0|2|Sprouse|Victorina|2983|Maine|F|Spouse|||17|6172 + +3000|IA|Bremer County, Fayette County|Sumner city|1181|0|1|Erekson|Zackary Elden|2939|Uruguay|M|Head|||61|6173 +3000|IA|Bremer County, Fayette County|Sumner city|1181|0|2|Erekson|Idalia|2947|Pennsylvania|F|Spouse|||53|6174 +3000|IA|Bremer County, Fayette County|Sumner city|1181|0|3|Erekson|Xavier|2967|Arizona|M|Son|||33|6175 +3000|IA|Bremer County, Fayette County|Sumner city|1181|0|4|Erekson|Werner Joe|2975|Kansas|M|Son|||25|6176 +3000|IA|Bremer County, Fayette County|Sumner city|1181|0|5|Erekson|Meta|2987|Virginia|F|Daughter|||13|6177 +3000|IA|Bremer County, Fayette County|Sumner city|1181|0|6|Erekson|Yuk|2991|Wisconsin|F|Daughter|||9|6178 +3000|IA|Bremer County, Fayette County|Sumner city|1181|0|7|Erekson|Belinda|2993|Togo|F|Daughter|||7|6179 +3000|IA|Bremer County, Fayette County|Sumner city|1181|0|8|Erekson|Leonia|2995|Liberia|F|Daughter|||5|6180 +3000|IA|Bremer County, Fayette County|Sumner city|1181|0|9|Erekson|Olinda|2999|Bahamas|F|Daughter|||1|6181 + +3000|NY|Schuyler County|Reading town|1182|0|1|Treister|Dylan Arnoldo|2940|Gibraltar|M|Head|||60|6182 +3000|NY|Schuyler County|Reading town|1182|0|2|Treister|Nathalie|2945|Pennsylvania|F|Spouse|||55|6183 +3000|NY|Schuyler County|Reading town|1182|0|3|Treister|Jennefer|2985|North Carolina|F|Daughter|||15|6184 +3000|NY|Schuyler County|Reading town|1182|0|4|Treister|Fatima|2987|Bermuda|F|Daughter|||13|6185 +3000|NY|Schuyler County|Reading town|1182|0|5|Treister|Elise Candance|2989|Alabama|F|Daughter|||11|6186 +3000|NY|Schuyler County|Reading town|1182|0|6|Treister|Juli Clair|2993|Texas|F|Daughter|||7|6187 +3000|NY|Schuyler County|Reading town|1182|0|7|Treister|Dwayne|2995|Rhode Island|M|Son|||5|6188 +3000|NY|Schuyler County|Reading town|1182|0|8|Treister|Carri|2997|Maryland|F|Daughter|||3|6189 + +3000|PA|Tioga County|Wellsboro borough|1183|0|1|Gschwend|Shelby Burt|2950|Angola|M|Head|||50|6190 +3000|PA|Tioga County|Wellsboro borough|1183|0|2|Gschwend|Velva|2957|Kansas|F|Spouse|||43|6191 +3000|PA|Tioga County|Wellsboro borough|1183|0|3|Gschwend|Jona|2985|Louisiana|F|Daughter|||15|6192 +3000|PA|Tioga County|Wellsboro borough|1183|0|4|Gschwend|Ross|2987|Western Sahara|M|Son|||13|6193 +3000|PA|Tioga County|Wellsboro borough|1183|0|5|Gschwend|Tinisha|2989|Georgia|F|Daughter|||11|6194 +3000|PA|Tioga County|Wellsboro borough|1183|0|6|Gschwend|Marilu Tawana|2991|Morocco|F|Daughter|||9|6195 +3000|PA|Tioga County|Wellsboro borough|1183|0|7|Gschwend|Toby|2997|Kansas|M|Son|||3|6196 +3000|PA|Tioga County|Wellsboro borough|1183|0|8|Gschwend|Dalton Brendan|2999|Maine|M|Son|||1|6197 + +3000|IL|Schuyler County|Camden village|1184|0|1|Maner|Reed Elliott|2961|Connecticut|M|Head|||39|6198 +3000|IL|Schuyler County|Camden village|1184|0|2|Maner|Salome Tayna|2974|Maine|F|Spouse|||26|6199 +3000|IL|Schuyler County|Camden village|1184|0|3|Maner|Merlene|2996|Connecticut|F|Daughter|||4|6200 +3000|IL|Schuyler County|Camden village|1184|0|4|Maner|Sudie|2998|Arkansas|F|Daughter|||2|6201 + +3000|IN|Shelby County|Morristown town|1185|0|1|Lobue|Corey Archie|2945|Connecticut|M|Head|||55|6202 +3000|IN|Shelby County|Morristown town|1185|0|2|Lobue|Adrian|2943|Michigan|F|Spouse|||57|6203 +3000|IN|Shelby County|Morristown town|1185|0|3|Lobue|Shelley Patience|2967|California|F|Daughter|||33|6204 +3000|IN|Shelby County|Morristown town|1185|0|4|Lobue|Frank|2973|Montana|M|Son|||27|6205 +3000|IN|Shelby County|Morristown town|1185|0|5|Lobue|Jamey Kimberlie|2975|Louisiana|F|Daughter|||25|6206 +3000|IN|Shelby County|Morristown town|1185|0|6|Lobue|Lyle|2983|Cameroon|M|Son|||17|6207 +3000|IN|Shelby County|Morristown town|1185|0|7|Lobue|Yoshie|2995|South Carolina|F|Daughter|||5|6208 +3000|IN|Shelby County|Morristown town|1185|0|8|Lobue|Kristel|2999|Nevada|F|Daughter|||1|6209 + +3000|PA|York County|Manheim township|1186|0|1|Shults|Wilfred Marion|2940|Florida|M|Head|||60|6210 +3000|PA|York County|Manheim township|1186|0|2|Shults|Willette|2952|Michigan|F|Spouse|||48|6211 +3000|PA|York County|Manheim township|1186|0|3|Shults|Lionel|2974|Nevada|M|Son|||26|6212 +3000|PA|York County|Manheim township|1186|0|4|Shults|Gabriel|2976|Japan|M|Son|||24|6213 +3000|PA|York County|Manheim township|1186|0|5|Shults|Zenia|2980|California|F|Daughter|||20|6214 +3000|PA|York County|Manheim township|1186|0|6|Shults|Phuong|2986|Guinea-bissau|F|Daughter|||14|6215 +3000|PA|York County|Manheim township|1186|0|7|Shults|Alpha|2992|Wisconsin|F|Daughter|||8|6216 +3000|PA|York County|Manheim township|1186|0|8|Shults|Andrea|2994|Arizona|M|Son|||6|6217 + +3000|NY|Nassau County|Manhasset CDP|1187|0|1|Mcintyre|Thad Frederic|2943|Illinois|M|Head|||57|6218 +3000|NY|Nassau County|Manhasset CDP|1187|0|2|Mcintyre|Quinn|2951|Idaho|F|Spouse|||49|6219 +3000|NY|Nassau County|Manhasset CDP|1187|0|3|Mcintyre|Rhona|2971|Illinois|F|Daughter|||29|6220 +3000|NY|Nassau County|Manhasset CDP|1187|0|4|Mcintyre|Darin|2977|Tennessee|M|Son|||23|6221 +3000|NY|Nassau County|Manhasset CDP|1187|0|5|Mcintyre|Isidro|2987|Kansas|M|Son|||13|6222 +3000|NY|Nassau County|Manhasset CDP|1187|0|6|Mcintyre|Cecil|2989|Vanuatu|F|Daughter|||11|6223 +3000|NY|Nassau County|Manhasset CDP|1187|0|7|Mcintyre|Dawn|2993|Croatia|F|Daughter|||7|6224 +3000|NY|Nassau County|Manhasset CDP|1187|0|8|Mcintyre|Rosa|2995|New Mexico|F|Daughter|||5|6225 + +3000|NH|Carroll County|Albany town|1188|0|1|Allen|Alonso Morton|2965|Luxembourg|M|Head|||35|6226 +3000|NH|Carroll County|Albany town|1188|0|2|Allen|Yoshiko|2963|Idaho|F|Spouse|||37|6227 +3000|NH|Carroll County|Albany town|1188|0|3|Allen|Edward|2985|Tunisia|F|Daughter|||15|6228 +3000|NH|Carroll County|Albany town|1188|0|4|Allen|Mirian|2987|West Virginia|F|Daughter|||13|6229 +3000|NH|Carroll County|Albany town|1188|0|5|Allen|Gabriel|2991|Ohio|M|Son|||9|6230 + +3000|PA|Lackawanna County|Vandling borough|1189|0|1|Tolles|Tobias|2961|Maryland|M|Head|||39|6231 +3000|PA|Lackawanna County|Vandling borough|1189|0|2|Tolles|Vania|2993|Arizona|F|Daughter|||7|6232 +3000|PA|Lackawanna County|Vandling borough|1189|0|3|Tolles|Harriette|2995|Oregon|F|Daughter|||5|6233 +3000|PA|Lackawanna County|Vandling borough|1189|0|4|Tolles|Leslie|2997|Mississippi|M|Son|||3|6234 + +3000|NY|Albany County|Green Island village|1190|0|1|Koc|Bo Randal|2978|Nevada|M|Head|||22|6235 +3000|NY|Albany County|Green Island village|1190|0|2|Koc|Zenia|2977|Virginia|F|Spouse|||23|6236 +3000|NY|Albany County|Green Island village|1190|0|3|Koc|Sirena|2997|Belarus|F|Daughter|||3|6237 + +3000|ND|Cass County|North River city|1191|0|1|Trad|Jimmy Drew|2957|Wisconsin|M|Head|||43|6238 +3000|ND|Cass County|North River city|1191|0|2|Trad|Hana|2976|Vermont|F|Spouse|||24|6239 +3000|ND|Cass County|North River city|1191|0|3|Trad|Timmy|2996|Idaho|M|Son|||4|6240 +3000|ND|Cass County|North River city|1191|0|4|Trad|Shiloh|2998|Washington|F|Daughter|||2|6241 + +3000|NJ|Camden County|Voorhees township|1192|0|1|Cupples|Wilbert Timothy|2944|Congo, The Democratic Republic Of The|M|Head|||56|6242 +3000|NJ|Camden County|Voorhees township|1192|0|2|Cupples|Berta|2964|Rhode Island|F|Spouse|||36|6243 +3000|NJ|Camden County|Voorhees township|1192|0|3|Cupples|Nohemi|2988|Japan|F|Daughter|||12|6244 +3000|NJ|Camden County|Voorhees township|1192|0|4|Cupples|Noah|2990|Colorado|M|Son|||10|6245 +3000|NJ|Camden County|Voorhees township|1192|0|5|Cupples|Houston|2994|Nevada|M|Son|||6|6246 +3000|NJ|Camden County|Voorhees township|1192|0|6|Cupples|Ellis|2996|New Mexico|M|Son|||4|6247 +3000|NJ|Camden County|Voorhees township|1192|0|7|Cupples|Karolyn|2998|New York|F|Daughter|||2|6248 + +3000|ME|Hancock County|Sullivan town|1193|0|1|Bell|Ronnie Aldo|2947|Alaska|M|Head|||53|6249 +3000|ME|Hancock County|Sullivan town|1193|0|2|Bell|Fairy|2990|Montana|F|Daughter|||10|6250 +3000|ME|Hancock County|Sullivan town|1193|0|3|Bell|Monty|2996|Rhode Island|M|Son|||4|6251 + +3000|WI|Trempealeau County|Arcadia city|1194|0|1|Mccuin|Edmund Malcom|2937|New Hampshire|M|Head|||63|6252 +3000|WI|Trempealeau County|Arcadia city|1194|0|2|Mccuin|Granville|2990|Massachusetts|M|Son|||10|6253 +3000|WI|Trempealeau County|Arcadia city|1194|0|3|Mccuin|Faustina|2994|West Virginia|F|Daughter|||6|6254 +3000|WI|Trempealeau County|Arcadia city|1194|0|4|Mccuin|Winford|2998|California|M|Son|||2|6255 +3000|WI|Trempealeau County|Arcadia city|1194|0|5|Mccuin|Wilson Alberto|3000|South Carolina|M|Son|||0|6256 + +3000|OK|Nowata County|Delaware town|1195|0|1|Robinson|Lavenia|2967|Tennessee|F|Head|||33|6257 +3000|OK|Nowata County|Delaware town|1195|0|2|Robinson|Rufina|2987|Montana|F|Daughter|||13|6258 +3000|OK|Nowata County|Delaware town|1195|0|3|Robinson|Lyndon|2989|Indiana|M|Son|||11|6259 +3000|OK|Nowata County|Delaware town|1195|0|4|Robinson|Hien|2995|Maldives|F|Daughter|||5|6260 +3000|OK|Nowata County|Delaware town|1195|0|5|Robinson|Berry Rocky|2997|Micronesia, Federated States Of|M|Son|||3|6261 + +3000|NY|Erie County|Wales town|1196|0|1|Faycurry|Darwin Davis|2938|Maine|M|Head|||62|6262 +3000|NY|Erie County|Wales town|1196|0|2|Faycurry|Tegan|2949|Virginia|F|Spouse|||51|6263 +3000|NY|Erie County|Wales town|1196|0|3|Faycurry|Loan|2977|Nevada|F|Daughter|||23|6264 +3000|NY|Erie County|Wales town|1196|0|4|Faycurry|Jene|2985|Michigan|F|Daughter|||15|6265 +3000|NY|Erie County|Wales town|1196|0|5|Faycurry|Sharla|2987|Cuba|F|Daughter|||13|6266 +3000|NY|Erie County|Wales town|1196|0|6|Faycurry|Felton|2989|Lithuania|M|Son|||11|6267 +3000|NY|Erie County|Wales town|1196|0|7|Faycurry|Madie|2993|Nevada|F|Daughter|||7|6268 +3000|NY|Erie County|Wales town|1196|0|8|Faycurry|Felix Johnathan|2995|Argentina|M|Son|||5|6269 + +3000|PA|Berks County|Shoemakersville borough|1197|0|1|Lebitski|Rashad|2950|Germany|M|Head|||50|6270 +3000|PA|Berks County|Shoemakersville borough|1197|0|2|Lebitski|Regine|2946|Oklahoma|F|Spouse|||54|6271 +3000|PA|Berks County|Shoemakersville borough|1197|0|3|Lebitski|Eldridge|2972|Washington|M|Son|||28|6272 +3000|PA|Berks County|Shoemakersville borough|1197|0|4|Lebitski|Dyan|2978|Italy|F|Daughter|||22|6273 +3000|PA|Berks County|Shoemakersville borough|1197|0|5|Lebitski|Kyle Willis|2982|New Zealand|M|Son|||18|6274 +3000|PA|Berks County|Shoemakersville borough|1197|0|6|Lebitski|Devon|2986|Congo|M|Son|||14|6275 +3000|PA|Berks County|Shoemakersville borough|1197|0|7|Lebitski|Carol|2988|Iowa|M|Son|||12|6276 +3000|PA|Berks County|Shoemakersville borough|1197|0|8|Lebitski|Anamaria|2994|New Hampshire|F|Daughter|||6|6277 +3000|PA|Berks County|Shoemakersville borough|1197|0|9|Lebitski|Desmond|2996|Indiana|M|Son|||4|6278 +3000|PA|Berks County|Shoemakersville borough|1197|0|10|Lebitski|Ayanna|3000|Mississippi|F|Daughter|||0|6279 + +3000|PA|Beaver County|Rochester township|1198|0|1|Finkel|Alphonso Jermaine|2942|Washington|M|Head|||58|6280 +3000|PA|Beaver County|Rochester township|1198|0|2|Finkel|Lino|2976|Kansas|M|Son|||24|6281 +3000|PA|Beaver County|Rochester township|1198|0|3|Finkel|Martin|2986|South Dakota|M|Son|||14|6282 +3000|PA|Beaver County|Rochester township|1198|0|4|Finkel|Dahlia Leda|2988|Washington|F|Daughter|||12|6283 +3000|PA|Beaver County|Rochester township|1198|0|5|Finkel|Lizeth|2996|Connecticut|F|Daughter|||4|6284 + +3000|OH|Tuscarawas County|Sandyville CDP|1199|0|1|Mccombie|Wally Chet|2960|Arizona|M|Head|||40|6285 +3000|OH|Tuscarawas County|Sandyville CDP|1199|0|2|Mccombie|Sherie|2989|New Hampshire|F|Daughter|||11|6286 +3000|OH|Tuscarawas County|Sandyville CDP|1199|0|3|Mccombie|Chante|2999|Illinois|F|Daughter|||1|6287 + +3000|NH|Grafton County|Wentworth town|1200|0|1|Strumpf|Dion Rudolph|2965|Maryland|M|Head|||35|6288 +3000|NH|Grafton County|Wentworth town|1200|0|2|Strumpf|Aurea|2963|New Jersey|F|Spouse|||37|6289 +3000|NH|Grafton County|Wentworth town|1200|0|3|Strumpf|Ellie|2983|Texas|F|Daughter|||17|6290 +3000|NH|Grafton County|Wentworth town|1200|0|4|Strumpf|Donette|2985|Oklahoma|F|Daughter|||15|6291 +3000|NH|Grafton County|Wentworth town|1200|0|5|Strumpf|Eliana|2989|Illinois|F|Daughter|||11|6292 +3000|NH|Grafton County|Wentworth town|1200|0|6|Strumpf|Nestor|2993|Idaho|M|Son|||7|6293 + +3000|MN|Washington County|May township|1201|0|1|Dolan|Cecil Wilfred|2954|Nevada|M|Head|||46|6294 +3000|MN|Washington County|May township|1201|0|2|Dolan|John|2976|Nebraska|F|Spouse|||24|6295 +3000|MN|Washington County|May township|1201|0|3|Dolan|Shenna|3000|Guadeloupe|F|Daughter|||0|6296 + +3000|MO|St. Louis County|Vinita Terrace village|1202|0|1|Bayer|Leigh|2965|Virginia|F|Head|||35|6297 +3000|MO|St. Louis County|Vinita Terrace village|1202|0|2|Bayer|Jae Rigoberto|2985|Vermont|M|Son|||15|6298 +3000|MO|St. Louis County|Vinita Terrace village|1202|0|3|Bayer|Leisha|2995|Iowa|F|Daughter|||5|6299 +3000|MO|St. Louis County|Vinita Terrace village|1202|0|4|Bayer|Saul|2997|California|M|Son|||3|6300 + +3000|NY|Rockland County|Montebello village|1203|0|1|Hockman|Miles Lucius|2950|Georgia|M|Head|||50|6301 +3000|NY|Rockland County|Montebello village|1203|0|2|Hockman|Maida|2949|Washington|F|Spouse|||51|6302 +3000|NY|Rockland County|Montebello village|1203|0|3|Hockman|Teri|2969|Nicaragua|F|Daughter|||31|6303 +3000|NY|Rockland County|Montebello village|1203|0|4|Hockman|Mathew|2983|Massachusetts|M|Son|||17|6304 +3000|NY|Rockland County|Montebello village|1203|0|5|Hockman|Emery|2987|Virginia|M|Son|||13|6305 +3000|NY|Rockland County|Montebello village|1203|0|6|Hockman|Yukiko|2989|Alabama|F|Daughter|||11|6306 +3000|NY|Rockland County|Montebello village|1203|0|7|Hockman|Alphonso|2991|Hawaii|M|Son|||9|6307 +3000|NY|Rockland County|Montebello village|1203|0|8|Hockman|Tommie|2997|Ohio|M|Son|||3|6308 +3000|NY|Rockland County|Montebello village|1203|0|9|Hockman|Mike|2999|Dominican Republic|M|Son|||1|6309 + +3000|PA|Cambria County|Richland township|1204|0|1|Slone|Mariano Teodoro|2947|Utah|M|Head|||53|6310 +3000|PA|Cambria County|Richland township|1204|0|2|Slone|Tempie|2985|Utah|F|Daughter|||15|6311 +3000|PA|Cambria County|Richland township|1204|0|3|Slone|Grover Woodrow|2987|Nebraska|M|Son|||13|6312 +3000|PA|Cambria County|Richland township|1204|0|4|Slone|Michele Rosette|2993|Vermont|F|Daughter|||7|6313 +3000|PA|Cambria County|Richland township|1204|0|5|Slone|Brian|2997|Albania|M|Son|||3|6314 +3000|PA|Cambria County|Richland township|1204|0|6|Slone|Burton|2999|Jordan|M|Son|||1|6315 + +3000|NY|Rensselaer County|Castleton-on-Hudson village|1205|0|1|Kastner|Linwood Benton|2954|Oregon|M|Head|||46|6316 +3000|NY|Rensselaer County|Castleton-on-Hudson village|1205|0|2|Kastner|Yaeko|2957|South Carolina|F|Spouse|||43|6317 +3000|NY|Rensselaer County|Castleton-on-Hudson village|1205|0|3|Kastner|Annetta|2977|Liberia|F|Daughter|||23|6318 +3000|NY|Rensselaer County|Castleton-on-Hudson village|1205|0|4|Kastner|Lavette|2979|North Carolina|F|Daughter|||21|6319 +3000|NY|Rensselaer County|Castleton-on-Hudson village|1205|0|5|Kastner|Kassie|2991|New Hampshire|F|Daughter|||9|6320 +3000|NY|Rensselaer County|Castleton-on-Hudson village|1205|0|6|Kastner|Darrell|2995|Mauritius|M|Son|||5|6321 +3000|NY|Rensselaer County|Castleton-on-Hudson village|1205|0|7|Kastner|Arlena|2999|Togo|F|Daughter|||1|6322 + +3000|PA|Chester County|Modena borough|1206|0|1|Moury|Melva|2971|Montana|F|Head|||29|6323 +3000|PA|Chester County|Modena borough|1206|0|2|Moury|Suzy|2991|Alaska|F|Daughter|||9|6324 +3000|PA|Chester County|Modena borough|1206|0|3|Moury|Cristal Georgeann|2995|Mauritius|F|Daughter|||5|6325 +3000|PA|Chester County|Modena borough|1206|0|4|Moury|Susanna|2997|Missouri|F|Daughter|||3|6326 +3000|PA|Chester County|Modena borough|1206|0|5|Moury|Elvis|2999|Rhode Island|M|Son|||1|6327 + +3000|WI|Iron County|Montreal city|1207|0|1|Willette|Erick Nathaniel|2937|Missouri|M|Head|||63|6328 +3000|WI|Iron County|Montreal city|1207|0|2|Willette|Elaine|2940|Nebraska|F|Spouse|||60|6329 +3000|WI|Iron County|Montreal city|1207|0|3|Willette|Cortez|2972|Wyoming|M|Son|||28|6330 +3000|WI|Iron County|Montreal city|1207|0|4|Willette|Shavonne|2974|Virginia|F|Daughter|||26|6331 +3000|WI|Iron County|Montreal city|1207|0|5|Willette|Merle|2986|Missouri|M|Son|||14|6332 +3000|WI|Iron County|Montreal city|1207|0|6|Willette|Sharice|2988|Florida|F|Daughter|||12|6333 +3000|WI|Iron County|Montreal city|1207|0|7|Willette|Caroyln|2998|Connecticut|F|Daughter|||2|6334 +3000|WI|Iron County|Montreal city|1207|0|8|Willette|Lonna|3000|Minnesota|F|Daughter|||0|6335 + +3000|WI|Juneau County|Lisbon town|1208|0|1|Riebe|Alton Judson|2967|Austria|M|Head|||33|6336 +3000|WI|Juneau County|Lisbon town|1208|0|2|Riebe|Hallie|2967|West Virginia|F|Spouse|||33|6337 +3000|WI|Juneau County|Lisbon town|1208|0|3|Riebe|Walter|2989|Kentucky|M|Son|||11|6338 +3000|WI|Juneau County|Lisbon town|1208|0|4|Riebe|Rene|2999|Arkansas|F|Daughter|||1|6339 + +3000|WI|Douglas County|Poplar village|1209|0|1|Lee|Tasha|2972|Tonga|F|Head|||28|6340 +3000|WI|Douglas County|Poplar village|1209|0|2|Lee|Daniel|2998|Montana|M|Son|||2|6341 + +3000|ND|Pembina County|Mountain city|1210|0|1|Jasica|Connie Damian|2944|Tennessee|M|Head|||56|6342 +3000|ND|Pembina County|Mountain city|1210|0|2|Jasica|Marcene Delpha|2944|New Jersey|F|Spouse|||56|6343 +3000|ND|Pembina County|Mountain city|1210|0|3|Jasica|Malcolm|2976|Utah|M|Son|||24|6344 +3000|ND|Pembina County|Mountain city|1210|0|4|Jasica|Horace|2986|Alabama|M|Son|||14|6345 +3000|ND|Pembina County|Mountain city|1210|0|5|Jasica|Terrence|2988|South Dakota|M|Son|||12|6346 +3000|ND|Pembina County|Mountain city|1210|0|6|Jasica|Reena Chere|2994|China|F|Daughter|||6|6347 +3000|ND|Pembina County|Mountain city|1210|0|7|Jasica|Damion|2996|Colorado|M|Son|||4|6348 +3000|ND|Pembina County|Mountain city|1210|0|8|Jasica|Madeline|2998|Michigan|F|Daughter|||2|6349 + +3000|OH|Hamilton County|Forest Park city|1211|0|1|Schein|Richard Erasmo|2943|Utah|M|Head|||57|6350 +3000|OH|Hamilton County|Forest Park city|1211|0|2|Schein|Colleen|2947|North Carolina|F|Spouse|||53|6351 +3000|OH|Hamilton County|Forest Park city|1211|0|3|Schein|Phillip|2969|Idaho|M|Son|||31|6352 +3000|OH|Hamilton County|Forest Park city|1211|0|4|Schein|Leia|2971|Idaho|F|Daughter|||29|6353 +3000|OH|Hamilton County|Forest Park city|1211|0|5|Schein|Brynn|2975|New Mexico|F|Daughter|||25|6354 +3000|OH|Hamilton County|Forest Park city|1211|0|6|Schein|Wiley|2981|Hong Kong|M|Son|||19|6355 +3000|OH|Hamilton County|Forest Park city|1211|0|7|Schein|Ardath|2985|Kiribati|F|Daughter|||15|6356 +3000|OH|Hamilton County|Forest Park city|1211|0|8|Schein|Dominique Parker|2991|Hungary|M|Son|||9|6357 +3000|OH|Hamilton County|Forest Park city|1211|0|9|Schein|Robena|2995|Kansas|F|Daughter|||5|6358 +3000|OH|Hamilton County|Forest Park city|1211|0|10|Schein|Novella|2997|New York|F|Daughter|||3|6359 + +3000|MN|Crow Wing County|Jenkins township|1212|0|1|Herron|Lance Darius|2938|Alabama|M|Head|||62|6360 +3000|MN|Crow Wing County|Jenkins township|1212|0|2|Herron|Wilbert Ismael|2972|Washington|M|Son|||28|6361 +3000|MN|Crow Wing County|Jenkins township|1212|0|3|Herron|Lena|2974|South Carolina|F|Daughter|||26|6362 +3000|MN|Crow Wing County|Jenkins township|1212|0|4|Herron|Mariano Clyde|2986|Pennsylvania|M|Son|||14|6363 +3000|MN|Crow Wing County|Jenkins township|1212|0|5|Herron|Jan|2988|China|F|Daughter|||12|6364 +3000|MN|Crow Wing County|Jenkins township|1212|0|6|Herron|Leoma|2990|Wyoming|F|Daughter|||10|6365 +3000|MN|Crow Wing County|Jenkins township|1212|0|7|Herron|Weston Noel|2992|Benin|M|Son|||8|6366 +3000|MN|Crow Wing County|Jenkins township|1212|0|8|Herron|Irena|2996|New Jersey|F|Daughter|||4|6367 + +3000|NE|Webster County|Bladen village|1213|0|1|Ming|Lyman Thad|2941|Louisiana|M|Head|||59|6368 +3000|NE|Webster County|Bladen village|1213|0|2|Ming|Bula|2952|Brunei Darussalam|F|Spouse|||48|6369 +3000|NE|Webster County|Bladen village|1213|0|3|Ming|Arturo Woodrow|2988|Togo|M|Son|||12|6370 +3000|NE|Webster County|Bladen village|1213|0|4|Ming|Janeth|2990|Colorado|F|Daughter|||10|6371 +3000|NE|Webster County|Bladen village|1213|0|5|Ming|Shawana|2994|Tokelau|F|Daughter|||6|6372 +3000|NE|Webster County|Bladen village|1213|0|6|Ming|Maynard Jordan|2998|North Carolina|M|Son|||2|6373 +3000|NE|Webster County|Bladen village|1213|0|7|Ming|Jayme|3000|Michigan|F|Daughter|||0|6374 + +3000|MA|Barnstable County|Seabrook CDP|1214|0|1|Rentz|Stacey Stacey|2963|Michigan|M|Head|||37|6375 +3000|MA|Barnstable County|Seabrook CDP|1214|0|2|Rentz|Kyla|2962|Arizona|F|Spouse|||38|6376 +3000|MA|Barnstable County|Seabrook CDP|1214|0|3|Rentz|Shirly|2986|Maine|F|Daughter|||14|6377 +3000|MA|Barnstable County|Seabrook CDP|1214|0|4|Rentz|Dusty|2988|Papua New Guinea|M|Son|||12|6378 +3000|MA|Barnstable County|Seabrook CDP|1214|0|5|Rentz|Carmel Jerri|2994|Wisconsin|F|Daughter|||6|6379 +3000|MA|Barnstable County|Seabrook CDP|1214|0|6|Rentz|Karine|2998|North Carolina|F|Daughter|||2|6380 + +3000|CT|Middlesex County|Durham town|1215|0|1|Dang|Edwin Mohammad|2944|Wisconsin|M|Head|||56|6381 +3000|CT|Middlesex County|Durham town|1215|0|2|Dang|Felisha|2967|Virginia|F|Spouse|||33|6382 +3000|CT|Middlesex County|Durham town|1215|0|3|Dang|Stephan|2987|Minnesota|M|Son|||13|6383 +3000|CT|Middlesex County|Durham town|1215|0|4|Dang|Carleen|2991|New Jersey|F|Daughter|||9|6384 +3000|CT|Middlesex County|Durham town|1215|0|5|Dang|Brooks|2993|Sierra Leone|M|Son|||7|6385 +3000|CT|Middlesex County|Durham town|1215|0|6|Dang|Cody|2999|Vermont|F|Daughter|||1|6386 + +3000|KS|Saline County|Assaria city|1216|0|1|West|Christoper Garry|2950|Hawaii|M|Head|||50|6387 +3000|KS|Saline County|Assaria city|1216|0|2|West|Martina|2972|North Carolina|F|Spouse|||28|6388 +3000|KS|Saline County|Assaria city|1216|0|3|West|Ross|2996|Turkey|M|Son|||4|6389 +3000|KS|Saline County|Assaria city|1216|0|4|West|Teddy|2998|East Timor|M|Son|||2|6390 +3000|KS|Saline County|Assaria city|1216|0|5|West|Melony|3000|Ohio|F|Daughter|||0|6391 + +3000|MN|Morrison County|Lastrup city|1217|0|1|Hester|Johnnie Barney|2939|South Dakota|M|Head|||61|6392 +3000|MN|Morrison County|Lastrup city|1217|0|2|Hester|Cherish|2939|Alabama|F|Spouse|||61|6393 +3000|MN|Morrison County|Lastrup city|1217|0|3|Hester|Mozella|2963|Qatar|F|Daughter|||37|6394 +3000|MN|Morrison County|Lastrup city|1217|0|4|Hester|Jared|2979|Tennessee|M|Son|||21|6395 +3000|MN|Morrison County|Lastrup city|1217|0|5|Hester|Dale|2985|Kansas|F|Daughter|||15|6396 +3000|MN|Morrison County|Lastrup city|1217|0|6|Hester|Tyrone|2989|Louisiana|M|Son|||11|6397 +3000|MN|Morrison County|Lastrup city|1217|0|7|Hester|Rodrigo|2991|New Mexico|M|Son|||9|6398 +3000|MN|Morrison County|Lastrup city|1217|0|8|Hester|Millard|2995|Alaska|M|Son|||5|6399 +3000|MN|Morrison County|Lastrup city|1217|0|9|Hester|Ester|2997|Alabama|F|Daughter|||3|6400 +3000|MN|Morrison County|Lastrup city|1217|0|10|Hester|Lorenzo Daron|2999|Antarctica|M|Son|||1|6401 + +3000|PA|Lancaster County|Sadsbury township|1218|0|1|Ramirez|Graham Jackson|2960|Kentucky|M|Head|||40|6402 +3000|PA|Lancaster County|Sadsbury township|1218|0|2|Ramirez|Steven|2999|Arkansas|M|Son|||1|6403 + +3000|MN|Meeker County|Ellsworth township|1219|0|1|Doyle|Thad Modesto|2949|Hawaii|M|Head|||51|6404 +3000|MN|Meeker County|Ellsworth township|1219|0|2|Doyle|George|2948|New Jersey|F|Spouse|||52|6405 +3000|MN|Meeker County|Ellsworth township|1219|0|3|Doyle|Williams|2986|Arkansas|M|Son|||14|6406 +3000|MN|Meeker County|Ellsworth township|1219|0|4|Doyle|Sung|2988|Massachusetts|M|Son|||12|6407 +3000|MN|Meeker County|Ellsworth township|1219|0|5|Doyle|Hassan|2990|Bouvet Island|M|Son|||10|6408 +3000|MN|Meeker County|Ellsworth township|1219|0|6|Doyle|Muriel|2996|Portugal|F|Daughter|||4|6409 +3000|MN|Meeker County|Ellsworth township|1219|0|7|Doyle|Roy|2998|New Mexico|F|Daughter|||2|6410 +3000|MN|Meeker County|Ellsworth township|1219|0|8|Doyle|Brock|3000|Oklahoma|M|Son|||0|6411 + +3000|TX|Angelina County|Hudson city|1220|0|1|Ortmeyer|Albert Kelly|2962|Maine|M|Head|||38|6412 +3000|TX|Angelina County|Hudson city|1220|0|2|Ortmeyer|Rosamond|2971|Georgia|F|Spouse|||29|6413 +3000|TX|Angelina County|Hudson city|1220|0|3|Ortmeyer|Dominic|2995|Oklahoma|M|Son|||5|6414 +3000|TX|Angelina County|Hudson city|1220|0|4|Ortmeyer|Gilbert|2997|Vermont|M|Son|||3|6415 + +3000|NJ|Middlesex County|Jamesburg borough|1221|0|1|Salberg|Bret Adrian|2947|Arizona|M|Head|||53|6416 +3000|NJ|Middlesex County|Jamesburg borough|1221|0|2|Salberg|Kina|2953|South Africa|F|Spouse|||47|6417 +3000|NJ|Middlesex County|Jamesburg borough|1221|0|3|Salberg|Quinn|2981|South Carolina|M|Son|||19|6418 +3000|NJ|Middlesex County|Jamesburg borough|1221|0|4|Salberg|Mose|2985|Heard Island And Mcdonald Islands|M|Son|||15|6419 +3000|NJ|Middlesex County|Jamesburg borough|1221|0|5|Salberg|Rosia|2989|Slovakia|F|Daughter|||11|6420 +3000|NJ|Middlesex County|Jamesburg borough|1221|0|6|Salberg|Janna|2991|Wisconsin|F|Daughter|||9|6421 +3000|NJ|Middlesex County|Jamesburg borough|1221|0|7|Salberg|Marco|2993|Colorado|M|Son|||7|6422 +3000|NJ|Middlesex County|Jamesburg borough|1221|0|8|Salberg|Hobert|2995|Florida|M|Son|||5|6423 +3000|NJ|Middlesex County|Jamesburg borough|1221|0|9|Salberg|Eulah|2999|Alabama|F|Daughter|||1|6424 + +3000|PA|Berks County|Wernersville borough|1222|0|1|Beidleman|Sung Barney|2964|Florida|M|Head|||36|6425 +3000|PA|Berks County|Wernersville borough|1222|0|2|Beidleman|Young|2993|Iowa|M|Son|||7|6426 +3000|PA|Berks County|Wernersville borough|1222|0|3|Beidleman|Forest|2995|New Jersey|M|Son|||5|6427 +3000|PA|Berks County|Wernersville borough|1222|0|4|Beidleman|Jenee|2997|Kansas|F|Daughter|||3|6428 +3000|PA|Berks County|Wernersville borough|1222|0|5|Beidleman|Jed Leslie|2999|Czech Republic|M|Son|||1|6429 + +3000|PA|Franklin County|Washington township|1223|0|1|Zavodny|Jefferson Darnell|2943|Virginia|M|Head|||57|6430 +3000|PA|Franklin County|Washington township|1223|0|2|Zavodny|Shella|2946|Delaware|F|Spouse|||54|6431 +3000|PA|Franklin County|Washington township|1223|0|3|Zavodny|Russell Graham|2974|Colorado|M|Son|||26|6432 +3000|PA|Franklin County|Washington township|1223|0|4|Zavodny|Clare|2978|Wyoming|F|Daughter|||22|6433 +3000|PA|Franklin County|Washington township|1223|0|5|Zavodny|Mauro|2986|Alabama|M|Son|||14|6434 +3000|PA|Franklin County|Washington township|1223|0|6|Zavodny|Verline|2990|Oregon|F|Daughter|||10|6435 +3000|PA|Franklin County|Washington township|1223|0|7|Zavodny|Maria|2996|Switzerland|M|Son|||4|6436 + +3000|WV|Mercer County|Brush Fork CDP|1224|0|1|Chenoweth|Dillon Maximo|2958|Saudi Arabia|M|Head|||42|6437 +3000|WV|Mercer County|Brush Fork CDP|1224|0|2|Chenoweth|Rico|2993|South Dakota|M|Son|||7|6438 +3000|WV|Mercer County|Brush Fork CDP|1224|0|3|Chenoweth|Johnson|2995|Arizona|M|Son|||5|6439 +3000|WV|Mercer County|Brush Fork CDP|1224|0|4|Chenoweth|Luther|2997|Vermont|M|Son|||3|6440 + +3000|NY|Ontario County|Naples town|1225|0|1|Karban|Harris Dwain|2943|Massachusetts|M|Head|||57|6441 +3000|NY|Ontario County|Naples town|1225|0|2|Karban|Felice|2950|Michigan|F|Spouse|||50|6442 +3000|NY|Ontario County|Naples town|1225|0|3|Karban|Lila|2974|Wisconsin|F|Daughter|||26|6443 +3000|NY|Ontario County|Naples town|1225|0|4|Karban|Maia|2978|New Jersey|F|Daughter|||22|6444 +3000|NY|Ontario County|Naples town|1225|0|5|Karban|Darin|2992|Guadeloupe|M|Son|||8|6445 +3000|NY|Ontario County|Naples town|1225|0|6|Karban|Valentin|3000|French Guiana|M|Son|||0|6446 + +3000|LA|Plaquemines Parish|Pointe a la Hache CDP|1226|0|1|Michel|Noah Sheldon|2969|Oregon|M|Head|||31|6447 +3000|LA|Plaquemines Parish|Pointe a la Hache CDP|1226|0|2|Michel|Sonja Jewell|2974|Louisiana|F|Spouse|||26|6448 +3000|LA|Plaquemines Parish|Pointe a la Hache CDP|1226|0|3|Michel|Eddy|2994|Connecticut|M|Son|||6|6449 +3000|LA|Plaquemines Parish|Pointe a la Hache CDP|1226|0|4|Michel|Donnell|3000|Oregon|M|Son|||0|6450 + +3000|CA|Marin County|Kentfield CDP|1227|0|1|Lynch|Theo Alfonso|2966|Virginia|M|Head|||34|6451 +3000|CA|Marin County|Kentfield CDP|1227|0|2|Lynch|Gretta Verlene|2972|New Hampshire|F|Spouse|||28|6452 +3000|CA|Marin County|Kentfield CDP|1227|0|3|Lynch|Shamika|2992|Connecticut|F|Daughter|||8|6453 +3000|CA|Marin County|Kentfield CDP|1227|0|4|Lynch|Geoffrey|2994|Colorado|M|Son|||6|6454 +3000|CA|Marin County|Kentfield CDP|1227|0|5|Lynch|Eric Shalanda|2996|California|F|Daughter|||4|6455 + +3000|PA|Luzerne County|Wright township|1228|0|1|Montalvo|Hal Tomas|2955|West Virginia|M|Head|||45|6456 +3000|PA|Luzerne County|Wright township|1228|0|2|Montalvo|Jackeline|2992|Nevada|F|Daughter|||8|6457 +3000|PA|Luzerne County|Wright township|1228|0|3|Montalvo|Buck|2998|California|M|Son|||2|6458 +3000|PA|Luzerne County|Wright township|1228|0|4|Montalvo|Leonida|3000|Washington|F|Daughter|||0|6459 + +3000|VT|Bennington County|Sandgate town|1229|0|1|Fuller|Palmer Jarvis|2947|South Carolina|M|Head|||53|6460 +3000|VT|Bennington County|Sandgate town|1229|0|2|Fuller|Wade|2985|Virginia|M|Son|||15|6461 +3000|VT|Bennington County|Sandgate town|1229|0|3|Fuller|Tommie|2993|North Dakota|M|Son|||7|6462 +3000|VT|Bennington County|Sandgate town|1229|0|4|Fuller|Abram Heriberto|2995|Vermont|M|Son|||5|6463 +3000|VT|Bennington County|Sandgate town|1229|0|5|Fuller|Nancy|2997|Kentucky|F|Daughter|||3|6464 +3000|VT|Bennington County|Sandgate town|1229|0|6|Fuller|Young|2999|Pennsylvania|M|Son|||1|6465 + +3000|MI|St. Clair County|Brockway township|1230|0|1|Richter|Enoch Jonah|2952|Virginia|M|Head|||48|6466 +3000|MI|St. Clair County|Brockway township|1230|0|2|Richter|Myriam|2959|Kentucky|F|Spouse|||41|6467 +3000|MI|St. Clair County|Brockway township|1230|0|3|Richter|Natasha|2985|Tanzania, United Republic Of|F|Daughter|||15|6468 +3000|MI|St. Clair County|Brockway township|1230|0|4|Richter|Athena|2987|Pennsylvania|F|Daughter|||13|6469 +3000|MI|St. Clair County|Brockway township|1230|0|5|Richter|Norma|2991|North Carolina|F|Daughter|||9|6470 +3000|MI|St. Clair County|Brockway township|1230|0|6|Richter|Andrew|2999|Germany|M|Son|||1|6471 + +3000|NC|Carteret County|Cape Carteret town|1231|0|1|Jelarde|Buford Saul|2947|Colorado|M|Head|||53|6472 +3000|NC|Carteret County|Cape Carteret town|1231|0|2|Jelarde|Kristan|2969|Nevada|F|Daughter|||31|6473 +3000|NC|Carteret County|Cape Carteret town|1231|0|3|Jelarde|Heide|2987|Netherlands Antilles|F|Daughter|||13|6474 +3000|NC|Carteret County|Cape Carteret town|1231|0|4|Jelarde|Britney|2991|Montana|F|Daughter|||9|6475 +3000|NC|Carteret County|Cape Carteret town|1231|0|5|Jelarde|Elois|2995|Hawaii|F|Daughter|||5|6476 + +3000|NY|Dutchess County|Hyde Park town|1232|0|1|Reeves|Luigi Henry|2946|New York|M|Head|||54|6477 +3000|NY|Dutchess County|Hyde Park town|1232|0|2|Reeves|Donnie|2955|Michigan|F|Spouse|||45|6478 +3000|NY|Dutchess County|Hyde Park town|1232|0|3|Reeves|Beula|2979|Namibia|F|Daughter|||21|6479 +3000|NY|Dutchess County|Hyde Park town|1232|0|4|Reeves|Dorian|2985|Pennsylvania|M|Son|||15|6480 +3000|NY|Dutchess County|Hyde Park town|1232|0|5|Reeves|Fredrick|2987|Alabama|M|Son|||13|6481 +3000|NY|Dutchess County|Hyde Park town|1232|0|6|Reeves|Brunilda Lonnie|2989|Poland|F|Daughter|||11|6482 +3000|NY|Dutchess County|Hyde Park town|1232|0|7|Reeves|Izola|2999|Virginia|F|Daughter|||1|6483 + +3000|MN|Mille Lacs County|Onamia city|1233|0|1|Bermudez|Dick Kory|2941|New York|M|Head|||59|6484 +3000|MN|Mille Lacs County|Onamia city|1233|0|2|Bermudez|Tequila|2947|Louisiana|F|Spouse|||53|6485 +3000|MN|Mille Lacs County|Onamia city|1233|0|3|Bermudez|Ettie|2967|Pennsylvania|F|Daughter|||33|6486 +3000|MN|Mille Lacs County|Onamia city|1233|0|4|Bermudez|Robby|2969|California|M|Son|||31|6487 +3000|MN|Mille Lacs County|Onamia city|1233|0|5|Bermudez|Jordon|2981|Slovakia|M|Son|||19|6488 +3000|MN|Mille Lacs County|Onamia city|1233|0|6|Bermudez|Kristofer|2983|South Dakota|M|Son|||17|6489 +3000|MN|Mille Lacs County|Onamia city|1233|0|7|Bermudez|Alfredo|2991|Maine|M|Son|||9|6490 +3000|MN|Mille Lacs County|Onamia city|1233|0|8|Bermudez|Bernadette|2997|Minnesota|F|Daughter|||3|6491 + +3000|WI|Douglas County|Superior village|1234|0|1|Lucio|Modesto Danny|2951|Missouri|M|Head|||49|6492 +3000|WI|Douglas County|Superior village|1234|0|2|Lucio|Kaylene|2961|Oklahoma|F|Spouse|||39|6493 +3000|WI|Douglas County|Superior village|1234|0|3|Lucio|Leah|2989|South Dakota|F|Daughter|||11|6494 +3000|WI|Douglas County|Superior village|1234|0|4|Lucio|Sybil|2991|Kansas|F|Daughter|||9|6495 +3000|WI|Douglas County|Superior village|1234|0|5|Lucio|Malisa|2995|Washington|F|Daughter|||5|6496 +3000|WI|Douglas County|Superior village|1234|0|6|Lucio|Shayne|2997|Georgia|M|Son|||3|6497 +3000|WI|Douglas County|Superior village|1234|0|7|Lucio|Foster|2999|North Carolina|M|Son|||1|6498 + +3000|MN|Anoka County, Isanti County|St. Francis city|1235|0|1|Wickell|Kyle Darnell|2955|Turks And Caicos Islands|M|Head|||45|6499 +3000|MN|Anoka County, Isanti County|St. Francis city|1235|0|2|Wickell|Li Paulita|2958|Oman|F|Spouse|||42|6500 +3000|MN|Anoka County, Isanti County|St. Francis city|1235|0|3|Wickell|Buster|2978|Arizona|M|Son|||22|6501 +3000|MN|Anoka County, Isanti County|St. Francis city|1235|0|4|Wickell|Perla|2986|North Carolina|F|Daughter|||14|6502 +3000|MN|Anoka County, Isanti County|St. Francis city|1235|0|5|Wickell|Vinnie|2990|Texas|F|Daughter|||10|6503 +3000|MN|Anoka County, Isanti County|St. Francis city|1235|0|6|Wickell|Retha Brianna|2992|New Zealand|F|Daughter|||8|6504 +3000|MN|Anoka County, Isanti County|St. Francis city|1235|0|7|Wickell|Modesto Dane|2996|Turks And Caicos Islands|M|Son|||4|6505 +3000|MN|Anoka County, Isanti County|St. Francis city|1235|0|8|Wickell|Horace|3000|Kentucky|M|Son|||0|6506 + +3000|ME|Aroostook County|Oxbow plantation|1236|0|1|Fire|Dwight Charlie|2950|Mississippi|M|Head|||50|6507 +3000|ME|Aroostook County|Oxbow plantation|1236|0|2|Fire|Branda|2967|Utah|F|Spouse|||33|6508 +3000|ME|Aroostook County|Oxbow plantation|1236|0|3|Fire|August|2987|New Mexico|M|Son|||13|6509 +3000|ME|Aroostook County|Oxbow plantation|1236|0|4|Fire|Fidel Ernest|2989|Colorado|M|Son|||11|6510 +3000|ME|Aroostook County|Oxbow plantation|1236|0|5|Fire|Rufina|2991|Texas|F|Daughter|||9|6511 +3000|ME|Aroostook County|Oxbow plantation|1236|0|6|Fire|Todd|2995|Georgia|M|Son|||5|6512 + +3000|MA|Bristol County|Norton town|1237|0|1|Tarlton|Junior Olen|2970|Utah|M|Head|||30|6513 +3000|MA|Bristol County|Norton town|1237|0|2|Tarlton|Jefferey|2995|Massachusetts|M|Son|||5|6514 +3000|MA|Bristol County|Norton town|1237|0|3|Tarlton|Kareem Eddie|2997|New Jersey|M|Son|||3|6515 +3000|MA|Bristol County|Norton town|1237|0|4|Tarlton|Jann|2999|Uzbekistan|F|Daughter|||1|6516 + +3000|PA|Schuylkill County|Deer Lake borough|1238|0|1|Tenbrink|Jorge Antonio|2946|Tonga|M|Head|||54|6517 +3000|PA|Schuylkill County|Deer Lake borough|1238|0|2|Tenbrink|Caron Harold|2967|Vermont|F|Spouse|||33|6518 +3000|PA|Schuylkill County|Deer Lake borough|1238|0|3|Tenbrink|Hilma|2987|Massachusetts|F|Daughter|||13|6519 +3000|PA|Schuylkill County|Deer Lake borough|1238|0|4|Tenbrink|Cassey|2991|Nevada|F|Daughter|||9|6520 +3000|PA|Schuylkill County|Deer Lake borough|1238|0|5|Tenbrink|Lowell|2993|Connecticut|M|Son|||7|6521 +3000|PA|Schuylkill County|Deer Lake borough|1238|0|6|Tenbrink|Alfredia|2995|Georgia|F|Daughter|||5|6522 + +3000|HI|Maui County|Kualapuu CDP|1239|0|1|Glass|Shirley Santo|2973|Massachusetts|M|Head|||27|6523 +3000|HI|Maui County|Kualapuu CDP|1239|0|2|Glass|Larita|2982|Illinois|F|Spouse|||18|6524 + +3000|LA|Winn Parish|Jordan Hill CDP|1240|0|1|Wilken|Timmy Bernard|2957|Arkansas|M|Head|||43|6525 +3000|LA|Winn Parish|Jordan Hill CDP|1240|0|2|Wilken|Savanna Sherley|2972|North Carolina|F|Spouse|||28|6526 +3000|LA|Winn Parish|Jordan Hill CDP|1240|0|3|Wilken|Betsy|2992|South Dakota|F|Daughter|||8|6527 +3000|LA|Winn Parish|Jordan Hill CDP|1240|0|4|Wilken|Caren|2994|Saint Lucia|F|Daughter|||6|6528 +3000|LA|Winn Parish|Jordan Hill CDP|1240|0|5|Wilken|Rosamond Lorraine|3000|Washington|F|Daughter|||0|6529 + +3000|NY|Oswego County|Schroeppel town|1241|0|1|Eagle|Odell|2937|Texas|M|Head|||63|6530 +3000|NY|Oswego County|Schroeppel town|1241|0|2|Eagle|Vida|2952|Dominican Republic|F|Spouse|||48|6531 +3000|NY|Oswego County|Schroeppel town|1241|0|3|Eagle|Mirta|2976|Vermont|F|Daughter|||24|6532 +3000|NY|Oswego County|Schroeppel town|1241|0|4|Eagle|Maurice|2986|Portugal|M|Son|||14|6533 +3000|NY|Oswego County|Schroeppel town|1241|0|5|Eagle|Lucille|2990|Tajikistan|F|Daughter|||10|6534 +3000|NY|Oswego County|Schroeppel town|1241|0|6|Eagle|Deshawn|2992|Lebanon|M|Son|||8|6535 +3000|NY|Oswego County|Schroeppel town|1241|0|7|Eagle|Martin|2996|Bouvet Island|M|Son|||4|6536 +3000|NY|Oswego County|Schroeppel town|1241|0|8|Eagle|Chae|3000|Oklahoma|F|Daughter|||0|6537 + +3000|PA|Delaware County|Media borough|1242|0|1|Warren|Nichol|2970|Massachusetts|F|Head|||30|6538 +3000|PA|Delaware County|Media borough|1242|0|2|Warren|Tamie|2992|Solomon Islands|F|Daughter|||8|6539 +3000|PA|Delaware County|Media borough|1242|0|3|Warren|Ben|2996|Hawaii|M|Son|||4|6540 +3000|PA|Delaware County|Media borough|1242|0|4|Warren|Flavia Jayna|2998|Massachusetts|F|Daughter|||2|6541 + +3000|ME|Aroostook County|Mapleton CDP|1243|0|1|Kite|Eddy Shelton|2948|Macau|M|Head|||52|6542 +3000|ME|Aroostook County|Mapleton CDP|1243|0|2|Kite|Gala Alejandrina|2989|Gabon|F|Daughter|||11|6543 +3000|ME|Aroostook County|Mapleton CDP|1243|0|3|Kite|Osvaldo|2991|California|M|Son|||9|6544 +3000|ME|Aroostook County|Mapleton CDP|1243|0|4|Kite|Veronique|2997|New Hampshire|F|Daughter|||3|6545 +3000|ME|Aroostook County|Mapleton CDP|1243|0|5|Kite|Kenny|2999|Nevada|M|Son|||1|6546 + +3000|WI|Waushara County|Redgranite village|1244|0|1|Biel|Booker Abe|2971|North Carolina|M|Head|||29|6547 + +3000|NE|Kearney County|Norman village|1245|0|1|Zepeda|Garry Burton|2959|Mayotte|M|Head|||41|6548 +3000|NE|Kearney County|Norman village|1245|0|2|Zepeda|Glennis|2963|Michigan|F|Spouse|||37|6549 +3000|NE|Kearney County|Norman village|1245|0|3|Zepeda|Daron|2985|Louisiana|M|Son|||15|6550 +3000|NE|Kearney County|Norman village|1245|0|4|Zepeda|Jeffrey|2987|Montana|F|Daughter|||13|6551 +3000|NE|Kearney County|Norman village|1245|0|5|Zepeda|Marlen|2991|Nevada|F|Daughter|||9|6552 +3000|NE|Kearney County|Norman village|1245|0|6|Zepeda|Mark Astrid|2993|Bangladesh|F|Daughter|||7|6553 +3000|NE|Kearney County|Norman village|1245|0|7|Zepeda|Waldo|2999|Alabama|M|Son|||1|6554 + +3000|SD|Shannon County|Batesland town|1246|0|1|Sigmund|Werner Ricardo|2950|California|M|Head|||50|6555 +3000|SD|Shannon County|Batesland town|1246|0|2|Sigmund|Jackqueline|2967|Nevada|F|Spouse|||33|6556 +3000|SD|Shannon County|Batesland town|1246|0|3|Sigmund|Jesus|2989|New Jersey|M|Son|||11|6557 +3000|SD|Shannon County|Batesland town|1246|0|4|Sigmund|Collen|2991|Ohio|F|Daughter|||9|6558 +3000|SD|Shannon County|Batesland town|1246|0|5|Sigmund|Seymour|2993|Uganda|M|Son|||7|6559 +3000|SD|Shannon County|Batesland town|1246|0|6|Sigmund|Ai|2995|Tennessee|F|Daughter|||5|6560 +3000|SD|Shannon County|Batesland town|1246|0|7|Sigmund|Gilberto|2999|Texas|M|Son|||1|6561 + +3000|CO|El Paso County|Peyton CDP|1247|0|1|Jones|Georgine|2945|Grenada|F|Head|||55|6562 +3000|CO|El Paso County|Peyton CDP|1247|0|2|Jones|Mora|2977|Alabama|F|Daughter|||23|6563 +3000|CO|El Paso County|Peyton CDP|1247|0|3|Jones|Billie Guadalupe|2985|Wisconsin|M|Son|||15|6564 +3000|CO|El Paso County|Peyton CDP|1247|0|4|Jones|Zane|2991|Burkina Faso|M|Son|||9|6565 + +3000|VA|Prince William County|Cherry Hill CDP|1248|0|1|Szilagyi|Royce Johnson|2960|Colorado|M|Head|||40|6566 +3000|VA|Prince William County|Cherry Hill CDP|1248|0|2|Szilagyi|Shawnna|2982|Papua New Guinea|F|Spouse|||18|6567 + +3000|MN|McLeod County|Lester Prairie city|1249|0|1|Aleman|Hector|2979|Zambia|M|Head|||21|6568 + +3000|PA|Lackawanna County|Clarks Summit borough|1250|0|1|Troglin|Kermit Marc|2966|Arkansas|M|Head|||34|6569 +3000|PA|Lackawanna County|Clarks Summit borough|1250|0|2|Troglin|Julieann|2972|Oklahoma|F|Spouse|||28|6570 +3000|PA|Lackawanna County|Clarks Summit borough|1250|0|3|Troglin|Samira|2992|Wisconsin|F|Daughter|||8|6571 +3000|PA|Lackawanna County|Clarks Summit borough|1250|0|4|Troglin|Florentino|2994|Delaware|M|Son|||6|6572 +3000|PA|Lackawanna County|Clarks Summit borough|1250|0|5|Troglin|Berry|2996|Oklahoma|M|Son|||4|6573 + +3000|PA|Columbia County|North Centre township|1251|0|1|Vincent|Gregorio|2966|Washington|M|Head|||34|6574 +3000|PA|Columbia County|North Centre township|1251|0|2|Vincent|Lavina|2978|Maryland|F|Spouse|||22|6575 +3000|PA|Columbia County|North Centre township|1251|0|3|Vincent|Norberto Francisco|2998|Louisiana|M|Son|||2|6576 + +3000|MI|Lenawee County|Ridgeway township|1252|0|1|Giantonio|Elden Ricardo|2960|Namibia|M|Head|||40|6577 +3000|MI|Lenawee County|Ridgeway township|1252|0|2|Giantonio|Magdalene|2962|Illinois|F|Spouse|||38|6578 +3000|MI|Lenawee County|Ridgeway township|1252|0|3|Giantonio|Lisette|2986|Connecticut|F|Daughter|||14|6579 +3000|MI|Lenawee County|Ridgeway township|1252|0|4|Giantonio|Shirl|2988|Maine|F|Daughter|||12|6580 +3000|MI|Lenawee County|Ridgeway township|1252|0|5|Giantonio|Napoleon Terrell|2992|Georgia|M|Son|||8|6581 +3000|MI|Lenawee County|Ridgeway township|1252|0|6|Giantonio|Lucille Tammara|2994|Louisiana|F|Daughter|||6|6582 +3000|MI|Lenawee County|Ridgeway township|1252|0|7|Giantonio|Joan|3000|New Hampshire|M|Son|||0|6583 + +3000|IN|Johnson County|Bargersville town|1253|0|1|Rincones|Jarvis Mack|2955|Washington|M|Head|||45|6584 +3000|IN|Johnson County|Bargersville town|1253|0|2|Rincones|Aleshia|2967|Alaska|F|Spouse|||33|6585 +3000|IN|Johnson County|Bargersville town|1253|0|3|Rincones|Walter Martin|2987|New Mexico|M|Son|||13|6586 +3000|IN|Johnson County|Bargersville town|1253|0|4|Rincones|Curtis|2991|Utah|F|Daughter|||9|6587 +3000|IN|Johnson County|Bargersville town|1253|0|5|Rincones|Cory|2993|Ohio|M|Son|||7|6588 +3000|IN|Johnson County|Bargersville town|1253|0|6|Rincones|Elvin|2997|Mississippi|M|Son|||3|6589 + +3000|CA|Alameda County|San Lorenzo CDP|1254|0|1|Lackey|Lanny Ellsworth|2955|New York|M|Head|||45|6590 +3000|CA|Alameda County|San Lorenzo CDP|1254|0|2|Lackey|Savanna|2967|Georgia|F|Spouse|||33|6591 +3000|CA|Alameda County|San Lorenzo CDP|1254|0|3|Lackey|Lashaun|2987|Virginia|F|Daughter|||13|6592 +3000|CA|Alameda County|San Lorenzo CDP|1254|0|4|Lackey|Linwood|2989|Montana|M|Son|||11|6593 +3000|CA|Alameda County|San Lorenzo CDP|1254|0|5|Lackey|Oliver|2991|New Hampshire|M|Son|||9|6594 +3000|CA|Alameda County|San Lorenzo CDP|1254|0|6|Lackey|Sean|2995|Arkansas|M|Son|||5|6595 +3000|CA|Alameda County|San Lorenzo CDP|1254|0|7|Lackey|Ila Lindsay|2999|Pennsylvania|F|Daughter|||1|6596 + +3000|OH|Clermont County|Day Heights CDP|1255|0|1|Wrights|Gaylord|2947|Delaware|M|Head|||53|6597 +3000|OH|Clermont County|Day Heights CDP|1255|0|2|Wrights|Walker|2963|Iowa|M|Son|||37|6598 +3000|OH|Clermont County|Day Heights CDP|1255|0|3|Wrights|Rusty|2967|Ohio|M|Son|||33|6599 +3000|OH|Clermont County|Day Heights CDP|1255|0|4|Wrights|Wai|2971|Alabama|F|Daughter|||29|6600 +3000|OH|Clermont County|Day Heights CDP|1255|0|5|Wrights|Neal|2975|Georgia|M|Son|||25|6601 +3000|OH|Clermont County|Day Heights CDP|1255|0|6|Wrights|Hellen|2977|Lesotho|F|Daughter|||23|6602 +3000|OH|Clermont County|Day Heights CDP|1255|0|7|Wrights|Orval|2985|Connecticut|M|Son|||15|6603 +3000|OH|Clermont County|Day Heights CDP|1255|0|8|Wrights|Rosario|2995|New Mexico|M|Son|||5|6604 + +3000|KS|Douglas County|Baldwin City city|1256|0|1|Laura|Celsa|2970|Latvia|F|Head|||30|6605 +3000|KS|Douglas County|Baldwin City city|1256|0|2|Laura|Franklyn|2990|Texas|M|Son|||10|6606 +3000|KS|Douglas County|Baldwin City city|1256|0|3|Laura|Sylvester|2992|Mississippi|M|Son|||8|6607 +3000|KS|Douglas County|Baldwin City city|1256|0|4|Laura|Myrtice|2994|Montserrat|F|Daughter|||6|6608 +3000|KS|Douglas County|Baldwin City city|1256|0|5|Laura|Lazaro|2996|New Mexico|M|Son|||4|6609 + +3000|PA|Juniata County, Snyder County|Richfield CDP|1257|0|1|White|Mack Ezra|2943|Bahrain|M|Head|||57|6610 +3000|PA|Juniata County, Snyder County|Richfield CDP|1257|0|2|White|Corrin|2976|Christmas Island|F|Daughter|||24|6611 +3000|PA|Juniata County, Snyder County|Richfield CDP|1257|0|3|White|Gerard|2984|Wisconsin|M|Son|||16|6612 +3000|PA|Juniata County, Snyder County|Richfield CDP|1257|0|4|White|Ima|2988|Kansas|F|Daughter|||12|6613 +3000|PA|Juniata County, Snyder County|Richfield CDP|1257|0|5|White|Scott|2990|Pakistan|M|Son|||10|6614 +3000|PA|Juniata County, Snyder County|Richfield CDP|1257|0|6|White|Orlando|2992|Panama|M|Son|||8|6615 +3000|PA|Juniata County, Snyder County|Richfield CDP|1257|0|7|White|Landon|2998|Nevada|M|Son|||2|6616 + +3000|IA|Cerro Gordo County|Plymouth city|1258|0|1|Shrewsbury|Mark|2967|Maine|M|Head|||33|6617 +3000|IA|Cerro Gordo County|Plymouth city|1258|0|2|Shrewsbury|Georgine|2965|Saint Helena|F|Spouse|||35|6618 +3000|IA|Cerro Gordo County|Plymouth city|1258|0|3|Shrewsbury|Kermit|2987|Illinois|M|Son|||13|6619 +3000|IA|Cerro Gordo County|Plymouth city|1258|0|4|Shrewsbury|Leonel Reed|2989|North Dakota|M|Son|||11|6620 +3000|IA|Cerro Gordo County|Plymouth city|1258|0|5|Shrewsbury|Samuel|2999|Kansas|M|Son|||1|6621 + +3000|NY|Oneida County|Forestport town|1259|0|1|Valentine|Guadalupe King|2941|Arkansas|M|Head|||59|6622 +3000|NY|Oneida County|Forestport town|1259|0|2|Valentine|Charity|2949|Oregon|F|Spouse|||51|6623 +3000|NY|Oneida County|Forestport town|1259|0|3|Valentine|Kazuko|2985|New Hampshire|F|Daughter|||15|6624 +3000|NY|Oneida County|Forestport town|1259|0|4|Valentine|Tommye|2989|Virginia|F|Daughter|||11|6625 +3000|NY|Oneida County|Forestport town|1259|0|5|Valentine|Alan|2991|Uganda|M|Son|||9|6626 + +3000|IL|Menard County|Athens city|1260|0|1|Barick|Javier Bret|2957|North Dakota|M|Head|||43|6627 +3000|IL|Menard County|Athens city|1260|0|2|Barick|Emogene|2953|Chad|F|Spouse|||47|6628 +3000|IL|Menard County|Athens city|1260|0|3|Barick|Ellyn|2973|Louisiana|F|Daughter|||27|6629 +3000|IL|Menard County|Athens city|1260|0|4|Barick|Maida Beaulah|2977|Missouri|F|Daughter|||23|6630 +3000|IL|Menard County|Athens city|1260|0|5|Barick|Richie|2979|South Dakota|M|Son|||21|6631 +3000|IL|Menard County|Athens city|1260|0|6|Barick|Linda|2985|Congo|F|Daughter|||15|6632 +3000|IL|Menard County|Athens city|1260|0|7|Barick|Bulah|2987|Georgia|F|Daughter|||13|6633 +3000|IL|Menard County|Athens city|1260|0|8|Barick|Yer|2993|New York|F|Daughter|||7|6634 +3000|IL|Menard County|Athens city|1260|0|9|Barick|Dalton|2995|New Hampshire|M|Son|||5|6635 + +3000|SC|Pickens County|Liberty city|1261|0|1|Quick|Stuart Pat|2940|Utah|M|Head|||60|6636 +3000|SC|Pickens County|Liberty city|1261|0|2|Quick|Sheila Damaris|2963|Nebraska|F|Spouse|||37|6637 +3000|SC|Pickens County|Liberty city|1261|0|3|Quick|Cordelia|2991|Minnesota|F|Daughter|||9|6638 +3000|SC|Pickens County|Liberty city|1261|0|4|Quick|Marielle|2995|Poland|F|Daughter|||5|6639 + +3000|SC|Berkeley County|Hanahan city|1262|0|1|Halgas|Parker Thanh|2949|Northern Mariana Islands|M|Head|||51|6640 +3000|SC|Berkeley County|Hanahan city|1262|0|2|Halgas|Bradly|2980|North Carolina|M|Son|||20|6641 +3000|SC|Berkeley County|Hanahan city|1262|0|3|Halgas|Ardath|2982|Connecticut|F|Daughter|||18|6642 +3000|SC|Berkeley County|Hanahan city|1262|0|4|Halgas|Reyes|2986|Wisconsin|M|Son|||14|6643 +3000|SC|Berkeley County|Hanahan city|1262|0|5|Halgas|Monserrate|2992|Maryland|F|Daughter|||8|6644 +3000|SC|Berkeley County|Hanahan city|1262|0|6|Halgas|Sammy|2994|Tennessee|M|Son|||6|6645 +3000|SC|Berkeley County|Hanahan city|1262|0|7|Halgas|Carolyn|2996|South Carolina|F|Daughter|||4|6646 + +3000|OK|Greer County|Willow town|1263|0|1|Kanta|Carson Major|2952|Wisconsin|M|Head|||48|6647 +3000|OK|Greer County|Willow town|1263|0|2|Kanta|Becky|2949|Idaho|F|Spouse|||51|6648 +3000|OK|Greer County|Willow town|1263|0|3|Kanta|Burl|2969|Indiana|M|Son|||31|6649 +3000|OK|Greer County|Willow town|1263|0|4|Kanta|Chanel|2973|Alaska|F|Daughter|||27|6650 +3000|OK|Greer County|Willow town|1263|0|5|Kanta|Filomena|2985|Alaska|F|Daughter|||15|6651 +3000|OK|Greer County|Willow town|1263|0|6|Kanta|Karissa|2991|Uganda|F|Daughter|||9|6652 + +3000|WV|Raleigh County|Glen White CDP|1264|0|1|Brandel|Cory|2961|Wyoming|F|Head|||39|6653 +3000|WV|Raleigh County|Glen White CDP|1264|0|2|Brandel|Tonya|2981|Iowa|F|Daughter|||19|6654 +3000|WV|Raleigh County|Glen White CDP|1264|0|3|Brandel|Leandra|2985|Idaho|F|Daughter|||15|6655 +3000|WV|Raleigh County|Glen White CDP|1264|0|4|Brandel|Celesta|2987|Delaware|F|Daughter|||13|6656 +3000|WV|Raleigh County|Glen White CDP|1264|0|5|Brandel|Jere|2999|North Carolina|M|Son|||1|6657 + +3000|NC|Wilkes County|Pleasant Hill CDP|1265|0|1|Gagne|Ike Arturo|2939|Michigan|M|Head|||61|6658 +3000|NC|Wilkes County|Pleasant Hill CDP|1265|0|2|Gagne|Maxie Joycelyn|2946|Minnesota|F|Spouse|||54|6659 +3000|NC|Wilkes County|Pleasant Hill CDP|1265|0|3|Gagne|Lee|2970|Niger|M|Son|||30|6660 +3000|NC|Wilkes County|Pleasant Hill CDP|1265|0|4|Gagne|Thaddeus|2980|Tennessee|M|Son|||20|6661 +3000|NC|Wilkes County|Pleasant Hill CDP|1265|0|5|Gagne|Mellissa|2982|Arizona|F|Daughter|||18|6662 +3000|NC|Wilkes County|Pleasant Hill CDP|1265|0|6|Gagne|Romeo Gavin|2986|Marshall Islands|M|Son|||14|6663 +3000|NC|Wilkes County|Pleasant Hill CDP|1265|0|7|Gagne|Kurtis|2996|Vermont|M|Son|||4|6664 +3000|NC|Wilkes County|Pleasant Hill CDP|1265|0|8|Gagne|Iraida|2998|Hawaii|F|Daughter|||2|6665 + +3000|NC|Greene County|Walstonburg town|1266|0|1|Bonamico|Stuart Mohammad|2942|Cameroon|M|Head|||58|6666 +3000|NC|Greene County|Walstonburg town|1266|0|2|Bonamico|Katelyn|2956|Indiana|F|Spouse|||44|6667 +3000|NC|Greene County|Walstonburg town|1266|0|3|Bonamico|Lavern|2978|Massachusetts|M|Son|||22|6668 +3000|NC|Greene County|Walstonburg town|1266|0|4|Bonamico|Yasmine|2982|Maryland|F|Daughter|||18|6669 +3000|NC|Greene County|Walstonburg town|1266|0|5|Bonamico|Chas|2988|New Mexico|M|Son|||12|6670 +3000|NC|Greene County|Walstonburg town|1266|0|6|Bonamico|Hugh|2990|Kazakstan|M|Son|||10|6671 +3000|NC|Greene County|Walstonburg town|1266|0|7|Bonamico|Lyndon|2994|North Carolina|M|Son|||6|6672 +3000|NC|Greene County|Walstonburg town|1266|0|8|Bonamico|Jayson|2998|Arkansas|M|Son|||2|6673 + +3000|MN|Hennepin County, Wright County|Hanover city|1267|0|1|Marshall|Jeremiah|2958|Oregon|M|Head|||42|6674 +3000|MN|Hennepin County, Wright County|Hanover city|1267|0|2|Marshall|Karolyn|2971|Nebraska|F|Spouse|||29|6675 +3000|MN|Hennepin County, Wright County|Hanover city|1267|0|3|Marshall|Jefferson|2993|North Carolina|M|Son|||7|6676 +3000|MN|Hennepin County, Wright County|Hanover city|1267|0|4|Marshall|Lekisha|2997|Texas|F|Daughter|||3|6677 +3000|MN|Hennepin County, Wright County|Hanover city|1267|0|5|Marshall|Rachell|2999|Bangladesh|F|Daughter|||1|6678 + +3000|MN|Washington County|Hugo city|1268|0|1|Loosier|Amos Howard|2964|Washington|M|Head|||36|6679 +3000|MN|Washington County|Hugo city|1268|0|2|Loosier|Nadine Albert|2970|New Jersey|F|Spouse|||30|6680 +3000|MN|Washington County|Hugo city|1268|0|3|Loosier|Eliseo|2990|South Carolina|M|Son|||10|6681 +3000|MN|Washington County|Hugo city|1268|0|4|Loosier|Danny|2994|Arizona|M|Son|||6|6682 +3000|MN|Washington County|Hugo city|1268|0|5|Loosier|Brittany|2996|Kansas|F|Daughter|||4|6683 +3000|MN|Washington County|Hugo city|1268|0|6|Loosier|Mike|3000|Massachusetts|F|Daughter|||0|6684 + +3000|NC|Stanly County|New London town|1269|0|1|Williams|Damon Leopoldo|2974|Pennsylvania|M|Head|||26|6685 +3000|NC|Stanly County|New London town|1269|0|2|Williams|Latrisha Eleonora|2979|Belgium|F|Spouse|||21|6686 +3000|NC|Stanly County|New London town|1269|0|3|Williams|Celena|2999|Netherlands|F|Daughter|||1|6687 + +3000|MA|Norfolk County|Brookline CDP|1270|0|1|Young|Rayford Faustino|2954|Belize|M|Head|||46|6688 +3000|MA|Norfolk County|Brookline CDP|1270|0|2|Young|Robena|2964|Idaho|F|Spouse|||36|6689 +3000|MA|Norfolk County|Brookline CDP|1270|0|3|Young|Kermit|2990|New Mexico|M|Son|||10|6690 +3000|MA|Norfolk County|Brookline CDP|1270|0|4|Young|Pearly|2992|Rhode Island|F|Daughter|||8|6691 +3000|MA|Norfolk County|Brookline CDP|1270|0|5|Young|Leo|2994|Greece|M|Son|||6|6692 +3000|MA|Norfolk County|Brookline CDP|1270|0|6|Young|Jesusita|2998|Virgin Islands, British|F|Daughter|||2|6693 +3000|MA|Norfolk County|Brookline CDP|1270|0|7|Young|Irwin|3000|Michigan|M|Son|||0|6694 + +3000|NJ|Monmouth County|Neptune City borough|1271|0|1|Wheelus|Kirk Jonathon|2937|Massachusetts|M|Head|||63|6695 +3000|NJ|Monmouth County|Neptune City borough|1271|0|2|Wheelus|Vanesa|2957|Connecticut|F|Spouse|||43|6696 +3000|NJ|Monmouth County|Neptune City borough|1271|0|3|Wheelus|Chastity|2985|Syrian Arab Republic|F|Daughter|||15|6697 +3000|NJ|Monmouth County|Neptune City borough|1271|0|4|Wheelus|Sandy Erik|2987|Michigan|M|Son|||13|6698 +3000|NJ|Monmouth County|Neptune City borough|1271|0|5|Wheelus|Rickey Donn|2991|New Jersey|M|Son|||9|6699 +3000|NJ|Monmouth County|Neptune City borough|1271|0|6|Wheelus|Arie|2993|Jamaica|F|Daughter|||7|6700 +3000|NJ|Monmouth County|Neptune City borough|1271|0|7|Wheelus|Charlene|2997|Missouri|F|Daughter|||3|6701 +3000|NJ|Monmouth County|Neptune City borough|1271|0|8|Wheelus|Stan|2999|Argentina|M|Son|||1|6702 + +3000|MN|Clearwater County|Leonard city|1272|0|1|Tommolino|Johnson Williams|2941|Ohio|M|Head|||59|6703 +3000|MN|Clearwater County|Leonard city|1272|0|2|Tommolino|Anette|2965|Indiana|F|Spouse|||35|6704 +3000|MN|Clearwater County|Leonard city|1272|0|3|Tommolino|Lisabeth|2987|Florida|F|Daughter|||13|6705 +3000|MN|Clearwater County|Leonard city|1272|0|4|Tommolino|Hulda|2989|Alabama|F|Daughter|||11|6706 +3000|MN|Clearwater County|Leonard city|1272|0|5|Tommolino|Lidia|2999|Nevada|F|Daughter|||1|6707 + +3000|MI|Midland County|Jerome township|1273|0|1|Barry|Kirk Pete|2956|Montana|M|Head|||44|6708 +3000|MI|Midland County|Jerome township|1273|0|2|Barry|Marquerite|2980|Benin|F|Spouse|||20|6709 + +3000|PA|Dauphin County|Swatara township|1274|0|1|Carner|Lonnie Miquel|2965|Texas|M|Head|||35|6710 +3000|PA|Dauphin County|Swatara township|1274|0|2|Carner|Floyd Marcus|2999|Iowa|M|Son|||1|6711 + +3000|IL|Coles County|Oakland city|1275|0|1|Noble|Guadalupe Alfredo|2942|Greenland|M|Head|||58|6712 +3000|IL|Coles County|Oakland city|1275|0|2|Noble|Jude Herschel|2978|New Hampshire|M|Son|||22|6713 +3000|IL|Coles County|Oakland city|1275|0|3|Noble|Scarlet|2980|Antigua And Barbuda|F|Daughter|||20|6714 +3000|IL|Coles County|Oakland city|1275|0|4|Noble|Lanie|2982|British Indian Ocean Territory|F|Daughter|||18|6715 +3000|IL|Coles County|Oakland city|1275|0|5|Noble|Katherine|2984|Morocco|F|Daughter|||16|6716 +3000|IL|Coles County|Oakland city|1275|0|6|Noble|Truman|2986|Wisconsin|M|Son|||14|6717 +3000|IL|Coles County|Oakland city|1275|0|7|Noble|Jackeline|2988|Netherlands Antilles|F|Daughter|||12|6718 +3000|IL|Coles County|Oakland city|1275|0|8|Noble|Yvonne|2990|Hawaii|F|Daughter|||10|6719 +3000|IL|Coles County|Oakland city|1275|0|9|Noble|Max|3000|Nicaragua|M|Son|||0|6720 + +3000|NY|Onondaga County|Fayetteville village|1276|0|1|Rumfelt|Ira Cristobal|2958|Wisconsin|M|Head|||42|6721 +3000|NY|Onondaga County|Fayetteville village|1276|0|2|Rumfelt|Geraldine|2990|Rhode Island|F|Daughter|||10|6722 +3000|NY|Onondaga County|Fayetteville village|1276|0|3|Rumfelt|Josef|3000|Connecticut|M|Son|||0|6723 + +3000|NY|Tompkins County|Groton village|1277|0|1|Emrich|Rudolph Victor|2955|Washington|M|Head|||45|6724 +3000|NY|Tompkins County|Groton village|1277|0|2|Emrich|Elwood|2984|Kentucky|M|Son|||16|6725 +3000|NY|Tompkins County|Groton village|1277|0|3|Emrich|Joesph|2986|Kentucky|M|Son|||14|6726 +3000|NY|Tompkins County|Groton village|1277|0|4|Emrich|Delena|2988|Alabama|F|Daughter|||12|6727 +3000|NY|Tompkins County|Groton village|1277|0|5|Emrich|Mellie|2990|South Dakota|F|Daughter|||10|6728 +3000|NY|Tompkins County|Groton village|1277|0|6|Emrich|Shara Loise|3000|Florida|F|Daughter|||0|6729 + +3000|CA|Napa County|Deer Park CDP|1278|0|1|Ladner|Clement Ricardo|2949|Indiana|M|Head|||51|6730 +3000|CA|Napa County|Deer Park CDP|1278|0|2|Ladner|Angeline|2970|Wallis And Futuna|F|Spouse|||30|6731 +3000|CA|Napa County|Deer Park CDP|1278|0|3|Ladner|Maria|2990|Massachusetts|M|Son|||10|6732 +3000|CA|Napa County|Deer Park CDP|1278|0|4|Ladner|Joey|2996|Louisiana|M|Son|||4|6733 +3000|CA|Napa County|Deer Park CDP|1278|0|5|Ladner|Elroy|3000|Mauritania|M|Son|||0|6734 + +3000|AL|Houston County|Cottonwood town|1279|0|1|Malley|Jeremiah Hipolito|2943|Virginia|M|Head|||57|6735 +3000|AL|Houston County|Cottonwood town|1279|0|2|Malley|Ressie Eliz|2950|Egypt|F|Spouse|||50|6736 +3000|AL|Houston County|Cottonwood town|1279|0|3|Malley|Vaughn Dane|2970|Louisiana|M|Son|||30|6737 +3000|AL|Houston County|Cottonwood town|1279|0|4|Malley|Jeraldine|2972|Andorra|F|Daughter|||28|6738 +3000|AL|Houston County|Cottonwood town|1279|0|5|Malley|Jordon|2982|Colorado|M|Son|||18|6739 +3000|AL|Houston County|Cottonwood town|1279|0|6|Malley|Denver|2986|Oregon|M|Son|||14|6740 +3000|AL|Houston County|Cottonwood town|1279|0|7|Malley|Joel|2992|Alaska|F|Daughter|||8|6741 +3000|AL|Houston County|Cottonwood town|1279|0|8|Malley|Hank|2996|Georgia|M|Son|||4|6742 +3000|AL|Houston County|Cottonwood town|1279|0|9|Malley|Dee|3000|North Carolina|M|Son|||0|6743 + +3000|MN|Pipestone County|Holland city|1280|0|1|Douvia|Hector Cody|2962|Tennessee|M|Head|||38|6744 +3000|MN|Pipestone County|Holland city|1280|0|2|Douvia|Lashunda|2963|South Dakota|F|Spouse|||37|6745 +3000|MN|Pipestone County|Holland city|1280|0|3|Douvia|Lilliam|2987|Rhode Island|F|Daughter|||13|6746 +3000|MN|Pipestone County|Holland city|1280|0|4|Douvia|Ricardo|2989|Colorado|M|Son|||11|6747 +3000|MN|Pipestone County|Holland city|1280|0|5|Douvia|Antonia|2991|Bolivia|M|Son|||9|6748 +3000|MN|Pipestone County|Holland city|1280|0|6|Douvia|Loren|2995|Maryland|M|Son|||5|6749 +3000|MN|Pipestone County|Holland city|1280|0|7|Douvia|Andre Kareen|2999|Kentucky|F|Daughter|||1|6750 + +3000|MI|Muskegon County|Casnovia township|1281|0|1|Scoma|Milan Sherwood|2954|Michigan|M|Head|||46|6751 +3000|MI|Muskegon County|Casnovia township|1281|0|2|Scoma|Mai|2960|Montana|F|Spouse|||40|6752 +3000|MI|Muskegon County|Casnovia township|1281|0|3|Scoma|Salvador|2988|Iowa|M|Son|||12|6753 +3000|MI|Muskegon County|Casnovia township|1281|0|4|Scoma|Joel|2992|Maryland|M|Son|||8|6754 +3000|MI|Muskegon County|Casnovia township|1281|0|5|Scoma|Marcelino Sammy|2994|West Virginia|M|Son|||6|6755 +3000|MI|Muskegon County|Casnovia township|1281|0|6|Scoma|Porfirio Terry|2996|Ohio|M|Son|||4|6756 + +3000|NE|Morrill County|Bayard city|1282|0|1|Castillon|Johnathon Fausto|2979|Alaska|M|Head|||21|6757 +3000|NE|Morrill County|Bayard city|1282|0|2|Castillon|Leeanne|2982|Nevada|F|Spouse|||18|6758 + +3000|MI|Wexford County|Cadillac city|1283|0|1|Hemple|Corey Joey|2956|North Dakota|M|Head|||44|6759 +3000|MI|Wexford County|Cadillac city|1283|0|2|Hemple|Pattie|2955|Arkansas|F|Spouse|||45|6760 +3000|MI|Wexford County|Cadillac city|1283|0|3|Hemple|Curt|2975|Nepal|M|Son|||25|6761 +3000|MI|Wexford County|Cadillac city|1283|0|4|Hemple|Joesph|2977|New Hampshire|M|Son|||23|6762 +3000|MI|Wexford County|Cadillac city|1283|0|5|Hemple|Napoleon|2985|Mozambique|M|Son|||15|6763 +3000|MI|Wexford County|Cadillac city|1283|0|6|Hemple|Cherri|2991|Missouri|F|Daughter|||9|6764 +3000|MI|Wexford County|Cadillac city|1283|0|7|Hemple|Alton|2993|California|M|Son|||7|6765 +3000|MI|Wexford County|Cadillac city|1283|0|8|Hemple|Devin|2995|Illinois|F|Daughter|||5|6766 + +3000|WY|Sweetwater County|Clearview Acres CDP|1284|0|1|Weissberg|Magnolia|2958|Mississippi|F|Head|||42|6767 +3000|WY|Sweetwater County|Clearview Acres CDP|1284|0|2|Weissberg|Joesph|2986|Michigan|M|Son|||14|6768 +3000|WY|Sweetwater County|Clearview Acres CDP|1284|0|3|Weissberg|Jamel Archie|2988|Colorado|M|Son|||12|6769 +3000|WY|Sweetwater County|Clearview Acres CDP|1284|0|4|Weissberg|Adolfo|3000|Pennsylvania|M|Son|||0|6770 + +3000|CT|Windham County|Scotland town|1285|0|1|Miller|Jesse Wilford|2950|Sri Lanka|M|Head|||50|6771 +3000|CT|Windham County|Scotland town|1285|0|2|Miller|Crista|2968|Ohio|F|Spouse|||32|6772 +3000|CT|Windham County|Scotland town|1285|0|3|Miller|Kasi|2988|Kosovo|F|Daughter|||12|6773 +3000|CT|Windham County|Scotland town|1285|0|4|Miller|Florence|2992|Arkansas|F|Daughter|||8|6774 +3000|CT|Windham County|Scotland town|1285|0|5|Miller|Oren|3000|Louisiana|M|Son|||0|6775 + +3000|SC|York County|Riverview CDP|1286|0|1|Taskey|Evette|2941|Arizona|F|Head|||59|6776 +3000|SC|York County|Riverview CDP|1286|0|2|Taskey|Torri|2965|Louisiana|F|Daughter|||35|6777 +3000|SC|York County|Riverview CDP|1286|0|3|Taskey|Abraham|2977|Wisconsin|M|Son|||23|6778 +3000|SC|York County|Riverview CDP|1286|0|4|Taskey|Edgardo|2983|California|M|Son|||17|6779 +3000|SC|York County|Riverview CDP|1286|0|5|Taskey|Natasha|2985|Iceland|F|Daughter|||15|6780 +3000|SC|York County|Riverview CDP|1286|0|6|Taskey|Bo|2987|Comoros|M|Son|||13|6781 +3000|SC|York County|Riverview CDP|1286|0|7|Taskey|Kenton|2989|Pennsylvania|M|Son|||11|6782 +3000|SC|York County|Riverview CDP|1286|0|8|Taskey|Tracy|2995|Mississippi|F|Daughter|||5|6783 +3000|SC|York County|Riverview CDP|1286|0|9|Taskey|Adell|2999|Nebraska|F|Daughter|||1|6784 + +3000|NJ|Gloucester County|Woodbury city|1287|0|1|Pierce|Sean Ismael|2949|California|M|Head|||51|6785 +3000|NJ|Gloucester County|Woodbury city|1287|0|2|Pierce|Cornelia|2967|Sierra Leone|F|Spouse|||33|6786 +3000|NJ|Gloucester County|Woodbury city|1287|0|3|Pierce|Arnulfo Rosendo|2987|Gibraltar|M|Son|||13|6787 +3000|NJ|Gloucester County|Woodbury city|1287|0|4|Pierce|Suzie|2993|North Carolina|F|Daughter|||7|6788 +3000|NJ|Gloucester County|Woodbury city|1287|0|5|Pierce|Javier Reed|2995|Connecticut|M|Son|||5|6789 +3000|NJ|Gloucester County|Woodbury city|1287|0|6|Pierce|Herlinda|2997|Wyoming|F|Daughter|||3|6790 + +3000|IA|Woodbury County|Oto city|1288|0|1|Lopinto|Jacinto Lucio|2946|East Timor|M|Head|||54|6791 +3000|IA|Woodbury County|Oto city|1288|0|2|Lopinto|Lorraine|2942|Kentucky|F|Spouse|||58|6792 +3000|IA|Woodbury County|Oto city|1288|0|3|Lopinto|Valentin|2962|Kansas|M|Son|||38|6793 +3000|IA|Woodbury County|Oto city|1288|0|4|Lopinto|Glady|2966|Massachusetts|F|Daughter|||34|6794 +3000|IA|Woodbury County|Oto city|1288|0|5|Lopinto|Jimmie|2968|Turkey|M|Son|||32|6795 +3000|IA|Woodbury County|Oto city|1288|0|6|Lopinto|Teri|2986|Virginia|F|Daughter|||14|6796 +3000|IA|Woodbury County|Oto city|1288|0|7|Lopinto|Jamey|2992|Louisiana|F|Daughter|||8|6797 +3000|IA|Woodbury County|Oto city|1288|0|8|Lopinto|Jordon|2996|Idaho|M|Son|||4|6798 +3000|IA|Woodbury County|Oto city|1288|0|9|Lopinto|Bari Shantell|2998|Connecticut|F|Daughter|||2|6799 + +3000|HI|Hawaii County|Honokaa CDP|1289|0|1|Stanford|Ignacio Jody|2954|North Dakota|M|Head|||46|6800 +3000|HI|Hawaii County|Honokaa CDP|1289|0|2|Stanford|Juli|2965|Connecticut|F|Spouse|||35|6801 +3000|HI|Hawaii County|Honokaa CDP|1289|0|3|Stanford|Sigrid|2987|Iowa|F|Daughter|||13|6802 +3000|HI|Hawaii County|Honokaa CDP|1289|0|4|Stanford|Jessia|2989|Ohio|F|Daughter|||11|6803 +3000|HI|Hawaii County|Honokaa CDP|1289|0|5|Stanford|Vi|2993|New Jersey|F|Daughter|||7|6804 +3000|HI|Hawaii County|Honokaa CDP|1289|0|6|Stanford|Lavern|2997|Kentucky|M|Son|||3|6805 + +3000|PA|Armstrong County|South Bend township|1290|0|1|Lang|Harley Vincent|2940|Pennsylvania|M|Head|||60|6806 +3000|PA|Armstrong County|South Bend township|1290|0|2|Lang|Jessica|2956|Connecticut|F|Spouse|||44|6807 +3000|PA|Armstrong County|South Bend township|1290|0|3|Lang|Ian|2986|Slovakia|M|Son|||14|6808 +3000|PA|Armstrong County|South Bend township|1290|0|4|Lang|Cleveland|2988|Connecticut|M|Son|||12|6809 +3000|PA|Armstrong County|South Bend township|1290|0|5|Lang|Libbie|2990|India|F|Daughter|||10|6810 +3000|PA|Armstrong County|South Bend township|1290|0|6|Lang|Dirk|2998|Tanzania, United Republic Of|M|Son|||2|6811 + +3000|MI|Manistee County|Brown township|1291|0|1|Grosser|Tobias Lonnie|2984|Louisiana|M|Head|||16|6812 +3000|MI|Manistee County|Brown township|1291|0|2|Grosser|Jeanine|2984|Oklahoma|F|Spouse|||16|6813 + +3000|ME|Somerset County|Hartland CDP|1292|0|1|Dees|Felipe Royce|2970|Paraguay|M|Head|||30|6814 +3000|ME|Somerset County|Hartland CDP|1292|0|2|Dees|Kayla|2974|New Mexico|F|Spouse|||26|6815 +3000|ME|Somerset County|Hartland CDP|1292|0|3|Dees|Martine|2994|North Carolina|F|Daughter|||6|6816 +3000|ME|Somerset County|Hartland CDP|1292|0|4|Dees|Rex|2996|Guadeloupe|M|Son|||4|6817 +3000|ME|Somerset County|Hartland CDP|1292|0|5|Dees|Alisia|2998|Texas|F|Daughter|||2|6818 + +3000|WI|Outagamie County|Kaukauna city|1293|0|1|Chambless|Allan Cliff|2945|California|M|Head|||55|6819 +3000|WI|Outagamie County|Kaukauna city|1293|0|2|Chambless|Lavona|2964|North Carolina|F|Spouse|||36|6820 +3000|WI|Outagamie County|Kaukauna city|1293|0|3|Chambless|Cecil|2984|Missouri|F|Daughter|||16|6821 +3000|WI|Outagamie County|Kaukauna city|1293|0|4|Chambless|Brett|2988|North Dakota|M|Son|||12|6822 +3000|WI|Outagamie County|Kaukauna city|1293|0|5|Chambless|Socorro|2990|Virginia|F|Daughter|||10|6823 +3000|WI|Outagamie County|Kaukauna city|1293|0|6|Chambless|Terrell Loren|3000|Pennsylvania|M|Son|||0|6824 + +3000|NH|Hillsborough County|Milford CDP|1294|0|1|Frantz|Rodrigo Rayford|2940|Montana|M|Head|||60|6825 +3000|NH|Hillsborough County|Milford CDP|1294|0|2|Frantz|Lilian|2962|South Dakota|F|Spouse|||38|6826 +3000|NH|Hillsborough County|Milford CDP|1294|0|3|Frantz|Cliff|2984|Indiana|M|Son|||16|6827 +3000|NH|Hillsborough County|Milford CDP|1294|0|4|Frantz|Paola Marjory|2990|Louisiana|F|Daughter|||10|6828 +3000|NH|Hillsborough County|Milford CDP|1294|0|5|Frantz|Seth Ferdinand|2992|New York|M|Son|||8|6829 +3000|NH|Hillsborough County|Milford CDP|1294|0|6|Frantz|Zina|2998|Italy|F|Daughter|||2|6830 +3000|NH|Hillsborough County|Milford CDP|1294|0|7|Frantz|Odessa Kecia|3000|Massachusetts|F|Daughter|||0|6831 + +3000|CA|Los Angeles County|West Whittier-Los Nietos CDP|1295|0|1|Luoto|Tristan|2976|Washington|M|Head|||24|6832 +3000|CA|Los Angeles County|West Whittier-Los Nietos CDP|1295|0|2|Luoto|Echo|2999|New Hampshire|F|Daughter|||1|6833 + +3000|WI|Marinette County|Goodman CDP|1296|0|1|Temples|Noel Raymon|2970|Montserrat|M|Head|||30|6834 +3000|WI|Marinette County|Goodman CDP|1296|0|2|Temples|Kathyrn|2982|Florida|F|Spouse|||18|6835 + +3000|VT|Essex County|Brunswick town|1297|0|1|Lanton|Irvin Scott|2963|Estonia|M|Head|||37|6836 +3000|VT|Essex County|Brunswick town|1297|0|2|Lanton|Maggie|2978|Texas|F|Spouse|||22|6837 +3000|VT|Essex County|Brunswick town|1297|0|3|Lanton|Dominique|2998|Belarus|F|Daughter|||2|6838 +3000|VT|Essex County|Brunswick town|1297|0|4|Lanton|Tiffiny|3000|Kansas|F|Daughter|||0|6839 + +3000|IA|Grundy County|Conrad city|1298|0|1|Lewis|Roberto|2944|Canada|M|Head|||56|6840 +3000|IA|Grundy County|Conrad city|1298|0|2|Lewis|Sharda|2944|New Hampshire|F|Spouse|||56|6841 +3000|IA|Grundy County|Conrad city|1298|0|3|Lewis|Carlton Rich|2966|Wisconsin|M|Son|||34|6842 +3000|IA|Grundy County|Conrad city|1298|0|4|Lewis|Leonard|2970|Indiana|M|Son|||30|6843 +3000|IA|Grundy County|Conrad city|1298|0|5|Lewis|Zane|2982|Norfolk Island|M|Son|||18|6844 +3000|IA|Grundy County|Conrad city|1298|0|6|Lewis|Merrill|2984|Ohio|M|Son|||16|6845 +3000|IA|Grundy County|Conrad city|1298|0|7|Lewis|Harland|2986|Rhode Island|M|Son|||14|6846 +3000|IA|Grundy County|Conrad city|1298|0|8|Lewis|Dewitt|2994|Vermont|M|Son|||6|6847 +3000|IA|Grundy County|Conrad city|1298|0|9|Lewis|Arthur|2998|Sao Tome And Principe|M|Son|||2|6848 +3000|IA|Grundy County|Conrad city|1298|0|10|Lewis|Setsuko Retha|3000|Zambia|F|Daughter|||0|6849 + +3000|ND|Slope County|Amidon city|1299|0|1|Hernandez|Galen Jame|2941|Louisiana|M|Head|||59|6850 +3000|ND|Slope County|Amidon city|1299|0|2|Hernandez|Clementina Temple|2944|Kentucky|F|Spouse|||56|6851 +3000|ND|Slope County|Amidon city|1299|0|3|Hernandez|Keven|2966|Virginia|M|Son|||34|6852 +3000|ND|Slope County|Amidon city|1299|0|4|Hernandez|Kirby|2976|Ohio|M|Son|||24|6853 +3000|ND|Slope County|Amidon city|1299|0|5|Hernandez|Tawana Zita|2986|Hawaii|F|Daughter|||14|6854 +3000|ND|Slope County|Amidon city|1299|0|6|Hernandez|Bart|2990|Michigan|M|Son|||10|6855 +3000|ND|Slope County|Amidon city|1299|0|7|Hernandez|Maria|2996|Singapore|F|Daughter|||4|6856 + +3000|WI|Shawano County|Pella town|1300|0|1|Bucks|Albert Chris|2956|Alabama|M|Head|||44|6857 +3000|WI|Shawano County|Pella town|1300|0|2|Bucks|Jordan|2972|Haiti|F|Spouse|||28|6858 +3000|WI|Shawano County|Pella town|1300|0|3|Bucks|Shela Clorinda|2996|South Carolina|F|Daughter|||4|6859 + +3000|PA|Schuylkill County|New Castle township|1301|0|1|Dighton|Lindsey Alfonzo|2967|Colorado|M|Head|||33|6860 + +3000|IA|Johnson County|Swisher city|1302|0|1|Best|Emerson Hugh|2959|Chad|M|Head|||41|6861 +3000|IA|Johnson County|Swisher city|1302|0|2|Best|Yolonda|2960|Mississippi|F|Spouse|||40|6862 +3000|IA|Johnson County|Swisher city|1302|0|3|Best|Elijah|2988|South Dakota|M|Son|||12|6863 +3000|IA|Johnson County|Swisher city|1302|0|4|Best|Marla|2992|Martinique|F|Daughter|||8|6864 +3000|IA|Johnson County|Swisher city|1302|0|5|Best|Dylan|2996|Kazakstan|M|Son|||4|6865 +3000|IA|Johnson County|Swisher city|1302|0|6|Best|Danita|2998|Oregon|F|Daughter|||2|6866 + +3000|PA|Butler County|Muddy Creek township|1303|0|1|Hayzlett|Tawana Wai|2962|Hawaii|F|Head|||38|6867 +3000|PA|Butler County|Muddy Creek township|1303|0|2|Hayzlett|Denver Robin|2988|Missouri|M|Son|||12|6868 +3000|PA|Butler County|Muddy Creek township|1303|0|3|Hayzlett|Shanelle|2990|Texas|F|Daughter|||10|6869 +3000|PA|Butler County|Muddy Creek township|1303|0|4|Hayzlett|Latrina|3000|Tennessee|F|Daughter|||0|6870 + +3000|NY|Nassau County|Manhasset Hills CDP|1304|0|1|Nicholson|Emmett Melvin|2956|Macau|M|Head|||44|6871 +3000|NY|Nassau County|Manhasset Hills CDP|1304|0|2|Nicholson|Shu|2980|Washington|F|Spouse|||20|6872 +3000|NY|Nassau County|Manhasset Hills CDP|1304|0|3|Nicholson|Bryant|3000|Virginia|M|Son|||0|6873 + +3000|WI|Buffalo County|Alma city|1305|0|1|Snavely|Olin Randal|2949|Washington|M|Head|||51|6874 +3000|WI|Buffalo County|Alma city|1305|0|2|Snavely|Lottie Lucila|2948|Wisconsin|F|Spouse|||52|6875 +3000|WI|Buffalo County|Alma city|1305|0|3|Snavely|Fabiola Opal|2976|Minnesota|F|Daughter|||24|6876 +3000|WI|Buffalo County|Alma city|1305|0|4|Snavely|Darius|2978|Mississippi|M|Son|||22|6877 +3000|WI|Buffalo County|Alma city|1305|0|5|Snavely|Ericka Arlena|2988|Louisiana|F|Daughter|||12|6878 +3000|WI|Buffalo County|Alma city|1305|0|6|Snavely|Leisa|2990|Wisconsin|F|Daughter|||10|6879 +3000|WI|Buffalo County|Alma city|1305|0|7|Snavely|Cecila|2994|Oklahoma|F|Daughter|||6|6880 +3000|WI|Buffalo County|Alma city|1305|0|8|Snavely|Rick|2996|Utah|M|Son|||4|6881 + +3000|NJ|Somerset County|Bernardsville borough|1306|0|1|Gonzalez|Glenn Salvador|2964|Antigua And Barbuda|M|Head|||36|6882 +3000|NJ|Somerset County|Bernardsville borough|1306|0|2|Gonzalez|Kandice|2972|Virginia|F|Spouse|||28|6883 +3000|NJ|Somerset County|Bernardsville borough|1306|0|3|Gonzalez|Gino|2992|Missouri|M|Son|||8|6884 +3000|NJ|Somerset County|Bernardsville borough|1306|0|4|Gonzalez|Hank|2994|Kuwait|M|Son|||6|6885 +3000|NJ|Somerset County|Bernardsville borough|1306|0|5|Gonzalez|Emerson|2996|Maryland|M|Son|||4|6886 +3000|NJ|Somerset County|Bernardsville borough|1306|0|6|Gonzalez|Eldon|2998|South Dakota|M|Son|||2|6887 + +3000|PA|Mercer County|Jamestown borough|1307|0|1|Kim|Armanda|2962|Texas|F|Head|||38|6888 +3000|PA|Mercer County|Jamestown borough|1307|0|2|Kim|Opal|2984|Florida|F|Daughter|||16|6889 +3000|PA|Mercer County|Jamestown borough|1307|0|3|Kim|Leonore|2994|Maryland|F|Daughter|||6|6890 +3000|PA|Mercer County|Jamestown borough|1307|0|4|Kim|Shandi|2996|Florida|F|Daughter|||4|6891 +3000|PA|Mercer County|Jamestown borough|1307|0|5|Kim|Sammy|3000|New Hampshire|F|Daughter|||0|6892 + +3000|NY|Chautauqua County|Sherman town|1308|0|1|Wanczyk|Leonard Barrett|2937|New York|M|Head|||63|6893 +3000|NY|Chautauqua County|Sherman town|1308|0|2|Wanczyk|Shayne|2982|Massachusetts|M|Son|||18|6894 +3000|NY|Chautauqua County|Sherman town|1308|0|3|Wanczyk|Maya|2986|South Carolina|F|Daughter|||14|6895 +3000|NY|Chautauqua County|Sherman town|1308|0|4|Wanczyk|Herbert|2988|Vermont|M|Son|||12|6896 +3000|NY|Chautauqua County|Sherman town|1308|0|5|Wanczyk|Florance|2990|Alabama|F|Daughter|||10|6897 +3000|NY|Chautauqua County|Sherman town|1308|0|6|Wanczyk|Stanton|2992|Kentucky|M|Son|||8|6898 + +3000|PA|Columbia County|South Centre township|1309|0|1|Hiltbrand|Mauro Thurman|2959|Maryland|M|Head|||41|6899 +3000|PA|Columbia County|South Centre township|1309|0|2|Hiltbrand|Veda|2979|Illinois|F|Spouse|||21|6900 +3000|PA|Columbia County|South Centre township|1309|0|3|Hiltbrand|Solomon|2999|Missouri|M|Son|||1|6901 + +3000|AZ|Coconino County|Supai CDP|1310|0|1|Chiarelli|Malcolm Santos|2963|Florida|M|Head|||37|6902 +3000|AZ|Coconino County|Supai CDP|1310|0|2|Chiarelli|Lauralee|2970|West Virginia|F|Spouse|||30|6903 +3000|AZ|Coconino County|Supai CDP|1310|0|3|Chiarelli|Jerrold|2996|Arkansas|M|Son|||4|6904 +3000|AZ|Coconino County|Supai CDP|1310|0|4|Chiarelli|Ashley|3000|Colorado|F|Daughter|||0|6905 + +3000|FL|Lake County|Astor CDP|1311|0|1|Ferguson|Earle Rocco|2950|Kentucky|M|Head|||50|6906 +3000|FL|Lake County|Astor CDP|1311|0|2|Ferguson|Leandra|2971|Virginia|F|Spouse|||29|6907 +3000|FL|Lake County|Astor CDP|1311|0|3|Ferguson|Thu|2991|Libyan Arab Jamahiriya|F|Daughter|||9|6908 + +3000|TX|Jefferson County|Bevil Oaks city|1312|0|1|Corbett|Dominique Denver|2940|New Jersey|M|Head|||60|6909 +3000|TX|Jefferson County|Bevil Oaks city|1312|0|2|Corbett|Kum Tianna|2987|Kansas|F|Daughter|||13|6910 +3000|TX|Jefferson County|Bevil Oaks city|1312|0|3|Corbett|Bradford|2989|South Dakota|M|Son|||11|6911 +3000|TX|Jefferson County|Bevil Oaks city|1312|0|4|Corbett|Jimmie|2991|Guam|M|Son|||9|6912 +3000|TX|Jefferson County|Bevil Oaks city|1312|0|5|Corbett|Mauro|2997|Arizona|M|Son|||3|6913 + +3000|WI|Rusk County|Wilson town|1313|0|1|Sporman|Evan Abdul|2949|Nevada|M|Head|||51|6914 +3000|WI|Rusk County|Wilson town|1313|0|2|Sporman|Jeannetta|2954|Israel|F|Spouse|||46|6915 +3000|WI|Rusk County|Wilson town|1313|0|3|Sporman|Aaron|2980|Minnesota|M|Son|||20|6916 +3000|WI|Rusk County|Wilson town|1313|0|4|Sporman|Mason Mike|2988|Nevada|M|Son|||12|6917 +3000|WI|Rusk County|Wilson town|1313|0|5|Sporman|Nikita|2990|Minnesota|F|Daughter|||10|6918 +3000|WI|Rusk County|Wilson town|1313|0|6|Sporman|Daron|2996|Tonga|M|Son|||4|6919 +3000|WI|Rusk County|Wilson town|1313|0|7|Sporman|Consuela Sherrill|2998|British Indian Ocean Territory|F|Daughter|||2|6920 +3000|WI|Rusk County|Wilson town|1313|0|8|Sporman|John|3000|Arizona|M|Son|||0|6921 + +3000|NH|Grafton County|Mountain Lakes CDP|1314|0|1|Scott|Valentin Gonzalo|2946|Tennessee|M|Head|||54|6922 +3000|NH|Grafton County|Mountain Lakes CDP|1314|0|2|Scott|Cordia|2943|South Carolina|F|Spouse|||57|6923 +3000|NH|Grafton County|Mountain Lakes CDP|1314|0|3|Scott|Josh|2967|Florida|M|Son|||33|6924 +3000|NH|Grafton County|Mountain Lakes CDP|1314|0|4|Scott|Doreen|2985|Morocco|F|Daughter|||15|6925 +3000|NH|Grafton County|Mountain Lakes CDP|1314|0|5|Scott|Hassie|2991|Illinois|F|Daughter|||9|6926 +3000|NH|Grafton County|Mountain Lakes CDP|1314|0|6|Scott|Cristie|2995|Hawaii|F|Daughter|||5|6927 + +3000|PA|Cambria County|Cambria township|1315|0|1|Agosto|Tyron Bill|2956|Michigan|M|Head|||44|6928 +3000|PA|Cambria County|Cambria township|1315|0|2|Agosto|Mozell Jude|2964|New York|F|Spouse|||36|6929 +3000|PA|Cambria County|Cambria township|1315|0|3|Agosto|Quincy Cary|2988|Mississippi|M|Son|||12|6930 +3000|PA|Cambria County|Cambria township|1315|0|4|Agosto|Jeana Johnetta|2998|Tennessee|F|Daughter|||2|6931 + +3000|WI|Racine County|Norway town|1316|0|1|Sorrell|Charley|2955|South Carolina|M|Head|||45|6932 +3000|WI|Racine County|Norway town|1316|0|2|Sorrell|Elmer|2994|Maine|M|Son|||6|6933 +3000|WI|Racine County|Norway town|1316|0|3|Sorrell|Marisol|2998|Wisconsin|F|Daughter|||2|6934 +3000|WI|Racine County|Norway town|1316|0|4|Sorrell|Keenan|3000|Pennsylvania|M|Son|||0|6935 + +3000|TX|Dawson County|Welch CDP|1317|0|1|Lindmeyer|Berry Tracey|2972|Colombia|M|Head|||28|6936 +3000|TX|Dawson County|Welch CDP|1317|0|2|Lindmeyer|Babara|2968|West Virginia|F|Spouse|||32|6937 +3000|TX|Dawson County|Welch CDP|1317|0|3|Lindmeyer|Charleen|2988|Indiana|F|Daughter|||12|6938 +3000|TX|Dawson County|Welch CDP|1317|0|4|Lindmeyer|Shonda|2992|Wisconsin|F|Daughter|||8|6939 +3000|TX|Dawson County|Welch CDP|1317|0|5|Lindmeyer|Tawny Shawanna|2994|Massachusetts|F|Daughter|||6|6940 +3000|TX|Dawson County|Welch CDP|1317|0|6|Lindmeyer|Jule|2996|Kansas|F|Daughter|||4|6941 +3000|TX|Dawson County|Welch CDP|1317|0|7|Lindmeyer|Rodrick|2998|Connecticut|M|Son|||2|6942 + +3000|NY|Wyoming County|Perry village|1318|0|1|Mazell|Darnell Benny|2948|Angola|M|Head|||52|6943 +3000|NY|Wyoming County|Perry village|1318|0|2|Mazell|Ailene|2946|Washington|F|Spouse|||54|6944 +3000|NY|Wyoming County|Perry village|1318|0|3|Mazell|Landon|2970|California|M|Son|||30|6945 +3000|NY|Wyoming County|Perry village|1318|0|4|Mazell|Werner|2972|Utah|M|Son|||28|6946 +3000|NY|Wyoming County|Perry village|1318|0|5|Mazell|Zenia|2976|North Carolina|F|Daughter|||24|6947 +3000|NY|Wyoming County|Perry village|1318|0|6|Mazell|Geoffrey|2988|Colorado|M|Son|||12|6948 +3000|NY|Wyoming County|Perry village|1318|0|7|Mazell|Dina|2998|South Carolina|F|Daughter|||2|6949 + +3000|MO|Stoddard County|Dexter city|1319|0|1|Callahan|Lynwood|2952|Montana|M|Head|||48|6950 + +3000|PA|Somerset County|New Baltimore borough|1320|0|1|Bonepart|Jae Brendon|2949|Viet Nam|M|Head|||51|6951 +3000|PA|Somerset County|New Baltimore borough|1320|0|2|Bonepart|Gilberte Marshall|2960|Illinois|F|Spouse|||40|6952 +3000|PA|Somerset County|New Baltimore borough|1320|0|3|Bonepart|Quinn|2984|Antarctica|M|Son|||16|6953 +3000|PA|Somerset County|New Baltimore borough|1320|0|4|Bonepart|Karrie|2988|Rhode Island|F|Daughter|||12|6954 +3000|PA|Somerset County|New Baltimore borough|1320|0|5|Bonepart|Alonso|2990|Iowa|M|Son|||10|6955 +3000|PA|Somerset County|New Baltimore borough|1320|0|6|Bonepart|Yuonne|2992|South Dakota|F|Daughter|||8|6956 +3000|PA|Somerset County|New Baltimore borough|1320|0|7|Bonepart|Marx|2996|New Mexico|F|Daughter|||4|6957 + +3000|MS|Newton County|Decatur town|1321|0|1|Mays|Clarence Anthony|2955|Washington|M|Head|||45|6958 +3000|MS|Newton County|Decatur town|1321|0|2|Mays|Bernardina|2959|New Jersey|F|Spouse|||41|6959 +3000|MS|Newton County|Decatur town|1321|0|3|Mays|Rich|2987|West Virginia|M|Son|||13|6960 +3000|MS|Newton County|Decatur town|1321|0|4|Mays|Wesley|2989|Nevada|F|Daughter|||11|6961 +3000|MS|Newton County|Decatur town|1321|0|5|Mays|Freeda|2991|Rhode Island|F|Daughter|||9|6962 +3000|MS|Newton County|Decatur town|1321|0|6|Mays|Ezra|2999|North Dakota|M|Son|||1|6963 + +3000|NH|Cheshire County|Jaffrey town|1322|0|1|Hellberg|Bernardo|2964|Brunei Darussalam|M|Head|||36|6964 +3000|NH|Cheshire County|Jaffrey town|1322|0|2|Hellberg|Lawrence Violet|2964|Michigan|F|Spouse|||36|6965 +3000|NH|Cheshire County|Jaffrey town|1322|0|3|Hellberg|Sherron|2988|Utah|F|Daughter|||12|6966 +3000|NH|Cheshire County|Jaffrey town|1322|0|4|Hellberg|Hung|2990|Tonga|M|Son|||10|6967 +3000|NH|Cheshire County|Jaffrey town|1322|0|5|Hellberg|Lance|2992|Arkansas|M|Son|||8|6968 +3000|NH|Cheshire County|Jaffrey town|1322|0|6|Hellberg|Conception|2998|Montana|F|Daughter|||2|6969 + +3000|OH|Summit County|Montrose-Ghent CDP|1323|0|1|Wilson|Sherwood Sidney|2961|New Zealand|M|Head|||39|6970 +3000|OH|Summit County|Montrose-Ghent CDP|1323|0|2|Wilson|Kenna|2984|Indiana|F|Daughter|||16|6971 +3000|OH|Summit County|Montrose-Ghent CDP|1323|0|3|Wilson|Emanuel|2986|Singapore|M|Son|||14|6972 +3000|OH|Summit County|Montrose-Ghent CDP|1323|0|4|Wilson|Olene|2990|Oregon|F|Daughter|||10|6973 +3000|OH|Summit County|Montrose-Ghent CDP|1323|0|5|Wilson|Ezra Jonathon|2994|West Virginia|M|Son|||6|6974 + +3000|CA|Mendocino County|Mendocino CDP|1324|0|1|Brosig|Erik Bernardo|2981|Massachusetts|M|Head|||19|6975 +3000|CA|Mendocino County|Mendocino CDP|1324|0|2|Brosig|Santo|2999|Wyoming|M|Son|||1|6976 + +3000|ID|Camas County|Fairfield city|1325|0|1|Mcconnell|Fred Quinn|2944|Uzbekistan|M|Head|||56|6977 +3000|ID|Camas County|Fairfield city|1325|0|2|Mcconnell|Keshia Kai|2942|Massachusetts|F|Spouse|||58|6978 +3000|ID|Camas County|Fairfield city|1325|0|3|Mcconnell|Alesia|2970|Vermont|F|Daughter|||30|6979 +3000|ID|Camas County|Fairfield city|1325|0|4|Mcconnell|Harrison|2980|New Mexico|M|Son|||20|6980 +3000|ID|Camas County|Fairfield city|1325|0|5|Mcconnell|Tammi|2990|West Virginia|F|Daughter|||10|6981 +3000|ID|Camas County|Fairfield city|1325|0|6|Mcconnell|Solange|2996|New Mexico|F|Daughter|||4|6982 +3000|ID|Camas County|Fairfield city|1325|0|7|Mcconnell|Mervin Buddy|2998|Kansas|M|Son|||2|6983 +3000|ID|Camas County|Fairfield city|1325|0|8|Mcconnell|Adalberto|3000|Virginia|M|Son|||0|6984 + +3000|MI|Osceola County|Le Roy village|1326|0|1|Brookins|Bruce Joseph|2967|Kentucky|M|Head|||33|6985 +3000|MI|Osceola County|Le Roy village|1326|0|2|Brookins|Richard|2976|Germany|F|Spouse|||24|6986 +3000|MI|Osceola County|Le Roy village|1326|0|3|Brookins|Velva|2998|Ireland|F|Daughter|||2|6987 + +3000|AZ|Cochise County|Naco CDP|1327|0|1|Asturias|Monty|2970|Macau|M|Head|||30|6988 +3000|AZ|Cochise County|Naco CDP|1327|0|2|Asturias|Luana|2984|Vermont|F|Spouse|||16|6989 + +3000|AR|Pope County|Dover city|1328|0|1|Mcmenomy|Danny Cletus|2942|Minnesota|M|Head|||58|6990 +3000|AR|Pope County|Dover city|1328|0|2|Mcmenomy|Devorah|2948|Rhode Island|F|Spouse|||52|6991 +3000|AR|Pope County|Dover city|1328|0|3|Mcmenomy|Felipa|2968|Indiana|F|Daughter|||32|6992 +3000|AR|Pope County|Dover city|1328|0|4|Mcmenomy|Kenneth|2972|Nevada|M|Son|||28|6993 +3000|AR|Pope County|Dover city|1328|0|5|Mcmenomy|Joey|2976|Idaho|M|Son|||24|6994 +3000|AR|Pope County|Dover city|1328|0|6|Mcmenomy|Oren|2988|California|M|Son|||12|6995 +3000|AR|Pope County|Dover city|1328|0|7|Mcmenomy|Lyndon|2990|Nebraska|M|Son|||10|6996 +3000|AR|Pope County|Dover city|1328|0|8|Mcmenomy|Lynna|2996|Oklahoma|F|Daughter|||4|6997 +3000|AR|Pope County|Dover city|1328|0|9|Mcmenomy|Stephani|3000|Alaska|F|Daughter|||0|6998 + +3000|OH|Clermont County|Bethel village|1329|0|1|Whitehead|Lloyd Delmer|2964|Massachusetts|M|Head|||36|6999 +3000|OH|Clermont County|Bethel village|1329|0|2|Whitehead|Catherine|2964|Maine|F|Spouse|||36|7000 +3000|OH|Clermont County|Bethel village|1329|0|3|Whitehead|Henry|2984|Minnesota|M|Son|||16|7001 +3000|OH|Clermont County|Bethel village|1329|0|4|Whitehead|Treasa|2986|Pennsylvania|F|Daughter|||14|7002 +3000|OH|Clermont County|Bethel village|1329|0|5|Whitehead|Dominique Kelsi|2990|Alabama|F|Daughter|||10|7003 +3000|OH|Clermont County|Bethel village|1329|0|6|Whitehead|Floyd Ulysses|2992|Arkansas|M|Son|||8|7004 + +3000|CA|Amador County|Buena Vista CDP|1330|0|1|Robbins|Lorenzo Mervin|2947|Texas|M|Head|||53|7005 +3000|CA|Amador County|Buena Vista CDP|1330|0|2|Robbins|Carl|2943|Arkansas|F|Spouse|||57|7006 +3000|CA|Amador County|Buena Vista CDP|1330|0|3|Robbins|Duane|2973|Massachusetts|M|Son|||27|7007 +3000|CA|Amador County|Buena Vista CDP|1330|0|4|Robbins|Dusti Leola|2983|Florida|F|Daughter|||17|7008 +3000|CA|Amador County|Buena Vista CDP|1330|0|5|Robbins|Frederic|2987|Arizona|M|Son|||13|7009 +3000|CA|Amador County|Buena Vista CDP|1330|0|6|Robbins|Jeri|2991|Estonia|F|Daughter|||9|7010 +3000|CA|Amador County|Buena Vista CDP|1330|0|7|Robbins|Clifton|2995|Indiana|M|Son|||5|7011 + +3000|NJ|Salem County|Elsinboro township|1331|0|1|Morrison|Lonny Bobbie|2972|New Mexico|M|Head|||28|7012 +3000|NJ|Salem County|Elsinboro township|1331|0|2|Morrison|Veronique|2975|Texas|F|Spouse|||25|7013 +3000|NJ|Salem County|Elsinboro township|1331|0|3|Morrison|Lyndon|2995|Zimbabwe|M|Son|||5|7014 +3000|NJ|Salem County|Elsinboro township|1331|0|4|Morrison|Bernetta|2997|Montana|F|Daughter|||3|7015 +3000|NJ|Salem County|Elsinboro township|1331|0|5|Morrison|Laronda Luna|2999|Pennsylvania|F|Daughter|||1|7016 + +3000|PA|Schuylkill County|Pine Grove township|1332|0|1|Hulett|Winford|2974|Hawaii|M|Head|||26|7017 +3000|PA|Schuylkill County|Pine Grove township|1332|0|2|Hulett|Albertina|2998|South Dakota|F|Daughter|||2|7018 + +3000|FL|Sarasota County|Southgate CDP|1333|0|1|Kennedy|Noah|2938|Illinois|M|Head|||62|7019 +3000|FL|Sarasota County|Southgate CDP|1333|0|2|Kennedy|Janey|2951|Alabama|F|Spouse|||49|7020 +3000|FL|Sarasota County|Southgate CDP|1333|0|3|Kennedy|Leisha|2977|Tonga|F|Daughter|||23|7021 +3000|FL|Sarasota County|Southgate CDP|1333|0|4|Kennedy|Laurence|2983|California|M|Son|||17|7022 +3000|FL|Sarasota County|Southgate CDP|1333|0|5|Kennedy|Herb|2989|New Caledonia|M|Son|||11|7023 +3000|FL|Sarasota County|Southgate CDP|1333|0|6|Kennedy|Pok|2991|Western Sahara|F|Daughter|||9|7024 +3000|FL|Sarasota County|Southgate CDP|1333|0|7|Kennedy|Viki|2997|Israel|F|Daughter|||3|7025 +3000|FL|Sarasota County|Southgate CDP|1333|0|8|Kennedy|Avery|2999|South Carolina|F|Daughter|||1|7026 + +3000|NJ|Warren County|Alpha borough|1334|0|1|Degear|Dan Dudley|2949|Georgia|M|Head|||51|7027 +3000|NJ|Warren County|Alpha borough|1334|0|2|Degear|Guillermina Bobbie|2987|Minnesota|F|Daughter|||13|7028 +3000|NJ|Warren County|Alpha borough|1334|0|3|Degear|Vera|2991|Louisiana|F|Daughter|||9|7029 +3000|NJ|Warren County|Alpha borough|1334|0|4|Degear|Daisy|2993|Alabama|F|Daughter|||7|7030 +3000|NJ|Warren County|Alpha borough|1334|0|5|Degear|Dane|2995|Indiana|M|Son|||5|7031 +3000|NJ|Warren County|Alpha borough|1334|0|6|Degear|Hedy|2999|Michigan|F|Daughter|||1|7032 + +3000|IA|Johnson County|Oxford city|1335|0|1|Turner|Terrance|2952|Idaho|M|Head|||48|7033 +3000|IA|Johnson County|Oxford city|1335|0|2|Turner|Irma|2971|Alaska|F|Spouse|||29|7034 +3000|IA|Johnson County|Oxford city|1335|0|3|Turner|Gustavo|2991|Delaware|M|Son|||9|7035 +3000|IA|Johnson County|Oxford city|1335|0|4|Turner|Bradly|2999|Massachusetts|M|Son|||1|7036 + +3000|TX|Menard County|Menard city|1336|0|1|Petrides|Cary|2952|Arizona|M|Head|||48|7037 +3000|TX|Menard County|Menard city|1336|0|2|Petrides|Danika|2972|Illinois|F|Spouse|||28|7038 +3000|TX|Menard County|Menard city|1336|0|3|Petrides|Johnathon|2992|Colorado|M|Son|||8|7039 +3000|TX|Menard County|Menard city|1336|0|4|Petrides|Bruno|2994|Pennsylvania|M|Son|||6|7040 +3000|TX|Menard County|Menard city|1336|0|5|Petrides|Miyoko|3000|Paraguay|F|Daughter|||0|7041 + +3000|MD|Montgomery County|Travilah CDP|1337|0|1|Monsanto|Enrique Isaac|2955|Brazil|M|Head|||45|7042 +3000|MD|Montgomery County|Travilah CDP|1337|0|2|Monsanto|Sherryl|2990|Alabama|F|Daughter|||10|7043 +3000|MD|Montgomery County|Travilah CDP|1337|0|3|Monsanto|Cara|2992|West Virginia|F|Daughter|||8|7044 +3000|MD|Montgomery County|Travilah CDP|1337|0|4|Monsanto|Arden|2998|Utah|M|Son|||2|7045 +3000|MD|Montgomery County|Travilah CDP|1337|0|5|Monsanto|Dorothy Loma|3000|Indiana|F|Daughter|||0|7046 + +3000|MA|Barnstable County|West Chatham CDP|1338|0|1|Stone|Ghislaine Alexandra|2942|Montana|F|Head|||58|7047 +3000|MA|Barnstable County|West Chatham CDP|1338|0|2|Stone|Vonnie|2962|Pennsylvania|F|Daughter|||38|7048 +3000|MA|Barnstable County|West Chatham CDP|1338|0|3|Stone|Claire|2968|Mississippi|F|Daughter|||32|7049 +3000|MA|Barnstable County|West Chatham CDP|1338|0|4|Stone|Carita|2986|Georgia|F|Daughter|||14|7050 +3000|MA|Barnstable County|West Chatham CDP|1338|0|5|Stone|Letisha|2988|Argentina|F|Daughter|||12|7051 +3000|MA|Barnstable County|West Chatham CDP|1338|0|6|Stone|Delmer|2990|Massachusetts|M|Son|||10|7052 +3000|MA|Barnstable County|West Chatham CDP|1338|0|7|Stone|Tammie|2996|New Mexico|F|Daughter|||4|7053 + +3000|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|1339|0|1|Nordsiek|Rosendo Nickolas|2946|Michigan|M|Head|||54|7054 +3000|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|1339|0|2|Nordsiek|Raye|2978|Delaware|F|Daughter|||22|7055 +3000|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|1339|0|3|Nordsiek|Stephen|2980|Indiana|F|Daughter|||20|7056 +3000|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|1339|0|4|Nordsiek|Evonne|2986|Connecticut|F|Daughter|||14|7057 +3000|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|1339|0|5|Nordsiek|Hester|2988|Alabama|F|Daughter|||12|7058 +3000|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|1339|0|6|Nordsiek|Santiago|2990|Maine|M|Son|||10|7059 +3000|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|1339|0|7|Nordsiek|Ben|2998|Malta|M|Son|||2|7060 +3000|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|1339|0|8|Nordsiek|Landon|3000|Latvia|M|Son|||0|7061 + +3000|NM|Santa Fe County|Cuartelez CDP|1340|0|1|Hadley|Nolan Ezra|2964|Michigan|M|Head|||36|7062 +3000|NM|Santa Fe County|Cuartelez CDP|1340|0|2|Hadley|Josiah|2992|Texas|M|Son|||8|7063 +3000|NM|Santa Fe County|Cuartelez CDP|1340|0|3|Hadley|Leann|2998|Iowa|F|Daughter|||2|7064 +3000|NM|Santa Fe County|Cuartelez CDP|1340|0|4|Hadley|Hong|3000|Cyprus|M|Son|||0|7065 + +3000|MN|Hennepin County, Wright County|Hanover city|1341|0|1|Parker|Noble Scottie|2941|Montana|M|Head|||59|7066 +3000|MN|Hennepin County, Wright County|Hanover city|1341|0|2|Parker|Norene|2947|North Carolina|F|Spouse|||53|7067 +3000|MN|Hennepin County, Wright County|Hanover city|1341|0|3|Parker|Erasmo|2971|American Samoa|M|Son|||29|7068 +3000|MN|Hennepin County, Wright County|Hanover city|1341|0|4|Parker|Toney|2983|Colorado|M|Son|||17|7069 +3000|MN|Hennepin County, Wright County|Hanover city|1341|0|5|Parker|Katelyn Hiroko|2985|New Jersey|F|Daughter|||15|7070 +3000|MN|Hennepin County, Wright County|Hanover city|1341|0|6|Parker|Gregg|2989|California|M|Son|||11|7071 +3000|MN|Hennepin County, Wright County|Hanover city|1341|0|7|Parker|Bethann|2993|Benin|F|Daughter|||7|7072 +3000|MN|Hennepin County, Wright County|Hanover city|1341|0|8|Parker|Edmundo|2995|North Carolina|M|Son|||5|7073 + +3000|MN|Blue Earth County|Eagle Lake city|1342|0|1|Jackson|Tyler Frankie|2939|Virginia|M|Head|||61|7074 +3000|MN|Blue Earth County|Eagle Lake city|1342|0|2|Jackson|Dedra|2963|Wisconsin|F|Spouse|||37|7075 +3000|MN|Blue Earth County|Eagle Lake city|1342|0|3|Jackson|Debbi|2985|Idaho|F|Daughter|||15|7076 +3000|MN|Blue Earth County|Eagle Lake city|1342|0|4|Jackson|Hobert|2989|Montana|M|Son|||11|7077 +3000|MN|Blue Earth County|Eagle Lake city|1342|0|5|Jackson|Una|2991|Mississippi|F|Daughter|||9|7078 +3000|MN|Blue Earth County|Eagle Lake city|1342|0|6|Jackson|Marget|2995|Macedonia, The Former Yugoslav Republic Of|F|Daughter|||5|7079 +3000|MN|Blue Earth County|Eagle Lake city|1342|0|7|Jackson|Louis|2997|Rhode Island|M|Son|||3|7080 + +3000|PA|Schuylkill County|New Castle township|1343|0|1|Zurita|Thaddeus|2966|Maine|M|Head|||34|7081 +3000|PA|Schuylkill County|New Castle township|1343|0|2|Zurita|Porsha|2969|North Dakota|F|Spouse|||31|7082 +3000|PA|Schuylkill County|New Castle township|1343|0|3|Zurita|Aja|2989|Alabama|F|Daughter|||11|7083 +3000|PA|Schuylkill County|New Castle township|1343|0|4|Zurita|Wilber Anton|2991|Utah|M|Son|||9|7084 +3000|PA|Schuylkill County|New Castle township|1343|0|5|Zurita|Gerald|2997|Tennessee|M|Son|||3|7085 +3000|PA|Schuylkill County|New Castle township|1343|0|6|Zurita|Latrice|2999|Louisiana|F|Daughter|||1|7086 + +3000|WI|Barron County|Lakeland town|1344|0|1|Kupres|Arden Anderson|2956|Virginia|M|Head|||44|7087 +3000|WI|Barron County|Lakeland town|1344|0|2|Kupres|Meaghan|2964|South Carolina|F|Spouse|||36|7088 +3000|WI|Barron County|Lakeland town|1344|0|3|Kupres|Miguel|2984|Indiana|M|Son|||16|7089 +3000|WI|Barron County|Lakeland town|1344|0|4|Kupres|Junie|2994|Oregon|F|Daughter|||6|7090 +3000|WI|Barron County|Lakeland town|1344|0|5|Kupres|Tran|3000|Pitcairn|F|Daughter|||0|7091 + +3000|KS|Ottawa County|Delphos city|1345|0|1|Dupree|Darius Dee|2951|South Carolina|M|Head|||49|7092 +3000|KS|Ottawa County|Delphos city|1345|0|2|Dupree|Darnell|2968|Utah|F|Spouse|||32|7093 +3000|KS|Ottawa County|Delphos city|1345|0|3|Dupree|Mckinley|2992|Seychelles|M|Son|||8|7094 +3000|KS|Ottawa County|Delphos city|1345|0|4|Dupree|Gerda|2994|Michigan|F|Daughter|||6|7095 +3000|KS|Ottawa County|Delphos city|1345|0|5|Dupree|Bobbie|2996|Florida|M|Son|||4|7096 +3000|KS|Ottawa County|Delphos city|1345|0|6|Dupree|Kendrick|3000|Chad|M|Son|||0|7097 + +3000|IL|Cook County|Kenilworth village|1346|0|1|Frishman|Brendan Tim|2973|South Carolina|M|Head|||27|7098 +3000|IL|Cook County|Kenilworth village|1346|0|2|Frishman|Cayla Evelynn|2983|New Mexico|F|Spouse|||17|7099 + +3000|MO|Stoddard County|Penermon village|1347|0|1|Lovenduski|Dee Marion|2942|Oklahoma|M|Head|||58|7100 +3000|MO|Stoddard County|Penermon village|1347|0|2|Lovenduski|Loyce Magdalena|2959|Maine|F|Spouse|||41|7101 +3000|MO|Stoddard County|Penermon village|1347|0|3|Lovenduski|Laveta|2985|Michigan|F|Daughter|||15|7102 +3000|MO|Stoddard County|Penermon village|1347|0|4|Lovenduski|Angie|2987|Nevada|F|Daughter|||13|7103 +3000|MO|Stoddard County|Penermon village|1347|0|5|Lovenduski|Gretta|2989|Utah|F|Daughter|||11|7104 +3000|MO|Stoddard County|Penermon village|1347|0|6|Lovenduski|Nolan|2991|Tonga|M|Son|||9|7105 +3000|MO|Stoddard County|Penermon village|1347|0|7|Lovenduski|Eusebio|2993|British Indian Ocean Territory|M|Son|||7|7106 +3000|MO|Stoddard County|Penermon village|1347|0|8|Lovenduski|Jaime|2995|Indiana|M|Son|||5|7107 + +3000|MN|Lake of the Woods County|Wabanica township|1348|0|1|Mynatt|Fausto Lyle|2965|South Dakota|M|Head|||35|7108 +3000|MN|Lake of the Woods County|Wabanica township|1348|0|2|Mynatt|Bernice|2982|Maryland|F|Spouse|||18|7109 + +3000|KS|Marion County|Ramona city|1349|0|1|Stanaway|Kerry Raymon|2938|New Mexico|M|Head|||62|7110 +3000|KS|Marion County|Ramona city|1349|0|2|Stanaway|Tracy|2948|Colorado|F|Spouse|||52|7111 +3000|KS|Marion County|Ramona city|1349|0|3|Stanaway|Markus|2972|Delaware|M|Son|||28|7112 +3000|KS|Marion County|Ramona city|1349|0|4|Stanaway|Rey Orval|2976|Oklahoma|M|Son|||24|7113 +3000|KS|Marion County|Ramona city|1349|0|5|Stanaway|Ashlee|2986|Holy See (vatican City State)|F|Daughter|||14|7114 +3000|KS|Marion County|Ramona city|1349|0|6|Stanaway|Diana|2996|North Carolina|F|Daughter|||4|7115 + +3000|NY|Rockland County|West Nyack CDP|1350|0|1|Stribling|Jesus Alphonse|2955|Utah|M|Head|||45|7116 +3000|NY|Rockland County|West Nyack CDP|1350|0|2|Stribling|Apolonia|2956|Idaho|F|Spouse|||44|7117 +3000|NY|Rockland County|West Nyack CDP|1350|0|3|Stribling|Nestor|2976|Nebraska|M|Son|||24|7118 +3000|NY|Rockland County|West Nyack CDP|1350|0|4|Stribling|Marcell|2980|Oregon|F|Daughter|||20|7119 +3000|NY|Rockland County|West Nyack CDP|1350|0|5|Stribling|Zackary|2982|New Hampshire|M|Son|||18|7120 +3000|NY|Rockland County|West Nyack CDP|1350|0|6|Stribling|Shavon|2986|Delaware|F|Daughter|||14|7121 +3000|NY|Rockland County|West Nyack CDP|1350|0|7|Stribling|Dick|2994|Arizona|M|Son|||6|7122 +3000|NY|Rockland County|West Nyack CDP|1350|0|8|Stribling|Francis|2996|South Carolina|M|Son|||4|7123 + +3000|ND|Towner County|Perth city|1351|0|1|Duma|Lizzette|2980|New Mexico|F|Head|||20|7124 +3000|ND|Towner County|Perth city|1351|0|2|Duma|Val|3000|Maryland|M|Son|||0|7125 + +3000|AZ|Maricopa County|Wittmann CDP|1352|0|1|Yerkey|Fred Jess|2970|Minnesota|M|Head|||30|7126 +3000|AZ|Maricopa County|Wittmann CDP|1352|0|2|Yerkey|Mellie|2970|Florida|F|Spouse|||30|7127 +3000|AZ|Maricopa County|Wittmann CDP|1352|0|3|Yerkey|Vera|2990|Mauritius|F|Daughter|||10|7128 +3000|AZ|Maricopa County|Wittmann CDP|1352|0|4|Yerkey|Lorinda|2992|Malaysia|F|Daughter|||8|7129 +3000|AZ|Maricopa County|Wittmann CDP|1352|0|5|Yerkey|Preston|3000|Kansas|M|Son|||0|7130 + +3000|NJ|Somerset County|Somerset CDP|1353|0|1|Vars|Emory Gregory|2954|Illinois|M|Head|||46|7131 +3000|NJ|Somerset County|Somerset CDP|1353|0|2|Vars|Laree|2962|Louisiana|F|Spouse|||38|7132 +3000|NJ|Somerset County|Somerset CDP|1353|0|3|Vars|Hong|2982|Washington|M|Son|||18|7133 +3000|NJ|Somerset County|Somerset CDP|1353|0|4|Vars|Renato|2984|Connecticut|M|Son|||16|7134 +3000|NJ|Somerset County|Somerset CDP|1353|0|5|Vars|Marvis|2988|Tennessee|F|Daughter|||12|7135 +3000|NJ|Somerset County|Somerset CDP|1353|0|6|Vars|Dean|2992|Cote D'ivoire|M|Son|||8|7136 +3000|NJ|Somerset County|Somerset CDP|1353|0|7|Vars|Edgardo|2994|Hawaii|M|Son|||6|7137 +3000|NJ|Somerset County|Somerset CDP|1353|0|8|Vars|Margorie|2996|Nebraska|F|Daughter|||4|7138 +3000|NJ|Somerset County|Somerset CDP|1353|0|9|Vars|Leonard|3000|Connecticut|M|Son|||0|7139 + +3000|PA|Washington County|West Middletown borough|1354|0|1|Lamberto|Tyson Royce|2963|Delaware|M|Head|||37|7140 +3000|PA|Washington County|West Middletown borough|1354|0|2|Lamberto|Louann Loura|2977|Palau|F|Spouse|||23|7141 +3000|PA|Washington County|West Middletown borough|1354|0|3|Lamberto|Chase|2997|Alabama|M|Son|||3|7142 + +3000|PA|Crawford County|Woodcock township|1355|0|1|Edwards|Percy Dion|2944|Texas|M|Head|||56|7143 +3000|PA|Crawford County|Woodcock township|1355|0|2|Edwards|Kendall|2972|West Virginia|M|Son|||28|7144 +3000|PA|Crawford County|Woodcock township|1355|0|3|Edwards|Omega|2980|Florida|F|Daughter|||20|7145 +3000|PA|Crawford County|Woodcock township|1355|0|4|Edwards|Florence|2990|Azerbaijan|F|Daughter|||10|7146 +3000|PA|Crawford County|Woodcock township|1355|0|5|Edwards|Shenika|2992|Congo|F|Daughter|||8|7147 + +3000|WI|Marathon County|Rothschild village|1356|0|1|Cantu|Willy Deangelo|2956|Kentucky|M|Head|||44|7148 +3000|WI|Marathon County|Rothschild village|1356|0|2|Cantu|Suzy|2953|California|F|Spouse|||47|7149 +3000|WI|Marathon County|Rothschild village|1356|0|3|Cantu|Shella|2975|Kuwait|F|Daughter|||25|7150 +3000|WI|Marathon County|Rothschild village|1356|0|4|Cantu|Yukiko Reagan|2987|Illinois|F|Daughter|||13|7151 +3000|WI|Marathon County|Rothschild village|1356|0|5|Cantu|Art|2991|Ohio|M|Son|||9|7152 +3000|WI|Marathon County|Rothschild village|1356|0|6|Cantu|Kari Flossie|2993|New Jersey|F|Daughter|||7|7153 +3000|WI|Marathon County|Rothschild village|1356|0|7|Cantu|Randall|2999|Kentucky|M|Son|||1|7154 + +3000|PA|Beaver County|Midland borough|1357|0|1|Bradley|Casey Cyril|2945|Arkansas|M|Head|||55|7155 +3000|PA|Beaver County|Midland borough|1357|0|2|Bradley|Nicolas Leland|2988|Algeria|M|Son|||12|7156 +3000|PA|Beaver County|Midland borough|1357|0|3|Bradley|Dario|2992|Texas|M|Son|||8|7157 +3000|PA|Beaver County|Midland borough|1357|0|4|Bradley|Ulysses|2994|Montana|M|Son|||6|7158 +3000|PA|Beaver County|Midland borough|1357|0|5|Bradley|Gayle|2996|Ethiopia|M|Son|||4|7159 +3000|PA|Beaver County|Midland borough|1357|0|6|Bradley|Cristopher|2998|Idaho|M|Son|||2|7160 + +3000|MN|Lac qui Parle County|Camp Release township|1358|0|1|Mook|Vance Edwardo|2951|Maryland|M|Head|||49|7161 +3000|MN|Lac qui Parle County|Camp Release township|1358|0|2|Mook|Leola|2955|Louisiana|F|Spouse|||45|7162 +3000|MN|Lac qui Parle County|Camp Release township|1358|0|3|Mook|Arminda|2975|Ohio|F|Daughter|||25|7163 +3000|MN|Lac qui Parle County|Camp Release township|1358|0|4|Mook|Lashaun|2991|Maine|F|Daughter|||9|7164 +3000|MN|Lac qui Parle County|Camp Release township|1358|0|5|Mook|Gale|2993|North Carolina|M|Son|||7|7165 +3000|MN|Lac qui Parle County|Camp Release township|1358|0|6|Mook|Taunya|2995|New York|F|Daughter|||5|7166 + +3000|PA|Allegheny County|Reserve township|1359|0|1|Boutot|Charlie Robin|2977|Thailand|M|Head|||23|7167 +3000|PA|Allegheny County|Reserve township|1359|0|2|Boutot|Janett|2974|Wisconsin|F|Spouse|||26|7168 +3000|PA|Allegheny County|Reserve township|1359|0|3|Boutot|Stewart|2994|North Dakota|M|Son|||6|7169 +3000|PA|Allegheny County|Reserve township|1359|0|4|Boutot|Norberto Boyce|3000|Turkey|M|Son|||0|7170 + +3000|NM|Quay County|Tucumcari city|1360|0|1|Russell|Rodolfo Joseph|2953|Georgia|M|Head|||47|7171 +3000|NM|Quay County|Tucumcari city|1360|0|2|Russell|Noe|2979|Montana|M|Son|||21|7172 +3000|NM|Quay County|Tucumcari city|1360|0|3|Russell|Burton|2985|Texas|M|Son|||15|7173 +3000|NM|Quay County|Tucumcari city|1360|0|4|Russell|Adan Morton|2987|North Carolina|M|Son|||13|7174 +3000|NM|Quay County|Tucumcari city|1360|0|5|Russell|Silvia|2989|Pennsylvania|F|Daughter|||11|7175 +3000|NM|Quay County|Tucumcari city|1360|0|6|Russell|Shelby|2999|Rhode Island|M|Son|||1|7176 + +3000|WV|Fayette County|Ansted town|1361|0|1|Ekstein|Jarred Alonso|2956|Minnesota|M|Head|||44|7177 +3000|WV|Fayette County|Ansted town|1361|0|2|Ekstein|Lolita|2983|Maine|F|Daughter|||17|7178 +3000|WV|Fayette County|Ansted town|1361|0|3|Ekstein|Kenneth|2985|Kansas|M|Son|||15|7179 +3000|WV|Fayette County|Ansted town|1361|0|4|Ekstein|Georgiann|2989|Oregon|F|Daughter|||11|7180 +3000|WV|Fayette County|Ansted town|1361|0|5|Ekstein|Vanita|2991|Vermont|F|Daughter|||9|7181 +3000|WV|Fayette County|Ansted town|1361|0|6|Ekstein|Nelson|2995|Ohio|M|Son|||5|7182 + +3000|CA|Kern County|Boron CDP|1362|0|1|Kipling|Markus Kennith|2951|South Georgia And The South Sandwich Islands|M|Head|||49|7183 +3000|CA|Kern County|Boron CDP|1362|0|2|Kipling|Tamisha|2984|Nebraska|F|Daughter|||16|7184 +3000|CA|Kern County|Boron CDP|1362|0|3|Kipling|Margeret|2988|Virginia|F|Daughter|||12|7185 +3000|CA|Kern County|Boron CDP|1362|0|4|Kipling|Samatha|2994|Kentucky|F|Daughter|||6|7186 +3000|CA|Kern County|Boron CDP|1362|0|5|Kipling|Micheal|2998|North Dakota|M|Son|||2|7187 + +3000|MO|Clinton County, DeKalb County|Osborn city|1363|0|1|Shiraishi|Christopher Arnulfo|2976|Maine|M|Head|||24|7188 +3000|MO|Clinton County, DeKalb County|Osborn city|1363|0|2|Shiraishi|Stefanie|2977|Florida|F|Spouse|||23|7189 +3000|MO|Clinton County, DeKalb County|Osborn city|1363|0|3|Shiraishi|Bruna Kimbery|2997|Guinea|F|Daughter|||3|7190 + +3000|IA|Washington County|Kalona city|1364|0|1|Schmeling|Neil Anthony|2937|Macedonia, The Former Yugoslav Republic Of|M|Head|||63|7191 +3000|IA|Washington County|Kalona city|1364|0|2|Schmeling|Shandi|2953|Washington|F|Spouse|||47|7192 +3000|IA|Washington County|Kalona city|1364|0|3|Schmeling|Trista|2977|Utah|F|Daughter|||23|7193 +3000|IA|Washington County|Kalona city|1364|0|4|Schmeling|Garland|2979|Massachusetts|M|Son|||21|7194 +3000|IA|Washington County|Kalona city|1364|0|5|Schmeling|Adan|2987|Mississippi|M|Son|||13|7195 +3000|IA|Washington County|Kalona city|1364|0|6|Schmeling|Bryant|2995|Eritrea|M|Son|||5|7196 +3000|IA|Washington County|Kalona city|1364|0|7|Schmeling|Stephnie|2997|Hawaii|F|Daughter|||3|7197 + +3000|VA|Chesterfield County|Woodlake CDP|1365|0|1|Paywa|Foster Erick|2951|Nebraska|M|Head|||49|7198 +3000|VA|Chesterfield County|Woodlake CDP|1365|0|2|Paywa|Nikki|2974|Alabama|F|Daughter|||26|7199 +3000|VA|Chesterfield County|Woodlake CDP|1365|0|3|Paywa|Brigette Mafalda|2986|Reunion|F|Daughter|||14|7200 +3000|VA|Chesterfield County|Woodlake CDP|1365|0|4|Paywa|Tyson|2988|Slovakia|M|Son|||12|7201 +3000|VA|Chesterfield County|Woodlake CDP|1365|0|5|Paywa|Troy|2990|Oregon|F|Daughter|||10|7202 +3000|VA|Chesterfield County|Woodlake CDP|1365|0|6|Paywa|Lawerence|2992|Illinois|M|Son|||8|7203 +3000|VA|Chesterfield County|Woodlake CDP|1365|0|7|Paywa|Elvin|2994|Massachusetts|M|Son|||6|7204 +3000|VA|Chesterfield County|Woodlake CDP|1365|0|8|Paywa|Librada|2998|Virgin Islands, British|F|Daughter|||2|7205 + +3000|TX|Karnes County|Runge town|1366|0|1|Baruffa|Adalberto Hassan|2946|Maryland|M|Head|||54|7206 +3000|TX|Karnes County|Runge town|1366|0|2|Baruffa|Ashlea|2968|Alabama|F|Spouse|||32|7207 +3000|TX|Karnes County|Runge town|1366|0|3|Baruffa|Kerry|2990|Delaware|M|Son|||10|7208 +3000|TX|Karnes County|Runge town|1366|0|4|Baruffa|Von Teodoro|2992|Tennessee|M|Son|||8|7209 +3000|TX|Karnes County|Runge town|1366|0|5|Baruffa|Teresa|2994|Martinique|F|Daughter|||6|7210 + +3000|FL|Holmes County|Noma town|1367|0|1|Previte|Felica|2971|Pitcairn|F|Head|||29|7211 +3000|FL|Holmes County|Noma town|1367|0|2|Previte|Bob|2991|Nevada|M|Son|||9|7212 +3000|FL|Holmes County|Noma town|1367|0|3|Previte|Leon|2995|Bermuda|M|Son|||5|7213 + +3000|IA|Monona County|Ute city|1368|0|1|Howell|Curt Gregory|2944|Virginia|M|Head|||56|7214 +3000|IA|Monona County|Ute city|1368|0|2|Howell|Stefan|2969|Delaware|M|Son|||31|7215 +3000|IA|Monona County|Ute city|1368|0|3|Howell|Mitzie|2977|Liberia|F|Daughter|||23|7216 +3000|IA|Monona County|Ute city|1368|0|4|Howell|Keisha|2981|Tennessee|F|Daughter|||19|7217 +3000|IA|Monona County|Ute city|1368|0|5|Howell|Sterling|2983|Idaho|M|Son|||17|7218 +3000|IA|Monona County|Ute city|1368|0|6|Howell|Venus|2985|Virginia|F|Daughter|||15|7219 +3000|IA|Monona County|Ute city|1368|0|7|Howell|Jamar Raymundo|2987|Florida|M|Son|||13|7220 +3000|IA|Monona County|Ute city|1368|0|8|Howell|Brittany Takako|2999|France|F|Daughter|||1|7221 + +3000|AR|Conway County|Plumerville city|1369|0|1|Brunk|Else|2951|Georgia|F|Head|||49|7222 +3000|AR|Conway County|Plumerville city|1369|0|2|Brunk|Winfred Eric|2975|Nevada|M|Son|||25|7223 +3000|AR|Conway County|Plumerville city|1369|0|3|Brunk|Mackenzie|2979|Hawaii|F|Daughter|||21|7224 +3000|AR|Conway County|Plumerville city|1369|0|4|Brunk|Clorinda|2985|Colorado|F|Daughter|||15|7225 +3000|AR|Conway County|Plumerville city|1369|0|5|Brunk|Yasuko Libbie|2989|Liberia|F|Daughter|||11|7226 +3000|AR|Conway County|Plumerville city|1369|0|6|Brunk|Rodney Tanner|2993|Massachusetts|M|Son|||7|7227 +3000|AR|Conway County|Plumerville city|1369|0|7|Brunk|Loyd|2995|Nevada|M|Son|||5|7228 + +3000|IL|LaSalle County|Rutland village|1370|0|1|Starkey|Micheal Pedro|2962|Mali|M|Head|||38|7229 +3000|IL|LaSalle County|Rutland village|1370|0|2|Starkey|Tajuana|2970|Delaware|F|Spouse|||30|7230 +3000|IL|LaSalle County|Rutland village|1370|0|3|Starkey|Percy|2990|Kosovo|M|Son|||10|7231 +3000|IL|LaSalle County|Rutland village|1370|0|4|Starkey|Ted|2992|Washington|M|Son|||8|7232 +3000|IL|LaSalle County|Rutland village|1370|0|5|Starkey|Quiana|2998|Arkansas|F|Daughter|||2|7233 + +3000|MN|Le Sueur County|Waterville city|1371|0|1|Lemieux|Mitch|2977|British Indian Ocean Territory|M|Head|||23|7234 +3000|MN|Le Sueur County|Waterville city|1371|0|2|Lemieux|Sheena|2976|Alabama|F|Spouse|||24|7235 +3000|MN|Le Sueur County|Waterville city|1371|0|3|Lemieux|Matthew|2996|Oregon|F|Daughter|||4|7236 +3000|MN|Le Sueur County|Waterville city|1371|0|4|Lemieux|Greg|2998|West Virginia|M|Son|||2|7237 +3000|MN|Le Sueur County|Waterville city|1371|0|5|Lemieux|Renae|3000|Germany|F|Daughter|||0|7238 + +3000|PA|Lancaster County|West Cocalico township|1372|0|1|Tappin|Mathew Heath|2945|New Mexico|M|Head|||55|7239 +3000|PA|Lancaster County|West Cocalico township|1372|0|2|Tappin|Terica|2952|Connecticut|F|Spouse|||48|7240 +3000|PA|Lancaster County|West Cocalico township|1372|0|3|Tappin|Erich Edgardo|2978|South Carolina|M|Son|||22|7241 +3000|PA|Lancaster County|West Cocalico township|1372|0|4|Tappin|Nancee|2986|Alaska|F|Daughter|||14|7242 +3000|PA|Lancaster County|West Cocalico township|1372|0|5|Tappin|Hershel Jake|2988|South Georgia And The South Sandwich Islands|M|Son|||12|7243 +3000|PA|Lancaster County|West Cocalico township|1372|0|6|Tappin|Eveline|2992|West Virginia|F|Daughter|||8|7244 +3000|PA|Lancaster County|West Cocalico township|1372|0|7|Tappin|Tomoko|2998|Indiana|F|Daughter|||2|7245 +3000|PA|Lancaster County|West Cocalico township|1372|0|8|Tappin|Lakita|3000|South Dakota|F|Daughter|||0|7246 + +3000|IL|Scott County|Winchester city|1373|0|1|Ramage|Christian Edison|2963|Louisiana|M|Head|||37|7247 +3000|IL|Scott County|Winchester city|1373|0|2|Ramage|Larraine|2984|New Mexico|F|Spouse|||16|7248 + +3000|ME|Washington County|Roque Bluffs town|1374|0|1|Tustison|Colton Horacio|2937|Arizona|M|Head|||63|7249 +3000|ME|Washington County|Roque Bluffs town|1374|0|2|Tustison|Andrew|2957|Oregon|F|Spouse|||43|7250 +3000|ME|Washington County|Roque Bluffs town|1374|0|3|Tustison|Le Charlene|2993|Maine|F|Daughter|||7|7251 +3000|ME|Washington County|Roque Bluffs town|1374|0|4|Tustison|Karine|2995|South Carolina|F|Daughter|||5|7252 +3000|ME|Washington County|Roque Bluffs town|1374|0|5|Tustison|Arlie|2997|Texas|M|Son|||3|7253 + +3000|WV|Raleigh County|Helen CDP|1375|0|1|Sepe|Ramiro Tim|2973|Colorado|M|Head|||27|7254 +3000|WV|Raleigh County|Helen CDP|1375|0|2|Sepe|Leonila|2983|California|F|Spouse|||17|7255 + +3000|FL|Hernando County|Garden Grove CDP|1376|0|1|Franzoni|Deshawn Royce|2951|Connecticut|M|Head|||49|7256 +3000|FL|Hernando County|Garden Grove CDP|1376|0|2|Franzoni|Letisha|2968|Nevada|F|Daughter|||32|7257 +3000|FL|Hernando County|Garden Grove CDP|1376|0|3|Franzoni|Alexa|2986|Vermont|F|Daughter|||14|7258 +3000|FL|Hernando County|Garden Grove CDP|1376|0|4|Franzoni|Liane|2988|Barbados|F|Daughter|||12|7259 +3000|FL|Hernando County|Garden Grove CDP|1376|0|5|Franzoni|Jackqueline|2990|South Carolina|F|Daughter|||10|7260 +3000|FL|Hernando County|Garden Grove CDP|1376|0|6|Franzoni|Marybeth|2994|Ukraine|F|Daughter|||6|7261 + +3000|NE|Dakota County|Homer village|1377|0|1|Mccauley|Sherman Fermin|2937|Nebraska|M|Head|||63|7262 +3000|NE|Dakota County|Homer village|1377|0|2|Mccauley|Ronda|2950|South Carolina|F|Spouse|||50|7263 +3000|NE|Dakota County|Homer village|1377|0|3|Mccauley|Delicia|2990|Hawaii|F|Daughter|||10|7264 +3000|NE|Dakota County|Homer village|1377|0|4|Mccauley|Shyla|2994|Rhode Island|F|Daughter|||6|7265 +3000|NE|Dakota County|Homer village|1377|0|5|Mccauley|Foster|2996|New Jersey|M|Son|||4|7266 +3000|NE|Dakota County|Homer village|1377|0|6|Mccauley|Tiny Terra|3000|New York|F|Daughter|||0|7267 + +3000|NY|Herkimer County|Columbia town|1378|0|1|Kowalski|Roderick Cleo|2953|Morocco|M|Head|||47|7268 +3000|NY|Herkimer County|Columbia town|1378|0|2|Kowalski|Desirae|2958|Massachusetts|F|Spouse|||42|7269 +3000|NY|Herkimer County|Columbia town|1378|0|3|Kowalski|Hal|2984|North Carolina|M|Son|||16|7270 +3000|NY|Herkimer County|Columbia town|1378|0|4|Kowalski|Victor|2986|Iowa|M|Son|||14|7271 +3000|NY|Herkimer County|Columbia town|1378|0|5|Kowalski|Classie|2990|Delaware|F|Daughter|||10|7272 +3000|NY|Herkimer County|Columbia town|1378|0|6|Kowalski|Donald|2992|Nevada|M|Son|||8|7273 +3000|NY|Herkimer County|Columbia town|1378|0|7|Kowalski|Jody|2996|Wisconsin|M|Son|||4|7274 + +3000|NY|Oneida County|Rome city|1379|0|1|Briggs|Weston Rick|2954|Washington|M|Head|||46|7275 +3000|NY|Oneida County|Rome city|1379|0|2|Briggs|Glennie|2953|Wyoming|F|Spouse|||47|7276 +3000|NY|Oneida County|Rome city|1379|0|3|Briggs|Leonel|2973|Pennsylvania|M|Son|||27|7277 +3000|NY|Oneida County|Rome city|1379|0|4|Briggs|Maxwell|2981|Montana|M|Son|||19|7278 +3000|NY|Oneida County|Rome city|1379|0|5|Briggs|Casimira Dianna|2985|Oregon|F|Daughter|||15|7279 +3000|NY|Oneida County|Rome city|1379|0|6|Briggs|Milagros Eun|2989|Moldova, Republic Of|F|Daughter|||11|7280 +3000|NY|Oneida County|Rome city|1379|0|7|Briggs|Zelda|2991|Connecticut|F|Daughter|||9|7281 +3000|NY|Oneida County|Rome city|1379|0|8|Briggs|Jan|2997|Puerto Rico|F|Daughter|||3|7282 + +3000|VA|Albemarle County|Esmont CDP|1380|0|1|Thomas|Jerold Buck|2941|Tennessee|M|Head|||59|7283 +3000|VA|Albemarle County|Esmont CDP|1380|0|2|Thomas|Thalia|2946|New Mexico|F|Spouse|||54|7284 +3000|VA|Albemarle County|Esmont CDP|1380|0|3|Thomas|Regine|2966|Panama|F|Daughter|||34|7285 +3000|VA|Albemarle County|Esmont CDP|1380|0|4|Thomas|Florinda Nellie|2972|Kansas|F|Daughter|||28|7286 +3000|VA|Albemarle County|Esmont CDP|1380|0|5|Thomas|Grant|2986|Florida|M|Son|||14|7287 +3000|VA|Albemarle County|Esmont CDP|1380|0|6|Thomas|Justin|2988|Benin|M|Son|||12|7288 +3000|VA|Albemarle County|Esmont CDP|1380|0|7|Thomas|Adalberto|2990|Georgia|M|Son|||10|7289 +3000|VA|Albemarle County|Esmont CDP|1380|0|8|Thomas|Jeremiah|2994|Pennsylvania|M|Son|||6|7290 +3000|VA|Albemarle County|Esmont CDP|1380|0|9|Thomas|Asa|3000|Virginia|M|Son|||0|7291 + +3000|NY|Oneida County|Boonville village|1381|0|1|Schmits|Howard Boyce|2943|Colorado|M|Head|||57|7292 +3000|NY|Oneida County|Boonville village|1381|0|2|Schmits|Phuong|2960|Delaware|F|Spouse|||40|7293 +3000|NY|Oneida County|Boonville village|1381|0|3|Schmits|Desiree|2988|Vermont|F|Daughter|||12|7294 +3000|NY|Oneida County|Boonville village|1381|0|4|Schmits|Betty|2990|Illinois|F|Daughter|||10|7295 +3000|NY|Oneida County|Boonville village|1381|0|5|Schmits|Devon|2996|New York|M|Son|||4|7296 +3000|NY|Oneida County|Boonville village|1381|0|6|Schmits|Theo|3000|Louisiana|M|Son|||0|7297 + +3000|ME|Kennebec County|Randolph CDP|1382|0|1|Fahlstedt|Johnie Percy|2948|Kansas|M|Head|||52|7298 +3000|ME|Kennebec County|Randolph CDP|1382|0|2|Fahlstedt|Amanda|2962|Georgia|F|Spouse|||38|7299 +3000|ME|Kennebec County|Randolph CDP|1382|0|3|Fahlstedt|Alexis|2984|Michigan|M|Son|||16|7300 +3000|ME|Kennebec County|Randolph CDP|1382|0|4|Fahlstedt|Vincent Kurtis|2986|Wisconsin|M|Son|||14|7301 +3000|ME|Kennebec County|Randolph CDP|1382|0|5|Fahlstedt|Anderson|2988|Maine|M|Son|||12|7302 +3000|ME|Kennebec County|Randolph CDP|1382|0|6|Fahlstedt|Demetrius|2992|Benin|M|Son|||8|7303 +3000|ME|Kennebec County|Randolph CDP|1382|0|7|Fahlstedt|Selena|2994|Mississippi|F|Daughter|||6|7304 +3000|ME|Kennebec County|Randolph CDP|1382|0|8|Fahlstedt|Denis|3000|Vanuatu|M|Son|||0|7305 + +3000|IL|DuPage County|Glen Ellyn village|1383|0|1|Vierthaler|Kasey Vito|2958|Colorado|M|Head|||42|7306 +3000|IL|DuPage County|Glen Ellyn village|1383|0|2|Vierthaler|Carline|2985|Connecticut|F|Daughter|||15|7307 +3000|IL|DuPage County|Glen Ellyn village|1383|0|3|Vierthaler|Lloyd Louie|2989|Wyoming|M|Son|||11|7308 +3000|IL|DuPage County|Glen Ellyn village|1383|0|4|Vierthaler|Erasmo|2991|Arizona|M|Son|||9|7309 +3000|IL|DuPage County|Glen Ellyn village|1383|0|5|Vierthaler|Rodolfo|2993|Ukraine|M|Son|||7|7310 + +3000|OR|Klamath County|Malin city|1384|0|1|Kuty|Cheree|2958|Kentucky|F|Head|||42|7311 +3000|OR|Klamath County|Malin city|1384|0|2|Kuty|Michel|2980|Washington|M|Son|||20|7312 +3000|OR|Klamath County|Malin city|1384|0|3|Kuty|Lamar|2986|Delaware|M|Son|||14|7313 +3000|OR|Klamath County|Malin city|1384|0|4|Kuty|Felix|2988|Indiana|M|Son|||12|7314 +3000|OR|Klamath County|Malin city|1384|0|5|Kuty|Edmund Man|2990|New York|M|Son|||10|7315 +3000|OR|Klamath County|Malin city|1384|0|6|Kuty|Ozell|2994|Minnesota|F|Daughter|||6|7316 +3000|OR|Klamath County|Malin city|1384|0|7|Kuty|Salome Kylee|2998|Brunei Darussalam|F|Daughter|||2|7317 + +3000|MT|Big Horn County|Muddy CDP|1385|0|1|Trillas|Mario Douglas|2964|Nevada|M|Head|||36|7318 +3000|MT|Big Horn County|Muddy CDP|1385|0|2|Trillas|Princess Ileana|2961|Georgia|F|Spouse|||39|7319 +3000|MT|Big Horn County|Muddy CDP|1385|0|3|Trillas|Brendan Dino|2981|Hawaii|M|Son|||19|7320 +3000|MT|Big Horn County|Muddy CDP|1385|0|4|Trillas|Xiao|2993|United Arab Emirates|F|Daughter|||7|7321 +3000|MT|Big Horn County|Muddy CDP|1385|0|5|Trillas|Nell Nicolle|2995|Michigan|F|Daughter|||5|7322 + +3000|WI|Langlade County|White Lake village|1386|0|1|Mendivil|Dee Theron|2944|Wisconsin|M|Head|||56|7323 +3000|WI|Langlade County|White Lake village|1386|0|2|Mendivil|Rene Kasey|2978|Ghana|F|Daughter|||22|7324 +3000|WI|Langlade County|White Lake village|1386|0|3|Mendivil|Aubrey|2982|Nevada|M|Son|||18|7325 +3000|WI|Langlade County|White Lake village|1386|0|4|Mendivil|Vincent|2986|Kansas|M|Son|||14|7326 +3000|WI|Langlade County|White Lake village|1386|0|5|Mendivil|Oralee Summer|2990|Arkansas|F|Daughter|||10|7327 +3000|WI|Langlade County|White Lake village|1386|0|6|Mendivil|Marisol|2992|Maine|F|Daughter|||8|7328 + +3000|WA|Yakima County|Gleed CDP|1387|0|1|Girauard|Tory Oren|2952|Central African Republic|M|Head|||48|7329 +3000|WA|Yakima County|Gleed CDP|1387|0|2|Girauard|Eliza|2968|Virginia|F|Spouse|||32|7330 +3000|WA|Yakima County|Gleed CDP|1387|0|3|Girauard|Marie|2992|Vermont|F|Daughter|||8|7331 +3000|WA|Yakima County|Gleed CDP|1387|0|4|Girauard|Warner Tristan|2996|Florida|M|Son|||4|7332 +3000|WA|Yakima County|Gleed CDP|1387|0|5|Girauard|Georgeanna|2998|Mississippi|F|Daughter|||2|7333 +3000|WA|Yakima County|Gleed CDP|1387|0|6|Girauard|Adolph|3000|Tennessee|M|Son|||0|7334 + +3000|HI|Hawaii County|Hawaiian Paradise Park CDP|1388|0|1|Sellers|Joel Bernie|2953|Vermont|M|Head|||47|7335 +3000|HI|Hawaii County|Hawaiian Paradise Park CDP|1388|0|2|Sellers|Anton|2980|Wisconsin|M|Son|||20|7336 +3000|HI|Hawaii County|Hawaiian Paradise Park CDP|1388|0|3|Sellers|Eli|2982|Florida|M|Son|||18|7337 +3000|HI|Hawaii County|Hawaiian Paradise Park CDP|1388|0|4|Sellers|Cynthia|2988|Montana|F|Daughter|||12|7338 +3000|HI|Hawaii County|Hawaiian Paradise Park CDP|1388|0|5|Sellers|Domenic|2992|Oklahoma|M|Son|||8|7339 +3000|HI|Hawaii County|Hawaiian Paradise Park CDP|1388|0|6|Sellers|Major|3000|Tennessee|M|Son|||0|7340 + +3000|PA|Dauphin County|Lower Swatara township|1389|0|1|Oconnor|Granville Cleo|2942|Rhode Island|M|Head|||58|7341 +3000|PA|Dauphin County|Lower Swatara township|1389|0|2|Oconnor|Alaina|2960|Texas|F|Spouse|||40|7342 +3000|PA|Dauphin County|Lower Swatara township|1389|0|3|Oconnor|Lawerence|2988|Michigan|M|Son|||12|7343 +3000|PA|Dauphin County|Lower Swatara township|1389|0|4|Oconnor|Aron|2990|Montana|M|Son|||10|7344 +3000|PA|Dauphin County|Lower Swatara township|1389|0|5|Oconnor|Kerry|2998|Louisiana|M|Son|||2|7345 + +3000|MA|Franklin County|Shelburne town|1390|0|1|Sakakeeny|Elvis Irwin|2976|New Hampshire|M|Head|||24|7346 +3000|MA|Franklin County|Shelburne town|1390|0|2|Sakakeeny|Elenore Lela|2977|New Jersey|F|Spouse|||23|7347 + +3000|WV|Grant County|Bayard town|1391|0|1|Randolph|Randolph Titus|2939|Wisconsin|M|Head|||61|7348 +3000|WV|Grant County|Bayard town|1391|0|2|Randolph|Sherilyn|2938|Tennessee|F|Spouse|||62|7349 +3000|WV|Grant County|Bayard town|1391|0|3|Randolph|Nisha Lakenya|2958|Maryland|F|Daughter|||42|7350 +3000|WV|Grant County|Bayard town|1391|0|4|Randolph|Tamie|2974|California|F|Daughter|||26|7351 +3000|WV|Grant County|Bayard town|1391|0|5|Randolph|Tad|2986|Saint Kitts And Nevis|M|Son|||14|7352 +3000|WV|Grant County|Bayard town|1391|0|6|Randolph|Terrilyn Nu|2988|Idaho|F|Daughter|||12|7353 +3000|WV|Grant County|Bayard town|1391|0|7|Randolph|Frankie|3000|Alabama|M|Son|||0|7354 + +3000|PR|San Germán Municipio|San Germán zona urbana|1392|0|1|Delucca|Britt Alphonso|2979|Kuwait|M|Head|||21|7355 +3000|PR|San Germán Municipio|San Germán zona urbana|1392|0|2|Delucca|Carmen|2976|Montana|F|Spouse|||24|7356 +3000|PR|San Germán Municipio|San Germán zona urbana|1392|0|3|Delucca|Ricky|2998|Rwanda|M|Son|||2|7357 + +3000|PA|Clarion County|Knox township|1393|0|1|Boger|Daryl Mauro|2967|Wyoming|M|Head|||33|7358 +3000|PA|Clarion County|Knox township|1393|0|2|Boger|Laine|2979|Pennsylvania|F|Spouse|||21|7359 +3000|PA|Clarion County|Knox township|1393|0|3|Boger|Ulysses|2999|Ohio|M|Son|||1|7360 + +3000|ID|Ada County, Canyon County|Star city|1394|0|1|Snowden|Wiley Micah|2984|Colorado|M|Head|||16|7361 +3000|ID|Ada County, Canyon County|Star city|1394|0|2|Snowden|Kiana|2981|Germany|F|Spouse|||19|7362 + +3000|MA|Plymouth County|Scituate town|1395|0|1|Mayers|Mikel|2941|Washington|M|Head|||59|7363 +3000|MA|Plymouth County|Scituate town|1395|0|2|Mayers|Jackqueline|2955|Kansas|F|Spouse|||45|7364 +3000|MA|Plymouth County|Scituate town|1395|0|3|Mayers|Shaneka|2981|Liberia|F|Daughter|||19|7365 +3000|MA|Plymouth County|Scituate town|1395|0|4|Mayers|Eugenio|2985|Egypt|M|Son|||15|7366 +3000|MA|Plymouth County|Scituate town|1395|0|5|Mayers|Vi|2987|Washington|F|Daughter|||13|7367 +3000|MA|Plymouth County|Scituate town|1395|0|6|Mayers|Savanna|2991|Alabama|F|Daughter|||9|7368 +3000|MA|Plymouth County|Scituate town|1395|0|7|Mayers|Oscar|2997|Tennessee|M|Son|||3|7369 + +3000|MO|Lincoln County|Truxton village|1396|0|1|Huertes|Zachery Damian|2937|Illinois|M|Head|||63|7370 +3000|MO|Lincoln County|Truxton village|1396|0|2|Huertes|Yung|2948|West Virginia|F|Spouse|||52|7371 +3000|MO|Lincoln County|Truxton village|1396|0|3|Huertes|Ty|2984|Texas|M|Son|||16|7372 +3000|MO|Lincoln County|Truxton village|1396|0|4|Huertes|Theda|2986|Pennsylvania|F|Daughter|||14|7373 +3000|MO|Lincoln County|Truxton village|1396|0|5|Huertes|Elden Monte|2988|Oregon|M|Son|||12|7374 +3000|MO|Lincoln County|Truxton village|1396|0|6|Huertes|Adrianna|2992|Michigan|F|Daughter|||8|7375 +3000|MO|Lincoln County|Truxton village|1396|0|7|Huertes|Vicki|3000|Massachusetts|F|Daughter|||0|7376 + +3000|WI|Waushara County|Poysippi town|1397|0|1|Espey|Virgil Andre|2957|Delaware|M|Head|||43|7377 +3000|WI|Waushara County|Poysippi town|1397|0|2|Espey|Genie|2959|Sierra Leone|F|Spouse|||41|7378 +3000|WI|Waushara County|Poysippi town|1397|0|3|Espey|Ken|2983|Illinois|M|Son|||17|7379 +3000|WI|Waushara County|Poysippi town|1397|0|4|Espey|Loren Hosea|2985|Arkansas|M|Son|||15|7380 +3000|WI|Waushara County|Poysippi town|1397|0|5|Espey|Freddie|2987|Iowa|M|Son|||13|7381 +3000|WI|Waushara County|Poysippi town|1397|0|6|Espey|Jessika|2995|Hawaii|F|Daughter|||5|7382 +3000|WI|Waushara County|Poysippi town|1397|0|7|Espey|Letty|2997|Idaho|F|Daughter|||3|7383 + +3000|HI|Kauai County|Hanapepe CDP|1398|0|1|Barnett|Augustine Marcos|2980|Nevada|M|Head|||20|7384 +3000|HI|Kauai County|Hanapepe CDP|1398|0|2|Barnett|Corine|2983|Oregon|F|Spouse|||17|7385 + +3000|MO|Maries County, Osage County|Argyle town|1399|0|1|Vignola|Carmelita|2959|New Hampshire|F|Head|||41|7386 +3000|MO|Maries County, Osage County|Argyle town|1399|0|2|Vignola|Kami|2985|Wisconsin|F|Daughter|||15|7387 +3000|MO|Maries County, Osage County|Argyle town|1399|0|3|Vignola|Tennille|2987|Aruba|F|Daughter|||13|7388 +3000|MO|Maries County, Osage County|Argyle town|1399|0|4|Vignola|Gregorio|2991|Wisconsin|M|Son|||9|7389 + +3000|VT|Windsor County|Rochester town|1400|0|1|Blackburn|Hermila|2967|New Jersey|F|Head|||33|7390 +3000|VT|Windsor County|Rochester town|1400|0|2|Blackburn|Katerine|2987|North Carolina|F|Daughter|||13|7391 +3000|VT|Windsor County|Rochester town|1400|0|3|Blackburn|Pearle|2989|Ohio|F|Daughter|||11|7392 +3000|VT|Windsor County|Rochester town|1400|0|4|Blackburn|Quentin|2993|Kazakstan|M|Son|||7|7393 + +3000|ME|Hancock County|Waltham town|1401|0|1|Berver|Deandre|2940|Pennsylvania|M|Head|||60|7394 +3000|ME|Hancock County|Waltham town|1401|0|2|Berver|Gracia|2964|Vermont|F|Spouse|||36|7395 +3000|ME|Hancock County|Waltham town|1401|0|3|Berver|Rivka|2986|Belize|F|Daughter|||14|7396 +3000|ME|Hancock County|Waltham town|1401|0|4|Berver|Diedra|2988|Maine|F|Daughter|||12|7397 +3000|ME|Hancock County|Waltham town|1401|0|5|Berver|Arline|2990|Indiana|F|Daughter|||10|7398 +3000|ME|Hancock County|Waltham town|1401|0|6|Berver|Russ|2994|Alaska|M|Son|||6|7399 + +3000|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|1|Adomaitis|Domingo Adrian|2942|Indiana|M|Head|||58|7400 +3000|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|2|Adomaitis|Theda Sharika|2963|Virginia|F|Spouse|||37|7401 +3000|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|3|Adomaitis|Oswaldo Dave|2985|Nevada|M|Son|||15|7402 +3000|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|4|Adomaitis|Alan Lane|2987|Anguilla|M|Son|||13|7403 +3000|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|5|Adomaitis|Carlos|2989|Cambodia|F|Daughter|||11|7404 +3000|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|6|Adomaitis|Virginia|2991|Idaho|F|Daughter|||9|7405 +3000|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|7|Adomaitis|Rosalba|2993|Louisiana|F|Daughter|||7|7406 +3000|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|8|Adomaitis|Isidra|2999|Guadeloupe|F|Daughter|||1|7407 + +3000|NH|Hillsborough County|Mason town|1403|0|1|Mildon|Micah Julio|2959|Utah|M|Head|||41|7408 +3000|NH|Hillsborough County|Mason town|1403|0|2|Mildon|Christeen Sheilah|2981|Mississippi|F|Spouse|||19|7409 + +3000|GA|Putnam County|Crooked Creek CDP|1404|0|1|Warnes|Aaron Brent|2957|New Hampshire|M|Head|||43|7410 +3000|GA|Putnam County|Crooked Creek CDP|1404|0|2|Warnes|Yolonda|2971|Bangladesh|F|Spouse|||29|7411 +3000|GA|Putnam County|Crooked Creek CDP|1404|0|3|Warnes|Reyes|2991|Peru|M|Son|||9|7412 +3000|GA|Putnam County|Crooked Creek CDP|1404|0|4|Warnes|Felipa|2993|Illinois|F|Daughter|||7|7413 +3000|GA|Putnam County|Crooked Creek CDP|1404|0|5|Warnes|Alaina|2995|North Dakota|F|Daughter|||5|7414 +3000|GA|Putnam County|Crooked Creek CDP|1404|0|6|Warnes|Lindsey|2997|Spain|M|Son|||3|7415 +3000|GA|Putnam County|Crooked Creek CDP|1404|0|7|Warnes|Particia|2999|Maine|F|Daughter|||1|7416 + +3000|VA|Pulaski County|Hiwassee CDP|1405|0|1|Johnson|Xavier Travis|2974|South Dakota|M|Head|||26|7417 +3000|VA|Pulaski County|Hiwassee CDP|1405|0|2|Johnson|Delora|2983|Maine|F|Spouse|||17|7418 + +3000|MI|Presque Isle County|Presque Isle Harbor CDP|1406|0|1|Unzueta|Luigi August|2939|Tokelau|M|Head|||61|7419 +3000|MI|Presque Isle County|Presque Isle Harbor CDP|1406|0|2|Unzueta|Jewel|2951|California|F|Spouse|||49|7420 +3000|MI|Presque Isle County|Presque Isle Harbor CDP|1406|0|3|Unzueta|Chas|2977|Tennessee|M|Son|||23|7421 +3000|MI|Presque Isle County|Presque Isle Harbor CDP|1406|0|4|Unzueta|Clemmie|2985|Indiana|F|Daughter|||15|7422 +3000|MI|Presque Isle County|Presque Isle Harbor CDP|1406|0|5|Unzueta|Selene|2987|Virginia|F|Daughter|||13|7423 +3000|MI|Presque Isle County|Presque Isle Harbor CDP|1406|0|6|Unzueta|Jeni|2989|Oklahoma|F|Daughter|||11|7424 +3000|MI|Presque Isle County|Presque Isle Harbor CDP|1406|0|7|Unzueta|Brain|2995|Delaware|M|Son|||5|7425 +3000|MI|Presque Isle County|Presque Isle Harbor CDP|1406|0|8|Unzueta|Vernon|2997|North Dakota|F|Daughter|||3|7426 +3000|MI|Presque Isle County|Presque Isle Harbor CDP|1406|0|9|Unzueta|Tijuana|2999|Colorado|F|Daughter|||1|7427 + +3000|TX|Angelina County|Burke city|1407|0|1|Hofman|Kristofer Demarcus|2960|Idaho|M|Head|||40|7428 +3000|TX|Angelina County|Burke city|1407|0|2|Hofman|Shelly|2983|Louisiana|F|Spouse|||17|7429 + +3000|OK|McIntosh County|Checotah city|1408|0|1|Willard|Darrel Colby|2972|Oklahoma|M|Head|||28|7430 +3000|OK|McIntosh County|Checotah city|1408|0|2|Willard|Trudie|2969|Washington|F|Spouse|||31|7431 +3000|OK|McIntosh County|Checotah city|1408|0|3|Willard|Woodrow Dewayne|2989|Algeria|M|Son|||11|7432 +3000|OK|McIntosh County|Checotah city|1408|0|4|Willard|Lanelle|2993|Maryland|F|Daughter|||7|7433 +3000|OK|McIntosh County|Checotah city|1408|0|5|Willard|Carter|2995|Virginia|M|Son|||5|7434 +3000|OK|McIntosh County|Checotah city|1408|0|6|Willard|Ronnie|2999|Mississippi|F|Daughter|||1|7435 + +3000|GA|Fayette County|Tyrone town|1409|0|1|Szoka|Norah|2949|Mali|F|Head|||51|7436 +3000|GA|Fayette County|Tyrone town|1409|0|2|Szoka|Wally|2977|El Salvador|M|Son|||23|7437 +3000|GA|Fayette County|Tyrone town|1409|0|3|Szoka|Melissa|2985|Nauru|F|Daughter|||15|7438 +3000|GA|Fayette County|Tyrone town|1409|0|4|Szoka|Willie|2987|Idaho|M|Son|||13|7439 +3000|GA|Fayette County|Tyrone town|1409|0|5|Szoka|Luz|2999|Maryland|F|Daughter|||1|7440 + +3000|NJ|Passaic County|Clifton city|1410|0|1|Hatfield|Derrick Jerome|2948|Oklahoma|M|Head|||52|7441 +3000|NJ|Passaic County|Clifton city|1410|0|2|Hatfield|Mellissa|2947|Kentucky|F|Spouse|||53|7442 +3000|NJ|Passaic County|Clifton city|1410|0|3|Hatfield|Jeanelle|2969|Alaska|F|Daughter|||31|7443 +3000|NJ|Passaic County|Clifton city|1410|0|4|Hatfield|Paz Tierra|2987|Faroe Islands|F|Daughter|||13|7444 +3000|NJ|Passaic County|Clifton city|1410|0|5|Hatfield|Christen|2989|West Virginia|F|Daughter|||11|7445 +3000|NJ|Passaic County|Clifton city|1410|0|6|Hatfield|Amelia|2991|Kansas|F|Daughter|||9|7446 +3000|NJ|Passaic County|Clifton city|1410|0|7|Hatfield|Darryl|2999|South Carolina|M|Son|||1|7447 + +3000|NE|Sherman County|Hazard village|1411|0|1|Monroy|Ahmed Ken|2937|Montana|M|Head|||63|7448 +3000|NE|Sherman County|Hazard village|1411|0|2|Monroy|Francene|2957|Connecticut|F|Spouse|||43|7449 +3000|NE|Sherman County|Hazard village|1411|0|3|Monroy|Ernesto|2977|Oman|M|Son|||23|7450 +3000|NE|Sherman County|Hazard village|1411|0|4|Monroy|Shanta|2981|Florida|F|Daughter|||19|7451 +3000|NE|Sherman County|Hazard village|1411|0|5|Monroy|Shirely|2985|New Mexico|F|Daughter|||15|7452 +3000|NE|Sherman County|Hazard village|1411|0|6|Monroy|Scott|2987|Nepal|M|Son|||13|7453 +3000|NE|Sherman County|Hazard village|1411|0|7|Monroy|Christa|2991|Tennessee|F|Daughter|||9|7454 +3000|NE|Sherman County|Hazard village|1411|0|8|Monroy|Theresia|2993|Rhode Island|F|Daughter|||7|7455 + +3000|MI|Antrim County|Star township|1412|0|1|Nixion|Hipolito Norberto|2956|Idaho|M|Head|||44|7456 +3000|MI|Antrim County|Star township|1412|0|2|Nixion|Nia|2978|New Mexico|F|Spouse|||22|7457 +3000|MI|Antrim County|Star township|1412|0|3|Nixion|Dianne Jinny|2998|Maine|F|Daughter|||2|7458 + +3000|WI|Polk County|Lorain town|1413|0|1|Woodend|Archie Alvaro|2954|Louisiana|M|Head|||46|7459 +3000|WI|Polk County|Lorain town|1413|0|2|Woodend|Whitney|2980|Arkansas|F|Daughter|||20|7460 +3000|WI|Polk County|Lorain town|1413|0|3|Woodend|Darrell|2982|Missouri|M|Son|||18|7461 +3000|WI|Polk County|Lorain town|1413|0|4|Woodend|Lanny|2986|Uruguay|M|Son|||14|7462 +3000|WI|Polk County|Lorain town|1413|0|5|Woodend|Vaughn Malcom|2990|Wyoming|M|Son|||10|7463 +3000|WI|Polk County|Lorain town|1413|0|6|Woodend|Judson|2992|Maine|M|Son|||8|7464 + +3000|AZ|Yuma County|Avenue B and C CDP|1414|0|1|Solis|Kevin Marc|2937|Vermont|M|Head|||63|7465 +3000|AZ|Yuma County|Avenue B and C CDP|1414|0|2|Solis|Camille|2978|Arkansas|F|Daughter|||22|7466 +3000|AZ|Yuma County|Avenue B and C CDP|1414|0|3|Solis|Brice|2988|Georgia|M|Son|||12|7467 +3000|AZ|Yuma County|Avenue B and C CDP|1414|0|4|Solis|Jamey|2990|North Carolina|M|Son|||10|7468 +3000|AZ|Yuma County|Avenue B and C CDP|1414|0|5|Solis|Lyda Rasheeda|2992|Wisconsin|F|Daughter|||8|7469 +3000|AZ|Yuma County|Avenue B and C CDP|1414|0|6|Solis|Racheal|2994|Montana|F|Daughter|||6|7470 +3000|AZ|Yuma County|Avenue B and C CDP|1414|0|7|Solis|Randolph|2996|Oklahoma|M|Son|||4|7471 +3000|AZ|Yuma County|Avenue B and C CDP|1414|0|8|Solis|Christoper|2998|New York|M|Son|||2|7472 +3000|AZ|Yuma County|Avenue B and C CDP|1414|0|9|Solis|Quinton|3000|Arizona|M|Son|||0|7473 + +3000|CA|Mono County|McGee Creek CDP|1415|0|1|Root|Bennett James|2964|Maine|M|Head|||36|7474 +3000|CA|Mono County|McGee Creek CDP|1415|0|2|Root|Shane|2966|New Jersey|F|Spouse|||34|7475 +3000|CA|Mono County|McGee Creek CDP|1415|0|3|Root|Dina|2986|Utah|F|Daughter|||14|7476 +3000|CA|Mono County|McGee Creek CDP|1415|0|4|Root|Lucio|2988|New Hampshire|M|Son|||12|7477 +3000|CA|Mono County|McGee Creek CDP|1415|0|5|Root|Lance|2992|New Hampshire|M|Son|||8|7478 +3000|CA|Mono County|McGee Creek CDP|1415|0|6|Root|Herschel|2994|New Jersey|M|Son|||6|7479 + +3000|OK|Osage County, Tulsa County|Sand Springs city|1416|0|1|Ivory|Roger|2952|New Hampshire|M|Head|||48|7480 +3000|OK|Osage County, Tulsa County|Sand Springs city|1416|0|2|Ivory|Nicky|2995|Montana|M|Son|||5|7481 +3000|OK|Osage County, Tulsa County|Sand Springs city|1416|0|3|Ivory|Kris|2997|Connecticut|F|Daughter|||3|7482 + +3000|TX|Cherokee County, Rusk County|Reklaw city|1417|0|1|Leinberger|Rich Jamison|2949|North Carolina|M|Head|||51|7483 +3000|TX|Cherokee County, Rusk County|Reklaw city|1417|0|2|Leinberger|Angeles|2950|Mississippi|F|Spouse|||50|7484 +3000|TX|Cherokee County, Rusk County|Reklaw city|1417|0|3|Leinberger|Cathy|2982|Florida|F|Daughter|||18|7485 +3000|TX|Cherokee County, Rusk County|Reklaw city|1417|0|4|Leinberger|Yasmine|2984|Indiana|F|Daughter|||16|7486 +3000|TX|Cherokee County, Rusk County|Reklaw city|1417|0|5|Leinberger|Hedwig|2988|Indiana|F|Daughter|||12|7487 +3000|TX|Cherokee County, Rusk County|Reklaw city|1417|0|6|Leinberger|Lesley|2992|Uzbekistan|M|Son|||8|7488 +3000|TX|Cherokee County, Rusk County|Reklaw city|1417|0|7|Leinberger|Bart|2994|Maryland|M|Son|||6|7489 +3000|TX|Cherokee County, Rusk County|Reklaw city|1417|0|8|Leinberger|Leigh|2996|Massachusetts|F|Daughter|||4|7490 +3000|TX|Cherokee County, Rusk County|Reklaw city|1417|0|9|Leinberger|Jerrell|2998|Palau|M|Son|||2|7491 +3000|TX|Cherokee County, Rusk County|Reklaw city|1417|0|10|Leinberger|Porter|3000|Nebraska|M|Son|||0|7492 + +3000|MI|Charlevoix County|Walloon Lake CDP|1418|0|1|Espinoza|Jerrod Jacques|2980|South Dakota|M|Head|||20|7493 +3000|MI|Charlevoix County|Walloon Lake CDP|1418|0|2|Espinoza|Tyisha|2982|Louisiana|F|Spouse|||18|7494 + +3000|UT|Summit County|Summit Park CDP|1419|0|1|Lyles|Shayne Tommie|2955|Kentucky|M|Head|||45|7495 +3000|UT|Summit County|Summit Park CDP|1419|0|2|Lyles|Brigid|2978|Pennsylvania|F|Spouse|||22|7496 +3000|UT|Summit County|Summit Park CDP|1419|0|3|Lyles|Maybell|2998|Maryland|F|Daughter|||2|7497 +3000|UT|Summit County|Summit Park CDP|1419|0|4|Lyles|Marcela|3000|Massachusetts|F|Daughter|||0|7498 + +3000|MO|Caldwell County|Cowgill city|1420|0|1|Bailor|Nathaniel Jeremiah|2962|Massachusetts|M|Head|||38|7499 + +3000|WI|Ozaukee County|Belgium village|1421|0|1|Wig|Bradley Boyd|2963|Oklahoma|M|Head|||37|7500 +3000|WI|Ozaukee County|Belgium village|1421|0|2|Wig|Keva|2973|Montana|F|Spouse|||27|7501 +3000|WI|Ozaukee County|Belgium village|1421|0|3|Wig|Josef|2993|Saint Vincent And The Grenadines|M|Son|||7|7502 +3000|WI|Ozaukee County|Belgium village|1421|0|4|Wig|Keith|2997|Belgium|M|Son|||3|7503 +3000|WI|Ozaukee County|Belgium village|1421|0|5|Wig|Sandi|2999|Virginia|F|Daughter|||1|7504 + +3000|NJ|Passaic County|Pompton Lakes borough|1422|0|1|Schaunt|Cortez Darell|2946|Brazil|M|Head|||54|7505 +3000|NJ|Passaic County|Pompton Lakes borough|1422|0|2|Schaunt|Rupert|2991|South Dakota|M|Son|||9|7506 +3000|NJ|Passaic County|Pompton Lakes borough|1422|0|3|Schaunt|Gilbert Mel|2993|Connecticut|M|Son|||7|7507 +3000|NJ|Passaic County|Pompton Lakes borough|1422|0|4|Schaunt|Daisy|2997|New York|F|Daughter|||3|7508 +3000|NJ|Passaic County|Pompton Lakes borough|1422|0|5|Schaunt|Xavier|2999|Alaska|M|Son|||1|7509 + +3000|SD|Bennett County|Martin city|1423|0|1|Zirk|Markus Howard|2945|New York|M|Head|||55|7510 +3000|SD|Bennett County|Martin city|1423|0|2|Zirk|Colby|2951|South Dakota|F|Spouse|||49|7511 +3000|SD|Bennett County|Martin city|1423|0|3|Zirk|Arletha|2981|New York|F|Daughter|||19|7512 +3000|SD|Bennett County|Martin city|1423|0|4|Zirk|Leonel George|2989|Texas|M|Son|||11|7513 +3000|SD|Bennett County|Martin city|1423|0|5|Zirk|Vicente|2991|New Mexico|M|Son|||9|7514 +3000|SD|Bennett County|Martin city|1423|0|6|Zirk|Cornelius|2997|North Dakota|M|Son|||3|7515 + +3000|PA|Susquehanna County|New Milford borough|1424|0|1|Hunnicut|Del Britt|2968|Lao People's Democratic Republic|M|Head|||32|7516 +3000|PA|Susquehanna County|New Milford borough|1424|0|2|Hunnicut|Floretta|2971|Mississippi|F|Spouse|||29|7517 +3000|PA|Susquehanna County|New Milford borough|1424|0|3|Hunnicut|Alyssa|2993|Wisconsin|F|Daughter|||7|7518 +3000|PA|Susquehanna County|New Milford borough|1424|0|4|Hunnicut|Olene Dorthey|2995|Arkansas|F|Daughter|||5|7519 +3000|PA|Susquehanna County|New Milford borough|1424|0|5|Hunnicut|Sunny|2999|Kansas|F|Daughter|||1|7520 + +3000|IL|Hancock County, Henderson County|Dallas City city|1425|0|1|Dunn|Eldon Jan|2970|Delaware|M|Head|||30|7521 +3000|IL|Hancock County, Henderson County|Dallas City city|1425|0|2|Dunn|Trula|2968|Kansas|F|Spouse|||32|7522 +3000|IL|Hancock County, Henderson County|Dallas City city|1425|0|3|Dunn|Sheryll|2990|Georgia|F|Daughter|||10|7523 +3000|IL|Hancock County, Henderson County|Dallas City city|1425|0|4|Dunn|Judson|2994|Minnesota|M|Son|||6|7524 +3000|IL|Hancock County, Henderson County|Dallas City city|1425|0|5|Dunn|Charity|2998|Georgia|F|Daughter|||2|7525 + +3000|IL|Cook County|Golf village|1426|0|1|Stein|Fred Oswaldo|2965|New Jersey|M|Head|||35|7526 +3000|IL|Cook County|Golf village|1426|0|2|Stein|Miquel Columbus|2993|Indiana|M|Son|||7|7527 +3000|IL|Cook County|Golf village|1426|0|3|Stein|Alaina|2995|Vermont|F|Daughter|||5|7528 +3000|IL|Cook County|Golf village|1426|0|4|Stein|Fredric|2997|Utah|M|Son|||3|7529 + +3000|MI|Menominee County|Gourley township|1427|0|1|Little|Lon Shelby|2967|Delaware|M|Head|||33|7530 +3000|MI|Menominee County|Gourley township|1427|0|2|Little|Elna|2976|Kentucky|F|Spouse|||24|7531 +3000|MI|Menominee County|Gourley township|1427|0|3|Little|Mirella|3000|Alabama|F|Daughter|||0|7532 + +3000|KY|Taylor County|Campbellsville city|1428|0|1|Goodwater|Patricia Wayne|2977|East Timor|M|Head|||23|7533 +3000|KY|Taylor County|Campbellsville city|1428|0|2|Goodwater|Shanell|2982|South Dakota|F|Spouse|||18|7534 + +3000|WI|Pierce County|Diamond Bluff town|1429|0|1|Hood|Timothy Jewell|2937|Washington|M|Head|||63|7535 +3000|WI|Pierce County|Diamond Bluff town|1429|0|2|Hood|Burl|2958|Bhutan|M|Son|||42|7536 +3000|WI|Pierce County|Diamond Bluff town|1429|0|3|Hood|Marna|2960|Eritrea|F|Daughter|||40|7537 +3000|WI|Pierce County|Diamond Bluff town|1429|0|4|Hood|Young|2962|Wisconsin|M|Son|||38|7538 +3000|WI|Pierce County|Diamond Bluff town|1429|0|5|Hood|Rosario|2986|Minnesota|M|Son|||14|7539 +3000|WI|Pierce County|Diamond Bluff town|1429|0|6|Hood|Makeda|2988|Greece|F|Daughter|||12|7540 +3000|WI|Pierce County|Diamond Bluff town|1429|0|7|Hood|Miquel|2992|Ohio|M|Son|||8|7541 +3000|WI|Pierce County|Diamond Bluff town|1429|0|8|Hood|Anderson|2994|Rhode Island|M|Son|||6|7542 +3000|WI|Pierce County|Diamond Bluff town|1429|0|9|Hood|Albert|2998|Maryland|F|Daughter|||2|7543 + +3000|NY|Ulster County|New Paltz village|1430|0|1|Tiogangco|Morris Harlan|2950|Taiwan, Province Of China|M|Head|||50|7544 +3000|NY|Ulster County|New Paltz village|1430|0|2|Tiogangco|Charolette|2961|Delaware|F|Spouse|||39|7545 +3000|NY|Ulster County|New Paltz village|1430|0|3|Tiogangco|Chun|2985|Denmark|F|Daughter|||15|7546 +3000|NY|Ulster County|New Paltz village|1430|0|4|Tiogangco|Frances|2987|Wyoming|M|Son|||13|7547 +3000|NY|Ulster County|New Paltz village|1430|0|5|Tiogangco|Williams|2989|Honduras|M|Son|||11|7548 +3000|NY|Ulster County|New Paltz village|1430|0|6|Tiogangco|Dirk|2991|Louisiana|M|Son|||9|7549 +3000|NY|Ulster County|New Paltz village|1430|0|7|Tiogangco|Cher|2995|Montserrat|F|Daughter|||5|7550 + +3000|NH|Strafford County|Dover city|1431|0|1|Clark|Herb Kent|2950|Kansas|M|Head|||50|7551 +3000|NH|Strafford County|Dover city|1431|0|2|Clark|Sharlene|2972|Idaho|F|Spouse|||28|7552 +3000|NH|Strafford County|Dover city|1431|0|3|Clark|Normand|2996|Ohio|M|Son|||4|7553 +3000|NH|Strafford County|Dover city|1431|0|4|Clark|Darrick|2998|Argentina|M|Son|||2|7554 +3000|NH|Strafford County|Dover city|1431|0|5|Clark|Dione|3000|Vermont|F|Daughter|||0|7555 + +3000|NY|Washington County|Granville village|1432|0|1|Magan|Monty|2960|Louisiana|M|Head|||40|7556 + +3000|MN|Clearwater County|Long Lost Lake township|1433|0|1|Meyerowitz|Troy Valentin|2948|Hawaii|M|Head|||52|7557 +3000|MN|Clearwater County|Long Lost Lake township|1433|0|2|Meyerowitz|Ervin|2988|Taiwan, Province Of China|M|Son|||12|7558 +3000|MN|Clearwater County|Long Lost Lake township|1433|0|3|Meyerowitz|Zack|2992|Belarus|M|Son|||8|7559 +3000|MN|Clearwater County|Long Lost Lake township|1433|0|4|Meyerowitz|Wade Adan|2994|Oregon|M|Son|||6|7560 + +3000|IL|Cook County|Posen village|1434|0|1|Mcdonald|Jean Geoffrey|2945|Indiana|M|Head|||55|7561 +3000|IL|Cook County|Posen village|1434|0|2|Mcdonald|Tamekia|2953|New York|F|Spouse|||47|7562 +3000|IL|Cook County|Posen village|1434|0|3|Mcdonald|Mac|2977|Georgia|M|Son|||23|7563 +3000|IL|Cook County|Posen village|1434|0|4|Mcdonald|Jonathon|2987|Maine|M|Son|||13|7564 +3000|IL|Cook County|Posen village|1434|0|5|Mcdonald|Pattie|2991|Wyoming|F|Daughter|||9|7565 +3000|IL|Cook County|Posen village|1434|0|6|Mcdonald|Del|2993|Vermont|M|Son|||7|7566 +3000|IL|Cook County|Posen village|1434|0|7|Mcdonald|Edison|2995|Kansas|M|Son|||5|7567 + +3000|MI|St. Clair County|Burtchville township|1435|0|1|Maasch|Marshall Mack|2958|Algeria|M|Head|||42|7568 +3000|MI|St. Clair County|Burtchville township|1435|0|2|Maasch|Nanette|2978|West Virginia|F|Spouse|||22|7569 +3000|MI|St. Clair County|Burtchville township|1435|0|3|Maasch|Camille|2998|Tokelau|F|Daughter|||2|7570 +3000|MI|St. Clair County|Burtchville township|1435|0|4|Maasch|Diann|3000|Connecticut|F|Daughter|||0|7571 + +3000|RI|Kent County|West Warwick town|1436|0|1|Pinkley|Andy Elden|2951|North Dakota|M|Head|||49|7572 +3000|RI|Kent County|West Warwick town|1436|0|2|Pinkley|Terese|2975|Utah|F|Spouse|||25|7573 +3000|RI|Kent County|West Warwick town|1436|0|3|Pinkley|Margo|2999|South Dakota|F|Daughter|||1|7574 + +3000|ME|Penobscot County|Lincoln town|1437|0|1|Hedrix|Gil Rex|2960|Colorado|M|Head|||40|7575 +3000|ME|Penobscot County|Lincoln town|1437|0|2|Hedrix|Lesha Merissa|2972|Hawaii|F|Spouse|||28|7576 +3000|ME|Penobscot County|Lincoln town|1437|0|3|Hedrix|Eugenio|2992|Texas|M|Son|||8|7577 +3000|ME|Penobscot County|Lincoln town|1437|0|4|Hedrix|Scottie|2994|Kansas|F|Daughter|||6|7578 +3000|ME|Penobscot County|Lincoln town|1437|0|5|Hedrix|Hayden|2998|Mississippi|M|Son|||2|7579 +3000|ME|Penobscot County|Lincoln town|1437|0|6|Hedrix|Noel|3000|Alaska|M|Son|||0|7580 + +3000|TX|Coke County, Nolan County|Blackwell city|1438|0|1|Vargas|Freddie Danilo|2944|Aruba|M|Head|||56|7581 +3000|TX|Coke County, Nolan County|Blackwell city|1438|0|2|Vargas|Allena Dagny|2964|Kansas|F|Daughter|||36|7582 +3000|TX|Coke County, Nolan County|Blackwell city|1438|0|3|Vargas|Boyd Abe|2966|Utah|M|Son|||34|7583 +3000|TX|Coke County, Nolan County|Blackwell city|1438|0|4|Vargas|Cinderella|2968|Wyoming|F|Daughter|||32|7584 +3000|TX|Coke County, Nolan County|Blackwell city|1438|0|5|Vargas|John Arden|2974|Ohio|M|Son|||26|7585 +3000|TX|Coke County, Nolan County|Blackwell city|1438|0|6|Vargas|Erwin|2980|Connecticut|M|Son|||20|7586 +3000|TX|Coke County, Nolan County|Blackwell city|1438|0|7|Vargas|Carrol|2982|Alabama|M|Son|||18|7587 +3000|TX|Coke County, Nolan County|Blackwell city|1438|0|8|Vargas|Lorena|2984|Louisiana|F|Daughter|||16|7588 +3000|TX|Coke County, Nolan County|Blackwell city|1438|0|9|Vargas|Mose|2990|Florida|M|Son|||10|7589 +3000|TX|Coke County, Nolan County|Blackwell city|1438|0|10|Vargas|Beau|3000|Vermont|M|Son|||0|7590 + +3000|IL|Cook County|Streamwood village|1439|0|1|Geiser|Amado Jame|2948|West Virginia|M|Head|||52|7591 +3000|IL|Cook County|Streamwood village|1439|0|2|Geiser|Jennine|2955|Florida|F|Spouse|||45|7592 +3000|IL|Cook County|Streamwood village|1439|0|3|Geiser|Cassi|2975|Nebraska|F|Daughter|||25|7593 +3000|IL|Cook County|Streamwood village|1439|0|4|Geiser|Ashley|2983|Wisconsin|M|Son|||17|7594 +3000|IL|Cook County|Streamwood village|1439|0|5|Geiser|Debbie|2987|Montana|F|Daughter|||13|7595 +3000|IL|Cook County|Streamwood village|1439|0|6|Geiser|Jeffie|2989|Delaware|F|Daughter|||11|7596 +3000|IL|Cook County|Streamwood village|1439|0|7|Geiser|Lahoma|2993|Alabama|F|Daughter|||7|7597 +3000|IL|Cook County|Streamwood village|1439|0|8|Geiser|Cathrine|2995|French Southern Territories|F|Daughter|||5|7598 +3000|IL|Cook County|Streamwood village|1439|0|9|Geiser|Laurence Riley|2997|Illinois|M|Son|||3|7599 + +3000|CA|Shasta County|Cassel CDP|1440|0|1|Duffek|Keren|2963|Ohio|F|Head|||37|7600 +3000|CA|Shasta County|Cassel CDP|1440|0|2|Duffek|Artie Helene|2983|Iowa|F|Daughter|||17|7601 +3000|CA|Shasta County|Cassel CDP|1440|0|3|Duffek|Lenita|2991|North Dakota|F|Daughter|||9|7602 +3000|CA|Shasta County|Cassel CDP|1440|0|4|Duffek|Drusilla|2993|Wisconsin|F|Daughter|||7|7603 +3000|CA|Shasta County|Cassel CDP|1440|0|5|Duffek|Walton|2999|Papua New Guinea|M|Son|||1|7604 + +3000|WI|Washington County|West Bend city|1441|0|1|Geerdes|Tyson Tristan|2941|Arkansas|M|Head|||59|7605 +3000|WI|Washington County|West Bend city|1441|0|2|Geerdes|Derick Forest|2961|Armenia|M|Son|||39|7606 +3000|WI|Washington County|West Bend city|1441|0|3|Geerdes|Dale|2971|Guam|F|Daughter|||29|7607 +3000|WI|Washington County|West Bend city|1441|0|4|Geerdes|Gerald|2973|Colorado|F|Daughter|||27|7608 +3000|WI|Washington County|West Bend city|1441|0|5|Geerdes|Cheyenne|2975|Tennessee|F|Daughter|||25|7609 +3000|WI|Washington County|West Bend city|1441|0|6|Geerdes|Zachery|2993|Georgia|M|Son|||7|7610 +3000|WI|Washington County|West Bend city|1441|0|7|Geerdes|Sage Shella|2995|New York|F|Daughter|||5|7611 + +3000|KS|Osage County|Carbondale city|1442|0|1|Del|Theola|2953|Oklahoma|F|Head|||47|7612 +3000|KS|Osage County|Carbondale city|1442|0|2|Del|Zora|2979|Virginia|F|Daughter|||21|7613 +3000|KS|Osage County|Carbondale city|1442|0|3|Del|Lavenia|2983|North Dakota|F|Daughter|||17|7614 +3000|KS|Osage County|Carbondale city|1442|0|4|Del|Leon|2987|North Carolina|M|Son|||13|7615 +3000|KS|Osage County|Carbondale city|1442|0|5|Del|Bernard|2993|Albania|M|Son|||7|7616 +3000|KS|Osage County|Carbondale city|1442|0|6|Del|Ricky|2999|Tennessee|M|Son|||1|7617 + +3000|NJ|Warren County|Silver Lake CDP|1443|0|1|Thorp|Bert Jerrod|2938|Kansas|M|Head|||62|7618 +3000|NJ|Warren County|Silver Lake CDP|1443|0|2|Thorp|Tommy|2977|West Virginia|M|Son|||23|7619 +3000|NJ|Warren County|Silver Lake CDP|1443|0|3|Thorp|Daron|2985|Mayotte|M|Son|||15|7620 +3000|NJ|Warren County|Silver Lake CDP|1443|0|4|Thorp|Jimmy|2989|Switzerland|M|Son|||11|7621 +3000|NJ|Warren County|Silver Lake CDP|1443|0|5|Thorp|Clare|2991|Washington|F|Daughter|||9|7622 +3000|NJ|Warren County|Silver Lake CDP|1443|0|6|Thorp|Darius Linwood|2995|Idaho|M|Son|||5|7623 + +3000|OH|Trumbull County|Lordstown village|1444|0|1|Maerz|Marc Olen|2941|West Virginia|M|Head|||59|7624 +3000|OH|Trumbull County|Lordstown village|1444|0|2|Maerz|Alaina|2943|New York|F|Spouse|||57|7625 +3000|OH|Trumbull County|Lordstown village|1444|0|3|Maerz|Raul|2965|Cote D'ivoire|M|Son|||35|7626 +3000|OH|Trumbull County|Lordstown village|1444|0|4|Maerz|Logan Logan|2981|Colorado|F|Daughter|||19|7627 +3000|OH|Trumbull County|Lordstown village|1444|0|5|Maerz|Kareem|2989|Idaho|M|Son|||11|7628 +3000|OH|Trumbull County|Lordstown village|1444|0|6|Maerz|Marlin Lenny|2993|Texas|M|Son|||7|7629 + +3000|MN|Sibley County|Green Isle city|1445|0|1|Bain|Grant Rolando|2950|Tonga|M|Head|||50|7630 +3000|MN|Sibley County|Green Isle city|1445|0|2|Bain|Petronila|2969|Alaska|F|Spouse|||31|7631 +3000|MN|Sibley County|Green Isle city|1445|0|3|Bain|Augustina|2989|Nebraska|F|Daughter|||11|7632 +3000|MN|Sibley County|Green Isle city|1445|0|4|Bain|Anthony|2991|Michigan|M|Son|||9|7633 +3000|MN|Sibley County|Green Isle city|1445|0|5|Bain|Kermit|2993|Delaware|M|Son|||7|7634 +3000|MN|Sibley County|Green Isle city|1445|0|6|Bain|Shay|2997|South Dakota|F|Daughter|||3|7635 +3000|MN|Sibley County|Green Isle city|1445|0|7|Bain|Oralee Yesenia|2999|Georgia|F|Daughter|||1|7636 + +3000|WI|Jackson County|Melrose town|1446|0|1|Kemp|Merrill Benedict|2945|Macau|M|Head|||55|7637 +3000|WI|Jackson County|Melrose town|1446|0|2|Kemp|Arnold|2971|Hawaii|M|Son|||29|7638 +3000|WI|Jackson County|Melrose town|1446|0|3|Kemp|Felix|2973|California|M|Son|||27|7639 +3000|WI|Jackson County|Melrose town|1446|0|4|Kemp|Gaylord|2985|Rhode Island|M|Son|||15|7640 +3000|WI|Jackson County|Melrose town|1446|0|5|Kemp|Ardelle Alexia|2995|Hawaii|F|Daughter|||5|7641 +3000|WI|Jackson County|Melrose town|1446|0|6|Kemp|Kassie Rae|2997|Nevada|F|Daughter|||3|7642 + +3000|ME|Franklin County|Rangeley plantation|1447|0|1|Zelenka|Leonel Carey|2956|Missouri|M|Head|||44|7643 +3000|ME|Franklin County|Rangeley plantation|1447|0|2|Zelenka|Darin|2985|Arizona|M|Son|||15|7644 +3000|ME|Franklin County|Rangeley plantation|1447|0|3|Zelenka|Beverly|2991|Michigan|F|Daughter|||9|7645 +3000|ME|Franklin County|Rangeley plantation|1447|0|4|Zelenka|Lawanda Zona|2993|Vermont|F|Daughter|||7|7646 +3000|ME|Franklin County|Rangeley plantation|1447|0|5|Zelenka|Tyree|2997|Maine|M|Son|||3|7647 +3000|ME|Franklin County|Rangeley plantation|1447|0|6|Zelenka|Luther Ezekiel|2999|Michigan|M|Son|||1|7648 + +3000|PR|Morovis Municipio|Barahona comunidad|1448|0|1|Fredette|Milo Gale|2958|New Hampshire|M|Head|||42|7649 +3000|PR|Morovis Municipio|Barahona comunidad|1448|0|2|Fredette|Lucile Felisha|2968|Utah|F|Spouse|||32|7650 +3000|PR|Morovis Municipio|Barahona comunidad|1448|0|3|Fredette|Lieselotte|2988|Wyoming|F|Daughter|||12|7651 +3000|PR|Morovis Municipio|Barahona comunidad|1448|0|4|Fredette|Oscar Clark|2990|Pennsylvania|M|Son|||10|7652 +3000|PR|Morovis Municipio|Barahona comunidad|1448|0|5|Fredette|Monnie Kiyoko|2996|South Carolina|F|Daughter|||4|7653 +3000|PR|Morovis Municipio|Barahona comunidad|1448|0|6|Fredette|Carson|2998|Singapore|M|Son|||2|7654 + +3000|LA|East Feliciana Parish|Jackson town|1449|0|1|Setzer|Mervin Silas|2953|Kentucky|M|Head|||47|7655 +3000|LA|East Feliciana Parish|Jackson town|1449|0|2|Setzer|Shiloh|2968|New Hampshire|F|Spouse|||32|7656 +3000|LA|East Feliciana Parish|Jackson town|1449|0|3|Setzer|Angie|2988|Oregon|F|Daughter|||12|7657 +3000|LA|East Feliciana Parish|Jackson town|1449|0|4|Setzer|Darryl Ted|2990|Nevada|M|Son|||10|7658 +3000|LA|East Feliciana Parish|Jackson town|1449|0|5|Setzer|Jeff|2998|Minnesota|M|Son|||2|7659 + +3000|WI|Clark County, Marathon County|Dorchester village|1450|0|1|Breen|Sherron|2951|Korea, Republic Of|F|Head|||49|7660 +3000|WI|Clark County, Marathon County|Dorchester village|1450|0|2|Breen|Ilda|2971|Alaska|F|Daughter|||29|7661 +3000|WI|Clark County, Marathon County|Dorchester village|1450|0|3|Breen|Christian|2981|Nevada|M|Son|||19|7662 +3000|WI|Clark County, Marathon County|Dorchester village|1450|0|4|Breen|Sidney|2983|West Virginia|M|Son|||17|7663 +3000|WI|Clark County, Marathon County|Dorchester village|1450|0|5|Breen|Roxanne|2991|Turks And Caicos Islands|F|Daughter|||9|7664 +3000|WI|Clark County, Marathon County|Dorchester village|1450|0|6|Breen|Sandee|2995|Oman|F|Daughter|||5|7665 +3000|WI|Clark County, Marathon County|Dorchester village|1450|0|7|Breen|Bennie|2997|Connecticut|F|Daughter|||3|7666 + +3000|VT|Essex County|Warren's gore|1451|0|1|Lowes|Mikel Hank|2947|Tennessee|M|Head|||53|7667 +3000|VT|Essex County|Warren's gore|1451|0|2|Lowes|Debera|2969|Utah|F|Spouse|||31|7668 +3000|VT|Essex County|Warren's gore|1451|0|3|Lowes|King|2991|Kansas|M|Son|||9|7669 +3000|VT|Essex County|Warren's gore|1451|0|4|Lowes|Glen|2993|Maryland|M|Son|||7|7670 +3000|VT|Essex County|Warren's gore|1451|0|5|Lowes|Jerrica|2995|Kentucky|F|Daughter|||5|7671 + +3000|TX|Ochiltree County|Perryton city|1452|0|1|Sirucek|Michael Neville|2954|Utah|M|Head|||46|7672 +3000|TX|Ochiltree County|Perryton city|1452|0|2|Sirucek|Alise Rosamaria|2964|Ohio|F|Spouse|||36|7673 +3000|TX|Ochiltree County|Perryton city|1452|0|3|Sirucek|Kasie|2992|Washington|F|Daughter|||8|7674 +3000|TX|Ochiltree County|Perryton city|1452|0|4|Sirucek|Jaleesa|2996|Utah|F|Daughter|||4|7675 +3000|TX|Ochiltree County|Perryton city|1452|0|5|Sirucek|Chuck|2998|Faroe Islands|M|Son|||2|7676 +3000|TX|Ochiltree County|Perryton city|1452|0|6|Sirucek|Zachery|3000|Indiana|M|Son|||0|7677 + +3000|WI|Richland County|Lone Rock village|1453|0|1|Tosh|Bennett Gail|2939|Botswana|M|Head|||61|7678 +3000|WI|Richland County|Lone Rock village|1453|0|2|Tosh|Dulcie Nubia|2958|Nevada|F|Spouse|||42|7679 +3000|WI|Richland County|Lone Rock village|1453|0|3|Tosh|Yu Sanora|2982|Utah|F|Daughter|||18|7680 +3000|WI|Richland County|Lone Rock village|1453|0|4|Tosh|Lindy|2990|North Carolina|F|Daughter|||10|7681 +3000|WI|Richland County|Lone Rock village|1453|0|5|Tosh|Mauricio|2992|Massachusetts|M|Son|||8|7682 +3000|WI|Richland County|Lone Rock village|1453|0|6|Tosh|Eliz|3000|Northern Mariana Islands|F|Daughter|||0|7683 + +3000|GA|Emanuel County|Norristown CDP|1454|0|1|Jones|Buddy|2938|Wyoming|M|Head|||62|7684 +3000|GA|Emanuel County|Norristown CDP|1454|0|2|Jones|Charise Retha|2958|Texas|F|Spouse|||42|7685 +3000|GA|Emanuel County|Norristown CDP|1454|0|3|Jones|Joseph|2986|Solomon Islands|F|Daughter|||14|7686 +3000|GA|Emanuel County|Norristown CDP|1454|0|4|Jones|Madie Yun|2990|Nevada|F|Daughter|||10|7687 +3000|GA|Emanuel County|Norristown CDP|1454|0|5|Jones|Shelton|2994|Pennsylvania|M|Son|||6|7688 +3000|GA|Emanuel County|Norristown CDP|1454|0|6|Jones|Tynisha|2996|Sri Lanka|F|Daughter|||4|7689 +3000|GA|Emanuel County|Norristown CDP|1454|0|7|Jones|Ruben|2998|West Virginia|M|Son|||2|7690 +3000|GA|Emanuel County|Norristown CDP|1454|0|8|Jones|Edmundo|3000|Mississippi|M|Son|||0|7691 + +3000|NY|Westchester County|Greenburgh town|1455|0|1|Malys|Salvador Cleveland|2943|Arizona|M|Head|||57|7692 +3000|NY|Westchester County|Greenburgh town|1455|0|2|Malys|Dayle|2957|Arkansas|F|Spouse|||43|7693 +3000|NY|Westchester County|Greenburgh town|1455|0|3|Malys|Raul|2979|Rhode Island|M|Son|||21|7694 +3000|NY|Westchester County|Greenburgh town|1455|0|4|Malys|Tawanda|2987|Nebraska|F|Daughter|||13|7695 +3000|NY|Westchester County|Greenburgh town|1455|0|5|Malys|Garret|2991|Georgia|M|Son|||9|7696 +3000|NY|Westchester County|Greenburgh town|1455|0|6|Malys|Antonietta|2993|Rhode Island|F|Daughter|||7|7697 +3000|NY|Westchester County|Greenburgh town|1455|0|7|Malys|Davis|2995|Washington|M|Son|||5|7698 +3000|NY|Westchester County|Greenburgh town|1455|0|8|Malys|Johnathan|2999|Sierra Leone|M|Son|||1|7699 + +3000|IA|Benton County|Mount Auburn city|1456|0|1|Elliott|Abram Marion|2976|Gibraltar|M|Head|||24|7700 +3000|IA|Benton County|Mount Auburn city|1456|0|2|Elliott|Mei|2973|British Indian Ocean Territory|F|Spouse|||27|7701 +3000|IA|Benton County|Mount Auburn city|1456|0|3|Elliott|Silvana|2993|North Dakota|F|Daughter|||7|7702 +3000|IA|Benton County|Mount Auburn city|1456|0|4|Elliott|Mel|2995|Oregon|M|Son|||5|7703 + +3000|CO|Phillips County|Holyoke city|1457|0|1|Atteburg|Anton Eldon|2964|Connecticut|M|Head|||36|7704 +3000|CO|Phillips County|Holyoke city|1457|0|2|Atteburg|Margorie|2963|Delaware|F|Spouse|||37|7705 +3000|CO|Phillips County|Holyoke city|1457|0|3|Atteburg|Werner Jamey|2985|Utah|M|Son|||15|7706 +3000|CO|Phillips County|Holyoke city|1457|0|4|Atteburg|Leena|2989|New Hampshire|F|Daughter|||11|7707 +3000|CO|Phillips County|Holyoke city|1457|0|5|Atteburg|Rasheeda|2991|Indiana|F|Daughter|||9|7708 +3000|CO|Phillips County|Holyoke city|1457|0|6|Atteburg|Van|2999|Maryland|F|Daughter|||1|7709 + +3000|NJ|Hudson County|Hoboken city|1458|0|1|Binstock|Arron|2945|Montana|M|Head|||55|7710 +3000|NJ|Hudson County|Hoboken city|1458|0|2|Binstock|Maude|2959|Korea, Democratic People's Republic Of|F|Spouse|||41|7711 +3000|NJ|Hudson County|Hoboken city|1458|0|3|Binstock|Arlie|2981|Seychelles|M|Son|||19|7712 +3000|NJ|Hudson County|Hoboken city|1458|0|4|Binstock|Jeannine|2985|Georgia|F|Daughter|||15|7713 +3000|NJ|Hudson County|Hoboken city|1458|0|5|Binstock|Benjamin|2989|South Dakota|M|Son|||11|7714 +3000|NJ|Hudson County|Hoboken city|1458|0|6|Binstock|Aleida|2993|Colorado|F|Daughter|||7|7715 +3000|NJ|Hudson County|Hoboken city|1458|0|7|Binstock|Celesta|2995|Nebraska|F|Daughter|||5|7716 +3000|NJ|Hudson County|Hoboken city|1458|0|8|Binstock|Lakeisha|2997|Colorado|F|Daughter|||3|7717 + +3000|WI|Buffalo County|Maxville town|1459|0|1|Mosier|Rico Linwood|2952|North Dakota|M|Head|||48|7718 +3000|WI|Buffalo County|Maxville town|1459|0|2|Mosier|Rosann|2966|Louisiana|F|Spouse|||34|7719 +3000|WI|Buffalo County|Maxville town|1459|0|3|Mosier|Thad|2986|Illinois|M|Son|||14|7720 +3000|WI|Buffalo County|Maxville town|1459|0|4|Mosier|Edmond|2988|Michigan|M|Son|||12|7721 +3000|WI|Buffalo County|Maxville town|1459|0|5|Mosier|Malcolm Teodoro|2990|Netherlands|M|Son|||10|7722 +3000|WI|Buffalo County|Maxville town|1459|0|6|Mosier|Glenn Lenny|2994|Washington|M|Son|||6|7723 +3000|WI|Buffalo County|Maxville town|1459|0|7|Mosier|Lucius|2996|Connecticut|M|Son|||4|7724 + +3000|MN|Stearns County|St. Rosa city|1460|0|1|Wehmeyer|Sylvia|2983|Indiana|F|Head|||17|7725 + +3000|OR|Lane County|Veneta city|1461|0|1|Kressler|Samuel Carlton|2937|South Dakota|M|Head|||63|7726 +3000|OR|Lane County|Veneta city|1461|0|2|Kressler|Leticia|2960|Connecticut|F|Daughter|||40|7727 +3000|OR|Lane County|Veneta city|1461|0|3|Kressler|Shira|2986|Alaska|F|Daughter|||14|7728 +3000|OR|Lane County|Veneta city|1461|0|4|Kressler|Jene|2988|Colorado|F|Daughter|||12|7729 +3000|OR|Lane County|Veneta city|1461|0|5|Kressler|Janyce|2996|Hawaii|F|Daughter|||4|7730 +3000|OR|Lane County|Veneta city|1461|0|6|Kressler|Beau|3000|Delaware|M|Son|||0|7731 + +3000|WV|Preston County|Newburg town|1462|0|1|Psencik|Dan Bernard|2956|West Virginia|M|Head|||44|7732 +3000|WV|Preston County|Newburg town|1462|0|2|Psencik|Tula|2961|Illinois|F|Spouse|||39|7733 +3000|WV|Preston County|Newburg town|1462|0|3|Psencik|Randell|2987|Alabama|M|Son|||13|7734 +3000|WV|Preston County|Newburg town|1462|0|4|Psencik|Ocie|2989|Minnesota|F|Daughter|||11|7735 +3000|WV|Preston County|Newburg town|1462|0|5|Psencik|Jon|2993|Maine|M|Son|||7|7736 +3000|WV|Preston County|Newburg town|1462|0|6|Psencik|Marquis|2999|Illinois|M|Son|||1|7737 + +3000|NH|Hillsborough County|Amherst CDP|1463|0|1|Jollimore|Dominique Stefan|2946|Greece|M|Head|||54|7738 +3000|NH|Hillsborough County|Amherst CDP|1463|0|2|Jollimore|Shannon|2944|Oregon|F|Spouse|||56|7739 +3000|NH|Hillsborough County|Amherst CDP|1463|0|3|Jollimore|Logan|2964|Maryland|M|Son|||36|7740 +3000|NH|Hillsborough County|Amherst CDP|1463|0|4|Jollimore|Calista|2978|Oregon|F|Daughter|||22|7741 +3000|NH|Hillsborough County|Amherst CDP|1463|0|5|Jollimore|Larry|2980|Pennsylvania|M|Son|||20|7742 +3000|NH|Hillsborough County|Amherst CDP|1463|0|6|Jollimore|Cortez Kendrick|2984|Maine|M|Son|||16|7743 +3000|NH|Hillsborough County|Amherst CDP|1463|0|7|Jollimore|Wilfredo|2990|Montana|M|Son|||10|7744 +3000|NH|Hillsborough County|Amherst CDP|1463|0|8|Jollimore|Tandra|2996|Ohio|F|Daughter|||4|7745 + +3000|TX|Zapata County|Lopeño CDP|1464|0|1|Lowe|Boyce|2971|Washington|M|Head|||29|7746 +3000|TX|Zapata County|Lopeño CDP|1464|0|2|Lowe|Marina|2973|Arizona|F|Spouse|||27|7747 +3000|TX|Zapata County|Lopeño CDP|1464|0|3|Lowe|Allen Bryant|2997|West Virginia|M|Son|||3|7748 +3000|TX|Zapata County|Lopeño CDP|1464|0|4|Lowe|Ayanna|2999|Kentucky|F|Daughter|||1|7749 + +3000|VA|Campbell County|Altavista town|1465|0|1|Thieme|Carson Brooks|2949|Connecticut|M|Head|||51|7750 +3000|VA|Campbell County|Altavista town|1465|0|2|Thieme|Sterling|2989|Montana|M|Son|||11|7751 +3000|VA|Campbell County|Altavista town|1465|0|3|Thieme|Dino|2991|Samoa|M|Son|||9|7752 +3000|VA|Campbell County|Altavista town|1465|0|4|Thieme|Rachelle|2995|Indiana|F|Daughter|||5|7753 + +3000|IL|St. Clair County|Darmstadt CDP|1466|0|1|Pent|Rob Willian|2944|Maine|M|Head|||56|7754 +3000|IL|St. Clair County|Darmstadt CDP|1466|0|2|Pent|Kayleen Jodi|2953|Texas|F|Spouse|||47|7755 +3000|IL|St. Clair County|Darmstadt CDP|1466|0|3|Pent|Autumn|2975|New Mexico|F|Daughter|||25|7756 +3000|IL|St. Clair County|Darmstadt CDP|1466|0|4|Pent|Chance|2985|Michigan|M|Son|||15|7757 +3000|IL|St. Clair County|Darmstadt CDP|1466|0|5|Pent|Quinn|2987|Hawaii|M|Son|||13|7758 +3000|IL|St. Clair County|Darmstadt CDP|1466|0|6|Pent|Emmitt|2989|Virgin Islands, U.s.|M|Son|||11|7759 +3000|IL|St. Clair County|Darmstadt CDP|1466|0|7|Pent|Alonzo|2993|Russian Federation|M|Son|||7|7760 + +3000|MO|Warren County|Marthasville city|1467|0|1|Davis|Stanton Wayne|2941|Montana|M|Head|||59|7761 +3000|MO|Warren County|Marthasville city|1467|0|2|Davis|Augusta|2962|Djibouti|F|Spouse|||38|7762 +3000|MO|Warren County|Marthasville city|1467|0|3|Davis|Junie|2986|Alabama|F|Daughter|||14|7763 +3000|MO|Warren County|Marthasville city|1467|0|4|Davis|Frances Lindsay|2988|Oklahoma|M|Son|||12|7764 +3000|MO|Warren County|Marthasville city|1467|0|5|Davis|Wanetta|2992|Chad|F|Daughter|||8|7765 +3000|MO|Warren County|Marthasville city|1467|0|6|Davis|Rubye|2994|Iowa|F|Daughter|||6|7766 +3000|MO|Warren County|Marthasville city|1467|0|7|Davis|Palmer|2996|Arkansas|M|Son|||4|7767 +3000|MO|Warren County|Marthasville city|1467|0|8|Davis|Man|3000|Kentucky|M|Son|||0|7768 + +3000|NJ|Burlington County|Beverly city|1468|0|1|Swearingen|Man Alexander|2945|Sudan|M|Head|||55|7769 +3000|NJ|Burlington County|Beverly city|1468|0|2|Swearingen|Rosalie|2958|Delaware|F|Spouse|||42|7770 +3000|NJ|Burlington County|Beverly city|1468|0|3|Swearingen|Coralie|2980|Indiana|F|Daughter|||20|7771 +3000|NJ|Burlington County|Beverly city|1468|0|4|Swearingen|Donald|2986|Antarctica|M|Son|||14|7772 +3000|NJ|Burlington County|Beverly city|1468|0|5|Swearingen|Clifford|2990|New York|M|Son|||10|7773 +3000|NJ|Burlington County|Beverly city|1468|0|6|Swearingen|Jaimie|2996|Michigan|F|Daughter|||4|7774 +3000|NJ|Burlington County|Beverly city|1468|0|7|Swearingen|Cristin|2998|Idaho|F|Daughter|||2|7775 +3000|NJ|Burlington County|Beverly city|1468|0|8|Swearingen|Jacquelyne|3000|New York|F|Daughter|||0|7776 + +3000|WA|Pierce County|Fife Heights CDP|1469|0|1|Fisk|Luciano Johnnie|2938|Macedonia, The Former Yugoslav Republic Of|M|Head|||62|7777 +3000|WA|Pierce County|Fife Heights CDP|1469|0|2|Fisk|Frankie|2965|Kentucky|M|Son|||35|7778 +3000|WA|Pierce County|Fife Heights CDP|1469|0|3|Fisk|Virgina|2971|Montana|F|Daughter|||29|7779 +3000|WA|Pierce County|Fife Heights CDP|1469|0|4|Fisk|Patience|2987|Portugal|F|Daughter|||13|7780 +3000|WA|Pierce County|Fife Heights CDP|1469|0|5|Fisk|Andrew|2989|Delaware|M|Son|||11|7781 +3000|WA|Pierce County|Fife Heights CDP|1469|0|6|Fisk|Lelia Shenita|2995|Florida|F|Daughter|||5|7782 +3000|WA|Pierce County|Fife Heights CDP|1469|0|7|Fisk|Berry|2997|Armenia|M|Son|||3|7783 +3000|WA|Pierce County|Fife Heights CDP|1469|0|8|Fisk|Jerrica|2999|Wallis And Futuna|F|Daughter|||1|7784 + +3000|IL|Lake County|Lake Catherine CDP|1470|0|1|Drummond|Salvatore Gus|2958|Florida|M|Head|||42|7785 +3000|IL|Lake County|Lake Catherine CDP|1470|0|2|Drummond|Sondra|2977|Washington|F|Spouse|||23|7786 +3000|IL|Lake County|Lake Catherine CDP|1470|0|3|Drummond|Jestine|2999|Alaska|F|Daughter|||1|7787 + +3000|CO|Jefferson County|Dakota Ridge CDP|1471|0|1|Edwards|Cletus Mitchel|2941|Rhode Island|M|Head|||59|7788 +3000|CO|Jefferson County|Dakota Ridge CDP|1471|0|2|Edwards|Terrance|2989|Texas|M|Son|||11|7789 +3000|CO|Jefferson County|Dakota Ridge CDP|1471|0|3|Edwards|Joaquin Louis|2991|Virgin Islands, U.s.|M|Son|||9|7790 +3000|CO|Jefferson County|Dakota Ridge CDP|1471|0|4|Edwards|Hayden|2995|Bolivia|M|Son|||5|7791 +3000|CO|Jefferson County|Dakota Ridge CDP|1471|0|5|Edwards|Iesha|2997|Svalbard And Jan Mayen|F|Daughter|||3|7792 +3000|CO|Jefferson County|Dakota Ridge CDP|1471|0|6|Edwards|Sandy|2999|Arizona|M|Son|||1|7793 + +3000|AZ|Yavapai County|Cornville CDP|1472|0|1|Williams|Willy Edmond|2939|Louisiana|M|Head|||61|7794 +3000|AZ|Yavapai County|Cornville CDP|1472|0|2|Williams|Coleman|2957|Vermont|M|Son|||43|7795 +3000|AZ|Yavapai County|Cornville CDP|1472|0|3|Williams|Brandee|2961|North Carolina|F|Daughter|||39|7796 +3000|AZ|Yavapai County|Cornville CDP|1472|0|4|Williams|Elroy|2963|Washington|M|Son|||37|7797 +3000|AZ|Yavapai County|Cornville CDP|1472|0|5|Williams|Hosea|2989|Kansas|M|Son|||11|7798 +3000|AZ|Yavapai County|Cornville CDP|1472|0|6|Williams|Edgardo|2991|Maine|M|Son|||9|7799 +3000|AZ|Yavapai County|Cornville CDP|1472|0|7|Williams|Enrique|2995|Malaysia|M|Son|||5|7800 +3000|AZ|Yavapai County|Cornville CDP|1472|0|8|Williams|Mary|2997|Idaho|M|Son|||3|7801 + +3000|MT|Chouteau County, Hill County|Rocky Boy West CDP|1473|0|1|Colwell|Jacques Leandro|2968|Minnesota|M|Head|||32|7802 +3000|MT|Chouteau County, Hill County|Rocky Boy West CDP|1473|0|2|Colwell|Renda|2974|Oregon|F|Spouse|||26|7803 +3000|MT|Chouteau County, Hill County|Rocky Boy West CDP|1473|0|3|Colwell|Cecil|2998|West Virginia|F|Daughter|||2|7804 + +3000|OH|Trumbull County|McDonald village|1474|0|1|Davis|Hayden Brendan|2952|Hawaii|M|Head|||48|7805 +3000|OH|Trumbull County|McDonald village|1474|0|2|Davis|Mozelle|2975|Oregon|F|Spouse|||25|7806 +3000|OH|Trumbull County|McDonald village|1474|0|3|Davis|Marci|2995|Mississippi|F|Daughter|||5|7807 +3000|OH|Trumbull County|McDonald village|1474|0|4|Davis|Suzanna|2997|New Jersey|F|Daughter|||3|7808 +3000|OH|Trumbull County|McDonald village|1474|0|5|Davis|Kacie|2999|Louisiana|F|Daughter|||1|7809 + +3000|NJ|Union County|Roselle Park borough|1475|0|1|Freeman|Noble Edgardo|2968|Venezuela|M|Head|||32|7810 +3000|NJ|Union County|Roselle Park borough|1475|0|2|Freeman|Alycia|2966|Rhode Island|F|Spouse|||34|7811 +3000|NJ|Union County|Roselle Park borough|1475|0|3|Freeman|Burton|2988|Virginia|M|Son|||12|7812 +3000|NJ|Union County|Roselle Park borough|1475|0|4|Freeman|Whitley|2994|Wyoming|F|Daughter|||6|7813 +3000|NJ|Union County|Roselle Park borough|1475|0|5|Freeman|Charlena|2996|Nebraska|F|Daughter|||4|7814 +3000|NJ|Union County|Roselle Park borough|1475|0|6|Freeman|Fay|2998|Alabama|F|Daughter|||2|7815 +3000|NJ|Union County|Roselle Park borough|1475|0|7|Freeman|Dollie|3000|Virginia|F|Daughter|||0|7816 + +3000|WI|Oconto County|Sobieski CDP|1476|0|1|Crawford|Johnathan Kurt|2959|Nebraska|M|Head|||41|7817 +3000|WI|Oconto County|Sobieski CDP|1476|0|2|Crawford|Janey|2957|Illinois|F|Spouse|||43|7818 +3000|WI|Oconto County|Sobieski CDP|1476|0|3|Crawford|Roberto|2977|Arkansas|F|Daughter|||23|7819 +3000|WI|Oconto County|Sobieski CDP|1476|0|4|Crawford|Malik|2981|New Mexico|M|Son|||19|7820 +3000|WI|Oconto County|Sobieski CDP|1476|0|5|Crawford|Anisa|2987|Hawaii|F|Daughter|||13|7821 +3000|WI|Oconto County|Sobieski CDP|1476|0|6|Crawford|Ji|2989|Pennsylvania|F|Daughter|||11|7822 + +3000|NY|Niagara County|Cambria town|1477|0|1|Batton|Randy Cornelius|2938|Alabama|M|Head|||62|7823 +3000|NY|Niagara County|Cambria town|1477|0|2|Batton|Valeria|2944|Arkansas|F|Spouse|||56|7824 +3000|NY|Niagara County|Cambria town|1477|0|3|Batton|Trey|2978|Kentucky|M|Son|||22|7825 +3000|NY|Niagara County|Cambria town|1477|0|4|Batton|Emily|2992|Denmark|F|Daughter|||8|7826 +3000|NY|Niagara County|Cambria town|1477|0|5|Batton|Myron|2996|Kansas|M|Son|||4|7827 + +3000|NJ|Union County|Westfield town|1478|0|1|Davilla|Earnest|2956|Oklahoma|M|Head|||44|7828 + +3000|MI|Monroe County|Monroe city|1479|0|1|Went|Danial Lazaro|2959|Wisconsin|M|Head|||41|7829 +3000|MI|Monroe County|Monroe city|1479|0|2|Went|Sophie|2991|Louisiana|F|Daughter|||9|7830 +3000|MI|Monroe County|Monroe city|1479|0|3|Went|Eric|2993|Iowa|M|Son|||7|7831 +3000|MI|Monroe County|Monroe city|1479|0|4|Went|Clemmie|2995|Arizona|F|Daughter|||5|7832 + +3000|KS|Clay County|Longford city|1480|0|1|Leagjeld|Kirby|2946|San Marino|M|Head|||54|7833 +3000|KS|Clay County|Longford city|1480|0|2|Leagjeld|Leslee|2961|Hawaii|F|Spouse|||39|7834 +3000|KS|Clay County|Longford city|1480|0|3|Leagjeld|Minna|2983|California|F|Daughter|||17|7835 +3000|KS|Clay County|Longford city|1480|0|4|Leagjeld|Eveline|2985|Western Sahara|F|Daughter|||15|7836 +3000|KS|Clay County|Longford city|1480|0|5|Leagjeld|Noelle|2989|Missouri|F|Daughter|||11|7837 +3000|KS|Clay County|Longford city|1480|0|6|Leagjeld|Michaele|2991|North Carolina|F|Daughter|||9|7838 +3000|KS|Clay County|Longford city|1480|0|7|Leagjeld|Brigette Monique|2993|Congo, The Democratic Republic Of The|F|Daughter|||7|7839 + +3000|NY|Seneca County|Waterloo village|1481|0|1|Pensiero|Houston Anton|2948|Vermont|M|Head|||52|7840 +3000|NY|Seneca County|Waterloo village|1481|0|2|Pensiero|Greg|2983|Washington|M|Son|||17|7841 +3000|NY|Seneca County|Waterloo village|1481|0|3|Pensiero|Tien|2985|Idaho|F|Daughter|||15|7842 +3000|NY|Seneca County|Waterloo village|1481|0|4|Pensiero|Bettie|2987|New York|F|Daughter|||13|7843 +3000|NY|Seneca County|Waterloo village|1481|0|5|Pensiero|Thora Fran|2989|West Virginia|F|Daughter|||11|7844 +3000|NY|Seneca County|Waterloo village|1481|0|6|Pensiero|Leena|2991|Missouri|F|Daughter|||9|7845 +3000|NY|Seneca County|Waterloo village|1481|0|7|Pensiero|Kimbery|2997|Nevada|F|Daughter|||3|7846 +3000|NY|Seneca County|Waterloo village|1481|0|8|Pensiero|Laverne Elizebeth|2999|South Carolina|F|Daughter|||1|7847 + +3000|MI|Clare County|Hamilton township|1482|0|1|Blaxland|Guy Craig|2970|Minnesota|M|Head|||30|7848 + +3000|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|1483|0|1|Eflin|James Vaughn|2951|Minnesota|M|Head|||49|7849 +3000|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|1483|0|2|Eflin|Deshawn|2986|Connecticut|M|Son|||14|7850 +3000|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|1483|0|3|Eflin|Porfirio Alan|2988|Kansas|M|Son|||12|7851 +3000|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|1483|0|4|Eflin|Abram|2992|New York|M|Son|||8|7852 +3000|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|1483|0|5|Eflin|Shelby|2996|South Carolina|M|Son|||4|7853 +3000|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|1483|0|6|Eflin|Emeline|2998|Washington|F|Daughter|||2|7854 +3000|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|1483|0|7|Eflin|Alphonso|3000|Kentucky|M|Son|||0|7855 + +3000|ME|Knox County|Friendship town|1484|0|1|Adcock|Dion Lonnie|2944|Swaziland|M|Head|||56|7856 +3000|ME|Knox County|Friendship town|1484|0|2|Adcock|Jena|2945|Georgia|F|Spouse|||55|7857 +3000|ME|Knox County|Friendship town|1484|0|3|Adcock|Denisse|2973|Alabama|F|Daughter|||27|7858 +3000|ME|Knox County|Friendship town|1484|0|4|Adcock|Javier|2983|Oregon|M|Son|||17|7859 +3000|ME|Knox County|Friendship town|1484|0|5|Adcock|Hunter|2987|Norway|M|Son|||13|7860 +3000|ME|Knox County|Friendship town|1484|0|6|Adcock|Dagny|2993|Montana|F|Daughter|||7|7861 + +3000|MD|Cecil County|Cecilton town|1485|0|1|Brown|Dannie Ned|2947|Alaska|M|Head|||53|7862 +3000|MD|Cecil County|Cecilton town|1485|0|2|Brown|Pamala|2966|New York|F|Daughter|||34|7863 +3000|MD|Cecil County|Cecilton town|1485|0|3|Brown|Courtney|2974|Vermont|F|Daughter|||26|7864 +3000|MD|Cecil County|Cecilton town|1485|0|4|Brown|Ashely|2986|Niue|F|Daughter|||14|7865 +3000|MD|Cecil County|Cecilton town|1485|0|5|Brown|Seymour|2988|Utah|M|Son|||12|7866 +3000|MD|Cecil County|Cecilton town|1485|0|6|Brown|Ulysses|2994|Kentucky|M|Son|||6|7867 +3000|MD|Cecil County|Cecilton town|1485|0|7|Brown|Chasidy|2998|Ohio|F|Daughter|||2|7868 + +3000|MO|St. Louis County|Grantwood Village town|1486|0|1|Nunez|Jean|2977|Chile|M|Head|||23|7869 +3000|MO|St. Louis County|Grantwood Village town|1486|0|2|Nunez|Kanisha Nannie|2977|Colorado|F|Spouse|||23|7870 + +3000|MI|Montcalm County|Crystal township|1487|0|1|Weiland|Kevin Eddy|2939|Pennsylvania|M|Head|||61|7871 +3000|MI|Montcalm County|Crystal township|1487|0|2|Weiland|Rosana|2958|Oregon|F|Spouse|||42|7872 +3000|MI|Montcalm County|Crystal township|1487|0|3|Weiland|Bong Yelena|2982|New Hampshire|F|Daughter|||18|7873 +3000|MI|Montcalm County|Crystal township|1487|0|4|Weiland|Lesha|2986|Michigan|F|Daughter|||14|7874 +3000|MI|Montcalm County|Crystal township|1487|0|5|Weiland|Pablo|2990|Pennsylvania|M|Son|||10|7875 +3000|MI|Montcalm County|Crystal township|1487|0|6|Weiland|Nyla|2996|Alabama|F|Daughter|||4|7876 +3000|MI|Montcalm County|Crystal township|1487|0|7|Weiland|Clare|2998|Maryland|F|Daughter|||2|7877 + +3000|NY|Steuben County|Troupsburg town|1488|0|1|Richmon|Merri|2974|Tennessee|F|Head|||26|7878 +3000|NY|Steuben County|Troupsburg town|1488|0|2|Richmon|Shavonne|2994|Delaware|F|Daughter|||6|7879 + +3000|MO|St. Louis County|Pasadena Park village|1489|0|1|Wiltrout|Elias Sonny|2947|Maine|M|Head|||53|7880 +3000|MO|St. Louis County|Pasadena Park village|1489|0|2|Wiltrout|Marta Felipa|2943|Connecticut|F|Spouse|||57|7881 +3000|MO|St. Louis County|Pasadena Park village|1489|0|3|Wiltrout|Georgianna|2977|Kiribati|F|Daughter|||23|7882 +3000|MO|St. Louis County|Pasadena Park village|1489|0|4|Wiltrout|Cameron|2985|Florida|M|Son|||15|7883 +3000|MO|St. Louis County|Pasadena Park village|1489|0|5|Wiltrout|Donnette|2987|Afghanistan|F|Daughter|||13|7884 +3000|MO|St. Louis County|Pasadena Park village|1489|0|6|Wiltrout|Elizabeth|2993|Hawaii|F|Daughter|||7|7885 +3000|MO|St. Louis County|Pasadena Park village|1489|0|7|Wiltrout|Saul|2997|Kentucky|M|Son|||3|7886 + +3000|AZ|Yavapai County|Dewey-Humboldt town|1490|0|1|Amolsch|Herschel|2952|Hawaii|M|Head|||48|7887 +3000|AZ|Yavapai County|Dewey-Humboldt town|1490|0|2|Amolsch|Arnette|2959|Kansas|F|Spouse|||41|7888 +3000|AZ|Yavapai County|Dewey-Humboldt town|1490|0|3|Amolsch|Garry|2989|Illinois|M|Son|||11|7889 +3000|AZ|Yavapai County|Dewey-Humboldt town|1490|0|4|Amolsch|Alexander|2991|Texas|M|Son|||9|7890 +3000|AZ|Yavapai County|Dewey-Humboldt town|1490|0|5|Amolsch|Deangelo|2995|Oklahoma|M|Son|||5|7891 +3000|AZ|Yavapai County|Dewey-Humboldt town|1490|0|6|Amolsch|Lauralee|2999|Hawaii|F|Daughter|||1|7892 + +3000|MO|Montgomery County|Wellsville city|1491|0|1|Manny|Buck Malcolm|2939|Djibouti|M|Head|||61|7893 +3000|MO|Montgomery County|Wellsville city|1491|0|2|Manny|Ines|2953|Texas|F|Spouse|||47|7894 +3000|MO|Montgomery County|Wellsville city|1491|0|3|Manny|Fabiola|2975|Trinidad And Tobago|F|Daughter|||25|7895 +3000|MO|Montgomery County|Wellsville city|1491|0|4|Manny|Rosaria Leonora|2979|California|F|Daughter|||21|7896 +3000|MO|Montgomery County|Wellsville city|1491|0|5|Manny|Cortez|2985|Rhode Island|M|Son|||15|7897 +3000|MO|Montgomery County|Wellsville city|1491|0|6|Manny|Gilberto|2987|Florida|M|Son|||13|7898 +3000|MO|Montgomery County|Wellsville city|1491|0|7|Manny|Jordon|2993|Virginia|M|Son|||7|7899 +3000|MO|Montgomery County|Wellsville city|1491|0|8|Manny|Carola|2997|New York|F|Daughter|||3|7900 + +3000|KS|Geary County|Grandview Plaza city|1492|0|1|Alvarado|Miquel|2941|Florida|M|Head|||59|7901 +3000|KS|Geary County|Grandview Plaza city|1492|0|2|Alvarado|Monserrate Evelia|2965|Connecticut|F|Daughter|||35|7902 +3000|KS|Geary County|Grandview Plaza city|1492|0|3|Alvarado|Gerald|2967|Wisconsin|M|Son|||33|7903 +3000|KS|Geary County|Grandview Plaza city|1492|0|4|Alvarado|Markus|2981|Vermont|M|Son|||19|7904 +3000|KS|Geary County|Grandview Plaza city|1492|0|5|Alvarado|Charla|2987|Wisconsin|F|Daughter|||13|7905 +3000|KS|Geary County|Grandview Plaza city|1492|0|6|Alvarado|George|2991|Hawaii|M|Son|||9|7906 +3000|KS|Geary County|Grandview Plaza city|1492|0|7|Alvarado|Tonda|2993|Mississippi|F|Daughter|||7|7907 +3000|KS|Geary County|Grandview Plaza city|1492|0|8|Alvarado|Terina|2995|Kentucky|F|Daughter|||5|7908 + +3000|TX|El Paso County|Homestead Meadows South CDP|1493|0|1|Keoghan|Hosea|2955|North Dakota|M|Head|||45|7909 +3000|TX|El Paso County|Homestead Meadows South CDP|1493|0|2|Keoghan|Donella Shelley|2959|Pennsylvania|F|Spouse|||41|7910 +3000|TX|El Paso County|Homestead Meadows South CDP|1493|0|3|Keoghan|Amado Jaime|2983|Wallis And Futuna|M|Son|||17|7911 +3000|TX|El Paso County|Homestead Meadows South CDP|1493|0|4|Keoghan|Carlos|2985|New York|M|Son|||15|7912 +3000|TX|El Paso County|Homestead Meadows South CDP|1493|0|5|Keoghan|Tory|2987|Rhode Island|M|Son|||13|7913 +3000|TX|El Paso County|Homestead Meadows South CDP|1493|0|6|Keoghan|Pat|2991|Texas|F|Daughter|||9|7914 + +3000|IL|Cook County|La Grange Park village|1494|0|1|Lantz|Patricia Stephen|2946|Colorado|M|Head|||54|7915 +3000|IL|Cook County|La Grange Park village|1494|0|2|Lantz|Kandace|2965|Indiana|F|Spouse|||35|7916 +3000|IL|Cook County|La Grange Park village|1494|0|3|Lantz|Mauro Richard|2987|West Virginia|M|Son|||13|7917 +3000|IL|Cook County|La Grange Park village|1494|0|4|Lantz|Ivory|2989|Illinois|M|Son|||11|7918 +3000|IL|Cook County|La Grange Park village|1494|0|5|Lantz|Telma|2993|Arkansas|F|Daughter|||7|7919 + +3000|IN|Lawrence County|Oolitic town|1495|0|1|Beuther|Willis Buck|2953|Texas|M|Head|||47|7920 +3000|IN|Lawrence County|Oolitic town|1495|0|2|Beuther|Errol|2993|Idaho|M|Son|||7|7921 +3000|IN|Lawrence County|Oolitic town|1495|0|3|Beuther|Eldora Jacinta|2997|Maryland|F|Daughter|||3|7922 +3000|IN|Lawrence County|Oolitic town|1495|0|4|Beuther|Markus|2999|Arizona|M|Son|||1|7923 + +3000|PA|Bradford County|Windham township|1496|0|1|Fobbs|Antonia Colton|2959|Papua New Guinea|M|Head|||41|7924 +3000|PA|Bradford County|Windham township|1496|0|2|Fobbs|Armandina|2979|Nebraska|F|Spouse|||21|7925 +3000|PA|Bradford County|Windham township|1496|0|3|Fobbs|Ula Misty|2999|Mississippi|F|Daughter|||1|7926 + +3000|OH|Ottawa County|Port Clinton city|1497|0|1|Jeanbaptise|Ulysses|2953|Missouri|M|Head|||47|7927 +3000|OH|Ottawa County|Port Clinton city|1497|0|2|Jeanbaptise|Bridgett|2973|Wisconsin|F|Spouse|||27|7928 +3000|OH|Ottawa County|Port Clinton city|1497|0|3|Jeanbaptise|Ty|2993|Kansas|M|Son|||7|7929 +3000|OH|Ottawa County|Port Clinton city|1497|0|4|Jeanbaptise|Ahmed|2995|Colorado|M|Son|||5|7930 +3000|OH|Ottawa County|Port Clinton city|1497|0|5|Jeanbaptise|Marcel Mark|2999|New Jersey|M|Son|||1|7931 + +3000|MN|Swift County|Danvers city|1498|0|1|Smith|Javier Humberto|2949|Ukraine|M|Head|||51|7932 +3000|MN|Swift County|Danvers city|1498|0|2|Smith|Siu|2972|Eritrea|F|Spouse|||28|7933 +3000|MN|Swift County|Danvers city|1498|0|3|Smith|Brian|2992|Wyoming|F|Daughter|||8|7934 +3000|MN|Swift County|Danvers city|1498|0|4|Smith|Haley|2994|South Carolina|F|Daughter|||6|7935 +3000|MN|Swift County|Danvers city|1498|0|5|Smith|Dexter|2998|Portugal|M|Son|||2|7936 + +3000|NY|Tompkins County|Ithaca town|1499|0|1|Lejenne|Forrest Bob|2963|Kansas|M|Head|||37|7937 +3000|NY|Tompkins County|Ithaca town|1499|0|2|Lejenne|Tanisha|2973|Wyoming|F|Spouse|||27|7938 +3000|NY|Tompkins County|Ithaca town|1499|0|3|Lejenne|Heath|2995|Ecuador|M|Son|||5|7939 +3000|NY|Tompkins County|Ithaca town|1499|0|4|Lejenne|Vivienne|2999|Maine|F|Daughter|||1|7940 + +3000|CT|Hartford County|West Simsbury CDP|1500|0|1|Stecklair|Caleb Minh|2952|Virginia|M|Head|||48|7941 +3000|CT|Hartford County|West Simsbury CDP|1500|0|2|Stecklair|Stefanie|2951|New Mexico|F|Spouse|||49|7942 +3000|CT|Hartford County|West Simsbury CDP|1500|0|3|Stecklair|Derick|2973|New Mexico|M|Son|||27|7943 +3000|CT|Hartford County|West Simsbury CDP|1500|0|4|Stecklair|Frederick|2985|Mayotte|M|Son|||15|7944 +3000|CT|Hartford County|West Simsbury CDP|1500|0|5|Stecklair|Donovan|2987|South Dakota|M|Son|||13|7945 +3000|CT|Hartford County|West Simsbury CDP|1500|0|6|Stecklair|Millard Hugh|2989|Kentucky|M|Son|||11|7946 +3000|CT|Hartford County|West Simsbury CDP|1500|0|7|Stecklair|Ezekiel|2993|Oklahoma|M|Son|||7|7947 +3000|CT|Hartford County|West Simsbury CDP|1500|0|8|Stecklair|Nakisha|2997|Kansas|F|Daughter|||3|7948 +3000|CT|Hartford County|West Simsbury CDP|1500|0|9|Stecklair|Ryan Emmanuel|2999|Oklahoma|M|Son|||1|7949 + +3000|PA|Centre County|Patton township|1501|0|1|Nelson|Marcos Porter|2969|Texas|M|Head|||31|7950 +3000|PA|Centre County|Patton township|1501|0|2|Nelson|Shanae Laronda|2978|Yemen|F|Spouse|||22|7951 + +3000|PA|Erie County|Lake City borough|1502|0|1|Hamrick|Manuel Pete|2974|Mexico|M|Head|||26|7952 +3000|PA|Erie County|Lake City borough|1502|0|2|Hamrick|Marvis|2978|South Dakota|F|Spouse|||22|7953 +3000|PA|Erie County|Lake City borough|1502|0|3|Hamrick|Margurite|2998|Iowa|F|Daughter|||2|7954 + +3000|MI|Missaukee County|West Branch township|1503|0|1|Hurley|Brice Chauncey|2951|Alabama|M|Head|||49|7955 +3000|MI|Missaukee County|West Branch township|1503|0|2|Hurley|Dewey|2981|Nebraska|M|Son|||19|7956 +3000|MI|Missaukee County|West Branch township|1503|0|3|Hurley|Delaine|2987|New Mexico|F|Daughter|||13|7957 +3000|MI|Missaukee County|West Branch township|1503|0|4|Hurley|Dayna|2997|Oregon|F|Daughter|||3|7958 +3000|MI|Missaukee County|West Branch township|1503|0|5|Hurley|Josphine|2999|Colorado|F|Daughter|||1|7959 + +3000|MD|Worcester County|Girdletree CDP|1504|0|1|Barker|Milo Benedict|2966|Montana|M|Head|||34|7960 +3000|MD|Worcester County|Girdletree CDP|1504|0|2|Barker|Kacie Nilda|2982|Florida|F|Spouse|||18|7961 + +3000|PA|Potter County|Austin borough|1505|0|1|Wade|Jamaal|2950|Botswana|M|Head|||50|7962 +3000|PA|Potter County|Austin borough|1505|0|2|Wade|Dusty|2955|Texas|F|Spouse|||45|7963 +3000|PA|Potter County|Austin borough|1505|0|3|Wade|Michale|2981|Minnesota|M|Son|||19|7964 +3000|PA|Potter County|Austin borough|1505|0|4|Wade|Stefan|2985|Indiana|M|Son|||15|7965 +3000|PA|Potter County|Austin borough|1505|0|5|Wade|Guillermo|2987|Bosnia And Herzegovina|M|Son|||13|7966 +3000|PA|Potter County|Austin borough|1505|0|6|Wade|Daniel|2989|New York|M|Son|||11|7967 +3000|PA|Potter County|Austin borough|1505|0|7|Wade|Sal|2997|New Hampshire|M|Son|||3|7968 +3000|PA|Potter County|Austin borough|1505|0|8|Wade|Lucas|2999|Hawaii|M|Son|||1|7969 + +3000|KY|Jefferson County|Barbourmeade city|1506|0|1|Alfonzo|Alvin Gus|2972|Iowa|M|Head|||28|7970 +3000|KY|Jefferson County|Barbourmeade city|1506|0|2|Alfonzo|Buster|2990|Mississippi|M|Son|||10|7971 +3000|KY|Jefferson County|Barbourmeade city|1506|0|3|Alfonzo|Martha|2998|Michigan|F|Daughter|||2|7972 + +3000|PA|McKean County|Hamlin township|1507|0|1|Frase|Tyree Gavin|2938|Alaska|M|Head|||62|7973 +3000|PA|McKean County|Hamlin township|1507|0|2|Frase|Hugo Jonah|2986|Illinois|M|Son|||14|7974 +3000|PA|McKean County|Hamlin township|1507|0|3|Frase|Danial|2988|Barbados|M|Son|||12|7975 +3000|PA|McKean County|Hamlin township|1507|0|4|Frase|Marcelo|2992|Missouri|M|Son|||8|7976 +3000|PA|McKean County|Hamlin township|1507|0|5|Frase|Starla|2996|Florida|F|Daughter|||4|7977 +3000|PA|McKean County|Hamlin township|1507|0|6|Frase|Brain Art|3000|Colorado|M|Son|||0|7978 + +3000|IL|Grundy County, Kendall County, Will County|Minooka village|1508|0|1|Knoll|Lyle Hai|2959|South Carolina|M|Head|||41|7979 +3000|IL|Grundy County, Kendall County, Will County|Minooka village|1508|0|2|Knoll|Lynell|2968|Alaska|F|Spouse|||32|7980 +3000|IL|Grundy County, Kendall County, Will County|Minooka village|1508|0|3|Knoll|Felica|2988|Arizona|F|Daughter|||12|7981 +3000|IL|Grundy County, Kendall County, Will County|Minooka village|1508|0|4|Knoll|Alberta|2990|New Jersey|F|Daughter|||10|7982 +3000|IL|Grundy County, Kendall County, Will County|Minooka village|1508|0|5|Knoll|Meredith|2994|Bahrain|F|Daughter|||6|7983 +3000|IL|Grundy County, Kendall County, Will County|Minooka village|1508|0|6|Knoll|Bryan|3000|Wyoming|M|Son|||0|7984 + +3000|CA|Mendocino County|Philo CDP|1509|0|1|Alles|Vivan|2950|Norfolk Island|F|Head|||50|7985 +3000|CA|Mendocino County|Philo CDP|1509|0|2|Alles|Napoleon|2980|Nebraska|M|Son|||20|7986 +3000|CA|Mendocino County|Philo CDP|1509|0|3|Alles|Golden|2986|Maryland|F|Daughter|||14|7987 +3000|CA|Mendocino County|Philo CDP|1509|0|4|Alles|Scott|2988|Nevada|M|Son|||12|7988 +3000|CA|Mendocino County|Philo CDP|1509|0|5|Alles|Hortense|2994|New Mexico|F|Daughter|||6|7989 +3000|CA|Mendocino County|Philo CDP|1509|0|6|Alles|Luciano|2996|Texas|M|Son|||4|7990 +3000|CA|Mendocino County|Philo CDP|1509|0|7|Alles|Lewis|2998|Colorado|M|Son|||2|7991 + +3000|TX|Cherokee County|Alto town|1510|0|1|Sarkisian|Taylor|2963|Kansas|M|Head|||37|7992 + +3000|NJ|Burlington County|Beverly city|1511|0|1|Lakin|Moshe|2960|Arizona|M|Head|||40|7993 +3000|NJ|Burlington County|Beverly city|1511|0|2|Lakin|Ricardo|2978|New Hampshire|M|Son|||22|7994 +3000|NJ|Burlington County|Beverly city|1511|0|3|Lakin|Shila|2982|Rhode Island|F|Daughter|||18|7995 +3000|NJ|Burlington County|Beverly city|1511|0|4|Lakin|Theo|2990|Gambia|M|Son|||10|7996 +3000|NJ|Burlington County|Beverly city|1511|0|5|Lakin|Phil|2996|Minnesota|M|Son|||4|7997 + +3000|CA|Marin County|Strawberry CDP|1512|0|1|Flowers|Sydney Oren|2958|Oregon|M|Head|||42|7998 +3000|CA|Marin County|Strawberry CDP|1512|0|2|Flowers|Dyan|2964|Kansas|F|Spouse|||36|7999 +3000|CA|Marin County|Strawberry CDP|1512|0|3|Flowers|Maranda|2984|Mississippi|F|Daughter|||16|8000 +3000|CA|Marin County|Strawberry CDP|1512|0|4|Flowers|Flor|2986|North Dakota|F|Daughter|||14|8001 +3000|CA|Marin County|Strawberry CDP|1512|0|5|Flowers|Hayden|2992|Colorado|M|Son|||8|8002 +3000|CA|Marin County|Strawberry CDP|1512|0|6|Flowers|Gene|2998|Rhode Island|M|Son|||2|8003 + +3000|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|1|Boatright|Nicky Marquis|2963|Florida|M|Head|||37|8004 +3000|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|2|Boatright|Illa|2961|South Dakota|F|Spouse|||39|8005 +3000|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|3|Boatright|Carrol|2981|Hawaii|M|Son|||19|8006 +3000|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|4|Boatright|Thanh|2983|Maryland|M|Son|||17|8007 +3000|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|5|Boatright|Kimberlie|2985|New York|F|Daughter|||15|8008 +3000|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|6|Boatright|Alethea|2987|Hawaii|F|Daughter|||13|8009 +3000|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|7|Boatright|Burt|2989|Tunisia|M|Son|||11|8010 +3000|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|8|Boatright|Kip|2993|Maryland|M|Son|||7|8011 +3000|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|9|Boatright|Thomasine|2995|Louisiana|F|Daughter|||5|8012 +3000|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|10|Boatright|Daine|2999|California|F|Daughter|||1|8013 + +3000|NJ|Sussex County|Hamburg borough|1514|0|1|Fracchia|Marcellus|2955|Ohio|M|Head|||45|8014 +3000|NJ|Sussex County|Hamburg borough|1514|0|2|Fracchia|Dorris|2976|North Dakota|F|Spouse|||24|8015 + +3000|IL|Lake County|Forest Lake CDP|1515|0|1|Grattelo|Eddie Moises|2963|Kansas|M|Head|||37|8016 +3000|IL|Lake County|Forest Lake CDP|1515|0|2|Grattelo|Edythe Roslyn|2972|Tennessee|F|Spouse|||28|8017 +3000|IL|Lake County|Forest Lake CDP|1515|0|3|Grattelo|Elda|2992|South Carolina|F|Daughter|||8|8018 +3000|IL|Lake County|Forest Lake CDP|1515|0|4|Grattelo|Trevor|2994|Delaware|M|Son|||6|8019 +3000|IL|Lake County|Forest Lake CDP|1515|0|5|Grattelo|Cameron|3000|Ohio|M|Son|||0|8020 + +3000|WI|Kenosha County|Camp Lake CDP|1516|0|1|Armstrong|Jayson Andy|2942|South Africa|M|Head|||58|8021 +3000|WI|Kenosha County|Camp Lake CDP|1516|0|2|Armstrong|Phylicia|2964|California|F|Spouse|||36|8022 +3000|WI|Kenosha County|Camp Lake CDP|1516|0|3|Armstrong|Mohammad|2984|Uzbekistan|M|Son|||16|8023 +3000|WI|Kenosha County|Camp Lake CDP|1516|0|4|Armstrong|Osvaldo|2986|Virginia|M|Son|||14|8024 +3000|WI|Kenosha County|Camp Lake CDP|1516|0|5|Armstrong|Ema Shani|2996|New Hampshire|F|Daughter|||4|8025 +3000|WI|Kenosha County|Camp Lake CDP|1516|0|6|Armstrong|Bobette Crysta|3000|Kentucky|F|Daughter|||0|8026 + +3000|CA|Amador County|Camanche North Shore CDP|1517|0|1|Clark|Garrett Collin|2950|South Dakota|M|Head|||50|8027 +3000|CA|Amador County|Camanche North Shore CDP|1517|0|2|Clark|Lenita|2955|Indiana|F|Spouse|||45|8028 +3000|CA|Amador County|Camanche North Shore CDP|1517|0|3|Clark|Loni|2985|Ireland|F|Daughter|||15|8029 +3000|CA|Amador County|Camanche North Shore CDP|1517|0|4|Clark|Adalberto Lucio|2987|Qatar|M|Son|||13|8030 +3000|CA|Amador County|Camanche North Shore CDP|1517|0|5|Clark|Justina Tia|2991|Afghanistan|F|Daughter|||9|8031 +3000|CA|Amador County|Camanche North Shore CDP|1517|0|6|Clark|Darren Reynaldo|2997|Iowa|M|Son|||3|8032 + +3000|OH|Warren County|Landen CDP|1518|0|1|Neuser|Gaylord Gerald|2974|Louisiana|M|Head|||26|8033 +3000|OH|Warren County|Landen CDP|1518|0|2|Neuser|Cleveland|2991|South Dakota|M|Son|||9|8034 +3000|OH|Warren County|Landen CDP|1518|0|3|Neuser|Page|2999|Massachusetts|F|Daughter|||1|8035 + +3000|CA|Modoc County|Adin CDP|1519|0|1|Rentschler|Raleigh Phillip|2974|North Dakota|M|Head|||26|8036 +3000|CA|Modoc County|Adin CDP|1519|0|2|Rentschler|Brook|2993|North Dakota|F|Daughter|||7|8037 +3000|CA|Modoc County|Adin CDP|1519|0|3|Rentschler|Marcela|2997|Vermont|F|Daughter|||3|8038 + +3000|PA|York County|Susquehanna Trails CDP|1520|0|1|Wood|Guy Ray|2957|Delaware|M|Head|||43|8039 +3000|PA|York County|Susquehanna Trails CDP|1520|0|2|Wood|Khadijah|2959|South Carolina|F|Spouse|||41|8040 +3000|PA|York County|Susquehanna Trails CDP|1520|0|3|Wood|Eddie|2979|Arizona|M|Son|||21|8041 +3000|PA|York County|Susquehanna Trails CDP|1520|0|4|Wood|Adan|2987|Pennsylvania|M|Son|||13|8042 +3000|PA|York County|Susquehanna Trails CDP|1520|0|5|Wood|Octavio|2989|Samoa|M|Son|||11|8043 +3000|PA|York County|Susquehanna Trails CDP|1520|0|6|Wood|Lilliam Nicolle|2995|Zimbabwe|F|Daughter|||5|8044 +3000|PA|York County|Susquehanna Trails CDP|1520|0|7|Wood|Elba Astrid|2997|Delaware|F|Daughter|||3|8045 + +3000|SD|Brookings County|Brookings city|1521|0|1|Fisichella|Leroy Darwin|2965|Macau|M|Head|||35|8046 +3000|SD|Brookings County|Brookings city|1521|0|2|Fisichella|Chan Leilani|2984|Hawaii|F|Spouse|||16|8047 + +3000|VA|Fluvanna County|Lake Monticello CDP|1522|0|1|Sitterding|Carroll Cary|2968|West Virginia|M|Head|||32|8048 + +3000|NV|Carson City|Carson City|1523|0|1|Petronis|Curtis Norbert|2957|North Dakota|M|Head|||43|8049 +3000|NV|Carson City|Carson City|1523|0|2|Petronis|Marie Angelo|2955|North Carolina|F|Spouse|||45|8050 +3000|NV|Carson City|Carson City|1523|0|3|Petronis|Porter|2985|Nevada|M|Son|||15|8051 +3000|NV|Carson City|Carson City|1523|0|4|Petronis|Trinidad|2987|Oregon|M|Son|||13|8052 +3000|NV|Carson City|Carson City|1523|0|5|Petronis|Trevor|2989|Idaho|M|Son|||11|8053 +3000|NV|Carson City|Carson City|1523|0|6|Petronis|Del|2993|North Carolina|M|Son|||7|8054 +3000|NV|Carson City|Carson City|1523|0|7|Petronis|Denna Krystin|2997|Alaska|F|Daughter|||3|8055 + +3000|OK|Harper County|May town|1524|0|1|Hart|Hai Jefferson|2967|Indiana|M|Head|||33|8056 +3000|OK|Harper County|May town|1524|0|2|Hart|Altha|2979|North Dakota|F|Spouse|||21|8057 + +3000|UT|Carbon County|Clear Creek CDP|1525|0|1|Burdge|Tangela|2953|Belize|F|Head|||47|8058 +3000|UT|Carbon County|Clear Creek CDP|1525|0|2|Burdge|Tyler|2973|Maine|M|Son|||27|8059 +3000|UT|Carbon County|Clear Creek CDP|1525|0|3|Burdge|Danial|2975|Fiji|M|Son|||25|8060 +3000|UT|Carbon County|Clear Creek CDP|1525|0|4|Burdge|Trudi|2985|Kansas|F|Daughter|||15|8061 +3000|UT|Carbon County|Clear Creek CDP|1525|0|5|Burdge|Wilma|2987|New Jersey|F|Daughter|||13|8062 +3000|UT|Carbon County|Clear Creek CDP|1525|0|6|Burdge|Craig|2989|Massachusetts|M|Son|||11|8063 +3000|UT|Carbon County|Clear Creek CDP|1525|0|7|Burdge|Leif|2997|Florida|M|Son|||3|8064 + +3000|IA|Henry County|Winfield city|1526|0|1|Maciolek|Hugh|2946|Massachusetts|M|Head|||54|8065 +3000|IA|Henry County|Winfield city|1526|0|2|Maciolek|Gerald|2961|Florida|F|Spouse|||39|8066 +3000|IA|Henry County|Winfield city|1526|0|3|Maciolek|Guadalupe|2981|Wyoming|M|Son|||19|8067 +3000|IA|Henry County|Winfield city|1526|0|4|Maciolek|Carletta|2985|Tonga|F|Daughter|||15|8068 +3000|IA|Henry County|Winfield city|1526|0|5|Maciolek|Elli|2987|Nigeria|F|Daughter|||13|8069 +3000|IA|Henry County|Winfield city|1526|0|6|Maciolek|Lottie|2989|Idaho|F|Daughter|||11|8070 +3000|IA|Henry County|Winfield city|1526|0|7|Maciolek|Nathanial|2995|Uganda|M|Son|||5|8071 +3000|IA|Henry County|Winfield city|1526|0|8|Maciolek|Maple|2999|Massachusetts|F|Daughter|||1|8072 + +3000|MO|Newton County|Wentworth village|1527|0|1|Laxton|Alvaro Winfred|2978|Washington|M|Head|||22|8073 +3000|MO|Newton County|Wentworth village|1527|0|2|Laxton|Keli|2984|Washington|F|Spouse|||16|8074 + +3000|MI|Benzie County|Lake Ann village|1528|0|1|Shonk|Tim Maurice|2946|American Samoa|M|Head|||54|8075 +3000|MI|Benzie County|Lake Ann village|1528|0|2|Shonk|Coralie|2951|Washington|F|Spouse|||49|8076 +3000|MI|Benzie County|Lake Ann village|1528|0|3|Shonk|Isiah|2975|Wyoming|M|Son|||25|8077 +3000|MI|Benzie County|Lake Ann village|1528|0|4|Shonk|Jeremiah|2985|California|M|Son|||15|8078 +3000|MI|Benzie County|Lake Ann village|1528|0|5|Shonk|Melania Sanjuanita|2987|Alaska|F|Daughter|||13|8079 +3000|MI|Benzie County|Lake Ann village|1528|0|6|Shonk|Dalila|2993|Nebraska|F|Daughter|||7|8080 + +3000|IL|Lake County|Old Mill Creek village|1529|0|1|Breault|Jamie Augustine|2942|Vermont|M|Head|||58|8081 +3000|IL|Lake County|Old Mill Creek village|1529|0|2|Breault|Mayra|2947|Mississippi|F|Spouse|||53|8082 +3000|IL|Lake County|Old Mill Creek village|1529|0|3|Breault|Jacquline Rachell|2967|Viet Nam|F|Daughter|||33|8083 +3000|IL|Lake County|Old Mill Creek village|1529|0|4|Breault|Lenna|2979|Illinois|F|Daughter|||21|8084 +3000|IL|Lake County|Old Mill Creek village|1529|0|5|Breault|Louise|2987|Wyoming|F|Daughter|||13|8085 +3000|IL|Lake County|Old Mill Creek village|1529|0|6|Breault|Hazel|2991|Michigan|F|Daughter|||9|8086 +3000|IL|Lake County|Old Mill Creek village|1529|0|7|Breault|Rueben|2993|Tennessee|M|Son|||7|8087 +3000|IL|Lake County|Old Mill Creek village|1529|0|8|Breault|Meridith|2995|Florida|F|Daughter|||5|8088 + +3000|MI|Shiawassee County|Owosso city|1530|0|1|Gagliano|Herman Ernest|2939|Oregon|M|Head|||61|8089 +3000|MI|Shiawassee County|Owosso city|1530|0|2|Gagliano|Kerry|2987|California|M|Son|||13|8090 +3000|MI|Shiawassee County|Owosso city|1530|0|3|Gagliano|Estelle|2989|New Jersey|F|Daughter|||11|8091 +3000|MI|Shiawassee County|Owosso city|1530|0|4|Gagliano|Clifford Ariel|2997|Michigan|M|Son|||3|8092 +3000|MI|Shiawassee County|Owosso city|1530|0|5|Gagliano|Pierre|2999|New Mexico|M|Son|||1|8093 + +3000|OH|Cuyahoga County|Parma city|1531|0|1|Rinner|Ezequiel|2952|South Carolina|M|Head|||48|8094 +3000|OH|Cuyahoga County|Parma city|1531|0|2|Rinner|Lorenzo|2985|Alabama|M|Son|||15|8095 +3000|OH|Cuyahoga County|Parma city|1531|0|3|Rinner|Caitlyn|2987|Congo|F|Daughter|||13|8096 +3000|OH|Cuyahoga County|Parma city|1531|0|4|Rinner|Clinton|2991|Utah|M|Son|||9|8097 +3000|OH|Cuyahoga County|Parma city|1531|0|5|Rinner|Cruz Arlyne|2993|Oklahoma|F|Daughter|||7|8098 +3000|OH|Cuyahoga County|Parma city|1531|0|6|Rinner|Robt|2995|West Virginia|M|Son|||5|8099 +3000|OH|Cuyahoga County|Parma city|1531|0|7|Rinner|Abdul|2999|Romania|M|Son|||1|8100 + +3000|PA|Erie County|Concord township|1532|0|1|Kattner|Stefan Carmelo|2952|North Carolina|M|Head|||48|8101 +3000|PA|Erie County|Concord township|1532|0|2|Kattner|Britteny|2980|United Kingdom|F|Daughter|||20|8102 +3000|PA|Erie County|Concord township|1532|0|3|Kattner|Houston|2988|Oregon|M|Son|||12|8103 +3000|PA|Erie County|Concord township|1532|0|4|Kattner|Casimira|2992|Hawaii|F|Daughter|||8|8104 +3000|PA|Erie County|Concord township|1532|0|5|Kattner|Titus|2994|Florida|M|Son|||6|8105 +3000|PA|Erie County|Concord township|1532|0|6|Kattner|Donnie|2998|Vermont|M|Son|||2|8106 +3000|PA|Erie County|Concord township|1532|0|7|Kattner|Filiberto|3000|New Mexico|M|Son|||0|8107 + +3000|NE|Sarpy County|Gretna city|1533|0|1|Guerrant|Blaine|2958|Hawaii|M|Head|||42|8108 +3000|NE|Sarpy County|Gretna city|1533|0|2|Guerrant|Deann|2982|Latvia|F|Spouse|||18|8109 + +3000|NY|Suffolk County|Fishers Island CDP|1534|0|1|Kimbler|Peggie Christy|2956|Czech Republic|F|Head|||44|8110 +3000|NY|Suffolk County|Fishers Island CDP|1534|0|2|Kimbler|Sheryl|2980|Panama|F|Daughter|||20|8111 +3000|NY|Suffolk County|Fishers Island CDP|1534|0|3|Kimbler|Lillie|2984|Vermont|F|Daughter|||16|8112 +3000|NY|Suffolk County|Fishers Island CDP|1534|0|4|Kimbler|Rosaura|2986|Illinois|F|Daughter|||14|8113 +3000|NY|Suffolk County|Fishers Island CDP|1534|0|5|Kimbler|Jackie|2992|Bulgaria|M|Son|||8|8114 +3000|NY|Suffolk County|Fishers Island CDP|1534|0|6|Kimbler|Bethany Rosa|2998|Nevada|F|Daughter|||2|8115 +3000|NY|Suffolk County|Fishers Island CDP|1534|0|7|Kimbler|Alonso Roberto|3000|Indiana|M|Son|||0|8116 + +3000|NY|Suffolk County|Northport village|1535|0|1|Hampton|Juan Emil|2983|New Jersey|M|Head|||17|8117 +3000|NY|Suffolk County|Northport village|1535|0|2|Hampton|Evelyn|2984|Mississippi|F|Spouse|||16|8118 + +3000|GA|Habersham County|Cornelia city|1536|0|1|Lepping|Moses Arlen|2951|Ohio|M|Head|||49|8119 +3000|GA|Habersham County|Cornelia city|1536|0|2|Lepping|Sanora|2970|South Carolina|F|Spouse|||30|8120 +3000|GA|Habersham County|Cornelia city|1536|0|3|Lepping|Reatha|2994|Idaho|F|Daughter|||6|8121 + +3000|AZ|Pinal County|Sacate Village CDP|1537|0|1|Greever|Tommie Emerson|2959|Cuba|M|Head|||41|8122 +3000|AZ|Pinal County|Sacate Village CDP|1537|0|2|Greever|Launa|2968|Iowa|F|Spouse|||32|8123 +3000|AZ|Pinal County|Sacate Village CDP|1537|0|3|Greever|Lucas|2990|Ohio|M|Son|||10|8124 +3000|AZ|Pinal County|Sacate Village CDP|1537|0|4|Greever|Mao|2992|Oklahoma|F|Daughter|||8|8125 +3000|AZ|Pinal County|Sacate Village CDP|1537|0|5|Greever|Oren|2994|Texas|M|Son|||6|8126 + +3000|WI|Shawano County|Cecil village|1538|0|1|Donoghue|Ronald Erich|2955|Texas|M|Head|||45|8127 +3000|WI|Shawano County|Cecil village|1538|0|2|Donoghue|Tracie Jessia|2967|New York|F|Spouse|||33|8128 +3000|WI|Shawano County|Cecil village|1538|0|3|Donoghue|Rudy Clemente|2987|Tennessee|M|Son|||13|8129 +3000|WI|Shawano County|Cecil village|1538|0|4|Donoghue|Janay|2993|Tennessee|F|Daughter|||7|8130 +3000|WI|Shawano County|Cecil village|1538|0|5|Donoghue|Crista Amie|2997|Hawaii|F|Daughter|||3|8131 +3000|WI|Shawano County|Cecil village|1538|0|6|Donoghue|Rubi|2999|North Dakota|F|Daughter|||1|8132 + +3000|MN|Clay County|Hagen township|1539|0|1|Mino|Forest Eldon|2946|Kentucky|M|Head|||54|8133 +3000|MN|Clay County|Hagen township|1539|0|2|Mino|Adina|2963|Alaska|F|Spouse|||37|8134 +3000|MN|Clay County|Hagen township|1539|0|3|Mino|Judy|2985|Missouri|F|Daughter|||15|8135 +3000|MN|Clay County|Hagen township|1539|0|4|Mino|Loise|2991|Montana|F|Daughter|||9|8136 +3000|MN|Clay County|Hagen township|1539|0|5|Mino|Vanessa|2995|Georgia|F|Daughter|||5|8137 + +3000|MS|Chickasaw County|Okolona city|1540|0|1|Arbogast|Gino Brady|2955|Maryland|M|Head|||45|8138 +3000|MS|Chickasaw County|Okolona city|1540|0|2|Arbogast|Nicholle|2962|Tennessee|F|Spouse|||38|8139 +3000|MS|Chickasaw County|Okolona city|1540|0|3|Arbogast|Nicol Keturah|2982|Michigan|F|Daughter|||18|8140 +3000|MS|Chickasaw County|Okolona city|1540|0|4|Arbogast|Eugenio|2984|Connecticut|M|Son|||16|8141 +3000|MS|Chickasaw County|Okolona city|1540|0|5|Arbogast|Gracia Liana|2986|Italy|F|Daughter|||14|8142 +3000|MS|Chickasaw County|Okolona city|1540|0|6|Arbogast|Altha|2990|Wyoming|F|Daughter|||10|8143 +3000|MS|Chickasaw County|Okolona city|1540|0|7|Arbogast|Margurite|2992|Washington|F|Daughter|||8|8144 +3000|MS|Chickasaw County|Okolona city|1540|0|8|Arbogast|Armando|3000|Iowa|M|Son|||0|8145 + +3000|MI|Branch County|Algansee township|1541|0|1|Koopman|Russell Clayton|2966|Taiwan, Province Of China|M|Head|||34|8146 +3000|MI|Branch County|Algansee township|1541|0|2|Koopman|Dolores|2986|New Hampshire|F|Daughter|||14|8147 +3000|MI|Branch County|Algansee township|1541|0|3|Koopman|Tricia|2990|Connecticut|F|Daughter|||10|8148 +3000|MI|Branch County|Algansee township|1541|0|4|Koopman|Ernie|2994|Iowa|M|Son|||6|8149 + +3000|KS|Rawlins County|Herndon city|1542|0|1|Provencher|Fred|2955|Palestinian Territory, Occupied|M|Head|||45|8150 +3000|KS|Rawlins County|Herndon city|1542|0|2|Provencher|Numbers|2953|Indiana|F|Spouse|||47|8151 +3000|KS|Rawlins County|Herndon city|1542|0|3|Provencher|Odilia Daniel|2985|Kansas|F|Daughter|||15|8152 +3000|KS|Rawlins County|Herndon city|1542|0|4|Provencher|Antoine|2987|Texas|M|Son|||13|8153 +3000|KS|Rawlins County|Herndon city|1542|0|5|Provencher|Abram Joan|2993|Slovakia|M|Son|||7|8154 +3000|KS|Rawlins County|Herndon city|1542|0|6|Provencher|Un Genevie|2995|Missouri|F|Daughter|||5|8155 +3000|KS|Rawlins County|Herndon city|1542|0|7|Provencher|Angella|2997|Virginia|F|Daughter|||3|8156 + +3000|WI|Racine County|Sturtevant village|1543|0|1|Hession|Wes Hugh|2948|South Carolina|M|Head|||52|8157 +3000|WI|Racine County|Sturtevant village|1543|0|2|Hession|Zachary Carmen|2985|Morocco|M|Son|||15|8158 +3000|WI|Racine County|Sturtevant village|1543|0|3|Hession|Terese|2989|Utah|F|Daughter|||11|8159 +3000|WI|Racine County|Sturtevant village|1543|0|4|Hession|Elmo|2991|North Carolina|M|Son|||9|8160 +3000|WI|Racine County|Sturtevant village|1543|0|5|Hession|Harley|2995|Kansas|M|Son|||5|8161 +3000|WI|Racine County|Sturtevant village|1543|0|6|Hession|Shanae|2999|Ohio|F|Daughter|||1|8162 + +3000|MN|Sherburne County|Baldwin township|1544|0|1|Degarmo|Ivory Agustin|2946|Illinois|M|Head|||54|8163 +3000|MN|Sherburne County|Baldwin township|1544|0|2|Degarmo|Donald|2984|Washington|F|Daughter|||16|8164 +3000|MN|Sherburne County|Baldwin township|1544|0|3|Degarmo|Venessa Monica|2986|Minnesota|F|Daughter|||14|8165 +3000|MN|Sherburne County|Baldwin township|1544|0|4|Degarmo|Hubert|2990|Arizona|M|Son|||10|8166 +3000|MN|Sherburne County|Baldwin township|1544|0|5|Degarmo|Humberto|2998|Florida|M|Son|||2|8167 + +3000|WI|Marathon County|Harrison town|1545|0|1|Gurnett|Preston Scotty|2952|Colorado|M|Head|||48|8168 +3000|WI|Marathon County|Harrison town|1545|0|2|Gurnett|Annelle|2969|Georgia|F|Spouse|||31|8169 +3000|WI|Marathon County|Harrison town|1545|0|3|Gurnett|Gerardo|2991|Oregon|M|Son|||9|8170 +3000|WI|Marathon County|Harrison town|1545|0|4|Gurnett|Nelida|2995|Rhode Island|F|Daughter|||5|8171 +3000|WI|Marathon County|Harrison town|1545|0|5|Gurnett|George|2999|Bosnia And Herzegovina|M|Son|||1|8172 + +3000|AK|Nome Census Area|Golovin city|1546|0|1|Hester|Adrian Antoine|2969|Louisiana|M|Head|||31|8173 +3000|AK|Nome Census Area|Golovin city|1546|0|2|Hester|Aide|2977|Utah|F|Spouse|||23|8174 +3000|AK|Nome Census Area|Golovin city|1546|0|3|Hester|Blondell Minta|2997|Iowa|F|Daughter|||3|8175 +3000|AK|Nome Census Area|Golovin city|1546|0|4|Hester|Jamel Jed|2999|Hawaii|M|Son|||1|8176 + +3000|FL|Pinellas County|Indian Shores town|1547|0|1|Tambasco|Raquel|2945|Saudi Arabia|F|Head|||55|8177 +3000|FL|Pinellas County|Indian Shores town|1547|0|2|Tambasco|Marcelle Kasie|2967|French Southern Territories|F|Daughter|||33|8178 +3000|FL|Pinellas County|Indian Shores town|1547|0|3|Tambasco|Carmela|2973|Nevada|F|Daughter|||27|8179 +3000|FL|Pinellas County|Indian Shores town|1547|0|4|Tambasco|Karl|2981|California|M|Son|||19|8180 +3000|FL|Pinellas County|Indian Shores town|1547|0|5|Tambasco|Georgia Cyrstal|2985|Montserrat|F|Daughter|||15|8181 +3000|FL|Pinellas County|Indian Shores town|1547|0|6|Tambasco|Roman|2989|Hawaii|M|Son|||11|8182 +3000|FL|Pinellas County|Indian Shores town|1547|0|7|Tambasco|Ona|2993|Turkmenistan|F|Daughter|||7|8183 +3000|FL|Pinellas County|Indian Shores town|1547|0|8|Tambasco|Lance|2997|New Hampshire|M|Son|||3|8184 +3000|FL|Pinellas County|Indian Shores town|1547|0|9|Tambasco|Kasi|2999|Wisconsin|F|Daughter|||1|8185 + +3000|CO|El Paso County|Fountain city|1548|0|1|Feierman|Rodolfo Douglass|2949|Pennsylvania|M|Head|||51|8186 +3000|CO|El Paso County|Fountain city|1548|0|2|Feierman|Roselyn|2953|Monaco|F|Spouse|||47|8187 +3000|CO|El Paso County|Fountain city|1548|0|3|Feierman|Oscar|2977|Mississippi|F|Daughter|||23|8188 +3000|CO|El Paso County|Fountain city|1548|0|4|Feierman|Exie|2991|Kentucky|F|Daughter|||9|8189 +3000|CO|El Paso County|Fountain city|1548|0|5|Feierman|Ashely Merlyn|2993|Alabama|F|Daughter|||7|8190 +3000|CO|El Paso County|Fountain city|1548|0|6|Feierman|Destiny|2999|Georgia|F|Daughter|||1|8191 + +3000|MA|Barnstable County|Harwich Center CDP|1549|0|1|Doler|Marshall Yong|2967|Arkansas|M|Head|||33|8192 +3000|MA|Barnstable County|Harwich Center CDP|1549|0|2|Doler|Winfred|2991|Arkansas|M|Son|||9|8193 +3000|MA|Barnstable County|Harwich Center CDP|1549|0|3|Doler|Mariano|2997|Puerto Rico|M|Son|||3|8194 +3000|MA|Barnstable County|Harwich Center CDP|1549|0|4|Doler|Matthew|2999|Michigan|F|Daughter|||1|8195 + +3000|NJ|Ocean County|Holiday City-Berkeley CDP|1550|0|1|Mlenar|Bert|2939|Kentucky|M|Head|||61|8196 +3000|NJ|Ocean County|Holiday City-Berkeley CDP|1550|0|2|Mlenar|Myrtice|2940|South Carolina|F|Spouse|||60|8197 +3000|NJ|Ocean County|Holiday City-Berkeley CDP|1550|0|3|Mlenar|Sam|2964|Arkansas|M|Son|||36|8198 +3000|NJ|Ocean County|Holiday City-Berkeley CDP|1550|0|4|Mlenar|Shira|2990|South Dakota|F|Daughter|||10|8199 +3000|NJ|Ocean County|Holiday City-Berkeley CDP|1550|0|5|Mlenar|Geraldine|2992|Oregon|F|Daughter|||8|8200 +3000|NJ|Ocean County|Holiday City-Berkeley CDP|1550|0|6|Mlenar|Thanh|2994|Oregon|M|Son|||6|8201 +3000|NJ|Ocean County|Holiday City-Berkeley CDP|1550|0|7|Mlenar|Melia|2998|Burundi|F|Daughter|||2|8202 + +3000|TX|Liberty County|Kenefick town|1551|0|1|Torres|Johnson|2947|Alaska|M|Head|||53|8203 +3000|TX|Liberty County|Kenefick town|1551|0|2|Torres|Benny|2985|Antigua And Barbuda|M|Son|||15|8204 +3000|TX|Liberty County|Kenefick town|1551|0|3|Torres|Azzie|2987|New Zealand|F|Daughter|||13|8205 +3000|TX|Liberty County|Kenefick town|1551|0|4|Torres|Desmond|2989|Virginia|M|Son|||11|8206 +3000|TX|Liberty County|Kenefick town|1551|0|5|Torres|Isidra|2991|Delaware|F|Daughter|||9|8207 + +3000|NJ|Salem County|Woodstown borough|1552|0|1|Peters|Bruce|2959|Kentucky|M|Head|||41|8208 +3000|NJ|Salem County|Woodstown borough|1552|0|2|Peters|Long|2985|New Zealand|M|Son|||15|8209 +3000|NJ|Salem County|Woodstown borough|1552|0|3|Peters|Kurt|2989|Saudi Arabia|M|Son|||11|8210 +3000|NJ|Salem County|Woodstown borough|1552|0|4|Peters|Lashawna|2995|Texas|F|Daughter|||5|8211 + +3000|MN|Goodhue County|Wacouta township|1553|0|1|Wilson|Craig Clifton|2966|Paraguay|M|Head|||34|8212 +3000|MN|Goodhue County|Wacouta township|1553|0|2|Wilson|Ammie|2962|Florida|F|Spouse|||38|8213 +3000|MN|Goodhue County|Wacouta township|1553|0|3|Wilson|Donnie|2986|Vermont|F|Daughter|||14|8214 +3000|MN|Goodhue County|Wacouta township|1553|0|4|Wilson|Marlon|2988|Pitcairn|M|Son|||12|8215 +3000|MN|Goodhue County|Wacouta township|1553|0|5|Wilson|Ethan|2992|Uzbekistan|M|Son|||8|8216 +3000|MN|Goodhue County|Wacouta township|1553|0|6|Wilson|Racquel|2994|South Dakota|F|Daughter|||6|8217 + +3000|TX|Hardin County|Silsbee city|1554|0|1|Strama|Ali Monty|2980|California|M|Head|||20|8218 +3000|TX|Hardin County|Silsbee city|1554|0|2|Strama|Bridgett|2976|North Carolina|F|Spouse|||24|8219 +3000|TX|Hardin County|Silsbee city|1554|0|3|Strama|Eugena|2996|Florida|F|Daughter|||4|8220 +3000|TX|Hardin County|Silsbee city|1554|0|4|Strama|Julia|3000|Oklahoma|F|Daughter|||0|8221 + +3000|PA|York County|Delta borough|1555|0|1|Skelly|Henry|2959|Utah|M|Head|||41|8222 +3000|PA|York County|Delta borough|1555|0|2|Skelly|Shawnda|2975|West Virginia|F|Spouse|||25|8223 +3000|PA|York County|Delta borough|1555|0|3|Skelly|Genia Teisha|2997|Alabama|F|Daughter|||3|8224 +3000|PA|York County|Delta borough|1555|0|4|Skelly|Anastacia|2999|Tennessee|F|Daughter|||1|8225 + +3000|AZ|Pima County|Casas Adobes CDP|1556|0|1|Sneed|Shanelle|2939|South Carolina|F|Head|||61|8226 +3000|AZ|Pima County|Casas Adobes CDP|1556|0|2|Sneed|Sharolyn Faith|2961|Liberia|F|Daughter|||39|8227 +3000|AZ|Pima County|Casas Adobes CDP|1556|0|3|Sneed|Shantell|2965|Michigan|F|Daughter|||35|8228 +3000|AZ|Pima County|Casas Adobes CDP|1556|0|4|Sneed|Lynwood|2987|Montana|M|Son|||13|8229 +3000|AZ|Pima County|Casas Adobes CDP|1556|0|5|Sneed|Venita|2989|Singapore|F|Daughter|||11|8230 +3000|AZ|Pima County|Casas Adobes CDP|1556|0|6|Sneed|Ignacio|2993|Antarctica|M|Son|||7|8231 + +3000|PA|Luzerne County|Laflin borough|1557|0|1|Im|Florencio Lindsey|2976|Wisconsin|M|Head|||24|8232 +3000|PA|Luzerne County|Laflin borough|1557|0|2|Im|Valerie|2983|Missouri|F|Spouse|||17|8233 + +3000|IL|Cook County|Thornton village|1558|0|1|Howery|Terry|2948|Mississippi|M|Head|||52|8234 +3000|IL|Cook County|Thornton village|1558|0|2|Howery|June|2956|Illinois|F|Spouse|||44|8235 +3000|IL|Cook County|Thornton village|1558|0|3|Howery|Alphonse|2984|New Caledonia|M|Son|||16|8236 +3000|IL|Cook County|Thornton village|1558|0|4|Howery|Sharie|2986|Wyoming|F|Daughter|||14|8237 +3000|IL|Cook County|Thornton village|1558|0|5|Howery|Lucius Gilberto|2988|Guyana|M|Son|||12|8238 +3000|IL|Cook County|Thornton village|1558|0|6|Howery|Monte|2992|Connecticut|M|Son|||8|8239 +3000|IL|Cook County|Thornton village|1558|0|7|Howery|Chi|2998|South Carolina|M|Son|||2|8240 +3000|IL|Cook County|Thornton village|1558|0|8|Howery|Ricky|3000|Tennessee|M|Son|||0|8241 + +3000|MN|Wabasha County|Zumbro Falls city|1559|0|1|Ozier|Frances Doug|2937|South Dakota|M|Head|||63|8242 +3000|MN|Wabasha County|Zumbro Falls city|1559|0|2|Ozier|Milagros|2950|China|F|Spouse|||50|8243 +3000|MN|Wabasha County|Zumbro Falls city|1559|0|3|Ozier|Lemuel|2970|Greenland|M|Son|||30|8244 +3000|MN|Wabasha County|Zumbro Falls city|1559|0|4|Ozier|Marine|2982|Oregon|F|Daughter|||18|8245 +3000|MN|Wabasha County|Zumbro Falls city|1559|0|5|Ozier|Tonda|2988|Montana|F|Daughter|||12|8246 +3000|MN|Wabasha County|Zumbro Falls city|1559|0|6|Ozier|Johnson|2990|Oregon|M|Son|||10|8247 +3000|MN|Wabasha County|Zumbro Falls city|1559|0|7|Ozier|Demetrice|3000|Libyan Arab Jamahiriya|F|Daughter|||0|8248 + +3000|OK|Sequoyah County|Roland town|1560|0|1|Kugler|Kirk Columbus|2974|Missouri|M|Head|||26|8249 + +3000|MI|Marquette County|Negaunee city|1561|0|1|Ellefson|Seth|2938|Wisconsin|M|Head|||62|8250 +3000|MI|Marquette County|Negaunee city|1561|0|2|Ellefson|Halley|2982|Delaware|F|Daughter|||18|8251 +3000|MI|Marquette County|Negaunee city|1561|0|3|Ellefson|Asa|2986|West Virginia|M|Son|||14|8252 +3000|MI|Marquette County|Negaunee city|1561|0|4|Ellefson|Sari|2988|Iraq|F|Daughter|||12|8253 +3000|MI|Marquette County|Negaunee city|1561|0|5|Ellefson|Tasia|2990|Alaska|F|Daughter|||10|8254 +3000|MI|Marquette County|Negaunee city|1561|0|6|Ellefson|Issac Conrad|2992|Ohio|M|Son|||8|8255 +3000|MI|Marquette County|Negaunee city|1561|0|7|Ellefson|Desmond|2994|Texas|M|Son|||6|8256 +3000|MI|Marquette County|Negaunee city|1561|0|8|Ellefson|Odell Vincent|2996|Brunei Darussalam|M|Son|||4|8257 +3000|MI|Marquette County|Negaunee city|1561|0|9|Ellefson|Glen|2998|Colorado|M|Son|||2|8258 + +3000|KS|Nemaha County|Wetmore city|1562|0|1|Milovich|Coleman Waylon|2955|Utah|M|Head|||45|8259 +3000|KS|Nemaha County|Wetmore city|1562|0|2|Milovich|Beverley|2979|Colorado|F|Spouse|||21|8260 +3000|KS|Nemaha County|Wetmore city|1562|0|3|Milovich|Renate|2999|Washington|F|Daughter|||1|8261 + +3000|NC|Mitchell County|Bakersville town|1563|0|1|Guarneri|Kirby Cruz|2951|Haiti|M|Head|||49|8262 +3000|NC|Mitchell County|Bakersville town|1563|0|2|Guarneri|Yoshiko|2951|Michigan|F|Spouse|||49|8263 +3000|NC|Mitchell County|Bakersville town|1563|0|3|Guarneri|Amos Jamaal|2973|Maine|M|Son|||27|8264 +3000|NC|Mitchell County|Bakersville town|1563|0|4|Guarneri|Mauro|2977|Colorado|M|Son|||23|8265 +3000|NC|Mitchell County|Bakersville town|1563|0|5|Guarneri|Chasidy Sadye|2987|British Indian Ocean Territory|F|Daughter|||13|8266 +3000|NC|Mitchell County|Bakersville town|1563|0|6|Guarneri|Cira|2993|Cambodia|F|Daughter|||7|8267 +3000|NC|Mitchell County|Bakersville town|1563|0|7|Guarneri|Roland|2997|Pennsylvania|M|Son|||3|8268 + +3000|AZ|Apache County|Teec Nos Pos CDP|1564|0|1|Hemmeter|Edgar Nolan|2940|Wisconsin|M|Head|||60|8269 +3000|AZ|Apache County|Teec Nos Pos CDP|1564|0|2|Hemmeter|Tashina|2942|Louisiana|F|Spouse|||58|8270 +3000|AZ|Apache County|Teec Nos Pos CDP|1564|0|3|Hemmeter|Dominque|2962|New Hampshire|F|Daughter|||38|8271 +3000|AZ|Apache County|Teec Nos Pos CDP|1564|0|4|Hemmeter|Garry|2970|Kentucky|M|Son|||30|8272 +3000|AZ|Apache County|Teec Nos Pos CDP|1564|0|5|Hemmeter|Alva|2974|Tennessee|M|Son|||26|8273 +3000|AZ|Apache County|Teec Nos Pos CDP|1564|0|6|Hemmeter|Noe|2990|Saint Kitts And Nevis|M|Son|||10|8274 +3000|AZ|Apache County|Teec Nos Pos CDP|1564|0|7|Hemmeter|Freddie|2992|Alabama|M|Son|||8|8275 +3000|AZ|Apache County|Teec Nos Pos CDP|1564|0|8|Hemmeter|Brenna|2994|Arizona|F|Daughter|||6|8276 +3000|AZ|Apache County|Teec Nos Pos CDP|1564|0|9|Hemmeter|Jarod|2998|New Caledonia|M|Son|||2|8277 + +3000|MN|Fillmore County|Arendahl township|1565|0|1|Stobie|Lyle Garret|2948|Cambodia|M|Head|||52|8278 +3000|MN|Fillmore County|Arendahl township|1565|0|2|Stobie|Mistie|2954|Maryland|F|Spouse|||46|8279 +3000|MN|Fillmore County|Arendahl township|1565|0|3|Stobie|Myron|2988|Tennessee|M|Son|||12|8280 +3000|MN|Fillmore County|Arendahl township|1565|0|4|Stobie|Deangelo|2994|New Jersey|M|Son|||6|8281 +3000|MN|Fillmore County|Arendahl township|1565|0|5|Stobie|Marcy|3000|Tonga|F|Daughter|||0|8282 + +3000|MI|Isabella County|Chippewa township|1566|0|1|Bilello|Milo Gerry|2951|Hawaii|M|Head|||49|8283 +3000|MI|Isabella County|Chippewa township|1566|0|2|Bilello|Mickie Kandra|2974|Swaziland|F|Spouse|||26|8284 +3000|MI|Isabella County|Chippewa township|1566|0|3|Bilello|Mazie|2996|Viet Nam|F|Daughter|||4|8285 +3000|MI|Isabella County|Chippewa township|1566|0|4|Bilello|Letitia|2998|New Hampshire|F|Daughter|||2|8286 + +3000|TX|Henderson County|Poynor town|1567|0|1|Koerner|Rory|2944|Nevada|M|Head|||56|8287 +3000|TX|Henderson County|Poynor town|1567|0|2|Koerner|Grant|2973|Connecticut|M|Son|||27|8288 +3000|TX|Henderson County|Poynor town|1567|0|3|Koerner|Manda|2975|Jordan|F|Daughter|||25|8289 +3000|TX|Henderson County|Poynor town|1567|0|4|Koerner|Manual Van|2989|Maryland|M|Son|||11|8290 +3000|TX|Henderson County|Poynor town|1567|0|5|Koerner|Laurette|2993|South Dakota|F|Daughter|||7|8291 +3000|TX|Henderson County|Poynor town|1567|0|6|Koerner|Travis|2999|New Hampshire|M|Son|||1|8292 + +3000|GA|Putnam County|Crooked Creek CDP|1568|0|1|Albertine|Art Valentine|2954|Rhode Island|M|Head|||46|8293 +3000|GA|Putnam County|Crooked Creek CDP|1568|0|2|Albertine|Winfred Frances|2983|Maryland|M|Son|||17|8294 +3000|GA|Putnam County|Crooked Creek CDP|1568|0|3|Albertine|Annemarie|2989|Maryland|F|Daughter|||11|8295 +3000|GA|Putnam County|Crooked Creek CDP|1568|0|4|Albertine|Leia|2993|Massachusetts|F|Daughter|||7|8296 +3000|GA|Putnam County|Crooked Creek CDP|1568|0|5|Albertine|Long|2997|Arkansas|M|Son|||3|8297 + +3000|MI|Kalkaska County|Kalkaska village|1569|0|1|Damberger|Nick|2979|Costa Rica|M|Head|||21|8298 +3000|MI|Kalkaska County|Kalkaska village|1569|0|2|Damberger|Hilda|2982|Connecticut|F|Spouse|||18|8299 + +3000|ME|Penobscot County|Levant town|1570|0|1|Sullivan|Tomas Gregg|2960|Venezuela|M|Head|||40|8300 +3000|ME|Penobscot County|Levant town|1570|0|2|Sullivan|Teresia|2986|Mississippi|F|Daughter|||14|8301 +3000|ME|Penobscot County|Levant town|1570|0|3|Sullivan|Myrtice|2990|Burkina Faso|F|Daughter|||10|8302 +3000|ME|Penobscot County|Levant town|1570|0|4|Sullivan|Chase|2992|Iowa|M|Son|||8|8303 +3000|ME|Penobscot County|Levant town|1570|0|5|Sullivan|Quinn|2994|Alabama|M|Son|||6|8304 +3000|ME|Penobscot County|Levant town|1570|0|6|Sullivan|Todd|2996|Colombia|M|Son|||4|8305 +3000|ME|Penobscot County|Levant town|1570|0|7|Sullivan|Gilberto|3000|Idaho|M|Son|||0|8306 + +3000|GA|Washington County|Harrison town|1571|0|1|Rafanan|Oda|2973|Ohio|F|Head|||27|8307 +3000|GA|Washington County|Harrison town|1571|0|2|Rafanan|Joseph|2995|Utah|M|Son|||5|8308 +3000|GA|Washington County|Harrison town|1571|0|3|Rafanan|Arica|2997|Utah|F|Daughter|||3|8309 + +3000|WV|Webster County|Addison (Webster Springs) town|1572|0|1|Jack|Myrna|2940|Louisiana|F|Head|||60|8310 +3000|WV|Webster County|Addison (Webster Springs) town|1572|0|2|Jack|Corazon|2962|Nevada|F|Daughter|||38|8311 +3000|WV|Webster County|Addison (Webster Springs) town|1572|0|3|Jack|Lynn|2968|North Dakota|M|Son|||32|8312 +3000|WV|Webster County|Addison (Webster Springs) town|1572|0|4|Jack|Alisa|2976|North Dakota|F|Daughter|||24|8313 +3000|WV|Webster County|Addison (Webster Springs) town|1572|0|5|Jack|Edra|3000|Florida|F|Daughter|||0|8314 + +3000|IN|Delaware County|Yorktown town|1573|0|1|Janacek|Art Bruno|2940|Vanuatu|M|Head|||60|8315 +3000|IN|Delaware County|Yorktown town|1573|0|2|Janacek|Carolynn|2961|Argentina|F|Spouse|||39|8316 +3000|IN|Delaware County|Yorktown town|1573|0|3|Janacek|Clarence|2983|New Hampshire|F|Daughter|||17|8317 +3000|IN|Delaware County|Yorktown town|1573|0|4|Janacek|Debby|2985|Greece|F|Daughter|||15|8318 +3000|IN|Delaware County|Yorktown town|1573|0|5|Janacek|Claud Chadwick|2989|Zimbabwe|M|Son|||11|8319 +3000|IN|Delaware County|Yorktown town|1573|0|6|Janacek|Mittie|2995|Senegal|F|Daughter|||5|8320 +3000|IN|Delaware County|Yorktown town|1573|0|7|Janacek|Paula|2997|Vermont|F|Daughter|||3|8321 +3000|IN|Delaware County|Yorktown town|1573|0|8|Janacek|Tameika|2999|Arkansas|F|Daughter|||1|8322 + +3000|NY|Steuben County|Savona village|1574|0|1|Ovitt|Vernon Lemuel|2970|Massachusetts|M|Head|||30|8323 +3000|NY|Steuben County|Savona village|1574|0|2|Ovitt|Mikaela|2979|Indiana|F|Spouse|||21|8324 +3000|NY|Steuben County|Savona village|1574|0|3|Ovitt|Armando|2999|Saint Pierre And Miquelon|M|Son|||1|8325 + +3000|CA|Sacramento County|Rancho Cordova city|1575|0|1|Thompson|Darryl Alberto|2960|Delaware|M|Head|||40|8326 +3000|CA|Sacramento County|Rancho Cordova city|1575|0|2|Thompson|Tamar|2957|Pennsylvania|F|Spouse|||43|8327 +3000|CA|Sacramento County|Rancho Cordova city|1575|0|3|Thompson|Domonique|2987|Oregon|F|Daughter|||13|8328 +3000|CA|Sacramento County|Rancho Cordova city|1575|0|4|Thompson|Miguelina|2989|Sweden|F|Daughter|||11|8329 +3000|CA|Sacramento County|Rancho Cordova city|1575|0|5|Thompson|Zenia|2993|Benin|F|Daughter|||7|8330 +3000|CA|Sacramento County|Rancho Cordova city|1575|0|6|Thompson|Ginette|2995|Michigan|F|Daughter|||5|8331 + +3000|NE|Dodge County|Nickerson village|1576|0|1|Mcmahan|Rigoberto Randall|2966|New York|M|Head|||34|8332 + +3000|GA|Peach County|Fort Valley city|1577|0|1|Bos|Darrick Taylor|2959|Virgin Islands, British|M|Head|||41|8333 +3000|GA|Peach County|Fort Valley city|1577|0|2|Bos|Kami|2957|Nevada|F|Spouse|||43|8334 +3000|GA|Peach County|Fort Valley city|1577|0|3|Bos|Alden|2981|Kansas|M|Son|||19|8335 +3000|GA|Peach County|Fort Valley city|1577|0|4|Bos|Hermila|2983|Illinois|F|Daughter|||17|8336 +3000|GA|Peach County|Fort Valley city|1577|0|5|Bos|Cicely|2985|Illinois|F|Daughter|||15|8337 +3000|GA|Peach County|Fort Valley city|1577|0|6|Bos|Maris|2987|Zambia|F|Daughter|||13|8338 +3000|GA|Peach County|Fort Valley city|1577|0|7|Bos|Alfred|2995|Minnesota|M|Son|||5|8339 +3000|GA|Peach County|Fort Valley city|1577|0|8|Bos|Martin Jame|2999|Pennsylvania|M|Son|||1|8340 + +3000|MN|Scott County|Jordan city|1578|0|1|Jorge|Julian Adolfo|2948|Minnesota|M|Head|||52|8341 +3000|MN|Scott County|Jordan city|1578|0|2|Jorge|Delana Natasha|2959|Haiti|F|Spouse|||41|8342 +3000|MN|Scott County|Jordan city|1578|0|3|Jorge|Lorriane|2981|Indiana|F|Daughter|||19|8343 +3000|MN|Scott County|Jordan city|1578|0|4|Jorge|Robby|2987|Rhode Island|M|Son|||13|8344 +3000|MN|Scott County|Jordan city|1578|0|5|Jorge|Crystle|2989|Massachusetts|F|Daughter|||11|8345 +3000|MN|Scott County|Jordan city|1578|0|6|Jorge|Allan|2993|Ohio|M|Son|||7|8346 +3000|MN|Scott County|Jordan city|1578|0|7|Jorge|Nga|2997|Virginia|F|Daughter|||3|8347 +3000|MN|Scott County|Jordan city|1578|0|8|Jorge|Vernon|2999|Nebraska|M|Son|||1|8348 + +3000|CA|Santa Cruz County|Bonny Doon CDP|1579|0|1|Carter|Olevia|2961|Mississippi|F|Head|||39|8349 +3000|CA|Santa Cruz County|Bonny Doon CDP|1579|0|2|Carter|Javier|2987|Michigan|M|Son|||13|8350 +3000|CA|Santa Cruz County|Bonny Doon CDP|1579|0|3|Carter|Guy|2989|Virginia|M|Son|||11|8351 +3000|CA|Santa Cruz County|Bonny Doon CDP|1579|0|4|Carter|Harry|2993|Cyprus|M|Son|||7|8352 +3000|CA|Santa Cruz County|Bonny Doon CDP|1579|0|5|Carter|Aron|2995|Louisiana|M|Son|||5|8353 +3000|CA|Santa Cruz County|Bonny Doon CDP|1579|0|6|Carter|Dannette|2997|Nevada|F|Daughter|||3|8354 +3000|CA|Santa Cruz County|Bonny Doon CDP|1579|0|7|Carter|Franklyn|2999|Idaho|M|Son|||1|8355 + +3000|MO|Ozark County|Sundown CDP|1580|0|1|Bjorkquist|Donald Grady|2951|Reunion|M|Head|||49|8356 +3000|MO|Ozark County|Sundown CDP|1580|0|2|Bjorkquist|Myung|2955|California|F|Spouse|||45|8357 +3000|MO|Ozark County|Sundown CDP|1580|0|3|Bjorkquist|Henriette|2975|Nevada|F|Daughter|||25|8358 +3000|MO|Ozark County|Sundown CDP|1580|0|4|Bjorkquist|Rufus|2977|Pennsylvania|M|Son|||23|8359 +3000|MO|Ozark County|Sundown CDP|1580|0|5|Bjorkquist|August|2979|Utah|M|Son|||21|8360 +3000|MO|Ozark County|Sundown CDP|1580|0|6|Bjorkquist|Walter|2985|Arizona|M|Son|||15|8361 +3000|MO|Ozark County|Sundown CDP|1580|0|7|Bjorkquist|Gilbert|2991|Taiwan, Province Of China|M|Son|||9|8362 +3000|MO|Ozark County|Sundown CDP|1580|0|8|Bjorkquist|Logan|2993|Georgia|M|Son|||7|8363 +3000|MO|Ozark County|Sundown CDP|1580|0|9|Bjorkquist|Luis|2995|South Dakota|M|Son|||5|8364 + +3000|MO|Platte County|Ferrelview village|1581|0|1|Flores|Elijah Elias|2952|Arkansas|M|Head|||48|8365 +3000|MO|Platte County|Ferrelview village|1581|0|2|Flores|Sylvia|2971|Maine|F|Spouse|||29|8366 +3000|MO|Platte County|Ferrelview village|1581|0|3|Flores|Nidia|2991|Florida|F|Daughter|||9|8367 +3000|MO|Platte County|Ferrelview village|1581|0|4|Flores|Suellen|2993|Antarctica|F|Daughter|||7|8368 +3000|MO|Platte County|Ferrelview village|1581|0|5|Flores|Vita|2997|Korea, Republic Of|F|Daughter|||3|8369 +3000|MO|Platte County|Ferrelview village|1581|0|6|Flores|Jamar Harley|2999|Alaska|M|Son|||1|8370 + +3000|MA|Bristol County|Dighton town|1582|0|1|Skabo|Whitney Malcom|2959|Arizona|M|Head|||41|8371 +3000|MA|Bristol County|Dighton town|1582|0|2|Skabo|Alesia|2972|Idaho|F|Spouse|||28|8372 +3000|MA|Bristol County|Dighton town|1582|0|3|Skabo|Haydee Katherine|2992|Maine|F|Daughter|||8|8373 +3000|MA|Bristol County|Dighton town|1582|0|4|Skabo|Delmar|2996|Alabama|M|Son|||4|8374 +3000|MA|Bristol County|Dighton town|1582|0|5|Skabo|Denise|3000|Tennessee|F|Daughter|||0|8375 + +3000|PA|Adams County|Arendtsville borough|1583|0|1|Callan|Everett|2956|Alaska|M|Head|||44|8376 +3000|PA|Adams County|Arendtsville borough|1583|0|2|Callan|Liberty|2979|Washington|F|Spouse|||21|8377 +3000|PA|Adams County|Arendtsville borough|1583|0|3|Callan|Delbert|2999|Seychelles|M|Son|||1|8378 + +3000|AL|Shelby County|Alabaster city|1584|0|1|Santoli|Lester Wilton|2959|Bouvet Island|M|Head|||41|8379 +3000|AL|Shelby County|Alabaster city|1584|0|2|Santoli|Edwin|2990|Arizona|M|Son|||10|8380 +3000|AL|Shelby County|Alabaster city|1584|0|3|Santoli|Miesha|2992|Connecticut|F|Daughter|||8|8381 +3000|AL|Shelby County|Alabaster city|1584|0|4|Santoli|Rufus|2998|Delaware|M|Son|||2|8382 +3000|AL|Shelby County|Alabaster city|1584|0|5|Santoli|Russell|3000|Montana|M|Son|||0|8383 + +3000|PA|Clarion County|Clarion borough|1585|0|1|Rector|Spencer Augustine|2966|Illinois|M|Head|||34|8384 +3000|PA|Clarion County|Clarion borough|1585|0|2|Rector|Miss|2978|Iran, Islamic Republic Of|F|Spouse|||22|8385 +3000|PA|Clarion County|Clarion borough|1585|0|3|Rector|Dimple|2998|Alabama|F|Daughter|||2|8386 + +3000|KS|Saline County|Assaria city|1586|0|1|Fritzler|Abraham Gustavo|2946|Colorado|M|Head|||54|8387 +3000|KS|Saline County|Assaria city|1586|0|2|Fritzler|Tamesha|2957|Nevada|F|Spouse|||43|8388 +3000|KS|Saline County|Assaria city|1586|0|3|Fritzler|Myung Nila|2979|Missouri|F|Daughter|||21|8389 +3000|KS|Saline County|Assaria city|1586|0|4|Fritzler|Hugh|2981|New Hampshire|M|Son|||19|8390 +3000|KS|Saline County|Assaria city|1586|0|5|Fritzler|Kathlyn|2985|Arizona|F|Daughter|||15|8391 +3000|KS|Saline County|Assaria city|1586|0|6|Fritzler|Hank Randolph|2987|Massachusetts|M|Son|||13|8392 +3000|KS|Saline County|Assaria city|1586|0|7|Fritzler|Larisa Belinda|2989|Georgia|F|Daughter|||11|8393 + +3000|MD|Caroline County|Federalsburg town|1587|0|1|Brown|Kelvin|2952|Romania|M|Head|||48|8394 +3000|MD|Caroline County|Federalsburg town|1587|0|2|Brown|Kenna|2959|Wyoming|F|Spouse|||41|8395 +3000|MD|Caroline County|Federalsburg town|1587|0|3|Brown|Denese|2981|Belgium|F|Daughter|||19|8396 +3000|MD|Caroline County|Federalsburg town|1587|0|4|Brown|Russ|2987|Arkansas|M|Son|||13|8397 +3000|MD|Caroline County|Federalsburg town|1587|0|5|Brown|Almeda|2991|Idaho|F|Daughter|||9|8398 + +3000|MN|Blue Earth County|Vernon Center township|1588|0|1|Hellams|Denny Errol|2975|Connecticut|M|Head|||25|8399 +3000|MN|Blue Earth County|Vernon Center township|1588|0|2|Hellams|Darcy|2973|Papua New Guinea|F|Spouse|||27|8400 +3000|MN|Blue Earth County|Vernon Center township|1588|0|3|Hellams|Hobert|2997|Maryland|M|Son|||3|8401 +3000|MN|Blue Earth County|Vernon Center township|1588|0|4|Hellams|Deandre Stacey|2999|Virginia|M|Son|||1|8402 + +3000|FL|Bradford County|Lawtey city|1589|0|1|Yamaoka|Chase Britt|2978|Nebraska|M|Head|||22|8403 + +3000|NY|Dutchess County|East Fishkill town|1590|0|1|Campagnone|Clinton Seth|2963|El Salvador|M|Head|||37|8404 +3000|NY|Dutchess County|East Fishkill town|1590|0|2|Campagnone|Belia|2961|Namibia|F|Spouse|||39|8405 +3000|NY|Dutchess County|East Fishkill town|1590|0|3|Campagnone|Wanita|2987|Florida|F|Daughter|||13|8406 +3000|NY|Dutchess County|East Fishkill town|1590|0|4|Campagnone|Neal|2989|Kansas|M|Son|||11|8407 +3000|NY|Dutchess County|East Fishkill town|1590|0|5|Campagnone|Malia|2993|New Jersey|F|Daughter|||7|8408 +3000|NY|Dutchess County|East Fishkill town|1590|0|6|Campagnone|Frank|2995|Hawaii|M|Son|||5|8409 +3000|NY|Dutchess County|East Fishkill town|1590|0|7|Campagnone|Deloise|2997|Idaho|F|Daughter|||3|8410 + +3000|MS|Holmes County|Goodman town|1591|0|1|Hardges|Marco Len|2954|New York|M|Head|||46|8411 +3000|MS|Holmes County|Goodman town|1591|0|2|Hardges|Luetta|2966|Wallis And Futuna|F|Spouse|||34|8412 +3000|MS|Holmes County|Goodman town|1591|0|3|Hardges|Norma|2988|Iowa|F|Daughter|||12|8413 +3000|MS|Holmes County|Goodman town|1591|0|4|Hardges|Rufus|2990|South Carolina|M|Son|||10|8414 +3000|MS|Holmes County|Goodman town|1591|0|5|Hardges|Michiko Mallory|2994|North Dakota|F|Daughter|||6|8415 +3000|MS|Holmes County|Goodman town|1591|0|6|Hardges|Lore|3000|Texas|F|Daughter|||0|8416 + +3000|ME|Waldo County|Islesboro town|1592|0|1|Retzer|Ramon Guy|2965|Kentucky|M|Head|||35|8417 +3000|ME|Waldo County|Islesboro town|1592|0|2|Retzer|Savannah|2978|Vermont|F|Spouse|||22|8418 +3000|ME|Waldo County|Islesboro town|1592|0|3|Retzer|Dalila|2998|Washington|F|Daughter|||2|8419 + +3000|VT|Rutland County|Rutland city|1593|0|1|Turley|Mervin Parker|2948|South Carolina|M|Head|||52|8420 +3000|VT|Rutland County|Rutland city|1593|0|2|Turley|Graham|2979|Nauru|M|Son|||21|8421 +3000|VT|Rutland County|Rutland city|1593|0|3|Turley|Alishia|2981|Idaho|F|Daughter|||19|8422 +3000|VT|Rutland County|Rutland city|1593|0|4|Turley|Jordon|2985|Kansas|M|Son|||15|8423 +3000|VT|Rutland County|Rutland city|1593|0|5|Turley|Ollie|2991|North Carolina|M|Son|||9|8424 +3000|VT|Rutland County|Rutland city|1593|0|6|Turley|Micah|2997|Alabama|M|Son|||3|8425 +3000|VT|Rutland County|Rutland city|1593|0|7|Turley|Shirely Emiko|2999|New Jersey|F|Daughter|||1|8426 + +3000|NV|Clark County|Las Vegas city|1594|0|1|Fitch|Orville Demetrius|2945|Vermont|M|Head|||55|8427 +3000|NV|Clark County|Las Vegas city|1594|0|2|Fitch|Rebecka|2963|Rhode Island|F|Spouse|||37|8428 +3000|NV|Clark County|Las Vegas city|1594|0|3|Fitch|Almeta|2987|Pennsylvania|F|Daughter|||13|8429 +3000|NV|Clark County|Las Vegas city|1594|0|4|Fitch|Junie|2989|Montana|F|Daughter|||11|8430 +3000|NV|Clark County|Las Vegas city|1594|0|5|Fitch|Lyman|2993|Louisiana|M|Son|||7|8431 +3000|NV|Clark County|Las Vegas city|1594|0|6|Fitch|Duncan|2995|Argentina|M|Son|||5|8432 +3000|NV|Clark County|Las Vegas city|1594|0|7|Fitch|Shirely|2997|New Jersey|F|Daughter|||3|8433 +3000|NV|Clark County|Las Vegas city|1594|0|8|Fitch|Kira Doretha|2999|Iowa|F|Daughter|||1|8434 + +3000|PA|Lawrence County|Chewton CDP|1595|0|1|Depriest|Lamar|2939|Arkansas|M|Head|||61|8435 +3000|PA|Lawrence County|Chewton CDP|1595|0|2|Depriest|Ezra|2963|United States|M|Son|||37|8436 +3000|PA|Lawrence County|Chewton CDP|1595|0|3|Depriest|Theron|2967|South Georgia And The South Sandwich Islands|M|Son|||33|8437 +3000|PA|Lawrence County|Chewton CDP|1595|0|4|Depriest|Jae Rafael|2977|Guadeloupe|M|Son|||23|8438 +3000|PA|Lawrence County|Chewton CDP|1595|0|5|Depriest|Rebbeca|2991|West Virginia|F|Daughter|||9|8439 +3000|PA|Lawrence County|Chewton CDP|1595|0|6|Depriest|Maurice|2993|Pennsylvania|M|Son|||7|8440 +3000|PA|Lawrence County|Chewton CDP|1595|0|7|Depriest|Claude|2995|Illinois|M|Son|||5|8441 + +3000|IN|Tippecanoe County|West Lafayette city|1596|0|1|Dunzelman|Harley Jackson|2941|Massachusetts|M|Head|||59|8442 +3000|IN|Tippecanoe County|West Lafayette city|1596|0|2|Dunzelman|Yadira|2961|Guinea-bissau|F|Daughter|||39|8443 +3000|IN|Tippecanoe County|West Lafayette city|1596|0|3|Dunzelman|Gregoria Kymberly|2963|New Mexico|F|Daughter|||37|8444 +3000|IN|Tippecanoe County|West Lafayette city|1596|0|4|Dunzelman|Darius|2983|Pennsylvania|M|Son|||17|8445 +3000|IN|Tippecanoe County|West Lafayette city|1596|0|5|Dunzelman|Brock Dustin|2989|Washington|M|Son|||11|8446 +3000|IN|Tippecanoe County|West Lafayette city|1596|0|6|Dunzelman|Kattie|2991|New Mexico|F|Daughter|||9|8447 +3000|IN|Tippecanoe County|West Lafayette city|1596|0|7|Dunzelman|Garret|2993|Heard Island And Mcdonald Islands|M|Son|||7|8448 +3000|IN|Tippecanoe County|West Lafayette city|1596|0|8|Dunzelman|Richelle|2995|Rhode Island|F|Daughter|||5|8449 +3000|IN|Tippecanoe County|West Lafayette city|1596|0|9|Dunzelman|Marketta|2999|Serbia|F|Daughter|||1|8450 + +3000|MI|Ottawa County|Zeeland city|1597|0|1|Cracchiolo|Cedric Jarrett|2941|Washington|M|Head|||59|8451 +3000|MI|Ottawa County|Zeeland city|1597|0|2|Cracchiolo|Jung|2945|Texas|F|Spouse|||55|8452 +3000|MI|Ottawa County|Zeeland city|1597|0|3|Cracchiolo|Opal Madelene|2967|Oklahoma|F|Daughter|||33|8453 +3000|MI|Ottawa County|Zeeland city|1597|0|4|Cracchiolo|Lavenia|2973|Kentucky|F|Daughter|||27|8454 +3000|MI|Ottawa County|Zeeland city|1597|0|5|Cracchiolo|Jeremiah|2977|Virginia|M|Son|||23|8455 +3000|MI|Ottawa County|Zeeland city|1597|0|6|Cracchiolo|Cecelia|2985|Michigan|F|Daughter|||15|8456 +3000|MI|Ottawa County|Zeeland city|1597|0|7|Cracchiolo|Modesto|2993|West Virginia|M|Son|||7|8457 +3000|MI|Ottawa County|Zeeland city|1597|0|8|Cracchiolo|Clarinda|2997|Slovakia|F|Daughter|||3|8458 + +3000|NY|Wayne County|Arcadia town|1598|0|1|Vann|Willis Thaddeus|2952|Idaho|M|Head|||48|8459 +3000|NY|Wayne County|Arcadia town|1598|0|2|Vann|Mozella|2957|Greenland|F|Spouse|||43|8460 +3000|NY|Wayne County|Arcadia town|1598|0|3|Vann|Roscoe|2979|Alaska|M|Son|||21|8461 +3000|NY|Wayne County|Arcadia town|1598|0|4|Vann|Angeline|2983|Massachusetts|F|Daughter|||17|8462 +3000|NY|Wayne County|Arcadia town|1598|0|5|Vann|Lamar Rodolfo|2985|West Virginia|M|Son|||15|8463 +3000|NY|Wayne County|Arcadia town|1598|0|6|Vann|Caleb|2995|Colorado|M|Son|||5|8464 + +3000|NY|Suffolk County|Nesconset CDP|1599|0|1|Havers|Rolando Duncan|2960|Montana|M|Head|||40|8465 +3000|NY|Suffolk County|Nesconset CDP|1599|0|2|Havers|Thao|2961|Oklahoma|F|Spouse|||39|8466 +3000|NY|Suffolk County|Nesconset CDP|1599|0|3|Havers|Joan|2985|Nebraska|M|Son|||15|8467 +3000|NY|Suffolk County|Nesconset CDP|1599|0|4|Havers|Clement August|2987|Indiana|M|Son|||13|8468 +3000|NY|Suffolk County|Nesconset CDP|1599|0|5|Havers|Frida|2989|Arkansas|F|Daughter|||11|8469 +3000|NY|Suffolk County|Nesconset CDP|1599|0|6|Havers|Jeffry|2993|Vermont|M|Son|||7|8470 +3000|NY|Suffolk County|Nesconset CDP|1599|0|7|Havers|Barney|2995|Oregon|M|Son|||5|8471 + +3000|CA|San Luis Obispo County|Atascadero city|1600|0|1|Oelschlaeger|Kendall Fabian|2948|Rhode Island|M|Head|||52|8472 +3000|CA|San Luis Obispo County|Atascadero city|1600|0|2|Oelschlaeger|Shea Miranda|2965|Connecticut|F|Spouse|||35|8473 +3000|CA|San Luis Obispo County|Atascadero city|1600|0|3|Oelschlaeger|Jamaal|2985|French Guiana|M|Son|||15|8474 +3000|CA|San Luis Obispo County|Atascadero city|1600|0|4|Oelschlaeger|Nell Brunilda|2987|Kansas|F|Daughter|||13|8475 +3000|CA|San Luis Obispo County|Atascadero city|1600|0|5|Oelschlaeger|Charla Janie|2991|Wisconsin|F|Daughter|||9|8476 +3000|CA|San Luis Obispo County|Atascadero city|1600|0|6|Oelschlaeger|David|2993|Vanuatu|M|Son|||7|8477 + +3000|KY|Ballard County|Lovelaceville CDP|1601|0|1|Clerk|Virgil Zack|2939|Wisconsin|M|Head|||61|8478 +3000|KY|Ballard County|Lovelaceville CDP|1601|0|2|Clerk|Zachary|2987|Massachusetts|M|Son|||13|8479 +3000|KY|Ballard County|Lovelaceville CDP|1601|0|3|Clerk|Hye Shizuko|2989|Washington|F|Daughter|||11|8480 +3000|KY|Ballard County|Lovelaceville CDP|1601|0|4|Clerk|Abdul Adam|2997|Georgia|M|Son|||3|8481 + +3000|NE|Gage County|Filley village|1602|0|1|Jones|Manual Rashad|2953|Ecuador|M|Head|||47|8482 +3000|NE|Gage County|Filley village|1602|0|2|Jones|Victor|2986|Montana|M|Son|||14|8483 +3000|NE|Gage County|Filley village|1602|0|3|Jones|Annalee|2988|Niue|F|Daughter|||12|8484 +3000|NE|Gage County|Filley village|1602|0|4|Jones|Hugh|2992|Alabama|M|Son|||8|8485 +3000|NE|Gage County|Filley village|1602|0|5|Jones|Jerry|2994|Montana|M|Son|||6|8486 + +3000|PA|Warren County|Columbus township|1603|0|1|Mandley|Rodrigo Emmitt|2947|North Carolina|M|Head|||53|8487 +3000|PA|Warren County|Columbus township|1603|0|2|Mandley|Gilda|2961|Bangladesh|F|Spouse|||39|8488 +3000|PA|Warren County|Columbus township|1603|0|3|Mandley|Corina|2983|Washington|F|Daughter|||17|8489 +3000|PA|Warren County|Columbus township|1603|0|4|Mandley|Jamaal Josh|2985|Nebraska|M|Son|||15|8490 +3000|PA|Warren County|Columbus township|1603|0|5|Mandley|Mckinley|2991|Hawaii|M|Son|||9|8491 +3000|PA|Warren County|Columbus township|1603|0|6|Mandley|Tamar|2993|China|F|Daughter|||7|8492 +3000|PA|Warren County|Columbus township|1603|0|7|Mandley|Takisha|2999|Montenegro|F|Daughter|||1|8493 + +3000|WI|Waukesha County|Sussex village|1604|0|1|Forsberg|Nick Winford|2945|California|M|Head|||55|8494 +3000|WI|Waukesha County|Sussex village|1604|0|2|Forsberg|Hana|2987|North Carolina|F|Daughter|||13|8495 +3000|WI|Waukesha County|Sussex village|1604|0|3|Forsberg|Fabiola|2989|Northern Mariana Islands|F|Daughter|||11|8496 +3000|WI|Waukesha County|Sussex village|1604|0|4|Forsberg|Chere|2991|New York|F|Daughter|||9|8497 +3000|WI|Waukesha County|Sussex village|1604|0|5|Forsberg|Alma|2995|South Dakota|F|Daughter|||5|8498 +3000|WI|Waukesha County|Sussex village|1604|0|6|Forsberg|Dirk|2997|Kentucky|M|Son|||3|8499 +3000|WI|Waukesha County|Sussex village|1604|0|7|Forsberg|Lashandra|2999|New York|F|Daughter|||1|8500 + +3000|GA|Morgan County|Rutledge city|1605|0|1|Goncalves|Gene Coleman|2947|Alabama|M|Head|||53|8501 +3000|GA|Morgan County|Rutledge city|1605|0|2|Goncalves|Willodean|2954|Florida|F|Spouse|||46|8502 +3000|GA|Morgan County|Rutledge city|1605|0|3|Goncalves|Jude|2978|North Carolina|M|Son|||22|8503 +3000|GA|Morgan County|Rutledge city|1605|0|4|Goncalves|Hilario|2984|Spain|M|Son|||16|8504 +3000|GA|Morgan County|Rutledge city|1605|0|5|Goncalves|Doug|2986|American Samoa|M|Son|||14|8505 +3000|GA|Morgan County|Rutledge city|1605|0|6|Goncalves|Gay|2990|South Dakota|F|Daughter|||10|8506 +3000|GA|Morgan County|Rutledge city|1605|0|7|Goncalves|Ali Bertram|2992|Niue|M|Son|||8|8507 +3000|GA|Morgan County|Rutledge city|1605|0|8|Goncalves|Shawana|3000|Philippines|F|Daughter|||0|8508 + +3000|PA|Beaver County|Hookstown borough|1606|0|1|Goolman|Nathaniel Johnathon|2975|Delaware|M|Head|||25|8509 +3000|PA|Beaver County|Hookstown borough|1606|0|2|Goolman|Lenora|2973|New Mexico|F|Spouse|||27|8510 +3000|PA|Beaver County|Hookstown borough|1606|0|3|Goolman|Shad Nicolas|2997|Montana|M|Son|||3|8511 +3000|PA|Beaver County|Hookstown borough|1606|0|4|Goolman|Jefferey|2999|New York|M|Son|||1|8512 + +3000|NY|Steuben County|Campbell town|1607|0|1|Scobey|Wilton|2942|Liberia|M|Head|||58|8513 +3000|NY|Steuben County|Campbell town|1607|0|2|Scobey|Christinia Ruthann|2958|United States Minor Outlying Islands|F|Spouse|||42|8514 +3000|NY|Steuben County|Campbell town|1607|0|3|Scobey|Pei|2978|New Mexico|F|Daughter|||22|8515 +3000|NY|Steuben County|Campbell town|1607|0|4|Scobey|Myron|2986|Mississippi|M|Son|||14|8516 +3000|NY|Steuben County|Campbell town|1607|0|5|Scobey|Keneth|2992|Spain|M|Son|||8|8517 +3000|NY|Steuben County|Campbell town|1607|0|6|Scobey|Lon|2996|Alaska|M|Son|||4|8518 +3000|NY|Steuben County|Campbell town|1607|0|7|Scobey|Paulita|2998|Illinois|F|Daughter|||2|8519 + +3000|MI|Macomb County|Chesterfield township|1608|0|1|Hall|Laverne Kip|2957|Egypt|M|Head|||43|8520 +3000|MI|Macomb County|Chesterfield township|1608|0|2|Hall|Dorthy|2965|Massachusetts|F|Spouse|||35|8521 +3000|MI|Macomb County|Chesterfield township|1608|0|3|Hall|Coy|2985|Mississippi|M|Son|||15|8522 +3000|MI|Macomb County|Chesterfield township|1608|0|4|Hall|Pinkie|2993|Lithuania|F|Daughter|||7|8523 +3000|MI|Macomb County|Chesterfield township|1608|0|5|Hall|Mitzie|2995|Louisiana|F|Daughter|||5|8524 +3000|MI|Macomb County|Chesterfield township|1608|0|6|Hall|Doreen|2999|California|F|Daughter|||1|8525 + +3000|NH|Cheshire County|Jaffrey town|1609|0|1|Banas|Ahmed|2946|New Mexico|M|Head|||54|8526 +3000|NH|Cheshire County|Jaffrey town|1609|0|2|Banas|Effie|2969|South Carolina|F|Spouse|||31|8527 +3000|NH|Cheshire County|Jaffrey town|1609|0|3|Banas|Robbin|2991|Missouri|F|Daughter|||9|8528 +3000|NH|Cheshire County|Jaffrey town|1609|0|4|Banas|Demetria|2993|Belgium|F|Daughter|||7|8529 + +3000|NH|Coos County|Ervings location|1610|0|1|Wilson|Bernard Andreas|2964|Virginia|M|Head|||36|8530 +3000|NH|Coos County|Ervings location|1610|0|2|Wilson|Debra|2977|Mississippi|F|Spouse|||23|8531 +3000|NH|Coos County|Ervings location|1610|0|3|Wilson|Harvey|2997|Colorado|M|Son|||3|8532 +3000|NH|Coos County|Ervings location|1610|0|4|Wilson|Terry|2999|New Hampshire|F|Daughter|||1|8533 + +3000|MN|Dodge County|Hayfield city|1611|0|1|Bryant|Kyle Lazaro|2943|Kansas|M|Head|||57|8534 +3000|MN|Dodge County|Hayfield city|1611|0|2|Bryant|Mickey|2950|Missouri|F|Spouse|||50|8535 +3000|MN|Dodge County|Hayfield city|1611|0|3|Bryant|Roberto Brendon|2972|Nevada|M|Son|||28|8536 +3000|MN|Dodge County|Hayfield city|1611|0|4|Bryant|Roscoe Sherman|2978|Massachusetts|M|Son|||22|8537 +3000|MN|Dodge County|Hayfield city|1611|0|5|Bryant|Shirly|2980|Jordan|F|Daughter|||20|8538 +3000|MN|Dodge County|Hayfield city|1611|0|6|Bryant|Sanjuana|2986|United States|F|Daughter|||14|8539 +3000|MN|Dodge County|Hayfield city|1611|0|7|Bryant|Sage|2992|Montana|F|Daughter|||8|8540 +3000|MN|Dodge County|Hayfield city|1611|0|8|Bryant|Albertina|2998|Portugal|F|Daughter|||2|8541 + +3000|NM|Santa Fe County|Santa Cruz CDP|1612|0|1|Lowell|Joshua|2961|New Jersey|M|Head|||39|8542 +3000|NM|Santa Fe County|Santa Cruz CDP|1612|0|2|Lowell|Maryln|2974|Vermont|F|Spouse|||26|8543 +3000|NM|Santa Fe County|Santa Cruz CDP|1612|0|3|Lowell|Sunny|2996|Utah|F|Daughter|||4|8544 +3000|NM|Santa Fe County|Santa Cruz CDP|1612|0|4|Lowell|Anthony|2998|Niger|F|Daughter|||2|8545 + +3000|NH|Strafford County|Dover city|1613|0|1|Laprete|Felix Judson|2958|North Dakota|M|Head|||42|8546 +3000|NH|Strafford County|Dover city|1613|0|2|Laprete|Lupe|2969|Oregon|F|Spouse|||31|8547 +3000|NH|Strafford County|Dover city|1613|0|3|Laprete|Heide|2989|Maryland|F|Daughter|||11|8548 +3000|NH|Strafford County|Dover city|1613|0|4|Laprete|Dannie Trent|2991|Mississippi|M|Son|||9|8549 +3000|NH|Strafford County|Dover city|1613|0|5|Laprete|Tobias|2993|New York|M|Son|||7|8550 +3000|NH|Strafford County|Dover city|1613|0|6|Laprete|Bryant|2997|North Dakota|M|Son|||3|8551 +3000|NH|Strafford County|Dover city|1613|0|7|Laprete|Donovan|2999|Korea, Democratic People's Republic Of|M|Son|||1|8552 + +3000|WA|Yakima County|Harrah town|1614|0|1|Mann|Romana|2963|West Virginia|F|Head|||37|8553 +3000|WA|Yakima County|Harrah town|1614|0|2|Mann|Quentin|2987|Wyoming|M|Son|||13|8554 +3000|WA|Yakima County|Harrah town|1614|0|3|Mann|Dominic|2997|Utah|M|Son|||3|8555 + +3000|WI|Barron County|Cameron village|1615|0|1|Pezzica|Ezekiel Darell|2958|Antarctica|M|Head|||42|8556 +3000|WI|Barron County|Cameron village|1615|0|2|Pezzica|Myung Jacquetta|2977|Oregon|F|Daughter|||23|8557 +3000|WI|Barron County|Cameron village|1615|0|3|Pezzica|Loyd|2981|Nebraska|M|Son|||19|8558 +3000|WI|Barron County|Cameron village|1615|0|4|Pezzica|Erick|2987|Texas|M|Son|||13|8559 +3000|WI|Barron County|Cameron village|1615|0|5|Pezzica|Greg|2989|New York|M|Son|||11|8560 +3000|WI|Barron County|Cameron village|1615|0|6|Pezzica|Jermaine|2991|Delaware|M|Son|||9|8561 +3000|WI|Barron County|Cameron village|1615|0|7|Pezzica|Alan|2993|Arkansas|M|Son|||7|8562 +3000|WI|Barron County|Cameron village|1615|0|8|Pezzica|David|2999|Indiana|M|Son|||1|8563 + +3000|MS|Calhoun County|Vardaman town|1616|0|1|Givens|Danilo Shannon|2966|Texas|M|Head|||34|8564 +3000|MS|Calhoun County|Vardaman town|1616|0|2|Givens|Latasha|2980|Tennessee|F|Spouse|||20|8565 + +3000|TX|Rusk County|Mount Enterprise city|1617|0|1|Carethers|Huey|2938|Vermont|M|Head|||62|8566 +3000|TX|Rusk County|Mount Enterprise city|1617|0|2|Carethers|Arlinda|2970|Ukraine|F|Daughter|||30|8567 +3000|TX|Rusk County|Mount Enterprise city|1617|0|3|Carethers|Laureen|2974|New Mexico|F|Daughter|||26|8568 +3000|TX|Rusk County|Mount Enterprise city|1617|0|4|Carethers|Tomas Jose|2976|Wyoming|M|Son|||24|8569 +3000|TX|Rusk County|Mount Enterprise city|1617|0|5|Carethers|Lavette|2980|Iowa|F|Daughter|||20|8570 +3000|TX|Rusk County|Mount Enterprise city|1617|0|6|Carethers|Echo|2990|Maine|F|Daughter|||10|8571 +3000|TX|Rusk County|Mount Enterprise city|1617|0|7|Carethers|Marcy|2992|Tuvalu|F|Daughter|||8|8572 +3000|TX|Rusk County|Mount Enterprise city|1617|0|8|Carethers|Calvin|2994|New Mexico|M|Son|||6|8573 +3000|TX|Rusk County|Mount Enterprise city|1617|0|9|Carethers|Christi|2996|Colorado|F|Daughter|||4|8574 + +3000|KS|Morris County|Parkerville city|1618|0|1|Stevens|Katelin|2980|South Dakota|F|Head|||20|8575 + +3000|LA|Richland Parish|Rayville town|1619|0|1|Monroe|Gary Vito|2944|Idaho|M|Head|||56|8576 +3000|LA|Richland Parish|Rayville town|1619|0|2|Monroe|Eleanore|2946|South Dakota|F|Spouse|||54|8577 +3000|LA|Richland Parish|Rayville town|1619|0|3|Monroe|Olinda|2968|Michigan|F|Daughter|||32|8578 +3000|LA|Richland Parish|Rayville town|1619|0|4|Monroe|Hortense|2972|Holy See (vatican City State)|F|Daughter|||28|8579 +3000|LA|Richland Parish|Rayville town|1619|0|5|Monroe|Eugenie|2984|Pennsylvania|F|Daughter|||16|8580 +3000|LA|Richland Parish|Rayville town|1619|0|6|Monroe|Gerald|2992|Belize|M|Son|||8|8581 +3000|LA|Richland Parish|Rayville town|1619|0|7|Monroe|Raisa|2994|Washington|F|Daughter|||6|8582 +3000|LA|Richland Parish|Rayville town|1619|0|8|Monroe|Dane|2996|Colombia|M|Son|||4|8583 +3000|LA|Richland Parish|Rayville town|1619|0|9|Monroe|Damon|3000|Arkansas|M|Son|||0|8584 + +3000|NE|Thayer County|Belvidere village|1620|0|1|Diebol|Jasper Jere|2971|New York|M|Head|||29|8585 +3000|NE|Thayer County|Belvidere village|1620|0|2|Diebol|Carmen|2975|Pennsylvania|F|Spouse|||25|8586 +3000|NE|Thayer County|Belvidere village|1620|0|3|Diebol|Wen|2997|Illinois|F|Daughter|||3|8587 + +3000|NE|Holt County|Stuart village|1621|0|1|Mirsch|Colin Nicholas|2960|Mississippi|M|Head|||40|8588 +3000|NE|Holt County|Stuart village|1621|0|2|Mirsch|Kendra|2969|Samoa|F|Spouse|||31|8589 +3000|NE|Holt County|Stuart village|1621|0|3|Mirsch|Roxann|2991|Utah|F|Daughter|||9|8590 +3000|NE|Holt County|Stuart village|1621|0|4|Mirsch|Linn|2993|Northern Mariana Islands|F|Daughter|||7|8591 +3000|NE|Holt County|Stuart village|1621|0|5|Mirsch|Pilar|2995|Virginia|F|Daughter|||5|8592 +3000|NE|Holt County|Stuart village|1621|0|6|Mirsch|Merissa|2999|Idaho|F|Daughter|||1|8593 + +3000|VA|Prince William County|Triangle CDP|1622|0|1|Hackworth|Charlie|2939|Mississippi|M|Head|||61|8594 +3000|VA|Prince William County|Triangle CDP|1622|0|2|Hackworth|Shan|2944|New York|F|Spouse|||56|8595 +3000|VA|Prince William County|Triangle CDP|1622|0|3|Hackworth|Fredrick|2966|Oklahoma|M|Son|||34|8596 +3000|VA|Prince William County|Triangle CDP|1622|0|4|Hackworth|Andre|2974|Arkansas|M|Son|||26|8597 +3000|VA|Prince William County|Triangle CDP|1622|0|5|Hackworth|Damaris|2976|Minnesota|F|Daughter|||24|8598 +3000|VA|Prince William County|Triangle CDP|1622|0|6|Hackworth|Rocco|2986|New Mexico|M|Son|||14|8599 +3000|VA|Prince William County|Triangle CDP|1622|0|7|Hackworth|Berry|3000|New Mexico|M|Son|||0|8600 + +3000|TX|Lamb County|Earth city|1623|0|1|James|Humberto Trent|2954|Arkansas|M|Head|||46|8601 +3000|TX|Lamb County|Earth city|1623|0|2|James|Kyle|2978|Poland|M|Son|||22|8602 +3000|TX|Lamb County|Earth city|1623|0|3|James|Lily|2986|Nebraska|F|Daughter|||14|8603 +3000|TX|Lamb County|Earth city|1623|0|4|James|Stephen|2988|Bulgaria|M|Son|||12|8604 +3000|TX|Lamb County|Earth city|1623|0|5|James|Louie|2998|Namibia|M|Son|||2|8605 + +3000|MI|Midland County|Coleman city|1624|0|1|Ragland|Leopoldo|2964|Louisiana|M|Head|||36|8606 +3000|MI|Midland County|Coleman city|1624|0|2|Ragland|Krystin|2983|Missouri|F|Spouse|||17|8607 + +3000|OH|Vinton County|Wilkesville village|1625|0|1|Kopperud|Ivory Faustino|2955|Oklahoma|M|Head|||45|8608 +3000|OH|Vinton County|Wilkesville village|1625|0|2|Kopperud|Leanne|2960|Illinois|F|Spouse|||40|8609 +3000|OH|Vinton County|Wilkesville village|1625|0|3|Kopperud|Marketta|2986|Texas|F|Daughter|||14|8610 +3000|OH|Vinton County|Wilkesville village|1625|0|4|Kopperud|Brooks|2990|Arizona|M|Son|||10|8611 +3000|OH|Vinton County|Wilkesville village|1625|0|5|Kopperud|Jerrod|3000|Ohio|M|Son|||0|8612 + +3000|MS|Lamar County|Arnold Line CDP|1626|0|1|Wlach|Marcelo Lionel|2965|French Polynesia|M|Head|||35|8613 + +3000|MI|Isabella County|Nottawa township|1627|0|1|Lowe|Newton Seth|2954|California|M|Head|||46|8614 +3000|MI|Isabella County|Nottawa township|1627|0|2|Lowe|Karissa Sonya|2953|Washington|F|Spouse|||47|8615 +3000|MI|Isabella County|Nottawa township|1627|0|3|Lowe|Federico|2975|Illinois|M|Son|||25|8616 +3000|MI|Isabella County|Nottawa township|1627|0|4|Lowe|Usha|2981|Oregon|F|Daughter|||19|8617 +3000|MI|Isabella County|Nottawa township|1627|0|5|Lowe|Princess|2983|Hawaii|F|Daughter|||17|8618 +3000|MI|Isabella County|Nottawa township|1627|0|6|Lowe|Miss|2985|North Dakota|F|Daughter|||15|8619 +3000|MI|Isabella County|Nottawa township|1627|0|7|Lowe|Kecia|2987|Arizona|F|Daughter|||13|8620 +3000|MI|Isabella County|Nottawa township|1627|0|8|Lowe|Quincy|2989|Alaska|M|Son|||11|8621 +3000|MI|Isabella County|Nottawa township|1627|0|9|Lowe|Terrell|2991|Rwanda|M|Son|||9|8622 +3000|MI|Isabella County|Nottawa township|1627|0|10|Lowe|Randy Karl|2997|Burkina Faso|M|Son|||3|8623 + +3000|MA|Barnstable County|Truro town|1628|0|1|Allen|Ali|2976|Michigan|M|Head|||24|8624 +3000|MA|Barnstable County|Truro town|1628|0|2|Allen|Delisa|2976|New Mexico|F|Spouse|||24|8625 +3000|MA|Barnstable County|Truro town|1628|0|3|Allen|Jacqueline|2996|Kentucky|F|Daughter|||4|8626 +3000|MA|Barnstable County|Truro town|1628|0|4|Allen|Lisbeth|3000|Korea, Republic Of|F|Daughter|||0|8627 + +3000|FL|Citrus County|Inverness city|1629|0|1|Hodge|Kip Porter|2969|Nicaragua|M|Head|||31|8628 +3000|FL|Citrus County|Inverness city|1629|0|2|Hodge|Bethel|2984|Alaska|F|Spouse|||16|8629 + +3000|ND|McHenry County|Deering city|1630|0|1|Roscow|Anthony Randal|2957|Arizona|M|Head|||43|8630 +3000|ND|McHenry County|Deering city|1630|0|2|Roscow|Beverly|2957|Rhode Island|F|Spouse|||43|8631 +3000|ND|McHenry County|Deering city|1630|0|3|Roscow|Peter|2985|Hawaii|M|Son|||15|8632 +3000|ND|McHenry County|Deering city|1630|0|4|Roscow|Anthony|2987|Georgia|M|Son|||13|8633 +3000|ND|McHenry County|Deering city|1630|0|5|Roscow|Reyes|2995|North Carolina|M|Son|||5|8634 + +3000|OR|Clackamas County|Beavercreek CDP|1631|0|1|Oguin|Whitney Willis|2943|Benin|M|Head|||57|8635 +3000|OR|Clackamas County|Beavercreek CDP|1631|0|2|Oguin|Jayme|2955|Hawaii|F|Spouse|||45|8636 +3000|OR|Clackamas County|Beavercreek CDP|1631|0|3|Oguin|Marian|2985|Montana|F|Daughter|||15|8637 +3000|OR|Clackamas County|Beavercreek CDP|1631|0|4|Oguin|Gabriella|2987|Delaware|F|Daughter|||13|8638 +3000|OR|Clackamas County|Beavercreek CDP|1631|0|5|Oguin|Chris|2989|Illinois|M|Son|||11|8639 +3000|OR|Clackamas County|Beavercreek CDP|1631|0|6|Oguin|Ambrose|2991|Alaska|M|Son|||9|8640 +3000|OR|Clackamas County|Beavercreek CDP|1631|0|7|Oguin|Reed|2997|Arizona|M|Son|||3|8641 + +3000|VA|Augusta County, Rockingham County|Grottoes town|1632|0|1|Riley|Adam Dusty|2948|Vermont|M|Head|||52|8642 +3000|VA|Augusta County, Rockingham County|Grottoes town|1632|0|2|Riley|Pierre Myles|2986|Louisiana|M|Son|||14|8643 +3000|VA|Augusta County, Rockingham County|Grottoes town|1632|0|3|Riley|Kitty|2988|Missouri|F|Daughter|||12|8644 +3000|VA|Augusta County, Rockingham County|Grottoes town|1632|0|4|Riley|Joanie|2990|Kansas|F|Daughter|||10|8645 +3000|VA|Augusta County, Rockingham County|Grottoes town|1632|0|5|Riley|Dane|2998|Massachusetts|M|Son|||2|8646 + +3000|MN|Stearns County|Lake Henry township|1633|0|1|Fukuroku|Freddy Oren|2954|Massachusetts|M|Head|||46|8647 +3000|MN|Stearns County|Lake Henry township|1633|0|2|Fukuroku|Kayce|2950|Nevada|F|Spouse|||50|8648 +3000|MN|Stearns County|Lake Henry township|1633|0|3|Fukuroku|Ned|2970|Kansas|M|Son|||30|8649 +3000|MN|Stearns County|Lake Henry township|1633|0|4|Fukuroku|Cordell Leigh|2984|South Carolina|M|Son|||16|8650 +3000|MN|Stearns County|Lake Henry township|1633|0|5|Fukuroku|Raymundo|2988|Illinois|M|Son|||12|8651 +3000|MN|Stearns County|Lake Henry township|1633|0|6|Fukuroku|Leopoldo|2992|Oregon|M|Son|||8|8652 +3000|MN|Stearns County|Lake Henry township|1633|0|7|Fukuroku|Jules|2994|Oman|M|Son|||6|8653 + +3000|PA|Allegheny County|Forest Hills borough|1634|0|1|Mangino|Sherley|2944|Minnesota|F|Head|||56|8654 +3000|PA|Allegheny County|Forest Hills borough|1634|0|2|Mangino|Brandon Darius|2968|Pennsylvania|M|Son|||32|8655 +3000|PA|Allegheny County|Forest Hills borough|1634|0|3|Mangino|Neal|2972|Minnesota|M|Son|||28|8656 +3000|PA|Allegheny County|Forest Hills borough|1634|0|4|Mangino|Tammie|2974|Oklahoma|F|Daughter|||26|8657 +3000|PA|Allegheny County|Forest Hills borough|1634|0|5|Mangino|Stacey|2990|Dominican Republic|F|Daughter|||10|8658 +3000|PA|Allegheny County|Forest Hills borough|1634|0|6|Mangino|Levi|2992|Belize|M|Son|||8|8659 +3000|PA|Allegheny County|Forest Hills borough|1634|0|7|Mangino|Rosemarie|2994|Arizona|F|Daughter|||6|8660 +3000|PA|Allegheny County|Forest Hills borough|1634|0|8|Mangino|Christinia|2996|Colorado|F|Daughter|||4|8661 +3000|PA|Allegheny County|Forest Hills borough|1634|0|9|Mangino|Xavier|3000|Alaska|M|Son|||0|8662 + +3000|AL|Dale County|Level Plains town|1635|0|1|Mccarrol|Keneth Terence|2959|South Dakota|M|Head|||41|8663 +3000|AL|Dale County|Level Plains town|1635|0|2|Mccarrol|Rosia|2956|Rhode Island|F|Spouse|||44|8664 +3000|AL|Dale County|Level Plains town|1635|0|3|Mccarrol|Sherlyn|2984|Kentucky|F|Daughter|||16|8665 +3000|AL|Dale County|Level Plains town|1635|0|4|Mccarrol|Kiara|2986|Grenada|F|Daughter|||14|8666 +3000|AL|Dale County|Level Plains town|1635|0|5|Mccarrol|David Fannie|2990|South Dakota|F|Daughter|||10|8667 +3000|AL|Dale County|Level Plains town|1635|0|6|Mccarrol|Duane|2994|Pennsylvania|M|Son|||6|8668 + +3000|FL|Highlands County|Sebring city|1636|0|1|Lafata|Alberto Ira|2969|Michigan|M|Head|||31|8669 +3000|FL|Highlands County|Sebring city|1636|0|2|Lafata|Danette|2974|South Carolina|F|Spouse|||26|8670 +3000|FL|Highlands County|Sebring city|1636|0|3|Lafata|Adolfo|2998|Arizona|M|Son|||2|8671 + +3000|CA|Ventura County|Camarillo city|1637|0|1|Hallman|Joannie|2950|Texas|F|Head|||50|8672 +3000|CA|Ventura County|Camarillo city|1637|0|2|Hallman|Homer|2978|Texas|M|Son|||22|8673 +3000|CA|Ventura County|Camarillo city|1637|0|3|Hallman|Rico|2984|Pennsylvania|M|Son|||16|8674 + +3000|WI|Green Lake County|Mackford town|1638|0|1|Smith|Dannie Daren|2946|New Mexico|M|Head|||54|8675 +3000|WI|Green Lake County|Mackford town|1638|0|2|Smith|Blondell|2954|North Carolina|F|Spouse|||46|8676 +3000|WI|Green Lake County|Mackford town|1638|0|3|Smith|Rachel|2974|Montana|F|Daughter|||26|8677 +3000|WI|Green Lake County|Mackford town|1638|0|4|Smith|Dorethea|2982|Japan|F|Daughter|||18|8678 +3000|WI|Green Lake County|Mackford town|1638|0|5|Smith|Kindra|2984|Falkland Islands (malvinas)|F|Daughter|||16|8679 +3000|WI|Green Lake County|Mackford town|1638|0|6|Smith|Amos Floyd|2990|Nevada|M|Son|||10|8680 +3000|WI|Green Lake County|Mackford town|1638|0|7|Smith|Virgilio|2998|Germany|M|Son|||2|8681 +3000|WI|Green Lake County|Mackford town|1638|0|8|Smith|Monty|3000|Massachusetts|M|Son|||0|8682 + +3000|KS|Morris County|Council Grove city|1639|0|1|Elmblad|Clint Abel|2983|Minnesota|M|Head|||17|8683 +3000|KS|Morris County|Council Grove city|1639|0|2|Elmblad|Marquita|2982|Palau|F|Spouse|||18|8684 + +3000|NY|Ulster County|Accord CDP|1640|0|1|Stumpf|Thurman Shirley|2951|Georgia|M|Head|||49|8685 +3000|NY|Ulster County|Accord CDP|1640|0|2|Stumpf|Hisako|2960|Indiana|F|Spouse|||40|8686 +3000|NY|Ulster County|Accord CDP|1640|0|3|Stumpf|Kattie|2980|Maine|F|Daughter|||20|8687 +3000|NY|Ulster County|Accord CDP|1640|0|4|Stumpf|Lacy|2982|Florida|F|Daughter|||18|8688 +3000|NY|Ulster County|Accord CDP|1640|0|5|Stumpf|Octavia|2994|Connecticut|F|Daughter|||6|8689 +3000|NY|Ulster County|Accord CDP|1640|0|6|Stumpf|Jon|2996|Wyoming|M|Son|||4|8690 +3000|NY|Ulster County|Accord CDP|1640|0|7|Stumpf|Orlando|3000|Alaska|M|Son|||0|8691 + +3000|OR|Coos County|Coos Bay city|1641|0|1|Englehardt|Nelson Hal|2953|Mississippi|M|Head|||47|8692 +3000|OR|Coos County|Coos Bay city|1641|0|2|Englehardt|Clorinda|2951|Illinois|F|Spouse|||49|8693 +3000|OR|Coos County|Coos Bay city|1641|0|3|Englehardt|Lonny|2985|Arizona|M|Son|||15|8694 +3000|OR|Coos County|Coos Bay city|1641|0|4|Englehardt|Jerold|2987|Gibraltar|M|Son|||13|8695 +3000|OR|Coos County|Coos Bay city|1641|0|5|Englehardt|Tashia|2989|Delaware|F|Daughter|||11|8696 +3000|OR|Coos County|Coos Bay city|1641|0|6|Englehardt|Randolph|2993|Maryland|M|Son|||7|8697 +3000|OR|Coos County|Coos Bay city|1641|0|7|Englehardt|Blair|2997|Alabama|M|Son|||3|8698 + +3000|NY|Essex County|Ticonderoga CDP|1642|0|1|Baker|Ezekiel Eduardo|2961|Vermont|M|Head|||39|8699 +3000|NY|Essex County|Ticonderoga CDP|1642|0|2|Baker|Charmaine Katharine|2958|Louisiana|F|Spouse|||42|8700 +3000|NY|Essex County|Ticonderoga CDP|1642|0|3|Baker|Roger|2986|Rhode Island|M|Son|||14|8701 +3000|NY|Essex County|Ticonderoga CDP|1642|0|4|Baker|Jaye|2988|New York|F|Daughter|||12|8702 +3000|NY|Essex County|Ticonderoga CDP|1642|0|5|Baker|Herman|2990|New Hampshire|M|Son|||10|8703 +3000|NY|Essex County|Ticonderoga CDP|1642|0|6|Baker|Kareem|2992|Florida|M|Son|||8|8704 +3000|NY|Essex County|Ticonderoga CDP|1642|0|7|Baker|Kassie|3000|New Mexico|F|Daughter|||0|8705 + +3000|MN|Nobles County|Elk township|1643|0|1|Holtrop|Robert Warren|2957|North Dakota|M|Head|||43|8706 +3000|MN|Nobles County|Elk township|1643|0|2|Holtrop|Cleopatra|2976|Connecticut|F|Spouse|||24|8707 +3000|MN|Nobles County|Elk township|1643|0|3|Holtrop|Andrew Donn|2998|North Carolina|M|Son|||2|8708 +3000|MN|Nobles County|Elk township|1643|0|4|Holtrop|Orval|3000|Kansas|M|Son|||0|8709 + +3000|IA|Mitchell County|Little Cedar CDP|1644|0|1|Solarz|Caleb Mac|2937|California|M|Head|||63|8710 +3000|IA|Mitchell County|Little Cedar CDP|1644|0|2|Solarz|Jazmine|2943|Kentucky|F|Spouse|||57|8711 +3000|IA|Mitchell County|Little Cedar CDP|1644|0|3|Solarz|Derek|2973|Alaska|M|Son|||27|8712 +3000|IA|Mitchell County|Little Cedar CDP|1644|0|4|Solarz|Vita|2987|Florida|F|Daughter|||13|8713 +3000|IA|Mitchell County|Little Cedar CDP|1644|0|5|Solarz|Sarai|2989|Saint Pierre And Miquelon|F|Daughter|||11|8714 +3000|IA|Mitchell County|Little Cedar CDP|1644|0|6|Solarz|Sachiko|2991|Indiana|F|Daughter|||9|8715 +3000|IA|Mitchell County|Little Cedar CDP|1644|0|7|Solarz|Jerrold Geraldo|2995|Bhutan|M|Son|||5|8716 + +3000|IL|Douglas County|Hindsboro village|1645|0|1|Coyner|Emile Jerrell|2947|Hawaii|M|Head|||53|8717 +3000|IL|Douglas County|Hindsboro village|1645|0|2|Coyner|Louanne|2964|Montana|F|Spouse|||36|8718 +3000|IL|Douglas County|Hindsboro village|1645|0|3|Coyner|Laurice|2988|Montana|F|Daughter|||12|8719 +3000|IL|Douglas County|Hindsboro village|1645|0|4|Coyner|Mellisa|2994|Georgia|F|Daughter|||6|8720 +3000|IL|Douglas County|Hindsboro village|1645|0|5|Coyner|Kristian|2996|Maryland|F|Daughter|||4|8721 +3000|IL|Douglas County|Hindsboro village|1645|0|6|Coyner|Wilber Garth|2998|Nepal|M|Son|||2|8722 +3000|IL|Douglas County|Hindsboro village|1645|0|7|Coyner|Codi|3000|North Carolina|F|Daughter|||0|8723 + +3000|TX|Denton County|Hackberry town|1646|0|1|Hufstedler|Stanton Domingo|2966|Minnesota|M|Head|||34|8724 +3000|TX|Denton County|Hackberry town|1646|0|2|Hufstedler|Dusty|2962|New Jersey|F|Spouse|||38|8725 +3000|TX|Denton County|Hackberry town|1646|0|3|Hufstedler|Denver|2986|Gabon|M|Son|||14|8726 +3000|TX|Denton County|Hackberry town|1646|0|4|Hufstedler|Brett|2988|Antarctica|M|Son|||12|8727 +3000|TX|Denton County|Hackberry town|1646|0|5|Hufstedler|Antony|2990|Burundi|M|Son|||10|8728 +3000|TX|Denton County|Hackberry town|1646|0|6|Hufstedler|Ronni|2992|North Carolina|F|Daughter|||8|8729 +3000|TX|Denton County|Hackberry town|1646|0|7|Hufstedler|Nicky|2994|Benin|M|Son|||6|8730 +3000|TX|Denton County|Hackberry town|1646|0|8|Hufstedler|Elisha|2996|Oklahoma|F|Daughter|||4|8731 +3000|TX|Denton County|Hackberry town|1646|0|9|Hufstedler|Sol|2998|Afghanistan|F|Daughter|||2|8732 +3000|TX|Denton County|Hackberry town|1646|0|10|Hufstedler|Hans|3000|Pennsylvania|M|Son|||0|8733 + +3000|AZ|Navajo County|Show Low city|1647|0|1|Martin|Rueben Leonel|2953|South Carolina|M|Head|||47|8734 +3000|AZ|Navajo County|Show Low city|1647|0|2|Martin|Annalisa|2950|Kentucky|F|Spouse|||50|8735 +3000|AZ|Navajo County|Show Low city|1647|0|3|Martin|Rosio Brenna|2974|Louisiana|F|Daughter|||26|8736 +3000|AZ|Navajo County|Show Low city|1647|0|4|Martin|Alexander Anton|2988|Maryland|M|Son|||12|8737 +3000|AZ|Navajo County|Show Low city|1647|0|5|Martin|Ross Courtney|2992|West Virginia|M|Son|||8|8738 +3000|AZ|Navajo County|Show Low city|1647|0|6|Martin|Angie|2994|Idaho|F|Daughter|||6|8739 +3000|AZ|Navajo County|Show Low city|1647|0|7|Martin|Corey|2998|North Carolina|F|Daughter|||2|8740 + +3000|MI|Ontonagon County|Interior township|1648|0|1|Hardi|Beatris Josette|2940|North Dakota|F|Head|||60|8741 +3000|MI|Ontonagon County|Interior township|1648|0|2|Hardi|Donette|2968|New Zealand|F|Daughter|||32|8742 +3000|MI|Ontonagon County|Interior township|1648|0|3|Hardi|Hyun|2972|Vermont|F|Daughter|||28|8743 +3000|MI|Ontonagon County|Interior township|1648|0|4|Hardi|Shante Glynis|2978|Missouri|F|Daughter|||22|8744 +3000|MI|Ontonagon County|Interior township|1648|0|5|Hardi|Rocco|2986|Texas|M|Son|||14|8745 +3000|MI|Ontonagon County|Interior township|1648|0|6|Hardi|Otha Bruce|2992|Montana|M|Son|||8|8746 +3000|MI|Ontonagon County|Interior township|1648|0|7|Hardi|Domingo|2994|Arizona|M|Son|||6|8747 +3000|MI|Ontonagon County|Interior township|1648|0|8|Hardi|Byron|2996|Bouvet Island|M|Son|||4|8748 + +3000|PA|Lawrence County|Volant borough|1649|0|1|Whorley|Chance Roman|2939|Hawaii|M|Head|||61|8749 +3000|PA|Lawrence County|Volant borough|1649|0|2|Whorley|Eric|2986|Missouri|F|Daughter|||14|8750 +3000|PA|Lawrence County|Volant borough|1649|0|3|Whorley|Mohammad|2988|Oregon|M|Son|||12|8751 +3000|PA|Lawrence County|Volant borough|1649|0|4|Whorley|Oneida Catalina|2998|Alaska|F|Daughter|||2|8752 +3000|PA|Lawrence County|Volant borough|1649|0|5|Whorley|Jamee|3000|Missouri|F|Daughter|||0|8753 + +3000|NY|Essex County|Lake Placid village|1650|0|1|Hamalak|Gordon Alfred|2945|Arkansas|M|Head|||55|8754 +3000|NY|Essex County|Lake Placid village|1650|0|2|Hamalak|Isa|2942|Netherlands Antilles|F|Spouse|||58|8755 +3000|NY|Essex County|Lake Placid village|1650|0|3|Hamalak|Scott|2970|Burkina Faso|M|Son|||30|8756 +3000|NY|Essex County|Lake Placid village|1650|0|4|Hamalak|Marty|2974|Romania|M|Son|||26|8757 +3000|NY|Essex County|Lake Placid village|1650|0|5|Hamalak|Curt|2976|Kentucky|M|Son|||24|8758 +3000|NY|Essex County|Lake Placid village|1650|0|6|Hamalak|Randell Vicente|2986|California|M|Son|||14|8759 +3000|NY|Essex County|Lake Placid village|1650|0|7|Hamalak|Rosetta|2992|Connecticut|F|Daughter|||8|8760 +3000|NY|Essex County|Lake Placid village|1650|0|8|Hamalak|Millard|2998|Wyoming|M|Son|||2|8761 +3000|NY|Essex County|Lake Placid village|1650|0|9|Hamalak|Lacy|3000|Aruba|M|Son|||0|8762 + +3000|TN|Robertson County, Sumner County|White House city|1651|0|1|Wood|Maria Rory|2954|Nevada|M|Head|||46|8763 +3000|TN|Robertson County, Sumner County|White House city|1651|0|2|Wood|Domitila|2975|New Hampshire|F|Spouse|||25|8764 +3000|TN|Robertson County, Sumner County|White House city|1651|0|3|Wood|Chan Waltraud|2999|Alabama|F|Daughter|||1|8765 + +3000|NY|Hamilton County|Morehouse town|1652|0|1|Smith|Orlando Quinton|2967|Russian Federation|M|Head|||33|8766 +3000|NY|Hamilton County|Morehouse town|1652|0|2|Smith|Larhonda|2977|Mississippi|F|Spouse|||23|8767 +3000|NY|Hamilton County|Morehouse town|1652|0|3|Smith|Debrah|2999|Nebraska|F|Daughter|||1|8768 + +3000|MN|Itasca County|Morse township|1653|0|1|Ruiz|Shizuko|2956|Georgia|F|Head|||44|8769 +3000|MN|Itasca County|Morse township|1653|0|2|Ruiz|Francisco|2982|Hawaii|M|Son|||18|8770 +3000|MN|Itasca County|Morse township|1653|0|3|Ruiz|Cheree|2988|Bolivia|F|Daughter|||12|8771 +3000|MN|Itasca County|Morse township|1653|0|4|Ruiz|Merrill|2990|Liberia|M|Son|||10|8772 +3000|MN|Itasca County|Morse township|1653|0|5|Ruiz|Soon Kanesha|2994|Maryland|F|Daughter|||6|8773 +3000|MN|Itasca County|Morse township|1653|0|6|Ruiz|Monte|2996|Togo|M|Son|||4|8774 + +3000|TX|Bell County, Coryell County, Lampasas County|Copperas Cove city|1654|0|1|Larson|Randal Wilfred|2964|Indiana|M|Head|||36|8775 +3000|TX|Bell County, Coryell County, Lampasas County|Copperas Cove city|1654|0|2|Larson|Tandy|2965|Arkansas|F|Spouse|||35|8776 +3000|TX|Bell County, Coryell County, Lampasas County|Copperas Cove city|1654|0|3|Larson|Raylene|2985|Kyrgyzstan|F|Daughter|||15|8777 +3000|TX|Bell County, Coryell County, Lampasas County|Copperas Cove city|1654|0|4|Larson|Mose Leon|2987|Kentucky|M|Son|||13|8778 +3000|TX|Bell County, Coryell County, Lampasas County|Copperas Cove city|1654|0|5|Larson|Mercy|2989|Arizona|F|Daughter|||11|8779 +3000|TX|Bell County, Coryell County, Lampasas County|Copperas Cove city|1654|0|6|Larson|Shawn|2993|Washington|M|Son|||7|8780 + +3000|WV|Marion County|Grant Town town|1655|0|1|Sapia|Clark Harrison|2937|Arizona|M|Head|||63|8781 +3000|WV|Marion County|Grant Town town|1655|0|2|Sapia|Karie|2944|West Virginia|F|Spouse|||56|8782 +3000|WV|Marion County|Grant Town town|1655|0|3|Sapia|Wilmer Darryl|2986|Delaware|M|Son|||14|8783 +3000|WV|Marion County|Grant Town town|1655|0|4|Sapia|Carlo|2988|Oregon|M|Son|||12|8784 +3000|WV|Marion County|Grant Town town|1655|0|5|Sapia|Colette|2992|Wisconsin|F|Daughter|||8|8785 +3000|WV|Marion County|Grant Town town|1655|0|6|Sapia|Theo|2996|Illinois|M|Son|||4|8786 + +3000|NE|Gage County|Odell village|1656|0|1|Matsuda|Abel Delmer|2940|Wyoming|M|Head|||60|8787 +3000|NE|Gage County|Odell village|1656|0|2|Matsuda|Octavia|2958|Denmark|F|Spouse|||42|8788 +3000|NE|Gage County|Odell village|1656|0|3|Matsuda|Gaynelle|2986|New Hampshire|F|Daughter|||14|8789 +3000|NE|Gage County|Odell village|1656|0|4|Matsuda|Sebastian Marcelino|2994|Utah|M|Son|||6|8790 +3000|NE|Gage County|Odell village|1656|0|5|Matsuda|Hector|2996|Alabama|M|Son|||4|8791 +3000|NE|Gage County|Odell village|1656|0|6|Matsuda|Josue|2998|Pennsylvania|M|Son|||2|8792 +3000|NE|Gage County|Odell village|1656|0|7|Matsuda|Delbert|3000|Missouri|M|Son|||0|8793 + +3000|CA|Tulare County|Monson CDP|1657|0|1|Manchini|Floyd Columbus|2974|Minnesota|M|Head|||26|8794 + +3000|MN|Jackson County|Alpha city|1658|0|1|Kham|Marquitta|2966|Arizona|F|Head|||34|8795 +3000|MN|Jackson County|Alpha city|1658|0|2|Kham|Barrie|2988|Utah|F|Daughter|||12|8796 +3000|MN|Jackson County|Alpha city|1658|0|3|Kham|Hal|2990|Alabama|M|Son|||10|8797 +3000|MN|Jackson County|Alpha city|1658|0|4|Kham|Jacquelyne|2992|Louisiana|F|Daughter|||8|8798 +3000|MN|Jackson County|Alpha city|1658|0|5|Kham|Emely Mckenzie|2998|Missouri|F|Daughter|||2|8799 + +3000|CA|Placer County|North Auburn CDP|1659|0|1|Moore|Geraldo Ross|2961|Massachusetts|M|Head|||39|8800 +3000|CA|Placer County|North Auburn CDP|1659|0|2|Moore|Fleta|2958|Oklahoma|F|Spouse|||42|8801 +3000|CA|Placer County|North Auburn CDP|1659|0|3|Moore|Gene|2990|Vermont|F|Daughter|||10|8802 +3000|CA|Placer County|North Auburn CDP|1659|0|4|Moore|Ryan|2992|Missouri|M|Son|||8|8803 +3000|CA|Placer County|North Auburn CDP|1659|0|5|Moore|Monty|2996|Alaska|M|Son|||4|8804 +3000|CA|Placer County|North Auburn CDP|1659|0|6|Moore|Louie|3000|Mississippi|M|Son|||0|8805 + +3000|AZ|Santa Cruz County|Beyerville CDP|1660|0|1|Moothart|Ned Randal|2968|North Dakota|M|Head|||32|8806 +3000|AZ|Santa Cruz County|Beyerville CDP|1660|0|2|Moothart|Drema|2997|Botswana|F|Daughter|||3|8807 + +3000|CA|Plumas County|East Shore CDP|1661|0|1|Donnellon|Arron Isiah|2944|Netherlands Antilles|M|Head|||56|8808 +3000|CA|Plumas County|East Shore CDP|1661|0|2|Donnellon|Donette|2960|Ohio|F|Spouse|||40|8809 +3000|CA|Plumas County|East Shore CDP|1661|0|3|Donnellon|Victor Lavern|2984|Bolivia|M|Son|||16|8810 +3000|CA|Plumas County|East Shore CDP|1661|0|4|Donnellon|Charissa|2986|Kuwait|F|Daughter|||14|8811 +3000|CA|Plumas County|East Shore CDP|1661|0|5|Donnellon|Vallie|2992|Oklahoma|F|Daughter|||8|8812 +3000|CA|Plumas County|East Shore CDP|1661|0|6|Donnellon|Daren|2996|South Dakota|M|Son|||4|8813 +3000|CA|Plumas County|East Shore CDP|1661|0|7|Donnellon|Warren Sol|2998|Virginia|M|Son|||2|8814 + +3000|IA|Boone County, Polk County, Story County|Sheldahl city|1662|0|1|Mattingly|Mattie|2964|United Arab Emirates|F|Head|||36|8815 +3000|IA|Boone County, Polk County, Story County|Sheldahl city|1662|0|2|Mattingly|Lela|2984|Ukraine|F|Daughter|||16|8816 +3000|IA|Boone County, Polk County, Story County|Sheldahl city|1662|0|3|Mattingly|Leana Eliz|2986|Nevada|F|Daughter|||14|8817 +3000|IA|Boone County, Polk County, Story County|Sheldahl city|1662|0|4|Mattingly|Cathy|2992|Wisconsin|F|Daughter|||8|8818 +3000|IA|Boone County, Polk County, Story County|Sheldahl city|1662|0|5|Mattingly|Randell Alexander|2996|New Jersey|M|Son|||4|8819 +3000|IA|Boone County, Polk County, Story County|Sheldahl city|1662|0|6|Mattingly|Craig|2998|Maine|M|Son|||2|8820 +3000|IA|Boone County, Polk County, Story County|Sheldahl city|1662|0|7|Mattingly|Eldridge|3000|Oklahoma|M|Son|||0|8821 + +3000|IA|Keokuk County|Keota city|1663|0|1|Zentner|Merlin Eliseo|2974|Kansas|M|Head|||26|8822 +3000|IA|Keokuk County|Keota city|1663|0|2|Zentner|Jamika Marry|2984|Louisiana|F|Spouse|||16|8823 + +3000|KY|Morgan County|West Liberty city|1664|0|1|Boggs|Stanley Eduardo|2970|Arkansas|M|Head|||30|8824 +3000|KY|Morgan County|West Liberty city|1664|0|2|Boggs|Candice|2967|Minnesota|F|Spouse|||33|8825 +3000|KY|Morgan County|West Liberty city|1664|0|3|Boggs|Antoine|2987|Missouri|M|Son|||13|8826 +3000|KY|Morgan County|West Liberty city|1664|0|4|Boggs|Jerrell|2989|Cayman Islands|M|Son|||11|8827 +3000|KY|Morgan County|West Liberty city|1664|0|5|Boggs|Henrietta|2991|Mississippi|F|Daughter|||9|8828 +3000|KY|Morgan County|West Liberty city|1664|0|6|Boggs|Genesis|2995|Wyoming|F|Daughter|||5|8829 +3000|KY|Morgan County|West Liberty city|1664|0|7|Boggs|Simon|2997|Kansas|M|Son|||3|8830 +3000|KY|Morgan County|West Liberty city|1664|0|8|Boggs|Landon|2999|India|M|Son|||1|8831 + +3000|MN|Winona County|Wilson township|1665|0|1|Sherod|Vance Hobert|2953|Hawaii|M|Head|||47|8832 +3000|MN|Winona County|Wilson township|1665|0|2|Sherod|Nakita|2974|Michigan|F|Spouse|||26|8833 +3000|MN|Winona County|Wilson township|1665|0|3|Sherod|Wilber|2994|Alabama|M|Son|||6|8834 +3000|MN|Winona County|Wilson township|1665|0|4|Sherod|Asa|2996|Lithuania|M|Son|||4|8835 +3000|MN|Winona County|Wilson township|1665|0|5|Sherod|Floyd|2998|Florida|M|Son|||2|8836 + +3000|VA|Fairfax County|Springfield CDP|1666|0|1|Cilenti|Denis Malcolm|2964|New Zealand|M|Head|||36|8837 +3000|VA|Fairfax County|Springfield CDP|1666|0|2|Cilenti|Isa|2978|Ohio|F|Spouse|||22|8838 +3000|VA|Fairfax County|Springfield CDP|1666|0|3|Cilenti|Ollie|2998|Oklahoma|F|Daughter|||2|8839 +3000|VA|Fairfax County|Springfield CDP|1666|0|4|Cilenti|Gregg|3000|Minnesota|M|Son|||0|8840 + +3000|LA|De Soto Parish|Mansfield city|1667|0|1|Jimenez|Jesus Randell|2938|Delaware|M|Head|||62|8841 +3000|LA|De Soto Parish|Mansfield city|1667|0|2|Jimenez|Cinda Debroah|2962|Connecticut|F|Spouse|||38|8842 +3000|LA|De Soto Parish|Mansfield city|1667|0|3|Jimenez|Sammy|2982|Arizona|M|Son|||18|8843 +3000|LA|De Soto Parish|Mansfield city|1667|0|4|Jimenez|Burl|2986|Louisiana|M|Son|||14|8844 +3000|LA|De Soto Parish|Mansfield city|1667|0|5|Jimenez|Yong|2992|South Carolina|F|Daughter|||8|8845 +3000|LA|De Soto Parish|Mansfield city|1667|0|6|Jimenez|Missy|2994|Luxembourg|F|Daughter|||6|8846 +3000|LA|De Soto Parish|Mansfield city|1667|0|7|Jimenez|Julio|2998|Kansas|M|Son|||2|8847 + +3000|MN|Nobles County|Graham Lakes township|1668|0|1|Jordan|Nicholas Preston|2961|Cape Verde|M|Head|||39|8848 +3000|MN|Nobles County|Graham Lakes township|1668|0|2|Jordan|Tran|2982|Idaho|F|Spouse|||18|8849 + +3000|PA|Chester County|Pomeroy CDP|1669|0|1|Pyon|Clair Fernando|2959|Georgia|M|Head|||41|8850 +3000|PA|Chester County|Pomeroy CDP|1669|0|2|Pyon|Leola|2976|Arizona|F|Spouse|||24|8851 +3000|PA|Chester County|Pomeroy CDP|1669|0|3|Pyon|Latesha|2996|Oklahoma|F|Daughter|||4|8852 +3000|PA|Chester County|Pomeroy CDP|1669|0|4|Pyon|Oswaldo Tory|3000|Iowa|M|Son|||0|8853 + +3000|NJ|Salem County|Pennsville township|1670|0|1|Sherwood|Gail Roosevelt|2961|Kansas|M|Head|||39|8854 +3000|NJ|Salem County|Pennsville township|1670|0|2|Sherwood|Sal|2999|Pennsylvania|M|Son|||1|8855 + +3000|KS|Clark County|Englewood city|1671|0|1|Jamerson|Kris Desmond|2959|Nebraska|M|Head|||41|8856 +3000|KS|Clark County|Englewood city|1671|0|2|Jamerson|Anibal|2987|Spain|M|Son|||13|8857 +3000|KS|Clark County|Englewood city|1671|0|3|Jamerson|Francesco|2991|Arizona|M|Son|||9|8858 +3000|KS|Clark County|Englewood city|1671|0|4|Jamerson|Oneida|2997|Morocco|F|Daughter|||3|8859 +3000|KS|Clark County|Englewood city|1671|0|5|Jamerson|Kylee|2999|South Dakota|F|Daughter|||1|8860 + +3000|CT|Windham County|Putnam town|1672|0|1|Fees|Bernard Leandro|2945|Utah|M|Head|||55|8861 +3000|CT|Windham County|Putnam town|1672|0|2|Fees|Susan Leota|2985|Colorado|F|Daughter|||15|8862 +3000|CT|Windham County|Putnam town|1672|0|3|Fees|Walton|2989|Tonga|M|Son|||11|8863 +3000|CT|Windham County|Putnam town|1672|0|4|Fees|Colton|2991|Connecticut|M|Son|||9|8864 +3000|CT|Windham County|Putnam town|1672|0|5|Fees|Jami|2993|Maryland|F|Daughter|||7|8865 +3000|CT|Windham County|Putnam town|1672|0|6|Fees|Joycelyn|2995|Armenia|F|Daughter|||5|8866 +3000|CT|Windham County|Putnam town|1672|0|7|Fees|Wally Brendan|2997|New Hampshire|M|Son|||3|8867 +3000|CT|Windham County|Putnam town|1672|0|8|Fees|Horace|2999|Ohio|M|Son|||1|8868 + +3000|MD|Dorchester County|Cambridge city|1673|0|1|Blodgett|Chase Willian|2941|Washington|M|Head|||59|8869 +3000|MD|Dorchester County|Cambridge city|1673|0|2|Blodgett|Jerica Shela|2939|Colorado|F|Spouse|||61|8870 +3000|MD|Dorchester County|Cambridge city|1673|0|3|Blodgett|Rosemarie|2981|Colorado|F|Daughter|||19|8871 +3000|MD|Dorchester County|Cambridge city|1673|0|4|Blodgett|Gabriella|2987|Washington|F|Daughter|||13|8872 +3000|MD|Dorchester County|Cambridge city|1673|0|5|Blodgett|Hal|2989|Algeria|M|Son|||11|8873 +3000|MD|Dorchester County|Cambridge city|1673|0|6|Blodgett|Odis|2993|Pennsylvania|M|Son|||7|8874 +3000|MD|Dorchester County|Cambridge city|1673|0|7|Blodgett|Gaston|2995|Mississippi|M|Son|||5|8875 +3000|MD|Dorchester County|Cambridge city|1673|0|8|Blodgett|Inge|2999|Congo|F|Daughter|||1|8876 + +3000|MO|Linn County, Sullivan County|Browning city|1674|0|1|Allen|Clifton Salvador|2937|Maryland|M|Head|||63|8877 +3000|MO|Linn County, Sullivan County|Browning city|1674|0|2|Allen|Freeda|2950|New Mexico|F|Spouse|||50|8878 +3000|MO|Linn County, Sullivan County|Browning city|1674|0|3|Allen|Hunter Russ|2970|Florida|M|Son|||30|8879 +3000|MO|Linn County, Sullivan County|Browning city|1674|0|4|Allen|Horacio|2976|Kansas|M|Son|||24|8880 +3000|MO|Linn County, Sullivan County|Browning city|1674|0|5|Allen|Renae Corie|2986|Louisiana|F|Daughter|||14|8881 +3000|MO|Linn County, Sullivan County|Browning city|1674|0|6|Allen|Rex|2988|Mississippi|M|Son|||12|8882 +3000|MO|Linn County, Sullivan County|Browning city|1674|0|7|Allen|Herman|2998|Reunion|M|Son|||2|8883 + +3000|MO|Platte County|Edgerton city|1675|0|1|Rary|Houston|2968|Iowa|M|Head|||32|8884 +3000|MO|Platte County|Edgerton city|1675|0|2|Rary|Jacquline|2988|Florida|F|Daughter|||12|8885 +3000|MO|Platte County|Edgerton city|1675|0|3|Rary|Jerome|2990|New Jersey|M|Son|||10|8886 +3000|MO|Platte County|Edgerton city|1675|0|4|Rary|Shanel|2992|Central African Republic|F|Daughter|||8|8887 +3000|MO|Platte County|Edgerton city|1675|0|5|Rary|Hae|2994|Arkansas|F|Daughter|||6|8888 +3000|MO|Platte County|Edgerton city|1675|0|6|Rary|Reynaldo|2998|New York|M|Son|||2|8889 + +3000|MO|Linn County|Bucklin city|1676|0|1|Bates|Chi Ariel|2974|Indiana|M|Head|||26|8890 +3000|MO|Linn County|Bucklin city|1676|0|2|Bates|Hae|2975|Ohio|F|Spouse|||25|8891 +3000|MO|Linn County|Bucklin city|1676|0|3|Bates|Beaulah|2995|New Mexico|F|Daughter|||5|8892 +3000|MO|Linn County|Bucklin city|1676|0|4|Bates|Napoleon|2997|Virginia|M|Son|||3|8893 + +3000|NY|St. Lawrence County|Ogdensburg city|1677|0|1|Darocha|Enoch Lance|2943|Ohio|M|Head|||57|8894 +3000|NY|St. Lawrence County|Ogdensburg city|1677|0|2|Darocha|Leslie|2952|El Salvador|F|Spouse|||48|8895 +3000|NY|St. Lawrence County|Ogdensburg city|1677|0|3|Darocha|Donny|2974|Maine|M|Son|||26|8896 +3000|NY|St. Lawrence County|Ogdensburg city|1677|0|4|Darocha|Belkis|2978|Pennsylvania|F|Daughter|||22|8897 +3000|NY|St. Lawrence County|Ogdensburg city|1677|0|5|Darocha|Pasquale|2986|Oklahoma|M|Son|||14|8898 +3000|NY|St. Lawrence County|Ogdensburg city|1677|0|6|Darocha|Glenn|2988|South Dakota|F|Daughter|||12|8899 +3000|NY|St. Lawrence County|Ogdensburg city|1677|0|7|Darocha|Myron|2990|Michigan|M|Son|||10|8900 +3000|NY|St. Lawrence County|Ogdensburg city|1677|0|8|Darocha|Anissa|2992|West Virginia|F|Daughter|||8|8901 + +3000|MN|Scott County|St. Lawrence township|1678|0|1|Gottesman|Douglas|2946|Iowa|M|Head|||54|8902 +3000|MN|Scott County|St. Lawrence township|1678|0|2|Gottesman|Shandra|2947|Alabama|F|Spouse|||53|8903 +3000|MN|Scott County|St. Lawrence township|1678|0|3|Gottesman|Brittanie Gladys|2969|Delaware|F|Daughter|||31|8904 +3000|MN|Scott County|St. Lawrence township|1678|0|4|Gottesman|Emmanuel Emery|2971|Panama|M|Son|||29|8905 +3000|MN|Scott County|St. Lawrence township|1678|0|5|Gottesman|Cathy|2975|New York|F|Daughter|||25|8906 +3000|MN|Scott County|St. Lawrence township|1678|0|6|Gottesman|Jason|2985|Greece|M|Son|||15|8907 +3000|MN|Scott County|St. Lawrence township|1678|0|7|Gottesman|Chae|2987|Kentucky|F|Daughter|||13|8908 +3000|MN|Scott County|St. Lawrence township|1678|0|8|Gottesman|Gayle Doretha|2989|Cameroon|F|Daughter|||11|8909 +3000|MN|Scott County|St. Lawrence township|1678|0|9|Gottesman|Willian|2995|North Dakota|M|Son|||5|8910 + +3000|PA|Washington County|Cecil-Bishop CDP|1679|0|1|Palafox|Irwin Edmund|2972|Arizona|M|Head|||28|8911 +3000|PA|Washington County|Cecil-Bishop CDP|1679|0|2|Palafox|Neta|2984|South Carolina|F|Spouse|||16|8912 + +3000|NH|Grafton County|Lincoln town|1680|0|1|Letchworth|Jamey Manual|2940|Hawaii|M|Head|||60|8913 +3000|NH|Grafton County|Lincoln town|1680|0|2|Letchworth|Georgie|2950|Alaska|F|Spouse|||50|8914 +3000|NH|Grafton County|Lincoln town|1680|0|3|Letchworth|Milagro|2986|Minnesota|F|Daughter|||14|8915 +3000|NH|Grafton County|Lincoln town|1680|0|4|Letchworth|Jeremiah|2988|Hawaii|M|Son|||12|8916 +3000|NH|Grafton County|Lincoln town|1680|0|5|Letchworth|Thaddeus|2996|Ohio|M|Son|||4|8917 +3000|NH|Grafton County|Lincoln town|1680|0|6|Letchworth|Savanna|3000|Utah|F|Daughter|||0|8918 + +3000|TX|Hays County|Hays city|1681|0|1|Harris|Noble Chi|2973|New Jersey|M|Head|||27|8919 +3000|TX|Hays County|Hays city|1681|0|2|Harris|Audie Dusti|2978|San Marino|F|Spouse|||22|8920 +3000|TX|Hays County|Hays city|1681|0|3|Harris|Emmitt Kareem|3000|Colorado|M|Son|||0|8921 + +3000|NJ|Bergen County|Ho-Ho-Kus borough|1682|0|1|Jones|Burl Randy|2961|Mississippi|M|Head|||39|8922 + +3000|IA|Dickinson County|Wahpeton city|1683|0|1|Gillock|Elias|2960|South Dakota|M|Head|||40|8923 +3000|IA|Dickinson County|Wahpeton city|1683|0|2|Gillock|Toi|2983|Kentucky|F|Spouse|||17|8924 + +3000|TX|Cameron County|Rio Hondo city|1684|0|1|Chaiken|Chang Karl|2966|Tennessee|M|Head|||34|8925 + +3000|CA|Orange County|Yorba Linda city|1685|0|1|Lunch|Trinidad Olin|2974|California|M|Head|||26|8926 +3000|CA|Orange County|Yorba Linda city|1685|0|2|Lunch|Dorothy|2991|Hungary|F|Daughter|||9|8927 +3000|CA|Orange County|Yorba Linda city|1685|0|3|Lunch|Anna|2997|North Carolina|F|Daughter|||3|8928 +3000|CA|Orange County|Yorba Linda city|1685|0|4|Lunch|Sherwood|2999|West Virginia|M|Son|||1|8929 + +3000|IL|LaSalle County|LaSalle city|1686|0|1|Haynes|Russel Aurelio|2954|New York|M|Head|||46|8930 +3000|IL|LaSalle County|LaSalle city|1686|0|2|Haynes|Latesha|2959|Kentucky|F|Spouse|||41|8931 +3000|IL|LaSalle County|LaSalle city|1686|0|3|Haynes|Duncan Antione|2979|Nevada|M|Son|||21|8932 +3000|IL|LaSalle County|LaSalle city|1686|0|4|Haynes|Elmo|2985|Michigan|M|Son|||15|8933 +3000|IL|LaSalle County|LaSalle city|1686|0|5|Haynes|Mayme|2989|North Carolina|F|Daughter|||11|8934 + +3000|MI|Jackson County|Rives township|1687|0|1|Grames|Caleb Lee|2946|Virginia|M|Head|||54|8935 +3000|MI|Jackson County|Rives township|1687|0|2|Grames|Teresita|2947|Cuba|F|Spouse|||53|8936 +3000|MI|Jackson County|Rives township|1687|0|3|Grames|Renata Talia|2967|Oklahoma|F|Daughter|||33|8937 +3000|MI|Jackson County|Rives township|1687|0|4|Grames|Kirby|2983|Kentucky|F|Daughter|||17|8938 +3000|MI|Jackson County|Rives township|1687|0|5|Grames|Jaleesa|2985|Iowa|F|Daughter|||15|8939 +3000|MI|Jackson County|Rives township|1687|0|6|Grames|Herma|2987|Kansas|F|Daughter|||13|8940 +3000|MI|Jackson County|Rives township|1687|0|7|Grames|Cletus|2991|Montana|M|Son|||9|8941 +3000|MI|Jackson County|Rives township|1687|0|8|Grames|Marchelle Laurel|2993|Oklahoma|F|Daughter|||7|8942 +3000|MI|Jackson County|Rives township|1687|0|9|Grames|Luciano|2997|Guatemala|M|Son|||3|8943 + +3000|WI|St. Croix County|Kinnickinnic town|1688|0|1|Pollack|Dominick Michale|2974|Pennsylvania|M|Head|||26|8944 +3000|WI|St. Croix County|Kinnickinnic town|1688|0|2|Pollack|Leeann|2978|Nebraska|F|Spouse|||22|8945 +3000|WI|St. Croix County|Kinnickinnic town|1688|0|3|Pollack|Angella|2998|Pennsylvania|F|Daughter|||2|8946 +3000|WI|St. Croix County|Kinnickinnic town|1688|0|4|Pollack|Reggie|3000|Oklahoma|M|Son|||0|8947 + +3000|AR|Sebastian County|Barling city|1689|0|1|Tyson|Dwain Damien|2952|Delaware|M|Head|||48|8948 +3000|AR|Sebastian County|Barling city|1689|0|2|Tyson|Fredrick|2994|New Mexico|M|Son|||6|8949 +3000|AR|Sebastian County|Barling city|1689|0|3|Tyson|Roseanna|3000|Tennessee|F|Daughter|||0|8950 + +3000|PA|Susquehanna County|Silver Lake township|1690|0|1|Vaughn|Errol Carmelo|2952|New York|M|Head|||48|8951 +3000|PA|Susquehanna County|Silver Lake township|1690|0|2|Vaughn|Sharonda Willette|2975|Wisconsin|F|Spouse|||25|8952 +3000|PA|Susquehanna County|Silver Lake township|1690|0|3|Vaughn|Robbie Jarrod|2997|Minnesota|M|Son|||3|8953 +3000|PA|Susquehanna County|Silver Lake township|1690|0|4|Vaughn|Isaiah|2999|South Dakota|M|Son|||1|8954 + +3000|FL|Alachua County|Archer city|1691|0|1|Headlee|Marco Wilber|2937|Kentucky|M|Head|||63|8955 +3000|FL|Alachua County|Archer city|1691|0|2|Headlee|Dwana Chery|2955|Maldives|F|Spouse|||45|8956 +3000|FL|Alachua County|Archer city|1691|0|3|Headlee|Yee|2979|Minnesota|F|Daughter|||21|8957 +3000|FL|Alachua County|Archer city|1691|0|4|Headlee|Gracia|2983|Connecticut|F|Daughter|||17|8958 +3000|FL|Alachua County|Archer city|1691|0|5|Headlee|Angla|2989|Guinea|F|Daughter|||11|8959 +3000|FL|Alachua County|Archer city|1691|0|6|Headlee|Cleveland|2991|Armenia|M|Son|||9|8960 +3000|FL|Alachua County|Archer city|1691|0|7|Headlee|Eve Carline|2995|Missouri|F|Daughter|||5|8961 +3000|FL|Alachua County|Archer city|1691|0|8|Headlee|Phillis|2997|Wyoming|F|Daughter|||3|8962 + +3000|PA|Cambria County|Wilmore borough|1692|0|1|Campbell|Vincenzo|2958|New Jersey|M|Head|||42|8963 +3000|PA|Cambria County|Wilmore borough|1692|0|2|Campbell|Cheryll|2978|Pennsylvania|F|Spouse|||22|8964 +3000|PA|Cambria County|Wilmore borough|1692|0|3|Campbell|Henry|2998|California|M|Son|||2|8965 +3000|PA|Cambria County|Wilmore borough|1692|0|4|Campbell|Stephanie Man|3000|Arizona|F|Daughter|||0|8966 + +3000|PA|Armstrong County|Burrell township|1693|0|1|Breehl|Levi Antione|2977|Lithuania|M|Head|||23|8967 +3000|PA|Armstrong County|Burrell township|1693|0|2|Breehl|Clarita|2973|Maine|F|Spouse|||27|8968 +3000|PA|Armstrong County|Burrell township|1693|0|3|Breehl|Kirby|2995|New Mexico|F|Daughter|||5|8969 + +3000|TX|Brazoria County|Manvel city|1694|0|1|Wagemann|Dalila|2970|Nevada|F|Head|||30|8970 +3000|TX|Brazoria County|Manvel city|1694|0|2|Wagemann|Herbert|2992|French Southern Territories|M|Son|||8|8971 +3000|TX|Brazoria County|Manvel city|1694|0|3|Wagemann|Maritza|2996|California|F|Daughter|||4|8972 +3000|TX|Brazoria County|Manvel city|1694|0|4|Wagemann|Nereida|3000|Iowa|F|Daughter|||0|8973 + +3000|OR|Jefferson County|Warm Springs CDP|1695|0|1|Coccia|Guillermo August|2975|Oklahoma|M|Head|||25|8974 +3000|OR|Jefferson County|Warm Springs CDP|1695|0|2|Coccia|Eula|2971|Rhode Island|F|Spouse|||29|8975 +3000|OR|Jefferson County|Warm Springs CDP|1695|0|3|Coccia|Bee|2991|Dominica|F|Daughter|||9|8976 +3000|OR|Jefferson County|Warm Springs CDP|1695|0|4|Coccia|Ronny|2995|Georgia|M|Son|||5|8977 +3000|OR|Jefferson County|Warm Springs CDP|1695|0|5|Coccia|Quincy|2997|Wyoming|M|Son|||3|8978 + +3000|MI|Ontonagon County|Rockland township|1696|0|1|Byron|Rusty Herbert|2967|Texas|M|Head|||33|8979 +3000|MI|Ontonagon County|Rockland township|1696|0|2|Byron|Tiffaney|2983|New York|F|Spouse|||17|8980 + +3000|WI|Clark County|Loyal city|1697|0|1|Cossey|Luigi Nicholas|2940|Oregon|M|Head|||60|8981 +3000|WI|Clark County|Loyal city|1697|0|2|Cossey|Maryrose|2939|Afghanistan|F|Spouse|||61|8982 +3000|WI|Clark County|Loyal city|1697|0|3|Cossey|Darius|2981|Jamaica|M|Son|||19|8983 +3000|WI|Clark County|Loyal city|1697|0|4|Cossey|Sal Frankie|2983|Sudan|M|Son|||17|8984 +3000|WI|Clark County|Loyal city|1697|0|5|Cossey|Alfredo|2989|New Mexico|M|Son|||11|8985 +3000|WI|Clark County|Loyal city|1697|0|6|Cossey|Ginette Demetrice|2993|Montenegro|F|Daughter|||7|8986 +3000|WI|Clark County|Loyal city|1697|0|7|Cossey|Verna|2995|West Virginia|F|Daughter|||5|8987 +3000|WI|Clark County|Loyal city|1697|0|8|Cossey|Galen|2997|Tennessee|M|Son|||3|8988 + +3000|IA|Cedar County|Bennett city|1698|0|1|Budzinski|Elvin Willian|2976|Wisconsin|M|Head|||24|8989 +3000|IA|Cedar County|Bennett city|1698|0|2|Budzinski|Karie|2977|Louisiana|F|Spouse|||23|8990 +3000|IA|Cedar County|Bennett city|1698|0|3|Budzinski|Dagny|2997|California|F|Daughter|||3|8991 + +3000|MT|Pondera County|Heart Butte CDP|1699|0|1|Fors|Bo Silas|2941|North Dakota|M|Head|||59|8992 +3000|MT|Pondera County|Heart Butte CDP|1699|0|2|Fors|Sabine|2958|Indiana|F|Spouse|||42|8993 +3000|MT|Pondera County|Heart Butte CDP|1699|0|3|Fors|Angelic|2978|Nebraska|F|Daughter|||22|8994 +3000|MT|Pondera County|Heart Butte CDP|1699|0|4|Fors|Sherika|2982|Missouri|F|Daughter|||18|8995 +3000|MT|Pondera County|Heart Butte CDP|1699|0|5|Fors|Johnny|2986|United States|M|Son|||14|8996 +3000|MT|Pondera County|Heart Butte CDP|1699|0|6|Fors|Quiana|2992|Wisconsin|F|Daughter|||8|8997 +3000|MT|Pondera County|Heart Butte CDP|1699|0|7|Fors|Israel|2994|Minnesota|M|Son|||6|8998 +3000|MT|Pondera County|Heart Butte CDP|1699|0|8|Fors|Leena|2996|Croatia|F|Daughter|||4|8999 + +3000|MA|Plymouth County|Onset CDP|1700|0|1|Hendrixson|Ramiro|2968|Alaska|M|Head|||32|9000 +3000|MA|Plymouth County|Onset CDP|1700|0|2|Hendrixson|Pearlie|2965|Nauru|F|Spouse|||35|9001 +3000|MA|Plymouth County|Onset CDP|1700|0|3|Hendrixson|Mozelle|2985|Washington|F|Daughter|||15|9002 +3000|MA|Plymouth County|Onset CDP|1700|0|4|Hendrixson|Harland|2987|Bhutan|M|Son|||13|9003 +3000|MA|Plymouth County|Onset CDP|1700|0|5|Hendrixson|Mirella Magen|2991|Georgia|F|Daughter|||9|9004 +3000|MA|Plymouth County|Onset CDP|1700|0|6|Hendrixson|Harvey|2995|Massachusetts|M|Son|||5|9005 + +3000|TX|Hidalgo County|Pharr city|1701|0|1|Gould|Guillermo Milo|2939|Pennsylvania|M|Head|||61|9006 +3000|TX|Hidalgo County|Pharr city|1701|0|2|Gould|Kasha|2937|Vermont|F|Spouse|||63|9007 +3000|TX|Hidalgo County|Pharr city|1701|0|3|Gould|Allen|2967|North Carolina|F|Daughter|||33|9008 +3000|TX|Hidalgo County|Pharr city|1701|0|4|Gould|Wilmer|2985|South Dakota|M|Son|||15|9009 +3000|TX|Hidalgo County|Pharr city|1701|0|5|Gould|Lamar Clay|2987|Alabama|M|Son|||13|9010 +3000|TX|Hidalgo County|Pharr city|1701|0|6|Gould|Tamica|2991|Maine|F|Daughter|||9|9011 +3000|TX|Hidalgo County|Pharr city|1701|0|7|Gould|Griselda|2995|Mississippi|F|Daughter|||5|9012 +3000|TX|Hidalgo County|Pharr city|1701|0|8|Gould|Muoi|2997|Wisconsin|F|Daughter|||3|9013 + +3000|NC|Robeson County|Shannon CDP|1702|0|1|Madsen|Landon|2955|Tennessee|M|Head|||45|9014 +3000|NC|Robeson County|Shannon CDP|1702|0|2|Madsen|Paula Tabetha|2974|Hawaii|F|Spouse|||26|9015 +3000|NC|Robeson County|Shannon CDP|1702|0|3|Madsen|Yoshiko|2994|Philippines|F|Daughter|||6|9016 +3000|NC|Robeson County|Shannon CDP|1702|0|4|Madsen|Brandy|2996|North Carolina|F|Daughter|||4|9017 +3000|NC|Robeson County|Shannon CDP|1702|0|5|Madsen|Riva|2998|New Jersey|F|Daughter|||2|9018 + +3000|MI|Schoolcraft County|Hiawatha township|1703|0|1|Osberg|Mellisa|2952|Poland|F|Head|||48|9019 +3000|MI|Schoolcraft County|Hiawatha township|1703|0|2|Osberg|Tatum Syble|2984|Colorado|F|Daughter|||16|9020 +3000|MI|Schoolcraft County|Hiawatha township|1703|0|3|Osberg|Ashton|2988|Missouri|F|Daughter|||12|9021 +3000|MI|Schoolcraft County|Hiawatha township|1703|0|4|Osberg|Brad|2990|Kansas|M|Son|||10|9022 +3000|MI|Schoolcraft County|Hiawatha township|1703|0|5|Osberg|Jazmine|2998|Wisconsin|F|Daughter|||2|9023 + +3000|NY|St. Lawrence County|Hermon village|1704|0|1|Birts|Jarod Cedrick|2937|Delaware|M|Head|||63|9024 +3000|NY|St. Lawrence County|Hermon village|1704|0|2|Birts|Sanda|2974|Georgia|F|Daughter|||26|9025 +3000|NY|St. Lawrence County|Hermon village|1704|0|3|Birts|Teresa|2986|Virginia|F|Daughter|||14|9026 +3000|NY|St. Lawrence County|Hermon village|1704|0|4|Birts|German|2990|Kentucky|M|Son|||10|9027 +3000|NY|St. Lawrence County|Hermon village|1704|0|5|Birts|Johnetta Tristan|2994|New Hampshire|F|Daughter|||6|9028 + +3000|NC|Craven County|River Bend town|1705|0|1|Baransky|Lyle Jerrell|2979|Washington|M|Head|||21|9029 +3000|NC|Craven County|River Bend town|1705|0|2|Baransky|Juli|2975|Virginia|F|Spouse|||25|9030 +3000|NC|Craven County|River Bend town|1705|0|3|Baransky|Jeromy|2995|Slovakia|M|Son|||5|9031 +3000|NC|Craven County|River Bend town|1705|0|4|Baransky|Young|2997|New Mexico|F|Daughter|||3|9032 + +3000|KS|Jefferson County|Perry city|1706|0|1|Grauel|Emory Kory|2975|Maine|M|Head|||25|9033 +3000|KS|Jefferson County|Perry city|1706|0|2|Grauel|Katerine|2980|Nebraska|F|Spouse|||20|9034 +3000|KS|Jefferson County|Perry city|1706|0|3|Grauel|Hans|3000|Denmark|M|Son|||0|9035 + +3000|KY|Jessamine County|Wilmore city|1707|0|1|Willenbrock|Chase Alonzo|2944|Belize|M|Head|||56|9036 +3000|KY|Jessamine County|Wilmore city|1707|0|2|Willenbrock|Cortney|2965|Arizona|F|Spouse|||35|9037 +3000|KY|Jessamine County|Wilmore city|1707|0|3|Willenbrock|Dania|2985|Colombia|F|Daughter|||15|9038 +3000|KY|Jessamine County|Wilmore city|1707|0|4|Willenbrock|Colby|2987|Oregon|M|Son|||13|9039 +3000|KY|Jessamine County|Wilmore city|1707|0|5|Willenbrock|Marvin|2989|Tennessee|M|Son|||11|9040 +3000|KY|Jessamine County|Wilmore city|1707|0|6|Willenbrock|Damaris|2993|Texas|F|Daughter|||7|9041 +3000|KY|Jessamine County|Wilmore city|1707|0|7|Willenbrock|Bernardo Tim|2995|South Carolina|M|Son|||5|9042 + +3000|NM|Grant County|Cobre CDP|1708|0|1|Morrison|Sheldon Felix|2938|Mayotte|M|Head|||62|9043 +3000|NM|Grant County|Cobre CDP|1708|0|2|Morrison|Jacqualine|2955|South Carolina|F|Spouse|||45|9044 +3000|NM|Grant County|Cobre CDP|1708|0|3|Morrison|Jeneva|2985|Washington|F|Daughter|||15|9045 +3000|NM|Grant County|Cobre CDP|1708|0|4|Morrison|Chung|2987|Massachusetts|M|Son|||13|9046 +3000|NM|Grant County|Cobre CDP|1708|0|5|Morrison|Delmer|2991|Belarus|M|Son|||9|9047 +3000|NM|Grant County|Cobre CDP|1708|0|6|Morrison|Spencer|2993|Illinois|M|Son|||7|9048 +3000|NM|Grant County|Cobre CDP|1708|0|7|Morrison|Lanita|2995|New Jersey|F|Daughter|||5|9049 +3000|NM|Grant County|Cobre CDP|1708|0|8|Morrison|Cleveland|2999|New York|M|Son|||1|9050 + +3000|OR|Jackson County|White City CDP|1709|0|1|Courtemanche|Marlin Wilford|2974|Kansas|M|Head|||26|9051 +3000|OR|Jackson County|White City CDP|1709|0|2|Courtemanche|Kandace|2974|Rhode Island|F|Spouse|||26|9052 +3000|OR|Jackson County|White City CDP|1709|0|3|Courtemanche|Walter|2994|Oregon|F|Daughter|||6|9053 +3000|OR|Jackson County|White City CDP|1709|0|4|Courtemanche|Odilia|2998|Louisiana|F|Daughter|||2|9054 +3000|OR|Jackson County|White City CDP|1709|0|5|Courtemanche|Keli|3000|Kansas|F|Daughter|||0|9055 + +3000|NY|Oneida County|New Hartford village|1710|0|1|Hose|Joey|2952|Gabon|M|Head|||48|9056 +3000|NY|Oneida County|New Hartford village|1710|0|2|Hose|Tammi|2962|New Jersey|F|Spouse|||38|9057 +3000|NY|Oneida County|New Hartford village|1710|0|3|Hose|Xuan|2982|Wyoming|F|Daughter|||18|9058 +3000|NY|Oneida County|New Hartford village|1710|0|4|Hose|Maple|2986|Kenya|F|Daughter|||14|9059 +3000|NY|Oneida County|New Hartford village|1710|0|5|Hose|Breann|2990|West Virginia|F|Daughter|||10|9060 +3000|NY|Oneida County|New Hartford village|1710|0|6|Hose|Ted|2992|Utah|M|Son|||8|9061 +3000|NY|Oneida County|New Hartford village|1710|0|7|Hose|Micah|2998|Connecticut|M|Son|||2|9062 + +3000|WI|Waupaca County|Lebanon town|1711|0|1|Harvey|Matthew Robbie|2955|Tennessee|M|Head|||45|9063 +3000|WI|Waupaca County|Lebanon town|1711|0|2|Harvey|Lincoln|2986|Hawaii|M|Son|||14|9064 +3000|WI|Waupaca County|Lebanon town|1711|0|3|Harvey|Malcom|2988|New York|M|Son|||12|9065 +3000|WI|Waupaca County|Lebanon town|1711|0|4|Harvey|Benny|2992|Indiana|M|Son|||8|9066 +3000|WI|Waupaca County|Lebanon town|1711|0|5|Harvey|Bryce|2994|Guinea-bissau|M|Son|||6|9067 +3000|WI|Waupaca County|Lebanon town|1711|0|6|Harvey|Robert|2996|Cuba|M|Son|||4|9068 + +3000|IA|Wapello County|Agency city|1712|0|1|Roberts|Eloy Johnnie|2938|Alabama|M|Head|||62|9069 +3000|IA|Wapello County|Agency city|1712|0|2|Roberts|Casey|2984|Indiana|M|Son|||16|9070 +3000|IA|Wapello County|Agency city|1712|0|3|Roberts|Luna|2986|Vermont|F|Daughter|||14|9071 +3000|IA|Wapello County|Agency city|1712|0|4|Roberts|Garry|2994|Kentucky|M|Son|||6|9072 +3000|IA|Wapello County|Agency city|1712|0|5|Roberts|Edgardo|2998|Connecticut|M|Son|||2|9073 +3000|IA|Wapello County|Agency city|1712|0|6|Roberts|Ying|3000|Arkansas|F|Daughter|||0|9074 + +3000|PA|Potter County|Harrison township|1713|0|1|Alsandor|Keena|2964|Kansas|F|Head|||36|9075 +3000|PA|Potter County|Harrison township|1713|0|2|Alsandor|Monte|2986|Florida|M|Son|||14|9076 +3000|PA|Potter County|Harrison township|1713|0|3|Alsandor|Roderick|2988|Lebanon|M|Son|||12|9077 +3000|PA|Potter County|Harrison township|1713|0|4|Alsandor|Dawna|2994|Louisiana|F|Daughter|||6|9078 + +3000|MN|Douglas County|Osakis township|1714|0|1|Smart|Herb Carlos|2970|Alabama|M|Head|||30|9079 +3000|MN|Douglas County|Osakis township|1714|0|2|Smart|Jude|2984|Wyoming|F|Spouse|||16|9080 + +3000|TX|Callahan County|Putnam town|1715|0|1|Williams|Kip Neal|2945|Macau|M|Head|||55|9081 +3000|TX|Callahan County|Putnam town|1715|0|2|Williams|Eugenia Fermina|2966|Utah|F|Spouse|||34|9082 +3000|TX|Callahan County|Putnam town|1715|0|3|Williams|Tammie|2988|New Mexico|F|Daughter|||12|9083 +3000|TX|Callahan County|Putnam town|1715|0|4|Williams|Sidney|2990|South Carolina|M|Son|||10|9084 + +3000|AR|Boone County|South Lead Hill town|1716|0|1|Hilgert|Demarcus Mauro|2953|Oklahoma|M|Head|||47|9085 +3000|AR|Boone County|South Lead Hill town|1716|0|2|Hilgert|Clyde|2977|California|F|Spouse|||23|9086 +3000|AR|Boone County|South Lead Hill town|1716|0|3|Hilgert|Christen|2997|Illinois|F|Daughter|||3|9087 +3000|AR|Boone County|South Lead Hill town|1716|0|4|Hilgert|Candida|2999|North Dakota|F|Daughter|||1|9088 + +3000|AZ|Apache County|Klagetoh CDP|1717|0|1|Kibble|Britt Damien|2954|Mali|M|Head|||46|9089 +3000|AZ|Apache County|Klagetoh CDP|1717|0|2|Kibble|Frederic|2986|Oklahoma|M|Son|||14|9090 +3000|AZ|Apache County|Klagetoh CDP|1717|0|3|Kibble|Guadalupe Karl|2988|Switzerland|M|Son|||12|9091 +3000|AZ|Apache County|Klagetoh CDP|1717|0|4|Kibble|Derek|2990|Vermont|M|Son|||10|9092 +3000|AZ|Apache County|Klagetoh CDP|1717|0|5|Kibble|Marilou|2994|Oklahoma|F|Daughter|||6|9093 +3000|AZ|Apache County|Klagetoh CDP|1717|0|6|Kibble|Edyth|2996|Utah|F|Daughter|||4|9094 +3000|AZ|Apache County|Klagetoh CDP|1717|0|7|Kibble|Elmer Ross|3000|Georgia|M|Son|||0|9095 + +3000|IN|Johnson County|Trafalgar town|1718|0|1|Voncannon|Dennis Hilton|2942|New Jersey|M|Head|||58|9096 +3000|IN|Johnson County|Trafalgar town|1718|0|2|Voncannon|Kamala|2954|Colorado|F|Spouse|||46|9097 +3000|IN|Johnson County|Trafalgar town|1718|0|3|Voncannon|Al Lauren|2986|South Dakota|M|Son|||14|9098 +3000|IN|Johnson County|Trafalgar town|1718|0|4|Voncannon|Jefferey|2988|Illinois|M|Son|||12|9099 +3000|IN|Johnson County|Trafalgar town|1718|0|5|Voncannon|Jacinto|3000|West Virginia|M|Son|||0|9100 + +3000|IL|Williamson County|Colp village|1719|0|1|Thomas|Joey Raymond|2967|New Mexico|M|Head|||33|9101 +3000|IL|Williamson County|Colp village|1719|0|2|Thomas|Oliver|2986|Nevada|M|Son|||14|9102 +3000|IL|Williamson County|Colp village|1719|0|3|Thomas|Jared|2988|Philippines|M|Son|||12|9103 +3000|IL|Williamson County|Colp village|1719|0|4|Thomas|Dante|2990|Virgin Islands, U.s.|M|Son|||10|9104 +3000|IL|Williamson County|Colp village|1719|0|5|Thomas|Flossie|2992|West Virginia|F|Daughter|||8|9105 +3000|IL|Williamson County|Colp village|1719|0|6|Thomas|Isaiah|2994|Iran, Islamic Republic Of|M|Son|||6|9106 +3000|IL|Williamson County|Colp village|1719|0|7|Thomas|Ray|2996|Vanuatu|F|Daughter|||4|9107 + +3000|OK|Cleveland County|Noble city|1720|0|1|Lagroon|Patricia Willard|2958|Vermont|M|Head|||42|9108 +3000|OK|Cleveland County|Noble city|1720|0|2|Lagroon|Irvin|2992|South Dakota|M|Son|||8|9109 +3000|OK|Cleveland County|Noble city|1720|0|3|Lagroon|Luigi|2994|West Virginia|M|Son|||6|9110 +3000|OK|Cleveland County|Noble city|1720|0|4|Lagroon|Scot|2996|Sudan|M|Son|||4|9111 +3000|OK|Cleveland County|Noble city|1720|0|5|Lagroon|Tiffiny Cinderella|2998|Kansas|F|Daughter|||2|9112 + +3000|CT|Fairfield County|Greenwich town|1721|0|1|Pagan|Omar Millard|2964|Ohio|M|Head|||36|9113 +3000|CT|Fairfield County|Greenwich town|1721|0|2|Pagan|Echo|2962|Arkansas|F|Spouse|||38|9114 +3000|CT|Fairfield County|Greenwich town|1721|0|3|Pagan|Etha Enedina|2982|Michigan|F|Daughter|||18|9115 +3000|CT|Fairfield County|Greenwich town|1721|0|4|Pagan|Elenora|2986|West Virginia|F|Daughter|||14|9116 +3000|CT|Fairfield County|Greenwich town|1721|0|5|Pagan|Roy|2988|Cape Verde|M|Son|||12|9117 +3000|CT|Fairfield County|Greenwich town|1721|0|6|Pagan|Robby|2994|Rhode Island|M|Son|||6|9118 +3000|CT|Fairfield County|Greenwich town|1721|0|7|Pagan|Annamae Marge|3000|Wyoming|F|Daughter|||0|9119 + +3000|MO|Jackson County|Buckner city|1722|0|1|Hutto|Cordell Sal|2957|Utah|M|Head|||43|9120 +3000|MO|Jackson County|Buckner city|1722|0|2|Hutto|Tierra|2979|Nevada|F|Spouse|||21|9121 + +3000|FL|Broward County|Dania Beach city|1723|0|1|Bibbs|Val Danilo|2971|Fiji|M|Head|||29|9122 +3000|FL|Broward County|Dania Beach city|1723|0|2|Bibbs|Marilyn|2980|Delaware|F|Spouse|||20|9123 + +3000|OK|Jefferson County|Terral town|1724|0|1|Southerland|Kerry Jack|2960|Massachusetts|M|Head|||40|9124 +3000|OK|Jefferson County|Terral town|1724|0|2|Southerland|Shavonda|2959|Virginia|F|Spouse|||41|9125 +3000|OK|Jefferson County|Terral town|1724|0|3|Southerland|Marisa|2985|Arkansas|F|Daughter|||15|9126 +3000|OK|Jefferson County|Terral town|1724|0|4|Southerland|Daryl|2987|Massachusetts|F|Daughter|||13|9127 +3000|OK|Jefferson County|Terral town|1724|0|5|Southerland|Son|2989|Panama|F|Daughter|||11|9128 +3000|OK|Jefferson County|Terral town|1724|0|6|Southerland|Clora Lakenya|2993|Nebraska|F|Daughter|||7|9129 +3000|OK|Jefferson County|Terral town|1724|0|7|Southerland|Randy|2995|Swaziland|M|Son|||5|9130 +3000|OK|Jefferson County|Terral town|1724|0|8|Southerland|Arie|2999|Louisiana|F|Daughter|||1|9131 + +3000|MI|Ionia County|Portland city|1725|0|1|Schabbing|Terrell Brett|2955|Alabama|M|Head|||45|9132 +3000|MI|Ionia County|Portland city|1725|0|2|Schabbing|Lewis Cassondra|2968|South Africa|F|Spouse|||32|9133 +3000|MI|Ionia County|Portland city|1725|0|3|Schabbing|Earnest|2988|Massachusetts|M|Son|||12|9134 +3000|MI|Ionia County|Portland city|1725|0|4|Schabbing|Peter|2992|Belize|M|Son|||8|9135 +3000|MI|Ionia County|Portland city|1725|0|5|Schabbing|Jess|2996|Massachusetts|M|Son|||4|9136 +3000|MI|Ionia County|Portland city|1725|0|6|Schabbing|Felicitas Alayna|3000|Romania|F|Daughter|||0|9137 + +3000|NY|Oneida County|New Hartford town|1726|0|1|Swanson|Fausto Gerard|2957|Arkansas|M|Head|||43|9138 +3000|NY|Oneida County|New Hartford town|1726|0|2|Swanson|Linnie|2978|Alabama|F|Spouse|||22|9139 +3000|NY|Oneida County|New Hartford town|1726|0|3|Swanson|Alden|3000|Missouri|M|Son|||0|9140 + +3000|WA|Whitman County|St. John town|1727|0|1|Brown|Edgar Malcom|2942|Pennsylvania|M|Head|||58|9141 +3000|WA|Whitman County|St. John town|1727|0|2|Brown|Annamaria|2944|Anguilla|F|Spouse|||56|9142 +3000|WA|Whitman County|St. John town|1727|0|3|Brown|Eryn|2968|Massachusetts|F|Daughter|||32|9143 +3000|WA|Whitman County|St. John town|1727|0|4|Brown|Sang|2976|Washington|M|Son|||24|9144 +3000|WA|Whitman County|St. John town|1727|0|5|Brown|Nelle|2988|Texas|F|Daughter|||12|9145 +3000|WA|Whitman County|St. John town|1727|0|6|Brown|Alonso|2990|New Hampshire|M|Son|||10|9146 +3000|WA|Whitman County|St. John town|1727|0|7|Brown|Claud|2992|Washington|M|Son|||8|9147 +3000|WA|Whitman County|St. John town|1727|0|8|Brown|Shaun Suzann|2994|Florida|F|Daughter|||6|9148 +3000|WA|Whitman County|St. John town|1727|0|9|Brown|Christina Edelmira|2998|North Carolina|F|Daughter|||2|9149 + +3000|PA|Adams County|Midway CDP|1728|0|1|Suryanarayana|Granville Hai|2966|Colorado|M|Head|||34|9150 +3000|PA|Adams County|Midway CDP|1728|0|2|Suryanarayana|Karri|2972|Hawaii|F|Spouse|||28|9151 +3000|PA|Adams County|Midway CDP|1728|0|3|Suryanarayana|Renna|2992|Maine|F|Daughter|||8|9152 +3000|PA|Adams County|Midway CDP|1728|0|4|Suryanarayana|Serina|2998|Arizona|F|Daughter|||2|9153 +3000|PA|Adams County|Midway CDP|1728|0|5|Suryanarayana|Blaine|3000|Iowa|M|Son|||0|9154 + +3000|OR|Jackson County|Eagle Point city|1729|0|1|Schwindt|Geri|2964|Maine|F|Head|||36|9155 +3000|OR|Jackson County|Eagle Point city|1729|0|2|Schwindt|Kurtis|2988|China|M|Son|||12|9156 +3000|OR|Jackson County|Eagle Point city|1729|0|3|Schwindt|Flossie|2990|Ohio|F|Daughter|||10|9157 +3000|OR|Jackson County|Eagle Point city|1729|0|4|Schwindt|Tod|2996|Oklahoma|M|Son|||4|9158 +3000|OR|Jackson County|Eagle Point city|1729|0|5|Schwindt|Audry|2998|Wyoming|F|Daughter|||2|9159 +3000|OR|Jackson County|Eagle Point city|1729|0|6|Schwindt|Jayna|3000|Arizona|F|Daughter|||0|9160 + +3000|OH|Williams County|Montpelier village|1730|0|1|Faggins|Josh Jerold|2946|Wisconsin|M|Head|||54|9161 +3000|OH|Williams County|Montpelier village|1730|0|2|Faggins|Hiram|2993|Delaware|M|Son|||7|9162 + +3000|FL|Orange County|Maitland city|1731|0|1|Jagow|Harvey Augustus|2977|Illinois|M|Head|||23|9163 + +3000|TX|Hall County|Estelline town|1732|0|1|Illas|Wallace Vernon|2976|North Dakota|M|Head|||24|9164 +3000|TX|Hall County|Estelline town|1732|0|2|Illas|Madelene|2999|Virginia|F|Daughter|||1|9165 + +3000|NM|Rio Arriba County|Chamita CDP|1733|0|1|Dimitry|Mikel Kendrick|2958|Oregon|M|Head|||42|9166 +3000|NM|Rio Arriba County|Chamita CDP|1733|0|2|Dimitry|Tequila Stacie|2974|Delaware|F|Daughter|||26|9167 +3000|NM|Rio Arriba County|Chamita CDP|1733|0|3|Dimitry|Georgie|2986|Ohio|F|Daughter|||14|9168 +3000|NM|Rio Arriba County|Chamita CDP|1733|0|4|Dimitry|Jed|2992|Minnesota|M|Son|||8|9169 +3000|NM|Rio Arriba County|Chamita CDP|1733|0|5|Dimitry|Angeline|3000|Mississippi|F|Daughter|||0|9170 + +3000|AZ|Apache County|Toyei CDP|1734|0|1|Mccrary|Forrest Hans|2937|Hawaii|M|Head|||63|9171 +3000|AZ|Apache County|Toyei CDP|1734|0|2|Mccrary|Hanh|2955|South Dakota|F|Spouse|||45|9172 +3000|AZ|Apache County|Toyei CDP|1734|0|3|Mccrary|Mavis|2985|Hawaii|F|Daughter|||15|9173 +3000|AZ|Apache County|Toyei CDP|1734|0|4|Mccrary|Melisa|2989|North Dakota|F|Daughter|||11|9174 +3000|AZ|Apache County|Toyei CDP|1734|0|5|Mccrary|Timothy|2991|Alaska|F|Daughter|||9|9175 +3000|AZ|Apache County|Toyei CDP|1734|0|6|Mccrary|Bobbye|2997|Ohio|F|Daughter|||3|9176 +3000|AZ|Apache County|Toyei CDP|1734|0|7|Mccrary|Marybelle|2999|Nebraska|F|Daughter|||1|9177 + +3000|IL|Lake County|Long Grove village|1735|0|1|Carbone|Bret Cruz|2943|Chile|M|Head|||57|9178 +3000|IL|Lake County|Long Grove village|1735|0|2|Carbone|Shenika|2945|Togo|F|Spouse|||55|9179 +3000|IL|Lake County|Long Grove village|1735|0|3|Carbone|Jacquline Cassidy|2967|Kansas|F|Daughter|||33|9180 +3000|IL|Lake County|Long Grove village|1735|0|4|Carbone|Thomas|2975|Massachusetts|F|Daughter|||25|9181 +3000|IL|Lake County|Long Grove village|1735|0|5|Carbone|Jess|2979|Alabama|M|Son|||21|9182 +3000|IL|Lake County|Long Grove village|1735|0|6|Carbone|Elisa|2981|Connecticut|F|Daughter|||19|9183 +3000|IL|Lake County|Long Grove village|1735|0|7|Carbone|Johnnie|2985|Kosovo|F|Daughter|||15|9184 +3000|IL|Lake County|Long Grove village|1735|0|8|Carbone|Willow|2991|Kansas|F|Daughter|||9|9185 +3000|IL|Lake County|Long Grove village|1735|0|9|Carbone|Jarvis Alan|2993|Massachusetts|M|Son|||7|9186 + +3000|PA|Allegheny County|East Pittsburgh borough|1736|0|1|Gebbie|Young Edgardo|2959|North Carolina|M|Head|||41|9187 +3000|PA|Allegheny County|East Pittsburgh borough|1736|0|2|Gebbie|Debra|2999|Pennsylvania|F|Daughter|||1|9188 + +3000|OR|Columbia County|Deer Island CDP|1737|0|1|Guerrette|Angelika|2941|Afghanistan|F|Head|||59|9189 +3000|OR|Columbia County|Deer Island CDP|1737|0|2|Guerrette|Erik Moshe|2963|Nevada|M|Son|||37|9190 +3000|OR|Columbia County|Deer Island CDP|1737|0|3|Guerrette|Felecia|2967|New Jersey|F|Daughter|||33|9191 +3000|OR|Columbia County|Deer Island CDP|1737|0|4|Guerrette|Santiago|2973|Montenegro|M|Son|||27|9192 +3000|OR|Columbia County|Deer Island CDP|1737|0|5|Guerrette|Matilde Shantay|2981|Greece|F|Daughter|||19|9193 +3000|OR|Columbia County|Deer Island CDP|1737|0|6|Guerrette|Grace Izola|2987|West Virginia|F|Daughter|||13|9194 +3000|OR|Columbia County|Deer Island CDP|1737|0|7|Guerrette|Mallory Jodi|2997|Maryland|F|Daughter|||3|9195 + +3000|TX|Brazoria County|Manvel city|1738|0|1|Straseskie|Dewey Gavin|2957|Indiana|M|Head|||43|9196 +3000|TX|Brazoria County|Manvel city|1738|0|2|Straseskie|Betty|2966|Illinois|F|Spouse|||34|9197 +3000|TX|Brazoria County|Manvel city|1738|0|3|Straseskie|Allan|2986|Maryland|M|Son|||14|9198 +3000|TX|Brazoria County|Manvel city|1738|0|4|Straseskie|Jamie|2988|New York|F|Daughter|||12|9199 +3000|TX|Brazoria County|Manvel city|1738|0|5|Straseskie|Treva Dominique|2998|Kiribati|F|Daughter|||2|9200 +3000|TX|Brazoria County|Manvel city|1738|0|6|Straseskie|Un|3000|Arizona|F|Daughter|||0|9201 + +3000|MS|Hinds County|Utica town|1739|0|1|Taylor|Gene Antwan|2971|Sweden|M|Head|||29|9202 +3000|MS|Hinds County|Utica town|1739|0|2|Taylor|Doria Meredith|2970|Texas|F|Spouse|||30|9203 +3000|MS|Hinds County|Utica town|1739|0|3|Taylor|Olinda|2990|Florida|F|Daughter|||10|9204 +3000|MS|Hinds County|Utica town|1739|0|4|Taylor|James|2992|Louisiana|M|Son|||8|9205 +3000|MS|Hinds County|Utica town|1739|0|5|Taylor|Helena Dione|2994|Louisiana|F|Daughter|||6|9206 +3000|MS|Hinds County|Utica town|1739|0|6|Taylor|Nicolle|2996|Utah|F|Daughter|||4|9207 + +3000|MS|Montgomery County|Winona city|1740|0|1|West|Myron Antonia|2938|Maine|M|Head|||62|9208 +3000|MS|Montgomery County|Winona city|1740|0|2|West|Reynalda|2938|Michigan|F|Spouse|||62|9209 +3000|MS|Montgomery County|Winona city|1740|0|3|West|Sidney Wilmer|2960|New Hampshire|M|Son|||40|9210 +3000|MS|Montgomery County|Winona city|1740|0|4|West|Emile|2962|Delaware|M|Son|||38|9211 +3000|MS|Montgomery County|Winona city|1740|0|5|West|Donald Irving|2982|Iowa|M|Son|||18|9212 +3000|MS|Montgomery County|Winona city|1740|0|6|West|Huong|2994|Florida|F|Daughter|||6|9213 +3000|MS|Montgomery County|Winona city|1740|0|7|West|Doug|2998|Wisconsin|M|Son|||2|9214 +3000|MS|Montgomery County|Winona city|1740|0|8|West|Retta|3000|Wisconsin|F|Daughter|||0|9215 + +3000|IL|Macoupin County|Palmyra village|1741|0|1|Moreno|Granville Marlon|2953|Colorado|M|Head|||47|9216 +3000|IL|Macoupin County|Palmyra village|1741|0|2|Moreno|Socorro|2972|Idaho|F|Spouse|||28|9217 +3000|IL|Macoupin County|Palmyra village|1741|0|3|Moreno|Angelita|2992|Pennsylvania|F|Daughter|||8|9218 +3000|IL|Macoupin County|Palmyra village|1741|0|4|Moreno|Matthew|2998|Maryland|F|Daughter|||2|9219 + +3000|GA|Lamar County|Milner city|1742|0|1|Alsheimer|Shad Gary|2956|Florida|M|Head|||44|9220 +3000|GA|Lamar County|Milner city|1742|0|2|Alsheimer|Kyong|2967|China|F|Spouse|||33|9221 +3000|GA|Lamar County|Milner city|1742|0|3|Alsheimer|Conchita|2987|Pennsylvania|F|Daughter|||13|9222 +3000|GA|Lamar County|Milner city|1742|0|4|Alsheimer|Makeda|2993|Arkansas|F|Daughter|||7|9223 +3000|GA|Lamar County|Milner city|1742|0|5|Alsheimer|Martin|2995|Greece|M|Son|||5|9224 + +3000|PA|Indiana County|Armstrong township|1743|0|1|Mckellop|Vicente Willie|2971|Florida|M|Head|||29|9225 +3000|PA|Indiana County|Armstrong township|1743|0|2|Mckellop|Dan|2991|Indiana|M|Son|||9|9226 +3000|PA|Indiana County|Armstrong township|1743|0|3|Mckellop|Alexandra|2993|Maine|F|Daughter|||7|9227 +3000|PA|Indiana County|Armstrong township|1743|0|4|Mckellop|Pilar|2995|Indiana|F|Daughter|||5|9228 +3000|PA|Indiana County|Armstrong township|1743|0|5|Mckellop|Lakeesha|2997|Anguilla|F|Daughter|||3|9229 + +3000|WI|Waukesha County|Waukesha town|1744|0|1|Kelm|Nolan|2947|Massachusetts|M|Head|||53|9230 +3000|WI|Waukesha County|Waukesha town|1744|0|2|Kelm|Nyla|2944|Botswana|F|Spouse|||56|9231 +3000|WI|Waukesha County|Waukesha town|1744|0|3|Kelm|Dorian Eulah|2970|Missouri|F|Daughter|||30|9232 +3000|WI|Waukesha County|Waukesha town|1744|0|4|Kelm|Laura|2988|Utah|F|Daughter|||12|9233 +3000|WI|Waukesha County|Waukesha town|1744|0|5|Kelm|Freddie|2990|Ohio|M|Son|||10|9234 +3000|WI|Waukesha County|Waukesha town|1744|0|6|Kelm|Alethia|2992|Vermont|F|Daughter|||8|9235 +3000|WI|Waukesha County|Waukesha town|1744|0|7|Kelm|Audrie|2996|Maine|F|Daughter|||4|9236 + +3000|MS|Tippah County|Walnut town|1745|0|1|Fiotodimitrak|Alphonse Angelo|2941|Indiana|M|Head|||59|9237 +3000|MS|Tippah County|Walnut town|1745|0|2|Fiotodimitrak|Vernita|2962|Oregon|F|Spouse|||38|9238 +3000|MS|Tippah County|Walnut town|1745|0|3|Fiotodimitrak|Darron|2988|Oklahoma|M|Son|||12|9239 +3000|MS|Tippah County|Walnut town|1745|0|4|Fiotodimitrak|Dean|2990|New Jersey|M|Son|||10|9240 +3000|MS|Tippah County|Walnut town|1745|0|5|Fiotodimitrak|Emory|2992|West Virginia|M|Son|||8|9241 +3000|MS|Tippah County|Walnut town|1745|0|6|Fiotodimitrak|Willian|2996|Kansas|M|Son|||4|9242 + +3000|MO|Daviess County|Altamont village|1746|0|1|Massey|Alejandro Major|2962|Mississippi|M|Head|||38|9243 +3000|MO|Daviess County|Altamont village|1746|0|2|Massey|Myrta|2972|Georgia|F|Spouse|||28|9244 +3000|MO|Daviess County|Altamont village|1746|0|3|Massey|Tawanna|2994|Vermont|F|Daughter|||6|9245 +3000|MO|Daviess County|Altamont village|1746|0|4|Massey|Earle|3000|Wisconsin|M|Son|||0|9246 + +3000|PA|Somerset County|Windber borough|1747|0|1|Miles|Pierre Terrence|2967|Arizona|M|Head|||33|9247 +3000|PA|Somerset County|Windber borough|1747|0|2|Miles|Temika Mammie|2970|Arizona|F|Spouse|||30|9248 +3000|PA|Somerset County|Windber borough|1747|0|3|Miles|Abraham Lou|2990|New Mexico|M|Son|||10|9249 +3000|PA|Somerset County|Windber borough|1747|0|4|Miles|Darin|2994|Louisiana|M|Son|||6|9250 +3000|PA|Somerset County|Windber borough|1747|0|5|Miles|Johnnie|2996|Afghanistan|M|Son|||4|9251 +3000|PA|Somerset County|Windber borough|1747|0|6|Miles|Sang|3000|Arkansas|F|Daughter|||0|9252 + +3000|PA|Delaware County|Ridley township|1748|0|1|Auch|Jared Chang|2951|North Dakota|M|Head|||49|9253 +3000|PA|Delaware County|Ridley township|1748|0|2|Auch|Brooks|2998|Delaware|M|Son|||2|9254 +3000|PA|Delaware County|Ridley township|1748|0|3|Auch|Josefina|3000|Maine|F|Daughter|||0|9255 + +3000|KY|McLean County|Calhoun city|1749|0|1|Sermeno|Gonzalo Monroe|2962|Virginia|M|Head|||38|9256 +3000|KY|McLean County|Calhoun city|1749|0|2|Sermeno|Kristi|2981|North Dakota|F|Daughter|||19|9257 +3000|KY|McLean County|Calhoun city|1749|0|3|Sermeno|Stacee|2985|Lao People's Democratic Republic|F|Daughter|||15|9258 +3000|KY|McLean County|Calhoun city|1749|0|4|Sermeno|Kattie|2989|Morocco|F|Daughter|||11|9259 +3000|KY|McLean County|Calhoun city|1749|0|5|Sermeno|Hailey|2991|California|F|Daughter|||9|9260 +3000|KY|McLean County|Calhoun city|1749|0|6|Sermeno|Lizeth|2993|Florida|F|Daughter|||7|9261 +3000|KY|McLean County|Calhoun city|1749|0|7|Sermeno|Isiah|2995|Florida|M|Son|||5|9262 + +3000|RI|Kent County|West Warwick town|1750|0|1|Cuckler|Brooks|2979|Kentucky|M|Head|||21|9263 +3000|RI|Kent County|West Warwick town|1750|0|2|Cuckler|Cecily|2984|Nebraska|F|Spouse|||16|9264 + +3000|NE|Cherry County|Nenzel village|1751|0|1|Gary|Ramiro Zackary|2954|Rhode Island|M|Head|||46|9265 +3000|NE|Cherry County|Nenzel village|1751|0|2|Gary|Lucile|2955|Colorado|F|Spouse|||45|9266 +3000|NE|Cherry County|Nenzel village|1751|0|3|Gary|Ulrike|2981|Michigan|F|Daughter|||19|9267 +3000|NE|Cherry County|Nenzel village|1751|0|4|Gary|Rosendo|2983|North Carolina|M|Son|||17|9268 +3000|NE|Cherry County|Nenzel village|1751|0|5|Gary|Gladis|2987|Maine|F|Daughter|||13|9269 +3000|NE|Cherry County|Nenzel village|1751|0|6|Gary|Frederic Chance|2991|Wisconsin|M|Son|||9|9270 +3000|NE|Cherry County|Nenzel village|1751|0|7|Gary|Benita|2995|Alaska|F|Daughter|||5|9271 + +3000|WI|Polk County|Frederic village|1752|0|1|Lusk|Jerald Eusebio|2953|Connecticut|M|Head|||47|9272 +3000|WI|Polk County|Frederic village|1752|0|2|Lusk|Doreatha|2952|Russian Federation|F|Spouse|||48|9273 +3000|WI|Polk County|Frederic village|1752|0|3|Lusk|Allen|2972|Alaska|M|Son|||28|9274 +3000|WI|Polk County|Frederic village|1752|0|4|Lusk|Erick|2980|Michigan|M|Son|||20|9275 +3000|WI|Polk County|Frederic village|1752|0|5|Lusk|Felipe Glenn|2986|Ohio|M|Son|||14|9276 +3000|WI|Polk County|Frederic village|1752|0|6|Lusk|Darnell|2990|Colorado|M|Son|||10|9277 +3000|WI|Polk County|Frederic village|1752|0|7|Lusk|Florinda|2994|California|F|Daughter|||6|9278 +3000|WI|Polk County|Frederic village|1752|0|8|Lusk|Jc|2998|Holy See (vatican City State)|M|Son|||2|9279 + +3000|PA|Clinton County|South Renovo borough|1753|0|1|Krumbach|Floyd Dorsey|2956|Western Sahara|M|Head|||44|9280 +3000|PA|Clinton County|South Renovo borough|1753|0|2|Krumbach|Vella Vania|2971|Nevada|F|Spouse|||29|9281 +3000|PA|Clinton County|South Renovo borough|1753|0|3|Krumbach|Quinn|2991|Utah|F|Daughter|||9|9282 + +3000|ME|Hancock County|Marshall Island UT|1754|0|1|Maiava|Noriko|2955|Kansas|F|Head|||45|9283 +3000|ME|Hancock County|Marshall Island UT|1754|0|2|Maiava|Anthony|2975|Alaska|M|Son|||25|9284 +3000|ME|Hancock County|Marshall Island UT|1754|0|3|Maiava|Harland|2977|Wyoming|M|Son|||23|9285 +3000|ME|Hancock County|Marshall Island UT|1754|0|4|Maiava|Gregorio|2983|Louisiana|M|Son|||17|9286 +3000|ME|Hancock County|Marshall Island UT|1754|0|5|Maiava|Shantay|2985|Georgia|F|Daughter|||15|9287 +3000|ME|Hancock County|Marshall Island UT|1754|0|6|Maiava|Harvey|2987|Idaho|M|Son|||13|9288 +3000|ME|Hancock County|Marshall Island UT|1754|0|7|Maiava|Michelle Ailene|2989|Samoa|F|Daughter|||11|9289 +3000|ME|Hancock County|Marshall Island UT|1754|0|8|Maiava|Christian|2993|North Carolina|M|Son|||7|9290 + +3000|NC|Johnston County|Selma town|1755|0|1|Windfield|Arlean|2945|Wisconsin|F|Head|||55|9291 +3000|NC|Johnston County|Selma town|1755|0|2|Windfield|Miguelina|2965|Illinois|F|Daughter|||35|9292 +3000|NC|Johnston County|Selma town|1755|0|3|Windfield|Herman|2967|Mississippi|M|Son|||33|9293 +3000|NC|Johnston County|Selma town|1755|0|4|Windfield|Lashaun|2973|Connecticut|F|Daughter|||27|9294 +3000|NC|Johnston County|Selma town|1755|0|5|Windfield|Christian|2987|Vermont|M|Son|||13|9295 +3000|NC|Johnston County|Selma town|1755|0|6|Windfield|Lacresha Velia|2989|Nevada|F|Daughter|||11|9296 +3000|NC|Johnston County|Selma town|1755|0|7|Windfield|Rhett Christopher|2995|Kansas|M|Son|||5|9297 +3000|NC|Johnston County|Selma town|1755|0|8|Windfield|Jared|2997|Nebraska|M|Son|||3|9298 + +3000|CA|Lassen County|Patton Village CDP|1756|0|1|Wanca|Stefan Mohammed|2953|Netherlands|M|Head|||47|9299 +3000|CA|Lassen County|Patton Village CDP|1756|0|2|Wanca|January|2970|Delaware|F|Spouse|||30|9300 +3000|CA|Lassen County|Patton Village CDP|1756|0|3|Wanca|Jacob|2992|Mexico|M|Son|||8|9301 +3000|CA|Lassen County|Patton Village CDP|1756|0|4|Wanca|Cory|2994|Texas|M|Son|||6|9302 +3000|CA|Lassen County|Patton Village CDP|1756|0|5|Wanca|Kenny|2996|Minnesota|M|Son|||4|9303 +3000|CA|Lassen County|Patton Village CDP|1756|0|6|Wanca|Sherita|2998|South Carolina|F|Daughter|||2|9304 + +3000|OR|Jackson County|Trail CDP|1757|0|1|Chenard|Josef Ernie|2963|Kentucky|M|Head|||37|9305 +3000|OR|Jackson County|Trail CDP|1757|0|2|Chenard|Elizbeth Delia|2972|Montana|F|Spouse|||28|9306 +3000|OR|Jackson County|Trail CDP|1757|0|3|Chenard|Refugio Bernardo|2998|Maryland|M|Son|||2|9307 +3000|OR|Jackson County|Trail CDP|1757|0|4|Chenard|Marcos|3000|Connecticut|M|Son|||0|9308 + +3000|MN|McLeod County|Silver Lake city|1758|0|1|Schaeffer|Fernando Randy|2969|Honduras|M|Head|||31|9309 +3000|MN|McLeod County|Silver Lake city|1758|0|2|Schaeffer|Deirdre|2973|California|F|Spouse|||27|9310 +3000|MN|McLeod County|Silver Lake city|1758|0|3|Schaeffer|Carroll|2995|Maine|F|Daughter|||5|9311 +3000|MN|McLeod County|Silver Lake city|1758|0|4|Schaeffer|Rod|2999|West Virginia|M|Son|||1|9312 + +3000|CA|Plumas County|Twain CDP|1759|0|1|Srey|Archie Wesley|2948|Arkansas|M|Head|||52|9313 +3000|CA|Plumas County|Twain CDP|1759|0|2|Srey|Demetrice|2965|Martinique|F|Spouse|||35|9314 +3000|CA|Plumas County|Twain CDP|1759|0|3|Srey|Jewel Heath|2985|Virginia|M|Son|||15|9315 +3000|CA|Plumas County|Twain CDP|1759|0|4|Srey|Carmelia|2987|Seychelles|F|Daughter|||13|9316 +3000|CA|Plumas County|Twain CDP|1759|0|5|Srey|Odell|2993|Idaho|M|Son|||7|9317 +3000|CA|Plumas County|Twain CDP|1759|0|6|Srey|Joleen|2995|Montana|F|Daughter|||5|9318 +3000|CA|Plumas County|Twain CDP|1759|0|7|Srey|Timmy|2997|Arkansas|M|Son|||3|9319 +3000|CA|Plumas County|Twain CDP|1759|0|8|Srey|Allena|2999|Connecticut|F|Daughter|||1|9320 + +3000|IA|Dickinson County|Okoboji city|1760|0|1|Graffeo|Graig Denis|2957|Nigeria|M|Head|||43|9321 +3000|IA|Dickinson County|Okoboji city|1760|0|2|Graffeo|Lavona|2994|Kansas|F|Daughter|||6|9322 +3000|IA|Dickinson County|Okoboji city|1760|0|3|Graffeo|Clyde|2996|Ohio|F|Daughter|||4|9323 +3000|IA|Dickinson County|Okoboji city|1760|0|4|Graffeo|Derek|3000|Idaho|M|Son|||0|9324 + +3000|NY|Madison County|Hamilton town|1761|0|1|Bodway|Ralph Arlen|2976|Idaho|M|Head|||24|9325 + +3000|ME|Hancock County|Marshall Island UT|1762|0|1|Rupp|Ferdinand Tuan|2942|Idaho|M|Head|||58|9326 +3000|ME|Hancock County|Marshall Island UT|1762|0|2|Rupp|Aleida|2938|New York|F|Spouse|||62|9327 +3000|ME|Hancock County|Marshall Island UT|1762|0|3|Rupp|Rachel|2970|Rhode Island|F|Daughter|||30|9328 +3000|ME|Hancock County|Marshall Island UT|1762|0|4|Rupp|Mandy|2980|Ghana|F|Daughter|||20|9329 +3000|ME|Hancock County|Marshall Island UT|1762|0|5|Rupp|Erasmo Trevor|2986|New Jersey|M|Son|||14|9330 +3000|ME|Hancock County|Marshall Island UT|1762|0|6|Rupp|Ramiro|2988|New Mexico|M|Son|||12|9331 +3000|ME|Hancock County|Marshall Island UT|1762|0|7|Rupp|Forrest|2998|Arizona|M|Son|||2|9332 +3000|ME|Hancock County|Marshall Island UT|1762|0|8|Rupp|Sulema|3000|East Timor|F|Daughter|||0|9333 + +3000|PA|Bedford County|New Paris borough|1763|0|1|Paul|Rene Nelson|2945|Pennsylvania|M|Head|||55|9334 +3000|PA|Bedford County|New Paris borough|1763|0|2|Paul|Drusilla|2980|Lesotho|F|Daughter|||20|9335 +3000|PA|Bedford County|New Paris borough|1763|0|3|Paul|Valentine|2994|Kentucky|M|Son|||6|9336 +3000|PA|Bedford County|New Paris borough|1763|0|4|Paul|Jorge|2996|Massachusetts|M|Son|||4|9337 +3000|PA|Bedford County|New Paris borough|1763|0|5|Paul|Sandy|3000|West Virginia|M|Son|||0|9338 + +3000|PA|Jefferson County|Knox township|1764|0|1|Pelayo|Orval Mason|2964|Panama|M|Head|||36|9339 +3000|PA|Jefferson County|Knox township|1764|0|2|Pelayo|Shasta|2971|Kuwait|F|Spouse|||29|9340 +3000|PA|Jefferson County|Knox township|1764|0|3|Pelayo|Thaddeus|2991|Kansas|M|Son|||9|9341 +3000|PA|Jefferson County|Knox township|1764|0|4|Pelayo|Sharan|2999|Brunei Darussalam|F|Daughter|||1|9342 + +3000|MS|Perry County|New Augusta town|1765|0|1|Goodrich|Ardell|2960|Yemen|F|Head|||40|9343 +3000|MS|Perry County|New Augusta town|1765|0|2|Goodrich|Hipolito|2982|Maryland|M|Son|||18|9344 +3000|MS|Perry County|New Augusta town|1765|0|3|Goodrich|Gwen Britni|2986|Texas|F|Daughter|||14|9345 +3000|MS|Perry County|New Augusta town|1765|0|4|Goodrich|Perry|2992|Cocos (keeling) Islands|M|Son|||8|9346 + +3000|NC|Cumberland County|Eastover town|1766|0|1|Benge|Jessie Alvin|2945|New Mexico|M|Head|||55|9347 +3000|NC|Cumberland County|Eastover town|1766|0|2|Benge|Cory|2948|Vermont|F|Spouse|||52|9348 +3000|NC|Cumberland County|Eastover town|1766|0|3|Benge|Merna|2972|Illinois|F|Daughter|||28|9349 +3000|NC|Cumberland County|Eastover town|1766|0|4|Benge|Erin|2986|Wisconsin|M|Son|||14|9350 +3000|NC|Cumberland County|Eastover town|1766|0|5|Benge|Elmer|2988|Maine|M|Son|||12|9351 +3000|NC|Cumberland County|Eastover town|1766|0|6|Benge|Juan|2992|Wisconsin|M|Son|||8|9352 +3000|NC|Cumberland County|Eastover town|1766|0|7|Benge|Martin|2998|Texas|M|Son|||2|9353 +3000|NC|Cumberland County|Eastover town|1766|0|8|Benge|Marlene|3000|Tuvalu|F|Daughter|||0|9354 + +3000|WV|Logan County|Mitchell Heights town|1767|0|1|Pratcher|Nathan Brent|2957|North Carolina|M|Head|||43|9355 +3000|WV|Logan County|Mitchell Heights town|1767|0|2|Pratcher|Leonia|2959|Comoros|F|Spouse|||41|9356 +3000|WV|Logan County|Mitchell Heights town|1767|0|3|Pratcher|Rolanda Simonne|2987|North Carolina|F|Daughter|||13|9357 +3000|WV|Logan County|Mitchell Heights town|1767|0|4|Pratcher|Haley|2991|New Mexico|F|Daughter|||9|9358 + +3000|MA|Berkshire County|Lee CDP|1768|0|1|Salas|Peter Chase|2940|Saint Lucia|M|Head|||60|9359 +3000|MA|Berkshire County|Lee CDP|1768|0|2|Salas|Dan|2961|Florida|F|Spouse|||39|9360 +3000|MA|Berkshire County|Lee CDP|1768|0|3|Salas|Willy|2981|Iowa|M|Son|||19|9361 +3000|MA|Berkshire County|Lee CDP|1768|0|4|Salas|Marjorie|2985|Colorado|F|Daughter|||15|9362 +3000|MA|Berkshire County|Lee CDP|1768|0|5|Salas|Carlos|2993|Kentucky|M|Son|||7|9363 +3000|MA|Berkshire County|Lee CDP|1768|0|6|Salas|Austin|2995|Moldova, Republic Of|M|Son|||5|9364 + +3000|LA|Tangipahoa Parish|Tickfaw village|1769|0|1|Jenkins|Lionel Shaun|2947|Texas|M|Head|||53|9365 +3000|LA|Tangipahoa Parish|Tickfaw village|1769|0|2|Jenkins|Ariane Mozella|2953|Guinea-bissau|F|Spouse|||47|9366 +3000|LA|Tangipahoa Parish|Tickfaw village|1769|0|3|Jenkins|Randolph Jc|2983|Hong Kong|M|Son|||17|9367 +3000|LA|Tangipahoa Parish|Tickfaw village|1769|0|4|Jenkins|Cyril|2987|California|M|Son|||13|9368 +3000|LA|Tangipahoa Parish|Tickfaw village|1769|0|5|Jenkins|Amira|2989|Florida|F|Daughter|||11|9369 +3000|LA|Tangipahoa Parish|Tickfaw village|1769|0|6|Jenkins|Brandy|2995|Texas|F|Daughter|||5|9370 +3000|LA|Tangipahoa Parish|Tickfaw village|1769|0|7|Jenkins|Lawana Rona|2997|Ohio|F|Daughter|||3|9371 + +3000|FL|Gilchrist County|Trenton city|1770|0|1|Fykes|Alberto Diego|2951|Michigan|M|Head|||49|9372 +3000|FL|Gilchrist County|Trenton city|1770|0|2|Fykes|Emmaline|2960|Heard Island And Mcdonald Islands|F|Spouse|||40|9373 +3000|FL|Gilchrist County|Trenton city|1770|0|3|Fykes|Darrick Rocky|2990|Georgia|M|Son|||10|9374 +3000|FL|Gilchrist County|Trenton city|1770|0|4|Fykes|Myong Hanna|2994|Bahamas|F|Daughter|||6|9375 +3000|FL|Gilchrist County|Trenton city|1770|0|5|Fykes|Zulma|2996|Indiana|F|Daughter|||4|9376 +3000|FL|Gilchrist County|Trenton city|1770|0|6|Fykes|Allena|3000|Indiana|F|Daughter|||0|9377 + +3000|FL|Martin County|Port Salerno CDP|1771|0|1|Berry|Mason Kory|2961|Maryland|M|Head|||39|9378 +3000|FL|Martin County|Port Salerno CDP|1771|0|2|Berry|Cornelia|2974|Missouri|F|Spouse|||26|9379 +3000|FL|Martin County|Port Salerno CDP|1771|0|3|Berry|Jan|2994|Colorado|M|Son|||6|9380 +3000|FL|Martin County|Port Salerno CDP|1771|0|4|Berry|Lanny|2998|Delaware|M|Son|||2|9381 +3000|FL|Martin County|Port Salerno CDP|1771|0|5|Berry|Jennell|3000|Tennessee|F|Daughter|||0|9382 + +3000|IL|Clinton County|Carlyle city|1772|0|1|Smith|Gail|2952|Virginia|M|Head|||48|9383 +3000|IL|Clinton County|Carlyle city|1772|0|2|Smith|Carrol|2967|Georgia|F|Spouse|||33|9384 +3000|IL|Clinton County|Carlyle city|1772|0|3|Smith|Lawana|2987|Nevada|F|Daughter|||13|9385 +3000|IL|Clinton County|Carlyle city|1772|0|4|Smith|Zoraida|2989|North Carolina|F|Daughter|||11|9386 +3000|IL|Clinton County|Carlyle city|1772|0|5|Smith|Babara|2993|West Virginia|F|Daughter|||7|9387 +3000|IL|Clinton County|Carlyle city|1772|0|6|Smith|Tom|2999|Kentucky|M|Son|||1|9388 + +3000|SC|Greenville County|Berea CDP|1773|0|1|Carbajal|Sammy Patricia|2940|Wyoming|M|Head|||60|9389 +3000|SC|Greenville County|Berea CDP|1773|0|2|Carbajal|Pennie|2965|North Dakota|F|Daughter|||35|9390 +3000|SC|Greenville County|Berea CDP|1773|0|3|Carbajal|Jamie Clotilde|2969|Minnesota|F|Daughter|||31|9391 +3000|SC|Greenville County|Berea CDP|1773|0|4|Carbajal|George Efren|2971|Massachusetts|M|Son|||29|9392 +3000|SC|Greenville County|Berea CDP|1773|0|5|Carbajal|Shakira|2973|Iowa|F|Daughter|||27|9393 +3000|SC|Greenville County|Berea CDP|1773|0|6|Carbajal|Vilma|2981|Maryland|F|Daughter|||19|9394 +3000|SC|Greenville County|Berea CDP|1773|0|7|Carbajal|Meagan|2991|Florida|F|Daughter|||9|9395 +3000|SC|Greenville County|Berea CDP|1773|0|8|Carbajal|Chasidy Niki|2997|Minnesota|F|Daughter|||3|9396 +3000|SC|Greenville County|Berea CDP|1773|0|9|Carbajal|Wilbur Lacy|2999|Massachusetts|M|Son|||1|9397 + +3000|SC|Greenwood County|Greenwood city|1774|0|1|Leonor|Britt Ed|2953|Qatar|M|Head|||47|9398 +3000|SC|Greenwood County|Greenwood city|1774|0|2|Leonor|Lorrie|2987|Montana|F|Daughter|||13|9399 +3000|SC|Greenwood County|Greenwood city|1774|0|3|Leonor|Luz|2993|Vermont|F|Daughter|||7|9400 +3000|SC|Greenwood County|Greenwood city|1774|0|4|Leonor|Elliott|2995|Utah|M|Son|||5|9401 +3000|SC|Greenwood County|Greenwood city|1774|0|5|Leonor|Houston|2999|Georgia|M|Son|||1|9402 + +3000|GA|Glynn County|St. Simons CDP|1775|0|1|Coalter|Riley Elisha|2951|Maine|M|Head|||49|9403 +3000|GA|Glynn County|St. Simons CDP|1775|0|2|Coalter|Elias|2977|Tennessee|M|Son|||23|9404 +3000|GA|Glynn County|St. Simons CDP|1775|0|3|Coalter|Juan|2987|Congo, The Democratic Republic Of The|M|Son|||13|9405 +3000|GA|Glynn County|St. Simons CDP|1775|0|4|Coalter|Kenneth|2989|Maine|F|Daughter|||11|9406 +3000|GA|Glynn County|St. Simons CDP|1775|0|5|Coalter|Sharan|2991|Oregon|F|Daughter|||9|9407 +3000|GA|Glynn County|St. Simons CDP|1775|0|6|Coalter|Darin|2993|Delaware|M|Son|||7|9408 +3000|GA|Glynn County|St. Simons CDP|1775|0|7|Coalter|Andrea|2995|Vermont|M|Son|||5|9409 + +3000|KY|Lyon County|Kuttawa city|1776|0|1|Denardo|Augustine Allen|2958|Tennessee|M|Head|||42|9410 +3000|KY|Lyon County|Kuttawa city|1776|0|2|Denardo|Lavone|2992|Florida|F|Daughter|||8|9411 +3000|KY|Lyon County|Kuttawa city|1776|0|3|Denardo|Gino|2994|Grenada|M|Son|||6|9412 +3000|KY|Lyon County|Kuttawa city|1776|0|4|Denardo|Moshe|2996|Oregon|M|Son|||4|9413 + +3000|IA|Hamilton County|Kamrar city|1777|0|1|Duke|Tobias Benito|2941|West Virginia|M|Head|||59|9414 +3000|IA|Hamilton County|Kamrar city|1777|0|2|Duke|Kirstin|2956|Slovakia|F|Spouse|||44|9415 +3000|IA|Hamilton County|Kamrar city|1777|0|3|Duke|Lan|2988|Massachusetts|F|Daughter|||12|9416 +3000|IA|Hamilton County|Kamrar city|1777|0|4|Duke|Pamula|2990|Michigan|F|Daughter|||10|9417 +3000|IA|Hamilton County|Kamrar city|1777|0|5|Duke|Samual|2996|Kentucky|M|Son|||4|9418 +3000|IA|Hamilton County|Kamrar city|1777|0|6|Duke|Lamar|3000|Minnesota|M|Son|||0|9419 + +3000|MI|Isabella County|Lincoln township|1778|0|1|Kothe|Kirby Jefferey|2960|Idaho|M|Head|||40|9420 +3000|MI|Isabella County|Lincoln township|1778|0|2|Kothe|Sanjuanita Francene|2959|United Kingdom|F|Spouse|||41|9421 +3000|MI|Isabella County|Lincoln township|1778|0|3|Kothe|Liane|2985|Venezuela|F|Daughter|||15|9422 +3000|MI|Isabella County|Lincoln township|1778|0|4|Kothe|Vaughn|2987|Wisconsin|M|Son|||13|9423 +3000|MI|Isabella County|Lincoln township|1778|0|5|Kothe|Nena|2993|Arkansas|F|Daughter|||7|9424 +3000|MI|Isabella County|Lincoln township|1778|0|6|Kothe|Leonore|2995|Ohio|F|Daughter|||5|9425 +3000|MI|Isabella County|Lincoln township|1778|0|7|Kothe|Cedric Dorsey|2997|Arkansas|M|Son|||3|9426 +3000|MI|Isabella County|Lincoln township|1778|0|8|Kothe|Cuc|2999|Oregon|F|Daughter|||1|9427 + +3000|ND|Nelson County|Aneta city|1779|0|1|Stokes|Carter Lonnie|2965|Colorado|M|Head|||35|9428 +3000|ND|Nelson County|Aneta city|1779|0|2|Stokes|Frida|2984|Norfolk Island|F|Spouse|||16|9429 + +3000|IN|Parke County|Mecca town|1780|0|1|Johnston|Concha|2952|South Dakota|F|Head|||48|9430 +3000|IN|Parke County|Mecca town|1780|0|2|Johnston|Burt|2990|Arkansas|M|Son|||10|9431 +3000|IN|Parke County|Mecca town|1780|0|3|Johnston|Elouise|2994|Aruba|F|Daughter|||6|9432 +3000|IN|Parke County|Mecca town|1780|0|4|Johnston|Bonita|2998|Mozambique|F|Daughter|||2|9433 +3000|IN|Parke County|Mecca town|1780|0|5|Johnston|Tabatha|3000|Maine|F|Daughter|||0|9434 + +3000|FL|Hardee County|Fort Green Springs CDP|1781|0|1|Beard|Harold Ed|2980|Michigan|M|Head|||20|9435 +3000|FL|Hardee County|Fort Green Springs CDP|1781|0|2|Beard|Margy Bernarda|2996|Illinois|F|Daughter|||4|9436 +3000|FL|Hardee County|Fort Green Springs CDP|1781|0|3|Beard|Raymon|2998|Indiana|M|Son|||2|9437 + +3000|PA|Beaver County|Midland borough|1782|0|1|Redic|Sandy Kim|2969|Maine|M|Head|||31|9438 +3000|PA|Beaver County|Midland borough|1782|0|2|Redic|Magaly|2974|Idaho|F|Spouse|||26|9439 +3000|PA|Beaver County|Midland borough|1782|0|3|Redic|Necole|2998|Ohio|F|Daughter|||2|9440 +3000|PA|Beaver County|Midland borough|1782|0|4|Redic|Danyelle|3000|Wyoming|F|Daughter|||0|9441 + +3000|IA|Polk County|Saylorville CDP|1783|0|1|Steel|Silas|2943|Wisconsin|M|Head|||57|9442 +3000|IA|Polk County|Saylorville CDP|1783|0|2|Steel|Carina|2961|Maryland|F|Spouse|||39|9443 +3000|IA|Polk County|Saylorville CDP|1783|0|3|Steel|Vincenzo|2981|Utah|M|Son|||19|9444 +3000|IA|Polk County|Saylorville CDP|1783|0|4|Steel|Kary|2989|Montana|F|Daughter|||11|9445 +3000|IA|Polk County|Saylorville CDP|1783|0|5|Steel|Jeromy Hong|2991|Arkansas|M|Son|||9|9446 +3000|IA|Polk County|Saylorville CDP|1783|0|6|Steel|Jerrell|2993|Oklahoma|M|Son|||7|9447 +3000|IA|Polk County|Saylorville CDP|1783|0|7|Steel|Ayanna|2997|South Dakota|F|Daughter|||3|9448 + +3000|IN|Spencer County|Rockport city|1784|0|1|Maginnis|Ernie Billie|2942|Montana|M|Head|||58|9449 +3000|IN|Spencer County|Rockport city|1784|0|2|Maginnis|Lecia|2964|Montana|F|Spouse|||36|9450 +3000|IN|Spencer County|Rockport city|1784|0|3|Maginnis|Archie|2984|South Carolina|M|Son|||16|9451 +3000|IN|Spencer County|Rockport city|1784|0|4|Maginnis|Lynwood|2986|New Hampshire|M|Son|||14|9452 +3000|IN|Spencer County|Rockport city|1784|0|5|Maginnis|Phillis|2990|North Carolina|F|Daughter|||10|9453 +3000|IN|Spencer County|Rockport city|1784|0|6|Maginnis|Arden|2996|Nebraska|M|Son|||4|9454 +3000|IN|Spencer County|Rockport city|1784|0|7|Maginnis|Adriane|2998|Iraq|F|Daughter|||2|9455 + +3000|PA|Crawford County|Woodcock township|1785|0|1|Black|Daren Sam|2960|South Dakota|M|Head|||40|9456 +3000|PA|Crawford County|Woodcock township|1785|0|2|Black|Latonia|2959|Vermont|F|Spouse|||41|9457 +3000|PA|Crawford County|Woodcock township|1785|0|3|Black|Camelia|2985|Wisconsin|F|Daughter|||15|9458 +3000|PA|Crawford County|Woodcock township|1785|0|4|Black|Mark|2987|California|F|Daughter|||13|9459 +3000|PA|Crawford County|Woodcock township|1785|0|5|Black|Dorian|2989|Missouri|M|Son|||11|9460 +3000|PA|Crawford County|Woodcock township|1785|0|6|Black|Luke Edward|2999|Montana|M|Son|||1|9461 + +3000|IN|Whitley County|Churubusco town|1786|0|1|Ramelli|Alphonse Neil|2981|New Jersey|M|Head|||19|9462 +3000|IN|Whitley County|Churubusco town|1786|0|2|Ramelli|Nicolette Queenie|2981|South Dakota|F|Spouse|||19|9463 + +3000|IN|Huntington County|Andrews town|1787|0|1|Mitchel|Augustus Columbus|2950|Maine|M|Head|||50|9464 +3000|IN|Huntington County|Andrews town|1787|0|2|Mitchel|Elease|2963|Tanzania, United Republic Of|F|Spouse|||37|9465 +3000|IN|Huntington County|Andrews town|1787|0|3|Mitchel|Daine|2985|North Carolina|F|Daughter|||15|9466 +3000|IN|Huntington County|Andrews town|1787|0|4|Mitchel|Marquis|2989|Tennessee|M|Son|||11|9467 +3000|IN|Huntington County|Andrews town|1787|0|5|Mitchel|Amanda|2991|Kentucky|F|Daughter|||9|9468 + +3000|CA|Sutter County|Trowbridge CDP|1788|0|1|Guzman|Freddie Jack|2961|Hawaii|M|Head|||39|9469 +3000|CA|Sutter County|Trowbridge CDP|1788|0|2|Guzman|Jackelyn|2980|Delaware|F|Spouse|||20|9470 +3000|CA|Sutter County|Trowbridge CDP|1788|0|3|Guzman|Ernest|3000|Liberia|M|Son|||0|9471 + +3000|KY|Marshall County|Calvert City city|1789|0|1|Kidd|Kyle Linwood|2964|Cambodia|M|Head|||36|9472 +3000|KY|Marshall County|Calvert City city|1789|0|2|Kidd|Lovetta Hue|2982|Kuwait|F|Spouse|||18|9473 + +3000|NM|Valencia County|Peralta town|1790|0|1|White|Lenard Leroy|2953|Montana|M|Head|||47|9474 +3000|NM|Valencia County|Peralta town|1790|0|2|White|Kiera|2969|Rhode Island|F|Spouse|||31|9475 +3000|NM|Valencia County|Peralta town|1790|0|3|White|Antione|2991|Texas|M|Son|||9|9476 +3000|NM|Valencia County|Peralta town|1790|0|4|White|Donny|2995|Cocos (keeling) Islands|M|Son|||5|9477 +3000|NM|Valencia County|Peralta town|1790|0|5|White|Dortha|2999|Virginia|F|Daughter|||1|9478 + +3000|IN|Hendricks County|Danville town|1791|0|1|Garrett|Jarred Jesse|2961|Mississippi|M|Head|||39|9479 +3000|IN|Hendricks County|Danville town|1791|0|2|Garrett|Katharyn|2976|Arizona|F|Spouse|||24|9480 +3000|IN|Hendricks County|Danville town|1791|0|3|Garrett|Sallie|2996|Georgia|F|Daughter|||4|9481 +3000|IN|Hendricks County|Danville town|1791|0|4|Garrett|Angele|2998|Ghana|F|Daughter|||2|9482 + +3000|CO|Weld County|Nunn town|1792|0|1|Myles|Lynwood Anderson|2941|Utah|M|Head|||59|9483 +3000|CO|Weld County|Nunn town|1792|0|2|Myles|Edna Therese|2943|North Dakota|F|Spouse|||57|9484 +3000|CO|Weld County|Nunn town|1792|0|3|Myles|Celsa|2969|Texas|F|Daughter|||31|9485 +3000|CO|Weld County|Nunn town|1792|0|4|Myles|Man Genia|2985|Oregon|F|Daughter|||15|9486 +3000|CO|Weld County|Nunn town|1792|0|5|Myles|Jess|2987|Kansas|M|Son|||13|9487 +3000|CO|Weld County|Nunn town|1792|0|6|Myles|Autumn|2993|North Dakota|F|Daughter|||7|9488 +3000|CO|Weld County|Nunn town|1792|0|7|Myles|Aaron Cesar|2999|Brunei Darussalam|M|Son|||1|9489 + +3000|IN|Delaware County|Eaton town|1793|0|1|Price|Scot Floyd|2946|Kentucky|M|Head|||54|9490 +3000|IN|Delaware County|Eaton town|1793|0|2|Price|Bari Karri|2943|Nevada|F|Spouse|||57|9491 +3000|IN|Delaware County|Eaton town|1793|0|3|Price|Lourdes Lacy|2975|Missouri|F|Daughter|||25|9492 +3000|IN|Delaware County|Eaton town|1793|0|4|Price|Ulrike Williemae|2979|Colorado|F|Daughter|||21|9493 +3000|IN|Delaware County|Eaton town|1793|0|5|Price|Kimbery|2985|Wisconsin|F|Daughter|||15|9494 +3000|IN|Delaware County|Eaton town|1793|0|6|Price|Vern|2989|Florida|M|Son|||11|9495 +3000|IN|Delaware County|Eaton town|1793|0|7|Price|Fabian|2993|Florida|M|Son|||7|9496 +3000|IN|Delaware County|Eaton town|1793|0|8|Price|Louise|2995|Kentucky|F|Daughter|||5|9497 + +3000|WI|Waukesha County|Pewaukee village|1794|0|1|Garza|Myron|2970|Illinois|M|Head|||30|9498 +3000|WI|Waukesha County|Pewaukee village|1794|0|2|Garza|Kate|2967|Rhode Island|F|Spouse|||33|9499 +3000|WI|Waukesha County|Pewaukee village|1794|0|3|Garza|Hoa|2987|Micronesia, Federated States Of|F|Daughter|||13|9500 +3000|WI|Waukesha County|Pewaukee village|1794|0|4|Garza|Maxwell|2993|Kentucky|M|Son|||7|9501 +3000|WI|Waukesha County|Pewaukee village|1794|0|5|Garza|Miguelina|2997|New Mexico|F|Daughter|||3|9502 + +3000|GA|Glascock County|Gibson city|1795|0|1|Baadsgaard|Clair Salvatore|2960|Kansas|M|Head|||40|9503 +3000|GA|Glascock County|Gibson city|1795|0|2|Baadsgaard|Ellamae|2990|Indiana|F|Daughter|||10|9504 +3000|GA|Glascock County|Gibson city|1795|0|3|Baadsgaard|Garret|2994|Arkansas|M|Son|||6|9505 +3000|GA|Glascock County|Gibson city|1795|0|4|Baadsgaard|Kamala Dannette|2998|Ecuador|F|Daughter|||2|9506 + +3000|TX|Chambers County|Stowell CDP|1796|0|1|Campbell|Cliff German|2959|North Dakota|M|Head|||41|9507 +3000|TX|Chambers County|Stowell CDP|1796|0|2|Campbell|Arcelia|2988|New Mexico|F|Daughter|||12|9508 +3000|TX|Chambers County|Stowell CDP|1796|0|3|Campbell|Julianne|2990|Hungary|F|Daughter|||10|9509 +3000|TX|Chambers County|Stowell CDP|1796|0|4|Campbell|Tim|2998|Ohio|M|Son|||2|9510 + +3000|OH|Lawrence County|South Point village|1797|0|1|Starr|Katharyn|2967|Vermont|F|Head|||33|9511 +3000|OH|Lawrence County|South Point village|1797|0|2|Starr|Lin|2987|Gabon|F|Daughter|||13|9512 +3000|OH|Lawrence County|South Point village|1797|0|3|Starr|Zona Dalene|2989|Arkansas|F|Daughter|||11|9513 +3000|OH|Lawrence County|South Point village|1797|0|4|Starr|Janel|2993|Saint Pierre And Miquelon|F|Daughter|||7|9514 +3000|OH|Lawrence County|South Point village|1797|0|5|Starr|Bobbie|2995|South Dakota|M|Son|||5|9515 + +3000|WI|Racine County|Wind Point village|1798|0|1|Roberson|Darrick Connie|2957|Vermont|M|Head|||43|9516 +3000|WI|Racine County|Wind Point village|1798|0|2|Roberson|Colene Suzette|2974|West Virginia|F|Spouse|||26|9517 +3000|WI|Racine County|Wind Point village|1798|0|3|Roberson|Dalton|2994|Mississippi|M|Son|||6|9518 +3000|WI|Racine County|Wind Point village|1798|0|4|Roberson|Korey|2996|Michigan|M|Son|||4|9519 +3000|WI|Racine County|Wind Point village|1798|0|5|Roberson|Shad Leonardo|2998|Massachusetts|M|Son|||2|9520 +3000|WI|Racine County|Wind Point village|1798|0|6|Roberson|Bert|3000|Arkansas|M|Son|||0|9521 + +3000|NC|Rowan County|Faith town|1799|0|1|Krakauer|Calvin Benedict|2937|New Mexico|M|Head|||63|9522 +3000|NC|Rowan County|Faith town|1799|0|2|Krakauer|George|2952|Michigan|F|Spouse|||48|9523 +3000|NC|Rowan County|Faith town|1799|0|3|Krakauer|Venessa Kristy|2982|South Dakota|F|Daughter|||18|9524 +3000|NC|Rowan County|Faith town|1799|0|4|Krakauer|Rosaline|2986|Iowa|F|Daughter|||14|9525 +3000|NC|Rowan County|Faith town|1799|0|5|Krakauer|Rogelio|2988|Michigan|M|Son|||12|9526 +3000|NC|Rowan County|Faith town|1799|0|6|Krakauer|Tierra|2996|Minnesota|F|Daughter|||4|9527 +3000|NC|Rowan County|Faith town|1799|0|7|Krakauer|Alejandro Wilfred|2998|Illinois|M|Son|||2|9528 +3000|NC|Rowan County|Faith town|1799|0|8|Krakauer|Kortney|3000|North Carolina|F|Daughter|||0|9529 + +3000|MN|St. Louis County|Beatty township|1800|0|1|Garcia|Cortez Willy|2966|Cote D'ivoire|M|Head|||34|9530 +3000|MN|St. Louis County|Beatty township|1800|0|2|Garcia|Classie|2986|Vermont|F|Daughter|||14|9531 +3000|MN|St. Louis County|Beatty township|1800|0|3|Garcia|Carlo|2992|Iowa|M|Son|||8|9532 +3000|MN|St. Louis County|Beatty township|1800|0|4|Garcia|Zena|2994|North Dakota|F|Daughter|||6|9533 +3000|MN|St. Louis County|Beatty township|1800|0|5|Garcia|Hannelore|2996|Montana|F|Daughter|||4|9534 +3000|MN|St. Louis County|Beatty township|1800|0|6|Garcia|Sina|2998|Montana|F|Daughter|||2|9535 + +3000|MA|Barnstable County|Brewster CDP|1801|0|1|Clarke|Walter Brock|2954|Iowa|M|Head|||46|9536 +3000|MA|Barnstable County|Brewster CDP|1801|0|2|Clarke|Nestor|2988|Pennsylvania|M|Son|||12|9537 +3000|MA|Barnstable County|Brewster CDP|1801|0|3|Clarke|Emery Gregory|2992|Utah|M|Son|||8|9538 +3000|MA|Barnstable County|Brewster CDP|1801|0|4|Clarke|Minerva|2996|Minnesota|F|Daughter|||4|9539 +3000|MA|Barnstable County|Brewster CDP|1801|0|5|Clarke|Lorretta Vella|3000|West Virginia|F|Daughter|||0|9540 + +3000|PR|San Sebastián Municipio|San Sebastián zona urbana|1802|0|1|Dantzler|Ricky Lyle|2972|Maryland|M|Head|||28|9541 +3000|PR|San Sebastián Municipio|San Sebastián zona urbana|1802|0|2|Dantzler|Silvana|2983|Uruguay|F|Spouse|||17|9542 + +3000|VA|Chesterfield County|Meadowbrook CDP|1803|0|1|Alvord|Pierre Craig|2978|New Jersey|M|Head|||22|9543 +3000|VA|Chesterfield County|Meadowbrook CDP|1803|0|2|Alvord|Marylou Venita|2984|Connecticut|F|Spouse|||16|9544 + +3000|CA|Monterey County|Sand City city|1804|0|1|Sakry|Wyatt Kristofer|2945|Rhode Island|M|Head|||55|9545 +3000|CA|Monterey County|Sand City city|1804|0|2|Sakry|Cedric|2983|Washington|M|Son|||17|9546 +3000|CA|Monterey County|Sand City city|1804|0|3|Sakry|Lindsay Marty|2985|Mississippi|M|Son|||15|9547 +3000|CA|Monterey County|Sand City city|1804|0|4|Sakry|Margareta|2987|Vermont|F|Daughter|||13|9548 +3000|CA|Monterey County|Sand City city|1804|0|5|Sakry|Lionel|2989|Virginia|M|Son|||11|9549 +3000|CA|Monterey County|Sand City city|1804|0|6|Sakry|Nestor|2991|Hawaii|M|Son|||9|9550 +3000|CA|Monterey County|Sand City city|1804|0|7|Sakry|Dana|2997|Lithuania|M|Son|||3|9551 +3000|CA|Monterey County|Sand City city|1804|0|8|Sakry|Alonso|2999|Azerbaijan|M|Son|||1|9552 + +3000|NY|Schuyler County|Burdett village|1805|0|1|Guillory|Elidia|2972|Cuba|F|Head|||28|9553 +3000|NY|Schuyler County|Burdett village|1805|0|2|Guillory|Ursula|2992|Wyoming|F|Daughter|||8|9554 +3000|NY|Schuyler County|Burdett village|1805|0|3|Guillory|Colby|2996|Wisconsin|M|Son|||4|9555 + +3000|CT|New Haven County|New Haven town|1806|0|1|Garbett|Dale Drew|2948|Indiana|M|Head|||52|9556 +3000|CT|New Haven County|New Haven town|1806|0|2|Garbett|Isreal|2973|Nebraska|M|Son|||27|9557 +3000|CT|New Haven County|New Haven town|1806|0|3|Garbett|Maren|2981|Wisconsin|F|Daughter|||19|9558 +3000|CT|New Haven County|New Haven town|1806|0|4|Garbett|Earl|2991|Oklahoma|M|Son|||9|9559 +3000|CT|New Haven County|New Haven town|1806|0|5|Garbett|Dewey|2993|Wyoming|M|Son|||7|9560 + +3000|PA|Lehigh County|New Tripoli CDP|1807|0|1|Wells|Hubert Alfonzo|2957|Texas|M|Head|||43|9561 +3000|PA|Lehigh County|New Tripoli CDP|1807|0|2|Wells|Debbra|2956|Wisconsin|F|Spouse|||44|9562 +3000|PA|Lehigh County|New Tripoli CDP|1807|0|3|Wells|Danial|2978|Greece|M|Son|||22|9563 +3000|PA|Lehigh County|New Tripoli CDP|1807|0|4|Wells|Eli|2984|North Carolina|M|Son|||16|9564 +3000|PA|Lehigh County|New Tripoli CDP|1807|0|5|Wells|Luther|2996|Idaho|M|Son|||4|9565 +3000|PA|Lehigh County|New Tripoli CDP|1807|0|6|Wells|Adrianne|2998|Colorado|F|Daughter|||2|9566 + +3000|TX|Clay County|Dean city|1808|0|1|Niehoff|Modesto|2980|Arkansas|M|Head|||20|9567 +3000|TX|Clay County|Dean city|1808|0|2|Niehoff|Elma|2983|Vermont|F|Spouse|||17|9568 + +3000|MN|Marshall County|Moose River township|1809|0|1|Froneberger|Jean Shaun|2973|Ohio|M|Head|||27|9569 +3000|MN|Marshall County|Moose River township|1809|0|2|Froneberger|Rubie|2970|Oklahoma|F|Spouse|||30|9570 +3000|MN|Marshall County|Moose River township|1809|0|3|Froneberger|Kayce|2990|Austria|F|Daughter|||10|9571 +3000|MN|Marshall County|Moose River township|1809|0|4|Froneberger|Monty|2996|Spain|M|Son|||4|9572 +3000|MN|Marshall County|Moose River township|1809|0|5|Froneberger|Vito|3000|South Carolina|M|Son|||0|9573 + +3000|NJ|Ocean County|Vista Center CDP|1810|0|1|Shedden|Jae Kirk|2960|Connecticut|M|Head|||40|9574 +3000|NJ|Ocean County|Vista Center CDP|1810|0|2|Shedden|Crista Fred|2960|Louisiana|F|Spouse|||40|9575 +3000|NJ|Ocean County|Vista Center CDP|1810|0|3|Shedden|Manuel|2986|Syrian Arab Republic|M|Son|||14|9576 +3000|NJ|Ocean County|Vista Center CDP|1810|0|4|Shedden|Marco|2990|Nauru|M|Son|||10|9577 +3000|NJ|Ocean County|Vista Center CDP|1810|0|5|Shedden|Fernando|3000|Texas|M|Son|||0|9578 + +3000|MS|Quitman County|Darling CDP|1811|0|1|Chambers|Bert Sid|2964|Wisconsin|M|Head|||36|9579 +3000|MS|Quitman County|Darling CDP|1811|0|2|Chambers|Lan|2988|Philippines|F|Daughter|||12|9580 +3000|MS|Quitman County|Darling CDP|1811|0|3|Chambers|Star|2990|Idaho|F|Daughter|||10|9581 +3000|MS|Quitman County|Darling CDP|1811|0|4|Chambers|Anneliese Gabriele|2998|South Dakota|F|Daughter|||2|9582 +3000|MS|Quitman County|Darling CDP|1811|0|5|Chambers|Elbert|3000|Maldives|M|Son|||0|9583 + +3000|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|1|Cavagnaro|Michale Diego|2947|Arkansas|M|Head|||53|9584 +3000|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|2|Cavagnaro|Lorine|2962|Brunei Darussalam|F|Spouse|||38|9585 +3000|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|3|Cavagnaro|Carl|2982|Ireland|F|Daughter|||18|9586 +3000|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|4|Cavagnaro|Alexis|2986|Wisconsin|F|Daughter|||14|9587 +3000|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|5|Cavagnaro|Bruce|2990|Kyrgyzstan|M|Son|||10|9588 +3000|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|6|Cavagnaro|Laverne Leigh|2992|New Hampshire|M|Son|||8|9589 +3000|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|7|Cavagnaro|Eulah|2994|New York|F|Daughter|||6|9590 +3000|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|8|Cavagnaro|Ying|3000|Iowa|F|Daughter|||0|9591 + +3000|MS|Prentiss County|Booneville city|1813|0|1|Stains|Columbus|2945|Wyoming|M|Head|||55|9592 +3000|MS|Prentiss County|Booneville city|1813|0|2|Stains|Arnita|2957|Turkey|F|Spouse|||43|9593 +3000|MS|Prentiss County|Booneville city|1813|0|3|Stains|Sean Columbus|2977|Israel|M|Son|||23|9594 +3000|MS|Prentiss County|Booneville city|1813|0|4|Stains|Caron|2983|Delaware|F|Daughter|||17|9595 +3000|MS|Prentiss County|Booneville city|1813|0|5|Stains|Hank|2995|Texas|M|Son|||5|9596 + +3000|MI|Washtenaw County|Saline township|1814|0|1|Pacini|Long Reid|2968|Tennessee|M|Head|||32|9597 + +3000|CA|Marin County|Fairfax town|1815|0|1|Clewes|Melvin Charles|2938|Ohio|M|Head|||62|9598 +3000|CA|Marin County|Fairfax town|1815|0|2|Clewes|Melodie|2961|Wisconsin|F|Spouse|||39|9599 +3000|CA|Marin County|Fairfax town|1815|0|3|Clewes|Ernesto|2985|Oklahoma|M|Son|||15|9600 +3000|CA|Marin County|Fairfax town|1815|0|4|Clewes|Alaina|2989|North Carolina|F|Daughter|||11|9601 +3000|CA|Marin County|Fairfax town|1815|0|5|Clewes|Lessie|2993|West Virginia|F|Daughter|||7|9602 +3000|CA|Marin County|Fairfax town|1815|0|6|Clewes|Alline|2997|Maine|F|Daughter|||3|9603 + +3000|PA|Centre County|Park Forest Village CDP|1816|0|1|Moore|Lenard Wayne|2965|Tennessee|M|Head|||35|9604 +3000|PA|Centre County|Park Forest Village CDP|1816|0|2|Moore|Paul|2970|South Carolina|F|Spouse|||30|9605 +3000|PA|Centre County|Park Forest Village CDP|1816|0|3|Moore|Von|2990|Maine|M|Son|||10|9606 +3000|PA|Centre County|Park Forest Village CDP|1816|0|4|Moore|Velda Terisa|2998|Colorado|F|Daughter|||2|9607 + +3000|ND|Stark County|Richardton city|1817|0|1|Lee|Nathanael Jeffery|2948|Massachusetts|M|Head|||52|9608 +3000|ND|Stark County|Richardton city|1817|0|2|Lee|Sherly|2969|Oregon|F|Spouse|||31|9609 +3000|ND|Stark County|Richardton city|1817|0|3|Lee|Jill|2989|Oklahoma|F|Daughter|||11|9610 +3000|ND|Stark County|Richardton city|1817|0|4|Lee|Wilbert|2995|Arkansas|M|Son|||5|9611 +3000|ND|Stark County|Richardton city|1817|0|5|Lee|Will|2999|Montana|M|Son|||1|9612 + +3000|NJ|Ocean County|Seaside Park borough|1818|0|1|Eber|Tomas Monty|2976|Kosovo|M|Head|||24|9613 +3000|NJ|Ocean County|Seaside Park borough|1818|0|2|Eber|Adrienne|2982|South Carolina|F|Spouse|||18|9614 + +3000|NY|Schoharie County|Middleburgh town|1819|0|1|Bollier|Randell Rico|2941|Michigan|M|Head|||59|9615 +3000|NY|Schoharie County|Middleburgh town|1819|0|2|Bollier|Lilli Daniela|2937|Minnesota|F|Spouse|||63|9616 +3000|NY|Schoharie County|Middleburgh town|1819|0|3|Bollier|Casimira|2959|Oklahoma|F|Daughter|||41|9617 +3000|NY|Schoharie County|Middleburgh town|1819|0|4|Bollier|Carmel|2977|Wisconsin|F|Daughter|||23|9618 +3000|NY|Schoharie County|Middleburgh town|1819|0|5|Bollier|Maryrose|2981|Delaware|F|Daughter|||19|9619 +3000|NY|Schoharie County|Middleburgh town|1819|0|6|Bollier|Deangelo Bill|2985|Michigan|M|Son|||15|9620 + +3000|GA|Barrow County|Bethlehem town|1820|0|1|Sanjuan|Theo Horace|2978|Ohio|M|Head|||22|9621 +3000|GA|Barrow County|Bethlehem town|1820|0|2|Sanjuan|Remona Ariane|2976|Missouri|F|Spouse|||24|9622 +3000|GA|Barrow County|Bethlehem town|1820|0|3|Sanjuan|Rose|2996|Michigan|F|Daughter|||4|9623 + +3000|UT|Weber County|Uintah town|1821|0|1|Conway|Gregory Rod|2947|Alaska|M|Head|||53|9624 +3000|UT|Weber County|Uintah town|1821|0|2|Conway|Linsey|2946|Hawaii|F|Spouse|||54|9625 +3000|UT|Weber County|Uintah town|1821|0|3|Conway|Damian|2966|Maryland|M|Son|||34|9626 +3000|UT|Weber County|Uintah town|1821|0|4|Conway|Patria|2978|Maine|F|Daughter|||22|9627 +3000|UT|Weber County|Uintah town|1821|0|5|Conway|Cruz|2984|Virginia|M|Son|||16|9628 +3000|UT|Weber County|Uintah town|1821|0|6|Conway|Alton|2986|New Hampshire|M|Son|||14|9629 +3000|UT|Weber County|Uintah town|1821|0|7|Conway|Madelyn|2988|Bulgaria|F|Daughter|||12|9630 +3000|UT|Weber County|Uintah town|1821|0|8|Conway|Juan|2996|Washington|M|Son|||4|9631 +3000|UT|Weber County|Uintah town|1821|0|9|Conway|Whitney|2998|Colorado|M|Son|||2|9632 + +3000|OK|Atoka County|Stringtown town|1822|0|1|Richardson|Jonathan Loren|2967|Benin|M|Head|||33|9633 +3000|OK|Atoka County|Stringtown town|1822|0|2|Richardson|Jone|2966|Maine|F|Spouse|||34|9634 +3000|OK|Atoka County|Stringtown town|1822|0|3|Richardson|Shenika Kayleen|2990|Iowa|F|Daughter|||10|9635 +3000|OK|Atoka County|Stringtown town|1822|0|4|Richardson|Carlyn|2996|Uganda|F|Daughter|||4|9636 +3000|OK|Atoka County|Stringtown town|1822|0|5|Richardson|Sanford|2998|Pennsylvania|M|Son|||2|9637 + +3000|MA|Worcester County|East Brookfield town|1823|0|1|Jobe|Jamel Silas|2953|Kansas|M|Head|||47|9638 +3000|MA|Worcester County|East Brookfield town|1823|0|2|Jobe|Phyllis|2973|West Virginia|F|Spouse|||27|9639 +3000|MA|Worcester County|East Brookfield town|1823|0|3|Jobe|Clay|2993|Serbia|M|Son|||7|9640 +3000|MA|Worcester County|East Brookfield town|1823|0|4|Jobe|Consuelo|2995|Florida|F|Daughter|||5|9641 +3000|MA|Worcester County|East Brookfield town|1823|0|5|Jobe|Hollis|2997|Pakistan|F|Daughter|||3|9642 +3000|MA|Worcester County|East Brookfield town|1823|0|6|Jobe|Rosina|2999|Oklahoma|F|Daughter|||1|9643 + +3000|MI|Sanilac County|Evergreen township|1824|0|1|Emory|Brook|2950|Louisiana|F|Head|||50|9644 +3000|MI|Sanilac County|Evergreen township|1824|0|2|Emory|Liliana|2984|Illinois|F|Daughter|||16|9645 +3000|MI|Sanilac County|Evergreen township|1824|0|3|Emory|Brent|2986|Colorado|M|Son|||14|9646 +3000|MI|Sanilac County|Evergreen township|1824|0|4|Emory|Kellee|2990|Michigan|F|Daughter|||10|9647 +3000|MI|Sanilac County|Evergreen township|1824|0|5|Emory|Brendan|2994|Portugal|M|Son|||6|9648 +3000|MI|Sanilac County|Evergreen township|1824|0|6|Emory|Glen|2996|Minnesota|M|Son|||4|9649 +3000|MI|Sanilac County|Evergreen township|1824|0|7|Emory|Shelia|2998|Rhode Island|F|Daughter|||2|9650 + +3000|NY|Fulton County|Caroga Lake CDP|1825|0|1|Blaisdell|Jefferey|2937|Comoros|M|Head|||63|9651 +3000|NY|Fulton County|Caroga Lake CDP|1825|0|2|Blaisdell|Shandi Jamee|2969|Indiana|F|Daughter|||31|9652 +3000|NY|Fulton County|Caroga Lake CDP|1825|0|3|Blaisdell|Danika|2975|Canada|F|Daughter|||25|9653 +3000|NY|Fulton County|Caroga Lake CDP|1825|0|4|Blaisdell|Johnson|2985|West Virginia|M|Son|||15|9654 +3000|NY|Fulton County|Caroga Lake CDP|1825|0|5|Blaisdell|Walker|2987|Malaysia|M|Son|||13|9655 +3000|NY|Fulton County|Caroga Lake CDP|1825|0|6|Blaisdell|Dian|2993|Utah|F|Daughter|||7|9656 + +3000|ID|Gooding County|Hagerman city|1826|0|1|Skipworth|Lindsay|2956|Maine|M|Head|||44|9657 +3000|ID|Gooding County|Hagerman city|1826|0|2|Skipworth|Emilio|2979|Mississippi|M|Son|||21|9658 +3000|ID|Gooding County|Hagerman city|1826|0|3|Skipworth|Sammy|2985|Cote D'ivoire|M|Son|||15|9659 +3000|ID|Gooding County|Hagerman city|1826|0|4|Skipworth|Mckinley|2989|Connecticut|M|Son|||11|9660 +3000|ID|Gooding County|Hagerman city|1826|0|5|Skipworth|Man|2993|Texas|M|Son|||7|9661 +3000|ID|Gooding County|Hagerman city|1826|0|6|Skipworth|Dede|2999|Kentucky|F|Daughter|||1|9662 + +3000|VA|Shenandoah County|Woodstock town|1827|0|1|Santaniello|Rich|2958|Connecticut|M|Head|||42|9663 +3000|VA|Shenandoah County|Woodstock town|1827|0|2|Santaniello|Danielle|2974|Virginia|F|Spouse|||26|9664 +3000|VA|Shenandoah County|Woodstock town|1827|0|3|Santaniello|Rosy|2996|Kentucky|F|Daughter|||4|9665 + +3000|NJ|Camden County|Barrington borough|1828|0|1|Mills|Clay Jeromy|2945|Connecticut|M|Head|||55|9666 +3000|NJ|Camden County|Barrington borough|1828|0|2|Mills|Valorie|2951|New Hampshire|F|Spouse|||49|9667 +3000|NJ|Camden County|Barrington borough|1828|0|3|Mills|Molly|2973|Nevada|F|Daughter|||27|9668 +3000|NJ|Camden County|Barrington borough|1828|0|4|Mills|Broderick Wilmer|2985|South Dakota|M|Son|||15|9669 +3000|NJ|Camden County|Barrington borough|1828|0|5|Mills|Nikki|2987|Estonia|F|Daughter|||13|9670 +3000|NJ|Camden County|Barrington borough|1828|0|6|Mills|Hiedi Maragaret|2991|Rhode Island|F|Daughter|||9|9671 +3000|NJ|Camden County|Barrington borough|1828|0|7|Mills|Kraig|2993|Norfolk Island|M|Son|||7|9672 +3000|NJ|Camden County|Barrington borough|1828|0|8|Mills|Jake|2995|Nevada|M|Son|||5|9673 + +3000|PA|Delaware County|Media borough|1829|0|1|Hart|Julius Jame|2946|Missouri|M|Head|||54|9674 +3000|PA|Delaware County|Media borough|1829|0|2|Hart|Maryanna|2960|Zimbabwe|F|Spouse|||40|9675 +3000|PA|Delaware County|Media borough|1829|0|3|Hart|Eliseo|2980|Delaware|M|Son|||20|9676 +3000|PA|Delaware County|Media borough|1829|0|4|Hart|Karl|2982|Vanuatu|M|Son|||18|9677 +3000|PA|Delaware County|Media borough|1829|0|5|Hart|Hortense|2984|West Virginia|F|Daughter|||16|9678 +3000|PA|Delaware County|Media borough|1829|0|6|Hart|Eric|2988|Wyoming|M|Son|||12|9679 +3000|PA|Delaware County|Media borough|1829|0|7|Hart|Edwardo|2996|Maine|M|Son|||4|9680 + +3000|WA|Kitsap County|Port Orchard city|1830|0|1|Bell|Neil Beau|2938|Montana|M|Head|||62|9681 +3000|WA|Kitsap County|Port Orchard city|1830|0|2|Bell|Genny|2943|Massachusetts|F|Spouse|||57|9682 +3000|WA|Kitsap County|Port Orchard city|1830|0|3|Bell|Minta|2971|Panama|F|Daughter|||29|9683 +3000|WA|Kitsap County|Port Orchard city|1830|0|4|Bell|Marina|2987|India|F|Daughter|||13|9684 +3000|WA|Kitsap County|Port Orchard city|1830|0|5|Bell|Delorse|2989|Montana|F|Daughter|||11|9685 +3000|WA|Kitsap County|Port Orchard city|1830|0|6|Bell|Walter Cristi|2991|West Virginia|F|Daughter|||9|9686 +3000|WA|Kitsap County|Port Orchard city|1830|0|7|Bell|Vesta|2995|New York|F|Daughter|||5|9687 + +3000|ND|Rolette County|East Dunseith CDP|1831|0|1|Mccreery|Ed Normand|2961|New York|M|Head|||39|9688 +3000|ND|Rolette County|East Dunseith CDP|1831|0|2|Mccreery|Amiee Kindra|2993|Florida|F|Daughter|||7|9689 +3000|ND|Rolette County|East Dunseith CDP|1831|0|3|Mccreery|Vella|2995|South Carolina|F|Daughter|||5|9690 +3000|ND|Rolette County|East Dunseith CDP|1831|0|4|Mccreery|Dudley Kelvin|2997|Dominica|M|Son|||3|9691 + +3000|CT|New London County|County Subdivisions not defined|1832|0|1|Tejada|Nigel|2944|Missouri|M|Head|||56|9692 +3000|CT|New London County|County Subdivisions not defined|1832|0|2|Tejada|Chandra|2945|Iowa|F|Spouse|||55|9693 +3000|CT|New London County|County Subdivisions not defined|1832|0|3|Tejada|Cory|2965|Cook Islands|M|Son|||35|9694 +3000|CT|New London County|County Subdivisions not defined|1832|0|4|Tejada|Natividad Mellisa|2967|Christmas Island|F|Daughter|||33|9695 +3000|CT|New London County|County Subdivisions not defined|1832|0|5|Tejada|Kerry|2979|Indonesia|M|Son|||21|9696 +3000|CT|New London County|County Subdivisions not defined|1832|0|6|Tejada|Velda|2991|Delaware|F|Daughter|||9|9697 +3000|CT|New London County|County Subdivisions not defined|1832|0|7|Tejada|Forrest Ruben|2997|Tennessee|M|Son|||3|9698 +3000|CT|New London County|County Subdivisions not defined|1832|0|8|Tejada|Avery|2999|Canada|F|Daughter|||1|9699 + +3000|NY|Seneca County|Lodi village|1833|0|1|Garcia|Wayne Jimmie|2967|Tennessee|M|Head|||33|9700 +3000|NY|Seneca County|Lodi village|1833|0|2|Garcia|Annika|2966|Maine|F|Spouse|||34|9701 +3000|NY|Seneca County|Lodi village|1833|0|3|Garcia|Vernell|2986|North Carolina|F|Daughter|||14|9702 +3000|NY|Seneca County|Lodi village|1833|0|4|Garcia|Jerrold|2988|Ohio|M|Son|||12|9703 +3000|NY|Seneca County|Lodi village|1833|0|5|Garcia|Wilford Errol|2990|Delaware|M|Son|||10|9704 +3000|NY|Seneca County|Lodi village|1833|0|6|Garcia|Hollis|2992|Palau|M|Son|||8|9705 +3000|NY|Seneca County|Lodi village|1833|0|7|Garcia|Maynard|2996|Arizona|M|Son|||4|9706 +3000|NY|Seneca County|Lodi village|1833|0|8|Garcia|Tammy|2998|Montana|F|Daughter|||2|9707 + +3000|MO|St. Clair County|Lowry City city|1834|0|1|Baughman|Michal Geoffrey|2945|Oregon|M|Head|||55|9708 +3000|MO|St. Clair County|Lowry City city|1834|0|2|Baughman|Kiara|2944|Grenada|F|Spouse|||56|9709 +3000|MO|St. Clair County|Lowry City city|1834|0|3|Baughman|Dona Lenora|2966|Minnesota|F|Daughter|||34|9710 +3000|MO|St. Clair County|Lowry City city|1834|0|4|Baughman|Gracia|2974|Latvia|F|Daughter|||26|9711 +3000|MO|St. Clair County|Lowry City city|1834|0|5|Baughman|Miguel|2980|Wyoming|M|Son|||20|9712 +3000|MO|St. Clair County|Lowry City city|1834|0|6|Baughman|Edgar|2982|Florida|M|Son|||18|9713 + +3000|AL|Limestone County|Lester town|1835|0|1|Gill|Edward Dario|2970|Utah|M|Head|||30|9714 +3000|AL|Limestone County|Lester town|1835|0|2|Gill|Mazie|2974|Arkansas|F|Spouse|||26|9715 +3000|AL|Limestone County|Lester town|1835|0|3|Gill|Ray|2994|Colorado|M|Son|||6|9716 +3000|AL|Limestone County|Lester town|1835|0|4|Gill|Melvin Jerry|2998|Nepal|M|Son|||2|9717 +3000|AL|Limestone County|Lester town|1835|0|5|Gill|Catherin|3000|Indiana|F|Daughter|||0|9718 + +3000|WI|Manitowoc County|Mishicot village|1836|0|1|Anzures|Milo Anderson|2974|New York|M|Head|||26|9719 +3000|WI|Manitowoc County|Mishicot village|1836|0|2|Anzures|Charlie|2982|Delaware|F|Spouse|||18|9720 + +3000|IN|Whitley County|Churubusco town|1837|0|1|Canella|Danny Jordan|2946|Maine|M|Head|||54|9721 +3000|IN|Whitley County|Churubusco town|1837|0|2|Canella|Gaston|2994|Bangladesh|M|Son|||6|9722 + +3000|TX|Kinney County|Spofford city|1838|0|1|Holle|Connie Andrew|2951|Oklahoma|M|Head|||49|9723 +3000|TX|Kinney County|Spofford city|1838|0|2|Holle|Alissa|2977|Arkansas|F|Daughter|||23|9724 +3000|TX|Kinney County|Spofford city|1838|0|3|Holle|Damion|2979|Colorado|M|Son|||21|9725 +3000|TX|Kinney County|Spofford city|1838|0|4|Holle|Malcom Zachary|2983|Wisconsin|M|Son|||17|9726 +3000|TX|Kinney County|Spofford city|1838|0|5|Holle|Charlie|2987|Kentucky|M|Son|||13|9727 +3000|TX|Kinney County|Spofford city|1838|0|6|Holle|Mozella|2991|Florida|F|Daughter|||9|9728 +3000|TX|Kinney County|Spofford city|1838|0|7|Holle|Brady|2993|South Dakota|M|Son|||7|9729 +3000|TX|Kinney County|Spofford city|1838|0|8|Holle|Herman|2997|Mississippi|M|Son|||3|9730 + +3000|AZ|Mohave County|Desert Hills CDP|1839|0|1|Konderla|Valentin Erich|2951|Kentucky|M|Head|||49|9731 +3000|AZ|Mohave County|Desert Hills CDP|1839|0|2|Konderla|Magen|2976|Idaho|F|Daughter|||24|9732 +3000|AZ|Mohave County|Desert Hills CDP|1839|0|3|Konderla|Leopoldo|2982|Guyana|M|Son|||18|9733 +3000|AZ|Mohave County|Desert Hills CDP|1839|0|4|Konderla|Jonathan|2990|Kentucky|M|Son|||10|9734 +3000|AZ|Mohave County|Desert Hills CDP|1839|0|5|Konderla|Malik|2996|Dominican Republic|M|Son|||4|9735 +3000|AZ|Mohave County|Desert Hills CDP|1839|0|6|Konderla|Dwayne|3000|Missouri|M|Son|||0|9736 + +3000|PA|Mercer County|Findley township|1840|0|1|Morath|Shon Mikel|2947|New York|M|Head|||53|9737 +3000|PA|Mercer County|Findley township|1840|0|2|Morath|Tatyana|2967|New Mexico|F|Spouse|||33|9738 +3000|PA|Mercer County|Findley township|1840|0|3|Morath|Jody|2987|Nebraska|M|Son|||13|9739 +3000|PA|Mercer County|Findley township|1840|0|4|Morath|Asa|2991|Czech Republic|M|Son|||9|9740 +3000|PA|Mercer County|Findley township|1840|0|5|Morath|Virgil|2995|New Mexico|M|Son|||5|9741 +3000|PA|Mercer County|Findley township|1840|0|6|Morath|Stacy Phil|2999|Louisiana|M|Son|||1|9742 + +3000|ME|York County|York town|1841|0|1|Gruber|Son|2949|Tennessee|M|Head|||51|9743 +3000|ME|York County|York town|1841|0|2|Gruber|Thelma|2958|Ohio|F|Spouse|||42|9744 +3000|ME|York County|York town|1841|0|3|Gruber|Heath|2978|Ohio|M|Son|||22|9745 +3000|ME|York County|York town|1841|0|4|Gruber|Jame|2982|North Dakota|M|Son|||18|9746 +3000|ME|York County|York town|1841|0|5|Gruber|Evette|2986|Minnesota|F|Daughter|||14|9747 +3000|ME|York County|York town|1841|0|6|Gruber|Margarite|2996|North Dakota|F|Daughter|||4|9748 +3000|ME|York County|York town|1841|0|7|Gruber|Rebekah Ray|2998|Honduras|F|Daughter|||2|9749 + +3000|IA|Sac County|Schaller city|1842|0|1|Seacord|Everett Bernie|2975|Texas|M|Head|||25|9750 +3000|IA|Sac County|Schaller city|1842|0|2|Seacord|Elaine|2982|North Carolina|F|Spouse|||18|9751 + +3000|ME|Aroostook County|Weston town|1843|0|1|Washington|Claudio Norris|2965|Georgia|M|Head|||35|9752 +3000|ME|Aroostook County|Weston town|1843|0|2|Washington|Guillermo|2997|Connecticut|M|Son|||3|9753 +3000|ME|Aroostook County|Weston town|1843|0|3|Washington|Jess|2999|Vermont|M|Son|||1|9754 + +3000|MI|Manistee County|Parkdale CDP|1844|0|1|Sinclair|Nicholas Dewayne|2961|Nebraska|M|Head|||39|9755 +3000|MI|Manistee County|Parkdale CDP|1844|0|2|Sinclair|Johnathan|2988|Tennessee|M|Son|||12|9756 +3000|MI|Manistee County|Parkdale CDP|1844|0|3|Sinclair|Bernita|2990|South Carolina|F|Daughter|||10|9757 +3000|MI|Manistee County|Parkdale CDP|1844|0|4|Sinclair|Amos|2998|New Mexico|M|Son|||2|9758 +3000|MI|Manistee County|Parkdale CDP|1844|0|5|Sinclair|Meta|3000|South Carolina|F|Daughter|||0|9759 + +3000|TX|Harris County|Cloverleaf CDP|1845|0|1|Abalos|Alexander Antonia|2972|Maine|M|Head|||28|9760 +3000|TX|Harris County|Cloverleaf CDP|1845|0|2|Abalos|Emmett|2993|Argentina|M|Son|||7|9761 +3000|TX|Harris County|Cloverleaf CDP|1845|0|3|Abalos|Christian|2995|Delaware|M|Son|||5|9762 +3000|TX|Harris County|Cloverleaf CDP|1845|0|4|Abalos|Shona|2999|Oregon|F|Daughter|||1|9763 + +3000|PA|Fayette County|Deer Lake CDP|1846|0|1|Shappen|Werner Odell|2938|Michigan|M|Head|||62|9764 +3000|PA|Fayette County|Deer Lake CDP|1846|0|2|Shappen|Johnson|2973|Nebraska|M|Son|||27|9765 +3000|PA|Fayette County|Deer Lake CDP|1846|0|3|Shappen|Alfreda Arianne|2987|North Carolina|F|Daughter|||13|9766 +3000|PA|Fayette County|Deer Lake CDP|1846|0|4|Shappen|Sachiko|2989|New Jersey|F|Daughter|||11|9767 +3000|PA|Fayette County|Deer Lake CDP|1846|0|5|Shappen|Carol|2995|Portugal|M|Son|||5|9768 + +3000|WA|Whatcom County|Everson city|1847|0|1|Vanert|Frederic Jed|2944|Missouri|M|Head|||56|9769 +3000|WA|Whatcom County|Everson city|1847|0|2|Vanert|Ricardo|2982|French Guiana|M|Son|||18|9770 +3000|WA|Whatcom County|Everson city|1847|0|3|Vanert|Kareem Ignacio|2986|Arkansas|M|Son|||14|9771 +3000|WA|Whatcom County|Everson city|1847|0|4|Vanert|Jessie|2992|Serbia|M|Son|||8|9772 +3000|WA|Whatcom County|Everson city|1847|0|5|Vanert|Theresa|2994|South Carolina|F|Daughter|||6|9773 +3000|WA|Whatcom County|Everson city|1847|0|6|Vanert|Burma|2996|Connecticut|F|Daughter|||4|9774 +3000|WA|Whatcom County|Everson city|1847|0|7|Vanert|Shanti|3000|Montana|F|Daughter|||0|9775 + +3000|IA|Fremont County|Hamburg city|1848|0|1|Ogburn|Deandre Arlen|2955|Kentucky|M|Head|||45|9776 +3000|IA|Fremont County|Hamburg city|1848|0|2|Ogburn|Brittni|2954|Minnesota|F|Spouse|||46|9777 +3000|IA|Fremont County|Hamburg city|1848|0|3|Ogburn|Gregg|2990|Iran, Islamic Republic Of|M|Son|||10|9778 +3000|IA|Fremont County|Hamburg city|1848|0|4|Ogburn|Charity|2994|Missouri|F|Daughter|||6|9779 + +3000|AR|Saline County|Traskwood city|1849|0|1|Hesler|Hipolito Daren|2947|West Virginia|M|Head|||53|9780 +3000|AR|Saline County|Traskwood city|1849|0|2|Hesler|Logan Anette|2963|Rhode Island|F|Spouse|||37|9781 +3000|AR|Saline County|Traskwood city|1849|0|3|Hesler|Dominga|2985|Kansas|F|Daughter|||15|9782 +3000|AR|Saline County|Traskwood city|1849|0|4|Hesler|Bree|2987|Faroe Islands|F|Daughter|||13|9783 +3000|AR|Saline County|Traskwood city|1849|0|5|Hesler|Gale|2993|Mississippi|M|Son|||7|9784 +3000|AR|Saline County|Traskwood city|1849|0|6|Hesler|Shanti|2995|Missouri|F|Daughter|||5|9785 +3000|AR|Saline County|Traskwood city|1849|0|7|Hesler|Isabell Marlyn|2997|Namibia|F|Daughter|||3|9786 + +3000|NJ|Hunterdon County|Bloomsbury borough|1850|0|1|Bogan|William Ismael|2957|Saint Lucia|M|Head|||43|9787 +3000|NJ|Hunterdon County|Bloomsbury borough|1850|0|2|Bogan|Demetria|2967|Arizona|F|Spouse|||33|9788 +3000|NJ|Hunterdon County|Bloomsbury borough|1850|0|3|Bogan|Sherryl Cristine|2989|Texas|F|Daughter|||11|9789 +3000|NJ|Hunterdon County|Bloomsbury borough|1850|0|4|Bogan|Makeda|2991|Tennessee|F|Daughter|||9|9790 +3000|NJ|Hunterdon County|Bloomsbury borough|1850|0|5|Bogan|Carroll|2993|Virginia|M|Son|||7|9791 +3000|NJ|Hunterdon County|Bloomsbury borough|1850|0|6|Bogan|Moises|2997|Serbia|M|Son|||3|9792 +3000|NJ|Hunterdon County|Bloomsbury borough|1850|0|7|Bogan|Voncile Brittney|2999|South Dakota|F|Daughter|||1|9793 + +3000|PA|Berks County|Walnuttown CDP|1851|0|1|Oaxaca|Reginald Guy|2950|Texas|M|Head|||50|9794 +3000|PA|Berks County|Walnuttown CDP|1851|0|2|Oaxaca|Clora|2970|Alabama|F|Spouse|||30|9795 +3000|PA|Berks County|Walnuttown CDP|1851|0|3|Oaxaca|Cortez|2992|Utah|M|Son|||8|9796 +3000|PA|Berks County|Walnuttown CDP|1851|0|4|Oaxaca|Hunter|2994|Christmas Island|M|Son|||6|9797 +3000|PA|Berks County|Walnuttown CDP|1851|0|5|Oaxaca|Onita|2998|Virginia|F|Daughter|||2|9798 +3000|PA|Berks County|Walnuttown CDP|1851|0|6|Oaxaca|Magdalen|3000|New York|F|Daughter|||0|9799 + +3000|IL|Fulton County|Fairview village|1852|0|1|Fritts|Alphonso|2937|Albania|M|Head|||63|9800 +3000|IL|Fulton County|Fairview village|1852|0|2|Fritts|Selina|2960|United Arab Emirates|F|Spouse|||40|9801 +3000|IL|Fulton County|Fairview village|1852|0|3|Fritts|Annis Rema|2984|Mississippi|F|Daughter|||16|9802 +3000|IL|Fulton County|Fairview village|1852|0|4|Fritts|Gerry|2986|Guyana|F|Daughter|||14|9803 +3000|IL|Fulton County|Fairview village|1852|0|5|Fritts|Sammie|2990|Georgia|M|Son|||10|9804 +3000|IL|Fulton County|Fairview village|1852|0|6|Fritts|Caryl Salina|2992|South Dakota|F|Daughter|||8|9805 +3000|IL|Fulton County|Fairview village|1852|0|7|Fritts|Will|2994|Belgium|M|Son|||6|9806 +3000|IL|Fulton County|Fairview village|1852|0|8|Fritts|Daniele|2996|North Dakota|F|Daughter|||4|9807 +3000|IL|Fulton County|Fairview village|1852|0|9|Fritts|Kasey|3000|Arizona|M|Son|||0|9808 + +3000|AL|Tuscaloosa County|Tuscaloosa city|1853|0|1|Harles|Natasha|2960|Massachusetts|F|Head|||40|9809 +3000|AL|Tuscaloosa County|Tuscaloosa city|1853|0|2|Harles|Mei Dorcas|2986|Wyoming|F|Daughter|||14|9810 +3000|AL|Tuscaloosa County|Tuscaloosa city|1853|0|3|Harles|Lucila|2988|New Jersey|F|Daughter|||12|9811 +3000|AL|Tuscaloosa County|Tuscaloosa city|1853|0|4|Harles|Maile|2990|Georgia|F|Daughter|||10|9812 +3000|AL|Tuscaloosa County|Tuscaloosa city|1853|0|5|Harles|Dana|2992|Wyoming|M|Son|||8|9813 +3000|AL|Tuscaloosa County|Tuscaloosa city|1853|0|6|Harles|Stephane|2994|Mississippi|F|Daughter|||6|9814 +3000|AL|Tuscaloosa County|Tuscaloosa city|1853|0|7|Harles|Kelvin|3000|Massachusetts|M|Son|||0|9815 + +3000|NM|De Baca County|Fort Sumner village|1854|0|1|Petkoff|Ciera|2945|Grenada|F|Head|||55|9816 +3000|NM|De Baca County|Fort Sumner village|1854|0|2|Petkoff|Charmain|2971|Alabama|F|Daughter|||29|9817 +3000|NM|De Baca County|Fort Sumner village|1854|0|3|Petkoff|Ramon|2979|Antigua And Barbuda|M|Son|||21|9818 +3000|NM|De Baca County|Fort Sumner village|1854|0|4|Petkoff|Josh|2987|Colorado|M|Son|||13|9819 +3000|NM|De Baca County|Fort Sumner village|1854|0|5|Petkoff|Robbie|2989|Bulgaria|M|Son|||11|9820 +3000|NM|De Baca County|Fort Sumner village|1854|0|6|Petkoff|Lon|2993|New Hampshire|M|Son|||7|9821 + +3000|NC|Bertie County|Colerain town|1855|0|1|Scurlock|Fernando Kenton|2952|Kentucky|M|Head|||48|9822 +3000|NC|Bertie County|Colerain town|1855|0|2|Scurlock|Gerry Alexa|2970|Tokelau|F|Spouse|||30|9823 +3000|NC|Bertie County|Colerain town|1855|0|3|Scurlock|Dewey|2990|Saudi Arabia|M|Son|||10|9824 +3000|NC|Bertie County|Colerain town|1855|0|4|Scurlock|Particia|2992|Georgia|F|Daughter|||8|9825 +3000|NC|Bertie County|Colerain town|1855|0|5|Scurlock|Felipa|2996|Mississippi|F|Daughter|||4|9826 +3000|NC|Bertie County|Colerain town|1855|0|6|Scurlock|Trinidad|3000|Connecticut|M|Son|||0|9827 + +3000|MN|Douglas County|La Grand township|1856|0|1|Dockins|Melissa|2980|Delaware|F|Head|||20|9828 +3000|MN|Douglas County|La Grand township|1856|0|2|Dockins|Brandon|3000|Kansas|M|Son|||0|9829 + +3000|ND|Grant County|Leith city|1857|0|1|Spratt|Augustus Bertram|2939|Illinois|M|Head|||61|9830 +3000|ND|Grant County|Leith city|1857|0|2|Spratt|Jessi|2943|Indiana|F|Spouse|||57|9831 +3000|ND|Grant County|Leith city|1857|0|3|Spratt|Junior Chester|2977|California|M|Son|||23|9832 +3000|ND|Grant County|Leith city|1857|0|4|Spratt|Shanda Iona|2985|Albania|F|Daughter|||15|9833 +3000|ND|Grant County|Leith city|1857|0|5|Spratt|Robby|2989|Guam|M|Son|||11|9834 +3000|ND|Grant County|Leith city|1857|0|6|Spratt|Kristine|2991|North Dakota|F|Daughter|||9|9835 +3000|ND|Grant County|Leith city|1857|0|7|Spratt|Karole|2995|Virgin Islands, U.s.|F|Daughter|||5|9836 +3000|ND|Grant County|Leith city|1857|0|8|Spratt|Venetta|2999|Oklahoma|F|Daughter|||1|9837 + +3000|MI|Wayne County|Plymouth city|1858|0|1|Jordan|Greg Mark|2949|Wyoming|M|Head|||51|9838 +3000|MI|Wayne County|Plymouth city|1858|0|2|Jordan|Nola|2963|Kentucky|F|Spouse|||37|9839 +3000|MI|Wayne County|Plymouth city|1858|0|3|Jordan|Earle|2985|Bulgaria|M|Son|||15|9840 +3000|MI|Wayne County|Plymouth city|1858|0|4|Jordan|Lester|2987|Texas|M|Son|||13|9841 +3000|MI|Wayne County|Plymouth city|1858|0|5|Jordan|Merle|2989|Indiana|M|Son|||11|9842 +3000|MI|Wayne County|Plymouth city|1858|0|6|Jordan|Domenic|2999|South Dakota|M|Son|||1|9843 + +3000|GA|Upson County|Yatesville town|1859|0|1|Lovell|Dorian|2955|Minnesota|M|Head|||45|9844 +3000|GA|Upson County|Yatesville town|1859|0|2|Lovell|Sue|2976|Connecticut|F|Spouse|||24|9845 +3000|GA|Upson County|Yatesville town|1859|0|3|Lovell|Sherita|2996|North Dakota|F|Daughter|||4|9846 + +3000|ME|Aroostook County|Madawaska CDP|1860|0|1|Kline|Newton|2958|Rwanda|M|Head|||42|9847 +3000|ME|Aroostook County|Madawaska CDP|1860|0|2|Kline|Marietta|2976|Iowa|F|Spouse|||24|9848 +3000|ME|Aroostook County|Madawaska CDP|1860|0|3|Kline|Hosea|3000|Kansas|M|Son|||0|9849 + +3000|PA|Cambria County|Lilly borough|1861|0|1|Wulff|Elmo Jimmie|2958|Hawaii|M|Head|||42|9850 +3000|PA|Cambria County|Lilly borough|1861|0|2|Wulff|Paz|2997|New Jersey|F|Daughter|||3|9851 + +3000|PA|Greene County|Greensboro borough|1862|0|1|Dosch|Haywood Lauren|2948|Colorado|M|Head|||52|9852 +3000|PA|Greene County|Greensboro borough|1862|0|2|Dosch|Jane Asley|2953|New York|F|Spouse|||47|9853 +3000|PA|Greene County|Greensboro borough|1862|0|3|Dosch|Taneka Celesta|2975|Virginia|F|Daughter|||25|9854 +3000|PA|Greene County|Greensboro borough|1862|0|4|Dosch|Sammie|2993|Pennsylvania|F|Daughter|||7|9855 + +3000|MN|Sibley County|Gaylord city|1863|0|1|Crown|Dwayne Gale|2937|Florida|M|Head|||63|9856 +3000|MN|Sibley County|Gaylord city|1863|0|2|Crown|Tanja|2937|Illinois|F|Spouse|||63|9857 +3000|MN|Sibley County|Gaylord city|1863|0|3|Crown|Luke|2967|Tuvalu|M|Son|||33|9858 +3000|MN|Sibley County|Gaylord city|1863|0|4|Crown|Thaddeus|2969|Alaska|M|Son|||31|9859 +3000|MN|Sibley County|Gaylord city|1863|0|5|Crown|Truman|2989|Arkansas|M|Son|||11|9860 +3000|MN|Sibley County|Gaylord city|1863|0|6|Crown|Drew|2993|Oregon|M|Son|||7|9861 +3000|MN|Sibley County|Gaylord city|1863|0|7|Crown|Keven Jae|2997|South Carolina|M|Son|||3|9862 + +3000|MI|Leelanau County|Suttons Bay village|1864|0|1|Townsend|Michael Elmer|2970|Texas|M|Head|||30|9863 +3000|MI|Leelanau County|Suttons Bay village|1864|0|2|Townsend|Portia|2972|Utah|F|Spouse|||28|9864 +3000|MI|Leelanau County|Suttons Bay village|1864|0|3|Townsend|Roosevelt|2998|Marshall Islands|M|Son|||2|9865 +3000|MI|Leelanau County|Suttons Bay village|1864|0|4|Townsend|Huey|3000|Colorado|M|Son|||0|9866 + +3000|IL|Cook County, DuPage County|Chicago city|1865|0|1|Payne|Mervin Gayle|2968|New York|M|Head|||32|9867 +3000|IL|Cook County, DuPage County|Chicago city|1865|0|2|Payne|Luke|2990|Oklahoma|M|Son|||10|9868 +3000|IL|Cook County, DuPage County|Chicago city|1865|0|3|Payne|Mae|2994|Texas|F|Daughter|||6|9869 +3000|IL|Cook County, DuPage County|Chicago city|1865|0|4|Payne|Sheron|2998|British Indian Ocean Territory|F|Daughter|||2|9870 +3000|IL|Cook County, DuPage County|Chicago city|1865|0|5|Payne|Gia|3000|Alabama|F|Daughter|||0|9871 + +3000|AL|Monroe County|Excel town|1866|0|1|Ybarra|Nigel|2966|Jordan|M|Head|||34|9872 +3000|AL|Monroe County|Excel town|1866|0|2|Ybarra|Buffy|2962|Maryland|F|Spouse|||38|9873 +3000|AL|Monroe County|Excel town|1866|0|3|Ybarra|Lulu Gloria|2992|South Carolina|F|Daughter|||8|9874 +3000|AL|Monroe County|Excel town|1866|0|4|Ybarra|Mauro|2994|Oregon|M|Son|||6|9875 +3000|AL|Monroe County|Excel town|1866|0|5|Ybarra|Sau|2996|Missouri|F|Daughter|||4|9876 +3000|AL|Monroe County|Excel town|1866|0|6|Ybarra|Alexander|2998|Oregon|M|Son|||2|9877 + +3000|PA|Greene County|Nemacolin CDP|1867|0|1|Milardo|Maxwell Roosevelt|2938|Oklahoma|M|Head|||62|9878 +3000|PA|Greene County|Nemacolin CDP|1867|0|2|Milardo|Keira Yi|2938|Illinois|F|Spouse|||62|9879 +3000|PA|Greene County|Nemacolin CDP|1867|0|3|Milardo|Timothy|2966|Colorado|F|Daughter|||34|9880 +3000|PA|Greene County|Nemacolin CDP|1867|0|4|Milardo|Lester|2970|Colorado|F|Daughter|||30|9881 +3000|PA|Greene County|Nemacolin CDP|1867|0|5|Milardo|Rudy|2974|Wisconsin|M|Son|||26|9882 +3000|PA|Greene County|Nemacolin CDP|1867|0|6|Milardo|Rosaura|2984|Georgia|F|Daughter|||16|9883 +3000|PA|Greene County|Nemacolin CDP|1867|0|7|Milardo|Chong|2986|Nebraska|F|Daughter|||14|9884 +3000|PA|Greene County|Nemacolin CDP|1867|0|8|Milardo|Junior|2990|Oklahoma|M|Son|||10|9885 +3000|PA|Greene County|Nemacolin CDP|1867|0|9|Milardo|Dion|2992|West Virginia|F|Daughter|||8|9886 +3000|PA|Greene County|Nemacolin CDP|1867|0|10|Milardo|Desire|3000|Oklahoma|F|Daughter|||0|9887 + +3000|MI|Alger County|Rock River township|1868|0|1|Gomez|Danilo Max|2945|Rhode Island|M|Head|||55|9888 +3000|MI|Alger County|Rock River township|1868|0|2|Gomez|Ursula|2987|Colombia|F|Daughter|||13|9889 +3000|MI|Alger County|Rock River township|1868|0|3|Gomez|Jinny|2993|Hawaii|F|Daughter|||7|9890 +3000|MI|Alger County|Rock River township|1868|0|4|Gomez|Inga|2995|Alabama|F|Daughter|||5|9891 + +3000|GA|Macon County|Oglethorpe city|1869|0|1|Langill|Donte Palmer|2972|Mississippi|M|Head|||28|9892 +3000|GA|Macon County|Oglethorpe city|1869|0|2|Langill|Marlene|2983|Tennessee|F|Spouse|||17|9893 + +3000|FL|Orange County|Lake Buena Vista city|1870|0|1|Rohrig|Dudley|2951|Tennessee|M|Head|||49|9894 +3000|FL|Orange County|Lake Buena Vista city|1870|0|2|Rohrig|Michiko Cassandra|2971|Hawaii|F|Spouse|||29|9895 +3000|FL|Orange County|Lake Buena Vista city|1870|0|3|Rohrig|Gerardo|2991|Idaho|M|Son|||9|9896 +3000|FL|Orange County|Lake Buena Vista city|1870|0|4|Rohrig|Ahmed|2993|Micronesia, Federated States Of|M|Son|||7|9897 + +3000|TX|Dallas County, Ellis County|Ovilla city|1871|0|1|Schoon|Pat Alfredo|2959|Samoa|M|Head|||41|9898 +3000|TX|Dallas County, Ellis County|Ovilla city|1871|0|2|Schoon|Lanita|2965|Virgin Islands, U.s.|F|Spouse|||35|9899 +3000|TX|Dallas County, Ellis County|Ovilla city|1871|0|3|Schoon|Evangelina|2987|Kansas|F|Daughter|||13|9900 +3000|TX|Dallas County, Ellis County|Ovilla city|1871|0|4|Schoon|Elwood|2989|Arkansas|M|Son|||11|9901 +3000|TX|Dallas County, Ellis County|Ovilla city|1871|0|5|Schoon|Norma|2991|North Carolina|F|Daughter|||9|9902 +3000|TX|Dallas County, Ellis County|Ovilla city|1871|0|6|Schoon|Enola Lu|2995|Canada|F|Daughter|||5|9903 + +3000|GA|Newton County|Oxford city|1872|0|1|Griffin|Mendy|2940|Netherlands|F|Head|||60|9904 +3000|GA|Newton County|Oxford city|1872|0|2|Griffin|Lino|2964|Massachusetts|M|Son|||36|9905 +3000|GA|Newton County|Oxford city|1872|0|3|Griffin|Nannie Belle|2968|Mississippi|F|Daughter|||32|9906 +3000|GA|Newton County|Oxford city|1872|0|4|Griffin|Rich|2976|Michigan|M|Son|||24|9907 +3000|GA|Newton County|Oxford city|1872|0|5|Griffin|Mckenzie|2986|Louisiana|F|Daughter|||14|9908 +3000|GA|Newton County|Oxford city|1872|0|6|Griffin|Lanell|2988|Tennessee|F|Daughter|||12|9909 +3000|GA|Newton County|Oxford city|1872|0|7|Griffin|Candida|2994|Ohio|F|Daughter|||6|9910 +3000|GA|Newton County|Oxford city|1872|0|8|Griffin|Suzy|2998|New Mexico|F|Daughter|||2|9911 +3000|GA|Newton County|Oxford city|1872|0|9|Griffin|Vince|3000|India|M|Son|||0|9912 + +3000|MO|Scott County|Commerce village|1873|0|1|Nervis|Shirley Gale|2947|Connecticut|M|Head|||53|9913 +3000|MO|Scott County|Commerce village|1873|0|2|Nervis|Sacha|2955|Wisconsin|F|Spouse|||45|9914 +3000|MO|Scott County|Commerce village|1873|0|3|Nervis|Stacy|2989|Ohio|M|Son|||11|9915 +3000|MO|Scott County|Commerce village|1873|0|4|Nervis|Van Austin|2997|Michigan|M|Son|||3|9916 +3000|MO|Scott County|Commerce village|1873|0|5|Nervis|Shayna|2999|Anguilla|F|Daughter|||1|9917 + +3000|LA|Vermilion Parish|Abbeville city|1874|0|1|Bomia|Frankie Micheal|2958|Gabon|M|Head|||42|9918 +3000|LA|Vermilion Parish|Abbeville city|1874|0|2|Bomia|Freeda|2978|Montana|F|Spouse|||22|9919 +3000|LA|Vermilion Parish|Abbeville city|1874|0|3|Bomia|Tobias John|2998|Tennessee|M|Son|||2|9920 + +3000|NE|Clay County|Edgar city|1875|0|1|Wilson|Harry Lemuel|2939|Rhode Island|M|Head|||61|9921 +3000|NE|Clay County|Edgar city|1875|0|2|Wilson|Allyn|2944|Cote D'ivoire|F|Spouse|||56|9922 +3000|NE|Clay County|Edgar city|1875|0|3|Wilson|Kirstie Leisha|2968|Virgin Islands, U.s.|F|Daughter|||32|9923 +3000|NE|Clay County|Edgar city|1875|0|4|Wilson|Lilian|2970|New Jersey|F|Daughter|||30|9924 +3000|NE|Clay County|Edgar city|1875|0|5|Wilson|Claudio|2978|Illinois|M|Son|||22|9925 +3000|NE|Clay County|Edgar city|1875|0|6|Wilson|Steven|2980|Vermont|M|Son|||20|9926 +3000|NE|Clay County|Edgar city|1875|0|7|Wilson|Foster Sherwood|2982|Alabama|M|Son|||18|9927 +3000|NE|Clay County|Edgar city|1875|0|8|Wilson|Angelita|2988|Texas|F|Daughter|||12|9928 +3000|NE|Clay County|Edgar city|1875|0|9|Wilson|Shavon Lezlie|2990|Florida|F|Daughter|||10|9929 +3000|NE|Clay County|Edgar city|1875|0|10|Wilson|Francisca|3000|Minnesota|F|Daughter|||0|9930 + +3000|WI|Columbia County|Pacific town|1876|0|1|Sherif|Kirk Terrence|2950|Ohio|M|Head|||50|9931 +3000|WI|Columbia County|Pacific town|1876|0|2|Sherif|Meredith|2957|Wisconsin|F|Spouse|||43|9932 +3000|WI|Columbia County|Pacific town|1876|0|3|Sherif|Joseph|2983|Michigan|M|Son|||17|9933 +3000|WI|Columbia County|Pacific town|1876|0|4|Sherif|Vivienne Tambra|2985|Saint Kitts And Nevis|F|Daughter|||15|9934 +3000|WI|Columbia County|Pacific town|1876|0|5|Sherif|Shin|2987|New Mexico|F|Daughter|||13|9935 +3000|WI|Columbia County|Pacific town|1876|0|6|Sherif|Bart|2995|Wyoming|M|Son|||5|9936 +3000|WI|Columbia County|Pacific town|1876|0|7|Sherif|Pedro|2999|Maine|M|Son|||1|9937 + +3000|NM|Socorro County|Socorro city|1877|0|1|Jones|Sammie Young|2964|Iowa|M|Head|||36|9938 +3000|NM|Socorro County|Socorro city|1877|0|2|Jones|Sierra Ariel|2976|Alabama|F|Spouse|||24|9939 +3000|NM|Socorro County|Socorro city|1877|0|3|Jones|Wilton|2996|Equatorial Guinea|M|Son|||4|9940 +3000|NM|Socorro County|Socorro city|1877|0|4|Jones|Meri|2998|Texas|F|Daughter|||2|9941 + +3000|MI|Tuscola County|Novesta township|1878|0|1|Rohrbach|Ross Tom|2960|Iowa|M|Head|||40|9942 +3000|MI|Tuscola County|Novesta township|1878|0|2|Rohrbach|Joni|2970|Viet Nam|F|Spouse|||30|9943 +3000|MI|Tuscola County|Novesta township|1878|0|3|Rohrbach|Glenn|2990|Delaware|M|Son|||10|9944 +3000|MI|Tuscola County|Novesta township|1878|0|4|Rohrbach|Chong|2992|California|F|Daughter|||8|9945 +3000|MI|Tuscola County|Novesta township|1878|0|5|Rohrbach|Jonas|2998|California|M|Son|||2|9946 + +3000|PA|Allegheny County|Shaler township|1879|0|1|Hall|Jeffery Rolf|2948|Montana|M|Head|||52|9947 +3000|PA|Allegheny County|Shaler township|1879|0|2|Hall|Marissa|2969|Andorra|F|Spouse|||31|9948 +3000|PA|Allegheny County|Shaler township|1879|0|3|Hall|Angelo|2989|Pennsylvania|M|Son|||11|9949 +3000|PA|Allegheny County|Shaler township|1879|0|4|Hall|Harley|2991|Hawaii|M|Son|||9|9950 + +3000|DE|Kent County|Woodside town|1880|0|1|Kleinkopf|Luis Jerrod|2952|Hawaii|M|Head|||48|9951 +3000|DE|Kent County|Woodside town|1880|0|2|Kleinkopf|Tanika|2991|Ohio|F|Daughter|||9|9952 +3000|DE|Kent County|Woodside town|1880|0|3|Kleinkopf|Vita Barb|2993|Macedonia, The Former Yugoslav Republic Of|F|Daughter|||7|9953 + +3000|MN|Sibley County|Winthrop city|1881|0|1|Tracy|Leon Shelton|2978|Georgia|M|Head|||22|9954 +3000|MN|Sibley County|Winthrop city|1881|0|2|Tracy|Lawana|2980|Mississippi|F|Spouse|||20|9955 + +3000|MN|Todd County|Little Sauk township|1882|0|1|Kuester|Art Emile|2958|Virgin Islands, British|M|Head|||42|9956 +3000|MN|Todd County|Little Sauk township|1882|0|2|Kuester|Gene Fidelia|2982|Alabama|F|Spouse|||18|9957 + +3000|IL|Morgan County|South Jacksonville village|1883|0|1|Bellavance|Dustin|2942|Florida|M|Head|||58|9958 +3000|IL|Morgan County|South Jacksonville village|1883|0|2|Bellavance|Niki|2980|Portugal|F|Daughter|||20|9959 +3000|IL|Morgan County|South Jacksonville village|1883|0|3|Bellavance|Lela|2986|Arizona|F|Daughter|||14|9960 +3000|IL|Morgan County|South Jacksonville village|1883|0|4|Bellavance|Elin|2988|Netherlands Antilles|F|Daughter|||12|9961 +3000|IL|Morgan County|South Jacksonville village|1883|0|5|Bellavance|Jeannine|2992|Lebanon|F|Daughter|||8|9962 +3000|IL|Morgan County|South Jacksonville village|1883|0|6|Bellavance|Bernardine|2994|Illinois|F|Daughter|||6|9963 +3000|IL|Morgan County|South Jacksonville village|1883|0|7|Bellavance|Starr|3000|Georgia|F|Daughter|||0|9964 + +3000|MN|Fillmore County|Rushford city|1884|0|1|Harrison|Boyd Vincenzo|2971|Arizona|M|Head|||29|9965 +3000|MN|Fillmore County|Rushford city|1884|0|2|Harrison|Crystal Kendra|2967|Arizona|F|Spouse|||33|9966 +3000|MN|Fillmore County|Rushford city|1884|0|3|Harrison|Darryl|2989|Hawaii|M|Son|||11|9967 +3000|MN|Fillmore County|Rushford city|1884|0|4|Harrison|Devon|2991|Pennsylvania|M|Son|||9|9968 +3000|MN|Fillmore County|Rushford city|1884|0|5|Harrison|Delmer|2993|New Hampshire|M|Son|||7|9969 +3000|MN|Fillmore County|Rushford city|1884|0|6|Harrison|Maurice|2999|New Mexico|M|Son|||1|9970 + +3000|ME|Penobscot County|Brewer city|1885|0|1|Lober|Philip Bryant|2961|Nevada|M|Head|||39|9971 +3000|ME|Penobscot County|Brewer city|1885|0|2|Lober|Johana|2994|Utah|F|Daughter|||6|9972 + +3000|MN|Marshall County|Espelie township|1886|0|1|Hisey|Nilsa|2966|Tennessee|F|Head|||34|9973 +3000|MN|Marshall County|Espelie township|1886|0|2|Hisey|Noreen|2986|West Virginia|F|Daughter|||14|9974 +3000|MN|Marshall County|Espelie township|1886|0|3|Hisey|Clint|2988|Utah|M|Son|||12|9975 +3000|MN|Marshall County|Espelie township|1886|0|4|Hisey|Jadwiga|2990|Niue|F|Daughter|||10|9976 +3000|MN|Marshall County|Espelie township|1886|0|5|Hisey|Jimmy|2994|Mauritius|M|Son|||6|9977 +3000|MN|Marshall County|Espelie township|1886|0|6|Hisey|Quinton|3000|Utah|M|Son|||0|9978 + +3000|SC|Charleston County|Ravenel town|1887|0|1|Eyles|Johnie Archie|2961|Ohio|M|Head|||39|9979 +3000|SC|Charleston County|Ravenel town|1887|0|2|Eyles|Elwanda|2973|Connecticut|F|Spouse|||27|9980 +3000|SC|Charleston County|Ravenel town|1887|0|3|Eyles|Armanda|2993|California|F|Daughter|||7|9981 +3000|SC|Charleston County|Ravenel town|1887|0|4|Eyles|Sonia|2995|North Dakota|F|Daughter|||5|9982 +3000|SC|Charleston County|Ravenel town|1887|0|5|Eyles|Derek|2997|Georgia|M|Son|||3|9983 +3000|SC|Charleston County|Ravenel town|1887|0|6|Eyles|Cary|2999|Iowa|M|Son|||1|9984 + +3000|KS|Cherokee County|West Mineral city|1888|0|1|Squires|Garfield Austin|2975|Maryland|M|Head|||25|9985 +3000|KS|Cherokee County|West Mineral city|1888|0|2|Squires|Iliana|2972|Arkansas|F|Spouse|||28|9986 +3000|KS|Cherokee County|West Mineral city|1888|0|3|Squires|Jerold|2994|South Dakota|M|Son|||6|9987 +3000|KS|Cherokee County|West Mineral city|1888|0|4|Squires|Milan|3000|Virginia|M|Son|||0|9988 + +3000|TX|Guadalupe County|New Berlin city|1889|0|1|Baxley|Adolfo Wayne|2980|Nevada|M|Head|||20|9989 +3000|TX|Guadalupe County|New Berlin city|1889|0|2|Baxley|Donella|2979|Comoros|F|Spouse|||21|9990 +3000|TX|Guadalupe County|New Berlin city|1889|0|3|Baxley|Lela|2999|Virginia|F|Daughter|||1|9991 + +3000|NV|White Pine County|Lund CDP|1890|0|1|Cardin|Lanny Wes|2948|Michigan|M|Head|||52|9992 +3000|NV|White Pine County|Lund CDP|1890|0|2|Cardin|Ty Nathanial|2986|Tennessee|M|Son|||14|9993 +3000|NV|White Pine County|Lund CDP|1890|0|3|Cardin|Yuriko|3000|New York|F|Daughter|||0|9994 + +3000|TX|Lamar County|Roxton city|1891|0|1|Dresbach|Shayne|2970|New Hampshire|M|Head|||30|9995 +3000|TX|Lamar County|Roxton city|1891|0|2|Dresbach|Sylvia|2995|Ohio|F|Daughter|||5|9996 + +3000|HI|Honolulu County|Maunawili CDP|1892|0|1|Blankenship|Ronnie Jean|2978|Kentucky|M|Head|||22|9997 +3000|HI|Honolulu County|Maunawili CDP|1892|0|2|Blankenship|Millie|2976|Florida|F|Spouse|||24|9998 +3000|HI|Honolulu County|Maunawili CDP|1892|0|3|Blankenship|Abram Eldon|2996|North Dakota|M|Son|||4|9999 + +3000|NE|Dawes County|Chadron city|1893|0|1|Marsters|Clair Chung|2937|New Mexico|M|Head|||63|10000 +3000|NE|Dawes County|Chadron city|1893|0|2|Marsters|Aurelia|2942|Italy|F|Spouse|||58|10001 +3000|NE|Dawes County|Chadron city|1893|0|3|Marsters|Kerry|2970|Nevada|M|Son|||30|10002 +3000|NE|Dawes County|Chadron city|1893|0|4|Marsters|Aimee|2982|New Jersey|F|Daughter|||18|10003 +3000|NE|Dawes County|Chadron city|1893|0|5|Marsters|Modesta|2990|California|F|Daughter|||10|10004 +3000|NE|Dawes County|Chadron city|1893|0|6|Marsters|Cicely|2994|Missouri|F|Daughter|||6|10005 + +3000|ME|Somerset County|Madison town|1894|0|1|Allerton|Erasmo Desmond|2954|Oklahoma|M|Head|||46|10006 +3000|ME|Somerset County|Madison town|1894|0|2|Allerton|Velda|2966|Vermont|F|Spouse|||34|10007 +3000|ME|Somerset County|Madison town|1894|0|3|Allerton|Branda|2988|New Jersey|F|Daughter|||12|10008 +3000|ME|Somerset County|Madison town|1894|0|4|Allerton|Ricarda|2992|Tennessee|F|Daughter|||8|10009 +3000|ME|Somerset County|Madison town|1894|0|5|Allerton|Domenic|2998|Rhode Island|M|Son|||2|10010 +3000|ME|Somerset County|Madison town|1894|0|6|Allerton|Michel|3000|Michigan|M|Son|||0|10011 + +3000|MN|Blue Earth County|Eagle Lake city|1895|0|1|Hardman|Clyde Long|2965|Djibouti|M|Head|||35|10012 +3000|MN|Blue Earth County|Eagle Lake city|1895|0|2|Hardman|Mandie|2962|Oklahoma|F|Spouse|||38|10013 +3000|MN|Blue Earth County|Eagle Lake city|1895|0|3|Hardman|Louie|2982|Iowa|M|Son|||18|10014 +3000|MN|Blue Earth County|Eagle Lake city|1895|0|4|Hardman|Micah|2986|Ohio|M|Son|||14|10015 +3000|MN|Blue Earth County|Eagle Lake city|1895|0|5|Hardman|Chi Toney|2990|Guinea-bissau|M|Son|||10|10016 +3000|MN|Blue Earth County|Eagle Lake city|1895|0|6|Hardman|Zackary|2992|Idaho|M|Son|||8|10017 +3000|MN|Blue Earth County|Eagle Lake city|1895|0|7|Hardman|Frances|2994|Utah|M|Son|||6|10018 +3000|MN|Blue Earth County|Eagle Lake city|1895|0|8|Hardman|Alida Carolann|2996|Maine|F|Daughter|||4|10019 +3000|MN|Blue Earth County|Eagle Lake city|1895|0|9|Hardman|Mae|2998|Idaho|F|Daughter|||2|10020 +3000|MN|Blue Earth County|Eagle Lake city|1895|0|10|Hardman|Yvonne|3000|West Virginia|F|Daughter|||0|10021 + +3000|SC|Marion County|Sellers town|1896|0|1|Bechtold|Deshawn Wm|2959|Pennsylvania|M|Head|||41|10022 +3000|SC|Marion County|Sellers town|1896|0|2|Bechtold|Sharell|2978|New Mexico|F|Spouse|||22|10023 +3000|SC|Marion County|Sellers town|1896|0|3|Bechtold|Henrietta|3000|Cuba|F|Daughter|||0|10024 + +3000|OR|Polk County|Rickreall CDP|1897|0|1|Stewart|Jamal Cleo|2942|New Hampshire|M|Head|||58|10025 +3000|OR|Polk County|Rickreall CDP|1897|0|2|Stewart|Josefa|2940|Pennsylvania|F|Spouse|||60|10026 +3000|OR|Polk County|Rickreall CDP|1897|0|3|Stewart|Dewey|2964|Niger|M|Son|||36|10027 +3000|OR|Polk County|Rickreall CDP|1897|0|4|Stewart|Alessandra|2972|Louisiana|F|Daughter|||28|10028 +3000|OR|Polk County|Rickreall CDP|1897|0|5|Stewart|Norine Cleora|2976|Nepal|F|Daughter|||24|10029 +3000|OR|Polk County|Rickreall CDP|1897|0|6|Stewart|Shelley|2982|Argentina|F|Daughter|||18|10030 +3000|OR|Polk County|Rickreall CDP|1897|0|7|Stewart|Magda|2986|Kentucky|F|Daughter|||14|10031 +3000|OR|Polk County|Rickreall CDP|1897|0|8|Stewart|Tad Arnoldo|2990|Alabama|M|Son|||10|10032 +3000|OR|Polk County|Rickreall CDP|1897|0|9|Stewart|Toi|2998|South Dakota|F|Daughter|||2|10033 + +3000|PR|Coamo Municipio|Los Llanos comunidad|1898|0|1|Foye|Lawrence Carl|2945|Hawaii|M|Head|||55|10034 +3000|PR|Coamo Municipio|Los Llanos comunidad|1898|0|2|Foye|Maryland|2969|Utah|F|Spouse|||31|10035 +3000|PR|Coamo Municipio|Los Llanos comunidad|1898|0|3|Foye|Mellisa|2995|New Jersey|F|Daughter|||5|10036 +3000|PR|Coamo Municipio|Los Llanos comunidad|1898|0|4|Foye|Carmela|2997|Nevada|F|Daughter|||3|10037 +3000|PR|Coamo Municipio|Los Llanos comunidad|1898|0|5|Foye|Marnie Dionna|2999|Arizona|F|Daughter|||1|10038 + +3000|MI|Chippewa County|Kinross charter township|1899|0|1|Galluzzo|Silas Karl|2972|Hawaii|M|Head|||28|10039 +3000|MI|Chippewa County|Kinross charter township|1899|0|2|Galluzzo|Shaunna Jeanett|2972|Illinois|F|Spouse|||28|10040 +3000|MI|Chippewa County|Kinross charter township|1899|0|3|Galluzzo|Ossie|2992|Maryland|F|Daughter|||8|10041 +3000|MI|Chippewa County|Kinross charter township|1899|0|4|Galluzzo|Norberto|2996|Ohio|M|Son|||4|10042 +3000|MI|Chippewa County|Kinross charter township|1899|0|5|Galluzzo|Bernice Alline|2998|Oregon|F|Daughter|||2|10043 + +3000|OK|Sequoyah County|Roland town|1900|0|1|Guenin|Eugene Eric|2980|Maryland|M|Head|||20|10044 +3000|OK|Sequoyah County|Roland town|1900|0|2|Guenin|Glinda|2984|Alabama|F|Spouse|||16|10045 + +3000|MA|Franklin County|South Deerfield CDP|1901|0|1|Dubray|Randolph Caleb|2959|Australia|M|Head|||41|10046 +3000|MA|Franklin County|South Deerfield CDP|1901|0|2|Dubray|Ludie|2960|Georgia|F|Spouse|||40|10047 +3000|MA|Franklin County|South Deerfield CDP|1901|0|3|Dubray|Earl|2980|Maryland|M|Son|||20|10048 +3000|MA|Franklin County|South Deerfield CDP|1901|0|4|Dubray|Homer|2982|West Virginia|M|Son|||18|10049 +3000|MA|Franklin County|South Deerfield CDP|1901|0|5|Dubray|Micha|2984|Utah|F|Daughter|||16|10050 +3000|MA|Franklin County|South Deerfield CDP|1901|0|6|Dubray|Rafael|2986|Idaho|M|Son|||14|10051 +3000|MA|Franklin County|South Deerfield CDP|1901|0|7|Dubray|Elvin|2992|Oregon|M|Son|||8|10052 +3000|MA|Franklin County|South Deerfield CDP|1901|0|8|Dubray|Jonathon Richie|2996|North Dakota|M|Son|||4|10053 +3000|MA|Franklin County|South Deerfield CDP|1901|0|9|Dubray|Mathew|3000|Vermont|M|Son|||0|10054 + +3000|NY|Nassau County|Salisbury CDP|1902|0|1|Calonsag|Dewey Glen|2962|Oregon|M|Head|||38|10055 +3000|NY|Nassau County|Salisbury CDP|1902|0|2|Calonsag|Virgil Josie|2975|Norway|F|Spouse|||25|10056 +3000|NY|Nassau County|Salisbury CDP|1902|0|3|Calonsag|Edgardo|2997|Oregon|M|Son|||3|10057 + +3000|MI|Benzie County|Weldon township|1903|0|1|Ogans|Glenn|2948|North Dakota|M|Head|||52|10058 +3000|MI|Benzie County|Weldon township|1903|0|2|Ogans|Angelia|2962|Oregon|F|Spouse|||38|10059 +3000|MI|Benzie County|Weldon township|1903|0|3|Ogans|Vita Ines|2982|Illinois|F|Daughter|||18|10060 +3000|MI|Benzie County|Weldon township|1903|0|4|Ogans|Newton|2986|Florida|M|Son|||14|10061 +3000|MI|Benzie County|Weldon township|1903|0|5|Ogans|Dewey|2988|Washington|M|Son|||12|10062 +3000|MI|Benzie County|Weldon township|1903|0|6|Ogans|Vance|2990|Arkansas|M|Son|||10|10063 +3000|MI|Benzie County|Weldon township|1903|0|7|Ogans|Burton|2994|Ohio|M|Son|||6|10064 +3000|MI|Benzie County|Weldon township|1903|0|8|Ogans|Odis|3000|California|M|Son|||0|10065 + +3000|NY|Nassau County|Baldwin Harbor CDP|1904|0|1|Penders|Keneth Darrel|2948|Iowa|M|Head|||52|10066 +3000|NY|Nassau County|Baldwin Harbor CDP|1904|0|2|Penders|Shala|2963|Maine|F|Spouse|||37|10067 +3000|NY|Nassau County|Baldwin Harbor CDP|1904|0|3|Penders|Macie|2987|Maryland|F|Daughter|||13|10068 +3000|NY|Nassau County|Baldwin Harbor CDP|1904|0|4|Penders|Christa|2989|Nevada|F|Daughter|||11|10069 +3000|NY|Nassau County|Baldwin Harbor CDP|1904|0|5|Penders|Audie|2991|Arizona|F|Daughter|||9|10070 +3000|NY|Nassau County|Baldwin Harbor CDP|1904|0|6|Penders|Evan|2993|Michigan|M|Son|||7|10071 +3000|NY|Nassau County|Baldwin Harbor CDP|1904|0|7|Penders|Daisy|2995|Illinois|F|Daughter|||5|10072 +3000|NY|Nassau County|Baldwin Harbor CDP|1904|0|8|Penders|Freeda|2997|Texas|F|Daughter|||3|10073 +3000|NY|Nassau County|Baldwin Harbor CDP|1904|0|9|Penders|Sandy|2999|Tanzania, United Republic Of|M|Son|||1|10074 + +3000|NY|Otsego County|Edmeston town|1905|0|1|Dudack|Luke Nicolas|2938|Saint Lucia|M|Head|||62|10075 +3000|NY|Otsego County|Edmeston town|1905|0|2|Dudack|Sharika|2966|Ohio|F|Daughter|||34|10076 +3000|NY|Otsego County|Edmeston town|1905|0|3|Dudack|Edwina|2974|Texas|F|Daughter|||26|10077 +3000|NY|Otsego County|Edmeston town|1905|0|4|Dudack|Else|2982|Iowa|F|Daughter|||18|10078 +3000|NY|Otsego County|Edmeston town|1905|0|5|Dudack|George|2986|Mississippi|F|Daughter|||14|10079 +3000|NY|Otsego County|Edmeston town|1905|0|6|Dudack|Clarence Jarrett|2990|Nevada|M|Son|||10|10080 +3000|NY|Otsego County|Edmeston town|1905|0|7|Dudack|Amos|2996|Michigan|M|Son|||4|10081 +3000|NY|Otsego County|Edmeston town|1905|0|8|Dudack|Kaci|2998|Texas|F|Daughter|||2|10082 + +3000|AZ|Navajo County|Seba Dalkai CDP|1906|0|1|Bowring|Martin Deandre|2965|Colorado|M|Head|||35|10083 +3000|AZ|Navajo County|Seba Dalkai CDP|1906|0|2|Bowring|Usha|2974|Rhode Island|F|Spouse|||26|10084 +3000|AZ|Navajo County|Seba Dalkai CDP|1906|0|3|Bowring|Gwyn|2994|North Carolina|F|Daughter|||6|10085 +3000|AZ|Navajo County|Seba Dalkai CDP|1906|0|4|Bowring|Otis|2996|Arkansas|M|Son|||4|10086 +3000|AZ|Navajo County|Seba Dalkai CDP|1906|0|5|Bowring|Pamela|2998|Missouri|F|Daughter|||2|10087 + +3000|NM|Grant County|Cobre CDP|1907|0|1|Heybrock|Sue|2967|Utah|F|Head|||33|10088 +3000|NM|Grant County|Cobre CDP|1907|0|2|Heybrock|Filiberto|2987|Mississippi|M|Son|||13|10089 +3000|NM|Grant County|Cobre CDP|1907|0|3|Heybrock|Karissa|2991|Germany|F|Daughter|||9|10090 + +3000|ME|Penobscot County|Milford town|1908|0|1|Novas|Hulda|2977|Nevada|F|Head|||23|10091 +3000|ME|Penobscot County|Milford town|1908|0|2|Novas|Franklyn|2999|Connecticut|M|Son|||1|10092 + +3000|MI|Missaukee County|Lake township|1909|0|1|Daehler|Dan|2938|Iceland|M|Head|||62|10093 +3000|MI|Missaukee County|Lake township|1909|0|2|Daehler|My|2943|Wisconsin|F|Spouse|||57|10094 +3000|MI|Missaukee County|Lake township|1909|0|3|Daehler|Ivana|2973|Virginia|F|Daughter|||27|10095 +3000|MI|Missaukee County|Lake township|1909|0|4|Daehler|Morris|2977|Alabama|M|Son|||23|10096 +3000|MI|Missaukee County|Lake township|1909|0|5|Daehler|Mozelle|2979|New Hampshire|F|Daughter|||21|10097 +3000|MI|Missaukee County|Lake township|1909|0|6|Daehler|Willena|2983|Mississippi|F|Daughter|||17|10098 +3000|MI|Missaukee County|Lake township|1909|0|7|Daehler|Kareem|2987|Montana|M|Son|||13|10099 +3000|MI|Missaukee County|Lake township|1909|0|8|Daehler|Barrett|2991|Georgia|M|Son|||9|10100 +3000|MI|Missaukee County|Lake township|1909|0|9|Daehler|Kurt Sammy|2993|Ohio|M|Son|||7|10101 +3000|MI|Missaukee County|Lake township|1909|0|10|Daehler|Eveline|2995|Wisconsin|F|Daughter|||5|10102 +3000|MI|Missaukee County|Lake township|1909|0|11|Daehler|Tula|2997|Oklahoma|F|Daughter|||3|10103 + +3000|IL|Cook County, DuPage County|Bensenville village|1910|0|1|Doyel|Maximo Byron|2937|Pennsylvania|M|Head|||63|10104 +3000|IL|Cook County, DuPage County|Bensenville village|1910|0|2|Doyel|Emily|2973|California|F|Daughter|||27|10105 +3000|IL|Cook County, DuPage County|Bensenville village|1910|0|3|Doyel|Donny|2983|North Carolina|M|Son|||17|10106 +3000|IL|Cook County, DuPage County|Bensenville village|1910|0|4|Doyel|Johnnie|2985|Haiti|F|Daughter|||15|10107 +3000|IL|Cook County, DuPage County|Bensenville village|1910|0|5|Doyel|Antony|2993|Vermont|M|Son|||7|10108 +3000|IL|Cook County, DuPage County|Bensenville village|1910|0|6|Doyel|Lilla|2999|Alaska|F|Daughter|||1|10109 + +3000|OK|Adair County|West Peavine CDP|1911|0|1|Clouse|Preston Hugh|2953|Nevada|M|Head|||47|10110 +3000|OK|Adair County|West Peavine CDP|1911|0|2|Clouse|Honey|2954|Arkansas|F|Spouse|||46|10111 +3000|OK|Adair County|West Peavine CDP|1911|0|3|Clouse|Sean|2986|Louisiana|M|Son|||14|10112 +3000|OK|Adair County|West Peavine CDP|1911|0|4|Clouse|Emily|2990|South Dakota|F|Daughter|||10|10113 +3000|OK|Adair County|West Peavine CDP|1911|0|5|Clouse|Edwardo|2992|Washington|M|Son|||8|10114 +3000|OK|Adair County|West Peavine CDP|1911|0|6|Clouse|Herlinda|2994|Missouri|F|Daughter|||6|10115 +3000|OK|Adair County|West Peavine CDP|1911|0|7|Clouse|Kati Cassie|2996|Utah|F|Daughter|||4|10116 +3000|OK|Adair County|West Peavine CDP|1911|0|8|Clouse|Seymour|3000|Andorra|M|Son|||0|10117 + +3000|WI|Washburn County|Sarona town|1912|0|1|Peterson|Octavio Lacy|2946|Cape Verde|M|Head|||54|10118 +3000|WI|Washburn County|Sarona town|1912|0|2|Peterson|Royce|2980|New Mexico|F|Daughter|||20|10119 +3000|WI|Washburn County|Sarona town|1912|0|3|Peterson|Jay|2986|Wyoming|M|Son|||14|10120 +3000|WI|Washburn County|Sarona town|1912|0|4|Peterson|Sun|2988|Pennsylvania|F|Daughter|||12|10121 +3000|WI|Washburn County|Sarona town|1912|0|5|Peterson|Claudia|2994|New Jersey|F|Daughter|||6|10122 + +3000|GA|Barrow County|Russell CDP|1913|0|1|Hamby|Rex Brent|2940|Northern Mariana Islands|M|Head|||60|10123 +3000|GA|Barrow County|Russell CDP|1913|0|2|Hamby|Melonie|2976|North Dakota|F|Daughter|||24|10124 +3000|GA|Barrow County|Russell CDP|1913|0|3|Hamby|Cindi|2980|Tennessee|F|Daughter|||20|10125 +3000|GA|Barrow County|Russell CDP|1913|0|4|Hamby|Mark|2988|Samoa|F|Daughter|||12|10126 +3000|GA|Barrow County|Russell CDP|1913|0|5|Hamby|Deon|2992|South Carolina|M|Son|||8|10127 + +3000|MT|Carbon County|Boyd CDP|1914|0|1|Alarcon|Roger Benny|2938|West Virginia|M|Head|||62|10128 +3000|MT|Carbon County|Boyd CDP|1914|0|2|Alarcon|Lorelei|2953|Michigan|F|Spouse|||47|10129 +3000|MT|Carbon County|Boyd CDP|1914|0|3|Alarcon|Rolf|2977|Wisconsin|M|Son|||23|10130 +3000|MT|Carbon County|Boyd CDP|1914|0|4|Alarcon|Marco|2979|Mississippi|M|Son|||21|10131 +3000|MT|Carbon County|Boyd CDP|1914|0|5|Alarcon|Florencio|2981|Indiana|M|Son|||19|10132 +3000|MT|Carbon County|Boyd CDP|1914|0|6|Alarcon|Lakeisha|2985|Oregon|F|Daughter|||15|10133 +3000|MT|Carbon County|Boyd CDP|1914|0|7|Alarcon|Tarsha|2999|Oklahoma|F|Daughter|||1|10134 + +3000|GA|Bartow County|Euharlee city|1915|0|1|Ketterer|Grover|2963|Indiana|M|Head|||37|10135 +3000|GA|Bartow County|Euharlee city|1915|0|2|Ketterer|Joanne|2962|Ohio|F|Spouse|||38|10136 +3000|GA|Bartow County|Euharlee city|1915|0|3|Ketterer|Tawny|2988|Angola|F|Daughter|||12|10137 +3000|GA|Bartow County|Euharlee city|1915|0|4|Ketterer|Dorathy|2994|New Hampshire|F|Daughter|||6|10138 +3000|GA|Bartow County|Euharlee city|1915|0|5|Ketterer|Russell|2998|Arkansas|F|Daughter|||2|10139 + +3000|IA|Wapello County|Agency city|1916|0|1|Chaves|Pete Wilmer|2961|New Hampshire|M|Head|||39|10140 +3000|IA|Wapello County|Agency city|1916|0|2|Chaves|Charmain|2967|Mississippi|F|Spouse|||33|10141 +3000|IA|Wapello County|Agency city|1916|0|3|Chaves|Lyle|2991|North Dakota|M|Son|||9|10142 +3000|IA|Wapello County|Agency city|1916|0|4|Chaves|Kaycee|2993|Tennessee|F|Daughter|||7|10143 +3000|IA|Wapello County|Agency city|1916|0|5|Chaves|Chauncey|2995|Zimbabwe|M|Son|||5|10144 +3000|IA|Wapello County|Agency city|1916|0|6|Chaves|Marty|2999|New York|M|Son|||1|10145 + +3000|WI|Kenosha County|Bristol town|1917|0|1|Vernet|Frankie Tanner|2953|Alabama|M|Head|||47|10146 +3000|WI|Kenosha County|Bristol town|1917|0|2|Vernet|Cayla|2955|Connecticut|F|Spouse|||45|10147 +3000|WI|Kenosha County|Bristol town|1917|0|3|Vernet|Rosario|2979|Idaho|M|Son|||21|10148 +3000|WI|Kenosha County|Bristol town|1917|0|4|Vernet|Clifford|2991|Pennsylvania|M|Son|||9|10149 +3000|WI|Kenosha County|Bristol town|1917|0|5|Vernet|Jackie Palmer|2993|Virginia|M|Son|||7|10150 +3000|WI|Kenosha County|Bristol town|1917|0|6|Vernet|Shan|2999|Pennsylvania|F|Daughter|||1|10151 + +3000|KS|Anderson County|Colony city|1918|0|1|Lynch|Glen Calvin|2972|Nebraska|M|Head|||28|10152 +3000|KS|Anderson County|Colony city|1918|0|2|Lynch|Jules|2994|Colorado|M|Son|||6|10153 +3000|KS|Anderson County|Colony city|1918|0|3|Lynch|Felipe|2998|Michigan|M|Son|||2|10154 + +3000|VA|Botetourt County|Blue Ridge CDP|1919|0|1|Aeschliman|Christian Truman|2968|Arkansas|M|Head|||32|10155 +3000|VA|Botetourt County|Blue Ridge CDP|1919|0|2|Aeschliman|Erica|2971|Connecticut|F|Spouse|||29|10156 +3000|VA|Botetourt County|Blue Ridge CDP|1919|0|3|Aeschliman|Morgan|2991|Colorado|M|Son|||9|10157 +3000|VA|Botetourt County|Blue Ridge CDP|1919|0|4|Aeschliman|Emmitt|2993|Mississippi|M|Son|||7|10158 +3000|VA|Botetourt County|Blue Ridge CDP|1919|0|5|Aeschliman|Prince|2995|United States|M|Son|||5|10159 +3000|VA|Botetourt County|Blue Ridge CDP|1919|0|6|Aeschliman|Denna|2997|Nevada|F|Daughter|||3|10160 + +3000|MT|Phillips County|Whitewater CDP|1920|0|1|Skillan|Latrina|2965|United Arab Emirates|F|Head|||35|10161 +3000|MT|Phillips County|Whitewater CDP|1920|0|2|Skillan|Ulysses Elvis|2985|Minnesota|M|Son|||15|10162 +3000|MT|Phillips County|Whitewater CDP|1920|0|3|Skillan|Darrick|2993|Wisconsin|M|Son|||7|10163 +3000|MT|Phillips County|Whitewater CDP|1920|0|4|Skillan|Dustin|2995|West Virginia|M|Son|||5|10164 +3000|MT|Phillips County|Whitewater CDP|1920|0|5|Skillan|Bobette|2997|Florida|F|Daughter|||3|10165 + +3000|MN|Marshall County|Nelson Park township|1921|0|1|Hilliard|Roberto Woodrow|2939|Georgia|M|Head|||61|10166 +3000|MN|Marshall County|Nelson Park township|1921|0|2|Hilliard|Cecily|2978|Cape Verde|F|Daughter|||22|10167 +3000|MN|Marshall County|Nelson Park township|1921|0|3|Hilliard|Jacinto|2986|New Mexico|M|Son|||14|10168 +3000|MN|Marshall County|Nelson Park township|1921|0|4|Hilliard|Marget|2992|Hawaii|F|Daughter|||8|10169 +3000|MN|Marshall County|Nelson Park township|1921|0|5|Hilliard|Sharika Kia|2998|Massachusetts|F|Daughter|||2|10170 +3000|MN|Marshall County|Nelson Park township|1921|0|6|Hilliard|Terry|3000|New York|F|Daughter|||0|10171 + +3000|TX|Denton County|Highland Village city|1922|0|1|Sherley|Damien Bryant|2957|Michigan|M|Head|||43|10172 +3000|TX|Denton County|Highland Village city|1922|0|2|Sherley|Luvenia|2956|Connecticut|F|Spouse|||44|10173 +3000|TX|Denton County|Highland Village city|1922|0|3|Sherley|Garret|2976|Montana|M|Son|||24|10174 +3000|TX|Denton County|Highland Village city|1922|0|4|Sherley|Nicky|2980|Alaska|M|Son|||20|10175 +3000|TX|Denton County|Highland Village city|1922|0|5|Sherley|Miguelina|2988|Lesotho|F|Daughter|||12|10176 +3000|TX|Denton County|Highland Village city|1922|0|6|Sherley|Ezra|2994|Utah|M|Son|||6|10177 +3000|TX|Denton County|Highland Village city|1922|0|7|Sherley|Logan|3000|Arizona|M|Son|||0|10178 + +3000|MN|Polk County|Sullivan township|1923|0|1|Baxley|Jarod Granville|2948|Maine|M|Head|||52|10179 +3000|MN|Polk County|Sullivan township|1923|0|2|Baxley|Salley|2967|Illinois|F|Spouse|||33|10180 +3000|MN|Polk County|Sullivan township|1923|0|3|Baxley|Kori Leilani|2987|Alabama|F|Daughter|||13|10181 +3000|MN|Polk County|Sullivan township|1923|0|4|Baxley|Taryn|2991|Missouri|F|Daughter|||9|10182 +3000|MN|Polk County|Sullivan township|1923|0|5|Baxley|Darrel|2993|Georgia|M|Son|||7|10183 +3000|MN|Polk County|Sullivan township|1923|0|6|Baxley|Edward|2995|Michigan|M|Son|||5|10184 +3000|MN|Polk County|Sullivan township|1923|0|7|Baxley|Jackqueline|2997|Maryland|F|Daughter|||3|10185 + +3000|WI|Juneau County|Kildare town|1924|0|1|Hoffman|Trenton Jamey|2980|Georgia|M|Head|||20|10186 +3000|WI|Juneau County|Kildare town|1924|0|2|Hoffman|Calista|2978|Utah|F|Spouse|||22|10187 + +3000|MI|Emmet County|Bliss township|1925|0|1|Crawford|Richie Lamont|2970|Minnesota|M|Head|||30|10188 +3000|MI|Emmet County|Bliss township|1925|0|2|Crawford|Darcy|2973|Virgin Islands, U.s.|F|Spouse|||27|10189 +3000|MI|Emmet County|Bliss township|1925|0|3|Crawford|Rickie|2995|Georgia|M|Son|||5|10190 +3000|MI|Emmet County|Bliss township|1925|0|4|Crawford|Nana|2997|Tennessee|F|Daughter|||3|10191 + +3000|NY|Erie County|Sardinia town|1926|0|1|Nurse|Markus Drew|2984|Arkansas|M|Head|||16|10192 +3000|NY|Erie County|Sardinia town|1926|0|2|Nurse|Lorita|2984|Montana|F|Spouse|||16|10193 + +3000|NE|Gosper County|Smithfield village|1927|0|1|Eure|Chas Donnell|2957|Minnesota|M|Head|||43|10194 +3000|NE|Gosper County|Smithfield village|1927|0|2|Eure|Nam|2966|Texas|F|Spouse|||34|10195 +3000|NE|Gosper County|Smithfield village|1927|0|3|Eure|Calvin|2986|South Dakota|M|Son|||14|10196 +3000|NE|Gosper County|Smithfield village|1927|0|4|Eure|Estelle|2988|Thailand|F|Daughter|||12|10197 +3000|NE|Gosper County|Smithfield village|1927|0|5|Eure|Armando|2990|New Mexico|M|Son|||10|10198 +3000|NE|Gosper County|Smithfield village|1927|0|6|Eure|Jed|2992|Nigeria|M|Son|||8|10199 +3000|NE|Gosper County|Smithfield village|1927|0|7|Eure|Reed|2998|Kansas|M|Son|||2|10200 + +3000|WI|Green County|Monroe city|1928|0|1|Dorsey|Demetrice Odessa|2983|Austria|F|Head|||17|10201 + +3000|NC|Durham County, Orange County|Chapel Hill town|1929|0|1|Wenrich|Colin Ed|2948|Arkansas|M|Head|||52|10202 +3000|NC|Durham County, Orange County|Chapel Hill town|1929|0|2|Wenrich|Cordia|2953|West Virginia|F|Spouse|||47|10203 +3000|NC|Durham County, Orange County|Chapel Hill town|1929|0|3|Wenrich|Dee|2977|Nevada|M|Son|||23|10204 +3000|NC|Durham County, Orange County|Chapel Hill town|1929|0|4|Wenrich|Kai|2983|North Carolina|F|Daughter|||17|10205 +3000|NC|Durham County, Orange County|Chapel Hill town|1929|0|5|Wenrich|Tomeka|2985|Missouri|F|Daughter|||15|10206 +3000|NC|Durham County, Orange County|Chapel Hill town|1929|0|6|Wenrich|Jess|2989|California|M|Son|||11|10207 +3000|NC|Durham County, Orange County|Chapel Hill town|1929|0|7|Wenrich|Carita|2993|Arizona|F|Daughter|||7|10208 +3000|NC|Durham County, Orange County|Chapel Hill town|1929|0|8|Wenrich|Alethea|2999|North Carolina|F|Daughter|||1|10209 + +3000|LA|Calcasieu Parish|Gillis CDP|1930|0|1|Seneker|Otis Malik|2979|Arkansas|M|Head|||21|10210 +3000|LA|Calcasieu Parish|Gillis CDP|1930|0|2|Seneker|Damaris|2984|Kentucky|F|Spouse|||16|10211 + +3000|ME|Androscoggin County|Poland town|1931|0|1|Roudybush|Dwayne Rusty|2949|Hawaii|M|Head|||51|10212 +3000|ME|Androscoggin County|Poland town|1931|0|2|Roudybush|Emma|2972|Kentucky|F|Spouse|||28|10213 +3000|ME|Androscoggin County|Poland town|1931|0|3|Roudybush|Hai|2992|Kiribati|M|Son|||8|10214 +3000|ME|Androscoggin County|Poland town|1931|0|4|Roudybush|Billi|2996|New York|F|Daughter|||4|10215 +3000|ME|Androscoggin County|Poland town|1931|0|5|Roudybush|Ardelle|2998|Minnesota|F|Daughter|||2|10216 +3000|ME|Androscoggin County|Poland town|1931|0|6|Roudybush|Maira|3000|Wisconsin|F|Daughter|||0|10217 + +3000|MT|Jefferson County|Cardwell CDP|1932|0|1|Isaac|Eldon Eliseo|2964|Mauritania|M|Head|||36|10218 +3000|MT|Jefferson County|Cardwell CDP|1932|0|2|Isaac|Dina|2965|Connecticut|F|Spouse|||35|10219 +3000|MT|Jefferson County|Cardwell CDP|1932|0|3|Isaac|Hassan|2985|Iraq|M|Son|||15|10220 +3000|MT|Jefferson County|Cardwell CDP|1932|0|4|Isaac|Rubye|2993|Oregon|F|Daughter|||7|10221 +3000|MT|Jefferson County|Cardwell CDP|1932|0|5|Isaac|Vance|2995|Alabama|M|Son|||5|10222 + +3000|OK|Beckham County|Erick city|1933|0|1|Dragos|Bernie Shad|2972|Tennessee|M|Head|||28|10223 +3000|OK|Beckham County|Erick city|1933|0|2|Dragos|Lettie|2969|Vermont|F|Spouse|||31|10224 +3000|OK|Beckham County|Erick city|1933|0|3|Dragos|Reggie|2989|Alaska|M|Son|||11|10225 +3000|OK|Beckham County|Erick city|1933|0|4|Dragos|Pok Niki|2991|Arizona|F|Daughter|||9|10226 +3000|OK|Beckham County|Erick city|1933|0|5|Dragos|Rosario|2993|Arizona|M|Son|||7|10227 +3000|OK|Beckham County|Erick city|1933|0|6|Dragos|Myron|2999|Mississippi|M|Son|||1|10228 + +3000|KS|Butler County|Benton city|1934|0|1|Flynn|Rhona|2966|San Marino|F|Head|||34|10229 +3000|KS|Butler County|Benton city|1934|0|2|Flynn|Alysha|2988|Mississippi|F|Daughter|||12|10230 +3000|KS|Butler County|Benton city|1934|0|3|Flynn|Olen Clay|2992|Virginia|M|Son|||8|10231 +3000|KS|Butler County|Benton city|1934|0|4|Flynn|Mohammad|2994|Missouri|M|Son|||6|10232 +3000|KS|Butler County|Benton city|1934|0|5|Flynn|Micheal|2996|New Mexico|F|Daughter|||4|10233 + +3000|IN|Washington County|Livonia town|1935|0|1|Trebon|Tammi|2956|New York|F|Head|||44|10234 +3000|IN|Washington County|Livonia town|1935|0|2|Trebon|Buffy|2990|California|F|Daughter|||10|10235 +3000|IN|Washington County|Livonia town|1935|0|3|Trebon|Von|2994|Texas|M|Son|||6|10236 +3000|IN|Washington County|Livonia town|1935|0|4|Trebon|Shannon|2996|West Virginia|M|Son|||4|10237 +3000|IN|Washington County|Livonia town|1935|0|5|Trebon|Dorsey|2998|Arizona|M|Son|||2|10238 +3000|IN|Washington County|Livonia town|1935|0|6|Trebon|Juan|3000|Louisiana|M|Son|||0|10239 + +3000|NH|Cheshire County|Swanzey town|1936|0|1|Vallerand|Pasquale|2942|Georgia|M|Head|||58|10240 +3000|NH|Cheshire County|Swanzey town|1936|0|2|Vallerand|Gloria|2966|New Caledonia|F|Spouse|||34|10241 +3000|NH|Cheshire County|Swanzey town|1936|0|3|Vallerand|Yolande|2986|Connecticut|F|Daughter|||14|10242 +3000|NH|Cheshire County|Swanzey town|1936|0|4|Vallerand|Tony|2988|Sri Lanka|M|Son|||12|10243 +3000|NH|Cheshire County|Swanzey town|1936|0|5|Vallerand|Randal|2992|Wisconsin|M|Son|||8|10244 +3000|NH|Cheshire County|Swanzey town|1936|0|6|Vallerand|Sid|2996|Oklahoma|M|Son|||4|10245 +3000|NH|Cheshire County|Swanzey town|1936|0|7|Vallerand|Kari|3000|Oklahoma|F|Daughter|||0|10246 + +3000|MI|Newaygo County|Grant city|1937|0|1|Pritchard|Johnnie|2938|Connecticut|M|Head|||62|10247 +3000|MI|Newaygo County|Grant city|1937|0|2|Pritchard|Delphia|2955|Niger|F|Spouse|||45|10248 +3000|MI|Newaygo County|Grant city|1937|0|3|Pritchard|Linwood Caleb|2983|Nepal|M|Son|||17|10249 +3000|MI|Newaygo County|Grant city|1937|0|4|Pritchard|Minerva|2985|Nevada|F|Daughter|||15|10250 +3000|MI|Newaygo County|Grant city|1937|0|5|Pritchard|Kendall|2993|Louisiana|M|Son|||7|10251 + +3000|IA|Clay County|Gillett Grove city|1938|0|1|Viramontes|Alexander Jorge|2971|Michigan|M|Head|||29|10252 +3000|IA|Clay County|Gillett Grove city|1938|0|2|Viramontes|Marjory|2980|Georgia|F|Spouse|||20|10253 + +3000|IL|Winnebago County|Rockton village|1939|0|1|Lund|Alan Wilton|2984|Washington|M|Head|||16|10254 +3000|IL|Winnebago County|Rockton village|1939|0|2|Lund|Marianna|2982|Missouri|F|Spouse|||18|10255 + +3000|MN|Nobles County|Ransom township|1940|0|1|Obrien|Lucas Nickolas|2958|Wyoming|M|Head|||42|10256 +3000|MN|Nobles County|Ransom township|1940|0|2|Obrien|Claire|2966|New Hampshire|F|Spouse|||34|10257 +3000|MN|Nobles County|Ransom township|1940|0|3|Obrien|Adrian|2986|Wisconsin|M|Son|||14|10258 +3000|MN|Nobles County|Ransom township|1940|0|4|Obrien|Annie|2990|Georgia|F|Daughter|||10|10259 +3000|MN|Nobles County|Ransom township|1940|0|5|Obrien|Pennie|2998|Trinidad And Tobago|F|Daughter|||2|10260 + +3000|WA|Clallam County|Carlsborg CDP|1941|0|1|Sutton|Adrian Kris|2959|Hawaii|M|Head|||41|10261 +3000|WA|Clallam County|Carlsborg CDP|1941|0|2|Sutton|Rosalie|2980|Georgia|F|Spouse|||20|10262 +3000|WA|Clallam County|Carlsborg CDP|1941|0|3|Sutton|Charolette|3000|Florida|F|Daughter|||0|10263 + +3000|AL|Lamar County|Millport town|1942|0|1|Bryant|Reggie Quentin|2945|Delaware|M|Head|||55|10264 +3000|AL|Lamar County|Millport town|1942|0|2|Bryant|Ola|2953|Rhode Island|F|Spouse|||47|10265 +3000|AL|Lamar County|Millport town|1942|0|3|Bryant|Gaston|2983|Alabama|M|Son|||17|10266 +3000|AL|Lamar County|Millport town|1942|0|4|Bryant|Erinn|2987|Kansas|F|Daughter|||13|10267 +3000|AL|Lamar County|Millport town|1942|0|5|Bryant|Janie Myrta|2989|Alabama|F|Daughter|||11|10268 +3000|AL|Lamar County|Millport town|1942|0|6|Bryant|Hermina|2991|Kentucky|F|Daughter|||9|10269 +3000|AL|Lamar County|Millport town|1942|0|7|Bryant|Edwin|2997|Florida|M|Son|||3|10270 +3000|AL|Lamar County|Millport town|1942|0|8|Bryant|Herta|2999|Pennsylvania|F|Daughter|||1|10271 + +3000|NY|Saratoga County|Edinburg town|1943|0|1|Lovinggood|Whitney|2945|Barbados|M|Head|||55|10272 +3000|NY|Saratoga County|Edinburg town|1943|0|2|Lovinggood|Kizzie|2958|Wyoming|F|Spouse|||42|10273 +3000|NY|Saratoga County|Edinburg town|1943|0|3|Lovinggood|Gianna|2990|Kyrgyzstan|F|Daughter|||10|10274 +3000|NY|Saratoga County|Edinburg town|1943|0|4|Lovinggood|Clemencia|2992|Belgium|F|Daughter|||8|10275 +3000|NY|Saratoga County|Edinburg town|1943|0|5|Lovinggood|Lasandra Teressa|2994|Maryland|F|Daughter|||6|10276 +3000|NY|Saratoga County|Edinburg town|1943|0|6|Lovinggood|Jamaal|2996|New Hampshire|M|Son|||4|10277 +3000|NY|Saratoga County|Edinburg town|1943|0|7|Lovinggood|Deshawn|2998|Kansas|M|Son|||2|10278 +3000|NY|Saratoga County|Edinburg town|1943|0|8|Lovinggood|Mickey|3000|Iowa|M|Son|||0|10279 + +3000|AK|Fairbanks North Star Borough|Harding-Birch Lakes CDP|1944|0|1|Kennedy|Ron Jamison|2947|Connecticut|M|Head|||53|10280 +3000|AK|Fairbanks North Star Borough|Harding-Birch Lakes CDP|1944|0|2|Kennedy|Ervin|2979|Idaho|M|Son|||21|10281 +3000|AK|Fairbanks North Star Borough|Harding-Birch Lakes CDP|1944|0|3|Kennedy|Parthenia Sirena|2981|North Dakota|F|Daughter|||19|10282 +3000|AK|Fairbanks North Star Borough|Harding-Birch Lakes CDP|1944|0|4|Kennedy|Titus|2987|Minnesota|M|Son|||13|10283 +3000|AK|Fairbanks North Star Borough|Harding-Birch Lakes CDP|1944|0|5|Kennedy|Zoe|2993|Tokelau|F|Daughter|||7|10284 +3000|AK|Fairbanks North Star Borough|Harding-Birch Lakes CDP|1944|0|6|Kennedy|Clayton|2997|Sudan|M|Son|||3|10285 + +3000|IN|Hancock County|Greenfield city|1945|0|1|Andrade|Donn Fred|2959|Mississippi|M|Head|||41|10286 +3000|IN|Hancock County|Greenfield city|1945|0|2|Andrade|Jayme Michele|2959|Martinique|F|Spouse|||41|10287 +3000|IN|Hancock County|Greenfield city|1945|0|3|Andrade|Carmela|2991|Oklahoma|F|Daughter|||9|10288 +3000|IN|Hancock County|Greenfield city|1945|0|4|Andrade|Eden|2995|Namibia|F|Daughter|||5|10289 +3000|IN|Hancock County|Greenfield city|1945|0|5|Andrade|Chong|2999|New Jersey|F|Daughter|||1|10290 + +3000|GA|Laurens County|Dublin city|1946|0|1|Kent|Rodrick Everette|2968|Nevada|M|Head|||32|10291 +3000|GA|Laurens County|Dublin city|1946|0|2|Kent|Louisa|2964|Indonesia|F|Spouse|||36|10292 +3000|GA|Laurens County|Dublin city|1946|0|3|Kent|Alberto|2984|Alaska|M|Son|||16|10293 +3000|GA|Laurens County|Dublin city|1946|0|4|Kent|Olin|2986|Massachusetts|M|Son|||14|10294 +3000|GA|Laurens County|Dublin city|1946|0|5|Kent|Myung|2988|Iowa|F|Daughter|||12|10295 +3000|GA|Laurens County|Dublin city|1946|0|6|Kent|Horace|2994|Virginia|M|Son|||6|10296 +3000|GA|Laurens County|Dublin city|1946|0|7|Kent|Oneida|2996|Rhode Island|F|Daughter|||4|10297 + +3000|PA|Clarion County|Callensburg borough|1947|0|1|Pollak|Alfonzo|2956|North Carolina|M|Head|||44|10298 +3000|PA|Clarion County|Callensburg borough|1947|0|2|Pollak|Frieda|2973|South Dakota|F|Spouse|||27|10299 +3000|PA|Clarion County|Callensburg borough|1947|0|3|Pollak|Nick|2993|Kentucky|M|Son|||7|10300 +3000|PA|Clarion County|Callensburg borough|1947|0|4|Pollak|Daren|2995|Alaska|M|Son|||5|10301 + +3000|AR|Johnson County|Clarksville city|1948|0|1|Guity|Bernardo Walker|2945|Nevada|M|Head|||55|10302 +3000|AR|Johnson County|Clarksville city|1948|0|2|Guity|Tora|2946|Colorado|F|Spouse|||54|10303 +3000|AR|Johnson County|Clarksville city|1948|0|3|Guity|Albertine|2974|Alaska|F|Daughter|||26|10304 +3000|AR|Johnson County|Clarksville city|1948|0|4|Guity|Haywood|2976|Nevada|M|Son|||24|10305 +3000|AR|Johnson County|Clarksville city|1948|0|5|Guity|Sarai|2986|Virginia|F|Daughter|||14|10306 +3000|AR|Johnson County|Clarksville city|1948|0|6|Guity|Antwan|2990|Mississippi|M|Son|||10|10307 +3000|AR|Johnson County|Clarksville city|1948|0|7|Guity|Dwayne|2994|Minnesota|M|Son|||6|10308 + +3000|NY|Dutchess County|Crown Heights CDP|1949|0|1|Bouler|Marty|2967|Nevada|M|Head|||33|10309 +3000|NY|Dutchess County|Crown Heights CDP|1949|0|2|Bouler|Chana|2963|Minnesota|F|Spouse|||37|10310 +3000|NY|Dutchess County|Crown Heights CDP|1949|0|3|Bouler|Carmelina|2989|North Carolina|F|Daughter|||11|10311 +3000|NY|Dutchess County|Crown Heights CDP|1949|0|4|Bouler|Angelika|2991|Oregon|F|Daughter|||9|10312 +3000|NY|Dutchess County|Crown Heights CDP|1949|0|5|Bouler|Sharmaine|2993|Oklahoma|F|Daughter|||7|10313 +3000|NY|Dutchess County|Crown Heights CDP|1949|0|6|Bouler|Glen|2997|Illinois|M|Son|||3|10314 + +3000|WI|Manitowoc County|Maribel village|1950|0|1|Woods|Sonja|2971|Maine|F|Head|||29|10315 +3000|WI|Manitowoc County|Maribel village|1950|0|2|Woods|Rey|2997|Virgin Islands, U.s.|M|Son|||3|10316 +3000|WI|Manitowoc County|Maribel village|1950|0|3|Woods|Jerlene|2999|Pennsylvania|F|Daughter|||1|10317 + +3000|MI|Montcalm County|Belvidere township|1951|0|1|Myers|Foster Trenton|2951|Maine|M|Head|||49|10318 +3000|MI|Montcalm County|Belvidere township|1951|0|2|Myers|Felipa Antonia|2973|Connecticut|F|Spouse|||27|10319 +3000|MI|Montcalm County|Belvidere township|1951|0|3|Myers|Olympia|2995|Oklahoma|F|Daughter|||5|10320 +3000|MI|Montcalm County|Belvidere township|1951|0|4|Myers|Agueda|2997|Virginia|F|Daughter|||3|10321 +3000|MI|Montcalm County|Belvidere township|1951|0|5|Myers|Darron|2999|Minnesota|M|Son|||1|10322 + +3000|TX|Cameron County|San Pedro CDP|1952|0|1|Bacolor|Vida|2952|Oklahoma|F|Head|||48|10323 +3000|TX|Cameron County|San Pedro CDP|1952|0|2|Bacolor|Salvador|2972|Idaho|M|Son|||28|10324 +3000|TX|Cameron County|San Pedro CDP|1952|0|3|Bacolor|Dorian|2980|Colorado|M|Son|||20|10325 +3000|TX|Cameron County|San Pedro CDP|1952|0|4|Bacolor|Homer Clinton|2982|Georgia|M|Son|||18|10326 +3000|TX|Cameron County|San Pedro CDP|1952|0|5|Bacolor|Gerardo|2998|Djibouti|M|Son|||2|10327 +3000|TX|Cameron County|San Pedro CDP|1952|0|6|Bacolor|Fiona|3000|Georgia|F|Daughter|||0|10328 + +3000|MN|St. Louis County|Buhl city|1953|0|1|Turner|Earnest Esteban|2945|Florida|M|Head|||55|10329 +3000|MN|St. Louis County|Buhl city|1953|0|2|Turner|Jessica|2969|Slovenia|F|Spouse|||31|10330 +3000|MN|St. Louis County|Buhl city|1953|0|3|Turner|Drema|2993|New Mexico|F|Daughter|||7|10331 +3000|MN|St. Louis County|Buhl city|1953|0|4|Turner|Lizzie|2995|Montana|F|Daughter|||5|10332 + +3000|MN|Faribault County|Winnebago city|1954|0|1|Leftwich|Raymond Irwin|2968|Rhode Island|M|Head|||32|10333 +3000|MN|Faribault County|Winnebago city|1954|0|2|Leftwich|Avril|2984|Wisconsin|F|Spouse|||16|10334 + +3000|IN|Huntington County|Warren town|1955|0|1|Moorehead|Dwight Von|2968|Minnesota|M|Head|||32|10335 + +3000|PA|Schuylkill County|South Manheim township|1956|0|1|Brady|Jame Aubrey|2940|Nebraska|M|Head|||60|10336 +3000|PA|Schuylkill County|South Manheim township|1956|0|2|Brady|Andres Cornell|2988|Kansas|M|Son|||12|10337 +3000|PA|Schuylkill County|South Manheim township|1956|0|3|Brady|Bradley|2992|Cameroon|M|Son|||8|10338 +3000|PA|Schuylkill County|South Manheim township|1956|0|4|Brady|Edward|2994|Iowa|M|Son|||6|10339 +3000|PA|Schuylkill County|South Manheim township|1956|0|5|Brady|Leonel|2996|Delaware|M|Son|||4|10340 +3000|PA|Schuylkill County|South Manheim township|1956|0|6|Brady|Jutta|2998|Delaware|F|Daughter|||2|10341 + +3000|TX|Ellis County|Midlothian city|1957|0|1|Corners|Rosario Hubert|2942|Mississippi|M|Head|||58|10342 +3000|TX|Ellis County|Midlothian city|1957|0|2|Corners|Marg Lorinda|2962|Paraguay|F|Spouse|||38|10343 +3000|TX|Ellis County|Midlothian city|1957|0|3|Corners|Jean|2988|Montana|M|Son|||12|10344 +3000|TX|Ellis County|Midlothian city|1957|0|4|Corners|Riley|3000|Oregon|M|Son|||0|10345 + +3000|ME|Hancock County|Brooksville town|1958|0|1|Hood|Kizzy|2951|Tennessee|F|Head|||49|10346 +3000|ME|Hancock County|Brooksville town|1958|0|2|Hood|Colleen|2977|Togo|F|Daughter|||23|10347 +3000|ME|Hancock County|Brooksville town|1958|0|3|Hood|Antionette|2983|Arkansas|F|Daughter|||17|10348 +3000|ME|Hancock County|Brooksville town|1958|0|4|Hood|Donovan|2985|Alaska|M|Son|||15|10349 +3000|ME|Hancock County|Brooksville town|1958|0|5|Hood|Taylor|2989|Maryland|F|Daughter|||11|10350 +3000|ME|Hancock County|Brooksville town|1958|0|6|Hood|Brooks|2991|Arkansas|M|Son|||9|10351 +3000|ME|Hancock County|Brooksville town|1958|0|7|Hood|Wilber Keneth|2997|Virginia|M|Son|||3|10352 +3000|ME|Hancock County|Brooksville town|1958|0|8|Hood|Jazmin|2999|Nebraska|F|Daughter|||1|10353 + +3000|AR|Lawrence County|Smithville town|1959|0|1|Franklin|Vance Christian|2964|Nevada|M|Head|||36|10354 + +3000|WI|Sawyer County|Winter village|1960|0|1|Infante|Victor Cordell|2949|Kansas|M|Head|||51|10355 +3000|WI|Sawyer County|Winter village|1960|0|2|Infante|Erlene|2968|Alabama|F|Spouse|||32|10356 +3000|WI|Sawyer County|Winter village|1960|0|3|Infante|Laci|2988|New Jersey|F|Daughter|||12|10357 +3000|WI|Sawyer County|Winter village|1960|0|4|Infante|Lloyd|2992|Nevada|M|Son|||8|10358 +3000|WI|Sawyer County|Winter village|1960|0|5|Infante|Sheldon|2998|Portugal|M|Son|||2|10359 +3000|WI|Sawyer County|Winter village|1960|0|6|Infante|Gerardo|3000|Niue|M|Son|||0|10360 + +3000|ND|Stutsman County|Jamestown city|1961|0|1|Weber|Bernard Frederic|2947|Marshall Islands|M|Head|||53|10361 +3000|ND|Stutsman County|Jamestown city|1961|0|2|Weber|Tommie|2975|Massachusetts|M|Son|||25|10362 +3000|ND|Stutsman County|Jamestown city|1961|0|3|Weber|Jeanine|2987|Mississippi|F|Daughter|||13|10363 +3000|ND|Stutsman County|Jamestown city|1961|0|4|Weber|Ross|2991|Wisconsin|M|Son|||9|10364 +3000|ND|Stutsman County|Jamestown city|1961|0|5|Weber|Dudley Donn|2997|Washington|M|Son|||3|10365 + +3000|PA|York County|Franklintown borough|1962|0|1|Martinez|Zack Beau|2943|Turkey|M|Head|||57|10366 +3000|PA|York County|Franklintown borough|1962|0|2|Martinez|Marhta|2949|Alaska|F|Spouse|||51|10367 +3000|PA|York County|Franklintown borough|1962|0|3|Martinez|Micheal|2987|Central African Republic|F|Daughter|||13|10368 +3000|PA|York County|Franklintown borough|1962|0|4|Martinez|Kathe|2989|Reunion|F|Daughter|||11|10369 +3000|PA|York County|Franklintown borough|1962|0|5|Martinez|Hubert|2995|Alabama|M|Son|||5|10370 +3000|PA|York County|Franklintown borough|1962|0|6|Martinez|Avery|2997|Sao Tome And Principe|F|Daughter|||3|10371 + +3000|TX|Haskell County, Jones County|Stamford city|1963|0|1|Qureshi|Twyla|2958|Fiji|F|Head|||42|10372 +3000|TX|Haskell County, Jones County|Stamford city|1963|0|2|Qureshi|Piedad Ethyl|2978|Arizona|F|Daughter|||22|10373 +3000|TX|Haskell County, Jones County|Stamford city|1963|0|3|Qureshi|Noble|2980|Minnesota|M|Son|||20|10374 +3000|TX|Haskell County, Jones County|Stamford city|1963|0|4|Qureshi|Carson|2986|Georgia|M|Son|||14|10375 +3000|TX|Haskell County, Jones County|Stamford city|1963|0|5|Qureshi|Francesco|2988|North Dakota|M|Son|||12|10376 +3000|TX|Haskell County, Jones County|Stamford city|1963|0|6|Qureshi|Joette|2996|Nebraska|F|Daughter|||4|10377 +3000|TX|Haskell County, Jones County|Stamford city|1963|0|7|Qureshi|Rich|3000|Georgia|M|Son|||0|10378 + +3000|IA|Jefferson County|Fairfield city|1964|0|1|Brown|Mikel Edwardo|2954|Maryland|M|Head|||46|10379 +3000|IA|Jefferson County|Fairfield city|1964|0|2|Brown|Cecille|2969|Vermont|F|Spouse|||31|10380 +3000|IA|Jefferson County|Fairfield city|1964|0|3|Brown|Byron|2991|Massachusetts|M|Son|||9|10381 +3000|IA|Jefferson County|Fairfield city|1964|0|4|Brown|Harrison|2993|Georgia|M|Son|||7|10382 +3000|IA|Jefferson County|Fairfield city|1964|0|5|Brown|Odis|2995|South Dakota|M|Son|||5|10383 +3000|IA|Jefferson County|Fairfield city|1964|0|6|Brown|Lucio|2997|Massachusetts|M|Son|||3|10384 + +3000|CT|Windham County|Hampton town|1965|0|1|Martin|Joel Vince|2955|Delaware|M|Head|||45|10385 +3000|CT|Windham County|Hampton town|1965|0|2|Martin|Reda|2955|New Hampshire|F|Spouse|||45|10386 +3000|CT|Windham County|Hampton town|1965|0|3|Martin|Dave|2975|Florida|M|Son|||25|10387 +3000|CT|Windham County|Hampton town|1965|0|4|Martin|Hester|2985|Utah|F|Daughter|||15|10388 +3000|CT|Windham County|Hampton town|1965|0|5|Martin|Robbyn|2987|North Carolina|F|Daughter|||13|10389 +3000|CT|Windham County|Hampton town|1965|0|6|Martin|Allen Hector|2989|Michigan|M|Son|||11|10390 +3000|CT|Windham County|Hampton town|1965|0|7|Martin|Jerold|2991|Puerto Rico|M|Son|||9|10391 +3000|CT|Windham County|Hampton town|1965|0|8|Martin|Joe|2993|Michigan|M|Son|||7|10392 +3000|CT|Windham County|Hampton town|1965|0|9|Martin|Nisha|2997|Maine|F|Daughter|||3|10393 + +3000|VT|Windsor County|Stockbridge town|1966|0|1|Daunt|Ty Monte|2970|Connecticut|M|Head|||30|10394 +3000|VT|Windsor County|Stockbridge town|1966|0|2|Daunt|Dotty|2967|Ohio|F|Spouse|||33|10395 +3000|VT|Windsor County|Stockbridge town|1966|0|3|Daunt|Delores|2993|Arkansas|F|Daughter|||7|10396 +3000|VT|Windsor County|Stockbridge town|1966|0|4|Daunt|Diann|2995|Arkansas|F|Daughter|||5|10397 +3000|VT|Windsor County|Stockbridge town|1966|0|5|Daunt|Reiko|2997|Mississippi|F|Daughter|||3|10398 + +3000|TX|Rains County|Emory city|1967|0|1|Jamieson|Elton Mel|2961|Alabama|M|Head|||39|10399 +3000|TX|Rains County|Emory city|1967|0|2|Jamieson|Jessenia Arlena|2974|New Jersey|F|Spouse|||26|10400 +3000|TX|Rains County|Emory city|1967|0|3|Jamieson|Neil|2994|Micronesia, Federated States Of|M|Son|||6|10401 +3000|TX|Rains County|Emory city|1967|0|4|Jamieson|Domenica|2996|Arkansas|F|Daughter|||4|10402 +3000|TX|Rains County|Emory city|1967|0|5|Jamieson|Terica|2998|Kentucky|F|Daughter|||2|10403 + +3000|KY|Lyon County|Eddyville city|1968|0|1|Sussman|Hobert|2945|Missouri|M|Head|||55|10404 +3000|KY|Lyon County|Eddyville city|1968|0|2|Sussman|Minh|2967|Virginia|F|Spouse|||33|10405 +3000|KY|Lyon County|Eddyville city|1968|0|3|Sussman|Jaclyn|2987|Rwanda|F|Daughter|||13|10406 +3000|KY|Lyon County|Eddyville city|1968|0|4|Sussman|Milan|2989|Utah|M|Son|||11|10407 +3000|KY|Lyon County|Eddyville city|1968|0|5|Sussman|Tawnya|2991|Georgia|F|Daughter|||9|10408 +3000|KY|Lyon County|Eddyville city|1968|0|6|Sussman|Ronnie Adam|2993|Colorado|M|Son|||7|10409 +3000|KY|Lyon County|Eddyville city|1968|0|7|Sussman|Joan|2995|North Dakota|F|Daughter|||5|10410 + +3000|OH|Mahoning County|Maple Ridge CDP|1969|0|1|Goyette|Eddie Thaddeus|2948|Botswana|M|Head|||52|10411 +3000|OH|Mahoning County|Maple Ridge CDP|1969|0|2|Goyette|Kirsten|2957|Aruba|F|Spouse|||43|10412 +3000|OH|Mahoning County|Maple Ridge CDP|1969|0|3|Goyette|Beverly|2981|Indiana|F|Daughter|||19|10413 +3000|OH|Mahoning County|Maple Ridge CDP|1969|0|4|Goyette|Donny|2987|Netherlands|M|Son|||13|10414 +3000|OH|Mahoning County|Maple Ridge CDP|1969|0|5|Goyette|Edison|2993|Lithuania|M|Son|||7|10415 +3000|OH|Mahoning County|Maple Ridge CDP|1969|0|6|Goyette|Antone|2995|Georgia|M|Son|||5|10416 +3000|OH|Mahoning County|Maple Ridge CDP|1969|0|7|Goyette|Krishna Angel|2997|Louisiana|F|Daughter|||3|10417 +3000|OH|Mahoning County|Maple Ridge CDP|1969|0|8|Goyette|Malcom|2999|Gabon|M|Son|||1|10418 + +3000|WI|Barron County|Crystal Lake town|1970|0|1|Semon|Leandro|2979|South Carolina|M|Head|||21|10419 +3000|WI|Barron County|Crystal Lake town|1970|0|2|Semon|Roselee|2984|Turkey|F|Spouse|||16|10420 + +3000|IN|Grant County|Sweetser town|1971|0|1|Abramowitz|Beau Horacio|2947|American Samoa|M|Head|||53|10421 +3000|IN|Grant County|Sweetser town|1971|0|2|Abramowitz|Luise|2963|New Jersey|F|Spouse|||37|10422 +3000|IN|Grant County|Sweetser town|1971|0|3|Abramowitz|Riley|2983|Mississippi|M|Son|||17|10423 +3000|IN|Grant County|Sweetser town|1971|0|4|Abramowitz|Sydney|2985|Austria|M|Son|||15|10424 +3000|IN|Grant County|Sweetser town|1971|0|5|Abramowitz|Jennefer|2987|Rhode Island|F|Daughter|||13|10425 +3000|IN|Grant County|Sweetser town|1971|0|6|Abramowitz|Scotty|2989|South Dakota|M|Son|||11|10426 +3000|IN|Grant County|Sweetser town|1971|0|7|Abramowitz|Barbar|2991|Micronesia, Federated States Of|F|Daughter|||9|10427 +3000|IN|Grant County|Sweetser town|1971|0|8|Abramowitz|Adell|2995|South Dakota|F|Daughter|||5|10428 +3000|IN|Grant County|Sweetser town|1971|0|9|Abramowitz|Sanda Un|2997|Iraq|F|Daughter|||3|10429 +3000|IN|Grant County|Sweetser town|1971|0|10|Abramowitz|Jason Elvin|2999|South Carolina|M|Son|||1|10430 + +3000|MA|Middlesex County|Marlborough city|1972|0|1|Panos|Sid Genaro|2973|Iowa|M|Head|||27|10431 +3000|MA|Middlesex County|Marlborough city|1972|0|2|Panos|Marshall|2974|Norway|F|Spouse|||26|10432 +3000|MA|Middlesex County|Marlborough city|1972|0|3|Panos|Edward|2994|Massachusetts|M|Son|||6|10433 +3000|MA|Middlesex County|Marlborough city|1972|0|4|Panos|Kassandra|2998|South Dakota|F|Daughter|||2|10434 + +3000|PA|Luzerne County|Pikes Creek CDP|1973|0|1|Chan|Olin Erich|2945|Connecticut|M|Head|||55|10435 +3000|PA|Luzerne County|Pikes Creek CDP|1973|0|2|Chan|Risa|2956|Hawaii|F|Spouse|||44|10436 +3000|PA|Luzerne County|Pikes Creek CDP|1973|0|3|Chan|Katrina|2978|Alabama|F|Daughter|||22|10437 +3000|PA|Luzerne County|Pikes Creek CDP|1973|0|4|Chan|Beatrice|2982|Israel|F|Daughter|||18|10438 +3000|PA|Luzerne County|Pikes Creek CDP|1973|0|5|Chan|Elease Vanesa|2990|Missouri|F|Daughter|||10|10439 +3000|PA|Luzerne County|Pikes Creek CDP|1973|0|6|Chan|Doris Dianna|3000|Turks And Caicos Islands|F|Daughter|||0|10440 + +3000|PA|Washington County|East Washington borough|1974|0|1|Nida|Zackary Johnie|2964|California|M|Head|||36|10441 +3000|PA|Washington County|East Washington borough|1974|0|2|Nida|Tilda|2983|Wyoming|F|Spouse|||17|10442 + +3000|WI|Brown County|Green Bay city|1975|0|1|Beurskens|Danny|2980|New Jersey|M|Head|||20|10443 +3000|WI|Brown County|Green Bay city|1975|0|2|Beurskens|Tawanna|2997|Missouri|F|Daughter|||3|10444 +3000|WI|Brown County|Green Bay city|1975|0|3|Beurskens|Anderson|2999|Cook Islands|M|Son|||1|10445 + +3000|MN|Douglas County|Kensington city|1976|0|1|Wedderburn|Austin Kareem|2969|Indonesia|M|Head|||31|10446 +3000|MN|Douglas County|Kensington city|1976|0|2|Wedderburn|Genevive|2974|North Carolina|F|Spouse|||26|10447 +3000|MN|Douglas County|Kensington city|1976|0|3|Wedderburn|Shanelle|2996|Massachusetts|F|Daughter|||4|10448 +3000|MN|Douglas County|Kensington city|1976|0|4|Wedderburn|Clyde|2998|Romania|M|Son|||2|10449 +3000|MN|Douglas County|Kensington city|1976|0|5|Wedderburn|Pamelia|3000|Michigan|F|Daughter|||0|10450 + +3000|MD|Frederick County|Sabillasville CDP|1977|0|1|Snider|Coleman Jared|2941|Idaho|M|Head|||59|10451 +3000|MD|Frederick County|Sabillasville CDP|1977|0|2|Snider|Hortense|2952|Oklahoma|F|Spouse|||48|10452 +3000|MD|Frederick County|Sabillasville CDP|1977|0|3|Snider|Wei|2972|Nevada|F|Daughter|||28|10453 +3000|MD|Frederick County|Sabillasville CDP|1977|0|4|Snider|Tena|2980|Kentucky|F|Daughter|||20|10454 +3000|MD|Frederick County|Sabillasville CDP|1977|0|5|Snider|Douglas|2986|Nepal|M|Son|||14|10455 +3000|MD|Frederick County|Sabillasville CDP|1977|0|6|Snider|Christoper|2990|Montenegro|M|Son|||10|10456 +3000|MD|Frederick County|Sabillasville CDP|1977|0|7|Snider|Dona|2992|Nepal|F|Daughter|||8|10457 +3000|MD|Frederick County|Sabillasville CDP|1977|0|8|Snider|Yuriko|2998|Missouri|F|Daughter|||2|10458 + +3000|AL|Jefferson County|Forestdale CDP|1978|0|1|Mayberry|Charley|2946|Hawaii|M|Head|||54|10459 +3000|AL|Jefferson County|Forestdale CDP|1978|0|2|Mayberry|Miss|2965|North Dakota|F|Spouse|||35|10460 +3000|AL|Jefferson County|Forestdale CDP|1978|0|3|Mayberry|Leandro Adolfo|2985|Colorado|M|Son|||15|10461 +3000|AL|Jefferson County|Forestdale CDP|1978|0|4|Mayberry|Laurette|2987|Heard Island And Mcdonald Islands|F|Daughter|||13|10462 +3000|AL|Jefferson County|Forestdale CDP|1978|0|5|Mayberry|Neomi|2989|South Dakota|F|Daughter|||11|10463 +3000|AL|Jefferson County|Forestdale CDP|1978|0|6|Mayberry|Terra|2991|Liberia|F|Daughter|||9|10464 +3000|AL|Jefferson County|Forestdale CDP|1978|0|7|Mayberry|Lena|2993|Mississippi|F|Daughter|||7|10465 + +3000|PA|Lycoming County|Shrewsbury township|1979|0|1|Nadoff|Woodrow Florencio|2957|Virginia|M|Head|||43|10466 +3000|PA|Lycoming County|Shrewsbury township|1979|0|2|Nadoff|Cheryle|2972|California|F|Spouse|||28|10467 +3000|PA|Lycoming County|Shrewsbury township|1979|0|3|Nadoff|Bernardo|2998|California|M|Son|||2|10468 + +3000|MN|Pennington County|Hickory township|1980|0|1|Nelson|Donny Christian|2953|Hawaii|M|Head|||47|10469 +3000|MN|Pennington County|Hickory township|1980|0|2|Nelson|Theda|2957|Denmark|F|Spouse|||43|10470 +3000|MN|Pennington County|Hickory township|1980|0|3|Nelson|Ebony|2981|Oregon|F|Daughter|||19|10471 +3000|MN|Pennington County|Hickory township|1980|0|4|Nelson|Lea|2985|Utah|F|Daughter|||15|10472 +3000|MN|Pennington County|Hickory township|1980|0|5|Nelson|Hugo|2991|North Dakota|M|Son|||9|10473 +3000|MN|Pennington County|Hickory township|1980|0|6|Nelson|Ernesto|2995|New York|M|Son|||5|10474 + +3000|PA|Lycoming County|Jordan township|1981|0|1|Gillespie|Neil Carson|2947|Pennsylvania|M|Head|||53|10475 +3000|PA|Lycoming County|Jordan township|1981|0|2|Gillespie|Alayna|2957|Texas|F|Spouse|||43|10476 +3000|PA|Lycoming County|Jordan township|1981|0|3|Gillespie|Mauro|2977|Ohio|M|Son|||23|10477 +3000|PA|Lycoming County|Jordan township|1981|0|4|Gillespie|Bibi|2983|Central African Republic|F|Daughter|||17|10478 +3000|PA|Lycoming County|Jordan township|1981|0|5|Gillespie|Kendall|2985|New York|M|Son|||15|10479 +3000|PA|Lycoming County|Jordan township|1981|0|6|Gillespie|Jayna|2989|New Hampshire|F|Daughter|||11|10480 +3000|PA|Lycoming County|Jordan township|1981|0|7|Gillespie|Jolyn|2991|Connecticut|F|Daughter|||9|10481 +3000|PA|Lycoming County|Jordan township|1981|0|8|Gillespie|Xuan Mark|2995|North Dakota|F|Daughter|||5|10482 +3000|PA|Lycoming County|Jordan township|1981|0|9|Gillespie|Elroy|2997|California|M|Son|||3|10483 +3000|PA|Lycoming County|Jordan township|1981|0|10|Gillespie|Edwin|2999|Kenya|M|Son|||1|10484 + +3000|MN|Wilkin County|Andrea township|1982|0|1|Hargrave|Dudley Bud|2966|Louisiana|M|Head|||34|10485 +3000|MN|Wilkin County|Andrea township|1982|0|2|Hargrave|Joeann Gennie|2979|Maine|F|Spouse|||21|10486 + +3000|PA|Warren County|Southwest township|1983|0|1|Martinez|Rudolf Norman|2949|Nebraska|M|Head|||51|10487 +3000|PA|Warren County|Southwest township|1983|0|2|Martinez|Madelyn|2950|Rhode Island|F|Spouse|||50|10488 +3000|PA|Warren County|Southwest township|1983|0|3|Martinez|Mary|2972|New York|F|Daughter|||28|10489 +3000|PA|Warren County|Southwest township|1983|0|4|Martinez|Kristal|2976|Rhode Island|F|Daughter|||24|10490 +3000|PA|Warren County|Southwest township|1983|0|5|Martinez|Evelyn|2982|Saudi Arabia|F|Daughter|||18|10491 +3000|PA|Warren County|Southwest township|1983|0|6|Martinez|Kaleigh|2988|Kansas|F|Daughter|||12|10492 +3000|PA|Warren County|Southwest township|1983|0|7|Martinez|Verna|2990|New Mexico|F|Daughter|||10|10493 +3000|PA|Warren County|Southwest township|1983|0|8|Martinez|Mattie Bennie|2994|Colorado|F|Daughter|||6|10494 +3000|PA|Warren County|Southwest township|1983|0|9|Martinez|Joellen|2996|Arizona|F|Daughter|||4|10495 + +3000|MI|Jackson County|Liberty township|1984|0|1|Jimenez|Patrick Blake|2948|South Dakota|M|Head|||52|10496 +3000|MI|Jackson County|Liberty township|1984|0|2|Jimenez|Tyisha Jenae|2972|Senegal|F|Spouse|||28|10497 +3000|MI|Jackson County|Liberty township|1984|0|3|Jimenez|Nancee|2992|Guam|F|Daughter|||8|10498 +3000|MI|Jackson County|Liberty township|1984|0|4|Jimenez|Stanley|2996|North Carolina|M|Son|||4|10499 + +3000|AZ|Apache County|Fort Defiance CDP|1985|0|1|Disharoon|Donald Zackary|2970|Michigan|M|Head|||30|10500 +3000|AZ|Apache County|Fort Defiance CDP|1985|0|2|Disharoon|Jeannie|2974|Mississippi|F|Spouse|||26|10501 +3000|AZ|Apache County|Fort Defiance CDP|1985|0|3|Disharoon|Georgianne|2994|Tennessee|F|Daughter|||6|10502 +3000|AZ|Apache County|Fort Defiance CDP|1985|0|4|Disharoon|Leana|2996|New Jersey|F|Daughter|||4|10503 +3000|AZ|Apache County|Fort Defiance CDP|1985|0|5|Disharoon|Fransisca|3000|Oregon|F|Daughter|||0|10504 + +3000|MN|Grant County|Ashby city|1986|0|1|Walka|Douglas|2946|Nebraska|M|Head|||54|10505 +3000|MN|Grant County|Ashby city|1986|0|2|Walka|Kathryne|2955|New Hampshire|F|Spouse|||45|10506 +3000|MN|Grant County|Ashby city|1986|0|3|Walka|Elenor|2977|Ohio|F|Daughter|||23|10507 +3000|MN|Grant County|Ashby city|1986|0|4|Walka|William Jimmie|2985|Montana|M|Son|||15|10508 +3000|MN|Grant County|Ashby city|1986|0|5|Walka|Karly|2987|Montana|F|Daughter|||13|10509 +3000|MN|Grant County|Ashby city|1986|0|6|Walka|John|2995|South Dakota|M|Son|||5|10510 + +3000|CA|Siskiyou County|McCloud CDP|1987|0|1|Petruzzi|Isaiah Emmett|2940|Tennessee|M|Head|||60|10511 +3000|CA|Siskiyou County|McCloud CDP|1987|0|2|Petruzzi|Carola|2937|Florida|F|Spouse|||63|10512 +3000|CA|Siskiyou County|McCloud CDP|1987|0|3|Petruzzi|Shirely|2967|Congo, The Democratic Republic Of The|F|Daughter|||33|10513 +3000|CA|Siskiyou County|McCloud CDP|1987|0|4|Petruzzi|Merissa|2985|Kansas|F|Daughter|||15|10514 +3000|CA|Siskiyou County|McCloud CDP|1987|0|5|Petruzzi|Zachary Ahmed|2989|Delaware|M|Son|||11|10515 +3000|CA|Siskiyou County|McCloud CDP|1987|0|6|Petruzzi|Cyrus|2995|Pennsylvania|M|Son|||5|10516 + +3000|MI|Cass County|Ontwa township|1988|0|1|Johnson|Romeo Darwin|2974|Croatia|M|Head|||26|10517 +3000|MI|Cass County|Ontwa township|1988|0|2|Johnson|Bethanie|2984|Washington|F|Spouse|||16|10518 + +3000|HI|Hawaii County|Pepeekeo CDP|1989|0|1|Esworthy|Al Tod|2969|Wisconsin|M|Head|||31|10519 +3000|HI|Hawaii County|Pepeekeo CDP|1989|0|2|Esworthy|Ranae|2976|Wisconsin|F|Spouse|||24|10520 +3000|HI|Hawaii County|Pepeekeo CDP|1989|0|3|Esworthy|Effie|2998|Kentucky|F|Daughter|||2|10521 +3000|HI|Hawaii County|Pepeekeo CDP|1989|0|4|Esworthy|Sina|3000|Ohio|F|Daughter|||0|10522 + +3000|NY|Delaware County|Tompkins town|1990|0|1|Musgrove|Ciera|2978|Maryland|F|Head|||22|10523 +3000|NY|Delaware County|Tompkins town|1990|0|2|Musgrove|Antonio|2998|Namibia|M|Son|||2|10524 +3000|NY|Delaware County|Tompkins town|1990|0|3|Musgrove|Criselda|3000|Wyoming|F|Daughter|||0|10525 + +3000|WI|Dane County|Mazomanie town|1991|0|1|Graves|Andera|2974|Washington|F|Head|||26|10526 +3000|WI|Dane County|Mazomanie town|1991|0|2|Graves|Lorrine|2994|Kazakstan|F|Daughter|||6|10527 +3000|WI|Dane County|Mazomanie town|1991|0|3|Graves|America|3000|Louisiana|F|Daughter|||0|10528 + +3000|MN|Mower County|Dexter township|1992|0|1|Stamand|Loyd Rolland|2982|Tennessee|M|Head|||18|10529 +3000|MN|Mower County|Dexter township|1992|0|2|Stamand|Robert|2979|South Africa|F|Spouse|||21|10530 +3000|MN|Mower County|Dexter township|1992|0|3|Stamand|Felipe Barrett|2999|California|M|Son|||1|10531 + +3000|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|1|Mccourt|Hilario Hoyt|2960|West Virginia|M|Head|||40|10532 +3000|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|2|Mccourt|Ilene|2957|Arizona|F|Spouse|||43|10533 +3000|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|3|Mccourt|Darcy|2977|New Mexico|F|Daughter|||23|10534 +3000|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|4|Mccourt|Ashlea|2983|Oregon|F|Daughter|||17|10535 +3000|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|5|Mccourt|Daren|2985|Georgia|M|Son|||15|10536 +3000|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|6|Mccourt|Lucretia|2987|Pennsylvania|F|Daughter|||13|10537 +3000|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|7|Mccourt|Julian|2995|Hawaii|M|Son|||5|10538 +3000|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|8|Mccourt|Clarice|2997|New Mexico|F|Daughter|||3|10539 +3000|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|9|Mccourt|Jonie|2999|Georgia|F|Daughter|||1|10540 + +3000|MI|Roscommon County|Gerrish township|1994|0|1|Blauser|Nigel Keith|2967|Iowa|M|Head|||33|10541 +3000|MI|Roscommon County|Gerrish township|1994|0|2|Blauser|Melani|2986|Tennessee|F|Daughter|||14|10542 +3000|MI|Roscommon County|Gerrish township|1994|0|3|Blauser|Perry Ernie|2988|Georgia|M|Son|||12|10543 +3000|MI|Roscommon County|Gerrish township|1994|0|4|Blauser|Antony|2994|Honduras|M|Son|||6|10544 +3000|MI|Roscommon County|Gerrish township|1994|0|5|Blauser|Eusebio|3000|Missouri|M|Son|||0|10545 + +3000|WI|Richland County|Yuba village|1995|0|1|Victoria|Erick Ivan|2953|South Dakota|M|Head|||47|10546 +3000|WI|Richland County|Yuba village|1995|0|2|Victoria|Jonathan|2990|Taiwan, Province Of China|M|Son|||10|10547 +3000|WI|Richland County|Yuba village|1995|0|3|Victoria|Leanne|2992|El Salvador|F|Daughter|||8|10548 +3000|WI|Richland County|Yuba village|1995|0|4|Victoria|Afton|2996|Florida|F|Daughter|||4|10549 +3000|WI|Richland County|Yuba village|1995|0|5|Victoria|Cornell Shad|3000|Maryland|M|Son|||0|10550 + +3000|LA|Concordia Parish|Spokane CDP|1996|0|1|Bluth|Keith Noah|2969|Alabama|M|Head|||31|10551 + +3000|UT|Duchesne County|Bluebell CDP|1997|0|1|Winsky|Rocco Marcelo|2963|Kentucky|M|Head|||37|10552 +3000|UT|Duchesne County|Bluebell CDP|1997|0|2|Winsky|Sydney Adriane|2972|Delaware|F|Spouse|||28|10553 +3000|UT|Duchesne County|Bluebell CDP|1997|0|3|Winsky|Keith|2994|West Virginia|M|Son|||6|10554 +3000|UT|Duchesne County|Bluebell CDP|1997|0|4|Winsky|Jeromy Nathan|2996|Indiana|M|Son|||4|10555 + +3000|IN|Union County|West College Corner town|1998|0|1|Baerg|Hector Dario|2974|Connecticut|M|Head|||26|10556 +3000|IN|Union County|West College Corner town|1998|0|2|Baerg|Duncan|2998|Connecticut|M|Son|||2|10557 + +3000|IN|LaPorte County|Wanatah town|1999|0|1|Parks|Samual Renaldo|2937|Comoros|M|Head|||63|10558 +3000|IN|LaPorte County|Wanatah town|1999|0|2|Parks|Ellyn Renate|2944|New York|F|Spouse|||56|10559 +3000|IN|LaPorte County|Wanatah town|1999|0|3|Parks|Alonso|2968|Kansas|M|Son|||32|10560 +3000|IN|LaPorte County|Wanatah town|1999|0|4|Parks|Christoper|2970|Louisiana|M|Son|||30|10561 +3000|IN|LaPorte County|Wanatah town|1999|0|5|Parks|Tomika Aundrea|2980|Wyoming|F|Daughter|||20|10562 +3000|IN|LaPorte County|Wanatah town|1999|0|6|Parks|Altagracia|2986|Utah|F|Daughter|||14|10563 +3000|IN|LaPorte County|Wanatah town|1999|0|7|Parks|Daniel|3000|Ecuador|F|Daughter|||0|10564 + diff -Nru cctools-7.0.22/doc/manuals/prune/examples/census/simulated_data/3010.1.txt cctools-7.1.2/doc/manuals/prune/examples/census/simulated_data/3010.1.txt --- cctools-7.0.22/doc/manuals/prune/examples/census/simulated_data/3010.1.txt 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/census/simulated_data/3010.1.txt 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,5909 @@ +3010|TX|Hockley County|Anton city|1|0|1|Gray|Wilber Lupe|2974|South Carolina|M|Head|||36|100001 +3010|TX|Hockley County|Anton city|1|0|2|Gray|Melia|2972|Delaware|F|Spouse|||38|100002 +3010|TX|Hockley County|Anton city|1|0|3|Gray|Myron|2996|Montana|M|Son|||14|100003 +3010|TX|Hockley County|Anton city|1|0|4|Gray|Tom|3001|TX|M|Son|||9|100004 +3010|TX|Hockley County|Anton city|1|0|5|Gray|Shelia|3003|TX|F|Daughter|||7|100005 +3010|TX|Hockley County|Anton city|1|0|6|Gray|Oleta|3007|TX|F|Daughter|||3|100006 +3010|TX|Hockley County|Anton city|1|0|7|Gray|Denny|3009|TX|M|Son|||1|100007 + +3010|MI|Muskegon County|Montague city|2|0|1|Steinour|Markus|2978|Alabama|M|Head|||32|100008 +3010|MI|Muskegon County|Montague city|2|0|2|Steinour|Kimberlie|2997|Hawaii|F|Daughter|||13|100009 +3010|MI|Muskegon County|Montague city|2|0|3|Steinour|Scott|2999|Idaho|F|Daughter|||11|100010 + +3010|WI|Grant County|Watterstown town|3|0|1|Palaia|Alden Joe|2956|New York|M|Head|||54|100011 +3010|WI|Grant County|Watterstown town|3|0|2|Palaia|Marnie|2973|Wisconsin|F|Spouse|||37|100012 +3010|WI|Grant County|Watterstown town|3|0|3|Palaia|Anisa|2995|Louisiana|F|Daughter|||15|100013 +3010|WI|Grant County|Watterstown town|3|0|4|Palaia|Rosario|3005|WI|M|Son|||5|100014 +3010|WI|Grant County|Watterstown town|3|0|5|Palaia|Emmaline|3009|WI|F|Daughter|||1|100015 + +3010|NJ|Ocean County|Seaside Park borough|4|0|1|Rebeck|Pauline|2950|Iowa|F|Head|||60|100016 +3010|NJ|Ocean County|Seaside Park borough|4|0|2|Rebeck|Stephen|2992|Wisconsin|M|Son|||18|100017 +3010|NJ|Ocean County|Seaside Park borough|4|0|3|Rebeck|Nathanial|2994|Idaho|M|Son|||16|100018 +3010|NJ|Ocean County|Seaside Park borough|4|0|4|Rebeck|Mao Darline|2998|Massachusetts|F|Daughter|||12|100019 + +3010|MA|Middlesex County|Maynard town|5|0|1|Ficher|Kasi|2971|Montana|F|Head|||39|100020 +3010|MA|Middlesex County|Maynard town|5|0|2|Ficher|Sanjuanita|2991|Oregon|F|Daughter|||19|100021 +3010|MA|Middlesex County|Maynard town|5|0|3|Ficher|Versie John|2995|Montana|F|Daughter|||15|100022 +3010|MA|Middlesex County|Maynard town|5|0|4|Ficher|Eloise|2997|Thailand|F|Daughter|||13|100023 + +3010|KY|Crittenden County|Crayne CDP|6|0|1|Huey|Ron Blake|2942|South Georgia And The South Sandwich Islands|M|Head|||68|100024 +3010|KY|Crittenden County|Crayne CDP|6|0|2|Huey|Delilah Ingeborg|2966|Croatia|F|Spouse|||44|100025 +3010|KY|Crittenden County|Crayne CDP|6|0|3|Huey|Caterina|2986|New Mexico|F|Daughter|||24|100026 +3010|KY|Crittenden County|Crayne CDP|6|0|4|Huey|Elizabet|2990|Minnesota|F|Daughter|||20|100027 +3010|KY|Crittenden County|Crayne CDP|6|0|5|Huey|Joe|2996|Delaware|M|Son|||14|100028 +3010|KY|Crittenden County|Crayne CDP|6|0|6|Huey|Ken|3001|KY|M|Son|||9|100029 +3010|KY|Crittenden County|Crayne CDP|6|0|7|Huey|Domonique|3003|KY|F|Daughter|||7|100030 +3010|KY|Crittenden County|Crayne CDP|6|0|8|Huey|Delbert Lucien|3005|KY|M|Son|||5|100031 + +3010|MS|Pearl River County|Picayune city|7|0|1|Chester|Santo Dennis|2938|Florida|M|Head|||72|100032 +3010|MS|Pearl River County|Picayune city|7|0|2|Chester|Nikia Danelle|2944|Colorado|F|Spouse|||66|100033 +3010|MS|Pearl River County|Picayune city|7|0|3|Chester|Shavon|2970|Tennessee|F|Daughter|||40|100034 +3010|MS|Pearl River County|Picayune city|7|0|4|Chester|Theron Carroll|2980|Pennsylvania|M|Son|||30|100035 +3010|MS|Pearl River County|Picayune city|7|0|5|Chester|Clarinda|2998|Dominican Republic|F|Daughter|||12|100036 +3010|MS|Pearl River County|Picayune city|7|0|6|Chester|Rosendo|3000|Arkansas|M|Son|||10|100037 +3010|MS|Pearl River County|Picayune city|7|0|7|Chester|Lynda|3001|MS|F|Daughter|||9|100038 +3010|MS|Pearl River County|Picayune city|7|0|8|Chester|Saran|3009|MS|F|Daughter|||1|100039 + +3010|MA|Plymouth County|Hingham CDP|8|0|1|Debaecke|Augusta|2972|Maryland|F|Head|||38|100040 +3010|MA|Plymouth County|Hingham CDP|8|0|2|Debaecke|Ike|2992|Alabama|M|Son|||18|100041 +3010|MA|Plymouth County|Hingham CDP|8|0|3|Debaecke|Cortez|2994|Missouri|M|Son|||16|100042 +3010|MA|Plymouth County|Hingham CDP|8|0|4|Debaecke|Brittaney Maude|2998|Maryland|F|Daughter|||12|100043 +3010|MA|Plymouth County|Hingham CDP|8|0|5|Debaecke|Jerold|3000|South Carolina|M|Son|||10|100044 + +3010|AR|Pulaski County|College Station CDP|9|0|1|Gamache|Ilona|2970|Utah|F|Head|||40|100045 +3010|AR|Pulaski County|College Station CDP|9|0|2|Gamache|Madlyn|2996|Ohio|F|Daughter|||14|100046 +3010|AR|Pulaski County|College Station CDP|9|0|3|Gamache|Vance|3000|Delaware|M|Son|||10|100047 + +3010|TX|El Paso County|Homestead Meadows South CDP|10|0|1|Hughes|Sid Harvey|2938|Reunion|M|Head|||72|100048 +3010|TX|El Paso County|Homestead Meadows South CDP|10|0|2|Hughes|Mariano|2987|New Jersey|M|Son|||23|100049 +3010|TX|El Paso County|Homestead Meadows South CDP|10|0|3|Hughes|Nelson|2999|Alaska|M|Son|||11|100050 +3010|TX|El Paso County|Homestead Meadows South CDP|10|0|4|Hughes|Dong Royce|3005|TX|F|Daughter|||5|100051 + +3010|WI|Wood County|Hansen town|11|0|1|Reed|Esteban Duane|2968|New Jersey|M|Head|||42|100052 +3010|WI|Wood County|Hansen town|11|0|2|Reed|Douglas|2996|New Jersey|M|Son|||14|100053 +3010|WI|Wood County|Hansen town|11|0|3|Reed|Carmina Ellyn|2998|Wisconsin|F|Daughter|||12|100054 +3010|WI|Wood County|Hansen town|11|0|4|Reed|Erick Laverne|3000|Nebraska|M|Son|||10|100055 +3010|WI|Wood County|Hansen town|11|0|5|Reed|Annmarie|3001|WI|F|Daughter|||9|100056 +3010|WI|Wood County|Hansen town|11|0|6|Reed|Zachery Hugh|3003|WI|M|Son|||7|100057 +3010|WI|Wood County|Hansen town|11|0|7|Reed|Dave Cole|3005|WI|M|Son|||5|100058 + +3010|MI|Shiawassee County|Laingsburg city|12|0|1|Zarn|Sheree|2963|Virgin Islands, British|F|Head|||47|100059 +3010|MI|Shiawassee County|Laingsburg city|12|0|2|Zarn|Iliana|2987|Arizona|F|Daughter|||23|100060 +3010|MI|Shiawassee County|Laingsburg city|12|0|3|Zarn|Maryellen|2999|Louisiana|F|Daughter|||11|100061 + +3010|TX|Hale County|Plainview city|13|0|1|Chatfield|Scottie Werner|2959|Michigan|M|Head|||51|100062 +3010|TX|Hale County|Plainview city|13|0|2|Chatfield|Elliot|2990|Mexico|M|Son|||20|100063 + +3010|IA|Monona County|Onawa city|14|0|1|Rodenberger|Elisha Shelton|2947|Maryland|M|Head|||63|100064 +3010|IA|Monona County|Onawa city|14|0|2|Rodenberger|King|2989|Rhode Island|M|Son|||21|100065 +3010|IA|Monona County|Onawa city|14|0|3|Rodenberger|Jacquline Emilia|2995|Minnesota|F|Daughter|||15|100066 +3010|IA|Monona County|Onawa city|14|0|4|Rodenberger|Alyse|2997|North Carolina|F|Daughter|||13|100067 + +3010|IL|Cook County|Chicago Heights city|15|0|1|Camper|Reginald|2938|Nevada|M|Head|||72|100068 +3010|IL|Cook County|Chicago Heights city|15|0|2|Camper|Ellan|2959|Louisiana|F|Spouse|||51|100069 +3010|IL|Cook County|Chicago Heights city|15|0|3|Camper|Nathaniel|2981|Mississippi|M|Son|||29|100070 +3010|IL|Cook County|Chicago Heights city|15|0|4|Camper|David|2995|Uruguay|F|Daughter|||15|100071 +3010|IL|Cook County|Chicago Heights city|15|0|5|Camper|Kasandra|3001|IL|F|Daughter|||9|100072 +3010|IL|Cook County|Chicago Heights city|15|0|6|Camper|Richie|3003|IL|M|Son|||7|100073 + +3010|NY|Chautauqua County|Brocton village|16|0|1|Mas|Denver Jackson|2948|Nevada|M|Head|||62|100074 +3010|NY|Chautauqua County|Brocton village|16|0|2|Mas|Ja|2953|Utah|F|Spouse|||57|100075 +3010|NY|Chautauqua County|Brocton village|16|0|3|Mas|Young|2977|Missouri|M|Son|||33|100076 +3010|NY|Chautauqua County|Brocton village|16|0|4|Mas|Jenni|2981|New York|F|Daughter|||29|100077 +3010|NY|Chautauqua County|Brocton village|16|0|5|Mas|Terrance|2985|Missouri|M|Son|||25|100078 +3010|NY|Chautauqua County|Brocton village|16|0|6|Mas|Anthony|2995|Virginia|M|Son|||15|100079 +3010|NY|Chautauqua County|Brocton village|16|0|7|Mas|Rudolph|2997|Georgia|M|Son|||13|100080 +3010|NY|Chautauqua County|Brocton village|16|0|8|Mas|Nia|3001|NY|F|Daughter|||9|100081 +3010|NY|Chautauqua County|Brocton village|16|0|9|Mas|Dante|3007|NY|M|Son|||3|100082 + +3010|PA|Huntingdon County|Allenport CDP|17|0|1|Seitz|Minh Gail|2971|Ohio|M|Head|||39|100083 +3010|PA|Huntingdon County|Allenport CDP|17|0|2|Seitz|Julienne|2983|South Dakota|F|Spouse|||27|100084 +3010|PA|Huntingdon County|Allenport CDP|17|0|3|Seitz|Denise|3005|PA|F|Daughter|||5|100085 +3010|PA|Huntingdon County|Allenport CDP|17|0|4|Seitz|Margie|3007|PA|F|Daughter|||3|100086 + +3010|PA|York County|Railroad borough|18|0|1|Soule|Bennett Vince|2947|Rhode Island|M|Head|||63|100087 +3010|PA|York County|Railroad borough|18|0|2|Soule|Brenda|2985|Maryland|F|Daughter|||25|100088 +3010|PA|York County|Railroad borough|18|0|3|Soule|Derek|2995|Pennsylvania|M|Son|||15|100089 +3010|PA|York County|Railroad borough|18|0|4|Soule|Christian Marquis|2997|Montana|M|Son|||13|100090 +3010|PA|York County|Railroad borough|18|0|5|Soule|Glennis|2999|Indiana|F|Daughter|||11|100091 + +3010|MS|Hinds County|Utica town|19|0|1|Schop|Rene Colby|2981|Washington|M|Head|||29|100092 +3010|MS|Hinds County|Utica town|19|0|2|Schop|Holly|2981|Pennsylvania|F|Spouse|||29|100093 +3010|MS|Hinds County|Utica town|19|0|3|Schop|Julie|3001|AK|F|Daughter|||9|100094 +3010|MS|Hinds County|Utica town|19|0|4|Schop|Emily|3005|AK|F|Daughter|||5|100095 +3010|MS|Hinds County|Utica town|19|0|5|Schop|Richie Bob|3007|MS|M|Son|||3|100096 + +3010|PA|Fayette County|Springhill township|20|0|1|Niese|Len|2961|Mississippi|M|Head|||49|100097 +3010|PA|Fayette County|Springhill township|20|0|2|Niese|Keira|2980|Arizona|F|Spouse|||30|100098 +3010|PA|Fayette County|Springhill township|20|0|3|Niese|Chia|3000|New York|F|Daughter|||10|100099 + +3010|NJ|Hudson County|Guttenberg town|21|0|1|Dejarnett|Nanci|2976|Kosovo|F|Head|||34|100100 +3010|NJ|Hudson County|Guttenberg town|21|0|2|Dejarnett|Jeffery|2996|Maine|M|Son|||14|100101 +3010|NJ|Hudson County|Guttenberg town|21|0|3|Dejarnett|Newton|3000|Congo|M|Son|||10|100102 + +3010|NJ|Monmouth County|Neptune City borough|22|0|1|Mejia|Nick Orval|2955|Finland|M|Head|||55|100103 +3010|NJ|Monmouth County|Neptune City borough|22|0|2|Mejia|Roselee|2970|Serbia|F|Spouse|||40|100104 +3010|NJ|Monmouth County|Neptune City borough|22|0|3|Mejia|Jose|2992|Idaho|M|Son|||18|100105 +3010|NJ|Monmouth County|Neptune City borough|22|0|4|Mejia|Louann Tobie|2994|Delaware|F|Daughter|||16|100106 +3010|NJ|Monmouth County|Neptune City borough|22|0|5|Mejia|Vinnie|3009|NJ|F|Daughter|||1|100107 + +3010|AK|Fairbanks North Star Borough|Fairbanks city|23|0|1|Cammack|Alton Vito|2942|New Mexico|M|Head|||68|100108 +3010|AK|Fairbanks North Star Borough|Fairbanks city|23|0|2|Cammack|Angila|2997|Texas|F|Daughter|||13|100109 +3010|AK|Fairbanks North Star Borough|Fairbanks city|23|0|3|Cammack|Sebastian|2999|North Dakota|M|Son|||11|100110 + +3010|PA|Schuylkill County|Washington township|24|0|1|Wardinsky|Ismael Rolf|2971|Arkansas|M|Head|||39|100111 +3010|PA|Schuylkill County|Washington township|24|0|2|Wardinsky|Shayne|2984|South Carolina|F|Spouse|||26|100112 + +3010|NY|Niagara County|Sanborn CDP|25|0|1|Bario|Milford Dion|2965|South Carolina|M|Head|||45|100113 +3010|NY|Niagara County|Sanborn CDP|25|0|2|Bario|Sheryll Kam|2984|Arkansas|F|Spouse|||26|100114 +3010|NY|Niagara County|Sanborn CDP|25|0|3|Bario|Logan|3003|TX|M|Son|||7|100115 +3010|NY|Niagara County|Sanborn CDP|25|0|4|Bario|Maryrose|3007|NY|F|Daughter|||3|100116 +3010|NY|Niagara County|Sanborn CDP|25|0|5|Bario|Damian|3009|NY|M|Son|||1|100117 + +3010|MN|Olmsted County|Eyota city|26|0|1|Dunphe|Brock Leslie|2941|Alaska|M|Head|||69|100118 +3010|MN|Olmsted County|Eyota city|26|0|2|Dunphe|Ignacia|2950|Connecticut|F|Spouse|||60|100119 +3010|MN|Olmsted County|Eyota city|26|0|3|Dunphe|Jerrod|2978|Oregon|M|Son|||32|100120 +3010|MN|Olmsted County|Eyota city|26|0|4|Dunphe|So|2996|South Dakota|F|Daughter|||14|100121 +3010|MN|Olmsted County|Eyota city|26|0|5|Dunphe|Lanny|2998|New Jersey|M|Son|||12|100122 +3010|MN|Olmsted County|Eyota city|26|0|6|Dunphe|Valencia|3000|Indiana|F|Daughter|||10|100123 +3010|MN|Olmsted County|Eyota city|26|0|7|Dunphe|Chi|3003|MN|M|Son|||7|100124 + +3010|WI|Clark County, Marathon County|Colby city|27|0|1|Desanty|Leslie|2959|Washington|F|Spouse|||51|100125 +3010|WI|Clark County, Marathon County|Colby city|27|0|2|Desanty|Darin Hilario|2993|Kentucky|M|Son|||17|100126 +3010|WI|Clark County, Marathon County|Colby city|27|0|3|Desanty|Freida|2995|Utah|F|Daughter|||15|100127 +3010|WI|Clark County, Marathon County|Colby city|27|0|4|Desanty|Teodoro|2997|Taiwan, Province Of China|M|Son|||13|100128 +3010|WI|Clark County, Marathon County|Colby city|27|0|5|Desanty|Hilton|2999|Nevada|M|Son|||11|100129 +3010|WI|Clark County, Marathon County|Colby city|27|0|6|Desanty|Veronique|3005|WI|F|Daughter|||5|100130 + +3010|MN|Meeker County|Union Grove township|28|0|1|Chicca|Karl Jimmy|2937|Texas|M|Head|||73|100131 +3010|MN|Meeker County|Union Grove township|28|0|2|Chicca|Jackie|2962|Connecticut|M|Son|||48|100132 +3010|MN|Meeker County|Union Grove township|28|0|3|Chicca|Kaitlyn|2986|Indiana|F|Daughter|||24|100133 +3010|MN|Meeker County|Union Grove township|28|0|4|Chicca|Dominic|2998|Kansas|M|Son|||12|100134 +3010|MN|Meeker County|Union Grove township|28|0|5|Chicca|Angla|3003|MN|F|Daughter|||7|100135 +3010|MN|Meeker County|Union Grove township|28|0|6|Chicca|Kevin|3009|MN|M|Son|||1|100136 + +3010|IA|Fremont County|Imogene city|29|0|1|Negron|Wilburn Denver|2950|Iowa|M|Head|||60|100137 +3010|IA|Fremont County|Imogene city|29|0|2|Negron|Arie|2953|Indiana|F|Spouse|||57|100138 +3010|IA|Fremont County|Imogene city|29|0|3|Negron|Mohammed|2995|Nebraska|M|Son|||15|100139 +3010|IA|Fremont County|Imogene city|29|0|4|Negron|Alfonzo|2997|Ecuador|M|Son|||13|100140 +3010|IA|Fremont County|Imogene city|29|0|5|Negron|Tu Charis|3003|IA|F|Daughter|||7|100141 +3010|IA|Fremont County|Imogene city|29|0|6|Negron|Rico|3009|IA|M|Son|||1|100142 + +3010|NJ|Gloucester County|Turnersville CDP|30|0|1|Ingram|Octavio Will|2966|California|M|Head|||44|100143 +3010|NJ|Gloucester County|Turnersville CDP|30|0|2|Ingram|Margarete|2978|South Dakota|F|Spouse|||32|100144 +3010|NJ|Gloucester County|Turnersville CDP|30|0|3|Ingram|Harlan|3000|Florida|M|Son|||10|100145 +3010|NJ|Gloucester County|Turnersville CDP|30|0|4|Ingram|Collin|3001|NJ|M|Son|||9|100146 + +3010|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|1|Himmelright|Jasper Felix|2943|New Jersey|M|Head|||67|100147 +3010|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|2|Himmelright|Sammy|2947|Belarus|F|Spouse|||63|100148 +3010|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|3|Himmelright|Galen|2967|South Dakota|M|Son|||43|100149 +3010|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|4|Himmelright|Rueben|2975|East Timor|M|Son|||35|100150 +3010|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|5|Himmelright|Nidia|2997|Florida|F|Daughter|||13|100151 +3010|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|6|Himmelright|Rufina|2999|Massachusetts|F|Daughter|||11|100152 +3010|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|7|Himmelright|Rudy|3003|PR|F|Daughter|||7|100153 +3010|PR|Aguadilla Municipio|Aguadilla zona urbana|31|0|8|Himmelright|Rosalind|3007|PR|F|Daughter|||3|100154 + +3010|NH|Coos County|Gorham CDP|32|0|1|Featherston|Emilio Courtney|2965|Rhode Island|M|Head|||45|100155 +3010|NH|Coos County|Gorham CDP|32|0|2|Featherston|Jesusa|2969|Netherlands Antilles|F|Spouse|||41|100156 +3010|NH|Coos County|Gorham CDP|32|0|3|Featherston|Erlene|2993|Pennsylvania|F|Daughter|||17|100157 +3010|NH|Coos County|Gorham CDP|32|0|4|Featherston|Timmy|3001|NH|M|Son|||9|100158 +3010|NH|Coos County|Gorham CDP|32|0|5|Featherston|Rosario|3003|NH|M|Son|||7|100159 +3010|NH|Coos County|Gorham CDP|32|0|6|Featherston|Florencio|3005|NH|M|Son|||5|100160 +3010|NH|Coos County|Gorham CDP|32|0|7|Featherston|Vashti|3007|NH|F|Daughter|||3|100161 + +3010|CA|Marin County|Larkspur city|33|0|1|Brallier|Cody|2972|Georgia|F|Spouse|||38|100162 +3010|CA|Marin County|Larkspur city|33|0|2|Brallier|Millard Roland|2996|South Georgia And The South Sandwich Islands|M|Son|||14|100163 +3010|CA|Marin County|Larkspur city|33|0|3|Brallier|Leatrice Monika|3000|Iowa|F|Daughter|||10|100164 +3010|CA|Marin County|Larkspur city|33|0|4|Brallier|Darleen|3005|CA|F|Daughter|||5|100165 +3010|CA|Marin County|Larkspur city|33|0|5|Brallier|Buford|3009|CA|M|Son|||1|100166 + +3010|OH|Monroe County|Clarington village|34|0|1|Vickery|Chi Napoleon|2961|Montana|M|Head|||49|100167 +3010|OH|Monroe County|Clarington village|34|0|2|Vickery|Kendall|2961|Texas|F|Spouse|||49|100168 +3010|OH|Monroe County|Clarington village|34|0|3|Vickery|Elbert|2989|Wyoming|M|Son|||21|100169 +3010|OH|Monroe County|Clarington village|34|0|4|Vickery|Shelby|2997|Louisiana|M|Son|||13|100170 +3010|OH|Monroe County|Clarington village|34|0|5|Vickery|Sarina|3007|OH|F|Daughter|||3|100171 + +3010|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|1|Moorhead|Thad|2944|Illinois|M|Head|||66|100172 +3010|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|2|Moorhead|Vickey Janey|2941|Vermont|F|Spouse|||69|100173 +3010|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|3|Moorhead|Kati|2997|Montana|F|Daughter|||13|100174 +3010|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|4|Moorhead|Casey|2999|Nebraska|M|Son|||11|100175 +3010|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|5|Moorhead|Archie|3005|PR|M|Son|||5|100176 +3010|PR|Peñuelas Municipio|Tallaboa comunidad|35|0|6|Moorhead|Remona|3007|PR|F|Daughter|||3|100177 + +3010|NE|Dixon County|Martinsburg village|36|0|1|Thomas|Wes Rodrick|2938|Micronesia, Federated States Of|M|Head|||72|100178 +3010|NE|Dixon County|Martinsburg village|36|0|2|Thomas|Monnie|2939|Virginia|F|Spouse|||71|100179 +3010|NE|Dixon County|Martinsburg village|36|0|3|Thomas|Elden|2961|Georgia|M|Son|||49|100180 +3010|NE|Dixon County|Martinsburg village|36|0|4|Thomas|Emil Luciano|2969|Virginia|M|Son|||41|100181 +3010|NE|Dixon County|Martinsburg village|36|0|5|Thomas|Jarvis|2993|Sierra Leone|M|Son|||17|100182 +3010|NE|Dixon County|Martinsburg village|36|0|6|Thomas|Ailene|2995|Washington|F|Daughter|||15|100183 +3010|NE|Dixon County|Martinsburg village|36|0|7|Thomas|Jamel|3003|NE|M|Son|||7|100184 +3010|NE|Dixon County|Martinsburg village|36|0|8|Thomas|Ming|3009|NE|F|Daughter|||1|100185 + +3010|NY|Saratoga County|Ballston town|37|0|1|Felton|Leroy|2960|Wyoming|M|Head|||50|100186 +3010|NY|Saratoga County|Ballston town|37|0|2|Felton|Noelia|2967|Tunisia|F|Spouse|||43|100187 +3010|NY|Saratoga County|Ballston town|37|0|3|Felton|Lauren|2995|Nebraska|M|Son|||15|100188 +3010|NY|Saratoga County|Ballston town|37|0|4|Felton|Curtis|2999|Maldives|M|Son|||11|100189 +3010|NY|Saratoga County|Ballston town|37|0|5|Felton|Luanne|3001|NY|F|Daughter|||9|100190 + +3010|IL|Marion County|Alma village|38|0|1|Adank|Rusty Robin|2975|Colorado|M|Head|||35|100191 +3010|IL|Marion County|Alma village|38|0|2|Adank|Daniele|2983|Indiana|F|Spouse|||27|100192 +3010|IL|Marion County|Alma village|38|0|3|Adank|Hugo|3001|IL|M|Son|||9|100193 +3010|IL|Marion County|Alma village|38|0|4|Adank|Britt|3003|IL|F|Daughter|||7|100194 +3010|IL|Marion County|Alma village|38|0|5|Adank|Lionel|3007|IL|M|Son|||3|100195 + +3010|IL|Jackson County|De Soto village|39|0|1|Menietto|Loren|2976|Alabama|F|Head|||34|100196 + +3010|MA|Plymouth County|Brockton city|40|0|1|Hernandez|Marilee|2944|California|F|Head|||66|100197 +3010|MA|Plymouth County|Brockton city|40|0|2|Hernandez|Gus Kerry|2988|Cameroon|M|Son|||22|100198 +3010|MA|Plymouth County|Brockton city|40|0|3|Hernandez|Nicolette|2996|Guam|F|Daughter|||14|100199 + +3010|MN|Kittson County|Svea township|41|0|1|Hoppenstedt|Myron Leonardo|2950|Idaho|M|Head|||60|100200 +3010|MN|Kittson County|Svea township|41|0|2|Hoppenstedt|Flavia|2996|Oregon|F|Daughter|||14|100201 +3010|MN|Kittson County|Svea township|41|0|3|Hoppenstedt|Thurman|3000|Florida|M|Son|||10|100202 + +3010|IL|Cook County|Forest View village|42|0|1|Lysaght|Clement Rodger|2953|United States|M|Head|||57|100203 +3010|IL|Cook County|Forest View village|42|0|2|Lysaght|Shantay|2952|Nevada|F|Spouse|||58|100204 +3010|IL|Cook County|Forest View village|42|0|3|Lysaght|Ken|2992|Mississippi|M|Son|||18|100205 +3010|IL|Cook County|Forest View village|42|0|4|Lysaght|Ariana|3003|IL|F|Daughter|||7|100206 +3010|IL|Cook County|Forest View village|42|0|5|Lysaght|Ka Twila|3005|IL|F|Daughter|||5|100207 + +3010|WI|Waukesha County|Menomonee Falls village|43|0|1|Widger|Stefani|2975|Gibraltar|F|Head|||35|100208 +3010|WI|Waukesha County|Menomonee Falls village|43|0|2|Widger|Elmira Ollie|2997|Nevada|F|Daughter|||13|100209 + +3010|MN|Beltrami County|Sugar Bush township|44|0|1|Osborne|Brooks Jerald|2959|Maldives|M|Head|||51|100210 +3010|MN|Beltrami County|Sugar Bush township|44|0|2|Osborne|Shawnee|2962|Iowa|F|Spouse|||48|100211 +3010|MN|Beltrami County|Sugar Bush township|44|0|3|Osborne|Broderick|2998|Washington|M|Son|||12|100212 +3010|MN|Beltrami County|Sugar Bush township|44|0|4|Osborne|Dick Gil|3000|Virginia|M|Son|||10|100213 +3010|MN|Beltrami County|Sugar Bush township|44|0|5|Osborne|Tomas|3001|MN|M|Son|||9|100214 + +3010|PA|Luzerne County|Hilldale CDP|45|0|1|Sison|Vernon|2943|Costa Rica|M|Head|||67|100215 +3010|PA|Luzerne County|Hilldale CDP|45|0|2|Sison|Gwyn Allene|2949|Hawaii|F|Spouse|||61|100216 +3010|PA|Luzerne County|Hilldale CDP|45|0|3|Sison|Yuri|2987|Alaska|F|Daughter|||23|100217 +3010|PA|Luzerne County|Hilldale CDP|45|0|4|Sison|Raymon|2989|Rhode Island|M|Son|||21|100218 +3010|PA|Luzerne County|Hilldale CDP|45|0|5|Sison|Lenny|2995|Oregon|M|Son|||15|100219 + +3010|IA|Dubuque County|Rickardsville city|46|0|1|Davison|Angel Lowell|2945|Nevada|M|Head|||65|100220 +3010|IA|Dubuque County|Rickardsville city|46|0|2|Davison|Shera|2968|New York|F|Spouse|||42|100221 +3010|IA|Dubuque County|Rickardsville city|46|0|3|Davison|Marilyn|2998|Rhode Island|F|Daughter|||12|100222 +3010|IA|Dubuque County|Rickardsville city|46|0|4|Davison|Bev|3000|New Hampshire|F|Daughter|||10|100223 +3010|IA|Dubuque County|Rickardsville city|46|0|5|Davison|Lina|3007|IA|F|Daughter|||3|100224 +3010|IA|Dubuque County|Rickardsville city|46|0|6|Davison|Jeanett|3009|IA|F|Daughter|||1|100225 + +3010|TX|Navarro County|Retreat town|47|0|1|Willia|Wade Mervin|2979|Rhode Island|M|Head|||31|100226 +3010|TX|Navarro County|Retreat town|47|0|2|Willia|Maynard|2998|Washington|M|Son|||12|100227 + +3010|WV|Logan County|Bruno CDP|48|0|1|Bron|Will|2999|Minnesota|M|Son|||11|100228 + +3010|NY|Cattaraugus County|Allegany town|49|0|1|Montrella|Brendan Nigel|2978|Massachusetts|M|Head|||32|100229 + +3010|SD|Marshall County|Langford town|50|0|1|Wilson|Jarred|2946|Kosovo|M|Head|||64|100230 +3010|SD|Marshall County|Langford town|50|0|2|Wilson|Brenna|2979|Estonia|F|Daughter|||31|100231 +3010|SD|Marshall County|Langford town|50|0|3|Wilson|Muoi|2989|Mississippi|F|Daughter|||21|100232 +3010|SD|Marshall County|Langford town|50|0|4|Wilson|Ginger|2997|Mozambique|F|Daughter|||13|100233 + +3010|OR|Polk County, Yamhill County|Grand Ronde CDP|51|0|1|Nestel|Taylor Major|2954|North Dakota|M|Head|||56|100234 +3010|OR|Polk County, Yamhill County|Grand Ronde CDP|51|0|2|Nestel|Lilla|2965|North Carolina|F|Spouse|||45|100235 +3010|OR|Polk County, Yamhill County|Grand Ronde CDP|51|0|3|Nestel|Heath|2985|Haiti|M|Son|||25|100236 +3010|OR|Polk County, Yamhill County|Grand Ronde CDP|51|0|4|Nestel|Adriane|2987|San Marino|F|Daughter|||23|100237 +3010|OR|Polk County, Yamhill County|Grand Ronde CDP|51|0|5|Nestel|Ali|3005|OR|M|Son|||5|100238 +3010|OR|Polk County, Yamhill County|Grand Ronde CDP|51|0|6|Nestel|Tiny|3007|OR|F|Daughter|||3|100239 + +3010|PA|Erie County|North East township|52|0|1|Renaud|Sylvester Jamaal|2947|Nevada|M|Head|||63|100240 +3010|PA|Erie County|North East township|52|0|2|Renaud|Lavette|2986|Alaska|F|Daughter|||24|100241 +3010|PA|Erie County|North East township|52|0|3|Renaud|Lyn|2990|Alabama|F|Daughter|||20|100242 +3010|PA|Erie County|North East township|52|0|4|Renaud|Julian|2998|Maryland|M|Son|||12|100243 +3010|PA|Erie County|North East township|52|0|5|Renaud|Darrell|3000|Kentucky|M|Son|||10|100244 + +3010|VA|Washington County|Glade Spring town|53|0|1|Michael|Steven Wade|2947|Tennessee|M|Head|||63|100245 +3010|VA|Washington County|Glade Spring town|53|0|2|Michael|Emmitt|2977|Oklahoma|M|Son|||33|100246 + +3010|TX|Travis County|Shady Hollow CDP|54|0|1|Fronek|Santiago Lazaro|2971|California|M|Head|||39|100247 +3010|TX|Travis County|Shady Hollow CDP|54|0|2|Fronek|Collen|2969|West Virginia|F|Spouse|||41|100248 +3010|TX|Travis County|Shady Hollow CDP|54|0|3|Fronek|Gino|2997|Nebraska|M|Son|||13|100249 +3010|TX|Travis County|Shady Hollow CDP|54|0|4|Fronek|Carlos|2999|New Mexico|M|Son|||11|100250 +3010|TX|Travis County|Shady Hollow CDP|54|0|5|Fronek|Angella|3003|TX|F|Daughter|||7|100251 +3010|TX|Travis County|Shady Hollow CDP|54|0|6|Fronek|Meaghan|3007|TX|F|Daughter|||3|100252 + +3010|MA|Barnstable County|South Yarmouth CDP|55|0|1|Siska|Antione Kennith|2966|Indiana|M|Head|||44|100253 +3010|MA|Barnstable County|South Yarmouth CDP|55|0|2|Siska|Valerie Clotilde|2973|Vermont|F|Spouse|||37|100254 +3010|MA|Barnstable County|South Yarmouth CDP|55|0|3|Siska|Wai|2995|California|F|Daughter|||15|100255 +3010|MA|Barnstable County|South Yarmouth CDP|55|0|4|Siska|Bronwyn|2997|Arizona|F|Daughter|||13|100256 +3010|MA|Barnstable County|South Yarmouth CDP|55|0|5|Siska|Calvin Lamont|2999|Kentucky|M|Son|||11|100257 +3010|MA|Barnstable County|South Yarmouth CDP|55|0|6|Siska|Wendi|3001|MA|F|Daughter|||9|100258 +3010|MA|Barnstable County|South Yarmouth CDP|55|0|7|Siska|Isiah|3003|MA|M|Son|||7|100259 +3010|MA|Barnstable County|South Yarmouth CDP|55|0|8|Siska|Vinnie|3005|MA|F|Daughter|||5|100260 +3010|MA|Barnstable County|South Yarmouth CDP|55|0|9|Siska|Raul|3009|MA|M|Son|||1|100261 + +3010|IA|Scott County|Long Grove city|56|0|1|Fernandes|Merissa|2976|North Dakota|F|Head|||34|100262 + +3010|ME|Penobscot County|Enfield town|57|0|1|Coulibaly|Reynaldo Benedict|2957|Swaziland|M|Head|||53|100263 +3010|ME|Penobscot County|Enfield town|57|0|2|Coulibaly|Cecile|2969|Indiana|F|Spouse|||41|100264 +3010|ME|Penobscot County|Enfield town|57|0|3|Coulibaly|Rosalina|2989|Korea, Democratic People's Republic Of|F|Daughter|||21|100265 +3010|ME|Penobscot County|Enfield town|57|0|4|Coulibaly|Meryl|2995|Oklahoma|F|Daughter|||15|100266 +3010|ME|Penobscot County|Enfield town|57|0|5|Coulibaly|Mario|2997|Utah|M|Son|||13|100267 +3010|ME|Penobscot County|Enfield town|57|0|6|Coulibaly|Bart|2999|Mississippi|M|Son|||11|100268 +3010|ME|Penobscot County|Enfield town|57|0|7|Coulibaly|Hosea|3001|PA|M|Son|||9|100269 +3010|ME|Penobscot County|Enfield town|57|0|8|Coulibaly|Tereasa|3005|PA|F|Daughter|||5|100270 +3010|ME|Penobscot County|Enfield town|57|0|9|Coulibaly|Morton|3009|ME|M|Son|||1|100271 + +3010|TX|Rains County, Wood County|Alba town|58|0|1|Worrell|Cole Norbert|2940|Florida|M|Head|||70|100272 +3010|TX|Rains County, Wood County|Alba town|58|0|2|Worrell|Julian|2974|Iowa|M|Son|||36|100273 +3010|TX|Rains County, Wood County|Alba town|58|0|3|Worrell|Angelena Leana|2996|Pennsylvania|F|Daughter|||14|100274 +3010|TX|Rains County, Wood County|Alba town|58|0|4|Worrell|Pedro|2998|Lebanon|M|Son|||12|100275 + +3010|KS|Sedgwick County|Derby city|59|0|1|Wojtowicz|Benito Edmond|2967|Oregon|M|Head|||43|100276 +3010|KS|Sedgwick County|Derby city|59|0|2|Wojtowicz|Cristal|2964|Nebraska|F|Spouse|||46|100277 +3010|KS|Sedgwick County|Derby city|59|0|3|Wojtowicz|Clayton|2984|Louisiana|M|Son|||26|100278 +3010|KS|Sedgwick County|Derby city|59|0|4|Wojtowicz|Wendolyn Ashly|2990|Massachusetts|F|Daughter|||20|100279 +3010|KS|Sedgwick County|Derby city|59|0|5|Wojtowicz|Milton Rueben|2992|New Hampshire|M|Son|||18|100280 +3010|KS|Sedgwick County|Derby city|59|0|6|Wojtowicz|Zachary|2994|Alaska|M|Son|||16|100281 +3010|KS|Sedgwick County|Derby city|59|0|7|Wojtowicz|Fredrick|3001|KS|M|Son|||9|100282 +3010|KS|Sedgwick County|Derby city|59|0|8|Wojtowicz|Gertha|3005|KS|F|Daughter|||5|100283 + +3010|WA|Grant County|Electric City city|60|0|1|Westerfeld|Xavier Will|2960|Mississippi|M|Head|||50|100284 +3010|WA|Grant County|Electric City city|60|0|2|Westerfeld|Jonell Millie|2978|Oregon|F|Spouse|||32|100285 +3010|WA|Grant County|Electric City city|60|0|3|Westerfeld|Berna|2998|Virginia|F|Daughter|||12|100286 +3010|WA|Grant County|Electric City city|60|0|4|Westerfeld|Olen|3000|Lebanon|M|Son|||10|100287 +3010|WA|Grant County|Electric City city|60|0|5|Westerfeld|Florentino|3001|WA|M|Son|||9|100288 +3010|WA|Grant County|Electric City city|60|0|6|Westerfeld|Sun Alysha|3005|WA|F|Daughter|||5|100289 +3010|WA|Grant County|Electric City city|60|0|7|Westerfeld|Dianna|3007|WA|F|Daughter|||3|100290 +3010|WA|Grant County|Electric City city|60|0|8|Westerfeld|Arlette|3009|WA|F|Daughter|||1|100291 + +3010|WV|Mercer County|Oakvale town|61|0|1|Hohl|Mel Garry|2963|Minnesota|M|Head|||47|100292 +3010|WV|Mercer County|Oakvale town|61|0|2|Hohl|Krissy|2973|Maine|F|Spouse|||37|100293 +3010|WV|Mercer County|Oakvale town|61|0|3|Hohl|Brittny|2995|North Carolina|F|Daughter|||15|100294 +3010|WV|Mercer County|Oakvale town|61|0|4|Hohl|Buddy|2997|Ohio|M|Son|||13|100295 +3010|WV|Mercer County|Oakvale town|61|0|5|Hohl|Ivory|2999|Alaska|M|Son|||11|100296 +3010|WV|Mercer County|Oakvale town|61|0|6|Hohl|Peter|3009|WV|M|Son|||1|100297 + +3010|PA|Mercer County|Farrell city|62|0|1|Walker|Mickey Anibal|2963|Greece|M|Head|||47|100298 +3010|PA|Mercer County|Farrell city|62|0|2|Walker|Gemma|2977|North Dakota|F|Spouse|||33|100299 +3010|PA|Mercer County|Farrell city|62|0|3|Walker|Douglass|2997|North Dakota|M|Son|||13|100300 +3010|PA|Mercer County|Farrell city|62|0|4|Walker|Ashley Lashawna|2999|Minnesota|F|Daughter|||11|100301 +3010|PA|Mercer County|Farrell city|62|0|5|Walker|Nigel|3001|PA|M|Son|||9|100302 +3010|PA|Mercer County|Farrell city|62|0|6|Walker|Arielle|3005|PA|F|Daughter|||5|100303 +3010|PA|Mercer County|Farrell city|62|0|7|Walker|Fritz|3007|PA|M|Son|||3|100304 +3010|PA|Mercer County|Farrell city|62|0|8|Walker|Carie|3009|PA|F|Daughter|||1|100305 + +3010|NH|Grafton County|Enfield town|63|0|1|Loeppke|Blaine Giuseppe|2955|Saint Pierre And Miquelon|M|Head|||55|100306 +3010|NH|Grafton County|Enfield town|63|0|2|Loeppke|Cameron|2995|Arizona|M|Son|||15|100307 +3010|NH|Grafton County|Enfield town|63|0|3|Loeppke|Shawn|2999|Maine|M|Son|||11|100308 + +3010|OH|Hamilton County|Pleasant Run Farm CDP|64|0|1|Damour|Leland Marion|2942|New Mexico|M|Head|||68|100309 +3010|OH|Hamilton County|Pleasant Run Farm CDP|64|0|2|Damour|Buena|2943|Maine|F|Spouse|||67|100310 +3010|OH|Hamilton County|Pleasant Run Farm CDP|64|0|3|Damour|Emilee|2977|West Virginia|F|Daughter|||33|100311 +3010|OH|Hamilton County|Pleasant Run Farm CDP|64|0|4|Damour|Harry|2995|Oklahoma|M|Son|||15|100312 +3010|OH|Hamilton County|Pleasant Run Farm CDP|64|0|5|Damour|Hue|2999|Illinois|F|Daughter|||11|100313 +3010|OH|Hamilton County|Pleasant Run Farm CDP|64|0|6|Damour|Loreen|3005|OH|F|Daughter|||5|100314 +3010|OH|Hamilton County|Pleasant Run Farm CDP|64|0|7|Damour|Lorie|3009|OH|F|Daughter|||1|100315 + +3010|MO|Sullivan County|Newtown town|65|0|1|Hinojosa|Donovan Normand|2954|Washington|M|Head|||56|100316 +3010|MO|Sullivan County|Newtown town|65|0|2|Hinojosa|Kristie Ardell|2995|Poland|F|Daughter|||15|100317 +3010|MO|Sullivan County|Newtown town|65|0|3|Hinojosa|Rico|2999|Portugal|M|Son|||11|100318 + +3010|CT|Windham County|North Grosvenor Dale CDP|66|0|1|Scholes|Quincy Trent|2970|Italy|M|Head|||40|100319 +3010|CT|Windham County|North Grosvenor Dale CDP|66|0|2|Scholes|Isis Margy|2972|Arkansas|F|Spouse|||38|100320 +3010|CT|Windham County|North Grosvenor Dale CDP|66|0|3|Scholes|Bruno|3000|Texas|M|Son|||10|100321 +3010|CT|Windham County|North Grosvenor Dale CDP|66|0|4|Scholes|Natisha Alyse|3003|CT|F|Daughter|||7|100322 +3010|CT|Windham County|North Grosvenor Dale CDP|66|0|5|Scholes|Lenard|3005|CT|M|Son|||5|100323 +3010|CT|Windham County|North Grosvenor Dale CDP|66|0|6|Scholes|Kenya|3007|CT|F|Daughter|||3|100324 + +3010|FL|Collier County|Plantation Island CDP|67|0|1|Webb|Kelley Dean|2963|Connecticut|M|Head|||47|100325 + +3010|SD|Lincoln County, Union County|Beresford city|68|0|1|Chilek|Normand Luigi|2960|New Hampshire|M|Head|||50|100326 +3010|SD|Lincoln County, Union County|Beresford city|68|0|2|Chilek|Johanne|2966|Alaska|F|Spouse|||44|100327 +3010|SD|Lincoln County, Union County|Beresford city|68|0|3|Chilek|Leandro|2990|Indiana|M|Son|||20|100328 +3010|SD|Lincoln County, Union County|Beresford city|68|0|4|Chilek|Princess|2998|Australia|F|Daughter|||12|100329 +3010|SD|Lincoln County, Union County|Beresford city|68|0|5|Chilek|Delfina|3001|SD|F|Daughter|||9|100330 +3010|SD|Lincoln County, Union County|Beresford city|68|0|6|Chilek|Brooks Arnulfo|3005|SD|M|Son|||5|100331 +3010|SD|Lincoln County, Union County|Beresford city|68|0|7|Chilek|Frances|3009|SD|F|Daughter|||1|100332 + +3010|FL|Sumter County|Coleman city|69|0|1|Dagis|Toney Edmond|2958|Washington|M|Head|||52|100333 +3010|FL|Sumter County|Coleman city|69|0|2|Dagis|Li Beckie|2963|Lithuania|F|Spouse|||47|100334 +3010|FL|Sumter County|Coleman city|69|0|3|Dagis|Delbert|2995|Oklahoma|M|Son|||15|100335 +3010|FL|Sumter County|Coleman city|69|0|4|Dagis|Isiah|2999|North Dakota|M|Son|||11|100336 +3010|FL|Sumter County|Coleman city|69|0|5|Dagis|Hoyt|3001|FL|M|Son|||9|100337 +3010|FL|Sumter County|Coleman city|69|0|6|Dagis|Kam|3005|FL|F|Daughter|||5|100338 +3010|FL|Sumter County|Coleman city|69|0|7|Dagis|Christopher|3007|FL|M|Son|||3|100339 + +3010|MA|Worcester County|Boylston town|70|0|1|Cappelluti|Darwin Merlin|2957|Maryland|M|Head|||53|100340 +3010|MA|Worcester County|Boylston town|70|0|2|Cappelluti|Dong|2961|Turkey|F|Spouse|||49|100341 +3010|MA|Worcester County|Boylston town|70|0|3|Cappelluti|Alisha|2997|New York|F|Daughter|||13|100342 +3010|MA|Worcester County|Boylston town|70|0|4|Cappelluti|Wilfredo|3005|MA|M|Son|||5|100343 +3010|MA|Worcester County|Boylston town|70|0|5|Cappelluti|Loria|3007|MA|F|Daughter|||3|100344 +3010|MA|Worcester County|Boylston town|70|0|6|Cappelluti|Nickolas|3009|MA|M|Son|||1|100345 + +3010|TX|Tarrant County|Kennedale city|71|0|1|Bosshart|Sheldon Brent|2952|Ohio|M|Head|||58|100346 +3010|TX|Tarrant County|Kennedale city|71|0|2|Bosshart|Leta Elissa|2970|Connecticut|F|Spouse|||40|100347 +3010|TX|Tarrant County|Kennedale city|71|0|3|Bosshart|Jone|2996|Washington|F|Daughter|||14|100348 +3010|TX|Tarrant County|Kennedale city|71|0|4|Bosshart|Dong|2998|Colorado|M|Son|||12|100349 +3010|TX|Tarrant County|Kennedale city|71|0|5|Bosshart|Quinton|3000|Louisiana|M|Son|||10|100350 +3010|TX|Tarrant County|Kennedale city|71|0|6|Bosshart|Cleveland Orville|3003|TX|M|Son|||7|100351 +3010|TX|Tarrant County|Kennedale city|71|0|7|Bosshart|Emmie|3009|TX|F|Daughter|||1|100352 + +3010|NY|Lewis County|West Turin town|72|0|1|Mckeel|Zackary|2962|Nebraska|M|Head|||48|100353 +3010|NY|Lewis County|West Turin town|72|0|2|Mckeel|Ellena|2973|Illinois|F|Spouse|||37|100354 +3010|NY|Lewis County|West Turin town|72|0|3|Mckeel|Flora|3001|NY|F|Daughter|||9|100355 +3010|NY|Lewis County|West Turin town|72|0|4|Mckeel|Carlena Patti|3003|NY|F|Daughter|||7|100356 +3010|NY|Lewis County|West Turin town|72|0|5|Mckeel|Liane|3009|NY|F|Daughter|||1|100357 + +3010|MN|Aitkin County|Nordland township|73|0|1|Deegan|Sammy Carey|2940|Qatar|M|Head|||70|100358 +3010|MN|Aitkin County|Nordland township|73|0|2|Deegan|Carmon|2949|Maryland|F|Spouse|||61|100359 +3010|MN|Aitkin County|Nordland township|73|0|3|Deegan|Hillary|2977|California|F|Daughter|||33|100360 +3010|MN|Aitkin County|Nordland township|73|0|4|Deegan|Earnest|2979|Illinois|M|Son|||31|100361 +3010|MN|Aitkin County|Nordland township|73|0|5|Deegan|Quintin|2981|Eritrea|M|Son|||29|100362 +3010|MN|Aitkin County|Nordland township|73|0|6|Deegan|Teodoro|2987|Nebraska|M|Son|||23|100363 +3010|MN|Aitkin County|Nordland township|73|0|7|Deegan|Marcel|2989|Central African Republic|M|Son|||21|100364 +3010|MN|Aitkin County|Nordland township|73|0|8|Deegan|Elfriede|2993|Mississippi|F|Daughter|||17|100365 +3010|MN|Aitkin County|Nordland township|73|0|9|Deegan|Naoma Melia|2995|Missouri|F|Daughter|||15|100366 +3010|MN|Aitkin County|Nordland township|73|0|10|Deegan|Blondell Darlena|2999|Georgia|F|Daughter|||11|100367 + +3010|MI|Antrim County|Elk Rapids township|74|0|1|Fitzmier|Glenn Moises|2945|South Carolina|M|Head|||65|100368 +3010|MI|Antrim County|Elk Rapids township|74|0|2|Fitzmier|Violet|2962|Delaware|F|Spouse|||48|100369 +3010|MI|Antrim County|Elk Rapids township|74|0|3|Fitzmier|Garland Randall|2996|Michigan|M|Son|||14|100370 +3010|MI|Antrim County|Elk Rapids township|74|0|4|Fitzmier|Rodrigo Monte|2998|Colorado|M|Son|||12|100371 +3010|MI|Antrim County|Elk Rapids township|74|0|5|Fitzmier|Britt|3005|MI|M|Son|||5|100372 +3010|MI|Antrim County|Elk Rapids township|74|0|6|Fitzmier|Arnoldo Jorge|3009|MI|M|Son|||1|100373 + +3010|OK|Rogers County|Inola town|75|0|1|Burditt|Dennis Tuan|2963|Rhode Island|M|Head|||47|100374 +3010|OK|Rogers County|Inola town|75|0|2|Burditt|Krysten|2976|Tajikistan|F|Spouse|||34|100375 +3010|OK|Rogers County|Inola town|75|0|3|Burditt|Jeremiah|2996|Florida|M|Son|||14|100376 +3010|OK|Rogers County|Inola town|75|0|4|Burditt|Marvin|2998|Mississippi|M|Son|||12|100377 +3010|OK|Rogers County|Inola town|75|0|5|Burditt|Timothy|3001|OK|M|Son|||9|100378 +3010|OK|Rogers County|Inola town|75|0|6|Burditt|Gerald|3003|OK|M|Son|||7|100379 +3010|OK|Rogers County|Inola town|75|0|7|Burditt|Debi Leola|3005|OK|F|Daughter|||5|100380 +3010|OK|Rogers County|Inola town|75|0|8|Burditt|Chauncey|3009|OK|M|Son|||1|100381 + +3010|MD|Cecil County|Chesapeake City town|76|0|1|Walker|Ira Basil|2971|Idaho|M|Head|||39|100382 +3010|MD|Cecil County|Chesapeake City town|76|0|2|Walker|Regena|2978|California|F|Spouse|||32|100383 +3010|MD|Cecil County|Chesapeake City town|76|0|3|Walker|Lavinia|2998|Hawaii|F|Daughter|||12|100384 +3010|MD|Cecil County|Chesapeake City town|76|0|4|Walker|Candy|3000|Georgia|F|Daughter|||10|100385 +3010|MD|Cecil County|Chesapeake City town|76|0|5|Walker|Latonia|3001|MD|F|Daughter|||9|100386 +3010|MD|Cecil County|Chesapeake City town|76|0|6|Walker|Ilda|3003|MD|F|Daughter|||7|100387 +3010|MD|Cecil County|Chesapeake City town|76|0|7|Walker|Veronica|3005|MD|F|Daughter|||5|100388 +3010|MD|Cecil County|Chesapeake City town|76|0|8|Walker|Sherita|3009|MD|F|Daughter|||1|100389 + +3010|TX|Bexar County|Hill Country Village city|77|0|1|Deckman|Alethia|2968|Nebraska|F|Head|||42|100390 +3010|TX|Bexar County|Hill Country Village city|77|0|2|Deckman|Juan|2988|Arkansas|M|Son|||22|100391 +3010|TX|Bexar County|Hill Country Village city|77|0|3|Deckman|Agripina|2992|Washington|F|Daughter|||18|100392 +3010|TX|Bexar County|Hill Country Village city|77|0|4|Deckman|Pilar|2998|Cuba|F|Daughter|||12|100393 +3010|TX|Bexar County|Hill Country Village city|77|0|5|Deckman|Augustus|3000|Massachusetts|M|Son|||10|100394 + +3010|MI|Branch County|Quincy township|78|0|1|Stevens|Luther|2991|Oregon|M|Son|||19|100395 +3010|MI|Branch County|Quincy township|78|0|2|Stevens|Brock|2993|Hungary|M|Son|||17|100396 + +3010|WV|Harrison County|Enterprise CDP|79|0|1|Balmaceda|Elmo Harry|2939|Marshall Islands|M|Head|||71|100397 +3010|WV|Harrison County|Enterprise CDP|79|0|2|Balmaceda|Daphine|2953|North Carolina|F|Spouse|||57|100398 +3010|WV|Harrison County|Enterprise CDP|79|0|3|Balmaceda|Farrah|2985|Oregon|F|Daughter|||25|100399 +3010|WV|Harrison County|Enterprise CDP|79|0|4|Balmaceda|Angel Ira|2993|Maine|M|Son|||17|100400 +3010|WV|Harrison County|Enterprise CDP|79|0|5|Balmaceda|Edmond|3005|WV|M|Son|||5|100401 +3010|WV|Harrison County|Enterprise CDP|79|0|6|Balmaceda|Melva Martha|3007|WV|F|Daughter|||3|100402 + +3010|MN|Winona County|Stockton city|80|0|1|Follis|Abraham Rafael|2938|Connecticut|M|Head|||72|100403 + +3010|AR|Crawford County|Mulberry city|81|0|1|Feagin|Lyman Dewayne|2964|Michigan|M|Head|||46|100404 +3010|AR|Crawford County|Mulberry city|81|0|2|Feagin|Pura|2970|New Hampshire|F|Spouse|||40|100405 +3010|AR|Crawford County|Mulberry city|81|0|3|Feagin|Micah|2996|Florida|M|Son|||14|100406 +3010|AR|Crawford County|Mulberry city|81|0|4|Feagin|Shawnta|3001|AR|F|Daughter|||9|100407 +3010|AR|Crawford County|Mulberry city|81|0|5|Feagin|Arlena|3003|AR|F|Daughter|||7|100408 +3010|AR|Crawford County|Mulberry city|81|0|6|Feagin|Mason|3005|AR|M|Son|||5|100409 + +3010|NY|Franklin County|Paul Smiths CDP|82|0|1|Anderson|Rubin Isidro|2970|Nigeria|M|Head|||40|100410 +3010|NY|Franklin County|Paul Smiths CDP|82|0|2|Anderson|Ona Leeanna|2995|Wyoming|F|Daughter|||15|100411 +3010|NY|Franklin County|Paul Smiths CDP|82|0|3|Anderson|Alecia|2997|Mauritania|F|Daughter|||13|100412 +3010|NY|Franklin County|Paul Smiths CDP|82|0|4|Anderson|Simona|2999|West Virginia|F|Daughter|||11|100413 +3010|NY|Franklin County|Paul Smiths CDP|82|0|5|Anderson|Brandy|3007|NY|F|Daughter|||3|100414 + +3010|WI|Iowa County|Hollandale village|83|0|1|Stiteler|Wendie|2978|Iowa|F|Head|||32|100415 +3010|WI|Iowa County|Hollandale village|83|0|2|Stiteler|Hank|2998|Montana|M|Son|||12|100416 + +3010|CA|Mono County|Sunny Slopes CDP|84|0|1|Pou|Cesar Davis|2941|Oregon|M|Head|||69|100417 +3010|CA|Mono County|Sunny Slopes CDP|84|0|2|Pou|Erika|2964|Saint Pierre And Miquelon|F|Spouse|||46|100418 +3010|CA|Mono County|Sunny Slopes CDP|84|0|3|Pou|Leandro|2988|Tajikistan|M|Son|||22|100419 +3010|CA|Mono County|Sunny Slopes CDP|84|0|4|Pou|Aimee|2996|South Carolina|F|Daughter|||14|100420 +3010|CA|Mono County|Sunny Slopes CDP|84|0|5|Pou|Adam|3000|Oregon|M|Son|||10|100421 +3010|CA|Mono County|Sunny Slopes CDP|84|0|6|Pou|Ahmad Pedro|3003|CA|M|Son|||7|100422 +3010|CA|Mono County|Sunny Slopes CDP|84|0|7|Pou|Tish|3009|CA|F|Daughter|||1|100423 + +3010|NJ|Monmouth County|Avon-by-the-Sea borough|85|0|1|Staebell|Vinnie|2951|Hawaii|F|Head|||59|100424 +3010|NJ|Monmouth County|Avon-by-the-Sea borough|85|0|2|Staebell|Derick|2971|Alaska|M|Son|||39|100425 +3010|NJ|Monmouth County|Avon-by-the-Sea borough|85|0|3|Staebell|Audry|2985|Netherlands Antilles|F|Daughter|||25|100426 +3010|NJ|Monmouth County|Avon-by-the-Sea borough|85|0|4|Staebell|Napoleon|2999|South Carolina|M|Son|||11|100427 + +3010|ND|Rolette County|Shell Valley CDP|86|0|1|Meredith|Olin Britt|2937|Alabama|M|Head|||73|100428 +3010|ND|Rolette County|Shell Valley CDP|86|0|2|Meredith|Alexis|2958|Indiana|F|Spouse|||52|100429 +3010|ND|Rolette County|Shell Valley CDP|86|0|3|Meredith|Billy|2986|Louisiana|M|Son|||24|100430 +3010|ND|Rolette County|Shell Valley CDP|86|0|4|Meredith|Bertram|2990|Washington|M|Son|||20|100431 +3010|ND|Rolette County|Shell Valley CDP|86|0|5|Meredith|Nigel Trevor|2998|Uganda|M|Son|||12|100432 +3010|ND|Rolette County|Shell Valley CDP|86|0|6|Meredith|Royce|3000|South Dakota|M|Son|||10|100433 +3010|ND|Rolette County|Shell Valley CDP|86|0|7|Meredith|Jocelyn|3001|ND|F|Daughter|||9|100434 +3010|ND|Rolette County|Shell Valley CDP|86|0|8|Meredith|Edelmira|3003|ND|F|Daughter|||7|100435 + +3010|NJ|Passaic County|Paterson city|87|0|1|Childers|Nigel Doyle|2950|Rhode Island|M|Head|||60|100436 +3010|NJ|Passaic County|Paterson city|87|0|2|Childers|Clarine Regena|2954|Maine|F|Spouse|||56|100437 +3010|NJ|Passaic County|Paterson city|87|0|3|Childers|Luther|2974|Arkansas|M|Son|||36|100438 +3010|NJ|Passaic County|Paterson city|87|0|4|Childers|Zachary|2990|Rhode Island|M|Son|||20|100439 +3010|NJ|Passaic County|Paterson city|87|0|5|Childers|Katie|2998|Georgia|F|Daughter|||12|100440 +3010|NJ|Passaic County|Paterson city|87|0|6|Childers|Leif|3001|NJ|M|Son|||9|100441 +3010|NJ|Passaic County|Paterson city|87|0|7|Childers|Ramiro|3003|NJ|M|Son|||7|100442 +3010|NJ|Passaic County|Paterson city|87|0|8|Childers|Jimmie|3009|NJ|M|Son|||1|100443 + +3010|CO|Grand County|Parshall CDP|88|0|1|Leinen|Darleen|2981|Delaware|F|Head|||29|100444 + +3010|OH|Adams County|Rome village|89|0|1|Kim|Shawn Branden|2964|Arizona|M|Head|||46|100445 +3010|OH|Adams County|Rome village|89|0|2|Kim|Shara|2984|Alaska|F|Spouse|||26|100446 +3010|OH|Adams County|Rome village|89|0|3|Kim|Sylvester|3001|NM|M|Son|||9|100447 +3010|OH|Adams County|Rome village|89|0|4|Kim|Lulu|3003|NM|F|Daughter|||7|100448 +3010|OH|Adams County|Rome village|89|0|5|Kim|Lynne|3005|NM|F|Daughter|||5|100449 +3010|OH|Adams County|Rome village|89|0|6|Kim|Alanna|3007|OH|F|Daughter|||3|100450 + +3010|WI|Jefferson County|Jefferson city|90|0|1|Weber|Jo|2954|Kuwait|F|Head|||56|100451 +3010|WI|Jefferson County|Jefferson city|90|0|2|Weber|Shan|2982|Kansas|F|Daughter|||28|100452 +3010|WI|Jefferson County|Jefferson city|90|0|3|Weber|Keven|2986|Wisconsin|M|Son|||24|100453 +3010|WI|Jefferson County|Jefferson city|90|0|4|Weber|Helen|2994|Georgia|F|Daughter|||16|100454 +3010|WI|Jefferson County|Jefferson city|90|0|5|Weber|Horacio|2998|North Dakota|M|Son|||12|100455 +3010|WI|Jefferson County|Jefferson city|90|0|6|Weber|Charla|3000|Arkansas|F|Daughter|||10|100456 + +3010|KS|Franklin County|Wellsville city|91|0|1|Difranco|Pierre Monte|2943|Kansas|M|Head|||67|100457 +3010|KS|Franklin County|Wellsville city|91|0|2|Difranco|Fran|2958|Georgia|F|Spouse|||52|100458 +3010|KS|Franklin County|Wellsville city|91|0|3|Difranco|Joana|3000|Louisiana|F|Daughter|||10|100459 +3010|KS|Franklin County|Wellsville city|91|0|4|Difranco|Bernie|3001|KS|M|Son|||9|100460 +3010|KS|Franklin County|Wellsville city|91|0|5|Difranco|Yuki Bette|3005|KS|F|Daughter|||5|100461 +3010|KS|Franklin County|Wellsville city|91|0|6|Difranco|Greg|3007|KS|M|Son|||3|100462 + +3010|PA|Allegheny County|Sharpsburg borough|92|0|1|Russell|Teri|2955|Missouri|F|Head|||55|100463 +3010|PA|Allegheny County|Sharpsburg borough|92|0|2|Russell|Kimberlee Andre|2975|West Virginia|F|Daughter|||35|100464 +3010|PA|Allegheny County|Sharpsburg borough|92|0|3|Russell|Pasquale|2999|Georgia|M|Son|||11|100465 + +3010|CO|Arapahoe County, Douglas County, Jefferson County|Littleton city|93|0|1|Patterson|Marlon Quentin|2955|Puerto Rico|M|Head|||55|100466 +3010|CO|Arapahoe County, Douglas County, Jefferson County|Littleton city|93|0|2|Patterson|Tara|2978|Pennsylvania|F|Spouse|||32|100467 +3010|CO|Arapahoe County, Douglas County, Jefferson County|Littleton city|93|0|3|Patterson|Arthur|3000|Indiana|F|Daughter|||10|100468 +3010|CO|Arapahoe County, Douglas County, Jefferson County|Littleton city|93|0|4|Patterson|Arthur Chance|3001|CO|M|Son|||9|100469 +3010|CO|Arapahoe County, Douglas County, Jefferson County|Littleton city|93|0|5|Patterson|Hyman|3007|CO|M|Son|||3|100470 +3010|CO|Arapahoe County, Douglas County, Jefferson County|Littleton city|93|0|6|Patterson|Allen Earnest|3009|CO|M|Son|||1|100471 + +3010|LA|Jefferson Parish|Waggaman CDP|94|0|1|Moe|Roscoe Harry|2954|Alabama|M|Head|||56|100472 +3010|LA|Jefferson Parish|Waggaman CDP|94|0|2|Moe|Johnny|2984|Benin|F|Daughter|||26|100473 +3010|LA|Jefferson Parish|Waggaman CDP|94|0|3|Moe|Deetta|2988|Maine|F|Daughter|||22|100474 +3010|LA|Jefferson Parish|Waggaman CDP|94|0|4|Moe|Rana|3000|Arkansas|F|Daughter|||10|100475 + +3010|OH|Paulding County, Van Wert County|Scott village|95|0|1|Ascheman|Rosemary|2982|California|F|Head|||28|100476 + +3010|FL|Volusia County|Ormond-by-the-Sea CDP|96|0|1|Grando|Leora|2960|Indiana|F|Spouse|||50|100477 +3010|FL|Volusia County|Ormond-by-the-Sea CDP|96|0|2|Grando|Georgeanna|2980|Poland|F|Daughter|||30|100478 +3010|FL|Volusia County|Ormond-by-the-Sea CDP|96|0|3|Grando|Ricky Carter|2996|Idaho|M|Son|||14|100479 +3010|FL|Volusia County|Ormond-by-the-Sea CDP|96|0|4|Grando|Iola|3003|FL|F|Daughter|||7|100480 + +3010|KS|McPherson County|Marquette city|97|0|1|Sahagian|Millard Morris|2957|Cocos (keeling) Islands|M|Head|||53|100481 +3010|KS|McPherson County|Marquette city|97|0|2|Sahagian|Eli|2996|Maryland|M|Son|||14|100482 +3010|KS|McPherson County|Marquette city|97|0|3|Sahagian|Ranae|3000|North Dakota|F|Daughter|||10|100483 +3010|KS|McPherson County|Marquette city|97|0|4|Sahagian|Jeramy|3001|KS|M|Son|||9|100484 +3010|KS|McPherson County|Marquette city|97|0|5|Sahagian|Jordan Lewis|3009|KS|M|Son|||1|100485 + +3010|NY|Columbia County|Ghent CDP|98|0|1|Laprade|Irving Elias|2947|Alaska|M|Head|||63|100486 +3010|NY|Columbia County|Ghent CDP|98|0|2|Laprade|Tonie|2962|Connecticut|F|Spouse|||48|100487 +3010|NY|Columbia County|Ghent CDP|98|0|3|Laprade|Lorraine|2984|New York|F|Daughter|||26|100488 +3010|NY|Columbia County|Ghent CDP|98|0|4|Laprade|Bryon|2986|Alabama|M|Son|||24|100489 +3010|NY|Columbia County|Ghent CDP|98|0|5|Laprade|Kala|2994|Saudi Arabia|F|Daughter|||16|100490 +3010|NY|Columbia County|Ghent CDP|98|0|6|Laprade|Tifany|2996|New Mexico|F|Daughter|||14|100491 +3010|NY|Columbia County|Ghent CDP|98|0|7|Laprade|Lon|3000|West Virginia|M|Son|||10|100492 +3010|NY|Columbia County|Ghent CDP|98|0|8|Laprade|Joshua|3003|NY|F|Daughter|||7|100493 +3010|NY|Columbia County|Ghent CDP|98|0|9|Laprade|Sherie|3005|NY|F|Daughter|||5|100494 + +3010|MO|Clay County|Oakwood village|99|0|1|Bohorquez|Guy Santos|2944|Iowa|M|Head|||66|100495 +3010|MO|Clay County|Oakwood village|99|0|2|Bohorquez|Catherine|2960|Massachusetts|F|Spouse|||50|100496 +3010|MO|Clay County|Oakwood village|99|0|3|Bohorquez|Sylvester David|2980|Liechtenstein|M|Son|||30|100497 +3010|MO|Clay County|Oakwood village|99|0|4|Bohorquez|Dwain|2990|Alaska|M|Son|||20|100498 +3010|MO|Clay County|Oakwood village|99|0|5|Bohorquez|Brandon Britt|2998|West Virginia|M|Son|||12|100499 +3010|MO|Clay County|Oakwood village|99|0|6|Bohorquez|Shiela|3000|Connecticut|F|Daughter|||10|100500 +3010|MO|Clay County|Oakwood village|99|0|7|Bohorquez|Kylee|3001|MO|F|Daughter|||9|100501 +3010|MO|Clay County|Oakwood village|99|0|8|Bohorquez|Columbus|3005|MO|M|Son|||5|100502 + +3010|VT|Orleans County|Newport city|100|0|1|Nolan|Tambra Adelaide|2963|Oklahoma|F|Head|||47|100503 +3010|VT|Orleans County|Newport city|100|0|2|Nolan|Jose|2987|Mississippi|M|Son|||23|100504 +3010|VT|Orleans County|Newport city|100|0|3|Nolan|Dylan Adrian|2997|Montana|M|Son|||13|100505 + +3010|NY|Cattaraugus County|South Dayton village|101|0|1|Mcelroy|Craig Clark|2954|Virginia|M|Head|||56|100506 +3010|NY|Cattaraugus County|South Dayton village|101|0|2|Mcelroy|Ludivina|3000|Louisiana|F|Daughter|||10|100507 + +3010|WI|Waushara County|Coloma village|102|0|1|Mannion|Abe Herbert|2947|Massachusetts|M|Head|||63|100508 +3010|WI|Waushara County|Coloma village|102|0|2|Mannion|Venetta|2943|South Dakota|F|Spouse|||67|100509 +3010|WI|Waushara County|Coloma village|102|0|3|Mannion|Guillermina|2979|Montana|F|Daughter|||31|100510 +3010|WI|Waushara County|Coloma village|102|0|4|Mannion|Deandre|2987|Texas|M|Son|||23|100511 +3010|WI|Waushara County|Coloma village|102|0|5|Mannion|Gavin|3001|WI|M|Son|||9|100512 +3010|WI|Waushara County|Coloma village|102|0|6|Mannion|Homer Napoleon|3003|WI|M|Son|||7|100513 + +3010|OH|Belmont County|Morristown village|103|0|1|Bennett|Leandro|2962|Connecticut|M|Head|||48|100514 +3010|OH|Belmont County|Morristown village|103|0|2|Bennett|Concha|2982|Virginia|F|Spouse|||28|100515 +3010|OH|Belmont County|Morristown village|103|0|3|Bennett|Signe Melany|3001|IL|F|Daughter|||9|100516 +3010|OH|Belmont County|Morristown village|103|0|4|Bennett|Ahmed|3003|IL|M|Son|||7|100517 +3010|OH|Belmont County|Morristown village|103|0|5|Bennett|Scott|3007|OH|M|Son|||3|100518 + +3010|TX|Hays County|Wimberley city|104|0|1|Ramos|Stephen Alec|2967|Utah|M|Head|||43|100519 + +3010|NJ|Monmouth County|Lake Como borough|105|0|1|Hanenkrat|Shane Florentino|2946|Texas|M|Head|||64|100520 +3010|NJ|Monmouth County|Lake Como borough|105|0|2|Hanenkrat|Yuko|2947|Wisconsin|F|Spouse|||63|100521 +3010|NJ|Monmouth County|Lake Como borough|105|0|3|Hanenkrat|Ruby|2973|New Mexico|F|Daughter|||37|100522 +3010|NJ|Monmouth County|Lake Como borough|105|0|4|Hanenkrat|Echo|2987|Nevada|F|Daughter|||23|100523 +3010|NJ|Monmouth County|Lake Como borough|105|0|5|Hanenkrat|Luigi|2989|Georgia|M|Son|||21|100524 +3010|NJ|Monmouth County|Lake Como borough|105|0|6|Hanenkrat|Reyes|2991|Alabama|M|Son|||19|100525 +3010|NJ|Monmouth County|Lake Como borough|105|0|7|Hanenkrat|Emmitt|2997|Kansas|M|Son|||13|100526 +3010|NJ|Monmouth County|Lake Como borough|105|0|8|Hanenkrat|Stanford|3001|NJ|M|Son|||9|100527 +3010|NJ|Monmouth County|Lake Como borough|105|0|9|Hanenkrat|Curtis|3003|NJ|M|Son|||7|100528 + +3010|NC|Surry County|Dobson town|106|0|1|Gentery|Chad|2945|Montana|M|Head|||65|100529 +3010|NC|Surry County|Dobson town|106|0|2|Gentery|Winter|2975|Virginia|F|Daughter|||35|100530 +3010|NC|Surry County|Dobson town|106|0|3|Gentery|Rufina|2989|Oregon|F|Daughter|||21|100531 +3010|NC|Surry County|Dobson town|106|0|4|Gentery|Rich Newton|2993|Alaska|M|Son|||17|100532 +3010|NC|Surry County|Dobson town|106|0|5|Gentery|Loura|2999|Netherlands Antilles|F|Daughter|||11|100533 + +3010|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|1|Santos|Byron|2986|Malawi|M|Son|||24|100534 +3010|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|2|Santos|Krishna Rae|2992|Liechtenstein|F|Daughter|||18|100535 +3010|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|3|Santos|Delbert|2996|Hungary|M|Son|||14|100536 +3010|PR|Sabana Grande Municipio|Sabana Grande zona urbana|107|0|4|Santos|Ray|3003|PR|F|Daughter|||7|100537 + +3010|ID|Payette County|Payette city|108|0|1|Hofstetter|Jamal Kurt|2943|Michigan|M|Head|||67|100538 +3010|ID|Payette County|Payette city|108|0|2|Hofstetter|Joi Jaqueline|2945|New Jersey|F|Spouse|||65|100539 +3010|ID|Payette County|Payette city|108|0|3|Hofstetter|Ahmed|2969|Indiana|M|Son|||41|100540 +3010|ID|Payette County|Payette city|108|0|4|Hofstetter|Douglass|2999|New Hampshire|M|Son|||11|100541 +3010|ID|Payette County|Payette city|108|0|5|Hofstetter|Hunter|3003|ID|M|Son|||7|100542 +3010|ID|Payette County|Payette city|108|0|6|Hofstetter|Jenette|3007|ID|F|Daughter|||3|100543 + +3010|VT|Windham County|Athens town|109|0|1|Baskow|Dimple|2956|Maryland|F|Spouse|||54|100544 +3010|VT|Windham County|Athens town|109|0|2|Baskow|Yolande|2988|Bhutan|F|Daughter|||22|100545 +3010|VT|Windham County|Athens town|109|0|3|Baskow|Derick|2990|Indiana|M|Son|||20|100546 +3010|VT|Windham County|Athens town|109|0|4|Baskow|Rupert|2994|Pennsylvania|M|Son|||16|100547 +3010|VT|Windham County|Athens town|109|0|5|Baskow|Bambi|2998|Zambia|F|Daughter|||12|100548 +3010|VT|Windham County|Athens town|109|0|6|Baskow|Brady|3005|VT|M|Son|||5|100549 +3010|VT|Windham County|Athens town|109|0|7|Baskow|Bennett|3007|VT|M|Son|||3|100550 + +3010|PA|Somerset County|Benson borough|110|0|1|Edmonson|Millicent|2978|Lithuania|F|Head|||32|100551 +3010|PA|Somerset County|Benson borough|110|0|2|Edmonson|Devin Theodore|2998|Maine|M|Son|||12|100552 +3010|PA|Somerset County|Benson borough|110|0|3|Edmonson|Yajaira|3000|Alabama|F|Daughter|||10|100553 + +3010|MI|Leelanau County|Northport village|111|0|1|Rappley|Bobby Davis|2953|Arkansas|M|Head|||57|100554 +3010|MI|Leelanau County|Northport village|111|0|2|Rappley|Lorna|2960|Hawaii|F|Spouse|||50|100555 +3010|MI|Leelanau County|Northport village|111|0|3|Rappley|Alan|2982|Wyoming|M|Son|||28|100556 +3010|MI|Leelanau County|Northport village|111|0|4|Rappley|Debbie Brianne|2986|Massachusetts|F|Daughter|||24|100557 +3010|MI|Leelanau County|Northport village|111|0|5|Rappley|Aubrey|2996|Indiana|M|Son|||14|100558 +3010|MI|Leelanau County|Northport village|111|0|6|Rappley|Racheal|2998|Ohio|F|Daughter|||12|100559 +3010|MI|Leelanau County|Northport village|111|0|7|Rappley|Luciano|3001|PA|M|Son|||9|100560 +3010|MI|Leelanau County|Northport village|111|0|8|Rappley|Lonny|3007|MI|M|Son|||3|100561 +3010|MI|Leelanau County|Northport village|111|0|9|Rappley|Albertine|3009|MI|F|Daughter|||1|100562 + +3010|NC|Edgecombe County|Speed town|112|0|1|Bottolene|Reggie Mohammed|2944|Oklahoma|M|Head|||66|100563 +3010|NC|Edgecombe County|Speed town|112|0|2|Bottolene|Elna|2974|Guinea-bissau|F|Daughter|||36|100564 +3010|NC|Edgecombe County|Speed town|112|0|3|Bottolene|Owen|2986|North Carolina|M|Son|||24|100565 +3010|NC|Edgecombe County|Speed town|112|0|4|Bottolene|Daria Kaley|2990|California|F|Daughter|||20|100566 + +3010|MI|Ontonagon County|Ontonagon village|113|0|1|Jarnagin|Sang Manual|2953|Washington|M|Head|||57|100567 +3010|MI|Ontonagon County|Ontonagon village|113|0|2|Jarnagin|Noriko|2974|Iowa|F|Spouse|||36|100568 +3010|MI|Ontonagon County|Ontonagon village|113|0|3|Jarnagin|Wendell|2996|Zimbabwe|M|Son|||14|100569 +3010|MI|Ontonagon County|Ontonagon village|113|0|4|Jarnagin|Stephaine|2998|Nevada|F|Daughter|||12|100570 +3010|MI|Ontonagon County|Ontonagon village|113|0|5|Jarnagin|Digna|3001|MI|F|Daughter|||9|100571 +3010|MI|Ontonagon County|Ontonagon village|113|0|6|Jarnagin|Lauren|3003|MI|M|Son|||7|100572 +3010|MI|Ontonagon County|Ontonagon village|113|0|7|Jarnagin|Kathrin|3005|MI|F|Daughter|||5|100573 +3010|MI|Ontonagon County|Ontonagon village|113|0|8|Jarnagin|Particia|3007|MI|F|Daughter|||3|100574 +3010|MI|Ontonagon County|Ontonagon village|113|0|9|Jarnagin|Edna|3009|MI|F|Daughter|||1|100575 + +3010|UT|Davis County|North Salt Lake city|114|0|1|Salmonsen|Porter Neil|2941|Pennsylvania|M|Head|||69|100576 +3010|UT|Davis County|North Salt Lake city|114|0|2|Salmonsen|Fletcher Brant|2979|Texas|M|Son|||31|100577 +3010|UT|Davis County|North Salt Lake city|114|0|3|Salmonsen|Frank|2985|Arkansas|M|Son|||25|100578 +3010|UT|Davis County|North Salt Lake city|114|0|4|Salmonsen|Alice|2997|Florida|F|Daughter|||13|100579 + +3010|MN|Swift County|Kerkhoven township|115|0|1|Aro|Tyron Samual|2957|Washington|M|Head|||53|100580 +3010|MN|Swift County|Kerkhoven township|115|0|2|Aro|Farah|2953|Alaska|F|Spouse|||57|100581 +3010|MN|Swift County|Kerkhoven township|115|0|3|Aro|Wayne|2987|Idaho|M|Son|||23|100582 +3010|MN|Swift County|Kerkhoven township|115|0|4|Aro|Jamey|2999|Ohio|M|Son|||11|100583 +3010|MN|Swift County|Kerkhoven township|115|0|5|Aro|Michel|3001|MN|F|Daughter|||9|100584 +3010|MN|Swift County|Kerkhoven township|115|0|6|Aro|Charlyn Martha|3007|MN|F|Daughter|||3|100585 + +3010|KS|Cherokee County|Galena city|116|0|1|Meadows|Melvin|2985|Colorado|M|Son|||25|100586 +3010|KS|Cherokee County|Galena city|116|0|2|Meadows|Alvaro|2997|Nebraska|M|Son|||13|100587 +3010|KS|Cherokee County|Galena city|116|0|3|Meadows|Benedict|2999|North Dakota|M|Son|||11|100588 +3010|KS|Cherokee County|Galena city|116|0|4|Meadows|Heather|3007|KS|F|Daughter|||3|100589 +3010|KS|Cherokee County|Galena city|116|0|5|Meadows|Arnita Yuonne|3009|KS|F|Daughter|||1|100590 + +3010|ME|Penobscot County|Hampden town|117|0|1|Davis|Lane Wilton|2970|Colorado|M|Head|||40|100591 +3010|ME|Penobscot County|Hampden town|117|0|2|Davis|Marisol|2968|Alaska|F|Spouse|||42|100592 +3010|ME|Penobscot County|Hampden town|117|0|3|Davis|Laraine|2992|Illinois|F|Daughter|||18|100593 +3010|ME|Penobscot County|Hampden town|117|0|4|Davis|Efren|3000|Oklahoma|M|Son|||10|100594 +3010|ME|Penobscot County|Hampden town|117|0|5|Davis|Darwin|3001|ME|M|Son|||9|100595 +3010|ME|Penobscot County|Hampden town|117|0|6|Davis|Scot|3003|ME|M|Son|||7|100596 + +3010|MT|Carbon County|Red Lodge city|118|0|1|Ricketts|Susy|2957|Illinois|F|Spouse|||53|100597 +3010|MT|Carbon County|Red Lodge city|118|0|2|Ricketts|Gaston|2979|Wisconsin|M|Son|||31|100598 +3010|MT|Carbon County|Red Lodge city|118|0|3|Ricketts|Danilo|2985|Connecticut|M|Son|||25|100599 +3010|MT|Carbon County|Red Lodge city|118|0|4|Ricketts|Eldridge|2997|Alaska|M|Son|||13|100600 +3010|MT|Carbon County|Red Lodge city|118|0|5|Ricketts|Caprice|2999|Rhode Island|F|Daughter|||11|100601 +3010|MT|Carbon County|Red Lodge city|118|0|6|Ricketts|Jan|3009|MT|F|Daughter|||1|100602 + +3010|ID|Kootenai County|Harrison city|119|0|1|Anderson|Louie Ruben|2981|Virginia|M|Head|||29|100603 +3010|ID|Kootenai County|Harrison city|119|0|2|Anderson|Karen|2983|Arizona|F|Spouse|||27|100604 +3010|ID|Kootenai County|Harrison city|119|0|3|Anderson|Marcus|3005|ID|M|Son|||5|100605 +3010|ID|Kootenai County|Harrison city|119|0|4|Anderson|Omer|3007|ID|M|Son|||3|100606 +3010|ID|Kootenai County|Harrison city|119|0|5|Anderson|Maybell|3009|ID|F|Daughter|||1|100607 + +3010|NM|Lea County|Nadine CDP|120|0|1|Helton|Jamie Domingo|2945|North Dakota|M|Head|||65|100608 +3010|NM|Lea County|Nadine CDP|120|0|2|Helton|Oralee|2958|Pennsylvania|F|Spouse|||52|100609 +3010|NM|Lea County|Nadine CDP|120|0|3|Helton|Suzette|2988|Arizona|F|Daughter|||22|100610 +3010|NM|Lea County|Nadine CDP|120|0|4|Helton|Elbert Rod|2998|Florida|M|Son|||12|100611 +3010|NM|Lea County|Nadine CDP|120|0|5|Helton|Nga|3000|Texas|F|Daughter|||10|100612 +3010|NM|Lea County|Nadine CDP|120|0|6|Helton|Ma|3001|NM|F|Daughter|||9|100613 +3010|NM|Lea County|Nadine CDP|120|0|7|Helton|Justina|3003|NM|F|Daughter|||7|100614 +3010|NM|Lea County|Nadine CDP|120|0|8|Helton|Lucius Anthony|3007|NM|M|Son|||3|100615 + +3010|MO|Nodaway County|Elmo city|121|0|1|Kosh|Kasandra|2956|Hawaii|F|Spouse|||54|100616 +3010|MO|Nodaway County|Elmo city|121|0|2|Kosh|Layla Lanie|2986|Delaware|F|Daughter|||24|100617 +3010|MO|Nodaway County|Elmo city|121|0|3|Kosh|Cristobal|2996|Louisiana|M|Son|||14|100618 +3010|MO|Nodaway County|Elmo city|121|0|4|Kosh|Cyndy|2998|North Dakota|F|Daughter|||12|100619 +3010|MO|Nodaway County|Elmo city|121|0|5|Kosh|Moira Isabella|3000|Florida|F|Daughter|||10|100620 +3010|MO|Nodaway County|Elmo city|121|0|6|Kosh|Carlton|3001|CA|M|Son|||9|100621 +3010|MO|Nodaway County|Elmo city|121|0|7|Kosh|Cody Rick|3003|CA|M|Son|||7|100622 + +3010|IL|McLean County|Carlock village|122|0|1|Dejesus|Jefferey Ryan|2948|Hawaii|M|Head|||62|100623 +3010|IL|McLean County|Carlock village|122|0|2|Dejesus|Oretha Jennefer|2954|South Dakota|F|Spouse|||56|100624 +3010|IL|McLean County|Carlock village|122|0|3|Dejesus|Teena|2988|Maine|F|Daughter|||22|100625 +3010|IL|McLean County|Carlock village|122|0|4|Dejesus|Bethel|2996|New Hampshire|F|Daughter|||14|100626 +3010|IL|McLean County|Carlock village|122|0|5|Dejesus|Catharine|2998|Minnesota|F|Daughter|||12|100627 +3010|IL|McLean County|Carlock village|122|0|6|Dejesus|Ross|3003|IL|M|Son|||7|100628 +3010|IL|McLean County|Carlock village|122|0|7|Dejesus|Ali Vicente|3007|IL|M|Son|||3|100629 + +3010|MI|Missaukee County|West Branch township|123|0|1|Allis|Shaun Quentin|2970|Oklahoma|M|Head|||40|100630 +3010|MI|Missaukee County|West Branch township|123|0|2|Allis|Arthur|2972|Pakistan|F|Spouse|||38|100631 +3010|MI|Missaukee County|West Branch township|123|0|3|Allis|Julius|2992|Oklahoma|M|Son|||18|100632 +3010|MI|Missaukee County|West Branch township|123|0|4|Allis|Randal|2998|Virgin Islands, U.s.|M|Son|||12|100633 +3010|MI|Missaukee County|West Branch township|123|0|5|Allis|Mason|3000|Indiana|M|Son|||10|100634 +3010|MI|Missaukee County|West Branch township|123|0|6|Allis|Nestor|3001|MI|M|Son|||9|100635 +3010|MI|Missaukee County|West Branch township|123|0|7|Allis|Maris|3003|MI|F|Daughter|||7|100636 + +3010|NJ|Union County|Summit city|124|0|1|Branck|Luis Ellis|2955|Wisconsin|M|Head|||55|100637 +3010|NJ|Union County|Summit city|124|0|2|Branck|Emeline|2957|Mississippi|F|Spouse|||53|100638 +3010|NJ|Union County|Summit city|124|0|3|Branck|Audrey|3007|NJ|F|Daughter|||3|100639 + +3010|AZ|Graham County|Fort Thomas CDP|125|0|1|Haigler|Tom Eddy|2953|Arizona|M|Head|||57|100640 +3010|AZ|Graham County|Fort Thomas CDP|125|0|2|Haigler|Retha|2988|Connecticut|F|Daughter|||22|100641 +3010|AZ|Graham County|Fort Thomas CDP|125|0|3|Haigler|Kenny|2998|Pennsylvania|M|Son|||12|100642 +3010|AZ|Graham County|Fort Thomas CDP|125|0|4|Haigler|Ty|3000|Barbados|M|Son|||10|100643 + +3010|WV|Fayette County|Meadow Bridge town|126|0|1|James|Roy Riley|2970|Mississippi|M|Head|||40|100644 +3010|WV|Fayette County|Meadow Bridge town|126|0|2|James|Joya|2969|Florida|F|Spouse|||41|100645 +3010|WV|Fayette County|Meadow Bridge town|126|0|3|James|Macie|2995|Tennessee|F|Daughter|||15|100646 +3010|WV|Fayette County|Meadow Bridge town|126|0|4|James|Oretha Dara|3001|WV|F|Daughter|||9|100647 +3010|WV|Fayette County|Meadow Bridge town|126|0|5|James|Randal|3005|WV|M|Son|||5|100648 +3010|WV|Fayette County|Meadow Bridge town|126|0|6|James|Carl|3009|WV|M|Son|||1|100649 + +3010|OR|Clackamas County|Happy Valley city|127|0|1|Garvey|Hiram|2954|Oregon|M|Head|||56|100650 +3010|OR|Clackamas County|Happy Valley city|127|0|2|Garvey|Shemeka|2973|Arkansas|F|Spouse|||37|100651 +3010|OR|Clackamas County|Happy Valley city|127|0|3|Garvey|Mark|2993|Georgia|M|Son|||17|100652 +3010|OR|Clackamas County|Happy Valley city|127|0|4|Garvey|Denis|2995|Mississippi|M|Son|||15|100653 +3010|OR|Clackamas County|Happy Valley city|127|0|5|Garvey|Velia Porsche|3005|OR|F|Daughter|||5|100654 +3010|OR|Clackamas County|Happy Valley city|127|0|6|Garvey|Addie|3009|OR|F|Daughter|||1|100655 + +3010|MO|St. Louis County|Manchester city|128|0|1|Sizemore|Concha|2977|North Carolina|F|Spouse|||33|100656 +3010|MO|St. Louis County|Manchester city|128|0|2|Sizemore|Juliette|2997|Arkansas|F|Daughter|||13|100657 +3010|MO|St. Louis County|Manchester city|128|0|3|Sizemore|Dede|3001|MO|F|Daughter|||9|100658 + +3010|MA|Worcester County|Baldwinville CDP|129|0|1|Matteo|Lincoln Thad|2941|Massachusetts|M|Head|||69|100659 +3010|MA|Worcester County|Baldwinville CDP|129|0|2|Matteo|Magdalena|2945|Mozambique|F|Spouse|||65|100660 +3010|MA|Worcester County|Baldwinville CDP|129|0|3|Matteo|Ardelle|2987|Colorado|F|Daughter|||23|100661 +3010|MA|Worcester County|Baldwinville CDP|129|0|4|Matteo|Rod|2999|Illinois|M|Son|||11|100662 +3010|MA|Worcester County|Baldwinville CDP|129|0|5|Matteo|Bennett|3001|MA|M|Son|||9|100663 +3010|MA|Worcester County|Baldwinville CDP|129|0|6|Matteo|Antoine|3009|MA|M|Son|||1|100664 + +3010|OK|Pottawatomie County|Johnson town|130|0|1|Villaverde|Brooks Erick|2951|Nevada|M|Head|||59|100665 +3010|OK|Pottawatomie County|Johnson town|130|0|2|Villaverde|Lee|2963|California|F|Spouse|||47|100666 +3010|OK|Pottawatomie County|Johnson town|130|0|3|Villaverde|Walter|2983|Alaska|M|Son|||27|100667 +3010|OK|Pottawatomie County|Johnson town|130|0|4|Villaverde|Nathanial|2987|West Virginia|M|Son|||23|100668 +3010|OK|Pottawatomie County|Johnson town|130|0|5|Villaverde|Hiram Geraldo|2991|Nebraska|M|Son|||19|100669 +3010|OK|Pottawatomie County|Johnson town|130|0|6|Villaverde|Janeth Edie|2995|India|F|Daughter|||15|100670 +3010|OK|Pottawatomie County|Johnson town|130|0|7|Villaverde|Virgilio Blake|2999|Hawaii|M|Son|||11|100671 +3010|OK|Pottawatomie County|Johnson town|130|0|8|Villaverde|Lisbeth|3009|OK|F|Daughter|||1|100672 + +3010|CO|Chaffee County|Johnson Village CDP|131|0|1|Mostowy|Lala|3000|Minnesota|F|Daughter|||10|100673 +3010|CO|Chaffee County|Johnson Village CDP|131|0|2|Mostowy|Sol|3007|CO|M|Son|||3|100674 + +3010|TX|Zapata County|Lopeño CDP|132|0|1|Auble|Mitch King|2948|North Dakota|M|Head|||62|100675 +3010|TX|Zapata County|Lopeño CDP|132|0|2|Auble|Milagros|2946|North Dakota|F|Spouse|||64|100676 +3010|TX|Zapata County|Lopeño CDP|132|0|3|Auble|Ali|2970|Montana|M|Son|||40|100677 +3010|TX|Zapata County|Lopeño CDP|132|0|4|Auble|Corina Sherill|2982|Alabama|F|Daughter|||28|100678 +3010|TX|Zapata County|Lopeño CDP|132|0|5|Auble|Linette|2998|Cocos (keeling) Islands|F|Daughter|||12|100679 +3010|TX|Zapata County|Lopeño CDP|132|0|6|Auble|Luis|3001|TX|M|Son|||9|100680 + +3010|MA|Worcester County|Sterling town|133|0|1|Tinsman|Modesto Franklyn|2957|Maryland|M|Head|||53|100681 +3010|MA|Worcester County|Sterling town|133|0|2|Tinsman|Agueda Ola|2968|Oklahoma|F|Spouse|||42|100682 +3010|MA|Worcester County|Sterling town|133|0|3|Tinsman|Jamar Teodoro|2988|Maine|M|Son|||22|100683 +3010|MA|Worcester County|Sterling town|133|0|4|Tinsman|Pasquale|2990|Botswana|M|Son|||20|100684 +3010|MA|Worcester County|Sterling town|133|0|5|Tinsman|Tad|3005|MA|M|Son|||5|100685 +3010|MA|Worcester County|Sterling town|133|0|6|Tinsman|Amos|3009|MA|M|Son|||1|100686 + +3010|NJ|Bergen County|Hackensack city|134|0|1|Cadoff|Fannie|2979|New Mexico|F|Head|||31|100687 + +3010|TX|Bexar County|Randolph AFB CDP|135|0|1|Griffin|Cherrie|2984|Pakistan|F|Spouse|||26|100688 +3010|TX|Bexar County|Randolph AFB CDP|135|0|2|Griffin|Ashley|3001|TX|M|Son|||9|100689 +3010|TX|Bexar County|Randolph AFB CDP|135|0|3|Griffin|Jene Yukiko|3005|TX|F|Daughter|||5|100690 +3010|TX|Bexar County|Randolph AFB CDP|135|0|4|Griffin|Jere|3007|TX|M|Son|||3|100691 + +3010|NY|Livingston County|Livonia village|136|0|1|Ruckman|Conrad Archie|2961|Illinois|M|Head|||49|100692 +3010|NY|Livingston County|Livonia village|136|0|2|Ruckman|Shela|2966|North Carolina|F|Spouse|||44|100693 +3010|NY|Livingston County|Livonia village|136|0|3|Ruckman|Gustavo|2992|Arizona|M|Son|||18|100694 +3010|NY|Livingston County|Livonia village|136|0|4|Ruckman|Anne|3005|NY|F|Daughter|||5|100695 +3010|NY|Livingston County|Livonia village|136|0|5|Ruckman|Wesley|3009|NY|M|Son|||1|100696 + +3010|TX|Tyler County|Woodville town|137|0|1|Vanzyl|Tammera|2952|Illinois|F|Head|||58|100697 +3010|TX|Tyler County|Woodville town|137|0|2|Vanzyl|Gidget|2980|Wisconsin|F|Daughter|||30|100698 +3010|TX|Tyler County|Woodville town|137|0|3|Vanzyl|Hertha|2994|Illinois|F|Daughter|||16|100699 +3010|TX|Tyler County|Woodville town|137|0|4|Vanzyl|Glenn|3000|Utah|M|Son|||10|100700 + +3010|IA|Emmet County|Ringsted city|138|0|1|Phillips|Gabriel Ramon|2957|Arkansas|M|Head|||53|100701 +3010|IA|Emmet County|Ringsted city|138|0|2|Phillips|Latrisha|2982|North Carolina|F|Daughter|||28|100702 +3010|IA|Emmet County|Ringsted city|138|0|3|Phillips|Gwenda|2986|Oklahoma|F|Daughter|||24|100703 +3010|IA|Emmet County|Ringsted city|138|0|4|Phillips|Sidney Ellsworth|2994|Arkansas|M|Son|||16|100704 +3010|IA|Emmet County|Ringsted city|138|0|5|Phillips|Otis|3000|Colorado|M|Son|||10|100705 + +3010|MT|Lincoln County|Stryker CDP|139|0|1|Shettleroe|Kaley|2976|North Dakota|F|Head|||34|100706 +3010|MT|Lincoln County|Stryker CDP|139|0|2|Shettleroe|Rolande|2996|Qatar|F|Daughter|||14|100707 +3010|MT|Lincoln County|Stryker CDP|139|0|3|Shettleroe|Nickolas|3000|North Carolina|M|Son|||10|100708 + +3010|NY|Oneida County|Vienna town|140|0|1|Stinnett|Booker|2953|Missouri|M|Head|||57|100709 +3010|NY|Oneida County|Vienna town|140|0|2|Stinnett|Malvina|2959|Maine|F|Spouse|||51|100710 +3010|NY|Oneida County|Vienna town|140|0|3|Stinnett|Lena|2987|Iowa|F|Daughter|||23|100711 +3010|NY|Oneida County|Vienna town|140|0|4|Stinnett|Mikel|2995|Arizona|M|Son|||15|100712 +3010|NY|Oneida County|Vienna town|140|0|5|Stinnett|Teresa Jackelyn|3005|NY|F|Daughter|||5|100713 + +3010|PA|Lycoming County|Washington township|141|0|1|Odonovan|Devin Scottie|2946|Alaska|M|Head|||64|100714 +3010|PA|Lycoming County|Washington township|141|0|2|Odonovan|Deja|2957|California|F|Spouse|||53|100715 +3010|PA|Lycoming County|Washington township|141|0|3|Odonovan|Briana|2989|Syrian Arab Republic|F|Daughter|||21|100716 +3010|PA|Lycoming County|Washington township|141|0|4|Odonovan|Raquel|2991|New Jersey|F|Daughter|||19|100717 +3010|PA|Lycoming County|Washington township|141|0|5|Odonovan|Nickolas|3007|PA|M|Son|||3|100718 + +3010|MO|Lincoln County|Silex village|142|0|1|Canterbury|Lemuel Shirley|2983|Florida|M|Head|||27|100719 +3010|MO|Lincoln County|Silex village|142|0|2|Canterbury|Carlyn|2982|Vermont|F|Spouse|||28|100720 +3010|MO|Lincoln County|Silex village|142|0|3|Canterbury|Jorge|3003|MO|M|Son|||7|100721 +3010|MO|Lincoln County|Silex village|142|0|4|Canterbury|Dwayne|3005|MO|M|Son|||5|100722 +3010|MO|Lincoln County|Silex village|142|0|5|Canterbury|Sung|3007|MO|F|Daughter|||3|100723 + +3010|MI|Eaton County|Oneida charter township|143|0|1|Hunt|Alonso Clyde|2949|Martinique|M|Head|||61|100724 +3010|MI|Eaton County|Oneida charter township|143|0|2|Hunt|Chu|2956|Minnesota|F|Spouse|||54|100725 +3010|MI|Eaton County|Oneida charter township|143|0|3|Hunt|Stacey|2980|Virginia|M|Son|||30|100726 +3010|MI|Eaton County|Oneida charter township|143|0|4|Hunt|Kristi|3000|Tennessee|F|Daughter|||10|100727 +3010|MI|Eaton County|Oneida charter township|143|0|5|Hunt|Floyd Israel|3003|MI|M|Son|||7|100728 + +3010|MI|Ingham County|Mason city|144|0|1|Emmerson|Rudy Donald|2943|New York|M|Head|||67|100729 +3010|MI|Ingham County|Mason city|144|0|2|Emmerson|Lilliana|2962|Egypt|F|Spouse|||48|100730 +3010|MI|Ingham County|Mason city|144|0|3|Emmerson|Viviana Kaila|2992|Nevada|F|Daughter|||18|100731 +3010|MI|Ingham County|Mason city|144|0|4|Emmerson|Rex|2998|Texas|M|Son|||12|100732 +3010|MI|Ingham County|Mason city|144|0|5|Emmerson|Jan|3000|Lebanon|M|Son|||10|100733 +3010|MI|Ingham County|Mason city|144|0|6|Emmerson|Jame Odell|3003|MI|M|Son|||7|100734 + +3010|TN|Putnam County|Baxter town|145|0|1|Bradac|Fred Daron|2950|West Virginia|M|Head|||60|100735 +3010|TN|Putnam County|Baxter town|145|0|2|Bradac|Patricia|2963|Svalbard And Jan Mayen|F|Spouse|||47|100736 +3010|TN|Putnam County|Baxter town|145|0|3|Bradac|Berry|2995|South Dakota|F|Daughter|||15|100737 +3010|TN|Putnam County|Baxter town|145|0|4|Bradac|Fredrick|2999|Missouri|M|Son|||11|100738 +3010|TN|Putnam County|Baxter town|145|0|5|Bradac|Corey Werner|3001|TN|M|Son|||9|100739 +3010|TN|Putnam County|Baxter town|145|0|6|Bradac|Hannelore|3003|TN|F|Daughter|||7|100740 +3010|TN|Putnam County|Baxter town|145|0|7|Bradac|Gary|3009|TN|F|Daughter|||1|100741 + +3010|NY|Orange County|Monroe village|146|0|1|Mortier|Malcolm Bryan|2957|Illinois|M|Head|||53|100742 +3010|NY|Orange County|Monroe village|146|0|2|Mortier|Arlette|2971|Washington|F|Spouse|||39|100743 +3010|NY|Orange County|Monroe village|146|0|3|Mortier|Dave|2993|Tennessee|M|Son|||17|100744 +3010|NY|Orange County|Monroe village|146|0|4|Mortier|Guillermina Linh|3001|NY|F|Daughter|||9|100745 +3010|NY|Orange County|Monroe village|146|0|5|Mortier|Yuonne|3003|NY|F|Daughter|||7|100746 + +3010|NY|Allegany County|Willing town|147|0|1|Tur|Anderson Hollis|2952|Virginia|M|Head|||58|100747 +3010|NY|Allegany County|Willing town|147|0|2|Tur|Liane|2985|Illinois|F|Daughter|||25|100748 +3010|NY|Allegany County|Willing town|147|0|3|Tur|Orville|2995|Belarus|M|Son|||15|100749 +3010|NY|Allegany County|Willing town|147|0|4|Tur|Julian|3001|NY|M|Son|||9|100750 +3010|NY|Allegany County|Willing town|147|0|5|Tur|Jackson Cyrus|3009|NY|M|Son|||1|100751 + +3010|MN|Kandiyohi County|Edwards township|148|0|1|Christenson|Merrilee|2976|Bosnia And Herzegovina|F|Spouse|||34|100752 +3010|MN|Kandiyohi County|Edwards township|148|0|2|Christenson|Jerilyn|3000|Vermont|F|Daughter|||10|100753 +3010|MN|Kandiyohi County|Edwards township|148|0|3|Christenson|Juan|3001|MN|F|Daughter|||9|100754 +3010|MN|Kandiyohi County|Edwards township|148|0|4|Christenson|Salvador|3007|MN|M|Son|||3|100755 +3010|MN|Kandiyohi County|Edwards township|148|0|5|Christenson|Tania|3009|MN|F|Daughter|||1|100756 + +3010|KS|Crawford County|Mulberry city|149|0|1|Tankson|Jefferson Clyde|2945|Oklahoma|M|Head|||65|100757 +3010|KS|Crawford County|Mulberry city|149|0|2|Tankson|Alina Carly|2943|Utah|F|Spouse|||67|100758 +3010|KS|Crawford County|Mulberry city|149|0|3|Tankson|Cira|2973|Kentucky|F|Daughter|||37|100759 +3010|KS|Crawford County|Mulberry city|149|0|4|Tankson|Yesenia|2989|Wisconsin|F|Daughter|||21|100760 +3010|KS|Crawford County|Mulberry city|149|0|5|Tankson|Winnifred Coretta|2997|Arkansas|F|Daughter|||13|100761 +3010|KS|Crawford County|Mulberry city|149|0|6|Tankson|Isreal|3007|KS|M|Son|||3|100762 + +3010|TX|Tarrant County|Pelican Bay city|150|0|1|Vandivort|Quincy Chance|2960|West Virginia|M|Head|||50|100763 +3010|TX|Tarrant County|Pelican Bay city|150|0|2|Vandivort|Roxanne|2979|Botswana|F|Spouse|||31|100764 +3010|TX|Tarrant County|Pelican Bay city|150|0|3|Vandivort|Bruno|3003|TX|M|Son|||7|100765 +3010|TX|Tarrant County|Pelican Bay city|150|0|4|Vandivort|Neil|3005|TX|M|Son|||5|100766 +3010|TX|Tarrant County|Pelican Bay city|150|0|5|Vandivort|Marvis|3009|TX|F|Daughter|||1|100767 + +3010|NJ|Monmouth County|Neptune township|151|0|1|Yingst|Bradly Lowell|2939|Maine|M|Head|||71|100768 +3010|NJ|Monmouth County|Neptune township|151|0|2|Yingst|Basilia|2955|Kansas|F|Spouse|||55|100769 +3010|NJ|Monmouth County|Neptune township|151|0|3|Yingst|Brigid|2985|Oklahoma|F|Daughter|||25|100770 +3010|NJ|Monmouth County|Neptune township|151|0|4|Yingst|Sanda Rina|2987|Texas|F|Daughter|||23|100771 +3010|NJ|Monmouth County|Neptune township|151|0|5|Yingst|Charline|3003|NJ|F|Daughter|||7|100772 +3010|NJ|Monmouth County|Neptune township|151|0|6|Yingst|Dee Nolan|3005|NJ|M|Son|||5|100773 +3010|NJ|Monmouth County|Neptune township|151|0|7|Yingst|Jeremy|3007|NJ|M|Son|||3|100774 + +3010|VA|Wise County|Big Stone Gap town|152|0|1|Teixeira|Esteban Isaiah|2957|Nevada|M|Head|||53|100775 +3010|VA|Wise County|Big Stone Gap town|152|0|2|Teixeira|Chloe|2971|Spain|F|Spouse|||39|100776 +3010|VA|Wise County|Big Stone Gap town|152|0|3|Teixeira|Reed|2995|Maryland|M|Son|||15|100777 +3010|VA|Wise County|Big Stone Gap town|152|0|4|Teixeira|Dina|2997|Minnesota|F|Daughter|||13|100778 +3010|VA|Wise County|Big Stone Gap town|152|0|5|Teixeira|Guy|2999|Idaho|M|Son|||11|100779 +3010|VA|Wise County|Big Stone Gap town|152|0|6|Teixeira|Carita Adriene|3001|VA|F|Daughter|||9|100780 +3010|VA|Wise County|Big Stone Gap town|152|0|7|Teixeira|Rosaline|3003|VA|F|Daughter|||7|100781 + +3010|WI|Marinette County|Goodman town|153|0|1|Yu|Dario Kyle|2941|Idaho|M|Head|||69|100782 +3010|WI|Marinette County|Goodman town|153|0|2|Yu|Judson|2978|Utah|M|Son|||32|100783 +3010|WI|Marinette County|Goodman town|153|0|3|Yu|Tori|2986|Netherlands Antilles|F|Daughter|||24|100784 +3010|WI|Marinette County|Goodman town|153|0|4|Yu|Chung|2994|South Dakota|M|Son|||16|100785 + +3010|KY|Lincoln County|Hustonville city|154|0|1|Klun|Felix Kelvin|2952|Kiribati|M|Head|||58|100786 +3010|KY|Lincoln County|Hustonville city|154|0|2|Klun|Percy|2983|Rhode Island|M|Son|||27|100787 +3010|KY|Lincoln County|Hustonville city|154|0|3|Klun|Addie|2985|South Carolina|F|Daughter|||25|100788 +3010|KY|Lincoln County|Hustonville city|154|0|4|Klun|Devin|2987|Seychelles|M|Son|||23|100789 +3010|KY|Lincoln County|Hustonville city|154|0|5|Klun|Laverne|2991|Alaska|F|Daughter|||19|100790 +3010|KY|Lincoln County|Hustonville city|154|0|6|Klun|Matha|2997|Maine|F|Daughter|||13|100791 + +3010|MA|Worcester County|Sutton town|155|0|1|Green|Chastity|2956|New Jersey|F|Head|||54|100792 +3010|MA|Worcester County|Sutton town|155|0|2|Green|Lessie|2996|Wisconsin|F|Daughter|||14|100793 +3010|MA|Worcester County|Sutton town|155|0|3|Green|Brigitte|2998|New Mexico|F|Daughter|||12|100794 +3010|MA|Worcester County|Sutton town|155|0|4|Green|Ricardo Waldo|3000|Cocos (keeling) Islands|M|Son|||10|100795 + +3010|MT|Wibaux County|Wibaux town|156|0|1|Sturgul|Rodrick Junior|2947|New Mexico|M|Head|||63|100796 +3010|MT|Wibaux County|Wibaux town|156|0|2|Sturgul|Magda Lauralee|2951|Rhode Island|F|Spouse|||59|100797 +3010|MT|Wibaux County|Wibaux town|156|0|3|Sturgul|Boyd|2991|Michigan|M|Son|||19|100798 +3010|MT|Wibaux County|Wibaux town|156|0|4|Sturgul|Rocio|2993|Rhode Island|F|Daughter|||17|100799 +3010|MT|Wibaux County|Wibaux town|156|0|5|Sturgul|Darryl|3001|MT|M|Son|||9|100800 + +3010|FL|Brevard County|Cape Canaveral city|157|0|1|Schnabel|Micheal Merle|2947|Hawaii|M|Head|||63|100801 +3010|FL|Brevard County|Cape Canaveral city|157|0|2|Schnabel|Kera|2990|Heard Island And Mcdonald Islands|F|Daughter|||20|100802 +3010|FL|Brevard County|Cape Canaveral city|157|0|3|Schnabel|Danica|2992|Algeria|F|Daughter|||18|100803 +3010|FL|Brevard County|Cape Canaveral city|157|0|4|Schnabel|Gaye|2996|Sudan|F|Daughter|||14|100804 +3010|FL|Brevard County|Cape Canaveral city|157|0|5|Schnabel|Tinisha|2998|Mississippi|F|Daughter|||12|100805 + +3010|UT|Cache County|Trenton town|158|0|1|Esparza|Ricardo|2940|Fiji|M|Head|||70|100806 +3010|UT|Cache County|Trenton town|158|0|2|Esparza|Kym|2960|Hawaii|F|Spouse|||50|100807 +3010|UT|Cache County|Trenton town|158|0|3|Esparza|Allan|2984|Tonga|M|Son|||26|100808 +3010|UT|Cache County|Trenton town|158|0|4|Esparza|Arianna|2988|New York|F|Daughter|||22|100809 +3010|UT|Cache County|Trenton town|158|0|5|Esparza|Marty|3001|MN|M|Son|||9|100810 +3010|UT|Cache County|Trenton town|158|0|6|Esparza|Jewel|3005|MN|F|Daughter|||5|100811 + +3010|IA|Lyon County|Alvord city|159|0|1|Ruge|Orville Matt|2952|Minnesota|M|Head|||58|100812 +3010|IA|Lyon County|Alvord city|159|0|2|Ruge|Sharika Lisabeth|2955|Hungary|F|Spouse|||55|100813 +3010|IA|Lyon County|Alvord city|159|0|3|Ruge|Maggie|2985|Indiana|F|Daughter|||25|100814 +3010|IA|Lyon County|Alvord city|159|0|4|Ruge|Sindy|2991|Minnesota|F|Daughter|||19|100815 +3010|IA|Lyon County|Alvord city|159|0|5|Ruge|Alida|2995|Myanmar|F|Daughter|||15|100816 +3010|IA|Lyon County|Alvord city|159|0|6|Ruge|Shelba|3005|IA|F|Daughter|||5|100817 + +3010|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|1|Naputi|Matthew Tristan|2944|South Dakota|M|Head|||66|100818 +3010|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|2|Naputi|Hazel Santos|2955|Oregon|F|Spouse|||55|100819 +3010|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|3|Naputi|Chasity|2975|Palestinian Territory, Occupied|F|Daughter|||35|100820 +3010|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|4|Naputi|Eldon|2977|South Carolina|M|Son|||33|100821 +3010|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|5|Naputi|Mack Rufus|2979|Alaska|M|Son|||31|100822 +3010|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|6|Naputi|Caleb|2995|Louisiana|M|Son|||15|100823 +3010|AK|Valdez-Cordova Census Area|Gulkana CDP|160|0|7|Naputi|Rudolf|3005|AK|M|Son|||5|100824 + +3010|SC|Sumter County|Cane Savannah CDP|161|0|1|Bergamini|Cletus Forrest|2978|Georgia|M|Head|||32|100825 +3010|SC|Sumter County|Cane Savannah CDP|161|0|2|Bergamini|Stacee|2979|Algeria|F|Spouse|||31|100826 +3010|SC|Sumter County|Cane Savannah CDP|161|0|3|Bergamini|Dominic|2999|Ohio|M|Son|||11|100827 +3010|SC|Sumter County|Cane Savannah CDP|161|0|4|Bergamini|Hye|3003|SC|F|Daughter|||7|100828 +3010|SC|Sumter County|Cane Savannah CDP|161|0|5|Bergamini|Roni|3005|SC|F|Daughter|||5|100829 +3010|SC|Sumter County|Cane Savannah CDP|161|0|6|Bergamini|Gus|3009|SC|M|Son|||1|100830 + +3010|NV|Lyon County|Silver Springs CDP|162|0|1|Dukelow|Alfonzo Dominic|2946|Kazakstan|M|Head|||64|100831 +3010|NV|Lyon County|Silver Springs CDP|162|0|2|Dukelow|Zandra|2947|California|F|Spouse|||63|100832 +3010|NV|Lyon County|Silver Springs CDP|162|0|3|Dukelow|Marcelo|2985|Missouri|M|Son|||25|100833 +3010|NV|Lyon County|Silver Springs CDP|162|0|4|Dukelow|Ila|2989|Oregon|F|Daughter|||21|100834 +3010|NV|Lyon County|Silver Springs CDP|162|0|5|Dukelow|Ayanna Hallie|2995|Idaho|F|Daughter|||15|100835 +3010|NV|Lyon County|Silver Springs CDP|162|0|6|Dukelow|Bruno|3003|NV|M|Son|||7|100836 +3010|NV|Lyon County|Silver Springs CDP|162|0|7|Dukelow|Sebastian|3009|NV|M|Son|||1|100837 + +3010|WI|Dane County|Blue Mounds village|163|0|1|Bronson|Dillon Del|2945|Missouri|M|Head|||65|100838 +3010|WI|Dane County|Blue Mounds village|163|0|2|Bronson|Daniella|2969|Congo|F|Spouse|||41|100839 +3010|WI|Dane County|Blue Mounds village|163|0|3|Bronson|Angelique|2995|New Jersey|F|Daughter|||15|100840 +3010|WI|Dane County|Blue Mounds village|163|0|4|Bronson|Emil|3003|WI|M|Son|||7|100841 +3010|WI|Dane County|Blue Mounds village|163|0|5|Bronson|Vina|3007|WI|F|Daughter|||3|100842 + +3010|TX|Montgomery County|Montgomery city|164|0|1|Helwig|Dane Bruce|2947|New York|M|Head|||63|100843 +3010|TX|Montgomery County|Montgomery city|164|0|2|Helwig|Lucienne|2944|Wyoming|F|Spouse|||66|100844 +3010|TX|Montgomery County|Montgomery city|164|0|3|Helwig|Bennie|2974|Wyoming|M|Son|||36|100845 +3010|TX|Montgomery County|Montgomery city|164|0|4|Helwig|Letitia|2986|Nebraska|F|Daughter|||24|100846 +3010|TX|Montgomery County|Montgomery city|164|0|5|Helwig|Clemente|2992|North Carolina|M|Son|||18|100847 +3010|TX|Montgomery County|Montgomery city|164|0|6|Helwig|Maren|3005|TX|F|Daughter|||5|100848 +3010|TX|Montgomery County|Montgomery city|164|0|7|Helwig|Merle|3007|TX|F|Daughter|||3|100849 +3010|TX|Montgomery County|Montgomery city|164|0|8|Helwig|Ina|3009|TX|F|Daughter|||1|100850 + +3010|PA|Tioga County|Farmington township|165|0|1|Budds|Gustavo Manual|2949|Maine|M|Head|||61|100851 +3010|PA|Tioga County|Farmington township|165|0|2|Budds|Rodrick|2985|Wisconsin|M|Son|||25|100852 +3010|PA|Tioga County|Farmington township|165|0|3|Budds|Raphael|2995|Nebraska|M|Son|||15|100853 +3010|PA|Tioga County|Farmington township|165|0|4|Budds|Lasonya|2997|Indiana|F|Daughter|||13|100854 +3010|PA|Tioga County|Farmington township|165|0|5|Budds|Lelah|3001|PA|F|Daughter|||9|100855 +3010|PA|Tioga County|Farmington township|165|0|6|Budds|Saul|3005|PA|M|Son|||5|100856 +3010|PA|Tioga County|Farmington township|165|0|7|Budds|Kaylee|3007|PA|F|Daughter|||3|100857 + +3010|NC|Stanly County|Stanfield town|166|0|1|Buren|Douglass Leandro|2951|California|M|Head|||59|100858 +3010|NC|Stanly County|Stanfield town|166|0|2|Buren|Sarai|2973|Michigan|F|Spouse|||37|100859 +3010|NC|Stanly County|Stanfield town|166|0|3|Buren|Clarinda|2995|Alaska|F|Daughter|||15|100860 +3010|NC|Stanly County|Stanfield town|166|0|4|Buren|Leila|2999|New Mexico|F|Daughter|||11|100861 +3010|NC|Stanly County|Stanfield town|166|0|5|Buren|Alysia|3007|NC|F|Daughter|||3|100862 + +3010|CA|Shasta County|Millville CDP|167|0|1|Orvis|Judson Dick|2939|Grenada|M|Head|||71|100863 +3010|CA|Shasta County|Millville CDP|167|0|2|Orvis|Lonnie|2963|Maine|F|Spouse|||47|100864 +3010|CA|Shasta County|Millville CDP|167|0|3|Orvis|Aubrey|2989|Wisconsin|F|Daughter|||21|100865 +3010|CA|Shasta County|Millville CDP|167|0|4|Orvis|Louisa|2999|Mali|F|Daughter|||11|100866 + +3010|IL|Vermilion County|Indianola village|168|0|1|Szczeblewski|Adolph Shaun|2961|Massachusetts|M|Head|||49|100867 +3010|IL|Vermilion County|Indianola village|168|0|2|Szczeblewski|Codi|2972|Vermont|F|Spouse|||38|100868 +3010|IL|Vermilion County|Indianola village|168|0|3|Szczeblewski|Randell|2996|Texas|M|Son|||14|100869 +3010|IL|Vermilion County|Indianola village|168|0|4|Szczeblewski|Gerald|2998|Massachusetts|M|Son|||12|100870 +3010|IL|Vermilion County|Indianola village|168|0|5|Szczeblewski|Lavera|3003|IL|F|Daughter|||7|100871 +3010|IL|Vermilion County|Indianola village|168|0|6|Szczeblewski|Alfredo|3005|IL|M|Son|||5|100872 + +3010|ME|Penobscot County|Kingman UT|169|0|1|Glidewell|Ray Weston|2953|Washington|M|Head|||57|100873 +3010|ME|Penobscot County|Kingman UT|169|0|2|Glidewell|Xuan|2960|Rwanda|F|Spouse|||50|100874 +3010|ME|Penobscot County|Kingman UT|169|0|3|Glidewell|Charolette|2996|California|F|Daughter|||14|100875 +3010|ME|Penobscot County|Kingman UT|169|0|4|Glidewell|Maxwell|2998|Mississippi|M|Son|||12|100876 +3010|ME|Penobscot County|Kingman UT|169|0|5|Glidewell|Wes Juan|3003|ME|M|Son|||7|100877 +3010|ME|Penobscot County|Kingman UT|169|0|6|Glidewell|Billie|3009|ME|M|Son|||1|100878 + +3010|SC|Spartanburg County|Inman Mills CDP|170|0|1|Henderson|Jamie Chance|2937|New Jersey|M|Head|||73|100879 +3010|SC|Spartanburg County|Inman Mills CDP|170|0|2|Henderson|Tess|2945|Kentucky|F|Spouse|||65|100880 +3010|SC|Spartanburg County|Inman Mills CDP|170|0|3|Henderson|Sherilyn|2995|Nebraska|F|Daughter|||15|100881 +3010|SC|Spartanburg County|Inman Mills CDP|170|0|4|Henderson|Rodolfo|3001|SC|M|Son|||9|100882 +3010|SC|Spartanburg County|Inman Mills CDP|170|0|5|Henderson|Jermaine|3005|SC|M|Son|||5|100883 +3010|SC|Spartanburg County|Inman Mills CDP|170|0|6|Henderson|Adalberto|3007|SC|M|Son|||3|100884 + +3010|MN|Big Stone County|Prior township|171|0|1|Golec|Armanda Tammy|2979|Maryland|F|Head|||31|100885 + +3010|PA|Potter County|Summit township|172|0|1|Curci|Reynaldo Leonardo|2952|Massachusetts|M|Head|||58|100886 +3010|PA|Potter County|Summit township|172|0|2|Curci|Sam|2978|Pennsylvania|M|Son|||32|100887 +3010|PA|Potter County|Summit township|172|0|3|Curci|Hannah|3005|PA|F|Daughter|||5|100888 +3010|PA|Potter County|Summit township|172|0|4|Curci|Mamie|3007|PA|F|Daughter|||3|100889 + +3010|NY|Nassau County|Bellerose Terrace CDP|173|0|1|Larsen|Toney Dwayne|2970|Virginia|M|Head|||40|100890 +3010|NY|Nassau County|Bellerose Terrace CDP|173|0|2|Larsen|Marietta|2995|Pennsylvania|F|Daughter|||15|100891 +3010|NY|Nassau County|Bellerose Terrace CDP|173|0|3|Larsen|Jacquiline|2999|Burundi|F|Daughter|||11|100892 + +3010|ID|Payette County|New Plymouth city|174|0|1|Peterson|Erick Marion|2949|Mississippi|M|Head|||61|100893 +3010|ID|Payette County|New Plymouth city|174|0|2|Peterson|Audrea|2982|Maryland|F|Daughter|||28|100894 +3010|ID|Payette County|New Plymouth city|174|0|3|Peterson|Lacy|2988|West Virginia|M|Son|||22|100895 +3010|ID|Payette County|New Plymouth city|174|0|4|Peterson|Lucius|2990|Georgia|M|Son|||20|100896 +3010|ID|Payette County|New Plymouth city|174|0|5|Peterson|Mireille Lizzie|3000|Maine|F|Daughter|||10|100897 + +3010|CA|Riverside County|Glen Avon CDP|175|0|1|Thomas|Arlene|2969|Ohio|F|Spouse|||41|100898 +3010|CA|Riverside County|Glen Avon CDP|175|0|2|Thomas|Lana|2995|Delaware|F|Daughter|||15|100899 +3010|CA|Riverside County|Glen Avon CDP|175|0|3|Thomas|Lizeth|2997|Rhode Island|F|Daughter|||13|100900 +3010|CA|Riverside County|Glen Avon CDP|175|0|4|Thomas|Jettie Marketta|2999|Gabon|F|Daughter|||11|100901 +3010|CA|Riverside County|Glen Avon CDP|175|0|5|Thomas|Kelsi Adeline|3001|CA|F|Daughter|||9|100902 +3010|CA|Riverside County|Glen Avon CDP|175|0|6|Thomas|Wm|3003|CA|M|Son|||7|100903 + +3010|AZ|Apache County|Wide Ruins CDP|176|0|1|Novida|Stuart Ken|2953|Kansas|M|Head|||57|100904 +3010|AZ|Apache County|Wide Ruins CDP|176|0|2|Novida|Merrilee|2950|Texas|F|Spouse|||60|100905 +3010|AZ|Apache County|Wide Ruins CDP|176|0|3|Novida|Eloise|2990|New Jersey|F|Daughter|||20|100906 +3010|AZ|Apache County|Wide Ruins CDP|176|0|4|Novida|Jody|2994|New Hampshire|M|Son|||16|100907 +3010|AZ|Apache County|Wide Ruins CDP|176|0|5|Novida|Glynda|2998|Hawaii|F|Daughter|||12|100908 +3010|AZ|Apache County|Wide Ruins CDP|176|0|6|Novida|Mui|3003|AZ|F|Daughter|||7|100909 +3010|AZ|Apache County|Wide Ruins CDP|176|0|7|Novida|Matthew|3005|AZ|M|Son|||5|100910 + +3010|NY|Greene County|Palenville CDP|177|0|1|Leger|Bryce Rusty|2968|Luxembourg|M|Head|||42|100911 +3010|NY|Greene County|Palenville CDP|177|0|2|Leger|Aubrey Dorian|3001|NY|M|Son|||9|100912 +3010|NY|Greene County|Palenville CDP|177|0|3|Leger|Maire|3003|NY|F|Daughter|||7|100913 +3010|NY|Greene County|Palenville CDP|177|0|4|Leger|Garth|3005|NY|M|Son|||5|100914 +3010|NY|Greene County|Palenville CDP|177|0|5|Leger|Leif Rafael|3009|NY|M|Son|||1|100915 + +3010|TN|Washington County|Oak Grove CDP|178|0|1|Cabrera|Minh|2973|Utah|F|Head|||37|100916 +3010|TN|Washington County|Oak Grove CDP|178|0|2|Cabrera|Garland|2995|Nebraska|M|Son|||15|100917 +3010|TN|Washington County|Oak Grove CDP|178|0|3|Cabrera|Charlott|2997|Nebraska|F|Daughter|||13|100918 +3010|TN|Washington County|Oak Grove CDP|178|0|4|Cabrera|Miquel Malik|2999|Florida|M|Son|||11|100919 + +3010|MI|Berrien County|Chikaming township|179|0|1|Bilodeau|Theo Jason|2952|Ohio|M|Head|||58|100920 +3010|MI|Berrien County|Chikaming township|179|0|2|Bilodeau|Theodore Josef|2988|Michigan|M|Son|||22|100921 +3010|MI|Berrien County|Chikaming township|179|0|3|Bilodeau|Clayton Deangelo|2994|Nepal|M|Son|||16|100922 +3010|MI|Berrien County|Chikaming township|179|0|4|Bilodeau|Diego|2998|Florida|M|Son|||12|100923 + +3010|ME|Oxford County|Canton town|180|0|1|Aalbers|Major Rigoberto|2952|North Carolina|M|Head|||58|100924 +3010|ME|Oxford County|Canton town|180|0|2|Aalbers|Glory Susanna|2956|South Dakota|F|Spouse|||54|100925 +3010|ME|Oxford County|Canton town|180|0|3|Aalbers|Marcell|3005|ME|F|Daughter|||5|100926 +3010|ME|Oxford County|Canton town|180|0|4|Aalbers|Dion|3007|ME|F|Daughter|||3|100927 +3010|ME|Oxford County|Canton town|180|0|5|Aalbers|Ivey|3009|ME|F|Daughter|||1|100928 + +3010|VA|Northumberland County|Heathsville CDP|181|0|1|Pauley|Leonardo|2953|Vermont|M|Head|||57|100929 +3010|VA|Northumberland County|Heathsville CDP|181|0|2|Pauley|Elizabeth|2960|Illinois|F|Spouse|||50|100930 +3010|VA|Northumberland County|Heathsville CDP|181|0|3|Pauley|Wendi Carmelita|2990|Benin|F|Daughter|||20|100931 +3010|VA|Northumberland County|Heathsville CDP|181|0|4|Pauley|Salvatore|2996|Hawaii|M|Son|||14|100932 +3010|VA|Northumberland County|Heathsville CDP|181|0|5|Pauley|Beverley|3000|Vermont|F|Daughter|||10|100933 +3010|VA|Northumberland County|Heathsville CDP|181|0|6|Pauley|Andrea|3003|VA|F|Daughter|||7|100934 +3010|VA|Northumberland County|Heathsville CDP|181|0|7|Pauley|Jules|3009|VA|M|Son|||1|100935 + +3010|TX|Tarrant County|Forest Hill city|182|0|1|Chadbourne|Jason Leo|2981|Delaware|M|Head|||29|100936 +3010|TX|Tarrant County|Forest Hill city|182|0|2|Chadbourne|Dylan|2999|Svalbard And Jan Mayen|M|Son|||11|100937 + +3010|MO|Jasper County|Webb City city|183|0|1|Mathis|Thomas Agustin|2973|Illinois|M|Head|||37|100938 +3010|MO|Jasper County|Webb City city|183|0|2|Mathis|Milagros|2979|Washington|F|Spouse|||31|100939 +3010|MO|Jasper County|Webb City city|183|0|3|Mathis|Haydee|2999|Alabama|F|Daughter|||11|100940 +3010|MO|Jasper County|Webb City city|183|0|4|Mathis|Gayle|3001|MO|F|Daughter|||9|100941 +3010|MO|Jasper County|Webb City city|183|0|5|Mathis|Latoria Aretha|3003|MO|F|Daughter|||7|100942 +3010|MO|Jasper County|Webb City city|183|0|6|Mathis|Opal|3005|MO|F|Daughter|||5|100943 + +3010|KY|Boone County|Hebron CDP|184|0|1|Stork|Martin Shawn|2962|New Mexico|M|Head|||48|100944 +3010|KY|Boone County|Hebron CDP|184|0|2|Stork|Miki|2964|Georgia|F|Spouse|||46|100945 +3010|KY|Boone County|Hebron CDP|184|0|3|Stork|Emerson|2988|Alaska|M|Son|||22|100946 +3010|KY|Boone County|Hebron CDP|184|0|4|Stork|Darron|3000|Alabama|M|Son|||10|100947 +3010|KY|Boone County|Hebron CDP|184|0|5|Stork|Terrance Deon|3005|KY|M|Son|||5|100948 +3010|KY|Boone County|Hebron CDP|184|0|6|Stork|Sheldon|3007|KY|M|Son|||3|100949 +3010|KY|Boone County|Hebron CDP|184|0|7|Stork|Alden|3009|KY|M|Son|||1|100950 + +3010|VA|Mecklenburg County|Baskerville CDP|185|0|1|Brailsford|Royce Andrea|2949|Missouri|M|Head|||61|100951 +3010|VA|Mecklenburg County|Baskerville CDP|185|0|2|Brailsford|Rosamond|2954|South Carolina|F|Spouse|||56|100952 +3010|VA|Mecklenburg County|Baskerville CDP|185|0|3|Brailsford|Gracia|2990|Iowa|F|Daughter|||20|100953 +3010|VA|Mecklenburg County|Baskerville CDP|185|0|4|Brailsford|Tama Earleen|2996|Alabama|F|Daughter|||14|100954 +3010|VA|Mecklenburg County|Baskerville CDP|185|0|5|Brailsford|Elnora|2998|Hawaii|F|Daughter|||12|100955 +3010|VA|Mecklenburg County|Baskerville CDP|185|0|6|Brailsford|Johnie Evan|3001|VA|M|Son|||9|100956 + +3010|OK|Cherokee County|Briggs CDP|186|0|1|Akright|Jordon Clifton|2939|West Virginia|M|Head|||71|100957 +3010|OK|Cherokee County|Briggs CDP|186|0|2|Akright|Thanh|2947|Netherlands Antilles|F|Spouse|||63|100958 +3010|OK|Cherokee County|Briggs CDP|186|0|3|Akright|Justin Vaughn|2987|Denmark|M|Son|||23|100959 +3010|OK|Cherokee County|Briggs CDP|186|0|4|Akright|Blossom|2999|Arkansas|F|Daughter|||11|100960 +3010|OK|Cherokee County|Briggs CDP|186|0|5|Akright|Johnie|3003|OK|M|Son|||7|100961 +3010|OK|Cherokee County|Briggs CDP|186|0|6|Akright|Delmer|3005|OK|M|Son|||5|100962 + +3010|MN|Otter Tail County|Newton township|187|0|1|Mctiernan|Gerard|2969|Oklahoma|M|Head|||41|100963 +3010|MN|Otter Tail County|Newton township|187|0|2|Mctiernan|Shila|2980|Maine|F|Spouse|||30|100964 +3010|MN|Otter Tail County|Newton township|187|0|3|Mctiernan|Olga|3001|MN|F|Daughter|||9|100965 +3010|MN|Otter Tail County|Newton township|187|0|4|Mctiernan|Benedict|3003|MN|M|Son|||7|100966 +3010|MN|Otter Tail County|Newton township|187|0|5|Mctiernan|Sommer|3005|MN|F|Daughter|||5|100967 +3010|MN|Otter Tail County|Newton township|187|0|6|Mctiernan|Berry|3007|MN|M|Son|||3|100968 +3010|MN|Otter Tail County|Newton township|187|0|7|Mctiernan|Weston|3009|MN|M|Son|||1|100969 + +3010|FL|Baker County|Macclenny city|188|0|1|Estrada|Doyle|2946|Arkansas|M|Head|||64|100970 +3010|FL|Baker County|Macclenny city|188|0|2|Estrada|Stella|2968|South Dakota|F|Spouse|||42|100971 +3010|FL|Baker County|Macclenny city|188|0|3|Estrada|David|2996|Wisconsin|M|Son|||14|100972 +3010|FL|Baker County|Macclenny city|188|0|4|Estrada|Bryant|2998|Kosovo|M|Son|||12|100973 +3010|FL|Baker County|Macclenny city|188|0|5|Estrada|Lavada|3000|Bouvet Island|F|Daughter|||10|100974 +3010|FL|Baker County|Macclenny city|188|0|6|Estrada|Jerlene|3001|FL|F|Daughter|||9|100975 +3010|FL|Baker County|Macclenny city|188|0|7|Estrada|Clifton|3005|FL|M|Son|||5|100976 +3010|FL|Baker County|Macclenny city|188|0|8|Estrada|Lupe|3009|FL|M|Son|||1|100977 + +3010|OH|Delaware County|Powell city|189|0|1|Hammond|Rickie|2939|Gibraltar|F|Head|||71|100978 +3010|OH|Delaware County|Powell city|189|0|2|Hammond|Kermit|2991|Kentucky|M|Son|||19|100979 +3010|OH|Delaware County|Powell city|189|0|3|Hammond|Rod|2997|Minnesota|M|Son|||13|100980 + +3010|MN|Pipestone County|Sweet township|190|0|1|Heasley|Wendell Ike|2948|Vermont|M|Head|||62|100981 +3010|MN|Pipestone County|Sweet township|190|0|2|Heasley|Wendolyn|2969|Indonesia|F|Spouse|||41|100982 +3010|MN|Pipestone County|Sweet township|190|0|3|Heasley|Taina|2995|Mississippi|F|Daughter|||15|100983 +3010|MN|Pipestone County|Sweet township|190|0|4|Heasley|Elmer Leighann|2997|Connecticut|F|Daughter|||13|100984 +3010|MN|Pipestone County|Sweet township|190|0|5|Heasley|Earl|2999|Macau|M|Son|||11|100985 +3010|MN|Pipestone County|Sweet township|190|0|6|Heasley|Alfonzo Isaias|3003|MN|M|Son|||7|100986 +3010|MN|Pipestone County|Sweet township|190|0|7|Heasley|Donette|3005|MN|F|Daughter|||5|100987 + +3010|MN|Pipestone County|Eden township|191|0|1|Thomas|Kelly Brenton|2944|Arkansas|M|Head|||66|100988 +3010|MN|Pipestone County|Eden township|191|0|2|Thomas|Cheree|2968|New Jersey|F|Daughter|||42|100989 +3010|MN|Pipestone County|Eden township|191|0|3|Thomas|Tijuana|2986|Oregon|F|Daughter|||24|100990 +3010|MN|Pipestone County|Eden township|191|0|4|Thomas|Reggie|2996|Idaho|M|Son|||14|100991 +3010|MN|Pipestone County|Eden township|191|0|5|Thomas|Lewis Malcolm|3000|Georgia|M|Son|||10|100992 + +3010|PA|Indiana County|Washington township|192|0|1|Bartkowski|Wilber Emerson|2950|Wyoming|M|Head|||60|100993 +3010|PA|Indiana County|Washington township|192|0|2|Bartkowski|Scarlett Inger|2955|Alaska|F|Spouse|||55|100994 +3010|PA|Indiana County|Washington township|192|0|3|Bartkowski|Williemae|2997|Antigua And Barbuda|F|Daughter|||13|100995 +3010|PA|Indiana County|Washington township|192|0|4|Bartkowski|Ali Josef|2999|Nevada|M|Son|||11|100996 +3010|PA|Indiana County|Washington township|192|0|5|Bartkowski|Rory|3001|PA|F|Daughter|||9|100997 + +3010|SC|Greenville County|Wade Hampton CDP|193|0|1|Martz|Benito|2973|Connecticut|M|Head|||37|100998 +3010|SC|Greenville County|Wade Hampton CDP|193|0|2|Martz|Robbie Kip|2995|New Hampshire|M|Son|||15|100999 +3010|SC|Greenville County|Wade Hampton CDP|193|0|3|Martz|Nam|2999|Washington|F|Daughter|||11|101000 + +3010|IA|Appanoose County|Exline city|194|0|1|Schneider|Nelson Nathanael|2963|Minnesota|M|Head|||47|101001 +3010|IA|Appanoose County|Exline city|194|0|2|Schneider|Digna|2971|Djibouti|F|Spouse|||39|101002 +3010|IA|Appanoose County|Exline city|194|0|3|Schneider|Synthia|2993|New York|F|Daughter|||17|101003 +3010|IA|Appanoose County|Exline city|194|0|4|Schneider|Lovie Corene|2995|Wyoming|F|Daughter|||15|101004 +3010|IA|Appanoose County|Exline city|194|0|5|Schneider|Karina|2997|Nevada|F|Daughter|||13|101005 +3010|IA|Appanoose County|Exline city|194|0|6|Schneider|Benjamin|3001|PA|M|Son|||9|101006 +3010|IA|Appanoose County|Exline city|194|0|7|Schneider|Darline|3009|IA|F|Daughter|||1|101007 + +3010|NY|Chautauqua County|Sherman town|195|0|1|Scheidt|Jeff|2969|Alabama|M|Head|||41|101008 +3010|NY|Chautauqua County|Sherman town|195|0|2|Scheidt|Cassey|2970|Sri Lanka|F|Spouse|||40|101009 +3010|NY|Chautauqua County|Sherman town|195|0|3|Scheidt|Jeannetta|2998|New Hampshire|F|Daughter|||12|101010 +3010|NY|Chautauqua County|Sherman town|195|0|4|Scheidt|Marcie|3001|NY|F|Daughter|||9|101011 +3010|NY|Chautauqua County|Sherman town|195|0|5|Scheidt|Maribel|3003|NY|F|Daughter|||7|101012 +3010|NY|Chautauqua County|Sherman town|195|0|6|Scheidt|Carylon|3005|NY|F|Daughter|||5|101013 +3010|NY|Chautauqua County|Sherman town|195|0|7|Scheidt|Rosalva|3009|NY|F|Daughter|||1|101014 + +3010|PA|Cambria County|Lilly borough|196|0|1|Townsend|Desmond|2950|Louisiana|M|Head|||60|101015 +3010|PA|Cambria County|Lilly borough|196|0|2|Townsend|Shanel|2974|New Jersey|F|Spouse|||36|101016 +3010|PA|Cambria County|Lilly borough|196|0|3|Townsend|Gaston|2996|Ethiopia|M|Son|||14|101017 +3010|PA|Cambria County|Lilly borough|196|0|4|Townsend|Cyndi|2998|Missouri|F|Daughter|||12|101018 +3010|PA|Cambria County|Lilly borough|196|0|5|Townsend|Johana|3003|PA|F|Daughter|||7|101019 +3010|PA|Cambria County|Lilly borough|196|0|6|Townsend|Darrin|3005|PA|M|Son|||5|101020 +3010|PA|Cambria County|Lilly borough|196|0|7|Townsend|Kelvin|3007|PA|M|Son|||3|101021 + +3010|NM|Hidalgo County|Windmill CDP|197|0|1|Zien|Renata|2966|West Virginia|F|Spouse|||44|101022 +3010|NM|Hidalgo County|Windmill CDP|197|0|2|Zien|Kareem|2998|Oregon|M|Son|||12|101023 +3010|NM|Hidalgo County|Windmill CDP|197|0|3|Zien|Daniele|3001|NM|F|Daughter|||9|101024 +3010|NM|Hidalgo County|Windmill CDP|197|0|4|Zien|Esther|3007|NM|F|Daughter|||3|101025 + +3010|MT|Glacier County|Babb CDP|198|0|1|Irvin|Lou Darrel|2970|California|M|Head|||40|101026 +3010|MT|Glacier County|Babb CDP|198|0|2|Irvin|Erich|2996|Maine|M|Son|||14|101027 + +3010|OH|Hamilton County|Wyoming city|199|0|1|Bridgford|Felipe Phillip|2970|Nebraska|M|Head|||40|101028 +3010|OH|Hamilton County|Wyoming city|199|0|2|Bridgford|Fernande|2975|South Carolina|F|Spouse|||35|101029 +3010|OH|Hamilton County|Wyoming city|199|0|3|Bridgford|Joey|2995|Oklahoma|M|Son|||15|101030 +3010|OH|Hamilton County|Wyoming city|199|0|4|Bridgford|Charlie|3001|OH|M|Son|||9|101031 +3010|OH|Hamilton County|Wyoming city|199|0|5|Bridgford|Andres|3003|OH|M|Son|||7|101032 +3010|OH|Hamilton County|Wyoming city|199|0|6|Bridgford|Georgette Belle|3007|OH|F|Daughter|||3|101033 + +3010|TX|Henderson County|Poynor town|200|0|1|Kimbell|Walker Jewel|2944|Kentucky|M|Head|||66|101034 +3010|TX|Henderson County|Poynor town|200|0|2|Kimbell|Jenelle|2940|Maryland|F|Spouse|||70|101035 +3010|TX|Henderson County|Poynor town|200|0|3|Kimbell|Dudley|2968|South Dakota|M|Son|||42|101036 +3010|TX|Henderson County|Poynor town|200|0|4|Kimbell|Georgina|2970|Pennsylvania|F|Daughter|||40|101037 +3010|TX|Henderson County|Poynor town|200|0|5|Kimbell|Randolph|3007|TX|M|Son|||3|101038 + +3010|MI|Iosco County|Whittemore city|201|0|1|Dement|Sean Bernard|2941|Texas|M|Head|||69|101039 +3010|MI|Iosco County|Whittemore city|201|0|2|Dement|Gertie|2965|Georgia|F|Spouse|||45|101040 +3010|MI|Iosco County|Whittemore city|201|0|3|Dement|Trevor|2993|Kentucky|M|Son|||17|101041 +3010|MI|Iosco County|Whittemore city|201|0|4|Dement|Gertrud Un|3003|OK|F|Daughter|||7|101042 +3010|MI|Iosco County|Whittemore city|201|0|5|Dement|Josh|3007|MI|M|Son|||3|101043 + +3010|CA|Madera County|Coarsegold CDP|202|0|1|Ferrar|Errol|2992|Connecticut|M|Son|||18|101044 +3010|CA|Madera County|Coarsegold CDP|202|0|2|Ferrar|Donn|2998|Indiana|M|Son|||12|101045 +3010|CA|Madera County|Coarsegold CDP|202|0|3|Ferrar|Granville|3000|Tanzania, United Republic Of|M|Son|||10|101046 + +3010|MI|Osceola County|Marion township|203|0|1|Dohm|Damion Freddy|2940|Washington|M|Head|||70|101047 +3010|MI|Osceola County|Marion township|203|0|2|Dohm|Jo|2945|Delaware|F|Spouse|||65|101048 +3010|MI|Osceola County|Marion township|203|0|3|Dohm|Hugo|2985|Uzbekistan|M|Son|||25|101049 +3010|MI|Osceola County|Marion township|203|0|4|Dohm|Lewis|2987|Alaska|M|Son|||23|101050 +3010|MI|Osceola County|Marion township|203|0|5|Dohm|Sol|2989|Idaho|F|Daughter|||21|101051 +3010|MI|Osceola County|Marion township|203|0|6|Dohm|Kurt|2999|Delaware|M|Son|||11|101052 +3010|MI|Osceola County|Marion township|203|0|7|Dohm|Alene|3007|MI|F|Daughter|||3|101053 + +3010|NE|Thomas County|Seneca village|204|0|1|Jeswald|Rupert Ian|2955|Texas|M|Head|||55|101054 +3010|NE|Thomas County|Seneca village|204|0|2|Jeswald|Holly|2982|Illinois|F|Daughter|||28|101055 +3010|NE|Thomas County|Seneca village|204|0|3|Jeswald|Codi|2990|Texas|F|Daughter|||20|101056 +3010|NE|Thomas County|Seneca village|204|0|4|Jeswald|Malcom|2996|New York|M|Son|||14|101057 + +3010|PA|Northampton County|Freemansburg borough|205|0|1|Sthilaire|Vesta|2967|Nebraska|F|Spouse|||43|101058 +3010|PA|Northampton County|Freemansburg borough|205|0|2|Sthilaire|Creola|2989|Pennsylvania|F|Daughter|||21|101059 +3010|PA|Northampton County|Freemansburg borough|205|0|3|Sthilaire|Rashad|3003|PA|M|Son|||7|101060 +3010|PA|Northampton County|Freemansburg borough|205|0|4|Sthilaire|Livia|3005|PA|F|Daughter|||5|101061 + +3010|AL|Monroe County|Excel town|206|0|1|Stear|Clay|2987|Egypt|M|Son|||23|101062 +3010|AL|Monroe County|Excel town|206|0|2|Stear|Kory|2997|Tennessee|M|Son|||13|101063 + +3010|FL|Lake County|Yalaha CDP|207|0|1|Mckinley|Amira|2975|Massachusetts|F|Spouse|||35|101064 +3010|FL|Lake County|Yalaha CDP|207|0|2|Mckinley|Waylon|2995|Alaska|M|Son|||15|101065 +3010|FL|Lake County|Yalaha CDP|207|0|3|Mckinley|Flo|2997|Utah|F|Daughter|||13|101066 +3010|FL|Lake County|Yalaha CDP|207|0|4|Mckinley|Matt|2999|West Virginia|M|Son|||11|101067 +3010|FL|Lake County|Yalaha CDP|207|0|5|Mckinley|So|3009|FL|F|Daughter|||1|101068 + +3010|CO|Larimer County|Laporte CDP|208|0|1|Dickey|Kittie|2968|Illinois|F|Spouse|||42|101069 +3010|CO|Larimer County|Laporte CDP|208|0|2|Dickey|Otis|2988|Georgia|M|Son|||22|101070 +3010|CO|Larimer County|Laporte CDP|208|0|3|Dickey|Russ|2996|Maryland|M|Son|||14|101071 +3010|CO|Larimer County|Laporte CDP|208|0|4|Dickey|Nikita Mable|2998|Nebraska|F|Daughter|||12|101072 +3010|CO|Larimer County|Laporte CDP|208|0|5|Dickey|Tomas|3000|Mississippi|M|Son|||10|101073 +3010|CO|Larimer County|Laporte CDP|208|0|6|Dickey|Clemente|3003|CO|M|Son|||7|101074 +3010|CO|Larimer County|Laporte CDP|208|0|7|Dickey|Cyrstal|3009|CO|F|Daughter|||1|101075 + +3010|LA|Jefferson Parish|Elmwood CDP|209|0|1|Barjas|Zack Barrett|2964|Oregon|M|Head|||46|101076 +3010|LA|Jefferson Parish|Elmwood CDP|209|0|2|Barjas|Chelsie|3000|California|F|Daughter|||10|101077 + +3010|PA|Allegheny County|Franklin Park borough|210|0|1|Block|Ezequiel Josue|2976|Florida|M|Head|||34|101078 +3010|PA|Allegheny County|Franklin Park borough|210|0|2|Block|Lakiesha|2977|Bahrain|F|Spouse|||33|101079 +3010|PA|Allegheny County|Franklin Park borough|210|0|3|Block|Jonathon Raphael|2999|Minnesota|M|Son|||11|101080 +3010|PA|Allegheny County|Franklin Park borough|210|0|4|Block|Hong|3003|PA|M|Son|||7|101081 + +3010|MA|Franklin County|Whately town|211|0|1|Leimkuhler|Winford Sherwood|2965|Colorado|M|Head|||45|101082 +3010|MA|Franklin County|Whately town|211|0|2|Leimkuhler|Camellia|2997|Bulgaria|F|Daughter|||13|101083 +3010|MA|Franklin County|Whately town|211|0|3|Leimkuhler|Gerry|2999|North Carolina|F|Daughter|||11|101084 + +3010|CA|Stanislaus County|Ceres city|212|0|1|Reeves|Quentin|2972|West Virginia|M|Head|||38|101085 +3010|CA|Stanislaus County|Ceres city|212|0|2|Reeves|Anjanette|2982|Florida|F|Spouse|||28|101086 +3010|CA|Stanislaus County|Ceres city|212|0|3|Reeves|Allan|3003|CA|M|Son|||7|101087 +3010|CA|Stanislaus County|Ceres city|212|0|4|Reeves|Genie|3005|CA|F|Daughter|||5|101088 +3010|CA|Stanislaus County|Ceres city|212|0|5|Reeves|Ela|3007|CA|F|Daughter|||3|101089 + +3010|KY|Oldham County|La Grange city|213|0|1|Wood|Adolfo Alex|2937|Wyoming|M|Head|||73|101090 +3010|KY|Oldham County|La Grange city|213|0|2|Wood|Juliet Tarra|2938|Tennessee|F|Spouse|||72|101091 +3010|KY|Oldham County|La Grange city|213|0|3|Wood|Simon|2964|Viet Nam|M|Son|||46|101092 +3010|KY|Oldham County|La Grange city|213|0|4|Wood|Michel|2972|Rhode Island|M|Son|||38|101093 +3010|KY|Oldham County|La Grange city|213|0|5|Wood|Simon|3007|KY|M|Son|||3|101094 +3010|KY|Oldham County|La Grange city|213|0|6|Wood|Agustina|3009|KY|F|Daughter|||1|101095 + +3010|KS|Marion County|Lehigh city|214|0|1|Thorngren|Raymon Garry|2955|Indonesia|M|Head|||55|101096 +3010|KS|Marion County|Lehigh city|214|0|2|Thorngren|Tim|2999|Alabama|M|Son|||11|101097 + +3010|KY|Ohio County|Beaver Dam city|215|0|1|Haisten|Francesco|2999|Illinois|M|Son|||11|101098 + +3010|AZ|Maricopa County|Kaka CDP|216|0|1|Adelman|Thalia|2984|Montana|F|Head|||26|101099 + +3010|ND|Griggs County|Hannaford city|217|0|1|Abraham|Giovanni Mickey|2950|Maine|M|Head|||60|101100 +3010|ND|Griggs County|Hannaford city|217|0|2|Abraham|Mollie|2965|Tennessee|F|Spouse|||45|101101 +3010|ND|Griggs County|Hannaford city|217|0|3|Abraham|Irvin|2997|South Carolina|M|Son|||13|101102 +3010|ND|Griggs County|Hannaford city|217|0|4|Abraham|Earl|3001|ND|M|Son|||9|101103 +3010|ND|Griggs County|Hannaford city|217|0|5|Abraham|Albertha|3005|ND|F|Daughter|||5|101104 +3010|ND|Griggs County|Hannaford city|217|0|6|Abraham|Maisha Katia|3007|ND|F|Daughter|||3|101105 + +3010|PA|Perry County|Liverpool borough|218|0|1|Ruopp|Keven Lawrence|2980|West Virginia|M|Head|||30|101106 + +3010|GA|Barrow County, Gwinnett County, Hall County, Jackson County|Braselton town|219|0|1|Gill|Monserrate|2965|South Dakota|F|Head|||45|101107 +3010|GA|Barrow County, Gwinnett County, Hall County, Jackson County|Braselton town|219|0|2|Gill|Marquis|2991|New York|M|Son|||19|101108 +3010|GA|Barrow County, Gwinnett County, Hall County, Jackson County|Braselton town|219|0|3|Gill|Donn|2997|Lao People's Democratic Republic|M|Son|||13|101109 + +3010|KS|Harper County|Harper city|220|0|1|Drakos|Larry Aubrey|2960|Minnesota|M|Head|||50|101110 +3010|KS|Harper County|Harper city|220|0|2|Drakos|Myrtice|2960|Virginia|F|Spouse|||50|101111 +3010|KS|Harper County|Harper city|220|0|3|Drakos|Guy|2998|Wisconsin|M|Son|||12|101112 +3010|KS|Harper County|Harper city|220|0|4|Drakos|Hubert|3001|MI|M|Son|||9|101113 +3010|KS|Harper County|Harper city|220|0|5|Drakos|Lara|3005|MI|F|Daughter|||5|101114 + +3010|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|1|Ketterman|Merle Alec|2946|Delaware|M|Head|||64|101115 +3010|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|2|Ketterman|Patty|2958|North Dakota|F|Spouse|||52|101116 +3010|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|3|Ketterman|Royce|2986|Falkland Islands (malvinas)|M|Son|||24|101117 +3010|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|4|Ketterman|Jewell|2988|Michigan|M|Son|||22|101118 +3010|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|5|Ketterman|Ellis|2998|Taiwan, Province Of China|M|Son|||12|101119 +3010|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|6|Ketterman|Michale Donovan|3005|NC|M|Son|||5|101120 +3010|NC|Caldwell County, Watauga County|Blowing Rock town|221|0|7|Ketterman|Dewayne|3009|NC|M|Son|||1|101121 + +3010|LA|Jefferson Parish|Kenner city|222|0|1|Lapari|Rufus Benton|2941|Missouri|M|Head|||69|101122 +3010|LA|Jefferson Parish|Kenner city|222|0|2|Lapari|Breanne Alena|2954|Nevada|F|Spouse|||56|101123 +3010|LA|Jefferson Parish|Kenner city|222|0|3|Lapari|Lindsey|2986|Georgia|F|Daughter|||24|101124 +3010|LA|Jefferson Parish|Kenner city|222|0|4|Lapari|Breanna Carla|2992|Illinois|F|Daughter|||18|101125 +3010|LA|Jefferson Parish|Kenner city|222|0|5|Lapari|Denisha|2996|Ohio|F|Daughter|||14|101126 +3010|LA|Jefferson Parish|Kenner city|222|0|6|Lapari|Jerrell|2998|Ghana|M|Son|||12|101127 +3010|LA|Jefferson Parish|Kenner city|222|0|7|Lapari|Arcelia|3003|LA|F|Daughter|||7|101128 + +3010|NM|Taos County|Rio Lucio CDP|223|0|1|Mohr|Britt Erminia|2942|Greece|F|Spouse|||68|101129 +3010|NM|Taos County|Rio Lucio CDP|223|0|2|Mohr|Francisca|2990|Alaska|F|Daughter|||20|101130 +3010|NM|Taos County|Rio Lucio CDP|223|0|3|Mohr|Mellie|2994|Czech Republic|F|Daughter|||16|101131 +3010|NM|Taos County|Rio Lucio CDP|223|0|4|Mohr|Paul|2998|Vermont|M|Son|||12|101132 +3010|NM|Taos County|Rio Lucio CDP|223|0|5|Mohr|Aracelis|3000|Montana|F|Daughter|||10|101133 +3010|NM|Taos County|Rio Lucio CDP|223|0|6|Mohr|Rickey Russ|3003|NM|M|Son|||7|101134 + +3010|ME|Penobscot County|Garland town|224|0|1|Welch|Benton Mason|2954|Kansas|M|Head|||56|101135 +3010|ME|Penobscot County|Garland town|224|0|2|Welch|Yetta|2974|New York|F|Spouse|||36|101136 +3010|ME|Penobscot County|Garland town|224|0|3|Welch|Georgia Gabriel|2998|Tennessee|F|Daughter|||12|101137 +3010|ME|Penobscot County|Garland town|224|0|4|Welch|Micha|3000|Ohio|F|Daughter|||10|101138 +3010|ME|Penobscot County|Garland town|224|0|5|Welch|Guy|3003|ME|M|Son|||7|101139 + +3010|SD|Corson County|Bullhead CDP|225|0|1|Fergus|Kent Jeffrey|2953|Massachusetts|M|Head|||57|101140 +3010|SD|Corson County|Bullhead CDP|225|0|2|Fergus|Vasiliki|2957|Alaska|F|Spouse|||53|101141 +3010|SD|Corson County|Bullhead CDP|225|0|3|Fergus|Lindsay Wayne|2989|New Mexico|M|Son|||21|101142 +3010|SD|Corson County|Bullhead CDP|225|0|4|Fergus|Junior|2995|Dominican Republic|M|Son|||15|101143 +3010|SD|Corson County|Bullhead CDP|225|0|5|Fergus|Cruz|3005|SD|M|Son|||5|101144 +3010|SD|Corson County|Bullhead CDP|225|0|6|Fergus|Alva|3009|SD|F|Daughter|||1|101145 + +3010|WI|Waupaca County|Mukwa town|226|0|1|Webb|Buster Gustavo|2937|Pennsylvania|M|Head|||73|101146 +3010|WI|Waupaca County|Mukwa town|226|0|2|Webb|Dion|2959|Idaho|F|Spouse|||51|101147 +3010|WI|Waupaca County|Mukwa town|226|0|3|Webb|Evan|2979|Colorado|M|Son|||31|101148 +3010|WI|Waupaca County|Mukwa town|226|0|4|Webb|Lina|2987|West Virginia|F|Daughter|||23|101149 +3010|WI|Waupaca County|Mukwa town|226|0|5|Webb|Chas|2995|Michigan|M|Son|||15|101150 + +3010|FL|Broward County|Lazy Lake village|227|0|1|Pickering|Terence Phillip|2977|Hawaii|M|Head|||33|101151 + +3010|IL|Macoupin County|Carlinville city|228|0|1|Vannatta|Cornelius Elias|2948|Idaho|M|Head|||62|101152 +3010|IL|Macoupin County|Carlinville city|228|0|2|Vannatta|Robert Shanita|2945|Kentucky|F|Spouse|||65|101153 +3010|IL|Macoupin County|Carlinville city|228|0|3|Vannatta|Daniela|2973|Uzbekistan|F|Daughter|||37|101154 +3010|IL|Macoupin County|Carlinville city|228|0|4|Vannatta|Desmond|2997|Mississippi|M|Son|||13|101155 +3010|IL|Macoupin County|Carlinville city|228|0|5|Vannatta|Normand Randall|3005|LA|M|Son|||5|101156 +3010|IL|Macoupin County|Carlinville city|228|0|6|Vannatta|Juan|3009|IL|M|Son|||1|101157 + +3010|OK|Osage County|Foraker town|229|0|1|Oliver|Gaylord|2960|Iowa|M|Head|||50|101158 +3010|OK|Osage County|Foraker town|229|0|2|Oliver|Chantal|2962|Maryland|F|Spouse|||48|101159 +3010|OK|Osage County|Foraker town|229|0|3|Oliver|Pete|2984|Massachusetts|M|Son|||26|101160 +3010|OK|Osage County|Foraker town|229|0|4|Oliver|Jules|2986|Rhode Island|M|Son|||24|101161 +3010|OK|Osage County|Foraker town|229|0|5|Oliver|King|2994|Wyoming|M|Son|||16|101162 +3010|OK|Osage County|Foraker town|229|0|6|Oliver|Marlin|2996|South Dakota|M|Son|||14|101163 +3010|OK|Osage County|Foraker town|229|0|7|Oliver|Scottie|3000|Texas|F|Daughter|||10|101164 +3010|OK|Osage County|Foraker town|229|0|8|Oliver|Wes|3003|OK|M|Son|||7|101165 +3010|OK|Osage County|Foraker town|229|0|9|Oliver|Elvin|3007|OK|M|Son|||3|101166 + +3010|AR|Saline County|Bryant city|230|0|1|Black|Titus Chet|2939|North Dakota|M|Head|||71|101167 +3010|AR|Saline County|Bryant city|230|0|2|Black|Nevada Mika|2962|Montana|F|Spouse|||48|101168 +3010|AR|Saline County|Bryant city|230|0|3|Black|Norene|3000|Connecticut|F|Daughter|||10|101169 +3010|AR|Saline County|Bryant city|230|0|4|Black|Daina|3005|AR|F|Daughter|||5|101170 + +3010|NY|Montgomery County|Canajoharie village|231|0|1|Esper|Melanie|2950|New Caledonia|F|Spouse|||60|101171 +3010|NY|Montgomery County|Canajoharie village|231|0|2|Esper|Cruz|2992|North Carolina|F|Daughter|||18|101172 +3010|NY|Montgomery County|Canajoharie village|231|0|3|Esper|Valentine|2998|Wisconsin|M|Son|||12|101173 + +3010|WA|Clark County|Cherry Grove CDP|232|0|1|Shin|Darwin Brooks|2937|Mississippi|M|Head|||73|101174 +3010|WA|Clark County|Cherry Grove CDP|232|0|2|Shin|Giselle|2960|Maine|F|Spouse|||50|101175 +3010|WA|Clark County|Cherry Grove CDP|232|0|3|Shin|Cyndy|2996|Connecticut|F|Daughter|||14|101176 +3010|WA|Clark County|Cherry Grove CDP|232|0|4|Shin|Janna|3001|WA|F|Daughter|||9|101177 +3010|WA|Clark County|Cherry Grove CDP|232|0|5|Shin|Coretta|3003|WA|F|Daughter|||7|101178 +3010|WA|Clark County|Cherry Grove CDP|232|0|6|Shin|Kyung|3005|WA|F|Daughter|||5|101179 +3010|WA|Clark County|Cherry Grove CDP|232|0|7|Shin|Granville Kevin|3007|WA|M|Son|||3|101180 + +3010|AZ|Cochise County|Tombstone city|233|0|1|Cooper|Michael|2978|Vermont|F|Spouse|||32|101181 +3010|AZ|Cochise County|Tombstone city|233|0|2|Cooper|Winfred|2998|California|M|Son|||12|101182 +3010|AZ|Cochise County|Tombstone city|233|0|3|Cooper|Allene|3001|AZ|F|Daughter|||9|101183 +3010|AZ|Cochise County|Tombstone city|233|0|4|Cooper|Sherrill|3003|AZ|F|Daughter|||7|101184 +3010|AZ|Cochise County|Tombstone city|233|0|5|Cooper|Bo|3005|AZ|M|Son|||5|101185 +3010|AZ|Cochise County|Tombstone city|233|0|6|Cooper|Martina|3009|AZ|F|Daughter|||1|101186 + +3010|PA|Cumberland County|Upper Frankford township|234|0|1|Hall|Jordan Johnie|2969|Louisiana|M|Head|||41|101187 +3010|PA|Cumberland County|Upper Frankford township|234|0|2|Hall|Virgie|2970|Mississippi|F|Spouse|||40|101188 +3010|PA|Cumberland County|Upper Frankford township|234|0|3|Hall|Russel|2990|Oregon|M|Son|||20|101189 +3010|PA|Cumberland County|Upper Frankford township|234|0|4|Hall|Marguerite|2994|Indiana|F|Daughter|||16|101190 +3010|PA|Cumberland County|Upper Frankford township|234|0|5|Hall|Frieda|2996|Nevada|F|Daughter|||14|101191 +3010|PA|Cumberland County|Upper Frankford township|234|0|6|Hall|Michael|2998|Oklahoma|M|Son|||12|101192 +3010|PA|Cumberland County|Upper Frankford township|234|0|7|Hall|Alexander|3001|PA|M|Son|||9|101193 +3010|PA|Cumberland County|Upper Frankford township|234|0|8|Hall|Clemmie|3003|PA|F|Daughter|||7|101194 + +3010|WI|Lincoln County|Rock Falls town|235|0|1|Fleming|Reid Millard|2943|Michigan|M|Head|||67|101195 +3010|WI|Lincoln County|Rock Falls town|235|0|2|Fleming|Dominick|2997|Norway|M|Son|||13|101196 +3010|WI|Lincoln County|Rock Falls town|235|0|3|Fleming|Terrance|3001|WI|M|Son|||9|101197 + +3010|IL|Ogle County|Creston village|236|0|1|Maloof|Guillermo Alberto|2952|South Carolina|M|Head|||58|101198 +3010|IL|Ogle County|Creston village|236|0|2|Maloof|Johanne|2961|New Mexico|F|Spouse|||49|101199 +3010|IL|Ogle County|Creston village|236|0|3|Maloof|Melonie|2987|Costa Rica|F|Daughter|||23|101200 +3010|IL|Ogle County|Creston village|236|0|4|Maloof|Jamison|2995|Bouvet Island|M|Son|||15|101201 +3010|IL|Ogle County|Creston village|236|0|5|Maloof|Clinton|2997|Virginia|M|Son|||13|101202 +3010|IL|Ogle County|Creston village|236|0|6|Maloof|Shelia|3001|AZ|F|Daughter|||9|101203 +3010|IL|Ogle County|Creston village|236|0|7|Maloof|Edison|3003|AZ|M|Son|||7|101204 +3010|IL|Ogle County|Creston village|236|0|8|Maloof|Bill|3005|AZ|M|Son|||5|101205 +3010|IL|Ogle County|Creston village|236|0|9|Maloof|Chelsea|3007|IL|F|Daughter|||3|101206 + +3010|CA|San Diego County|Camp Pendleton South CDP|237|0|1|Rios|Kimberli|2992|West Virginia|F|Daughter|||18|101207 +3010|CA|San Diego County|Camp Pendleton South CDP|237|0|2|Rios|Wilford|2994|Tennessee|M|Son|||16|101208 +3010|CA|San Diego County|Camp Pendleton South CDP|237|0|3|Rios|Omega|3000|Florida|F|Daughter|||10|101209 + +3010|CO|Garfield County|Catherine CDP|238|0|1|Rawlins|Dana Tamiko|2981|Louisiana|F|Spouse|||29|101210 +3010|CO|Garfield County|Catherine CDP|238|0|2|Rawlins|Suk|3001|CO|F|Daughter|||9|101211 +3010|CO|Garfield County|Catherine CDP|238|0|3|Rawlins|Katherin|3005|CO|F|Daughter|||5|101212 +3010|CO|Garfield County|Catherine CDP|238|0|4|Rawlins|Sherilyn|3007|CO|F|Daughter|||3|101213 +3010|CO|Garfield County|Catherine CDP|238|0|5|Rawlins|Bronwyn|3009|CO|F|Daughter|||1|101214 + +3010|TX|Wilson County|La Vernia city|239|0|1|Leonard|Dante|2953|New Mexico|M|Head|||57|101215 +3010|TX|Wilson County|La Vernia city|239|0|2|Leonard|Maurita|2962|Tennessee|F|Spouse|||48|101216 +3010|TX|Wilson County|La Vernia city|239|0|3|Leonard|Karleen|2984|France|F|Daughter|||26|101217 +3010|TX|Wilson County|La Vernia city|239|0|4|Leonard|Kourtney|2996|Washington|F|Daughter|||14|101218 +3010|TX|Wilson County|La Vernia city|239|0|5|Leonard|Junior|2998|Russian Federation|M|Son|||12|101219 +3010|TX|Wilson County|La Vernia city|239|0|6|Leonard|Janelle|3000|Delaware|F|Daughter|||10|101220 +3010|TX|Wilson County|La Vernia city|239|0|7|Leonard|Angelo|3005|TX|M|Son|||5|101221 + +3010|AR|Columbia County|Waldo city|240|0|1|Pfleger|Jed Colton|2972|Falkland Islands (malvinas)|M|Head|||38|101222 +3010|AR|Columbia County|Waldo city|240|0|2|Pfleger|Devin|2971|Maryland|F|Spouse|||39|101223 +3010|AR|Columbia County|Waldo city|240|0|3|Pfleger|Julius|3001|AR|M|Son|||9|101224 +3010|AR|Columbia County|Waldo city|240|0|4|Pfleger|Lena|3007|AR|F|Daughter|||3|101225 +3010|AR|Columbia County|Waldo city|240|0|5|Pfleger|Pam|3009|AR|F|Daughter|||1|101226 + +3010|WI|Racine County|Union Grove village|241|0|1|Wild|Claudie|2978|Pennsylvania|F|Spouse|||32|101227 +3010|WI|Racine County|Union Grove village|241|0|2|Wild|Gerri|3001|WI|F|Daughter|||9|101228 +3010|WI|Racine County|Union Grove village|241|0|3|Wild|Vincent|3003|WI|M|Son|||7|101229 +3010|WI|Racine County|Union Grove village|241|0|4|Wild|Jamaal|3005|WI|M|Son|||5|101230 +3010|WI|Racine County|Union Grove village|241|0|5|Wild|Julio|3007|WI|M|Son|||3|101231 +3010|WI|Racine County|Union Grove village|241|0|6|Wild|Angle Annabell|3009|WI|F|Daughter|||1|101232 + +3010|MI|Kalkaska County|Boardman township|242|0|1|Leroux|Nicolas Rolando|2944|Wisconsin|M|Head|||66|101233 +3010|MI|Kalkaska County|Boardman township|242|0|2|Leroux|Toccara|2957|South Carolina|F|Spouse|||53|101234 + +3010|OK|Jackson County|East Duke town|243|0|1|Wyrich|Hank Calvin|2982|Colorado|M|Head|||28|101235 +3010|OK|Jackson County|East Duke town|243|0|2|Wyrich|Francine|2978|Tennessee|F|Spouse|||32|101236 +3010|OK|Jackson County|East Duke town|243|0|3|Wyrich|Fredrick|2998|North Carolina|M|Son|||12|101237 +3010|OK|Jackson County|East Duke town|243|0|4|Wyrich|Thanh|3000|North Dakota|M|Son|||10|101238 +3010|OK|Jackson County|East Duke town|243|0|5|Wyrich|Kandice|3001|OK|F|Daughter|||9|101239 +3010|OK|Jackson County|East Duke town|243|0|6|Wyrich|Jefferey|3005|OK|M|Son|||5|101240 +3010|OK|Jackson County|East Duke town|243|0|7|Wyrich|Thad Cornell|3007|OK|M|Son|||3|101241 + +3010|WV|Fayette County|Deep Water CDP|244|0|1|Palmer|Sonny Tyree|2937|Utah|M|Head|||73|101242 +3010|WV|Fayette County|Deep Water CDP|244|0|2|Palmer|Wesley|2985|Massachusetts|F|Daughter|||25|101243 +3010|WV|Fayette County|Deep Water CDP|244|0|3|Palmer|Jaclyn|2991|Ohio|F|Daughter|||19|101244 +3010|WV|Fayette County|Deep Water CDP|244|0|4|Palmer|Sonny|2997|West Virginia|M|Son|||13|101245 + +3010|OH|Hamilton County|Hooven CDP|245|0|1|Simers|Alva Jesus|2976|Rhode Island|M|Head|||34|101246 +3010|OH|Hamilton County|Hooven CDP|245|0|2|Simers|Shane|3001|CA|M|Son|||9|101247 +3010|OH|Hamilton County|Hooven CDP|245|0|3|Simers|Beth Taina|3005|CA|F|Daughter|||5|101248 + +3010|KS|Marshall County|Waterville city|246|0|1|Wilson|Yvette|2981|Illinois|F|Head|||29|101249 + +3010|MN|Washington County|Afton city|247|0|1|Mathews|Benny|2961|Alabama|M|Head|||49|101250 +3010|MN|Washington County|Afton city|247|0|2|Mathews|Josephine|2979|Maine|F|Spouse|||31|101251 +3010|MN|Washington County|Afton city|247|0|3|Mathews|Sharell|3001|MN|F|Daughter|||9|101252 +3010|MN|Washington County|Afton city|247|0|4|Mathews|Nestor|3005|MN|M|Son|||5|101253 +3010|MN|Washington County|Afton city|247|0|5|Mathews|Wally|3007|MN|M|Son|||3|101254 + +3010|GA|Laurens County|Dexter town|248|0|1|Best|Dusty|2963|Nebraska|M|Head|||47|101255 +3010|GA|Laurens County|Dexter town|248|0|2|Best|Katina Rayna|2999|California|F|Daughter|||11|101256 + +3010|NV|Clark County|Indian Springs CDP|249|0|1|Kerns|Jerold Tyree|2942|Wyoming|M|Head|||68|101257 +3010|NV|Clark County|Indian Springs CDP|249|0|2|Kerns|Alleen|2950|Maryland|F|Spouse|||60|101258 +3010|NV|Clark County|Indian Springs CDP|249|0|3|Kerns|Orville Hobert|2972|Viet Nam|M|Son|||38|101259 +3010|NV|Clark County|Indian Springs CDP|249|0|4|Kerns|Herb|2988|Illinois|M|Son|||22|101260 +3010|NV|Clark County|Indian Springs CDP|249|0|5|Kerns|Clyde|3001|NV|F|Daughter|||9|101261 +3010|NV|Clark County|Indian Springs CDP|249|0|6|Kerns|Wade|3009|NV|M|Son|||1|101262 + +3010|NY|Suffolk County|Melville CDP|250|0|1|Henry|Ashley Chadwick|2948|Missouri|M|Head|||62|101263 +3010|NY|Suffolk County|Melville CDP|250|0|2|Henry|Mark German|2988|Madagascar|M|Son|||22|101264 +3010|NY|Suffolk County|Melville CDP|250|0|3|Henry|Arlyne Ashley|2994|Missouri|F|Daughter|||16|101265 +3010|NY|Suffolk County|Melville CDP|250|0|4|Henry|Lisha|2998|Rhode Island|F|Daughter|||12|101266 +3010|NY|Suffolk County|Melville CDP|250|0|5|Henry|Mason|3000|Luxembourg|M|Son|||10|101267 + +3010|IN|Decatur County|Millhousen town|251|0|1|Beucler|Garrett Emilio|2950|Taiwan, Province Of China|M|Head|||60|101268 +3010|IN|Decatur County|Millhousen town|251|0|2|Beucler|Ronda|2956|Michigan|F|Spouse|||54|101269 +3010|IN|Decatur County|Millhousen town|251|0|3|Beucler|Ahmad|2994|Utah|M|Son|||16|101270 +3010|IN|Decatur County|Millhousen town|251|0|4|Beucler|Adelia|2996|Utah|F|Daughter|||14|101271 +3010|IN|Decatur County|Millhousen town|251|0|5|Beucler|Isaac|3005|IN|M|Son|||5|101272 + +3010|VA|Southampton County|Branchville town|252|0|1|Foster|Riley Wade|2950|Illinois|M|Head|||60|101273 +3010|VA|Southampton County|Branchville town|252|0|2|Foster|Clarence|2947|Nebraska|F|Spouse|||63|101274 +3010|VA|Southampton County|Branchville town|252|0|3|Foster|Young|2969|Michigan|F|Daughter|||41|101275 +3010|VA|Southampton County|Branchville town|252|0|4|Foster|Alla Lynette|2997|North Dakota|F|Daughter|||13|101276 +3010|VA|Southampton County|Branchville town|252|0|5|Foster|Benito|3003|VA|M|Son|||7|101277 +3010|VA|Southampton County|Branchville town|252|0|6|Foster|Brant|3007|VA|M|Son|||3|101278 + +3010|PA|Fayette County|Point Marion borough|253|0|1|Body|Walter Rey|2939|New Hampshire|M|Head|||71|101279 +3010|PA|Fayette County|Point Marion borough|253|0|2|Body|Velia|2986|Michigan|F|Daughter|||24|101280 +3010|PA|Fayette County|Point Marion borough|253|0|3|Body|Jae|2988|Alabama|M|Son|||22|101281 +3010|PA|Fayette County|Point Marion borough|253|0|4|Body|Fausto|2990|Hong Kong|M|Son|||20|101282 +3010|PA|Fayette County|Point Marion borough|253|0|5|Body|Dennis Edgar|2996|New Hampshire|M|Son|||14|101283 +3010|PA|Fayette County|Point Marion borough|253|0|6|Body|Gregorio|2998|Texas|M|Son|||12|101284 + +3010|OK|Delaware County, Mayes County|Kenwood CDP|254|0|1|Lirag|Lynsey|2960|Massachusetts|F|Head|||50|101285 +3010|OK|Delaware County, Mayes County|Kenwood CDP|254|0|2|Lirag|Lucio|2996|Delaware|M|Son|||14|101286 +3010|OK|Delaware County, Mayes County|Kenwood CDP|254|0|3|Lirag|Fredrick|2998|Saint Kitts And Nevis|M|Son|||12|101287 +3010|OK|Delaware County, Mayes County|Kenwood CDP|254|0|4|Lirag|Pasquale|3000|Liechtenstein|M|Son|||10|101288 + +3010|IA|Washington County|West Chester city|255|0|1|Pietzsch|Emil Lawrence|2972|Rhode Island|M|Head|||38|101289 +3010|IA|Washington County|West Chester city|255|0|2|Pietzsch|Zona|2996|Djibouti|F|Daughter|||14|101290 +3010|IA|Washington County|West Chester city|255|0|3|Pietzsch|Trey|3001|IA|M|Son|||9|101291 +3010|IA|Washington County|West Chester city|255|0|4|Pietzsch|Collene|3003|IA|F|Daughter|||7|101292 +3010|IA|Washington County|West Chester city|255|0|5|Pietzsch|Harvey|3007|IA|M|Son|||3|101293 + +3010|TX|Clay County|Jolly city|256|0|1|Plomma|Mariano Hung|2963|Nebraska|M|Head|||47|101294 +3010|TX|Clay County|Jolly city|256|0|2|Plomma|Akilah Katharine|2968|Kiribati|F|Spouse|||42|101295 +3010|TX|Clay County|Jolly city|256|0|3|Plomma|Gayle|2992|Brazil|M|Son|||18|101296 +3010|TX|Clay County|Jolly city|256|0|4|Plomma|Denny|2994|Kyrgyzstan|M|Son|||16|101297 +3010|TX|Clay County|Jolly city|256|0|5|Plomma|Benny|2998|Mozambique|M|Son|||12|101298 +3010|TX|Clay County|Jolly city|256|0|6|Plomma|Charisse Charity|3000|North Dakota|F|Daughter|||10|101299 +3010|TX|Clay County|Jolly city|256|0|7|Plomma|Rea|3001|TX|F|Daughter|||9|101300 +3010|TX|Clay County|Jolly city|256|0|8|Plomma|Walter|3009|TX|F|Daughter|||1|101301 + +3010|IN|Jennings County|North Vernon city|257|0|1|Stubson|Wayne Jonah|2940|West Virginia|M|Head|||70|101302 +3010|IN|Jennings County|North Vernon city|257|0|2|Stubson|Marianne|2941|Maine|F|Spouse|||69|101303 +3010|IN|Jennings County|North Vernon city|257|0|3|Stubson|Raylene|2971|Pennsylvania|F|Daughter|||39|101304 +3010|IN|Jennings County|North Vernon city|257|0|4|Stubson|Stephen|2995|Delaware|F|Daughter|||15|101305 +3010|IN|Jennings County|North Vernon city|257|0|5|Stubson|Derrick|2997|South Carolina|M|Son|||13|101306 +3010|IN|Jennings County|North Vernon city|257|0|6|Stubson|Theron|3005|IN|M|Son|||5|101307 + +3010|VT|Franklin County|Fairfax town|258|0|1|Pandey|Lino Chung|2941|New Hampshire|M|Head|||69|101308 +3010|VT|Franklin County|Fairfax town|258|0|2|Pandey|Coral|2940|Montana|F|Spouse|||70|101309 +3010|VT|Franklin County|Fairfax town|258|0|3|Pandey|Teofila|2998|Ohio|F|Daughter|||12|101310 +3010|VT|Franklin County|Fairfax town|258|0|4|Pandey|Dane|3003|VT|M|Son|||7|101311 +3010|VT|Franklin County|Fairfax town|258|0|5|Pandey|King|3007|VT|M|Son|||3|101312 +3010|VT|Franklin County|Fairfax town|258|0|6|Pandey|Norbert|3009|VT|M|Son|||1|101313 + +3010|PR|Cidra Municipio|Parcelas Nuevas comunidad|259|0|1|Colella|Arden|2964|Nebraska|M|Head|||46|101314 +3010|PR|Cidra Municipio|Parcelas Nuevas comunidad|259|0|2|Colella|Denny|2992|Kentucky|M|Son|||18|101315 +3010|PR|Cidra Municipio|Parcelas Nuevas comunidad|259|0|3|Colella|Leeanne|2996|Gambia|F|Daughter|||14|101316 +3010|PR|Cidra Municipio|Parcelas Nuevas comunidad|259|0|4|Colella|Kaylene|2998|Nebraska|F|Daughter|||12|101317 +3010|PR|Cidra Municipio|Parcelas Nuevas comunidad|259|0|5|Colella|Dion Lazaro|3000|Indiana|M|Son|||10|101318 + +3010|ME|Kennebec County|Hallowell city|260|0|1|Raffaele|Ruben Napoleon|2942|Maine|M|Head|||68|101319 +3010|ME|Kennebec County|Hallowell city|260|0|2|Raffaele|Nadene|2941|Oklahoma|F|Spouse|||69|101320 +3010|ME|Kennebec County|Hallowell city|260|0|3|Raffaele|Jeniffer|2963|North Dakota|F|Daughter|||47|101321 +3010|ME|Kennebec County|Hallowell city|260|0|4|Raffaele|Marcene|2973|Illinois|F|Daughter|||37|101322 +3010|ME|Kennebec County|Hallowell city|260|0|5|Raffaele|Pamila|2995|Hawaii|F|Daughter|||15|101323 +3010|ME|Kennebec County|Hallowell city|260|0|6|Raffaele|Georgiann|2997|Burkina Faso|F|Daughter|||13|101324 +3010|ME|Kennebec County|Hallowell city|260|0|7|Raffaele|Kathaleen Yvette|2999|North Carolina|F|Daughter|||11|101325 +3010|ME|Kennebec County|Hallowell city|260|0|8|Raffaele|Charlott|3003|ME|F|Daughter|||7|101326 + +3010|PA|Carbon County|Holiday Pocono CDP|261|0|1|Moskau|Glayds|2954|Mississippi|F|Head|||56|101327 +3010|PA|Carbon County|Holiday Pocono CDP|261|0|2|Moskau|Vern|2980|Alabama|M|Son|||30|101328 +3010|PA|Carbon County|Holiday Pocono CDP|261|0|3|Moskau|Nathalie|2992|New Jersey|F|Daughter|||18|101329 + +3010|NJ|Ocean County|Ocean township|262|0|1|Nelson|Frederic Edmundo|2970|Bouvet Island|M|Head|||40|101330 +3010|NJ|Ocean County|Ocean township|262|0|2|Nelson|Rosy Shela|2970|Costa Rica|F|Spouse|||40|101331 +3010|NJ|Ocean County|Ocean township|262|0|3|Nelson|Wallace Levi|3000|Montana|M|Son|||10|101332 +3010|NJ|Ocean County|Ocean township|262|0|4|Nelson|Terrance Fabian|3001|NJ|M|Son|||9|101333 +3010|NJ|Ocean County|Ocean township|262|0|5|Nelson|Prudence|3003|NJ|F|Daughter|||7|101334 +3010|NJ|Ocean County|Ocean township|262|0|6|Nelson|Yukiko|3007|NJ|F|Daughter|||3|101335 + +3010|MN|Kandiyohi County|Sunburg city|263|0|1|White|Oliver Burl|2969|Arkansas|M|Head|||41|101336 + +3010|MI|Grand Traverse County, Leelanau County|Traverse City city|264|0|1|Leatherwood|Michal|2959|Virginia|M|Head|||51|101337 +3010|MI|Grand Traverse County, Leelanau County|Traverse City city|264|0|2|Leatherwood|Marco Berry|2986|Wyoming|M|Son|||24|101338 +3010|MI|Grand Traverse County, Leelanau County|Traverse City city|264|0|3|Leatherwood|Mercedez|2998|Texas|F|Daughter|||12|101339 + +3010|MN|Norman County|Borup city|265|0|1|Walker|Rolf Charles|2953|Missouri|M|Head|||57|101340 +3010|MN|Norman County|Borup city|265|0|2|Walker|Loni|2974|Latvia|F|Spouse|||36|101341 +3010|MN|Norman County|Borup city|265|0|3|Walker|Andreas|2996|Rhode Island|M|Son|||14|101342 +3010|MN|Norman County|Borup city|265|0|4|Walker|Myles|3005|MN|M|Son|||5|101343 +3010|MN|Norman County|Borup city|265|0|5|Walker|Elvia|3007|MN|F|Daughter|||3|101344 +3010|MN|Norman County|Borup city|265|0|6|Walker|Mitzie Sabrina|3009|MN|F|Daughter|||1|101345 + +3010|CA|Mendocino County|Mendocino CDP|266|0|1|Johll|Wally Maria|2962|Alabama|M|Head|||48|101346 +3010|CA|Mendocino County|Mendocino CDP|266|0|2|Johll|Makeda|2981|Oklahoma|F|Spouse|||29|101347 +3010|CA|Mendocino County|Mendocino CDP|266|0|3|Johll|Lorean|3001|CA|F|Daughter|||9|101348 +3010|CA|Mendocino County|Mendocino CDP|266|0|4|Johll|Letha|3003|CA|F|Daughter|||7|101349 + +3010|NY|Onondaga County|Liverpool village|267|0|1|Strang|Marion Malcom|2956|Israel|M|Head|||54|101350 +3010|NY|Onondaga County|Liverpool village|267|0|2|Strang|Sharonda|2968|Georgia|F|Spouse|||42|101351 +3010|NY|Onondaga County|Liverpool village|267|0|3|Strang|Liana|2988|Louisiana|F|Daughter|||22|101352 +3010|NY|Onondaga County|Liverpool village|267|0|4|Strang|Jake|2990|New Mexico|M|Son|||20|101353 +3010|NY|Onondaga County|Liverpool village|267|0|5|Strang|Rosalie|2996|Tanzania, United Republic Of|F|Daughter|||14|101354 +3010|NY|Onondaga County|Liverpool village|267|0|6|Strang|Rubin|2998|Connecticut|M|Son|||12|101355 +3010|NY|Onondaga County|Liverpool village|267|0|7|Strang|Lowell|3000|Delaware|M|Son|||10|101356 +3010|NY|Onondaga County|Liverpool village|267|0|8|Strang|Darwin|3005|NY|M|Son|||5|101357 +3010|NY|Onondaga County|Liverpool village|267|0|9|Strang|Sheldon|3009|NY|M|Son|||1|101358 + +3010|NE|Perkins County|Venango village|268|0|1|Gonzalez|Horace Floyd|2957|New York|M|Head|||53|101359 +3010|NE|Perkins County|Venango village|268|0|2|Gonzalez|Eveline|2976|South Dakota|F|Spouse|||34|101360 +3010|NE|Perkins County|Venango village|268|0|3|Gonzalez|Ezequiel Ahmed|3000|New York|M|Son|||10|101361 +3010|NE|Perkins County|Venango village|268|0|4|Gonzalez|Vernon|3001|NE|M|Son|||9|101362 +3010|NE|Perkins County|Venango village|268|0|5|Gonzalez|Lorrine|3003|NE|F|Daughter|||7|101363 +3010|NE|Perkins County|Venango village|268|0|6|Gonzalez|Karie|3005|NE|F|Daughter|||5|101364 +3010|NE|Perkins County|Venango village|268|0|7|Gonzalez|Joey|3009|NE|M|Son|||1|101365 + +3010|CO|Ouray County|Loghill Village CDP|269|0|1|Monarque|Lorenzo Asa|2947|South Carolina|M|Head|||63|101366 +3010|CO|Ouray County|Loghill Village CDP|269|0|2|Monarque|Esperanza Melynda|2968|West Virginia|F|Spouse|||42|101367 +3010|CO|Ouray County|Loghill Village CDP|269|0|3|Monarque|Nydia|2988|Kansas|F|Daughter|||22|101368 +3010|CO|Ouray County|Loghill Village CDP|269|0|4|Monarque|Heath Danny|3003|CO|M|Son|||7|101369 +3010|CO|Ouray County|Loghill Village CDP|269|0|5|Monarque|Donnell Prince|3005|CO|M|Son|||5|101370 +3010|CO|Ouray County|Loghill Village CDP|269|0|6|Monarque|Rosario|3009|CO|M|Son|||1|101371 + +3010|IL|Knox County|St. Augustine village|270|0|1|Starr|Roberto Riley|2940|Congo|M|Head|||70|101372 +3010|IL|Knox County|St. Augustine village|270|0|2|Starr|Valorie|2954|Utah|F|Spouse|||56|101373 +3010|IL|Knox County|St. Augustine village|270|0|3|Starr|Zoila|2982|Ohio|F|Daughter|||28|101374 +3010|IL|Knox County|St. Augustine village|270|0|4|Starr|Monique|2998|Wisconsin|F|Daughter|||12|101375 +3010|IL|Knox County|St. Augustine village|270|0|5|Starr|Larry|3000|Mississippi|F|Daughter|||10|101376 +3010|IL|Knox County|St. Augustine village|270|0|6|Starr|Georgene|3001|IL|F|Daughter|||9|101377 +3010|IL|Knox County|St. Augustine village|270|0|7|Starr|Raymond|3005|IL|M|Son|||5|101378 + +3010|WI|Marinette County|Athelstane town|271|0|1|Maxey|Stephan Neal|2951|South Georgia And The South Sandwich Islands|M|Head|||59|101379 +3010|WI|Marinette County|Athelstane town|271|0|2|Maxey|Fred|2975|Iowa|M|Son|||35|101380 +3010|WI|Marinette County|Athelstane town|271|0|3|Maxey|Yuriko|2991|Virginia|F|Daughter|||19|101381 +3010|WI|Marinette County|Athelstane town|271|0|4|Maxey|Chong|3001|WI|M|Son|||9|101382 +3010|WI|Marinette County|Athelstane town|271|0|5|Maxey|Augustine|3005|WI|M|Son|||5|101383 +3010|WI|Marinette County|Athelstane town|271|0|6|Maxey|Karrie|3007|WI|F|Daughter|||3|101384 + +3010|OH|Muskingum County|Fultonham village|272|0|1|Brooks|Alonzo Jackson|2978|Montana|M|Head|||32|101385 +3010|OH|Muskingum County|Fultonham village|272|0|2|Brooks|Pansy|2980|Montana|F|Spouse|||30|101386 +3010|OH|Muskingum County|Fultonham village|272|0|3|Brooks|Denise|3000|Kentucky|F|Daughter|||10|101387 +3010|OH|Muskingum County|Fultonham village|272|0|4|Brooks|Cordie|3005|OH|F|Daughter|||5|101388 + +3010|MI|Barry County|Maple Grove township|273|0|1|Vasquez|Lottie|2952|Indiana|F|Spouse|||58|101389 +3010|MI|Barry County|Maple Grove township|273|0|2|Vasquez|Jodi|2976|Texas|F|Daughter|||34|101390 +3010|MI|Barry County|Maple Grove township|273|0|3|Vasquez|Lorena|2990|Virginia|F|Daughter|||20|101391 +3010|MI|Barry County|Maple Grove township|273|0|4|Vasquez|Latosha|2994|South Dakota|F|Daughter|||16|101392 +3010|MI|Barry County|Maple Grove township|273|0|5|Vasquez|Numbers|2998|Colorado|M|Son|||12|101393 +3010|MI|Barry County|Maple Grove township|273|0|6|Vasquez|Graig|3000|Idaho|M|Son|||10|101394 +3010|MI|Barry County|Maple Grove township|273|0|7|Vasquez|Shara|3001|MI|F|Daughter|||9|101395 + +3010|TX|Bowie County|Red Lick city|274|0|1|Zeidan|Jordon|2994|California|M|Son|||16|101396 + +3010|KS|Dickinson County|Manchester city|275|0|1|Blount|Brad Manuel|2960|Virginia|M|Head|||50|101397 +3010|KS|Dickinson County|Manchester city|275|0|2|Blount|Lorri|2972|Alabama|F|Spouse|||38|101398 +3010|KS|Dickinson County|Manchester city|275|0|3|Blount|Carma Nerissa|2998|Arizona|F|Daughter|||12|101399 +3010|KS|Dickinson County|Manchester city|275|0|4|Blount|Nigel|3001|KS|M|Son|||9|101400 +3010|KS|Dickinson County|Manchester city|275|0|5|Blount|Edna|3003|KS|F|Daughter|||7|101401 +3010|KS|Dickinson County|Manchester city|275|0|6|Blount|Raymonde|3005|KS|F|Daughter|||5|101402 + +3010|NV|Clark County|Mount Charleston CDP|276|0|1|Graffeo|Gustavo Francisco|2974|Oklahoma|M|Head|||36|101403 +3010|NV|Clark County|Mount Charleston CDP|276|0|2|Graffeo|Tessa|2975|Indiana|F|Spouse|||35|101404 +3010|NV|Clark County|Mount Charleston CDP|276|0|3|Graffeo|Faustino|2995|Nevada|M|Son|||15|101405 +3010|NV|Clark County|Mount Charleston CDP|276|0|4|Graffeo|Oswaldo|3001|NV|M|Son|||9|101406 +3010|NV|Clark County|Mount Charleston CDP|276|0|5|Graffeo|Levi|3003|NV|M|Son|||7|101407 +3010|NV|Clark County|Mount Charleston CDP|276|0|6|Graffeo|Colin|3009|NV|M|Son|||1|101408 + +3010|KS|Doniphan County|Highland city|277|0|1|Thomas|Jamel Nicholas|2967|Samoa|M|Head|||43|101409 +3010|KS|Doniphan County|Highland city|277|0|2|Thomas|Jesusita Emily|2980|Virginia|F|Spouse|||30|101410 +3010|KS|Doniphan County|Highland city|277|0|3|Thomas|Jeffry Dane|3000|Belize|M|Son|||10|101411 + +3010|FL|Manatee County, Sarasota County|Longboat Key town|278|0|1|Vanhamme|Idalia|2958|Arizona|F|Spouse|||52|101412 +3010|FL|Manatee County, Sarasota County|Longboat Key town|278|0|2|Vanhamme|Pei|2980|Eritrea|F|Daughter|||30|101413 +3010|FL|Manatee County, Sarasota County|Longboat Key town|278|0|3|Vanhamme|Tyree|2984|Oregon|M|Son|||26|101414 +3010|FL|Manatee County, Sarasota County|Longboat Key town|278|0|4|Vanhamme|Neil|2996|South Carolina|M|Son|||14|101415 +3010|FL|Manatee County, Sarasota County|Longboat Key town|278|0|5|Vanhamme|Erlinda|2998|Virgin Islands, British|F|Daughter|||12|101416 +3010|FL|Manatee County, Sarasota County|Longboat Key town|278|0|6|Vanhamme|Laura|3001|FL|F|Daughter|||9|101417 +3010|FL|Manatee County, Sarasota County|Longboat Key town|278|0|7|Vanhamme|Emilee|3005|FL|F|Daughter|||5|101418 +3010|FL|Manatee County, Sarasota County|Longboat Key town|278|0|8|Vanhamme|Abel Wm|3007|FL|M|Son|||3|101419 +3010|FL|Manatee County, Sarasota County|Longboat Key town|278|0|9|Vanhamme|Kip|3009|FL|M|Son|||1|101420 + +3010|VT|Essex County|Lunenburg town|279|0|1|Peels|Dallas Jamel|2956|North Dakota|M|Head|||54|101421 +3010|VT|Essex County|Lunenburg town|279|0|2|Peels|Trula|2979|South Carolina|F|Spouse|||31|101422 +3010|VT|Essex County|Lunenburg town|279|0|3|Peels|Courtney|2999|Delaware|M|Son|||11|101423 +3010|VT|Essex County|Lunenburg town|279|0|4|Peels|Roscoe|3001|VT|M|Son|||9|101424 +3010|VT|Essex County|Lunenburg town|279|0|5|Peels|Crissy|3005|VT|F|Daughter|||5|101425 +3010|VT|Essex County|Lunenburg town|279|0|6|Peels|Jack Javier|3007|VT|M|Son|||3|101426 +3010|VT|Essex County|Lunenburg town|279|0|7|Peels|Toshia|3009|VT|F|Daughter|||1|101427 + +3010|MS|Copiah County|Georgetown town|280|0|1|Figueroa|Shakita Leena|2991|Illinois|F|Daughter|||19|101428 +3010|MS|Copiah County|Georgetown town|280|0|2|Figueroa|Cruz|2993|Massachusetts|M|Son|||17|101429 +3010|MS|Copiah County|Georgetown town|280|0|3|Figueroa|Macy|2999|Arizona|F|Daughter|||11|101430 + +3010|PA|Northampton County|Lower Nazareth township|281|0|1|Driskill|Dirk Gino|2937|New Mexico|M|Head|||73|101431 +3010|PA|Northampton County|Lower Nazareth township|281|0|2|Driskill|Eustolia|2982|South Carolina|F|Daughter|||28|101432 +3010|PA|Northampton County|Lower Nazareth township|281|0|3|Driskill|Madison|2992|Florida|F|Daughter|||18|101433 +3010|PA|Northampton County|Lower Nazareth township|281|0|4|Driskill|August|2996|Pakistan|M|Son|||14|101434 +3010|PA|Northampton County|Lower Nazareth township|281|0|5|Driskill|Chelsie Tawny|2998|South Carolina|F|Daughter|||12|101435 + +3010|DE|Sussex County|Frankford town|282|0|1|Roberts|Hoyt Jermaine|2949|West Virginia|M|Head|||61|101436 +3010|DE|Sussex County|Frankford town|282|0|2|Roberts|Lawerence|2999|Ohio|M|Son|||11|101437 + +3010|AR|Jackson County|Tuckerman city|284|0|1|Nicolai|Burton Wilford|2962|Indiana|M|Head|||48|101438 +3010|AR|Jackson County|Tuckerman city|284|0|2|Nicolai|Lakeesha|2996|Iowa|F|Daughter|||14|101439 + +3010|NY|Madison County|Madison village|285|0|1|Prose|Anderson|2969|Alabama|M|Head|||41|101440 +3010|NY|Madison County|Madison village|285|0|2|Prose|Viviana|2983|Wyoming|F|Spouse|||27|101441 +3010|NY|Madison County|Madison village|285|0|3|Prose|Robin|3005|NY|F|Daughter|||5|101442 +3010|NY|Madison County|Madison village|285|0|4|Prose|Silvana|3009|NY|F|Daughter|||1|101443 + +3010|CA|Humboldt County|Indianola CDP|286|0|1|Devaney|Cory Truman|2956|Virginia|M|Head|||54|101444 + +3010|MD|St. Mary's County|Mechanicsville CDP|287|0|1|Shunnarah|Noah|2958|Texas|M|Head|||52|101445 +3010|MD|St. Mary's County|Mechanicsville CDP|287|0|2|Shunnarah|Rolande|2968|New Caledonia|F|Spouse|||42|101446 +3010|MD|St. Mary's County|Mechanicsville CDP|287|0|3|Shunnarah|Sheryl Barrie|2998|Kenya|F|Daughter|||12|101447 +3010|MD|St. Mary's County|Mechanicsville CDP|287|0|4|Shunnarah|Georgene Julianne|3003|MD|F|Daughter|||7|101448 +3010|MD|St. Mary's County|Mechanicsville CDP|287|0|5|Shunnarah|Bula|3007|MD|F|Daughter|||3|101449 + +3010|PA|Susquehanna County|Harford township|288|0|1|Winch|Haywood Claud|2941|Serbia|M|Head|||69|101450 +3010|PA|Susquehanna County|Harford township|288|0|2|Winch|Yaeko|2965|Nevada|F|Spouse|||45|101451 +3010|PA|Susquehanna County|Harford township|288|0|3|Winch|Lucille|2987|Montana|F|Daughter|||23|101452 +3010|PA|Susquehanna County|Harford township|288|0|4|Winch|Florentino|2995|Utah|M|Son|||15|101453 +3010|PA|Susquehanna County|Harford township|288|0|5|Winch|Kirstin|2999|Maryland|F|Daughter|||11|101454 +3010|PA|Susquehanna County|Harford township|288|0|6|Winch|Neoma|3005|PA|F|Daughter|||5|101455 +3010|PA|Susquehanna County|Harford township|288|0|7|Winch|Thomas|3007|PA|M|Son|||3|101456 + +3010|PA|Lawrence County|Washington township|289|0|1|Peacock|Millie|2969|Texas|F|Spouse|||41|101457 +3010|PA|Lawrence County|Washington township|289|0|2|Peacock|Noble Hyman|2995|Panama|M|Son|||15|101458 +3010|PA|Lawrence County|Washington township|289|0|3|Peacock|Earle|3005|PA|M|Son|||5|101459 +3010|PA|Lawrence County|Washington township|289|0|4|Peacock|Vito Tracy|3009|PA|M|Son|||1|101460 + +3010|WA|Yakima County|Grandview city|290|0|1|Coolbaugh|Florentino Merle|2956|Mauritania|M|Head|||54|101461 +3010|WA|Yakima County|Grandview city|290|0|2|Coolbaugh|Cynthia|2965|Maine|F|Spouse|||45|101462 +3010|WA|Yakima County|Grandview city|290|0|3|Coolbaugh|Mose|2989|New Mexico|M|Son|||21|101463 +3010|WA|Yakima County|Grandview city|290|0|4|Coolbaugh|Chet|2993|Missouri|M|Son|||17|101464 +3010|WA|Yakima County|Grandview city|290|0|5|Coolbaugh|Nga|2995|United States|F|Daughter|||15|101465 +3010|WA|Yakima County|Grandview city|290|0|6|Coolbaugh|Tasha|3001|WA|F|Daughter|||9|101466 +3010|WA|Yakima County|Grandview city|290|0|7|Coolbaugh|Humberto|3009|WA|M|Son|||1|101467 + +3010|VA|Shenandoah County|Toms Brook town|291|0|1|Heatherly|Tyree Carey|2947|Pennsylvania|M|Head|||63|101468 +3010|VA|Shenandoah County|Toms Brook town|291|0|2|Heatherly|Bethany|2956|Montana|F|Spouse|||54|101469 +3010|VA|Shenandoah County|Toms Brook town|291|0|3|Heatherly|Celestine|2990|Delaware|F|Daughter|||20|101470 +3010|VA|Shenandoah County|Toms Brook town|291|0|4|Heatherly|Leigh|2994|Idaho|M|Son|||16|101471 +3010|VA|Shenandoah County|Toms Brook town|291|0|5|Heatherly|Charita|3001|VA|F|Daughter|||9|101472 +3010|VA|Shenandoah County|Toms Brook town|291|0|6|Heatherly|Rayford|3003|VA|M|Son|||7|101473 + +3010|SC|Hampton County|Estill town|292|0|1|Brumfield|Steve Gayle|2944|Montana|M|Head|||66|101474 +3010|SC|Hampton County|Estill town|292|0|2|Brumfield|Genoveva|2956|Missouri|F|Spouse|||54|101475 +3010|SC|Hampton County|Estill town|292|0|3|Brumfield|Lauran|2996|Indiana|F|Daughter|||14|101476 +3010|SC|Hampton County|Estill town|292|0|4|Brumfield|Phyllis Gracie|2998|Maine|F|Daughter|||12|101477 +3010|SC|Hampton County|Estill town|292|0|5|Brumfield|Khadijah|3000|Illinois|F|Daughter|||10|101478 +3010|SC|Hampton County|Estill town|292|0|6|Brumfield|Shaquana|3003|SC|F|Daughter|||7|101479 +3010|SC|Hampton County|Estill town|292|0|7|Brumfield|Charlott|3007|SC|F|Daughter|||3|101480 +3010|SC|Hampton County|Estill town|292|0|8|Brumfield|Wilburn|3009|SC|M|Son|||1|101481 + +3010|PA|Wayne County|Waymart borough|293|0|1|Gillan|Laquanda|2955|Iowa|F|Head|||55|101482 +3010|PA|Wayne County|Waymart borough|293|0|2|Gillan|Rashad|2981|South Dakota|M|Son|||29|101483 +3010|PA|Wayne County|Waymart borough|293|0|3|Gillan|Terence|2995|Georgia|M|Son|||15|101484 +3010|PA|Wayne County|Waymart borough|293|0|4|Gillan|Mark|2997|South Carolina|F|Daughter|||13|101485 + +3010|NY|Orleans County|Clarendon town|294|0|1|Floros|Basil Theron|2955|West Virginia|M|Head|||55|101486 +3010|NY|Orleans County|Clarendon town|294|0|2|Floros|Michaele|2972|Delaware|F|Spouse|||38|101487 +3010|NY|Orleans County|Clarendon town|294|0|3|Floros|Roscoe|2992|Missouri|M|Son|||18|101488 +3010|NY|Orleans County|Clarendon town|294|0|4|Floros|Nancy|3005|NY|F|Daughter|||5|101489 +3010|NY|Orleans County|Clarendon town|294|0|5|Floros|Coleman|3009|NY|M|Son|||1|101490 + +3010|MN|Dakota County|Randolph city|295|0|1|Lachapelle|Rolland Phil|2952|Kentucky|M|Head|||58|101491 +3010|MN|Dakota County|Randolph city|295|0|2|Lachapelle|Brad|2991|West Virginia|M|Son|||19|101492 +3010|MN|Dakota County|Randolph city|295|0|3|Lachapelle|Frances|2995|North Carolina|M|Son|||15|101493 +3010|MN|Dakota County|Randolph city|295|0|4|Lachapelle|Lucila|2999|New York|F|Daughter|||11|101494 +3010|MN|Dakota County|Randolph city|295|0|5|Lachapelle|Krystin|3003|MN|F|Daughter|||7|101495 +3010|MN|Dakota County|Randolph city|295|0|6|Lachapelle|Major|3005|MN|M|Son|||5|101496 +3010|MN|Dakota County|Randolph city|295|0|7|Lachapelle|Efren|3007|MN|M|Son|||3|101497 +3010|MN|Dakota County|Randolph city|295|0|8|Lachapelle|Ernest Hosea|3009|MN|M|Son|||1|101498 + +3010|OH|Harrison County|Tippecanoe CDP|296|0|1|Lanclos|Mohammad|2960|Maryland|M|Head|||50|101499 +3010|OH|Harrison County|Tippecanoe CDP|296|0|2|Lanclos|Jesse|2965|Wyoming|F|Spouse|||45|101500 +3010|OH|Harrison County|Tippecanoe CDP|296|0|3|Lanclos|Felicia Heidi|2995|Maryland|F|Daughter|||15|101501 +3010|OH|Harrison County|Tippecanoe CDP|296|0|4|Lanclos|Eli|2999|Florida|M|Son|||11|101502 +3010|OH|Harrison County|Tippecanoe CDP|296|0|5|Lanclos|Scottie|3005|OH|M|Son|||5|101503 +3010|OH|Harrison County|Tippecanoe CDP|296|0|6|Lanclos|Yelena Andrea|3007|OH|F|Daughter|||3|101504 + +3010|MI|Clinton County|Bath charter township|297|0|1|Sanders|Theo|2975|Micronesia, Federated States Of|M|Head|||35|101505 +3010|MI|Clinton County|Bath charter township|297|0|2|Sanders|Angel Grover|3000|Montana|M|Son|||10|101506 + +3010|MN|Pope County|Langhei township|298|0|1|Hartzell|Marshall Kendall|2963|Indiana|M|Head|||47|101507 +3010|MN|Pope County|Langhei township|298|0|2|Hartzell|Agnus|3000|Idaho|F|Daughter|||10|101508 + +3010|TN|Wilson County|Mount Juliet city|299|0|1|Kosters|Jon Abraham|2968|Turkmenistan|M|Head|||42|101509 +3010|TN|Wilson County|Mount Juliet city|299|0|2|Kosters|Juliet|2974|Alabama|F|Spouse|||36|101510 +3010|TN|Wilson County|Mount Juliet city|299|0|3|Kosters|Bibi|3000|Washington|F|Daughter|||10|101511 +3010|TN|Wilson County|Mount Juliet city|299|0|4|Kosters|Pinkie|3001|TN|F|Daughter|||9|101512 +3010|TN|Wilson County|Mount Juliet city|299|0|5|Kosters|Tommie|3003|TN|M|Son|||7|101513 +3010|TN|Wilson County|Mount Juliet city|299|0|6|Kosters|Pearly|3005|TN|F|Daughter|||5|101514 +3010|TN|Wilson County|Mount Juliet city|299|0|7|Kosters|Javier|3007|TN|M|Son|||3|101515 + +3010|FL|Orange County|Zellwood CDP|300|0|1|Vanvolkinburg|Harlan Damion|2960|Missouri|M|Head|||50|101516 +3010|FL|Orange County|Zellwood CDP|300|0|2|Vanvolkinburg|Jacqueline|2984|South Dakota|F|Spouse|||26|101517 +3010|FL|Orange County|Zellwood CDP|300|0|3|Vanvolkinburg|Nguyet|3001|FL|F|Daughter|||9|101518 +3010|FL|Orange County|Zellwood CDP|300|0|4|Vanvolkinburg|Sergio|3003|FL|M|Son|||7|101519 +3010|FL|Orange County|Zellwood CDP|300|0|5|Vanvolkinburg|Serena|3005|FL|F|Daughter|||5|101520 +3010|FL|Orange County|Zellwood CDP|300|0|6|Vanvolkinburg|Shawanna|3007|FL|F|Daughter|||3|101521 +3010|FL|Orange County|Zellwood CDP|300|0|7|Vanvolkinburg|Demetrius|3009|FL|M|Son|||1|101522 + +3010|PA|Armstrong County|Boggs township|301|0|1|White|Stacey Parker|2953|Ohio|M|Head|||57|101523 +3010|PA|Armstrong County|Boggs township|301|0|2|White|Camellia|2957|Tunisia|F|Spouse|||53|101524 +3010|PA|Armstrong County|Boggs township|301|0|3|White|Carrol|2989|Idaho|M|Son|||21|101525 +3010|PA|Armstrong County|Boggs township|301|0|4|White|Barbar|2995|Alabama|F|Daughter|||15|101526 +3010|PA|Armstrong County|Boggs township|301|0|5|White|Jeffery|3003|PA|M|Son|||7|101527 +3010|PA|Armstrong County|Boggs township|301|0|6|White|Winford|3009|PA|M|Son|||1|101528 + +3010|FL|Union County|Worthington Springs town|302|0|1|Chatman|Alonzo Emmett|2969|Wyoming|M|Head|||41|101529 +3010|FL|Union County|Worthington Springs town|302|0|2|Chatman|Araceli|2979|Jordan|F|Spouse|||31|101530 +3010|FL|Union County|Worthington Springs town|302|0|3|Chatman|Monty|2999|Georgia|M|Son|||11|101531 +3010|FL|Union County|Worthington Springs town|302|0|4|Chatman|Austin|3001|FL|M|Son|||9|101532 +3010|FL|Union County|Worthington Springs town|302|0|5|Chatman|Julieann|3005|FL|F|Daughter|||5|101533 +3010|FL|Union County|Worthington Springs town|302|0|6|Chatman|Louis|3007|FL|M|Son|||3|101534 +3010|FL|Union County|Worthington Springs town|302|0|7|Chatman|Gene|3009|FL|M|Son|||1|101535 + +3010|MI|Missaukee County|McBain city|303|0|1|Baisden|Roxie|2944|Missouri|F|Head|||66|101536 +3010|MI|Missaukee County|McBain city|303|0|2|Baisden|Frieda|2968|Utah|F|Daughter|||42|101537 +3010|MI|Missaukee County|McBain city|303|0|3|Baisden|Emelia|2980|New York|F|Daughter|||30|101538 +3010|MI|Missaukee County|McBain city|303|0|4|Baisden|Maia|2994|Georgia|F|Daughter|||16|101539 +3010|MI|Missaukee County|McBain city|303|0|5|Baisden|Peggie|2998|Equatorial Guinea|F|Daughter|||12|101540 + +3010|ND|Traill County|Buxton city|304|0|1|Delcine|Bennie|2944|Kentucky|M|Head|||66|101541 +3010|ND|Traill County|Buxton city|304|0|2|Delcine|Jeanice|2944|Montana|F|Spouse|||66|101542 +3010|ND|Traill County|Buxton city|304|0|3|Delcine|Venessa|3000|Hawaii|F|Daughter|||10|101543 +3010|ND|Traill County|Buxton city|304|0|4|Delcine|Chauncey|3005|ND|M|Son|||5|101544 +3010|ND|Traill County|Buxton city|304|0|5|Delcine|Alida Clarine|3007|ND|F|Daughter|||3|101545 + +3010|NE|Dixon County|Allen village|305|0|1|Carlson|Ronald Willis|2939|Niue|M|Head|||71|101546 +3010|NE|Dixon County|Allen village|305|0|2|Carlson|Julie|2940|Virginia|F|Spouse|||70|101547 +3010|NE|Dixon County|Allen village|305|0|3|Carlson|Glenn|2974|Colorado|M|Son|||36|101548 +3010|NE|Dixon County|Allen village|305|0|4|Carlson|Mariam|2980|Vermont|F|Daughter|||30|101549 +3010|NE|Dixon County|Allen village|305|0|5|Carlson|Lawana China|2984|Texas|F|Daughter|||26|101550 +3010|NE|Dixon County|Allen village|305|0|6|Carlson|Leslie|3001|NE|M|Son|||9|101551 +3010|NE|Dixon County|Allen village|305|0|7|Carlson|Berta|3003|NE|F|Daughter|||7|101552 +3010|NE|Dixon County|Allen village|305|0|8|Carlson|Jimmie|3007|NE|M|Son|||3|101553 + +3010|WI|Monroe County|Leon town|306|0|1|Goetsch|Stanton Adam|2937|Tuvalu|M|Head|||73|101554 +3010|WI|Monroe County|Leon town|306|0|2|Goetsch|Daniele|2955|Virginia|F|Spouse|||55|101555 +3010|WI|Monroe County|Leon town|306|0|3|Goetsch|Wallace|2995|North Carolina|M|Son|||15|101556 +3010|WI|Monroe County|Leon town|306|0|4|Goetsch|Hai Tory|2997|Tennessee|M|Son|||13|101557 + +3010|PA|Clearfield County|Burnside borough|308|0|1|Houck|Claud Bradford|2965|Lesotho|M|Head|||45|101558 +3010|PA|Clearfield County|Burnside borough|308|0|2|Houck|Glenda|2970|Alaska|F|Spouse|||40|101559 +3010|PA|Clearfield County|Burnside borough|308|0|3|Houck|Marylou|2990|California|F|Daughter|||20|101560 +3010|PA|Clearfield County|Burnside borough|308|0|4|Houck|Ellamae|2998|Washington|F|Daughter|||12|101561 +3010|PA|Clearfield County|Burnside borough|308|0|5|Houck|Marleen|3005|PA|F|Daughter|||5|101562 +3010|PA|Clearfield County|Burnside borough|308|0|6|Houck|Fermin|3009|PA|M|Son|||1|101563 + +3010|WI|Trempealeau County|Preston town|309|0|1|Bryant|Eboni|2949|Tennessee|F|Spouse|||61|101564 +3010|WI|Trempealeau County|Preston town|309|0|2|Bryant|Daniel|2991|Paraguay|M|Son|||19|101565 +3010|WI|Trempealeau County|Preston town|309|0|3|Bryant|Eliseo|2995|Svalbard And Jan Mayen|M|Son|||15|101566 +3010|WI|Trempealeau County|Preston town|309|0|4|Bryant|Mose|2997|Alaska|M|Son|||13|101567 +3010|WI|Trempealeau County|Preston town|309|0|5|Bryant|Dewitt|3001|WI|M|Son|||9|101568 +3010|WI|Trempealeau County|Preston town|309|0|6|Bryant|Justin Sadie|3005|WI|F|Daughter|||5|101569 +3010|WI|Trempealeau County|Preston town|309|0|7|Bryant|Bart|3007|WI|M|Son|||3|101570 +3010|WI|Trempealeau County|Preston town|309|0|8|Bryant|Felton|3009|WI|M|Son|||1|101571 + +3010|WV|Raleigh County|Sophia town|310|0|1|Harmon|Armando Ollie|2952|New Hampshire|M|Head|||58|101572 +3010|WV|Raleigh County|Sophia town|310|0|2|Harmon|Erna Pearlie|2952|North Carolina|F|Spouse|||58|101573 +3010|WV|Raleigh County|Sophia town|310|0|3|Harmon|Fredrick|2972|Illinois|M|Son|||38|101574 +3010|WV|Raleigh County|Sophia town|310|0|4|Harmon|Damion Joey|2992|Utah|M|Son|||18|101575 +3010|WV|Raleigh County|Sophia town|310|0|5|Harmon|Santiago Tuan|3005|WV|M|Son|||5|101576 +3010|WV|Raleigh County|Sophia town|310|0|6|Harmon|Laureen Gwenda|3007|WV|F|Daughter|||3|101577 + +3010|MN|Cass County|North Central Cass UT|311|0|1|Anderson|Lino Philip|2941|Alabama|M|Head|||69|101578 +3010|MN|Cass County|North Central Cass UT|311|0|2|Anderson|Adrianne|2939|New Hampshire|F|Spouse|||71|101579 +3010|MN|Cass County|North Central Cass UT|311|0|3|Anderson|Kirby|2973|Oregon|M|Son|||37|101580 +3010|MN|Cass County|North Central Cass UT|311|0|4|Anderson|Georgann|2995|Nigeria|F|Daughter|||15|101581 +3010|MN|Cass County|North Central Cass UT|311|0|5|Anderson|Royce Cedric|2999|Montana|M|Son|||11|101582 +3010|MN|Cass County|North Central Cass UT|311|0|6|Anderson|Thomas|3003|MN|M|Son|||7|101583 + +3010|CA|Trinity County|Burnt Ranch CDP|312|0|1|Dellow|Junior Oren|2942|Samoa|M|Head|||68|101584 +3010|CA|Trinity County|Burnt Ranch CDP|312|0|2|Dellow|Audry Tilda|2945|Rhode Island|F|Spouse|||65|101585 +3010|CA|Trinity County|Burnt Ranch CDP|312|0|3|Dellow|Emmett|2971|New Hampshire|M|Son|||39|101586 +3010|CA|Trinity County|Burnt Ranch CDP|312|0|4|Dellow|Jarred|2989|Kentucky|M|Son|||21|101587 + +3010|VA|Loudoun County|Sterling CDP|313|0|1|Benoit|Amado Armando|2945|Marshall Islands|M|Head|||65|101588 +3010|VA|Loudoun County|Sterling CDP|313|0|2|Benoit|Alysa|2960|South Dakota|F|Spouse|||50|101589 +3010|VA|Loudoun County|Sterling CDP|313|0|3|Benoit|Hanna|2994|South Carolina|F|Daughter|||16|101590 +3010|VA|Loudoun County|Sterling CDP|313|0|4|Benoit|Raye|3001|VA|F|Daughter|||9|101591 +3010|VA|Loudoun County|Sterling CDP|313|0|5|Benoit|Dusty|3003|VA|F|Daughter|||7|101592 +3010|VA|Loudoun County|Sterling CDP|313|0|6|Benoit|Artie|3007|VA|F|Daughter|||3|101593 + +3010|IL|DuPage County|Wood Dale city|314|0|1|Oxford|Cordell Kenny|2976|Florida|M|Head|||34|101594 +3010|IL|DuPage County|Wood Dale city|314|0|2|Oxford|Sharee|2982|West Virginia|F|Spouse|||28|101595 +3010|IL|DuPage County|Wood Dale city|314|0|3|Oxford|Madelene|3001|IL|F|Daughter|||9|101596 +3010|IL|DuPage County|Wood Dale city|314|0|4|Oxford|Renaldo Markus|3005|IL|M|Son|||5|101597 +3010|IL|DuPage County|Wood Dale city|314|0|5|Oxford|Timothy|3007|IL|M|Son|||3|101598 + +3010|ME|Cumberland County|Yarmouth CDP|315|0|1|Nordin|Malcolm Brain|2957|Ohio|M|Head|||53|101599 +3010|ME|Cumberland County|Yarmouth CDP|315|0|2|Nordin|Nisha Hazel|2965|New Hampshire|F|Spouse|||45|101600 +3010|ME|Cumberland County|Yarmouth CDP|315|0|3|Nordin|Patricia|2985|Vanuatu|M|Son|||25|101601 +3010|ME|Cumberland County|Yarmouth CDP|315|0|4|Nordin|Ellena|2997|Tennessee|F|Daughter|||13|101602 +3010|ME|Cumberland County|Yarmouth CDP|315|0|5|Nordin|Cruz|2999|Reunion|F|Daughter|||11|101603 +3010|ME|Cumberland County|Yarmouth CDP|315|0|6|Nordin|Yessenia|3003|ME|F|Daughter|||7|101604 + +3010|OH|Portage County|Kent city|316|0|1|Johnsey|Alene|2940|South Dakota|F|Head|||70|101605 +3010|OH|Portage County|Kent city|316|0|2|Johnsey|Phuong|2986|Gambia|F|Daughter|||24|101606 +3010|OH|Portage County|Kent city|316|0|3|Johnsey|Etha|2992|Texas|F|Daughter|||18|101607 +3010|OH|Portage County|Kent city|316|0|4|Johnsey|Keven|3000|Nebraska|M|Son|||10|101608 + +3010|OK|Oklahoma County|Warr Acres city|317|0|1|Parsons|Wilfred Mark|2961|New York|M|Head|||49|101609 +3010|OK|Oklahoma County|Warr Acres city|317|0|2|Parsons|Tillie|2996|New York|F|Daughter|||14|101610 +3010|OK|Oklahoma County|Warr Acres city|317|0|3|Parsons|Milda|2998|Vermont|F|Daughter|||12|101611 + +3010|WI|Clark County, Marathon County|Abbotsford city|318|0|1|Grabski|Sheila|2958|French Guiana|F|Head|||52|101612 +3010|WI|Clark County, Marathon County|Abbotsford city|318|0|2|Grabski|Hollis|2994|Connecticut|F|Daughter|||16|101613 + +3010|OH|Meigs County|Pomeroy village|319|0|1|Spearman|Rupert Dino|2962|South Carolina|M|Head|||48|101614 + +3010|MS|Chickasaw County|Okolona city|320|0|1|Annunziata|Jimmy Mohammed|2961|Utah|M|Head|||49|101615 +3010|MS|Chickasaw County|Okolona city|320|0|2|Annunziata|Loma|2980|Cote D'ivoire|F|Spouse|||30|101616 +3010|MS|Chickasaw County|Okolona city|320|0|3|Annunziata|Kathline|3001|MS|F|Daughter|||9|101617 +3010|MS|Chickasaw County|Okolona city|320|0|4|Annunziata|Suzanna|3003|MS|F|Daughter|||7|101618 +3010|MS|Chickasaw County|Okolona city|320|0|5|Annunziata|Shelley|3005|MS|F|Daughter|||5|101619 +3010|MS|Chickasaw County|Okolona city|320|0|6|Annunziata|Hui|3009|MS|F|Daughter|||1|101620 + +3010|MN|Koochiching County|Mizpah city|321|0|1|Mobley|Forrest Len|2952|Nevada|M|Head|||58|101621 +3010|MN|Koochiching County|Mizpah city|321|0|2|Mobley|Masako|2976|Trinidad And Tobago|F|Spouse|||34|101622 +3010|MN|Koochiching County|Mizpah city|321|0|3|Mobley|Stanton|3000|Georgia|M|Son|||10|101623 +3010|MN|Koochiching County|Mizpah city|321|0|4|Mobley|Major|3005|MN|M|Son|||5|101624 +3010|MN|Koochiching County|Mizpah city|321|0|5|Mobley|Hiram|3007|MN|M|Son|||3|101625 +3010|MN|Koochiching County|Mizpah city|321|0|6|Mobley|Marco|3009|MN|M|Son|||1|101626 + +3010|CA|Fresno County|Mendota city|322|0|1|Viguerie|Breann|3000|Washington|F|Daughter|||10|101627 + +3010|NJ|Monmouth County|Aberdeen township|323|0|1|Franklyn|Rex|2941|Virginia|M|Head|||69|101628 +3010|NJ|Monmouth County|Aberdeen township|323|0|2|Franklyn|Sherley|2995|Georgia|F|Daughter|||15|101629 + +3010|PA|Perry County|Newport borough|324|0|1|Larkin|Felicita|2981|New Mexico|F|Head|||29|101630 + +3010|WI|Polk County|Clear Lake village|325|0|1|Stoddard|Josefine|2966|Lebanon|F|Spouse|||44|101631 +3010|WI|Polk County|Clear Lake village|325|0|2|Stoddard|Chase|3005|WI|M|Son|||5|101632 +3010|WI|Polk County|Clear Lake village|325|0|3|Stoddard|Terrie|3009|WI|F|Daughter|||1|101633 + +3010|MI|Monroe County|Estral Beach village|326|0|1|Dipilato|Ernie|2979|West Virginia|M|Head|||31|101634 + +3010|MS|Kemper County, Neshoba County|Bogue Chitto CDP|327|0|1|Norman|Trevor Antione|2947|Nauru|M|Head|||63|101635 +3010|MS|Kemper County, Neshoba County|Bogue Chitto CDP|327|0|2|Norman|Zulema|2955|Rhode Island|F|Spouse|||55|101636 +3010|MS|Kemper County, Neshoba County|Bogue Chitto CDP|327|0|3|Norman|Latrice|3001|MN|F|Daughter|||9|101637 +3010|MS|Kemper County, Neshoba County|Bogue Chitto CDP|327|0|4|Norman|Antoine|3003|MN|M|Son|||7|101638 +3010|MS|Kemper County, Neshoba County|Bogue Chitto CDP|327|0|5|Norman|Miss|3005|MN|F|Daughter|||5|101639 +3010|MS|Kemper County, Neshoba County|Bogue Chitto CDP|327|0|6|Norman|Jazmin|3007|MS|F|Daughter|||3|101640 + +3010|IL|Fayette County|Bingham village|328|0|1|Yost|Evita|2982|Massachusetts|F|Spouse|||28|101641 +3010|IL|Fayette County|Bingham village|328|0|2|Yost|Isaac Rey|3003|IL|M|Son|||7|101642 +3010|IL|Fayette County|Bingham village|328|0|3|Yost|Margot|3005|IL|F|Daughter|||5|101643 +3010|IL|Fayette County|Bingham village|328|0|4|Yost|Major|3007|IL|M|Son|||3|101644 +3010|IL|Fayette County|Bingham village|328|0|5|Yost|Awilda|3009|IL|F|Daughter|||1|101645 + +3010|CA|Shasta County|Montgomery Creek CDP|329|0|1|Germann|Stewart Courtney|2951|Arkansas|M|Head|||59|101646 +3010|CA|Shasta County|Montgomery Creek CDP|329|0|2|Germann|Coy|2981|West Virginia|M|Son|||29|101647 +3010|CA|Shasta County|Montgomery Creek CDP|329|0|3|Germann|Cherri|2987|Rhode Island|F|Daughter|||23|101648 +3010|CA|Shasta County|Montgomery Creek CDP|329|0|4|Germann|Helene Stephaine|2999|Maryland|F|Daughter|||11|101649 + +3010|WV|Randolph County|Elkins city|330|0|1|Johnson|Dominic Pierre|2948|Alaska|M|Head|||62|101650 +3010|WV|Randolph County|Elkins city|330|0|2|Johnson|Dustin|2990|Mississippi|M|Son|||20|101651 +3010|WV|Randolph County|Elkins city|330|0|3|Johnson|Tony|2992|Rhode Island|M|Son|||18|101652 +3010|WV|Randolph County|Elkins city|330|0|4|Johnson|Brain|2996|Illinois|M|Son|||14|101653 +3010|WV|Randolph County|Elkins city|330|0|5|Johnson|Veta|2998|Nevada|F|Daughter|||12|101654 +3010|WV|Randolph County|Elkins city|330|0|6|Johnson|Vicenta|3003|WV|F|Daughter|||7|101655 +3010|WV|Randolph County|Elkins city|330|0|7|Johnson|Creola|3007|WV|F|Daughter|||3|101656 + +3010|CO|Pueblo County|Blende CDP|331|0|1|Gasper|Dallas Jackson|2961|Ohio|M|Head|||49|101657 +3010|CO|Pueblo County|Blende CDP|331|0|2|Gasper|Sherilyn|2969|Somalia|F|Spouse|||41|101658 +3010|CO|Pueblo County|Blende CDP|331|0|3|Gasper|Marlena Ninfa|2995|Tennessee|F|Daughter|||15|101659 +3010|CO|Pueblo County|Blende CDP|331|0|4|Gasper|Leonel|2997|Holy See (vatican City State)|M|Son|||13|101660 +3010|CO|Pueblo County|Blende CDP|331|0|5|Gasper|Beau|2999|Poland|M|Son|||11|101661 +3010|CO|Pueblo County|Blende CDP|331|0|6|Gasper|Patsy|3001|CO|F|Daughter|||9|101662 +3010|CO|Pueblo County|Blende CDP|331|0|7|Gasper|Jacinto|3003|CO|M|Son|||7|101663 + +3010|AL|Calhoun County|Anniston city|332|0|1|Phanor|Reed Alfonzo|2951|South Dakota|M|Head|||59|101664 +3010|AL|Calhoun County|Anniston city|332|0|2|Phanor|Melia|2980|Nebraska|F|Daughter|||30|101665 +3010|AL|Calhoun County|Anniston city|332|0|3|Phanor|Graciela|2988|Virginia|F|Daughter|||22|101666 +3010|AL|Calhoun County|Anniston city|332|0|4|Phanor|Ernest|2990|Alaska|M|Son|||20|101667 +3010|AL|Calhoun County|Anniston city|332|0|5|Phanor|Loraine|3000|Bouvet Island|F|Daughter|||10|101668 +3010|AL|Calhoun County|Anniston city|332|0|6|Phanor|Logan Garth|3009|AL|M|Son|||1|101669 + +3010|NJ|Burlington County|Medford Lakes borough|333|0|1|Herrera|Cyndy|2959|Georgia|F|Spouse|||51|101670 +3010|NJ|Burlington County|Medford Lakes borough|333|0|2|Herrera|Towanda|2985|Georgia|F|Daughter|||25|101671 +3010|NJ|Burlington County|Medford Lakes borough|333|0|3|Herrera|Monte|2987|Martinique|M|Son|||23|101672 +3010|NJ|Burlington County|Medford Lakes borough|333|0|4|Herrera|Reginald|2991|Missouri|M|Son|||19|101673 +3010|NJ|Burlington County|Medford Lakes borough|333|0|5|Herrera|Sharolyn Thersa|2997|Michigan|F|Daughter|||13|101674 +3010|NJ|Burlington County|Medford Lakes borough|333|0|6|Herrera|Beatris|2999|Virginia|F|Daughter|||11|101675 +3010|NJ|Burlington County|Medford Lakes borough|333|0|7|Herrera|Marc|3003|NJ|M|Son|||7|101676 + +3010|TN|Grundy County|Beersheba Springs town|334|0|1|Smith|Brian Zachary|2974|Florida|M|Head|||36|101677 +3010|TN|Grundy County|Beersheba Springs town|334|0|2|Smith|Page|2970|North Dakota|F|Spouse|||40|101678 +3010|TN|Grundy County|Beersheba Springs town|334|0|3|Smith|Arcelia|2996|Minnesota|F|Daughter|||14|101679 +3010|TN|Grundy County|Beersheba Springs town|334|0|4|Smith|Lady|3003|TN|F|Daughter|||7|101680 + +3010|PA|York County|Spring Garden township|335|0|1|Bunce|Cyril Wilton|2962|Massachusetts|M|Head|||48|101681 +3010|PA|York County|Spring Garden township|335|0|2|Bunce|Wilber|2993|Maine|M|Son|||17|101682 +3010|PA|York County|Spring Garden township|335|0|3|Bunce|Elisha|2995|Michigan|M|Son|||15|101683 +3010|PA|York County|Spring Garden township|335|0|4|Bunce|Chung|2997|Washington|M|Son|||13|101684 + +3010|IN|Rush County|Carthage town|336|0|1|Bubrig|Marquis|2941|Oregon|M|Head|||69|101685 +3010|IN|Rush County|Carthage town|336|0|2|Bubrig|Leopoldo|2968|Equatorial Guinea|M|Son|||42|101686 +3010|IN|Rush County|Carthage town|336|0|3|Bubrig|Natalya|2982|Missouri|F|Daughter|||28|101687 +3010|IN|Rush County|Carthage town|336|0|4|Bubrig|Charles Bart|2986|West Virginia|M|Son|||24|101688 +3010|IN|Rush County|Carthage town|336|0|5|Bubrig|Benjamin Miquel|2992|Nevada|M|Son|||18|101689 + +3010|NY|Nassau County|Malverne Park Oaks CDP|337|0|1|Broomhall|Reuben Jonathan|2950|Colorado|M|Head|||60|101690 +3010|NY|Nassau County|Malverne Park Oaks CDP|337|0|2|Broomhall|Tim|2997|Nevada|M|Son|||13|101691 +3010|NY|Nassau County|Malverne Park Oaks CDP|337|0|3|Broomhall|Belkis|2999|Washington|F|Daughter|||11|101692 + +3010|KS|Ness County|Ness City city|338|0|1|Roberson|Deangelo Lonnie|2939|Montana|M|Head|||71|101693 +3010|KS|Ness County|Ness City city|338|0|2|Roberson|Tabitha|2958|Florida|F|Spouse|||52|101694 +3010|KS|Ness County|Ness City city|338|0|3|Roberson|Felice|2996|Wyoming|F|Daughter|||14|101695 +3010|KS|Ness County|Ness City city|338|0|4|Roberson|Tracey|3003|KS|M|Son|||7|101696 +3010|KS|Ness County|Ness City city|338|0|5|Roberson|Fredric|3005|KS|M|Son|||5|101697 + +3010|SD|Davison County|Ethan town|339|0|1|Muina|Shane Alfredo|2939|Mississippi|M|Head|||71|101698 +3010|SD|Davison County|Ethan town|339|0|2|Muina|Rosio|2956|Hawaii|F|Spouse|||54|101699 +3010|SD|Davison County|Ethan town|339|0|3|Muina|Hollis|2996|Nevada|M|Son|||14|101700 +3010|SD|Davison County|Ethan town|339|0|4|Muina|Ira|3001|SD|M|Son|||9|101701 +3010|SD|Davison County|Ethan town|339|0|5|Muina|Darren|3003|SD|M|Son|||7|101702 +3010|SD|Davison County|Ethan town|339|0|6|Muina|Shayla|3007|SD|F|Daughter|||3|101703 + +3010|MA|Suffolk County|Chelsea city|340|0|1|Moore|Grover Walter|2952|Mississippi|M|Head|||58|101704 +3010|MA|Suffolk County|Chelsea city|340|0|2|Moore|Love Ella|2964|North Dakota|F|Spouse|||46|101705 +3010|MA|Suffolk County|Chelsea city|340|0|3|Moore|Omer|2990|New Zealand|M|Son|||20|101706 +3010|MA|Suffolk County|Chelsea city|340|0|4|Moore|Lita Lavern|2998|Minnesota|F|Daughter|||12|101707 +3010|MA|Suffolk County|Chelsea city|340|0|5|Moore|Bridget|3003|MA|F|Daughter|||7|101708 +3010|MA|Suffolk County|Chelsea city|340|0|6|Moore|Dennis Winifred|3009|MA|F|Daughter|||1|101709 + +3010|MN|Kandiyohi County|Kandiyohi city|341|0|1|Vandorn|Tad Dewayne|2965|Michigan|M|Head|||45|101710 +3010|MN|Kandiyohi County|Kandiyohi city|341|0|2|Vandorn|Ceola|2979|Bulgaria|F|Spouse|||31|101711 +3010|MN|Kandiyohi County|Kandiyohi city|341|0|3|Vandorn|Warren|2999|Gambia|M|Son|||11|101712 +3010|MN|Kandiyohi County|Kandiyohi city|341|0|4|Vandorn|Debi|3001|MN|F|Daughter|||9|101713 +3010|MN|Kandiyohi County|Kandiyohi city|341|0|5|Vandorn|Gilbert Julian|3003|MN|M|Son|||7|101714 +3010|MN|Kandiyohi County|Kandiyohi city|341|0|6|Vandorn|Gaston|3007|MN|M|Son|||3|101715 + +3010|MN|Cass County|Bena city|342|0|1|Rudoy|Jeffery|2952|Indiana|M|Head|||58|101716 +3010|MN|Cass County|Bena city|342|0|2|Rudoy|Yon|2989|Georgia|F|Daughter|||21|101717 +3010|MN|Cass County|Bena city|342|0|3|Rudoy|Justa Beaulah|2999|Oklahoma|F|Daughter|||11|101718 +3010|MN|Cass County|Bena city|342|0|4|Rudoy|Ai|3003|MN|F|Daughter|||7|101719 +3010|MN|Cass County|Bena city|342|0|5|Rudoy|Corey|3005|MN|M|Son|||5|101720 +3010|MN|Cass County|Bena city|342|0|6|Rudoy|Pearly|3007|MN|F|Daughter|||3|101721 +3010|MN|Cass County|Bena city|342|0|7|Rudoy|Francis|3009|MN|M|Son|||1|101722 + +3010|CT|Litchfield County|Barkhamsted town|343|0|1|Hasson|Hipolito Mack|2945|Cape Verde|M|Head|||65|101723 +3010|CT|Litchfield County|Barkhamsted town|343|0|2|Hasson|Shonna|2957|Guinea-bissau|F|Spouse|||53|101724 +3010|CT|Litchfield County|Barkhamsted town|343|0|3|Hasson|Inez|2981|Oregon|F|Daughter|||29|101725 +3010|CT|Litchfield County|Barkhamsted town|343|0|4|Hasson|Salley|2985|Mississippi|F|Daughter|||25|101726 +3010|CT|Litchfield County|Barkhamsted town|343|0|5|Hasson|Johnson|2991|Macau|M|Son|||19|101727 +3010|CT|Litchfield County|Barkhamsted town|343|0|6|Hasson|Elizebeth|2997|Washington|F|Daughter|||13|101728 +3010|CT|Litchfield County|Barkhamsted town|343|0|7|Hasson|Michiko|3003|CT|F|Daughter|||7|101729 +3010|CT|Litchfield County|Barkhamsted town|343|0|8|Hasson|Jerlene|3005|CT|F|Daughter|||5|101730 + +3010|UT|Washington County|Apple Valley town|344|0|1|Keithly|Mac|2956|Iowa|M|Head|||54|101731 +3010|UT|Washington County|Apple Valley town|344|0|2|Keithly|Terri Leisha|2978|South Dakota|F|Spouse|||32|101732 +3010|UT|Washington County|Apple Valley town|344|0|3|Keithly|Jeffrey|2998|Ethiopia|F|Daughter|||12|101733 +3010|UT|Washington County|Apple Valley town|344|0|4|Keithly|Genaro|3000|North Dakota|M|Son|||10|101734 +3010|UT|Washington County|Apple Valley town|344|0|5|Keithly|Ty|3001|UT|M|Son|||9|101735 +3010|UT|Washington County|Apple Valley town|344|0|6|Keithly|Errol|3005|UT|M|Son|||5|101736 + +3010|PA|Northampton County|Old Orchard CDP|345|0|1|Quintana|Jerrold Cesar|2942|North Dakota|M|Head|||68|101737 +3010|PA|Northampton County|Old Orchard CDP|345|0|2|Quintana|Basilia|2944|Christmas Island|F|Spouse|||66|101738 +3010|PA|Northampton County|Old Orchard CDP|345|0|3|Quintana|Lane Kareen|2988|Delaware|F|Daughter|||22|101739 +3010|PA|Northampton County|Old Orchard CDP|345|0|4|Quintana|Stanton|3000|Wisconsin|M|Son|||10|101740 +3010|PA|Northampton County|Old Orchard CDP|345|0|5|Quintana|Cheryll|3001|PA|F|Daughter|||9|101741 +3010|PA|Northampton County|Old Orchard CDP|345|0|6|Quintana|Cristobal|3003|PA|M|Son|||7|101742 + +3010|MN|Becker County|Ogema city|346|0|1|Smith|Stevie|2952|Maine|M|Head|||58|101743 +3010|MN|Becker County|Ogema city|346|0|2|Smith|Claudia|2952|Swaziland|F|Spouse|||58|101744 +3010|MN|Becker County|Ogema city|346|0|3|Smith|Bula|2974|Mississippi|F|Daughter|||36|101745 +3010|MN|Becker County|Ogema city|346|0|4|Smith|Kristine|2978|Tunisia|F|Daughter|||32|101746 +3010|MN|Becker County|Ogema city|346|0|5|Smith|Zachery Heriberto|2980|Afghanistan|M|Son|||30|101747 +3010|MN|Becker County|Ogema city|346|0|6|Smith|Sung|2992|Nevada|M|Son|||18|101748 +3010|MN|Becker County|Ogema city|346|0|7|Smith|Rosina|3000|Kansas|F|Daughter|||10|101749 +3010|MN|Becker County|Ogema city|346|0|8|Smith|Rena|3005|MN|F|Daughter|||5|101750 +3010|MN|Becker County|Ogema city|346|0|9|Smith|Donya|3007|MN|F|Daughter|||3|101751 + +3010|NY|Orange County|Blooming Grove town|347|0|1|Mimes|Ulysses Duane|2942|Idaho|M|Head|||68|101752 +3010|NY|Orange County|Blooming Grove town|347|0|2|Mimes|Abby|2955|New Mexico|F|Spouse|||55|101753 +3010|NY|Orange County|Blooming Grove town|347|0|3|Mimes|Cecil|2985|New York|M|Son|||25|101754 +3010|NY|Orange County|Blooming Grove town|347|0|4|Mimes|Kimberlee|2991|Wyoming|F|Daughter|||19|101755 +3010|NY|Orange County|Blooming Grove town|347|0|5|Mimes|Mia|2997|Saint Lucia|F|Daughter|||13|101756 + +3010|HI|Honolulu County|Ewa Villages CDP|348|0|1|Chamber|Federico|2969|United States|M|Head|||41|101757 +3010|HI|Honolulu County|Ewa Villages CDP|348|0|2|Chamber|Elvie Marylouise|3000|New Mexico|F|Daughter|||10|101758 + +3010|PA|Westmoreland County|Scottdale borough|349|0|1|Hodgson|Anthony Dwight|2967|Kansas|M|Head|||43|101759 +3010|PA|Westmoreland County|Scottdale borough|349|0|2|Hodgson|Wilson Fritz|2986|North Carolina|M|Son|||24|101760 +3010|PA|Westmoreland County|Scottdale borough|349|0|3|Hodgson|Viola|2996|Ohio|F|Daughter|||14|101761 +3010|PA|Westmoreland County|Scottdale borough|349|0|4|Hodgson|Monique|3000|Turkmenistan|F|Daughter|||10|101762 +3010|PA|Westmoreland County|Scottdale borough|349|0|5|Hodgson|Caitlyn|3007|PA|F|Daughter|||3|101763 +3010|PA|Westmoreland County|Scottdale borough|349|0|6|Hodgson|Cliff|3009|PA|M|Son|||1|101764 + +3010|MN|Itasca County|Nashwauk city|350|0|1|Rippey|Elijah Dwight|2947|Ireland|M|Head|||63|101765 +3010|MN|Itasca County|Nashwauk city|350|0|2|Rippey|Norman|2995|Colorado|M|Son|||15|101766 +3010|MN|Itasca County|Nashwauk city|350|0|3|Rippey|Angelo|2997|Alabama|M|Son|||13|101767 +3010|MN|Itasca County|Nashwauk city|350|0|4|Rippey|Salena|2999|Georgia|F|Daughter|||11|101768 +3010|MN|Itasca County|Nashwauk city|350|0|5|Rippey|Shakita|3001|MN|F|Daughter|||9|101769 +3010|MN|Itasca County|Nashwauk city|350|0|6|Rippey|Alvin Patricia|3007|MN|M|Son|||3|101770 + +3010|MA|Bristol County|Berkley town|351|0|1|Ranweiler|Barrett Billie|2968|Pennsylvania|M|Head|||42|101771 +3010|MA|Bristol County|Berkley town|351|0|2|Ranweiler|Denisha|2986|Illinois|F|Daughter|||24|101772 +3010|MA|Bristol County|Berkley town|351|0|3|Ranweiler|Syreeta|2992|Tonga|F|Daughter|||18|101773 +3010|MA|Bristol County|Berkley town|351|0|4|Ranweiler|Bernie|2998|Dominican Republic|M|Son|||12|101774 +3010|MA|Bristol County|Berkley town|351|0|5|Ranweiler|Belen|3000|Illinois|F|Daughter|||10|101775 + +3010|MN|Clay County|Ulen city|352|0|1|Roper|Ollie Salvatore|2958|Oklahoma|M|Head|||52|101776 +3010|MN|Clay County|Ulen city|352|0|2|Roper|Eunice|2980|Tennessee|F|Spouse|||30|101777 +3010|MN|Clay County|Ulen city|352|0|3|Roper|Geneva|3000|France|F|Daughter|||10|101778 +3010|MN|Clay County|Ulen city|352|0|4|Roper|Cristy|3001|MN|F|Daughter|||9|101779 +3010|MN|Clay County|Ulen city|352|0|5|Roper|Amina|3005|MN|F|Daughter|||5|101780 +3010|MN|Clay County|Ulen city|352|0|6|Roper|Aaron|3007|MN|F|Daughter|||3|101781 + +3010|AL|DeKalb County|Pine Ridge town|353|0|1|Ryser|Larry Derek|2945|Iraq|M|Head|||65|101782 +3010|AL|DeKalb County|Pine Ridge town|353|0|2|Ryser|Ashton|2961|New Jersey|F|Spouse|||49|101783 +3010|AL|DeKalb County|Pine Ridge town|353|0|3|Ryser|Shaneka|2989|Connecticut|F|Daughter|||21|101784 +3010|AL|DeKalb County|Pine Ridge town|353|0|4|Ryser|Gwenn|2991|Hawaii|F|Daughter|||19|101785 +3010|AL|DeKalb County|Pine Ridge town|353|0|5|Ryser|Sonya|2999|Utah|F|Daughter|||11|101786 +3010|AL|DeKalb County|Pine Ridge town|353|0|6|Ryser|Paris|3001|AL|M|Son|||9|101787 +3010|AL|DeKalb County|Pine Ridge town|353|0|7|Ryser|Winston|3003|AL|M|Son|||7|101788 +3010|AL|DeKalb County|Pine Ridge town|353|0|8|Ryser|Rocky|3005|AL|M|Son|||5|101789 +3010|AL|DeKalb County|Pine Ridge town|353|0|9|Ryser|Christena|3007|AL|F|Daughter|||3|101790 +3010|AL|DeKalb County|Pine Ridge town|353|0|10|Ryser|Tomika|3009|AL|F|Daughter|||1|101791 + +3010|SD|Bon Homme County|Avon city|354|0|1|Berens|Lovie Shanika|2974|Singapore|F|Head|||36|101792 +3010|SD|Bon Homme County|Avon city|354|0|2|Berens|Trent|2996|Rhode Island|M|Son|||14|101793 +3010|SD|Bon Homme County|Avon city|354|0|3|Berens|Leonardo|3000|Arizona|M|Son|||10|101794 + +3010|MN|Freeborn County|Freeborn city|355|0|1|Lysaght|Maira|2959|Maine|F|Spouse|||51|101795 +3010|MN|Freeborn County|Freeborn city|355|0|2|Lysaght|Valentine|2987|Michigan|M|Son|||23|101796 +3010|MN|Freeborn County|Freeborn city|355|0|3|Lysaght|Dannielle|3003|MN|F|Daughter|||7|101797 + +3010|PA|Butler County|Petrolia borough|356|0|1|Schulte|Britt Jeffery|2956|New Jersey|M|Head|||54|101798 +3010|PA|Butler County|Petrolia borough|356|0|2|Schulte|Tawnya|2978|Ohio|F|Spouse|||32|101799 +3010|PA|Butler County|Petrolia borough|356|0|3|Schulte|Leandro|2998|Indiana|M|Son|||12|101800 +3010|PA|Butler County|Petrolia borough|356|0|4|Schulte|Ricarda|3000|Egypt|F|Daughter|||10|101801 +3010|PA|Butler County|Petrolia borough|356|0|5|Schulte|Yoshiko|3001|PA|F|Daughter|||9|101802 +3010|PA|Butler County|Petrolia borough|356|0|6|Schulte|Barb|3005|PA|F|Daughter|||5|101803 +3010|PA|Butler County|Petrolia borough|356|0|7|Schulte|Polly|3007|PA|F|Daughter|||3|101804 +3010|PA|Butler County|Petrolia borough|356|0|8|Schulte|Ned|3009|PA|M|Son|||1|101805 + +3010|KY|Knox County|Barbourville city|357|0|1|Masuda|Todd Jefferey|2954|Delaware|M|Head|||56|101806 +3010|KY|Knox County|Barbourville city|357|0|2|Masuda|Gaynelle|2996|New Hampshire|F|Daughter|||14|101807 +3010|KY|Knox County|Barbourville city|357|0|3|Masuda|Douglas Trenton|2998|Georgia|M|Son|||12|101808 +3010|KY|Knox County|Barbourville city|357|0|4|Masuda|Lanny|3000|Arizona|M|Son|||10|101809 +3010|KY|Knox County|Barbourville city|357|0|5|Masuda|Rueben|3007|KY|M|Son|||3|101810 + +3010|MN|Wadena County|Aldrich township|358|0|1|Wilder|Sylvie Tai|2952|Indiana|F|Spouse|||58|101811 +3010|MN|Wadena County|Aldrich township|358|0|2|Wilder|Ross|2986|North Dakota|M|Son|||24|101812 +3010|MN|Wadena County|Aldrich township|358|0|3|Wilder|Addie|2996|Indiana|F|Daughter|||14|101813 +3010|MN|Wadena County|Aldrich township|358|0|4|Wilder|Alishia Katelin|3001|MN|F|Daughter|||9|101814 +3010|MN|Wadena County|Aldrich township|358|0|5|Wilder|Gwenda|3007|MN|F|Daughter|||3|101815 + +3010|MA|Worcester County|Uxbridge town|359|0|1|Schroth|Kraig|2942|Pennsylvania|M|Head|||68|101816 +3010|MA|Worcester County|Uxbridge town|359|0|2|Schroth|Emmy|2963|Michigan|F|Spouse|||47|101817 +3010|MA|Worcester County|Uxbridge town|359|0|3|Schroth|Moises|2987|Minnesota|M|Son|||23|101818 +3010|MA|Worcester County|Uxbridge town|359|0|4|Schroth|Tyrell|2997|Iowa|M|Son|||13|101819 +3010|MA|Worcester County|Uxbridge town|359|0|5|Schroth|Daron|3003|MA|M|Son|||7|101820 +3010|MA|Worcester County|Uxbridge town|359|0|6|Schroth|Ken Francisco|3007|MA|M|Son|||3|101821 + +3010|PA|Lackawanna County, Wayne County|Big Bass Lake CDP|360|0|1|Chiz|Merlin Al|2945|Delaware|M|Head|||65|101822 +3010|PA|Lackawanna County, Wayne County|Big Bass Lake CDP|360|0|2|Chiz|Allen|2989|Iowa|M|Son|||21|101823 +3010|PA|Lackawanna County, Wayne County|Big Bass Lake CDP|360|0|3|Chiz|Shirley|2999|Wyoming|M|Son|||11|101824 + +3010|UT|Cache County|North Logan city|361|0|1|Arredondo|Howard Reyes|2973|Hawaii|M|Head|||37|101825 +3010|UT|Cache County|North Logan city|361|0|2|Arredondo|Argentina|2984|Pennsylvania|F|Spouse|||26|101826 +3010|UT|Cache County|North Logan city|361|0|3|Arredondo|Kermit|3007|UT|M|Son|||3|101827 +3010|UT|Cache County|North Logan city|361|0|4|Arredondo|Sachiko|3009|UT|F|Daughter|||1|101828 + +3010|MO|Mississippi County|Bertrand city|362|0|1|Molyneaux|Lester Antwan|2977|Colorado|M|Head|||33|101829 +3010|MO|Mississippi County|Bertrand city|362|0|2|Molyneaux|Shavon Santos|2997|Kentucky|F|Daughter|||13|101830 + +3010|KS|Ford County|Dodge City city|363|0|1|Oravec|Marlin Wilber|2973|New Jersey|M|Head|||37|101831 +3010|KS|Ford County|Dodge City city|363|0|2|Oravec|Nikita|2999|Virginia|F|Daughter|||11|101832 + +3010|MO|Andrew County|Country Club village|364|0|1|Tercero|Marisol|2948|North Carolina|F|Head|||62|101833 +3010|MO|Andrew County|Country Club village|364|0|2|Tercero|Burma|2968|South Dakota|F|Daughter|||42|101834 +3010|MO|Andrew County|Country Club village|364|0|3|Tercero|Bethann Trena|2976|Anguilla|F|Daughter|||34|101835 +3010|MO|Andrew County|Country Club village|364|0|4|Tercero|Britany|2992|Alabama|F|Daughter|||18|101836 +3010|MO|Andrew County|Country Club village|364|0|5|Tercero|Elmer Morris|2996|Nebraska|M|Son|||14|101837 +3010|MO|Andrew County|Country Club village|364|0|6|Tercero|Sean|3000|Louisiana|M|Son|||10|101838 + +3010|MN|Aitkin County|Beaver township|365|0|1|Durrett|Jaime Harrison|2960|Kansas|M|Head|||50|101839 +3010|MN|Aitkin County|Beaver township|365|0|2|Durrett|Kylie Sherita|3000|Wisconsin|F|Daughter|||10|101840 + +3010|CT|Tolland County|Vernon town|366|0|1|Triguro|Myron|2957|New York|M|Head|||53|101841 +3010|CT|Tolland County|Vernon town|366|0|2|Triguro|Evalyn|2956|Florida|F|Spouse|||54|101842 +3010|CT|Tolland County|Vernon town|366|0|3|Triguro|Russell|2990|Hawaii|M|Son|||20|101843 +3010|CT|Tolland County|Vernon town|366|0|4|Triguro|Rosendo|2996|Florida|M|Son|||14|101844 +3010|CT|Tolland County|Vernon town|366|0|5|Triguro|Ilana|3000|Sudan|F|Daughter|||10|101845 +3010|CT|Tolland County|Vernon town|366|0|6|Triguro|Coleen|3007|CT|F|Daughter|||3|101846 + +3010|MN|Todd County|Burtrum city|367|0|1|Gingery|Dwight|2954|Minnesota|M|Head|||56|101847 +3010|MN|Todd County|Burtrum city|367|0|2|Gingery|Aiko Jettie|2961|Louisiana|F|Spouse|||49|101848 +3010|MN|Todd County|Burtrum city|367|0|3|Gingery|Courtney|2991|Maine|M|Son|||19|101849 +3010|MN|Todd County|Burtrum city|367|0|4|Gingery|Shirl Cristine|2999|Louisiana|F|Daughter|||11|101850 +3010|MN|Todd County|Burtrum city|367|0|5|Gingery|Chantay|3001|MN|F|Daughter|||9|101851 +3010|MN|Todd County|Burtrum city|367|0|6|Gingery|Rocky|3003|MN|M|Son|||7|101852 +3010|MN|Todd County|Burtrum city|367|0|7|Gingery|Nicolasa|3007|MN|F|Daughter|||3|101853 + +3010|WI|Waukesha County|North Prairie village|368|0|1|Parks|Vernice|2958|Missouri|F|Spouse|||52|101854 +3010|WI|Waukesha County|North Prairie village|368|0|2|Parks|Lincoln|2994|Rhode Island|M|Son|||16|101855 +3010|WI|Waukesha County|North Prairie village|368|0|3|Parks|Micheal|2996|Senegal|M|Son|||14|101856 +3010|WI|Waukesha County|North Prairie village|368|0|4|Parks|Alleen|2998|North Carolina|F|Daughter|||12|101857 +3010|WI|Waukesha County|North Prairie village|368|0|5|Parks|Erasmo|3000|Minnesota|M|Son|||10|101858 +3010|WI|Waukesha County|North Prairie village|368|0|6|Parks|Danyell|3001|WI|F|Daughter|||9|101859 + +3010|MO|Buchanan County|Easton city|369|0|1|Hojnacki|Nathanael Edward|2962|Kosovo|M|Head|||48|101860 +3010|MO|Buchanan County|Easton city|369|0|2|Hojnacki|Samatha|2977|Florida|F|Spouse|||33|101861 +3010|MO|Buchanan County|Easton city|369|0|3|Hojnacki|Gregory|2997|Oklahoma|M|Son|||13|101862 +3010|MO|Buchanan County|Easton city|369|0|4|Hojnacki|Tonja|2999|Louisiana|F|Daughter|||11|101863 +3010|MO|Buchanan County|Easton city|369|0|5|Hojnacki|Yung|3001|MO|F|Daughter|||9|101864 +3010|MO|Buchanan County|Easton city|369|0|6|Hojnacki|Debera|3003|MO|F|Daughter|||7|101865 +3010|MO|Buchanan County|Easton city|369|0|7|Hojnacki|Johnny|3005|MO|M|Son|||5|101866 + +3010|ME|Kennebec County|Randolph CDP|370|0|1|Kluesner|Tod|2939|Kansas|M|Head|||71|101867 +3010|ME|Kennebec County|Randolph CDP|370|0|2|Kluesner|Joy|2961|Tokelau|F|Spouse|||49|101868 +3010|ME|Kennebec County|Randolph CDP|370|0|3|Kluesner|Danial|2989|Ethiopia|M|Son|||21|101869 +3010|ME|Kennebec County|Randolph CDP|370|0|4|Kluesner|Micah|2997|Hawaii|M|Son|||13|101870 +3010|ME|Kennebec County|Randolph CDP|370|0|5|Kluesner|Wilber|2999|United States Minor Outlying Islands|M|Son|||11|101871 +3010|ME|Kennebec County|Randolph CDP|370|0|6|Kluesner|Duane|3005|ME|M|Son|||5|101872 + +3010|NY|Rockland County|West Haverstraw village|371|0|1|Mane|Edwin Abram|2969|Ohio|M|Head|||41|101873 +3010|NY|Rockland County|West Haverstraw village|371|0|2|Mane|Phyllis|2995|New York|F|Daughter|||15|101874 +3010|NY|Rockland County|West Haverstraw village|371|0|3|Mane|Jay|2997|Nebraska|M|Son|||13|101875 + +3010|MN|Clay County|Dilworth city|372|0|1|Easler|Bryant|2938|Kentucky|M|Head|||72|101876 +3010|MN|Clay County|Dilworth city|372|0|2|Easler|Lucrecia|2950|Arizona|F|Spouse|||60|101877 +3010|MN|Clay County|Dilworth city|372|0|3|Easler|Alexander|3000|Peru|M|Son|||10|101878 +3010|MN|Clay County|Dilworth city|372|0|4|Easler|Raymond|3009|MN|M|Son|||1|101879 + +3010|CA|Los Angeles County|Rolling Hills Estates city|373|0|1|Anglin|Wiley Jonah|2973|West Virginia|M|Head|||37|101880 +3010|CA|Los Angeles County|Rolling Hills Estates city|373|0|2|Anglin|Shavonne|2973|Montana|F|Spouse|||37|101881 +3010|CA|Los Angeles County|Rolling Hills Estates city|373|0|3|Anglin|Janay|2997|Massachusetts|F|Daughter|||13|101882 +3010|CA|Los Angeles County|Rolling Hills Estates city|373|0|4|Anglin|Arianna|3003|CA|F|Daughter|||7|101883 + +3010|OH|Cuyahoga County|Shaker Heights city|374|0|1|Johnson|Francis Wayne|2949|Mississippi|M|Head|||61|101884 +3010|OH|Cuyahoga County|Shaker Heights city|374|0|2|Johnson|Marina|2959|Florida|F|Spouse|||51|101885 +3010|OH|Cuyahoga County|Shaker Heights city|374|0|3|Johnson|Zola Perla|2993|Kansas|F|Daughter|||17|101886 +3010|OH|Cuyahoga County|Shaker Heights city|374|0|4|Johnson|Ozell|2995|California|F|Daughter|||15|101887 +3010|OH|Cuyahoga County|Shaker Heights city|374|0|5|Johnson|Daniela|3001|OH|F|Daughter|||9|101888 +3010|OH|Cuyahoga County|Shaker Heights city|374|0|6|Johnson|Kathi|3003|OH|F|Daughter|||7|101889 +3010|OH|Cuyahoga County|Shaker Heights city|374|0|7|Johnson|Lauryn|3005|OH|F|Daughter|||5|101890 +3010|OH|Cuyahoga County|Shaker Heights city|374|0|8|Johnson|Shandra|3009|OH|F|Daughter|||1|101891 + +3010|KS|Gove County|Grinnell city|375|0|1|Fischel|Jarrett|2939|Alabama|M|Head|||71|101892 +3010|KS|Gove County|Grinnell city|375|0|2|Fischel|Oralia|2941|North Dakota|F|Spouse|||69|101893 +3010|KS|Gove County|Grinnell city|375|0|3|Fischel|Ellsworth|2989|New Mexico|M|Son|||21|101894 +3010|KS|Gove County|Grinnell city|375|0|4|Fischel|Bibi|2999|Mississippi|F|Daughter|||11|101895 +3010|KS|Gove County|Grinnell city|375|0|5|Fischel|Shirlee|3001|KS|F|Daughter|||9|101896 +3010|KS|Gove County|Grinnell city|375|0|6|Fischel|Jarvis Charles|3005|KS|M|Son|||5|101897 + +3010|AZ|Yavapai County|Williamson CDP|376|0|1|Devore|Wilfred|2985|Tennessee|M|Son|||25|101898 +3010|AZ|Yavapai County|Williamson CDP|376|0|2|Devore|Benton|2999|Alaska|M|Son|||11|101899 + +3010|OH|Auglaize County|St. Marys city|377|0|1|Miranda|Marco Lacy|2939|Wyoming|M|Head|||71|101900 +3010|OH|Auglaize County|St. Marys city|377|0|2|Miranda|Salley|2954|Nebraska|F|Spouse|||56|101901 +3010|OH|Auglaize County|St. Marys city|377|0|3|Miranda|Waldo Emmett|2986|Haiti|M|Son|||24|101902 +3010|OH|Auglaize County|St. Marys city|377|0|4|Miranda|Jung|3000|Vermont|F|Daughter|||10|101903 +3010|OH|Auglaize County|St. Marys city|377|0|5|Miranda|Rana Aleisha|3007|OH|F|Daughter|||3|101904 +3010|OH|Auglaize County|St. Marys city|377|0|6|Miranda|Asa|3009|OH|M|Son|||1|101905 + +3010|MN|Pope County|Long Beach city|378|0|1|Benavidez|Garrett Weston|2969|Texas|M|Head|||41|101906 +3010|MN|Pope County|Long Beach city|378|0|2|Benavidez|Novella|2981|Bouvet Island|F|Spouse|||29|101907 +3010|MN|Pope County|Long Beach city|378|0|3|Benavidez|Hugo|3001|MN|M|Son|||9|101908 +3010|MN|Pope County|Long Beach city|378|0|4|Benavidez|Min|3005|MN|F|Daughter|||5|101909 +3010|MN|Pope County|Long Beach city|378|0|5|Benavidez|Mauro Lonny|3007|MN|M|Son|||3|101910 + +3010|FL|Polk County|Medulla CDP|379|0|1|Ricker|Holly|2966|Idaho|F|Daughter|||44|101911 +3010|FL|Polk County|Medulla CDP|379|0|2|Ricker|Tom|2968|Tajikistan|M|Son|||42|101912 +3010|FL|Polk County|Medulla CDP|379|0|3|Ricker|Jammie|2986|Texas|F|Daughter|||24|101913 +3010|FL|Polk County|Medulla CDP|379|0|4|Ricker|Samara|2994|Arkansas|F|Daughter|||16|101914 +3010|FL|Polk County|Medulla CDP|379|0|5|Ricker|Noah|2996|Massachusetts|M|Son|||14|101915 +3010|FL|Polk County|Medulla CDP|379|0|6|Ricker|Milo|2998|Montana|M|Son|||12|101916 +3010|FL|Polk County|Medulla CDP|379|0|7|Ricker|Guadalupe|3000|Massachusetts|F|Daughter|||10|101917 + +3010|MI|Isabella County|Vernon township|380|0|1|Falk|Quincy Everette|2945|Florida|M|Head|||65|101918 +3010|MI|Isabella County|Vernon township|380|0|2|Falk|Tanika|2943|Georgia|F|Spouse|||67|101919 +3010|MI|Isabella County|Vernon township|380|0|3|Falk|Kent|2997|Massachusetts|M|Son|||13|101920 +3010|MI|Isabella County|Vernon township|380|0|4|Falk|Randee|2999|New Mexico|F|Daughter|||11|101921 +3010|MI|Isabella County|Vernon township|380|0|5|Falk|Debrah|3009|MI|F|Daughter|||1|101922 + +3010|LA|Calcasieu Parish|Gillis CDP|381|0|1|Guymon|Hilton|2947|Virginia|M|Head|||63|101923 +3010|LA|Calcasieu Parish|Gillis CDP|381|0|2|Guymon|Tammi|2963|Alaska|F|Spouse|||47|101924 +3010|LA|Calcasieu Parish|Gillis CDP|381|0|3|Guymon|Rosemary|2991|North Carolina|F|Daughter|||19|101925 +3010|LA|Calcasieu Parish|Gillis CDP|381|0|4|Guymon|Sierra|2993|Antarctica|F|Daughter|||17|101926 +3010|LA|Calcasieu Parish|Gillis CDP|381|0|5|Guymon|Michal|2995|Portugal|M|Son|||15|101927 +3010|LA|Calcasieu Parish|Gillis CDP|381|0|6|Guymon|Eloise|2999|Alabama|F|Daughter|||11|101928 +3010|LA|Calcasieu Parish|Gillis CDP|381|0|7|Guymon|Marcos Alvin|3003|LA|M|Son|||7|101929 +3010|LA|Calcasieu Parish|Gillis CDP|381|0|8|Guymon|Cletus|3005|LA|M|Son|||5|101930 + +3010|NY|Montgomery County|Hagaman village|382|0|1|Anstine|Sabra|2966|Utah|F|Spouse|||44|101931 +3010|NY|Montgomery County|Hagaman village|382|0|2|Anstine|Taylor|2986|Alabama|F|Daughter|||24|101932 +3010|NY|Montgomery County|Hagaman village|382|0|3|Anstine|Arnetta|2988|Anguilla|F|Daughter|||22|101933 +3010|NY|Montgomery County|Hagaman village|382|0|4|Anstine|Jeanetta|2994|Wyoming|F|Daughter|||16|101934 +3010|NY|Montgomery County|Hagaman village|382|0|5|Anstine|Frankie|3001|NY|M|Son|||9|101935 +3010|NY|Montgomery County|Hagaman village|382|0|6|Anstine|Lissette|3003|NY|F|Daughter|||7|101936 +3010|NY|Montgomery County|Hagaman village|382|0|7|Anstine|Mckinley Emilio|3005|NY|M|Son|||5|101937 + +3010|FL|Escambia County|Pensacola city|383|0|1|Roeker|Fletcher Wilburn|2949|Minnesota|M|Head|||61|101938 +3010|FL|Escambia County|Pensacola city|383|0|2|Roeker|Joycelyn|2948|Michigan|F|Spouse|||62|101939 +3010|FL|Escambia County|Pensacola city|383|0|3|Roeker|Lien|2998|South Carolina|F|Daughter|||12|101940 +3010|FL|Escambia County|Pensacola city|383|0|4|Roeker|Jolene|3001|PR|F|Daughter|||9|101941 +3010|FL|Escambia County|Pensacola city|383|0|5|Roeker|Mohammad|3003|PR|M|Son|||7|101942 +3010|FL|Escambia County|Pensacola city|383|0|6|Roeker|Cleopatra|3007|FL|F|Daughter|||3|101943 + +3010|MD|Baltimore County|Rosedale CDP|384|0|1|Mcquaid|Hortencia|2976|Colorado|F|Spouse|||34|101944 +3010|MD|Baltimore County|Rosedale CDP|384|0|2|Mcquaid|Lurlene|2996|Wisconsin|F|Daughter|||14|101945 +3010|MD|Baltimore County|Rosedale CDP|384|0|3|Mcquaid|Tanesha Iona|2998|Namibia|F|Daughter|||12|101946 +3010|MD|Baltimore County|Rosedale CDP|384|0|4|Mcquaid|Florinda|3003|MD|F|Daughter|||7|101947 +3010|MD|Baltimore County|Rosedale CDP|384|0|5|Mcquaid|Marvis|3005|MD|F|Daughter|||5|101948 + +3010|NY|Ulster County|Wawarsing town|385|0|1|Gaston|Marvin Freddie|2941|Montana|M|Head|||69|101949 +3010|NY|Ulster County|Wawarsing town|385|0|2|Gaston|John|2955|Tennessee|F|Spouse|||55|101950 +3010|NY|Ulster County|Wawarsing town|385|0|3|Gaston|Lyla Latasha|2977|Guam|F|Daughter|||33|101951 +3010|NY|Ulster County|Wawarsing town|385|0|4|Gaston|Stephani|2987|Arizona|F|Daughter|||23|101952 +3010|NY|Ulster County|Wawarsing town|385|0|5|Gaston|Harry|3001|NY|M|Son|||9|101953 +3010|NY|Ulster County|Wawarsing town|385|0|6|Gaston|Teddy Foster|3007|NY|M|Son|||3|101954 + +3010|VA|Halifax County|Riverdale CDP|386|0|1|Bryan|Elias Deshawn|2948|Delaware|M|Head|||62|101955 +3010|VA|Halifax County|Riverdale CDP|386|0|2|Bryan|Lila|2961|Vermont|F|Spouse|||49|101956 +3010|VA|Halifax County|Riverdale CDP|386|0|3|Bryan|Pearle|2991|North Dakota|F|Daughter|||19|101957 +3010|VA|Halifax County|Riverdale CDP|386|0|4|Bryan|Virgil|2995|Tennessee|M|Son|||15|101958 +3010|VA|Halifax County|Riverdale CDP|386|0|5|Bryan|Latoria Mathilde|2997|New York|F|Daughter|||13|101959 +3010|VA|Halifax County|Riverdale CDP|386|0|6|Bryan|Maxwell|3001|OK|M|Son|||9|101960 + +3010|NC|Harnett County|Dunn city|387|0|1|Burr|Len Doug|2947|Delaware|M|Head|||63|101961 +3010|NC|Harnett County|Dunn city|387|0|2|Burr|Clarinda|3000|Washington|F|Daughter|||10|101962 + +3010|TX|Calhoun County|Seadrift city|388|0|1|Reagan|Tod Kurt|2945|South Carolina|M|Head|||65|101963 +3010|TX|Calhoun County|Seadrift city|388|0|2|Reagan|Avril|2965|Montana|F|Spouse|||45|101964 +3010|TX|Calhoun County|Seadrift city|388|0|3|Reagan|Bobbye|2997|Maryland|F|Daughter|||13|101965 +3010|TX|Calhoun County|Seadrift city|388|0|4|Reagan|Darnell|3001|TX|F|Daughter|||9|101966 +3010|TX|Calhoun County|Seadrift city|388|0|5|Reagan|Stuart|3009|TX|M|Son|||1|101967 + +3010|FL|Palm Beach County|Glen Ridge town|389|0|1|Pop|Jamar Burt|2974|Illinois|M|Head|||36|101968 +3010|FL|Palm Beach County|Glen Ridge town|389|0|2|Pop|Saturnina|2981|Delaware|F|Spouse|||29|101969 +3010|FL|Palm Beach County|Glen Ridge town|389|0|3|Pop|Rema|3001|FL|F|Daughter|||9|101970 +3010|FL|Palm Beach County|Glen Ridge town|389|0|4|Pop|Sanjuanita|3003|FL|F|Daughter|||7|101971 + +3010|MA|Worcester County|Mendon town|390|0|1|Kanoza|Barry Alphonse|2957|Delaware|M|Head|||53|101972 +3010|MA|Worcester County|Mendon town|390|0|2|Kanoza|Lillie|2968|New Hampshire|F|Spouse|||42|101973 +3010|MA|Worcester County|Mendon town|390|0|3|Kanoza|Harry Tanner|2988|Kansas|M|Son|||22|101974 +3010|MA|Worcester County|Mendon town|390|0|4|Kanoza|Leonardo|2996|Florida|M|Son|||14|101975 +3010|MA|Worcester County|Mendon town|390|0|5|Kanoza|Awilda Sidney|3003|MA|F|Daughter|||7|101976 +3010|MA|Worcester County|Mendon town|390|0|6|Kanoza|Cherly|3007|MA|F|Daughter|||3|101977 +3010|MA|Worcester County|Mendon town|390|0|7|Kanoza|Chad|3009|MA|M|Son|||1|101978 + +3010|AZ|Yuma County|Fortuna Foothills CDP|391|0|1|Gershey|Bennett Howard|2946|Somalia|M|Head|||64|101979 +3010|AZ|Yuma County|Fortuna Foothills CDP|391|0|2|Gershey|Hye|2961|Louisiana|F|Spouse|||49|101980 +3010|AZ|Yuma County|Fortuna Foothills CDP|391|0|3|Gershey|James Oliver|2981|Kansas|M|Son|||29|101981 +3010|AZ|Yuma County|Fortuna Foothills CDP|391|0|4|Gershey|Tiara|2989|Tennessee|F|Daughter|||21|101982 +3010|AZ|Yuma County|Fortuna Foothills CDP|391|0|5|Gershey|Maggie|2991|Ohio|F|Daughter|||19|101983 +3010|AZ|Yuma County|Fortuna Foothills CDP|391|0|6|Gershey|Jarrett|2993|Illinois|M|Son|||17|101984 +3010|AZ|Yuma County|Fortuna Foothills CDP|391|0|7|Gershey|Gustavo|3007|AZ|M|Son|||3|101985 +3010|AZ|Yuma County|Fortuna Foothills CDP|391|0|8|Gershey|Cris|3009|AZ|F|Daughter|||1|101986 + +3010|OH|Brown County|St. Martin village|392|0|1|Levy|Lincoln Harland|2958|Ohio|M|Head|||52|101987 +3010|OH|Brown County|St. Martin village|392|0|2|Levy|Neida Jenice|2988|Indiana|F|Daughter|||22|101988 +3010|OH|Brown County|St. Martin village|392|0|3|Levy|Reggie|2998|New Mexico|M|Son|||12|101989 + +3010|CA|Los Angeles County|Temple City city|393|0|1|Neihoff|Tommy Rusty|2952|Nevada|M|Head|||58|101990 +3010|CA|Los Angeles County|Temple City city|393|0|2|Neihoff|Sharmaine|2992|New Hampshire|F|Daughter|||18|101991 +3010|CA|Los Angeles County|Temple City city|393|0|3|Neihoff|Hyman|2994|Congo|M|Son|||16|101992 +3010|CA|Los Angeles County|Temple City city|393|0|4|Neihoff|Sha|2996|Indiana|F|Daughter|||14|101993 + +3010|MI|Wayne County|Lincoln Park city|394|0|1|Sherman|Johnathon Gabriel|2966|Mauritius|M|Head|||44|101994 +3010|MI|Wayne County|Lincoln Park city|394|0|2|Sherman|Bette|2979|Hawaii|F|Spouse|||31|101995 +3010|MI|Wayne County|Lincoln Park city|394|0|3|Sherman|Hermila|3001|MI|F|Daughter|||9|101996 +3010|MI|Wayne County|Lincoln Park city|394|0|4|Sherman|Toni|3005|MI|F|Daughter|||5|101997 +3010|MI|Wayne County|Lincoln Park city|394|0|5|Sherman|Aurea June|3009|MI|F|Daughter|||1|101998 + +3010|NY|Erie County|Alden town|395|0|1|Martinez|Fernando Maximo|2955|Oregon|M|Head|||55|101999 +3010|NY|Erie County|Alden town|395|0|2|Martinez|Nicholas|2985|Wyoming|M|Son|||25|102000 +3010|NY|Erie County|Alden town|395|0|3|Martinez|Scott|2997|Delaware|M|Son|||13|102001 +3010|NY|Erie County|Alden town|395|0|4|Martinez|Eden|2999|Oregon|F|Daughter|||11|102002 + +3010|WY|Carbon County|Arlington CDP|396|0|1|Olquin|Lawrence Doyle|2961|Tennessee|M|Head|||49|102003 +3010|WY|Carbon County|Arlington CDP|396|0|2|Olquin|Maranda|2964|Maldives|F|Spouse|||46|102004 +3010|WY|Carbon County|Arlington CDP|396|0|3|Olquin|Aubrey|2994|Virginia|M|Son|||16|102005 +3010|WY|Carbon County|Arlington CDP|396|0|4|Olquin|Angelo Coy|2996|Texas|M|Son|||14|102006 +3010|WY|Carbon County|Arlington CDP|396|0|5|Olquin|Tinisha Marica|3000|Pennsylvania|F|Daughter|||10|102007 +3010|WY|Carbon County|Arlington CDP|396|0|6|Olquin|Lance|3003|WY|M|Son|||7|102008 +3010|WY|Carbon County|Arlington CDP|396|0|7|Olquin|Tyrone|3007|WY|M|Son|||3|102009 +3010|WY|Carbon County|Arlington CDP|396|0|8|Olquin|Maximo|3009|WY|M|Son|||1|102010 + +3010|NJ|Warren County|Brass Castle CDP|397|0|1|Smith|Alphonso Demarcus|2952|Virginia|M|Head|||58|102011 +3010|NJ|Warren County|Brass Castle CDP|397|0|2|Smith|Ariane|2974|Rhode Island|F|Spouse|||36|102012 +3010|NJ|Warren County|Brass Castle CDP|397|0|3|Smith|Gilbert|2996|Tennessee|M|Son|||14|102013 +3010|NJ|Warren County|Brass Castle CDP|397|0|4|Smith|Calvin|3000|Illinois|M|Son|||10|102014 +3010|NJ|Warren County|Brass Castle CDP|397|0|5|Smith|Kenton|3003|NJ|M|Son|||7|102015 +3010|NJ|Warren County|Brass Castle CDP|397|0|6|Smith|Bryant Harland|3005|NJ|M|Son|||5|102016 + +3010|MN|Meeker County|Watkins city|398|0|1|Banda|Kris Berry|2968|Cyprus|M|Head|||42|102017 +3010|MN|Meeker County|Watkins city|398|0|2|Banda|Jenni|2965|Christmas Island|F|Spouse|||45|102018 +3010|MN|Meeker County|Watkins city|398|0|3|Banda|Amy Niesha|2999|Mississippi|F|Daughter|||11|102019 +3010|MN|Meeker County|Watkins city|398|0|4|Banda|Talisha|3001|MN|F|Daughter|||9|102020 +3010|MN|Meeker County|Watkins city|398|0|5|Banda|Gaston|3003|MN|M|Son|||7|102021 + +3010|WV|Randolph County|Whitmer CDP|399|0|1|Hernandez|Raymond Waldo|2960|Wisconsin|M|Head|||50|102022 +3010|WV|Randolph County|Whitmer CDP|399|0|2|Hernandez|Elin|2980|Missouri|F|Daughter|||30|102023 +3010|WV|Randolph County|Whitmer CDP|399|0|3|Hernandez|Birdie|2988|Sao Tome And Principe|F|Daughter|||22|102024 +3010|WV|Randolph County|Whitmer CDP|399|0|4|Hernandez|Jimmie|2998|Wyoming|M|Son|||12|102025 +3010|WV|Randolph County|Whitmer CDP|399|0|5|Hernandez|Jarod|3003|WV|M|Son|||7|102026 +3010|WV|Randolph County|Whitmer CDP|399|0|6|Hernandez|Jin Oliva|3007|WV|F|Daughter|||3|102027 +3010|WV|Randolph County|Whitmer CDP|399|0|7|Hernandez|Elvis Carmelo|3009|WV|M|Son|||1|102028 + +3010|PA|Perry County|Jackson township|400|0|1|Ross|Michale Mikel|2960|Uzbekistan|M|Head|||50|102029 +3010|PA|Perry County|Jackson township|400|0|2|Ross|Alfredia Maryetta|2980|Norway|F|Spouse|||30|102030 +3010|PA|Perry County|Jackson township|400|0|3|Ross|Refugio|3000|California|F|Daughter|||10|102031 +3010|PA|Perry County|Jackson township|400|0|4|Ross|Cecila Rashida|3001|PA|F|Daughter|||9|102032 +3010|PA|Perry County|Jackson township|400|0|5|Ross|Willis Wally|3007|PA|M|Son|||3|102033 + +3010|CA|San Joaquin County|Taft Mosswood CDP|401|0|1|Paramore|Loren Grady|2954|Pennsylvania|M|Head|||56|102034 +3010|CA|San Joaquin County|Taft Mosswood CDP|401|0|2|Paramore|Petronila|2968|New Mexico|F|Spouse|||42|102035 +3010|CA|San Joaquin County|Taft Mosswood CDP|401|0|3|Paramore|Damion|2988|South Dakota|M|Son|||22|102036 +3010|CA|San Joaquin County|Taft Mosswood CDP|401|0|4|Paramore|Otha|2994|Illinois|F|Daughter|||16|102037 +3010|CA|San Joaquin County|Taft Mosswood CDP|401|0|5|Paramore|Arnetta|2998|New Hampshire|F|Daughter|||12|102038 +3010|CA|San Joaquin County|Taft Mosswood CDP|401|0|6|Paramore|Kristian|3003|ND|F|Daughter|||7|102039 +3010|CA|San Joaquin County|Taft Mosswood CDP|401|0|7|Paramore|Abraham|3007|CA|M|Son|||3|102040 + +3010|NY|Niagara County|Olcott CDP|402|0|1|Stafford|Ocie|2979|Arkansas|F|Head|||31|102041 + +3010|MN|Lake County|Lake No. 2 UT|403|0|1|Pletcher|Shara|2973|Kansas|F|Head|||37|102042 +3010|MN|Lake County|Lake No. 2 UT|403|0|2|Pletcher|Kaley Sophie|2995|Delaware|F|Daughter|||15|102043 +3010|MN|Lake County|Lake No. 2 UT|403|0|3|Pletcher|Brandon|2999|Cameroon|M|Son|||11|102044 + +3010|PA|Fayette County|Bullskin township|404|0|1|Grant|Adalberto Adolph|2943|New Jersey|M|Head|||67|102045 +3010|PA|Fayette County|Bullskin township|404|0|2|Grant|Devin|2948|Wyoming|F|Spouse|||62|102046 +3010|PA|Fayette County|Bullskin township|404|0|3|Grant|Hipolito|2972|Nevada|M|Son|||38|102047 +3010|PA|Fayette County|Bullskin township|404|0|4|Grant|Lidia Taneka|2974|Missouri|F|Daughter|||36|102048 +3010|PA|Fayette County|Bullskin township|404|0|5|Grant|Chante|2986|Ohio|F|Daughter|||24|102049 +3010|PA|Fayette County|Bullskin township|404|0|6|Grant|Ingrid|2996|New Jersey|F|Daughter|||14|102050 +3010|PA|Fayette County|Bullskin township|404|0|7|Grant|Leslie|2998|Tennessee|M|Son|||12|102051 +3010|PA|Fayette County|Bullskin township|404|0|8|Grant|Benjamin|3005|PA|M|Son|||5|102052 +3010|PA|Fayette County|Bullskin township|404|0|9|Grant|Talitha|3009|PA|F|Daughter|||1|102053 + +3010|MA|Suffolk County|Chelsea city|405|0|1|Shawley|Jesse|2996|North Dakota|M|Son|||14|102054 +3010|MA|Suffolk County|Chelsea city|405|0|2|Shawley|Allen|3000|Wisconsin|M|Son|||10|102055 + +3010|MI|Alpena County|Ossineke CDP|406|0|1|Dimmer|Zofia Marica|2976|Colorado|F|Head|||34|102056 +3010|MI|Alpena County|Ossineke CDP|406|0|2|Dimmer|Isaiah|2998|Virginia|M|Son|||12|102057 +3010|MI|Alpena County|Ossineke CDP|406|0|3|Dimmer|Farah|3000|Tunisia|F|Daughter|||10|102058 + +3010|PR|Utuado Municipio|Cayuco comunidad|407|0|1|Milz|Johnny Devin|2967|Oklahoma|M|Head|||43|102059 +3010|PR|Utuado Municipio|Cayuco comunidad|407|0|2|Milz|Nakesha Stefani|2998|Rhode Island|F|Daughter|||12|102060 + +3010|WI|Barron County|Oak Grove town|408|0|1|Smyth|Dario Royce|2953|Wallis And Futuna|M|Head|||57|102061 +3010|WI|Barron County|Oak Grove town|408|0|2|Smyth|Claudette|2965|New York|F|Spouse|||45|102062 +3010|WI|Barron County|Oak Grove town|408|0|3|Smyth|Kareen Gwenn|2987|North Dakota|F|Daughter|||23|102063 +3010|WI|Barron County|Oak Grove town|408|0|4|Smyth|Rosario|2999|Illinois|M|Son|||11|102064 +3010|WI|Barron County|Oak Grove town|408|0|5|Smyth|Philip|3009|WI|M|Son|||1|102065 + +3010|OH|Highland County|Sinking Spring village|409|0|1|Venneman|Bradley Kip|2954|Massachusetts|M|Head|||56|102066 +3010|OH|Highland County|Sinking Spring village|409|0|2|Venneman|Jerold Robin|2990|Tanzania, United Republic Of|M|Son|||20|102067 + +3010|AL|Houston County|Columbia town|410|0|1|Petrelli|Leon Parker|2969|Oklahoma|M|Head|||41|102068 +3010|AL|Houston County|Columbia town|410|0|2|Petrelli|Philomena|2969|Louisiana|F|Spouse|||41|102069 +3010|AL|Houston County|Columbia town|410|0|3|Petrelli|Kenny|2993|Illinois|M|Son|||17|102070 +3010|AL|Houston County|Columbia town|410|0|4|Petrelli|Paulita|2995|Tennessee|F|Daughter|||15|102071 +3010|AL|Houston County|Columbia town|410|0|5|Petrelli|Adelia|2999|Texas|F|Daughter|||11|102072 +3010|AL|Houston County|Columbia town|410|0|6|Petrelli|Roger|3001|AL|M|Son|||9|102073 +3010|AL|Houston County|Columbia town|410|0|7|Petrelli|Thomasina|3003|AL|F|Daughter|||7|102074 +3010|AL|Houston County|Columbia town|410|0|8|Petrelli|Clarisa Zenaida|3005|AL|F|Daughter|||5|102075 +3010|AL|Houston County|Columbia town|410|0|9|Petrelli|Edison|3007|AL|M|Son|||3|102076 + +3010|NY|St. Lawrence County|Massena town|411|0|1|Davis|Larisa|2960|Algeria|F|Spouse|||50|102077 +3010|NY|St. Lawrence County|Massena town|411|0|2|Davis|Doretta|2996|Delaware|F|Daughter|||14|102078 +3010|NY|St. Lawrence County|Massena town|411|0|3|Davis|Valrie|2998|Vermont|F|Daughter|||12|102079 +3010|NY|St. Lawrence County|Massena town|411|0|4|Davis|Shawnna|3001|NY|F|Daughter|||9|102080 +3010|NY|St. Lawrence County|Massena town|411|0|5|Davis|Jaclyn|3003|NY|F|Daughter|||7|102081 +3010|NY|St. Lawrence County|Massena town|411|0|6|Davis|Keeley Gemma|3009|NY|F|Daughter|||1|102082 + +3010|IL|Cook County|Streamwood village|412|0|1|Crum|Damion|2956|South Carolina|M|Head|||54|102083 +3010|IL|Cook County|Streamwood village|412|0|2|Crum|Pennie|2973|Lithuania|F|Spouse|||37|102084 +3010|IL|Cook County|Streamwood village|412|0|3|Crum|Broderick|2993|Nebraska|M|Son|||17|102085 +3010|IL|Cook County|Streamwood village|412|0|4|Crum|Colton|2995|Texas|M|Son|||15|102086 +3010|IL|Cook County|Streamwood village|412|0|5|Crum|Shaunte|2999|Virgin Islands, British|F|Daughter|||11|102087 +3010|IL|Cook County|Streamwood village|412|0|6|Crum|Sergio Mose|3001|IL|M|Son|||9|102088 +3010|IL|Cook County|Streamwood village|412|0|7|Crum|Charis|3007|IL|F|Daughter|||3|102089 +3010|IL|Cook County|Streamwood village|412|0|8|Crum|Celsa|3009|IL|F|Daughter|||1|102090 + +3010|WA|Yakima County|Tieton town|413|0|1|Nozick|Linwood Cecil|2958|Pennsylvania|M|Head|||52|102091 +3010|WA|Yakima County|Tieton town|413|0|2|Nozick|Tyson Collin|2992|Michigan|M|Son|||18|102092 +3010|WA|Yakima County|Tieton town|413|0|3|Nozick|Bianca|2996|Maryland|F|Daughter|||14|102093 +3010|WA|Yakima County|Tieton town|413|0|4|Nozick|Lavonna|2998|Albania|F|Daughter|||12|102094 + +3010|CA|San Bernardino County|Upland city|414|0|1|Ramirez|Man Geoffrey|2953|Michigan|M|Head|||57|102095 +3010|CA|San Bernardino County|Upland city|414|0|2|Ramirez|Annabelle|2969|Minnesota|F|Spouse|||41|102096 +3010|CA|San Bernardino County|Upland city|414|0|3|Ramirez|Roberto|2989|Missouri|M|Son|||21|102097 +3010|CA|San Bernardino County|Upland city|414|0|4|Ramirez|Deangelo|2991|Arkansas|M|Son|||19|102098 +3010|CA|San Bernardino County|Upland city|414|0|5|Ramirez|Marcel|2999|West Virginia|M|Son|||11|102099 +3010|CA|San Bernardino County|Upland city|414|0|6|Ramirez|Conrad|3003|CA|M|Son|||7|102100 +3010|CA|San Bernardino County|Upland city|414|0|7|Ramirez|Garry|3009|CA|M|Son|||1|102101 + +3010|NE|Frontier County|Stockville village|415|0|1|Gittelman|Elvin Whitney|2961|Utah|M|Head|||49|102102 +3010|NE|Frontier County|Stockville village|415|0|2|Gittelman|Addie|2997|Idaho|F|Daughter|||13|102103 +3010|NE|Frontier County|Stockville village|415|0|3|Gittelman|Gaston|2999|Indiana|M|Son|||11|102104 +3010|NE|Frontier County|Stockville village|415|0|4|Gittelman|Toshia|3001|NE|F|Daughter|||9|102105 +3010|NE|Frontier County|Stockville village|415|0|5|Gittelman|Samuel|3003|NE|M|Son|||7|102106 +3010|NE|Frontier County|Stockville village|415|0|6|Gittelman|Troy|3005|NE|M|Son|||5|102107 +3010|NE|Frontier County|Stockville village|415|0|7|Gittelman|Edwin|3009|NE|M|Son|||1|102108 + +3010|MI|Wayne County|Grosse Ile township|416|0|1|Snow|Christian Brendon|2957|Virginia|M|Head|||53|102109 +3010|MI|Wayne County|Grosse Ile township|416|0|2|Snow|Lucia Jacquelynn|2970|Georgia|F|Spouse|||40|102110 +3010|MI|Wayne County|Grosse Ile township|416|0|3|Snow|Gracie|2996|Sao Tome And Principe|F|Daughter|||14|102111 +3010|MI|Wayne County|Grosse Ile township|416|0|4|Snow|Margert|3005|MI|F|Daughter|||5|102112 +3010|MI|Wayne County|Grosse Ile township|416|0|5|Snow|Galen|3007|MI|M|Son|||3|102113 +3010|MI|Wayne County|Grosse Ile township|416|0|6|Snow|Yahaira|3009|MI|F|Daughter|||1|102114 + +3010|WI|Juneau County|Kildare town|417|0|1|Chesher|Dong Wyatt|2959|Connecticut|M|Head|||51|102115 +3010|WI|Juneau County|Kildare town|417|0|2|Chesher|Julian|3000|North Carolina|F|Daughter|||10|102116 +3010|WI|Juneau County|Kildare town|417|0|3|Chesher|Steve|3007|WI|M|Son|||3|102117 +3010|WI|Juneau County|Kildare town|417|0|4|Chesher|Sharon|3009|WI|F|Daughter|||1|102118 + +3010|TX|Kendall County|Comfort CDP|418|0|1|Moraga|Emmanuel Lenard|2949|French Southern Territories|M|Head|||61|102119 +3010|TX|Kendall County|Comfort CDP|418|0|2|Moraga|Joellen Miyoko|2967|Missouri|F|Spouse|||43|102120 +3010|TX|Kendall County|Comfort CDP|418|0|3|Moraga|Georgann|2995|Guinea|F|Daughter|||15|102121 +3010|TX|Kendall County|Comfort CDP|418|0|4|Moraga|Sunday|2999|Rhode Island|F|Daughter|||11|102122 +3010|TX|Kendall County|Comfort CDP|418|0|5|Moraga|Jacob|3001|TX|M|Son|||9|102123 +3010|TX|Kendall County|Comfort CDP|418|0|6|Moraga|Kris|3007|TX|M|Son|||3|102124 +3010|TX|Kendall County|Comfort CDP|418|0|7|Moraga|Dung Tisha|3009|TX|F|Daughter|||1|102125 + +3010|KS|Cowley County|Cambridge city|419|0|1|Shatto|Logan Elmer|2941|Arizona|M|Head|||69|102126 +3010|KS|Cowley County|Cambridge city|419|0|2|Shatto|Dusty|2984|Virginia|F|Daughter|||26|102127 +3010|KS|Cowley County|Cambridge city|419|0|3|Shatto|Luella|2998|Iraq|F|Daughter|||12|102128 +3010|KS|Cowley County|Cambridge city|419|0|4|Shatto|Jonah|3000|New Jersey|M|Son|||10|102129 + +3010|MN|Becker County|White Earth township|420|0|1|Gleaton|Lakiesha|2974|Maine|F|Head|||36|102130 +3010|MN|Becker County|White Earth township|420|0|2|Gleaton|Raphael|2996|Wyoming|M|Son|||14|102131 + +3010|MO|St. Louis County|Twin Oaks village|421|0|1|Desomma|Cliff|2951|Austria|M|Head|||59|102132 +3010|MO|St. Louis County|Twin Oaks village|421|0|2|Desomma|Miranda|2970|South Carolina|F|Spouse|||40|102133 +3010|MO|St. Louis County|Twin Oaks village|421|0|3|Desomma|Grisel Beulah|2990|New York|F|Daughter|||20|102134 +3010|MO|St. Louis County|Twin Oaks village|421|0|4|Desomma|Xavier|3005|TX|M|Son|||5|102135 +3010|MO|St. Louis County|Twin Oaks village|421|0|5|Desomma|Abbie Chong|3009|MO|F|Daughter|||1|102136 + +3010|SC|Aiken County, Edgefield County|North Augusta city|422|0|1|Williams|Seth Rich|2971|Estonia|M|Head|||39|102137 +3010|SC|Aiken County, Edgefield County|North Augusta city|422|0|2|Williams|Shonda|2977|Kansas|F|Spouse|||33|102138 +3010|SC|Aiken County, Edgefield County|North Augusta city|422|0|3|Williams|Ling|2997|Michigan|F|Daughter|||13|102139 +3010|SC|Aiken County, Edgefield County|North Augusta city|422|0|4|Williams|Omega|2999|Rhode Island|F|Daughter|||11|102140 +3010|SC|Aiken County, Edgefield County|North Augusta city|422|0|5|Williams|Bruce|3001|SC|M|Son|||9|102141 +3010|SC|Aiken County, Edgefield County|North Augusta city|422|0|6|Williams|Jerilyn|3007|SC|F|Daughter|||3|102142 + +3010|AK|Bethel Census Area|Oscarville CDP|423|0|1|Smith|Roxann|2966|Iowa|F|Spouse|||44|102143 +3010|AK|Bethel Census Area|Oscarville CDP|423|0|2|Smith|Maddie|2996|Kansas|F|Daughter|||14|102144 +3010|AK|Bethel Census Area|Oscarville CDP|423|0|3|Smith|Roderick Andreas|2998|Massachusetts|M|Son|||12|102145 +3010|AK|Bethel Census Area|Oscarville CDP|423|0|4|Smith|Carlo Brett|3007|AK|M|Son|||3|102146 + +3010|CA|San Bernardino County|Twentynine Palms city|424|0|1|Wurster|Laurence Neil|2940|Egypt|M|Head|||70|102147 +3010|CA|San Bernardino County|Twentynine Palms city|424|0|2|Wurster|Ray Stacy|2990|Serbia|M|Son|||20|102148 +3010|CA|San Bernardino County|Twentynine Palms city|424|0|3|Wurster|Evangelina|2998|Georgia|F|Daughter|||12|102149 +3010|CA|San Bernardino County|Twentynine Palms city|424|0|4|Wurster|Pasquale|3001|CA|M|Son|||9|102150 +3010|CA|San Bernardino County|Twentynine Palms city|424|0|5|Wurster|Tierra Ona|3005|CA|F|Daughter|||5|102151 + +3010|TX|Hamilton County|Hamilton city|425|0|1|Purtle|Gracia|2963|West Virginia|F|Head|||47|102152 +3010|TX|Hamilton County|Hamilton city|425|0|2|Purtle|Eliz Melba|2991|Minnesota|F|Daughter|||19|102153 +3010|TX|Hamilton County|Hamilton city|425|0|3|Purtle|Deidre Betty|2997|Mississippi|F|Daughter|||13|102154 +3010|TX|Hamilton County|Hamilton city|425|0|4|Purtle|Josiah|2999|Burkina Faso|M|Son|||11|102155 + +3010|VT|Washington County|Plainfield CDP|426|0|1|Seen|Clark Weston|2948|Tajikistan|M|Head|||62|102156 +3010|VT|Washington County|Plainfield CDP|426|0|2|Seen|Lelia|2985|Mississippi|F|Daughter|||25|102157 +3010|VT|Washington County|Plainfield CDP|426|0|3|Seen|Minh|3001|MI|M|Son|||9|102158 +3010|VT|Washington County|Plainfield CDP|426|0|4|Seen|Elenor|3003|MI|F|Daughter|||7|102159 +3010|VT|Washington County|Plainfield CDP|426|0|5|Seen|Mike|3009|VT|M|Son|||1|102160 + +3010|MO|St. Louis County|Riverview village|427|0|1|Broussard|Dominique Buster|2973|Massachusetts|M|Head|||37|102161 +3010|MO|St. Louis County|Riverview village|427|0|2|Broussard|Daniella|2975|Arkansas|F|Spouse|||35|102162 +3010|MO|St. Louis County|Riverview village|427|0|3|Broussard|Olympia|2995|Maldives|F|Daughter|||15|102163 +3010|MO|St. Louis County|Riverview village|427|0|4|Broussard|Cyndi|2997|Arizona|F|Daughter|||13|102164 +3010|MO|St. Louis County|Riverview village|427|0|5|Broussard|Sid|2999|Maine|M|Son|||11|102165 +3010|MO|St. Louis County|Riverview village|427|0|6|Broussard|Suzanne|3003|MO|F|Daughter|||7|102166 +3010|MO|St. Louis County|Riverview village|427|0|7|Broussard|Julietta Rena|3007|MO|F|Daughter|||3|102167 + +3010|MN|Goodhue County, Rice County|Dennison city|428|0|1|Szczygiel|Noe|2959|Poland|M|Head|||51|102168 +3010|MN|Goodhue County, Rice County|Dennison city|428|0|2|Szczygiel|Ila|2974|New York|F|Spouse|||36|102169 +3010|MN|Goodhue County, Rice County|Dennison city|428|0|3|Szczygiel|Allena Majorie|2994|Texas|F|Daughter|||16|102170 +3010|MN|Goodhue County, Rice County|Dennison city|428|0|4|Szczygiel|Howard|2996|Estonia|M|Son|||14|102171 +3010|MN|Goodhue County, Rice County|Dennison city|428|0|5|Szczygiel|Kenton|2998|Indiana|M|Son|||12|102172 +3010|MN|Goodhue County, Rice County|Dennison city|428|0|6|Szczygiel|Zachery|3000|Peru|M|Son|||10|102173 +3010|MN|Goodhue County, Rice County|Dennison city|428|0|7|Szczygiel|Levi|3005|MN|M|Son|||5|102174 +3010|MN|Goodhue County, Rice County|Dennison city|428|0|8|Szczygiel|Lawana|3007|MN|F|Daughter|||3|102175 + +3010|NY|Erie County|Buffalo city|429|0|1|Cartwright|Boyd Merlin|2943|Reunion|M|Head|||67|102176 +3010|NY|Erie County|Buffalo city|429|0|2|Cartwright|Hugo|2987|Kentucky|M|Son|||23|102177 +3010|NY|Erie County|Buffalo city|429|0|3|Cartwright|Freeman|2989|North Dakota|M|Son|||21|102178 +3010|NY|Erie County|Buffalo city|429|0|4|Cartwright|Jayme|2995|New Hampshire|F|Daughter|||15|102179 +3010|NY|Erie County|Buffalo city|429|0|5|Cartwright|Annamarie|2997|New York|F|Daughter|||13|102180 +3010|NY|Erie County|Buffalo city|429|0|6|Cartwright|Heath Benton|3001|NY|M|Son|||9|102181 + +3010|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|1|Lanctot|Rolland Mikel|2961|Washington|M|Head|||49|102182 +3010|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|2|Lanctot|Else|2966|Tennessee|F|Spouse|||44|102183 +3010|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|3|Lanctot|Forest|2986|West Virginia|M|Son|||24|102184 +3010|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|4|Lanctot|Jannie Manuela|2998|Louisiana|F|Daughter|||12|102185 +3010|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|5|Lanctot|Maren Joellen|3000|Cape Verde|F|Daughter|||10|102186 +3010|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|6|Lanctot|Gil|3003|AL|M|Son|||7|102187 +3010|AL|Elmore County, Tallapoosa County|Tallassee city|430|0|7|Lanctot|Yan Oretha|3007|AL|F|Daughter|||3|102188 + +3010|MI|Osceola County|Tustin village|431|0|1|Alamillo|Franklin Davis|2944|Arizona|M|Head|||66|102189 +3010|MI|Osceola County|Tustin village|431|0|2|Alamillo|Bok|2955|New York|F|Spouse|||55|102190 +3010|MI|Osceola County|Tustin village|431|0|3|Alamillo|Renea|2987|Pennsylvania|F|Daughter|||23|102191 +3010|MI|Osceola County|Tustin village|431|0|4|Alamillo|James|2997|Delaware|M|Son|||13|102192 +3010|MI|Osceola County|Tustin village|431|0|5|Alamillo|Morris Jess|3003|MI|M|Son|||7|102193 +3010|MI|Osceola County|Tustin village|431|0|6|Alamillo|Benito|3009|MI|M|Son|||1|102194 + +3010|IL|Clark County|Martinsville city|432|0|1|Perrotti|Robert Clair|2951|Uruguay|M|Head|||59|102195 +3010|IL|Clark County|Martinsville city|432|0|2|Perrotti|Shin|2957|Tennessee|F|Spouse|||53|102196 +3010|IL|Clark County|Martinsville city|432|0|3|Perrotti|Antonetta|2985|Pennsylvania|F|Daughter|||25|102197 +3010|IL|Clark County|Martinsville city|432|0|4|Perrotti|Roslyn|3003|IL|F|Daughter|||7|102198 +3010|IL|Clark County|Martinsville city|432|0|5|Perrotti|Marcy|3009|IL|F|Daughter|||1|102199 + +3010|IN|Decatur County|Westport town|433|0|1|Rawls|Perry Stanford|2962|Idaho|M|Head|||48|102200 +3010|IN|Decatur County|Westport town|433|0|2|Rawls|Pa|2961|Montana|F|Spouse|||49|102201 +3010|IN|Decatur County|Westport town|433|0|3|Rawls|Gertrud|2981|Nebraska|F|Daughter|||29|102202 +3010|IN|Decatur County|Westport town|433|0|4|Rawls|Damaris|3001|IN|F|Daughter|||9|102203 +3010|IN|Decatur County|Westport town|433|0|5|Rawls|Lawrence|3003|IN|M|Son|||7|102204 +3010|IN|Decatur County|Westport town|433|0|6|Rawls|Elda Charlie|3007|IN|F|Daughter|||3|102205 + +3010|OH|Trumbull County|Newton Falls city|434|0|1|Hilliard|Jeffrey Wilmer|2964|West Virginia|M|Head|||46|102206 +3010|OH|Trumbull County|Newton Falls city|434|0|2|Hilliard|Rosario|2975|Oregon|F|Spouse|||35|102207 +3010|OH|Trumbull County|Newton Falls city|434|0|3|Hilliard|Oswaldo|2997|North Dakota|M|Son|||13|102208 +3010|OH|Trumbull County|Newton Falls city|434|0|4|Hilliard|Lon|3001|OH|M|Son|||9|102209 + +3010|TX|Cooke County|Lake Kiowa CDP|435|0|1|Hughes|Bao|2983|Oklahoma|F|Daughter|||27|102210 +3010|TX|Cooke County|Lake Kiowa CDP|435|0|2|Hughes|Walker|2997|Oregon|M|Son|||13|102211 + +3010|KY|Jefferson County|Lynnview city|436|0|1|Green|Augustine|2943|Michigan|M|Head|||67|102212 +3010|KY|Jefferson County|Lynnview city|436|0|2|Green|Santiago|2969|New Jersey|M|Son|||41|102213 +3010|KY|Jefferson County|Lynnview city|436|0|3|Green|Jene|2971|Kansas|F|Daughter|||39|102214 +3010|KY|Jefferson County|Lynnview city|436|0|4|Green|Patricia|2985|Alabama|M|Son|||25|102215 + +3010|CA|Contra Costa County|Montalvin Manor CDP|437|0|1|Mangiamele|Eusebio Renato|2956|Arizona|M|Head|||54|102216 +3010|CA|Contra Costa County|Montalvin Manor CDP|437|0|2|Mangiamele|Josie|2957|Delaware|F|Spouse|||53|102217 +3010|CA|Contra Costa County|Montalvin Manor CDP|437|0|3|Mangiamele|Lesley|2985|Arkansas|M|Son|||25|102218 +3010|CA|Contra Costa County|Montalvin Manor CDP|437|0|4|Mangiamele|Lucas|2987|Vermont|M|Son|||23|102219 +3010|CA|Contra Costa County|Montalvin Manor CDP|437|0|5|Mangiamele|Quentin Diego|2989|Pennsylvania|M|Son|||21|102220 +3010|CA|Contra Costa County|Montalvin Manor CDP|437|0|6|Mangiamele|Jung|2995|Poland|F|Daughter|||15|102221 +3010|CA|Contra Costa County|Montalvin Manor CDP|437|0|7|Mangiamele|Bryant|3001|CA|M|Son|||9|102222 +3010|CA|Contra Costa County|Montalvin Manor CDP|437|0|8|Mangiamele|Katheryn|3007|CA|F|Daughter|||3|102223 +3010|CA|Contra Costa County|Montalvin Manor CDP|437|0|9|Mangiamele|Rigoberto|3009|CA|M|Son|||1|102224 + +3010|NH|Rockingham County|Salem town|438|0|1|Mead|Marlin|2956|Pennsylvania|F|Spouse|||54|102225 +3010|NH|Rockingham County|Salem town|438|0|2|Mead|Tommie Stephan|2976|Nevada|M|Son|||34|102226 +3010|NH|Rockingham County|Salem town|438|0|3|Mead|Lyman|2992|South Carolina|M|Son|||18|102227 +3010|NH|Rockingham County|Salem town|438|0|4|Mead|Kaylee|2994|Connecticut|F|Daughter|||16|102228 +3010|NH|Rockingham County|Salem town|438|0|5|Mead|Jewel|2998|Guinea|M|Son|||12|102229 +3010|NH|Rockingham County|Salem town|438|0|6|Mead|Winnifred|3001|NH|F|Daughter|||9|102230 + +3010|HI|Honolulu County|Pearl City CDP|439|0|1|Dunn|Dwain|2978|Maine|M|Head|||32|102231 +3010|HI|Honolulu County|Pearl City CDP|439|0|2|Dunn|Twanda|2983|Massachusetts|F|Spouse|||27|102232 +3010|HI|Honolulu County|Pearl City CDP|439|0|3|Dunn|Neil Jewell|3001|HI|M|Son|||9|102233 +3010|HI|Honolulu County|Pearl City CDP|439|0|4|Dunn|Yang|3003|HI|F|Daughter|||7|102234 +3010|HI|Honolulu County|Pearl City CDP|439|0|5|Dunn|Kortney|3009|HI|F|Daughter|||1|102235 + +3010|AK|Northwest Arctic Borough|Kivalina city|440|0|1|Wilson|Brandon Ty|2953|Colorado|M|Head|||57|102236 +3010|AK|Northwest Arctic Borough|Kivalina city|440|0|2|Wilson|Shakira|2953|Arizona|F|Spouse|||57|102237 +3010|AK|Northwest Arctic Borough|Kivalina city|440|0|3|Wilson|Fritz|2981|Utah|M|Son|||29|102238 +3010|AK|Northwest Arctic Borough|Kivalina city|440|0|4|Wilson|Olympia|2989|Hawaii|F|Daughter|||21|102239 +3010|AK|Northwest Arctic Borough|Kivalina city|440|0|5|Wilson|Quincy|3007|AK|M|Son|||3|102240 + +3010|VA|Prince William County|Dale City CDP|441|0|1|Austill|Katheleen|2961|Louisiana|F|Head|||49|102241 +3010|VA|Prince William County|Dale City CDP|441|0|2|Austill|Quentin|2985|Iowa|M|Son|||25|102242 +3010|VA|Prince William County|Dale City CDP|441|0|3|Austill|Nannette|2991|Congo, The Democratic Republic Of The|F|Daughter|||19|102243 +3010|VA|Prince William County|Dale City CDP|441|0|4|Austill|Kimberlie|2997|Louisiana|F|Daughter|||13|102244 + +3010|PA|Chester County|Coatesville city|442|0|1|Fink|Lance|2954|Colorado|M|Head|||56|102245 +3010|PA|Chester County|Coatesville city|442|0|2|Fink|Davida|2951|Arkansas|F|Spouse|||59|102246 +3010|PA|Chester County|Coatesville city|442|0|3|Fink|Walton|2995|Mauritius|M|Son|||15|102247 +3010|PA|Chester County|Coatesville city|442|0|4|Fink|Krystina|2997|Georgia|F|Daughter|||13|102248 +3010|PA|Chester County|Coatesville city|442|0|5|Fink|Antonio Chia|3005|PA|F|Daughter|||5|102249 + +3010|CA|Mendocino County|Calpella CDP|443|0|1|Leroux|Leonard Frederick|2966|Vermont|M|Head|||44|102250 +3010|CA|Mendocino County|Calpella CDP|443|0|2|Leroux|Etha|2999|Uruguay|F|Daughter|||11|102251 + +3010|VT|Essex County|Avery's gore|444|0|1|Belchior|Ned|2982|Arkansas|M|Head|||28|102252 +3010|VT|Essex County|Avery's gore|444|0|2|Belchior|Hollie|2982|West Virginia|F|Spouse|||28|102253 +3010|VT|Essex County|Avery's gore|444|0|3|Belchior|Gussie|3001|VT|F|Daughter|||9|102254 +3010|VT|Essex County|Avery's gore|444|0|4|Belchior|Shasta|3003|VT|F|Daughter|||7|102255 +3010|VT|Essex County|Avery's gore|444|0|5|Belchior|Lacie|3005|VT|F|Daughter|||5|102256 +3010|VT|Essex County|Avery's gore|444|0|6|Belchior|Lyda|3007|VT|F|Daughter|||3|102257 + +3010|IL|Knox County|Williamsfield village|445|0|1|Pearce|Haywood Desmond|2960|Arizona|M|Head|||50|102258 +3010|IL|Knox County|Williamsfield village|445|0|2|Pearce|Starr|2991|West Virginia|F|Daughter|||19|102259 +3010|IL|Knox County|Williamsfield village|445|0|3|Pearce|Suzanne|2995|New Jersey|F|Daughter|||15|102260 +3010|IL|Knox County|Williamsfield village|445|0|4|Pearce|Izetta|2999|California|F|Daughter|||11|102261 + +3010|CO|Ouray County|Ridgway town|446|0|1|Cavanaugh|Marshall Valentine|2938|Virginia|M|Head|||72|102262 +3010|CO|Ouray County|Ridgway town|446|0|2|Cavanaugh|Makeda|2945|Kansas|F|Spouse|||65|102263 +3010|CO|Ouray County|Ridgway town|446|0|3|Cavanaugh|Holli|2973|Taiwan, Province Of China|F|Daughter|||37|102264 +3010|CO|Ouray County|Ridgway town|446|0|4|Cavanaugh|Elicia Mee|2979|Faroe Islands|F|Daughter|||31|102265 +3010|CO|Ouray County|Ridgway town|446|0|5|Cavanaugh|Catharine|2989|Wisconsin|F|Daughter|||21|102266 +3010|CO|Ouray County|Ridgway town|446|0|6|Cavanaugh|Joan|2991|Macau|F|Daughter|||19|102267 +3010|CO|Ouray County|Ridgway town|446|0|7|Cavanaugh|Herman|2995|South Dakota|M|Son|||15|102268 +3010|CO|Ouray County|Ridgway town|446|0|8|Cavanaugh|Garth|2997|Brazil|M|Son|||13|102269 +3010|CO|Ouray County|Ridgway town|446|0|9|Cavanaugh|Marcel Tim|3007|CO|M|Son|||3|102270 + +3010|PA|Cambria County|Daisytown borough|447|0|1|Assum|Angel Hilario|2944|Massachusetts|M|Head|||66|102271 +3010|PA|Cambria County|Daisytown borough|447|0|2|Assum|Clarice|2954|Missouri|F|Spouse|||56|102272 +3010|PA|Cambria County|Daisytown borough|447|0|3|Assum|Ed|3000|Wyoming|M|Son|||10|102273 +3010|PA|Cambria County|Daisytown borough|447|0|4|Assum|Leone|3007|PA|F|Daughter|||3|102274 + +3010|CO|Lake County|Leadville city|448|0|1|Beltrain|Jayson Tyson|2937|New York|M|Head|||73|102275 +3010|CO|Lake County|Leadville city|448|0|2|Beltrain|Terence|2974|Utah|M|Son|||36|102276 +3010|CO|Lake County|Leadville city|448|0|3|Beltrain|Randell|2994|California|M|Son|||16|102277 +3010|CO|Lake County|Leadville city|448|0|4|Beltrain|Thomas|2996|Iowa|M|Son|||14|102278 +3010|CO|Lake County|Leadville city|448|0|5|Beltrain|Lucio|2998|Illinois|M|Son|||12|102279 + +3010|WI|Outagamie County|Seymour town|449|0|1|Haque|Michell|2971|Nevada|F|Head|||39|102280 +3010|WI|Outagamie County|Seymour town|449|0|2|Haque|Lavonna|2993|Montana|F|Daughter|||17|102281 +3010|WI|Outagamie County|Seymour town|449|0|3|Haque|Antonia|2997|New Mexico|M|Son|||13|102282 +3010|WI|Outagamie County|Seymour town|449|0|4|Haque|Estefana|2999|Mississippi|F|Daughter|||11|102283 + +3010|PA|Centre County|Philipsburg borough|450|0|1|Fuller|Samuel Phil|2959|Dominican Republic|M|Head|||51|102284 +3010|PA|Centre County|Philipsburg borough|450|0|2|Fuller|Mathilda Katrice|2958|New Jersey|F|Spouse|||52|102285 +3010|PA|Centre County|Philipsburg borough|450|0|3|Fuller|Sharan|2988|Virginia|F|Daughter|||22|102286 +3010|PA|Centre County|Philipsburg borough|450|0|4|Fuller|Stanford|2990|Papua New Guinea|M|Son|||20|102287 +3010|PA|Centre County|Philipsburg borough|450|0|5|Fuller|Tana|2996|New York|F|Daughter|||14|102288 +3010|PA|Centre County|Philipsburg borough|450|0|6|Fuller|Sachiko|3007|PA|F|Daughter|||3|102289 +3010|PA|Centre County|Philipsburg borough|450|0|7|Fuller|Hassan|3009|PA|M|Son|||1|102290 + +3010|OK|Choctaw County|Sawyer town|451|0|1|Rammer|Stevie Elmo|2951|Maine|M|Head|||59|102291 +3010|OK|Choctaw County|Sawyer town|451|0|2|Rammer|Gene|2985|Rhode Island|F|Daughter|||25|102292 +3010|OK|Choctaw County|Sawyer town|451|0|3|Rammer|Meda|2999|Tennessee|F|Daughter|||11|102293 + +3010|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|1|Vezina|Shawn Jefferey|2947|Wyoming|M|Head|||63|102294 +3010|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|2|Vezina|Charlette|2946|Tennessee|F|Spouse|||64|102295 +3010|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|3|Vezina|Johnna|2968|Missouri|F|Daughter|||42|102296 +3010|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|4|Vezina|Ronald|3000|Alabama|M|Son|||10|102297 +3010|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|5|Vezina|Tad Ferdinand|3003|WI|M|Son|||7|102298 +3010|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|6|Vezina|Albert|3007|WI|M|Son|||3|102299 +3010|WI|Adams County, Columbia County, Juneau County, Sauk County|Wisconsin Dells city|452|0|7|Vezina|Cletus|3009|WI|M|Son|||1|102300 + +3010|GA|Henry County, Spalding County|Heron Bay CDP|453|0|1|Fullenwider|Woodrow Raymon|2946|New Hampshire|M|Head|||64|102301 +3010|GA|Henry County, Spalding County|Heron Bay CDP|453|0|2|Fullenwider|Kasey|2994|Utah|M|Son|||16|102302 +3010|GA|Henry County, Spalding County|Heron Bay CDP|453|0|3|Fullenwider|Velda|2996|Virginia|F|Daughter|||14|102303 + +3010|AR|Searcy County|Leslie city|454|0|1|Cameron|Hershel Carlton|2958|Virginia|M|Head|||52|102304 +3010|AR|Searcy County|Leslie city|454|0|2|Cameron|Florencio|3000|Michigan|M|Son|||10|102305 + +3010|MN|St. Louis County|Ellsburg township|455|0|1|Olson|Esteban Reggie|2969|Connecticut|M|Head|||41|102306 +3010|MN|St. Louis County|Ellsburg township|455|0|2|Olson|Bao|2981|Delaware|F|Spouse|||29|102307 +3010|MN|St. Louis County|Ellsburg township|455|0|3|Olson|Kasha|3001|OH|F|Daughter|||9|102308 +3010|MN|St. Louis County|Ellsburg township|455|0|4|Olson|Lowell|3005|OH|M|Son|||5|102309 +3010|MN|St. Louis County|Ellsburg township|455|0|5|Olson|Corie|3007|MN|F|Daughter|||3|102310 +3010|MN|St. Louis County|Ellsburg township|455|0|6|Olson|Deena|3009|MN|F|Daughter|||1|102311 + +3010|PA|Butler County|Lancaster township|456|0|1|Marra|Charlie Enoch|2974|Alabama|M|Head|||36|102312 +3010|PA|Butler County|Lancaster township|456|0|2|Marra|Floy|3000|Montana|F|Daughter|||10|102313 + +3010|WI|Shawano County|Mattoon village|457|0|1|Lele|Josiah Leonard|2950|Arkansas|M|Head|||60|102314 +3010|WI|Shawano County|Mattoon village|457|0|2|Lele|Mirian|2961|Minnesota|F|Spouse|||49|102315 +3010|WI|Shawano County|Mattoon village|457|0|3|Lele|Ollie|2985|Texas|M|Son|||25|102316 +3010|WI|Shawano County|Mattoon village|457|0|4|Lele|Angeline|2987|Azerbaijan|F|Daughter|||23|102317 +3010|WI|Shawano County|Mattoon village|457|0|5|Lele|Catina|2997|Nevada|F|Daughter|||13|102318 +3010|WI|Shawano County|Mattoon village|457|0|6|Lele|Herminia|3005|WI|F|Daughter|||5|102319 +3010|WI|Shawano County|Mattoon village|457|0|7|Lele|Almeta|3007|WI|F|Daughter|||3|102320 +3010|WI|Shawano County|Mattoon village|457|0|8|Lele|Troy|3009|WI|M|Son|||1|102321 + +3010|NY|Dutchess County|Poughkeepsie town|458|0|1|Dancy|Jerome Jules|2951|Alaska|M|Head|||59|102322 +3010|NY|Dutchess County|Poughkeepsie town|458|0|2|Dancy|Natasha|2975|New York|F|Spouse|||35|102323 +3010|NY|Dutchess County|Poughkeepsie town|458|0|3|Dancy|Elroy|2995|Namibia|M|Son|||15|102324 +3010|NY|Dutchess County|Poughkeepsie town|458|0|4|Dancy|Luigi|3001|NY|M|Son|||9|102325 + +3010|MN|Mille Lacs County|Dailey township|459|0|1|Foor|Stuart Rory|2960|Svalbard And Jan Mayen|M|Head|||50|102326 + +3010|KS|Crawford County|McCune city|460|0|1|Graves|Warren Issac|2940|Kentucky|M|Head|||70|102327 +3010|KS|Crawford County|McCune city|460|0|2|Graves|Deanna|2953|Massachusetts|F|Spouse|||57|102328 +3010|KS|Crawford County|McCune city|460|0|3|Graves|Joel|2999|Reunion|M|Son|||11|102329 +3010|KS|Crawford County|McCune city|460|0|4|Graves|Bernard|3001|KS|M|Son|||9|102330 +3010|KS|Crawford County|McCune city|460|0|5|Graves|Khadijah|3003|KS|F|Daughter|||7|102331 +3010|KS|Crawford County|McCune city|460|0|6|Graves|Kurtis|3005|KS|M|Son|||5|102332 +3010|KS|Crawford County|McCune city|460|0|7|Graves|Phil|3009|KS|M|Son|||1|102333 + +3010|FL|Putnam County|Pomona Park town|461|0|1|Cinelli|Freeman Marcellus|2957|South Dakota|M|Head|||53|102334 +3010|FL|Putnam County|Pomona Park town|461|0|2|Cinelli|Kenya|2993|Tennessee|F|Daughter|||17|102335 + +3010|AZ|Navajo County|Linden CDP|462|0|1|Hamre|Randall Bryce|2952|Georgia|M|Head|||58|102336 +3010|AZ|Navajo County|Linden CDP|462|0|2|Hamre|Estrella|2952|Ohio|F|Spouse|||58|102337 +3010|AZ|Navajo County|Linden CDP|462|0|3|Hamre|Irving|2978|Nebraska|M|Son|||32|102338 +3010|AZ|Navajo County|Linden CDP|462|0|4|Hamre|Zack Antony|2998|New Jersey|M|Son|||12|102339 +3010|AZ|Navajo County|Linden CDP|462|0|5|Hamre|Arnulfo|3000|Nebraska|M|Son|||10|102340 +3010|AZ|Navajo County|Linden CDP|462|0|6|Hamre|Elaine|3003|TX|F|Daughter|||7|102341 +3010|AZ|Navajo County|Linden CDP|462|0|7|Hamre|Lani|3007|AZ|F|Daughter|||3|102342 + +3010|PA|Washington County|Charleroi borough|463|0|1|Colbert|Kattie Apolonia|2972|Ohio|F|Head|||38|102343 +3010|PA|Washington County|Charleroi borough|463|0|2|Colbert|Carina|2996|New Hampshire|F|Daughter|||14|102344 +3010|PA|Washington County|Charleroi borough|463|0|3|Colbert|Rico|3000|Taiwan, Province Of China|M|Son|||10|102345 + +3010|SD|Lawrence County|Lead city|464|0|1|Parker|Marshall Fernando|2953|New Hampshire|M|Head|||57|102346 +3010|SD|Lawrence County|Lead city|464|0|2|Parker|Rosie|2953|Arkansas|F|Spouse|||57|102347 +3010|SD|Lawrence County|Lead city|464|0|3|Parker|Herb|2973|Saint Kitts And Nevis|M|Son|||37|102348 +3010|SD|Lawrence County|Lead city|464|0|4|Parker|Edgar|2979|Wisconsin|M|Son|||31|102349 +3010|SD|Lawrence County|Lead city|464|0|5|Parker|Somer|2999|Washington|F|Daughter|||11|102350 + +3010|TN|Davidson County, Robertson County|Ridgetop city|465|0|1|Florez|Isidro Buford|2967|New Mexico|M|Head|||43|102351 +3010|TN|Davidson County, Robertson County|Ridgetop city|465|0|2|Florez|Peggie|2969|Iraq|F|Spouse|||41|102352 +3010|TN|Davidson County, Robertson County|Ridgetop city|465|0|3|Florez|Charles|2989|Louisiana|M|Son|||21|102353 +3010|TN|Davidson County, Robertson County|Ridgetop city|465|0|4|Florez|Leia Teresa|2995|Nevada|F|Daughter|||15|102354 +3010|TN|Davidson County, Robertson County|Ridgetop city|465|0|5|Florez|Imogene Essie|3001|TN|F|Daughter|||9|102355 +3010|TN|Davidson County, Robertson County|Ridgetop city|465|0|6|Florez|Columbus|3003|TN|M|Son|||7|102356 +3010|TN|Davidson County, Robertson County|Ridgetop city|465|0|7|Florez|Conception|3005|TN|F|Daughter|||5|102357 +3010|TN|Davidson County, Robertson County|Ridgetop city|465|0|8|Florez|Yessenia|3009|TN|F|Daughter|||1|102358 + +3010|GA|Wayne County|Odum city|466|0|1|Furtak|Bernie Efren|2938|Vermont|M|Head|||72|102359 +3010|GA|Wayne County|Odum city|466|0|2|Furtak|Annabell Dorethea|2953|Ohio|F|Spouse|||57|102360 +3010|GA|Wayne County|Odum city|466|0|3|Furtak|Isabelle Mable|2981|Maryland|F|Daughter|||29|102361 +3010|GA|Wayne County|Odum city|466|0|4|Furtak|Micki Indira|2995|Arizona|F|Daughter|||15|102362 +3010|GA|Wayne County|Odum city|466|0|5|Furtak|Kitty|3009|GA|F|Daughter|||1|102363 + +3010|IA|Shelby County|Jacksonville CDP|467|0|1|Smudrick|Ronny Dan|2943|Wisconsin|M|Head|||67|102364 +3010|IA|Shelby County|Jacksonville CDP|467|0|2|Smudrick|Minda|2956|Pennsylvania|F|Spouse|||54|102365 +3010|IA|Shelby County|Jacksonville CDP|467|0|3|Smudrick|Deann Gertie|2976|Oklahoma|F|Daughter|||34|102366 +3010|IA|Shelby County|Jacksonville CDP|467|0|4|Smudrick|Royce|2978|Louisiana|M|Son|||32|102367 +3010|IA|Shelby County|Jacksonville CDP|467|0|5|Smudrick|Felecia|2996|Iowa|F|Daughter|||14|102368 +3010|IA|Shelby County|Jacksonville CDP|467|0|6|Smudrick|Fannie Tatiana|2998|New Jersey|F|Daughter|||12|102369 +3010|IA|Shelby County|Jacksonville CDP|467|0|7|Smudrick|Carmon|3000|Ohio|F|Daughter|||10|102370 +3010|IA|Shelby County|Jacksonville CDP|467|0|8|Smudrick|Freddie|3001|KS|M|Son|||9|102371 +3010|IA|Shelby County|Jacksonville CDP|467|0|9|Smudrick|Karma|3003|KS|F|Daughter|||7|102372 + +3010|ME|Penobscot County|Orono CDP|468|0|1|Taccone|Shirley|2963|North Carolina|M|Head|||47|102373 +3010|ME|Penobscot County|Orono CDP|468|0|2|Taccone|Mitchell|2997|Connecticut|M|Son|||13|102374 + +3010|CO|El Paso County|Black Forest CDP|469|0|1|Kriesel|Ulysses Dudley|2939|Morocco|M|Head|||71|102375 +3010|CO|El Paso County|Black Forest CDP|469|0|2|Kriesel|Sheilah|2942|California|F|Spouse|||68|102376 +3010|CO|El Paso County|Black Forest CDP|469|0|3|Kriesel|Wen|2970|West Virginia|F|Daughter|||40|102377 +3010|CO|El Paso County|Black Forest CDP|469|0|4|Kriesel|Shondra|2980|Wyoming|F|Daughter|||30|102378 +3010|CO|El Paso County|Black Forest CDP|469|0|5|Kriesel|Rashad|2986|Pakistan|M|Son|||24|102379 +3010|CO|El Paso County|Black Forest CDP|469|0|6|Kriesel|Victor|3005|CO|F|Daughter|||5|102380 +3010|CO|El Paso County|Black Forest CDP|469|0|7|Kriesel|Bertie|3009|CO|F|Daughter|||1|102381 + +3010|NY|Herkimer County|Winfield town|470|0|1|Zahnen|Dewayne Mose|2962|Arizona|M|Head|||48|102382 +3010|NY|Herkimer County|Winfield town|470|0|2|Zahnen|Tara|2960|Texas|F|Spouse|||50|102383 +3010|NY|Herkimer County|Winfield town|470|0|3|Zahnen|Paulette|2986|Nebraska|F|Daughter|||24|102384 +3010|NY|Herkimer County|Winfield town|470|0|4|Zahnen|Nettie|2988|Florida|F|Daughter|||22|102385 +3010|NY|Herkimer County|Winfield town|470|0|5|Zahnen|Bong|2990|Mississippi|F|Daughter|||20|102386 +3010|NY|Herkimer County|Winfield town|470|0|6|Zahnen|Todd|3000|Singapore|M|Son|||10|102387 +3010|NY|Herkimer County|Winfield town|470|0|7|Zahnen|Lashonda|3001|NY|F|Daughter|||9|102388 + +3010|OK|Haskell County|Tamaha town|471|0|1|Roses|Cordie|2988|Delaware|F|Daughter|||22|102389 +3010|OK|Haskell County|Tamaha town|471|0|2|Roses|Isreal|2994|Wisconsin|M|Son|||16|102390 +3010|OK|Haskell County|Tamaha town|471|0|3|Roses|Lesia|2998|Maldives|F|Daughter|||12|102391 +3010|OK|Haskell County|Tamaha town|471|0|4|Roses|Long Tommie|3000|Denmark|M|Son|||10|102392 + +3010|IA|Jackson County|Andrew city|472|0|1|Molyneux|Grant Micah|2940|New Mexico|M|Head|||70|102393 +3010|IA|Jackson County|Andrew city|472|0|2|Molyneux|Carrol|2987|Belgium|M|Son|||23|102394 +3010|IA|Jackson County|Andrew city|472|0|3|Molyneux|Usha Nathalie|2995|Nevada|F|Daughter|||15|102395 +3010|IA|Jackson County|Andrew city|472|0|4|Molyneux|Stanton|3003|IA|M|Son|||7|102396 +3010|IA|Jackson County|Andrew city|472|0|5|Molyneux|Kourtney Peter|3005|IA|F|Daughter|||5|102397 +3010|IA|Jackson County|Andrew city|472|0|6|Molyneux|Kris|3007|IA|M|Son|||3|102398 +3010|IA|Jackson County|Andrew city|472|0|7|Molyneux|Cody|3009|IA|M|Son|||1|102399 + +3010|TX|Gonzales County|Waelder city|473|0|1|Stanton|Noble Orlando|2937|Georgia|M|Head|||73|102400 +3010|TX|Gonzales County|Waelder city|473|0|2|Stanton|Nadene Viviana|2951|Kansas|F|Spouse|||59|102401 +3010|TX|Gonzales County|Waelder city|473|0|3|Stanton|Mathew Leon|2989|Oklahoma|M|Son|||21|102402 +3010|TX|Gonzales County|Waelder city|473|0|4|Stanton|Conception Lacy|3007|TX|F|Daughter|||3|102403 +3010|TX|Gonzales County|Waelder city|473|0|5|Stanton|Aaron|3009|TX|M|Son|||1|102404 + +3010|IN|Steuben County|Clear Lake town|474|0|1|Cardenas|Terence Von|2983|Arkansas|M|Head|||27|102405 +3010|IN|Steuben County|Clear Lake town|474|0|2|Cardenas|Gilda|2980|New York|F|Spouse|||30|102406 +3010|IN|Steuben County|Clear Lake town|474|0|3|Cardenas|Terrence|3000|Vermont|M|Son|||10|102407 +3010|IN|Steuben County|Clear Lake town|474|0|4|Cardenas|Damion|3007|IN|M|Son|||3|102408 +3010|IN|Steuben County|Clear Lake town|474|0|5|Cardenas|Kevin|3009|IN|M|Son|||1|102409 + +3010|IL|Shelby County|Findlay village|475|0|1|Darks|Haywood Cesar|2959|Maryland|M|Head|||51|102410 +3010|IL|Shelby County|Findlay village|475|0|2|Darks|Loria|2958|New Hampshire|F|Spouse|||52|102411 +3010|IL|Shelby County|Findlay village|475|0|3|Darks|Salvatore|2978|Rhode Island|M|Son|||32|102412 +3010|IL|Shelby County|Findlay village|475|0|4|Darks|Carlo|2994|Utah|M|Son|||16|102413 +3010|IL|Shelby County|Findlay village|475|0|5|Darks|Conrad Chad|2996|Texas|M|Son|||14|102414 +3010|IL|Shelby County|Findlay village|475|0|6|Darks|Lisabeth|3000|Virginia|F|Daughter|||10|102415 +3010|IL|Shelby County|Findlay village|475|0|7|Darks|Joella Lea|3009|IL|F|Daughter|||1|102416 + +3010|TX|Wise County|Chico city|476|0|1|Kovach|Timmy Ward|2959|Montana|M|Head|||51|102417 +3010|TX|Wise County|Chico city|476|0|2|Kovach|Jasmine Tommie|2962|Idaho|F|Spouse|||48|102418 +3010|TX|Wise County|Chico city|476|0|3|Kovach|Joesph|2990|Vermont|M|Son|||20|102419 +3010|TX|Wise County|Chico city|476|0|4|Kovach|Idalia|2996|Maine|F|Daughter|||14|102420 + +3010|OH|Tuscarawas County|Midvale village|477|0|1|Vess|Lavon|2980|Alaska|F|Head|||30|102421 +3010|OH|Tuscarawas County|Midvale village|477|0|2|Vess|Desire Cecile|3000|Tennessee|F|Daughter|||10|102422 + +3010|ME|Lincoln County|Louds Island UT|478|0|1|Kasparian|Candra|2949|Colorado|F|Spouse|||61|102423 +3010|ME|Lincoln County|Louds Island UT|478|0|2|Kasparian|Weldon|2989|New Mexico|M|Son|||21|102424 +3010|ME|Lincoln County|Louds Island UT|478|0|3|Kasparian|Katelin|3003|ME|F|Daughter|||7|102425 +3010|ME|Lincoln County|Louds Island UT|478|0|4|Kasparian|Markus Ryan|3005|ME|M|Son|||5|102426 +3010|ME|Lincoln County|Louds Island UT|478|0|5|Kasparian|Lincoln|3009|ME|M|Son|||1|102427 + +3010|CA|Plumas County|Valley Ranch CDP|479|0|1|Bald|Frederick|2986|Tennessee|M|Son|||24|102428 +3010|CA|Plumas County|Valley Ranch CDP|479|0|2|Bald|Herminia|2988|Florida|F|Daughter|||22|102429 +3010|CA|Plumas County|Valley Ranch CDP|479|0|3|Bald|Dexter|3000|Hawaii|M|Son|||10|102430 + +3010|MN|Grant County|Herman city|480|0|1|Toot|Shad Trinidad|2958|Pakistan|M|Head|||52|102431 +3010|MN|Grant County|Herman city|480|0|2|Toot|Sarah|2954|Arizona|F|Spouse|||56|102432 +3010|MN|Grant County|Herman city|480|0|3|Toot|Jovan|3000|New Zealand|F|Daughter|||10|102433 +3010|MN|Grant County|Herman city|480|0|4|Toot|Robert Waldo|3009|MN|M|Son|||1|102434 + +3010|GA|Chatham County|Pooler city|481|0|1|Guerrero|Theodore Isidro|2963|Arkansas|M|Head|||47|102435 + +3010|IA|Decatur County|Leon city|482|0|1|Slowinski|Prince Freeman|2939|Romania|M|Head|||71|102436 +3010|IA|Decatur County|Leon city|482|0|2|Slowinski|Anya|2942|Tennessee|F|Spouse|||68|102437 +3010|IA|Decatur County|Leon city|482|0|3|Slowinski|Hannah|2962|Thailand|F|Daughter|||48|102438 +3010|IA|Decatur County|Leon city|482|0|4|Slowinski|Bradford|2970|Wisconsin|M|Son|||40|102439 +3010|IA|Decatur County|Leon city|482|0|5|Slowinski|Rhett|2974|Virginia|M|Son|||36|102440 +3010|IA|Decatur County|Leon city|482|0|6|Slowinski|Agustin|2978|Tanzania, United Republic Of|M|Son|||32|102441 +3010|IA|Decatur County|Leon city|482|0|7|Slowinski|Asuncion|2982|Nebraska|F|Daughter|||28|102442 +3010|IA|Decatur County|Leon city|482|0|8|Slowinski|Oretha|2988|Florida|F|Daughter|||22|102443 +3010|IA|Decatur County|Leon city|482|0|9|Slowinski|Jules|2992|Egypt|M|Son|||18|102444 +3010|IA|Decatur County|Leon city|482|0|10|Slowinski|Ezekiel|2998|South Carolina|M|Son|||12|102445 +3010|IA|Decatur County|Leon city|482|0|11|Slowinski|Vernice|3003|IA|F|Daughter|||7|102446 +3010|IA|Decatur County|Leon city|482|0|12|Slowinski|Avis|3005|IA|F|Daughter|||5|102447 + +3010|VA|Appomattox County, Prince Edward County|Pamplin City town|483|0|1|Mclean|Major Gordon|2953|Alaska|M|Head|||57|102448 +3010|VA|Appomattox County, Prince Edward County|Pamplin City town|483|0|2|Mclean|Jacinto|2997|Montana|M|Son|||13|102449 +3010|VA|Appomattox County, Prince Edward County|Pamplin City town|483|0|3|Mclean|Gerry|2999|New York|F|Daughter|||11|102450 +3010|VA|Appomattox County, Prince Edward County|Pamplin City town|483|0|4|Mclean|Bok|3001|TX|F|Daughter|||9|102451 +3010|VA|Appomattox County, Prince Edward County|Pamplin City town|483|0|5|Mclean|Dominga|3003|TX|F|Daughter|||7|102452 +3010|VA|Appomattox County, Prince Edward County|Pamplin City town|483|0|6|Mclean|Norman|3007|VA|M|Son|||3|102453 +3010|VA|Appomattox County, Prince Edward County|Pamplin City town|483|0|7|Mclean|Emanuel Mathew|3009|VA|M|Son|||1|102454 + +3010|TX|Hood County|Granbury city|484|0|1|Clark|Howard Santiago|2954|Alaska|M|Head|||56|102455 +3010|TX|Hood County|Granbury city|484|0|2|Clark|Shayne|3000|Virgin Islands, U.s.|M|Son|||10|102456 +3010|TX|Hood County|Granbury city|484|0|3|Clark|Elijah|3003|TX|M|Son|||7|102457 + +3010|WA|Yakima County|Outlook CDP|485|0|1|Tenn|Bernie Grover|2972|Nebraska|M|Son|||38|102458 +3010|WA|Yakima County|Outlook CDP|485|0|2|Tenn|Shon|2980|Missouri|M|Son|||30|102459 +3010|WA|Yakima County|Outlook CDP|485|0|3|Tenn|Charlie|2986|Washington|M|Son|||24|102460 +3010|WA|Yakima County|Outlook CDP|485|0|4|Tenn|Tom|2996|Tunisia|M|Son|||14|102461 +3010|WA|Yakima County|Outlook CDP|485|0|5|Tenn|Shaquana|2998|Arizona|F|Daughter|||12|102462 + +3010|NY|Onondaga County|Fabius village|486|0|1|Freeborn|Cicely Noriko|2955|Malawi|F|Head|||55|102463 +3010|NY|Onondaga County|Fabius village|486|0|2|Freeborn|Rosanne|2985|Virginia|F|Daughter|||25|102464 +3010|NY|Onondaga County|Fabius village|486|0|3|Freeborn|Elroy|2997|Montana|M|Son|||13|102465 +3010|NY|Onondaga County|Fabius village|486|0|4|Freeborn|Delmer Clarence|2999|Oklahoma|M|Son|||11|102466 + +3010|MA|Norfolk County|Millis town|487|0|1|Mazzie|Jarrod Neville|2984|Zambia|M|Head|||26|102467 + +3010|ME|Washington County|Calais city|488|0|1|Brisbone|Sal Lonny|2947|Zambia|M|Head|||63|102468 +3010|ME|Washington County|Calais city|488|0|2|Brisbone|Pat|2989|New York|M|Son|||21|102469 +3010|ME|Washington County|Calais city|488|0|3|Brisbone|Verdie Magaret|2999|Connecticut|F|Daughter|||11|102470 + +3010|KY|McCracken County|Paducah city|489|0|1|Ibale|Vern Wendell|2962|Pennsylvania|M|Head|||48|102471 +3010|KY|McCracken County|Paducah city|489|0|2|Ibale|Nicol|2965|Slovenia|F|Spouse|||45|102472 +3010|KY|McCracken County|Paducah city|489|0|3|Ibale|Linnie|2985|Virgin Islands, U.s.|F|Daughter|||25|102473 +3010|KY|McCracken County|Paducah city|489|0|4|Ibale|Toby|2989|Washington|F|Daughter|||21|102474 +3010|KY|McCracken County|Paducah city|489|0|5|Ibale|Lucile|3003|KY|F|Daughter|||7|102475 +3010|KY|McCracken County|Paducah city|489|0|6|Ibale|Nick Virgil|3007|KY|M|Son|||3|102476 +3010|KY|McCracken County|Paducah city|489|0|7|Ibale|Jules|3009|KY|M|Son|||1|102477 + +3010|LA|St. Mary Parish|Berwick town|490|0|1|Jasinski|Salvatore|2949|Palau|M|Head|||61|102478 +3010|LA|St. Mary Parish|Berwick town|490|0|2|Jasinski|Lanie|2946|North Dakota|F|Spouse|||64|102479 +3010|LA|St. Mary Parish|Berwick town|490|0|3|Jasinski|Caleb|2976|Nebraska|M|Son|||34|102480 +3010|LA|St. Mary Parish|Berwick town|490|0|4|Jasinski|Randell|2978|Washington|M|Son|||32|102481 +3010|LA|St. Mary Parish|Berwick town|490|0|5|Jasinski|Hobert Loren|2988|Cameroon|M|Son|||22|102482 +3010|LA|St. Mary Parish|Berwick town|490|0|6|Jasinski|Freddy|3003|LA|M|Son|||7|102483 +3010|LA|St. Mary Parish|Berwick town|490|0|7|Jasinski|Micheal|3005|LA|F|Daughter|||5|102484 + +3010|MN|Ramsey County|Lauderdale city|491|0|1|Odea|Terence|2975|Malawi|M|Head|||35|102485 +3010|MN|Ramsey County|Lauderdale city|491|0|2|Odea|Kaylene|2984|California|F|Spouse|||26|102486 +3010|MN|Ramsey County|Lauderdale city|491|0|3|Odea|Soon|3001|MN|F|Daughter|||9|102487 +3010|MN|Ramsey County|Lauderdale city|491|0|4|Odea|Eliza Cheryll|3003|MN|F|Daughter|||7|102488 +3010|MN|Ramsey County|Lauderdale city|491|0|5|Odea|Jerome|3009|MN|M|Son|||1|102489 + +3010|MA|Essex County|Lawrence city|492|0|1|Taylor|Allen Palmer|2937|Alaska|M|Head|||73|102490 +3010|MA|Essex County|Lawrence city|492|0|2|Taylor|Tiana|2948|Lesotho|F|Spouse|||62|102491 +3010|MA|Essex County|Lawrence city|492|0|3|Taylor|Maricruz|2992|Missouri|F|Daughter|||18|102492 +3010|MA|Essex County|Lawrence city|492|0|4|Taylor|Willy|3000|Wisconsin|M|Son|||10|102493 + +3010|FL|Manatee County|Bradenton city|493|0|1|Tolson|Justin Roosevelt|2977|China|M|Head|||33|102494 +3010|FL|Manatee County|Bradenton city|493|0|2|Tolson|Dee Rudy|2996|Missouri|M|Son|||14|102495 +3010|FL|Manatee County|Bradenton city|493|0|3|Tolson|Jonathan|3001|FL|M|Son|||9|102496 +3010|FL|Manatee County|Bradenton city|493|0|4|Tolson|Melany|3003|FL|F|Daughter|||7|102497 + +3010|WI|Chippewa County|Chippewa Falls city|494|0|1|Clark|Dwayne Dion|2959|Mississippi|M|Head|||51|102498 +3010|WI|Chippewa County|Chippewa Falls city|494|0|2|Clark|Rana|2957|New Hampshire|F|Spouse|||53|102499 +3010|WI|Chippewa County|Chippewa Falls city|494|0|3|Clark|Stephnie|2979|South Carolina|F|Daughter|||31|102500 +3010|WI|Chippewa County|Chippewa Falls city|494|0|4|Clark|Mauricio|2991|Hong Kong|M|Son|||19|102501 +3010|WI|Chippewa County|Chippewa Falls city|494|0|5|Clark|Ellis|3003|WI|M|Son|||7|102502 +3010|WI|Chippewa County|Chippewa Falls city|494|0|6|Clark|Prince Gonzalo|3005|WI|M|Son|||5|102503 + +3010|MS|Wayne County|Waynesboro city|495|0|1|Kincaid|Jordan|2938|Nevada|M|Head|||72|102504 +3010|MS|Wayne County|Waynesboro city|495|0|2|Kincaid|Thalia|2958|New Jersey|F|Spouse|||52|102505 +3010|MS|Wayne County|Waynesboro city|495|0|3|Kincaid|Ferdinand|2994|Alaska|M|Son|||16|102506 +3010|MS|Wayne County|Waynesboro city|495|0|4|Kincaid|Davis|3000|Texas|M|Son|||10|102507 +3010|MS|Wayne County|Waynesboro city|495|0|5|Kincaid|Sean|3003|MS|M|Son|||7|102508 + +3010|MI|Kent County|Sparta village|496|0|1|Castiglia|Franklin Louie|2946|French Southern Territories|M|Head|||64|102509 +3010|MI|Kent County|Sparta village|496|0|2|Castiglia|Tena|2967|New Mexico|F|Spouse|||43|102510 +3010|MI|Kent County|Sparta village|496|0|3|Castiglia|Boris|2991|Ohio|M|Son|||19|102511 +3010|MI|Kent County|Sparta village|496|0|4|Castiglia|Shay|2995|Virginia|F|Daughter|||15|102512 +3010|MI|Kent County|Sparta village|496|0|5|Castiglia|Richie|2997|Arizona|M|Son|||13|102513 +3010|MI|Kent County|Sparta village|496|0|6|Castiglia|Jerome|3001|MI|M|Son|||9|102514 +3010|MI|Kent County|Sparta village|496|0|7|Castiglia|Cora|3007|MI|F|Daughter|||3|102515 + +3010|TX|Starr County|La Carla CDP|497|0|1|Romulus|Jong|2975|Pennsylvania|F|Head|||35|102516 +3010|TX|Starr County|La Carla CDP|497|0|2|Romulus|Charolette|2995|Kentucky|F|Daughter|||15|102517 +3010|TX|Starr County|La Carla CDP|497|0|3|Romulus|Emilia|2997|New Jersey|F|Daughter|||13|102518 +3010|TX|Starr County|La Carla CDP|497|0|4|Romulus|Fred Andrea|2999|Rhode Island|M|Son|||11|102519 + +3010|OR|Linn County|Waterloo town|498|0|1|Scott|Ryan Thanh|2966|Costa Rica|M|Head|||44|102520 +3010|OR|Linn County|Waterloo town|498|0|2|Scott|Alexandria|2965|Utah|F|Spouse|||45|102521 +3010|OR|Linn County|Waterloo town|498|0|3|Scott|Maurine Tiesha|2995|Wyoming|F|Daughter|||15|102522 +3010|OR|Linn County|Waterloo town|498|0|4|Scott|Owen|2997|New Mexico|M|Son|||13|102523 +3010|OR|Linn County|Waterloo town|498|0|5|Scott|Vincenza|3007|OR|F|Daughter|||3|102524 +3010|OR|Linn County|Waterloo town|498|0|6|Scott|Florance|3009|OR|F|Daughter|||1|102525 + +3010|CA|Plumas County|Graeagle CDP|499|0|1|Nelson|Gerard|2963|Kentucky|M|Head|||47|102526 +3010|CA|Plumas County|Graeagle CDP|499|0|2|Nelson|Terrell|2960|Michigan|F|Spouse|||50|102527 +3010|CA|Plumas County|Graeagle CDP|499|0|3|Nelson|Modesto|3001|CA|M|Son|||9|102528 +3010|CA|Plumas County|Graeagle CDP|499|0|4|Nelson|Deirdre|3003|CA|F|Daughter|||7|102529 +3010|CA|Plumas County|Graeagle CDP|499|0|5|Nelson|Nery|3009|CA|F|Daughter|||1|102530 + +3010|VA|Montgomery County|Prices Fork CDP|500|0|1|Ferrara|Rodney Corey|2984|South Dakota|M|Head|||26|102531 + +3010|GA|Chattooga County|Trion town|501|0|1|Johnson|Kirby Erwin|2942|Indiana|M|Head|||68|102532 +3010|GA|Chattooga County|Trion town|501|0|2|Johnson|Eugenio|2983|Delaware|M|Son|||27|102533 +3010|GA|Chattooga County|Trion town|501|0|3|Johnson|Margarito|2989|Massachusetts|M|Son|||21|102534 + +3010|NH|Coos County|Crawfords purchase|502|0|1|Hyrkas|Dexter|2957|Nebraska|M|Head|||53|102535 +3010|NH|Coos County|Crawfords purchase|502|0|2|Hyrkas|Dallas|2955|Barbados|F|Spouse|||55|102536 +3010|NH|Coos County|Crawfords purchase|502|0|3|Hyrkas|Kirstie Fran|2975|New Mexico|F|Daughter|||35|102537 +3010|NH|Coos County|Crawfords purchase|502|0|4|Hyrkas|Ramon|2989|Pennsylvania|M|Son|||21|102538 +3010|NH|Coos County|Crawfords purchase|502|0|5|Hyrkas|Sol Min|2991|Pennsylvania|F|Daughter|||19|102539 +3010|NH|Coos County|Crawfords purchase|502|0|6|Hyrkas|Darby Penni|2997|California|F|Daughter|||13|102540 +3010|NH|Coos County|Crawfords purchase|502|0|7|Hyrkas|Johnathon|3003|NH|M|Son|||7|102541 + +3010|MI|Wexford County|Manton city|503|0|1|Walkinshaw|Betsy|2955|Nebraska|F|Head|||55|102542 +3010|MI|Wexford County|Manton city|503|0|2|Walkinshaw|Olen|2995|Massachusetts|M|Son|||15|102543 +3010|MI|Wexford County|Manton city|503|0|3|Walkinshaw|Ima|2997|Hawaii|F|Daughter|||13|102544 +3010|MI|Wexford County|Manton city|503|0|4|Walkinshaw|Solomon|2999|Tonga|M|Son|||11|102545 + +3010|FL|Hillsborough County|Bloomingdale CDP|504|0|1|Osborn|James|2937|New Mexico|M|Head|||73|102546 +3010|FL|Hillsborough County|Bloomingdale CDP|504|0|2|Osborn|Sina|2942|Colombia|F|Spouse|||68|102547 +3010|FL|Hillsborough County|Bloomingdale CDP|504|0|3|Osborn|Gregory Pok|2968|Hawaii|F|Daughter|||42|102548 +3010|FL|Hillsborough County|Bloomingdale CDP|504|0|4|Osborn|Rob|2982|New Hampshire|M|Son|||28|102549 +3010|FL|Hillsborough County|Bloomingdale CDP|504|0|5|Osborn|Rodrick|2984|Barbados|M|Son|||26|102550 +3010|FL|Hillsborough County|Bloomingdale CDP|504|0|6|Osborn|Russell|2988|Kentucky|M|Son|||22|102551 +3010|FL|Hillsborough County|Bloomingdale CDP|504|0|7|Osborn|Melia|2996|Missouri|F|Daughter|||14|102552 +3010|FL|Hillsborough County|Bloomingdale CDP|504|0|8|Osborn|Lizzie|2998|Tennessee|F|Daughter|||12|102553 +3010|FL|Hillsborough County|Bloomingdale CDP|504|0|9|Osborn|Zoraida|3001|FL|F|Daughter|||9|102554 +3010|FL|Hillsborough County|Bloomingdale CDP|504|0|10|Osborn|Julianna|3003|FL|F|Daughter|||7|102555 + +3010|PA|Jefferson County|Big Run borough|505|0|1|Gruber|Kali Joey|2967|Mississippi|F|Head|||43|102556 +3010|PA|Jefferson County|Big Run borough|505|0|2|Gruber|Violeta|2991|Illinois|F|Daughter|||19|102557 +3010|PA|Jefferson County|Big Run borough|505|0|3|Gruber|Norris|2997|Alaska|M|Son|||13|102558 +3010|PA|Jefferson County|Big Run borough|505|0|4|Gruber|Ezequiel|2999|New Jersey|M|Son|||11|102559 + +3010|MN|Otter Tail County|Richville city|506|0|1|Wright|Vincent Terrence|2938|Christmas Island|M|Head|||72|102560 +3010|MN|Otter Tail County|Richville city|506|0|2|Wright|Camille Claretha|2959|Western Sahara|F|Spouse|||51|102561 +3010|MN|Otter Tail County|Richville city|506|0|3|Wright|Andria|2999|Wyoming|F|Daughter|||11|102562 +3010|MN|Otter Tail County|Richville city|506|0|4|Wright|Delpha|3001|MN|F|Daughter|||9|102563 +3010|MN|Otter Tail County|Richville city|506|0|5|Wright|Bert|3009|MN|M|Son|||1|102564 + +3010|MN|Cottonwood County|Highwater township|507|0|1|Evans|Graham|2970|Ohio|M|Head|||40|102565 +3010|MN|Cottonwood County|Highwater township|507|0|2|Evans|Leonard|2996|New Mexico|M|Son|||14|102566 +3010|MN|Cottonwood County|Highwater township|507|0|3|Evans|Hershel|2998|New Hampshire|M|Son|||12|102567 +3010|MN|Cottonwood County|Highwater township|507|0|4|Evans|Geraldo Elton|3000|Mississippi|M|Son|||10|102568 + +3010|NY|Oswego County|Altmar village|508|0|1|Prim|Rickey|2949|Washington|M|Head|||61|102569 +3010|NY|Oswego County|Altmar village|508|0|2|Prim|Karmen|2946|Wisconsin|F|Spouse|||64|102570 +3010|NY|Oswego County|Altmar village|508|0|3|Prim|Susana|2990|Arizona|F|Daughter|||20|102571 +3010|NY|Oswego County|Altmar village|508|0|4|Prim|Sean|2996|Moldova, Republic Of|M|Son|||14|102572 +3010|NY|Oswego County|Altmar village|508|0|5|Prim|Benjamin|2998|Wyoming|M|Son|||12|102573 + +3010|KS|Saline County|Brookville city|509|0|1|Sells|Paul Harold|2965|Ohio|M|Head|||45|102574 +3010|KS|Saline County|Brookville city|509|0|2|Sells|Vernell|2970|Missouri|F|Spouse|||40|102575 +3010|KS|Saline County|Brookville city|509|0|3|Sells|Mimi|2994|Wyoming|F|Daughter|||16|102576 +3010|KS|Saline County|Brookville city|509|0|4|Sells|Maureen Yolande|2996|Colorado|F|Daughter|||14|102577 +3010|KS|Saline County|Brookville city|509|0|5|Sells|Emmitt|2998|Alabama|M|Son|||12|102578 +3010|KS|Saline County|Brookville city|509|0|6|Sells|Kent|3001|KS|M|Son|||9|102579 +3010|KS|Saline County|Brookville city|509|0|7|Sells|Terry|3003|KS|F|Daughter|||7|102580 +3010|KS|Saline County|Brookville city|509|0|8|Sells|Alonso Antone|3005|KS|M|Son|||5|102581 +3010|KS|Saline County|Brookville city|509|0|9|Sells|Dagmar|3007|KS|F|Daughter|||3|102582 +3010|KS|Saline County|Brookville city|509|0|10|Sells|Bobbie|3009|KS|M|Son|||1|102583 + +3010|WI|Monroe County|Sparta city|510|0|1|Brahm|Guadalupe Jermaine|2972|Pennsylvania|M|Head|||38|102584 +3010|WI|Monroe County|Sparta city|510|0|2|Brahm|Julianne|2976|Wisconsin|F|Spouse|||34|102585 +3010|WI|Monroe County|Sparta city|510|0|3|Brahm|Armando|2998|North Dakota|M|Son|||12|102586 +3010|WI|Monroe County|Sparta city|510|0|4|Brahm|Angelena|3005|WI|F|Daughter|||5|102587 +3010|WI|Monroe County|Sparta city|510|0|5|Brahm|Shanel|3009|WI|F|Daughter|||1|102588 + +3010|MN|Rock County|Hardwick city|511|0|1|Meyers|Hipolito Louie|2974|Massachusetts|M|Head|||36|102589 + +3010|WI|St. Croix County|Woodville village|512|0|1|Rymes|Regina|2964|Colorado|F|Head|||46|102590 +3010|WI|St. Croix County|Woodville village|512|0|2|Rymes|Yasmine|2998|New Mexico|F|Daughter|||12|102591 +3010|WI|St. Croix County|Woodville village|512|0|3|Rymes|Natisha|3000|Kentucky|F|Daughter|||10|102592 + +3010|PA|Armstrong County|Dayton borough|513|0|1|Randles|Sheba|2981|New Mexico|F|Spouse|||29|102593 +3010|PA|Armstrong County|Dayton borough|513|0|2|Randles|Alfonzo Winston|3001|PA|M|Son|||9|102594 +3010|PA|Armstrong County|Dayton borough|513|0|3|Randles|Sharla|3003|PA|F|Daughter|||7|102595 +3010|PA|Armstrong County|Dayton borough|513|0|4|Randles|Darin Jimmie|3007|PA|M|Son|||3|102596 + +3010|OR|Baker County|Sumpter city|514|0|1|Krynicki|Nolan Shane|2948|Pitcairn|M|Head|||62|102597 +3010|OR|Baker County|Sumpter city|514|0|2|Krynicki|Maryrose|2945|Ohio|F|Spouse|||65|102598 +3010|OR|Baker County|Sumpter city|514|0|3|Krynicki|Kristian|2967|Kansas|F|Daughter|||43|102599 +3010|OR|Baker County|Sumpter city|514|0|4|Krynicki|Vania|2987|Minnesota|F|Daughter|||23|102600 +3010|OR|Baker County|Sumpter city|514|0|5|Krynicki|Casey Kieth|2989|Nevada|M|Son|||21|102601 +3010|OR|Baker County|Sumpter city|514|0|6|Krynicki|Branda|2995|Oklahoma|F|Daughter|||15|102602 +3010|OR|Baker County|Sumpter city|514|0|7|Krynicki|Miquel|2997|Kenya|M|Son|||13|102603 + +3010|MI|Oceana County|County Subdivisions not defined|515|0|1|Contos|Ken Trey|2962|Arkansas|M|Head|||48|102604 +3010|MI|Oceana County|County Subdivisions not defined|515|0|2|Contos|David|2980|Oregon|F|Spouse|||30|102605 +3010|MI|Oceana County|County Subdivisions not defined|515|0|3|Contos|Abel Ricardo|3001|MI|M|Son|||9|102606 +3010|MI|Oceana County|County Subdivisions not defined|515|0|4|Contos|Len|3003|MI|M|Son|||7|102607 +3010|MI|Oceana County|County Subdivisions not defined|515|0|5|Contos|Freddy Matthew|3009|MI|M|Son|||1|102608 + +3010|NY|Allegany County|Independence town|516|0|1|Heitmuller|Cletus Chester|2954|Minnesota|M|Head|||56|102609 +3010|NY|Allegany County|Independence town|516|0|2|Heitmuller|Laquita|2977|Nevada|F|Spouse|||33|102610 +3010|NY|Allegany County|Independence town|516|0|3|Heitmuller|Rubie|2997|New York|F|Daughter|||13|102611 +3010|NY|Allegany County|Independence town|516|0|4|Heitmuller|Sherron|2999|Idaho|F|Daughter|||11|102612 +3010|NY|Allegany County|Independence town|516|0|5|Heitmuller|Branden|3001|NY|M|Son|||9|102613 +3010|NY|Allegany County|Independence town|516|0|6|Heitmuller|Bruno|3005|NY|M|Son|||5|102614 +3010|NY|Allegany County|Independence town|516|0|7|Heitmuller|Dorian|3009|NY|F|Daughter|||1|102615 + +3010|VT|Windham County|Grafton town|517|0|1|Peach|Stan Adolfo|2946|Florida|M|Head|||64|102616 +3010|VT|Windham County|Grafton town|517|0|2|Peach|Ferdinand|2978|North Carolina|M|Son|||32|102617 +3010|VT|Windham County|Grafton town|517|0|3|Peach|Arianne|2990|Illinois|F|Daughter|||20|102618 +3010|VT|Windham County|Grafton town|517|0|4|Peach|Joy|2998|Louisiana|F|Daughter|||12|102619 +3010|VT|Windham County|Grafton town|517|0|5|Peach|Ann|3001|VT|F|Daughter|||9|102620 + +3010|TX|Williamson County|Taylor city|518|0|1|Lawrence|Isaura Vannesa|2985|Iowa|F|Daughter|||25|102621 +3010|TX|Williamson County|Taylor city|518|0|2|Lawrence|Rafaela|2989|New Mexico|F|Daughter|||21|102622 +3010|TX|Williamson County|Taylor city|518|0|3|Lawrence|Morgan|2991|New Caledonia|F|Daughter|||19|102623 +3010|TX|Williamson County|Taylor city|518|0|4|Lawrence|Kendall|2995|Kansas|F|Daughter|||15|102624 +3010|TX|Williamson County|Taylor city|518|0|5|Lawrence|Long|2999|Anguilla|M|Son|||11|102625 + +3010|NE|Dodge County|Hooper city|519|0|1|Mauney|Alec|2955|Virginia|M|Head|||55|102626 +3010|NE|Dodge County|Hooper city|519|0|2|Mauney|Dayna|2976|New Jersey|F|Spouse|||34|102627 +3010|NE|Dodge County|Hooper city|519|0|3|Mauney|Fredericka|2998|Florida|F|Daughter|||12|102628 +3010|NE|Dodge County|Hooper city|519|0|4|Mauney|Elana Katie|3005|IL|F|Daughter|||5|102629 +3010|NE|Dodge County|Hooper city|519|0|5|Mauney|Ozella|3007|NE|F|Daughter|||3|102630 +3010|NE|Dodge County|Hooper city|519|0|6|Mauney|Filomena|3009|NE|F|Daughter|||1|102631 + +3010|ND|Pierce County|Barton CDP|520|0|1|Creel|Ernesto Odell|2942|Macau|M|Head|||68|102632 +3010|ND|Pierce County|Barton CDP|520|0|2|Creel|Starr|2946|Montana|F|Spouse|||64|102633 +3010|ND|Pierce County|Barton CDP|520|0|3|Creel|Clarinda|2988|Virginia|F|Daughter|||22|102634 +3010|ND|Pierce County|Barton CDP|520|0|4|Creel|Marguerite|2998|Mississippi|F|Daughter|||12|102635 +3010|ND|Pierce County|Barton CDP|520|0|5|Creel|Leandro Carrol|3003|ND|M|Son|||7|102636 + +3010|MI|Monroe County|South Monroe CDP|521|0|1|Herbert|Isaiah Agustin|2982|Hawaii|M|Head|||28|102637 +3010|MI|Monroe County|South Monroe CDP|521|0|2|Herbert|Leonie|2978|Guam|F|Spouse|||32|102638 +3010|MI|Monroe County|South Monroe CDP|521|0|3|Herbert|Casandra|3001|MI|F|Daughter|||9|102639 +3010|MI|Monroe County|South Monroe CDP|521|0|4|Herbert|Bernardo|3005|MI|M|Son|||5|102640 +3010|MI|Monroe County|South Monroe CDP|521|0|5|Herbert|Raymundo Felton|3007|MI|M|Son|||3|102641 +3010|MI|Monroe County|South Monroe CDP|521|0|6|Herbert|Ronny|3009|MI|M|Son|||1|102642 + +3010|NJ|Middlesex County|Brownville CDP|522|0|1|Duell|Russell Riley|2959|Montana|M|Head|||51|102643 +3010|NJ|Middlesex County|Brownville CDP|522|0|2|Duell|Joy|2980|North Carolina|F|Spouse|||30|102644 +3010|NJ|Middlesex County|Brownville CDP|522|0|3|Duell|Ruby Noella|3003|NJ|F|Daughter|||7|102645 + +3010|NC|Cleveland County|Kingstown town|523|0|1|Pickering|Terrance Donny|2957|Mississippi|M|Head|||53|102646 +3010|NC|Cleveland County|Kingstown town|523|0|2|Pickering|Giselle|2964|Idaho|F|Spouse|||46|102647 +3010|NC|Cleveland County|Kingstown town|523|0|3|Pickering|Phillip|3001|NC|M|Son|||9|102648 +3010|NC|Cleveland County|Kingstown town|523|0|4|Pickering|Glen|3007|NC|M|Son|||3|102649 +3010|NC|Cleveland County|Kingstown town|523|0|5|Pickering|Annamae|3009|NC|F|Daughter|||1|102650 + +3010|SC|Horry County|Myrtle Beach city|524|0|1|Schader|Sherill|2970|Georgia|F|Spouse|||40|102651 +3010|SC|Horry County|Myrtle Beach city|524|0|2|Schader|Jeremy Brooks|2994|Botswana|M|Son|||16|102652 +3010|SC|Horry County|Myrtle Beach city|524|0|3|Schader|Kendrick|2996|Oklahoma|M|Son|||14|102653 +3010|SC|Horry County|Myrtle Beach city|524|0|4|Schader|Wally|3000|French Guiana|M|Son|||10|102654 +3010|SC|Horry County|Myrtle Beach city|524|0|5|Schader|Arron|3001|SC|M|Son|||9|102655 +3010|SC|Horry County|Myrtle Beach city|524|0|6|Schader|Jose|3003|SC|M|Son|||7|102656 +3010|SC|Horry County|Myrtle Beach city|524|0|7|Schader|Melynda|3007|SC|F|Daughter|||3|102657 + +3010|WI|Barron County|Dallas town|526|0|1|Sampson|Isreal Haywood|2946|Kentucky|M|Head|||64|102658 +3010|WI|Barron County|Dallas town|526|0|2|Sampson|Agnes|2967|Alabama|F|Spouse|||43|102659 +3010|WI|Barron County|Dallas town|526|0|3|Sampson|Hertha|2991|Alaska|F|Daughter|||19|102660 +3010|WI|Barron County|Dallas town|526|0|4|Sampson|Georgianna|2995|Michigan|F|Daughter|||15|102661 +3010|WI|Barron County|Dallas town|526|0|5|Sampson|Omar|2999|Kansas|M|Son|||11|102662 +3010|WI|Barron County|Dallas town|526|0|6|Sampson|Julius|3001|WI|M|Son|||9|102663 + +3010|MN|Fillmore County|Fountain township|527|0|1|Wray|Kirby Bruce|2938|Mississippi|M|Head|||72|102664 +3010|MN|Fillmore County|Fountain township|527|0|2|Wray|Carolyn|2944|Minnesota|F|Spouse|||66|102665 +3010|MN|Fillmore County|Fountain township|527|0|3|Wray|Denna|2978|New Jersey|F|Daughter|||32|102666 +3010|MN|Fillmore County|Fountain township|527|0|4|Wray|Gene|2996|Sweden|M|Son|||14|102667 +3010|MN|Fillmore County|Fountain township|527|0|5|Wray|Anibal Darryl|3000|Washington|M|Son|||10|102668 +3010|MN|Fillmore County|Fountain township|527|0|6|Wray|Karyn|3001|MN|F|Daughter|||9|102669 +3010|MN|Fillmore County|Fountain township|527|0|7|Wray|Arturo|3005|MN|M|Son|||5|102670 + +3010|PA|Armstrong County|Lenape Heights CDP|528|0|1|Greenhaw|Silas Mitch|2937|Minnesota|M|Head|||73|102671 +3010|PA|Armstrong County|Lenape Heights CDP|528|0|2|Greenhaw|Bernice|2955|Illinois|F|Spouse|||55|102672 +3010|PA|Armstrong County|Lenape Heights CDP|528|0|3|Greenhaw|Bulah|2983|New York|F|Daughter|||27|102673 +3010|PA|Armstrong County|Lenape Heights CDP|528|0|4|Greenhaw|Levi|2987|Tennessee|M|Son|||23|102674 +3010|PA|Armstrong County|Lenape Heights CDP|528|0|5|Greenhaw|Virgil|2997|Nebraska|M|Son|||13|102675 +3010|PA|Armstrong County|Lenape Heights CDP|528|0|6|Greenhaw|Donella|3007|PA|F|Daughter|||3|102676 + +3010|CA|San Bernardino County|Upland city|529|0|1|Rykert|Oscar|2952|Cambodia|F|Head|||58|102677 +3010|CA|San Bernardino County|Upland city|529|0|2|Rykert|Lon|2972|Maryland|M|Son|||38|102678 +3010|CA|San Bernardino County|Upland city|529|0|3|Rykert|Wyatt|2988|South Carolina|M|Son|||22|102679 +3010|CA|San Bernardino County|Upland city|529|0|4|Rykert|Octavia Dania|2994|Haiti|F|Daughter|||16|102680 +3010|CA|San Bernardino County|Upland city|529|0|5|Rykert|Kittie|2998|Oklahoma|F|Daughter|||12|102681 + +3010|MI|Marquette County|Humboldt township|530|0|1|Truman|Rosella|2941|Missouri|F|Spouse|||69|102682 +3010|MI|Marquette County|Humboldt township|530|0|2|Truman|Hans|2967|Delaware|M|Son|||43|102683 +3010|MI|Marquette County|Humboldt township|530|0|3|Truman|Bree|2969|Comoros|F|Daughter|||41|102684 + +3010|MO|St. Louis County|Champ village|531|0|1|Winder|Kristopher Clair|2961|Connecticut|M|Head|||49|102685 +3010|MO|St. Louis County|Champ village|531|0|2|Winder|Mercedez|2969|Arkansas|F|Spouse|||41|102686 +3010|MO|St. Louis County|Champ village|531|0|3|Winder|Gay|2991|Texas|F|Daughter|||19|102687 +3010|MO|St. Louis County|Champ village|531|0|4|Winder|Moises|2997|New Hampshire|M|Son|||13|102688 +3010|MO|St. Louis County|Champ village|531|0|5|Winder|Letha|3003|MO|F|Daughter|||7|102689 +3010|MO|St. Louis County|Champ village|531|0|6|Winder|Patrick Bradley|3005|MO|M|Son|||5|102690 + +3010|AK|Fairbanks North Star Borough|Goldstream CDP|532|0|1|Teran|Randall Romeo|2979|North Dakota|M|Head|||31|102691 + +3010|MD|Prince George's County|Fort Washington CDP|533|0|1|Bowgren|Luetta Lina|2971|Utah|F|Head|||39|102692 +3010|MD|Prince George's County|Fort Washington CDP|533|0|2|Bowgren|Rickie|2991|Iowa|M|Son|||19|102693 +3010|MD|Prince George's County|Fort Washington CDP|533|0|3|Bowgren|Lucia|2993|Texas|F|Daughter|||17|102694 +3010|MD|Prince George's County|Fort Washington CDP|533|0|4|Bowgren|Kevin|2997|California|M|Son|||13|102695 +3010|MD|Prince George's County|Fort Washington CDP|533|0|5|Bowgren|Idell Chana|2999|United Kingdom|F|Daughter|||11|102696 + +3010|GA|Catoosa County|Ringgold city|534|0|1|Relic|Cecil Emery|2951|Utah|M|Head|||59|102697 +3010|GA|Catoosa County|Ringgold city|534|0|2|Relic|Bao|2965|Hawaii|F|Spouse|||45|102698 +3010|GA|Catoosa County|Ringgold city|534|0|3|Relic|Alvin|2995|Massachusetts|M|Son|||15|102699 +3010|GA|Catoosa County|Ringgold city|534|0|4|Relic|Martina|3003|GA|F|Daughter|||7|102700 +3010|GA|Catoosa County|Ringgold city|534|0|5|Relic|Walter|3007|GA|M|Son|||3|102701 + +3010|MT|Cascade County|Great Falls city|535|0|1|Wilhoit|Willy Columbus|2941|Missouri|M|Head|||69|102702 +3010|MT|Cascade County|Great Falls city|535|0|2|Wilhoit|Karon Sina|2938|Alaska|F|Spouse|||72|102703 +3010|MT|Cascade County|Great Falls city|535|0|3|Wilhoit|Harley|2988|Tennessee|M|Son|||22|102704 +3010|MT|Cascade County|Great Falls city|535|0|4|Wilhoit|Elizbeth|3000|Georgia|F|Daughter|||10|102705 +3010|MT|Cascade County|Great Falls city|535|0|5|Wilhoit|Alison|3001|MT|F|Daughter|||9|102706 + +3010|MO|Pemiscot County|Hayti city|536|0|1|Butler|Lupe Jerry|2944|South Dakota|M|Head|||66|102707 +3010|MO|Pemiscot County|Hayti city|536|0|2|Butler|Karoline|2965|Syrian Arab Republic|F|Spouse|||45|102708 +3010|MO|Pemiscot County|Hayti city|536|0|3|Butler|Irwin|2989|Missouri|M|Son|||21|102709 +3010|MO|Pemiscot County|Hayti city|536|0|4|Butler|Natacha|2991|Delaware|F|Daughter|||19|102710 +3010|MO|Pemiscot County|Hayti city|536|0|5|Butler|Aura|2995|Montana|F|Daughter|||15|102711 +3010|MO|Pemiscot County|Hayti city|536|0|6|Butler|Lesley|2997|California|M|Son|||13|102712 +3010|MO|Pemiscot County|Hayti city|536|0|7|Butler|Herta|2999|Arkansas|F|Daughter|||11|102713 +3010|MO|Pemiscot County|Hayti city|536|0|8|Butler|Angelique|3003|MO|F|Daughter|||7|102714 +3010|MO|Pemiscot County|Hayti city|536|0|9|Butler|Lester|3009|MO|M|Son|||1|102715 + +3010|OH|Warren County|Maineville village|537|0|1|Weisbrod|Edgar Delmer|2965|Arizona|M|Head|||45|102716 +3010|OH|Warren County|Maineville village|537|0|2|Weisbrod|Kurtis|2991|Delaware|M|Son|||19|102717 +3010|OH|Warren County|Maineville village|537|0|3|Weisbrod|Alden|2997|Missouri|M|Son|||13|102718 + +3010|WI|Brown County, Outagamie County|Howard village|538|0|1|Burdo|Nick Israel|2954|Utah|M|Head|||56|102719 +3010|WI|Brown County, Outagamie County|Howard village|538|0|2|Burdo|Zena|2964|South Dakota|F|Spouse|||46|102720 +3010|WI|Brown County, Outagamie County|Howard village|538|0|3|Burdo|Lacresha|2986|Montana|F|Daughter|||24|102721 +3010|WI|Brown County, Outagamie County|Howard village|538|0|4|Burdo|Jeffry|2994|Pennsylvania|M|Son|||16|102722 +3010|WI|Brown County, Outagamie County|Howard village|538|0|5|Burdo|Nigel Lacy|2996|Zambia|M|Son|||14|102723 +3010|WI|Brown County, Outagamie County|Howard village|538|0|6|Burdo|Moon|3003|WI|F|Daughter|||7|102724 +3010|WI|Brown County, Outagamie County|Howard village|538|0|7|Burdo|Melisa|3007|WI|F|Daughter|||3|102725 + +3010|OH|Belmont County|Bethesda village|539|0|1|Cordle|Zackary|2978|Virginia|M|Head|||32|102726 +3010|OH|Belmont County|Bethesda village|539|0|2|Cordle|Verena|2983|Maine|F|Spouse|||27|102727 +3010|OH|Belmont County|Bethesda village|539|0|3|Cordle|Filomena Krissy|3001|OH|F|Daughter|||9|102728 +3010|OH|Belmont County|Bethesda village|539|0|4|Cordle|Jenifer|3005|OH|F|Daughter|||5|102729 +3010|OH|Belmont County|Bethesda village|539|0|5|Cordle|Lionel|3007|OH|M|Son|||3|102730 + +3010|PA|Lancaster County|West Hempfield township|540|0|1|Bonder|Lewis Cleveland|2961|Connecticut|M|Head|||49|102731 +3010|PA|Lancaster County|West Hempfield township|540|0|2|Bonder|Earlie Vanesa|2975|Washington|F|Spouse|||35|102732 +3010|PA|Lancaster County|West Hempfield township|540|0|3|Bonder|Norberto|2999|Minnesota|M|Son|||11|102733 +3010|PA|Lancaster County|West Hempfield township|540|0|4|Bonder|Lucas|3007|PA|M|Son|||3|102734 +3010|PA|Lancaster County|West Hempfield township|540|0|5|Bonder|Laquita|3009|PA|F|Daughter|||1|102735 + +3010|MN|Yellow Medicine County|Echo city|541|0|1|Winthrop|Karlene|2979|New York|F|Head|||31|102736 +3010|MN|Yellow Medicine County|Echo city|541|0|2|Winthrop|Leida|2999|Kentucky|F|Daughter|||11|102737 + +3010|PA|Somerset County|Addison borough|542|0|1|Womack|Lonny Nestor|2955|California|M|Head|||55|102738 +3010|PA|Somerset County|Addison borough|542|0|2|Womack|Genesis|2967|Michigan|F|Spouse|||43|102739 +3010|PA|Somerset County|Addison borough|542|0|3|Womack|Chase|2995|Wisconsin|M|Son|||15|102740 +3010|PA|Somerset County|Addison borough|542|0|4|Womack|Bethanie|3001|PA|F|Daughter|||9|102741 +3010|PA|Somerset County|Addison borough|542|0|5|Womack|Byron|3003|PA|M|Son|||7|102742 +3010|PA|Somerset County|Addison borough|542|0|6|Womack|Anglea Cathrine|3005|PA|F|Daughter|||5|102743 + +3010|OH|Adams County|Manchester village|543|0|1|Tandy|Brooks Matt|2947|Brazil|M|Head|||63|102744 +3010|OH|Adams County|Manchester village|543|0|2|Tandy|Stephanie|2960|Rhode Island|F|Spouse|||50|102745 +3010|OH|Adams County|Manchester village|543|0|3|Tandy|Chance Ted|2980|Florida|M|Son|||30|102746 +3010|OH|Adams County|Manchester village|543|0|4|Tandy|Jc|2996|Utah|M|Son|||14|102747 +3010|OH|Adams County|Manchester village|543|0|5|Tandy|Michal|3000|Minnesota|M|Son|||10|102748 +3010|OH|Adams County|Manchester village|543|0|6|Tandy|Betsy|3003|OH|F|Daughter|||7|102749 + +3010|MI|Clinton County|Bath charter township|544|0|1|Davis|Lou Bennett|2968|Guinea-bissau|M|Head|||42|102750 +3010|MI|Clinton County|Bath charter township|544|0|2|Davis|Caprice|2976|Virginia|F|Spouse|||34|102751 +3010|MI|Clinton County|Bath charter township|544|0|3|Davis|Felton|2998|Texas|M|Son|||12|102752 +3010|MI|Clinton County|Bath charter township|544|0|4|Davis|Abram|3001|MI|M|Son|||9|102753 +3010|MI|Clinton County|Bath charter township|544|0|5|Davis|Pamila|3003|MI|F|Daughter|||7|102754 +3010|MI|Clinton County|Bath charter township|544|0|6|Davis|Bruno|3005|MI|M|Son|||5|102755 + +3010|WI|Rock County|Avon town|545|0|1|Davis|Gaston Vance|2940|North Dakota|M|Head|||70|102756 +3010|WI|Rock County|Avon town|545|0|2|Davis|Patrick|2938|Minnesota|F|Spouse|||72|102757 +3010|WI|Rock County|Avon town|545|0|3|Davis|Dorsey Forest|2988|Montana|M|Son|||22|102758 +3010|WI|Rock County|Avon town|545|0|4|Davis|Terrell Dane|2990|New Caledonia|M|Son|||20|102759 +3010|WI|Rock County|Avon town|545|0|5|Davis|Lemuel|2998|Indiana|M|Son|||12|102760 +3010|WI|Rock County|Avon town|545|0|6|Davis|Elin|3003|WI|F|Daughter|||7|102761 +3010|WI|Rock County|Avon town|545|0|7|Davis|Jesusa Aileen|3009|WI|F|Daughter|||1|102762 + +3010|WV|Kanawha County|East Bank town|546|0|1|Padgett|Micheal Rigoberto|2968|Massachusetts|M|Head|||42|102763 +3010|WV|Kanawha County|East Bank town|546|0|2|Padgett|Jeanetta|2972|Wyoming|F|Spouse|||38|102764 +3010|WV|Kanawha County|East Bank town|546|0|3|Padgett|Cortez|2992|Maine|M|Son|||18|102765 +3010|WV|Kanawha County|East Bank town|546|0|4|Padgett|Rachell|3001|WV|F|Daughter|||9|102766 +3010|WV|Kanawha County|East Bank town|546|0|5|Padgett|Lahoma|3003|WV|F|Daughter|||7|102767 +3010|WV|Kanawha County|East Bank town|546|0|6|Padgett|Wilbert|3005|WV|M|Son|||5|102768 +3010|WV|Kanawha County|East Bank town|546|0|7|Padgett|Gaylord|3007|WV|M|Son|||3|102769 + +3010|NY|Schenectady County|Rotterdam CDP|547|0|1|Fasching|Thomas Michael|2956|Arkansas|M|Head|||54|102770 +3010|NY|Schenectady County|Rotterdam CDP|547|0|2|Fasching|Loralee|2963|Georgia|F|Spouse|||47|102771 +3010|NY|Schenectady County|Rotterdam CDP|547|0|3|Fasching|Alta|2985|Washington|F|Daughter|||25|102772 +3010|NY|Schenectady County|Rotterdam CDP|547|0|4|Fasching|Ethelyn Dinah|2995|Nebraska|F|Daughter|||15|102773 +3010|NY|Schenectady County|Rotterdam CDP|547|0|5|Fasching|Griselda|2997|Rhode Island|F|Daughter|||13|102774 +3010|NY|Schenectady County|Rotterdam CDP|547|0|6|Fasching|Sadie|3001|NY|F|Daughter|||9|102775 +3010|NY|Schenectady County|Rotterdam CDP|547|0|7|Fasching|Willette|3007|NY|F|Daughter|||3|102776 + +3010|UT|Cache County|River Heights city|548|0|1|Hile|Gregory|2946|Texas|F|Spouse|||64|102777 +3010|UT|Cache County|River Heights city|548|0|2|Hile|Gerri|2992|Wisconsin|F|Daughter|||18|102778 +3010|UT|Cache County|River Heights city|548|0|3|Hile|Whitney|2998|Maine|M|Son|||12|102779 +3010|UT|Cache County|River Heights city|548|0|4|Hile|Toby|3000|Colorado|M|Son|||10|102780 +3010|UT|Cache County|River Heights city|548|0|5|Hile|Blair|3001|UT|F|Daughter|||9|102781 +3010|UT|Cache County|River Heights city|548|0|6|Hile|Bradford|3007|UT|M|Son|||3|102782 + +3010|HI|Maui County|Waikapu CDP|549|0|1|Gay|Tamatha Cira|2969|Montana|F|Spouse|||41|102783 +3010|HI|Maui County|Waikapu CDP|549|0|2|Gay|Santo|2999|California|M|Son|||11|102784 +3010|HI|Maui County|Waikapu CDP|549|0|3|Gay|Noble Ty|3003|HI|M|Son|||7|102785 +3010|HI|Maui County|Waikapu CDP|549|0|4|Gay|Clarence|3007|HI|F|Daughter|||3|102786 +3010|HI|Maui County|Waikapu CDP|549|0|5|Gay|Hal|3009|HI|M|Son|||1|102787 + +3010|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|1|Mok|Alphonso|2940|Maine|M|Head|||70|102788 +3010|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|2|Mok|Demarcus|2977|Georgia|M|Son|||33|102789 +3010|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|3|Mok|Noe|2987|Oregon|M|Son|||23|102790 +3010|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|4|Mok|Reita Merideth|2989|Tennessee|F|Daughter|||21|102791 +3010|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|5|Mok|Kiera|2993|Michigan|F|Daughter|||17|102792 +3010|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|6|Mok|Napoleon|3005|TX|M|Son|||5|102793 +3010|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|7|Mok|Hyman|3007|TX|M|Son|||3|102794 +3010|TX|Atascosa County, Bexar County, Medina County|Lytle city|550|0|8|Mok|Houston|3009|TX|M|Son|||1|102795 + +3010|IA|Franklin County|Hansell city|551|0|1|Baraby|Deeanna|2989|Connecticut|F|Daughter|||21|102796 +3010|IA|Franklin County|Hansell city|551|0|2|Baraby|Kraig|2991|Minnesota|M|Son|||19|102797 +3010|IA|Franklin County|Hansell city|551|0|3|Baraby|Venetta|2997|Maine|F|Daughter|||13|102798 +3010|IA|Franklin County|Hansell city|551|0|4|Baraby|Barton|2999|Massachusetts|M|Son|||11|102799 +3010|IA|Franklin County|Hansell city|551|0|5|Baraby|Hayley|3003|IA|F|Daughter|||7|102800 + +3010|WI|Trempealeau County|Pigeon Falls village|552|0|1|Sage|Stevie Mauro|2961|Indiana|M|Head|||49|102801 +3010|WI|Trempealeau County|Pigeon Falls village|552|0|2|Sage|Xiao|2967|Minnesota|F|Spouse|||43|102802 +3010|WI|Trempealeau County|Pigeon Falls village|552|0|3|Sage|Kellee|2999|Nevada|F|Daughter|||11|102803 +3010|WI|Trempealeau County|Pigeon Falls village|552|0|4|Sage|Hubert|3001|MN|M|Son|||9|102804 +3010|WI|Trempealeau County|Pigeon Falls village|552|0|5|Sage|Logan|3003|MN|M|Son|||7|102805 +3010|WI|Trempealeau County|Pigeon Falls village|552|0|6|Sage|Wilber|3005|MN|M|Son|||5|102806 +3010|WI|Trempealeau County|Pigeon Falls village|552|0|7|Sage|Tam|3007|WI|F|Daughter|||3|102807 + +3010|OH|Warren County|Pleasant Plain village|553|0|1|Oliver|Ryan German|2939|Virginia|M|Head|||71|102808 +3010|OH|Warren County|Pleasant Plain village|553|0|2|Oliver|Shavonne|2956|South Dakota|F|Spouse|||54|102809 +3010|OH|Warren County|Pleasant Plain village|553|0|3|Oliver|Tora|2980|Brunei Darussalam|F|Daughter|||30|102810 +3010|OH|Warren County|Pleasant Plain village|553|0|4|Oliver|Wilber|2984|Michigan|M|Son|||26|102811 +3010|OH|Warren County|Pleasant Plain village|553|0|5|Oliver|Leann|2996|Mongolia|F|Daughter|||14|102812 +3010|OH|Warren County|Pleasant Plain village|553|0|6|Oliver|Nelson|3003|OH|M|Son|||7|102813 +3010|OH|Warren County|Pleasant Plain village|553|0|7|Oliver|Tyrone|3009|OH|M|Son|||1|102814 + +3010|NJ|Warren County|Liberty township|554|0|1|Kounovsky|Hiram Milan|2967|South Dakota|M|Head|||43|102815 +3010|NJ|Warren County|Liberty township|554|0|2|Kounovsky|Sarina|2975|Arizona|F|Spouse|||35|102816 +3010|NJ|Warren County|Liberty township|554|0|3|Kounovsky|Preston|2995|Nebraska|M|Son|||15|102817 +3010|NJ|Warren County|Liberty township|554|0|4|Kounovsky|Mauro|3003|NJ|M|Son|||7|102818 +3010|NJ|Warren County|Liberty township|554|0|5|Kounovsky|Coleman|3007|NJ|M|Son|||3|102819 +3010|NJ|Warren County|Liberty township|554|0|6|Kounovsky|Charley|3009|NJ|M|Son|||1|102820 + +3010|MI|Huron County|Owendale village|555|0|1|Rodrigez|Gayle Doug|2950|Wisconsin|M|Head|||60|102821 +3010|MI|Huron County|Owendale village|555|0|2|Rodrigez|Sharyn|2948|Arkansas|F|Spouse|||62|102822 +3010|MI|Huron County|Owendale village|555|0|3|Rodrigez|Abdul|3000|Michigan|M|Son|||10|102823 +3010|MI|Huron County|Owendale village|555|0|4|Rodrigez|Rico|3001|MI|M|Son|||9|102824 +3010|MI|Huron County|Owendale village|555|0|5|Rodrigez|Garrett|3003|MI|M|Son|||7|102825 +3010|MI|Huron County|Owendale village|555|0|6|Rodrigez|Norberto|3009|MI|M|Son|||1|102826 + +3010|TX|Jim Wells County|Rancho Alegre CDP|556|0|1|Craven|Jose|2958|West Virginia|M|Head|||52|102827 +3010|TX|Jim Wells County|Rancho Alegre CDP|556|0|2|Craven|Tish|2974|Texas|F|Spouse|||36|102828 +3010|TX|Jim Wells County|Rancho Alegre CDP|556|0|3|Craven|Alphonse|3000|Alabama|M|Son|||10|102829 +3010|TX|Jim Wells County|Rancho Alegre CDP|556|0|4|Craven|Ronald|3001|TX|M|Son|||9|102830 +3010|TX|Jim Wells County|Rancho Alegre CDP|556|0|5|Craven|Arlette|3007|TX|F|Daughter|||3|102831 + +3010|WI|Bayfield County|Grandview town|557|0|1|Kneip|Toccara|2974|Pennsylvania|F|Head|||36|102832 + +3010|MN|Chippewa County|Maynard city|558|0|1|Gasiorowski|Ladawn|2950|New Jersey|F|Head|||60|102833 +3010|MN|Chippewa County|Maynard city|558|0|2|Gasiorowski|Bradley|2994|California|M|Son|||16|102834 +3010|MN|Chippewa County|Maynard city|558|0|3|Gasiorowski|Audria|2996|Texas|F|Daughter|||14|102835 + +3010|NE|York County|Lushton village|559|0|1|Marose|Kory Mark|2954|Vermont|M|Head|||56|102836 +3010|NE|York County|Lushton village|559|0|2|Marose|Johanna|2956|China|F|Spouse|||54|102837 +3010|NE|York County|Lushton village|559|0|3|Marose|Nora|2990|Ohio|F|Daughter|||20|102838 +3010|NE|York County|Lushton village|559|0|4|Marose|Lewis|2996|Nebraska|F|Daughter|||14|102839 +3010|NE|York County|Lushton village|559|0|5|Marose|Suellen Terrell|3003|NE|F|Daughter|||7|102840 +3010|NE|York County|Lushton village|559|0|6|Marose|Bernardo|3005|NE|M|Son|||5|102841 +3010|NE|York County|Lushton village|559|0|7|Marose|Oma|3009|NE|F|Daughter|||1|102842 + +3010|MN|Brown County|Stark township|560|0|1|Truden|Xavier Clint|2974|Nevada|M|Head|||36|102843 + +3010|WA|Spokane County|Millwood town|561|0|1|Lamance|Derek Francesco|2950|Wisconsin|M|Head|||60|102844 +3010|WA|Spokane County|Millwood town|561|0|2|Lamance|Rochelle|2974|Rwanda|F|Spouse|||36|102845 +3010|WA|Spokane County|Millwood town|561|0|3|Lamance|Lyndia|2998|Zimbabwe|F|Daughter|||12|102846 +3010|WA|Spokane County|Millwood town|561|0|4|Lamance|Truman|3000|Arkansas|M|Son|||10|102847 +3010|WA|Spokane County|Millwood town|561|0|5|Lamance|Teodoro|3003|WA|M|Son|||7|102848 + +3010|TX|Lubbock County|Slaton city|562|0|1|Onsurez|Jimmy Eddie|2943|Maryland|M|Head|||67|102849 +3010|TX|Lubbock County|Slaton city|562|0|2|Onsurez|Kandy|2947|Kentucky|F|Spouse|||63|102850 +3010|TX|Lubbock County|Slaton city|562|0|3|Onsurez|Donn|2967|New Jersey|M|Son|||43|102851 +3010|TX|Lubbock County|Slaton city|562|0|4|Onsurez|Zonia|2995|Hawaii|F|Daughter|||15|102852 +3010|TX|Lubbock County|Slaton city|562|0|5|Onsurez|Marianela|2997|Ohio|F|Daughter|||13|102853 +3010|TX|Lubbock County|Slaton city|562|0|6|Onsurez|Kent|3003|TX|M|Son|||7|102854 +3010|TX|Lubbock County|Slaton city|562|0|7|Onsurez|Una|3007|TX|F|Daughter|||3|102855 + +3010|VA|Smyth County|Atkins CDP|563|0|1|Erickson|Kelvin Ernie|2938|Florida|M|Head|||72|102856 +3010|VA|Smyth County|Atkins CDP|563|0|2|Erickson|Lorette|2995|Liberia|F|Daughter|||15|102857 +3010|VA|Smyth County|Atkins CDP|563|0|3|Erickson|Luanne|3001|VA|F|Daughter|||9|102858 +3010|VA|Smyth County|Atkins CDP|563|0|4|Erickson|Connie|3003|VA|M|Son|||7|102859 +3010|VA|Smyth County|Atkins CDP|563|0|5|Erickson|Lino|3007|VA|M|Son|||3|102860 + +3010|GA|Twiggs County, Wilkinson County|Danville town|564|0|1|Doxey|Dedra|2961|Alabama|F|Spouse|||49|102861 +3010|GA|Twiggs County, Wilkinson County|Danville town|564|0|2|Doxey|Gavin|2997|Maine|M|Son|||13|102862 +3010|GA|Twiggs County, Wilkinson County|Danville town|564|0|3|Doxey|Melvin Carol|2999|Alabama|M|Son|||11|102863 +3010|GA|Twiggs County, Wilkinson County|Danville town|564|0|4|Doxey|Raymonde|3001|GA|F|Daughter|||9|102864 +3010|GA|Twiggs County, Wilkinson County|Danville town|564|0|5|Doxey|Estela|3003|GA|F|Daughter|||7|102865 +3010|GA|Twiggs County, Wilkinson County|Danville town|564|0|6|Doxey|Elvie|3005|GA|F|Daughter|||5|102866 +3010|GA|Twiggs County, Wilkinson County|Danville town|564|0|7|Doxey|Kenny|3007|GA|M|Son|||3|102867 + +3010|IL|Effingham County|Altamont city|565|0|1|Mclay|Marlon Lorenzo|2957|Tennessee|M|Head|||53|102868 +3010|IL|Effingham County|Altamont city|565|0|2|Mclay|Delbert|3003|IL|M|Son|||7|102869 +3010|IL|Effingham County|Altamont city|565|0|3|Mclay|Cary|3005|IL|F|Daughter|||5|102870 +3010|IL|Effingham County|Altamont city|565|0|4|Mclay|Lino|3007|IL|M|Son|||3|102871 +3010|IL|Effingham County|Altamont city|565|0|5|Mclay|Daphne Janel|3009|IL|F|Daughter|||1|102872 + +3010|TX|Austin County|Wallis city|566|0|1|Bodrick|Ellsworth|2980|Virginia|M|Head|||30|102873 +3010|TX|Austin County|Wallis city|566|0|2|Bodrick|Katheryn|2976|Kansas|F|Spouse|||34|102874 +3010|TX|Austin County|Wallis city|566|0|3|Bodrick|Val|3000|Virginia|M|Son|||10|102875 +3010|TX|Austin County|Wallis city|566|0|4|Bodrick|Ricky|3001|TX|M|Son|||9|102876 +3010|TX|Austin County|Wallis city|566|0|5|Bodrick|Mohamed|3003|TX|M|Son|||7|102877 +3010|TX|Austin County|Wallis city|566|0|6|Bodrick|Conrad|3005|TX|M|Son|||5|102878 +3010|TX|Austin County|Wallis city|566|0|7|Bodrick|Philip|3007|TX|M|Son|||3|102879 + +3010|NJ|Middlesex County|South Plainfield borough|567|0|1|Jacobs|Melvin|2972|New Jersey|F|Head|||38|102880 +3010|NJ|Middlesex County|South Plainfield borough|567|0|2|Jacobs|Deon Maris|2998|Russian Federation|F|Daughter|||12|102881 + +3010|IA|Clay County|Rossie city|568|0|1|Mcniel|Earle Hershel|2979|Texas|M|Head|||31|102882 +3010|IA|Clay County|Rossie city|568|0|2|Mcniel|Colette Shelby|2998|Japan|F|Daughter|||12|102883 + +3010|OH|Highland County|Leesburg village|569|0|1|Smith|Garth Mason|2945|Alabama|M|Head|||65|102884 +3010|OH|Highland County|Leesburg village|569|0|2|Smith|Bethany|2954|Colorado|F|Spouse|||56|102885 +3010|OH|Highland County|Leesburg village|569|0|3|Smith|Melva|3005|OH|F|Daughter|||5|102886 + +3010|MN|Nobles County|Bigelow city|570|0|1|Lawler|Rueben Arlen|2974|Idaho|M|Head|||36|102887 +3010|MN|Nobles County|Bigelow city|570|0|2|Lawler|Karyl|2983|Michigan|F|Spouse|||27|102888 +3010|MN|Nobles County|Bigelow city|570|0|3|Lawler|Raymon Ernie|3009|MN|M|Son|||1|102889 + +3010|OK|Kiowa County|Lone Wolf town|571|0|1|Palumbo|Gene|2981|Arkansas|M|Head|||29|102890 +3010|OK|Kiowa County|Lone Wolf town|571|0|2|Palumbo|Aaron Genie|3003|OK|F|Daughter|||7|102891 +3010|OK|Kiowa County|Lone Wolf town|571|0|3|Palumbo|Shauna|3005|OK|F|Daughter|||5|102892 +3010|OK|Kiowa County|Lone Wolf town|571|0|4|Palumbo|Brian|3009|OK|M|Son|||1|102893 + +3010|AR|Fulton County, Izard County, Sharp County|Horseshoe Bend city|572|0|1|Smith|Harry Garret|2963|France|M|Head|||47|102894 +3010|AR|Fulton County, Izard County, Sharp County|Horseshoe Bend city|572|0|2|Smith|Ervin|3005|AR|M|Son|||5|102895 +3010|AR|Fulton County, Izard County, Sharp County|Horseshoe Bend city|572|0|3|Smith|Francisco|3007|AR|F|Daughter|||3|102896 +3010|AR|Fulton County, Izard County, Sharp County|Horseshoe Bend city|572|0|4|Smith|Fermin|3009|AR|M|Son|||1|102897 + +3010|OH|Jefferson County|Richmond village|573|0|1|Ybanez|Carmen Lionel|2944|Texas|M|Head|||66|102898 +3010|OH|Jefferson County|Richmond village|573|0|2|Ybanez|Jaclyn Lavonda|2945|Minnesota|F|Spouse|||65|102899 +3010|OH|Jefferson County|Richmond village|573|0|3|Ybanez|Clyde|2983|Estonia|F|Daughter|||27|102900 +3010|OH|Jefferson County|Richmond village|573|0|4|Ybanez|Fernande|2997|Connecticut|F|Daughter|||13|102901 + +3010|IA|Decatur County|Davis City city|574|0|1|Thompson|Toney Lesley|2950|Wisconsin|M|Head|||60|102902 +3010|IA|Decatur County|Davis City city|574|0|2|Thompson|Cira|2952|South Dakota|F|Spouse|||58|102903 +3010|IA|Decatur County|Davis City city|574|0|3|Thompson|Dawna Renetta|2986|Louisiana|F|Daughter|||24|102904 +3010|IA|Decatur County|Davis City city|574|0|4|Thompson|Quinn|2990|North Dakota|M|Son|||20|102905 +3010|IA|Decatur County|Davis City city|574|0|5|Thompson|Leora Annabelle|2998|Tennessee|F|Daughter|||12|102906 +3010|IA|Decatur County|Davis City city|574|0|6|Thompson|Julian|3001|IA|M|Son|||9|102907 +3010|IA|Decatur County|Davis City city|574|0|7|Thompson|Milagro|3003|IA|F|Daughter|||7|102908 +3010|IA|Decatur County|Davis City city|574|0|8|Thompson|Herb|3007|IA|M|Son|||3|102909 + +3010|PA|Potter County|Sweden township|575|0|1|Sponsler|Jamal Cortez|2968|Mauritius|M|Head|||42|102910 + +3010|CA|Imperial County|Calexico city|576|0|1|Roelfs|Brain Rickey|2937|Oklahoma|M|Head|||73|102911 + +3010|PA|Huntingdon County|Three Springs borough|577|0|1|Pouliot|Chase Rhett|2969|New York|M|Head|||41|102912 +3010|PA|Huntingdon County|Three Springs borough|577|0|2|Pouliot|Carmine|2987|Arizona|M|Son|||23|102913 +3010|PA|Huntingdon County|Three Springs borough|577|0|3|Pouliot|Luigi|2991|Tennessee|M|Son|||19|102914 + +3010|OR|Baker County|Halfway city|578|0|1|Thibaut|Kendal|2983|Korea, Democratic People's Republic Of|F|Spouse|||27|102915 +3010|OR|Baker County|Halfway city|578|0|2|Thibaut|Daniele|3001|OR|F|Daughter|||9|102916 +3010|OR|Baker County|Halfway city|578|0|3|Thibaut|Letha|3003|OR|F|Daughter|||7|102917 +3010|OR|Baker County|Halfway city|578|0|4|Thibaut|Matthew|3005|OR|M|Son|||5|102918 +3010|OR|Baker County|Halfway city|578|0|5|Thibaut|Saul|3009|OR|M|Son|||1|102919 + +3010|NH|Strafford County|Durham CDP|579|0|1|Jacques|Merlin Marlin|2956|Florida|M|Head|||54|102920 +3010|NH|Strafford County|Durham CDP|579|0|2|Jacques|Maurice|2968|Ohio|F|Spouse|||42|102921 +3010|NH|Strafford County|Durham CDP|579|0|3|Jacques|Garfield|2996|Vermont|M|Son|||14|102922 +3010|NH|Strafford County|Durham CDP|579|0|4|Jacques|Bertha|3000|West Virginia|F|Daughter|||10|102923 +3010|NH|Strafford County|Durham CDP|579|0|5|Jacques|Herb|3001|NH|M|Son|||9|102924 +3010|NH|Strafford County|Durham CDP|579|0|6|Jacques|Shalanda|3003|NH|F|Daughter|||7|102925 +3010|NH|Strafford County|Durham CDP|579|0|7|Jacques|Lula|3005|NH|F|Daughter|||5|102926 + +3010|CA|Riverside County|Thousand Palms CDP|580|0|1|Pedroso|Burma|2976|New York|F|Spouse|||34|102927 +3010|CA|Riverside County|Thousand Palms CDP|580|0|2|Pedroso|Johnathon|2998|Colorado|M|Son|||12|102928 +3010|CA|Riverside County|Thousand Palms CDP|580|0|3|Pedroso|Frida|3009|CA|F|Daughter|||1|102929 + +3010|PA|Clinton County|Mill Hall borough|581|0|1|Russe|Mariano Morgan|2974|East Timor|M|Head|||36|102930 +3010|PA|Clinton County|Mill Hall borough|581|0|2|Russe|Gia|2984|Wisconsin|F|Spouse|||26|102931 +3010|PA|Clinton County|Mill Hall borough|581|0|3|Russe|Suanne|3001|PA|F|Daughter|||9|102932 +3010|PA|Clinton County|Mill Hall borough|581|0|4|Russe|Brittny|3003|PA|F|Daughter|||7|102933 +3010|PA|Clinton County|Mill Hall borough|581|0|5|Russe|Loren|3007|PA|M|Son|||3|102934 +3010|PA|Clinton County|Mill Hall borough|581|0|6|Russe|Monroe|3009|PA|M|Son|||1|102935 + +3010|ME|Hancock County|Central Hancock UT|582|0|1|Soose|Junior Ivan|2968|North Carolina|M|Head|||42|102936 +3010|ME|Hancock County|Central Hancock UT|582|0|2|Soose|Tianna|2968|Iowa|F|Spouse|||42|102937 +3010|ME|Hancock County|Central Hancock UT|582|0|3|Soose|Gail|2988|Delaware|M|Son|||22|102938 +3010|ME|Hancock County|Central Hancock UT|582|0|4|Soose|Reed William|2990|Turkey|M|Son|||20|102939 +3010|ME|Hancock County|Central Hancock UT|582|0|5|Soose|Audria|2998|Eritrea|F|Daughter|||12|102940 +3010|ME|Hancock County|Central Hancock UT|582|0|6|Soose|Reiko|3000|North Dakota|F|Daughter|||10|102941 +3010|ME|Hancock County|Central Hancock UT|582|0|7|Soose|Holley|3009|ME|F|Daughter|||1|102942 + +3010|MI|Van Buren County|Mattawan village|583|0|1|Sosebee|David Darnell|2952|Delaware|M|Head|||58|102943 +3010|MI|Van Buren County|Mattawan village|583|0|2|Sosebee|Mistie|2995|Indiana|F|Daughter|||15|102944 + +3010|MN|Grant County|Stony Brook township|584|0|1|Berlin|Yulanda|2975|West Virginia|F|Head|||35|102945 +3010|MN|Grant County|Stony Brook township|584|0|2|Berlin|Kimi|2995|New Mexico|F|Daughter|||15|102946 +3010|MN|Grant County|Stony Brook township|584|0|3|Berlin|Fred|2997|Louisiana|M|Son|||13|102947 +3010|MN|Grant County|Stony Brook township|584|0|4|Berlin|Jesus|2999|Wyoming|M|Son|||11|102948 + +3010|AR|Sebastian County|Barling city|585|0|1|Armstead|Val Elias|2946|Maine|M|Head|||64|102949 +3010|AR|Sebastian County|Barling city|585|0|2|Armstead|Annice|2968|Delaware|F|Spouse|||42|102950 +3010|AR|Sebastian County|Barling city|585|0|3|Armstead|Vicky|2988|Virginia|F|Daughter|||22|102951 +3010|AR|Sebastian County|Barling city|585|0|4|Armstead|Harland|2990|Connecticut|M|Son|||20|102952 +3010|AR|Sebastian County|Barling city|585|0|5|Armstead|Myriam|2998|Arkansas|F|Daughter|||12|102953 +3010|AR|Sebastian County|Barling city|585|0|6|Armstead|Wei Richard|3001|AR|F|Daughter|||9|102954 +3010|AR|Sebastian County|Barling city|585|0|7|Armstead|Alfreda|3005|AR|F|Daughter|||5|102955 + +3010|SD|Minnehaha County|Baltic city|586|0|1|Jennifer|Hollis Weston|2950|Iowa|M|Head|||60|102956 +3010|SD|Minnehaha County|Baltic city|586|0|2|Jennifer|Chau|2969|West Virginia|F|Spouse|||41|102957 +3010|SD|Minnehaha County|Baltic city|586|0|3|Jennifer|Constance|3001|SD|F|Daughter|||9|102958 + +3010|MD|Carroll County|Union Bridge town|587|0|1|Heskett|Craig Vernon|2938|Oregon|M|Head|||72|102959 +3010|MD|Carroll County|Union Bridge town|587|0|2|Heskett|Mika|2959|Faroe Islands|F|Spouse|||51|102960 +3010|MD|Carroll County|Union Bridge town|587|0|3|Heskett|Xavier|3001|MD|M|Son|||9|102961 +3010|MD|Carroll County|Union Bridge town|587|0|4|Heskett|Dallas|3009|MD|M|Son|||1|102962 + +3010|KY|Mason County|Dover city|588|0|1|Faustino|Traci|2956|New York|F|Head|||54|102963 +3010|KY|Mason County|Dover city|588|0|2|Faustino|Lorri|2986|Louisiana|F|Daughter|||24|102964 +3010|KY|Mason County|Dover city|588|0|3|Faustino|Millard|2994|Iowa|M|Son|||16|102965 +3010|KY|Mason County|Dover city|588|0|4|Faustino|Cordell|2996|Alabama|M|Son|||14|102966 + +3010|VA|Mathews County|Mathews CDP|589|0|1|Marcelle|Dorian Wayne|2979|Rhode Island|M|Head|||31|102967 + +3010|VA|Loudoun County|Lansdowne CDP|590|0|1|Hawbaker|Karl Kenneth|2946|Hawaii|M|Head|||64|102968 +3010|VA|Loudoun County|Lansdowne CDP|590|0|2|Hawbaker|Jody|2970|Falkland Islands (malvinas)|F|Spouse|||40|102969 +3010|VA|Loudoun County|Lansdowne CDP|590|0|3|Hawbaker|Heide|3000|New York|F|Daughter|||10|102970 +3010|VA|Loudoun County|Lansdowne CDP|590|0|4|Hawbaker|Jerry Clair|3001|MN|M|Son|||9|102971 +3010|VA|Loudoun County|Lansdowne CDP|590|0|5|Hawbaker|Dorothea|3003|MN|F|Daughter|||7|102972 +3010|VA|Loudoun County|Lansdowne CDP|590|0|6|Hawbaker|Soon|3005|MN|F|Daughter|||5|102973 +3010|VA|Loudoun County|Lansdowne CDP|590|0|7|Hawbaker|Ralph|3007|VA|M|Son|||3|102974 +3010|VA|Loudoun County|Lansdowne CDP|590|0|8|Hawbaker|Marti|3009|VA|F|Daughter|||1|102975 + +3010|WI|Richland County|Willow town|591|0|1|Armstrong|Kara|2958|Vermont|F|Head|||52|102976 +3010|WI|Richland County|Willow town|591|0|2|Armstrong|Jackson|2988|New York|M|Son|||22|102977 +3010|WI|Richland County|Willow town|591|0|3|Armstrong|Jessie|2996|Iowa|M|Son|||14|102978 + +3010|MI|Isabella County|Beal City CDP|592|0|1|Levinthal|Logan Donald|2968|Iowa|M|Head|||42|102979 +3010|MI|Isabella County|Beal City CDP|592|0|2|Levinthal|Charlie|2984|Delaware|F|Spouse|||26|102980 +3010|MI|Isabella County|Beal City CDP|592|0|3|Levinthal|Olen|3001|MI|M|Son|||9|102981 +3010|MI|Isabella County|Beal City CDP|592|0|4|Levinthal|Adan Julian|3003|MI|M|Son|||7|102982 + +3010|OK|Dewey County|Vici town|593|0|1|Stclair|Eduardo Hassan|2949|Arizona|M|Head|||61|102983 +3010|OK|Dewey County|Vici town|593|0|2|Stclair|Lucienne|2972|Missouri|F|Spouse|||38|102984 +3010|OK|Dewey County|Vici town|593|0|3|Stclair|Evan|3001|OK|M|Son|||9|102985 +3010|OK|Dewey County|Vici town|593|0|4|Stclair|Williemae|3007|OK|F|Daughter|||3|102986 + +3010|NM|Valencia County|Bosque Farms village|594|0|1|Harrell|Basil Miles|2962|Vermont|M|Head|||48|102987 +3010|NM|Valencia County|Bosque Farms village|594|0|2|Harrell|Kimiko|2978|Pennsylvania|F|Spouse|||32|102988 +3010|NM|Valencia County|Bosque Farms village|594|0|3|Harrell|Edmond|2998|Maryland|M|Son|||12|102989 +3010|NM|Valencia County|Bosque Farms village|594|0|4|Harrell|Jutta|3000|North Carolina|F|Daughter|||10|102990 +3010|NM|Valencia County|Bosque Farms village|594|0|5|Harrell|Francis|3001|NM|M|Son|||9|102991 +3010|NM|Valencia County|Bosque Farms village|594|0|6|Harrell|Jamey|3005|NM|M|Son|||5|102992 + +3010|PA|Crawford County|Woodcock borough|595|0|1|Kunich|Elton|2962|New Mexico|M|Head|||48|102993 +3010|PA|Crawford County|Woodcock borough|595|0|2|Kunich|Lorretta|2967|Sudan|F|Spouse|||43|102994 +3010|PA|Crawford County|Woodcock borough|595|0|3|Kunich|Phuong|2991|California|F|Daughter|||19|102995 +3010|PA|Crawford County|Woodcock borough|595|0|4|Kunich|Burton|2995|Vermont|M|Son|||15|102996 +3010|PA|Crawford County|Woodcock borough|595|0|5|Kunich|Vallie|3001|PA|F|Daughter|||9|102997 +3010|PA|Crawford County|Woodcock borough|595|0|6|Kunich|Nichol|3003|PA|F|Daughter|||7|102998 + +3010|MI|Cass County|Volinia township|596|0|1|Wada|Kirk Claudio|2955|Portugal|M|Head|||55|102999 +3010|MI|Cass County|Volinia township|596|0|2|Wada|Isobel|2993|Florida|F|Daughter|||17|103000 +3010|MI|Cass County|Volinia township|596|0|3|Wada|Dakota|2995|South Dakota|F|Daughter|||15|103001 +3010|MI|Cass County|Volinia township|596|0|4|Wada|Margret|2999|Texas|F|Daughter|||11|103002 + +3010|IA|Linn County|Coggon city|597|0|1|Wiggins|Ian Aldo|2979|New Mexico|M|Head|||31|103003 +3010|IA|Linn County|Coggon city|597|0|2|Wiggins|Bong|2975|Oklahoma|F|Spouse|||35|103004 +3010|IA|Linn County|Coggon city|597|0|3|Wiggins|Tad|2995|New Jersey|M|Son|||15|103005 +3010|IA|Linn County|Coggon city|597|0|4|Wiggins|Austin|2997|Wyoming|M|Son|||13|103006 +3010|IA|Linn County|Coggon city|597|0|5|Wiggins|Cassi|3009|IA|F|Daughter|||1|103007 + +3010|IL|Cook County, Lake County|Palatine village|598|0|1|Speights|Ernest Lucien|2946|Nebraska|M|Head|||64|103008 +3010|IL|Cook County, Lake County|Palatine village|598|0|2|Speights|Janiece|2942|Washington|F|Spouse|||68|103009 +3010|IL|Cook County, Lake County|Palatine village|598|0|3|Speights|Scottie|2996|Aruba|M|Son|||14|103010 +3010|IL|Cook County, Lake County|Palatine village|598|0|4|Speights|Karima|3001|IL|F|Daughter|||9|103011 +3010|IL|Cook County, Lake County|Palatine village|598|0|5|Speights|Hayley|3003|IL|F|Daughter|||7|103012 +3010|IL|Cook County, Lake County|Palatine village|598|0|6|Speights|Valda|3007|IL|F|Daughter|||3|103013 + +3010|FL|Polk County|Davenport city|599|0|1|Dunkle|Rocco Patrick|2941|Maine|M|Head|||69|103014 +3010|FL|Polk County|Davenport city|599|0|2|Dunkle|Suzann|2943|South Dakota|F|Spouse|||67|103015 +3010|FL|Polk County|Davenport city|599|0|3|Dunkle|Malcolm|2989|West Virginia|M|Son|||21|103016 +3010|FL|Polk County|Davenport city|599|0|4|Dunkle|Andreas|2995|Nevada|M|Son|||15|103017 +3010|FL|Polk County|Davenport city|599|0|5|Dunkle|Eboni|2999|French Guiana|F|Daughter|||11|103018 + +3010|AK|Northwest Arctic Borough|Noorvik city|600|0|1|Treff|Louie Jared|2949|Alaska|M|Head|||61|103019 +3010|AK|Northwest Arctic Borough|Noorvik city|600|0|2|Treff|Shirlene|2973|Colorado|F|Spouse|||37|103020 +3010|AK|Northwest Arctic Borough|Noorvik city|600|0|3|Treff|Haywood|2995|Oklahoma|M|Son|||15|103021 +3010|AK|Northwest Arctic Borough|Noorvik city|600|0|4|Treff|Delphine|2997|South Carolina|F|Daughter|||13|103022 +3010|AK|Northwest Arctic Borough|Noorvik city|600|0|5|Treff|Ardith|3007|AK|F|Daughter|||3|103023 + +3010|IL|Montgomery County|Farmersville village|601|0|1|Rebelo|Efrain Peter|2969|Saint Helena|M|Head|||41|103024 +3010|IL|Montgomery County|Farmersville village|601|0|2|Rebelo|Sharla|2981|Delaware|F|Spouse|||29|103025 +3010|IL|Montgomery County|Farmersville village|601|0|3|Rebelo|Harold Rocco|3001|IL|M|Son|||9|103026 +3010|IL|Montgomery County|Farmersville village|601|0|4|Rebelo|Jeff|3005|IL|M|Son|||5|103027 +3010|IL|Montgomery County|Farmersville village|601|0|5|Rebelo|Weldon|3007|IL|M|Son|||3|103028 + +3010|MI|Livingston County|Brighton township|602|0|1|Wanzer|Ivory Robin|2955|Delaware|M|Head|||55|103029 +3010|MI|Livingston County|Brighton township|602|0|2|Wanzer|Julissa|2975|Arkansas|F|Spouse|||35|103030 +3010|MI|Livingston County|Brighton township|602|0|3|Wanzer|Maryellen|2997|Florida|F|Daughter|||13|103031 +3010|MI|Livingston County|Brighton township|602|0|4|Wanzer|Darell|3001|MI|M|Son|||9|103032 +3010|MI|Livingston County|Brighton township|602|0|5|Wanzer|Doyle|3007|MI|M|Son|||3|103033 + +3010|PA|Erie County|Waterford borough|603|0|1|Agustine|Tracey Bryon|2950|Oklahoma|M|Head|||60|103034 +3010|PA|Erie County|Waterford borough|603|0|2|Agustine|Cyrstal|2968|Washington|F|Spouse|||42|103035 +3010|PA|Erie County|Waterford borough|603|0|3|Agustine|Gaston|2994|Wisconsin|M|Son|||16|103036 +3010|PA|Erie County|Waterford borough|603|0|4|Agustine|Marianna|3001|PA|F|Daughter|||9|103037 +3010|PA|Erie County|Waterford borough|603|0|5|Agustine|Jackie|3003|PA|M|Son|||7|103038 +3010|PA|Erie County|Waterford borough|603|0|6|Agustine|Russell Donte|3007|PA|M|Son|||3|103039 + +3010|NJ|Bergen County|Wallington borough|604|0|1|Koschnitzki|Livia|2968|Ohio|F|Head|||42|103040 +3010|NJ|Bergen County|Wallington borough|604|0|2|Koschnitzki|Young Teena|2992|New Mexico|F|Daughter|||18|103041 +3010|NJ|Bergen County|Wallington borough|604|0|3|Koschnitzki|Ramon|3000|Montana|M|Son|||10|103042 + +3010|TX|Limestone County|Kosse town|605|0|1|Montegut|Lottie|2982|Arkansas|F|Spouse|||28|103043 +3010|TX|Limestone County|Kosse town|605|0|2|Montegut|Ricardo|3003|TX|M|Son|||7|103044 +3010|TX|Limestone County|Kosse town|605|0|3|Montegut|Lionel|3005|TX|M|Son|||5|103045 + +3010|PA|Clinton County|Dunnstown CDP|606|0|1|Komada|Shane|2965|Brunei Darussalam|M|Head|||45|103046 +3010|PA|Clinton County|Dunnstown CDP|606|0|2|Komada|Gia|2995|Idaho|F|Daughter|||15|103047 +3010|PA|Clinton County|Dunnstown CDP|606|0|3|Komada|Leeanna Marlin|2999|Wyoming|F|Daughter|||11|103048 + +3010|NY|Delaware County|Roxbury town|607|0|1|Binkley|Millard|2941|France|M|Head|||69|103049 +3010|NY|Delaware County|Roxbury town|607|0|2|Binkley|Tonita|2953|Lao People's Democratic Republic|F|Spouse|||57|103050 +3010|NY|Delaware County|Roxbury town|607|0|3|Binkley|Genia|2977|Faroe Islands|F|Daughter|||33|103051 +3010|NY|Delaware County|Roxbury town|607|0|4|Binkley|Charles|2995|South Dakota|M|Son|||15|103052 +3010|NY|Delaware County|Roxbury town|607|0|5|Binkley|Roberto|2997|North Carolina|M|Son|||13|103053 +3010|NY|Delaware County|Roxbury town|607|0|6|Binkley|Gertha|3005|NY|F|Daughter|||5|103054 +3010|NY|Delaware County|Roxbury town|607|0|7|Binkley|Burt|3009|NY|M|Son|||1|103055 + +3010|NH|Grafton County|Plymouth CDP|608|0|1|Ferrell|Jefferson Olen|2943|Illinois|M|Head|||67|103056 +3010|NH|Grafton County|Plymouth CDP|608|0|2|Ferrell|Dorthea|2953|Peru|F|Spouse|||57|103057 +3010|NH|Grafton County|Plymouth CDP|608|0|3|Ferrell|Coralie|2999|Bouvet Island|F|Daughter|||11|103058 + +3010|IA|Ringgold County|Sun Valley Lake CDP|609|0|1|Surita|Yong Cole|2954|Georgia|M|Head|||56|103059 +3010|IA|Ringgold County|Sun Valley Lake CDP|609|0|2|Surita|Lisabeth|2955|Rhode Island|F|Spouse|||55|103060 +3010|IA|Ringgold County|Sun Valley Lake CDP|609|0|3|Surita|Mariko|2989|Michigan|F|Daughter|||21|103061 +3010|IA|Ringgold County|Sun Valley Lake CDP|609|0|4|Surita|Tamra Demetrice|3001|IA|F|Daughter|||9|103062 +3010|IA|Ringgold County|Sun Valley Lake CDP|609|0|5|Surita|Era Eilene|3005|IA|F|Daughter|||5|103063 + +3010|MI|Leelanau County|Suttons Bay village|610|0|1|Delima|Olin Hobert|2981|Missouri|M|Head|||29|103064 +3010|MI|Leelanau County|Suttons Bay village|610|0|2|Delima|Nadia|2984|Afghanistan|F|Spouse|||26|103065 +3010|MI|Leelanau County|Suttons Bay village|610|0|3|Delima|Krystin|3001|MI|F|Daughter|||9|103066 +3010|MI|Leelanau County|Suttons Bay village|610|0|4|Delima|Loren Vaughn|3003|MI|M|Son|||7|103067 +3010|MI|Leelanau County|Suttons Bay village|610|0|5|Delima|Guillermo Kyle|3005|MI|M|Son|||5|103068 +3010|MI|Leelanau County|Suttons Bay village|610|0|6|Delima|Scotty|3007|MI|M|Son|||3|103069 + +3010|WY|Sweetwater County|James Town CDP|611|0|1|Moore|Elmer|2964|Tennessee|M|Head|||46|103070 +3010|WY|Sweetwater County|James Town CDP|611|0|2|Moore|Jamika|2977|Oman|F|Spouse|||33|103071 +3010|WY|Sweetwater County|James Town CDP|611|0|3|Moore|Karl|2997|Idaho|M|Son|||13|103072 +3010|WY|Sweetwater County|James Town CDP|611|0|4|Moore|Kasie|2999|Saudi Arabia|F|Daughter|||11|103073 +3010|WY|Sweetwater County|James Town CDP|611|0|5|Moore|Dwain|3003|WY|M|Son|||7|103074 +3010|WY|Sweetwater County|James Town CDP|611|0|6|Moore|Natosha|3007|WY|F|Daughter|||3|103075 + +3010|OK|Cimarron County|Keyes town|612|0|1|Perey|Angela|2970|Idaho|F|Spouse|||40|103076 +3010|OK|Cimarron County|Keyes town|612|0|2|Perey|Fatima|2990|San Marino|F|Daughter|||20|103077 +3010|OK|Cimarron County|Keyes town|612|0|3|Perey|Emile|2998|New York|M|Son|||12|103078 +3010|OK|Cimarron County|Keyes town|612|0|4|Perey|Angella|3000|Gibraltar|F|Daughter|||10|103079 +3010|OK|Cimarron County|Keyes town|612|0|5|Perey|Pasquale|3001|OK|M|Son|||9|103080 +3010|OK|Cimarron County|Keyes town|612|0|6|Perey|Natacha|3003|OK|F|Daughter|||7|103081 +3010|OK|Cimarron County|Keyes town|612|0|7|Perey|Monika|3005|OK|F|Daughter|||5|103082 +3010|OK|Cimarron County|Keyes town|612|0|8|Perey|Eloisa|3007|OK|F|Daughter|||3|103083 + +3010|PA|Allegheny County|West Mifflin borough|613|0|1|Vining|Krystina|2954|North Carolina|F|Head|||56|103084 +3010|PA|Allegheny County|West Mifflin borough|613|0|2|Vining|Chadwick|2974|Washington|M|Son|||36|103085 +3010|PA|Allegheny County|West Mifflin borough|613|0|3|Vining|Joel|2990|Idaho|F|Daughter|||20|103086 + +3010|AL|Blount County|Allgood town|614|0|1|Seeley|Kirstie|2969|Costa Rica|F|Head|||41|103087 + +3010|MN|Todd County|West Union city|615|0|1|Jens|Britt Vicente|2978|Oregon|M|Head|||32|103088 +3010|MN|Todd County|West Union city|615|0|2|Jens|Kareen|2980|New Jersey|F|Spouse|||30|103089 +3010|MN|Todd County|West Union city|615|0|3|Jens|Albina|3000|West Virginia|F|Daughter|||10|103090 +3010|MN|Todd County|West Union city|615|0|4|Jens|Mariko|3009|MN|F|Daughter|||1|103091 + +3010|WI|Door County|Egg Harbor town|616|0|1|Crisp|Rosalyn|2985|Montana|F|Daughter|||25|103092 +3010|WI|Door County|Egg Harbor town|616|0|2|Crisp|Karissa|2999|California|F|Daughter|||11|103093 +3010|WI|Door County|Egg Harbor town|616|0|3|Crisp|Tianna|3001|WI|F|Daughter|||9|103094 +3010|WI|Door County|Egg Harbor town|616|0|4|Crisp|Monica|3003|WI|F|Daughter|||7|103095 +3010|WI|Door County|Egg Harbor town|616|0|5|Crisp|Pat|3005|WI|M|Son|||5|103096 +3010|WI|Door County|Egg Harbor town|616|0|6|Crisp|Venetta|3009|WI|F|Daughter|||1|103097 + +3010|WA|King County|SeaTac city|617|0|1|Gookin|Tracey Ismael|2948|Illinois|M|Head|||62|103098 +3010|WA|King County|SeaTac city|617|0|2|Gookin|Trish|2949|New Hampshire|F|Spouse|||61|103099 +3010|WA|King County|SeaTac city|617|0|3|Gookin|Michel Nanci|2997|Utah|F|Daughter|||13|103100 +3010|WA|King County|SeaTac city|617|0|4|Gookin|Britany|2999|New Hampshire|F|Daughter|||11|103101 +3010|WA|King County|SeaTac city|617|0|5|Gookin|Shanice|3001|WA|F|Daughter|||9|103102 +3010|WA|King County|SeaTac city|617|0|6|Gookin|Kia|3005|WA|F|Daughter|||5|103103 +3010|WA|King County|SeaTac city|617|0|7|Gookin|Buford Ollie|3007|WA|M|Son|||3|103104 + +3010|WA|Clallam County|Forks city|618|0|1|Phillips|Tracey|2972|Idaho|F|Head|||38|103105 +3010|WA|Clallam County|Forks city|618|0|2|Phillips|Brianne|2998|Netherlands Antilles|F|Daughter|||12|103106 + +3010|ND|Ramsey County|Devils Lake city|619|0|1|Reznicek|Darron Roosevelt|2943|Alabama|M|Head|||67|103107 +3010|ND|Ramsey County|Devils Lake city|619|0|2|Reznicek|Adaline|2961|Minnesota|F|Spouse|||49|103108 +3010|ND|Ramsey County|Devils Lake city|619|0|3|Reznicek|Tracey|2991|Vermont|M|Son|||19|103109 +3010|ND|Ramsey County|Devils Lake city|619|0|4|Reznicek|Colton|2997|Hawaii|M|Son|||13|103110 +3010|ND|Ramsey County|Devils Lake city|619|0|5|Reznicek|Tristan|3005|ND|M|Son|||5|103111 + +3010|MD|Worcester County|Snow Hill town|620|0|1|Querry|Paul Bobby|2958|Romania|M|Head|||52|103112 + +3010|PA|Delaware County|Aldan borough|621|0|1|Kimmins|Sherita|2937|West Virginia|F|Spouse|||73|103113 +3010|PA|Delaware County|Aldan borough|621|0|2|Kimmins|Cristi Gena|2977|Alabama|F|Daughter|||33|103114 +3010|PA|Delaware County|Aldan borough|621|0|3|Kimmins|Merlyn|2987|Mauritania|F|Daughter|||23|103115 +3010|PA|Delaware County|Aldan borough|621|0|4|Kimmins|Thanh|2997|Louisiana|F|Daughter|||13|103116 +3010|PA|Delaware County|Aldan borough|621|0|5|Kimmins|Titus|3003|PA|M|Son|||7|103117 + +3010|PA|Bucks County|Lower Makefield township|622|0|1|Taylor|Alfredo Arnold|2941|Michigan|M|Head|||69|103118 +3010|PA|Bucks County|Lower Makefield township|622|0|2|Taylor|Vania|2944|Utah|F|Spouse|||66|103119 +3010|PA|Bucks County|Lower Makefield township|622|0|3|Taylor|Geoffrey|2966|Utah|M|Son|||44|103120 +3010|PA|Bucks County|Lower Makefield township|622|0|4|Taylor|Jacob|2972|South Carolina|M|Son|||38|103121 +3010|PA|Bucks County|Lower Makefield township|622|0|5|Taylor|Heidy|2990|Uzbekistan|F|Daughter|||20|103122 +3010|PA|Bucks County|Lower Makefield township|622|0|6|Taylor|Ethyl|3009|PA|F|Daughter|||1|103123 + +3010|MN|Meeker County|Collinwood township|623|0|1|Brum|Mark Ron|2973|Michigan|M|Head|||37|103124 +3010|MN|Meeker County|Collinwood township|623|0|2|Brum|Alisha|2972|South Carolina|F|Spouse|||38|103125 +3010|MN|Meeker County|Collinwood township|623|0|3|Brum|Domingo|2996|Kentucky|M|Son|||14|103126 +3010|MN|Meeker County|Collinwood township|623|0|4|Brum|Jacquetta|2998|California|F|Daughter|||12|103127 +3010|MN|Meeker County|Collinwood township|623|0|5|Brum|Fredricka|3009|MN|F|Daughter|||1|103128 + +3010|IN|Hamilton County|Westfield town|624|0|1|Demarinis|Faustino Cornell|2976|West Virginia|M|Head|||34|103129 +3010|IN|Hamilton County|Westfield town|624|0|2|Demarinis|Evette|2983|Iowa|F|Spouse|||27|103130 +3010|IN|Hamilton County|Westfield town|624|0|3|Demarinis|Ralph Jeffrey|3001|IN|M|Son|||9|103131 +3010|IN|Hamilton County|Westfield town|624|0|4|Demarinis|Mamie|3003|IN|F|Daughter|||7|103132 +3010|IN|Hamilton County|Westfield town|624|0|5|Demarinis|Sid|3009|IN|M|Son|||1|103133 + +3010|MN|Pine County|Henriette city|625|0|1|Norrie|Buck Avery|2960|Michigan|M|Head|||50|103134 +3010|MN|Pine County|Henriette city|625|0|2|Norrie|Yuk|2969|Delaware|F|Spouse|||41|103135 +3010|MN|Pine County|Henriette city|625|0|3|Norrie|Zachary|2995|Nebraska|M|Son|||15|103136 +3010|MN|Pine County|Henriette city|625|0|4|Norrie|Cleora|2999|Missouri|F|Daughter|||11|103137 +3010|MN|Pine County|Henriette city|625|0|5|Norrie|Andre Roger|3001|MN|M|Son|||9|103138 +3010|MN|Pine County|Henriette city|625|0|6|Norrie|Akilah|3003|MN|F|Daughter|||7|103139 +3010|MN|Pine County|Henriette city|625|0|7|Norrie|Hermila|3007|MN|F|Daughter|||3|103140 + +3010|NY|Orange County|Salisbury Mills CDP|626|0|1|Pena|Miles Barney|2957|Djibouti|M|Head|||53|103141 +3010|NY|Orange County|Salisbury Mills CDP|626|0|2|Pena|Lidia|2997|Malaysia|F|Daughter|||13|103142 +3010|NY|Orange County|Salisbury Mills CDP|626|0|3|Pena|Exie|3007|NY|F|Daughter|||3|103143 +3010|NY|Orange County|Salisbury Mills CDP|626|0|4|Pena|Shon|3009|NY|M|Son|||1|103144 + +3010|NC|Cherokee County|Andrews town|627|0|1|Alton|Cordell|2968|Georgia|M|Head|||42|103145 + +3010|WI|Dodge County|Hustisford village|628|0|1|Sprinkel|Orval|2980|Wyoming|M|Head|||30|103146 +3010|WI|Dodge County|Hustisford village|628|0|2|Sprinkel|Georgann Chante|2979|Washington|F|Spouse|||31|103147 +3010|WI|Dodge County|Hustisford village|628|0|3|Sprinkel|Betsey|2999|Moldova, Republic Of|F|Daughter|||11|103148 +3010|WI|Dodge County|Hustisford village|628|0|4|Sprinkel|Francisco|3003|WI|M|Son|||7|103149 +3010|WI|Dodge County|Hustisford village|628|0|5|Sprinkel|Miquel|3005|WI|M|Son|||5|103150 +3010|WI|Dodge County|Hustisford village|628|0|6|Sprinkel|Owen|3009|WI|M|Son|||1|103151 + +3010|NE|Morrill County|Bridgeport city|629|0|1|Gustovich|Kathi|2973|Delaware|F|Head|||37|103152 +3010|NE|Morrill County|Bridgeport city|629|0|2|Gustovich|Marnie|2999|Georgia|F|Daughter|||11|103153 + +3010|NJ|Warren County|Lopatcong Overlook CDP|630|0|1|Tuttle|Cleveland Melvin|2945|Illinois|M|Head|||65|103154 +3010|NJ|Warren County|Lopatcong Overlook CDP|630|0|2|Tuttle|Raymon Alonso|2972|Thailand|M|Son|||38|103155 +3010|NJ|Warren County|Lopatcong Overlook CDP|630|0|3|Tuttle|Henriette|2998|Kansas|F|Daughter|||12|103156 +3010|NJ|Warren County|Lopatcong Overlook CDP|630|0|4|Tuttle|Alix|3000|Indiana|F|Daughter|||10|103157 + +3010|KY|Jefferson County|Murray Hill city|631|0|1|Umberger|Earl Rudolf|2981|South Carolina|M|Head|||29|103158 +3010|KY|Jefferson County|Murray Hill city|631|0|2|Umberger|Li|2977|Vermont|F|Spouse|||33|103159 +3010|KY|Jefferson County|Murray Hill city|631|0|3|Umberger|Sonny|3001|KY|M|Son|||9|103160 +3010|KY|Jefferson County|Murray Hill city|631|0|4|Umberger|Sharan|3003|KY|F|Daughter|||7|103161 +3010|KY|Jefferson County|Murray Hill city|631|0|5|Umberger|Shona|3007|KY|F|Daughter|||3|103162 + +3010|OR|Josephine County|Williams CDP|632|0|1|Tenen|Katharyn|2973|Arizona|F|Spouse|||37|103163 +3010|OR|Josephine County|Williams CDP|632|0|2|Tenen|Wai Maritza|2997|Virginia|F|Daughter|||13|103164 +3010|OR|Josephine County|Williams CDP|632|0|3|Tenen|Renato|3005|MN|M|Son|||5|103165 +3010|OR|Josephine County|Williams CDP|632|0|4|Tenen|Olin|3007|OR|M|Son|||3|103166 + +3010|NH|Coos County|Low and Burbanks grant|633|0|1|Campagne|Felecia|2968|Wyoming|F|Head|||42|103167 +3010|NH|Coos County|Low and Burbanks grant|633|0|2|Campagne|Joey|2996|Argentina|M|Son|||14|103168 +3010|NH|Coos County|Low and Burbanks grant|633|0|3|Campagne|Monty Mathew|3000|New Hampshire|M|Son|||10|103169 + +3010|MS|Leake County|Carthage city|634|0|1|Abraham|Roman Wilbert|2950|Faroe Islands|M|Head|||60|103170 +3010|MS|Leake County|Carthage city|634|0|2|Abraham|Lizbeth|2988|Tennessee|F|Daughter|||22|103171 +3010|MS|Leake County|Carthage city|634|0|3|Abraham|Krystina|2996|Alabama|F|Daughter|||14|103172 +3010|MS|Leake County|Carthage city|634|0|4|Abraham|Willis|3007|MS|M|Son|||3|103173 + +3010|CA|Calaveras County|Arnold CDP|635|0|1|Desporte|Pedro Rueben|2952|Kansas|M|Head|||58|103174 +3010|CA|Calaveras County|Arnold CDP|635|0|2|Desporte|Rolande|2972|Oklahoma|F|Spouse|||38|103175 +3010|CA|Calaveras County|Arnold CDP|635|0|3|Desporte|Thaddeus Jaime|2998|Guinea|M|Son|||12|103176 +3010|CA|Calaveras County|Arnold CDP|635|0|4|Desporte|Lyndsay|3000|Maine|F|Daughter|||10|103177 + +3010|WA|Skamania County|Carson CDP|636|0|1|Cline|Federico Tyler|2939|South Carolina|M|Head|||71|103178 +3010|WA|Skamania County|Carson CDP|636|0|2|Cline|Shanna|2945|New Mexico|F|Spouse|||65|103179 +3010|WA|Skamania County|Carson CDP|636|0|3|Cline|Seymour|2971|Illinois|M|Son|||39|103180 +3010|WA|Skamania County|Carson CDP|636|0|4|Cline|Annemarie|2995|Rhode Island|F|Daughter|||15|103181 +3010|WA|Skamania County|Carson CDP|636|0|5|Cline|Aline|2999|Arkansas|F|Daughter|||11|103182 +3010|WA|Skamania County|Carson CDP|636|0|6|Cline|Ashlea|3001|WA|F|Daughter|||9|103183 +3010|WA|Skamania County|Carson CDP|636|0|7|Cline|Ola|3005|WA|F|Daughter|||5|103184 +3010|WA|Skamania County|Carson CDP|636|0|8|Cline|Kizzie Shana|3007|WA|F|Daughter|||3|103185 + +3010|PA|Montgomery County|Schwenksville borough|637|0|1|Malandruccolo|Billie Stevie|2953|North Dakota|M|Head|||57|103186 +3010|PA|Montgomery County|Schwenksville borough|637|0|2|Malandruccolo|Marth|2949|Indiana|F|Spouse|||61|103187 +3010|PA|Montgomery County|Schwenksville borough|637|0|3|Malandruccolo|Bert|2969|South Carolina|M|Son|||41|103188 +3010|PA|Montgomery County|Schwenksville borough|637|0|4|Malandruccolo|Kati|2979|Arkansas|F|Daughter|||31|103189 +3010|PA|Montgomery County|Schwenksville borough|637|0|5|Malandruccolo|Myung Azzie|2995|Wisconsin|F|Daughter|||15|103190 +3010|PA|Montgomery County|Schwenksville borough|637|0|6|Malandruccolo|Dakota|2997|Nevada|F|Daughter|||13|103191 +3010|PA|Montgomery County|Schwenksville borough|637|0|7|Malandruccolo|Hang|3009|PA|F|Daughter|||1|103192 + +3010|UT|Salt Lake County|West Valley City city|638|0|1|Northcut|Stanton Jimmie|2951|Pennsylvania|M|Head|||59|103193 +3010|UT|Salt Lake County|West Valley City city|638|0|2|Northcut|Rhoda Ma|2959|Mississippi|F|Spouse|||51|103194 +3010|UT|Salt Lake County|West Valley City city|638|0|3|Northcut|Stacy|2991|Louisiana|M|Son|||19|103195 +3010|UT|Salt Lake County|West Valley City city|638|0|4|Northcut|Kathlene|2993|Pennsylvania|F|Daughter|||17|103196 +3010|UT|Salt Lake County|West Valley City city|638|0|5|Northcut|Granville Johnie|2997|Maryland|M|Son|||13|103197 +3010|UT|Salt Lake County|West Valley City city|638|0|6|Northcut|Kayleen Niesha|2999|Singapore|F|Daughter|||11|103198 +3010|UT|Salt Lake County|West Valley City city|638|0|7|Northcut|Jacinto|3003|UT|M|Son|||7|103199 + +3010|ND|Sargent County|Forman city|639|0|1|Nanez|Hilton Chris|2940|Idaho|M|Head|||70|103200 +3010|ND|Sargent County|Forman city|639|0|2|Nanez|Pennie Edythe|2985|California|F|Daughter|||25|103201 +3010|ND|Sargent County|Forman city|639|0|3|Nanez|Cristobal|2987|China|M|Son|||23|103202 +3010|ND|Sargent County|Forman city|639|0|4|Nanez|Moriah|2989|Montana|F|Daughter|||21|103203 +3010|ND|Sargent County|Forman city|639|0|5|Nanez|Marlin|2993|Texas|M|Son|||17|103204 +3010|ND|Sargent County|Forman city|639|0|6|Nanez|Maxie|2995|Florida|F|Daughter|||15|103205 +3010|ND|Sargent County|Forman city|639|0|7|Nanez|Gordon|2997|Tennessee|M|Son|||13|103206 + +3010|WI|Ashland County|Mellen city|640|0|1|Junkins|Anderson Garry|2953|Colorado|M|Head|||57|103207 +3010|WI|Ashland County|Mellen city|640|0|2|Junkins|Shonna|2964|Nebraska|F|Spouse|||46|103208 +3010|WI|Ashland County|Mellen city|640|0|3|Junkins|Elva|2986|Brunei Darussalam|F|Daughter|||24|103209 +3010|WI|Ashland County|Mellen city|640|0|4|Junkins|Seth|2988|Mongolia|M|Son|||22|103210 +3010|WI|Ashland County|Mellen city|640|0|5|Junkins|Larry|3000|Maryland|M|Son|||10|103211 +3010|WI|Ashland County|Mellen city|640|0|6|Junkins|Frankie|3003|DE|M|Son|||7|103212 +3010|WI|Ashland County|Mellen city|640|0|7|Junkins|Delilah|3007|WI|F|Daughter|||3|103213 +3010|WI|Ashland County|Mellen city|640|0|8|Junkins|Wilford|3009|WI|M|Son|||1|103214 + +3010|MI|Marquette County|Republic township|641|0|1|Wooley|Gavin Oliver|2941|Hawaii|M|Head|||69|103215 +3010|MI|Marquette County|Republic township|641|0|2|Wooley|Kelley|2939|Kansas|F|Spouse|||71|103216 +3010|MI|Marquette County|Republic township|641|0|3|Wooley|Lanny|2959|Kentucky|M|Son|||51|103217 +3010|MI|Marquette County|Republic township|641|0|4|Wooley|Nena|2985|New Jersey|F|Daughter|||25|103218 +3010|MI|Marquette County|Republic township|641|0|5|Wooley|Erick|2991|Illinois|M|Son|||19|103219 +3010|MI|Marquette County|Republic township|641|0|6|Wooley|Rigoberto Leroy|3001|MI|M|Son|||9|103220 + +3010|IL|Williamson County|Johnston City city|642|0|1|Padel|Gustavo Cary|2938|Vermont|M|Head|||72|103221 +3010|IL|Williamson County|Johnston City city|642|0|2|Padel|Mittie|2949|California|F|Spouse|||61|103222 +3010|IL|Williamson County|Johnston City city|642|0|3|Padel|Paris|2973|Kenya|F|Daughter|||37|103223 +3010|IL|Williamson County|Johnston City city|642|0|4|Padel|Temple|2993|New Mexico|F|Daughter|||17|103224 +3010|IL|Williamson County|Johnston City city|642|0|5|Padel|Gwendolyn|2995|Alabama|F|Daughter|||15|103225 +3010|IL|Williamson County|Johnston City city|642|0|6|Padel|Lawrence Lamont|3009|IL|M|Son|||1|103226 + +3010|NH|Rockingham County|Atkinson town|643|0|1|Talmage|Percy Hayden|2976|Missouri|M|Head|||34|103227 +3010|NH|Rockingham County|Atkinson town|643|0|2|Talmage|Temeka|2978|South Dakota|F|Spouse|||32|103228 +3010|NH|Rockingham County|Atkinson town|643|0|3|Talmage|Delaine Raylene|2998|Swaziland|F|Daughter|||12|103229 +3010|NH|Rockingham County|Atkinson town|643|0|4|Talmage|Cornell Michale|3001|NH|M|Son|||9|103230 +3010|NH|Rockingham County|Atkinson town|643|0|5|Talmage|Carlo|3003|NH|M|Son|||7|103231 +3010|NH|Rockingham County|Atkinson town|643|0|6|Talmage|Morgan|3009|NH|F|Daughter|||1|103232 + +3010|WA|Snohomish County|Silver Firs CDP|644|0|1|Chattin|Jacqui|2971|Utah|F|Head|||39|103233 +3010|WA|Snohomish County|Silver Firs CDP|644|0|2|Chattin|Hildegarde|2993|Hawaii|F|Daughter|||17|103234 +3010|WA|Snohomish County|Silver Firs CDP|644|0|3|Chattin|Sofia|2995|New York|F|Daughter|||15|103235 +3010|WA|Snohomish County|Silver Firs CDP|644|0|4|Chattin|Nadia|2999|North Dakota|F|Daughter|||11|103236 + +3010|UT|Juab County|Rocky Ridge town|645|0|1|Marlowe|Zelma|2967|Spain|F|Head|||43|103237 +3010|UT|Juab County|Rocky Ridge town|645|0|2|Marlowe|Orville|2991|Rhode Island|M|Son|||19|103238 + +3010|CO|Garfield County|No Name CDP|646|0|1|Knight|Hugh|2947|Missouri|M|Head|||63|103239 +3010|CO|Garfield County|No Name CDP|646|0|2|Knight|Lindsay Caitlin|2951|California|F|Spouse|||59|103240 +3010|CO|Garfield County|No Name CDP|646|0|3|Knight|Shayne|2985|Wyoming|M|Son|||25|103241 +3010|CO|Garfield County|No Name CDP|646|0|4|Knight|Curtis|2989|Kansas|F|Daughter|||21|103242 +3010|CO|Garfield County|No Name CDP|646|0|5|Knight|Isaiah|2995|Iowa|M|Son|||15|103243 +3010|CO|Garfield County|No Name CDP|646|0|6|Knight|Jim|2999|Arizona|M|Son|||11|103244 + +3010|AR|Sebastian County|Hackett city|647|0|1|Miller|Jeromy Erick|2948|Argentina|M|Head|||62|103245 +3010|AR|Sebastian County|Hackett city|647|0|2|Miller|Lean|2963|Virginia|F|Spouse|||47|103246 +3010|AR|Sebastian County|Hackett city|647|0|3|Miller|Rudolph|2993|Iowa|M|Son|||17|103247 +3010|AR|Sebastian County|Hackett city|647|0|4|Miller|Buster Gregg|2995|Ohio|M|Son|||15|103248 +3010|AR|Sebastian County|Hackett city|647|0|5|Miller|Larry|2999|Mississippi|M|Son|||11|103249 +3010|AR|Sebastian County|Hackett city|647|0|6|Miller|Rocky|3001|AR|M|Son|||9|103250 +3010|AR|Sebastian County|Hackett city|647|0|7|Miller|Alaina|3005|AR|F|Daughter|||5|103251 + +3010|TX|Bosque County|Laguna Park CDP|648|0|1|Zeherquist|Harry Colton|2970|Wyoming|M|Head|||40|103252 +3010|TX|Bosque County|Laguna Park CDP|648|0|2|Zeherquist|Toby|3001|TX|M|Son|||9|103253 +3010|TX|Bosque County|Laguna Park CDP|648|0|3|Zeherquist|Cleo|3003|TX|F|Daughter|||7|103254 +3010|TX|Bosque County|Laguna Park CDP|648|0|4|Zeherquist|Bibi|3005|TX|F|Daughter|||5|103255 +3010|TX|Bosque County|Laguna Park CDP|648|0|5|Zeherquist|Jared|3009|TX|M|Son|||1|103256 + +3010|KS|Republic County|Narka city|649|0|1|Mcbride|Johnny Tory|2937|Nevada|M|Head|||73|103257 +3010|KS|Republic County|Narka city|649|0|2|Mcbride|Eulalia|2956|Arkansas|F|Spouse|||54|103258 +3010|KS|Republic County|Narka city|649|0|3|Mcbride|Neville Dick|2984|Nevada|M|Son|||26|103259 +3010|KS|Republic County|Narka city|649|0|4|Mcbride|Jenice|2986|New York|F|Daughter|||24|103260 +3010|KS|Republic County|Narka city|649|0|5|Mcbride|Lajuana|2990|Oklahoma|F|Daughter|||20|103261 +3010|KS|Republic County|Narka city|649|0|6|Mcbride|Melina|3000|Western Sahara|F|Daughter|||10|103262 +3010|KS|Republic County|Narka city|649|0|7|Mcbride|Terrell|3007|KS|F|Daughter|||3|103263 +3010|KS|Republic County|Narka city|649|0|8|Mcbride|Wyatt|3009|KS|M|Son|||1|103264 + +3010|KS|Barton County|Olmitz city|650|0|1|Arroliga|Mandie|2946|Dominican Republic|F|Head|||64|103265 +3010|KS|Barton County|Olmitz city|650|0|2|Arroliga|Normand|2994|Washington|M|Son|||16|103266 +3010|KS|Barton County|Olmitz city|650|0|3|Arroliga|Marc|2998|Australia|M|Son|||12|103267 +3010|KS|Barton County|Olmitz city|650|0|4|Arroliga|Hae|3000|Congo|F|Daughter|||10|103268 + +3010|TX|Starr County|Hilltop CDP|651|0|1|Goeken|Jordon Dane|2962|Liberia|M|Head|||48|103269 + +3010|WV|Fayette County, Nicholas County|Dixie CDP|652|0|1|Vasbinder|Esperanza|2977|Massachusetts|F|Head|||33|103270 +3010|WV|Fayette County, Nicholas County|Dixie CDP|652|0|2|Vasbinder|Glinda|2999|Maryland|F|Daughter|||11|103271 + +3010|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|1|Iorio|Trey Emory|2958|New Mexico|M|Head|||52|103272 +3010|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|2|Iorio|Neomi|2956|Wisconsin|F|Spouse|||54|103273 +3010|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|3|Iorio|Cassandra|2976|Montana|F|Daughter|||34|103274 +3010|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|4|Iorio|Barbar|2990|Fiji|F|Daughter|||20|103275 +3010|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|5|Iorio|Rana|2992|Arkansas|F|Daughter|||18|103276 +3010|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|6|Iorio|Yvone|2996|Illinois|F|Daughter|||14|103277 +3010|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|7|Iorio|Jannie|2998|Indiana|F|Daughter|||12|103278 +3010|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|8|Iorio|Jesenia|3000|Connecticut|F|Daughter|||10|103279 +3010|SD|Minnehaha County|Pine Lakes Addition CDP|653|0|9|Iorio|Allan Coleman|3005|SD|M|Son|||5|103280 + +3010|NY|Columbia County|Greenport town|654|0|1|Smith|Laurence Gustavo|2963|Utah|M|Head|||47|103281 +3010|NY|Columbia County|Greenport town|654|0|2|Smith|Jodie|2964|Missouri|F|Spouse|||46|103282 +3010|NY|Columbia County|Greenport town|654|0|3|Smith|Crysta|2986|Louisiana|F|Daughter|||24|103283 +3010|NY|Columbia County|Greenport town|654|0|4|Smith|Kisha|2988|Kuwait|F|Daughter|||22|103284 +3010|NY|Columbia County|Greenport town|654|0|5|Smith|Ashlee|2990|Iran, Islamic Republic Of|F|Daughter|||20|103285 +3010|NY|Columbia County|Greenport town|654|0|6|Smith|Marilu|3009|NY|F|Daughter|||1|103286 + +3010|OH|Warren County|Five Points CDP|655|0|1|Davis|Joan Gil|2941|Virginia|M|Head|||69|103287 +3010|OH|Warren County|Five Points CDP|655|0|2|Davis|Ofelia|2985|Liberia|F|Daughter|||25|103288 +3010|OH|Warren County|Five Points CDP|655|0|3|Davis|Abraham|2999|Indiana|M|Son|||11|103289 + +3010|NY|Ontario County|Richmond town|656|0|1|Varela|Athena|2981|Wyoming|F|Head|||29|103290 + +3010|KS|Osage County|Olivet city|657|0|1|Odom|Melvin|2984|Louisiana|M|Son|||26|103291 +3010|KS|Osage County|Olivet city|657|0|2|Odom|Valorie Son|2992|Kosovo|F|Daughter|||18|103292 +3010|KS|Osage County|Olivet city|657|0|3|Odom|Salvatore|2994|Iowa|M|Son|||16|103293 +3010|KS|Osage County|Olivet city|657|0|4|Odom|Myles|3000|Georgia|M|Son|||10|103294 + +3010|CA|Mendocino County|Comptche CDP|658|0|1|Mcafee|Isidro Rey|2956|Pennsylvania|M|Head|||54|103295 +3010|CA|Mendocino County|Comptche CDP|658|0|2|Mcafee|Roxy|2956|Montana|F|Spouse|||54|103296 +3010|CA|Mendocino County|Comptche CDP|658|0|3|Mcafee|Ezra|2986|Macau|M|Son|||24|103297 +3010|CA|Mendocino County|Comptche CDP|658|0|4|Mcafee|Kermit Dwain|2988|Colorado|M|Son|||22|103298 +3010|CA|Mendocino County|Comptche CDP|658|0|5|Mcafee|Mckinley|2994|Oregon|M|Son|||16|103299 +3010|CA|Mendocino County|Comptche CDP|658|0|6|Mcafee|Willie|2998|Utah|M|Son|||12|103300 +3010|CA|Mendocino County|Comptche CDP|658|0|7|Mcafee|May|3000|Oklahoma|F|Daughter|||10|103301 +3010|CA|Mendocino County|Comptche CDP|658|0|8|Mcafee|Emile Kory|3009|CA|M|Son|||1|103302 + +3010|MI|Baraga County|Spurr township|659|0|1|Roddey|Leroy Wes|2956|Alaska|M|Head|||54|103303 +3010|MI|Baraga County|Spurr township|659|0|2|Roddey|Delores|2962|New Hampshire|F|Spouse|||48|103304 +3010|MI|Baraga County|Spurr township|659|0|3|Roddey|Patrick|2986|Maryland|F|Daughter|||24|103305 +3010|MI|Baraga County|Spurr township|659|0|4|Roddey|Georgene|2992|Arizona|F|Daughter|||18|103306 +3010|MI|Baraga County|Spurr township|659|0|5|Roddey|Dahlia|2998|Kansas|F|Daughter|||12|103307 +3010|MI|Baraga County|Spurr township|659|0|6|Roddey|Mora|3001|LA|F|Daughter|||9|103308 + +3010|WI|Wood County|Biron village|660|0|1|Steele|Ricky Delmar|2962|Illinois|M|Head|||48|103309 +3010|WI|Wood County|Biron village|660|0|2|Steele|Marth|2965|Wisconsin|F|Spouse|||45|103310 +3010|WI|Wood County|Biron village|660|0|3|Steele|Latoya|2995|Missouri|F|Daughter|||15|103311 +3010|WI|Wood County|Biron village|660|0|4|Steele|Scott|3005|WI|M|Son|||5|103312 + +3010|NY|Ontario County|Bloomfield village|661|0|1|Inzano|Vaughn Gaston|2938|Florida|M|Head|||72|103313 +3010|NY|Ontario County|Bloomfield village|661|0|2|Inzano|Georgette|2989|Oklahoma|F|Daughter|||21|103314 +3010|NY|Ontario County|Bloomfield village|661|0|3|Inzano|Wes|2997|Georgia|M|Son|||13|103315 +3010|NY|Ontario County|Bloomfield village|661|0|4|Inzano|Georgina|2999|Colorado|F|Daughter|||11|103316 +3010|NY|Ontario County|Bloomfield village|661|0|5|Inzano|Angelic|3001|OK|F|Daughter|||9|103317 +3010|NY|Ontario County|Bloomfield village|661|0|6|Inzano|Christian|3003|OK|M|Son|||7|103318 +3010|NY|Ontario County|Bloomfield village|661|0|7|Inzano|Kendrick|3005|OK|M|Son|||5|103319 +3010|NY|Ontario County|Bloomfield village|661|0|8|Inzano|Jamar Norbert|3007|NY|M|Son|||3|103320 +3010|NY|Ontario County|Bloomfield village|661|0|9|Inzano|Erin|3009|NY|M|Son|||1|103321 + +3010|TN|Grundy County|Palmer town|662|0|1|Inguardsen|Stanley Rosario|2937|Colorado|M|Head|||73|103322 +3010|TN|Grundy County|Palmer town|662|0|2|Inguardsen|Azucena|2946|Georgia|F|Spouse|||64|103323 +3010|TN|Grundy County|Palmer town|662|0|3|Inguardsen|Simonne|2986|Cote D'ivoire|F|Daughter|||24|103324 +3010|TN|Grundy County|Palmer town|662|0|4|Inguardsen|Kenisha|2992|North Carolina|F|Daughter|||18|103325 +3010|TN|Grundy County|Palmer town|662|0|5|Inguardsen|Myrna|3000|Florida|F|Daughter|||10|103326 +3010|TN|Grundy County|Palmer town|662|0|6|Inguardsen|Bernie|3001|TN|M|Son|||9|103327 + +3010|VA|Russell County, Wise County|St. Paul town|663|0|1|Stenn|Clemente Elton|2964|Hawaii|M|Head|||46|103328 +3010|VA|Russell County, Wise County|St. Paul town|663|0|2|Stenn|Diedre|2979|Maryland|F|Spouse|||31|103329 +3010|VA|Russell County, Wise County|St. Paul town|663|0|3|Stenn|Piper|3003|VA|F|Daughter|||7|103330 +3010|VA|Russell County, Wise County|St. Paul town|663|0|4|Stenn|Liberty|3009|VA|F|Daughter|||1|103331 + +3010|IA|Benton County|Atkins city|664|0|1|Davis|Shad Hosea|2965|Panama|M|Head|||45|103332 +3010|IA|Benton County|Atkins city|664|0|2|Davis|Anthony|3001|NY|M|Son|||9|103333 +3010|IA|Benton County|Atkins city|664|0|3|Davis|Carroll|3005|NY|M|Son|||5|103334 +3010|IA|Benton County|Atkins city|664|0|4|Davis|Jannette|3007|IA|F|Daughter|||3|103335 + +3010|WI|Columbia County, Sauk County|Lake Wisconsin CDP|665|0|1|Anderson|Berry Spencer|2971|Trinidad And Tobago|M|Head|||39|103336 +3010|WI|Columbia County, Sauk County|Lake Wisconsin CDP|665|0|2|Anderson|Shaunda|2973|Colorado|F|Spouse|||37|103337 +3010|WI|Columbia County, Sauk County|Lake Wisconsin CDP|665|0|3|Anderson|Joann|2993|Monaco|F|Daughter|||17|103338 +3010|WI|Columbia County, Sauk County|Lake Wisconsin CDP|665|0|4|Anderson|Jazmine Cindy|2999|California|F|Daughter|||11|103339 +3010|WI|Columbia County, Sauk County|Lake Wisconsin CDP|665|0|5|Anderson|Harry|3005|WI|M|Son|||5|103340 + +3010|NC|Robeson County|Orrum town|666|0|1|Krejcik|Jason Edmund|2945|Utah|M|Head|||65|103341 +3010|NC|Robeson County|Orrum town|666|0|2|Krejcik|Lashaun|2967|Alaska|F|Spouse|||43|103342 +3010|NC|Robeson County|Orrum town|666|0|3|Krejcik|Ping|2989|Maryland|F|Daughter|||21|103343 +3010|NC|Robeson County|Orrum town|666|0|4|Krejcik|Bonita|2993|West Virginia|F|Daughter|||17|103344 +3010|NC|Robeson County|Orrum town|666|0|5|Krejcik|Hannelore Michiko|2997|Massachusetts|F|Daughter|||13|103345 +3010|NC|Robeson County|Orrum town|666|0|6|Krejcik|Gaynelle|3001|NC|F|Daughter|||9|103346 +3010|NC|Robeson County|Orrum town|666|0|7|Krejcik|Shelby|3007|NC|M|Son|||3|103347 + +3010|PA|Allegheny County|Mount Oliver borough|667|0|1|Faaita|Gaye|2956|Washington|F|Head|||54|103348 +3010|PA|Allegheny County|Mount Oliver borough|667|0|2|Faaita|Darron|2976|Solomon Islands|M|Son|||34|103349 +3010|PA|Allegheny County|Mount Oliver borough|667|0|3|Faaita|Kizzie|2994|Iowa|F|Daughter|||16|103350 + +3010|WI|Rusk County|Conrath village|668|0|1|Scocca|Annika|2964|Nebraska|F|Head|||46|103351 +3010|WI|Rusk County|Conrath village|668|0|2|Scocca|Rico|2984|Samoa|M|Son|||26|103352 +3010|WI|Rusk County|Conrath village|668|0|3|Scocca|Domenic|2998|Florida|M|Son|||12|103353 + +3010|TX|Cochran County|Whiteface town|669|0|1|Dennis|Barrett Marlin|2952|Montana|M|Head|||58|103354 +3010|TX|Cochran County|Whiteface town|669|0|2|Dennis|Katelynn|2962|Nevada|F|Spouse|||48|103355 +3010|TX|Cochran County|Whiteface town|669|0|3|Dennis|Albert|2988|Michigan|M|Son|||22|103356 +3010|TX|Cochran County|Whiteface town|669|0|4|Dennis|Soon|2992|New Mexico|F|Daughter|||18|103357 +3010|TX|Cochran County|Whiteface town|669|0|5|Dennis|Pamila|2994|California|F|Daughter|||16|103358 +3010|TX|Cochran County|Whiteface town|669|0|6|Dennis|Zenia|2998|Alaska|F|Daughter|||12|103359 +3010|TX|Cochran County|Whiteface town|669|0|7|Dennis|Bradford Fritz|3001|TX|M|Son|||9|103360 + +3010|WI|Portage County|Sharon town|670|0|1|Werma|Yulanda|2956|Chile|F|Head|||54|103361 +3010|WI|Portage County|Sharon town|670|0|2|Werma|Tran|2996|Tennessee|F|Daughter|||14|103362 + +3010|WI|Lincoln County|Tomahawk city|671|0|1|Roome|Leisha Kortney|2984|Kentucky|F|Spouse|||26|103363 +3010|WI|Lincoln County|Tomahawk city|671|0|2|Roome|Percy|3005|WI|M|Son|||5|103364 + +3010|MN|Clay County|Baker CDP|672|0|1|Bertsche|Jeremiah Wilfred|2960|Alaska|M|Head|||50|103365 +3010|MN|Clay County|Baker CDP|672|0|2|Bertsche|Rodney|2991|Micronesia, Federated States Of|M|Son|||19|103366 + +3010|MN|Aitkin County|Libby township|673|0|1|Hinkle|Amira|2981|Cambodia|F|Spouse|||29|103367 +3010|MN|Aitkin County|Libby township|673|0|2|Hinkle|Trey|3003|MN|M|Son|||7|103368 +3010|MN|Aitkin County|Libby township|673|0|3|Hinkle|Maurita Arcelia|3005|MN|F|Daughter|||5|103369 + +3010|CT|Tolland County|Rockville CDP|674|0|1|Buckett|Owen|2980|Florida|M|Son|||30|103370 +3010|CT|Tolland County|Rockville CDP|674|0|2|Buckett|Bennie|2998|Nebraska|F|Daughter|||12|103371 + +3010|MA|Plymouth County|Marshfield CDP|675|0|1|Rieff|Moshe Palmer|2964|Belgium|M|Head|||46|103372 +3010|MA|Plymouth County|Marshfield CDP|675|0|2|Rieff|Therese Vikki|2965|Congo|F|Spouse|||45|103373 +3010|MA|Plymouth County|Marshfield CDP|675|0|3|Rieff|Lauren|2999|Maryland|M|Son|||11|103374 +3010|MA|Plymouth County|Marshfield CDP|675|0|4|Rieff|Kandice Avis|3003|MA|F|Daughter|||7|103375 +3010|MA|Plymouth County|Marshfield CDP|675|0|5|Rieff|Toccara|3007|MA|F|Daughter|||3|103376 + +3010|TX|Duval County|Benavides city|676|0|1|Ridenour|Deon Reggie|2965|Wyoming|M|Head|||45|103377 +3010|TX|Duval County|Benavides city|676|0|2|Ridenour|Vivien|2973|California|F|Spouse|||37|103378 +3010|TX|Duval County|Benavides city|676|0|3|Ridenour|Michal|2993|Virginia|M|Son|||17|103379 +3010|TX|Duval County|Benavides city|676|0|4|Ridenour|Heide|2997|Washington|F|Daughter|||13|103380 +3010|TX|Duval County|Benavides city|676|0|5|Ridenour|Rodrigo|3001|TX|M|Son|||9|103381 +3010|TX|Duval County|Benavides city|676|0|6|Ridenour|Cammie|3009|TX|F|Daughter|||1|103382 + +3010|UT|Summit County|Samak CDP|677|0|1|Huber|Donny Sterling|2961|Missouri|M|Head|||49|103383 +3010|UT|Summit County|Samak CDP|677|0|2|Huber|Tara|2977|Wyoming|F|Spouse|||33|103384 +3010|UT|Summit County|Samak CDP|677|0|3|Huber|Eloy|3003|UT|M|Son|||7|103385 +3010|UT|Summit County|Samak CDP|677|0|4|Huber|Weldon|3009|UT|M|Son|||1|103386 + +3010|KS|Republic County|Courtland city|678|0|1|Mason|Jackson|2959|Texas|M|Head|||51|103387 +3010|KS|Republic County|Courtland city|678|0|2|Mason|Willie|2994|San Marino|F|Daughter|||16|103388 +3010|KS|Republic County|Courtland city|678|0|3|Mason|Keith|2998|Washington|M|Son|||12|103389 +3010|KS|Republic County|Courtland city|678|0|4|Mason|Hildegarde Ronna|3001|KS|F|Daughter|||9|103390 +3010|KS|Republic County|Courtland city|678|0|5|Mason|An|3007|KS|F|Daughter|||3|103391 + +3010|IA|Worth County|Northwood city|679|0|1|Levitz|Shila|2964|New Hampshire|F|Spouse|||46|103392 +3010|IA|Worth County|Northwood city|679|0|2|Levitz|Tammie|2996|Moldova, Republic Of|F|Daughter|||14|103393 +3010|IA|Worth County|Northwood city|679|0|3|Levitz|Wilmer|3001|IA|M|Son|||9|103394 +3010|IA|Worth County|Northwood city|679|0|4|Levitz|Faustino|3005|IA|M|Son|||5|103395 + +3010|VT|Orleans County|Orleans village|680|0|1|Carleton|Claude Louie|2946|Vermont|M|Head|||64|103396 +3010|VT|Orleans County|Orleans village|680|0|2|Carleton|Brinda|2970|Montana|F|Daughter|||40|103397 +3010|VT|Orleans County|Orleans village|680|0|3|Carleton|Emely|2980|Suriname|F|Daughter|||30|103398 +3010|VT|Orleans County|Orleans village|680|0|4|Carleton|Hunter|2998|Delaware|M|Son|||12|103399 + +3010|IN|Hamilton County|Fishers town|681|0|1|Krah|Britteny|2952|Suriname|F|Spouse|||58|103400 +3010|IN|Hamilton County|Fishers town|681|0|2|Krah|Hyo|2976|Nevada|F|Daughter|||34|103401 +3010|IN|Hamilton County|Fishers town|681|0|3|Krah|Ivory|2996|Mississippi|M|Son|||14|103402 +3010|IN|Hamilton County|Fishers town|681|0|4|Krah|George|2998|South Carolina|M|Son|||12|103403 +3010|IN|Hamilton County|Fishers town|681|0|5|Krah|Maira|3001|IN|F|Daughter|||9|103404 +3010|IN|Hamilton County|Fishers town|681|0|6|Krah|Jordon|3003|IN|M|Son|||7|103405 +3010|IN|Hamilton County|Fishers town|681|0|7|Krah|Alan|3009|IN|M|Son|||1|103406 + +3010|NJ|Hunterdon County|Milford borough|682|0|1|Gallager|Clement Kennith|2953|Nevada|M|Head|||57|103407 +3010|NJ|Hunterdon County|Milford borough|682|0|2|Gallager|Madie|2968|Utah|F|Spouse|||42|103408 +3010|NJ|Hunterdon County|Milford borough|682|0|3|Gallager|Evie|2994|Iowa|F|Daughter|||16|103409 +3010|NJ|Hunterdon County|Milford borough|682|0|4|Gallager|Alexander Bruno|2996|Utah|M|Son|||14|103410 +3010|NJ|Hunterdon County|Milford borough|682|0|5|Gallager|Gilberto|2998|Hawaii|M|Son|||12|103411 +3010|NJ|Hunterdon County|Milford borough|682|0|6|Gallager|Allyn Therese|3000|Indiana|F|Daughter|||10|103412 +3010|NJ|Hunterdon County|Milford borough|682|0|7|Gallager|Sherrill Saundra|3001|NJ|F|Daughter|||9|103413 +3010|NJ|Hunterdon County|Milford borough|682|0|8|Gallager|Dorthey|3003|NJ|F|Daughter|||7|103414 +3010|NJ|Hunterdon County|Milford borough|682|0|9|Gallager|Evon Jody|3009|NJ|F|Daughter|||1|103415 + +3010|NM|McKinley County|Yah-ta-hey CDP|683|0|1|Sobol|Keira|2986|Dominica|F|Daughter|||24|103416 +3010|NM|McKinley County|Yah-ta-hey CDP|683|0|2|Sobol|Lenard|2988|Virginia|M|Son|||22|103417 +3010|NM|McKinley County|Yah-ta-hey CDP|683|0|3|Sobol|Nannie|2994|Washington|F|Daughter|||16|103418 +3010|NM|McKinley County|Yah-ta-hey CDP|683|0|4|Sobol|Renato Ollie|2998|Kentucky|M|Son|||12|103419 +3010|NM|McKinley County|Yah-ta-hey CDP|683|0|5|Sobol|Cristopher|3000|Western Sahara|M|Son|||10|103420 + +3010|OH|Hamilton County|St. Bernard city|684|0|1|Molloy|Werner Waldo|2940|New York|M|Head|||70|103421 +3010|OH|Hamilton County|St. Bernard city|684|0|2|Molloy|Eldon|2975|Wisconsin|M|Son|||35|103422 +3010|OH|Hamilton County|St. Bernard city|684|0|3|Molloy|Ramon Blaine|2981|Utah|M|Son|||29|103423 +3010|OH|Hamilton County|St. Bernard city|684|0|4|Molloy|Lynn|2995|Missouri|F|Daughter|||15|103424 +3010|OH|Hamilton County|St. Bernard city|684|0|5|Molloy|Jillian Mable|3001|OH|F|Daughter|||9|103425 +3010|OH|Hamilton County|St. Bernard city|684|0|6|Molloy|Issac|3005|OH|M|Son|||5|103426 + +3010|NE|Otoe County|Syracuse city|685|0|1|Gomez|Joseph Larry|2980|Vermont|M|Head|||30|103427 + +3010|KS|Rush County|Otis city|686|0|1|Goodwin|Garth Myron|2966|Texas|M|Head|||44|103428 +3010|KS|Rush County|Otis city|686|0|2|Goodwin|Kimberely|2982|Maryland|F|Spouse|||28|103429 +3010|KS|Rush County|Otis city|686|0|3|Goodwin|Bridgette|3001|KS|F|Daughter|||9|103430 +3010|KS|Rush County|Otis city|686|0|4|Goodwin|Willow Creola|3003|KS|F|Daughter|||7|103431 +3010|KS|Rush County|Otis city|686|0|5|Goodwin|Andrea|3009|KS|F|Daughter|||1|103432 + +3010|TX|DeWitt County, Lavaca County|Yoakum city|687|0|1|Smutnick|Eliseo Darell|2941|Maine|M|Head|||69|103433 +3010|TX|DeWitt County, Lavaca County|Yoakum city|687|0|2|Smutnick|Bart|2986|North Carolina|M|Son|||24|103434 +3010|TX|DeWitt County, Lavaca County|Yoakum city|687|0|3|Smutnick|Davis|2992|British Indian Ocean Territory|M|Son|||18|103435 + +3010|NH|Strafford County|Dover city|688|0|1|Baca|Arnulfo Casey|2941|Washington|M|Head|||69|103436 +3010|NH|Strafford County|Dover city|688|0|2|Baca|Meggan|2970|Vermont|F|Daughter|||40|103437 +3010|NH|Strafford County|Dover city|688|0|3|Baca|Curtis|2986|Mississippi|M|Son|||24|103438 +3010|NH|Strafford County|Dover city|688|0|4|Baca|Bud|2998|Virginia|M|Son|||12|103439 +3010|NH|Strafford County|Dover city|688|0|5|Baca|Rosamaria|3003|NH|F|Daughter|||7|103440 + +3010|MN|Benton County, Morrison County|Royalton city|689|0|1|Zempel|Paris|2946|Maryland|M|Head|||64|103441 +3010|MN|Benton County, Morrison County|Royalton city|689|0|2|Zempel|Delila|2952|Arizona|F|Spouse|||58|103442 +3010|MN|Benton County, Morrison County|Royalton city|689|0|3|Zempel|Ernestine|2996|Saint Vincent And The Grenadines|F|Daughter|||14|103443 +3010|MN|Benton County, Morrison County|Royalton city|689|0|4|Zempel|Vicente|3000|Ohio|M|Son|||10|103444 +3010|MN|Benton County, Morrison County|Royalton city|689|0|5|Zempel|Treena|3005|MN|F|Daughter|||5|103445 + +3010|MN|Wright County|Annandale city|690|0|1|Clubs|Tommy Teddy|2953|Alabama|M|Head|||57|103446 +3010|MN|Wright County|Annandale city|690|0|2|Clubs|Terica|2957|Pennsylvania|F|Spouse|||53|103447 +3010|MN|Wright County|Annandale city|690|0|3|Clubs|William|2995|New Mexico|M|Son|||15|103448 +3010|MN|Wright County|Annandale city|690|0|4|Clubs|Giuseppe|3001|MN|M|Son|||9|103449 +3010|MN|Wright County|Annandale city|690|0|5|Clubs|Elisha|3005|MN|M|Son|||5|103450 + +3010|GA|Heard County|Ephesus city|691|0|1|Peoples|Andrea|2950|Vermont|M|Head|||60|103451 +3010|GA|Heard County|Ephesus city|691|0|2|Peoples|Millard|2996|Utah|M|Son|||14|103452 +3010|GA|Heard County|Ephesus city|691|0|3|Peoples|Shaunte|3000|South Dakota|F|Daughter|||10|103453 + +3010|GA|Fulton County|Johns Creek city|692|0|1|Bungo|Rodger Tristan|2950|Iowa|M|Head|||60|103454 +3010|GA|Fulton County|Johns Creek city|692|0|2|Bungo|Rhea|2995|Wyoming|F|Daughter|||15|103455 +3010|GA|Fulton County|Johns Creek city|692|0|3|Bungo|Sharika|2999|Bangladesh|F|Daughter|||11|103456 + +3010|PA|Sullivan County|Dushore borough|693|0|1|Allen|Buck Ezekiel|2944|Massachusetts|M|Head|||66|103457 +3010|PA|Sullivan County|Dushore borough|693|0|2|Allen|Judie|2982|Barbados|F|Daughter|||28|103458 +3010|PA|Sullivan County|Dushore borough|693|0|3|Allen|Jerrod|2992|Utah|M|Son|||18|103459 +3010|PA|Sullivan County|Dushore borough|693|0|4|Allen|Jacob|2994|Connecticut|M|Son|||16|103460 +3010|PA|Sullivan County|Dushore borough|693|0|5|Allen|Meggan Miyoko|2998|Missouri|F|Daughter|||12|103461 +3010|PA|Sullivan County|Dushore borough|693|0|6|Allen|Tereasa Cinthia|3000|Arkansas|F|Daughter|||10|103462 +3010|PA|Sullivan County|Dushore borough|693|0|7|Allen|Zachary|3003|PA|M|Son|||7|103463 +3010|PA|Sullivan County|Dushore borough|693|0|8|Allen|Floy|3005|PA|F|Daughter|||5|103464 +3010|PA|Sullivan County|Dushore borough|693|0|9|Allen|Fredda|3009|PA|F|Daughter|||1|103465 + +3010|WI|Wood County|Port Edwards village|694|0|1|Accornero|Jarrett|2954|New Jersey|M|Head|||56|103466 +3010|WI|Wood County|Port Edwards village|694|0|2|Accornero|Geralyn|2993|Wyoming|F|Daughter|||17|103467 +3010|WI|Wood County|Port Edwards village|694|0|3|Accornero|Barrett|2997|Tennessee|M|Son|||13|103468 + +3010|WI|Lafayette County|Monticello town|695|0|1|Moan|Abe Jeffery|2953|Nebraska|M|Head|||57|103469 +3010|WI|Lafayette County|Monticello town|695|0|2|Moan|Zelma|2959|Arkansas|F|Spouse|||51|103470 +3010|WI|Lafayette County|Monticello town|695|0|3|Moan|Israel|2991|Arkansas|M|Son|||19|103471 +3010|WI|Lafayette County|Monticello town|695|0|4|Moan|Willy|2995|Oregon|M|Son|||15|103472 +3010|WI|Lafayette County|Monticello town|695|0|5|Moan|Lucina|2997|Delaware|F|Daughter|||13|103473 +3010|WI|Lafayette County|Monticello town|695|0|6|Moan|Domenica|2999|Virginia|F|Daughter|||11|103474 +3010|WI|Lafayette County|Monticello town|695|0|7|Moan|Janelle|3005|WI|F|Daughter|||5|103475 + +3010|MN|Clay County|Georgetown township|696|0|1|Storton|Doloris|2974|Colorado|F|Head|||36|103476 +3010|MN|Clay County|Georgetown township|696|0|2|Storton|Mel|2998|Utah|M|Son|||12|103477 +3010|MN|Clay County|Georgetown township|696|0|3|Storton|Angel|3000|Togo|M|Son|||10|103478 + +3010|MI|Leelanau County|Leland CDP|697|0|1|Saltzberg|Truman Robt|2940|Iowa|M|Head|||70|103479 +3010|MI|Leelanau County|Leland CDP|697|0|2|Saltzberg|Brandon|2960|China|F|Spouse|||50|103480 +3010|MI|Leelanau County|Leland CDP|697|0|3|Saltzberg|Loan|2988|Wisconsin|F|Daughter|||22|103481 +3010|MI|Leelanau County|Leland CDP|697|0|4|Saltzberg|Lucien Ira|3000|New York|M|Son|||10|103482 + +3010|IA|Calhoun County|Lake City city|698|0|1|Reyes|Fernando Garrett|2951|Macedonia, The Former Yugoslav Republic Of|M|Head|||59|103483 +3010|IA|Calhoun County|Lake City city|698|0|2|Reyes|Jeffrey|2968|Pennsylvania|F|Spouse|||42|103484 +3010|IA|Calhoun County|Lake City city|698|0|3|Reyes|Timmy|2994|Arkansas|M|Son|||16|103485 +3010|IA|Calhoun County|Lake City city|698|0|4|Reyes|Odilia|3001|IA|F|Daughter|||9|103486 +3010|IA|Calhoun County|Lake City city|698|0|5|Reyes|Dale|3005|IA|M|Son|||5|103487 + +3010|TX|Shackelford County|Moran city|699|0|1|Renick|Dale Dale|2952|West Virginia|M|Head|||58|103488 +3010|TX|Shackelford County|Moran city|699|0|2|Renick|Chia|2996|Mississippi|F|Daughter|||14|103489 +3010|TX|Shackelford County|Moran city|699|0|3|Renick|Florencia|2998|Idaho|F|Daughter|||12|103490 +3010|TX|Shackelford County|Moran city|699|0|4|Renick|Mose|3000|Kentucky|M|Son|||10|103491 + +3010|WV|Fayette County|Thurmond town|700|0|1|Apt|Alex|2987|Nebraska|M|Son|||23|103492 +3010|WV|Fayette County|Thurmond town|700|0|2|Apt|Julio|2997|Indiana|M|Son|||13|103493 + +3010|MN|Kandiyohi County|Lake Lillian township|701|0|1|Watson|Jamey Cleo|2941|Idaho|M|Head|||69|103494 +3010|MN|Kandiyohi County|Lake Lillian township|701|0|2|Watson|Philomena|2958|Illinois|F|Spouse|||52|103495 +3010|MN|Kandiyohi County|Lake Lillian township|701|0|3|Watson|Ismael Felipe|2990|Washington|M|Son|||20|103496 +3010|MN|Kandiyohi County|Lake Lillian township|701|0|4|Watson|Khalilah|2996|California|F|Daughter|||14|103497 +3010|MN|Kandiyohi County|Lake Lillian township|701|0|5|Watson|Fermin|2998|Tennessee|M|Son|||12|103498 +3010|MN|Kandiyohi County|Lake Lillian township|701|0|6|Watson|Cathleen|3000|New Jersey|F|Daughter|||10|103499 +3010|MN|Kandiyohi County|Lake Lillian township|701|0|7|Watson|Jeffry|3001|MN|M|Son|||9|103500 +3010|MN|Kandiyohi County|Lake Lillian township|701|0|8|Watson|Kyle|3007|MN|M|Son|||3|103501 + +3010|MT|Jefferson County|Whitehall town|702|0|1|Berends|Darnell Winston|2957|Arkansas|M|Head|||53|103502 +3010|MT|Jefferson County|Whitehall town|702|0|2|Berends|Isabella|2963|Oregon|F|Spouse|||47|103503 +3010|MT|Jefferson County|Whitehall town|702|0|3|Berends|Milo|2993|Colorado|M|Son|||17|103504 +3010|MT|Jefferson County|Whitehall town|702|0|4|Berends|Despina|3001|MT|F|Daughter|||9|103505 +3010|MT|Jefferson County|Whitehall town|702|0|5|Berends|Dona Dion|3007|MT|F|Daughter|||3|103506 + +3010|WI|Calumet County|Chilton town|703|0|1|Hall|Mary Antione|2970|Louisiana|M|Head|||40|103507 +3010|WI|Calumet County|Chilton town|703|0|2|Hall|Dell|2993|Lithuania|F|Daughter|||17|103508 +3010|WI|Calumet County|Chilton town|703|0|3|Hall|Cortez|2999|West Virginia|M|Son|||11|103509 + +3010|PA|Blair County|Tyrone borough|704|0|1|Johnson|Jerrod Sebastian|2959|India|M|Head|||51|103510 +3010|PA|Blair County|Tyrone borough|704|0|2|Johnson|Alana Cristen|3009|PA|F|Daughter|||1|103511 + +3010|AR|Lee County|Marianna city|705|0|1|Hoerr|Donnell Francisco|2942|Tokelau|M|Head|||68|103512 +3010|AR|Lee County|Marianna city|705|0|2|Hoerr|Rudy|2996|Vermont|M|Son|||14|103513 + +3010|KS|Meade County|Meade city|706|0|1|Sundt|Paris|2948|Malaysia|M|Head|||62|103514 +3010|KS|Meade County|Meade city|706|0|2|Sundt|Eusebio|2972|Vermont|M|Son|||38|103515 +3010|KS|Meade County|Meade city|706|0|3|Sundt|Pat|2990|Nevada|M|Son|||20|103516 +3010|KS|Meade County|Meade city|706|0|4|Sundt|Felton|2996|Colorado|M|Son|||14|103517 +3010|KS|Meade County|Meade city|706|0|5|Sundt|Zenia|3001|KS|F|Daughter|||9|103518 +3010|KS|Meade County|Meade city|706|0|6|Sundt|Albert|3003|KS|F|Daughter|||7|103519 +3010|KS|Meade County|Meade city|706|0|7|Sundt|Mickey|3005|KS|M|Son|||5|103520 + +3010|IL|LaSalle County|Grand Ridge village|707|0|1|Lachut|Jeffrey Hollis|2976|Venezuela|M|Head|||34|103521 +3010|IL|LaSalle County|Grand Ridge village|707|0|2|Lachut|Darcey|2984|Mississippi|F|Spouse|||26|103522 +3010|IL|LaSalle County|Grand Ridge village|707|0|3|Lachut|Melvin|3001|IL|M|Son|||9|103523 +3010|IL|LaSalle County|Grand Ridge village|707|0|4|Lachut|Randy|3003|IL|M|Son|||7|103524 +3010|IL|LaSalle County|Grand Ridge village|707|0|5|Lachut|Wilhelmina|3009|IL|F|Daughter|||1|103525 + +3010|LA|East Baton Rouge Parish|Gardere CDP|708|0|1|Buhler|Demetrius Shayne|2955|South Carolina|M|Head|||55|103526 +3010|LA|East Baton Rouge Parish|Gardere CDP|708|0|2|Buhler|Araceli|2972|Vermont|F|Spouse|||38|103527 +3010|LA|East Baton Rouge Parish|Gardere CDP|708|0|3|Buhler|Nicholle|3000|Oklahoma|F|Daughter|||10|103528 +3010|LA|East Baton Rouge Parish|Gardere CDP|708|0|4|Buhler|Cary|3001|LA|F|Daughter|||9|103529 +3010|LA|East Baton Rouge Parish|Gardere CDP|708|0|5|Buhler|Harvey|3003|LA|M|Son|||7|103530 +3010|LA|East Baton Rouge Parish|Gardere CDP|708|0|6|Buhler|Emmy|3005|LA|F|Daughter|||5|103531 +3010|LA|East Baton Rouge Parish|Gardere CDP|708|0|7|Buhler|Tanner|3009|LA|M|Son|||1|103532 + +3010|VT|Addison County|Leicester town|709|0|1|Camaron|Cathrine|2970|Indiana|F|Head|||40|103533 +3010|VT|Addison County|Leicester town|709|0|2|Camaron|Isobel|2994|Georgia|F|Daughter|||16|103534 + +3010|PA|Butler County|Worth township|710|0|1|Retterbush|Danial Jere|2964|Wyoming|M|Head|||46|103535 +3010|PA|Butler County|Worth township|710|0|2|Retterbush|Lavera Megan|2979|Reunion|F|Spouse|||31|103536 +3010|PA|Butler County|Worth township|710|0|3|Retterbush|Jake|3001|PA|M|Son|||9|103537 +3010|PA|Butler County|Worth township|710|0|4|Retterbush|Sanjuanita|3005|PA|F|Daughter|||5|103538 + +3010|MN|Big Stone County|Graceville city|711|0|1|Ziadie|David Vito|2966|Florida|M|Head|||44|103539 +3010|MN|Big Stone County|Graceville city|711|0|2|Ziadie|Arica|2990|Nevada|F|Daughter|||20|103540 +3010|MN|Big Stone County|Graceville city|711|0|3|Ziadie|Shaquana|2992|Alabama|F|Daughter|||18|103541 +3010|MN|Big Stone County|Graceville city|711|0|4|Ziadie|Buster Eugene|2996|Sudan|M|Son|||14|103542 +3010|MN|Big Stone County|Graceville city|711|0|5|Ziadie|Rolf|2998|Nevada|M|Son|||12|103543 +3010|MN|Big Stone County|Graceville city|711|0|6|Ziadie|Ezra|3000|Somalia|M|Son|||10|103544 +3010|MN|Big Stone County|Graceville city|711|0|7|Ziadie|Jonah|3003|MN|M|Son|||7|103545 + +3010|TN|Grainger County|Blaine city|712|0|1|Jones|Justine|2965|Rhode Island|F|Spouse|||45|103546 +3010|TN|Grainger County|Blaine city|712|0|2|Jones|Rickey|2985|Mayotte|M|Son|||25|103547 +3010|TN|Grainger County|Blaine city|712|0|3|Jones|Rory|2987|Oklahoma|M|Son|||23|103548 +3010|TN|Grainger County|Blaine city|712|0|4|Jones|Palmer|2995|North Dakota|M|Son|||15|103549 +3010|TN|Grainger County|Blaine city|712|0|5|Jones|Cole Devon|2997|South Carolina|M|Son|||13|103550 +3010|TN|Grainger County|Blaine city|712|0|6|Jones|Enola|2999|Arizona|F|Daughter|||11|103551 +3010|TN|Grainger County|Blaine city|712|0|7|Jones|Denisse Tracy|3001|MN|F|Daughter|||9|103552 +3010|TN|Grainger County|Blaine city|712|0|8|Jones|Johnnie|3007|TN|F|Daughter|||3|103553 + +3010|GA|Jackson County|Talmo town|713|0|1|Carr|Retha|2950|Kansas|F|Head|||60|103554 +3010|GA|Jackson County|Talmo town|713|0|2|Carr|Lester|2978|Colorado|M|Son|||32|103555 +3010|GA|Jackson County|Talmo town|713|0|3|Carr|Jenifer Meggan|3000|Utah|F|Daughter|||10|103556 + +3010|MN|Wilkin County|Breckenridge city|714|0|1|Born|Lucio Bryce|2938|Nevada|M|Head|||72|103557 +3010|MN|Wilkin County|Breckenridge city|714|0|2|Born|Oleta|2962|Indiana|F|Spouse|||48|103558 +3010|MN|Wilkin County|Breckenridge city|714|0|3|Born|Gavin|2990|Mississippi|M|Son|||20|103559 +3010|MN|Wilkin County|Breckenridge city|714|0|4|Born|Nisha|2996|Michigan|F|Daughter|||14|103560 +3010|MN|Wilkin County|Breckenridge city|714|0|5|Born|Jerrod|3000|Saint Kitts And Nevis|M|Son|||10|103561 +3010|MN|Wilkin County|Breckenridge city|714|0|6|Born|Andres|3005|MN|M|Son|||5|103562 + +3010|PA|Lancaster County|Salunga CDP|715|0|1|Camisa|Nigel Pasquale|2946|Idaho|M|Head|||64|103563 +3010|PA|Lancaster County|Salunga CDP|715|0|2|Camisa|Sherwood|2995|Oklahoma|M|Son|||15|103564 +3010|PA|Lancaster County|Salunga CDP|715|0|3|Camisa|Moira|2999|South Dakota|F|Daughter|||11|103565 + +3010|PA|Bucks County|Richland township|716|0|1|Dann|Lamont Leopoldo|2953|Hawaii|M|Head|||57|103566 +3010|PA|Bucks County|Richland township|716|0|2|Dann|Ann|2997|North Dakota|F|Daughter|||13|103567 +3010|PA|Bucks County|Richland township|716|0|3|Dann|Jenniffer|2999|Missouri|F|Daughter|||11|103568 +3010|PA|Bucks County|Richland township|716|0|4|Dann|Tomas|3001|PA|M|Son|||9|103569 +3010|PA|Bucks County|Richland township|716|0|5|Dann|Erich|3005|PA|M|Son|||5|103570 +3010|PA|Bucks County|Richland township|716|0|6|Dann|Kyle|3009|PA|M|Son|||1|103571 + +3010|SD|Turner County|Viborg city|717|0|1|Salzar|Vincent|2953|New Mexico|M|Head|||57|103572 +3010|SD|Turner County|Viborg city|717|0|2|Salzar|Nila|2972|Ohio|F|Daughter|||38|103573 +3010|SD|Turner County|Viborg city|717|0|3|Salzar|Joe|2984|Iraq|M|Son|||26|103574 +3010|SD|Turner County|Viborg city|717|0|4|Salzar|Don|2992|West Virginia|M|Son|||18|103575 +3010|SD|Turner County|Viborg city|717|0|5|Salzar|Chanell|2996|Colorado|F|Daughter|||14|103576 +3010|SD|Turner County|Viborg city|717|0|6|Salzar|Millie|2998|Colorado|F|Daughter|||12|103577 + +3010|MN|Clay County|Hitterdal city|718|0|1|Pardi|Ashly|2965|Gibraltar|F|Head|||45|103578 +3010|MN|Clay County|Hitterdal city|718|0|2|Pardi|Milissa|2997|Oklahoma|F|Daughter|||13|103579 +3010|MN|Clay County|Hitterdal city|718|0|3|Pardi|Bryant|2999|Massachusetts|M|Son|||11|103580 + +3010|MI|Lapeer County|Attica township|719|0|1|Rios|Latonya|2996|Sierra Leone|F|Daughter|||14|103581 + +3010|MN|Jackson County|Heron Lake city|720|0|1|Hauk|Doug Ken|2974|Michigan|M|Head|||36|103582 +3010|MN|Jackson County|Heron Lake city|720|0|2|Hauk|Pauline|2979|Tennessee|F|Spouse|||31|103583 +3010|MN|Jackson County|Heron Lake city|720|0|3|Hauk|Kevin|2999|Virginia|M|Son|||11|103584 +3010|MN|Jackson County|Heron Lake city|720|0|4|Hauk|Drew|3003|WV|M|Son|||7|103585 +3010|MN|Jackson County|Heron Lake city|720|0|5|Hauk|Merrie Viola|3007|MN|F|Daughter|||3|103586 +3010|MN|Jackson County|Heron Lake city|720|0|6|Hauk|Hang|3009|MN|F|Daughter|||1|103587 + +3010|WV|Kanawha County|Marmet city|721|0|1|Wingerson|Gil Sam|2937|Mississippi|M|Head|||73|103588 +3010|WV|Kanawha County|Marmet city|721|0|2|Wingerson|Vaughn|2962|Oklahoma|M|Son|||48|103589 +3010|WV|Kanawha County|Marmet city|721|0|3|Wingerson|Kai|2976|Sierra Leone|F|Daughter|||34|103590 +3010|WV|Kanawha County|Marmet city|721|0|4|Wingerson|Magdalene|2996|Minnesota|F|Daughter|||14|103591 + +3010|MN|Waseca County|New Richland city|722|0|1|Nicklas|Hilton Santiago|2966|Minnesota|M|Head|||44|103592 +3010|MN|Waseca County|New Richland city|722|0|2|Nicklas|Diann|2979|Hawaii|F|Spouse|||31|103593 +3010|MN|Waseca County|New Richland city|722|0|3|Nicklas|Ayanna|2999|California|F|Daughter|||11|103594 +3010|MN|Waseca County|New Richland city|722|0|4|Nicklas|Jonah|3003|MN|M|Son|||7|103595 +3010|MN|Waseca County|New Richland city|722|0|5|Nicklas|Anika Deon|3007|MN|F|Daughter|||3|103596 + +3010|PA|Carbon County|Jim Thorpe borough|723|0|1|Boshard|Garfield Avery|2941|Maine|M|Head|||69|103597 +3010|PA|Carbon County|Jim Thorpe borough|723|0|2|Boshard|Madalyn|2943|French Guiana|F|Spouse|||67|103598 +3010|PA|Carbon County|Jim Thorpe borough|723|0|3|Boshard|Carin|2985|Kentucky|F|Daughter|||25|103599 +3010|PA|Carbon County|Jim Thorpe borough|723|0|4|Boshard|Loretta|2995|Delaware|F|Daughter|||15|103600 +3010|PA|Carbon County|Jim Thorpe borough|723|0|5|Boshard|Ethelyn|2997|Korea, Democratic People's Republic Of|F|Daughter|||13|103601 +3010|PA|Carbon County|Jim Thorpe borough|723|0|6|Boshard|Man|2999|Delaware|M|Son|||11|103602 +3010|PA|Carbon County|Jim Thorpe borough|723|0|7|Boshard|Pasquale|3009|PA|M|Son|||1|103603 + +3010|NY|Ontario County|East Bloomfield town|724|0|1|Mercer|Robt Clemente|2943|Michigan|M|Head|||67|103604 +3010|NY|Ontario County|East Bloomfield town|724|0|2|Mercer|Chung|2963|Massachusetts|F|Spouse|||47|103605 +3010|NY|Ontario County|East Bloomfield town|724|0|3|Mercer|Shanae|2983|South Carolina|F|Daughter|||27|103606 +3010|NY|Ontario County|East Bloomfield town|724|0|4|Mercer|Edna|2995|Alaska|F|Daughter|||15|103607 +3010|NY|Ontario County|East Bloomfield town|724|0|5|Mercer|Melisa|2997|Oklahoma|F|Daughter|||13|103608 +3010|NY|Ontario County|East Bloomfield town|724|0|6|Mercer|Maira|2999|Texas|F|Daughter|||11|103609 +3010|NY|Ontario County|East Bloomfield town|724|0|7|Mercer|Vance Glen|3007|NY|M|Son|||3|103610 + +3010|OH|Clermont County|Mulberry CDP|725|0|1|Burns|Lee Moses|2949|Michigan|M|Head|||61|103611 +3010|OH|Clermont County|Mulberry CDP|725|0|2|Burns|Shonta|2973|Michigan|F|Spouse|||37|103612 +3010|OH|Clermont County|Mulberry CDP|725|0|3|Burns|Jewell Jerrold|3007|OH|M|Son|||3|103613 +3010|OH|Clermont County|Mulberry CDP|725|0|4|Burns|Ellis|3009|OH|F|Daughter|||1|103614 + +3010|IL|Champaign County|Urbana city|726|0|1|Rhoderick|Vincent Nelson|2979|Wyoming|M|Head|||31|103615 +3010|IL|Champaign County|Urbana city|726|0|2|Rhoderick|Krista Cleopatra|2980|North Dakota|F|Spouse|||30|103616 +3010|IL|Champaign County|Urbana city|726|0|3|Rhoderick|Jaclyn|3000|Trinidad And Tobago|F|Daughter|||10|103617 +3010|IL|Champaign County|Urbana city|726|0|4|Rhoderick|Jewell|3003|IL|M|Son|||7|103618 + +3010|PA|Blair County|North Woodbury township|727|0|1|Caffey|Morris Solomon|2951|Saint Pierre And Miquelon|M|Head|||59|103619 +3010|PA|Blair County|North Woodbury township|727|0|2|Caffey|Cayla|2954|Texas|F|Spouse|||56|103620 +3010|PA|Blair County|North Woodbury township|727|0|3|Caffey|Bob Jean|2978|Virginia|M|Son|||32|103621 +3010|PA|Blair County|North Woodbury township|727|0|4|Caffey|Chantal Taisha|2990|Vermont|F|Daughter|||20|103622 +3010|PA|Blair County|North Woodbury township|727|0|5|Caffey|Kristofer|2998|Wyoming|M|Son|||12|103623 +3010|PA|Blair County|North Woodbury township|727|0|6|Caffey|Vina|3005|PA|F|Daughter|||5|103624 +3010|PA|Blair County|North Woodbury township|727|0|7|Caffey|Franklyn|3009|PA|M|Son|||1|103625 + +3010|AK|Bethel Census Area|Akiachak CDP|728|0|1|Jett|Xavier|2989|Nevada|M|Son|||21|103626 +3010|AK|Bethel Census Area|Akiachak CDP|728|0|2|Jett|Ronni|2991|South Carolina|F|Daughter|||19|103627 +3010|AK|Bethel Census Area|Akiachak CDP|728|0|3|Jett|Marguerite|2995|Iowa|F|Daughter|||15|103628 +3010|AK|Bethel Census Area|Akiachak CDP|728|0|4|Jett|Leonardo|3007|AK|M|Son|||3|103629 + +3010|NV|Lyon County|Silver Springs CDP|729|0|1|Sandoval|Yong Kermit|2958|France|M|Head|||52|103630 +3010|NV|Lyon County|Silver Springs CDP|729|0|2|Sandoval|Creola|2966|North Carolina|F|Spouse|||44|103631 +3010|NV|Lyon County|Silver Springs CDP|729|0|3|Sandoval|Oswaldo|2988|Idaho|M|Son|||22|103632 +3010|NV|Lyon County|Silver Springs CDP|729|0|4|Sandoval|Louise|2990|Maine|F|Daughter|||20|103633 +3010|NV|Lyon County|Silver Springs CDP|729|0|5|Sandoval|Sonya|2996|Bangladesh|F|Daughter|||14|103634 + +3010|MN|Lake of the Woods County|Spooner township|730|0|1|Carlin|Kerry Ed|2946|Texas|M|Head|||64|103635 +3010|MN|Lake of the Woods County|Spooner township|730|0|2|Carlin|Mitchel|2987|Wyoming|M|Son|||23|103636 +3010|MN|Lake of the Woods County|Spooner township|730|0|3|Carlin|Darrel|2997|Rhode Island|M|Son|||13|103637 + +3010|ME|Cumberland County|Long Island town|731|0|1|Bronson|Barbara|2969|Hawaii|F|Spouse|||41|103638 +3010|ME|Cumberland County|Long Island town|731|0|2|Bronson|Lan Vincenza|2989|Wyoming|F|Daughter|||21|103639 +3010|ME|Cumberland County|Long Island town|731|0|3|Bronson|Santiago Marcos|3001|ME|M|Son|||9|103640 +3010|ME|Cumberland County|Long Island town|731|0|4|Bronson|Patrick|3003|ME|F|Daughter|||7|103641 + +3010|CA|Tulare County|Strathmore CDP|732|0|1|Pettibon|Annabel|2981|Bahrain|F|Head|||29|103642 + +3010|NJ|Warren County|Hainesburg CDP|733|0|1|Hernandez|Devon|2966|Ohio|F|Head|||44|103643 +3010|NJ|Warren County|Hainesburg CDP|733|0|2|Hernandez|Madalyn|2988|Ohio|F|Daughter|||22|103644 + +3010|MI|Allegan County|Ganges township|734|0|1|Janssen|Armando Oliver|2937|Bosnia And Herzegovina|M|Head|||73|103645 + +3010|LA|St. Tammany Parish|Mandeville city|735|0|1|Branco|Franklin Norman|2950|Vermont|M|Head|||60|103646 +3010|LA|St. Tammany Parish|Mandeville city|735|0|2|Branco|Dot|2971|Montana|F|Spouse|||39|103647 +3010|LA|St. Tammany Parish|Mandeville city|735|0|3|Branco|Natividad|2991|New Hampshire|F|Daughter|||19|103648 +3010|LA|St. Tammany Parish|Mandeville city|735|0|4|Branco|Jamison|2995|Wyoming|M|Son|||15|103649 +3010|LA|St. Tammany Parish|Mandeville city|735|0|5|Branco|Zane|2997|Iowa|M|Son|||13|103650 +3010|LA|St. Tammany Parish|Mandeville city|735|0|6|Branco|Jamison|3003|LA|M|Son|||7|103651 + +3010|WI|Columbia County|Lodi city|736|0|1|Davis|Tracy Trinidad|2950|Saudi Arabia|M|Head|||60|103652 +3010|WI|Columbia County|Lodi city|736|0|2|Davis|Erline|2972|Rhode Island|F|Spouse|||38|103653 +3010|WI|Columbia County|Lodi city|736|0|3|Davis|Lindsey|2992|Tennessee|M|Son|||18|103654 +3010|WI|Columbia County|Lodi city|736|0|4|Davis|Eldridge Genaro|2996|Michigan|M|Son|||14|103655 +3010|WI|Columbia County|Lodi city|736|0|5|Davis|Vern Bryon|3001|WI|M|Son|||9|103656 + +3010|OH|Butler County, Warren County|Middletown city|737|0|1|Beaudoin|Fernande|2937|South Carolina|F|Head|||73|103657 +3010|OH|Butler County, Warren County|Middletown city|737|0|2|Beaudoin|Gita|2971|South Dakota|F|Daughter|||39|103658 +3010|OH|Butler County, Warren County|Middletown city|737|0|3|Beaudoin|Aron|2977|Kosovo|M|Son|||33|103659 + +3010|KY|Jefferson County|Bellemeade city|738|0|1|Watson|Vaughn Cordell|2944|Delaware|M|Head|||66|103660 +3010|KY|Jefferson County|Bellemeade city|738|0|2|Watson|Maurice Doyle|2981|New York|M|Son|||29|103661 +3010|KY|Jefferson County|Bellemeade city|738|0|3|Watson|Darius|2985|Alabama|M|Son|||25|103662 +3010|KY|Jefferson County|Bellemeade city|738|0|4|Watson|Shiloh Kenyatta|2999|Alabama|F|Daughter|||11|103663 +3010|KY|Jefferson County|Bellemeade city|738|0|5|Watson|Harrison|3001|KY|M|Son|||9|103664 + +3010|PA|Northampton County|Hanover township|739|0|1|Andrews|Hai|2966|Nebraska|M|Head|||44|103665 +3010|PA|Northampton County|Hanover township|739|0|2|Andrews|Tamera Delsie|2982|Botswana|F|Spouse|||28|103666 +3010|PA|Northampton County|Hanover township|739|0|3|Andrews|Miles|3001|PA|M|Son|||9|103667 +3010|PA|Northampton County|Hanover township|739|0|4|Andrews|Buford|3003|PA|M|Son|||7|103668 +3010|PA|Northampton County|Hanover township|739|0|5|Andrews|Yukiko|3007|PA|F|Daughter|||3|103669 +3010|PA|Northampton County|Hanover township|739|0|6|Andrews|Candis|3009|PA|F|Daughter|||1|103670 + +3010|PR|Lajas Municipio|Lajas zona urbana|740|0|1|Alavi|Kelley Frederick|2950|Senegal|M|Head|||60|103671 +3010|PR|Lajas Municipio|Lajas zona urbana|740|0|2|Alavi|Aletha|2963|Virginia|F|Spouse|||47|103672 +3010|PR|Lajas Municipio|Lajas zona urbana|740|0|3|Alavi|Preston|2995|New York|M|Son|||15|103673 +3010|PR|Lajas Municipio|Lajas zona urbana|740|0|4|Alavi|Johana|2997|South Carolina|F|Daughter|||13|103674 +3010|PR|Lajas Municipio|Lajas zona urbana|740|0|5|Alavi|Daphine|3001|PR|F|Daughter|||9|103675 +3010|PR|Lajas Municipio|Lajas zona urbana|740|0|6|Alavi|Hiram|3009|PR|M|Son|||1|103676 + +3010|NY|Erie County|North Boston CDP|741|0|1|Kringas|Kristal|2959|Utah|F|Spouse|||51|103677 +3010|NY|Erie County|North Boston CDP|741|0|2|Kringas|Gordon|2985|Switzerland|M|Son|||25|103678 +3010|NY|Erie County|North Boston CDP|741|0|3|Kringas|Shandra|2991|South Dakota|F|Daughter|||19|103679 +3010|NY|Erie County|North Boston CDP|741|0|4|Kringas|Alexander|2995|Georgia|M|Son|||15|103680 +3010|NY|Erie County|North Boston CDP|741|0|5|Kringas|Elke|3001|NY|F|Daughter|||9|103681 +3010|NY|Erie County|North Boston CDP|741|0|6|Kringas|Yolande Viki|3005|NY|F|Daughter|||5|103682 +3010|NY|Erie County|North Boston CDP|741|0|7|Kringas|Jaime|3009|NY|M|Son|||1|103683 + +3010|IN|Grant County|Gas City city|742|0|1|Sarles|Ramiro Sid|2962|Florida|M|Head|||48|103684 +3010|IN|Grant County|Gas City city|742|0|2|Sarles|Tyesha Vannesa|2967|Idaho|F|Spouse|||43|103685 +3010|IN|Grant County|Gas City city|742|0|3|Sarles|Minerva|2987|New Hampshire|F|Daughter|||23|103686 +3010|IN|Grant County|Gas City city|742|0|4|Sarles|Rigoberto|2991|Illinois|M|Son|||19|103687 +3010|IN|Grant County|Gas City city|742|0|5|Sarles|Isidra|2997|Massachusetts|F|Daughter|||13|103688 +3010|IN|Grant County|Gas City city|742|0|6|Sarles|Randal Anibal|3003|IN|M|Son|||7|103689 +3010|IN|Grant County|Gas City city|742|0|7|Sarles|Keeley|3009|IN|F|Daughter|||1|103690 + +3010|PA|Northumberland County|Upper Mahanoy township|743|0|1|Hardnett|Francisco|2983|Missouri|M|Head|||27|103691 +3010|PA|Northumberland County|Upper Mahanoy township|743|0|2|Hardnett|Khalilah|2980|Nebraska|F|Spouse|||30|103692 +3010|PA|Northumberland County|Upper Mahanoy township|743|0|3|Hardnett|Alfonso Geoffrey|3003|PA|M|Son|||7|103693 +3010|PA|Northumberland County|Upper Mahanoy township|743|0|4|Hardnett|Nohemi|3009|PA|F|Daughter|||1|103694 + +3010|WI|Ashland County|Butternut village|744|0|1|Ho|Zina|2978|Idaho|F|Head|||32|103695 +3010|WI|Ashland County|Butternut village|744|0|2|Ho|Pierre|2998|Wyoming|M|Son|||12|103696 + +3010|NY|Franklin County|Dickinson town|745|0|1|Boullion|Steven Carl|2977|Nevada|M|Head|||33|103697 +3010|NY|Franklin County|Dickinson town|745|0|2|Boullion|Waylon Rashad|3001|NY|M|Son|||9|103698 +3010|NY|Franklin County|Dickinson town|745|0|3|Boullion|Angelo|3003|NY|F|Daughter|||7|103699 + +3010|WI|Washington County|Farmington town|746|0|1|Mullaney|Eugene Jarvis|2970|Oklahoma|M|Head|||40|103700 +3010|WI|Washington County|Farmington town|746|0|2|Mullaney|Lois|2973|Djibouti|F|Spouse|||37|103701 +3010|WI|Washington County|Farmington town|746|0|3|Mullaney|Alejandrina|2999|Hawaii|F|Daughter|||11|103702 +3010|WI|Washington County|Farmington town|746|0|4|Mullaney|Loise Sparkle|3001|WI|F|Daughter|||9|103703 +3010|WI|Washington County|Farmington town|746|0|5|Mullaney|Shirley|3003|WI|F|Daughter|||7|103704 +3010|WI|Washington County|Farmington town|746|0|6|Mullaney|Belia|3007|WI|F|Daughter|||3|103705 + +3010|NE|Greeley County|Spalding village|747|0|1|Nonnemacher|Guadalupe Archie|2946|Indiana|M|Head|||64|103706 +3010|NE|Greeley County|Spalding village|747|0|2|Nonnemacher|Cyndi|2943|Nevada|F|Spouse|||67|103707 +3010|NE|Greeley County|Spalding village|747|0|3|Nonnemacher|Elizabet Selina|2975|Kentucky|F|Daughter|||35|103708 +3010|NE|Greeley County|Spalding village|747|0|4|Nonnemacher|Williams|2987|New Hampshire|M|Son|||23|103709 +3010|NE|Greeley County|Spalding village|747|0|5|Nonnemacher|Scott|2997|Japan|F|Daughter|||13|103710 +3010|NE|Greeley County|Spalding village|747|0|6|Nonnemacher|Cornelius|2999|Kentucky|M|Son|||11|103711 +3010|NE|Greeley County|Spalding village|747|0|7|Nonnemacher|Mila|3007|NE|F|Daughter|||3|103712 +3010|NE|Greeley County|Spalding village|747|0|8|Nonnemacher|Bradly Evan|3009|NE|M|Son|||1|103713 + +3010|NY|Washington County|Fort Ann village|748|0|1|Privott|Roseline|2965|Colorado|F|Head|||45|103714 +3010|NY|Washington County|Fort Ann village|748|0|2|Privott|Tona Glenn|2987|West Virginia|F|Daughter|||23|103715 +3010|NY|Washington County|Fort Ann village|748|0|3|Privott|Tim|2995|New York|M|Son|||15|103716 + +3010|NM|Union County|Folsom village|749|0|1|Hernandez|Chloe|2976|Kentucky|F|Head|||34|103717 +3010|NM|Union County|Folsom village|749|0|2|Hernandez|Freda|2998|Georgia|F|Daughter|||12|103718 +3010|NM|Union County|Folsom village|749|0|3|Hernandez|Raymon|3000|Utah|M|Son|||10|103719 + +3010|NE|Scotts Bluff County|Terrytown city|750|0|1|Evans|Lawrence Hershel|2942|Iowa|M|Head|||68|103720 +3010|NE|Scotts Bluff County|Terrytown city|750|0|2|Evans|Irwin|2959|Arizona|M|Son|||51|103721 +3010|NE|Scotts Bluff County|Terrytown city|750|0|3|Evans|Shane|2983|Oklahoma|F|Daughter|||27|103722 +3010|NE|Scotts Bluff County|Terrytown city|750|0|4|Evans|Elease Delinda|2989|Kansas|F|Daughter|||21|103723 +3010|NE|Scotts Bluff County|Terrytown city|750|0|5|Evans|Larry|2991|Wyoming|M|Son|||19|103724 +3010|NE|Scotts Bluff County|Terrytown city|750|0|6|Evans|Gino|2995|New York|M|Son|||15|103725 + +3010|IL|Calhoun County|Kampsville village|751|0|1|Mcgee|Kieth Thomas|2966|Oregon|M|Head|||44|103726 +3010|IL|Calhoun County|Kampsville village|751|0|2|Mcgee|Keena Gearldine|2970|Wyoming|F|Spouse|||40|103727 +3010|IL|Calhoun County|Kampsville village|751|0|3|Mcgee|Marisha Ruthie|2992|California|F|Daughter|||18|103728 +3010|IL|Calhoun County|Kampsville village|751|0|4|Mcgee|Rene Arnoldo|2998|Chad|M|Son|||12|103729 +3010|IL|Calhoun County|Kampsville village|751|0|5|Mcgee|Harrison|3000|Delaware|M|Son|||10|103730 +3010|IL|Calhoun County|Kampsville village|751|0|6|Mcgee|Gaye|3003|IL|F|Daughter|||7|103731 +3010|IL|Calhoun County|Kampsville village|751|0|7|Mcgee|Vashti|3009|IL|F|Daughter|||1|103732 + +3010|NJ|Camden County|Echelon CDP|752|0|1|Michalenko|Dwight Kelley|2962|Alabama|M|Head|||48|103733 +3010|NJ|Camden County|Echelon CDP|752|0|2|Michalenko|Shayla|2960|Arizona|F|Spouse|||50|103734 +3010|NJ|Camden County|Echelon CDP|752|0|3|Michalenko|Mina|2992|Missouri|F|Daughter|||18|103735 +3010|NJ|Camden County|Echelon CDP|752|0|4|Michalenko|Cheri|2996|East Timor|F|Daughter|||14|103736 +3010|NJ|Camden County|Echelon CDP|752|0|5|Michalenko|Carmelo|2998|Alabama|M|Son|||12|103737 +3010|NJ|Camden County|Echelon CDP|752|0|6|Michalenko|Lindsey|3003|CA|F|Daughter|||7|103738 +3010|NJ|Camden County|Echelon CDP|752|0|7|Michalenko|Tania|3009|NJ|F|Daughter|||1|103739 + +3010|MO|Cedar County|Umber View Heights village|753|0|1|Stinson|Simonne|2965|Indiana|F|Head|||45|103740 + +3010|PA|Luzerne County|Conyngham borough|754|0|1|Torres|Riley Harrison|2958|Pennsylvania|M|Head|||52|103741 +3010|PA|Luzerne County|Conyngham borough|754|0|2|Torres|Tonette|2977|California|F|Spouse|||33|103742 +3010|PA|Luzerne County|Conyngham borough|754|0|3|Torres|Lynne|2997|Nevada|F|Daughter|||13|103743 +3010|PA|Luzerne County|Conyngham borough|754|0|4|Torres|Taren|3001|PA|F|Daughter|||9|103744 +3010|PA|Luzerne County|Conyngham borough|754|0|5|Torres|Israel|3005|PA|M|Son|||5|103745 +3010|PA|Luzerne County|Conyngham borough|754|0|6|Torres|Jonathan|3007|PA|M|Son|||3|103746 +3010|PA|Luzerne County|Conyngham borough|754|0|7|Torres|Bradford|3009|PA|M|Son|||1|103747 + +3010|OK|Le Flore County|Poteau city|755|0|1|Bradley|Kermit Edmond|2953|West Virginia|M|Head|||57|103748 +3010|OK|Le Flore County|Poteau city|755|0|2|Bradley|Micha|2949|South Dakota|F|Spouse|||61|103749 +3010|OK|Le Flore County|Poteau city|755|0|3|Bradley|Hildegarde Bobbie|2983|South Dakota|F|Daughter|||27|103750 +3010|OK|Le Flore County|Poteau city|755|0|4|Bradley|Olevia|2989|Mississippi|F|Daughter|||21|103751 +3010|OK|Le Flore County|Poteau city|755|0|5|Bradley|Ed|2995|Kentucky|M|Son|||15|103752 +3010|OK|Le Flore County|Poteau city|755|0|6|Bradley|Steve|2999|Ohio|M|Son|||11|103753 +3010|OK|Le Flore County|Poteau city|755|0|7|Bradley|Freeman|3009|OK|M|Son|||1|103754 + +3010|PA|Butler County|Lancaster township|756|0|1|Toomer|Johnie Mauro|2938|Denmark|M|Head|||72|103755 +3010|PA|Butler County|Lancaster township|756|0|2|Toomer|Slyvia|2957|Maine|F|Spouse|||53|103756 +3010|PA|Butler County|Lancaster township|756|0|3|Toomer|Olen Maximo|2995|Idaho|M|Son|||15|103757 +3010|PA|Butler County|Lancaster township|756|0|4|Toomer|Salome|3003|PA|F|Daughter|||7|103758 +3010|PA|Butler County|Lancaster township|756|0|5|Toomer|Xavier|3005|PA|M|Son|||5|103759 +3010|PA|Butler County|Lancaster township|756|0|6|Toomer|Sunny|3009|PA|F|Daughter|||1|103760 + +3010|MN|Washington County|Newport city|757|0|1|Dixon|Gregorio Curt|2974|South Dakota|M|Head|||36|103761 +3010|MN|Washington County|Newport city|757|0|2|Dixon|Gia Reagan|2998|Arkansas|F|Daughter|||12|103762 +3010|MN|Washington County|Newport city|757|0|3|Dixon|Margot|3000|Maine|F|Daughter|||10|103763 + +3010|NM|Doña Ana County|Santa Teresa CDP|758|0|1|Vaughn|Bernie Rocco|2945|Sri Lanka|M|Head|||65|103764 +3010|NM|Doña Ana County|Santa Teresa CDP|758|0|2|Vaughn|Leonida|2985|Ohio|F|Daughter|||25|103765 +3010|NM|Doña Ana County|Santa Teresa CDP|758|0|3|Vaughn|Mariam|3003|NM|F|Daughter|||7|103766 +3010|NM|Doña Ana County|Santa Teresa CDP|758|0|4|Vaughn|Nathaniel|3005|NM|M|Son|||5|103767 +3010|NM|Doña Ana County|Santa Teresa CDP|758|0|5|Vaughn|Virginia|3007|NM|F|Daughter|||3|103768 +3010|NM|Doña Ana County|Santa Teresa CDP|758|0|6|Vaughn|Jermaine|3009|NM|M|Son|||1|103769 + +3010|MN|Fillmore County|Bloomfield township|759|0|1|Shadrick|Kurtis Jamison|2971|North Dakota|M|Head|||39|103770 +3010|MN|Fillmore County|Bloomfield township|759|0|2|Shadrick|Alesha|2983|North Dakota|F|Spouse|||27|103771 +3010|MN|Fillmore County|Bloomfield township|759|0|3|Shadrick|Sonia|3001|MN|F|Daughter|||9|103772 +3010|MN|Fillmore County|Bloomfield township|759|0|4|Shadrick|Katharina|3003|MN|F|Daughter|||7|103773 + +3010|MO|Warren County|Wright City city|760|0|1|Hooks|Von|2948|Nevada|M|Head|||62|103774 +3010|MO|Warren County|Wright City city|760|0|2|Hooks|Denisha|2963|Iowa|F|Spouse|||47|103775 +3010|MO|Warren County|Wright City city|760|0|3|Hooks|Laveta|2989|Hawaii|F|Daughter|||21|103776 +3010|MO|Warren County|Wright City city|760|0|4|Hooks|Stefanie|2991|Kansas|F|Daughter|||19|103777 +3010|MO|Warren County|Wright City city|760|0|5|Hooks|Genevieve Jeanett|2993|Iowa|F|Daughter|||17|103778 +3010|MO|Warren County|Wright City city|760|0|6|Hooks|Shantell Rebeca|2995|Illinois|F|Daughter|||15|103779 +3010|MO|Warren County|Wright City city|760|0|7|Hooks|Carmine|2997|West Virginia|M|Son|||13|103780 +3010|MO|Warren County|Wright City city|760|0|8|Hooks|Lawrence|3001|MO|M|Son|||9|103781 + +3010|MT|Silver Bow County|Butte-Silver Bow (balance)|761|0|1|Drumgoole|Herman Sal|2937|Maine|M|Head|||73|103782 +3010|MT|Silver Bow County|Butte-Silver Bow (balance)|761|0|2|Drumgoole|Tashina|2944|North Dakota|F|Spouse|||66|103783 +3010|MT|Silver Bow County|Butte-Silver Bow (balance)|761|0|3|Drumgoole|Darlene Dion|2984|Tennessee|F|Daughter|||26|103784 +3010|MT|Silver Bow County|Butte-Silver Bow (balance)|761|0|4|Drumgoole|Karyl Micheline|2992|New Jersey|F|Daughter|||18|103785 +3010|MT|Silver Bow County|Butte-Silver Bow (balance)|761|0|5|Drumgoole|Sharri Aleshia|2998|Montserrat|F|Daughter|||12|103786 +3010|MT|Silver Bow County|Butte-Silver Bow (balance)|761|0|6|Drumgoole|Nicole Carey|3001|MS|F|Daughter|||9|103787 +3010|MT|Silver Bow County|Butte-Silver Bow (balance)|761|0|7|Drumgoole|Raymundo|3007|MT|M|Son|||3|103788 +3010|MT|Silver Bow County|Butte-Silver Bow (balance)|761|0|8|Drumgoole|Leigh|3009|MT|F|Daughter|||1|103789 + +3010|FL|Miami-Dade County|Goulds CDP|762|0|1|Peakes|Antonia Nicky|2968|Oregon|M|Head|||42|103790 +3010|FL|Miami-Dade County|Goulds CDP|762|0|2|Peakes|Deena|2981|Vermont|F|Spouse|||29|103791 +3010|FL|Miami-Dade County|Goulds CDP|762|0|3|Peakes|Versie|3001|FL|F|Daughter|||9|103792 + +3010|NY|Genesee County|Le Roy town|763|0|1|Bourgeois|Irwin Tyrone|2961|Washington|M|Head|||49|103793 +3010|NY|Genesee County|Le Roy town|763|0|2|Bourgeois|Erminia|2978|Cote D'ivoire|F|Spouse|||32|103794 +3010|NY|Genesee County|Le Roy town|763|0|3|Bourgeois|Rosario Maria|2998|Panama|M|Son|||12|103795 +3010|NY|Genesee County|Le Roy town|763|0|4|Bourgeois|Huey|3003|NY|M|Son|||7|103796 +3010|NY|Genesee County|Le Roy town|763|0|5|Bourgeois|Emmaline|3005|NY|F|Daughter|||5|103797 +3010|NY|Genesee County|Le Roy town|763|0|6|Bourgeois|Rusty|3009|NY|M|Son|||1|103798 + +3010|NC|Scotland County|Gibson town|764|0|1|Grega|Stanton|2968|Pennsylvania|M|Head|||42|103799 +3010|NC|Scotland County|Gibson town|764|0|2|Grega|Chantal Teri|2983|New York|F|Spouse|||27|103800 +3010|NC|Scotland County|Gibson town|764|0|3|Grega|Nia Catherine|3003|NC|F|Daughter|||7|103801 + +3010|WI|Oconto County|Riverview town|765|0|1|Curnutte|Jackie Dalton|2958|Illinois|M|Head|||52|103802 +3010|WI|Oconto County|Riverview town|765|0|2|Curnutte|Sherell|2981|Virginia|F|Spouse|||29|103803 +3010|WI|Oconto County|Riverview town|765|0|3|Curnutte|Aleen|3003|OK|F|Daughter|||7|103804 +3010|WI|Oconto County|Riverview town|765|0|4|Curnutte|Lenny Ernesto|3005|OK|M|Son|||5|103805 +3010|WI|Oconto County|Riverview town|765|0|5|Curnutte|Lester|3007|WI|M|Son|||3|103806 +3010|WI|Oconto County|Riverview town|765|0|6|Curnutte|Richie|3009|WI|M|Son|||1|103807 + +3010|PA|Allegheny County|Indiana township|766|0|1|Cowell|Lincoln Winford|2959|Nebraska|M|Head|||51|103808 +3010|PA|Allegheny County|Indiana township|766|0|2|Cowell|Britney|2974|Hungary|F|Spouse|||36|103809 +3010|PA|Allegheny County|Indiana township|766|0|3|Cowell|Julianna|2996|Tennessee|F|Daughter|||14|103810 +3010|PA|Allegheny County|Indiana township|766|0|4|Cowell|Ted|3000|Albania|M|Son|||10|103811 +3010|PA|Allegheny County|Indiana township|766|0|5|Cowell|Marna|3005|PA|F|Daughter|||5|103812 +3010|PA|Allegheny County|Indiana township|766|0|6|Cowell|Marina|3009|PA|F|Daughter|||1|103813 + +3010|MI|Wayne County|Westland city|767|0|1|Howard|Haywood Cesar|2954|North Dakota|M|Head|||56|103814 +3010|MI|Wayne County|Westland city|767|0|2|Howard|Alfonso|2989|Oregon|M|Son|||21|103815 + +3010|VT|Windham County|Guilford town|768|0|1|Dummett|Keira|2979|Hong Kong|F|Spouse|||31|103816 +3010|VT|Windham County|Guilford town|768|0|2|Dummett|Alethea|3001|VT|F|Daughter|||9|103817 +3010|VT|Windham County|Guilford town|768|0|3|Dummett|Darin|3003|VT|M|Son|||7|103818 +3010|VT|Windham County|Guilford town|768|0|4|Dummett|Lisa Adina|3007|VT|F|Daughter|||3|103819 +3010|VT|Windham County|Guilford town|768|0|5|Dummett|Eartha|3009|VT|F|Daughter|||1|103820 + +3010|MA|Worcester County|Templeton town|769|0|1|Barbeau|Andres Lewis|2948|France|M|Head|||62|103821 +3010|MA|Worcester County|Templeton town|769|0|2|Barbeau|David|2977|North Dakota|M|Son|||33|103822 +3010|MA|Worcester County|Templeton town|769|0|3|Barbeau|Tristan Napoleon|2999|Nebraska|M|Son|||11|103823 + +3010|PA|Bucks County|Plumstead township|770|0|1|Webster|Carla|2944|Pennsylvania|F|Head|||66|103824 +3010|PA|Bucks County|Plumstead township|770|0|2|Webster|Theodore Floyd|2990|New Jersey|M|Son|||20|103825 +3010|PA|Bucks County|Plumstead township|770|0|3|Webster|Brooke|2994|Arkansas|F|Daughter|||16|103826 +3010|PA|Bucks County|Plumstead township|770|0|4|Webster|Jonathon|2998|Idaho|M|Son|||12|103827 + +3010|TN|Putnam County|Cookeville city|771|0|1|Hancock|Emanuel Wilfred|2947|Montana|M|Head|||63|103828 +3010|TN|Putnam County|Cookeville city|771|0|2|Hancock|Elaine|2990|Indiana|F|Daughter|||20|103829 +3010|TN|Putnam County|Cookeville city|771|0|3|Hancock|Kyung|2994|Vermont|F|Daughter|||16|103830 +3010|TN|Putnam County|Cookeville city|771|0|4|Hancock|Julian|2998|West Virginia|M|Son|||12|103831 + +3010|NJ|Morris County|Florham Park borough|772|0|1|Stander|Dusty Brooks|2943|Alaska|M|Head|||67|103832 +3010|NJ|Morris County|Florham Park borough|772|0|2|Stander|Shelby|2986|Illinois|M|Son|||24|103833 +3010|NJ|Morris County|Florham Park borough|772|0|3|Stander|Heidi|2996|Honduras|F|Daughter|||14|103834 +3010|NJ|Morris County|Florham Park borough|772|0|4|Stander|Adele|2998|Martinique|F|Daughter|||12|103835 +3010|NJ|Morris County|Florham Park borough|772|0|5|Stander|Lyndia|3000|New York|F|Daughter|||10|103836 +3010|NJ|Morris County|Florham Park borough|772|0|6|Stander|Newton|3003|NJ|M|Son|||7|103837 +3010|NJ|Morris County|Florham Park borough|772|0|7|Stander|Nicolas|3007|NJ|M|Son|||3|103838 + +3010|IL|Madison County|St. Jacob village|773|0|1|Dorado|Hong Chadwick|2953|Vermont|M|Head|||57|103839 +3010|IL|Madison County|St. Jacob village|773|0|2|Dorado|Velva Natosha|2961|South Dakota|F|Spouse|||49|103840 +3010|IL|Madison County|St. Jacob village|773|0|3|Dorado|Ana Tyler|2995|Kansas|F|Daughter|||15|103841 +3010|IL|Madison County|St. Jacob village|773|0|4|Dorado|See|2999|Minnesota|F|Daughter|||11|103842 +3010|IL|Madison County|St. Jacob village|773|0|5|Dorado|Ferne|3005|IL|F|Daughter|||5|103843 +3010|IL|Madison County|St. Jacob village|773|0|6|Dorado|Jamee Luanna|3007|IL|F|Daughter|||3|103844 + +3010|MI|Schoolcraft County|Mueller township|774|0|1|Gordon|Faustino Reggie|2960|Virginia|M|Head|||50|103845 +3010|MI|Schoolcraft County|Mueller township|774|0|2|Gordon|Roberto|2984|Nebraska|F|Spouse|||26|103846 +3010|MI|Schoolcraft County|Mueller township|774|0|3|Gordon|Naoma|3007|MI|F|Daughter|||3|103847 +3010|MI|Schoolcraft County|Mueller township|774|0|4|Gordon|Ruthanne|3009|MI|F|Daughter|||1|103848 + +3010|NY|Ulster County|Kerhonkson CDP|775|0|1|Reppert|Edison Porter|2944|New Hampshire|M|Head|||66|103849 +3010|NY|Ulster County|Kerhonkson CDP|775|0|2|Reppert|Monnie|2956|Florida|F|Spouse|||54|103850 +3010|NY|Ulster County|Kerhonkson CDP|775|0|3|Reppert|Joe|2982|Georgia|M|Son|||28|103851 +3010|NY|Ulster County|Kerhonkson CDP|775|0|4|Reppert|Leif|2996|Idaho|M|Son|||14|103852 +3010|NY|Ulster County|Kerhonkson CDP|775|0|5|Reppert|Ken Deandre|3001|NY|M|Son|||9|103853 +3010|NY|Ulster County|Kerhonkson CDP|775|0|6|Reppert|Brian|3005|NY|M|Son|||5|103854 + +3010|MI|Schoolcraft County|Doyle township|776|0|1|Lind|Shelby Josh|2955|Utah|M|Head|||55|103855 +3010|MI|Schoolcraft County|Doyle township|776|0|2|Lind|Teofila Jolene|2952|Missouri|F|Spouse|||58|103856 +3010|MI|Schoolcraft County|Doyle township|776|0|3|Lind|Jamar|2974|Oregon|M|Son|||36|103857 +3010|MI|Schoolcraft County|Doyle township|776|0|4|Lind|Dannie|2990|Minnesota|M|Son|||20|103858 +3010|MI|Schoolcraft County|Doyle township|776|0|5|Lind|Dyan|2998|Minnesota|F|Daughter|||12|103859 +3010|MI|Schoolcraft County|Doyle township|776|0|6|Lind|Marion Lizzette|3003|MI|F|Daughter|||7|103860 +3010|MI|Schoolcraft County|Doyle township|776|0|7|Lind|Stewart|3007|MI|M|Son|||3|103861 + +3010|WI|Fond du Lac County|Brandon village|777|0|1|Vise|Oliver Alberto|2960|Nebraska|M|Head|||50|103862 +3010|WI|Fond du Lac County|Brandon village|777|0|2|Vise|Tiara|2973|Mauritania|F|Spouse|||37|103863 +3010|WI|Fond du Lac County|Brandon village|777|0|3|Vise|Emory Brent|2993|Indiana|M|Son|||17|103864 +3010|WI|Fond du Lac County|Brandon village|777|0|4|Vise|Carleen|2995|Missouri|F|Daughter|||15|103865 +3010|WI|Fond du Lac County|Brandon village|777|0|5|Vise|Karin|2997|South Dakota|F|Daughter|||13|103866 +3010|WI|Fond du Lac County|Brandon village|777|0|6|Vise|Nita Cecila|2999|Louisiana|F|Daughter|||11|103867 +3010|WI|Fond du Lac County|Brandon village|777|0|7|Vise|Nathanael|3003|WI|M|Son|||7|103868 +3010|WI|Fond du Lac County|Brandon village|777|0|8|Vise|Dalton|3005|WI|M|Son|||5|103869 + +3010|IA|Audubon County|Brayton city|778|0|1|Silverstone|Robbin|2959|Tennessee|F|Head|||51|103870 +3010|IA|Audubon County|Brayton city|778|0|2|Silverstone|Fermina|2983|Kosovo|F|Daughter|||27|103871 +3010|IA|Audubon County|Brayton city|778|0|3|Silverstone|Jessica|2993|New York|F|Daughter|||17|103872 +3010|IA|Audubon County|Brayton city|778|0|4|Silverstone|Tequila|2999|Alabama|F|Daughter|||11|103873 + +3010|SD|Clark County|Bradley town|779|0|1|Broccoli|Maynard Rene|2947|New York|M|Head|||63|103874 +3010|SD|Clark County|Bradley town|779|0|2|Broccoli|Erna|2967|New Mexico|F|Spouse|||43|103875 +3010|SD|Clark County|Bradley town|779|0|3|Broccoli|Stuart|2997|Alabama|M|Son|||13|103876 +3010|SD|Clark County|Bradley town|779|0|4|Broccoli|Aaron|2999|Arizona|M|Son|||11|103877 + +3010|PA|Schuylkill County|Minersville borough|780|0|1|Walker|Clemente Burton|2979|Mozambique|M|Head|||31|103878 +3010|PA|Schuylkill County|Minersville borough|780|0|2|Walker|Annis|2979|North Dakota|F|Spouse|||31|103879 +3010|PA|Schuylkill County|Minersville borough|780|0|3|Walker|Mark|2999|Switzerland|F|Daughter|||11|103880 +3010|PA|Schuylkill County|Minersville borough|780|0|4|Walker|Risa|3005|PA|F|Daughter|||5|103881 + +3010|WI|Winnebago County|Poygan town|781|0|1|Golaszewski|Cole Joey|2958|India|M|Head|||52|103882 +3010|WI|Winnebago County|Poygan town|781|0|2|Golaszewski|Glinda|2999|Washington|F|Daughter|||11|103883 + +3010|MN|Kanabec County|Ford township|782|0|1|Daniel|Ralph Everett|2940|Montana|M|Head|||70|103884 +3010|MN|Kanabec County|Ford township|782|0|2|Daniel|Malorie|2943|New Jersey|F|Spouse|||67|103885 +3010|MN|Kanabec County|Ford township|782|0|3|Daniel|Latrice|2979|Kentucky|F|Daughter|||31|103886 +3010|MN|Kanabec County|Ford township|782|0|4|Daniel|Foster|2995|Indiana|M|Son|||15|103887 +3010|MN|Kanabec County|Ford township|782|0|5|Daniel|Angel|3001|MN|F|Daughter|||9|103888 +3010|MN|Kanabec County|Ford township|782|0|6|Daniel|Cesar|3005|MN|M|Son|||5|103889 + +3010|TX|Cameron County|Los Indios town|783|0|1|Landrum|Lindsey Bennett|2957|Maryland|M|Head|||53|103890 +3010|TX|Cameron County|Los Indios town|783|0|2|Landrum|Angel Nathalie|2987|Iowa|F|Daughter|||23|103891 +3010|TX|Cameron County|Los Indios town|783|0|3|Landrum|Floy|2991|New York|F|Daughter|||19|103892 + +3010|NC|Yancey County|Burnsville town|784|0|1|Tye|Michale Damien|2951|South Carolina|M|Head|||59|103893 +3010|NC|Yancey County|Burnsville town|784|0|2|Tye|Kenyetta|2994|Wisconsin|F|Daughter|||16|103894 +3010|NC|Yancey County|Burnsville town|784|0|3|Tye|Rosalind|2996|North Carolina|F|Daughter|||14|103895 +3010|NC|Yancey County|Burnsville town|784|0|4|Tye|Clair|2998|Connecticut|M|Son|||12|103896 + +3010|KS|Greenwood County|Fall River city|785|0|1|Bufford|Daryl Jonas|2970|New Hampshire|M|Head|||40|103897 +3010|KS|Greenwood County|Fall River city|785|0|2|Bufford|Genna|2974|Pennsylvania|F|Spouse|||36|103898 +3010|KS|Greenwood County|Fall River city|785|0|3|Bufford|Wade Sol|2996|Virgin Islands, U.s.|M|Son|||14|103899 +3010|KS|Greenwood County|Fall River city|785|0|4|Bufford|Afton|2998|Indiana|F|Daughter|||12|103900 +3010|KS|Greenwood County|Fall River city|785|0|5|Bufford|Charity|3000|Alabama|F|Daughter|||10|103901 +3010|KS|Greenwood County|Fall River city|785|0|6|Bufford|Marcelle|3003|KS|F|Daughter|||7|103902 + +3010|IN|Porter County|Porter town|786|0|1|Walter|Karima|2961|Eritrea|F|Head|||49|103903 +3010|IN|Porter County|Porter town|786|0|2|Walter|Terrilyn|2995|Micronesia, Federated States Of|F|Daughter|||15|103904 +3010|IN|Porter County|Porter town|786|0|3|Walter|Nathaniel|2999|American Samoa|M|Son|||11|103905 + +3010|OK|Rogers County|Justice CDP|787|0|1|Watkins|Adolfo Tyson|2950|Maryland|M|Head|||60|103906 +3010|OK|Rogers County|Justice CDP|787|0|2|Watkins|Rochelle|2957|Washington|F|Spouse|||53|103907 +3010|OK|Rogers County|Justice CDP|787|0|3|Watkins|Dino|2987|Arkansas|M|Son|||23|103908 +3010|OK|Rogers County|Justice CDP|787|0|4|Watkins|Irving|3007|OK|M|Son|||3|103909 + +3010|IA|Black Hawk County, Buchanan County|Jesup city|788|0|1|Thacker|Eloy|2956|Virginia|M|Head|||54|103910 +3010|IA|Black Hawk County, Buchanan County|Jesup city|788|0|2|Thacker|Tia Valeria|2993|Michigan|F|Daughter|||17|103911 +3010|IA|Black Hawk County, Buchanan County|Jesup city|788|0|3|Thacker|Donald|2999|Vermont|M|Son|||11|103912 + +3010|NC|Beaufort County|Aurora town|789|0|1|Barnes|Dustin|2986|Nebraska|M|Son|||24|103913 +3010|NC|Beaufort County|Aurora town|789|0|2|Barnes|Toney|2998|Ireland|M|Son|||12|103914 + +3010|MT|Blaine County|Harlem city|790|0|1|Delcour|Benny Aron|2963|Kansas|M|Head|||47|103915 +3010|MT|Blaine County|Harlem city|790|0|2|Delcour|Lonnie|2974|Pennsylvania|F|Spouse|||36|103916 +3010|MT|Blaine County|Harlem city|790|0|3|Delcour|Michael|2994|California|M|Son|||16|103917 +3010|MT|Blaine County|Harlem city|790|0|4|Delcour|Craig Eric|2996|South Dakota|M|Son|||14|103918 +3010|MT|Blaine County|Harlem city|790|0|5|Delcour|Teodoro Giuseppe|3003|PA|M|Son|||7|103919 +3010|MT|Blaine County|Harlem city|790|0|6|Delcour|Drew|3005|PA|M|Son|||5|103920 + +3010|VA|Accomack County|Painter town|791|0|1|Neske|Pete Wally|2967|Saint Vincent And The Grenadines|M|Head|||43|103921 +3010|VA|Accomack County|Painter town|791|0|2|Neske|Leanora|2990|Texas|F|Daughter|||20|103922 +3010|VA|Accomack County|Painter town|791|0|3|Neske|Alene|2996|Kentucky|F|Daughter|||14|103923 +3010|VA|Accomack County|Painter town|791|0|4|Neske|Jackie|2998|Oman|M|Son|||12|103924 +3010|VA|Accomack County|Painter town|791|0|5|Neske|Avelina|3000|Ohio|F|Daughter|||10|103925 + +3010|PA|Crawford County|Guys Mills CDP|792|0|1|Morgan|Joaquin|3000|Nevada|M|Son|||10|103926 + +3010|MN|Pipestone County|Ruthton city|793|0|1|Charlebois|Edward Colby|2944|Utah|M|Head|||66|103927 +3010|MN|Pipestone County|Ruthton city|793|0|2|Charlebois|Racheal|2957|Maine|F|Spouse|||53|103928 +3010|MN|Pipestone County|Ruthton city|793|0|3|Charlebois|Bobby|2977|Ohio|F|Daughter|||33|103929 +3010|MN|Pipestone County|Ruthton city|793|0|4|Charlebois|Stuart|2999|Utah|M|Son|||11|103930 +3010|MN|Pipestone County|Ruthton city|793|0|5|Charlebois|Lauri|3001|MN|F|Daughter|||9|103931 +3010|MN|Pipestone County|Ruthton city|793|0|6|Charlebois|Hildegard|3007|MN|F|Daughter|||3|103932 +3010|MN|Pipestone County|Ruthton city|793|0|7|Charlebois|Heidy|3009|MN|F|Daughter|||1|103933 + +3010|OH|Franklin County|Minerva Park village|794|0|1|Carder|Carmella|2970|Florida|F|Head|||40|103934 +3010|OH|Franklin County|Minerva Park village|794|0|2|Carder|Floretta|2998|Kentucky|F|Daughter|||12|103935 + +3010|PA|York County|Glen Rock borough|795|0|1|Vasquez|Milford Kris|2947|New Caledonia|M|Head|||63|103936 +3010|PA|York County|Glen Rock borough|795|0|2|Vasquez|Geri|2974|North Dakota|F|Daughter|||36|103937 +3010|PA|York County|Glen Rock borough|795|0|3|Vasquez|Garfield|2992|New Hampshire|M|Son|||18|103938 +3010|PA|York County|Glen Rock borough|795|0|4|Vasquez|Marisol|2998|New Hampshire|F|Daughter|||12|103939 +3010|PA|York County|Glen Rock borough|795|0|5|Vasquez|Nila Carlos|3000|Utah|F|Daughter|||10|103940 + +3010|MI|Leelanau County|Leelanau township|796|0|1|Feraco|Erica|2958|New Hampshire|F|Spouse|||52|103941 +3010|MI|Leelanau County|Leelanau township|796|0|2|Feraco|Tillie|2998|South Carolina|F|Daughter|||12|103942 +3010|MI|Leelanau County|Leelanau township|796|0|3|Feraco|Allen|3003|MI|F|Daughter|||7|103943 +3010|MI|Leelanau County|Leelanau township|796|0|4|Feraco|Maryanna|3009|MI|F|Daughter|||1|103944 + +3010|CA|Santa Cruz County|Amesti CDP|797|0|1|Dudenbostel|Scotty Harold|2964|Washington|M|Head|||46|103945 +3010|CA|Santa Cruz County|Amesti CDP|797|0|2|Dudenbostel|Mari|2971|Greenland|F|Spouse|||39|103946 +3010|CA|Santa Cruz County|Amesti CDP|797|0|3|Dudenbostel|Emelina|2997|Rhode Island|F|Daughter|||13|103947 +3010|CA|Santa Cruz County|Amesti CDP|797|0|4|Dudenbostel|Kim Moises|3001|CA|M|Son|||9|103948 + +3010|FL|Santa Rosa County|Navarre Beach CDP|798|0|1|Antonacci|Dewitt Forest|2941|Alabama|M|Head|||69|103949 +3010|FL|Santa Rosa County|Navarre Beach CDP|798|0|2|Antonacci|Carly|2959|Vermont|F|Spouse|||51|103950 +3010|FL|Santa Rosa County|Navarre Beach CDP|798|0|3|Antonacci|Glen|2999|Vermont|M|Son|||11|103951 +3010|FL|Santa Rosa County|Navarre Beach CDP|798|0|4|Antonacci|Aurora|3001|FL|F|Daughter|||9|103952 + +3010|MN|Aitkin County|McGregor township|799|0|1|Gibbons|Merrill Sean|2955|Connecticut|M|Head|||55|103953 +3010|MN|Aitkin County|McGregor township|799|0|2|Gibbons|Jesus|2960|Wyoming|F|Spouse|||50|103954 +3010|MN|Aitkin County|McGregor township|799|0|3|Gibbons|Charisse|2980|Wyoming|F|Daughter|||30|103955 +3010|MN|Aitkin County|McGregor township|799|0|4|Gibbons|Colby Richard|2992|Massachusetts|M|Son|||18|103956 +3010|MN|Aitkin County|McGregor township|799|0|5|Gibbons|Elmer|2998|Maine|F|Daughter|||12|103957 +3010|MN|Aitkin County|McGregor township|799|0|6|Gibbons|Edmund|3001|MN|M|Son|||9|103958 +3010|MN|Aitkin County|McGregor township|799|0|7|Gibbons|Kassie Candace|3005|MN|F|Daughter|||5|103959 + +3010|GA|Atkinson County|Pearson city|800|0|1|Koenig|Wilfredo Ronny|2945|Delaware|M|Head|||65|103960 +3010|GA|Atkinson County|Pearson city|800|0|2|Koenig|Sunni Kathrin|2967|Wisconsin|F|Spouse|||43|103961 +3010|GA|Atkinson County|Pearson city|800|0|3|Koenig|Margie|2995|Rhode Island|F|Daughter|||15|103962 +3010|GA|Atkinson County|Pearson city|800|0|4|Koenig|Lucien|2999|Alabama|M|Son|||11|103963 +3010|GA|Atkinson County|Pearson city|800|0|5|Koenig|Keenan Hilario|3003|GA|M|Son|||7|103964 +3010|GA|Atkinson County|Pearson city|800|0|6|Koenig|Jorge|3007|GA|M|Son|||3|103965 + +3010|MN|Blue Earth County|Skyline city|801|0|1|Turner|Dorsey Jorge|2975|Singapore|M|Head|||35|103966 +3010|MN|Blue Earth County|Skyline city|801|0|2|Turner|Aurore Verlene|2971|Arizona|F|Spouse|||39|103967 +3010|MN|Blue Earth County|Skyline city|801|0|3|Turner|Rey|2995|Iowa|M|Son|||15|103968 +3010|MN|Blue Earth County|Skyline city|801|0|4|Turner|Theo Vince|2999|South Dakota|M|Son|||11|103969 +3010|MN|Blue Earth County|Skyline city|801|0|5|Turner|Sima|3005|MN|F|Daughter|||5|103970 +3010|MN|Blue Earth County|Skyline city|801|0|6|Turner|Randal Harvey|3009|MN|M|Son|||1|103971 + +3010|WA|Kitsap County|Bainbridge Island city|802|0|1|Payton|Freddy Alton|2968|Pennsylvania|M|Head|||42|103972 +3010|WA|Kitsap County|Bainbridge Island city|802|0|2|Payton|Danial|2994|Oklahoma|M|Son|||16|103973 +3010|WA|Kitsap County|Bainbridge Island city|802|0|3|Payton|Jolanda|2996|California|F|Daughter|||14|103974 +3010|WA|Kitsap County|Bainbridge Island city|802|0|4|Payton|Sharee Tandra|3000|Gambia|F|Daughter|||10|103975 + +3010|LA|Jefferson Davis Parish|Jennings city|803|0|1|Frum|Jeffery Kevin|2938|Oklahoma|M|Head|||72|103976 +3010|LA|Jefferson Davis Parish|Jennings city|803|0|2|Frum|Arleen|2944|Pennsylvania|F|Spouse|||66|103977 +3010|LA|Jefferson Davis Parish|Jennings city|803|0|3|Frum|Shannon Frankie|2974|Hawaii|M|Son|||36|103978 +3010|LA|Jefferson Davis Parish|Jennings city|803|0|4|Frum|Johna|2996|Georgia|F|Daughter|||14|103979 +3010|LA|Jefferson Davis Parish|Jennings city|803|0|5|Frum|Lamar|2998|Illinois|M|Son|||12|103980 +3010|LA|Jefferson Davis Parish|Jennings city|803|0|6|Frum|Cherly|3005|LA|F|Daughter|||5|103981 + +3010|IA|Sac County|Schaller city|804|0|1|Rodriguez|Herschel Ruben|2956|Colorado|M|Head|||54|103982 +3010|IA|Sac County|Schaller city|804|0|2|Rodriguez|Roma|2973|Ohio|F|Spouse|||37|103983 +3010|IA|Sac County|Schaller city|804|0|3|Rodriguez|Frank|2995|Kentucky|M|Son|||15|103984 +3010|IA|Sac County|Schaller city|804|0|4|Rodriguez|Tess|2997|Washington|F|Daughter|||13|103985 +3010|IA|Sac County|Schaller city|804|0|5|Rodriguez|Luisa|3003|IA|F|Daughter|||7|103986 +3010|IA|Sac County|Schaller city|804|0|6|Rodriguez|Annemarie|3007|IA|F|Daughter|||3|103987 +3010|IA|Sac County|Schaller city|804|0|7|Rodriguez|Edwardo|3009|IA|M|Son|||1|103988 + +3010|NY|Wyoming County|Genesee Falls town|805|0|1|Hedtke|Wilfred|2962|Delaware|M|Head|||48|103989 +3010|NY|Wyoming County|Genesee Falls town|805|0|2|Hedtke|Jestine|2984|Wisconsin|F|Spouse|||26|103990 +3010|NY|Wyoming County|Genesee Falls town|805|0|3|Hedtke|Gabriel|3001|NY|F|Daughter|||9|103991 +3010|NY|Wyoming County|Genesee Falls town|805|0|4|Hedtke|Roberto|3003|NY|F|Daughter|||7|103992 +3010|NY|Wyoming County|Genesee Falls town|805|0|5|Hedtke|Geoffrey|3007|NY|M|Son|||3|103993 + +3010|TX|Navarro County|Goodlow city|806|0|1|Lafond|Lee|2956|North Carolina|M|Head|||54|103994 +3010|TX|Navarro County|Goodlow city|806|0|2|Lafond|Taunya|2995|Madagascar|F|Daughter|||15|103995 +3010|TX|Navarro County|Goodlow city|806|0|3|Lafond|Tabetha|2999|Oregon|F|Daughter|||11|103996 + +3010|CT|Litchfield County|New Preston CDP|807|0|1|Pak|Karl Bryce|2953|Massachusetts|M|Head|||57|103997 +3010|CT|Litchfield County|New Preston CDP|807|0|2|Pak|Amos|2986|Kentucky|M|Son|||24|103998 +3010|CT|Litchfield County|New Preston CDP|807|0|3|Pak|Hank|2988|Ohio|M|Son|||22|103999 +3010|CT|Litchfield County|New Preston CDP|807|0|4|Pak|Esteban|2998|Idaho|M|Son|||12|104000 + +3010|IL|Clay County|Iola village|808|0|1|Helbling|Brandon Dino|2956|Mississippi|M|Head|||54|104001 +3010|IL|Clay County|Iola village|808|0|2|Helbling|Reyna|2995|Mississippi|F|Daughter|||15|104002 +3010|IL|Clay County|Iola village|808|0|3|Helbling|Aaron|2997|South Carolina|F|Daughter|||13|104003 + +3010|GA|Newton County, Walton County|Social Circle city|809|0|1|Deluise|Monty Seymour|2939|New Jersey|M|Head|||71|104004 +3010|GA|Newton County, Walton County|Social Circle city|809|0|2|Deluise|Erma|2938|Lesotho|F|Spouse|||72|104005 +3010|GA|Newton County, Walton County|Social Circle city|809|0|3|Deluise|Hoa Blondell|2976|Egypt|F|Daughter|||34|104006 +3010|GA|Newton County, Walton County|Social Circle city|809|0|4|Deluise|Orval|2982|Alaska|M|Son|||28|104007 +3010|GA|Newton County, Walton County|Social Circle city|809|0|5|Deluise|Arletha Sheri|2988|Florida|F|Daughter|||22|104008 +3010|GA|Newton County, Walton County|Social Circle city|809|0|6|Deluise|Elena|2992|North Dakota|F|Daughter|||18|104009 +3010|GA|Newton County, Walton County|Social Circle city|809|0|7|Deluise|Enrique|2996|Missouri|M|Son|||14|104010 +3010|GA|Newton County, Walton County|Social Circle city|809|0|8|Deluise|Leida|3003|GA|F|Daughter|||7|104011 + +3010|NJ|Monmouth County|West Long Branch borough|810|0|1|Smith|Mervin Eddy|2950|North Carolina|M|Head|||60|104012 +3010|NJ|Monmouth County|West Long Branch borough|810|0|2|Smith|Crista|2964|Alabama|F|Spouse|||46|104013 +3010|NJ|Monmouth County|West Long Branch borough|810|0|3|Smith|Vicenta|2992|Swaziland|F|Daughter|||18|104014 +3010|NJ|Monmouth County|West Long Branch borough|810|0|4|Smith|Otto|2996|Wyoming|M|Son|||14|104015 +3010|NJ|Monmouth County|West Long Branch borough|810|0|5|Smith|Chase|3000|South Dakota|M|Son|||10|104016 +3010|NJ|Monmouth County|West Long Branch borough|810|0|6|Smith|Rex Octavio|3001|NJ|M|Son|||9|104017 +3010|NJ|Monmouth County|West Long Branch borough|810|0|7|Smith|Lue Callie|3005|NJ|F|Daughter|||5|104018 + +3010|IN|Wayne County|Greens Fork town|811|0|1|Simon|Darren Emmanuel|2951|West Virginia|M|Head|||59|104019 +3010|IN|Wayne County|Greens Fork town|811|0|2|Simon|Marna|2967|New Mexico|F|Spouse|||43|104020 +3010|IN|Wayne County|Greens Fork town|811|0|3|Simon|Delta|2995|Georgia|F|Daughter|||15|104021 +3010|IN|Wayne County|Greens Fork town|811|0|4|Simon|Lyndon|2997|New Jersey|M|Son|||13|104022 +3010|IN|Wayne County|Greens Fork town|811|0|5|Simon|Hugo|2999|Tennessee|M|Son|||11|104023 +3010|IN|Wayne County|Greens Fork town|811|0|6|Simon|Denita|3001|IN|F|Daughter|||9|104024 + +3010|VA|Chesterfield County|Bellwood CDP|812|0|1|Kellerhouse|Douglas|2941|Idaho|M|Head|||69|104025 +3010|VA|Chesterfield County|Bellwood CDP|812|0|2|Kellerhouse|Meg|2962|Ohio|F|Spouse|||48|104026 +3010|VA|Chesterfield County|Bellwood CDP|812|0|3|Kellerhouse|Velia|2990|Texas|F|Daughter|||20|104027 +3010|VA|Chesterfield County|Bellwood CDP|812|0|4|Kellerhouse|Maranda Jaclyn|2998|Tuvalu|F|Daughter|||12|104028 +3010|VA|Chesterfield County|Bellwood CDP|812|0|5|Kellerhouse|Mauro|3001|VA|M|Son|||9|104029 +3010|VA|Chesterfield County|Bellwood CDP|812|0|6|Kellerhouse|Cristen|3007|VA|F|Daughter|||3|104030 +3010|VA|Chesterfield County|Bellwood CDP|812|0|7|Kellerhouse|Harris|3009|VA|M|Son|||1|104031 + +3010|WI|Dane County|Dane village|813|0|1|Vaughen|Genaro|2939|Washington|M|Head|||71|104032 +3010|WI|Dane County|Dane village|813|0|2|Vaughen|Albina|2941|Korea, Democratic People's Republic Of|F|Spouse|||69|104033 +3010|WI|Dane County|Dane village|813|0|3|Vaughen|Allyn|2979|Christmas Island|F|Daughter|||31|104034 +3010|WI|Dane County|Dane village|813|0|4|Vaughen|Bula|2997|North Dakota|F|Daughter|||13|104035 +3010|WI|Dane County|Dane village|813|0|5|Vaughen|Ivory|3001|WI|F|Daughter|||9|104036 +3010|WI|Dane County|Dane village|813|0|6|Vaughen|Lavonda|3003|WI|F|Daughter|||7|104037 +3010|WI|Dane County|Dane village|813|0|7|Vaughen|Allan|3005|WI|M|Son|||5|104038 + +3010|MN|Ramsey County|North Oaks city|814|0|1|Barlow|Tyson Willard|2951|New Hampshire|M|Head|||59|104039 +3010|MN|Ramsey County|North Oaks city|814|0|2|Barlow|Leonora|2952|Malawi|F|Spouse|||58|104040 +3010|MN|Ramsey County|North Oaks city|814|0|3|Barlow|Oliver|2988|Nevada|M|Son|||22|104041 +3010|MN|Ramsey County|North Oaks city|814|0|4|Barlow|Josiah|2996|Texas|M|Son|||14|104042 +3010|MN|Ramsey County|North Oaks city|814|0|5|Barlow|Rene|3001|MN|M|Son|||9|104043 +3010|MN|Ramsey County|North Oaks city|814|0|6|Barlow|Stephan Millard|3005|MN|M|Son|||5|104044 +3010|MN|Ramsey County|North Oaks city|814|0|7|Barlow|Akilah|3007|MN|F|Daughter|||3|104045 + +3010|IN|Tippecanoe County|West Point CDP|815|0|1|Mella|Garrett Dante|2976|New Jersey|M|Head|||34|104046 +3010|IN|Tippecanoe County|West Point CDP|815|0|2|Mella|Sindy Caitlyn|2978|Virginia|F|Spouse|||32|104047 +3010|IN|Tippecanoe County|West Point CDP|815|0|3|Mella|Jude|3000|Florida|M|Son|||10|104048 + +3010|MI|Antrim County|Helena township|816|0|1|Ward|Dale Oliver|2956|Tennessee|M|Head|||54|104049 +3010|MI|Antrim County|Helena township|816|0|2|Ward|Lynell|2958|Saint Pierre And Miquelon|F|Spouse|||52|104050 +3010|MI|Antrim County|Helena township|816|0|3|Ward|Sonja|3005|MI|F|Daughter|||5|104051 +3010|MI|Antrim County|Helena township|816|0|4|Ward|Adalberto|3007|MI|M|Son|||3|104052 + +3010|AR|Baxter County|Cotter city|817|0|1|Silvey|Jarred Elvin|2965|New Jersey|M|Head|||45|104053 +3010|AR|Baxter County|Cotter city|817|0|2|Silvey|Elvie Jayme|2996|Georgia|F|Daughter|||14|104054 +3010|AR|Baxter County|Cotter city|817|0|3|Silvey|Forest|3000|South Carolina|M|Son|||10|104055 + +3010|TX|Comal County|Canyon Lake CDP|818|0|1|Benson|Lucile|2966|Macedonia, The Former Yugoslav Republic Of|F|Spouse|||44|104056 +3010|TX|Comal County|Canyon Lake CDP|818|0|2|Benson|Gerard|2986|Connecticut|M|Son|||24|104057 +3010|TX|Comal County|Canyon Lake CDP|818|0|3|Benson|Judson|3000|Nebraska|M|Son|||10|104058 +3010|TX|Comal County|Canyon Lake CDP|818|0|4|Benson|Cythia|3001|TX|F|Daughter|||9|104059 +3010|TX|Comal County|Canyon Lake CDP|818|0|5|Benson|Alejandro|3003|TX|M|Son|||7|104060 +3010|TX|Comal County|Canyon Lake CDP|818|0|6|Benson|Korey|3007|TX|M|Son|||3|104061 + +3010|MN|Faribault County|Brush Creek township|819|0|1|Gutierrez|Antwan Perry|2971|Ohio|M|Head|||39|104062 +3010|MN|Faribault County|Brush Creek township|819|0|2|Gutierrez|Myrtis|2973|Wyoming|F|Spouse|||37|104063 +3010|MN|Faribault County|Brush Creek township|819|0|3|Gutierrez|Darin|2995|Virginia|M|Son|||15|104064 +3010|MN|Faribault County|Brush Creek township|819|0|4|Gutierrez|Treasa|2997|Oklahoma|F|Daughter|||13|104065 +3010|MN|Faribault County|Brush Creek township|819|0|5|Gutierrez|Amada|2999|Ireland|F|Daughter|||11|104066 +3010|MN|Faribault County|Brush Creek township|819|0|6|Gutierrez|Emerson|3003|MN|M|Son|||7|104067 +3010|MN|Faribault County|Brush Creek township|819|0|7|Gutierrez|Tom Marcelino|3005|MN|M|Son|||5|104068 + +3010|NY|Livingston County|Websters Crossing CDP|820|0|1|Trujillo|Clair Ariel|2949|Massachusetts|M|Head|||61|104069 +3010|NY|Livingston County|Websters Crossing CDP|820|0|2|Trujillo|Millie|2996|Iowa|F|Daughter|||14|104070 +3010|NY|Livingston County|Websters Crossing CDP|820|0|3|Trujillo|Johnie|2998|Michigan|F|Daughter|||12|104071 +3010|NY|Livingston County|Websters Crossing CDP|820|0|4|Trujillo|Woodrow|3001|NY|M|Son|||9|104072 +3010|NY|Livingston County|Websters Crossing CDP|820|0|5|Trujillo|Stefan|3005|NY|M|Son|||5|104073 +3010|NY|Livingston County|Websters Crossing CDP|820|0|6|Trujillo|Carolyne|3007|NY|F|Daughter|||3|104074 +3010|NY|Livingston County|Websters Crossing CDP|820|0|7|Trujillo|Derek Andre|3009|NY|M|Son|||1|104075 + +3010|MS|Coahoma County|Jonestown town|821|0|1|Bolivar|Steven Otis|2942|Alaska|M|Head|||68|104076 +3010|MS|Coahoma County|Jonestown town|821|0|2|Bolivar|Morgan|2978|Alaska|M|Son|||32|104077 +3010|MS|Coahoma County|Jonestown town|821|0|3|Bolivar|Monte|2982|Oklahoma|M|Son|||28|104078 +3010|MS|Coahoma County|Jonestown town|821|0|4|Bolivar|Diedre|2998|North Carolina|F|Daughter|||12|104079 + +3010|NH|Belknap County|Tilton town|822|0|1|Matrone|Santos Donovan|2952|Arkansas|M|Head|||58|104080 +3010|NH|Belknap County|Tilton town|822|0|2|Matrone|Emile Romeo|2976|Alaska|M|Son|||34|104081 +3010|NH|Belknap County|Tilton town|822|0|3|Matrone|Tyra|2998|Virginia|F|Daughter|||12|104082 + +3010|RI|Washington County|South Kingstown town|823|0|1|Rider|Aleen|2967|Nebraska|F|Head|||43|104083 +3010|RI|Washington County|South Kingstown town|823|0|2|Rider|Marguerite|2987|Texas|F|Daughter|||23|104084 +3010|RI|Washington County|South Kingstown town|823|0|3|Rider|Jere|2997|American Samoa|M|Son|||13|104085 +3010|RI|Washington County|South Kingstown town|823|0|4|Rider|Dale|2999|Nevada|M|Son|||11|104086 + +3010|IL|Marion County|Kinmundy city|824|0|1|Burch|Edwin|2954|Oregon|M|Head|||56|104087 +3010|IL|Marion County|Kinmundy city|824|0|2|Burch|Linn|2989|Louisiana|F|Daughter|||21|104088 +3010|IL|Marion County|Kinmundy city|824|0|3|Burch|Adah|2997|Kansas|F|Daughter|||13|104089 + +3010|WV|Lincoln County|Harts CDP|825|0|1|Shepherd|Danika|2937|Virgin Islands, U.s.|F|Head|||73|104090 +3010|WV|Lincoln County|Harts CDP|825|0|2|Shepherd|Rolland|2971|Florida|M|Son|||39|104091 +3010|WV|Lincoln County|Harts CDP|825|0|3|Shepherd|Marinda|2979|New Jersey|F|Daughter|||31|104092 +3010|WV|Lincoln County|Harts CDP|825|0|4|Shepherd|Mitchel|2993|Connecticut|M|Son|||17|104093 + +3010|TN|Obion County|Woodland Mills city|826|0|1|Pisani|Forrest|2942|Pennsylvania|M|Head|||68|104094 +3010|TN|Obion County|Woodland Mills city|826|0|2|Pisani|Katheryn|2952|Kansas|F|Spouse|||58|104095 +3010|TN|Obion County|Woodland Mills city|826|0|3|Pisani|Bret|2972|Massachusetts|M|Son|||38|104096 +3010|TN|Obion County|Woodland Mills city|826|0|4|Pisani|Milton|2996|South Dakota|M|Son|||14|104097 +3010|TN|Obion County|Woodland Mills city|826|0|5|Pisani|Douglas|3009|TN|M|Son|||1|104098 + +3010|CA|San Luis Obispo County|Los Osos CDP|827|0|1|Hoyte|Malisa Tamesha|2973|French Guiana|F|Head|||37|104099 +3010|CA|San Luis Obispo County|Los Osos CDP|827|0|2|Hoyte|Nyla|2993|North Carolina|F|Daughter|||17|104100 +3010|CA|San Luis Obispo County|Los Osos CDP|827|0|3|Hoyte|Carmelo|2995|Arizona|M|Son|||15|104101 +3010|CA|San Luis Obispo County|Los Osos CDP|827|0|4|Hoyte|Delena Roselle|2999|Florida|F|Daughter|||11|104102 + +3010|MN|Otter Tail County|Dalton city|828|0|1|Smith|Weldon Rey|2966|Massachusetts|M|Head|||44|104103 +3010|MN|Otter Tail County|Dalton city|828|0|2|Smith|Emiko|2983|Rhode Island|F|Spouse|||27|104104 +3010|MN|Otter Tail County|Dalton city|828|0|3|Smith|Mazie|3001|MN|F|Daughter|||9|104105 +3010|MN|Otter Tail County|Dalton city|828|0|4|Smith|Joshua Arthur|3005|MN|M|Son|||5|104106 +3010|MN|Otter Tail County|Dalton city|828|0|5|Smith|Kris Reed|3009|MN|M|Son|||1|104107 + +3010|IN|Montgomery County|Wingate town|829|0|1|Miller|Jeremiah Felton|2973|Missouri|M|Head|||37|104108 +3010|IN|Montgomery County|Wingate town|829|0|2|Miller|Renee|2981|Georgia|F|Spouse|||29|104109 +3010|IN|Montgomery County|Wingate town|829|0|3|Miller|Ka|3003|IN|F|Daughter|||7|104110 +3010|IN|Montgomery County|Wingate town|829|0|4|Miller|Dewey|3007|IN|M|Son|||3|104111 + +3010|AL|Covington County|Gantt town|830|0|1|Harvill|Otis Eddy|2981|Arizona|M|Head|||29|104112 +3010|AL|Covington County|Gantt town|830|0|2|Harvill|Concetta|2999|Pennsylvania|F|Daughter|||11|104113 + +3010|NY|Oswego County|Amboy town|831|0|1|Smith|Windy|2961|Nevada|F|Head|||49|104114 +3010|NY|Oswego County|Amboy town|831|0|2|Smith|Mika|2997|Massachusetts|F|Daughter|||13|104115 +3010|NY|Oswego County|Amboy town|831|0|3|Smith|Gennie|2999|Mississippi|F|Daughter|||11|104116 + +3010|OH|Wayne County|Kidron CDP|832|0|1|Stoute|Mauricio Taylor|2969|Kentucky|M|Head|||41|104117 +3010|OH|Wayne County|Kidron CDP|832|0|2|Stoute|Rebbeca|2987|Oklahoma|F|Daughter|||23|104118 +3010|OH|Wayne County|Kidron CDP|832|0|3|Stoute|Marsha|2991|Nevada|F|Daughter|||19|104119 +3010|OH|Wayne County|Kidron CDP|832|0|4|Stoute|Ahmed Wade|2995|Montana|M|Son|||15|104120 + +3010|WV|Calhoun County|Grantsville town|833|0|1|Propes|Pasquale Danial|2949|Alaska|M|Head|||61|104121 +3010|WV|Calhoun County|Grantsville town|833|0|2|Propes|Brianne|2949|Mongolia|F|Spouse|||61|104122 +3010|WV|Calhoun County|Grantsville town|833|0|3|Propes|Calvin|2969|Georgia|M|Son|||41|104123 +3010|WV|Calhoun County|Grantsville town|833|0|4|Propes|Donny|3003|WV|M|Son|||7|104124 +3010|WV|Calhoun County|Grantsville town|833|0|5|Propes|Karyl Meaghan|3007|WV|F|Daughter|||3|104125 + +3010|WI|Lafayette County|Wiota town|834|0|1|Etsitty|Stacey Al|2981|Wyoming|M|Head|||29|104126 +3010|WI|Lafayette County|Wiota town|834|0|2|Etsitty|Albertine|3001|WI|F|Daughter|||9|104127 +3010|WI|Lafayette County|Wiota town|834|0|3|Etsitty|Tawanda|3003|WI|F|Daughter|||7|104128 +3010|WI|Lafayette County|Wiota town|834|0|4|Etsitty|Neal|3005|WI|M|Son|||5|104129 + +3010|MN|Chippewa County|Rheiderland township|835|0|1|Babe|Eldridge Enoch|2944|Gibraltar|M|Head|||66|104130 +3010|MN|Chippewa County|Rheiderland township|835|0|2|Babe|Vennie Tonia|2953|New Jersey|F|Spouse|||57|104131 +3010|MN|Chippewa County|Rheiderland township|835|0|3|Babe|Dino|2997|South Carolina|M|Son|||13|104132 + +3010|PA|Washington County|Wickerham Manor-Fisher CDP|836|0|1|Henderson|Mac Sterling|2971|South Dakota|M|Head|||39|104133 +3010|PA|Washington County|Wickerham Manor-Fisher CDP|836|0|2|Henderson|Carlita|2978|Colorado|F|Spouse|||32|104134 +3010|PA|Washington County|Wickerham Manor-Fisher CDP|836|0|3|Henderson|Titus|2998|Vermont|M|Son|||12|104135 +3010|PA|Washington County|Wickerham Manor-Fisher CDP|836|0|4|Henderson|Ricky|3003|PA|M|Son|||7|104136 +3010|PA|Washington County|Wickerham Manor-Fisher CDP|836|0|5|Henderson|Morgan|3009|PA|M|Son|||1|104137 + +3010|PA|Tioga County|Westfield borough|837|0|1|Nordlinger|Kenton Hans|2951|Vermont|M|Head|||59|104138 +3010|PA|Tioga County|Westfield borough|837|0|2|Nordlinger|Leana|2991|Western Sahara|F|Daughter|||19|104139 +3010|PA|Tioga County|Westfield borough|837|0|3|Nordlinger|Garth|2995|Samoa|M|Son|||15|104140 +3010|PA|Tioga County|Westfield borough|837|0|4|Nordlinger|Beatrice|2997|Colorado|F|Daughter|||13|104141 +3010|PA|Tioga County|Westfield borough|837|0|5|Nordlinger|Pearly|2999|Rhode Island|F|Daughter|||11|104142 +3010|PA|Tioga County|Westfield borough|837|0|6|Nordlinger|Fonda|3007|PA|F|Daughter|||3|104143 + +3010|VA|Fairfax County|Tysons Corner CDP|838|0|1|Spann|Melita Ngoc|2969|Massachusetts|F|Head|||41|104144 +3010|VA|Fairfax County|Tysons Corner CDP|838|0|2|Spann|Manuela|2989|Georgia|F|Daughter|||21|104145 +3010|VA|Fairfax County|Tysons Corner CDP|838|0|3|Spann|Magdalena|2991|Wisconsin|F|Daughter|||19|104146 +3010|VA|Fairfax County|Tysons Corner CDP|838|0|4|Spann|Russ|2995|Belize|M|Son|||15|104147 +3010|VA|Fairfax County|Tysons Corner CDP|838|0|5|Spann|Jeremy|2999|Wyoming|F|Daughter|||11|104148 + +3010|AR|Lonoke County|Carlisle city|839|0|1|Nunez|Frankie|2945|Massachusetts|M|Head|||65|104149 +3010|AR|Lonoke County|Carlisle city|839|0|2|Nunez|Dante|2997|Illinois|M|Son|||13|104150 + +3010|AL|St. Clair County|Ashville city|840|0|1|Boday|Lamont Arnoldo|2938|Croatia|M|Head|||72|104151 +3010|AL|St. Clair County|Ashville city|840|0|2|Boday|Adalberto|2981|Kentucky|M|Son|||29|104152 + +3010|MO|DeKalb County|Stewartsville city|841|0|1|Lautt|Kimber|2953|Montana|F|Head|||57|104153 +3010|MO|DeKalb County|Stewartsville city|841|0|2|Lautt|Clark|2979|Idaho|M|Son|||31|104154 +3010|MO|DeKalb County|Stewartsville city|841|0|3|Lautt|Bea|2995|West Virginia|F|Daughter|||15|104155 +3010|MO|DeKalb County|Stewartsville city|841|0|4|Lautt|Mignon|2997|Maine|F|Daughter|||13|104156 + +3010|WI|Sauk County|Reedsburg town|842|0|1|Mazariegos|Carrol Kenneth|2962|California|M|Head|||48|104157 +3010|WI|Sauk County|Reedsburg town|842|0|2|Mazariegos|Cecil|2962|Alaska|F|Spouse|||48|104158 +3010|WI|Sauk County|Reedsburg town|842|0|3|Mazariegos|Shavon|2982|Vermont|F|Daughter|||28|104159 +3010|WI|Sauk County|Reedsburg town|842|0|4|Mazariegos|June|3003|WI|F|Daughter|||7|104160 + +3010|IL|Henry County|Cambridge village|843|0|1|Conley|Pat|2971|French Polynesia|M|Son|||39|104161 +3010|IL|Henry County|Cambridge village|843|0|2|Conley|Paz|2979|Oregon|F|Daughter|||31|104162 +3010|IL|Henry County|Cambridge village|843|0|3|Conley|Nohemi|2985|Mississippi|F|Daughter|||25|104163 + +3010|SD|Brookings County, Hamlin County|Lake Poinsett CDP|844|0|1|Glembocki|Willard Dean|3000|Alabama|M|Son|||10|104164 + +3010|MI|Arenac County|Turner township|845|0|1|Richart|Joesph Sherman|2940|Hawaii|M|Head|||70|104165 +3010|MI|Arenac County|Turner township|845|0|2|Richart|Vicky|2962|Switzerland|F|Spouse|||48|104166 +3010|MI|Arenac County|Turner township|845|0|3|Richart|Doretha|2992|Ohio|F|Daughter|||18|104167 +3010|MI|Arenac County|Turner township|845|0|4|Richart|Michal|3000|Utah|F|Daughter|||10|104168 +3010|MI|Arenac County|Turner township|845|0|5|Richart|Dede|3001|MI|F|Daughter|||9|104169 +3010|MI|Arenac County|Turner township|845|0|6|Richart|Dovie Ashlea|3009|MI|F|Daughter|||1|104170 + +3010|IL|Woodford County|Bay View Gardens village|846|0|1|Hakimian|Carmine Fernando|2947|Hawaii|M|Head|||63|104171 +3010|IL|Woodford County|Bay View Gardens village|846|0|2|Hakimian|Gertrude Agripina|2963|South Carolina|F|Spouse|||47|104172 +3010|IL|Woodford County|Bay View Gardens village|846|0|3|Hakimian|Antonette|2983|Madagascar|F|Daughter|||27|104173 +3010|IL|Woodford County|Bay View Gardens village|846|0|4|Hakimian|Nolan|2987|Azerbaijan|M|Son|||23|104174 +3010|IL|Woodford County|Bay View Gardens village|846|0|5|Hakimian|Jimmie|2995|Oregon|M|Son|||15|104175 +3010|IL|Woodford County|Bay View Gardens village|846|0|6|Hakimian|Genaro|2999|Idaho|M|Son|||11|104176 + +3010|TX|Parker County|Western Lake CDP|847|0|1|Cass|Trey Donald|2937|Texas|M|Head|||73|104177 +3010|TX|Parker County|Western Lake CDP|847|0|2|Cass|Waltraud|2987|Ohio|F|Daughter|||23|104178 +3010|TX|Parker County|Western Lake CDP|847|0|3|Cass|Edgardo|2989|Massachusetts|M|Son|||21|104179 +3010|TX|Parker County|Western Lake CDP|847|0|4|Cass|Mackenzie Delila|2995|South Dakota|F|Daughter|||15|104180 + +3010|PA|Wyoming County|Meshoppen borough|848|0|1|Sheffey|Lennie|2975|Cambodia|F|Head|||35|104181 +3010|PA|Wyoming County|Meshoppen borough|848|0|2|Sheffey|Mollie|2997|Fiji|F|Daughter|||13|104182 + +3010|MN|Blue Earth County|Judson township|849|0|1|Anderson|Edgar Dannie|2969|New Hampshire|M|Head|||41|104183 +3010|MN|Blue Earth County|Judson township|849|0|2|Anderson|Christin|2996|Minnesota|F|Daughter|||14|104184 + +3010|MN|Jackson County|Alpha city|850|0|1|Russom|Gabriel Dewey|2943|New Jersey|M|Head|||67|104185 +3010|MN|Jackson County|Alpha city|850|0|2|Russom|Frankie Willis|2997|Washington|M|Son|||13|104186 +3010|MN|Jackson County|Alpha city|850|0|3|Russom|Bryce|2999|Alaska|M|Son|||11|104187 + +3010|IA|Iowa County|Millersburg city|851|0|1|Choy|Ignacio Steven|2958|Florida|M|Head|||52|104188 +3010|IA|Iowa County|Millersburg city|851|0|2|Choy|Amanda|2968|North Dakota|F|Spouse|||42|104189 +3010|IA|Iowa County|Millersburg city|851|0|3|Choy|Retha|2988|Louisiana|F|Daughter|||22|104190 +3010|IA|Iowa County|Millersburg city|851|0|4|Choy|Rolland|2994|South Dakota|M|Son|||16|104191 +3010|IA|Iowa County|Millersburg city|851|0|5|Choy|Corey|2998|Delaware|M|Son|||12|104192 +3010|IA|Iowa County|Millersburg city|851|0|6|Choy|Fredia|3000|Rhode Island|F|Daughter|||10|104193 +3010|IA|Iowa County|Millersburg city|851|0|7|Choy|Georgeanna|3007|IA|F|Daughter|||3|104194 + +3010|MN|St. Louis County|Cherry township|852|0|1|Dupre|Laurence Cornelius|2967|New Jersey|M|Head|||43|104195 +3010|MN|St. Louis County|Cherry township|852|0|2|Dupre|Hyun Tayna|2977|Arkansas|F|Spouse|||33|104196 +3010|MN|St. Louis County|Cherry township|852|0|3|Dupre|Peter|2997|United Arab Emirates|M|Son|||13|104197 +3010|MN|St. Louis County|Cherry township|852|0|4|Dupre|Vannessa|3001|MN|F|Daughter|||9|104198 +3010|MN|St. Louis County|Cherry township|852|0|5|Dupre|Stefania|3005|MN|F|Daughter|||5|104199 +3010|MN|St. Louis County|Cherry township|852|0|6|Dupre|Elmer|3007|MN|M|Son|||3|104200 +3010|MN|St. Louis County|Cherry township|852|0|7|Dupre|Margert|3009|MN|F|Daughter|||1|104201 + +3010|NY|Westchester County|Rye town|853|0|1|Baker|Jed Aaron|2966|Ukraine|M|Head|||44|104202 +3010|NY|Westchester County|Rye town|853|0|2|Baker|Akilah|2983|South Carolina|F|Spouse|||27|104203 +3010|NY|Westchester County|Rye town|853|0|3|Baker|Shon|3001|NY|M|Son|||9|104204 +3010|NY|Westchester County|Rye town|853|0|4|Baker|Lakia|3009|NY|F|Daughter|||1|104205 + +3010|MN|Winona County|Utica city|855|0|1|Che|Brandon Elisha|2949|Benin|M|Head|||61|104206 +3010|MN|Winona County|Utica city|855|0|2|Che|Carl Denver|2985|Namibia|M|Son|||25|104207 +3010|MN|Winona County|Utica city|855|0|3|Che|Fernando|2995|Greece|M|Son|||15|104208 +3010|MN|Winona County|Utica city|855|0|4|Che|Chloe|2999|Kansas|F|Daughter|||11|104209 + +3010|WI|Walworth County|Fontana-on-Geneva Lake village|856|0|1|Howard|Jeannette|2984|North Dakota|F|Spouse|||26|104210 +3010|WI|Walworth County|Fontana-on-Geneva Lake village|856|0|2|Howard|Albert|3001|WI|M|Son|||9|104211 +3010|WI|Walworth County|Fontana-on-Geneva Lake village|856|0|3|Howard|Homer|3003|WI|M|Son|||7|104212 +3010|WI|Walworth County|Fontana-on-Geneva Lake village|856|0|4|Howard|Shonta|3005|WI|F|Daughter|||5|104213 +3010|WI|Walworth County|Fontana-on-Geneva Lake village|856|0|5|Howard|Bret|3009|WI|M|Son|||1|104214 + +3010|CO|Larimer County|Timnath town|857|0|1|Bonnell|Jarrett Allen|2950|Alaska|M|Head|||60|104215 +3010|CO|Larimer County|Timnath town|857|0|2|Bonnell|Willia|2957|Arizona|F|Spouse|||53|104216 +3010|CO|Larimer County|Timnath town|857|0|3|Bonnell|Edwardo Michael|2993|Wyoming|M|Son|||17|104217 +3010|CO|Larimer County|Timnath town|857|0|4|Bonnell|Warren|2995|Delaware|M|Son|||15|104218 +3010|CO|Larimer County|Timnath town|857|0|5|Bonnell|Booker|2997|Colorado|M|Son|||13|104219 +3010|CO|Larimer County|Timnath town|857|0|6|Bonnell|Georgiana|3001|CO|F|Daughter|||9|104220 +3010|CO|Larimer County|Timnath town|857|0|7|Bonnell|Porfirio|3003|CO|M|Son|||7|104221 +3010|CO|Larimer County|Timnath town|857|0|8|Bonnell|Takisha|3005|CO|F|Daughter|||5|104222 +3010|CO|Larimer County|Timnath town|857|0|9|Bonnell|Raquel|3007|CO|F|Daughter|||3|104223 + +3010|PR|Arecibo Municipio|Animas comunidad|858|0|1|Herr|Ward|2981|Wyoming|M|Head|||29|104224 +3010|PR|Arecibo Municipio|Animas comunidad|858|0|2|Herr|Coleen|2977|Arkansas|F|Spouse|||33|104225 +3010|PR|Arecibo Municipio|Animas comunidad|858|0|3|Herr|Darrick|2997|Moldova, Republic Of|M|Son|||13|104226 +3010|PR|Arecibo Municipio|Animas comunidad|858|0|4|Herr|Kristopher|3001|PR|M|Son|||9|104227 +3010|PR|Arecibo Municipio|Animas comunidad|858|0|5|Herr|Patrick Rusty|3003|PR|M|Son|||7|104228 +3010|PR|Arecibo Municipio|Animas comunidad|858|0|6|Herr|Norman|3009|PR|M|Son|||1|104229 + +3010|AZ|Maricopa County|Gilbert town|859|0|1|Young|Keturah|2949|California|F|Head|||61|104230 +3010|AZ|Maricopa County|Gilbert town|859|0|2|Young|Taren|2995|Maryland|F|Daughter|||15|104231 +3010|AZ|Maricopa County|Gilbert town|859|0|3|Young|Oliver|2997|Mississippi|M|Son|||13|104232 + +3010|OK|Pittsburg County|Longtown CDP|860|0|1|Faro|Larry Leopoldo|2962|Belgium|M|Head|||48|104233 +3010|OK|Pittsburg County|Longtown CDP|860|0|2|Faro|Page|2980|Maine|F|Spouse|||30|104234 +3010|OK|Pittsburg County|Longtown CDP|860|0|3|Faro|Rickie|3000|Guatemala|F|Daughter|||10|104235 +3010|OK|Pittsburg County|Longtown CDP|860|0|4|Faro|Socorro|3001|NY|F|Daughter|||9|104236 +3010|OK|Pittsburg County|Longtown CDP|860|0|5|Faro|Gino|3005|NY|M|Son|||5|104237 +3010|OK|Pittsburg County|Longtown CDP|860|0|6|Faro|Todd|3007|OK|M|Son|||3|104238 + +3010|PA|Lancaster County|Lititz borough|861|0|1|Lazos|Krista Daphine|2984|El Salvador|F|Spouse|||26|104239 +3010|PA|Lancaster County|Lititz borough|861|0|2|Lazos|Maricela|3001|PA|F|Daughter|||9|104240 +3010|PA|Lancaster County|Lititz borough|861|0|3|Lazos|Soo|3005|PA|F|Daughter|||5|104241 +3010|PA|Lancaster County|Lititz borough|861|0|4|Lazos|Aubrey Merle|3007|PA|M|Son|||3|104242 +3010|PA|Lancaster County|Lititz borough|861|0|5|Lazos|Janice|3009|PA|F|Daughter|||1|104243 + +3010|WI|Dodge County|Portland town|862|0|1|Gehlbach|Billie Tom|2979|Kansas|M|Head|||31|104244 +3010|WI|Dodge County|Portland town|862|0|2|Gehlbach|Tameka|2978|Massachusetts|F|Spouse|||32|104245 +3010|WI|Dodge County|Portland town|862|0|3|Gehlbach|Perry|3000|Nevada|F|Daughter|||10|104246 +3010|WI|Dodge County|Portland town|862|0|4|Gehlbach|Nancy|3001|PA|F|Daughter|||9|104247 +3010|WI|Dodge County|Portland town|862|0|5|Gehlbach|Lili|3005|PA|F|Daughter|||5|104248 +3010|WI|Dodge County|Portland town|862|0|6|Gehlbach|Elvin|3007|WI|M|Son|||3|104249 +3010|WI|Dodge County|Portland town|862|0|7|Gehlbach|Harrison Domingo|3009|WI|M|Son|||1|104250 + +3010|PA|Perry County|Juniata township|863|0|1|Keys|Robbie|2995|Missouri|M|Son|||15|104251 +3010|PA|Perry County|Juniata township|863|0|2|Keys|Donnie|2997|Nebraska|F|Daughter|||13|104252 + +3010|IA|Jackson County|Spragueville city|864|0|1|Gault|Randal Dwight|2982|Bangladesh|M|Head|||28|104253 + +3010|CA|San Luis Obispo County|Templeton CDP|865|0|1|Parks|Gustavo Terry|2940|Martinique|M|Head|||70|104254 +3010|CA|San Luis Obispo County|Templeton CDP|865|0|2|Parks|Kristal|2954|Virgin Islands, British|F|Spouse|||56|104255 +3010|CA|San Luis Obispo County|Templeton CDP|865|0|3|Parks|Delphine Shanon|2994|Myanmar|F|Daughter|||16|104256 +3010|CA|San Luis Obispo County|Templeton CDP|865|0|4|Parks|Monty|2996|Iowa|M|Son|||14|104257 +3010|CA|San Luis Obispo County|Templeton CDP|865|0|5|Parks|Wm|3000|Pennsylvania|M|Son|||10|104258 +3010|CA|San Luis Obispo County|Templeton CDP|865|0|6|Parks|Buford|3003|CA|M|Son|||7|104259 +3010|CA|San Luis Obispo County|Templeton CDP|865|0|7|Parks|Milton|3007|CA|M|Son|||3|104260 + +3010|PA|Bucks County|Eddington CDP|866|0|1|Ancira|Marylynn|2970|Maine|F|Head|||40|104261 + +3010|NY|Livingston County|Groveland town|867|0|1|Bourque|Chadwick Rickey|2973|Michigan|M|Head|||37|104262 +3010|NY|Livingston County|Groveland town|867|0|2|Bourque|Ashly|2995|Lesotho|F|Daughter|||15|104263 +3010|NY|Livingston County|Groveland town|867|0|3|Bourque|Rogelio|2997|Minnesota|M|Son|||13|104264 + +3010|MN|Steele County|Summit township|868|0|1|Eastmond|Hubert Manual|2955|North Carolina|M|Head|||55|104265 +3010|MN|Steele County|Summit township|868|0|2|Eastmond|Carie Vivienne|2964|Nevada|F|Spouse|||46|104266 +3010|MN|Steele County|Summit township|868|0|3|Eastmond|Tobie|2992|Nebraska|F|Daughter|||18|104267 +3010|MN|Steele County|Summit township|868|0|4|Eastmond|Hector|2998|Michigan|M|Son|||12|104268 +3010|MN|Steele County|Summit township|868|0|5|Eastmond|Johnny|3000|Saint Helena|M|Son|||10|104269 +3010|MN|Steele County|Summit township|868|0|6|Eastmond|Cammie|3005|MN|F|Daughter|||5|104270 +3010|MN|Steele County|Summit township|868|0|7|Eastmond|Isaura|3007|MN|F|Daughter|||3|104271 +3010|MN|Steele County|Summit township|868|0|8|Eastmond|Fausto|3009|MN|M|Son|||1|104272 + +3010|AR|Garland County|Lonsdale town|869|0|1|Fugate|Ivory Arron|2968|New Hampshire|M|Head|||42|104273 +3010|AR|Garland County|Lonsdale town|869|0|2|Fugate|Calista|2982|Malaysia|F|Spouse|||28|104274 +3010|AR|Garland County|Lonsdale town|869|0|3|Fugate|Lyndia|3003|AR|F|Daughter|||7|104275 +3010|AR|Garland County|Lonsdale town|869|0|4|Fugate|Marya|3005|AR|F|Daughter|||5|104276 +3010|AR|Garland County|Lonsdale town|869|0|5|Fugate|Eveline|3007|AR|F|Daughter|||3|104277 + +3010|WI|Polk County|Centuria village|870|0|1|Schultz|Lane Arron|2965|Alabama|M|Head|||45|104278 +3010|WI|Polk County|Centuria village|870|0|2|Schultz|Mariam|2967|Connecticut|F|Spouse|||43|104279 +3010|WI|Polk County|Centuria village|870|0|3|Schultz|Allison|2995|Ohio|F|Daughter|||15|104280 +3010|WI|Polk County|Centuria village|870|0|4|Schultz|Fabian|2999|Alabama|M|Son|||11|104281 +3010|WI|Polk County|Centuria village|870|0|5|Schultz|Adrian|3003|WI|M|Son|||7|104282 +3010|WI|Polk County|Centuria village|870|0|6|Schultz|Gabriella|3005|WI|F|Daughter|||5|104283 + +3010|NC|Pender County|Burgaw town|871|0|1|Ronk|Kirby Lanny|2968|North Dakota|M|Head|||42|104284 +3010|NC|Pender County|Burgaw town|871|0|2|Ronk|Kimberli|2980|Wyoming|F|Spouse|||30|104285 +3010|NC|Pender County|Burgaw town|871|0|3|Ronk|Kerri|3000|Michigan|F|Daughter|||10|104286 +3010|NC|Pender County|Burgaw town|871|0|4|Ronk|Betsey|3003|KY|F|Daughter|||7|104287 +3010|NC|Pender County|Burgaw town|871|0|5|Ronk|Maria|3005|KY|M|Son|||5|104288 + +3010|IL|Madison County|Hamel village|872|0|1|Peth|Dwayne Dewitt|2937|Virginia|M|Head|||73|104289 +3010|IL|Madison County|Hamel village|872|0|2|Peth|Phil|2989|Kosovo|M|Son|||21|104290 +3010|IL|Madison County|Hamel village|872|0|3|Peth|Cedrick|3003|TX|M|Son|||7|104291 +3010|IL|Madison County|Hamel village|872|0|4|Peth|Elvin|3005|TX|M|Son|||5|104292 +3010|IL|Madison County|Hamel village|872|0|5|Peth|Charlette|3007|IL|F|Daughter|||3|104293 +3010|IL|Madison County|Hamel village|872|0|6|Peth|Sheridan|3009|IL|F|Daughter|||1|104294 + +3010|OR|Wheeler County|Spray town|873|0|1|Teaff|Reuben|2947|Oregon|M|Head|||63|104295 +3010|OR|Wheeler County|Spray town|873|0|2|Teaff|April|2946|Arkansas|F|Spouse|||64|104296 +3010|OR|Wheeler County|Spray town|873|0|3|Teaff|Buford|2968|Kansas|M|Son|||42|104297 +3010|OR|Wheeler County|Spray town|873|0|4|Teaff|Drew|2992|Connecticut|M|Son|||18|104298 +3010|OR|Wheeler County|Spray town|873|0|5|Teaff|Heike|2998|Honduras|F|Daughter|||12|104299 +3010|OR|Wheeler County|Spray town|873|0|6|Teaff|Cierra|3000|California|F|Daughter|||10|104300 +3010|OR|Wheeler County|Spray town|873|0|7|Teaff|Renna|3001|OR|F|Daughter|||9|104301 +3010|OR|Wheeler County|Spray town|873|0|8|Teaff|Valentin|3005|OR|M|Son|||5|104302 +3010|OR|Wheeler County|Spray town|873|0|9|Teaff|Kennith|3007|OR|M|Son|||3|104303 + +3010|WI|Jackson County|Garfield town|874|0|1|Bellomy|Randolph|2968|South Carolina|M|Head|||42|104304 +3010|WI|Jackson County|Garfield town|874|0|2|Bellomy|Mirian|2970|Georgia|F|Spouse|||40|104305 +3010|WI|Jackson County|Garfield town|874|0|3|Bellomy|Errol|2998|Angola|M|Son|||12|104306 +3010|WI|Jackson County|Garfield town|874|0|4|Bellomy|Wilda|3000|Wyoming|F|Daughter|||10|104307 +3010|WI|Jackson County|Garfield town|874|0|5|Bellomy|Lonnie|3009|WI|M|Son|||1|104308 + +3010|LA|Tangipahoa Parish|Tangipahoa village|875|0|1|Simms|Arthur Mikel|2947|Colorado|M|Head|||63|104309 +3010|LA|Tangipahoa Parish|Tangipahoa village|875|0|2|Simms|Kathrine Delora|2961|Maine|F|Spouse|||49|104310 +3010|LA|Tangipahoa Parish|Tangipahoa village|875|0|3|Simms|Janett|2989|North Carolina|F|Daughter|||21|104311 +3010|LA|Tangipahoa Parish|Tangipahoa village|875|0|4|Simms|Milo|2995|North Carolina|M|Son|||15|104312 +3010|LA|Tangipahoa Parish|Tangipahoa village|875|0|5|Simms|Shayna|2997|Ohio|F|Daughter|||13|104313 +3010|LA|Tangipahoa Parish|Tangipahoa village|875|0|6|Simms|Lonnie|3001|LA|M|Son|||9|104314 +3010|LA|Tangipahoa Parish|Tangipahoa village|875|0|7|Simms|Nicolette Allie|3009|LA|F|Daughter|||1|104315 + +3010|MN|Mille Lacs County|Isle city|876|0|1|Moua|Jackson Mac|2946|Georgia|M|Head|||64|104316 +3010|MN|Mille Lacs County|Isle city|876|0|2|Moua|Season|2967|Kentucky|F|Spouse|||43|104317 +3010|MN|Mille Lacs County|Isle city|876|0|3|Moua|Davina|2993|Idaho|F|Daughter|||17|104318 +3010|MN|Mille Lacs County|Isle city|876|0|4|Moua|Andrea|2997|Djibouti|M|Son|||13|104319 +3010|MN|Mille Lacs County|Isle city|876|0|5|Moua|Jinny|3007|MN|F|Daughter|||3|104320 + +3010|WI|Dane County|Middleton town|877|0|1|Cisneros|Miquel|2967|Georgia|M|Head|||43|104321 +3010|WI|Dane County|Middleton town|877|0|2|Cisneros|Angelic|2973|North Carolina|F|Spouse|||37|104322 +3010|WI|Dane County|Middleton town|877|0|3|Cisneros|Kenyetta|2995|Romania|F|Daughter|||15|104323 +3010|WI|Dane County|Middleton town|877|0|4|Cisneros|Cole|2997|Arkansas|M|Son|||13|104324 +3010|WI|Dane County|Middleton town|877|0|5|Cisneros|Shakia|3005|WI|F|Daughter|||5|104325 +3010|WI|Dane County|Middleton town|877|0|6|Cisneros|Mac|3007|WI|M|Son|||3|104326 + +3010|ME|Washington County|Cherryfield town|878|0|1|Navarro|Titus Ian|2965|California|M|Head|||45|104327 +3010|ME|Washington County|Cherryfield town|878|0|2|Navarro|Ruthanne|2975|Alaska|F|Spouse|||35|104328 +3010|ME|Washington County|Cherryfield town|878|0|3|Navarro|Antonio|2997|Heard Island And Mcdonald Islands|F|Daughter|||13|104329 +3010|ME|Washington County|Cherryfield town|878|0|4|Navarro|Robert|3003|ME|M|Son|||7|104330 +3010|ME|Washington County|Cherryfield town|878|0|5|Navarro|Shanita|3007|ME|F|Daughter|||3|104331 + +3010|KS|Reno County|Arlington city|879|0|1|Garrett|Inocencia Brett|3001|KS|F|Daughter|||9|104332 +3010|KS|Reno County|Arlington city|879|0|2|Garrett|Leonardo|3007|KS|M|Son|||3|104333 + +3010|GA|Jefferson County|Matthews CDP|880|0|1|Diani|Esteban Benny|2947|Indiana|M|Head|||63|104334 +3010|GA|Jefferson County|Matthews CDP|880|0|2|Diani|Laurette|2992|Bouvet Island|F|Daughter|||18|104335 +3010|GA|Jefferson County|Matthews CDP|880|0|3|Diani|Angelo|2996|Arizona|M|Son|||14|104336 +3010|GA|Jefferson County|Matthews CDP|880|0|4|Diani|Victor|2998|Saint Pierre And Miquelon|M|Son|||12|104337 + +3010|AK|Lake and Peninsula Borough|Chignik Lake CDP|881|0|1|Cull|Marquis|2994|Brunei Darussalam|M|Son|||16|104338 +3010|AK|Lake and Peninsula Borough|Chignik Lake CDP|881|0|2|Cull|Fletcher|2996|Indiana|M|Son|||14|104339 + +3010|IN|Miami County|Denver town|882|0|1|Sitaca|Arturo Norberto|2973|Michigan|M|Head|||37|104340 +3010|IN|Miami County|Denver town|882|0|2|Sitaca|Delicia|2976|West Virginia|F|Spouse|||34|104341 +3010|IN|Miami County|Denver town|882|0|3|Sitaca|Chelsea|2998|Kansas|F|Daughter|||12|104342 +3010|IN|Miami County|Denver town|882|0|4|Sitaca|Saul|3001|IN|M|Son|||9|104343 +3010|IN|Miami County|Denver town|882|0|5|Sitaca|Henrietta Angelica|3003|IN|F|Daughter|||7|104344 +3010|IN|Miami County|Denver town|882|0|6|Sitaca|Napoleon|3009|IN|M|Son|||1|104345 + +3010|MA|Essex County|County Subdivisions not defined|883|0|1|Tullis|Dierdre Lesley|2956|Thailand|F|Spouse|||54|104346 +3010|MA|Essex County|County Subdivisions not defined|883|0|2|Tullis|Andy|2998|Oregon|M|Son|||12|104347 +3010|MA|Essex County|County Subdivisions not defined|883|0|3|Tullis|Yer Latasha|3003|MA|F|Daughter|||7|104348 +3010|MA|Essex County|County Subdivisions not defined|883|0|4|Tullis|Maude|3005|MA|F|Daughter|||5|104349 + +3010|WI|La Crosse County|La Crosse city|884|0|1|Satterthwaite|Jorge Herb|2954|Oklahoma|M|Head|||56|104350 +3010|WI|La Crosse County|La Crosse city|884|0|2|Satterthwaite|Anastacia|2966|Arizona|F|Spouse|||44|104351 +3010|WI|La Crosse County|La Crosse city|884|0|3|Satterthwaite|Dan|2990|Fiji|M|Son|||20|104352 +3010|WI|La Crosse County|La Crosse city|884|0|4|Satterthwaite|Samella|2996|Ohio|F|Daughter|||14|104353 +3010|WI|La Crosse County|La Crosse city|884|0|5|Satterthwaite|Stormy|2998|Mississippi|F|Daughter|||12|104354 +3010|WI|La Crosse County|La Crosse city|884|0|6|Satterthwaite|Darby|3000|Washington|F|Daughter|||10|104355 +3010|WI|La Crosse County|La Crosse city|884|0|7|Satterthwaite|Floyd|3003|WI|M|Son|||7|104356 +3010|WI|La Crosse County|La Crosse city|884|0|8|Satterthwaite|Donna Kindra|3007|WI|F|Daughter|||3|104357 + +3010|WY|Hot Springs County|Kirby town|885|0|1|May|Thomas|2938|Hawaii|F|Head|||72|104358 +3010|WY|Hot Springs County|Kirby town|885|0|2|May|Roman|2964|Connecticut|M|Son|||46|104359 +3010|WY|Hot Springs County|Kirby town|885|0|3|May|Santos|2978|California|M|Son|||32|104360 +3010|WY|Hot Springs County|Kirby town|885|0|4|May|Ricardo|2980|Idaho|M|Son|||30|104361 +3010|WY|Hot Springs County|Kirby town|885|0|5|May|Lakeesha|2982|Alabama|F|Daughter|||28|104362 + +3010|MI|Kalamazoo County|Ross township|886|0|1|Flores|Brain|2997|Iowa|M|Son|||13|104363 +3010|MI|Kalamazoo County|Ross township|886|0|2|Flores|Marvin|2999|Wisconsin|M|Son|||11|104364 + +3010|MI|Lenawee County|Adrian city|887|0|1|Meade|Tory Everett|2963|Australia|M|Head|||47|104365 +3010|MI|Lenawee County|Adrian city|887|0|2|Meade|Vina|2991|North Carolina|F|Daughter|||19|104366 +3010|MI|Lenawee County|Adrian city|887|0|3|Meade|Barrett|2995|Kentucky|M|Son|||15|104367 +3010|MI|Lenawee County|Adrian city|887|0|4|Meade|Edmund Stefan|2999|Maine|M|Son|||11|104368 + +3010|MI|Barry County|Hastings charter township|888|0|1|Jenkins|Eloise|2977|Morocco|F|Spouse|||33|104369 +3010|MI|Barry County|Hastings charter township|888|0|2|Jenkins|Grace|2997|Tanzania, United Republic Of|F|Daughter|||13|104370 +3010|MI|Barry County|Hastings charter township|888|0|3|Jenkins|Hong|2999|Puerto Rico|F|Daughter|||11|104371 +3010|MI|Barry County|Hastings charter township|888|0|4|Jenkins|Alexia|3003|MI|F|Daughter|||7|104372 + +3010|NE|Dodge County|Inglewood village|889|0|1|Shaffer|Vance Harland|2959|Massachusetts|M|Head|||51|104373 +3010|NE|Dodge County|Inglewood village|889|0|2|Shaffer|Barb|2978|Minnesota|F|Spouse|||32|104374 +3010|NE|Dodge County|Inglewood village|889|0|3|Shaffer|Pedro Robert|3000|Washington|M|Son|||10|104375 +3010|NE|Dodge County|Inglewood village|889|0|4|Shaffer|Lester William|3005|NE|M|Son|||5|104376 +3010|NE|Dodge County|Inglewood village|889|0|5|Shaffer|Gloria|3007|NE|F|Daughter|||3|104377 + +3010|CT|New London County|County Subdivisions not defined|890|0|1|Wichman|Hosea|2974|Wisconsin|M|Son|||36|104378 +3010|CT|New London County|County Subdivisions not defined|890|0|2|Wichman|Valentine|2986|Martinique|M|Son|||24|104379 + +3010|MN|Traverse County|Walls township|891|0|1|Herrera|Eric|2951|Arizona|F|Head|||59|104380 +3010|MN|Traverse County|Walls township|891|0|2|Herrera|Benton Raymond|2975|Gibraltar|M|Son|||35|104381 + +3010|IL|Jo Daviess County|Hanover village|892|0|1|Touchet|Tommie Jacques|2978|Maryland|M|Head|||32|104382 +3010|IL|Jo Daviess County|Hanover village|892|0|2|Touchet|Lorena|2979|Maryland|F|Spouse|||31|104383 +3010|IL|Jo Daviess County|Hanover village|892|0|3|Touchet|Eusebia Nereida|3005|IL|F|Daughter|||5|104384 +3010|IL|Jo Daviess County|Hanover village|892|0|4|Touchet|Orlando|3007|IL|M|Son|||3|104385 + +3010|NJ|Hunterdon County|Union township|893|0|1|Sullivan|Waylon Lonny|2941|Oklahoma|M|Head|||69|104386 +3010|NJ|Hunterdon County|Union township|893|0|2|Sullivan|Laquita|2943|Maryland|F|Spouse|||67|104387 +3010|NJ|Hunterdon County|Union township|893|0|3|Sullivan|Nohemi|2967|Nevada|F|Daughter|||43|104388 +3010|NJ|Hunterdon County|Union township|893|0|4|Sullivan|Milan|2995|South Carolina|M|Son|||15|104389 +3010|NJ|Hunterdon County|Union township|893|0|5|Sullivan|Tandy|2997|Florida|F|Daughter|||13|104390 +3010|NJ|Hunterdon County|Union township|893|0|6|Sullivan|Denny|3005|KY|M|Son|||5|104391 + +3010|NH|Grafton County|Groton town|894|0|1|Bristol|Andres Elden|2979|Colorado|M|Head|||31|104392 +3010|NH|Grafton County|Groton town|894|0|2|Bristol|Wilber|2996|Vermont|M|Son|||14|104393 +3010|NH|Grafton County|Groton town|894|0|3|Bristol|Evie|2998|New York|F|Daughter|||12|104394 +3010|NH|Grafton County|Groton town|894|0|4|Bristol|Bart|3000|Alabama|M|Son|||10|104395 +3010|NH|Grafton County|Groton town|894|0|5|Bristol|Lenna Tamica|3001|NH|F|Daughter|||9|104396 +3010|NH|Grafton County|Groton town|894|0|6|Bristol|Dagny|3003|NH|F|Daughter|||7|104397 +3010|NH|Grafton County|Groton town|894|0|7|Bristol|Elias|3007|NH|M|Son|||3|104398 + +3010|PA|Bucks County|Langhorne Manor borough|895|0|1|Poe|Stanford Dylan|2966|Tennessee|M|Head|||44|104399 +3010|PA|Bucks County|Langhorne Manor borough|895|0|2|Poe|Benjamin|2994|United Kingdom|M|Son|||16|104400 +3010|PA|Bucks County|Langhorne Manor borough|895|0|3|Poe|Shandra|2996|Maryland|F|Daughter|||14|104401 +3010|PA|Bucks County|Langhorne Manor borough|895|0|4|Poe|Myriam|3000|New Mexico|F|Daughter|||10|104402 + +3010|NE|Knox County|Bazile Mills village|896|0|1|Burgess|Shad Alonzo|2942|Hawaii|M|Head|||68|104403 +3010|NE|Knox County|Bazile Mills village|896|0|2|Burgess|Ocie|2946|South Carolina|F|Spouse|||64|104404 +3010|NE|Knox County|Bazile Mills village|896|0|3|Burgess|Kristie|2966|Illinois|F|Daughter|||44|104405 +3010|NE|Knox County|Bazile Mills village|896|0|4|Burgess|Michel|2968|Wyoming|M|Son|||42|104406 +3010|NE|Knox County|Bazile Mills village|896|0|5|Burgess|Rochelle|2972|South Carolina|F|Daughter|||38|104407 +3010|NE|Knox County|Bazile Mills village|896|0|6|Burgess|Tereasa Shenna|2990|Kentucky|F|Daughter|||20|104408 +3010|NE|Knox County|Bazile Mills village|896|0|7|Burgess|Merna|3000|Myanmar|F|Daughter|||10|104409 +3010|NE|Knox County|Bazile Mills village|896|0|8|Burgess|Jc|3001|NE|M|Son|||9|104410 +3010|NE|Knox County|Bazile Mills village|896|0|9|Burgess|Olin|3005|NE|M|Son|||5|104411 + +3010|PA|Crawford County|Hydetown borough|897|0|1|Alvarez|Josh|2963|Pennsylvania|M|Head|||47|104412 +3010|PA|Crawford County|Hydetown borough|897|0|2|Alvarez|Wayne|2997|Utah|M|Son|||13|104413 + +3010|OR|Coos County|Myrtle Point city|898|0|1|Ordonez|Dana Myron|2940|Andorra|M|Head|||70|104414 +3010|OR|Coos County|Myrtle Point city|898|0|2|Ordonez|Marisela|2958|Nevada|F|Spouse|||52|104415 +3010|OR|Coos County|Myrtle Point city|898|0|3|Ordonez|Lucien|3000|Massachusetts|M|Son|||10|104416 +3010|OR|Coos County|Myrtle Point city|898|0|4|Ordonez|Jeremiah|3001|OR|M|Son|||9|104417 +3010|OR|Coos County|Myrtle Point city|898|0|5|Ordonez|Maximina|3005|OR|F|Daughter|||5|104418 +3010|OR|Coos County|Myrtle Point city|898|0|6|Ordonez|Hubert|3009|OR|M|Son|||1|104419 + +3010|CA|Riverside County|Mead Valley CDP|899|0|1|Stein|Wilbur Christopher|2941|Washington|M|Head|||69|104420 + +3010|IA|Winnebago County|Scarville city|900|0|1|Applewhite|Burton Issac|2947|North Dakota|M|Head|||63|104421 +3010|IA|Winnebago County|Scarville city|900|0|2|Applewhite|Margret Nadia|2968|Utah|F|Spouse|||42|104422 +3010|IA|Winnebago County|Scarville city|900|0|3|Applewhite|Carlyn Ruthie|2990|Kentucky|F|Daughter|||20|104423 +3010|IA|Winnebago County|Scarville city|900|0|4|Applewhite|Cathryn Melony|2992|Chile|F|Daughter|||18|104424 +3010|IA|Winnebago County|Scarville city|900|0|5|Applewhite|Dana|2996|Georgia|M|Son|||14|104425 +3010|IA|Winnebago County|Scarville city|900|0|6|Applewhite|Gabriel|3009|IA|F|Daughter|||1|104426 + +3010|OH|Cuyahoga County|Cleveland city|901|0|1|Miklas|Wilson Logan|2952|Missouri|M|Head|||58|104427 +3010|OH|Cuyahoga County|Cleveland city|901|0|2|Miklas|Ruthann|2989|Vermont|F|Daughter|||21|104428 +3010|OH|Cuyahoga County|Cleveland city|901|0|3|Miklas|Troy|3005|OH|M|Son|||5|104429 +3010|OH|Cuyahoga County|Cleveland city|901|0|4|Miklas|Siobhan Carolin|3007|OH|F|Daughter|||3|104430 + +3010|OH|Ashtabula County|Ashtabula city|902|0|1|Gago|Noel Howard|2964|Idaho|M|Head|||46|104431 +3010|OH|Ashtabula County|Ashtabula city|902|0|2|Gago|Dayle|3000|California|F|Daughter|||10|104432 + +3010|NM|Bernalillo County|Ponderosa Pine CDP|903|0|1|Shawley|Thaddeus James|2962|Nevada|M|Head|||48|104433 +3010|NM|Bernalillo County|Ponderosa Pine CDP|903|0|2|Shawley|Dona|2973|Ethiopia|F|Spouse|||37|104434 +3010|NM|Bernalillo County|Ponderosa Pine CDP|903|0|3|Shawley|Migdalia|2993|South Carolina|F|Daughter|||17|104435 +3010|NM|Bernalillo County|Ponderosa Pine CDP|903|0|4|Shawley|Damian|3001|NM|M|Son|||9|104436 +3010|NM|Bernalillo County|Ponderosa Pine CDP|903|0|5|Shawley|Terry|3007|NM|M|Son|||3|104437 + +3010|IL|St. Clair County|Darmstadt CDP|904|0|1|Eason|Clelia Kimi|2952|Mongolia|F|Spouse|||58|104438 +3010|IL|St. Clair County|Darmstadt CDP|904|0|2|Eason|Alva|2986|Nebraska|F|Daughter|||24|104439 +3010|IL|St. Clair County|Darmstadt CDP|904|0|3|Eason|Nicolas|2996|Colorado|M|Son|||14|104440 +3010|IL|St. Clair County|Darmstadt CDP|904|0|4|Eason|Kerrie Tiera|2998|Maine|F|Daughter|||12|104441 +3010|IL|St. Clair County|Darmstadt CDP|904|0|5|Eason|Kaylene|3001|IL|F|Daughter|||9|104442 + +3010|MN|Jackson County|Alpha city|905|0|1|Falke|Ian Darell|2974|Cape Verde|M|Head|||36|104443 +3010|MN|Jackson County|Alpha city|905|0|2|Falke|Yu|2979|Oklahoma|F|Spouse|||31|104444 +3010|MN|Jackson County|Alpha city|905|0|3|Falke|Milford|2999|Maine|M|Son|||11|104445 +3010|MN|Jackson County|Alpha city|905|0|4|Falke|Michale|3001|MN|M|Son|||9|104446 +3010|MN|Jackson County|Alpha city|905|0|5|Falke|Vincenzo|3005|MN|M|Son|||5|104447 + +3010|MA|Plymouth County|Southfield CDP|906|0|1|Sheaman|Johnie Tyrell|2973|North Carolina|M|Head|||37|104448 +3010|MA|Plymouth County|Southfield CDP|906|0|2|Sheaman|Dominica|2977|Ohio|F|Spouse|||33|104449 +3010|MA|Plymouth County|Southfield CDP|906|0|3|Sheaman|Abel Graig|2997|Netherlands Antilles|M|Son|||13|104450 +3010|MA|Plymouth County|Southfield CDP|906|0|4|Sheaman|Laurel|3001|MA|F|Daughter|||9|104451 +3010|MA|Plymouth County|Southfield CDP|906|0|5|Sheaman|Santos Santana|3005|MA|F|Daughter|||5|104452 +3010|MA|Plymouth County|Southfield CDP|906|0|6|Sheaman|Damion|3007|MA|M|Son|||3|104453 + +3010|NY|Monroe County|Rush town|907|0|1|Cuadrado|Debbi|2942|New Hampshire|F|Spouse|||68|104454 +3010|NY|Monroe County|Rush town|907|0|2|Cuadrado|Ian|2978|Florida|M|Son|||32|104455 +3010|NY|Monroe County|Rush town|907|0|3|Cuadrado|Karlyn|2996|Saint Helena|F|Daughter|||14|104456 +3010|NY|Monroe County|Rush town|907|0|4|Cuadrado|Kiara Tracie|2998|Rhode Island|F|Daughter|||12|104457 +3010|NY|Monroe County|Rush town|907|0|5|Cuadrado|Alanna|3009|NY|F|Daughter|||1|104458 + +3010|MN|Lyon County|Cottonwood city|908|0|1|Christenson|Hayden Stanton|2963|Montana|M|Head|||47|104459 + +3010|KS|Decatur County|Dresden city|909|0|1|Faraldo|Emerson Chris|2961|Missouri|M|Head|||49|104460 +3010|KS|Decatur County|Dresden city|909|0|2|Faraldo|Lincoln|2983|Palestinian Territory, Occupied|M|Son|||27|104461 +3010|KS|Decatur County|Dresden city|909|0|3|Faraldo|Zack|2995|Macau|M|Son|||15|104462 +3010|KS|Decatur County|Dresden city|909|0|4|Faraldo|Hermine|2999|Togo|F|Daughter|||11|104463 + +3010|MI|Eaton County|Bellevue township|910|0|1|Rudy|Rudy Tim|2938|Indiana|M|Head|||72|104464 +3010|MI|Eaton County|Bellevue township|910|0|2|Rudy|Catherine|2945|Romania|F|Spouse|||65|104465 +3010|MI|Eaton County|Bellevue township|910|0|3|Rudy|Adelia|2967|Vermont|F|Daughter|||43|104466 +3010|MI|Eaton County|Bellevue township|910|0|4|Rudy|Tracy Brandon|2969|Hawaii|M|Son|||41|104467 +3010|MI|Eaton County|Bellevue township|910|0|5|Rudy|Courtney|2975|Maine|M|Son|||35|104468 +3010|MI|Eaton County|Bellevue township|910|0|6|Rudy|Torri|2977|Kentucky|F|Daughter|||33|104469 +3010|MI|Eaton County|Bellevue township|910|0|7|Rudy|Vernetta|2979|Ohio|F|Daughter|||31|104470 +3010|MI|Eaton County|Bellevue township|910|0|8|Rudy|Geoffrey|2987|Arkansas|M|Son|||23|104471 +3010|MI|Eaton County|Bellevue township|910|0|9|Rudy|Lashunda|2991|Mississippi|F|Daughter|||19|104472 +3010|MI|Eaton County|Bellevue township|910|0|10|Rudy|Jonah|2995|Minnesota|M|Son|||15|104473 +3010|MI|Eaton County|Bellevue township|910|0|11|Rudy|Valda|3001|MI|F|Daughter|||9|104474 +3010|MI|Eaton County|Bellevue township|910|0|12|Rudy|Kesha|3009|MI|F|Daughter|||1|104475 + +3010|KS|Reno County|Sylvia city|911|0|1|Wells|Broderick|2980|Missouri|M|Head|||30|104476 +3010|KS|Reno County|Sylvia city|911|0|2|Wells|Georgann|2977|Texas|F|Spouse|||33|104477 +3010|KS|Reno County|Sylvia city|911|0|3|Wells|Debi|2997|Andorra|F|Daughter|||13|104478 +3010|KS|Reno County|Sylvia city|911|0|4|Wells|Rubin|2999|Washington|M|Son|||11|104479 +3010|KS|Reno County|Sylvia city|911|0|5|Wells|Laila|3001|KS|F|Daughter|||9|104480 +3010|KS|Reno County|Sylvia city|911|0|6|Wells|Rufus|3003|KS|M|Son|||7|104481 +3010|KS|Reno County|Sylvia city|911|0|7|Wells|Nathan|3007|KS|M|Son|||3|104482 +3010|KS|Reno County|Sylvia city|911|0|8|Wells|Hilario|3009|KS|M|Son|||1|104483 + +3010|IN|Wells County|Ossian town|912|0|1|Fischl|Gregg Wilbur|2976|Illinois|M|Head|||34|104484 +3010|IN|Wells County|Ossian town|912|0|2|Fischl|Shaunda Libby|2981|Nevada|F|Spouse|||29|104485 +3010|IN|Wells County|Ossian town|912|0|3|Fischl|Katharina|3001|IN|F|Daughter|||9|104486 +3010|IN|Wells County|Ossian town|912|0|4|Fischl|Marquerite|3003|IN|F|Daughter|||7|104487 +3010|IN|Wells County|Ossian town|912|0|5|Fischl|Tod|3009|IN|M|Son|||1|104488 + +3010|CA|Inyo County|Dixon Lane-Meadow Creek CDP|913|0|1|Verrilli|Whitney Delbert|2968|California|M|Head|||42|104489 +3010|CA|Inyo County|Dixon Lane-Meadow Creek CDP|913|0|2|Verrilli|Sol|2997|Florida|M|Son|||13|104490 + +3010|NC|Craven County|Brices Creek CDP|914|0|1|Napoletano|Ivan|2952|Georgia|M|Head|||58|104491 +3010|NC|Craven County|Brices Creek CDP|914|0|2|Napoletano|Zachariah|2997|Missouri|M|Son|||13|104492 +3010|NC|Craven County|Brices Creek CDP|914|0|3|Napoletano|Chester|2999|New York|M|Son|||11|104493 + +3010|PA|Snyder County|Jackson township|915|0|1|Sanchez|Rafael Demetrius|2953|Virginia|M|Head|||57|104494 +3010|PA|Snyder County|Jackson township|915|0|2|Sanchez|Ginny|2990|Niger|F|Daughter|||20|104495 +3010|PA|Snyder County|Jackson township|915|0|3|Sanchez|Devona|2996|Maryland|F|Daughter|||14|104496 + +3010|MI|Oakland County|Ferndale city|916|0|1|Biscardi|Rudy Harry|2947|Alabama|M|Head|||63|104497 +3010|MI|Oakland County|Ferndale city|916|0|2|Biscardi|Veronique|2987|New Hampshire|F|Daughter|||23|104498 +3010|MI|Oakland County|Ferndale city|916|0|3|Biscardi|Detra|2995|Wisconsin|F|Daughter|||15|104499 + +3010|MN|Watonwan County|Butterfield township|917|0|1|Cho|Parker Will|2943|Kansas|M|Head|||67|104500 +3010|MN|Watonwan County|Butterfield township|917|0|2|Cho|Shirly|2959|Honduras|F|Spouse|||51|104501 +3010|MN|Watonwan County|Butterfield township|917|0|3|Cho|Bernie|2981|Dominican Republic|M|Son|||29|104502 +3010|MN|Watonwan County|Butterfield township|917|0|4|Cho|Merilyn|2985|Illinois|F|Daughter|||25|104503 +3010|MN|Watonwan County|Butterfield township|917|0|5|Cho|Molly|2987|Somalia|F|Daughter|||23|104504 +3010|MN|Watonwan County|Butterfield township|917|0|6|Cho|Olin|2991|Michigan|M|Son|||19|104505 +3010|MN|Watonwan County|Butterfield township|917|0|7|Cho|Birgit|2995|Utah|F|Daughter|||15|104506 +3010|MN|Watonwan County|Butterfield township|917|0|8|Cho|Ouida|3001|MN|F|Daughter|||9|104507 +3010|MN|Watonwan County|Butterfield township|917|0|9|Cho|Geneva|3003|MN|F|Daughter|||7|104508 +3010|MN|Watonwan County|Butterfield township|917|0|10|Cho|Obdulia|3005|MN|F|Daughter|||5|104509 +3010|MN|Watonwan County|Butterfield township|917|0|11|Cho|Talisha|3007|MN|F|Daughter|||3|104510 +3010|MN|Watonwan County|Butterfield township|917|0|12|Cho|Alejandro|3009|MN|M|Son|||1|104511 + +3010|WA|Clark County|Orchards CDP|918|0|1|Pesantes|Cruz Judson|2965|Montenegro|M|Head|||45|104512 + +3010|PA|Montgomery County|West Conshohocken borough|919|0|1|Moncrief|Milo Jess|2951|New Hampshire|M|Head|||59|104513 +3010|PA|Montgomery County|West Conshohocken borough|919|0|2|Moncrief|Brittani|2954|Arizona|F|Spouse|||56|104514 +3010|PA|Montgomery County|West Conshohocken borough|919|0|3|Moncrief|Carleen|2990|Texas|F|Daughter|||20|104515 +3010|PA|Montgomery County|West Conshohocken borough|919|0|4|Moncrief|Felice|2994|Maine|F|Daughter|||16|104516 +3010|PA|Montgomery County|West Conshohocken borough|919|0|5|Moncrief|Toccara|2996|Christmas Island|F|Daughter|||14|104517 +3010|PA|Montgomery County|West Conshohocken borough|919|0|6|Moncrief|Ashleigh|2998|Florida|F|Daughter|||12|104518 +3010|PA|Montgomery County|West Conshohocken borough|919|0|7|Moncrief|Carry|3000|Equatorial Guinea|F|Daughter|||10|104519 +3010|PA|Montgomery County|West Conshohocken borough|919|0|8|Moncrief|Jacinto|3007|PA|M|Son|||3|104520 +3010|PA|Montgomery County|West Conshohocken borough|919|0|9|Moncrief|Rodger|3009|PA|M|Son|||1|104521 + +3010|MA|Norfolk County|Quincy city|920|0|1|Willame|Ross Angel|2959|Colorado|M|Head|||51|104522 +3010|MA|Norfolk County|Quincy city|920|0|2|Willame|Brittaney|2970|Louisiana|F|Spouse|||40|104523 +3010|MA|Norfolk County|Quincy city|920|0|3|Willame|Jame|2996|Georgia|M|Son|||14|104524 +3010|MA|Norfolk County|Quincy city|920|0|4|Willame|Jacque|2998|Nebraska|F|Daughter|||12|104525 +3010|MA|Norfolk County|Quincy city|920|0|5|Willame|Rheba Amira|3000|Nevada|F|Daughter|||10|104526 + +3010|IL|Shelby County|Shelbyville city|921|0|1|Hartman|Parker Mario|2945|Kentucky|M|Head|||65|104527 +3010|IL|Shelby County|Shelbyville city|921|0|2|Hartman|Sindy|2952|Illinois|F|Spouse|||58|104528 +3010|IL|Shelby County|Shelbyville city|921|0|3|Hartman|Luigi|2984|Chad|M|Son|||26|104529 +3010|IL|Shelby County|Shelbyville city|921|0|4|Hartman|Alec|2994|Texas|M|Son|||16|104530 +3010|IL|Shelby County|Shelbyville city|921|0|5|Hartman|Leon|3005|IL|M|Son|||5|104531 + +3010|OR|Wallowa County|Wallowa city|922|0|1|Gillming|Thomas Jeremiah|2949|Maine|M|Head|||61|104532 +3010|OR|Wallowa County|Wallowa city|922|0|2|Gillming|Levi|2988|Fiji|M|Son|||22|104533 +3010|OR|Wallowa County|Wallowa city|922|0|3|Gillming|Kristie|2992|Missouri|F|Daughter|||18|104534 +3010|OR|Wallowa County|Wallowa city|922|0|4|Gillming|Mirian|2998|Maryland|F|Daughter|||12|104535 +3010|OR|Wallowa County|Wallowa city|922|0|5|Gillming|Jordan|3001|OR|M|Son|||9|104536 + +3010|OK|Creek County, Tulsa County|Sapulpa city|923|0|1|Champlain|Weston Delmar|2946|Iowa|M|Head|||64|104537 +3010|OK|Creek County, Tulsa County|Sapulpa city|923|0|2|Champlain|Trinity|2952|Indiana|F|Spouse|||58|104538 +3010|OK|Creek County, Tulsa County|Sapulpa city|923|0|3|Champlain|Artie|2994|Georgia|F|Daughter|||16|104539 +3010|OK|Creek County, Tulsa County|Sapulpa city|923|0|4|Champlain|Santana|2998|New Hampshire|F|Daughter|||12|104540 +3010|OK|Creek County, Tulsa County|Sapulpa city|923|0|5|Champlain|Reid Garry|3000|Oregon|M|Son|||10|104541 +3010|OK|Creek County, Tulsa County|Sapulpa city|923|0|6|Champlain|Kazuko|3007|OK|F|Daughter|||3|104542 + +3010|OH|Clark County, Greene County|Clifton village|924|0|1|Wilson|Donnell Wendell|2946|Utah|M|Head|||64|104543 +3010|OH|Clark County, Greene County|Clifton village|924|0|2|Wilson|Letitia|2946|Pennsylvania|F|Spouse|||64|104544 +3010|OH|Clark County, Greene County|Clifton village|924|0|3|Wilson|Hank|2970|Virgin Islands, U.s.|M|Son|||40|104545 +3010|OH|Clark County, Greene County|Clifton village|924|0|4|Wilson|Eduardo Deangelo|2994|Montana|M|Son|||16|104546 +3010|OH|Clark County, Greene County|Clifton village|924|0|5|Wilson|Audria|2996|Kansas|F|Daughter|||14|104547 +3010|OH|Clark County, Greene County|Clifton village|924|0|6|Wilson|Clark|3001|OH|M|Son|||9|104548 + +3010|NY|Columbia County|Chatham town|925|0|1|Christle|Carlton Sal|2970|Colorado|M|Head|||40|104549 +3010|NY|Columbia County|Chatham town|925|0|2|Christle|Blanca|2969|Tennessee|F|Spouse|||41|104550 +3010|NY|Columbia County|Chatham town|925|0|3|Christle|Bobbie|3003|NY|M|Son|||7|104551 +3010|NY|Columbia County|Chatham town|925|0|4|Christle|Bud|3007|NY|M|Son|||3|104552 + +3010|NH|Sullivan County|Goshen town|926|0|1|Fitzgerald|Brice Tracey|2939|Alabama|M|Head|||71|104553 +3010|NH|Sullivan County|Goshen town|926|0|2|Fitzgerald|Gerard|2985|Minnesota|M|Son|||25|104554 +3010|NH|Sullivan County|Goshen town|926|0|3|Fitzgerald|Tarsha|2987|New Hampshire|F|Daughter|||23|104555 + +3010|GA|Morgan County|Rutledge city|927|0|1|Thibodeaux|Mark Mario|2961|Tonga|M|Head|||49|104556 +3010|GA|Morgan County|Rutledge city|927|0|2|Thibodeaux|Katrina|2995|Georgia|F|Daughter|||15|104557 +3010|GA|Morgan County|Rutledge city|927|0|3|Thibodeaux|Tanner|2999|Maryland|M|Son|||11|104558 +3010|GA|Morgan County|Rutledge city|927|0|4|Thibodeaux|Terry|3001|GA|M|Son|||9|104559 +3010|GA|Morgan County|Rutledge city|927|0|5|Thibodeaux|Hans Darin|3005|GA|M|Son|||5|104560 + +3010|UT|Washington County|Hildale city|928|0|1|Lallave|Vaughn Derrick|2952|Georgia|M|Head|||58|104561 +3010|UT|Washington County|Hildale city|928|0|2|Lallave|Darwin|2992|Alabama|M|Son|||18|104562 +3010|UT|Washington County|Hildale city|928|0|3|Lallave|Tanja|2996|Minnesota|F|Daughter|||14|104563 +3010|UT|Washington County|Hildale city|928|0|4|Lallave|Janella|3000|South Dakota|F|Daughter|||10|104564 +3010|UT|Washington County|Hildale city|928|0|5|Lallave|Thad|3001|NM|M|Son|||9|104565 + +3010|WI|Grant County|Tennyson village|929|0|1|Dueber|Foster Modesto|2964|Ukraine|M|Head|||46|104566 +3010|WI|Grant County|Tennyson village|929|0|2|Dueber|Cristy Majorie|2963|Togo|F|Spouse|||47|104567 +3010|WI|Grant County|Tennyson village|929|0|3|Dueber|Devon|2983|Dominican Republic|M|Son|||27|104568 +3010|WI|Grant County|Tennyson village|929|0|4|Dueber|Stephen|2987|Hawaii|M|Son|||23|104569 +3010|WI|Grant County|Tennyson village|929|0|5|Dueber|Latisha Rona|3001|WI|F|Daughter|||9|104570 +3010|WI|Grant County|Tennyson village|929|0|6|Dueber|Helen|3005|WI|F|Daughter|||5|104571 +3010|WI|Grant County|Tennyson village|929|0|7|Dueber|Leigh|3009|WI|M|Son|||1|104572 + +3010|WA|Stevens County|Colville city|930|0|1|Jubie|Elbert Edmundo|2969|Connecticut|M|Head|||41|104573 +3010|WA|Stevens County|Colville city|930|0|2|Jubie|Kenton|2999|Netherlands Antilles|M|Son|||11|104574 + +3010|PA|Sullivan County|Eagles Mere borough|931|0|1|Goodyear|Horacio Ricky|2958|Mississippi|M|Head|||52|104575 +3010|PA|Sullivan County|Eagles Mere borough|931|0|2|Goodyear|Leonor|2954|North Dakota|F|Spouse|||56|104576 +3010|PA|Sullivan County|Eagles Mere borough|931|0|3|Goodyear|Scotty|2988|Oklahoma|M|Son|||22|104577 +3010|PA|Sullivan County|Eagles Mere borough|931|0|4|Goodyear|Monte Cody|2994|Texas|M|Son|||16|104578 +3010|PA|Sullivan County|Eagles Mere borough|931|0|5|Goodyear|Jacquelin|2998|Minnesota|F|Daughter|||12|104579 +3010|PA|Sullivan County|Eagles Mere borough|931|0|6|Goodyear|Pat|3001|PA|M|Son|||9|104580 + +3010|MD|Frederick County|Rosemont village|932|0|1|Smolen|Josue Mathew|2938|Sao Tome And Principe|M|Head|||72|104581 +3010|MD|Frederick County|Rosemont village|932|0|2|Smolen|Fabiola|2944|Nebraska|F|Spouse|||66|104582 +3010|MD|Frederick County|Rosemont village|932|0|3|Smolen|Liane Janyce|2998|Utah|F|Daughter|||12|104583 +3010|MD|Frederick County|Rosemont village|932|0|4|Smolen|Thelma|3000|Massachusetts|F|Daughter|||10|104584 +3010|MD|Frederick County|Rosemont village|932|0|5|Smolen|Carson|3001|MD|M|Son|||9|104585 +3010|MD|Frederick County|Rosemont village|932|0|6|Smolen|Andrew|3007|MD|M|Son|||3|104586 + +3010|WI|Manitowoc County|Manitowoc Rapids town|933|0|1|Doell|Louis Vernon|2973|North Dakota|M|Head|||37|104587 + +3010|AK|Valdez-Cordova Census Area|Chitina CDP|934|0|1|Garner|Argelia Manie|3001|AK|F|Daughter|||9|104588 +3010|AK|Valdez-Cordova Census Area|Chitina CDP|934|0|2|Garner|Mi|3003|AK|F|Daughter|||7|104589 +3010|AK|Valdez-Cordova Census Area|Chitina CDP|934|0|3|Garner|Lamar|3009|AK|M|Son|||1|104590 + +3010|AK|Haines Borough|Mosquito Lake CDP|935|0|1|Morris|Octavio Wilbur|2944|Burundi|M|Head|||66|104591 +3010|AK|Haines Borough|Mosquito Lake CDP|935|0|2|Morris|Jacinda|2951|Nevada|F|Spouse|||59|104592 +3010|AK|Haines Borough|Mosquito Lake CDP|935|0|3|Morris|Dana|2979|Arizona|M|Son|||31|104593 +3010|AK|Haines Borough|Mosquito Lake CDP|935|0|4|Morris|Winford Eddie|2987|Idaho|M|Son|||23|104594 +3010|AK|Haines Borough|Mosquito Lake CDP|935|0|5|Morris|Hunter|2989|Samoa|M|Son|||21|104595 +3010|AK|Haines Borough|Mosquito Lake CDP|935|0|6|Morris|Elvin|2995|Florida|M|Son|||15|104596 +3010|AK|Haines Borough|Mosquito Lake CDP|935|0|7|Morris|Devin|3001|AK|M|Son|||9|104597 +3010|AK|Haines Borough|Mosquito Lake CDP|935|0|8|Morris|Numbers|3005|AK|F|Daughter|||5|104598 + +3010|NE|Adams County|Prosser village|936|0|1|Schuchmann|Nilsa Aleen|2978|Nebraska|F|Head|||32|104599 + +3010|VA|Bath County|Warm Springs CDP|937|0|1|Thomas|Roma|2951|Arkansas|F|Spouse|||59|104600 +3010|VA|Bath County|Warm Springs CDP|937|0|2|Thomas|Joi|2997|West Virginia|F|Daughter|||13|104601 +3010|VA|Bath County|Warm Springs CDP|937|0|3|Thomas|Jammie|2999|West Virginia|F|Daughter|||11|104602 +3010|VA|Bath County|Warm Springs CDP|937|0|4|Thomas|Donna|3005|VA|F|Daughter|||5|104603 + +3010|MN|Redwood County|Honner township|939|0|1|Brian|Sergio Kristofer|2952|Senegal|M|Head|||58|104604 +3010|MN|Redwood County|Honner township|939|0|2|Brian|Talisha|2967|Texas|F|Spouse|||43|104605 +3010|MN|Redwood County|Honner township|939|0|3|Brian|Jerrell|2987|Gibraltar|M|Son|||23|104606 +3010|MN|Redwood County|Honner township|939|0|4|Brian|Tillie|2989|Missouri|F|Daughter|||21|104607 +3010|MN|Redwood County|Honner township|939|0|5|Brian|Jennine|2991|Montana|F|Daughter|||19|104608 +3010|MN|Redwood County|Honner township|939|0|6|Brian|Irvin|2997|Arizona|M|Son|||13|104609 +3010|MN|Redwood County|Honner township|939|0|7|Brian|Boris|3001|MN|M|Son|||9|104610 +3010|MN|Redwood County|Honner township|939|0|8|Brian|Griselda|3007|MN|F|Daughter|||3|104611 + +3010|WI|Forest County|Mole Lake CDP|940|0|1|Gordon|Cletus Sandy|2948|San Marino|M|Head|||62|104612 +3010|WI|Forest County|Mole Lake CDP|940|0|2|Gordon|Lovetta|2950|South Dakota|F|Spouse|||60|104613 +3010|WI|Forest County|Mole Lake CDP|940|0|3|Gordon|Amy|2978|New Jersey|F|Daughter|||32|104614 +3010|WI|Forest County|Mole Lake CDP|940|0|4|Gordon|Yong|2992|New Hampshire|M|Son|||18|104615 +3010|WI|Forest County|Mole Lake CDP|940|0|5|Gordon|Kyra|2998|North Carolina|F|Daughter|||12|104616 +3010|WI|Forest County|Mole Lake CDP|940|0|6|Gordon|Gregory|3003|KS|M|Son|||7|104617 + +3010|MA|Middlesex County|Melrose city|941|0|1|Norkus|Bryce Colby|2945|South Dakota|M|Head|||65|104618 +3010|MA|Middlesex County|Melrose city|941|0|2|Norkus|Victor|2954|Tennessee|F|Spouse|||56|104619 +3010|MA|Middlesex County|Melrose city|941|0|3|Norkus|Owen|2988|Colorado|M|Son|||22|104620 +3010|MA|Middlesex County|Melrose city|941|0|4|Norkus|Willard|3000|Wisconsin|M|Son|||10|104621 +3010|MA|Middlesex County|Melrose city|941|0|5|Norkus|Timothy|3001|MA|F|Daughter|||9|104622 + +3010|MN|Winona County|New Hartford township|942|0|1|Lund|Melodi|2967|New Mexico|F|Spouse|||43|104623 +3010|MN|Winona County|New Hartford township|942|0|2|Lund|Chris|2991|Florida|M|Son|||19|104624 +3010|MN|Winona County|New Hartford township|942|0|3|Lund|Giselle|2995|Missouri|F|Daughter|||15|104625 +3010|MN|Winona County|New Hartford township|942|0|4|Lund|Alden Jonas|3003|MT|M|Son|||7|104626 +3010|MN|Winona County|New Hartford township|942|0|5|Lund|Celesta|3005|MT|F|Daughter|||5|104627 +3010|MN|Winona County|New Hartford township|942|0|6|Lund|Warren|3007|MN|M|Son|||3|104628 + +3010|MI|Midland County|Edenville township|943|0|1|Oseguera|Fidel Fernando|2940|Delaware|M|Head|||70|104629 +3010|MI|Midland County|Edenville township|943|0|2|Oseguera|Remona|2946|Ghana|F|Spouse|||64|104630 +3010|MI|Midland County|Edenville township|943|0|3|Oseguera|Cheryle|2966|South Carolina|F|Daughter|||44|104631 +3010|MI|Midland County|Edenville township|943|0|4|Oseguera|Joseph|3001|MI|F|Daughter|||9|104632 +3010|MI|Midland County|Edenville township|943|0|5|Oseguera|Ora|3007|MI|F|Daughter|||3|104633 + +3010|ME|Hancock County|Central Hancock UT|944|0|1|Clemons|Olin Gregorio|2949|Colorado|M|Head|||61|104634 +3010|ME|Hancock County|Central Hancock UT|944|0|2|Clemons|Deena|2994|Washington|F|Daughter|||16|104635 +3010|ME|Hancock County|Central Hancock UT|944|0|3|Clemons|Elizabet|2996|Colorado|F|Daughter|||14|104636 +3010|ME|Hancock County|Central Hancock UT|944|0|4|Clemons|Thalia|3000|Pennsylvania|F|Daughter|||10|104637 + +3010|WV|McDowell County|Keystone city|946|0|1|Dicocco|Norbert Otis|2950|Finland|M|Head|||60|104638 +3010|WV|McDowell County|Keystone city|946|0|2|Dicocco|Cathern|2971|Iowa|F|Spouse|||39|104639 +3010|WV|McDowell County|Keystone city|946|0|3|Dicocco|Ezra|2991|Arkansas|M|Son|||19|104640 +3010|WV|McDowell County|Keystone city|946|0|4|Dicocco|Alesha|3005|WV|F|Daughter|||5|104641 +3010|WV|McDowell County|Keystone city|946|0|5|Dicocco|Hannelore Karon|3007|WV|F|Daughter|||3|104642 + +3010|MN|Winona County|Minnesota City city|947|0|1|Morgan|Wilton Mauricio|2973|South Carolina|M|Head|||37|104643 +3010|MN|Winona County|Minnesota City city|947|0|2|Morgan|Tonie|2976|Minnesota|F|Spouse|||34|104644 +3010|MN|Winona County|Minnesota City city|947|0|3|Morgan|Federico|2998|Australia|M|Son|||12|104645 +3010|MN|Winona County|Minnesota City city|947|0|4|Morgan|Vonnie|3001|MN|F|Daughter|||9|104646 +3010|MN|Winona County|Minnesota City city|947|0|5|Morgan|Eugene|3003|MN|M|Son|||7|104647 +3010|MN|Winona County|Minnesota City city|947|0|6|Morgan|Marty|3005|MN|M|Son|||5|104648 +3010|MN|Winona County|Minnesota City city|947|0|7|Morgan|Maria Ernesto|3007|MN|M|Son|||3|104649 + +3010|MN|Meeker County|Darwin township|948|0|1|Muncy|Terry|2993|New Hampshire|M|Son|||17|104650 +3010|MN|Meeker County|Darwin township|948|0|2|Muncy|Milan|2995|South Carolina|M|Son|||15|104651 +3010|MN|Meeker County|Darwin township|948|0|3|Muncy|Aaron|2997|Georgia|M|Son|||13|104652 + +3010|ID|Bannock County|McCammon city|949|0|1|Sword|Len Marlon|2950|Louisiana|M|Head|||60|104653 +3010|ID|Bannock County|McCammon city|949|0|2|Sword|Madaline Collen|2957|Alaska|F|Spouse|||53|104654 +3010|ID|Bannock County|McCammon city|949|0|3|Sword|Deangelo|2985|Vermont|M|Son|||25|104655 +3010|ID|Bannock County|McCammon city|949|0|4|Sword|Modesta|2993|Kansas|F|Daughter|||17|104656 +3010|ID|Bannock County|McCammon city|949|0|5|Sword|Charles|3003|ID|M|Son|||7|104657 +3010|ID|Bannock County|McCammon city|949|0|6|Sword|Josue|3009|ID|M|Son|||1|104658 + +3010|MI|Kalamazoo County|Westwood CDP|950|0|1|Lux|Natacha|2954|New Zealand|F|Head|||56|104659 +3010|MI|Kalamazoo County|Westwood CDP|950|0|2|Lux|Ellis|2976|Washington|M|Son|||34|104660 +3010|MI|Kalamazoo County|Westwood CDP|950|0|3|Lux|Isaias|3000|Idaho|M|Son|||10|104661 + +3010|PA|Philadelphia County|Philadelphia city|951|0|1|Neumeister|Wenona|2971|Nevada|F|Spouse|||39|104662 +3010|PA|Philadelphia County|Philadelphia city|951|0|2|Neumeister|Christopher|2993|Vermont|M|Son|||17|104663 +3010|PA|Philadelphia County|Philadelphia city|951|0|3|Neumeister|Willodean|2995|New Jersey|F|Daughter|||15|104664 +3010|PA|Philadelphia County|Philadelphia city|951|0|4|Neumeister|Harvey Clement|2999|New Mexico|M|Son|||11|104665 +3010|PA|Philadelphia County|Philadelphia city|951|0|5|Neumeister|August Colton|3005|PA|M|Son|||5|104666 + +3010|NJ|Ocean County|Dover Beaches North CDP|952|0|1|Petrauskas|Salvatore|2996|Michigan|M|Son|||14|104667 +3010|NJ|Ocean County|Dover Beaches North CDP|952|0|2|Petrauskas|Conrad Dexter|2998|Ohio|M|Son|||12|104668 + +3010|PR|Arecibo Municipio|La Alianza comunidad|953|0|1|Hill|Byron Judson|2950|Mississippi|M|Head|||60|104669 +3010|PR|Arecibo Municipio|La Alianza comunidad|953|0|2|Hill|Kelli|2960|Missouri|F|Spouse|||50|104670 +3010|PR|Arecibo Municipio|La Alianza comunidad|953|0|3|Hill|Odette|2994|Maine|F|Daughter|||16|104671 +3010|PR|Arecibo Municipio|La Alianza comunidad|953|0|4|Hill|Elene|3007|PR|F|Daughter|||3|104672 +3010|PR|Arecibo Municipio|La Alianza comunidad|953|0|5|Hill|Chun|3009|PR|F|Daughter|||1|104673 + +3010|WI|Racine County|Caledonia village|954|0|1|Bertels|Rico Earl|2965|Florida|M|Head|||45|104674 +3010|WI|Racine County|Caledonia village|954|0|2|Bertels|Enrique|2996|Idaho|M|Son|||14|104675 +3010|WI|Racine County|Caledonia village|954|0|3|Bertels|Malik|3000|Maryland|M|Son|||10|104676 + +3010|NY|Yates County|Jerusalem town|955|0|1|Mitchell|Jesus Joel|2947|Faroe Islands|M|Head|||63|104677 +3010|NY|Yates County|Jerusalem town|955|0|2|Mitchell|Mammie|2949|Maryland|F|Spouse|||61|104678 +3010|NY|Yates County|Jerusalem town|955|0|3|Mitchell|Jarvis|2985|Alaska|M|Son|||25|104679 +3010|NY|Yates County|Jerusalem town|955|0|4|Mitchell|Dante|2987|Georgia|M|Son|||23|104680 +3010|NY|Yates County|Jerusalem town|955|0|5|Mitchell|David|2991|Indiana|M|Son|||19|104681 +3010|NY|Yates County|Jerusalem town|955|0|6|Mitchell|Dionne|3005|NY|F|Daughter|||5|104682 +3010|NY|Yates County|Jerusalem town|955|0|7|Mitchell|Dexter|3009|NY|M|Son|||1|104683 + +3010|OH|Stark County|Canal Fulton city|956|0|1|Stoute|Merideth|2959|Missouri|F|Spouse|||51|104684 +3010|OH|Stark County|Canal Fulton city|956|0|2|Stoute|Cortney Alana|3005|OH|F|Daughter|||5|104685 +3010|OH|Stark County|Canal Fulton city|956|0|3|Stoute|Eusebia|3007|OH|F|Daughter|||3|104686 + +3010|OR|Lincoln County|Newport city|957|0|1|Matthys|Clifton Giovanni|2961|New Jersey|M|Head|||49|104687 +3010|OR|Lincoln County|Newport city|957|0|2|Matthys|Mara|2969|Morocco|F|Spouse|||41|104688 +3010|OR|Lincoln County|Newport city|957|0|3|Matthys|Rick|2995|New York|M|Son|||15|104689 +3010|OR|Lincoln County|Newport city|957|0|4|Matthys|Chante Ling|3003|WV|F|Daughter|||7|104690 + +3010|NY|Nassau County|North Hempstead town|958|0|1|Hadnot|Orval Elliott|2950|Nevada|M|Head|||60|104691 +3010|NY|Nassau County|North Hempstead town|958|0|2|Hadnot|Jenice|2960|Colorado|F|Spouse|||50|104692 +3010|NY|Nassau County|North Hempstead town|958|0|3|Hadnot|Eloy Millard|2996|Rhode Island|M|Son|||14|104693 +3010|NY|Nassau County|North Hempstead town|958|0|4|Hadnot|Lina|3001|NY|F|Daughter|||9|104694 +3010|NY|Nassau County|North Hempstead town|958|0|5|Hadnot|Patience|3003|NY|F|Daughter|||7|104695 +3010|NY|Nassau County|North Hempstead town|958|0|6|Hadnot|Royce|3007|NY|M|Son|||3|104696 + +3010|MA|Plymouth County|West Bridgewater town|959|0|1|Harrison|Ellyn|2951|Bermuda|F|Head|||59|104697 +3010|MA|Plymouth County|West Bridgewater town|959|0|2|Harrison|Dusty|2989|Mississippi|M|Son|||21|104698 +3010|MA|Plymouth County|West Bridgewater town|959|0|3|Harrison|Roy|2993|Dominica|M|Son|||17|104699 +3010|MA|Plymouth County|West Bridgewater town|959|0|4|Harrison|Alaina|2999|Michigan|F|Daughter|||11|104700 + +3010|TX|Bexar County|Live Oak city|960|0|1|Stroup|Elden Elton|2966|South Dakota|M|Head|||44|104701 +3010|TX|Bexar County|Live Oak city|960|0|2|Stroup|Soraya|2984|Washington|F|Spouse|||26|104702 +3010|TX|Bexar County|Live Oak city|960|0|3|Stroup|Melanie|3003|TX|F|Daughter|||7|104703 +3010|TX|Bexar County|Live Oak city|960|0|4|Stroup|Xiomara|3009|TX|F|Daughter|||1|104704 + +3010|TN|Hamilton County|Falling Water CDP|961|0|1|Cunningham|Humberto Jules|2954|Kansas|M|Head|||56|104705 +3010|TN|Hamilton County|Falling Water CDP|961|0|2|Cunningham|Devin|2951|Haiti|F|Spouse|||59|104706 +3010|TN|Hamilton County|Falling Water CDP|961|0|3|Cunningham|Mauricio|2985|Wyoming|M|Son|||25|104707 +3010|TN|Hamilton County|Falling Water CDP|961|0|4|Cunningham|Claretha Sommer|2991|Connecticut|F|Daughter|||19|104708 +3010|TN|Hamilton County|Falling Water CDP|961|0|5|Cunningham|Barton|2993|North Carolina|M|Son|||17|104709 +3010|TN|Hamilton County|Falling Water CDP|961|0|6|Cunningham|Fausto|2999|Pennsylvania|M|Son|||11|104710 +3010|TN|Hamilton County|Falling Water CDP|961|0|7|Cunningham|Darrel|3003|TN|M|Son|||7|104711 +3010|TN|Hamilton County|Falling Water CDP|961|0|8|Cunningham|Geri|3009|TN|F|Daughter|||1|104712 + +3010|KY|Floyd County|Wayland city|962|0|1|Jurich|Erwin Myron|2957|Nebraska|M|Head|||53|104713 +3010|KY|Floyd County|Wayland city|962|0|2|Jurich|Nancey|2966|Lithuania|F|Spouse|||44|104714 +3010|KY|Floyd County|Wayland city|962|0|3|Jurich|Carlos Dwayne|2998|Colorado|M|Son|||12|104715 +3010|KY|Floyd County|Wayland city|962|0|4|Jurich|Haywood|3000|Kansas|M|Son|||10|104716 +3010|KY|Floyd County|Wayland city|962|0|5|Jurich|Tena|3001|KY|F|Daughter|||9|104717 +3010|KY|Floyd County|Wayland city|962|0|6|Jurich|Rodrick|3003|KY|M|Son|||7|104718 +3010|KY|Floyd County|Wayland city|962|0|7|Jurich|Annis|3009|KY|F|Daughter|||1|104719 + +3010|NY|Schuyler County|Orange town|963|0|1|Wobser|Gale Ted|2947|New Mexico|M|Head|||63|104720 +3010|NY|Schuyler County|Orange town|963|0|2|Wobser|Laree|2981|Mississippi|F|Daughter|||29|104721 +3010|NY|Schuyler County|Orange town|963|0|3|Wobser|Genaro|2983|Zambia|M|Son|||27|104722 + +3010|OH|Sandusky County|Clyde city|964|0|1|Giles|Heath|2946|Massachusetts|M|Head|||64|104723 +3010|OH|Sandusky County|Clyde city|964|0|2|Giles|Raelene|2963|Georgia|F|Spouse|||47|104724 +3010|OH|Sandusky County|Clyde city|964|0|3|Giles|Sanford|2987|Somalia|M|Son|||23|104725 +3010|OH|Sandusky County|Clyde city|964|0|4|Giles|Chad|3003|OH|M|Son|||7|104726 +3010|OH|Sandusky County|Clyde city|964|0|5|Giles|Lindsay|3005|OH|M|Son|||5|104727 + +3010|LA|Sabine Parish|Many town|965|0|1|Vire|Yong|2941|Massachusetts|M|Head|||69|104728 +3010|LA|Sabine Parish|Many town|965|0|2|Vire|Cornelius|2980|Maryland|M|Son|||30|104729 +3010|LA|Sabine Parish|Many town|965|0|3|Vire|Catalina|2986|Vermont|F|Daughter|||24|104730 +3010|LA|Sabine Parish|Many town|965|0|4|Vire|Annamaria|2988|Indiana|F|Daughter|||22|104731 +3010|LA|Sabine Parish|Many town|965|0|5|Vire|Erin|2990|Georgia|M|Son|||20|104732 + +3010|PA|Allegheny County|North Braddock borough|966|0|1|Johnson|Renay|2964|Utah|F|Head|||46|104733 +3010|PA|Allegheny County|North Braddock borough|966|0|2|Johnson|Devin|2992|New Jersey|M|Son|||18|104734 +3010|PA|Allegheny County|North Braddock borough|966|0|3|Johnson|Kourtney|2996|Minnesota|F|Daughter|||14|104735 + +3010|CA|Fresno County|Lanare CDP|967|0|1|Ishman|Sarai Marylouise|2982|Minnesota|F|Spouse|||28|104736 +3010|CA|Fresno County|Lanare CDP|967|0|2|Ishman|Micheal|3003|CA|M|Son|||7|104737 +3010|CA|Fresno County|Lanare CDP|967|0|3|Ishman|Lovie|3005|CA|F|Daughter|||5|104738 +3010|CA|Fresno County|Lanare CDP|967|0|4|Ishman|Shila|3007|CA|F|Daughter|||3|104739 + +3010|NY|Westchester County|Mamaroneck town|968|0|1|Sanders|Clair Wiley|2953|New Mexico|M|Head|||57|104740 +3010|NY|Westchester County|Mamaroneck town|968|0|2|Sanders|Renate|2971|Belgium|F|Spouse|||39|104741 +3010|NY|Westchester County|Mamaroneck town|968|0|3|Sanders|Tiffani|2997|North Dakota|F|Daughter|||13|104742 +3010|NY|Westchester County|Mamaroneck town|968|0|4|Sanders|Adalberto|3001|NY|M|Son|||9|104743 +3010|NY|Westchester County|Mamaroneck town|968|0|5|Sanders|Natashia Adriane|3005|NY|F|Daughter|||5|104744 +3010|NY|Westchester County|Mamaroneck town|968|0|6|Sanders|Stewart Marcus|3007|NY|M|Son|||3|104745 + +3010|MI|Wexford County|Cadillac city|969|0|1|Babcock|Theo|2949|Connecticut|M|Head|||61|104746 +3010|MI|Wexford County|Cadillac city|969|0|2|Babcock|Lakenya|2964|Colorado|F|Spouse|||46|104747 +3010|MI|Wexford County|Cadillac city|969|0|3|Babcock|Marhta|2996|Maine|F|Daughter|||14|104748 +3010|MI|Wexford County|Cadillac city|969|0|4|Babcock|Yuette|3005|MI|F|Daughter|||5|104749 +3010|MI|Wexford County|Cadillac city|969|0|5|Babcock|Eleonore|3007|MI|F|Daughter|||3|104750 + +3010|PA|Union County|Hartleton borough|970|0|1|Delaney|Gus Levi|2960|Louisiana|M|Head|||50|104751 +3010|PA|Union County|Hartleton borough|970|0|2|Delaney|Juliane|2968|Pennsylvania|F|Spouse|||42|104752 +3010|PA|Union County|Hartleton borough|970|0|3|Delaney|Ericka Katelyn|2998|Mississippi|F|Daughter|||12|104753 +3010|PA|Union County|Hartleton borough|970|0|4|Delaney|Venice|3001|PA|F|Daughter|||9|104754 +3010|PA|Union County|Hartleton borough|970|0|5|Delaney|Theron|3005|PA|M|Son|||5|104755 +3010|PA|Union County|Hartleton borough|970|0|6|Delaney|Andre|3007|PA|M|Son|||3|104756 +3010|PA|Union County|Hartleton borough|970|0|7|Delaney|Tuan|3009|PA|M|Son|||1|104757 + +3010|WI|Monroe County|Sparta town|971|0|1|Geller|Dominique Arnold|2946|Colorado|M|Head|||64|104758 +3010|WI|Monroe County|Sparta town|971|0|2|Geller|Felica Malia|2969|Alabama|F|Spouse|||41|104759 +3010|WI|Monroe County|Sparta town|971|0|3|Geller|Leland|2989|North Carolina|M|Son|||21|104760 +3010|WI|Monroe County|Sparta town|971|0|4|Geller|Toby|2995|Oregon|M|Son|||15|104761 +3010|WI|Monroe County|Sparta town|971|0|5|Geller|Chadwick|3003|WI|M|Son|||7|104762 +3010|WI|Monroe County|Sparta town|971|0|6|Geller|Rena|3005|WI|F|Daughter|||5|104763 +3010|WI|Monroe County|Sparta town|971|0|7|Geller|Alden|3009|WI|M|Son|||1|104764 + +3010|IN|Gibson County|Oakland City city|972|0|1|Ruuska|Haywood Harvey|2963|Falkland Islands (malvinas)|M|Head|||47|104765 +3010|IN|Gibson County|Oakland City city|972|0|2|Ruuska|Bette|2975|Tennessee|F|Spouse|||35|104766 +3010|IN|Gibson County|Oakland City city|972|0|3|Ruuska|Myles|2999|Virginia|M|Son|||11|104767 +3010|IN|Gibson County|Oakland City city|972|0|4|Ruuska|Germaine|3001|IN|F|Daughter|||9|104768 +3010|IN|Gibson County|Oakland City city|972|0|5|Ruuska|Kendrick|3003|IN|M|Son|||7|104769 +3010|IN|Gibson County|Oakland City city|972|0|6|Ruuska|Timmy|3007|IN|M|Son|||3|104770 +3010|IN|Gibson County|Oakland City city|972|0|7|Ruuska|Tawana|3009|IN|F|Daughter|||1|104771 + +3010|IL|Henry County|Alpha village|973|0|1|Wenke|Ira|2966|Kentucky|M|Head|||44|104772 +3010|IL|Henry County|Alpha village|973|0|2|Wenke|Lory|2964|Madagascar|F|Spouse|||46|104773 +3010|IL|Henry County|Alpha village|973|0|3|Wenke|Diedre|2986|Idaho|F|Daughter|||24|104774 +3010|IL|Henry County|Alpha village|973|0|4|Wenke|Jesus|2988|Delaware|M|Son|||22|104775 +3010|IL|Henry County|Alpha village|973|0|5|Wenke|Dan|3005|IL|M|Son|||5|104776 + +3010|MS|George County|Lucedale city|974|0|1|Herrin|Eddy Ezekiel|2977|Alabama|M|Head|||33|104777 +3010|MS|George County|Lucedale city|974|0|2|Herrin|Annice Daisy|2996|Minnesota|F|Daughter|||14|104778 +3010|MS|George County|Lucedale city|974|0|3|Herrin|Elroy|2998|Bermuda|M|Son|||12|104779 +3010|MS|George County|Lucedale city|974|0|4|Herrin|Lavinia Mikaela|3000|New Jersey|F|Daughter|||10|104780 + +3010|MD|Dorchester County|Church Creek town|975|0|1|Tervo|Heath Ralph|2960|Estonia|M|Head|||50|104781 +3010|MD|Dorchester County|Church Creek town|975|0|2|Tervo|Nickie|2993|Arizona|F|Daughter|||17|104782 +3010|MD|Dorchester County|Church Creek town|975|0|3|Tervo|Yong|2995|New Jersey|M|Son|||15|104783 +3010|MD|Dorchester County|Church Creek town|975|0|4|Tervo|Lucius Edwardo|2997|Mississippi|M|Son|||13|104784 +3010|MD|Dorchester County|Church Creek town|975|0|5|Tervo|Eddie|2999|Vermont|M|Son|||11|104785 +3010|MD|Dorchester County|Church Creek town|975|0|6|Tervo|Rupert|3003|MD|M|Son|||7|104786 +3010|MD|Dorchester County|Church Creek town|975|0|7|Tervo|Denis|3007|MD|M|Son|||3|104787 +3010|MD|Dorchester County|Church Creek town|975|0|8|Tervo|Jeni|3009|MD|F|Daughter|||1|104788 + +3010|OH|Franklin County|Brice village|976|0|1|Pomainville|Lindsay Dario|2956|Nebraska|M|Head|||54|104789 +3010|OH|Franklin County|Brice village|976|0|2|Pomainville|Lindsay|2959|Wisconsin|F|Spouse|||51|104790 +3010|OH|Franklin County|Brice village|976|0|3|Pomainville|Marlon Adan|2983|Albania|M|Son|||27|104791 +3010|OH|Franklin County|Brice village|976|0|4|Pomainville|Cary|2991|Puerto Rico|M|Son|||19|104792 +3010|OH|Franklin County|Brice village|976|0|5|Pomainville|Sindy|2999|Alaska|F|Daughter|||11|104793 +3010|OH|Franklin County|Brice village|976|0|6|Pomainville|Anne|3005|OH|F|Daughter|||5|104794 + +3010|WI|Taylor County|Pershing town|977|0|1|Barsegyan|Alison|2970|Georgia|F|Head|||40|104795 +3010|WI|Taylor County|Pershing town|977|0|2|Barsegyan|Kelly|2992|Rhode Island|M|Son|||18|104796 +3010|WI|Taylor County|Pershing town|977|0|3|Barsegyan|Isiah|2996|Ohio|M|Son|||14|104797 +3010|WI|Taylor County|Pershing town|977|0|4|Barsegyan|Margorie|2998|Iowa|F|Daughter|||12|104798 +3010|WI|Taylor County|Pershing town|977|0|5|Barsegyan|Marcellus|3000|Wisconsin|M|Son|||10|104799 + +3010|WV|Harrison County|Clarksburg city|978|0|1|Adams|Nestor Brad|2939|Sierra Leone|M|Head|||71|104800 +3010|WV|Harrison County|Clarksburg city|978|0|2|Adams|Lucinda|2961|Paraguay|F|Spouse|||49|104801 +3010|WV|Harrison County|Clarksburg city|978|0|3|Adams|Ida|2989|Washington|F|Daughter|||21|104802 +3010|WV|Harrison County|Clarksburg city|978|0|4|Adams|Priscila|2993|Colorado|F|Daughter|||17|104803 +3010|WV|Harrison County|Clarksburg city|978|0|5|Adams|Wilma|2999|New Hampshire|F|Daughter|||11|104804 +3010|WV|Harrison County|Clarksburg city|978|0|6|Adams|Timmy|3001|WV|M|Son|||9|104805 +3010|WV|Harrison County|Clarksburg city|978|0|7|Adams|Wayne|3005|WV|M|Son|||5|104806 +3010|WV|Harrison County|Clarksburg city|978|0|8|Adams|Shad|3009|WV|M|Son|||1|104807 + +3010|IA|Scott County|Panorama Park city|979|0|1|Karr|Denny Maria|2965|Idaho|M|Head|||45|104808 +3010|IA|Scott County|Panorama Park city|979|0|2|Karr|Meg|2971|Antigua And Barbuda|F|Spouse|||39|104809 +3010|IA|Scott County|Panorama Park city|979|0|3|Karr|Rubi|2993|Egypt|F|Daughter|||17|104810 +3010|IA|Scott County|Panorama Park city|979|0|4|Karr|Long|3003|IA|M|Son|||7|104811 +3010|IA|Scott County|Panorama Park city|979|0|5|Karr|Denver August|3007|IA|M|Son|||3|104812 +3010|IA|Scott County|Panorama Park city|979|0|6|Karr|Jonathon|3009|IA|M|Son|||1|104813 + +3010|IA|Decatur County|Leon city|980|0|1|Pound|Shantelle|3005|IA|F|Daughter|||5|104814 +3010|IA|Decatur County|Leon city|980|0|2|Pound|Keith|3009|IA|M|Son|||1|104815 + +3010|WV|Kanawha County|Pratt town|981|0|1|Rafala|John Kraig|2977|Florida|M|Head|||33|104816 +3010|WV|Kanawha County|Pratt town|981|0|2|Rafala|Asuncion|2984|Dominican Republic|F|Spouse|||26|104817 +3010|WV|Kanawha County|Pratt town|981|0|3|Rafala|Vernell|3001|WV|F|Daughter|||9|104818 +3010|WV|Kanawha County|Pratt town|981|0|4|Rafala|Bruna|3003|WV|F|Daughter|||7|104819 +3010|WV|Kanawha County|Pratt town|981|0|5|Rafala|Anamaria|3007|WV|F|Daughter|||3|104820 +3010|WV|Kanawha County|Pratt town|981|0|6|Rafala|Lillia|3009|WV|F|Daughter|||1|104821 + +3010|MD|Frederick County|New Market town|982|0|1|Greathouse|Zita|2967|Nevada|F|Head|||43|104822 +3010|MD|Frederick County|New Market town|982|0|2|Greathouse|Kim|2999|Somalia|M|Son|||11|104823 + +3010|KS|Barber County|Hardtner city|983|0|1|Felt|Donovan Timothy|2943|New Jersey|M|Head|||67|104824 +3010|KS|Barber County|Hardtner city|983|0|2|Felt|Myrtis|2980|Ohio|F|Daughter|||30|104825 +3010|KS|Barber County|Hardtner city|983|0|3|Felt|Vella|2992|Maryland|F|Daughter|||18|104826 +3010|KS|Barber County|Hardtner city|983|0|4|Felt|Jerilyn|2996|Colorado|F|Daughter|||14|104827 +3010|KS|Barber County|Hardtner city|983|0|5|Felt|Fritz Allen|2998|Colorado|M|Son|||12|104828 +3010|KS|Barber County|Hardtner city|983|0|6|Felt|Heriberto Dustin|3000|Illinois|M|Son|||10|104829 + +3010|VT|Washington County|Waterbury town|984|0|1|Verdine|Claudio Jeremy|2975|Minnesota|M|Head|||35|104830 +3010|VT|Washington County|Waterbury town|984|0|2|Verdine|Jerrod|2998|Alaska|M|Son|||12|104831 + +3010|WA|Yakima County|Tieton town|985|0|1|Wallace|Sergio Ike|2974|Virginia|M|Head|||36|104832 + +3010|KY|Webster County|Onton CDP|986|0|1|Albin|Otis Geraldo|2975|Hawaii|M|Head|||35|104833 +3010|KY|Webster County|Onton CDP|986|0|2|Albin|Jamison|2995|Iowa|M|Son|||15|104834 +3010|KY|Webster County|Onton CDP|986|0|3|Albin|Pat|2999|Iowa|M|Son|||11|104835 + +3010|AZ|Pima County|Catalina Foothills CDP|987|0|1|Valdez|Collin Bruce|2938|Idaho|M|Head|||72|104836 +3010|AZ|Pima County|Catalina Foothills CDP|987|0|2|Valdez|Jamar|2998|Rhode Island|M|Son|||12|104837 +3010|AZ|Pima County|Catalina Foothills CDP|987|0|3|Valdez|Curtis|3000|Maine|F|Daughter|||10|104838 + +3010|NY|Ulster County|Kingston town|988|0|1|Messerly|Fredrick Jerald|2946|Moldova, Republic Of|M|Head|||64|104839 +3010|NY|Ulster County|Kingston town|988|0|2|Messerly|Ramonita|2953|Cape Verde|F|Spouse|||57|104840 +3010|NY|Ulster County|Kingston town|988|0|3|Messerly|Olen|2981|Connecticut|M|Son|||29|104841 +3010|NY|Ulster County|Kingston town|988|0|4|Messerly|Ruthann|2997|Massachusetts|F|Daughter|||13|104842 +3010|NY|Ulster County|Kingston town|988|0|5|Messerly|Jennine Farah|2999|Michigan|F|Daughter|||11|104843 +3010|NY|Ulster County|Kingston town|988|0|6|Messerly|Lucia|3001|NY|F|Daughter|||9|104844 +3010|NY|Ulster County|Kingston town|988|0|7|Messerly|Jerrod|3003|NY|M|Son|||7|104845 +3010|NY|Ulster County|Kingston town|988|0|8|Messerly|Dwana|3009|NY|F|Daughter|||1|104846 + +3010|CO|Weld County|Eaton town|989|0|1|Hutt|Noma|2979|Montana|F|Head|||31|104847 + +3010|CO|Boulder County|Ward town|990|0|1|Newbill|Jamison Boyd|2950|West Virginia|M|Head|||60|104848 +3010|CO|Boulder County|Ward town|990|0|2|Newbill|Josie|2960|Florida|F|Spouse|||50|104849 +3010|CO|Boulder County|Ward town|990|0|3|Newbill|Brooke|2996|Minnesota|F|Daughter|||14|104850 +3010|CO|Boulder County|Ward town|990|0|4|Newbill|Brady|2998|Mississippi|M|Son|||12|104851 +3010|CO|Boulder County|Ward town|990|0|5|Newbill|Glenna|3000|Kansas|F|Daughter|||10|104852 +3010|CO|Boulder County|Ward town|990|0|6|Newbill|Wilton|3009|CO|M|Son|||1|104853 + +3010|CA|Colusa County|Grimes CDP|991|0|1|Capparelli|Huey Glenn|2963|Wyoming|M|Head|||47|104854 +3010|CA|Colusa County|Grimes CDP|991|0|2|Capparelli|Johna|2971|Yemen|F|Spouse|||39|104855 +3010|CA|Colusa County|Grimes CDP|991|0|3|Capparelli|Serina|2995|Kentucky|F|Daughter|||15|104856 +3010|CA|Colusa County|Grimes CDP|991|0|4|Capparelli|Tena|3001|CA|F|Daughter|||9|104857 +3010|CA|Colusa County|Grimes CDP|991|0|5|Capparelli|Lynn|3005|CA|M|Son|||5|104858 +3010|CA|Colusa County|Grimes CDP|991|0|6|Capparelli|Carissa|3007|CA|F|Daughter|||3|104859 + +3010|NY|Genesee County|Pavilion CDP|992|0|1|Fullerton|Sung Donte|2963|Louisiana|M|Head|||47|104860 +3010|NY|Genesee County|Pavilion CDP|992|0|2|Fullerton|Edwardo|2991|Missouri|M|Son|||19|104861 +3010|NY|Genesee County|Pavilion CDP|992|0|3|Fullerton|Noel|2997|Romania|M|Son|||13|104862 +3010|NY|Genesee County|Pavilion CDP|992|0|4|Fullerton|Grant|2999|Wyoming|M|Son|||11|104863 + +3010|KS|Osborne County|Alton city|993|0|1|Bauer|Houston Steve|2962|California|M|Head|||48|104864 +3010|KS|Osborne County|Alton city|993|0|2|Bauer|Tiffany|2976|Texas|F|Spouse|||34|104865 +3010|KS|Osborne County|Alton city|993|0|3|Bauer|Malcolm|2998|Iowa|M|Son|||12|104866 +3010|KS|Osborne County|Alton city|993|0|4|Bauer|Earline|3000|Alabama|F|Daughter|||10|104867 +3010|KS|Osborne County|Alton city|993|0|5|Bauer|Blondell|3001|KS|F|Daughter|||9|104868 +3010|KS|Osborne County|Alton city|993|0|6|Bauer|Arlen|3003|KS|M|Son|||7|104869 +3010|KS|Osborne County|Alton city|993|0|7|Bauer|Tracy|3005|KS|M|Son|||5|104870 + +3010|NJ|Morris County|Dover town|994|0|1|Rademacher|Wally Andre|2956|California|M|Head|||54|104871 +3010|NJ|Morris County|Dover town|994|0|2|Rademacher|Clara|2988|Idaho|F|Daughter|||22|104872 +3010|NJ|Morris County|Dover town|994|0|3|Rademacher|Tanner|2990|Luxembourg|M|Son|||20|104873 +3010|NJ|Morris County|Dover town|994|0|4|Rademacher|Luther|2996|South Carolina|M|Son|||14|104874 +3010|NJ|Morris County|Dover town|994|0|5|Rademacher|Ernest|2998|Nebraska|M|Son|||12|104875 +3010|NJ|Morris County|Dover town|994|0|6|Rademacher|Daryl|3000|Rhode Island|M|Son|||10|104876 +3010|NJ|Morris County|Dover town|994|0|7|Rademacher|James|3005|NJ|M|Son|||5|104877 + +3010|NE|Nemaha County|Brock village|995|0|1|Utter|Todd Maximo|2952|Maryland|M|Head|||58|104878 +3010|NE|Nemaha County|Brock village|995|0|2|Utter|Louise Octavia|2952|Washington|F|Spouse|||58|104879 +3010|NE|Nemaha County|Brock village|995|0|3|Utter|Randell|2986|Palestinian Territory, Occupied|M|Son|||24|104880 +3010|NE|Nemaha County|Brock village|995|0|4|Utter|Bertha|2992|France|F|Daughter|||18|104881 +3010|NE|Nemaha County|Brock village|995|0|5|Utter|Granville Damion|2998|Rhode Island|M|Son|||12|104882 +3010|NE|Nemaha County|Brock village|995|0|6|Utter|Karl|3000|Tennessee|M|Son|||10|104883 +3010|NE|Nemaha County|Brock village|995|0|7|Utter|Hyman|3001|NE|M|Son|||9|104884 + +3010|KY|Jessamine County|High Bridge CDP|996|0|1|Fortes|Vince|2957|North Carolina|M|Head|||53|104885 +3010|KY|Jessamine County|High Bridge CDP|996|0|2|Fortes|Anja Felicitas|2976|Mississippi|F|Spouse|||34|104886 +3010|KY|Jessamine County|High Bridge CDP|996|0|3|Fortes|Antone Prince|2996|Nevada|M|Son|||14|104887 +3010|KY|Jessamine County|High Bridge CDP|996|0|4|Fortes|Walker|3001|KY|M|Son|||9|104888 +3010|KY|Jessamine County|High Bridge CDP|996|0|5|Fortes|Elyse|3005|KY|F|Daughter|||5|104889 +3010|KY|Jessamine County|High Bridge CDP|996|0|6|Fortes|Benito|3009|KY|M|Son|||1|104890 + +3010|MN|Kandiyohi County|Roseland township|997|0|1|Alvarado|Fernando Leslie|2981|Vermont|M|Head|||29|104891 +3010|MN|Kandiyohi County|Roseland township|997|0|2|Alvarado|Chaya|2983|Michigan|F|Spouse|||27|104892 +3010|MN|Kandiyohi County|Roseland township|997|0|3|Alvarado|Teri|3005|MN|F|Daughter|||5|104893 +3010|MN|Kandiyohi County|Roseland township|997|0|4|Alvarado|Janene|3009|MN|F|Daughter|||1|104894 + +3010|CA|Contra Costa County|San Ramon city|998|0|1|Long|Gail Raymond|2944|Wisconsin|M|Head|||66|104895 +3010|CA|Contra Costa County|San Ramon city|998|0|2|Long|Dina|2943|Maryland|F|Spouse|||67|104896 +3010|CA|Contra Costa County|San Ramon city|998|0|3|Long|Brynn|2987|Norfolk Island|F|Daughter|||23|104897 +3010|CA|Contra Costa County|San Ramon city|998|0|4|Long|Franchesca|2995|El Salvador|F|Daughter|||15|104898 +3010|CA|Contra Costa County|San Ramon city|998|0|5|Long|Lottie|3003|CA|F|Daughter|||7|104899 + +3010|PA|Snyder County|Port Trevorton CDP|999|0|1|Crane|Deandre Les|2949|Wyoming|M|Head|||61|104900 +3010|PA|Snyder County|Port Trevorton CDP|999|0|2|Crane|Hertha|2953|Connecticut|F|Spouse|||57|104901 +3010|PA|Snyder County|Port Trevorton CDP|999|0|3|Crane|Nicolasa|2973|Nebraska|F|Daughter|||37|104902 +3010|PA|Snyder County|Port Trevorton CDP|999|0|4|Crane|Lesli|2993|Nevada|F|Daughter|||17|104903 +3010|PA|Snyder County|Port Trevorton CDP|999|0|5|Crane|Ling|2999|Rhode Island|F|Daughter|||11|104904 +3010|PA|Snyder County|Port Trevorton CDP|999|0|6|Crane|Jesus|3001|PA|M|Son|||9|104905 +3010|PA|Snyder County|Port Trevorton CDP|999|0|7|Crane|Phillip|3005|PA|M|Son|||5|104906 + +3010|TX|Cass County, Morris County|Hughes Springs city|1000|0|1|Thomasson|Deshawn Clifford|2974|Costa Rica|M|Head|||36|104907 +3010|TX|Cass County, Morris County|Hughes Springs city|1000|0|2|Thomasson|Carrol|2977|Oregon|F|Spouse|||33|104908 +3010|TX|Cass County, Morris County|Hughes Springs city|1000|0|3|Thomasson|Giovanni|3001|TX|M|Son|||9|104909 +3010|TX|Cass County, Morris County|Hughes Springs city|1000|0|4|Thomasson|Mary|3003|TX|F|Daughter|||7|104910 + +3010|NM|Socorro County|Socorro city|1001|0|1|Kump|Modesto Leif|2962|Michigan|M|Head|||48|104911 +3010|NM|Socorro County|Socorro city|1001|0|2|Kump|Takako|2969|Washington|F|Spouse|||41|104912 +3010|NM|Socorro County|Socorro city|1001|0|3|Kump|Chang|3001|NM|M|Son|||9|104913 +3010|NM|Socorro County|Socorro city|1001|0|4|Kump|Emily Bari|3003|NM|F|Daughter|||7|104914 + diff -Nru cctools-7.0.22/doc/manuals/prune/examples/census/simulated_data/3010.2.txt cctools-7.1.2/doc/manuals/prune/examples/census/simulated_data/3010.2.txt --- cctools-7.0.22/doc/manuals/prune/examples/census/simulated_data/3010.2.txt 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/census/simulated_data/3010.2.txt 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,5937 @@ +3010|PA|Lycoming County|Montgomery borough|1002|0|1|Pommier|Miles|2944|Wyoming|M|Head|||66|104915 +3010|PA|Lycoming County|Montgomery borough|1002|0|2|Pommier|Britt|2942|Arizona|F|Spouse|||68|104916 +3010|PA|Lycoming County|Montgomery borough|1002|0|3|Pommier|Rex|2986|Papua New Guinea|M|Son|||24|104917 +3010|PA|Lycoming County|Montgomery borough|1002|0|4|Pommier|Derek|3000|Massachusetts|M|Son|||10|104918 +3010|PA|Lycoming County|Montgomery borough|1002|0|5|Pommier|Leoma|3003|PA|F|Daughter|||7|104919 +3010|PA|Lycoming County|Montgomery borough|1002|0|6|Pommier|Vanetta|3007|PA|F|Daughter|||3|104920 + +3010|NY|Warren County|West Glens Falls CDP|1003|0|1|Cundick|Beau Carlo|2963|Maine|M|Head|||47|104921 +3010|NY|Warren County|West Glens Falls CDP|1003|0|2|Cundick|Carola|2980|Seychelles|F|Spouse|||30|104922 + +3010|PA|Westmoreland County|Fairfield township|1004|0|1|Menifee|Willy Seth|2969|Missouri|M|Head|||41|104923 +3010|PA|Westmoreland County|Fairfield township|1004|0|2|Menifee|Aurelio|2988|Iowa|M|Son|||22|104924 +3010|PA|Westmoreland County|Fairfield township|1004|0|3|Menifee|Elli|2994|Micronesia, Federated States Of|F|Daughter|||16|104925 +3010|PA|Westmoreland County|Fairfield township|1004|0|4|Menifee|Guy|2996|Minnesota|M|Son|||14|104926 + +3010|MN|Kittson County|Kennedy city|1005|0|1|Rosenbush|Oscar|2946|Tennessee|M|Head|||64|104927 +3010|MN|Kittson County|Kennedy city|1005|0|2|Rosenbush|Flor|2947|Florida|F|Spouse|||63|104928 +3010|MN|Kittson County|Kennedy city|1005|0|3|Rosenbush|Allen|2985|Oregon|M|Son|||25|104929 +3010|MN|Kittson County|Kennedy city|1005|0|4|Rosenbush|Aldo|2993|Connecticut|M|Son|||17|104930 +3010|MN|Kittson County|Kennedy city|1005|0|5|Rosenbush|Deon|2995|California|M|Son|||15|104931 +3010|MN|Kittson County|Kennedy city|1005|0|6|Rosenbush|Daren|3001|MN|M|Son|||9|104932 +3010|MN|Kittson County|Kennedy city|1005|0|7|Rosenbush|Bryon|3003|MN|M|Son|||7|104933 +3010|MN|Kittson County|Kennedy city|1005|0|8|Rosenbush|Peter|3005|MN|F|Daughter|||5|104934 +3010|MN|Kittson County|Kennedy city|1005|0|9|Rosenbush|Asa|3009|MN|M|Son|||1|104935 + +3010|MS|Holmes County|Lexington city|1006|0|1|Jones|Blair Thaddeus|2954|Mozambique|M|Head|||56|104936 +3010|MS|Holmes County|Lexington city|1006|0|2|Jones|Lianne|2966|Oklahoma|F|Spouse|||44|104937 +3010|MS|Holmes County|Lexington city|1006|0|3|Jones|Necole|2998|Colorado|F|Daughter|||12|104938 +3010|MS|Holmes County|Lexington city|1006|0|4|Jones|Love|3000|Oman|F|Daughter|||10|104939 +3010|MS|Holmes County|Lexington city|1006|0|5|Jones|Maryjo|3001|MS|F|Daughter|||9|104940 +3010|MS|Holmes County|Lexington city|1006|0|6|Jones|Shanta|3003|MS|F|Daughter|||7|104941 + +3010|PA|Bradford County|Ridgebury township|1007|0|1|Shusterman|Micah Morgan|2941|China|M|Head|||69|104942 +3010|PA|Bradford County|Ridgebury township|1007|0|2|Shusterman|Cecile|2942|West Virginia|F|Spouse|||68|104943 +3010|PA|Bradford County|Ridgebury township|1007|0|3|Shusterman|Odessa Fumiko|3007|PA|F|Daughter|||3|104944 + +3010|ND|Ransom County|Sheldon city|1008|0|1|Oliver|Leigh Antone|2964|South Carolina|M|Head|||46|104945 +3010|ND|Ransom County|Sheldon city|1008|0|2|Oliver|Betty|2995|New Jersey|F|Daughter|||15|104946 + +3010|OH|Hamilton County|Dry Run CDP|1009|0|1|Turso|Afton|2974|Oklahoma|F|Spouse|||36|104947 +3010|OH|Hamilton County|Dry Run CDP|1009|0|2|Turso|Lauren|2996|North Dakota|M|Son|||14|104948 +3010|OH|Hamilton County|Dry Run CDP|1009|0|3|Turso|Signe|3000|Pakistan|F|Daughter|||10|104949 +3010|OH|Hamilton County|Dry Run CDP|1009|0|4|Turso|Reyes|3001|OH|M|Son|||9|104950 +3010|OH|Hamilton County|Dry Run CDP|1009|0|5|Turso|Rodrigo|3003|OH|M|Son|||7|104951 +3010|OH|Hamilton County|Dry Run CDP|1009|0|6|Turso|Willena Lashawn|3005|OH|F|Daughter|||5|104952 +3010|OH|Hamilton County|Dry Run CDP|1009|0|7|Turso|Oren|3007|OH|M|Son|||3|104953 +3010|OH|Hamilton County|Dry Run CDP|1009|0|8|Turso|Reid|3009|OH|M|Son|||1|104954 + +3010|PA|Centre County|Taylor township|1010|0|1|Simpson|Andrew Ambrose|2941|Oklahoma|M|Head|||69|104955 +3010|PA|Centre County|Taylor township|1010|0|2|Simpson|Vicki|2947|Wyoming|F|Spouse|||63|104956 +3010|PA|Centre County|Taylor township|1010|0|3|Simpson|Stuart Errol|2975|Mississippi|M|Son|||35|104957 +3010|PA|Centre County|Taylor township|1010|0|4|Simpson|Shin|2995|Korea, Democratic People's Republic Of|F|Daughter|||15|104958 +3010|PA|Centre County|Taylor township|1010|0|5|Simpson|Emilio|3005|PA|M|Son|||5|104959 + +3010|MA|Barnstable County|West Chatham CDP|1011|0|1|Gallusser|Eldon Andre|2970|North Dakota|M|Head|||40|104960 +3010|MA|Barnstable County|West Chatham CDP|1011|0|2|Gallusser|Jacelyn|2988|Oregon|F|Daughter|||22|104961 +3010|MA|Barnstable County|West Chatham CDP|1011|0|3|Gallusser|Karol|2998|Massachusetts|F|Daughter|||12|104962 + +3010|MO|Henry County|Hartwell CDP|1012|0|1|Harris|Vernon Raymon|2941|Arizona|M|Head|||69|104963 +3010|MO|Henry County|Hartwell CDP|1012|0|2|Harris|Esteban|2979|Virgin Islands, U.s.|M|Son|||31|104964 +3010|MO|Henry County|Hartwell CDP|1012|0|3|Harris|Dillon Theodore|2987|Delaware|M|Son|||23|104965 +3010|MO|Henry County|Hartwell CDP|1012|0|4|Harris|Franklin|2995|Arkansas|M|Son|||15|104966 + +3010|MN|Dodge County|Ripley township|1013|0|1|James|Charley Cameron|2955|Maine|M|Head|||55|104967 +3010|MN|Dodge County|Ripley township|1013|0|2|James|Stella|2977|Colorado|F|Daughter|||33|104968 +3010|MN|Dodge County|Ripley township|1013|0|3|James|Gia|2997|Tennessee|F|Daughter|||13|104969 + +3010|NC|Burke County|Hildebran town|1014|0|1|Vera|Luis Everett|2965|West Virginia|M|Head|||45|104970 + +3010|FL|Broward County|Tamarac city|1015|0|1|Wombolt|Wilbert Felipe|2951|California|M|Head|||59|104971 +3010|FL|Broward County|Tamarac city|1015|0|2|Wombolt|Sharilyn|2988|Peru|F|Daughter|||22|104972 +3010|FL|Broward County|Tamarac city|1015|0|3|Wombolt|Myrtice|2996|Virginia|F|Daughter|||14|104973 + +3010|KS|Phillips County|Kirwin city|1016|0|1|Scalice|Elwood Irwin|2957|Sweden|M|Head|||53|104974 +3010|KS|Phillips County|Kirwin city|1016|0|2|Scalice|Randa|2960|Louisiana|F|Spouse|||50|104975 +3010|KS|Phillips County|Kirwin city|1016|0|3|Scalice|Clifton|2980|Illinois|M|Son|||30|104976 +3010|KS|Phillips County|Kirwin city|1016|0|4|Scalice|Stanford|2998|South Carolina|M|Son|||12|104977 +3010|KS|Phillips County|Kirwin city|1016|0|5|Scalice|Maurice|3001|KS|M|Son|||9|104978 +3010|KS|Phillips County|Kirwin city|1016|0|6|Scalice|Vikki|3003|KS|F|Daughter|||7|104979 +3010|KS|Phillips County|Kirwin city|1016|0|7|Scalice|Aileen|3007|KS|F|Daughter|||3|104980 + +3010|MO|St. Louis County|Vinita Park city|1017|0|1|Ruggero|Vicente Laverne|2938|Kyrgyzstan|M|Head|||72|104981 +3010|MO|St. Louis County|Vinita Park city|1017|0|2|Ruggero|Gerald|2990|Mississippi|M|Son|||20|104982 + +3010|NH|Carroll County|Union CDP|1018|0|1|Renteria|Maxie|2956|Louisiana|F|Head|||54|104983 +3010|NH|Carroll County|Union CDP|1018|0|2|Renteria|Xavier|2984|Delaware|M|Son|||26|104984 +3010|NH|Carroll County|Union CDP|1018|0|3|Renteria|Savannah|2990|North Carolina|F|Daughter|||20|104985 +3010|NH|Carroll County|Union CDP|1018|0|4|Renteria|Lavone|2992|Oklahoma|F|Daughter|||18|104986 +3010|NH|Carroll County|Union CDP|1018|0|5|Renteria|Arthur|2998|Iceland|M|Son|||12|104987 +3010|NH|Carroll County|Union CDP|1018|0|6|Renteria|Elliot|3000|California|M|Son|||10|104988 + +3010|CA|Yuba County|Beale AFB CDP|1019|0|1|Runyan|Isaac Dorsey|2940|Wallis And Futuna|M|Head|||70|104989 +3010|CA|Yuba County|Beale AFB CDP|1019|0|2|Runyan|Rosalee|2953|Virginia|F|Spouse|||57|104990 +3010|CA|Yuba County|Beale AFB CDP|1019|0|3|Runyan|Jody|2975|Texas|M|Son|||35|104991 +3010|CA|Yuba County|Beale AFB CDP|1019|0|4|Runyan|Bradford|2981|New Hampshire|M|Son|||29|104992 +3010|CA|Yuba County|Beale AFB CDP|1019|0|5|Runyan|Angella|2995|New York|F|Daughter|||15|104993 +3010|CA|Yuba County|Beale AFB CDP|1019|0|6|Runyan|Frida|3001|CA|F|Daughter|||9|104994 +3010|CA|Yuba County|Beale AFB CDP|1019|0|7|Runyan|Stella|3009|CA|F|Daughter|||1|104995 + +3010|IA|Winnebago County|Leland city|1020|0|1|Ohrt|Roxy|2950|Missouri|F|Head|||60|104996 +3010|IA|Winnebago County|Leland city|1020|0|2|Ohrt|Shiloh|2972|Delaware|F|Daughter|||38|104997 +3010|IA|Winnebago County|Leland city|1020|0|3|Ohrt|Rolando|2996|Arizona|M|Son|||14|104998 + +3010|GA|Cobb County|Mableton CDP|1021|0|1|Poole|Humberto Burl|2973|Mexico|M|Head|||37|104999 +3010|GA|Cobb County|Mableton CDP|1021|0|2|Poole|Leonie|2970|Dominica|F|Spouse|||40|105000 +3010|GA|Cobb County|Mableton CDP|1021|0|3|Poole|Sam Davis|2990|Connecticut|M|Son|||20|105001 +3010|GA|Cobb County|Mableton CDP|1021|0|4|Poole|Sterling|2996|Arizona|M|Son|||14|105002 +3010|GA|Cobb County|Mableton CDP|1021|0|5|Poole|Jalisa Cinthia|2998|Virginia|F|Daughter|||12|105003 + +3010|CO|El Paso County|Cascade-Chipita Park CDP|1022|0|1|Frack|Hugh Marcellus|2976|Massachusetts|M|Head|||34|105004 +3010|CO|El Paso County|Cascade-Chipita Park CDP|1022|0|2|Frack|Natacha|2983|Congo, The Democratic Republic Of The|F|Spouse|||27|105005 +3010|CO|El Paso County|Cascade-Chipita Park CDP|1022|0|3|Frack|Hortencia|3001|CO|F|Daughter|||9|105006 +3010|CO|El Paso County|Cascade-Chipita Park CDP|1022|0|4|Frack|Shemeka|3005|CO|F|Daughter|||5|105007 + +3010|CA|Amador County|Plymouth city|1023|0|1|Fite|Alfreda|2969|Iowa|F|Head|||41|105008 +3010|CA|Amador County|Plymouth city|1023|0|2|Fite|Rudolf|2993|Oklahoma|M|Son|||17|105009 + +3010|AL|Mobile County|Chunchula CDP|1024|0|1|Stanger|Salvador Clark|2948|South Carolina|M|Head|||62|105010 +3010|AL|Mobile County|Chunchula CDP|1024|0|2|Stanger|Blanche|2959|Norway|F|Spouse|||51|105011 +3010|AL|Mobile County|Chunchula CDP|1024|0|3|Stanger|Alden|3001|AL|M|Son|||9|105012 +3010|AL|Mobile County|Chunchula CDP|1024|0|4|Stanger|Johnnie|3003|AL|M|Son|||7|105013 +3010|AL|Mobile County|Chunchula CDP|1024|0|5|Stanger|Williams|3007|AL|M|Son|||3|105014 + +3010|MT|Prairie County|Terry town|1025|0|1|Lee|Lou Napoleon|2946|Oregon|M|Head|||64|105015 +3010|MT|Prairie County|Terry town|1025|0|2|Lee|Cherly|2970|Delaware|F|Spouse|||40|105016 +3010|MT|Prairie County|Terry town|1025|0|3|Lee|Monet|2990|North Dakota|F|Daughter|||20|105017 +3010|MT|Prairie County|Terry town|1025|0|4|Lee|Kasey|3001|MT|M|Son|||9|105018 +3010|MT|Prairie County|Terry town|1025|0|5|Lee|Felecia|3007|MT|F|Daughter|||3|105019 +3010|MT|Prairie County|Terry town|1025|0|6|Lee|Zachary Jules|3009|MT|M|Son|||1|105020 + +3010|NE|McPherson County|Tryon CDP|1026|0|1|Greisser|Van Orville|2979|Missouri|M|Head|||31|105021 +3010|NE|McPherson County|Tryon CDP|1026|0|2|Greisser|Celestine|2995|South Dakota|F|Daughter|||15|105022 +3010|NE|McPherson County|Tryon CDP|1026|0|3|Greisser|Marquetta Tyler|2997|California|F|Daughter|||13|105023 + +3010|NE|Colfax County|Rogers village|1027|0|1|Mischnick|Ervin Kirby|2955|Idaho|M|Head|||55|105024 +3010|NE|Colfax County|Rogers village|1027|0|2|Mischnick|Mui|2966|Texas|F|Spouse|||44|105025 +3010|NE|Colfax County|Rogers village|1027|0|3|Mischnick|Danial|3007|NE|M|Son|||3|105026 + +3010|WA|Chelan County|Chelan Falls CDP|1028|0|1|Moore|Dallas Brendon|2981|Delaware|M|Head|||29|105027 +3010|WA|Chelan County|Chelan Falls CDP|1028|0|2|Moore|Inger|2984|Kentucky|F|Spouse|||26|105028 +3010|WA|Chelan County|Chelan Falls CDP|1028|0|3|Moore|Reid Eldon|3001|WA|M|Son|||9|105029 +3010|WA|Chelan County|Chelan Falls CDP|1028|0|4|Moore|Basilia|3005|WA|F|Daughter|||5|105030 +3010|WA|Chelan County|Chelan Falls CDP|1028|0|5|Moore|Cordelia|3007|WA|F|Daughter|||3|105031 +3010|WA|Chelan County|Chelan Falls CDP|1028|0|6|Moore|Colin|3009|WA|M|Son|||1|105032 + +3010|OH|Clinton County|Sabina village|1029|0|1|Claffey|Richard Judson|2940|Comoros|M|Head|||70|105033 +3010|OH|Clinton County|Sabina village|1029|0|2|Claffey|Verena|2973|Arizona|F|Daughter|||37|105034 +3010|OH|Clinton County|Sabina village|1029|0|3|Claffey|Nestor|2977|New Mexico|M|Son|||33|105035 +3010|OH|Clinton County|Sabina village|1029|0|4|Claffey|Diego|2989|Rhode Island|M|Son|||21|105036 + +3010|PA|Dauphin County|Halifax borough|1030|0|1|Denger|Damion|2938|California|M|Head|||72|105037 +3010|PA|Dauphin County|Halifax borough|1030|0|2|Denger|Yolando|2961|Oklahoma|F|Spouse|||49|105038 +3010|PA|Dauphin County|Halifax borough|1030|0|3|Denger|Damian|2995|Texas|M|Son|||15|105039 +3010|PA|Dauphin County|Halifax borough|1030|0|4|Denger|Lura|2999|Texas|F|Daughter|||11|105040 +3010|PA|Dauphin County|Halifax borough|1030|0|5|Denger|Marc|3001|PA|M|Son|||9|105041 +3010|PA|Dauphin County|Halifax borough|1030|0|6|Denger|Columbus|3005|PA|M|Son|||5|105042 +3010|PA|Dauphin County|Halifax borough|1030|0|7|Denger|Guadalupe Sammy|3007|PA|M|Son|||3|105043 + +3010|MN|Lincoln County|Hope township|1031|0|1|Wilson|Marcos Bob|2946|Texas|M|Head|||64|105044 +3010|MN|Lincoln County|Hope township|1031|0|2|Wilson|Roxane|2951|Hawaii|F|Spouse|||59|105045 +3010|MN|Lincoln County|Hope township|1031|0|3|Wilson|Florida|2979|Lesotho|F|Daughter|||31|105046 +3010|MN|Lincoln County|Hope township|1031|0|4|Wilson|Abdul|2991|Maryland|M|Son|||19|105047 +3010|MN|Lincoln County|Hope township|1031|0|5|Wilson|Eugene|2995|Alaska|F|Daughter|||15|105048 +3010|MN|Lincoln County|Hope township|1031|0|6|Wilson|Dallas Gilberto|3003|WI|M|Son|||7|105049 +3010|MN|Lincoln County|Hope township|1031|0|7|Wilson|Merna|3005|WI|F|Daughter|||5|105050 + +3010|IN|Fayette County, Rush County|Glenwood town|1032|0|1|Mottram|Darin Burl|2947|Latvia|M|Head|||63|105051 +3010|IN|Fayette County, Rush County|Glenwood town|1032|0|2|Mottram|Zonia|2991|Colorado|F|Daughter|||19|105052 +3010|IN|Fayette County, Rush County|Glenwood town|1032|0|3|Mottram|Joanie Ethel|2995|Michigan|F|Daughter|||15|105053 +3010|IN|Fayette County, Rush County|Glenwood town|1032|0|4|Mottram|Olevia Tess|3005|IN|F|Daughter|||5|105054 +3010|IN|Fayette County, Rush County|Glenwood town|1032|0|5|Mottram|Ralph|3009|IN|M|Son|||1|105055 + +3010|PA|Indiana County|Plumville borough|1033|0|1|Horowitz|Nicolas Palmer|2955|Romania|M|Head|||55|105056 +3010|PA|Indiana County|Plumville borough|1033|0|2|Horowitz|Leia|2971|Georgia|F|Spouse|||39|105057 +3010|PA|Indiana County|Plumville borough|1033|0|3|Horowitz|Kenisha Gretchen|2995|Louisiana|F|Daughter|||15|105058 +3010|PA|Indiana County|Plumville borough|1033|0|4|Horowitz|Emil|2997|New Jersey|M|Son|||13|105059 +3010|PA|Indiana County|Plumville borough|1033|0|5|Horowitz|Willa|2999|Maryland|F|Daughter|||11|105060 +3010|PA|Indiana County|Plumville borough|1033|0|6|Horowitz|Lyle|3001|PA|M|Son|||9|105061 + +3010|MS|Hinds County|Clinton city|1034|0|1|Mercik|Jaime Jerome|2942|Mississippi|M|Head|||68|105062 +3010|MS|Hinds County|Clinton city|1034|0|2|Mercik|Loura|2993|Michigan|F|Daughter|||17|105063 +3010|MS|Hinds County|Clinton city|1034|0|3|Mercik|Clark|2995|Georgia|M|Son|||15|105064 + +3010|AZ|Gila County|Globe city|1035|0|1|Fisher|Jefferey Dave|2956|West Virginia|M|Head|||54|105065 +3010|AZ|Gila County|Globe city|1035|0|2|Fisher|Clint|2997|Wisconsin|M|Son|||13|105066 + +3010|NE|Keith County|Brule village|1036|0|1|Bracket|Raleigh Rodrick|2981|Nevada|M|Head|||29|105067 +3010|NE|Keith County|Brule village|1036|0|2|Bracket|Anthony|2977|New Mexico|F|Spouse|||33|105068 +3010|NE|Keith County|Brule village|1036|0|3|Bracket|Samuel|2999|Kentucky|M|Son|||11|105069 +3010|NE|Keith County|Brule village|1036|0|4|Bracket|Kristopher|3003|NE|M|Son|||7|105070 +3010|NE|Keith County|Brule village|1036|0|5|Bracket|Lincoln|3009|NE|M|Son|||1|105071 + +3010|FL|Palm Beach County|Boca Raton city|1037|0|1|Glander|Lamar Teodoro|2937|Alabama|M|Head|||73|105072 +3010|FL|Palm Beach County|Boca Raton city|1037|0|2|Glander|Lovie|2962|Massachusetts|F|Daughter|||48|105073 +3010|FL|Palm Beach County|Boca Raton city|1037|0|3|Glander|Chong|2982|North Carolina|F|Daughter|||28|105074 +3010|FL|Palm Beach County|Boca Raton city|1037|0|4|Glander|Mickie|3000|Texas|F|Daughter|||10|105075 + +3010|HI|Honolulu County|Mililani Town CDP|1038|0|1|Chou|Roberto Royal|2960|Utah|M|Head|||50|105076 +3010|HI|Honolulu County|Mililani Town CDP|1038|0|2|Chou|Katharyn Hisako|2957|Armenia|F|Spouse|||53|105077 +3010|HI|Honolulu County|Mililani Town CDP|1038|0|3|Chou|Chantell|2981|Minnesota|F|Daughter|||29|105078 +3010|HI|Honolulu County|Mililani Town CDP|1038|0|4|Chou|Omar|2989|Kentucky|M|Son|||21|105079 +3010|HI|Honolulu County|Mililani Town CDP|1038|0|5|Chou|Earle|2995|Florida|M|Son|||15|105080 +3010|HI|Honolulu County|Mililani Town CDP|1038|0|6|Chou|Len|2997|Iowa|M|Son|||13|105081 +3010|HI|Honolulu County|Mililani Town CDP|1038|0|7|Chou|Mira|3001|HI|F|Daughter|||9|105082 +3010|HI|Honolulu County|Mililani Town CDP|1038|0|8|Chou|Scotty Jae|3003|HI|M|Son|||7|105083 +3010|HI|Honolulu County|Mililani Town CDP|1038|0|9|Chou|Monroe|3005|HI|M|Son|||5|105084 +3010|HI|Honolulu County|Mililani Town CDP|1038|0|10|Chou|Joya|3007|HI|F|Daughter|||3|105085 + +3010|WA|Walla Walla County|Burbank CDP|1039|0|1|Porst|Loren Carmine|2957|Illinois|M|Head|||53|105086 +3010|WA|Walla Walla County|Burbank CDP|1039|0|2|Porst|Shenita|2998|Hawaii|F|Daughter|||12|105087 + +3010|PA|York County|Fawn Grove borough|1040|0|1|Prutt|Tarsha|2962|North Dakota|F|Spouse|||48|105088 +3010|PA|York County|Fawn Grove borough|1040|0|2|Prutt|Adrianne Lucinda|2994|South Dakota|F|Daughter|||16|105089 +3010|PA|York County|Fawn Grove borough|1040|0|3|Prutt|Beverly|2996|Denmark|F|Daughter|||14|105090 + +3010|IL|McDonough County|Prairie City village|1041|0|1|Rosso|Martin Lenny|2952|California|M|Head|||58|105091 +3010|IL|McDonough County|Prairie City village|1041|0|2|Rosso|Melodi|2961|Iowa|F|Spouse|||49|105092 +3010|IL|McDonough County|Prairie City village|1041|0|3|Rosso|Sylvie Ling|2991|Oregon|F|Daughter|||19|105093 +3010|IL|McDonough County|Prairie City village|1041|0|4|Rosso|Herbert|2995|Luxembourg|M|Son|||15|105094 +3010|IL|McDonough County|Prairie City village|1041|0|5|Rosso|Jaime|2997|New Mexico|M|Son|||13|105095 +3010|IL|McDonough County|Prairie City village|1041|0|6|Rosso|Maxima Carley|2999|West Virginia|F|Daughter|||11|105096 +3010|IL|McDonough County|Prairie City village|1041|0|7|Rosso|Scott|3001|IL|M|Son|||9|105097 +3010|IL|McDonough County|Prairie City village|1041|0|8|Rosso|Necole|3003|IL|F|Daughter|||7|105098 +3010|IL|McDonough County|Prairie City village|1041|0|9|Rosso|Hae|3005|IL|F|Daughter|||5|105099 +3010|IL|McDonough County|Prairie City village|1041|0|10|Rosso|Eugenio|3007|IL|M|Son|||3|105100 + +3010|WI|Portage County|Dewey town|1042|0|1|Stoner|Wilford Rey|2944|Oregon|M|Head|||66|105101 +3010|WI|Portage County|Dewey town|1042|0|2|Stoner|Fawn|2954|Colorado|F|Spouse|||56|105102 +3010|WI|Portage County|Dewey town|1042|0|3|Stoner|Curt|2984|Venezuela|M|Son|||26|105103 +3010|WI|Portage County|Dewey town|1042|0|4|Stoner|Racheal|2994|South Carolina|F|Daughter|||16|105104 +3010|WI|Portage County|Dewey town|1042|0|5|Stoner|Emery|2996|Kansas|M|Son|||14|105105 +3010|WI|Portage County|Dewey town|1042|0|6|Stoner|Bronwyn|3003|WI|F|Daughter|||7|105106 +3010|WI|Portage County|Dewey town|1042|0|7|Stoner|Hal|3009|WI|M|Son|||1|105107 + +3010|MA|Middlesex County|Framingham town|1043|0|1|Tllo|Julietta|2971|Louisiana|F|Head|||39|105108 +3010|MA|Middlesex County|Framingham town|1043|0|2|Tllo|Leigh|2995|New Jersey|F|Daughter|||15|105109 + +3010|CT|New London County|Poquonock Bridge CDP|1044|0|1|Sarelas|Winford Merlin|2967|South Carolina|M|Head|||43|105110 +3010|CT|New London County|Poquonock Bridge CDP|1044|0|2|Sarelas|Alesia|2976|Wyoming|F|Spouse|||34|105111 +3010|CT|New London County|Poquonock Bridge CDP|1044|0|3|Sarelas|Mina|2996|North Dakota|F|Daughter|||14|105112 +3010|CT|New London County|Poquonock Bridge CDP|1044|0|4|Sarelas|Eduardo|3001|CT|M|Son|||9|105113 +3010|CT|New London County|Poquonock Bridge CDP|1044|0|5|Sarelas|Theola|3003|CT|F|Daughter|||7|105114 +3010|CT|New London County|Poquonock Bridge CDP|1044|0|6|Sarelas|Michale|3005|CT|M|Son|||5|105115 +3010|CT|New London County|Poquonock Bridge CDP|1044|0|7|Sarelas|Alfred|3007|CT|M|Son|||3|105116 + +3010|CA|Merced County|Gustine city|1045|0|1|Chapa|Eveline|2972|West Virginia|F|Spouse|||38|105117 +3010|CA|Merced County|Gustine city|1045|0|2|Chapa|Shon|2996|Michigan|M|Son|||14|105118 +3010|CA|Merced County|Gustine city|1045|0|3|Chapa|Joeann|3000|Nevada|F|Daughter|||10|105119 +3010|CA|Merced County|Gustine city|1045|0|4|Chapa|Jennefer|3005|CA|F|Daughter|||5|105120 +3010|CA|Merced County|Gustine city|1045|0|5|Chapa|Trent|3007|CA|M|Son|||3|105121 +3010|CA|Merced County|Gustine city|1045|0|6|Chapa|Josiah|3009|CA|M|Son|||1|105122 + +3010|SD|Moody County|Trent town|1046|0|1|Jenkins|Jewell Roscoe|2962|California|M|Head|||48|105123 +3010|SD|Moody County|Trent town|1046|0|2|Jenkins|Thelma|2974|Kyrgyzstan|F|Spouse|||36|105124 +3010|SD|Moody County|Trent town|1046|0|3|Jenkins|Lurlene|3000|New Jersey|F|Daughter|||10|105125 +3010|SD|Moody County|Trent town|1046|0|4|Jenkins|Franklin|3005|SD|M|Son|||5|105126 + +3010|WI|Jackson County|Northfield town|1047|0|1|Trufin|Nelson Damon|2949|Qatar|M|Head|||61|105127 +3010|WI|Jackson County|Northfield town|1047|0|2|Trufin|Marjory|2971|Kansas|F|Spouse|||39|105128 +3010|WI|Jackson County|Northfield town|1047|0|3|Trufin|Bradley Jae|2995|Washington|M|Son|||15|105129 +3010|WI|Jackson County|Northfield town|1047|0|4|Trufin|Gregoria|2997|Utah|F|Daughter|||13|105130 +3010|WI|Jackson County|Northfield town|1047|0|5|Trufin|Cara|2999|Maryland|F|Daughter|||11|105131 +3010|WI|Jackson County|Northfield town|1047|0|6|Trufin|Rex|3001|WI|M|Son|||9|105132 +3010|WI|Jackson County|Northfield town|1047|0|7|Trufin|Tia|3003|WI|F|Daughter|||7|105133 +3010|WI|Jackson County|Northfield town|1047|0|8|Trufin|Bernardine|3005|WI|F|Daughter|||5|105134 + +3010|NJ|Monmouth County|Shark River Hills CDP|1048|0|1|Liberatore|Huey Josef|2942|Pennsylvania|M|Head|||68|105135 +3010|NJ|Monmouth County|Shark River Hills CDP|1048|0|2|Liberatore|Jolene|2959|Iowa|F|Spouse|||51|105136 +3010|NJ|Monmouth County|Shark River Hills CDP|1048|0|3|Liberatore|Wan Evalyn|2981|Maryland|F|Daughter|||29|105137 +3010|NJ|Monmouth County|Shark River Hills CDP|1048|0|4|Liberatore|Kathlene|2985|Sao Tome And Principe|F|Daughter|||25|105138 +3010|NJ|Monmouth County|Shark River Hills CDP|1048|0|5|Liberatore|Casey Victor|2987|India|M|Son|||23|105139 +3010|NJ|Monmouth County|Shark River Hills CDP|1048|0|6|Liberatore|Millard|2999|Egypt|M|Son|||11|105140 +3010|NJ|Monmouth County|Shark River Hills CDP|1048|0|7|Liberatore|Billie|3007|NJ|F|Daughter|||3|105141 +3010|NJ|Monmouth County|Shark River Hills CDP|1048|0|8|Liberatore|Darren|3009|NJ|M|Son|||1|105142 + +3010|NM|San Miguel County|Pueblo CDP|1049|0|1|Kaucher|Hector Gaston|2939|Indiana|M|Head|||71|105143 +3010|NM|San Miguel County|Pueblo CDP|1049|0|2|Kaucher|Christian|2990|Oklahoma|M|Son|||20|105144 + +3010|FL|St. Johns County|St. Augustine city|1050|0|1|Moya|Delbert Ruben|2950|Ohio|M|Head|||60|105145 +3010|FL|St. Johns County|St. Augustine city|1050|0|2|Moya|Royal|2975|California|M|Son|||35|105146 +3010|FL|St. Johns County|St. Augustine city|1050|0|3|Moya|Emil|2989|Missouri|M|Son|||21|105147 +3010|FL|St. Johns County|St. Augustine city|1050|0|4|Moya|Ludie|2993|West Virginia|F|Daughter|||17|105148 +3010|FL|St. Johns County|St. Augustine city|1050|0|5|Moya|Providencia Eric|2995|Nevada|F|Daughter|||15|105149 + +3010|CO|Boulder County|Bonanza Mountain Estates CDP|1051|0|1|Starkey|Hosea Dirk|2962|Oregon|M|Head|||48|105150 +3010|CO|Boulder County|Bonanza Mountain Estates CDP|1051|0|2|Starkey|Tyesha|2983|Idaho|F|Spouse|||27|105151 +3010|CO|Boulder County|Bonanza Mountain Estates CDP|1051|0|3|Starkey|Glady|3003|CO|F|Daughter|||7|105152 +3010|CO|Boulder County|Bonanza Mountain Estates CDP|1051|0|4|Starkey|Shirly|3007|CO|F|Daughter|||3|105153 + +3010|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1052|0|1|Hammond|Deangelo Leonardo|2940|Colorado|M|Head|||70|105154 +3010|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1052|0|2|Hammond|Genie|2951|Indiana|F|Spouse|||59|105155 +3010|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1052|0|3|Hammond|Joellen|2973|Alabama|F|Daughter|||37|105156 +3010|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1052|0|4|Hammond|Woodrow|2989|Serbia|M|Son|||21|105157 +3010|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1052|0|5|Hammond|Lavern|3001|TX|M|Son|||9|105158 +3010|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1052|0|6|Hammond|Kory|3003|TX|M|Son|||7|105159 +3010|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1052|0|7|Hammond|Lenny Donte|3009|TX|M|Son|||1|105160 + +3010|ND|Benson County|York city|1053|0|1|Sletten|Gregg Roberto|2982|Nevada|M|Head|||28|105161 +3010|ND|Benson County|York city|1053|0|2|Sletten|Arvilla|2978|Cameroon|F|Spouse|||32|105162 +3010|ND|Benson County|York city|1053|0|3|Sletten|Luciano|2998|Colorado|M|Son|||12|105163 +3010|ND|Benson County|York city|1053|0|4|Sletten|Johnathan|3000|Maryland|M|Son|||10|105164 +3010|ND|Benson County|York city|1053|0|5|Sletten|Micheal|3001|ND|M|Son|||9|105165 +3010|ND|Benson County|York city|1053|0|6|Sletten|Wilson|3005|ND|M|Son|||5|105166 +3010|ND|Benson County|York city|1053|0|7|Sletten|Alan|3007|ND|M|Son|||3|105167 + +3010|WA|King County|Maple Valley city|1054|0|1|Logan|Rocky Carlton|2962|Alabama|M|Head|||48|105168 +3010|WA|King County|Maple Valley city|1054|0|2|Logan|Von Dominique|2998|Montana|M|Son|||12|105169 +3010|WA|King County|Maple Valley city|1054|0|3|Logan|Raye|3007|WA|F|Daughter|||3|105170 + +3010|NY|Jefferson County|Felts Mills CDP|1055|0|1|Ochoa|Asia|2963|San Marino|F|Head|||47|105171 +3010|NY|Jefferson County|Felts Mills CDP|1055|0|2|Ochoa|Dillon|2995|Kiribati|M|Son|||15|105172 + +3010|NY|Rensselaer County|Nassau village|1056|0|1|Rice|Allen Coy|2941|Oklahoma|M|Head|||69|105173 +3010|NY|Rensselaer County|Nassau village|1056|0|2|Rice|Joye|2952|Nebraska|F|Spouse|||58|105174 +3010|NY|Rensselaer County|Nassau village|1056|0|3|Rice|Billye|2972|South Dakota|F|Daughter|||38|105175 +3010|NY|Rensselaer County|Nassau village|1056|0|4|Rice|Riley|3001|NY|M|Son|||9|105176 + +3010|FL|Monroe County|Cudjoe Key CDP|1057|0|1|Wilson|Nicholas Kieth|2942|Togo|M|Head|||68|105177 +3010|FL|Monroe County|Cudjoe Key CDP|1057|0|2|Wilson|Darcel|2958|Illinois|F|Spouse|||52|105178 +3010|FL|Monroe County|Cudjoe Key CDP|1057|0|3|Wilson|Johnie|2982|Michigan|M|Son|||28|105179 +3010|FL|Monroe County|Cudjoe Key CDP|1057|0|4|Wilson|Agatha|2988|Indiana|F|Daughter|||22|105180 +3010|FL|Monroe County|Cudjoe Key CDP|1057|0|5|Wilson|Trenton|2994|Minnesota|M|Son|||16|105181 +3010|FL|Monroe County|Cudjoe Key CDP|1057|0|6|Wilson|Halley|2996|Florida|F|Daughter|||14|105182 +3010|FL|Monroe County|Cudjoe Key CDP|1057|0|7|Wilson|Ike|3003|FL|M|Son|||7|105183 +3010|FL|Monroe County|Cudjoe Key CDP|1057|0|8|Wilson|Tennille|3005|FL|F|Daughter|||5|105184 +3010|FL|Monroe County|Cudjoe Key CDP|1057|0|9|Wilson|Quintin|3009|FL|M|Son|||1|105185 + +3010|AL|Washington County|Hobson CDP|1058|0|1|Pardew|Sindy Jadwiga|2961|El Salvador|F|Head|||49|105186 +3010|AL|Washington County|Hobson CDP|1058|0|2|Pardew|Barrett Ike|2983|Colorado|M|Son|||27|105187 +3010|AL|Washington County|Hobson CDP|1058|0|3|Pardew|Jere|2995|Netherlands|M|Son|||15|105188 +3010|AL|Washington County|Hobson CDP|1058|0|4|Pardew|Benito|2999|Tuvalu|M|Son|||11|105189 + +3010|TX|Montgomery County|Woodbranch city|1059|0|1|Niksich|Ethyl|2961|New Hampshire|F|Head|||49|105190 +3010|TX|Montgomery County|Woodbranch city|1059|0|2|Niksich|Noe|2999|Alaska|M|Son|||11|105191 + +3010|CT|Tolland County|Ellington town|1060|0|1|Cummins|Boyce Francesco|2947|Iceland|M|Head|||63|105192 +3010|CT|Tolland County|Ellington town|1060|0|2|Cummins|Sherise|2946|Wisconsin|F|Spouse|||64|105193 +3010|CT|Tolland County|Ellington town|1060|0|3|Cummins|Gale|2990|Idaho|F|Daughter|||20|105194 +3010|CT|Tolland County|Ellington town|1060|0|4|Cummins|Delicia|2994|Oregon|F|Daughter|||16|105195 +3010|CT|Tolland County|Ellington town|1060|0|5|Cummins|Nichole|2998|New York|F|Daughter|||12|105196 +3010|CT|Tolland County|Ellington town|1060|0|6|Cummins|Latia|3000|New York|F|Daughter|||10|105197 +3010|CT|Tolland County|Ellington town|1060|0|7|Cummins|Javier|3001|CT|M|Son|||9|105198 +3010|CT|Tolland County|Ellington town|1060|0|8|Cummins|Joyce|3003|CT|F|Daughter|||7|105199 + +3010|VT|Orange County|Strafford town|1061|0|1|Hussar|Eldon|2955|Connecticut|M|Head|||55|105200 +3010|VT|Orange County|Strafford town|1061|0|2|Hussar|Basil|2987|Louisiana|M|Son|||23|105201 +3010|VT|Orange County|Strafford town|1061|0|3|Hussar|Queenie|2995|Idaho|F|Daughter|||15|105202 +3010|VT|Orange County|Strafford town|1061|0|4|Hussar|Ned|2997|Wyoming|M|Son|||13|105203 +3010|VT|Orange County|Strafford town|1061|0|5|Hussar|Bryan|2999|Estonia|M|Son|||11|105204 + +3010|NY|Delaware County|Walton town|1062|0|1|Falk|Ronny Alfred|2943|Arkansas|M|Head|||67|105205 +3010|NY|Delaware County|Walton town|1062|0|2|Falk|Cecelia|2959|Arizona|F|Spouse|||51|105206 +3010|NY|Delaware County|Walton town|1062|0|3|Falk|Maurice Chung|2997|Central African Republic|M|Son|||13|105207 +3010|NY|Delaware County|Walton town|1062|0|4|Falk|Karl|3001|NY|M|Son|||9|105208 +3010|NY|Delaware County|Walton town|1062|0|5|Falk|Delsie|3003|NY|F|Daughter|||7|105209 +3010|NY|Delaware County|Walton town|1062|0|6|Falk|Darwin Jeff|3007|NY|M|Son|||3|105210 + +3010|NV|Douglas County|Logan Creek CDP|1063|0|1|Gott|Jason Felipe|2950|Louisiana|M|Head|||60|105211 +3010|NV|Douglas County|Logan Creek CDP|1063|0|2|Gott|Jody|2983|New Mexico|M|Son|||27|105212 +3010|NV|Douglas County|Logan Creek CDP|1063|0|3|Gott|Juan|2993|Indiana|M|Son|||17|105213 +3010|NV|Douglas County|Logan Creek CDP|1063|0|4|Gott|Caitlyn|2997|Iowa|F|Daughter|||13|105214 + +3010|MO|Cass County|Peculiar city|1064|0|1|Heidema|Sergio|2938|Tennessee|M|Head|||72|105215 +3010|MO|Cass County|Peculiar city|1064|0|2|Heidema|Delma|2938|Eritrea|F|Spouse|||72|105216 + +3010|WA|King County|Black Diamond city|1065|0|1|Lumbreras|Rigoberto Byron|2959|Nebraska|M|Head|||51|105217 +3010|WA|King County|Black Diamond city|1065|0|2|Lumbreras|Agueda|2960|California|F|Spouse|||50|105218 +3010|WA|King County|Black Diamond city|1065|0|3|Lumbreras|Margarito|2984|Argentina|M|Son|||26|105219 +3010|WA|King County|Black Diamond city|1065|0|4|Lumbreras|Royal|2996|New York|M|Son|||14|105220 +3010|WA|King County|Black Diamond city|1065|0|5|Lumbreras|Noah|2998|French Guiana|M|Son|||12|105221 +3010|WA|King County|Black Diamond city|1065|0|6|Lumbreras|Felipa|3000|Idaho|F|Daughter|||10|105222 +3010|WA|King County|Black Diamond city|1065|0|7|Lumbreras|Luanna|3001|WA|F|Daughter|||9|105223 +3010|WA|King County|Black Diamond city|1065|0|8|Lumbreras|Epifania|3003|WA|F|Daughter|||7|105224 + +3010|NE|Nuckolls County|Nora village|1066|0|1|Stevenson|Lanny Reed|2968|Malta|M|Head|||42|105225 +3010|NE|Nuckolls County|Nora village|1066|0|2|Stevenson|Corinna|2977|Mississippi|F|Spouse|||33|105226 +3010|NE|Nuckolls County|Nora village|1066|0|3|Stevenson|Lorenzo|3001|NE|M|Son|||9|105227 +3010|NE|Nuckolls County|Nora village|1066|0|4|Stevenson|Carolee|3009|NE|F|Daughter|||1|105228 + +3010|NE|Saunders County|Morse Bluff village|1067|0|1|Kahl|Maricruz|2967|Ethiopia|F|Head|||43|105229 +3010|NE|Saunders County|Morse Bluff village|1067|0|2|Kahl|Simona Shamika|2997|Brunei Darussalam|F|Daughter|||13|105230 + +3010|WY|Big Horn County|Lovell town|1068|0|1|Friesen|Quentin Zack|2950|Maryland|M|Head|||60|105231 +3010|WY|Big Horn County|Lovell town|1068|0|2|Friesen|Carolyne Phylicia|2992|Jordan|F|Daughter|||18|105232 +3010|WY|Big Horn County|Lovell town|1068|0|3|Friesen|Raphael|3001|WY|M|Son|||9|105233 +3010|WY|Big Horn County|Lovell town|1068|0|4|Friesen|Isaiah|3005|WY|M|Son|||5|105234 +3010|WY|Big Horn County|Lovell town|1068|0|5|Friesen|Jonathon|3007|WY|M|Son|||3|105235 +3010|WY|Big Horn County|Lovell town|1068|0|6|Friesen|Kristi|3009|WY|F|Daughter|||1|105236 + +3010|WI|Waupaca County|Fremont town|1069|0|1|Thoms|Lavern Fabian|2946|Delaware|M|Head|||64|105237 +3010|WI|Waupaca County|Fremont town|1069|0|2|Thoms|Shirlee Rosalyn|2964|Solomon Islands|F|Spouse|||46|105238 +3010|WI|Waupaca County|Fremont town|1069|0|3|Thoms|Dallas|2990|Oklahoma|F|Daughter|||20|105239 +3010|WI|Waupaca County|Fremont town|1069|0|4|Thoms|Launa|2998|Florida|F|Daughter|||12|105240 +3010|WI|Waupaca County|Fremont town|1069|0|5|Thoms|Margret Jeneva|3005|WI|F|Daughter|||5|105241 +3010|WI|Waupaca County|Fremont town|1069|0|6|Thoms|Cyril Stacy|3009|WI|M|Son|||1|105242 + +3010|IL|Schuyler County|Browning village|1070|0|1|Hubble|Santos Winston|2961|South Carolina|M|Head|||49|105243 +3010|IL|Schuyler County|Browning village|1070|0|2|Hubble|Karen|2978|Idaho|F|Spouse|||32|105244 +3010|IL|Schuyler County|Browning village|1070|0|3|Hubble|Efrain|3000|Indiana|M|Son|||10|105245 +3010|IL|Schuyler County|Browning village|1070|0|4|Hubble|Alfred|3001|IL|M|Son|||9|105246 +3010|IL|Schuyler County|Browning village|1070|0|5|Hubble|Lekisha|3005|IL|F|Daughter|||5|105247 +3010|IL|Schuyler County|Browning village|1070|0|6|Hubble|Harry|3009|IL|M|Son|||1|105248 + +3010|PA|Butler County|Muddy Creek township|1071|0|1|Johns|Les Isidro|2964|Hong Kong|M|Head|||46|105249 +3010|PA|Butler County|Muddy Creek township|1071|0|2|Johns|Lovie|2965|Rhode Island|F|Spouse|||45|105250 +3010|PA|Butler County|Muddy Creek township|1071|0|3|Johns|Cyrus|2985|Algeria|M|Son|||25|105251 +3010|PA|Butler County|Muddy Creek township|1071|0|4|Johns|Latasha|2991|Norfolk Island|F|Daughter|||19|105252 +3010|PA|Butler County|Muddy Creek township|1071|0|5|Johns|Robby|3005|PA|M|Son|||5|105253 + +3010|MT|Hill County|Sangrey CDP|1072|0|1|Slagle|Cleveland Gabriel|2947|Iowa|M|Head|||63|105254 +3010|MT|Hill County|Sangrey CDP|1072|0|2|Slagle|Roselia|2957|Delaware|F|Spouse|||53|105255 +3010|MT|Hill County|Sangrey CDP|1072|0|3|Slagle|Susan|2985|Massachusetts|F|Daughter|||25|105256 +3010|MT|Hill County|Sangrey CDP|1072|0|4|Slagle|Burma|2987|Saint Pierre And Miquelon|F|Daughter|||23|105257 +3010|MT|Hill County|Sangrey CDP|1072|0|5|Slagle|Alisha|2997|Wisconsin|F|Daughter|||13|105258 +3010|MT|Hill County|Sangrey CDP|1072|0|6|Slagle|Laticia|3001|MI|F|Daughter|||9|105259 +3010|MT|Hill County|Sangrey CDP|1072|0|7|Slagle|Tona|3005|MI|F|Daughter|||5|105260 + +3010|MO|Barry County|Exeter city|1073|0|1|Cunningham|Lawrence Marion|2963|Hawaii|M|Head|||47|105261 +3010|MO|Barry County|Exeter city|1073|0|2|Cunningham|Carrol|2991|Sierra Leone|M|Son|||19|105262 +3010|MO|Barry County|Exeter city|1073|0|3|Cunningham|Abraham|2993|Dominican Republic|M|Son|||17|105263 +3010|MO|Barry County|Exeter city|1073|0|4|Cunningham|Ethel|2997|Minnesota|F|Daughter|||13|105264 + +3010|PA|Berks County|Lyons borough|1074|0|1|Elmore|Ollie Jerrell|2940|New York|M|Head|||70|105265 +3010|PA|Berks County|Lyons borough|1074|0|2|Elmore|Connie|2944|Utah|F|Spouse|||66|105266 +3010|PA|Berks County|Lyons borough|1074|0|3|Elmore|Jesus|2998|Arkansas|M|Son|||12|105267 +3010|PA|Berks County|Lyons borough|1074|0|4|Elmore|Felipe|3000|Tennessee|M|Son|||10|105268 +3010|PA|Berks County|Lyons borough|1074|0|5|Elmore|Xavier|3009|PA|M|Son|||1|105269 + +3010|IN|Tippecanoe County|Lafayette city|1075|0|1|Lopez|Travis Dale|2950|Georgia|M|Head|||60|105270 +3010|IN|Tippecanoe County|Lafayette city|1075|0|2|Lopez|Keturah|2974|Washington|F|Spouse|||36|105271 +3010|IN|Tippecanoe County|Lafayette city|1075|0|3|Lopez|Lessie|2996|Michigan|F|Daughter|||14|105272 +3010|IN|Tippecanoe County|Lafayette city|1075|0|4|Lopez|Son Alberto|3001|IN|M|Son|||9|105273 + +3010|MD|Garrett County|Deer Park town|1076|0|1|Waltmon|Ulysses Chong|2961|Tennessee|M|Head|||49|105274 +3010|MD|Garrett County|Deer Park town|1076|0|2|Waltmon|Janell|2957|Hawaii|F|Spouse|||53|105275 +3010|MD|Garrett County|Deer Park town|1076|0|3|Waltmon|Guillermina Kimbra|2987|Delaware|F|Daughter|||23|105276 +3010|MD|Garrett County|Deer Park town|1076|0|4|Waltmon|Jacqueline|2991|Utah|F|Daughter|||19|105277 +3010|MD|Garrett County|Deer Park town|1076|0|5|Waltmon|Lemuel|2999|Cuba|M|Son|||11|105278 +3010|MD|Garrett County|Deer Park town|1076|0|6|Waltmon|Classie|3003|MD|F|Daughter|||7|105279 +3010|MD|Garrett County|Deer Park town|1076|0|7|Waltmon|Mohammad|3005|MD|M|Son|||5|105280 + +3010|MI|Osceola County|Orient township|1077|0|1|Woods|Reginald Federico|2941|Ohio|M|Head|||69|105281 +3010|MI|Osceola County|Orient township|1077|0|2|Woods|Jeffie Kaila|2949|Poland|F|Spouse|||61|105282 +3010|MI|Osceola County|Orient township|1077|0|3|Woods|Angel|2971|New Mexico|M|Son|||39|105283 + +3010|AZ|Apache County|Red Rock CDP|1078|0|1|Abel|Hayley|2971|Mississippi|F|Spouse|||39|105284 +3010|AZ|Apache County|Red Rock CDP|1078|0|2|Abel|Micheline|3001|WA|F|Daughter|||9|105285 +3010|AZ|Apache County|Red Rock CDP|1078|0|3|Abel|Alonzo Lemuel|3005|WA|M|Son|||5|105286 +3010|AZ|Apache County|Red Rock CDP|1078|0|4|Abel|Racheal|3009|AZ|F|Daughter|||1|105287 + +3010|CA|Fresno County|Fort Washington CDP|1079|0|1|Gitchell|Ronnie William|2951|North Carolina|M|Head|||59|105288 +3010|CA|Fresno County|Fort Washington CDP|1079|0|2|Gitchell|Adah|2961|Minnesota|F|Spouse|||49|105289 +3010|CA|Fresno County|Fort Washington CDP|1079|0|3|Gitchell|Bailey|2991|Suriname|F|Daughter|||19|105290 + +3010|FL|Hillsborough County|Keystone CDP|1080|0|1|Mcmahan|Jc|2937|New Mexico|M|Head|||73|105291 +3010|FL|Hillsborough County|Keystone CDP|1080|0|2|Mcmahan|Digna|2950|New Hampshire|F|Spouse|||60|105292 +3010|FL|Hillsborough County|Keystone CDP|1080|0|3|Mcmahan|Bryant|2986|Wyoming|M|Son|||24|105293 +3010|FL|Hillsborough County|Keystone CDP|1080|0|4|Mcmahan|Luis|2994|Arizona|M|Son|||16|105294 +3010|FL|Hillsborough County|Keystone CDP|1080|0|5|Mcmahan|Mauro|3007|FL|M|Son|||3|105295 + +3010|VA|Montgomery County|Christiansburg town|1081|0|1|Hodge|Jarred Manual|2971|Kentucky|M|Head|||39|105296 +3010|VA|Montgomery County|Christiansburg town|1081|0|2|Hodge|Season Sybil|2976|Hawaii|F|Spouse|||34|105297 +3010|VA|Montgomery County|Christiansburg town|1081|0|3|Hodge|Benny|2996|Hawaii|M|Son|||14|105298 +3010|VA|Montgomery County|Christiansburg town|1081|0|4|Hodge|Sunshine Karin|3003|VA|F|Daughter|||7|105299 +3010|VA|Montgomery County|Christiansburg town|1081|0|5|Hodge|Rebekah|3005|VA|F|Daughter|||5|105300 +3010|VA|Montgomery County|Christiansburg town|1081|0|6|Hodge|Sherri Helene|3007|VA|F|Daughter|||3|105301 +3010|VA|Montgomery County|Christiansburg town|1081|0|7|Hodge|Charles|3009|VA|M|Son|||1|105302 + +3010|NC|Edgecombe County, Nash County|Rocky Mount city|1082|0|1|Mcguire|Davis Cedrick|2972|Sudan|M|Head|||38|105303 +3010|NC|Edgecombe County, Nash County|Rocky Mount city|1082|0|2|Mcguire|Sonia|2976|Vermont|F|Spouse|||34|105304 +3010|NC|Edgecombe County, Nash County|Rocky Mount city|1082|0|3|Mcguire|Dane|3001|NC|M|Son|||9|105305 +3010|NC|Edgecombe County, Nash County|Rocky Mount city|1082|0|4|Mcguire|Dave|3003|NC|M|Son|||7|105306 +3010|NC|Edgecombe County, Nash County|Rocky Mount city|1082|0|5|Mcguire|Jefferey|3007|NC|M|Son|||3|105307 +3010|NC|Edgecombe County, Nash County|Rocky Mount city|1082|0|6|Mcguire|Edward|3009|NC|F|Daughter|||1|105308 + +3010|CO|Moffat County|Dinosaur town|1083|0|1|Hourani|Pasquale Esteban|2939|Denmark|M|Head|||71|105309 +3010|CO|Moffat County|Dinosaur town|1083|0|2|Hourani|Summer|2954|Arkansas|F|Spouse|||56|105310 +3010|CO|Moffat County|Dinosaur town|1083|0|3|Hourani|Rolande|2976|Alabama|F|Daughter|||34|105311 +3010|CO|Moffat County|Dinosaur town|1083|0|4|Hourani|Grayce|2980|Holy See (vatican City State)|F|Daughter|||30|105312 +3010|CO|Moffat County|Dinosaur town|1083|0|5|Hourani|Delmar Carol|2990|Montana|M|Son|||20|105313 +3010|CO|Moffat County|Dinosaur town|1083|0|6|Hourani|Britt|2998|Alabama|M|Son|||12|105314 +3010|CO|Moffat County|Dinosaur town|1083|0|7|Hourani|Antone|3003|CO|M|Son|||7|105315 +3010|CO|Moffat County|Dinosaur town|1083|0|8|Hourani|Nigel|3007|CO|M|Son|||3|105316 + +3010|CA|Tulare County|Patterson Tract CDP|1084|0|1|Sar|Matthew Lyman|2948|Nevada|M|Head|||62|105317 +3010|CA|Tulare County|Patterson Tract CDP|1084|0|2|Sar|Paz|2949|Senegal|F|Spouse|||61|105318 +3010|CA|Tulare County|Patterson Tract CDP|1084|0|3|Sar|Dana|2997|Maine|M|Son|||13|105319 +3010|CA|Tulare County|Patterson Tract CDP|1084|0|4|Sar|Rosette|2999|Dominica|F|Daughter|||11|105320 +3010|CA|Tulare County|Patterson Tract CDP|1084|0|5|Sar|Cletus|3003|CA|M|Son|||7|105321 +3010|CA|Tulare County|Patterson Tract CDP|1084|0|6|Sar|Letty|3005|CA|F|Daughter|||5|105322 + +3010|MS|Harrison County|Long Beach city|1085|0|1|Massey|Christopher Wes|2965|Djibouti|M|Head|||45|105323 +3010|MS|Harrison County|Long Beach city|1085|0|2|Massey|Beaulah|2979|Delaware|F|Spouse|||31|105324 +3010|MS|Harrison County|Long Beach city|1085|0|3|Massey|Joaquin|3001|MS|M|Son|||9|105325 +3010|MS|Harrison County|Long Beach city|1085|0|4|Massey|Ollie|3003|MS|F|Daughter|||7|105326 +3010|MS|Harrison County|Long Beach city|1085|0|5|Massey|Porfirio|3005|MS|M|Son|||5|105327 +3010|MS|Harrison County|Long Beach city|1085|0|6|Massey|Jaleesa|3009|MS|F|Daughter|||1|105328 + +3010|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1086|0|1|Cummings|Francis|2961|Indiana|M|Head|||49|105329 +3010|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1086|0|2|Cummings|Shawnee|2961|Alabama|F|Spouse|||49|105330 +3010|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1086|0|3|Cummings|Jimmy Tanner|2997|Kansas|M|Son|||13|105331 +3010|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1086|0|4|Cummings|Renay Jacqueline|3005|TX|F|Daughter|||5|105332 +3010|TX|Aransas County, Nueces County, San Patricio County|Aransas Pass city|1086|0|5|Cummings|Lucia|3007|TX|F|Daughter|||3|105333 + +3010|PA|Mercer County|Perry township|1087|0|1|Brown|Harry|2939|New Hampshire|M|Head|||71|105334 +3010|PA|Mercer County|Perry township|1087|0|2|Brown|Marilyn|2945|Lebanon|F|Spouse|||65|105335 +3010|PA|Mercer County|Perry township|1087|0|3|Brown|Alva|2995|Kentucky|F|Daughter|||15|105336 +3010|PA|Mercer County|Perry township|1087|0|4|Brown|Nora|2999|Idaho|F|Daughter|||11|105337 + +3010|MT|Meagher County|Martinsdale CDP|1088|0|1|Bortignon|Leonardo Ben|2946|Louisiana|M|Head|||64|105338 +3010|MT|Meagher County|Martinsdale CDP|1088|0|2|Bortignon|Ola|2967|Michigan|F|Spouse|||43|105339 +3010|MT|Meagher County|Martinsdale CDP|1088|0|3|Bortignon|Reginia|2995|Tennessee|F|Daughter|||15|105340 +3010|MT|Meagher County|Martinsdale CDP|1088|0|4|Bortignon|Sheilah|2999|New Hampshire|F|Daughter|||11|105341 +3010|MT|Meagher County|Martinsdale CDP|1088|0|5|Bortignon|Melba|3001|MT|F|Daughter|||9|105342 +3010|MT|Meagher County|Martinsdale CDP|1088|0|6|Bortignon|Weston|3003|MT|M|Son|||7|105343 + +3010|SC|Barnwell County|Kline town|1089|0|1|Javis|Jason Deon|2937|Wyoming|M|Head|||73|105344 +3010|SC|Barnwell County|Kline town|1089|0|2|Javis|Rafael|2987|Hong Kong|M|Son|||23|105345 +3010|SC|Barnwell County|Kline town|1089|0|3|Javis|Vonnie|2989|New Jersey|F|Daughter|||21|105346 +3010|SC|Barnwell County|Kline town|1089|0|4|Javis|Mohammed|2995|Arizona|M|Son|||15|105347 +3010|SC|Barnwell County|Kline town|1089|0|5|Javis|Shannon|2999|Ohio|M|Son|||11|105348 + +3010|NH|Rockingham County|New Castle town|1090|0|1|Mcindoe|Hilton Horacio|2948|Virginia|M|Head|||62|105349 +3010|NH|Rockingham County|New Castle town|1090|0|2|Mcindoe|Peg|2946|Rhode Island|F|Spouse|||64|105350 +3010|NH|Rockingham County|New Castle town|1090|0|3|Mcindoe|Sabra|2990|North Dakota|F|Daughter|||20|105351 +3010|NH|Rockingham County|New Castle town|1090|0|4|Mcindoe|Miquel|2996|Austria|M|Son|||14|105352 +3010|NH|Rockingham County|New Castle town|1090|0|5|Mcindoe|Penny|3000|Delaware|F|Daughter|||10|105353 +3010|NH|Rockingham County|New Castle town|1090|0|6|Mcindoe|Jayme|3001|NH|F|Daughter|||9|105354 +3010|NH|Rockingham County|New Castle town|1090|0|7|Mcindoe|Kirby|3009|NH|M|Son|||1|105355 + +3010|MI|Houghton County|Houghton city|1091|0|1|Hutchinson|Neal Sang|2946|Virginia|M|Head|||64|105356 +3010|MI|Houghton County|Houghton city|1091|0|2|Hutchinson|Myrta|2960|Nevada|F|Spouse|||50|105357 +3010|MI|Houghton County|Houghton city|1091|0|3|Hutchinson|Nickolas|3001|MI|M|Son|||9|105358 +3010|MI|Houghton County|Houghton city|1091|0|4|Hutchinson|Abbey|3007|MI|F|Daughter|||3|105359 + +3010|IN|Jefferson County|Kent CDP|1092|0|1|Wagner|Orval|2948|Tennessee|M|Head|||62|105360 + +3010|IL|Cook County|Country Club Hills city|1093|0|1|Sandiford|Bernard Carol|2954|Romania|M|Head|||56|105361 +3010|IL|Cook County|Country Club Hills city|1093|0|2|Sandiford|Alice|2975|Wisconsin|F|Spouse|||35|105362 +3010|IL|Cook County|Country Club Hills city|1093|0|3|Sandiford|Benedict|2995|Mississippi|M|Son|||15|105363 +3010|IL|Cook County|Country Club Hills city|1093|0|4|Sandiford|Wilfredo Clair|2999|Illinois|M|Son|||11|105364 +3010|IL|Cook County|Country Club Hills city|1093|0|5|Sandiford|Craig|3001|IL|M|Son|||9|105365 +3010|IL|Cook County|Country Club Hills city|1093|0|6|Sandiford|Wendell|3009|IL|M|Son|||1|105366 + +3010|NE|Harlan County|Stamford village|1094|0|1|Klukan|Merle Brain|2950|New Mexico|M|Head|||60|105367 +3010|NE|Harlan County|Stamford village|1094|0|2|Klukan|Margarete Patty|2949|Nevada|F|Spouse|||61|105368 +3010|NE|Harlan County|Stamford village|1094|0|3|Klukan|Aileen|2995|Maine|F|Daughter|||15|105369 +3010|NE|Harlan County|Stamford village|1094|0|4|Klukan|Tereasa|3003|NE|F|Daughter|||7|105370 +3010|NE|Harlan County|Stamford village|1094|0|5|Klukan|Edgardo|3005|NE|M|Son|||5|105371 +3010|NE|Harlan County|Stamford village|1094|0|6|Klukan|Ahmad|3009|NE|M|Son|||1|105372 + +3010|UT|Washington County|Veyo CDP|1095|0|1|Simpson|Randy Kenny|2951|Bahamas|M|Head|||59|105373 +3010|UT|Washington County|Veyo CDP|1095|0|2|Simpson|Patrice|2956|Dominican Republic|F|Spouse|||54|105374 +3010|UT|Washington County|Veyo CDP|1095|0|3|Simpson|Bernardo|2982|New Mexico|M|Son|||28|105375 +3010|UT|Washington County|Veyo CDP|1095|0|4|Simpson|Regine|3001|UT|F|Daughter|||9|105376 +3010|UT|Washington County|Veyo CDP|1095|0|5|Simpson|Malcolm|3007|UT|M|Son|||3|105377 +3010|UT|Washington County|Veyo CDP|1095|0|6|Simpson|Art|3009|UT|M|Son|||1|105378 + +3010|PA|Wayne County|Damascus township|1096|0|1|Regnier|Jewel Asa|2942|Louisiana|M|Head|||68|105379 +3010|PA|Wayne County|Damascus township|1096|0|2|Regnier|Christal|2964|Bolivia|F|Spouse|||46|105380 +3010|PA|Wayne County|Damascus township|1096|0|3|Regnier|Keven|2990|West Virginia|M|Son|||20|105381 +3010|PA|Wayne County|Damascus township|1096|0|4|Regnier|Ida|2996|Utah|F|Daughter|||14|105382 +3010|PA|Wayne County|Damascus township|1096|0|5|Regnier|Mamie|3001|MO|F|Daughter|||9|105383 +3010|PA|Wayne County|Damascus township|1096|0|6|Regnier|Hannah|3003|MO|F|Daughter|||7|105384 + +3010|LA|Assumption Parish|Labadieville CDP|1097|0|1|Estock|Jane|2946|Kansas|F|Head|||64|105385 +3010|LA|Assumption Parish|Labadieville CDP|1097|0|2|Estock|Brenton|2990|Nebraska|M|Son|||20|105386 +3010|LA|Assumption Parish|Labadieville CDP|1097|0|3|Estock|Gil|2994|Utah|M|Son|||16|105387 + +3010|MS|Jackson County|Helena CDP|1098|0|1|Medlar|Ethyl|2967|Utah|F|Head|||43|105388 +3010|MS|Jackson County|Helena CDP|1098|0|2|Medlar|Morgan|2993|Virginia|M|Son|||17|105389 +3010|MS|Jackson County|Helena CDP|1098|0|3|Medlar|Theo|2995|North Dakota|M|Son|||15|105390 +3010|MS|Jackson County|Helena CDP|1098|0|4|Medlar|Lino|2999|Massachusetts|M|Son|||11|105391 + +3010|IA|Shelby County|Westphalia city|1099|0|1|Torres|Renaldo Bruce|2973|Texas|M|Head|||37|105392 +3010|IA|Shelby County|Westphalia city|1099|0|2|Torres|Lashaun|2999|Bangladesh|F|Daughter|||11|105393 + +3010|TX|Cameron County|Tierra Bonita CDP|1100|0|1|Hallauer|Ron King|2973|South Carolina|M|Head|||37|105394 +3010|TX|Cameron County|Tierra Bonita CDP|1100|0|2|Hallauer|Gaston|2996|Nevada|M|Son|||14|105395 +3010|TX|Cameron County|Tierra Bonita CDP|1100|0|3|Hallauer|Shamika|3000|New Jersey|F|Daughter|||10|105396 + +3010|PA|Berks County|Shoemakersville borough|1101|0|1|Case|Tarsha|2955|Israel|F|Head|||55|105397 +3010|PA|Berks County|Shoemakersville borough|1101|0|2|Case|Denyse|2977|Kentucky|F|Daughter|||33|105398 +3010|PA|Berks County|Shoemakersville borough|1101|0|3|Case|Valentine|2987|Georgia|M|Son|||23|105399 +3010|PA|Berks County|Shoemakersville borough|1101|0|4|Case|Ken|2991|Virginia|M|Son|||19|105400 +3010|PA|Berks County|Shoemakersville borough|1101|0|5|Case|Susan|2995|Kansas|F|Daughter|||15|105401 + +3010|MA|Plymouth County|Abington town|1102|0|1|Boyette|Elton|2967|Honduras|M|Head|||43|105402 +3010|MA|Plymouth County|Abington town|1102|0|2|Boyette|Ana|2980|New Jersey|F|Spouse|||30|105403 +3010|MA|Plymouth County|Abington town|1102|0|3|Boyette|Aubrey|3001|MA|M|Son|||9|105404 +3010|MA|Plymouth County|Abington town|1102|0|4|Boyette|Aline|3003|MA|F|Daughter|||7|105405 +3010|MA|Plymouth County|Abington town|1102|0|5|Boyette|Nichelle|3005|MA|F|Daughter|||5|105406 +3010|MA|Plymouth County|Abington town|1102|0|6|Boyette|Tuan|3009|MA|M|Son|||1|105407 + +3010|TX|Brown County|Blanket town|1103|0|1|Hardy|Robin Jonathan|2962|Montana|M|Head|||48|105408 +3010|TX|Brown County|Blanket town|1103|0|2|Hardy|Blossom|2966|Wisconsin|F|Spouse|||44|105409 +3010|TX|Brown County|Blanket town|1103|0|3|Hardy|Angella|2992|South Dakota|F|Daughter|||18|105410 +3010|TX|Brown County|Blanket town|1103|0|4|Hardy|Collene|2994|Arkansas|F|Daughter|||16|105411 +3010|TX|Brown County|Blanket town|1103|0|5|Hardy|Junior|2998|Hawaii|M|Son|||12|105412 +3010|TX|Brown County|Blanket town|1103|0|6|Hardy|Lawerence|3000|Maryland|M|Son|||10|105413 +3010|TX|Brown County|Blanket town|1103|0|7|Hardy|Chong|3003|TX|M|Son|||7|105414 +3010|TX|Brown County|Blanket town|1103|0|8|Hardy|Lowell Abdul|3007|TX|M|Son|||3|105415 + +3010|NY|Jefferson County|Watertown city|1104|0|1|Doe|Moshe Sherwood|2977|South Dakota|M|Head|||33|105416 +3010|NY|Jefferson County|Watertown city|1104|0|2|Doe|Kay|2973|Alabama|F|Spouse|||37|105417 +3010|NY|Jefferson County|Watertown city|1104|0|3|Doe|Abe|2995|Connecticut|M|Son|||15|105418 +3010|NY|Jefferson County|Watertown city|1104|0|4|Doe|Benny|2999|Utah|M|Son|||11|105419 +3010|NY|Jefferson County|Watertown city|1104|0|5|Doe|Deandre|3009|NY|M|Son|||1|105420 + +3010|WA|Yakima County|Summitview CDP|1105|0|1|Soto|Carter Lanny|2946|Indiana|M|Head|||64|105421 +3010|WA|Yakima County|Summitview CDP|1105|0|2|Soto|Dreama|2957|Nevada|F|Spouse|||53|105422 +3010|WA|Yakima County|Summitview CDP|1105|0|3|Soto|Clayton|2985|Nebraska|M|Son|||25|105423 +3010|WA|Yakima County|Summitview CDP|1105|0|4|Soto|Jerrod|2999|Oregon|M|Son|||11|105424 +3010|WA|Yakima County|Summitview CDP|1105|0|5|Soto|Chuck Gregory|3005|WA|M|Son|||5|105425 +3010|WA|Yakima County|Summitview CDP|1105|0|6|Soto|Cristopher|3009|WA|M|Son|||1|105426 + +3010|MN|Marshall County|Stephen city|1106|0|1|Lemaster|Trey Jose|2981|Nevada|M|Head|||29|105427 +3010|MN|Marshall County|Stephen city|1106|0|2|Lemaster|Kathy|2999|Kiribati|F|Daughter|||11|105428 + +3010|TX|Jasper County|Kirbyville city|1107|0|1|Tingstrom|Tory Michale|2950|Madagascar|M|Head|||60|105429 +3010|TX|Jasper County|Kirbyville city|1107|0|2|Tingstrom|Eartha|2968|Iowa|F|Spouse|||42|105430 +3010|TX|Jasper County|Kirbyville city|1107|0|3|Tingstrom|Collene|2996|California|F|Daughter|||14|105431 +3010|TX|Jasper County|Kirbyville city|1107|0|4|Tingstrom|Parker|2998|Maryland|M|Son|||12|105432 +3010|TX|Jasper County|Kirbyville city|1107|0|5|Tingstrom|Evan Dario|3003|TX|M|Son|||7|105433 +3010|TX|Jasper County|Kirbyville city|1107|0|6|Tingstrom|Kent|3007|TX|M|Son|||3|105434 +3010|TX|Jasper County|Kirbyville city|1107|0|7|Tingstrom|Barrett|3009|TX|M|Son|||1|105435 + +3010|LA|Plaquemines Parish|Belle Chasse CDP|1108|0|1|Evans|Tyrone Haywood|2966|Florida|M|Head|||44|105436 +3010|LA|Plaquemines Parish|Belle Chasse CDP|1108|0|2|Evans|Lizzette|2985|Yemen|F|Daughter|||25|105437 +3010|LA|Plaquemines Parish|Belle Chasse CDP|1108|0|3|Evans|Synthia|2997|Arkansas|F|Daughter|||13|105438 + +3010|PA|Berks County|Birdsboro borough|1109|0|1|Abbadessa|Royce Dean|2953|Delaware|M|Head|||57|105439 +3010|PA|Berks County|Birdsboro borough|1109|0|2|Abbadessa|Terese|2972|Alaska|F|Spouse|||38|105440 +3010|PA|Berks County|Birdsboro borough|1109|0|3|Abbadessa|Dan|3000|Congo|M|Son|||10|105441 +3010|PA|Berks County|Birdsboro borough|1109|0|4|Abbadessa|Tempie Tamekia|3001|PA|F|Daughter|||9|105442 +3010|PA|Berks County|Birdsboro borough|1109|0|5|Abbadessa|Young Bruno|3003|PA|M|Son|||7|105443 +3010|PA|Berks County|Birdsboro borough|1109|0|6|Abbadessa|Junita|3007|PA|F|Daughter|||3|105444 + +3010|VT|Orange County|Bradford CDP|1110|0|1|Mcpeters|Clyde Gerardo|2957|Colorado|M|Head|||53|105445 +3010|VT|Orange County|Bradford CDP|1110|0|2|Mcpeters|Dalene|2957|Alabama|F|Spouse|||53|105446 +3010|VT|Orange County|Bradford CDP|1110|0|3|Mcpeters|Leisha|2983|Alaska|F|Daughter|||27|105447 +3010|VT|Orange County|Bradford CDP|1110|0|4|Mcpeters|Rick|2989|Texas|M|Son|||21|105448 +3010|VT|Orange County|Bradford CDP|1110|0|5|Mcpeters|Hershel|2997|Vermont|M|Son|||13|105449 +3010|VT|Orange County|Bradford CDP|1110|0|6|Mcpeters|Carol|2999|New York|M|Son|||11|105450 +3010|VT|Orange County|Bradford CDP|1110|0|7|Mcpeters|Mauro|3001|VA|M|Son|||9|105451 +3010|VT|Orange County|Bradford CDP|1110|0|8|Mcpeters|Melanie|3003|VA|F|Daughter|||7|105452 + +3010|VT|Franklin County|Bakersfield town|1111|0|1|Goodlet|Tyree Nicholas|2946|North Dakota|M|Head|||64|105453 +3010|VT|Franklin County|Bakersfield town|1111|0|2|Goodlet|Kristy|2949|Colorado|F|Spouse|||61|105454 +3010|VT|Franklin County|Bakersfield town|1111|0|3|Goodlet|Riley|2979|Missouri|M|Son|||31|105455 +3010|VT|Franklin County|Bakersfield town|1111|0|4|Goodlet|Lolita|2985|Maine|F|Daughter|||25|105456 +3010|VT|Franklin County|Bakersfield town|1111|0|5|Goodlet|Odis|3001|VT|M|Son|||9|105457 +3010|VT|Franklin County|Bakersfield town|1111|0|6|Goodlet|Melba Freeda|3003|VT|F|Daughter|||7|105458 +3010|VT|Franklin County|Bakersfield town|1111|0|7|Goodlet|Robt|3007|VT|M|Son|||3|105459 +3010|VT|Franklin County|Bakersfield town|1111|0|8|Goodlet|Rudy|3009|VT|M|Son|||1|105460 + +3010|PA|Somerset County|Brothersvalley township|1112|0|1|Rickard|Bernardo|2942|Belgium|M|Head|||68|105461 +3010|PA|Somerset County|Brothersvalley township|1112|0|2|Rickard|Jeanna|2953|North Dakota|F|Spouse|||57|105462 +3010|PA|Somerset County|Brothersvalley township|1112|0|3|Rickard|Leigh|2995|Georgia|F|Daughter|||15|105463 +3010|PA|Somerset County|Brothersvalley township|1112|0|4|Rickard|Hoyt|2997|North Dakota|M|Son|||13|105464 +3010|PA|Somerset County|Brothersvalley township|1112|0|5|Rickard|Christina|3001|PA|F|Daughter|||9|105465 +3010|PA|Somerset County|Brothersvalley township|1112|0|6|Rickard|Carl|3003|PA|M|Son|||7|105466 + +3010|MD|Calvert County|Dunkirk CDP|1113|0|1|Mckellip|Frances Rueben|2940|Oklahoma|M|Head|||70|105467 +3010|MD|Calvert County|Dunkirk CDP|1113|0|2|Mckellip|Jesusita|2960|Alaska|F|Spouse|||50|105468 +3010|MD|Calvert County|Dunkirk CDP|1113|0|3|Mckellip|Tory|2996|Tennessee|F|Daughter|||14|105469 +3010|MD|Calvert County|Dunkirk CDP|1113|0|4|Mckellip|Cherlyn|3003|MD|F|Daughter|||7|105470 +3010|MD|Calvert County|Dunkirk CDP|1113|0|5|Mckellip|Daniel Buena|3007|MD|F|Daughter|||3|105471 + +3010|CO|Eagle County|El Jebel CDP|1114|0|1|Ban|Oliver Mitchel|2947|Montana|M|Head|||63|105472 +3010|CO|Eagle County|El Jebel CDP|1114|0|2|Ban|Bettina|2958|Tennessee|F|Spouse|||52|105473 +3010|CO|Eagle County|El Jebel CDP|1114|0|3|Ban|Horace|2982|South Carolina|M|Son|||28|105474 +3010|CO|Eagle County|El Jebel CDP|1114|0|4|Ban|Enrique Trenton|2988|New Hampshire|M|Son|||22|105475 +3010|CO|Eagle County|El Jebel CDP|1114|0|5|Ban|Kaye|2990|Nevada|F|Daughter|||20|105476 +3010|CO|Eagle County|El Jebel CDP|1114|0|6|Ban|Luther|2996|Georgia|M|Son|||14|105477 +3010|CO|Eagle County|El Jebel CDP|1114|0|7|Ban|Tempie|3005|CO|F|Daughter|||5|105478 +3010|CO|Eagle County|El Jebel CDP|1114|0|8|Ban|Janis|3009|CO|F|Daughter|||1|105479 + +3010|MI|Oakland County|Holly village|1115|0|1|Beuchler|Temika|2947|Delaware|F|Spouse|||63|105480 +3010|MI|Oakland County|Holly village|1115|0|2|Beuchler|Kermit|2995|Florida|M|Son|||15|105481 +3010|MI|Oakland County|Holly village|1115|0|3|Beuchler|Markus|2997|Maine|M|Son|||13|105482 +3010|MI|Oakland County|Holly village|1115|0|4|Beuchler|Claudio|3001|MI|M|Son|||9|105483 +3010|MI|Oakland County|Holly village|1115|0|5|Beuchler|Arlie|3005|MI|M|Son|||5|105484 + +3010|SD|Pennington County|Rapid Valley CDP|1116|0|1|Harman|Brett Billie|2962|Alaska|M|Head|||48|105485 +3010|SD|Pennington County|Rapid Valley CDP|1116|0|2|Harman|Tomiko|2977|Austria|F|Spouse|||33|105486 +3010|SD|Pennington County|Rapid Valley CDP|1116|0|3|Harman|Roxie Lorelei|2997|Kansas|F|Daughter|||13|105487 +3010|SD|Pennington County|Rapid Valley CDP|1116|0|4|Harman|Glenn|3009|SD|F|Daughter|||1|105488 + +3010|NE|Buffalo County|Odessa CDP|1117|0|1|Giebler|Drew Pete|2960|Kansas|M|Head|||50|105489 + +3010|WI|Jefferson County|Johnson Creek village|1118|0|1|Boehnlein|James|2972|California|M|Head|||38|105490 +3010|WI|Jefferson County|Johnson Creek village|1118|0|2|Boehnlein|Clementine|2983|North Dakota|F|Spouse|||27|105491 +3010|WI|Jefferson County|Johnson Creek village|1118|0|3|Boehnlein|Grant|3001|WI|M|Son|||9|105492 +3010|WI|Jefferson County|Johnson Creek village|1118|0|4|Boehnlein|Jinny|3003|WI|F|Daughter|||7|105493 +3010|WI|Jefferson County|Johnson Creek village|1118|0|5|Boehnlein|Bethanie Augusta|3005|WI|F|Daughter|||5|105494 +3010|WI|Jefferson County|Johnson Creek village|1118|0|6|Boehnlein|Nathalie|3007|WI|F|Daughter|||3|105495 + +3010|SD|Hanson County|Alexandria city|1119|0|1|Landucci|Mac Cesar|2958|Kansas|M|Head|||52|105496 +3010|SD|Hanson County|Alexandria city|1119|0|2|Landucci|Rachele|2956|New Mexico|F|Spouse|||54|105497 +3010|SD|Hanson County|Alexandria city|1119|0|3|Landucci|Hilma|3003|SD|F|Daughter|||7|105498 +3010|SD|Hanson County|Alexandria city|1119|0|4|Landucci|Jeremiah|3005|SD|M|Son|||5|105499 +3010|SD|Hanson County|Alexandria city|1119|0|5|Landucci|Fletcher Ramiro|3007|SD|M|Son|||3|105500 +3010|SD|Hanson County|Alexandria city|1119|0|6|Landucci|Sydney|3009|SD|F|Daughter|||1|105501 + +3010|MI|Branch County|California township|1120|0|1|Squyres|Ward Nicky|2960|Pennsylvania|M|Head|||50|105502 +3010|MI|Branch County|California township|1120|0|2|Squyres|Bev|2969|Oregon|F|Spouse|||41|105503 +3010|MI|Branch County|California township|1120|0|3|Squyres|Merrill Sanford|2989|New Mexico|M|Son|||21|105504 +3010|MI|Branch County|California township|1120|0|4|Squyres|Antone|2993|Delaware|M|Son|||17|105505 +3010|MI|Branch County|California township|1120|0|5|Squyres|Alysa|2995|Alabama|F|Daughter|||15|105506 +3010|MI|Branch County|California township|1120|0|6|Squyres|Lester|2997|Connecticut|M|Son|||13|105507 +3010|MI|Branch County|California township|1120|0|7|Squyres|Meryl|3003|KS|F|Daughter|||7|105508 +3010|MI|Branch County|California township|1120|0|8|Squyres|Wilfredo Elwood|3009|MI|M|Son|||1|105509 + +3010|PA|Lackawanna County|Jefferson township|1121|0|1|Pacubas|Chang Eli|2972|Kentucky|M|Head|||38|105510 +3010|PA|Lackawanna County|Jefferson township|1121|0|2|Pacubas|Sook|2974|Michigan|F|Spouse|||36|105511 +3010|PA|Lackawanna County|Jefferson township|1121|0|3|Pacubas|Tyrone|2996|Malaysia|M|Son|||14|105512 +3010|PA|Lackawanna County|Jefferson township|1121|0|4|Pacubas|Sidney Derrick|3001|PA|M|Son|||9|105513 +3010|PA|Lackawanna County|Jefferson township|1121|0|5|Pacubas|Monserrate|3005|PA|F|Daughter|||5|105514 +3010|PA|Lackawanna County|Jefferson township|1121|0|6|Pacubas|Danette|3009|PA|F|Daughter|||1|105515 + +3010|MN|Jackson County|Delafield township|1122|0|1|Sinegal|Warner Horacio|2937|Florida|M|Head|||73|105516 +3010|MN|Jackson County|Delafield township|1122|0|2|Sinegal|Eloise|2961|Montana|F|Spouse|||49|105517 +3010|MN|Jackson County|Delafield township|1122|0|3|Sinegal|Filomena|2987|New Hampshire|F|Daughter|||23|105518 +3010|MN|Jackson County|Delafield township|1122|0|4|Sinegal|Boyd|2995|Mississippi|M|Son|||15|105519 +3010|MN|Jackson County|Delafield township|1122|0|5|Sinegal|Cheryll Otelia|2997|Sweden|F|Daughter|||13|105520 +3010|MN|Jackson County|Delafield township|1122|0|6|Sinegal|Erasmo|2999|Mississippi|M|Son|||11|105521 +3010|MN|Jackson County|Delafield township|1122|0|7|Sinegal|Hobert Dwayne|3005|MN|M|Son|||5|105522 + +3010|MN|Scott County|Cedar Lake township|1123|0|1|Malenke|Marlin Armand|2960|Guatemala|M|Head|||50|105523 +3010|MN|Scott County|Cedar Lake township|1123|0|2|Malenke|Cordell|2996|Tanzania, United Republic Of|M|Son|||14|105524 +3010|MN|Scott County|Cedar Lake township|1123|0|3|Malenke|Issac|2998|Kansas|M|Son|||12|105525 +3010|MN|Scott County|Cedar Lake township|1123|0|4|Malenke|Emiko|3000|Vermont|F|Daughter|||10|105526 +3010|MN|Scott County|Cedar Lake township|1123|0|5|Malenke|Eugenie|3003|MN|F|Daughter|||7|105527 +3010|MN|Scott County|Cedar Lake township|1123|0|6|Malenke|Elayne|3005|MN|F|Daughter|||5|105528 +3010|MN|Scott County|Cedar Lake township|1123|0|7|Malenke|Shaquita|3007|MN|F|Daughter|||3|105529 + +3010|AR|Jackson County|Amagon town|1124|0|1|Ruebush|Emilie|2976|Kentucky|F|Spouse|||34|105530 +3010|AR|Jackson County|Amagon town|1124|0|2|Ruebush|Kelvin|2996|Georgia|M|Son|||14|105531 +3010|AR|Jackson County|Amagon town|1124|0|3|Ruebush|Trudi|2998|Maine|F|Daughter|||12|105532 +3010|AR|Jackson County|Amagon town|1124|0|4|Ruebush|Wally|3009|AR|M|Son|||1|105533 + +3010|NM|San Juan County|Upper Fruitland CDP|1125|0|1|Dean|Donette|2984|Oregon|F|Head|||26|105534 + +3010|MN|Itasca County|Bovey city|1126|0|1|Jackson|Jimmy Geoffrey|2959|Washington|M|Head|||51|105535 + +3010|NC|Lenoir County|Pink Hill town|1127|0|1|Valle|Luciano Billie|2960|New Hampshire|M|Head|||50|105536 +3010|NC|Lenoir County|Pink Hill town|1127|0|2|Valle|Belinda|2960|Afghanistan|F|Spouse|||50|105537 +3010|NC|Lenoir County|Pink Hill town|1127|0|3|Valle|Elmira|2988|North Dakota|F|Daughter|||22|105538 +3010|NC|Lenoir County|Pink Hill town|1127|0|4|Valle|Derrick|2996|Alabama|M|Son|||14|105539 +3010|NC|Lenoir County|Pink Hill town|1127|0|5|Valle|Candice|3000|Nevada|F|Daughter|||10|105540 +3010|NC|Lenoir County|Pink Hill town|1127|0|6|Valle|Leigh|3001|NC|M|Son|||9|105541 +3010|NC|Lenoir County|Pink Hill town|1127|0|7|Valle|Keith|3005|NC|M|Son|||5|105542 +3010|NC|Lenoir County|Pink Hill town|1127|0|8|Valle|Kelsey|3007|NC|F|Daughter|||3|105543 +3010|NC|Lenoir County|Pink Hill town|1127|0|9|Valle|Vaughn Ernest|3009|NC|M|Son|||1|105544 + +3010|WI|Vernon County|Genoa town|1128|0|1|Wallerich|Greg Zachery|2954|Connecticut|M|Head|||56|105545 +3010|WI|Vernon County|Genoa town|1128|0|2|Wallerich|Latoyia|2972|Aruba|F|Spouse|||38|105546 +3010|WI|Vernon County|Genoa town|1128|0|3|Wallerich|Michael|2998|Florida|F|Daughter|||12|105547 +3010|WI|Vernon County|Genoa town|1128|0|4|Wallerich|Sherman|3005|WI|M|Son|||5|105548 + +3010|WI|Wood County|Wisconsin Rapids city|1129|0|1|Thomas|Vincenzo Greg|2964|New Jersey|M|Head|||46|105549 +3010|WI|Wood County|Wisconsin Rapids city|1129|0|2|Thomas|Tomasa|3000|Ohio|F|Daughter|||10|105550 + +3010|MN|Chisago County|Chisago City city|1130|0|1|Corrales|Leslie Kenton|2971|Alaska|M|Head|||39|105551 +3010|MN|Chisago County|Chisago City city|1130|0|2|Corrales|Marx|2974|New Hampshire|F|Spouse|||36|105552 +3010|MN|Chisago County|Chisago City city|1130|0|3|Corrales|Joella|2998|North Dakota|F|Daughter|||12|105553 +3010|MN|Chisago County|Chisago City city|1130|0|4|Corrales|Jarrett|3000|Mississippi|M|Son|||10|105554 +3010|MN|Chisago County|Chisago City city|1130|0|5|Corrales|Jaquelyn Mildred|3003|NJ|F|Daughter|||7|105555 +3010|MN|Chisago County|Chisago City city|1130|0|6|Corrales|Emil|3007|MN|M|Son|||3|105556 + +3010|PA|York County|Red Lion borough|1131|0|1|Rodges|Guillermo Jesse|2957|Washington|M|Head|||53|105557 +3010|PA|York County|Red Lion borough|1131|0|2|Rodges|Cleopatra|2958|Cuba|F|Spouse|||52|105558 +3010|PA|York County|Red Lion borough|1131|0|3|Rodges|Buford|2994|Nevada|M|Son|||16|105559 +3010|PA|York County|Red Lion borough|1131|0|4|Rodges|Toby|3000|Maryland|M|Son|||10|105560 +3010|PA|York County|Red Lion borough|1131|0|5|Rodges|Delisa|3003|PA|F|Daughter|||7|105561 +3010|PA|York County|Red Lion borough|1131|0|6|Rodges|Paris|3005|PA|M|Son|||5|105562 +3010|PA|York County|Red Lion borough|1131|0|7|Rodges|Walker|3007|PA|M|Son|||3|105563 +3010|PA|York County|Red Lion borough|1131|0|8|Rodges|Elinore Margrett|3009|PA|F|Daughter|||1|105564 + +3010|ND|Pembina County|Drayton city|1132|0|1|Lucas|Emory Joel|2948|Massachusetts|M|Head|||62|105565 +3010|ND|Pembina County|Drayton city|1132|0|2|Lucas|Jim|2988|Utah|M|Son|||22|105566 +3010|ND|Pembina County|Drayton city|1132|0|3|Lucas|Penni|2998|Washington|F|Daughter|||12|105567 +3010|ND|Pembina County|Drayton city|1132|0|4|Lucas|Lamont|3000|Oregon|M|Son|||10|105568 + +3010|MA|Worcester County|Southbridge Town city|1133|0|1|Bessler|Erasmo Shane|2947|Georgia|M|Head|||63|105569 +3010|MA|Worcester County|Southbridge Town city|1133|0|2|Bessler|Berna|2966|Maine|F|Spouse|||44|105570 +3010|MA|Worcester County|Southbridge Town city|1133|0|3|Bessler|Yong|2998|Iowa|F|Daughter|||12|105571 +3010|MA|Worcester County|Southbridge Town city|1133|0|4|Bessler|Donnell|3000|Maine|M|Son|||10|105572 +3010|MA|Worcester County|Southbridge Town city|1133|0|5|Bessler|Usha|3001|MA|F|Daughter|||9|105573 +3010|MA|Worcester County|Southbridge Town city|1133|0|6|Bessler|Tracey|3003|MA|M|Son|||7|105574 +3010|MA|Worcester County|Southbridge Town city|1133|0|7|Bessler|Mazie|3007|MA|F|Daughter|||3|105575 +3010|MA|Worcester County|Southbridge Town city|1133|0|8|Bessler|Al Rueben|3009|MA|M|Son|||1|105576 + +3010|AK|Kenai Peninsula Borough|Salamatof CDP|1134|0|1|Strecker|Gary Elmo|2956|Antigua And Barbuda|M|Head|||54|105577 +3010|AK|Kenai Peninsula Borough|Salamatof CDP|1134|0|2|Strecker|Dane Mack|2997|Ohio|M|Son|||13|105578 + +3010|NY|Niagara County|Lewiston town|1135|0|1|Mancuso|Dewayne Dino|2973|Maryland|M|Head|||37|105579 +3010|NY|Niagara County|Lewiston town|1135|0|2|Mancuso|Angle|2980|Sierra Leone|F|Spouse|||30|105580 +3010|NY|Niagara County|Lewiston town|1135|0|3|Mancuso|Merissa|3000|Georgia|F|Daughter|||10|105581 +3010|NY|Niagara County|Lewiston town|1135|0|4|Mancuso|Arla|3001|NY|F|Daughter|||9|105582 +3010|NY|Niagara County|Lewiston town|1135|0|5|Mancuso|Maricruz|3005|NY|F|Daughter|||5|105583 + +3010|GA|Liberty County|Riceboro city|1136|0|1|Castile|Riley Eugene|2953|Guyana|M|Head|||57|105584 +3010|GA|Liberty County|Riceboro city|1136|0|2|Castile|Evangelina|2975|South Dakota|F|Spouse|||35|105585 +3010|GA|Liberty County|Riceboro city|1136|0|3|Castile|Cammy|2995|New Hampshire|F|Daughter|||15|105586 +3010|GA|Liberty County|Riceboro city|1136|0|4|Castile|Winford|2999|Nebraska|M|Son|||11|105587 +3010|GA|Liberty County|Riceboro city|1136|0|5|Castile|Nicola|3001|GA|F|Daughter|||9|105588 +3010|GA|Liberty County|Riceboro city|1136|0|6|Castile|Simone Leeanna|3009|GA|F|Daughter|||1|105589 + +3010|MD|Prince George's County|Chillum CDP|1137|0|1|Lloyd|Garland Sherman|2952|New Mexico|M|Head|||58|105590 +3010|MD|Prince George's County|Chillum CDP|1137|0|2|Lloyd|Sunny|2970|Missouri|F|Spouse|||40|105591 +3010|MD|Prince George's County|Chillum CDP|1137|0|3|Lloyd|Nakesha|2996|Virginia|F|Daughter|||14|105592 +3010|MD|Prince George's County|Chillum CDP|1137|0|4|Lloyd|Gabriel Heriberto|3003|MO|M|Son|||7|105593 +3010|MD|Prince George's County|Chillum CDP|1137|0|5|Lloyd|Evelin Troy|3005|MO|F|Daughter|||5|105594 +3010|MD|Prince George's County|Chillum CDP|1137|0|6|Lloyd|Sandi|3007|MD|F|Daughter|||3|105595 +3010|MD|Prince George's County|Chillum CDP|1137|0|7|Lloyd|Jannet|3009|MD|F|Daughter|||1|105596 + +3010|MI|Barry County|Hickory Corners CDP|1138|0|1|Spence|Sal Rogelio|2982|Belgium|M|Head|||28|105597 +3010|MI|Barry County|Hickory Corners CDP|1138|0|2|Spence|Machelle|3000|Mississippi|F|Daughter|||10|105598 + +3010|IL|Crawford County|Flat Rock village|1139|0|1|Bugg|Nicky Omar|2940|Tokelau|M|Head|||70|105599 +3010|IL|Crawford County|Flat Rock village|1139|0|2|Bugg|Giselle|2957|North Carolina|F|Spouse|||53|105600 +3010|IL|Crawford County|Flat Rock village|1139|0|3|Bugg|Myong|2987|Pennsylvania|F|Daughter|||23|105601 +3010|IL|Crawford County|Flat Rock village|1139|0|4|Bugg|Dirk|2989|Qatar|M|Son|||21|105602 +3010|IL|Crawford County|Flat Rock village|1139|0|5|Bugg|Gladis|2997|Kyrgyzstan|F|Daughter|||13|105603 +3010|IL|Crawford County|Flat Rock village|1139|0|6|Bugg|Shelby|2999|Germany|M|Son|||11|105604 +3010|IL|Crawford County|Flat Rock village|1139|0|7|Bugg|Katharyn|3005|IL|F|Daughter|||5|105605 +3010|IL|Crawford County|Flat Rock village|1139|0|8|Bugg|Owen|3007|IL|M|Son|||3|105606 + +3010|ME|Knox County|Rockport town|1140|0|1|Kelly|Dante Sylvester|2963|Nebraska|M|Head|||47|105607 +3010|ME|Knox County|Rockport town|1140|0|2|Kelly|Mauricio|2991|Oman|M|Son|||19|105608 +3010|ME|Knox County|Rockport town|1140|0|3|Kelly|Lillie|2999|South Dakota|F|Daughter|||11|105609 +3010|ME|Knox County|Rockport town|1140|0|4|Kelly|Margart|3001|ME|F|Daughter|||9|105610 +3010|ME|Knox County|Rockport town|1140|0|5|Kelly|Dolly|3005|ME|F|Daughter|||5|105611 + +3010|ME|Aroostook County|Eagle Lake CDP|1141|0|1|Ptaschinski|Jesus Hobert|2957|Idaho|M|Head|||53|105612 +3010|ME|Aroostook County|Eagle Lake CDP|1141|0|2|Ptaschinski|Mercedes|2980|Hawaii|F|Spouse|||30|105613 +3010|ME|Aroostook County|Eagle Lake CDP|1141|0|3|Ptaschinski|Phoebe|3000|Nevada|F|Daughter|||10|105614 +3010|ME|Aroostook County|Eagle Lake CDP|1141|0|4|Ptaschinski|Ilse Kacie|3001|ME|F|Daughter|||9|105615 +3010|ME|Aroostook County|Eagle Lake CDP|1141|0|5|Ptaschinski|Melvin Norbert|3009|ME|M|Son|||1|105616 + +3010|TX|Harris County|Taylor Lake Village city|1142|0|1|Poncho|Rudy Ezra|2960|Albania|M|Head|||50|105617 +3010|TX|Harris County|Taylor Lake Village city|1142|0|2|Poncho|Trula|2958|Tajikistan|F|Spouse|||52|105618 +3010|TX|Harris County|Taylor Lake Village city|1142|0|3|Poncho|Emile|2994|Arkansas|M|Son|||16|105619 +3010|TX|Harris County|Taylor Lake Village city|1142|0|4|Poncho|Margart|2996|North Dakota|F|Daughter|||14|105620 +3010|TX|Harris County|Taylor Lake Village city|1142|0|5|Poncho|Kendrick|3007|TX|M|Son|||3|105621 + +3010|OR|Tillamook County|Bay City city|1143|0|1|Ringstaff|Kevin Denny|2957|Pennsylvania|M|Head|||53|105622 +3010|OR|Tillamook County|Bay City city|1143|0|2|Ringstaff|Elvera|2957|Michigan|F|Spouse|||53|105623 +3010|OR|Tillamook County|Bay City city|1143|0|3|Ringstaff|Tiffaney|3005|OR|F|Daughter|||5|105624 + +3010|WI|Marinette County|Goodman CDP|1144|0|1|Alessi|Cari|2953|Cape Verde|F|Head|||57|105625 +3010|WI|Marinette County|Goodman CDP|1144|0|2|Alessi|Carroll|2999|Missouri|F|Daughter|||11|105626 + +3010|PR|Salinas Municipio|Central Aguirre comunidad|1145|0|1|Grover|Jerry Jere|2939|South Carolina|M|Head|||71|105627 +3010|PR|Salinas Municipio|Central Aguirre comunidad|1145|0|2|Grover|Lola|2981|East Timor|F|Daughter|||29|105628 +3010|PR|Salinas Municipio|Central Aguirre comunidad|1145|0|3|Grover|Miguel|2989|Oklahoma|M|Son|||21|105629 +3010|PR|Salinas Municipio|Central Aguirre comunidad|1145|0|4|Grover|Nola|2999|Pennsylvania|F|Daughter|||11|105630 + +3010|KS|Franklin County|Richmond city|1146|0|1|Manzo|Rudolph Bradly|2943|Bahrain|M|Head|||67|105631 +3010|KS|Franklin County|Richmond city|1146|0|2|Manzo|Beverlee|2956|Delaware|F|Spouse|||54|105632 +3010|KS|Franklin County|Richmond city|1146|0|3|Manzo|Tommie|2988|Delaware|M|Son|||22|105633 +3010|KS|Franklin County|Richmond city|1146|0|4|Manzo|Tisa|2996|Illinois|F|Daughter|||14|105634 + +3010|MD|St. Mary's County|Leonardtown town|1147|0|1|James|Otha Ignacio|2941|Indiana|M|Head|||69|105635 +3010|MD|St. Mary's County|Leonardtown town|1147|0|2|James|Cheree|2962|Illinois|F|Spouse|||48|105636 +3010|MD|St. Mary's County|Leonardtown town|1147|0|3|James|Guy|2992|Nebraska|M|Son|||18|105637 +3010|MD|St. Mary's County|Leonardtown town|1147|0|4|James|Herbert|2996|Pennsylvania|M|Son|||14|105638 +3010|MD|St. Mary's County|Leonardtown town|1147|0|5|James|Lucienne|3005|MD|F|Daughter|||5|105639 + +3010|NY|Greene County|Prattsville CDP|1148|0|1|Kudley|Laurence|2952|Missouri|M|Head|||58|105640 +3010|NY|Greene County|Prattsville CDP|1148|0|2|Kudley|Jennette|2958|Hawaii|F|Spouse|||52|105641 +3010|NY|Greene County|Prattsville CDP|1148|0|3|Kudley|Veda|2998|Wisconsin|F|Daughter|||12|105642 +3010|NY|Greene County|Prattsville CDP|1148|0|4|Kudley|Leslie|3000|Niue|M|Son|||10|105643 +3010|NY|Greene County|Prattsville CDP|1148|0|5|Kudley|Man Kenton|3007|NY|M|Son|||3|105644 +3010|NY|Greene County|Prattsville CDP|1148|0|6|Kudley|Sammie Lauren|3009|NY|M|Son|||1|105645 + +3010|KS|Douglas County|Eudora city|1149|0|1|Lister|Von Manuel|2939|Hawaii|M|Head|||71|105646 +3010|KS|Douglas County|Eudora city|1149|0|2|Lister|Sherril|2956|Pennsylvania|F|Spouse|||54|105647 +3010|KS|Douglas County|Eudora city|1149|0|3|Lister|Maris Keira|2988|North Carolina|F|Daughter|||22|105648 +3010|KS|Douglas County|Eudora city|1149|0|4|Lister|Glady|3003|KS|F|Daughter|||7|105649 +3010|KS|Douglas County|Eudora city|1149|0|5|Lister|Jinny|3007|KS|F|Daughter|||3|105650 + +3010|ND|Walsh County|Conway city|1150|0|1|Rawley|Scot Bill|2966|Ohio|M|Head|||44|105651 +3010|ND|Walsh County|Conway city|1150|0|2|Rawley|Zula|2995|Malaysia|F|Daughter|||15|105652 +3010|ND|Walsh County|Conway city|1150|0|3|Rawley|Angel Felton|2999|Maryland|M|Son|||11|105653 + +3010|PA|Beaver County|South Heights borough|1151|0|1|Evans|Edgardo Ronald|2944|Florida|M|Head|||66|105654 +3010|PA|Beaver County|South Heights borough|1151|0|2|Evans|Phyliss Caryn|2961|Belize|F|Spouse|||49|105655 +3010|PA|Beaver County|South Heights borough|1151|0|3|Evans|Rana|2989|Western Sahara|F|Daughter|||21|105656 +3010|PA|Beaver County|South Heights borough|1151|0|4|Evans|Garfield|3001|PA|M|Son|||9|105657 + +3010|OH|Marion County|Caledonia village|1152|0|1|Kujala|Dominic Tom|2939|Alabama|M|Head|||71|105658 +3010|OH|Marion County|Caledonia village|1152|0|2|Kujala|Marquitta|2956|Vermont|F|Spouse|||54|105659 +3010|OH|Marion County|Caledonia village|1152|0|3|Kujala|Donnette|2996|Minnesota|F|Daughter|||14|105660 +3010|OH|Marion County|Caledonia village|1152|0|4|Kujala|Casandra|3001|OH|F|Daughter|||9|105661 + +3010|LA|Lafayette Parish|Ossun CDP|1153|0|1|Mcclennon|Anton Theo|2977|Missouri|M|Head|||33|105662 +3010|LA|Lafayette Parish|Ossun CDP|1153|0|2|Mcclennon|Antonio Tamekia|2978|Massachusetts|F|Spouse|||32|105663 +3010|LA|Lafayette Parish|Ossun CDP|1153|0|3|Mcclennon|Fannie|2998|Albania|F|Daughter|||12|105664 +3010|LA|Lafayette Parish|Ossun CDP|1153|0|4|Mcclennon|Karlyn|3000|Connecticut|F|Daughter|||10|105665 +3010|LA|Lafayette Parish|Ossun CDP|1153|0|5|Mcclennon|Lindsey|3001|LA|F|Daughter|||9|105666 +3010|LA|Lafayette Parish|Ossun CDP|1153|0|6|Mcclennon|Joey|3007|LA|M|Son|||3|105667 + +3010|MI|Livingston County|Howell township|1154|0|1|Steinau|Vincenzo Oscar|2953|North Dakota|M|Head|||57|105668 +3010|MI|Livingston County|Howell township|1154|0|2|Steinau|Meri Rhoda|2975|Arizona|F|Spouse|||35|105669 +3010|MI|Livingston County|Howell township|1154|0|3|Steinau|Ashli|2997|Arkansas|F|Daughter|||13|105670 +3010|MI|Livingston County|Howell township|1154|0|4|Steinau|Regina|3001|MI|F|Daughter|||9|105671 +3010|MI|Livingston County|Howell township|1154|0|5|Steinau|Quinton|3009|MI|M|Son|||1|105672 + +3010|OR|Washington County|Cedar Hills CDP|1155|0|1|Rozier|Orval Mel|2948|Wyoming|M|Head|||62|105673 +3010|OR|Washington County|Cedar Hills CDP|1155|0|2|Rozier|Ann|2970|South Dakota|F|Daughter|||40|105674 +3010|OR|Washington County|Cedar Hills CDP|1155|0|3|Rozier|Heidy Angelia|2998|Texas|F|Daughter|||12|105675 + +3010|AL|Conecuh County|Repton town|1156|0|1|Yamanoha|Robt Arnoldo|2941|Papua New Guinea|M|Head|||69|105676 +3010|AL|Conecuh County|Repton town|1156|0|2|Yamanoha|Emelda|2952|Wisconsin|F|Spouse|||58|105677 +3010|AL|Conecuh County|Repton town|1156|0|3|Yamanoha|Aurore|2998|Arizona|F|Daughter|||12|105678 +3010|AL|Conecuh County|Repton town|1156|0|4|Yamanoha|Brant Kristopher|3000|Washington|M|Son|||10|105679 +3010|AL|Conecuh County|Repton town|1156|0|5|Yamanoha|Rodrick Mckinley|3001|AL|M|Son|||9|105680 +3010|AL|Conecuh County|Repton town|1156|0|6|Yamanoha|Francis|3003|AL|M|Son|||7|105681 + +3010|SC|Anderson County|Pelzer town|1157|0|1|Jones|Rich|2970|Maine|M|Head|||40|105682 +3010|SC|Anderson County|Pelzer town|1157|0|2|Jones|Porsha Sheridan|2973|North Dakota|F|Spouse|||37|105683 +3010|SC|Anderson County|Pelzer town|1157|0|3|Jones|Georgine Juliet|2999|Vermont|F|Daughter|||11|105684 +3010|SC|Anderson County|Pelzer town|1157|0|4|Jones|Ines|3001|SC|F|Daughter|||9|105685 +3010|SC|Anderson County|Pelzer town|1157|0|5|Jones|Tim|3003|SC|M|Son|||7|105686 +3010|SC|Anderson County|Pelzer town|1157|0|6|Jones|Erma|3009|SC|F|Daughter|||1|105687 + +3010|NY|Dutchess County|Dover Plains CDP|1158|0|1|Camilleri|Shayne Fidel|2962|New York|M|Head|||48|105688 +3010|NY|Dutchess County|Dover Plains CDP|1158|0|2|Camilleri|Alisa|2968|Hawaii|F|Spouse|||42|105689 +3010|NY|Dutchess County|Dover Plains CDP|1158|0|3|Camilleri|Russ|2996|Indiana|M|Son|||14|105690 +3010|NY|Dutchess County|Dover Plains CDP|1158|0|4|Camilleri|Shauna|3001|NY|F|Daughter|||9|105691 +3010|NY|Dutchess County|Dover Plains CDP|1158|0|5|Camilleri|Sharee|3003|NY|F|Daughter|||7|105692 +3010|NY|Dutchess County|Dover Plains CDP|1158|0|6|Camilleri|Barbra|3009|NY|F|Daughter|||1|105693 + +3010|PA|Clearfield County|Lumber City borough|1159|0|1|Gladwell|Samual Jessie|2957|Utah|M|Head|||53|105694 +3010|PA|Clearfield County|Lumber City borough|1159|0|2|Gladwell|Clora|2989|North Carolina|F|Daughter|||21|105695 +3010|PA|Clearfield County|Lumber City borough|1159|0|3|Gladwell|Allen|2991|Northern Mariana Islands|M|Son|||19|105696 +3010|PA|Clearfield County|Lumber City borough|1159|0|4|Gladwell|Jamel|2995|Alaska|M|Son|||15|105697 + +3010|TX|Medina County|LaCoste city|1160|0|1|Sussex|Jules Gaylord|2983|Pennsylvania|M|Head|||27|105698 +3010|TX|Medina County|LaCoste city|1160|0|2|Sussex|Tashia|2979|New Hampshire|F|Spouse|||31|105699 +3010|TX|Medina County|LaCoste city|1160|0|3|Sussex|Sheldon|3001|TX|M|Son|||9|105700 +3010|TX|Medina County|LaCoste city|1160|0|4|Sussex|Man|3003|TX|M|Son|||7|105701 +3010|TX|Medina County|LaCoste city|1160|0|5|Sussex|Sharolyn Winter|3005|TX|F|Daughter|||5|105702 + +3010|WY|Laramie County|Burns town|1161|0|1|Louria|Elvis Jeremy|2965|Antarctica|M|Head|||45|105703 +3010|WY|Laramie County|Burns town|1161|0|2|Louria|Cody|2973|Jordan|F|Spouse|||37|105704 +3010|WY|Laramie County|Burns town|1161|0|3|Louria|Jeannie|2999|Oregon|F|Daughter|||11|105705 +3010|WY|Laramie County|Burns town|1161|0|4|Louria|Wilfredo|3005|WY|M|Son|||5|105706 + +3010|OK|Cherokee County|Welling CDP|1162|0|1|Bevins|Matt Clement|2962|Thailand|M|Head|||48|105707 +3010|OK|Cherokee County|Welling CDP|1162|0|2|Bevins|Janice|2962|Bulgaria|F|Spouse|||48|105708 +3010|OK|Cherokee County|Welling CDP|1162|0|3|Bevins|Maragaret|2986|Vermont|F|Daughter|||24|105709 +3010|OK|Cherokee County|Welling CDP|1162|0|4|Bevins|Walker Thanh|2990|Ohio|M|Son|||20|105710 +3010|OK|Cherokee County|Welling CDP|1162|0|5|Bevins|Michel Dario|3000|Italy|M|Son|||10|105711 +3010|OK|Cherokee County|Welling CDP|1162|0|6|Bevins|Cleo|3001|OK|M|Son|||9|105712 +3010|OK|Cherokee County|Welling CDP|1162|0|7|Bevins|Harley|3003|OK|M|Son|||7|105713 + +3010|GA|Mitchell County|Baconton city|1163|0|1|Holmes|Romeo Elliot|2946|Montana|M|Head|||64|105714 +3010|GA|Mitchell County|Baconton city|1163|0|2|Holmes|Michelina|2970|Hawaii|F|Spouse|||40|105715 +3010|GA|Mitchell County|Baconton city|1163|0|3|Holmes|Bryce|2992|Nebraska|M|Son|||18|105716 +3010|GA|Mitchell County|Baconton city|1163|0|4|Holmes|Candance|3001|GA|F|Daughter|||9|105717 +3010|GA|Mitchell County|Baconton city|1163|0|5|Holmes|Beau|3007|GA|M|Son|||3|105718 +3010|GA|Mitchell County|Baconton city|1163|0|6|Holmes|Alejandro|3009|GA|M|Son|||1|105719 + +3010|AK|Northwest Arctic Borough|Kivalina city|1164|0|1|Ross|Vincent Johnie|2952|Greece|M|Head|||58|105720 +3010|AK|Northwest Arctic Borough|Kivalina city|1164|0|2|Ross|Willie Grant|2993|British Indian Ocean Territory|M|Son|||17|105721 + +3010|GA|Coweta County|Moreland town|1165|0|1|Cottrell|Jackie Darius|2955|Anguilla|M|Head|||55|105722 +3010|GA|Coweta County|Moreland town|1165|0|2|Cottrell|Meg|2955|South Carolina|F|Spouse|||55|105723 +3010|GA|Coweta County|Moreland town|1165|0|3|Cottrell|Peggie Faviola|2997|California|F|Daughter|||13|105724 +3010|GA|Coweta County|Moreland town|1165|0|4|Cottrell|Lucas|3001|GA|M|Son|||9|105725 +3010|GA|Coweta County|Moreland town|1165|0|5|Cottrell|Damon|3003|GA|M|Son|||7|105726 +3010|GA|Coweta County|Moreland town|1165|0|6|Cottrell|Mellisa|3005|GA|F|Daughter|||5|105727 +3010|GA|Coweta County|Moreland town|1165|0|7|Cottrell|Samatha Consuelo|3009|GA|F|Daughter|||1|105728 + +3010|NM|Hidalgo County|Virden village|1166|0|1|Juarez|Osvaldo|2990|Indiana|M|Son|||20|105729 +3010|NM|Hidalgo County|Virden village|1166|0|2|Juarez|Rosendo|3000|Wisconsin|M|Son|||10|105730 + +3010|MI|Gratiot County|Lafayette township|1167|0|1|Kallberg|Xochitl|2954|Wyoming|F|Spouse|||56|105731 +3010|MI|Gratiot County|Lafayette township|1167|0|2|Kallberg|Marcelino|2998|Nebraska|M|Son|||12|105732 +3010|MI|Gratiot County|Lafayette township|1167|0|3|Kallberg|Gilbert Maria|3000|North Dakota|M|Son|||10|105733 +3010|MI|Gratiot County|Lafayette township|1167|0|4|Kallberg|Celesta|3001|NJ|F|Daughter|||9|105734 + +3010|GA|Walker County|Chickamauga city|1168|0|1|Fishel|Willian Wilmer|2977|Arizona|M|Head|||33|105735 +3010|GA|Walker County|Chickamauga city|1168|0|2|Fishel|Gerda|2977|Oklahoma|F|Spouse|||33|105736 +3010|GA|Walker County|Chickamauga city|1168|0|3|Fishel|Kamilah|2999|Cote D'ivoire|F|Daughter|||11|105737 +3010|GA|Walker County|Chickamauga city|1168|0|4|Fishel|Darrick|3001|GA|M|Son|||9|105738 + +3010|NY|Franklin County|Duane town|1169|0|1|Felch|Lane Derrick|2977|Connecticut|M|Head|||33|105739 +3010|NY|Franklin County|Duane town|1169|0|2|Felch|Janita|2998|Maine|F|Daughter|||12|105740 + +3010|HI|Maui County|Hana CDP|1170|0|1|Mcmillon|Adrian Jarrod|2960|Rhode Island|M|Head|||50|105741 +3010|HI|Maui County|Hana CDP|1170|0|2|Mcmillon|Margarita Doris|2969|Colorado|F|Spouse|||41|105742 +3010|HI|Maui County|Hana CDP|1170|0|3|Mcmillon|Keturah|2991|Vermont|F|Daughter|||19|105743 +3010|HI|Maui County|Hana CDP|1170|0|4|Mcmillon|Robbin|3005|HI|F|Daughter|||5|105744 +3010|HI|Maui County|Hana CDP|1170|0|5|Mcmillon|Harry|3009|HI|M|Son|||1|105745 + +3010|TX|Zavala County|La Pryor CDP|1171|0|1|Malling|Sung|2953|Wyoming|M|Head|||57|105746 +3010|TX|Zavala County|La Pryor CDP|1171|0|2|Malling|Gabrielle|2974|Nevada|F|Spouse|||36|105747 +3010|TX|Zavala County|La Pryor CDP|1171|0|3|Malling|Chester|3000|Kenya|M|Son|||10|105748 +3010|TX|Zavala County|La Pryor CDP|1171|0|4|Malling|Jules|3009|TX|M|Son|||1|105749 + +3010|OK|Tulsa County, Wagoner County|Bixby city|1172|0|1|Eckols|Alonzo Andrea|2976|North Carolina|M|Head|||34|105750 +3010|OK|Tulsa County, Wagoner County|Bixby city|1172|0|2|Eckols|Karleen|2977|North Carolina|F|Spouse|||33|105751 +3010|OK|Tulsa County, Wagoner County|Bixby city|1172|0|3|Eckols|Yer|2997|Louisiana|F|Daughter|||13|105752 +3010|OK|Tulsa County, Wagoner County|Bixby city|1172|0|4|Eckols|Javier|3005|OK|M|Son|||5|105753 +3010|OK|Tulsa County, Wagoner County|Bixby city|1172|0|5|Eckols|Rhea|3007|OK|F|Daughter|||3|105754 + +3010|MI|Barry County|Hastings city|1173|0|1|Dinapoli|Jeromy Freddie|2949|New York|M|Head|||61|105755 +3010|MI|Barry County|Hastings city|1173|0|2|Dinapoli|Audrie|2967|New Mexico|F|Spouse|||43|105756 +3010|MI|Barry County|Hastings city|1173|0|3|Dinapoli|Son Jerrod|2995|Indiana|M|Son|||15|105757 +3010|MI|Barry County|Hastings city|1173|0|4|Dinapoli|Benita|3001|MI|F|Daughter|||9|105758 + +3010|KY|McCracken County|Reidland CDP|1174|0|1|Johnson|Stevie Cornell|2963|North Carolina|M|Head|||47|105759 +3010|KY|McCracken County|Reidland CDP|1174|0|2|Johnson|Belkis|2998|Illinois|F|Daughter|||12|105760 + +3010|MN|Sibley County|Green Isle city|1175|0|1|Strei|Stanley Carlton|2958|Haiti|M|Head|||52|105761 +3010|MN|Sibley County|Green Isle city|1175|0|2|Strei|Yan|2959|North Carolina|F|Spouse|||51|105762 +3010|MN|Sibley County|Green Isle city|1175|0|3|Strei|Theda Tessa|2985|Arkansas|F|Daughter|||25|105763 +3010|MN|Sibley County|Green Isle city|1175|0|4|Strei|Edelmira|2995|New York|F|Daughter|||15|105764 +3010|MN|Sibley County|Green Isle city|1175|0|5|Strei|Giuseppe|3005|MN|M|Son|||5|105765 + +3010|NY|Kings County|Brooklyn borough|1176|0|1|Kohl|Rashad|2941|Wyoming|M|Head|||69|105766 +3010|NY|Kings County|Brooklyn borough|1176|0|2|Kohl|Margareta|2946|South Africa|F|Spouse|||64|105767 +3010|NY|Kings County|Brooklyn borough|1176|0|3|Kohl|Gene|2970|Maryland|M|Son|||40|105768 +3010|NY|Kings County|Brooklyn borough|1176|0|4|Kohl|Caryn Velvet|2982|Virgin Islands, U.s.|F|Daughter|||28|105769 +3010|NY|Kings County|Brooklyn borough|1176|0|5|Kohl|Roxana|3003|NY|F|Daughter|||7|105770 + +3010|PA|Wayne County|Waymart borough|1177|0|1|Ochocki|Sau|2972|Anguilla|F|Spouse|||38|105771 +3010|PA|Wayne County|Waymart borough|1177|0|2|Ochocki|Olimpia|2992|South Dakota|F|Daughter|||18|105772 +3010|PA|Wayne County|Waymart borough|1177|0|3|Ochocki|Teddy|2996|Connecticut|M|Son|||14|105773 +3010|PA|Wayne County|Waymart borough|1177|0|4|Ochocki|Marion|3000|Canada|F|Daughter|||10|105774 +3010|PA|Wayne County|Waymart borough|1177|0|5|Ochocki|Rodrick|3003|PA|M|Son|||7|105775 + +3010|VA|Manassas Park city|Manassas Park city|1178|0|1|Arciba|Joseph|2959|Nebraska|F|Head|||51|105776 +3010|VA|Manassas Park city|Manassas Park city|1178|0|2|Arciba|Lincoln|2995|Alabama|M|Son|||15|105777 + +3010|PA|Cambria County|Reade township|1179|0|1|Pierce|Aurelio Ryan|2970|Philippines|M|Head|||40|105778 +3010|PA|Cambria County|Reade township|1179|0|2|Pierce|Jeanine|2975|Iowa|F|Spouse|||35|105779 +3010|PA|Cambria County|Reade township|1179|0|3|Pierce|Leonida|2995|Nevada|F|Daughter|||15|105780 +3010|PA|Cambria County|Reade township|1179|0|4|Pierce|Lexie|2997|Maryland|F|Daughter|||13|105781 +3010|PA|Cambria County|Reade township|1179|0|5|Pierce|Johnnie|3001|PA|M|Son|||9|105782 +3010|PA|Cambria County|Reade township|1179|0|6|Pierce|Pennie|3007|PA|F|Daughter|||3|105783 + +3010|GA|Colquitt County|Ellenton town|1180|0|1|Sprouse|Brant|2968|West Virginia|M|Head|||42|105784 +3010|GA|Colquitt County|Ellenton town|1180|0|2|Sprouse|Victorina|2983|Maine|F|Spouse|||27|105785 +3010|GA|Colquitt County|Ellenton town|1180|0|3|Sprouse|Steve|3001|GA|M|Son|||9|105786 +3010|GA|Colquitt County|Ellenton town|1180|0|4|Sprouse|Zackary|3003|GA|M|Son|||7|105787 +3010|GA|Colquitt County|Ellenton town|1180|0|5|Sprouse|Malia|3005|GA|F|Daughter|||5|105788 + +3010|IA|Bremer County, Fayette County|Sumner city|1181|0|1|Erekson|Zackary Elden|2939|Uruguay|M|Head|||71|105789 +3010|IA|Bremer County, Fayette County|Sumner city|1181|0|2|Erekson|Idalia|2947|Pennsylvania|F|Spouse|||63|105790 +3010|IA|Bremer County, Fayette County|Sumner city|1181|0|3|Erekson|Belinda|2993|Togo|F|Daughter|||17|105791 +3010|IA|Bremer County, Fayette County|Sumner city|1181|0|4|Erekson|Leonia|2995|Liberia|F|Daughter|||15|105792 +3010|IA|Bremer County, Fayette County|Sumner city|1181|0|5|Erekson|Olinda|2999|Bahamas|F|Daughter|||11|105793 +3010|IA|Bremer County, Fayette County|Sumner city|1181|0|6|Erekson|Heike|3007|IA|F|Daughter|||3|105794 + +3010|NY|Schuyler County|Reading town|1182|0|1|Treister|Dylan Arnoldo|2940|Gibraltar|M|Head|||70|105795 +3010|NY|Schuyler County|Reading town|1182|0|2|Treister|Nathalie|2945|Pennsylvania|F|Spouse|||65|105796 +3010|NY|Schuyler County|Reading town|1182|0|3|Treister|Jennefer|2985|North Carolina|F|Daughter|||25|105797 +3010|NY|Schuyler County|Reading town|1182|0|4|Treister|Dwayne|2995|Rhode Island|M|Son|||15|105798 +3010|NY|Schuyler County|Reading town|1182|0|5|Treister|Carri|2997|Maryland|F|Daughter|||13|105799 +3010|NY|Schuyler County|Reading town|1182|0|6|Treister|Lean Clara|3001|NY|F|Daughter|||9|105800 +3010|NY|Schuyler County|Reading town|1182|0|7|Treister|Jo|3009|NY|F|Daughter|||1|105801 + +3010|PA|Tioga County|Wellsboro borough|1183|0|1|Gschwend|Shelby Burt|2950|Angola|M|Head|||60|105802 +3010|PA|Tioga County|Wellsboro borough|1183|0|2|Gschwend|Velva|2957|Kansas|F|Spouse|||53|105803 +3010|PA|Tioga County|Wellsboro borough|1183|0|3|Gschwend|Toby|2997|Kansas|M|Son|||13|105804 +3010|PA|Tioga County|Wellsboro borough|1183|0|4|Gschwend|Dalton Brendan|2999|Maine|M|Son|||11|105805 +3010|PA|Tioga County|Wellsboro borough|1183|0|5|Gschwend|Kenny|3001|PA|M|Son|||9|105806 + +3010|IL|Schuyler County|Camden village|1184|0|1|Maner|Salome Tayna|2974|Maine|F|Spouse|||36|105807 +3010|IL|Schuyler County|Camden village|1184|0|2|Maner|Merlene|2996|Connecticut|F|Daughter|||14|105808 +3010|IL|Schuyler County|Camden village|1184|0|3|Maner|Sudie|2998|Arkansas|F|Daughter|||12|105809 +3010|IL|Schuyler County|Camden village|1184|0|4|Maner|Dan|3003|IL|M|Son|||7|105810 +3010|IL|Schuyler County|Camden village|1184|0|5|Maner|Shenita|3005|IL|F|Daughter|||5|105811 +3010|IL|Schuyler County|Camden village|1184|0|6|Maner|Dave|3007|IL|M|Son|||3|105812 + +3010|IL|Montgomery County|Butler village|1185|0|1|Lobue|Corey Archie|2945|Connecticut|M|Head|||65|105813 +3010|IL|Montgomery County|Butler village|1185|0|2|Lobue|Adrian|2943|Michigan|F|Spouse|||67|105814 +3010|IL|Montgomery County|Butler village|1185|0|3|Lobue|Frank|2973|Montana|M|Son|||37|105815 +3010|IL|Montgomery County|Butler village|1185|0|4|Lobue|Jamey Kimberlie|2975|Louisiana|F|Daughter|||35|105816 +3010|IL|Montgomery County|Butler village|1185|0|5|Lobue|Lyle|2983|Cameroon|M|Son|||27|105817 +3010|IL|Montgomery County|Butler village|1185|0|6|Lobue|Yoshie|2995|South Carolina|F|Daughter|||15|105818 +3010|IL|Montgomery County|Butler village|1185|0|7|Lobue|Kristel|2999|Nevada|F|Daughter|||11|105819 +3010|IL|Montgomery County|Butler village|1185|0|8|Lobue|Tracey Mark|3003|IN|F|Daughter|||7|105820 +3010|IL|Montgomery County|Butler village|1185|0|9|Lobue|Guadalupe|3007|IL|M|Son|||3|105821 + +3010|PA|York County|Manheim township|1186|0|1|Shults|Willette|2952|Michigan|F|Spouse|||58|105822 +3010|PA|York County|Manheim township|1186|0|2|Shults|Gabriel|2976|Japan|M|Son|||34|105823 +3010|PA|York County|Manheim township|1186|0|3|Shults|Zenia|2980|California|F|Daughter|||30|105824 +3010|PA|York County|Manheim township|1186|0|4|Shults|Phuong|2986|Guinea-bissau|F|Daughter|||24|105825 +3010|PA|York County|Manheim township|1186|0|5|Shults|Dovie|3003|PA|F|Daughter|||7|105826 +3010|PA|York County|Manheim township|1186|0|6|Shults|Emile|3007|PA|M|Son|||3|105827 + +3010|NY|Nassau County|Manhasset CDP|1187|0|1|Mcintyre|Thad Frederic|2943|Illinois|M|Head|||67|105828 +3010|NY|Nassau County|Manhasset CDP|1187|0|2|Mcintyre|Quinn|2951|Idaho|F|Spouse|||59|105829 +3010|NY|Nassau County|Manhasset CDP|1187|0|3|Mcintyre|Isidro|2987|Kansas|M|Son|||23|105830 +3010|NY|Nassau County|Manhasset CDP|1187|0|4|Mcintyre|Dawn|2993|Croatia|F|Daughter|||17|105831 +3010|NY|Nassau County|Manhasset CDP|1187|0|5|Mcintyre|Rosa|2995|New Mexico|F|Daughter|||15|105832 +3010|NY|Nassau County|Manhasset CDP|1187|0|6|Mcintyre|Drew|3003|NY|F|Daughter|||7|105833 +3010|NY|Nassau County|Manhasset CDP|1187|0|7|Mcintyre|Lisandra|3005|NY|F|Daughter|||5|105834 + +3010|NH|Carroll County|Albany town|1188|0|1|Allen|Alonso Morton|2965|Luxembourg|M|Head|||45|105835 +3010|NH|Carroll County|Albany town|1188|0|2|Allen|Yoshiko|2963|Idaho|F|Spouse|||47|105836 +3010|NH|Carroll County|Albany town|1188|0|3|Allen|Mirian|2987|West Virginia|F|Daughter|||23|105837 +3010|NH|Carroll County|Albany town|1188|0|4|Allen|Latonya|3007|NH|F|Daughter|||3|105838 + +3010|PA|Lackawanna County|Vandling borough|1189|0|1|Tolles|Tobias|2961|Maryland|M|Head|||49|105839 +3010|PA|Lackawanna County|Vandling borough|1189|0|2|Tolles|Vania|2993|Arizona|F|Daughter|||17|105840 +3010|PA|Lackawanna County|Vandling borough|1189|0|3|Tolles|Harriette|2995|Oregon|F|Daughter|||15|105841 +3010|PA|Lackawanna County|Vandling borough|1189|0|4|Tolles|Leslie|2997|Mississippi|M|Son|||13|105842 + +3010|NY|Albany County|Green Island village|1190|0|1|Koc|Bo Randal|2978|Nevada|M|Head|||32|105843 +3010|NY|Albany County|Green Island village|1190|0|2|Koc|Zenia|2977|Virginia|F|Spouse|||33|105844 +3010|NY|Albany County|Green Island village|1190|0|3|Koc|Sirena|2997|Belarus|F|Daughter|||13|105845 +3010|NY|Albany County|Green Island village|1190|0|4|Koc|Sherrie|3001|NY|F|Daughter|||9|105846 +3010|NY|Albany County|Green Island village|1190|0|5|Koc|Teodoro|3005|NY|M|Son|||5|105847 +3010|NY|Albany County|Green Island village|1190|0|6|Koc|Rosalba|3007|NY|F|Daughter|||3|105848 +3010|NY|Albany County|Green Island village|1190|0|7|Koc|Merlin|3009|NY|M|Son|||1|105849 + +3010|ND|Cass County|North River city|1191|0|1|Trad|Hana|2976|Vermont|F|Spouse|||34|105850 +3010|ND|Cass County|North River city|1191|0|2|Trad|Timmy|2996|Idaho|M|Son|||14|105851 +3010|ND|Cass County|North River city|1191|0|3|Trad|Shiloh|2998|Washington|F|Daughter|||12|105852 +3010|ND|Cass County|North River city|1191|0|4|Trad|Madge|3003|ND|F|Daughter|||7|105853 +3010|ND|Cass County|North River city|1191|0|5|Trad|Maria|3007|ND|M|Son|||3|105854 +3010|ND|Cass County|North River city|1191|0|6|Trad|Vergie|3009|ND|F|Daughter|||1|105855 + +3010|NJ|Camden County|Voorhees township|1192|0|1|Cupples|Wilbert Timothy|2944|Congo, The Democratic Republic Of The|M|Head|||66|105856 +3010|NJ|Camden County|Voorhees township|1192|0|2|Cupples|Berta|2964|Rhode Island|F|Spouse|||46|105857 +3010|NJ|Camden County|Voorhees township|1192|0|3|Cupples|Ellis|2996|New Mexico|M|Son|||14|105858 +3010|NJ|Camden County|Voorhees township|1192|0|4|Cupples|Karolyn|2998|New York|F|Daughter|||12|105859 +3010|NJ|Camden County|Voorhees township|1192|0|5|Cupples|Tyesha Winter|3003|NJ|F|Daughter|||7|105860 +3010|NJ|Camden County|Voorhees township|1192|0|6|Cupples|Trudie|3005|NJ|F|Daughter|||5|105861 + +3010|ME|Hancock County|Sullivan town|1193|0|1|Bell|Ronnie Aldo|2947|Alaska|M|Head|||63|105862 +3010|ME|Hancock County|Sullivan town|1193|0|2|Bell|Fairy|2990|Montana|F|Daughter|||20|105863 +3010|ME|Hancock County|Sullivan town|1193|0|3|Bell|Monty|2996|Rhode Island|M|Son|||14|105864 + +3010|WI|Trempealeau County|Arcadia city|1194|0|1|Mccuin|Edmund Malcom|2937|New Hampshire|M|Head|||73|105865 +3010|WI|Trempealeau County|Arcadia city|1194|0|2|Mccuin|Faustina|2994|West Virginia|F|Daughter|||16|105866 +3010|WI|Trempealeau County|Arcadia city|1194|0|3|Mccuin|Winford|2998|California|M|Son|||12|105867 +3010|WI|Trempealeau County|Arcadia city|1194|0|4|Mccuin|Wilson Alberto|3000|South Carolina|M|Son|||10|105868 + +3010|OK|Nowata County|Delaware town|1195|0|1|Robinson|Lavenia|2967|Tennessee|F|Head|||43|105869 +3010|OK|Nowata County|Delaware town|1195|0|2|Robinson|Rufina|2987|Montana|F|Daughter|||23|105870 +3010|OK|Nowata County|Delaware town|1195|0|3|Robinson|Hien|2995|Maldives|F|Daughter|||15|105871 +3010|OK|Nowata County|Delaware town|1195|0|4|Robinson|Berry Rocky|2997|Micronesia, Federated States Of|M|Son|||13|105872 + +3010|NY|Erie County|Wales town|1196|0|1|Faycurry|Darwin Davis|2938|Maine|M|Head|||72|105873 +3010|NY|Erie County|Wales town|1196|0|2|Faycurry|Felton|2989|Lithuania|M|Son|||21|105874 +3010|NY|Erie County|Wales town|1196|0|3|Faycurry|Madie|2993|Nevada|F|Daughter|||17|105875 +3010|NY|Erie County|Wales town|1196|0|4|Faycurry|Felix Johnathan|2995|Argentina|M|Son|||15|105876 +3010|NY|Erie County|Wales town|1196|0|5|Faycurry|Lucille|3005|NY|F|Daughter|||5|105877 +3010|NY|Erie County|Wales town|1196|0|6|Faycurry|Lanny Eduardo|3007|NY|M|Son|||3|105878 +3010|NY|Erie County|Wales town|1196|0|7|Faycurry|Winford|3009|NY|M|Son|||1|105879 + +3010|PA|Berks County|Shoemakersville borough|1197|0|1|Lebitski|Regine|2946|Oklahoma|F|Spouse|||64|105880 +3010|PA|Berks County|Shoemakersville borough|1197|0|2|Lebitski|Dyan|2978|Italy|F|Daughter|||32|105881 +3010|PA|Berks County|Shoemakersville borough|1197|0|3|Lebitski|Carol|2988|Iowa|M|Son|||22|105882 +3010|PA|Berks County|Shoemakersville borough|1197|0|4|Lebitski|Anamaria|2994|New Hampshire|F|Daughter|||16|105883 +3010|PA|Berks County|Shoemakersville borough|1197|0|5|Lebitski|Ayanna|3000|Mississippi|F|Daughter|||10|105884 +3010|PA|Berks County|Shoemakersville borough|1197|0|6|Lebitski|Kimber|3007|PA|F|Daughter|||3|105885 + +3010|PA|Beaver County|Rochester township|1198|0|1|Finkel|Alphonso Jermaine|2942|Washington|M|Head|||68|105886 +3010|PA|Beaver County|Rochester township|1198|0|2|Finkel|Martin|2986|South Dakota|M|Son|||24|105887 +3010|PA|Beaver County|Rochester township|1198|0|3|Finkel|Lizeth|2996|Connecticut|F|Daughter|||14|105888 + +3010|OH|Tuscarawas County|Sandyville CDP|1199|0|1|Mccombie|Wally Chet|2960|Arizona|M|Head|||50|105889 +3010|OH|Tuscarawas County|Sandyville CDP|1199|0|2|Mccombie|Chante|2999|Illinois|F|Daughter|||11|105890 + +3010|NH|Grafton County|Wentworth town|1200|0|1|Strumpf|Dion Rudolph|2965|Maryland|M|Head|||45|105891 +3010|NH|Grafton County|Wentworth town|1200|0|2|Strumpf|Aurea|2963|New Jersey|F|Spouse|||47|105892 +3010|NH|Grafton County|Wentworth town|1200|0|3|Strumpf|Donette|2985|Oklahoma|F|Daughter|||25|105893 +3010|NH|Grafton County|Wentworth town|1200|0|4|Strumpf|Graham|3001|NH|M|Son|||9|105894 +3010|NH|Grafton County|Wentworth town|1200|0|5|Strumpf|Marcie|3007|NH|F|Daughter|||3|105895 + +3010|MN|Washington County|May township|1201|0|1|Dolan|Cecil Wilfred|2954|Nevada|M|Head|||56|105896 +3010|MN|Washington County|May township|1201|0|2|Dolan|John|2976|Nebraska|F|Spouse|||34|105897 +3010|MN|Washington County|May township|1201|0|3|Dolan|Shenna|3000|Guadeloupe|F|Daughter|||10|105898 +3010|MN|Washington County|May township|1201|0|4|Dolan|Shirly|3001|MN|F|Daughter|||9|105899 +3010|MN|Washington County|May township|1201|0|5|Dolan|Debbi|3005|MN|F|Daughter|||5|105900 + +3010|MO|St. Louis County|Vinita Terrace village|1202|0|1|Bayer|Leigh|2965|Virginia|F|Head|||45|105901 +3010|MO|St. Louis County|Vinita Terrace village|1202|0|2|Bayer|Leisha|2995|Iowa|F|Daughter|||15|105902 + +3010|NY|Rockland County|Montebello village|1203|0|1|Hockman|Miles Lucius|2950|Georgia|M|Head|||60|105903 +3010|NY|Rockland County|Montebello village|1203|0|2|Hockman|Maida|2949|Washington|F|Spouse|||61|105904 +3010|NY|Rockland County|Montebello village|1203|0|3|Hockman|Teri|2969|Nicaragua|F|Daughter|||41|105905 +3010|NY|Rockland County|Montebello village|1203|0|4|Hockman|Tommie|2997|Ohio|M|Son|||13|105906 +3010|NY|Rockland County|Montebello village|1203|0|5|Hockman|Mike|2999|Dominican Republic|M|Son|||11|105907 +3010|NY|Rockland County|Montebello village|1203|0|6|Hockman|Burt|3003|NY|M|Son|||7|105908 +3010|NY|Rockland County|Montebello village|1203|0|7|Hockman|Stefan|3009|NY|M|Son|||1|105909 + +3010|PA|Cambria County|Richland township|1204|0|1|Slone|Mariano Teodoro|2947|Utah|M|Head|||63|105910 +3010|PA|Cambria County|Richland township|1204|0|2|Slone|Brian|2997|Albania|M|Son|||13|105911 + +3010|NY|Rensselaer County|Castleton-on-Hudson village|1205|0|1|Kastner|Linwood Benton|2954|Oregon|M|Head|||56|105912 +3010|NY|Rensselaer County|Castleton-on-Hudson village|1205|0|2|Kastner|Yaeko|2957|South Carolina|F|Spouse|||53|105913 +3010|NY|Rensselaer County|Castleton-on-Hudson village|1205|0|3|Kastner|Arlena|2999|Togo|F|Daughter|||11|105914 +3010|NY|Rensselaer County|Castleton-on-Hudson village|1205|0|4|Kastner|Xiao|3001|NY|F|Daughter|||9|105915 +3010|NY|Rensselaer County|Castleton-on-Hudson village|1205|0|5|Kastner|Alvera|3003|NY|F|Daughter|||7|105916 + +3010|PA|Chester County|Modena borough|1206|0|1|Moury|Melva|2971|Montana|F|Head|||39|105917 +3010|PA|Chester County|Modena borough|1206|0|2|Moury|Suzy|2991|Alaska|F|Daughter|||19|105918 +3010|PA|Chester County|Modena borough|1206|0|3|Moury|Cristal Georgeann|2995|Mauritius|F|Daughter|||15|105919 +3010|PA|Chester County|Modena borough|1206|0|4|Moury|Susanna|2997|Missouri|F|Daughter|||13|105920 +3010|PA|Chester County|Modena borough|1206|0|5|Moury|Elvis|2999|Rhode Island|M|Son|||11|105921 + +3010|WI|Iron County|Montreal city|1207|0|1|Willette|Erick Nathaniel|2937|Missouri|M|Head|||73|105922 +3010|WI|Iron County|Montreal city|1207|0|2|Willette|Elaine|2940|Nebraska|F|Spouse|||70|105923 +3010|WI|Iron County|Montreal city|1207|0|3|Willette|Sharice|2988|Florida|F|Daughter|||22|105924 +3010|WI|Iron County|Montreal city|1207|0|4|Willette|Caroyln|2998|Connecticut|F|Daughter|||12|105925 +3010|WI|Iron County|Montreal city|1207|0|5|Willette|Lonna|3000|Minnesota|F|Daughter|||10|105926 +3010|WI|Iron County|Montreal city|1207|0|6|Willette|Homer|3001|WI|M|Son|||9|105927 + +3010|WI|Juneau County|Lisbon town|1208|0|1|Riebe|Alton Judson|2967|Austria|M|Head|||43|105928 +3010|WI|Juneau County|Lisbon town|1208|0|2|Riebe|Hallie|2967|West Virginia|F|Spouse|||43|105929 +3010|WI|Juneau County|Lisbon town|1208|0|3|Riebe|Rene|2999|Arkansas|F|Daughter|||11|105930 +3010|WI|Juneau County|Lisbon town|1208|0|4|Riebe|Hilde|3005|WI|F|Daughter|||5|105931 + +3010|WI|Douglas County|Poplar village|1209|0|1|Lee|Tasha|2972|Tonga|F|Head|||38|105932 +3010|WI|Douglas County|Poplar village|1209|0|2|Lee|Daniel|2998|Montana|M|Son|||12|105933 + +3010|ND|Pembina County|Mountain city|1210|0|1|Jasica|Connie Damian|2944|Tennessee|M|Head|||66|105934 +3010|ND|Pembina County|Mountain city|1210|0|2|Jasica|Marcene Delpha|2944|New Jersey|F|Spouse|||66|105935 +3010|ND|Pembina County|Mountain city|1210|0|3|Jasica|Malcolm|2976|Utah|M|Son|||34|105936 +3010|ND|Pembina County|Mountain city|1210|0|4|Jasica|Reena Chere|2994|China|F|Daughter|||16|105937 +3010|ND|Pembina County|Mountain city|1210|0|5|Jasica|Damion|2996|Colorado|M|Son|||14|105938 +3010|ND|Pembina County|Mountain city|1210|0|6|Jasica|Madeline|2998|Michigan|F|Daughter|||12|105939 +3010|ND|Pembina County|Mountain city|1210|0|7|Jasica|Sharice|3001|ND|F|Daughter|||9|105940 +3010|ND|Pembina County|Mountain city|1210|0|8|Jasica|Charla|3003|ND|F|Daughter|||7|105941 +3010|ND|Pembina County|Mountain city|1210|0|9|Jasica|Exie|3005|ND|F|Daughter|||5|105942 +3010|ND|Pembina County|Mountain city|1210|0|10|Jasica|Katharina|3007|ND|F|Daughter|||3|105943 + +3010|OH|Hamilton County|Forest Park city|1211|0|1|Schein|Richard Erasmo|2943|Utah|M|Head|||67|105944 +3010|OH|Hamilton County|Forest Park city|1211|0|2|Schein|Colleen|2947|North Carolina|F|Spouse|||63|105945 +3010|OH|Hamilton County|Forest Park city|1211|0|3|Schein|Phillip|2969|Idaho|M|Son|||41|105946 +3010|OH|Hamilton County|Forest Park city|1211|0|4|Schein|Ardath|2985|Kiribati|F|Daughter|||25|105947 +3010|OH|Hamilton County|Forest Park city|1211|0|5|Schein|Dominique Parker|2991|Hungary|M|Son|||19|105948 +3010|OH|Hamilton County|Forest Park city|1211|0|6|Schein|Robena|2995|Kansas|F|Daughter|||15|105949 +3010|OH|Hamilton County|Forest Park city|1211|0|7|Schein|Novella|2997|New York|F|Daughter|||13|105950 + +3010|MN|Crow Wing County|Jenkins township|1212|0|1|Herron|Lance Darius|2938|Alabama|M|Head|||72|105951 +3010|MN|Crow Wing County|Jenkins township|1212|0|2|Herron|Irena|2996|New Jersey|F|Daughter|||14|105952 + +3010|NE|Webster County|Bladen village|1213|0|1|Ming|Lyman Thad|2941|Louisiana|M|Head|||69|105953 +3010|NE|Webster County|Bladen village|1213|0|2|Ming|Bula|2952|Brunei Darussalam|F|Spouse|||58|105954 +3010|NE|Webster County|Bladen village|1213|0|3|Ming|Arturo Woodrow|2988|Togo|M|Son|||22|105955 +3010|NE|Webster County|Bladen village|1213|0|4|Ming|Maynard Jordan|2998|North Carolina|M|Son|||12|105956 +3010|NE|Webster County|Bladen village|1213|0|5|Ming|Jayme|3000|Michigan|F|Daughter|||10|105957 +3010|NE|Webster County|Bladen village|1213|0|6|Ming|Paulette|3003|NE|F|Daughter|||7|105958 + +3010|CA|Santa Cruz County|Brookdale CDP|1214|0|1|Rentz|Stacey Stacey|2963|Michigan|M|Head|||47|105959 +3010|CA|Santa Cruz County|Brookdale CDP|1214|0|2|Rentz|Kyla|2962|Arizona|F|Spouse|||48|105960 +3010|CA|Santa Cruz County|Brookdale CDP|1214|0|3|Rentz|Karine|2998|North Carolina|F|Daughter|||12|105961 +3010|CA|Santa Cruz County|Brookdale CDP|1214|0|4|Rentz|Jefferson|3005|MA|M|Son|||5|105962 + +3010|CT|Middlesex County|Durham town|1215|0|1|Dang|Edwin Mohammad|2944|Wisconsin|M|Head|||66|105963 +3010|CT|Middlesex County|Durham town|1215|0|2|Dang|Felisha|2967|Virginia|F|Spouse|||43|105964 +3010|CT|Middlesex County|Durham town|1215|0|3|Dang|Brooks|2993|Sierra Leone|M|Son|||17|105965 +3010|CT|Middlesex County|Durham town|1215|0|4|Dang|Cody|2999|Vermont|F|Daughter|||11|105966 +3010|CT|Middlesex County|Durham town|1215|0|5|Dang|Christin|3005|CT|F|Daughter|||5|105967 +3010|CT|Middlesex County|Durham town|1215|0|6|Dang|Courtney Miquel|3007|CT|M|Son|||3|105968 + +3010|KS|Saline County|Assaria city|1216|0|1|West|Christoper Garry|2950|Hawaii|M|Head|||60|105969 +3010|KS|Saline County|Assaria city|1216|0|2|West|Martina|2972|North Carolina|F|Spouse|||38|105970 +3010|KS|Saline County|Assaria city|1216|0|3|West|Ross|2996|Turkey|M|Son|||14|105971 +3010|KS|Saline County|Assaria city|1216|0|4|West|Teddy|2998|East Timor|M|Son|||12|105972 +3010|KS|Saline County|Assaria city|1216|0|5|West|Melony|3000|Ohio|F|Daughter|||10|105973 +3010|KS|Saline County|Assaria city|1216|0|6|West|Cory|3001|KS|M|Son|||9|105974 +3010|KS|Saline County|Assaria city|1216|0|7|West|Aldo|3003|KS|M|Son|||7|105975 + +3010|MN|Morrison County|Lastrup city|1217|0|1|Hester|Johnnie Barney|2939|South Dakota|M|Head|||71|105976 +3010|MN|Morrison County|Lastrup city|1217|0|2|Hester|Cherish|2939|Alabama|F|Spouse|||71|105977 +3010|MN|Morrison County|Lastrup city|1217|0|3|Hester|Mozella|2963|Qatar|F|Daughter|||47|105978 +3010|MN|Morrison County|Lastrup city|1217|0|4|Hester|Jared|2979|Tennessee|M|Son|||31|105979 +3010|MN|Morrison County|Lastrup city|1217|0|5|Hester|Dale|2985|Kansas|F|Daughter|||25|105980 +3010|MN|Morrison County|Lastrup city|1217|0|6|Hester|Tyrone|2989|Louisiana|M|Son|||21|105981 +3010|MN|Morrison County|Lastrup city|1217|0|7|Hester|Rodrigo|2991|New Mexico|M|Son|||19|105982 +3010|MN|Morrison County|Lastrup city|1217|0|8|Hester|Millard|2995|Alaska|M|Son|||15|105983 +3010|MN|Morrison County|Lastrup city|1217|0|9|Hester|Ester|2997|Alabama|F|Daughter|||13|105984 +3010|MN|Morrison County|Lastrup city|1217|0|10|Hester|Lorenzo Daron|2999|Antarctica|M|Son|||11|105985 +3010|MN|Morrison County|Lastrup city|1217|0|11|Hester|Cleveland|3003|MN|M|Son|||7|105986 +3010|MN|Morrison County|Lastrup city|1217|0|12|Hester|May Lyndia|3009|MN|F|Daughter|||1|105987 + +3010|PA|Lancaster County|Sadsbury township|1218|0|1|Ramirez|Graham Jackson|2960|Kentucky|M|Head|||50|105988 +3010|PA|Lancaster County|Sadsbury township|1218|0|2|Ramirez|Steven|2999|Arkansas|M|Son|||11|105989 + +3010|MN|Meeker County|Ellsworth township|1219|0|1|Doyle|Thad Modesto|2949|Hawaii|M|Head|||61|105990 +3010|MN|Meeker County|Ellsworth township|1219|0|2|Doyle|George|2948|New Jersey|F|Spouse|||62|105991 +3010|MN|Meeker County|Ellsworth township|1219|0|3|Doyle|Sung|2988|Massachusetts|M|Son|||22|105992 +3010|MN|Meeker County|Ellsworth township|1219|0|4|Doyle|Muriel|2996|Portugal|F|Daughter|||14|105993 +3010|MN|Meeker County|Ellsworth township|1219|0|5|Doyle|Roy|2998|New Mexico|F|Daughter|||12|105994 + +3010|TX|Angelina County|Hudson city|1220|0|1|Ortmeyer|Rosamond|2971|Georgia|F|Spouse|||39|105995 +3010|TX|Angelina County|Hudson city|1220|0|2|Ortmeyer|Dominic|2995|Oklahoma|M|Son|||15|105996 +3010|TX|Angelina County|Hudson city|1220|0|3|Ortmeyer|Gilbert|2997|Vermont|M|Son|||13|105997 +3010|TX|Angelina County|Hudson city|1220|0|4|Ortmeyer|Eugenio|3005|TX|M|Son|||5|105998 +3010|TX|Angelina County|Hudson city|1220|0|5|Ortmeyer|Margaret|3007|TX|F|Daughter|||3|105999 +3010|TX|Angelina County|Hudson city|1220|0|6|Ortmeyer|Junior|3009|TX|M|Son|||1|106000 + +3010|NJ|Middlesex County|Jamesburg borough|1221|0|1|Salberg|Bret Adrian|2947|Arizona|M|Head|||63|106001 +3010|NJ|Middlesex County|Jamesburg borough|1221|0|2|Salberg|Kina|2953|South Africa|F|Spouse|||57|106002 +3010|NJ|Middlesex County|Jamesburg borough|1221|0|3|Salberg|Quinn|2981|South Carolina|M|Son|||29|106003 +3010|NJ|Middlesex County|Jamesburg borough|1221|0|4|Salberg|Mose|2985|Heard Island And Mcdonald Islands|M|Son|||25|106004 +3010|NJ|Middlesex County|Jamesburg borough|1221|0|5|Salberg|Hobert|2995|Florida|M|Son|||15|106005 +3010|NJ|Middlesex County|Jamesburg borough|1221|0|6|Salberg|Eulah|2999|Alabama|F|Daughter|||11|106006 +3010|NJ|Middlesex County|Jamesburg borough|1221|0|7|Salberg|Kathie|3001|NJ|F|Daughter|||9|106007 +3010|NJ|Middlesex County|Jamesburg borough|1221|0|8|Salberg|Felton|3003|NJ|M|Son|||7|106008 + +3010|PA|Berks County|Wernersville borough|1222|0|1|Beidleman|Sung Barney|2964|Florida|M|Head|||46|106009 +3010|PA|Berks County|Wernersville borough|1222|0|2|Beidleman|Forest|2995|New Jersey|M|Son|||15|106010 +3010|PA|Berks County|Wernersville borough|1222|0|3|Beidleman|Jenee|2997|Kansas|F|Daughter|||13|106011 +3010|PA|Berks County|Wernersville borough|1222|0|4|Beidleman|Jed Leslie|2999|Czech Republic|M|Son|||11|106012 + +3010|PA|Franklin County|Washington township|1223|0|1|Zavodny|Jefferson Darnell|2943|Virginia|M|Head|||67|106013 +3010|PA|Franklin County|Washington township|1223|0|2|Zavodny|Shella|2946|Delaware|F|Spouse|||64|106014 +3010|PA|Franklin County|Washington township|1223|0|3|Zavodny|Russell Graham|2974|Colorado|M|Son|||36|106015 +3010|PA|Franklin County|Washington township|1223|0|4|Zavodny|Verline|2990|Oregon|F|Daughter|||20|106016 +3010|PA|Franklin County|Washington township|1223|0|5|Zavodny|Maria|2996|Switzerland|M|Son|||14|106017 +3010|PA|Franklin County|Washington township|1223|0|6|Zavodny|Juanita|3003|PA|F|Daughter|||7|106018 +3010|PA|Franklin County|Washington township|1223|0|7|Zavodny|Myron|3007|PA|M|Son|||3|106019 + +3010|WV|Mercer County|Brush Fork CDP|1224|0|1|Chenoweth|Dillon Maximo|2958|Saudi Arabia|M|Head|||52|106020 +3010|WV|Mercer County|Brush Fork CDP|1224|0|2|Chenoweth|Rico|2993|South Dakota|M|Son|||17|106021 +3010|WV|Mercer County|Brush Fork CDP|1224|0|3|Chenoweth|Johnson|2995|Arizona|M|Son|||15|106022 +3010|WV|Mercer County|Brush Fork CDP|1224|0|4|Chenoweth|Luther|2997|Vermont|M|Son|||13|106023 + +3010|NY|Ontario County|Naples town|1225|0|1|Karban|Harris Dwain|2943|Massachusetts|M|Head|||67|106024 +3010|NY|Ontario County|Naples town|1225|0|2|Karban|Felice|2950|Michigan|F|Spouse|||60|106025 +3010|NY|Ontario County|Naples town|1225|0|3|Karban|Darin|2992|Guadeloupe|M|Son|||18|106026 +3010|NY|Ontario County|Naples town|1225|0|4|Karban|Valentin|3000|French Guiana|M|Son|||10|106027 +3010|NY|Ontario County|Naples town|1225|0|5|Karban|Herta|3001|NY|F|Daughter|||9|106028 +3010|NY|Ontario County|Naples town|1225|0|6|Karban|Andrew|3005|NY|M|Son|||5|106029 + +3010|LA|Plaquemines Parish|Pointe a la Hache CDP|1226|0|1|Michel|Noah Sheldon|2969|Oregon|M|Head|||41|106030 +3010|LA|Plaquemines Parish|Pointe a la Hache CDP|1226|0|2|Michel|Sonja Jewell|2974|Louisiana|F|Spouse|||36|106031 +3010|LA|Plaquemines Parish|Pointe a la Hache CDP|1226|0|3|Michel|Donnell|3000|Oregon|M|Son|||10|106032 +3010|LA|Plaquemines Parish|Pointe a la Hache CDP|1226|0|4|Michel|Ellsworth|3001|LA|M|Son|||9|106033 +3010|LA|Plaquemines Parish|Pointe a la Hache CDP|1226|0|5|Michel|Mellie|3003|LA|F|Daughter|||7|106034 + +3010|CA|Marin County|Kentfield CDP|1227|0|1|Lynch|Theo Alfonso|2966|Virginia|M|Head|||44|106035 +3010|CA|Marin County|Kentfield CDP|1227|0|2|Lynch|Gretta Verlene|2972|New Hampshire|F|Spouse|||38|106036 +3010|CA|Marin County|Kentfield CDP|1227|0|3|Lynch|Geoffrey|2994|Colorado|M|Son|||16|106037 +3010|CA|Marin County|Kentfield CDP|1227|0|4|Lynch|Eric Shalanda|2996|California|F|Daughter|||14|106038 +3010|CA|Marin County|Kentfield CDP|1227|0|5|Lynch|Palmer|3001|CA|M|Son|||9|106039 +3010|CA|Marin County|Kentfield CDP|1227|0|6|Lynch|Antonina Cheyenne|3003|CA|F|Daughter|||7|106040 +3010|CA|Marin County|Kentfield CDP|1227|0|7|Lynch|Demarcus|3005|CA|M|Son|||5|106041 +3010|CA|Marin County|Kentfield CDP|1227|0|8|Lynch|Emilia Lorriane|3007|CA|F|Daughter|||3|106042 +3010|CA|Marin County|Kentfield CDP|1227|0|9|Lynch|Myron Johnie|3009|CA|M|Son|||1|106043 + +3010|PA|Luzerne County|Wright township|1228|0|1|Montalvo|Hal Tomas|2955|West Virginia|M|Head|||55|106044 +3010|PA|Luzerne County|Wright township|1228|0|2|Montalvo|Jackeline|2992|Nevada|F|Daughter|||18|106045 +3010|PA|Luzerne County|Wright township|1228|0|3|Montalvo|Buck|2998|California|M|Son|||12|106046 +3010|PA|Luzerne County|Wright township|1228|0|4|Montalvo|Leonida|3000|Washington|F|Daughter|||10|106047 + +3010|VT|Bennington County|Sandgate town|1229|0|1|Fuller|Palmer Jarvis|2947|South Carolina|M|Head|||63|106048 +3010|VT|Bennington County|Sandgate town|1229|0|2|Fuller|Wade|2985|Virginia|M|Son|||25|106049 +3010|VT|Bennington County|Sandgate town|1229|0|3|Fuller|Abram Heriberto|2995|Vermont|M|Son|||15|106050 +3010|VT|Bennington County|Sandgate town|1229|0|4|Fuller|Nancy|2997|Kentucky|F|Daughter|||13|106051 +3010|VT|Bennington County|Sandgate town|1229|0|5|Fuller|Young|2999|Pennsylvania|M|Son|||11|106052 + +3010|MO|Gasconade County|Hermann city|1230|0|1|Richter|Enoch Jonah|2952|Virginia|M|Head|||58|106053 +3010|MO|Gasconade County|Hermann city|1230|0|2|Richter|Natasha|2985|Tanzania, United Republic Of|F|Daughter|||25|106054 +3010|MO|Gasconade County|Hermann city|1230|0|3|Richter|Andrew|2999|Germany|M|Son|||11|106055 +3010|MO|Gasconade County|Hermann city|1230|0|4|Richter|Rochelle|3003|MI|F|Daughter|||7|106056 +3010|MO|Gasconade County|Hermann city|1230|0|5|Richter|Jimmie Britt|3007|MO|M|Son|||3|106057 +3010|MO|Gasconade County|Hermann city|1230|0|6|Richter|Conrad|3009|MO|M|Son|||1|106058 + +3010|MN|Winona County|Richmond township|1231|0|1|Jelarde|Buford Saul|2947|Colorado|M|Head|||63|106059 + +3010|NY|Dutchess County|Hyde Park town|1232|0|1|Reeves|Luigi Henry|2946|New York|M|Head|||64|106060 +3010|NY|Dutchess County|Hyde Park town|1232|0|2|Reeves|Donnie|2955|Michigan|F|Spouse|||55|106061 +3010|NY|Dutchess County|Hyde Park town|1232|0|3|Reeves|James|3001|NY|F|Daughter|||9|106062 +3010|NY|Dutchess County|Hyde Park town|1232|0|4|Reeves|Rory|3003|NY|M|Son|||7|106063 + +3010|MN|Mille Lacs County|Onamia city|1233|0|1|Bermudez|Dick Kory|2941|New York|M|Head|||69|106064 +3010|MN|Mille Lacs County|Onamia city|1233|0|2|Bermudez|Tequila|2947|Louisiana|F|Spouse|||63|106065 +3010|MN|Mille Lacs County|Onamia city|1233|0|3|Bermudez|Ettie|2967|Pennsylvania|F|Daughter|||43|106066 +3010|MN|Mille Lacs County|Onamia city|1233|0|4|Bermudez|Robby|2969|California|M|Son|||41|106067 +3010|MN|Mille Lacs County|Onamia city|1233|0|5|Bermudez|Jordon|2981|Slovakia|M|Son|||29|106068 +3010|MN|Mille Lacs County|Onamia city|1233|0|6|Bermudez|Bernadette|2997|Minnesota|F|Daughter|||13|106069 + +3010|WI|Douglas County|Superior village|1234|0|1|Lucio|Modesto Danny|2951|Missouri|M|Head|||59|106070 +3010|WI|Douglas County|Superior village|1234|0|2|Lucio|Kaylene|2961|Oklahoma|F|Spouse|||49|106071 +3010|WI|Douglas County|Superior village|1234|0|3|Lucio|Malisa|2995|Washington|F|Daughter|||15|106072 +3010|WI|Douglas County|Superior village|1234|0|4|Lucio|Shayne|2997|Georgia|M|Son|||13|106073 +3010|WI|Douglas County|Superior village|1234|0|5|Lucio|Foster|2999|North Carolina|M|Son|||11|106074 +3010|WI|Douglas County|Superior village|1234|0|6|Lucio|Elfriede|3001|WI|F|Daughter|||9|106075 +3010|WI|Douglas County|Superior village|1234|0|7|Lucio|Carri|3003|WI|F|Daughter|||7|106076 +3010|WI|Douglas County|Superior village|1234|0|8|Lucio|Corrina|3005|WI|F|Daughter|||5|106077 + +3010|MN|Anoka County, Isanti County|St. Francis city|1235|0|1|Wickell|Kyle Darnell|2955|Turks And Caicos Islands|M|Head|||55|106078 +3010|MN|Anoka County, Isanti County|St. Francis city|1235|0|2|Wickell|Li Paulita|2958|Oman|F|Spouse|||52|106079 +3010|MN|Anoka County, Isanti County|St. Francis city|1235|0|3|Wickell|Buster|2978|Arizona|M|Son|||32|106080 +3010|MN|Anoka County, Isanti County|St. Francis city|1235|0|4|Wickell|Perla|2986|North Carolina|F|Daughter|||24|106081 +3010|MN|Anoka County, Isanti County|St. Francis city|1235|0|5|Wickell|Modesto Dane|2996|Turks And Caicos Islands|M|Son|||14|106082 +3010|MN|Anoka County, Isanti County|St. Francis city|1235|0|6|Wickell|Horace|3000|Kentucky|M|Son|||10|106083 +3010|MN|Anoka County, Isanti County|St. Francis city|1235|0|7|Wickell|Sheba|3003|MN|F|Daughter|||7|106084 +3010|MN|Anoka County, Isanti County|St. Francis city|1235|0|8|Wickell|Zackary Noe|3005|MN|M|Son|||5|106085 +3010|MN|Anoka County, Isanti County|St. Francis city|1235|0|9|Wickell|Evonne|3007|MN|F|Daughter|||3|106086 + +3010|ME|Aroostook County|Oxbow plantation|1236|0|1|Fire|Dwight Charlie|2950|Mississippi|M|Head|||60|106087 +3010|ME|Aroostook County|Oxbow plantation|1236|0|2|Fire|Branda|2967|Utah|F|Spouse|||43|106088 +3010|ME|Aroostook County|Oxbow plantation|1236|0|3|Fire|August|2987|New Mexico|M|Son|||23|106089 +3010|ME|Aroostook County|Oxbow plantation|1236|0|4|Fire|Todd|2995|Georgia|M|Son|||15|106090 +3010|ME|Aroostook County|Oxbow plantation|1236|0|5|Fire|Letha|3003|ME|F|Daughter|||7|106091 +3010|ME|Aroostook County|Oxbow plantation|1236|0|6|Fire|Zachary|3007|ME|M|Son|||3|106092 + +3010|MA|Bristol County|Norton town|1237|0|1|Tarlton|Junior Olen|2970|Utah|M|Head|||40|106093 +3010|MA|Bristol County|Norton town|1237|0|2|Tarlton|Jefferey|2995|Massachusetts|M|Son|||15|106094 +3010|MA|Bristol County|Norton town|1237|0|3|Tarlton|Kareem Eddie|2997|New Jersey|M|Son|||13|106095 +3010|MA|Bristol County|Norton town|1237|0|4|Tarlton|Jann|2999|Uzbekistan|F|Daughter|||11|106096 + +3010|PA|Schuylkill County|Deer Lake borough|1238|0|1|Tenbrink|Jorge Antonio|2946|Tonga|M|Head|||64|106097 +3010|PA|Schuylkill County|Deer Lake borough|1238|0|2|Tenbrink|Caron Harold|2967|Vermont|F|Spouse|||43|106098 +3010|PA|Schuylkill County|Deer Lake borough|1238|0|3|Tenbrink|Lowell|2993|Connecticut|M|Son|||17|106099 +3010|PA|Schuylkill County|Deer Lake borough|1238|0|4|Tenbrink|Alfredia|2995|Georgia|F|Daughter|||15|106100 +3010|PA|Schuylkill County|Deer Lake borough|1238|0|5|Tenbrink|Winston Mose|3001|PA|M|Son|||9|106101 +3010|PA|Schuylkill County|Deer Lake borough|1238|0|6|Tenbrink|Gaye|3003|PA|F|Daughter|||7|106102 +3010|PA|Schuylkill County|Deer Lake borough|1238|0|7|Tenbrink|Erasmo|3009|PA|M|Son|||1|106103 + +3010|HI|Maui County|Kualapuu CDP|1239|0|1|Glass|Shirley Santo|2973|Massachusetts|M|Head|||37|106104 +3010|HI|Maui County|Kualapuu CDP|1239|0|2|Glass|Larita|2982|Illinois|F|Spouse|||28|106105 +3010|HI|Maui County|Kualapuu CDP|1239|0|3|Glass|Telma|3001|HI|F|Daughter|||9|106106 +3010|HI|Maui County|Kualapuu CDP|1239|0|4|Glass|Amparo|3007|HI|F|Daughter|||3|106107 +3010|HI|Maui County|Kualapuu CDP|1239|0|5|Glass|Dana|3009|HI|M|Son|||1|106108 + +3010|LA|Winn Parish|Jordan Hill CDP|1240|0|1|Wilken|Timmy Bernard|2957|Arkansas|M|Head|||53|106109 +3010|LA|Winn Parish|Jordan Hill CDP|1240|0|2|Wilken|Savanna Sherley|2972|North Carolina|F|Spouse|||38|106110 +3010|LA|Winn Parish|Jordan Hill CDP|1240|0|3|Wilken|Rosamond Lorraine|3000|Washington|F|Daughter|||10|106111 +3010|LA|Winn Parish|Jordan Hill CDP|1240|0|4|Wilken|Michel|3005|LA|M|Son|||5|106112 +3010|LA|Winn Parish|Jordan Hill CDP|1240|0|5|Wilken|Owen|3009|LA|M|Son|||1|106113 + +3010|NY|Oswego County|Schroeppel town|1241|0|1|Eagle|Odell|2937|Texas|M|Head|||73|106114 +3010|NY|Oswego County|Schroeppel town|1241|0|2|Eagle|Vida|2952|Dominican Republic|F|Spouse|||58|106115 +3010|NY|Oswego County|Schroeppel town|1241|0|3|Eagle|Mirta|2976|Vermont|F|Daughter|||34|106116 +3010|NY|Oswego County|Schroeppel town|1241|0|4|Eagle|Lucille|2990|Tajikistan|F|Daughter|||20|106117 +3010|NY|Oswego County|Schroeppel town|1241|0|5|Eagle|Martin|2996|Bouvet Island|M|Son|||14|106118 +3010|NY|Oswego County|Schroeppel town|1241|0|6|Eagle|Chae|3000|Oklahoma|F|Daughter|||10|106119 +3010|NY|Oswego County|Schroeppel town|1241|0|7|Eagle|Tiera|3001|NY|F|Daughter|||9|106120 +3010|NY|Oswego County|Schroeppel town|1241|0|8|Eagle|Adaline Yee|3003|NY|F|Daughter|||7|106121 + +3010|PA|Delaware County|Media borough|1242|0|1|Warren|Nichol|2970|Massachusetts|F|Head|||40|106122 +3010|PA|Delaware County|Media borough|1242|0|2|Warren|Tamie|2992|Solomon Islands|F|Daughter|||18|106123 +3010|PA|Delaware County|Media borough|1242|0|3|Warren|Ben|2996|Hawaii|M|Son|||14|106124 + +3010|ME|Aroostook County|Mapleton CDP|1243|0|1|Kite|Eddy Shelton|2948|Macau|M|Head|||62|106125 +3010|ME|Aroostook County|Mapleton CDP|1243|0|2|Kite|Gala Alejandrina|2989|Gabon|F|Daughter|||21|106126 +3010|ME|Aroostook County|Mapleton CDP|1243|0|3|Kite|Osvaldo|2991|California|M|Son|||19|106127 +3010|ME|Aroostook County|Mapleton CDP|1243|0|4|Kite|Veronique|2997|New Hampshire|F|Daughter|||13|106128 +3010|ME|Aroostook County|Mapleton CDP|1243|0|5|Kite|Kenny|2999|Nevada|M|Son|||11|106129 + +3010|NE|Kearney County|Norman village|1245|0|1|Zepeda|Garry Burton|2959|Mayotte|M|Head|||51|106130 +3010|NE|Kearney County|Norman village|1245|0|2|Zepeda|Glennis|2963|Michigan|F|Spouse|||47|106131 +3010|NE|Kearney County|Norman village|1245|0|3|Zepeda|Eden|3003|NE|F|Daughter|||7|106132 +3010|NE|Kearney County|Norman village|1245|0|4|Zepeda|Jonie|3009|NE|F|Daughter|||1|106133 + +3010|SD|Shannon County|Batesland town|1246|0|1|Sigmund|Werner Ricardo|2950|California|M|Head|||60|106134 +3010|SD|Shannon County|Batesland town|1246|0|2|Sigmund|Jackqueline|2967|Nevada|F|Spouse|||43|106135 +3010|SD|Shannon County|Batesland town|1246|0|3|Sigmund|Ai|2995|Tennessee|F|Daughter|||15|106136 +3010|SD|Shannon County|Batesland town|1246|0|4|Sigmund|Gilberto|2999|Texas|M|Son|||11|106137 +3010|SD|Shannon County|Batesland town|1246|0|5|Sigmund|Edmundo Hosea|3001|SD|M|Son|||9|106138 + +3010|CO|El Paso County|Peyton CDP|1247|0|1|Jones|Georgine|2945|Grenada|F|Head|||65|106139 +3010|CO|El Paso County|Peyton CDP|1247|0|2|Jones|Mora|2977|Alabama|F|Daughter|||33|106140 +3010|CO|El Paso County|Peyton CDP|1247|0|3|Jones|Zane|2991|Burkina Faso|M|Son|||19|106141 + +3010|VA|Prince William County|Cherry Hill CDP|1248|0|1|Szilagyi|Royce Johnson|2960|Colorado|M|Head|||50|106142 +3010|VA|Prince William County|Cherry Hill CDP|1248|0|2|Szilagyi|Shawnna|2982|Papua New Guinea|F|Spouse|||28|106143 +3010|VA|Prince William County|Cherry Hill CDP|1248|0|3|Szilagyi|Nena|3005|VA|F|Daughter|||5|106144 +3010|VA|Prince William County|Cherry Hill CDP|1248|0|4|Szilagyi|Rosita Serina|3009|VA|F|Daughter|||1|106145 + +3010|MN|McLeod County|Lester Prairie city|1249|0|1|Aleman|Hector|2979|Zambia|M|Head|||31|106146 + +3010|PA|Lackawanna County|Clarks Summit borough|1250|0|1|Troglin|Kermit Marc|2966|Arkansas|M|Head|||44|106147 +3010|PA|Lackawanna County|Clarks Summit borough|1250|0|2|Troglin|Julieann|2972|Oklahoma|F|Spouse|||38|106148 +3010|PA|Lackawanna County|Clarks Summit borough|1250|0|3|Troglin|Samira|2992|Wisconsin|F|Daughter|||18|106149 +3010|PA|Lackawanna County|Clarks Summit borough|1250|0|4|Troglin|Florentino|2994|Delaware|M|Son|||16|106150 +3010|PA|Lackawanna County|Clarks Summit borough|1250|0|5|Troglin|Berry|2996|Oklahoma|M|Son|||14|106151 +3010|PA|Lackawanna County|Clarks Summit borough|1250|0|6|Troglin|Elbert Lesley|3007|PA|M|Son|||3|106152 + +3010|PA|Columbia County|North Centre township|1251|0|1|Vincent|Gregorio|2966|Washington|M|Head|||44|106153 +3010|PA|Columbia County|North Centre township|1251|0|2|Vincent|Lavina|2978|Maryland|F|Spouse|||32|106154 +3010|PA|Columbia County|North Centre township|1251|0|3|Vincent|Norberto Francisco|2998|Louisiana|M|Son|||12|106155 +3010|PA|Columbia County|North Centre township|1251|0|4|Vincent|Shin|3001|PA|F|Daughter|||9|106156 +3010|PA|Columbia County|North Centre township|1251|0|5|Vincent|Geraldo Marvin|3003|PA|M|Son|||7|106157 +3010|PA|Columbia County|North Centre township|1251|0|6|Vincent|Christian|3005|PA|M|Son|||5|106158 +3010|PA|Columbia County|North Centre township|1251|0|7|Vincent|Isaiah|3009|PA|M|Son|||1|106159 + +3010|MI|Lenawee County|Ridgeway township|1252|0|1|Giantonio|Magdalene|2962|Illinois|F|Spouse|||48|106160 +3010|MI|Lenawee County|Ridgeway township|1252|0|2|Giantonio|Lucille Tammara|2994|Louisiana|F|Daughter|||16|106161 +3010|MI|Lenawee County|Ridgeway township|1252|0|3|Giantonio|Joan|3000|New Hampshire|M|Son|||10|106162 +3010|MI|Lenawee County|Ridgeway township|1252|0|4|Giantonio|Clementine Alejandrina|3003|MI|F|Daughter|||7|106163 + +3010|IN|Johnson County|Bargersville town|1253|0|1|Rincones|Jarvis Mack|2955|Washington|M|Head|||55|106164 +3010|IN|Johnson County|Bargersville town|1253|0|2|Rincones|Aleshia|2967|Alaska|F|Spouse|||43|106165 +3010|IN|Johnson County|Bargersville town|1253|0|3|Rincones|Walter Martin|2987|New Mexico|M|Son|||23|106166 +3010|IN|Johnson County|Bargersville town|1253|0|4|Rincones|Curtis|2991|Utah|F|Daughter|||19|106167 +3010|IN|Johnson County|Bargersville town|1253|0|5|Rincones|Elvin|2997|Mississippi|M|Son|||13|106168 +3010|IN|Johnson County|Bargersville town|1253|0|6|Rincones|Tyesha|3007|IN|F|Daughter|||3|106169 +3010|IN|Johnson County|Bargersville town|1253|0|7|Rincones|Ashli|3009|IN|F|Daughter|||1|106170 + +3010|CA|Alameda County|San Lorenzo CDP|1254|0|1|Lackey|Lanny Ellsworth|2955|New York|M|Head|||55|106171 +3010|CA|Alameda County|San Lorenzo CDP|1254|0|2|Lackey|Savanna|2967|Georgia|F|Spouse|||43|106172 +3010|CA|Alameda County|San Lorenzo CDP|1254|0|3|Lackey|Lashaun|2987|Virginia|F|Daughter|||23|106173 +3010|CA|Alameda County|San Lorenzo CDP|1254|0|4|Lackey|Oliver|2991|New Hampshire|M|Son|||19|106174 +3010|CA|Alameda County|San Lorenzo CDP|1254|0|5|Lackey|Sean|2995|Arkansas|M|Son|||15|106175 +3010|CA|Alameda County|San Lorenzo CDP|1254|0|6|Lackey|Ila Lindsay|2999|Pennsylvania|F|Daughter|||11|106176 +3010|CA|Alameda County|San Lorenzo CDP|1254|0|7|Lackey|Forest|3003|CA|M|Son|||7|106177 +3010|CA|Alameda County|San Lorenzo CDP|1254|0|8|Lackey|Vincenzo|3005|CA|M|Son|||5|106178 +3010|CA|Alameda County|San Lorenzo CDP|1254|0|9|Lackey|Tiny|3007|CA|F|Daughter|||3|106179 + +3010|OH|Clermont County|Day Heights CDP|1255|0|1|Wrights|Gaylord|2947|Delaware|M|Head|||63|106180 +3010|OH|Clermont County|Day Heights CDP|1255|0|2|Wrights|Rusty|2967|Ohio|M|Son|||43|106181 +3010|OH|Clermont County|Day Heights CDP|1255|0|3|Wrights|Orval|2985|Connecticut|M|Son|||25|106182 +3010|OH|Clermont County|Day Heights CDP|1255|0|4|Wrights|Rosario|2995|New Mexico|M|Son|||15|106183 + +3010|KS|Douglas County|Baldwin City city|1256|0|1|Laura|Celsa|2970|Latvia|F|Head|||40|106184 +3010|KS|Douglas County|Baldwin City city|1256|0|2|Laura|Franklyn|2990|Texas|M|Son|||20|106185 +3010|KS|Douglas County|Baldwin City city|1256|0|3|Laura|Sylvester|2992|Mississippi|M|Son|||18|106186 +3010|KS|Douglas County|Baldwin City city|1256|0|4|Laura|Myrtice|2994|Montserrat|F|Daughter|||16|106187 + +3010|PA|Juniata County, Snyder County|Richfield CDP|1257|0|1|White|Mack Ezra|2943|Bahrain|M|Head|||67|106188 +3010|PA|Juniata County, Snyder County|Richfield CDP|1257|0|2|White|Corrin|2976|Christmas Island|F|Daughter|||34|106189 +3010|PA|Juniata County, Snyder County|Richfield CDP|1257|0|3|White|Gerard|2984|Wisconsin|M|Son|||26|106190 +3010|PA|Juniata County, Snyder County|Richfield CDP|1257|0|4|White|Orlando|2992|Panama|M|Son|||18|106191 +3010|PA|Juniata County, Snyder County|Richfield CDP|1257|0|5|White|Landon|2998|Nevada|M|Son|||12|106192 + +3010|IA|Cerro Gordo County|Plymouth city|1258|0|1|Shrewsbury|Mark|2967|Maine|M|Head|||43|106193 +3010|IA|Cerro Gordo County|Plymouth city|1258|0|2|Shrewsbury|Georgine|2965|Saint Helena|F|Spouse|||45|106194 +3010|IA|Cerro Gordo County|Plymouth city|1258|0|3|Shrewsbury|Samuel|2999|Kansas|M|Son|||11|106195 +3010|IA|Cerro Gordo County|Plymouth city|1258|0|4|Shrewsbury|Jordan|3001|IA|M|Son|||9|106196 +3010|IA|Cerro Gordo County|Plymouth city|1258|0|5|Shrewsbury|Chae|3005|IA|F|Daughter|||5|106197 +3010|IA|Cerro Gordo County|Plymouth city|1258|0|6|Shrewsbury|Daria|3007|IA|F|Daughter|||3|106198 + +3010|OH|Mercer County|Fort Recovery village|1259|0|1|Valentine|Guadalupe King|2941|Arkansas|M|Head|||69|106199 +3010|OH|Mercer County|Fort Recovery village|1259|0|2|Valentine|Charity|2949|Oregon|F|Spouse|||61|106200 +3010|OH|Mercer County|Fort Recovery village|1259|0|3|Valentine|Kazuko|2985|New Hampshire|F|Daughter|||25|106201 +3010|OH|Mercer County|Fort Recovery village|1259|0|4|Valentine|Alan|2991|Uganda|M|Son|||19|106202 +3010|OH|Mercer County|Fort Recovery village|1259|0|5|Valentine|Miquel Billie|3001|NY|M|Son|||9|106203 +3010|OH|Mercer County|Fort Recovery village|1259|0|6|Valentine|Berry|3003|NY|M|Son|||7|106204 +3010|OH|Mercer County|Fort Recovery village|1259|0|7|Valentine|Josef|3005|NY|M|Son|||5|106205 + +3010|NJ|Gloucester County|Wenonah borough|1260|0|1|Barick|Javier Bret|2957|North Dakota|M|Head|||53|106206 +3010|NJ|Gloucester County|Wenonah borough|1260|0|2|Barick|Emogene|2953|Chad|F|Spouse|||57|106207 +3010|NJ|Gloucester County|Wenonah borough|1260|0|3|Barick|Dalton|2995|New Hampshire|M|Son|||15|106208 +3010|NJ|Gloucester County|Wenonah borough|1260|0|4|Barick|Myra|3009|NJ|F|Daughter|||1|106209 + +3010|WA|King County|Lake Marcel-Stillwater CDP|1261|0|1|Quick|Stuart Pat|2940|Utah|M|Head|||70|106210 +3010|WA|King County|Lake Marcel-Stillwater CDP|1261|0|2|Quick|Sheila Damaris|2963|Nebraska|F|Spouse|||47|106211 +3010|WA|King County|Lake Marcel-Stillwater CDP|1261|0|3|Quick|Cordelia|2991|Minnesota|F|Daughter|||19|106212 +3010|WA|King County|Lake Marcel-Stillwater CDP|1261|0|4|Quick|Marielle|2995|Poland|F|Daughter|||15|106213 +3010|WA|King County|Lake Marcel-Stillwater CDP|1261|0|5|Quick|Margorie|3001|SC|F|Daughter|||9|106214 + +3010|SC|Berkeley County|Hanahan city|1262|0|1|Halgas|Parker Thanh|2949|Northern Mariana Islands|M|Head|||61|106215 +3010|SC|Berkeley County|Hanahan city|1262|0|2|Halgas|Ardath|2982|Connecticut|F|Daughter|||28|106216 +3010|SC|Berkeley County|Hanahan city|1262|0|3|Halgas|Reyes|2986|Wisconsin|M|Son|||24|106217 +3010|SC|Berkeley County|Hanahan city|1262|0|4|Halgas|Carolyn|2996|South Carolina|F|Daughter|||14|106218 + +3010|OK|Greer County|Willow town|1263|0|1|Kanta|Carson Major|2952|Wisconsin|M|Head|||58|106219 +3010|OK|Greer County|Willow town|1263|0|2|Kanta|Becky|2949|Idaho|F|Spouse|||61|106220 +3010|OK|Greer County|Willow town|1263|0|3|Kanta|Burl|2969|Indiana|M|Son|||41|106221 +3010|OK|Greer County|Willow town|1263|0|4|Kanta|Chanel|2973|Alaska|F|Daughter|||37|106222 +3010|OK|Greer County|Willow town|1263|0|5|Kanta|Filomena|2985|Alaska|F|Daughter|||25|106223 +3010|OK|Greer County|Willow town|1263|0|6|Kanta|Allene|3003|OK|F|Daughter|||7|106224 +3010|OK|Greer County|Willow town|1263|0|7|Kanta|Margaretta|3007|OK|F|Daughter|||3|106225 + +3010|WV|Raleigh County|Glen White CDP|1264|0|1|Brandel|Cory|2961|Wyoming|F|Head|||49|106226 +3010|WV|Raleigh County|Glen White CDP|1264|0|2|Brandel|Leandra|2985|Idaho|F|Daughter|||25|106227 +3010|WV|Raleigh County|Glen White CDP|1264|0|3|Brandel|Jere|2999|North Carolina|M|Son|||11|106228 + +3010|NC|Wilkes County|Pleasant Hill CDP|1265|0|1|Gagne|Maxie Joycelyn|2946|Minnesota|F|Spouse|||64|106229 +3010|NC|Wilkes County|Pleasant Hill CDP|1265|0|2|Gagne|Mellissa|2982|Arizona|F|Daughter|||28|106230 +3010|NC|Wilkes County|Pleasant Hill CDP|1265|0|3|Gagne|Romeo Gavin|2986|Marshall Islands|M|Son|||24|106231 +3010|NC|Wilkes County|Pleasant Hill CDP|1265|0|4|Gagne|Kurtis|2996|Vermont|M|Son|||14|106232 +3010|NC|Wilkes County|Pleasant Hill CDP|1265|0|5|Gagne|Iraida|2998|Hawaii|F|Daughter|||12|106233 +3010|NC|Wilkes County|Pleasant Hill CDP|1265|0|6|Gagne|Lashanda Domitila|3001|NC|F|Daughter|||9|106234 +3010|NC|Wilkes County|Pleasant Hill CDP|1265|0|7|Gagne|Danial|3005|NC|M|Son|||5|106235 + +3010|NC|Greene County|Walstonburg town|1266|0|1|Bonamico|Katelyn|2956|Indiana|F|Spouse|||54|106236 +3010|NC|Greene County|Walstonburg town|1266|0|2|Bonamico|Yasmine|2982|Maryland|F|Daughter|||28|106237 +3010|NC|Greene County|Walstonburg town|1266|0|3|Bonamico|Jayson|2998|Arkansas|M|Son|||12|106238 +3010|NC|Greene County|Walstonburg town|1266|0|4|Bonamico|Jesse|3005|NC|M|Son|||5|106239 +3010|NC|Greene County|Walstonburg town|1266|0|5|Bonamico|Phylicia|3007|NC|F|Daughter|||3|106240 + +3010|MN|Hennepin County, Wright County|Hanover city|1267|0|1|Marshall|Jeremiah|2958|Oregon|M|Head|||52|106241 +3010|MN|Hennepin County, Wright County|Hanover city|1267|0|2|Marshall|Karolyn|2971|Nebraska|F|Spouse|||39|106242 +3010|MN|Hennepin County, Wright County|Hanover city|1267|0|3|Marshall|Lekisha|2997|Texas|F|Daughter|||13|106243 +3010|MN|Hennepin County, Wright County|Hanover city|1267|0|4|Marshall|Rachell|2999|Bangladesh|F|Daughter|||11|106244 +3010|MN|Hennepin County, Wright County|Hanover city|1267|0|5|Marshall|Emile|3005|MN|M|Son|||5|106245 +3010|MN|Hennepin County, Wright County|Hanover city|1267|0|6|Marshall|Keesha|3009|MN|F|Daughter|||1|106246 + +3010|MN|Washington County|Hugo city|1268|0|1|Loosier|Amos Howard|2964|Washington|M|Head|||46|106247 +3010|MN|Washington County|Hugo city|1268|0|2|Loosier|Nadine Albert|2970|New Jersey|F|Spouse|||40|106248 +3010|MN|Washington County|Hugo city|1268|0|3|Loosier|Danny|2994|Arizona|M|Son|||16|106249 +3010|MN|Washington County|Hugo city|1268|0|4|Loosier|Brittany|2996|Kansas|F|Daughter|||14|106250 +3010|MN|Washington County|Hugo city|1268|0|5|Loosier|Mike|3000|Massachusetts|F|Daughter|||10|106251 +3010|MN|Washington County|Hugo city|1268|0|6|Loosier|Jaime|3001|MN|M|Son|||9|106252 +3010|MN|Washington County|Hugo city|1268|0|7|Loosier|Blondell|3003|MN|F|Daughter|||7|106253 +3010|MN|Washington County|Hugo city|1268|0|8|Loosier|Adrian|3005|MN|M|Son|||5|106254 +3010|MN|Washington County|Hugo city|1268|0|9|Loosier|Otis|3009|MN|M|Son|||1|106255 + +3010|NC|Stanly County|New London town|1269|0|1|Williams|Damon Leopoldo|2974|Pennsylvania|M|Head|||36|106256 +3010|NC|Stanly County|New London town|1269|0|2|Williams|Latrisha Eleonora|2979|Belgium|F|Spouse|||31|106257 +3010|NC|Stanly County|New London town|1269|0|3|Williams|Celena|2999|Netherlands|F|Daughter|||11|106258 +3010|NC|Stanly County|New London town|1269|0|4|Williams|Jules|3009|NC|M|Son|||1|106259 + +3010|MA|Norfolk County|Brookline CDP|1270|0|1|Young|Rayford Faustino|2954|Belize|M|Head|||56|106260 +3010|MA|Norfolk County|Brookline CDP|1270|0|2|Young|Robena|2964|Idaho|F|Spouse|||46|106261 +3010|MA|Norfolk County|Brookline CDP|1270|0|3|Young|Pearly|2992|Rhode Island|F|Daughter|||18|106262 +3010|MA|Norfolk County|Brookline CDP|1270|0|4|Young|Leo|2994|Greece|M|Son|||16|106263 +3010|MA|Norfolk County|Brookline CDP|1270|0|5|Young|Jesusita|2998|Virgin Islands, British|F|Daughter|||12|106264 +3010|MA|Norfolk County|Brookline CDP|1270|0|6|Young|Irwin|3000|Michigan|M|Son|||10|106265 +3010|MA|Norfolk County|Brookline CDP|1270|0|7|Young|France|3003|MA|F|Daughter|||7|106266 +3010|MA|Norfolk County|Brookline CDP|1270|0|8|Young|Janetta Rhoda|3007|MA|F|Daughter|||3|106267 +3010|MA|Norfolk County|Brookline CDP|1270|0|9|Young|Loriann|3009|MA|F|Daughter|||1|106268 + +3010|NJ|Monmouth County|Neptune City borough|1271|0|1|Wheelus|Rickey Donn|2991|New Jersey|M|Son|||19|106269 +3010|NJ|Monmouth County|Neptune City borough|1271|0|2|Wheelus|Arie|2993|Jamaica|F|Daughter|||17|106270 +3010|NJ|Monmouth County|Neptune City borough|1271|0|3|Wheelus|Charlene|2997|Missouri|F|Daughter|||13|106271 +3010|NJ|Monmouth County|Neptune City borough|1271|0|4|Wheelus|Stan|2999|Argentina|M|Son|||11|106272 +3010|NJ|Monmouth County|Neptune City borough|1271|0|5|Wheelus|Darrel|3001|NJ|M|Son|||9|106273 +3010|NJ|Monmouth County|Neptune City borough|1271|0|6|Wheelus|Morton|3009|NJ|M|Son|||1|106274 + +3010|MN|Clearwater County|Leonard city|1272|0|1|Tommolino|Johnson Williams|2941|Ohio|M|Head|||69|106275 +3010|MN|Clearwater County|Leonard city|1272|0|2|Tommolino|Lidia|2999|Nevada|F|Daughter|||11|106276 +3010|MN|Clearwater County|Leonard city|1272|0|3|Tommolino|Darnell|3001|MN|M|Son|||9|106277 +3010|MN|Clearwater County|Leonard city|1272|0|4|Tommolino|Veola|3007|MN|F|Daughter|||3|106278 + +3010|MI|Midland County|Jerome township|1273|0|1|Barry|Kirk Pete|2956|Montana|M|Head|||54|106279 +3010|MI|Midland County|Jerome township|1273|0|2|Barry|Marquerite|2980|Benin|F|Spouse|||30|106280 +3010|MI|Midland County|Jerome township|1273|0|3|Barry|Lamar|3003|MI|M|Son|||7|106281 +3010|MI|Midland County|Jerome township|1273|0|4|Barry|Jaimee Tish|3005|MI|F|Daughter|||5|106282 +3010|MI|Midland County|Jerome township|1273|0|5|Barry|Lourdes|3007|MI|F|Daughter|||3|106283 +3010|MI|Midland County|Jerome township|1273|0|6|Barry|Alessandra|3009|MI|F|Daughter|||1|106284 + +3010|PA|Dauphin County|Swatara township|1274|0|1|Carner|Lonnie Miquel|2965|Texas|M|Head|||45|106285 +3010|PA|Dauphin County|Swatara township|1274|0|2|Carner|Floyd Marcus|2999|Iowa|M|Son|||11|106286 + +3010|IL|Coles County|Oakland city|1275|0|1|Noble|Guadalupe Alfredo|2942|Greenland|M|Head|||68|106287 +3010|IL|Coles County|Oakland city|1275|0|2|Noble|Jude Herschel|2978|New Hampshire|M|Son|||32|106288 +3010|IL|Coles County|Oakland city|1275|0|3|Noble|Lanie|2982|British Indian Ocean Territory|F|Daughter|||28|106289 +3010|IL|Coles County|Oakland city|1275|0|4|Noble|Katherine|2984|Morocco|F|Daughter|||26|106290 +3010|IL|Coles County|Oakland city|1275|0|5|Noble|Max|3000|Nicaragua|M|Son|||10|106291 + +3010|NY|Onondaga County|Fayetteville village|1276|0|1|Rumfelt|Ira Cristobal|2958|Wisconsin|M|Head|||52|106292 +3010|NY|Onondaga County|Fayetteville village|1276|0|2|Rumfelt|Geraldine|2990|Rhode Island|F|Daughter|||20|106293 +3010|NY|Onondaga County|Fayetteville village|1276|0|3|Rumfelt|Josef|3000|Connecticut|M|Son|||10|106294 + +3010|NY|Tompkins County|Groton village|1277|0|1|Emrich|Rudolph Victor|2955|Washington|M|Head|||55|106295 +3010|NY|Tompkins County|Groton village|1277|0|2|Emrich|Elwood|2984|Kentucky|M|Son|||26|106296 +3010|NY|Tompkins County|Groton village|1277|0|3|Emrich|Shara Loise|3000|Florida|F|Daughter|||10|106297 + +3010|CA|Napa County|Deer Park CDP|1278|0|1|Ladner|Angeline|2970|Wallis And Futuna|F|Spouse|||40|106298 +3010|CA|Napa County|Deer Park CDP|1278|0|2|Ladner|Joey|2996|Louisiana|M|Son|||14|106299 +3010|CA|Napa County|Deer Park CDP|1278|0|3|Ladner|Elroy|3000|Mauritania|M|Son|||10|106300 +3010|CA|Napa County|Deer Park CDP|1278|0|4|Ladner|Anastacia|3001|CA|F|Daughter|||9|106301 +3010|CA|Napa County|Deer Park CDP|1278|0|5|Ladner|Merideth|3003|CA|F|Daughter|||7|106302 + +3010|AL|Houston County|Cottonwood town|1279|0|1|Malley|Jeremiah Hipolito|2943|Virginia|M|Head|||67|106303 +3010|AL|Houston County|Cottonwood town|1279|0|2|Malley|Jeraldine|2972|Andorra|F|Daughter|||38|106304 +3010|AL|Houston County|Cottonwood town|1279|0|3|Malley|Jordon|2982|Colorado|M|Son|||28|106305 +3010|AL|Houston County|Cottonwood town|1279|0|4|Malley|Hank|2996|Georgia|M|Son|||14|106306 +3010|AL|Houston County|Cottonwood town|1279|0|5|Malley|Dee|3000|North Carolina|M|Son|||10|106307 +3010|AL|Houston County|Cottonwood town|1279|0|6|Malley|Nathanial|3003|AL|M|Son|||7|106308 + +3010|MN|Pipestone County|Holland city|1280|0|1|Douvia|Hector Cody|2962|Tennessee|M|Head|||48|106309 +3010|MN|Pipestone County|Holland city|1280|0|2|Douvia|Lashunda|2963|South Dakota|F|Spouse|||47|106310 +3010|MN|Pipestone County|Holland city|1280|0|3|Douvia|Ricardo|2989|Colorado|M|Son|||21|106311 +3010|MN|Pipestone County|Holland city|1280|0|4|Douvia|Antonia|2991|Bolivia|M|Son|||19|106312 +3010|MN|Pipestone County|Holland city|1280|0|5|Douvia|Andre Kareen|2999|Kentucky|F|Daughter|||11|106313 +3010|MN|Pipestone County|Holland city|1280|0|6|Douvia|Erick|3001|MN|M|Son|||9|106314 +3010|MN|Pipestone County|Holland city|1280|0|7|Douvia|Archie|3003|MN|M|Son|||7|106315 +3010|MN|Pipestone County|Holland city|1280|0|8|Douvia|Jaleesa|3005|MN|F|Daughter|||5|106316 +3010|MN|Pipestone County|Holland city|1280|0|9|Douvia|Toni|3009|MN|F|Daughter|||1|106317 + +3010|MI|Muskegon County|Casnovia township|1281|0|1|Scoma|Milan Sherwood|2954|Michigan|M|Head|||56|106318 +3010|MI|Muskegon County|Casnovia township|1281|0|2|Scoma|Mai|2960|Montana|F|Spouse|||50|106319 +3010|MI|Muskegon County|Casnovia township|1281|0|3|Scoma|Porfirio Terry|2996|Ohio|M|Son|||14|106320 +3010|MI|Muskegon County|Casnovia township|1281|0|4|Scoma|Caterina|3001|MI|F|Daughter|||9|106321 + +3010|NE|Morrill County|Bayard city|1282|0|1|Castillon|Johnathon Fausto|2979|Alaska|M|Head|||31|106322 +3010|NE|Morrill County|Bayard city|1282|0|2|Castillon|Leeanne|2982|Nevada|F|Spouse|||28|106323 +3010|NE|Morrill County|Bayard city|1282|0|3|Castillon|Kelvin Adalberto|3005|NE|M|Son|||5|106324 +3010|NE|Morrill County|Bayard city|1282|0|4|Castillon|Alfredo|3007|NE|M|Son|||3|106325 + +3010|IA|Montgomery County|Villisca city|1283|0|1|Hemple|Corey Joey|2956|North Dakota|M|Head|||54|106326 +3010|IA|Montgomery County|Villisca city|1283|0|2|Hemple|Pattie|2955|Arkansas|F|Spouse|||55|106327 +3010|IA|Montgomery County|Villisca city|1283|0|3|Hemple|Curt|2975|Nepal|M|Son|||35|106328 +3010|IA|Montgomery County|Villisca city|1283|0|4|Hemple|Joesph|2977|New Hampshire|M|Son|||33|106329 +3010|IA|Montgomery County|Villisca city|1283|0|5|Hemple|Cherri|2991|Missouri|F|Daughter|||19|106330 +3010|IA|Montgomery County|Villisca city|1283|0|6|Hemple|Devin|2995|Illinois|F|Daughter|||15|106331 +3010|IA|Montgomery County|Villisca city|1283|0|7|Hemple|Terrance|3003|MI|M|Son|||7|106332 + +3010|WY|Sweetwater County|Clearview Acres CDP|1284|0|1|Weissberg|Magnolia|2958|Mississippi|F|Head|||52|106333 +3010|WY|Sweetwater County|Clearview Acres CDP|1284|0|2|Weissberg|Jamel Archie|2988|Colorado|M|Son|||22|106334 + +3010|CT|Windham County|Scotland town|1285|0|1|Miller|Jesse Wilford|2950|Sri Lanka|M|Head|||60|106335 +3010|CT|Windham County|Scotland town|1285|0|2|Miller|Crista|2968|Ohio|F|Spouse|||42|106336 +3010|CT|Windham County|Scotland town|1285|0|3|Miller|Kasi|2988|Kosovo|F|Daughter|||22|106337 +3010|CT|Windham County|Scotland town|1285|0|4|Miller|Oren|3000|Louisiana|M|Son|||10|106338 +3010|CT|Windham County|Scotland town|1285|0|5|Miller|Andrea|3003|CT|M|Son|||7|106339 +3010|CT|Windham County|Scotland town|1285|0|6|Miller|Zachary Ned|3005|CT|M|Son|||5|106340 +3010|CT|Windham County|Scotland town|1285|0|7|Miller|Richard|3007|CT|M|Son|||3|106341 + +3010|SC|York County|Riverview CDP|1286|0|1|Taskey|Evette|2941|Arizona|F|Head|||69|106342 +3010|SC|York County|Riverview CDP|1286|0|2|Taskey|Torri|2965|Louisiana|F|Daughter|||45|106343 +3010|SC|York County|Riverview CDP|1286|0|3|Taskey|Abraham|2977|Wisconsin|M|Son|||33|106344 +3010|SC|York County|Riverview CDP|1286|0|4|Taskey|Kenton|2989|Pennsylvania|M|Son|||21|106345 +3010|SC|York County|Riverview CDP|1286|0|5|Taskey|Tracy|2995|Mississippi|F|Daughter|||15|106346 +3010|SC|York County|Riverview CDP|1286|0|6|Taskey|Adell|2999|Nebraska|F|Daughter|||11|106347 + +3010|NJ|Gloucester County|Woodbury city|1287|0|1|Pierce|Sean Ismael|2949|California|M|Head|||61|106348 +3010|NJ|Gloucester County|Woodbury city|1287|0|2|Pierce|Cornelia|2967|Sierra Leone|F|Spouse|||43|106349 +3010|NJ|Gloucester County|Woodbury city|1287|0|3|Pierce|Suzie|2993|North Carolina|F|Daughter|||17|106350 +3010|NJ|Gloucester County|Woodbury city|1287|0|4|Pierce|Javier Reed|2995|Connecticut|M|Son|||15|106351 +3010|NJ|Gloucester County|Woodbury city|1287|0|5|Pierce|Herlinda|2997|Wyoming|F|Daughter|||13|106352 +3010|NJ|Gloucester County|Woodbury city|1287|0|6|Pierce|Heidy|3001|NJ|F|Daughter|||9|106353 +3010|NJ|Gloucester County|Woodbury city|1287|0|7|Pierce|Ivana|3005|NJ|F|Daughter|||5|106354 +3010|NJ|Gloucester County|Woodbury city|1287|0|8|Pierce|Michell|3007|NJ|F|Daughter|||3|106355 + +3010|IA|Woodbury County|Oto city|1288|0|1|Lopinto|Jacinto Lucio|2946|East Timor|M|Head|||64|106356 +3010|IA|Woodbury County|Oto city|1288|0|2|Lopinto|Lorraine|2942|Kentucky|F|Spouse|||68|106357 +3010|IA|Woodbury County|Oto city|1288|0|3|Lopinto|Glady|2966|Massachusetts|F|Daughter|||44|106358 +3010|IA|Woodbury County|Oto city|1288|0|4|Lopinto|Jimmie|2968|Turkey|M|Son|||42|106359 +3010|IA|Woodbury County|Oto city|1288|0|5|Lopinto|Teri|2986|Virginia|F|Daughter|||24|106360 +3010|IA|Woodbury County|Oto city|1288|0|6|Lopinto|Jordon|2996|Idaho|M|Son|||14|106361 +3010|IA|Woodbury County|Oto city|1288|0|7|Lopinto|Bari Shantell|2998|Connecticut|F|Daughter|||12|106362 +3010|IA|Woodbury County|Oto city|1288|0|8|Lopinto|Stewart Marty|3007|IA|M|Son|||3|106363 + +3010|AZ|Apache County|Rock Point CDP|1289|0|1|Stanford|Ignacio Jody|2954|North Dakota|M|Head|||56|106364 +3010|AZ|Apache County|Rock Point CDP|1289|0|2|Stanford|Juli|2965|Connecticut|F|Spouse|||45|106365 +3010|AZ|Apache County|Rock Point CDP|1289|0|3|Stanford|Jessia|2989|Ohio|F|Daughter|||21|106366 +3010|AZ|Apache County|Rock Point CDP|1289|0|4|Stanford|Vi|2993|New Jersey|F|Daughter|||17|106367 +3010|AZ|Apache County|Rock Point CDP|1289|0|5|Stanford|Lavern|2997|Kentucky|M|Son|||13|106368 +3010|AZ|Apache County|Rock Point CDP|1289|0|6|Stanford|Livia|3001|HI|F|Daughter|||9|106369 + +3010|MN|Redwood County|Clements city|1290|0|1|Lang|Harley Vincent|2940|Pennsylvania|M|Head|||70|106370 +3010|MN|Redwood County|Clements city|1290|0|2|Lang|Jessica|2956|Connecticut|F|Spouse|||54|106371 +3010|MN|Redwood County|Clements city|1290|0|3|Lang|Ian|2986|Slovakia|M|Son|||24|106372 +3010|MN|Redwood County|Clements city|1290|0|4|Lang|Libbie|2990|India|F|Daughter|||20|106373 +3010|MN|Redwood County|Clements city|1290|0|5|Lang|Dirk|2998|Tanzania, United Republic Of|M|Son|||12|106374 +3010|MN|Redwood County|Clements city|1290|0|6|Lang|Johnathan|3001|PA|M|Son|||9|106375 + +3010|MD|Kent County|Rock Hall town|1291|0|1|Grosser|Tobias Lonnie|2984|Louisiana|M|Head|||26|106376 +3010|MD|Kent County|Rock Hall town|1291|0|2|Grosser|Jeanine|2984|Oklahoma|F|Spouse|||26|106377 +3010|MD|Kent County|Rock Hall town|1291|0|3|Grosser|Audrea|3001|MI|F|Daughter|||9|106378 +3010|MD|Kent County|Rock Hall town|1291|0|4|Grosser|Jake Malcolm|3009|MD|M|Son|||1|106379 + +3010|ME|Somerset County|Hartland CDP|1292|0|1|Dees|Kayla|2974|New Mexico|F|Spouse|||36|106380 +3010|ME|Somerset County|Hartland CDP|1292|0|2|Dees|Rex|2996|Guadeloupe|M|Son|||14|106381 +3010|ME|Somerset County|Hartland CDP|1292|0|3|Dees|Alisia|2998|Texas|F|Daughter|||12|106382 +3010|ME|Somerset County|Hartland CDP|1292|0|4|Dees|Adolph Collin|3001|ME|M|Son|||9|106383 +3010|ME|Somerset County|Hartland CDP|1292|0|5|Dees|Ervin|3007|ME|M|Son|||3|106384 + +3010|WI|Outagamie County|Kaukauna city|1293|0|1|Chambless|Allan Cliff|2945|California|M|Head|||65|106385 +3010|WI|Outagamie County|Kaukauna city|1293|0|2|Chambless|Lavona|2964|North Carolina|F|Spouse|||46|106386 +3010|WI|Outagamie County|Kaukauna city|1293|0|3|Chambless|Socorro|2990|Virginia|F|Daughter|||20|106387 +3010|WI|Outagamie County|Kaukauna city|1293|0|4|Chambless|Terrell Loren|3000|Pennsylvania|M|Son|||10|106388 +3010|WI|Outagamie County|Kaukauna city|1293|0|5|Chambless|Orville Jerald|3001|WI|M|Son|||9|106389 +3010|WI|Outagamie County|Kaukauna city|1293|0|6|Chambless|Donnell|3003|WI|M|Son|||7|106390 + +3010|NH|Hillsborough County|Milford CDP|1294|0|1|Frantz|Rodrigo Rayford|2940|Montana|M|Head|||70|106391 +3010|NH|Hillsborough County|Milford CDP|1294|0|2|Frantz|Lilian|2962|South Dakota|F|Spouse|||48|106392 +3010|NH|Hillsborough County|Milford CDP|1294|0|3|Frantz|Zina|2998|Italy|F|Daughter|||12|106393 +3010|NH|Hillsborough County|Milford CDP|1294|0|4|Frantz|Odessa Kecia|3000|Massachusetts|F|Daughter|||10|106394 +3010|NH|Hillsborough County|Milford CDP|1294|0|5|Frantz|Toney|3001|NH|M|Son|||9|106395 +3010|NH|Hillsborough County|Milford CDP|1294|0|6|Frantz|Evelia|3003|NH|F|Daughter|||7|106396 +3010|NH|Hillsborough County|Milford CDP|1294|0|7|Frantz|Guadalupe|3005|NH|M|Son|||5|106397 +3010|NH|Hillsborough County|Milford CDP|1294|0|8|Frantz|Larae|3009|NH|F|Daughter|||1|106398 + +3010|CA|Los Angeles County|West Whittier-Los Nietos CDP|1295|0|1|Luoto|Tristan|2976|Washington|M|Head|||34|106399 +3010|CA|Los Angeles County|West Whittier-Los Nietos CDP|1295|0|2|Luoto|Echo|2999|New Hampshire|F|Daughter|||11|106400 + +3010|WI|Marinette County|Goodman CDP|1296|0|1|Temples|Noel Raymon|2970|Montserrat|M|Head|||40|106401 +3010|WI|Marinette County|Goodman CDP|1296|0|2|Temples|Kathyrn|2982|Florida|F|Spouse|||28|106402 +3010|WI|Marinette County|Goodman CDP|1296|0|3|Temples|Dorethea|3001|WI|F|Daughter|||9|106403 +3010|WI|Marinette County|Goodman CDP|1296|0|4|Temples|Mel|3005|WI|M|Son|||5|106404 +3010|WI|Marinette County|Goodman CDP|1296|0|5|Temples|Krysta|3007|WI|F|Daughter|||3|106405 +3010|WI|Marinette County|Goodman CDP|1296|0|6|Temples|Elba|3009|WI|F|Daughter|||1|106406 + +3010|VT|Essex County|Brunswick town|1297|0|1|Lanton|Irvin Scott|2963|Estonia|M|Head|||47|106407 +3010|VT|Essex County|Brunswick town|1297|0|2|Lanton|Maggie|2978|Texas|F|Spouse|||32|106408 +3010|VT|Essex County|Brunswick town|1297|0|3|Lanton|Dominique|2998|Belarus|F|Daughter|||12|106409 +3010|VT|Essex County|Brunswick town|1297|0|4|Lanton|Tiffiny|3000|Kansas|F|Daughter|||10|106410 +3010|VT|Essex County|Brunswick town|1297|0|5|Lanton|Frederica|3001|VT|F|Daughter|||9|106411 +3010|VT|Essex County|Brunswick town|1297|0|6|Lanton|Renato|3007|VT|M|Son|||3|106412 + +3010|NY|Chemung County|Horseheads village|1298|0|1|Lewis|Roberto|2944|Canada|M|Head|||66|106413 +3010|NY|Chemung County|Horseheads village|1298|0|2|Lewis|Sharda|2944|New Hampshire|F|Spouse|||66|106414 +3010|NY|Chemung County|Horseheads village|1298|0|3|Lewis|Zane|2982|Norfolk Island|M|Son|||28|106415 +3010|NY|Chemung County|Horseheads village|1298|0|4|Lewis|Merrill|2984|Ohio|M|Son|||26|106416 +3010|NY|Chemung County|Horseheads village|1298|0|5|Lewis|Harland|2986|Rhode Island|M|Son|||24|106417 +3010|NY|Chemung County|Horseheads village|1298|0|6|Lewis|Dewitt|2994|Vermont|M|Son|||16|106418 +3010|NY|Chemung County|Horseheads village|1298|0|7|Lewis|Arthur|2998|Sao Tome And Principe|M|Son|||12|106419 + +3010|ND|Slope County|Amidon city|1299|0|1|Hernandez|Galen Jame|2941|Louisiana|M|Head|||69|106420 +3010|ND|Slope County|Amidon city|1299|0|2|Hernandez|Clementina Temple|2944|Kentucky|F|Spouse|||66|106421 +3010|ND|Slope County|Amidon city|1299|0|3|Hernandez|Keven|2966|Virginia|M|Son|||44|106422 +3010|ND|Slope County|Amidon city|1299|0|4|Hernandez|Tawana Zita|2986|Hawaii|F|Daughter|||24|106423 +3010|ND|Slope County|Amidon city|1299|0|5|Hernandez|Maria|2996|Singapore|F|Daughter|||14|106424 +3010|ND|Slope County|Amidon city|1299|0|6|Hernandez|Jacinta|3001|ND|F|Daughter|||9|106425 + +3010|WI|Shawano County|Pella town|1300|0|1|Bucks|Albert Chris|2956|Alabama|M|Head|||54|106426 +3010|WI|Shawano County|Pella town|1300|0|2|Bucks|Jordan|2972|Haiti|F|Spouse|||38|106427 +3010|WI|Shawano County|Pella town|1300|0|3|Bucks|Shela Clorinda|2996|South Carolina|F|Daughter|||14|106428 +3010|WI|Shawano County|Pella town|1300|0|4|Bucks|Josiah|3001|WI|M|Son|||9|106429 +3010|WI|Shawano County|Pella town|1300|0|5|Bucks|Bethany|3003|WI|F|Daughter|||7|106430 +3010|WI|Shawano County|Pella town|1300|0|6|Bucks|Kermit Erasmo|3005|WI|M|Son|||5|106431 +3010|WI|Shawano County|Pella town|1300|0|7|Bucks|Tisha|3007|WI|F|Daughter|||3|106432 +3010|WI|Shawano County|Pella town|1300|0|8|Bucks|Lezlie Frieda|3009|WI|F|Daughter|||1|106433 + +3010|PA|Schuylkill County|New Castle township|1301|0|1|Dighton|Lindsey Alfonzo|2967|Colorado|M|Head|||43|106434 + +3010|IA|Johnson County|Swisher city|1302|0|1|Best|Emerson Hugh|2959|Chad|M|Head|||51|106435 +3010|IA|Johnson County|Swisher city|1302|0|2|Best|Yolonda|2960|Mississippi|F|Spouse|||50|106436 +3010|IA|Johnson County|Swisher city|1302|0|3|Best|Danita|2998|Oregon|F|Daughter|||12|106437 +3010|IA|Johnson County|Swisher city|1302|0|4|Best|Kieth|3003|IA|M|Son|||7|106438 + +3010|PA|Butler County|Muddy Creek township|1303|0|1|Hayzlett|Tawana Wai|2962|Hawaii|F|Head|||48|106439 +3010|PA|Butler County|Muddy Creek township|1303|0|2|Hayzlett|Latrina|3000|Tennessee|F|Daughter|||10|106440 + +3010|OH|Wayne County|Smithville village|1304|0|1|Nicholson|Emmett Melvin|2956|Macau|M|Head|||54|106441 +3010|OH|Wayne County|Smithville village|1304|0|2|Nicholson|Shu|2980|Washington|F|Spouse|||30|106442 +3010|OH|Wayne County|Smithville village|1304|0|3|Nicholson|Bryant|3000|Virginia|M|Son|||10|106443 +3010|OH|Wayne County|Smithville village|1304|0|4|Nicholson|Stacey|3001|NY|M|Son|||9|106444 +3010|OH|Wayne County|Smithville village|1304|0|5|Nicholson|Deana|3007|OH|F|Daughter|||3|106445 + +3010|WI|Buffalo County|Alma city|1305|0|1|Snavely|Olin Randal|2949|Washington|M|Head|||61|106446 +3010|WI|Buffalo County|Alma city|1305|0|2|Snavely|Fabiola Opal|2976|Minnesota|F|Daughter|||34|106447 +3010|WI|Buffalo County|Alma city|1305|0|3|Snavely|Darius|2978|Mississippi|M|Son|||32|106448 +3010|WI|Buffalo County|Alma city|1305|0|4|Snavely|Leisa|2990|Wisconsin|F|Daughter|||20|106449 +3010|WI|Buffalo County|Alma city|1305|0|5|Snavely|Cecila|2994|Oklahoma|F|Daughter|||16|106450 +3010|WI|Buffalo County|Alma city|1305|0|6|Snavely|Rick|2996|Utah|M|Son|||14|106451 + +3010|NJ|Somerset County|Bernardsville borough|1306|0|1|Gonzalez|Glenn Salvador|2964|Antigua And Barbuda|M|Head|||46|106452 +3010|NJ|Somerset County|Bernardsville borough|1306|0|2|Gonzalez|Kandice|2972|Virginia|F|Spouse|||38|106453 +3010|NJ|Somerset County|Bernardsville borough|1306|0|3|Gonzalez|Emerson|2996|Maryland|M|Son|||14|106454 +3010|NJ|Somerset County|Bernardsville borough|1306|0|4|Gonzalez|Eldon|2998|South Dakota|M|Son|||12|106455 +3010|NJ|Somerset County|Bernardsville borough|1306|0|5|Gonzalez|Dorinda|3001|NJ|F|Daughter|||9|106456 +3010|NJ|Somerset County|Bernardsville borough|1306|0|6|Gonzalez|Min|3007|NJ|F|Daughter|||3|106457 +3010|NJ|Somerset County|Bernardsville borough|1306|0|7|Gonzalez|Efrain|3009|NJ|M|Son|||1|106458 + +3010|TX|Navarro County|Goodlow city|1307|0|1|Kim|Armanda|2962|Texas|F|Head|||48|106459 +3010|TX|Navarro County|Goodlow city|1307|0|2|Kim|Shandi|2996|Florida|F|Daughter|||14|106460 +3010|TX|Navarro County|Goodlow city|1307|0|3|Kim|Sammy|3000|New Hampshire|F|Daughter|||10|106461 + +3010|NY|Chautauqua County|Sherman town|1308|0|1|Wanczyk|Leonard Barrett|2937|New York|M|Head|||73|106462 +3010|NY|Chautauqua County|Sherman town|1308|0|2|Wanczyk|Herbert|2988|Vermont|M|Son|||22|106463 + +3010|PA|Columbia County|South Centre township|1309|0|1|Hiltbrand|Mauro Thurman|2959|Maryland|M|Head|||51|106464 +3010|PA|Columbia County|South Centre township|1309|0|2|Hiltbrand|Veda|2979|Illinois|F|Spouse|||31|106465 +3010|PA|Columbia County|South Centre township|1309|0|3|Hiltbrand|Solomon|2999|Missouri|M|Son|||11|106466 +3010|PA|Columbia County|South Centre township|1309|0|4|Hiltbrand|Ramon|3001|PA|M|Son|||9|106467 + +3010|AZ|Coconino County|Supai CDP|1310|0|1|Chiarelli|Malcolm Santos|2963|Florida|M|Head|||47|106468 +3010|AZ|Coconino County|Supai CDP|1310|0|2|Chiarelli|Lauralee|2970|West Virginia|F|Spouse|||40|106469 +3010|AZ|Coconino County|Supai CDP|1310|0|3|Chiarelli|Jerrold|2996|Arkansas|M|Son|||14|106470 +3010|AZ|Coconino County|Supai CDP|1310|0|4|Chiarelli|Ashley|3000|Colorado|F|Daughter|||10|106471 +3010|AZ|Coconino County|Supai CDP|1310|0|5|Chiarelli|Cammie|3001|AZ|F|Daughter|||9|106472 +3010|AZ|Coconino County|Supai CDP|1310|0|6|Chiarelli|Marquita|3003|AZ|F|Daughter|||7|106473 + +3010|FL|Lake County|Astor CDP|1311|0|1|Ferguson|Earle Rocco|2950|Kentucky|M|Head|||60|106474 +3010|FL|Lake County|Astor CDP|1311|0|2|Ferguson|Leandra|2971|Virginia|F|Spouse|||39|106475 +3010|FL|Lake County|Astor CDP|1311|0|3|Ferguson|Thu|2991|Libyan Arab Jamahiriya|F|Daughter|||19|106476 +3010|FL|Lake County|Astor CDP|1311|0|4|Ferguson|Terrance|3005|FL|M|Son|||5|106477 +3010|FL|Lake County|Astor CDP|1311|0|5|Ferguson|Lala|3007|FL|F|Daughter|||3|106478 +3010|FL|Lake County|Astor CDP|1311|0|6|Ferguson|Devon|3009|FL|M|Son|||1|106479 + +3010|TX|Jefferson County|Bevil Oaks city|1312|0|1|Corbett|Dominique Denver|2940|New Jersey|M|Head|||70|106480 +3010|TX|Jefferson County|Bevil Oaks city|1312|0|2|Corbett|Bradford|2989|South Dakota|M|Son|||21|106481 +3010|TX|Jefferson County|Bevil Oaks city|1312|0|3|Corbett|Mauro|2997|Arizona|M|Son|||13|106482 + +3010|WI|Rusk County|Wilson town|1313|0|1|Sporman|Jeannetta|2954|Israel|F|Spouse|||56|106483 +3010|WI|Rusk County|Wilson town|1313|0|2|Sporman|Aaron|2980|Minnesota|M|Son|||30|106484 +3010|WI|Rusk County|Wilson town|1313|0|3|Sporman|Daron|2996|Tonga|M|Son|||14|106485 +3010|WI|Rusk County|Wilson town|1313|0|4|Sporman|Consuela Sherrill|2998|British Indian Ocean Territory|F|Daughter|||12|106486 +3010|WI|Rusk County|Wilson town|1313|0|5|Sporman|John|3000|Arizona|M|Son|||10|106487 + +3010|NH|Grafton County|Mountain Lakes CDP|1314|0|1|Scott|Cordia|2943|South Carolina|F|Spouse|||67|106488 +3010|NH|Grafton County|Mountain Lakes CDP|1314|0|2|Scott|Doreen|2985|Morocco|F|Daughter|||25|106489 +3010|NH|Grafton County|Mountain Lakes CDP|1314|0|3|Scott|Hassie|2991|Illinois|F|Daughter|||19|106490 +3010|NH|Grafton County|Mountain Lakes CDP|1314|0|4|Scott|Cristie|2995|Hawaii|F|Daughter|||15|106491 +3010|NH|Grafton County|Mountain Lakes CDP|1314|0|5|Scott|Sol|3001|NH|F|Daughter|||9|106492 +3010|NH|Grafton County|Mountain Lakes CDP|1314|0|6|Scott|Geri|3007|NH|F|Daughter|||3|106493 + +3010|PA|Cambria County|Cambria township|1315|0|1|Agosto|Tyron Bill|2956|Michigan|M|Head|||54|106494 +3010|PA|Cambria County|Cambria township|1315|0|2|Agosto|Mozell Jude|2964|New York|F|Spouse|||46|106495 +3010|PA|Cambria County|Cambria township|1315|0|3|Agosto|Jeana Johnetta|2998|Tennessee|F|Daughter|||12|106496 +3010|PA|Cambria County|Cambria township|1315|0|4|Agosto|Blake|3003|PA|M|Son|||7|106497 +3010|PA|Cambria County|Cambria township|1315|0|5|Agosto|Jacob|3007|PA|M|Son|||3|106498 +3010|PA|Cambria County|Cambria township|1315|0|6|Agosto|Kim|3009|PA|M|Son|||1|106499 + +3010|WI|Racine County|Norway town|1316|0|1|Sorrell|Charley|2955|South Carolina|M|Head|||55|106500 +3010|WI|Racine County|Norway town|1316|0|2|Sorrell|Marisol|2998|Wisconsin|F|Daughter|||12|106501 +3010|WI|Racine County|Norway town|1316|0|3|Sorrell|Keenan|3000|Pennsylvania|M|Son|||10|106502 + +3010|TX|Dawson County|Welch CDP|1317|0|1|Lindmeyer|Berry Tracey|2972|Colombia|M|Head|||38|106503 +3010|TX|Dawson County|Welch CDP|1317|0|2|Lindmeyer|Babara|2968|West Virginia|F|Spouse|||42|106504 +3010|TX|Dawson County|Welch CDP|1317|0|3|Lindmeyer|Tawny Shawanna|2994|Massachusetts|F|Daughter|||16|106505 +3010|TX|Dawson County|Welch CDP|1317|0|4|Lindmeyer|Jule|2996|Kansas|F|Daughter|||14|106506 +3010|TX|Dawson County|Welch CDP|1317|0|5|Lindmeyer|Keeley|3003|TX|F|Daughter|||7|106507 +3010|TX|Dawson County|Welch CDP|1317|0|6|Lindmeyer|Pamela|3009|TX|F|Daughter|||1|106508 + +3010|NY|Wyoming County|Perry village|1318|0|1|Mazell|Darnell Benny|2948|Angola|M|Head|||62|106509 +3010|NY|Wyoming County|Perry village|1318|0|2|Mazell|Ailene|2946|Washington|F|Spouse|||64|106510 +3010|NY|Wyoming County|Perry village|1318|0|3|Mazell|Werner|2972|Utah|M|Son|||38|106511 +3010|NY|Wyoming County|Perry village|1318|0|4|Mazell|Dina|2998|South Carolina|F|Daughter|||12|106512 +3010|NY|Wyoming County|Perry village|1318|0|5|Mazell|Avery|3003|NY|M|Son|||7|106513 +3010|NY|Wyoming County|Perry village|1318|0|6|Mazell|Darren|3007|NY|M|Son|||3|106514 + +3010|MO|Stoddard County|Dexter city|1319|0|1|Callahan|Lynwood|2952|Montana|M|Head|||58|106515 + +3010|MI|Schoolcraft County|Mueller township|1320|0|1|Bonepart|Jae Brendon|2949|Viet Nam|M|Head|||61|106516 +3010|MI|Schoolcraft County|Mueller township|1320|0|2|Bonepart|Gilberte Marshall|2960|Illinois|F|Spouse|||50|106517 +3010|MI|Schoolcraft County|Mueller township|1320|0|3|Bonepart|Quinn|2984|Antarctica|M|Son|||26|106518 +3010|MI|Schoolcraft County|Mueller township|1320|0|4|Bonepart|Alonso|2990|Iowa|M|Son|||20|106519 +3010|MI|Schoolcraft County|Mueller township|1320|0|5|Bonepart|Marx|2996|New Mexico|F|Daughter|||14|106520 +3010|MI|Schoolcraft County|Mueller township|1320|0|6|Bonepart|Shelli|3001|PA|F|Daughter|||9|106521 +3010|MI|Schoolcraft County|Mueller township|1320|0|7|Bonepart|Tarra|3005|PA|F|Daughter|||5|106522 +3010|MI|Schoolcraft County|Mueller township|1320|0|8|Bonepart|Herb|3009|MI|M|Son|||1|106523 + +3010|MS|Newton County|Decatur town|1321|0|1|Mays|Bernardina|2959|New Jersey|F|Spouse|||51|106524 +3010|MS|Newton County|Decatur town|1321|0|2|Mays|Wesley|2989|Nevada|F|Daughter|||21|106525 +3010|MS|Newton County|Decatur town|1321|0|3|Mays|Freeda|2991|Rhode Island|F|Daughter|||19|106526 +3010|MS|Newton County|Decatur town|1321|0|4|Mays|Ezra|2999|North Dakota|M|Son|||11|106527 +3010|MS|Newton County|Decatur town|1321|0|5|Mays|Devorah|3001|MS|F|Daughter|||9|106528 +3010|MS|Newton County|Decatur town|1321|0|6|Mays|Chadwick|3003|MS|M|Son|||7|106529 +3010|MS|Newton County|Decatur town|1321|0|7|Mays|Benton|3009|MS|M|Son|||1|106530 + +3010|NH|Cheshire County|Jaffrey town|1322|0|1|Hellberg|Lawrence Violet|2964|Michigan|F|Spouse|||46|106531 +3010|NH|Cheshire County|Jaffrey town|1322|0|2|Hellberg|Sherron|2988|Utah|F|Daughter|||22|106532 +3010|NH|Cheshire County|Jaffrey town|1322|0|3|Hellberg|Hung|2990|Tonga|M|Son|||20|106533 +3010|NH|Cheshire County|Jaffrey town|1322|0|4|Hellberg|Conception|2998|Montana|F|Daughter|||12|106534 +3010|NH|Cheshire County|Jaffrey town|1322|0|5|Hellberg|Myung Latoyia|3003|NH|F|Daughter|||7|106535 + +3010|OH|Summit County|Montrose-Ghent CDP|1323|0|1|Wilson|Sherwood Sidney|2961|New Zealand|M|Head|||49|106536 +3010|OH|Summit County|Montrose-Ghent CDP|1323|0|2|Wilson|Emanuel|2986|Singapore|M|Son|||24|106537 +3010|OH|Summit County|Montrose-Ghent CDP|1323|0|3|Wilson|Olene|2990|Oregon|F|Daughter|||20|106538 + +3010|FL|Palm Beach County|South Bay city|1324|0|1|Brosig|Erik Bernardo|2981|Massachusetts|M|Head|||29|106539 +3010|FL|Palm Beach County|South Bay city|1324|0|2|Brosig|Santo|2999|Wyoming|M|Son|||11|106540 + +3010|ID|Camas County|Fairfield city|1325|0|1|Mcconnell|Fred Quinn|2944|Uzbekistan|M|Head|||66|106541 +3010|ID|Camas County|Fairfield city|1325|0|2|Mcconnell|Keshia Kai|2942|Massachusetts|F|Spouse|||68|106542 +3010|ID|Camas County|Fairfield city|1325|0|3|Mcconnell|Alesia|2970|Vermont|F|Daughter|||40|106543 +3010|ID|Camas County|Fairfield city|1325|0|4|Mcconnell|Solange|2996|New Mexico|F|Daughter|||14|106544 +3010|ID|Camas County|Fairfield city|1325|0|5|Mcconnell|Mervin Buddy|2998|Kansas|M|Son|||12|106545 +3010|ID|Camas County|Fairfield city|1325|0|6|Mcconnell|Adalberto|3000|Virginia|M|Son|||10|106546 +3010|ID|Camas County|Fairfield city|1325|0|7|Mcconnell|Russell|3005|ID|M|Son|||5|106547 + +3010|MI|Osceola County|Le Roy village|1326|0|1|Brookins|Bruce Joseph|2967|Kentucky|M|Head|||43|106548 +3010|MI|Osceola County|Le Roy village|1326|0|2|Brookins|Richard|2976|Germany|F|Spouse|||34|106549 +3010|MI|Osceola County|Le Roy village|1326|0|3|Brookins|Velva|2998|Ireland|F|Daughter|||12|106550 +3010|MI|Osceola County|Le Roy village|1326|0|4|Brookins|Ellsworth|3001|MI|M|Son|||9|106551 +3010|MI|Osceola County|Le Roy village|1326|0|5|Brookins|Kylie|3005|MI|F|Daughter|||5|106552 +3010|MI|Osceola County|Le Roy village|1326|0|6|Brookins|Minerva|3007|MI|F|Daughter|||3|106553 +3010|MI|Osceola County|Le Roy village|1326|0|7|Brookins|Olga|3009|MI|F|Daughter|||1|106554 + +3010|AZ|Cochise County|Naco CDP|1327|0|1|Asturias|Monty|2970|Macau|M|Head|||40|106555 +3010|AZ|Cochise County|Naco CDP|1327|0|2|Asturias|Luana|2984|Vermont|F|Spouse|||26|106556 +3010|AZ|Cochise County|Naco CDP|1327|0|3|Asturias|Iris Kathryne|3001|AZ|F|Daughter|||9|106557 +3010|AZ|Cochise County|Naco CDP|1327|0|4|Asturias|Wilton|3003|AZ|M|Son|||7|106558 +3010|AZ|Cochise County|Naco CDP|1327|0|5|Asturias|Fernando|3005|AZ|M|Son|||5|106559 +3010|AZ|Cochise County|Naco CDP|1327|0|6|Asturias|Williemae|3007|AZ|F|Daughter|||3|106560 + +3010|AR|Pope County|Dover city|1328|0|1|Mcmenomy|Danny Cletus|2942|Minnesota|M|Head|||68|106561 +3010|AR|Pope County|Dover city|1328|0|2|Mcmenomy|Devorah|2948|Rhode Island|F|Spouse|||62|106562 +3010|AR|Pope County|Dover city|1328|0|3|Mcmenomy|Felipa|2968|Indiana|F|Daughter|||42|106563 +3010|AR|Pope County|Dover city|1328|0|4|Mcmenomy|Kenneth|2972|Nevada|M|Son|||38|106564 +3010|AR|Pope County|Dover city|1328|0|5|Mcmenomy|Lyndon|2990|Nebraska|M|Son|||20|106565 +3010|AR|Pope County|Dover city|1328|0|6|Mcmenomy|Lynna|2996|Oklahoma|F|Daughter|||14|106566 +3010|AR|Pope County|Dover city|1328|0|7|Mcmenomy|Stephani|3000|Alaska|F|Daughter|||10|106567 +3010|AR|Pope County|Dover city|1328|0|8|Mcmenomy|Zachery|3005|AR|M|Son|||5|106568 + +3010|OH|Clermont County|Bethel village|1329|0|1|Whitehead|Lloyd Delmer|2964|Massachusetts|M|Head|||46|106569 +3010|OH|Clermont County|Bethel village|1329|0|2|Whitehead|Catherine|2964|Maine|F|Spouse|||46|106570 +3010|OH|Clermont County|Bethel village|1329|0|3|Whitehead|Jamika|3003|OH|F|Daughter|||7|106571 +3010|OH|Clermont County|Bethel village|1329|0|4|Whitehead|Alan|3009|OH|M|Son|||1|106572 + +3010|CA|Amador County|Buena Vista CDP|1330|0|1|Robbins|Lorenzo Mervin|2947|Texas|M|Head|||63|106573 +3010|CA|Amador County|Buena Vista CDP|1330|0|2|Robbins|Carl|2943|Arkansas|F|Spouse|||67|106574 +3010|CA|Amador County|Buena Vista CDP|1330|0|3|Robbins|Clifton|2995|Indiana|M|Son|||15|106575 +3010|CA|Amador County|Buena Vista CDP|1330|0|4|Robbins|Mariam|3003|CA|F|Daughter|||7|106576 + +3010|NJ|Salem County|Elsinboro township|1331|0|1|Morrison|Lonny Bobbie|2972|New Mexico|M|Head|||38|106577 +3010|NJ|Salem County|Elsinboro township|1331|0|2|Morrison|Veronique|2975|Texas|F|Spouse|||35|106578 +3010|NJ|Salem County|Elsinboro township|1331|0|3|Morrison|Lyndon|2995|Zimbabwe|M|Son|||15|106579 +3010|NJ|Salem County|Elsinboro township|1331|0|4|Morrison|Bernetta|2997|Montana|F|Daughter|||13|106580 +3010|NJ|Salem County|Elsinboro township|1331|0|5|Morrison|Lou|3001|NJ|M|Son|||9|106581 +3010|NJ|Salem County|Elsinboro township|1331|0|6|Morrison|Cornelius|3009|NJ|M|Son|||1|106582 + +3010|PA|Schuylkill County|Pine Grove township|1332|0|1|Hulett|Winford|2974|Hawaii|M|Head|||36|106583 +3010|PA|Schuylkill County|Pine Grove township|1332|0|2|Hulett|Albertina|2998|South Dakota|F|Daughter|||12|106584 + +3010|FL|Sarasota County|Southgate CDP|1333|0|1|Kennedy|Noah|2938|Illinois|M|Head|||72|106585 +3010|FL|Sarasota County|Southgate CDP|1333|0|2|Kennedy|Janey|2951|Alabama|F|Spouse|||59|106586 +3010|FL|Sarasota County|Southgate CDP|1333|0|3|Kennedy|Leisha|2977|Tonga|F|Daughter|||33|106587 +3010|FL|Sarasota County|Southgate CDP|1333|0|4|Kennedy|Pok|2991|Western Sahara|F|Daughter|||19|106588 +3010|FL|Sarasota County|Southgate CDP|1333|0|5|Kennedy|Viki|2997|Israel|F|Daughter|||13|106589 +3010|FL|Sarasota County|Southgate CDP|1333|0|6|Kennedy|Avery|2999|South Carolina|F|Daughter|||11|106590 +3010|FL|Sarasota County|Southgate CDP|1333|0|7|Kennedy|Long|3001|FL|M|Son|||9|106591 +3010|FL|Sarasota County|Southgate CDP|1333|0|8|Kennedy|Ben|3005|FL|M|Son|||5|106592 +3010|FL|Sarasota County|Southgate CDP|1333|0|9|Kennedy|Helen Catalina|3007|FL|F|Daughter|||3|106593 + +3010|NJ|Warren County|Alpha borough|1334|0|1|Degear|Dan Dudley|2949|Georgia|M|Head|||61|106594 +3010|NJ|Warren County|Alpha borough|1334|0|2|Degear|Guillermina Bobbie|2987|Minnesota|F|Daughter|||23|106595 +3010|NJ|Warren County|Alpha borough|1334|0|3|Degear|Daisy|2993|Alabama|F|Daughter|||17|106596 +3010|NJ|Warren County|Alpha borough|1334|0|4|Degear|Dane|2995|Indiana|M|Son|||15|106597 +3010|NJ|Warren County|Alpha borough|1334|0|5|Degear|Hedy|2999|Michigan|F|Daughter|||11|106598 + +3010|IA|Johnson County|Oxford city|1335|0|1|Turner|Terrance|2952|Idaho|M|Head|||58|106599 +3010|IA|Johnson County|Oxford city|1335|0|2|Turner|Irma|2971|Alaska|F|Spouse|||39|106600 +3010|IA|Johnson County|Oxford city|1335|0|3|Turner|Bradly|2999|Massachusetts|M|Son|||11|106601 +3010|IA|Johnson County|Oxford city|1335|0|4|Turner|Hank|3001|IA|M|Son|||9|106602 +3010|IA|Johnson County|Oxford city|1335|0|5|Turner|Cyril|3003|IA|M|Son|||7|106603 +3010|IA|Johnson County|Oxford city|1335|0|6|Turner|Ronna|3007|IA|F|Daughter|||3|106604 + +3010|TX|Menard County|Menard city|1336|0|1|Petrides|Cary|2952|Arizona|M|Head|||58|106605 +3010|TX|Menard County|Menard city|1336|0|2|Petrides|Danika|2972|Illinois|F|Spouse|||38|106606 +3010|TX|Menard County|Menard city|1336|0|3|Petrides|Johnathon|2992|Colorado|M|Son|||18|106607 +3010|TX|Menard County|Menard city|1336|0|4|Petrides|Bruno|2994|Pennsylvania|M|Son|||16|106608 +3010|TX|Menard County|Menard city|1336|0|5|Petrides|Miyoko|3000|Paraguay|F|Daughter|||10|106609 +3010|TX|Menard County|Menard city|1336|0|6|Petrides|Charlott|3005|TX|F|Daughter|||5|106610 + +3010|MI|Allegan County|County Subdivisions not defined|1337|0|1|Monsanto|Enrique Isaac|2955|Brazil|M|Head|||55|106611 +3010|MI|Allegan County|County Subdivisions not defined|1337|0|2|Monsanto|Sherryl|2990|Alabama|F|Daughter|||20|106612 +3010|MI|Allegan County|County Subdivisions not defined|1337|0|3|Monsanto|Cara|2992|West Virginia|F|Daughter|||18|106613 +3010|MI|Allegan County|County Subdivisions not defined|1337|0|4|Monsanto|Arden|2998|Utah|M|Son|||12|106614 +3010|MI|Allegan County|County Subdivisions not defined|1337|0|5|Monsanto|Dorothy Loma|3000|Indiana|F|Daughter|||10|106615 + +3010|MA|Barnstable County|West Chatham CDP|1338|0|1|Stone|Ghislaine Alexandra|2942|Montana|F|Head|||68|106616 +3010|MA|Barnstable County|West Chatham CDP|1338|0|2|Stone|Vonnie|2962|Pennsylvania|F|Daughter|||48|106617 +3010|MA|Barnstable County|West Chatham CDP|1338|0|3|Stone|Carita|2986|Georgia|F|Daughter|||24|106618 +3010|MA|Barnstable County|West Chatham CDP|1338|0|4|Stone|Letisha|2988|Argentina|F|Daughter|||22|106619 +3010|MA|Barnstable County|West Chatham CDP|1338|0|5|Stone|Tammie|2996|New Mexico|F|Daughter|||14|106620 + +3010|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|1339|0|1|Nordsiek|Rosendo Nickolas|2946|Michigan|M|Head|||64|106621 +3010|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|1339|0|2|Nordsiek|Raye|2978|Delaware|F|Daughter|||32|106622 +3010|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|1339|0|3|Nordsiek|Stephen|2980|Indiana|F|Daughter|||30|106623 +3010|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|1339|0|4|Nordsiek|Ben|2998|Malta|M|Son|||12|106624 +3010|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|1339|0|5|Nordsiek|Landon|3000|Latvia|M|Son|||10|106625 + +3010|NM|Santa Fe County|Cuartelez CDP|1340|0|1|Hadley|Nolan Ezra|2964|Michigan|M|Head|||46|106626 +3010|NM|Santa Fe County|Cuartelez CDP|1340|0|2|Hadley|Leann|2998|Iowa|F|Daughter|||12|106627 +3010|NM|Santa Fe County|Cuartelez CDP|1340|0|3|Hadley|Hong|3000|Cyprus|M|Son|||10|106628 + +3010|MN|Hennepin County, Wright County|Hanover city|1341|0|1|Parker|Noble Scottie|2941|Montana|M|Head|||69|106629 +3010|MN|Hennepin County, Wright County|Hanover city|1341|0|2|Parker|Norene|2947|North Carolina|F|Spouse|||63|106630 +3010|MN|Hennepin County, Wright County|Hanover city|1341|0|3|Parker|Erasmo|2971|American Samoa|M|Son|||39|106631 +3010|MN|Hennepin County, Wright County|Hanover city|1341|0|4|Parker|Edmundo|2995|North Carolina|M|Son|||15|106632 +3010|MN|Hennepin County, Wright County|Hanover city|1341|0|5|Parker|Al|3005|MN|M|Son|||5|106633 + +3010|MN|Blue Earth County|Eagle Lake city|1342|0|1|Jackson|Dedra|2963|Wisconsin|F|Spouse|||47|106634 +3010|MN|Blue Earth County|Eagle Lake city|1342|0|2|Jackson|Una|2991|Mississippi|F|Daughter|||19|106635 +3010|MN|Blue Earth County|Eagle Lake city|1342|0|3|Jackson|Marget|2995|Macedonia, The Former Yugoslav Republic Of|F|Daughter|||15|106636 +3010|MN|Blue Earth County|Eagle Lake city|1342|0|4|Jackson|Louis|2997|Rhode Island|M|Son|||13|106637 +3010|MN|Blue Earth County|Eagle Lake city|1342|0|5|Jackson|Marion|3003|MN|M|Son|||7|106638 + +3010|PA|Schuylkill County|New Castle township|1343|0|1|Zurita|Thaddeus|2966|Maine|M|Head|||44|106639 +3010|PA|Schuylkill County|New Castle township|1343|0|2|Zurita|Porsha|2969|North Dakota|F|Spouse|||41|106640 +3010|PA|Schuylkill County|New Castle township|1343|0|3|Zurita|Aja|2989|Alabama|F|Daughter|||21|106641 +3010|PA|Schuylkill County|New Castle township|1343|0|4|Zurita|Gerald|2997|Tennessee|M|Son|||13|106642 +3010|PA|Schuylkill County|New Castle township|1343|0|5|Zurita|Cristobal|3007|PA|M|Son|||3|106643 +3010|PA|Schuylkill County|New Castle township|1343|0|6|Zurita|Roderick|3009|PA|M|Son|||1|106644 + +3010|WI|Barron County|Lakeland town|1344|0|1|Kupres|Arden Anderson|2956|Virginia|M|Head|||54|106645 +3010|WI|Barron County|Lakeland town|1344|0|2|Kupres|Meaghan|2964|South Carolina|F|Spouse|||46|106646 +3010|WI|Barron County|Lakeland town|1344|0|3|Kupres|Tran|3000|Pitcairn|F|Daughter|||10|106647 +3010|WI|Barron County|Lakeland town|1344|0|4|Kupres|Dwain Elliott|3001|WI|M|Son|||9|106648 +3010|WI|Barron County|Lakeland town|1344|0|5|Kupres|Tam|3009|WI|F|Daughter|||1|106649 + +3010|KS|Ottawa County|Delphos city|1345|0|1|Dupree|Darnell|2968|Utah|F|Spouse|||42|106650 +3010|KS|Ottawa County|Delphos city|1345|0|2|Dupree|Mckinley|2992|Seychelles|M|Son|||18|106651 +3010|KS|Ottawa County|Delphos city|1345|0|3|Dupree|Kendrick|3000|Chad|M|Son|||10|106652 + +3010|IL|Cook County|Kenilworth village|1346|0|1|Frishman|Brendan Tim|2973|South Carolina|M|Head|||37|106653 +3010|IL|Cook County|Kenilworth village|1346|0|2|Frishman|Cayla Evelynn|2983|New Mexico|F|Spouse|||27|106654 +3010|IL|Cook County|Kenilworth village|1346|0|3|Frishman|Zina|3003|IL|F|Daughter|||7|106655 +3010|IL|Cook County|Kenilworth village|1346|0|4|Frishman|Wilbur|3007|IL|M|Son|||3|106656 +3010|IL|Cook County|Kenilworth village|1346|0|5|Frishman|Venetta|3009|IL|F|Daughter|||1|106657 + +3010|MO|Stoddard County|Penermon village|1347|0|1|Lovenduski|Dee Marion|2942|Oklahoma|M|Head|||68|106658 +3010|MO|Stoddard County|Penermon village|1347|0|2|Lovenduski|Loyce Magdalena|2959|Maine|F|Spouse|||51|106659 +3010|MO|Stoddard County|Penermon village|1347|0|3|Lovenduski|Laveta|2985|Michigan|F|Daughter|||25|106660 +3010|MO|Stoddard County|Penermon village|1347|0|4|Lovenduski|Nolan|2991|Tonga|M|Son|||19|106661 +3010|MO|Stoddard County|Penermon village|1347|0|5|Lovenduski|Eusebio|2993|British Indian Ocean Territory|M|Son|||17|106662 +3010|MO|Stoddard County|Penermon village|1347|0|6|Lovenduski|Jaime|2995|Indiana|M|Son|||15|106663 +3010|MO|Stoddard County|Penermon village|1347|0|7|Lovenduski|Randi|3003|MO|F|Daughter|||7|106664 +3010|MO|Stoddard County|Penermon village|1347|0|8|Lovenduski|Wm|3009|MO|M|Son|||1|106665 + +3010|MN|Lake of the Woods County|Wabanica township|1348|0|1|Mynatt|Fausto Lyle|2965|South Dakota|M|Head|||45|106666 +3010|MN|Lake of the Woods County|Wabanica township|1348|0|2|Mynatt|Bernice|2982|Maryland|F|Spouse|||28|106667 +3010|MN|Lake of the Woods County|Wabanica township|1348|0|3|Mynatt|Michale|3001|MN|M|Son|||9|106668 +3010|MN|Lake of the Woods County|Wabanica township|1348|0|4|Mynatt|Shani|3003|MN|F|Daughter|||7|106669 +3010|MN|Lake of the Woods County|Wabanica township|1348|0|5|Mynatt|Rosie|3007|MN|F|Daughter|||3|106670 +3010|MN|Lake of the Woods County|Wabanica township|1348|0|6|Mynatt|Michael|3009|MN|M|Son|||1|106671 + +3010|KS|Marion County|Ramona city|1349|0|1|Stanaway|Kerry Raymon|2938|New Mexico|M|Head|||72|106672 +3010|KS|Marion County|Ramona city|1349|0|2|Stanaway|Diana|2996|North Carolina|F|Daughter|||14|106673 +3010|KS|Marion County|Ramona city|1349|0|3|Stanaway|Boyce|3007|KS|M|Son|||3|106674 + +3010|NY|Rockland County|West Nyack CDP|1350|0|1|Stribling|Jesus Alphonse|2955|Utah|M|Head|||55|106675 +3010|NY|Rockland County|West Nyack CDP|1350|0|2|Stribling|Apolonia|2956|Idaho|F|Spouse|||54|106676 +3010|NY|Rockland County|West Nyack CDP|1350|0|3|Stribling|Dick|2994|Arizona|M|Son|||16|106677 +3010|NY|Rockland County|West Nyack CDP|1350|0|4|Stribling|Francis|2996|South Carolina|M|Son|||14|106678 +3010|NY|Rockland County|West Nyack CDP|1350|0|5|Stribling|Brandon|3001|NY|M|Son|||9|106679 +3010|NY|Rockland County|West Nyack CDP|1350|0|6|Stribling|Ellena|3005|NY|F|Daughter|||5|106680 +3010|NY|Rockland County|West Nyack CDP|1350|0|7|Stribling|Evangeline|3007|NY|F|Daughter|||3|106681 +3010|NY|Rockland County|West Nyack CDP|1350|0|8|Stribling|Hermelinda|3009|NY|F|Daughter|||1|106682 + +3010|ND|Towner County|Perth city|1351|0|1|Duma|Val|3000|Maryland|M|Son|||10|106683 + +3010|KS|Brown County|Hiawatha city|1352|0|1|Yerkey|Mellie|2970|Florida|F|Spouse|||40|106684 +3010|KS|Brown County|Hiawatha city|1352|0|2|Yerkey|Preston|3000|Kansas|M|Son|||10|106685 +3010|KS|Brown County|Hiawatha city|1352|0|3|Yerkey|Consuela Sueann|3001|AZ|F|Daughter|||9|106686 +3010|KS|Brown County|Hiawatha city|1352|0|4|Yerkey|Altagracia|3003|AZ|F|Daughter|||7|106687 +3010|KS|Brown County|Hiawatha city|1352|0|5|Yerkey|Wally|3005|AZ|M|Son|||5|106688 +3010|KS|Brown County|Hiawatha city|1352|0|6|Yerkey|Letha|3009|KS|F|Daughter|||1|106689 + +3010|NJ|Somerset County|Somerset CDP|1353|0|1|Vars|Emory Gregory|2954|Illinois|M|Head|||56|106690 +3010|NJ|Somerset County|Somerset CDP|1353|0|2|Vars|Laree|2962|Louisiana|F|Spouse|||48|106691 +3010|NJ|Somerset County|Somerset CDP|1353|0|3|Vars|Marvis|2988|Tennessee|F|Daughter|||22|106692 +3010|NJ|Somerset County|Somerset CDP|1353|0|4|Vars|Dean|2992|Cote D'ivoire|M|Son|||18|106693 +3010|NJ|Somerset County|Somerset CDP|1353|0|5|Vars|Margorie|2996|Nebraska|F|Daughter|||14|106694 +3010|NJ|Somerset County|Somerset CDP|1353|0|6|Vars|Leonard|3000|Connecticut|M|Son|||10|106695 + +3010|PA|Washington County|West Middletown borough|1354|0|1|Lamberto|Tyson Royce|2963|Delaware|M|Head|||47|106696 +3010|PA|Washington County|West Middletown borough|1354|0|2|Lamberto|Louann Loura|2977|Palau|F|Spouse|||33|106697 +3010|PA|Washington County|West Middletown borough|1354|0|3|Lamberto|Chase|2997|Alabama|M|Son|||13|106698 +3010|PA|Washington County|West Middletown borough|1354|0|4|Lamberto|Bradly|3005|PA|M|Son|||5|106699 + +3010|PA|Crawford County|Woodcock township|1355|0|1|Edwards|Percy Dion|2944|Texas|M|Head|||66|106700 +3010|PA|Crawford County|Woodcock township|1355|0|2|Edwards|Kendall|2972|West Virginia|M|Son|||38|106701 +3010|PA|Crawford County|Woodcock township|1355|0|3|Edwards|Florence|2990|Azerbaijan|F|Daughter|||20|106702 + +3010|WI|Marathon County|Rothschild village|1356|0|1|Cantu|Willy Deangelo|2956|Kentucky|M|Head|||54|106703 +3010|WI|Marathon County|Rothschild village|1356|0|2|Cantu|Suzy|2953|California|F|Spouse|||57|106704 +3010|WI|Marathon County|Rothschild village|1356|0|3|Cantu|Debora|3003|WI|F|Daughter|||7|106705 +3010|WI|Marathon County|Rothschild village|1356|0|4|Cantu|Dominic|3005|WI|M|Son|||5|106706 +3010|WI|Marathon County|Rothschild village|1356|0|5|Cantu|Rozella|3009|WI|F|Daughter|||1|106707 + +3010|PA|Beaver County|Midland borough|1357|0|1|Bradley|Casey Cyril|2945|Arkansas|M|Head|||65|106708 +3010|PA|Beaver County|Midland borough|1357|0|2|Bradley|Gayle|2996|Ethiopia|M|Son|||14|106709 +3010|PA|Beaver County|Midland borough|1357|0|3|Bradley|Cristopher|2998|Idaho|M|Son|||12|106710 + +3010|MN|Lac qui Parle County|Camp Release township|1358|0|1|Mook|Vance Edwardo|2951|Maryland|M|Head|||59|106711 +3010|MN|Lac qui Parle County|Camp Release township|1358|0|2|Mook|Leola|2955|Louisiana|F|Spouse|||55|106712 +3010|MN|Lac qui Parle County|Camp Release township|1358|0|3|Mook|Lashaun|2991|Maine|F|Daughter|||19|106713 +3010|MN|Lac qui Parle County|Camp Release township|1358|0|4|Mook|Taunya|2995|New York|F|Daughter|||15|106714 +3010|MN|Lac qui Parle County|Camp Release township|1358|0|5|Mook|Johnny|3003|MN|M|Son|||7|106715 +3010|MN|Lac qui Parle County|Camp Release township|1358|0|6|Mook|Mitzi Conception|3005|MN|F|Daughter|||5|106716 + +3010|PA|Allegheny County|Reserve township|1359|0|1|Boutot|Charlie Robin|2977|Thailand|M|Head|||33|106717 +3010|PA|Allegheny County|Reserve township|1359|0|2|Boutot|Stewart|2994|North Dakota|M|Son|||16|106718 +3010|PA|Allegheny County|Reserve township|1359|0|3|Boutot|Norberto Boyce|3000|Turkey|M|Son|||10|106719 +3010|PA|Allegheny County|Reserve township|1359|0|4|Boutot|Vernita|3005|PA|F|Daughter|||5|106720 +3010|PA|Allegheny County|Reserve township|1359|0|5|Boutot|Blaine|3007|PA|M|Son|||3|106721 + +3010|NM|Quay County|Tucumcari city|1360|0|1|Russell|Rodolfo Joseph|2953|Georgia|M|Head|||57|106722 +3010|NM|Quay County|Tucumcari city|1360|0|2|Russell|Noe|2979|Montana|M|Son|||31|106723 +3010|NM|Quay County|Tucumcari city|1360|0|3|Russell|Burton|2985|Texas|M|Son|||25|106724 +3010|NM|Quay County|Tucumcari city|1360|0|4|Russell|Adan Morton|2987|North Carolina|M|Son|||23|106725 +3010|NM|Quay County|Tucumcari city|1360|0|5|Russell|Silvia|2989|Pennsylvania|F|Daughter|||21|106726 +3010|NM|Quay County|Tucumcari city|1360|0|6|Russell|Shelby|2999|Rhode Island|M|Son|||11|106727 + +3010|WV|Fayette County|Ansted town|1361|0|1|Ekstein|Kenneth|2985|Kansas|M|Son|||25|106728 +3010|WV|Fayette County|Ansted town|1361|0|2|Ekstein|Nelson|2995|Ohio|M|Son|||15|106729 + +3010|CA|Kern County|Boron CDP|1362|0|1|Kipling|Markus Kennith|2951|South Georgia And The South Sandwich Islands|M|Head|||59|106730 +3010|CA|Kern County|Boron CDP|1362|0|2|Kipling|Tamisha|2984|Nebraska|F|Daughter|||26|106731 +3010|CA|Kern County|Boron CDP|1362|0|3|Kipling|Micheal|2998|North Dakota|M|Son|||12|106732 + +3010|MO|Clinton County, DeKalb County|Osborn city|1363|0|1|Shiraishi|Christopher Arnulfo|2976|Maine|M|Head|||34|106733 +3010|MO|Clinton County, DeKalb County|Osborn city|1363|0|2|Shiraishi|Stefanie|2977|Florida|F|Spouse|||33|106734 +3010|MO|Clinton County, DeKalb County|Osborn city|1363|0|3|Shiraishi|Bruna Kimbery|2997|Guinea|F|Daughter|||13|106735 +3010|MO|Clinton County, DeKalb County|Osborn city|1363|0|4|Shiraishi|Daina|3005|MO|F|Daughter|||5|106736 +3010|MO|Clinton County, DeKalb County|Osborn city|1363|0|5|Shiraishi|Jill|3009|MO|F|Daughter|||1|106737 + +3010|IA|Washington County|Kalona city|1364|0|1|Schmeling|Neil Anthony|2937|Macedonia, The Former Yugoslav Republic Of|M|Head|||73|106738 +3010|IA|Washington County|Kalona city|1364|0|2|Schmeling|Shandi|2953|Washington|F|Spouse|||57|106739 +3010|IA|Washington County|Kalona city|1364|0|3|Schmeling|Bryant|2995|Eritrea|M|Son|||15|106740 +3010|IA|Washington County|Kalona city|1364|0|4|Schmeling|Keith|3001|IA|F|Daughter|||9|106741 +3010|IA|Washington County|Kalona city|1364|0|5|Schmeling|Galen|3003|IA|M|Son|||7|106742 + +3010|VA|Chesterfield County|Woodlake CDP|1365|0|1|Paywa|Foster Erick|2951|Nebraska|M|Head|||59|106743 +3010|VA|Chesterfield County|Woodlake CDP|1365|0|2|Paywa|Brigette Mafalda|2986|Reunion|F|Daughter|||24|106744 +3010|VA|Chesterfield County|Woodlake CDP|1365|0|3|Paywa|Elvin|2994|Massachusetts|M|Son|||16|106745 +3010|VA|Chesterfield County|Woodlake CDP|1365|0|4|Paywa|Librada|2998|Virgin Islands, British|F|Daughter|||12|106746 + +3010|ME|Waldo County|Prospect town|1366|0|1|Baruffa|Adalberto Hassan|2946|Maryland|M|Head|||64|106747 +3010|ME|Waldo County|Prospect town|1366|0|2|Baruffa|Marta|3007|ME|F|Daughter|||3|106748 +3010|ME|Waldo County|Prospect town|1366|0|3|Baruffa|Veola|3009|ME|F|Daughter|||1|106749 + +3010|FL|Holmes County|Noma town|1367|0|1|Previte|Felica|2971|Pitcairn|F|Head|||39|106750 +3010|FL|Holmes County|Noma town|1367|0|2|Previte|Leon|2995|Bermuda|M|Son|||15|106751 + +3010|IA|Monona County|Ute city|1368|0|1|Howell|Curt Gregory|2944|Virginia|M|Head|||66|106752 +3010|IA|Monona County|Ute city|1368|0|2|Howell|Stefan|2969|Delaware|M|Son|||41|106753 +3010|IA|Monona County|Ute city|1368|0|3|Howell|Sterling|2983|Idaho|M|Son|||27|106754 +3010|IA|Monona County|Ute city|1368|0|4|Howell|Brittany Takako|2999|France|F|Daughter|||11|106755 + +3010|AR|Conway County|Plumerville city|1369|0|1|Brunk|Else|2951|Georgia|F|Head|||59|106756 +3010|AR|Conway County|Plumerville city|1369|0|2|Brunk|Mackenzie|2979|Hawaii|F|Daughter|||31|106757 +3010|AR|Conway County|Plumerville city|1369|0|3|Brunk|Clorinda|2985|Colorado|F|Daughter|||25|106758 +3010|AR|Conway County|Plumerville city|1369|0|4|Brunk|Loyd|2995|Nevada|M|Son|||15|106759 + +3010|IL|LaSalle County|Rutland village|1370|0|1|Starkey|Micheal Pedro|2962|Mali|M|Head|||48|106760 +3010|IL|LaSalle County|Rutland village|1370|0|2|Starkey|Tajuana|2970|Delaware|F|Spouse|||40|106761 +3010|IL|LaSalle County|Rutland village|1370|0|3|Starkey|Ted|2992|Washington|M|Son|||18|106762 +3010|IL|LaSalle County|Rutland village|1370|0|4|Starkey|Quiana|2998|Arkansas|F|Daughter|||12|106763 +3010|IL|LaSalle County|Rutland village|1370|0|5|Starkey|Miranda|3001|IL|F|Daughter|||9|106764 +3010|IL|LaSalle County|Rutland village|1370|0|6|Starkey|Ken Graig|3005|IL|M|Son|||5|106765 + +3010|FL|Broward County|Hallandale Beach city|1371|0|1|Lemieux|Mitch|2977|British Indian Ocean Territory|M|Head|||33|106766 +3010|FL|Broward County|Hallandale Beach city|1371|0|2|Lemieux|Sheena|2976|Alabama|F|Spouse|||34|106767 +3010|FL|Broward County|Hallandale Beach city|1371|0|3|Lemieux|Matthew|2996|Oregon|F|Daughter|||14|106768 +3010|FL|Broward County|Hallandale Beach city|1371|0|4|Lemieux|Greg|2998|West Virginia|M|Son|||12|106769 +3010|FL|Broward County|Hallandale Beach city|1371|0|5|Lemieux|Renae|3000|Germany|F|Daughter|||10|106770 +3010|FL|Broward County|Hallandale Beach city|1371|0|6|Lemieux|Joey|3009|FL|M|Son|||1|106771 + +3010|PA|Lancaster County|West Cocalico township|1372|0|1|Tappin|Mathew Heath|2945|New Mexico|M|Head|||65|106772 +3010|PA|Lancaster County|West Cocalico township|1372|0|2|Tappin|Terica|2952|Connecticut|F|Spouse|||58|106773 +3010|PA|Lancaster County|West Cocalico township|1372|0|3|Tappin|Erich Edgardo|2978|South Carolina|M|Son|||32|106774 +3010|PA|Lancaster County|West Cocalico township|1372|0|4|Tappin|Eveline|2992|West Virginia|F|Daughter|||18|106775 +3010|PA|Lancaster County|West Cocalico township|1372|0|5|Tappin|Tomoko|2998|Indiana|F|Daughter|||12|106776 +3010|PA|Lancaster County|West Cocalico township|1372|0|6|Tappin|Lakita|3000|South Dakota|F|Daughter|||10|106777 +3010|PA|Lancaster County|West Cocalico township|1372|0|7|Tappin|Edison|3001|PA|M|Son|||9|106778 +3010|PA|Lancaster County|West Cocalico township|1372|0|8|Tappin|Vance Fletcher|3007|PA|M|Son|||3|106779 +3010|PA|Lancaster County|West Cocalico township|1372|0|9|Tappin|Victor|3009|PA|F|Daughter|||1|106780 + +3010|IL|Scott County|Winchester city|1373|0|1|Ramage|Christian Edison|2963|Louisiana|M|Head|||47|106781 +3010|IL|Scott County|Winchester city|1373|0|2|Ramage|Larraine|2984|New Mexico|F|Spouse|||26|106782 +3010|IL|Scott County|Winchester city|1373|0|3|Ramage|Jerome|3001|IL|M|Son|||9|106783 +3010|IL|Scott County|Winchester city|1373|0|4|Ramage|Divina|3003|IL|F|Daughter|||7|106784 +3010|IL|Scott County|Winchester city|1373|0|5|Ramage|Bo|3005|IL|M|Son|||5|106785 +3010|IL|Scott County|Winchester city|1373|0|6|Ramage|Catina|3007|IL|F|Daughter|||3|106786 + +3010|ME|Washington County|Roque Bluffs town|1374|0|1|Tustison|Colton Horacio|2937|Arizona|M|Head|||73|106787 +3010|ME|Washington County|Roque Bluffs town|1374|0|2|Tustison|Andrew|2957|Oregon|F|Spouse|||53|106788 +3010|ME|Washington County|Roque Bluffs town|1374|0|3|Tustison|Karine|2995|South Carolina|F|Daughter|||15|106789 +3010|ME|Washington County|Roque Bluffs town|1374|0|4|Tustison|Roseanna|3001|ME|F|Daughter|||9|106790 +3010|ME|Washington County|Roque Bluffs town|1374|0|5|Tustison|Ashleigh|3003|ME|F|Daughter|||7|106791 + +3010|WV|Raleigh County|Helen CDP|1375|0|1|Sepe|Leonila|2983|California|F|Spouse|||27|106792 +3010|WV|Raleigh County|Helen CDP|1375|0|2|Sepe|Mckinley|3005|WV|M|Son|||5|106793 +3010|WV|Raleigh County|Helen CDP|1375|0|3|Sepe|Tess|3007|WV|F|Daughter|||3|106794 +3010|WV|Raleigh County|Helen CDP|1375|0|4|Sepe|Ted|3009|WV|M|Son|||1|106795 + +3010|FL|Hernando County|Garden Grove CDP|1376|0|1|Franzoni|Deshawn Royce|2951|Connecticut|M|Head|||59|106796 +3010|FL|Hernando County|Garden Grove CDP|1376|0|2|Franzoni|Jackqueline|2990|South Carolina|F|Daughter|||20|106797 +3010|FL|Hernando County|Garden Grove CDP|1376|0|3|Franzoni|Marybeth|2994|Ukraine|F|Daughter|||16|106798 + +3010|NE|Dakota County|Homer village|1377|0|1|Mccauley|Sherman Fermin|2937|Nebraska|M|Head|||73|106799 +3010|NE|Dakota County|Homer village|1377|0|2|Mccauley|Ronda|2950|South Carolina|F|Spouse|||60|106800 +3010|NE|Dakota County|Homer village|1377|0|3|Mccauley|Delicia|2990|Hawaii|F|Daughter|||20|106801 +3010|NE|Dakota County|Homer village|1377|0|4|Mccauley|Shyla|2994|Rhode Island|F|Daughter|||16|106802 +3010|NE|Dakota County|Homer village|1377|0|5|Mccauley|Foster|2996|New Jersey|M|Son|||14|106803 +3010|NE|Dakota County|Homer village|1377|0|6|Mccauley|Tiny Terra|3000|New York|F|Daughter|||10|106804 +3010|NE|Dakota County|Homer village|1377|0|7|Mccauley|Johnny|3003|NE|M|Son|||7|106805 +3010|NE|Dakota County|Homer village|1377|0|8|Mccauley|Lani|3007|NE|F|Daughter|||3|106806 + +3010|NY|Herkimer County|Columbia town|1378|0|1|Kowalski|Roderick Cleo|2953|Morocco|M|Head|||57|106807 +3010|NY|Herkimer County|Columbia town|1378|0|2|Kowalski|Desirae|2958|Massachusetts|F|Spouse|||52|106808 +3010|NY|Herkimer County|Columbia town|1378|0|3|Kowalski|Victor|2986|Iowa|M|Son|||24|106809 +3010|NY|Herkimer County|Columbia town|1378|0|4|Kowalski|Donald|2992|Nevada|M|Son|||18|106810 +3010|NY|Herkimer County|Columbia town|1378|0|5|Kowalski|Jody|2996|Wisconsin|M|Son|||14|106811 +3010|NY|Herkimer County|Columbia town|1378|0|6|Kowalski|Ramon|3001|NY|M|Son|||9|106812 +3010|NY|Herkimer County|Columbia town|1378|0|7|Kowalski|Rosia|3007|NY|F|Daughter|||3|106813 + +3010|NY|Oneida County|Rome city|1379|0|1|Briggs|Weston Rick|2954|Washington|M|Head|||56|106814 +3010|NY|Oneida County|Rome city|1379|0|2|Briggs|Glennie|2953|Wyoming|F|Spouse|||57|106815 +3010|NY|Oneida County|Rome city|1379|0|3|Briggs|Leonel|2973|Pennsylvania|M|Son|||37|106816 +3010|NY|Oneida County|Rome city|1379|0|4|Briggs|Milagros Eun|2989|Moldova, Republic Of|F|Daughter|||21|106817 +3010|NY|Oneida County|Rome city|1379|0|5|Briggs|Jan|2997|Puerto Rico|F|Daughter|||13|106818 + +3010|VA|Albemarle County|Esmont CDP|1380|0|1|Thomas|Jerold Buck|2941|Tennessee|M|Head|||69|106819 +3010|VA|Albemarle County|Esmont CDP|1380|0|2|Thomas|Thalia|2946|New Mexico|F|Spouse|||64|106820 +3010|VA|Albemarle County|Esmont CDP|1380|0|3|Thomas|Florinda Nellie|2972|Kansas|F|Daughter|||38|106821 +3010|VA|Albemarle County|Esmont CDP|1380|0|4|Thomas|Grant|2986|Florida|M|Son|||24|106822 +3010|VA|Albemarle County|Esmont CDP|1380|0|5|Thomas|Asa|3000|Virginia|M|Son|||10|106823 +3010|VA|Albemarle County|Esmont CDP|1380|0|6|Thomas|Pete|3005|VA|M|Son|||5|106824 +3010|VA|Albemarle County|Esmont CDP|1380|0|7|Thomas|Clinton|3007|VA|M|Son|||3|106825 + +3010|NY|Oneida County|Boonville village|1381|0|1|Schmits|Howard Boyce|2943|Colorado|M|Head|||67|106826 +3010|NY|Oneida County|Boonville village|1381|0|2|Schmits|Phuong|2960|Delaware|F|Spouse|||50|106827 +3010|NY|Oneida County|Boonville village|1381|0|3|Schmits|Theo|3000|Louisiana|M|Son|||10|106828 +3010|NY|Oneida County|Boonville village|1381|0|4|Schmits|Wilfred Ike|3003|NY|M|Son|||7|106829 +3010|NY|Oneida County|Boonville village|1381|0|5|Schmits|Augustus|3005|NY|M|Son|||5|106830 + +3010|ME|Kennebec County|Randolph CDP|1382|0|1|Fahlstedt|Amanda|2962|Georgia|F|Spouse|||48|106831 +3010|ME|Kennebec County|Randolph CDP|1382|0|2|Fahlstedt|Denis|3000|Vanuatu|M|Son|||10|106832 +3010|ME|Kennebec County|Randolph CDP|1382|0|3|Fahlstedt|Adam|3001|ME|F|Daughter|||9|106833 +3010|ME|Kennebec County|Randolph CDP|1382|0|4|Fahlstedt|Roberto|3005|ME|M|Son|||5|106834 +3010|ME|Kennebec County|Randolph CDP|1382|0|5|Fahlstedt|Jeanett|3007|ME|F|Daughter|||3|106835 + +3010|IL|DuPage County|Glen Ellyn village|1383|0|1|Vierthaler|Kasey Vito|2958|Colorado|M|Head|||52|106836 +3010|IL|DuPage County|Glen Ellyn village|1383|0|2|Vierthaler|Carline|2985|Connecticut|F|Daughter|||25|106837 +3010|IL|DuPage County|Glen Ellyn village|1383|0|3|Vierthaler|Lloyd Louie|2989|Wyoming|M|Son|||21|106838 + +3010|OR|Klamath County|Malin city|1384|0|1|Kuty|Cheree|2958|Kentucky|F|Head|||52|106839 +3010|OR|Klamath County|Malin city|1384|0|2|Kuty|Felix|2988|Indiana|M|Son|||22|106840 + +3010|MT|Big Horn County|Muddy CDP|1385|0|1|Trillas|Mario Douglas|2964|Nevada|M|Head|||46|106841 +3010|MT|Big Horn County|Muddy CDP|1385|0|2|Trillas|Princess Ileana|2961|Georgia|F|Spouse|||49|106842 +3010|MT|Big Horn County|Muddy CDP|1385|0|3|Trillas|Brendan Dino|2981|Hawaii|M|Son|||29|106843 +3010|MT|Big Horn County|Muddy CDP|1385|0|4|Trillas|Nell Nicolle|2995|Michigan|F|Daughter|||15|106844 +3010|MT|Big Horn County|Muddy CDP|1385|0|5|Trillas|Willodean Bea|3003|MT|F|Daughter|||7|106845 +3010|MT|Big Horn County|Muddy CDP|1385|0|6|Trillas|Gilberto|3007|MT|M|Son|||3|106846 + +3010|WI|Langlade County|White Lake village|1386|0|1|Mendivil|Dee Theron|2944|Wisconsin|M|Head|||66|106847 +3010|WI|Langlade County|White Lake village|1386|0|2|Mendivil|Oralee Summer|2990|Arkansas|F|Daughter|||20|106848 +3010|WI|Langlade County|White Lake village|1386|0|3|Mendivil|Marisol|2992|Maine|F|Daughter|||18|106849 + +3010|WA|Yakima County|Gleed CDP|1387|0|1|Girauard|Tory Oren|2952|Central African Republic|M|Head|||58|106850 +3010|WA|Yakima County|Gleed CDP|1387|0|2|Girauard|Eliza|2968|Virginia|F|Spouse|||42|106851 +3010|WA|Yakima County|Gleed CDP|1387|0|3|Girauard|Warner Tristan|2996|Florida|M|Son|||14|106852 +3010|WA|Yakima County|Gleed CDP|1387|0|4|Girauard|Georgeanna|2998|Mississippi|F|Daughter|||12|106853 +3010|WA|Yakima County|Gleed CDP|1387|0|5|Girauard|Adolph|3000|Tennessee|M|Son|||10|106854 +3010|WA|Yakima County|Gleed CDP|1387|0|6|Girauard|Jess|3003|WA|M|Son|||7|106855 +3010|WA|Yakima County|Gleed CDP|1387|0|7|Girauard|Alexa|3007|WA|F|Daughter|||3|106856 + +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|1388|0|1|Sellers|Joel Bernie|2953|Vermont|M|Head|||57|106857 +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|1388|0|2|Sellers|Domenic|2992|Oklahoma|M|Son|||18|106858 +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|1388|0|3|Sellers|Major|3000|Tennessee|M|Son|||10|106859 + +3010|PA|Dauphin County|Lower Swatara township|1389|0|1|Oconnor|Granville Cleo|2942|Rhode Island|M|Head|||68|106860 +3010|PA|Dauphin County|Lower Swatara township|1389|0|2|Oconnor|Alaina|2960|Texas|F|Spouse|||50|106861 +3010|PA|Dauphin County|Lower Swatara township|1389|0|3|Oconnor|Lawerence|2988|Michigan|M|Son|||22|106862 +3010|PA|Dauphin County|Lower Swatara township|1389|0|4|Oconnor|Kerry|2998|Louisiana|M|Son|||12|106863 +3010|PA|Dauphin County|Lower Swatara township|1389|0|5|Oconnor|Janita September|3007|PA|F|Daughter|||3|106864 +3010|PA|Dauphin County|Lower Swatara township|1389|0|6|Oconnor|Desmond|3009|PA|M|Son|||1|106865 + +3010|MA|Franklin County|Shelburne town|1390|0|1|Sakakeeny|Elvis Irwin|2976|New Hampshire|M|Head|||34|106866 +3010|MA|Franklin County|Shelburne town|1390|0|2|Sakakeeny|Elenore Lela|2977|New Jersey|F|Spouse|||33|106867 +3010|MA|Franklin County|Shelburne town|1390|0|3|Sakakeeny|Julieta|3001|MA|F|Daughter|||9|106868 +3010|MA|Franklin County|Shelburne town|1390|0|4|Sakakeeny|Glynis|3005|MA|F|Daughter|||5|106869 +3010|MA|Franklin County|Shelburne town|1390|0|5|Sakakeeny|Kelly|3007|MA|M|Son|||3|106870 + +3010|WV|Grant County|Bayard town|1391|0|1|Randolph|Randolph Titus|2939|Wisconsin|M|Head|||71|106871 +3010|WV|Grant County|Bayard town|1391|0|2|Randolph|Tamie|2974|California|F|Daughter|||36|106872 +3010|WV|Grant County|Bayard town|1391|0|3|Randolph|Tad|2986|Saint Kitts And Nevis|M|Son|||24|106873 +3010|WV|Grant County|Bayard town|1391|0|4|Randolph|Andrea|3001|WV|M|Son|||9|106874 +3010|WV|Grant County|Bayard town|1391|0|5|Randolph|Solomon|3003|WV|M|Son|||7|106875 + +3010|FL|Sumter County|Lake Panasoffkee CDP|1392|0|1|Delucca|Britt Alphonso|2979|Kuwait|M|Head|||31|106876 +3010|FL|Sumter County|Lake Panasoffkee CDP|1392|0|2|Delucca|Carmen|2976|Montana|F|Spouse|||34|106877 +3010|FL|Sumter County|Lake Panasoffkee CDP|1392|0|3|Delucca|Ricky|2998|Rwanda|M|Son|||12|106878 +3010|FL|Sumter County|Lake Panasoffkee CDP|1392|0|4|Delucca|Carylon|3003|PR|F|Daughter|||7|106879 +3010|FL|Sumter County|Lake Panasoffkee CDP|1392|0|5|Delucca|Stephen Leif|3005|PR|M|Son|||5|106880 +3010|FL|Sumter County|Lake Panasoffkee CDP|1392|0|6|Delucca|Marcelo Scottie|3009|FL|M|Son|||1|106881 + +3010|PA|Clarion County|Knox township|1393|0|1|Boger|Daryl Mauro|2967|Wyoming|M|Head|||43|106882 +3010|PA|Clarion County|Knox township|1393|0|2|Boger|Ulysses|2999|Ohio|M|Son|||11|106883 +3010|PA|Clarion County|Knox township|1393|0|3|Boger|Malcolm|3005|PA|M|Son|||5|106884 +3010|PA|Clarion County|Knox township|1393|0|4|Boger|Odelia|3007|PA|F|Daughter|||3|106885 + +3010|ID|Ada County, Canyon County|Star city|1394|0|1|Snowden|Wiley Micah|2984|Colorado|M|Head|||26|106886 +3010|ID|Ada County, Canyon County|Star city|1394|0|2|Snowden|Kiana|2981|Germany|F|Spouse|||29|106887 +3010|ID|Ada County, Canyon County|Star city|1394|0|3|Snowden|Homer|3003|ID|M|Son|||7|106888 + +3010|MA|Plymouth County|Scituate town|1395|0|1|Mayers|Mikel|2941|Washington|M|Head|||69|106889 +3010|MA|Plymouth County|Scituate town|1395|0|2|Mayers|Oscar|2997|Tennessee|M|Son|||13|106890 +3010|MA|Plymouth County|Scituate town|1395|0|3|Mayers|Shannon|3007|MA|M|Son|||3|106891 +3010|MA|Plymouth County|Scituate town|1395|0|4|Mayers|Gail|3009|MA|M|Son|||1|106892 + +3010|MO|Lincoln County|Truxton village|1396|0|1|Huertes|Yung|2948|West Virginia|F|Spouse|||62|106893 +3010|MO|Lincoln County|Truxton village|1396|0|2|Huertes|Theda|2986|Pennsylvania|F|Daughter|||24|106894 +3010|MO|Lincoln County|Truxton village|1396|0|3|Huertes|Elden Monte|2988|Oregon|M|Son|||22|106895 +3010|MO|Lincoln County|Truxton village|1396|0|4|Huertes|Vicki|3000|Massachusetts|F|Daughter|||10|106896 +3010|MO|Lincoln County|Truxton village|1396|0|5|Huertes|Rolande|3003|MO|F|Daughter|||7|106897 +3010|MO|Lincoln County|Truxton village|1396|0|6|Huertes|Stanton|3007|MO|M|Son|||3|106898 +3010|MO|Lincoln County|Truxton village|1396|0|7|Huertes|Lorelei|3009|MO|F|Daughter|||1|106899 + +3010|WI|Waushara County|Poysippi town|1397|0|1|Espey|Virgil Andre|2957|Delaware|M|Head|||53|106900 +3010|WI|Waushara County|Poysippi town|1397|0|2|Espey|Genie|2959|Sierra Leone|F|Spouse|||51|106901 +3010|WI|Waushara County|Poysippi town|1397|0|3|Espey|Loren Hosea|2985|Arkansas|M|Son|||25|106902 +3010|WI|Waushara County|Poysippi town|1397|0|4|Espey|Jessika|2995|Hawaii|F|Daughter|||15|106903 +3010|WI|Waushara County|Poysippi town|1397|0|5|Espey|Letty|2997|Idaho|F|Daughter|||13|106904 +3010|WI|Waushara County|Poysippi town|1397|0|6|Espey|Lekisha|3001|WI|F|Daughter|||9|106905 +3010|WI|Waushara County|Poysippi town|1397|0|7|Espey|Whitney|3007|WI|M|Son|||3|106906 + +3010|HI|Kauai County|Hanapepe CDP|1398|0|1|Barnett|Augustine Marcos|2980|Nevada|M|Head|||30|106907 +3010|HI|Kauai County|Hanapepe CDP|1398|0|2|Barnett|Corine|2983|Oregon|F|Spouse|||27|106908 +3010|HI|Kauai County|Hanapepe CDP|1398|0|3|Barnett|Bryce|3001|HI|M|Son|||9|106909 +3010|HI|Kauai County|Hanapepe CDP|1398|0|4|Barnett|Leo|3005|HI|M|Son|||5|106910 +3010|HI|Kauai County|Hanapepe CDP|1398|0|5|Barnett|Tony|3007|HI|M|Son|||3|106911 +3010|HI|Kauai County|Hanapepe CDP|1398|0|6|Barnett|Mardell Lisette|3009|HI|F|Daughter|||1|106912 + +3010|MO|Maries County, Osage County|Argyle town|1399|0|1|Vignola|Kami|2985|Wisconsin|F|Daughter|||25|106913 +3010|MO|Maries County, Osage County|Argyle town|1399|0|2|Vignola|Tennille|2987|Aruba|F|Daughter|||23|106914 + +3010|VT|Windsor County|Rochester town|1400|0|1|Blackburn|Hermila|2967|New Jersey|F|Head|||43|106915 + +3010|ME|Hancock County|Waltham town|1401|0|1|Berver|Gracia|2964|Vermont|F|Spouse|||46|106916 +3010|ME|Hancock County|Waltham town|1401|0|2|Berver|Rivka|2986|Belize|F|Daughter|||24|106917 +3010|ME|Hancock County|Waltham town|1401|0|3|Berver|Diedra|2988|Maine|F|Daughter|||22|106918 +3010|ME|Hancock County|Waltham town|1401|0|4|Berver|Jefferey|3005|ME|M|Son|||5|106919 + +3010|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|1|Adomaitis|Theda Sharika|2963|Virginia|F|Spouse|||47|106920 +3010|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|2|Adomaitis|Carlos|2989|Cambodia|F|Daughter|||21|106921 +3010|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|3|Adomaitis|Virginia|2991|Idaho|F|Daughter|||19|106922 +3010|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|4|Adomaitis|Rosalba|2993|Louisiana|F|Daughter|||17|106923 +3010|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|5|Adomaitis|Isidra|2999|Guadeloupe|F|Daughter|||11|106924 +3010|AK|Kenai Peninsula Borough|Halibut Cove CDP|1402|0|6|Adomaitis|Omar|3005|AK|M|Son|||5|106925 + +3010|ME|Penobscot County|Winn town|1403|0|1|Mildon|Micah Julio|2959|Utah|M|Head|||51|106926 +3010|ME|Penobscot County|Winn town|1403|0|2|Mildon|Christeen Sheilah|2981|Mississippi|F|Spouse|||29|106927 +3010|ME|Penobscot County|Winn town|1403|0|3|Mildon|Nakita|3003|NH|F|Daughter|||7|106928 +3010|ME|Penobscot County|Winn town|1403|0|4|Mildon|Norbert|3005|NH|M|Son|||5|106929 + +3010|GA|Putnam County|Crooked Creek CDP|1404|0|1|Warnes|Aaron Brent|2957|New Hampshire|M|Head|||53|106930 +3010|GA|Putnam County|Crooked Creek CDP|1404|0|2|Warnes|Yolonda|2971|Bangladesh|F|Spouse|||39|106931 +3010|GA|Putnam County|Crooked Creek CDP|1404|0|3|Warnes|Reyes|2991|Peru|M|Son|||19|106932 +3010|GA|Putnam County|Crooked Creek CDP|1404|0|4|Warnes|Felipa|2993|Illinois|F|Daughter|||17|106933 +3010|GA|Putnam County|Crooked Creek CDP|1404|0|5|Warnes|Alaina|2995|North Dakota|F|Daughter|||15|106934 +3010|GA|Putnam County|Crooked Creek CDP|1404|0|6|Warnes|Lindsey|2997|Spain|M|Son|||13|106935 +3010|GA|Putnam County|Crooked Creek CDP|1404|0|7|Warnes|Particia|2999|Maine|F|Daughter|||11|106936 +3010|GA|Putnam County|Crooked Creek CDP|1404|0|8|Warnes|Blaine|3001|GA|M|Son|||9|106937 + +3010|VA|Pulaski County|Hiwassee CDP|1405|0|1|Johnson|Xavier Travis|2974|South Dakota|M|Head|||36|106938 +3010|VA|Pulaski County|Hiwassee CDP|1405|0|2|Johnson|Delora|2983|Maine|F|Spouse|||27|106939 +3010|VA|Pulaski County|Hiwassee CDP|1405|0|3|Johnson|Tabetha|3003|VA|F|Daughter|||7|106940 +3010|VA|Pulaski County|Hiwassee CDP|1405|0|4|Johnson|Tony Son|3005|VA|M|Son|||5|106941 +3010|VA|Pulaski County|Hiwassee CDP|1405|0|5|Johnson|Dick|3007|VA|M|Son|||3|106942 +3010|VA|Pulaski County|Hiwassee CDP|1405|0|6|Johnson|Genaro|3009|VA|M|Son|||1|106943 + +3010|MT|Big Horn County|Fort Smith CDP|1406|0|1|Unzueta|Luigi August|2939|Tokelau|M|Head|||71|106944 +3010|MT|Big Horn County|Fort Smith CDP|1406|0|2|Unzueta|Chas|2977|Tennessee|M|Son|||33|106945 +3010|MT|Big Horn County|Fort Smith CDP|1406|0|3|Unzueta|Brain|2995|Delaware|M|Son|||15|106946 +3010|MT|Big Horn County|Fort Smith CDP|1406|0|4|Unzueta|Vernon|2997|North Dakota|F|Daughter|||13|106947 +3010|MT|Big Horn County|Fort Smith CDP|1406|0|5|Unzueta|Tijuana|2999|Colorado|F|Daughter|||11|106948 + +3010|TX|Angelina County|Burke city|1407|0|1|Hofman|Kristofer Demarcus|2960|Idaho|M|Head|||50|106949 +3010|TX|Angelina County|Burke city|1407|0|2|Hofman|Shelly|2983|Louisiana|F|Spouse|||27|106950 +3010|TX|Angelina County|Burke city|1407|0|3|Hofman|Brent|3001|TX|M|Son|||9|106951 +3010|TX|Angelina County|Burke city|1407|0|4|Hofman|Shirley|3005|TX|M|Son|||5|106952 +3010|TX|Angelina County|Burke city|1407|0|5|Hofman|Esperanza|3007|TX|F|Daughter|||3|106953 + +3010|CA|Sacramento County|Foothill Farms CDP|1408|0|1|Willard|Darrel Colby|2972|Oklahoma|M|Head|||38|106954 +3010|CA|Sacramento County|Foothill Farms CDP|1408|0|2|Willard|Trudie|2969|Washington|F|Spouse|||41|106955 +3010|CA|Sacramento County|Foothill Farms CDP|1408|0|3|Willard|Dahlia Jacelyn|3007|CA|F|Daughter|||3|106956 + +3010|GA|Fayette County|Tyrone town|1409|0|1|Szoka|Norah|2949|Mali|F|Head|||61|106957 +3010|GA|Fayette County|Tyrone town|1409|0|2|Szoka|Melissa|2985|Nauru|F|Daughter|||25|106958 +3010|GA|Fayette County|Tyrone town|1409|0|3|Szoka|Luz|2999|Maryland|F|Daughter|||11|106959 + +3010|NJ|Passaic County|Clifton city|1410|0|1|Hatfield|Derrick Jerome|2948|Oklahoma|M|Head|||62|106960 +3010|NJ|Passaic County|Clifton city|1410|0|2|Hatfield|Mellissa|2947|Kentucky|F|Spouse|||63|106961 +3010|NJ|Passaic County|Clifton city|1410|0|3|Hatfield|Darryl|2999|South Carolina|M|Son|||11|106962 + +3010|NE|Sherman County|Hazard village|1411|0|1|Monroy|Ahmed Ken|2937|Montana|M|Head|||73|106963 +3010|NE|Sherman County|Hazard village|1411|0|2|Monroy|Francene|2957|Connecticut|F|Spouse|||53|106964 +3010|NE|Sherman County|Hazard village|1411|0|3|Monroy|Shanta|2981|Florida|F|Daughter|||29|106965 +3010|NE|Sherman County|Hazard village|1411|0|4|Monroy|Scott|2987|Nepal|M|Son|||23|106966 +3010|NE|Sherman County|Hazard village|1411|0|5|Monroy|Christa|2991|Tennessee|F|Daughter|||19|106967 +3010|NE|Sherman County|Hazard village|1411|0|6|Monroy|Theresia|2993|Rhode Island|F|Daughter|||17|106968 +3010|NE|Sherman County|Hazard village|1411|0|7|Monroy|Ramonita|3009|NE|F|Daughter|||1|106969 + +3010|MI|Antrim County|Star township|1412|0|1|Nixion|Hipolito Norberto|2956|Idaho|M|Head|||54|106970 +3010|MI|Antrim County|Star township|1412|0|2|Nixion|Nia|2978|New Mexico|F|Spouse|||32|106971 +3010|MI|Antrim County|Star township|1412|0|3|Nixion|Dianne Jinny|2998|Maine|F|Daughter|||12|106972 +3010|MI|Antrim County|Star township|1412|0|4|Nixion|Lamont|3001|MI|M|Son|||9|106973 +3010|MI|Antrim County|Star township|1412|0|5|Nixion|Cletus|3005|MI|M|Son|||5|106974 +3010|MI|Antrim County|Star township|1412|0|6|Nixion|Kenny|3007|MI|M|Son|||3|106975 + +3010|WI|Polk County|Lorain town|1413|0|1|Woodend|Archie Alvaro|2954|Louisiana|M|Head|||56|106976 +3010|WI|Polk County|Lorain town|1413|0|2|Woodend|Darrell|2982|Missouri|M|Son|||28|106977 +3010|WI|Polk County|Lorain town|1413|0|3|Woodend|Lanny|2986|Uruguay|M|Son|||24|106978 +3010|WI|Polk County|Lorain town|1413|0|4|Woodend|Vaughn Malcom|2990|Wyoming|M|Son|||20|106979 + +3010|AZ|Yuma County|Avenue B and C CDP|1414|0|1|Solis|Kevin Marc|2937|Vermont|M|Head|||73|106980 +3010|AZ|Yuma County|Avenue B and C CDP|1414|0|2|Solis|Jamey|2990|North Carolina|M|Son|||20|106981 +3010|AZ|Yuma County|Avenue B and C CDP|1414|0|3|Solis|Randolph|2996|Oklahoma|M|Son|||14|106982 +3010|AZ|Yuma County|Avenue B and C CDP|1414|0|4|Solis|Christoper|2998|New York|M|Son|||12|106983 +3010|AZ|Yuma County|Avenue B and C CDP|1414|0|5|Solis|Quinton|3000|Arizona|M|Son|||10|106984 + +3010|CA|Mono County|McGee Creek CDP|1415|0|1|Root|Bennett James|2964|Maine|M|Head|||46|106985 +3010|CA|Mono County|McGee Creek CDP|1415|0|2|Root|Shane|2966|New Jersey|F|Spouse|||44|106986 +3010|CA|Mono County|McGee Creek CDP|1415|0|3|Root|Sal|3003|CA|M|Son|||7|106987 +3010|CA|Mono County|McGee Creek CDP|1415|0|4|Root|Jesus|3005|CA|M|Son|||5|106988 + +3010|OK|Osage County, Tulsa County|Sand Springs city|1416|0|1|Ivory|Nicky|2995|Montana|M|Son|||15|106989 +3010|OK|Osage County, Tulsa County|Sand Springs city|1416|0|2|Ivory|Kris|2997|Connecticut|F|Daughter|||13|106990 + +3010|TX|Cherokee County, Rusk County|Reklaw city|1417|0|1|Leinberger|Rich Jamison|2949|North Carolina|M|Head|||61|106991 +3010|TX|Cherokee County, Rusk County|Reklaw city|1417|0|2|Leinberger|Angeles|2950|Mississippi|F|Spouse|||60|106992 +3010|TX|Cherokee County, Rusk County|Reklaw city|1417|0|3|Leinberger|Cathy|2982|Florida|F|Daughter|||28|106993 +3010|TX|Cherokee County, Rusk County|Reklaw city|1417|0|4|Leinberger|Leigh|2996|Massachusetts|F|Daughter|||14|106994 +3010|TX|Cherokee County, Rusk County|Reklaw city|1417|0|5|Leinberger|Jerrell|2998|Palau|M|Son|||12|106995 +3010|TX|Cherokee County, Rusk County|Reklaw city|1417|0|6|Leinberger|Porter|3000|Nebraska|M|Son|||10|106996 +3010|TX|Cherokee County, Rusk County|Reklaw city|1417|0|7|Leinberger|Ladonna|3003|TX|F|Daughter|||7|106997 +3010|TX|Cherokee County, Rusk County|Reklaw city|1417|0|8|Leinberger|Babette|3005|TX|F|Daughter|||5|106998 + +3010|MI|Charlevoix County|Walloon Lake CDP|1418|0|1|Espinoza|Jerrod Jacques|2980|South Dakota|M|Head|||30|106999 +3010|MI|Charlevoix County|Walloon Lake CDP|1418|0|2|Espinoza|Tyisha|2982|Louisiana|F|Spouse|||28|107000 +3010|MI|Charlevoix County|Walloon Lake CDP|1418|0|3|Espinoza|Solange Madeleine|3001|MI|F|Daughter|||9|107001 +3010|MI|Charlevoix County|Walloon Lake CDP|1418|0|4|Espinoza|Gracie|3003|MI|F|Daughter|||7|107002 +3010|MI|Charlevoix County|Walloon Lake CDP|1418|0|5|Espinoza|Cristina|3007|MI|F|Daughter|||3|107003 + +3010|KS|Pottawatomie County, Riley County|Manhattan city|1419|0|1|Lyles|Shayne Tommie|2955|Kentucky|M|Head|||55|107004 +3010|KS|Pottawatomie County, Riley County|Manhattan city|1419|0|2|Lyles|Brigid|2978|Pennsylvania|F|Spouse|||32|107005 +3010|KS|Pottawatomie County, Riley County|Manhattan city|1419|0|3|Lyles|Maybell|2998|Maryland|F|Daughter|||12|107006 +3010|KS|Pottawatomie County, Riley County|Manhattan city|1419|0|4|Lyles|Regina|3001|UT|F|Daughter|||9|107007 +3010|KS|Pottawatomie County, Riley County|Manhattan city|1419|0|5|Lyles|Josef|3007|KS|M|Son|||3|107008 +3010|KS|Pottawatomie County, Riley County|Manhattan city|1419|0|6|Lyles|Charlie Long|3009|KS|M|Son|||1|107009 + +3010|MO|Caldwell County|Cowgill city|1420|0|1|Bailor|Nathaniel Jeremiah|2962|Massachusetts|M|Head|||48|107010 + +3010|WI|Ozaukee County|Belgium village|1421|0|1|Wig|Bradley Boyd|2963|Oklahoma|M|Head|||47|107011 +3010|WI|Ozaukee County|Belgium village|1421|0|2|Wig|Keva|2973|Montana|F|Spouse|||37|107012 +3010|WI|Ozaukee County|Belgium village|1421|0|3|Wig|Josef|2993|Saint Vincent And The Grenadines|M|Son|||17|107013 +3010|WI|Ozaukee County|Belgium village|1421|0|4|Wig|Keith|2997|Belgium|M|Son|||13|107014 +3010|WI|Ozaukee County|Belgium village|1421|0|5|Wig|Sandi|2999|Virginia|F|Daughter|||11|107015 +3010|WI|Ozaukee County|Belgium village|1421|0|6|Wig|Laurinda Melynda|3001|WI|F|Daughter|||9|107016 +3010|WI|Ozaukee County|Belgium village|1421|0|7|Wig|Francesco|3003|WI|M|Son|||7|107017 +3010|WI|Ozaukee County|Belgium village|1421|0|8|Wig|Micheal|3005|WI|F|Daughter|||5|107018 + +3010|NJ|Passaic County|Pompton Lakes borough|1422|0|1|Schaunt|Cortez Darell|2946|Brazil|M|Head|||64|107019 +3010|NJ|Passaic County|Pompton Lakes borough|1422|0|2|Schaunt|Rupert|2991|South Dakota|M|Son|||19|107020 +3010|NJ|Passaic County|Pompton Lakes borough|1422|0|3|Schaunt|Daisy|2997|New York|F|Daughter|||13|107021 + +3010|NY|Orange County|Middletown city|1423|0|1|Zirk|Markus Howard|2945|New York|M|Head|||65|107022 +3010|NY|Orange County|Middletown city|1423|0|2|Zirk|Colby|2951|South Dakota|F|Spouse|||59|107023 +3010|NY|Orange County|Middletown city|1423|0|3|Zirk|Arletha|2981|New York|F|Daughter|||29|107024 +3010|NY|Orange County|Middletown city|1423|0|4|Zirk|Cornelius|2997|North Dakota|M|Son|||13|107025 +3010|NY|Orange County|Middletown city|1423|0|5|Zirk|Misti|3003|SD|F|Daughter|||7|107026 +3010|NY|Orange County|Middletown city|1423|0|6|Zirk|Ellena|3007|NY|F|Daughter|||3|107027 +3010|NY|Orange County|Middletown city|1423|0|7|Zirk|Timothy|3009|NY|M|Son|||1|107028 + +3010|PA|Susquehanna County|New Milford borough|1424|0|1|Hunnicut|Del Britt|2968|Lao People's Democratic Republic|M|Head|||42|107029 +3010|PA|Susquehanna County|New Milford borough|1424|0|2|Hunnicut|Floretta|2971|Mississippi|F|Spouse|||39|107030 +3010|PA|Susquehanna County|New Milford borough|1424|0|3|Hunnicut|Olene Dorthey|2995|Arkansas|F|Daughter|||15|107031 +3010|PA|Susquehanna County|New Milford borough|1424|0|4|Hunnicut|Mary|3007|PA|F|Daughter|||3|107032 + +3010|IL|Hancock County, Henderson County|Dallas City city|1425|0|1|Dunn|Eldon Jan|2970|Delaware|M|Head|||40|107033 +3010|IL|Hancock County, Henderson County|Dallas City city|1425|0|2|Dunn|Trula|2968|Kansas|F|Spouse|||42|107034 +3010|IL|Hancock County, Henderson County|Dallas City city|1425|0|3|Dunn|Charity|2998|Georgia|F|Daughter|||12|107035 +3010|IL|Hancock County, Henderson County|Dallas City city|1425|0|4|Dunn|Heather|3001|IL|F|Daughter|||9|107036 +3010|IL|Hancock County, Henderson County|Dallas City city|1425|0|5|Dunn|Ricarda|3003|IL|F|Daughter|||7|107037 +3010|IL|Hancock County, Henderson County|Dallas City city|1425|0|6|Dunn|Melisa|3005|IL|F|Daughter|||5|107038 + +3010|IL|Cook County|Golf village|1426|0|1|Stein|Fred Oswaldo|2965|New Jersey|M|Head|||45|107039 +3010|IL|Cook County|Golf village|1426|0|2|Stein|Miquel Columbus|2993|Indiana|M|Son|||17|107040 +3010|IL|Cook County|Golf village|1426|0|3|Stein|Alaina|2995|Vermont|F|Daughter|||15|107041 +3010|IL|Cook County|Golf village|1426|0|4|Stein|Fredric|2997|Utah|M|Son|||13|107042 + +3010|MI|Menominee County|Gourley township|1427|0|1|Little|Lon Shelby|2967|Delaware|M|Head|||43|107043 +3010|MI|Menominee County|Gourley township|1427|0|2|Little|Elna|2976|Kentucky|F|Spouse|||34|107044 +3010|MI|Menominee County|Gourley township|1427|0|3|Little|Mirella|3000|Alabama|F|Daughter|||10|107045 +3010|MI|Menominee County|Gourley township|1427|0|4|Little|Bev|3001|MI|F|Daughter|||9|107046 +3010|MI|Menominee County|Gourley township|1427|0|5|Little|Billie Hal|3005|MI|M|Son|||5|107047 +3010|MI|Menominee County|Gourley township|1427|0|6|Little|Vernita Alisia|3007|MI|F|Daughter|||3|107048 + +3010|CO|Chaffee County|Johnson Village CDP|1428|0|1|Goodwater|Patricia Wayne|2977|East Timor|M|Head|||33|107049 +3010|CO|Chaffee County|Johnson Village CDP|1428|0|2|Goodwater|Shanell|2982|South Dakota|F|Spouse|||28|107050 +3010|CO|Chaffee County|Johnson Village CDP|1428|0|3|Goodwater|Stuart|3001|KY|M|Son|||9|107051 +3010|CO|Chaffee County|Johnson Village CDP|1428|0|4|Goodwater|Julee|3003|KY|F|Daughter|||7|107052 +3010|CO|Chaffee County|Johnson Village CDP|1428|0|5|Goodwater|Gilbert|3005|KY|M|Son|||5|107053 + +3010|WI|Pierce County|Diamond Bluff town|1429|0|1|Hood|Timothy Jewell|2937|Washington|M|Head|||73|107054 +3010|WI|Pierce County|Diamond Bluff town|1429|0|2|Hood|Anderson|2994|Rhode Island|M|Son|||16|107055 +3010|WI|Pierce County|Diamond Bluff town|1429|0|3|Hood|Albert|2998|Maryland|F|Daughter|||12|107056 + +3010|NY|Ulster County|New Paltz village|1430|0|1|Tiogangco|Morris Harlan|2950|Taiwan, Province Of China|M|Head|||60|107057 +3010|NY|Ulster County|New Paltz village|1430|0|2|Tiogangco|Charolette|2961|Delaware|F|Spouse|||49|107058 +3010|NY|Ulster County|New Paltz village|1430|0|3|Tiogangco|Cher|2995|Montserrat|F|Daughter|||15|107059 +3010|NY|Ulster County|New Paltz village|1430|0|4|Tiogangco|Bill|3005|NY|M|Son|||5|107060 + +3010|NH|Strafford County|Dover city|1431|0|1|Clark|Herb Kent|2950|Kansas|M|Head|||60|107061 +3010|NH|Strafford County|Dover city|1431|0|2|Clark|Sharlene|2972|Idaho|F|Spouse|||38|107062 +3010|NH|Strafford County|Dover city|1431|0|3|Clark|Normand|2996|Ohio|M|Son|||14|107063 +3010|NH|Strafford County|Dover city|1431|0|4|Clark|Darrick|2998|Argentina|M|Son|||12|107064 +3010|NH|Strafford County|Dover city|1431|0|5|Clark|Donnell Nicky|3001|NH|M|Son|||9|107065 +3010|NH|Strafford County|Dover city|1431|0|6|Clark|Filiberto|3003|NH|M|Son|||7|107066 +3010|NH|Strafford County|Dover city|1431|0|7|Clark|Antone|3007|NH|M|Son|||3|107067 +3010|NH|Strafford County|Dover city|1431|0|8|Clark|Rory|3009|NH|M|Son|||1|107068 + +3010|MN|Clearwater County|Long Lost Lake township|1433|0|1|Meyerowitz|Troy Valentin|2948|Hawaii|M|Head|||62|107069 + +3010|WA|Whatcom County|Nooksack city|1434|0|1|Mcdonald|Jean Geoffrey|2945|Indiana|M|Head|||65|107070 +3010|WA|Whatcom County|Nooksack city|1434|0|2|Mcdonald|Tamekia|2953|New York|F|Spouse|||57|107071 +3010|WA|Whatcom County|Nooksack city|1434|0|3|Mcdonald|Mac|2977|Georgia|M|Son|||33|107072 +3010|WA|Whatcom County|Nooksack city|1434|0|4|Mcdonald|Pattie|2991|Wyoming|F|Daughter|||19|107073 +3010|WA|Whatcom County|Nooksack city|1434|0|5|Mcdonald|Edison|2995|Kansas|M|Son|||15|107074 +3010|WA|Whatcom County|Nooksack city|1434|0|6|Mcdonald|Leandra|3003|IL|F|Daughter|||7|107075 +3010|WA|Whatcom County|Nooksack city|1434|0|7|Mcdonald|Jae Hershel|3009|WA|M|Son|||1|107076 + +3010|MI|St. Clair County|Burtchville township|1435|0|1|Maasch|Nanette|2978|West Virginia|F|Spouse|||32|107077 +3010|MI|St. Clair County|Burtchville township|1435|0|2|Maasch|Camille|2998|Tokelau|F|Daughter|||12|107078 +3010|MI|St. Clair County|Burtchville township|1435|0|3|Maasch|Diann|3000|Connecticut|F|Daughter|||10|107079 +3010|MI|St. Clair County|Burtchville township|1435|0|4|Maasch|Otilia Roberta|3009|MI|F|Daughter|||1|107080 + +3010|TX|Galveston County|Bacliff CDP|1436|0|1|Pinkley|Andy Elden|2951|North Dakota|M|Head|||59|107081 +3010|TX|Galveston County|Bacliff CDP|1436|0|2|Pinkley|Terese|2975|Utah|F|Spouse|||35|107082 +3010|TX|Galveston County|Bacliff CDP|1436|0|3|Pinkley|Jeramy|3005|RI|M|Son|||5|107083 +3010|TX|Galveston County|Bacliff CDP|1436|0|4|Pinkley|Becki|3009|TX|F|Daughter|||1|107084 + +3010|ME|Penobscot County|Lincoln town|1437|0|1|Hedrix|Gil Rex|2960|Colorado|M|Head|||50|107085 +3010|ME|Penobscot County|Lincoln town|1437|0|2|Hedrix|Lesha Merissa|2972|Hawaii|F|Spouse|||38|107086 +3010|ME|Penobscot County|Lincoln town|1437|0|3|Hedrix|Eugenio|2992|Texas|M|Son|||18|107087 +3010|ME|Penobscot County|Lincoln town|1437|0|4|Hedrix|Hayden|2998|Mississippi|M|Son|||12|107088 +3010|ME|Penobscot County|Lincoln town|1437|0|5|Hedrix|Noel|3000|Alaska|M|Son|||10|107089 +3010|ME|Penobscot County|Lincoln town|1437|0|6|Hedrix|Roman|3005|ME|M|Son|||5|107090 +3010|ME|Penobscot County|Lincoln town|1437|0|7|Hedrix|Merri|3007|ME|F|Daughter|||3|107091 + +3010|CT|Fairfield County|Brookfield town|1438|0|1|Vargas|Mose|2990|Florida|M|Son|||20|107092 +3010|CT|Fairfield County|Brookfield town|1438|0|2|Vargas|Beau|3000|Vermont|M|Son|||10|107093 + +3010|IL|Cook County|Streamwood village|1439|0|1|Geiser|Amado Jame|2948|West Virginia|M|Head|||62|107094 +3010|IL|Cook County|Streamwood village|1439|0|2|Geiser|Jennine|2955|Florida|F|Spouse|||55|107095 +3010|IL|Cook County|Streamwood village|1439|0|3|Geiser|Ashley|2983|Wisconsin|M|Son|||27|107096 +3010|IL|Cook County|Streamwood village|1439|0|4|Geiser|Debbie|2987|Montana|F|Daughter|||23|107097 +3010|IL|Cook County|Streamwood village|1439|0|5|Geiser|Jeffie|2989|Delaware|F|Daughter|||21|107098 +3010|IL|Cook County|Streamwood village|1439|0|6|Geiser|Cathrine|2995|French Southern Territories|F|Daughter|||15|107099 +3010|IL|Cook County|Streamwood village|1439|0|7|Geiser|Laurence Riley|2997|Illinois|M|Son|||13|107100 +3010|IL|Cook County|Streamwood village|1439|0|8|Geiser|Migdalia|3007|IL|F|Daughter|||3|107101 + +3010|CA|Shasta County|Cassel CDP|1440|0|1|Duffek|Keren|2963|Ohio|F|Head|||47|107102 +3010|CA|Shasta County|Cassel CDP|1440|0|2|Duffek|Drusilla|2993|Wisconsin|F|Daughter|||17|107103 +3010|CA|Shasta County|Cassel CDP|1440|0|3|Duffek|Walton|2999|Papua New Guinea|M|Son|||11|107104 + +3010|WI|Washington County|West Bend city|1441|0|1|Geerdes|Derick Forest|2961|Armenia|M|Son|||49|107105 +3010|WI|Washington County|West Bend city|1441|0|2|Geerdes|Dale|2971|Guam|F|Daughter|||39|107106 +3010|WI|Washington County|West Bend city|1441|0|3|Geerdes|Gerald|2973|Colorado|F|Daughter|||37|107107 +3010|WI|Washington County|West Bend city|1441|0|4|Geerdes|Cheyenne|2975|Tennessee|F|Daughter|||35|107108 +3010|WI|Washington County|West Bend city|1441|0|5|Geerdes|Sage Shella|2995|New York|F|Daughter|||15|107109 + +3010|KS|Osage County|Carbondale city|1442|0|1|Del|Theola|2953|Oklahoma|F|Head|||57|107110 +3010|KS|Osage County|Carbondale city|1442|0|2|Del|Zora|2979|Virginia|F|Daughter|||31|107111 +3010|KS|Osage County|Carbondale city|1442|0|3|Del|Lavenia|2983|North Dakota|F|Daughter|||27|107112 +3010|KS|Osage County|Carbondale city|1442|0|4|Del|Leon|2987|North Carolina|M|Son|||23|107113 +3010|KS|Osage County|Carbondale city|1442|0|5|Del|Bernard|2993|Albania|M|Son|||17|107114 +3010|KS|Osage County|Carbondale city|1442|0|6|Del|Ricky|2999|Tennessee|M|Son|||11|107115 + +3010|NJ|Warren County|Silver Lake CDP|1443|0|1|Thorp|Tommy|2977|West Virginia|M|Son|||33|107116 +3010|NJ|Warren County|Silver Lake CDP|1443|0|2|Thorp|Daron|2985|Mayotte|M|Son|||25|107117 +3010|NJ|Warren County|Silver Lake CDP|1443|0|3|Thorp|Clare|2991|Washington|F|Daughter|||19|107118 +3010|NJ|Warren County|Silver Lake CDP|1443|0|4|Thorp|Darius Linwood|2995|Idaho|M|Son|||15|107119 + +3010|OH|Trumbull County|Lordstown village|1444|0|1|Maerz|Alaina|2943|New York|F|Spouse|||67|107120 +3010|OH|Trumbull County|Lordstown village|1444|0|2|Maerz|Logan Logan|2981|Colorado|F|Daughter|||29|107121 +3010|OH|Trumbull County|Lordstown village|1444|0|3|Maerz|Kareem|2989|Idaho|M|Son|||21|107122 +3010|OH|Trumbull County|Lordstown village|1444|0|4|Maerz|Shawana|3005|OH|F|Daughter|||5|107123 +3010|OH|Trumbull County|Lordstown village|1444|0|5|Maerz|Eddie|3009|OH|M|Son|||1|107124 + +3010|MN|Sibley County|Green Isle city|1445|0|1|Bain|Grant Rolando|2950|Tonga|M|Head|||60|107125 +3010|MN|Sibley County|Green Isle city|1445|0|2|Bain|Petronila|2969|Alaska|F|Spouse|||41|107126 +3010|MN|Sibley County|Green Isle city|1445|0|3|Bain|Kermit|2993|Delaware|M|Son|||17|107127 +3010|MN|Sibley County|Green Isle city|1445|0|4|Bain|Oralee Yesenia|2999|Georgia|F|Daughter|||11|107128 +3010|MN|Sibley County|Green Isle city|1445|0|5|Bain|Herlinda|3001|MN|F|Daughter|||9|107129 +3010|MN|Sibley County|Green Isle city|1445|0|6|Bain|Russ|3003|MN|M|Son|||7|107130 + +3010|WI|Jackson County|Melrose town|1446|0|1|Kemp|Arnold|2971|Hawaii|M|Son|||39|107131 +3010|WI|Jackson County|Melrose town|1446|0|2|Kemp|Ardelle Alexia|2995|Hawaii|F|Daughter|||15|107132 +3010|WI|Jackson County|Melrose town|1446|0|3|Kemp|Kassie Rae|2997|Nevada|F|Daughter|||13|107133 + +3010|ME|Franklin County|Rangeley plantation|1447|0|1|Zelenka|Leonel Carey|2956|Missouri|M|Head|||54|107134 +3010|ME|Franklin County|Rangeley plantation|1447|0|2|Zelenka|Darin|2985|Arizona|M|Son|||25|107135 +3010|ME|Franklin County|Rangeley plantation|1447|0|3|Zelenka|Tyree|2997|Maine|M|Son|||13|107136 +3010|ME|Franklin County|Rangeley plantation|1447|0|4|Zelenka|Luther Ezekiel|2999|Michigan|M|Son|||11|107137 + +3010|PR|Morovis Municipio|Barahona comunidad|1448|0|1|Fredette|Milo Gale|2958|New Hampshire|M|Head|||52|107138 +3010|PR|Morovis Municipio|Barahona comunidad|1448|0|2|Fredette|Lieselotte|2988|Wyoming|F|Daughter|||22|107139 +3010|PR|Morovis Municipio|Barahona comunidad|1448|0|3|Fredette|Oscar Clark|2990|Pennsylvania|M|Son|||20|107140 +3010|PR|Morovis Municipio|Barahona comunidad|1448|0|4|Fredette|Monnie Kiyoko|2996|South Carolina|F|Daughter|||14|107141 +3010|PR|Morovis Municipio|Barahona comunidad|1448|0|5|Fredette|Carson|2998|Singapore|M|Son|||12|107142 +3010|PR|Morovis Municipio|Barahona comunidad|1448|0|6|Fredette|Alfonzo Archie|3003|PR|M|Son|||7|107143 +3010|PR|Morovis Municipio|Barahona comunidad|1448|0|7|Fredette|Yen|3007|PR|F|Daughter|||3|107144 + +3010|LA|East Feliciana Parish|Jackson town|1449|0|1|Setzer|Mervin Silas|2953|Kentucky|M|Head|||57|107145 +3010|LA|East Feliciana Parish|Jackson town|1449|0|2|Setzer|Jeff|2998|Minnesota|M|Son|||12|107146 +3010|LA|East Feliciana Parish|Jackson town|1449|0|3|Setzer|Kasandra Yoko|3001|LA|F|Daughter|||9|107147 +3010|LA|East Feliciana Parish|Jackson town|1449|0|4|Setzer|Felice|3003|LA|F|Daughter|||7|107148 + +3010|WI|Clark County, Marathon County|Dorchester village|1450|0|1|Breen|Sherron|2951|Korea, Republic Of|F|Head|||59|107149 +3010|WI|Clark County, Marathon County|Dorchester village|1450|0|2|Breen|Roxanne|2991|Turks And Caicos Islands|F|Daughter|||19|107150 +3010|WI|Clark County, Marathon County|Dorchester village|1450|0|3|Breen|Sandee|2995|Oman|F|Daughter|||15|107151 +3010|WI|Clark County, Marathon County|Dorchester village|1450|0|4|Breen|Bennie|2997|Connecticut|F|Daughter|||13|107152 + +3010|ND|Walsh County|Ardoch city|1451|0|1|Lowes|Mikel Hank|2947|Tennessee|M|Head|||63|107153 +3010|ND|Walsh County|Ardoch city|1451|0|2|Lowes|Debera|2969|Utah|F|Spouse|||41|107154 +3010|ND|Walsh County|Ardoch city|1451|0|3|Lowes|King|2991|Kansas|M|Son|||19|107155 +3010|ND|Walsh County|Ardoch city|1451|0|4|Lowes|Jerrica|2995|Kentucky|F|Daughter|||15|107156 +3010|ND|Walsh County|Ardoch city|1451|0|5|Lowes|Angla Tandy|3001|VT|F|Daughter|||9|107157 +3010|ND|Walsh County|Ardoch city|1451|0|6|Lowes|Emmanuel|3007|ND|M|Son|||3|107158 + +3010|TX|Ochiltree County|Perryton city|1452|0|1|Sirucek|Michael Neville|2954|Utah|M|Head|||56|107159 +3010|TX|Ochiltree County|Perryton city|1452|0|2|Sirucek|Alise Rosamaria|2964|Ohio|F|Spouse|||46|107160 +3010|TX|Ochiltree County|Perryton city|1452|0|3|Sirucek|Jaleesa|2996|Utah|F|Daughter|||14|107161 +3010|TX|Ochiltree County|Perryton city|1452|0|4|Sirucek|Chuck|2998|Faroe Islands|M|Son|||12|107162 +3010|TX|Ochiltree County|Perryton city|1452|0|5|Sirucek|Zachery|3000|Indiana|M|Son|||10|107163 +3010|TX|Ochiltree County|Perryton city|1452|0|6|Sirucek|Venetta Idalia|3005|TX|F|Daughter|||5|107164 +3010|TX|Ochiltree County|Perryton city|1452|0|7|Sirucek|Hae|3007|TX|F|Daughter|||3|107165 +3010|TX|Ochiltree County|Perryton city|1452|0|8|Sirucek|Lenard Kelly|3009|TX|M|Son|||1|107166 + +3010|WI|Richland County|Lone Rock village|1453|0|1|Tosh|Bennett Gail|2939|Botswana|M|Head|||71|107167 +3010|WI|Richland County|Lone Rock village|1453|0|2|Tosh|Dulcie Nubia|2958|Nevada|F|Spouse|||52|107168 +3010|WI|Richland County|Lone Rock village|1453|0|3|Tosh|Eliz|3000|Northern Mariana Islands|F|Daughter|||10|107169 +3010|WI|Richland County|Lone Rock village|1453|0|4|Tosh|Buffy|3001|WI|F|Daughter|||9|107170 +3010|WI|Richland County|Lone Rock village|1453|0|5|Tosh|Darwin Zachery|3003|WI|M|Son|||7|107171 +3010|WI|Richland County|Lone Rock village|1453|0|6|Tosh|Alphonso|3005|WI|M|Son|||5|107172 +3010|WI|Richland County|Lone Rock village|1453|0|7|Tosh|Kim|3009|WI|M|Son|||1|107173 + +3010|GA|Emanuel County|Norristown CDP|1454|0|1|Jones|Buddy|2938|Wyoming|M|Head|||72|107174 +3010|GA|Emanuel County|Norristown CDP|1454|0|2|Jones|Charise Retha|2958|Texas|F|Spouse|||52|107175 +3010|GA|Emanuel County|Norristown CDP|1454|0|3|Jones|Joseph|2986|Solomon Islands|F|Daughter|||24|107176 +3010|GA|Emanuel County|Norristown CDP|1454|0|4|Jones|Madie Yun|2990|Nevada|F|Daughter|||20|107177 +3010|GA|Emanuel County|Norristown CDP|1454|0|5|Jones|Tynisha|2996|Sri Lanka|F|Daughter|||14|107178 +3010|GA|Emanuel County|Norristown CDP|1454|0|6|Jones|Wan|3003|GA|F|Daughter|||7|107179 +3010|GA|Emanuel County|Norristown CDP|1454|0|7|Jones|Gaston|3007|GA|M|Son|||3|107180 +3010|GA|Emanuel County|Norristown CDP|1454|0|8|Jones|Herman|3009|GA|M|Son|||1|107181 + +3010|NY|Westchester County|Greenburgh town|1455|0|1|Malys|Salvador Cleveland|2943|Arizona|M|Head|||67|107182 +3010|NY|Westchester County|Greenburgh town|1455|0|2|Malys|Dayle|2957|Arkansas|F|Spouse|||53|107183 +3010|NY|Westchester County|Greenburgh town|1455|0|3|Malys|Garret|2991|Georgia|M|Son|||19|107184 +3010|NY|Westchester County|Greenburgh town|1455|0|4|Malys|Davis|2995|Washington|M|Son|||15|107185 +3010|NY|Westchester County|Greenburgh town|1455|0|5|Malys|Johnathan|2999|Sierra Leone|M|Son|||11|107186 +3010|NY|Westchester County|Greenburgh town|1455|0|6|Malys|Chantell|3001|NY|F|Daughter|||9|107187 +3010|NY|Westchester County|Greenburgh town|1455|0|7|Malys|Natisha Lucilla|3005|NY|F|Daughter|||5|107188 + +3010|IA|Benton County|Mount Auburn city|1456|0|1|Elliott|Abram Marion|2976|Gibraltar|M|Head|||34|107189 +3010|IA|Benton County|Mount Auburn city|1456|0|2|Elliott|Mei|2973|British Indian Ocean Territory|F|Spouse|||37|107190 +3010|IA|Benton County|Mount Auburn city|1456|0|3|Elliott|Mel|2995|Oregon|M|Son|||15|107191 +3010|IA|Benton County|Mount Auburn city|1456|0|4|Elliott|Rosendo|3003|IA|M|Son|||7|107192 +3010|IA|Benton County|Mount Auburn city|1456|0|5|Elliott|Sam|3007|IA|M|Son|||3|107193 +3010|IA|Benton County|Mount Auburn city|1456|0|6|Elliott|Nick|3009|IA|M|Son|||1|107194 + +3010|CO|Phillips County|Holyoke city|1457|0|1|Atteburg|Anton Eldon|2964|Connecticut|M|Head|||46|107195 +3010|CO|Phillips County|Holyoke city|1457|0|2|Atteburg|Margorie|2963|Delaware|F|Spouse|||47|107196 +3010|CO|Phillips County|Holyoke city|1457|0|3|Atteburg|Van|2999|Maryland|F|Daughter|||11|107197 +3010|CO|Phillips County|Holyoke city|1457|0|4|Atteburg|Adeline Kaye|3001|CO|F|Daughter|||9|107198 +3010|CO|Phillips County|Holyoke city|1457|0|5|Atteburg|Kristin|3003|CO|F|Daughter|||7|107199 +3010|CO|Phillips County|Holyoke city|1457|0|6|Atteburg|Alysia|3005|CO|F|Daughter|||5|107200 + +3010|NJ|Hudson County|Hoboken city|1458|0|1|Binstock|Arron|2945|Montana|M|Head|||65|107201 +3010|NJ|Hudson County|Hoboken city|1458|0|2|Binstock|Maude|2959|Korea, Democratic People's Republic Of|F|Spouse|||51|107202 +3010|NJ|Hudson County|Hoboken city|1458|0|3|Binstock|Celesta|2995|Nebraska|F|Daughter|||15|107203 +3010|NJ|Hudson County|Hoboken city|1458|0|4|Binstock|Lakeisha|2997|Colorado|F|Daughter|||13|107204 +3010|NJ|Hudson County|Hoboken city|1458|0|5|Binstock|Janella|3001|NJ|F|Daughter|||9|107205 +3010|NJ|Hudson County|Hoboken city|1458|0|6|Binstock|Jenna|3007|NJ|F|Daughter|||3|107206 +3010|NJ|Hudson County|Hoboken city|1458|0|7|Binstock|Kelli|3009|NJ|F|Daughter|||1|107207 + +3010|WI|Buffalo County|Maxville town|1459|0|1|Mosier|Rico Linwood|2952|North Dakota|M|Head|||58|107208 +3010|WI|Buffalo County|Maxville town|1459|0|2|Mosier|Rosann|2966|Louisiana|F|Spouse|||44|107209 +3010|WI|Buffalo County|Maxville town|1459|0|3|Mosier|Edmond|2988|Michigan|M|Son|||22|107210 +3010|WI|Buffalo County|Maxville town|1459|0|4|Mosier|Glenn Lenny|2994|Washington|M|Son|||16|107211 +3010|WI|Buffalo County|Maxville town|1459|0|5|Mosier|Lucius|2996|Connecticut|M|Son|||14|107212 +3010|WI|Buffalo County|Maxville town|1459|0|6|Mosier|Gilberto|3003|WI|M|Son|||7|107213 +3010|WI|Buffalo County|Maxville town|1459|0|7|Mosier|Tillie|3005|WI|F|Daughter|||5|107214 + +3010|MN|Stearns County|St. Rosa city|1460|0|1|Wehmeyer|Sylvia|2983|Indiana|F|Head|||27|107215 + +3010|NJ|Passaic County|Paterson city|1461|0|1|Kressler|Samuel Carlton|2937|South Dakota|M|Head|||73|107216 +3010|NJ|Passaic County|Paterson city|1461|0|2|Kressler|Shira|2986|Alaska|F|Daughter|||24|107217 +3010|NJ|Passaic County|Paterson city|1461|0|3|Kressler|Jene|2988|Colorado|F|Daughter|||22|107218 +3010|NJ|Passaic County|Paterson city|1461|0|4|Kressler|Janyce|2996|Hawaii|F|Daughter|||14|107219 +3010|NJ|Passaic County|Paterson city|1461|0|5|Kressler|Beau|3000|Delaware|M|Son|||10|107220 + +3010|WV|Preston County|Newburg town|1462|0|1|Psencik|Dan Bernard|2956|West Virginia|M|Head|||54|107221 +3010|WV|Preston County|Newburg town|1462|0|2|Psencik|Tula|2961|Illinois|F|Spouse|||49|107222 +3010|WV|Preston County|Newburg town|1462|0|3|Psencik|Marquis|2999|Illinois|M|Son|||11|107223 +3010|WV|Preston County|Newburg town|1462|0|4|Psencik|Gene|3001|WV|F|Daughter|||9|107224 +3010|WV|Preston County|Newburg town|1462|0|5|Psencik|Jaime|3005|WV|F|Daughter|||5|107225 +3010|WV|Preston County|Newburg town|1462|0|6|Psencik|Yuri|3007|WV|F|Daughter|||3|107226 + +3010|NH|Hillsborough County|Amherst CDP|1463|0|1|Jollimore|Dominique Stefan|2946|Greece|M|Head|||64|107227 +3010|NH|Hillsborough County|Amherst CDP|1463|0|2|Jollimore|Shannon|2944|Oregon|F|Spouse|||66|107228 +3010|NH|Hillsborough County|Amherst CDP|1463|0|3|Jollimore|Larry|2980|Pennsylvania|M|Son|||30|107229 +3010|NH|Hillsborough County|Amherst CDP|1463|0|4|Jollimore|Tandra|2996|Ohio|F|Daughter|||14|107230 +3010|NH|Hillsborough County|Amherst CDP|1463|0|5|Jollimore|Bennett|3001|NH|M|Son|||9|107231 +3010|NH|Hillsborough County|Amherst CDP|1463|0|6|Jollimore|Virgil|3009|NH|F|Daughter|||1|107232 + +3010|TX|Zapata County|Lopeño CDP|1464|0|1|Lowe|Boyce|2971|Washington|M|Head|||39|107233 +3010|TX|Zapata County|Lopeño CDP|1464|0|2|Lowe|Marina|2973|Arizona|F|Spouse|||37|107234 +3010|TX|Zapata County|Lopeño CDP|1464|0|3|Lowe|Allen Bryant|2997|West Virginia|M|Son|||13|107235 +3010|TX|Zapata County|Lopeño CDP|1464|0|4|Lowe|Ayanna|2999|Kentucky|F|Daughter|||11|107236 +3010|TX|Zapata County|Lopeño CDP|1464|0|5|Lowe|Jerrica|3001|TX|F|Daughter|||9|107237 +3010|TX|Zapata County|Lopeño CDP|1464|0|6|Lowe|Delbert|3005|TX|M|Son|||5|107238 +3010|TX|Zapata County|Lopeño CDP|1464|0|7|Lowe|Susy|3007|TX|F|Daughter|||3|107239 + +3010|VA|Campbell County|Altavista town|1465|0|1|Thieme|Carson Brooks|2949|Connecticut|M|Head|||61|107240 +3010|VA|Campbell County|Altavista town|1465|0|2|Thieme|Sterling|2989|Montana|M|Son|||21|107241 +3010|VA|Campbell County|Altavista town|1465|0|3|Thieme|Rachelle|2995|Indiana|F|Daughter|||15|107242 + +3010|IL|St. Clair County|Darmstadt CDP|1466|0|1|Pent|Rob Willian|2944|Maine|M|Head|||66|107243 +3010|IL|St. Clair County|Darmstadt CDP|1466|0|2|Pent|Kayleen Jodi|2953|Texas|F|Spouse|||57|107244 +3010|IL|St. Clair County|Darmstadt CDP|1466|0|3|Pent|Alonzo|2993|Russian Federation|M|Son|||17|107245 +3010|IL|St. Clair County|Darmstadt CDP|1466|0|4|Pent|Adelaida|3005|IL|F|Daughter|||5|107246 + +3010|MO|Warren County|Marthasville city|1467|0|1|Davis|Augusta|2962|Djibouti|F|Spouse|||48|107247 +3010|MO|Warren County|Marthasville city|1467|0|2|Davis|Junie|2986|Alabama|F|Daughter|||24|107248 +3010|MO|Warren County|Marthasville city|1467|0|3|Davis|Frances Lindsay|2988|Oklahoma|M|Son|||22|107249 +3010|MO|Warren County|Marthasville city|1467|0|4|Davis|Palmer|2996|Arkansas|M|Son|||14|107250 +3010|MO|Warren County|Marthasville city|1467|0|5|Davis|Man|3000|Kentucky|M|Son|||10|107251 + +3010|NJ|Burlington County|Beverly city|1468|0|1|Swearingen|Man Alexander|2945|Sudan|M|Head|||65|107252 +3010|NJ|Burlington County|Beverly city|1468|0|2|Swearingen|Rosalie|2958|Delaware|F|Spouse|||52|107253 +3010|NJ|Burlington County|Beverly city|1468|0|3|Swearingen|Coralie|2980|Indiana|F|Daughter|||30|107254 +3010|NJ|Burlington County|Beverly city|1468|0|4|Swearingen|Donald|2986|Antarctica|M|Son|||24|107255 +3010|NJ|Burlington County|Beverly city|1468|0|5|Swearingen|Clifford|2990|New York|M|Son|||20|107256 +3010|NJ|Burlington County|Beverly city|1468|0|6|Swearingen|Jaimie|2996|Michigan|F|Daughter|||14|107257 +3010|NJ|Burlington County|Beverly city|1468|0|7|Swearingen|Cristin|2998|Idaho|F|Daughter|||12|107258 +3010|NJ|Burlington County|Beverly city|1468|0|8|Swearingen|Lynn|3001|NJ|M|Son|||9|107259 +3010|NJ|Burlington County|Beverly city|1468|0|9|Swearingen|Bennett|3005|NJ|M|Son|||5|107260 + +3010|MN|Lac qui Parle County|Maxwell township|1469|0|1|Fisk|Luciano Johnnie|2938|Macedonia, The Former Yugoslav Republic Of|M|Head|||72|107261 +3010|MN|Lac qui Parle County|Maxwell township|1469|0|2|Fisk|Lelia Shenita|2995|Florida|F|Daughter|||15|107262 +3010|MN|Lac qui Parle County|Maxwell township|1469|0|3|Fisk|Berry|2997|Armenia|M|Son|||13|107263 +3010|MN|Lac qui Parle County|Maxwell township|1469|0|4|Fisk|Jerrica|2999|Wallis And Futuna|F|Daughter|||11|107264 + +3010|IL|Lake County|Lake Catherine CDP|1470|0|1|Drummond|Salvatore Gus|2958|Florida|M|Head|||52|107265 +3010|IL|Lake County|Lake Catherine CDP|1470|0|2|Drummond|Sondra|2977|Washington|F|Spouse|||33|107266 +3010|IL|Lake County|Lake Catherine CDP|1470|0|3|Drummond|Jestine|2999|Alaska|F|Daughter|||11|107267 +3010|IL|Lake County|Lake Catherine CDP|1470|0|4|Drummond|Marvel|3001|IL|F|Daughter|||9|107268 +3010|IL|Lake County|Lake Catherine CDP|1470|0|5|Drummond|Jaleesa Ashlee|3005|IL|F|Daughter|||5|107269 +3010|IL|Lake County|Lake Catherine CDP|1470|0|6|Drummond|Dave|3007|IL|M|Son|||3|107270 +3010|IL|Lake County|Lake Catherine CDP|1470|0|7|Drummond|Queen|3009|IL|F|Daughter|||1|107271 + +3010|CO|Jefferson County|Dakota Ridge CDP|1471|0|1|Edwards|Cletus Mitchel|2941|Rhode Island|M|Head|||69|107272 +3010|CO|Jefferson County|Dakota Ridge CDP|1471|0|2|Edwards|Terrance|2989|Texas|M|Son|||21|107273 +3010|CO|Jefferson County|Dakota Ridge CDP|1471|0|3|Edwards|Iesha|2997|Svalbard And Jan Mayen|F|Daughter|||13|107274 +3010|CO|Jefferson County|Dakota Ridge CDP|1471|0|4|Edwards|Sandy|2999|Arizona|M|Son|||11|107275 + +3010|AZ|Yavapai County|Cornville CDP|1472|0|1|Williams|Willy Edmond|2939|Louisiana|M|Head|||71|107276 +3010|AZ|Yavapai County|Cornville CDP|1472|0|2|Williams|Elroy|2963|Washington|M|Son|||47|107277 +3010|AZ|Yavapai County|Cornville CDP|1472|0|3|Williams|Edgardo|2991|Maine|M|Son|||19|107278 +3010|AZ|Yavapai County|Cornville CDP|1472|0|4|Williams|Enrique|2995|Malaysia|M|Son|||15|107279 + +3010|MT|Chouteau County, Hill County|Rocky Boy West CDP|1473|0|1|Colwell|Jacques Leandro|2968|Minnesota|M|Head|||42|107280 +3010|MT|Chouteau County, Hill County|Rocky Boy West CDP|1473|0|2|Colwell|Renda|2974|Oregon|F|Spouse|||36|107281 +3010|MT|Chouteau County, Hill County|Rocky Boy West CDP|1473|0|3|Colwell|Cecil|2998|West Virginia|F|Daughter|||12|107282 +3010|MT|Chouteau County, Hill County|Rocky Boy West CDP|1473|0|4|Colwell|Lashawn|3003|MT|F|Daughter|||7|107283 +3010|MT|Chouteau County, Hill County|Rocky Boy West CDP|1473|0|5|Colwell|Aurelio|3005|MT|M|Son|||5|107284 +3010|MT|Chouteau County, Hill County|Rocky Boy West CDP|1473|0|6|Colwell|Ahmad Adolph|3007|MT|M|Son|||3|107285 + +3010|OH|Trumbull County|McDonald village|1474|0|1|Davis|Hayden Brendan|2952|Hawaii|M|Head|||58|107286 +3010|OH|Trumbull County|McDonald village|1474|0|2|Davis|Mozelle|2975|Oregon|F|Spouse|||35|107287 +3010|OH|Trumbull County|McDonald village|1474|0|3|Davis|Suzanna|2997|New Jersey|F|Daughter|||13|107288 +3010|OH|Trumbull County|McDonald village|1474|0|4|Davis|Kacie|2999|Louisiana|F|Daughter|||11|107289 +3010|OH|Trumbull County|McDonald village|1474|0|5|Davis|Rae|3003|OH|F|Daughter|||7|107290 +3010|OH|Trumbull County|McDonald village|1474|0|6|Davis|Erminia|3007|OH|F|Daughter|||3|107291 + +3010|CA|Fresno County|Coalinga city|1475|0|1|Freeman|Noble Edgardo|2968|Venezuela|M|Head|||42|107292 +3010|CA|Fresno County|Coalinga city|1475|0|2|Freeman|Alycia|2966|Rhode Island|F|Spouse|||44|107293 +3010|CA|Fresno County|Coalinga city|1475|0|3|Freeman|Charlena|2996|Nebraska|F|Daughter|||14|107294 +3010|CA|Fresno County|Coalinga city|1475|0|4|Freeman|Fay|2998|Alabama|F|Daughter|||12|107295 +3010|CA|Fresno County|Coalinga city|1475|0|5|Freeman|Dollie|3000|Virginia|F|Daughter|||10|107296 +3010|CA|Fresno County|Coalinga city|1475|0|6|Freeman|Keli|3003|NJ|F|Daughter|||7|107297 + +3010|WI|Oconto County|Sobieski CDP|1476|0|1|Crawford|Johnathan Kurt|2959|Nebraska|M|Head|||51|107298 +3010|WI|Oconto County|Sobieski CDP|1476|0|2|Crawford|Janey|2957|Illinois|F|Spouse|||53|107299 +3010|WI|Oconto County|Sobieski CDP|1476|0|3|Crawford|Ji|2989|Pennsylvania|F|Daughter|||21|107300 +3010|WI|Oconto County|Sobieski CDP|1476|0|4|Crawford|Sonja|3005|WI|F|Daughter|||5|107301 + +3010|NY|Niagara County|Cambria town|1477|0|1|Batton|Randy Cornelius|2938|Alabama|M|Head|||72|107302 +3010|NY|Niagara County|Cambria town|1477|0|2|Batton|Valeria|2944|Arkansas|F|Spouse|||66|107303 +3010|NY|Niagara County|Cambria town|1477|0|3|Batton|Myron|2996|Kansas|M|Son|||14|107304 +3010|NY|Niagara County|Cambria town|1477|0|4|Batton|Linwood|3003|NY|M|Son|||7|107305 +3010|NY|Niagara County|Cambria town|1477|0|5|Batton|Kaila|3005|NY|F|Daughter|||5|107306 + +3010|NJ|Union County|Westfield town|1478|0|1|Davilla|Earnest|2956|Oklahoma|M|Head|||54|107307 + +3010|MI|Monroe County|Monroe city|1479|0|1|Went|Eric|2993|Iowa|M|Son|||17|107308 +3010|MI|Monroe County|Monroe city|1479|0|2|Went|Clemmie|2995|Arizona|F|Daughter|||15|107309 + +3010|KS|Clay County|Longford city|1480|0|1|Leagjeld|Kirby|2946|San Marino|M|Head|||64|107310 +3010|KS|Clay County|Longford city|1480|0|2|Leagjeld|Noelle|2989|Missouri|F|Daughter|||21|107311 +3010|KS|Clay County|Longford city|1480|0|3|Leagjeld|Brigette Monique|2993|Congo, The Democratic Republic Of The|F|Daughter|||17|107312 +3010|KS|Clay County|Longford city|1480|0|4|Leagjeld|Zachariah Jessie|3001|KS|M|Son|||9|107313 +3010|KS|Clay County|Longford city|1480|0|5|Leagjeld|Fannie|3003|KS|F|Daughter|||7|107314 +3010|KS|Clay County|Longford city|1480|0|6|Leagjeld|Ramiro|3007|KS|M|Son|||3|107315 + +3010|NY|Seneca County|Waterloo village|1481|0|1|Pensiero|Houston Anton|2948|Vermont|M|Head|||62|107316 +3010|NY|Seneca County|Waterloo village|1481|0|2|Pensiero|Tien|2985|Idaho|F|Daughter|||25|107317 +3010|NY|Seneca County|Waterloo village|1481|0|3|Pensiero|Leena|2991|Missouri|F|Daughter|||19|107318 +3010|NY|Seneca County|Waterloo village|1481|0|4|Pensiero|Kimbery|2997|Nevada|F|Daughter|||13|107319 +3010|NY|Seneca County|Waterloo village|1481|0|5|Pensiero|Laverne Elizebeth|2999|South Carolina|F|Daughter|||11|107320 + +3010|MI|Clare County|Hamilton township|1482|0|1|Blaxland|Guy Craig|2970|Minnesota|M|Head|||40|107321 + +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|1483|0|1|Eflin|James Vaughn|2951|Minnesota|M|Head|||59|107322 +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|1483|0|2|Eflin|Porfirio Alan|2988|Kansas|M|Son|||22|107323 +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|1483|0|3|Eflin|Shelby|2996|South Carolina|M|Son|||14|107324 +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|1483|0|4|Eflin|Alphonso|3000|Kentucky|M|Son|||10|107325 + +3010|ME|Knox County|Friendship town|1484|0|1|Adcock|Dion Lonnie|2944|Swaziland|M|Head|||66|107326 +3010|ME|Knox County|Friendship town|1484|0|2|Adcock|Jena|2945|Georgia|F|Spouse|||65|107327 +3010|ME|Knox County|Friendship town|1484|0|3|Adcock|Denisse|2973|Alabama|F|Daughter|||37|107328 +3010|ME|Knox County|Friendship town|1484|0|4|Adcock|Javier|2983|Oregon|M|Son|||27|107329 +3010|ME|Knox County|Friendship town|1484|0|5|Adcock|Eloise|3007|ME|F|Daughter|||3|107330 +3010|ME|Knox County|Friendship town|1484|0|6|Adcock|Anjelica|3009|ME|F|Daughter|||1|107331 + +3010|MD|Cecil County|Cecilton town|1485|0|1|Brown|Dannie Ned|2947|Alaska|M|Head|||63|107332 +3010|MD|Cecil County|Cecilton town|1485|0|2|Brown|Pamala|2966|New York|F|Daughter|||44|107333 +3010|MD|Cecil County|Cecilton town|1485|0|3|Brown|Ulysses|2994|Kentucky|M|Son|||16|107334 +3010|MD|Cecil County|Cecilton town|1485|0|4|Brown|Chasidy|2998|Ohio|F|Daughter|||12|107335 + +3010|MO|St. Louis County|Grantwood Village town|1486|0|1|Nunez|Jean|2977|Chile|M|Head|||33|107336 +3010|MO|St. Louis County|Grantwood Village town|1486|0|2|Nunez|Kanisha Nannie|2977|Colorado|F|Spouse|||33|107337 +3010|MO|St. Louis County|Grantwood Village town|1486|0|3|Nunez|Arletta|3001|MO|F|Daughter|||9|107338 +3010|MO|St. Louis County|Grantwood Village town|1486|0|4|Nunez|Fabiola|3003|MO|F|Daughter|||7|107339 +3010|MO|St. Louis County|Grantwood Village town|1486|0|5|Nunez|Jame|3007|MO|M|Son|||3|107340 + +3010|MI|Montcalm County|Crystal township|1487|0|1|Weiland|Kevin Eddy|2939|Pennsylvania|M|Head|||71|107341 +3010|MI|Montcalm County|Crystal township|1487|0|2|Weiland|Rosana|2958|Oregon|F|Spouse|||52|107342 +3010|MI|Montcalm County|Crystal township|1487|0|3|Weiland|Lesha|2986|Michigan|F|Daughter|||24|107343 +3010|MI|Montcalm County|Crystal township|1487|0|4|Weiland|Nyla|2996|Alabama|F|Daughter|||14|107344 +3010|MI|Montcalm County|Crystal township|1487|0|5|Weiland|Clare|2998|Maryland|F|Daughter|||12|107345 +3010|MI|Montcalm County|Crystal township|1487|0|6|Weiland|Titus|3001|MI|M|Son|||9|107346 +3010|MI|Montcalm County|Crystal township|1487|0|7|Weiland|Alvera|3003|MI|F|Daughter|||7|107347 +3010|MI|Montcalm County|Crystal township|1487|0|8|Weiland|Daren|3007|MI|M|Son|||3|107348 + +3010|NY|Steuben County|Troupsburg town|1488|0|1|Richmon|Merri|2974|Tennessee|F|Head|||36|107349 + +3010|MO|St. Louis County|Pasadena Park village|1489|0|1|Wiltrout|Elias Sonny|2947|Maine|M|Head|||63|107350 +3010|MO|St. Louis County|Pasadena Park village|1489|0|2|Wiltrout|Marta Felipa|2943|Connecticut|F|Spouse|||67|107351 +3010|MO|St. Louis County|Pasadena Park village|1489|0|3|Wiltrout|Saul|2997|Kentucky|M|Son|||13|107352 +3010|MO|St. Louis County|Pasadena Park village|1489|0|4|Wiltrout|Reagan|3005|MO|F|Daughter|||5|107353 +3010|MO|St. Louis County|Pasadena Park village|1489|0|5|Wiltrout|Charles|3007|MO|F|Daughter|||3|107354 + +3010|UT|Utah County|Highland city|1490|0|1|Amolsch|Herschel|2952|Hawaii|M|Head|||58|107355 +3010|UT|Utah County|Highland city|1490|0|2|Amolsch|Arnette|2959|Kansas|F|Spouse|||51|107356 +3010|UT|Utah County|Highland city|1490|0|3|Amolsch|India|3001|AZ|F|Daughter|||9|107357 + +3010|MO|Montgomery County|Wellsville city|1491|0|1|Manny|Buck Malcolm|2939|Djibouti|M|Head|||71|107358 +3010|MO|Montgomery County|Wellsville city|1491|0|2|Manny|Ines|2953|Texas|F|Spouse|||57|107359 +3010|MO|Montgomery County|Wellsville city|1491|0|3|Manny|Rosaria Leonora|2979|California|F|Daughter|||31|107360 +3010|MO|Montgomery County|Wellsville city|1491|0|4|Manny|Cortez|2985|Rhode Island|M|Son|||25|107361 +3010|MO|Montgomery County|Wellsville city|1491|0|5|Manny|Jordon|2993|Virginia|M|Son|||17|107362 +3010|MO|Montgomery County|Wellsville city|1491|0|6|Manny|Carola|2997|New York|F|Daughter|||13|107363 +3010|MO|Montgomery County|Wellsville city|1491|0|7|Manny|Niesha|3003|MO|F|Daughter|||7|107364 +3010|MO|Montgomery County|Wellsville city|1491|0|8|Manny|Elfreda|3007|MO|F|Daughter|||3|107365 +3010|MO|Montgomery County|Wellsville city|1491|0|9|Manny|Kera Cleora|3009|MO|F|Daughter|||1|107366 + +3010|KS|Geary County|Grandview Plaza city|1492|0|1|Alvarado|Miquel|2941|Florida|M|Head|||69|107367 +3010|KS|Geary County|Grandview Plaza city|1492|0|2|Alvarado|Tonda|2993|Mississippi|F|Daughter|||17|107368 + +3010|TX|El Paso County|Homestead Meadows South CDP|1493|0|1|Keoghan|Hosea|2955|North Dakota|M|Head|||55|107369 +3010|TX|El Paso County|Homestead Meadows South CDP|1493|0|2|Keoghan|Donella Shelley|2959|Pennsylvania|F|Spouse|||51|107370 +3010|TX|El Paso County|Homestead Meadows South CDP|1493|0|3|Keoghan|Tory|2987|Rhode Island|M|Son|||23|107371 +3010|TX|El Paso County|Homestead Meadows South CDP|1493|0|4|Keoghan|Son|3001|TX|M|Son|||9|107372 +3010|TX|El Paso County|Homestead Meadows South CDP|1493|0|5|Keoghan|Tiera|3003|TX|F|Daughter|||7|107373 + +3010|IL|Cook County|La Grange Park village|1494|0|1|Lantz|Patricia Stephen|2946|Colorado|M|Head|||64|107374 +3010|IL|Cook County|La Grange Park village|1494|0|2|Lantz|Kandace|2965|Indiana|F|Spouse|||45|107375 +3010|IL|Cook County|La Grange Park village|1494|0|3|Lantz|Ivory|2989|Illinois|M|Son|||21|107376 +3010|IL|Cook County|La Grange Park village|1494|0|4|Lantz|Telma|2993|Arkansas|F|Daughter|||17|107377 +3010|IL|Cook County|La Grange Park village|1494|0|5|Lantz|Azalee Ashlie|3001|IL|F|Daughter|||9|107378 +3010|IL|Cook County|La Grange Park village|1494|0|6|Lantz|Berry|3009|IL|M|Son|||1|107379 + +3010|IN|Lawrence County|Oolitic town|1495|0|1|Beuther|Willis Buck|2953|Texas|M|Head|||57|107380 +3010|IN|Lawrence County|Oolitic town|1495|0|2|Beuther|Errol|2993|Idaho|M|Son|||17|107381 +3010|IN|Lawrence County|Oolitic town|1495|0|3|Beuther|Eldora Jacinta|2997|Maryland|F|Daughter|||13|107382 +3010|IN|Lawrence County|Oolitic town|1495|0|4|Beuther|Markus|2999|Arizona|M|Son|||11|107383 + +3010|PA|Bradford County|Windham township|1496|0|1|Fobbs|Antonia Colton|2959|Papua New Guinea|M|Head|||51|107384 +3010|PA|Bradford County|Windham township|1496|0|2|Fobbs|Armandina|2979|Nebraska|F|Spouse|||31|107385 +3010|PA|Bradford County|Windham township|1496|0|3|Fobbs|Ula Misty|2999|Mississippi|F|Daughter|||11|107386 + +3010|MN|Polk County|Beltrami city|1497|0|1|Jeanbaptise|Ulysses|2953|Missouri|M|Head|||57|107387 +3010|MN|Polk County|Beltrami city|1497|0|2|Jeanbaptise|Bridgett|2973|Wisconsin|F|Spouse|||37|107388 +3010|MN|Polk County|Beltrami city|1497|0|3|Jeanbaptise|Marcel Mark|2999|New Jersey|M|Son|||11|107389 +3010|MN|Polk County|Beltrami city|1497|0|4|Jeanbaptise|Mitchel|3001|OH|M|Son|||9|107390 +3010|MN|Polk County|Beltrami city|1497|0|5|Jeanbaptise|Liane|3005|OH|F|Daughter|||5|107391 +3010|MN|Polk County|Beltrami city|1497|0|6|Jeanbaptise|Gregg|3009|MN|M|Son|||1|107392 + +3010|MN|Swift County|Danvers city|1498|0|1|Smith|Javier Humberto|2949|Ukraine|M|Head|||61|107393 +3010|MN|Swift County|Danvers city|1498|0|2|Smith|Siu|2972|Eritrea|F|Spouse|||38|107394 +3010|MN|Swift County|Danvers city|1498|0|3|Smith|Haley|2994|South Carolina|F|Daughter|||16|107395 +3010|MN|Swift County|Danvers city|1498|0|4|Smith|Dexter|2998|Portugal|M|Son|||12|107396 +3010|MN|Swift County|Danvers city|1498|0|5|Smith|Guillermo|3005|MN|M|Son|||5|107397 +3010|MN|Swift County|Danvers city|1498|0|6|Smith|Boyd|3007|MN|M|Son|||3|107398 + +3010|NY|Tompkins County|Ithaca town|1499|0|1|Lejenne|Forrest Bob|2963|Kansas|M|Head|||47|107399 +3010|NY|Tompkins County|Ithaca town|1499|0|2|Lejenne|Tanisha|2973|Wyoming|F|Spouse|||37|107400 +3010|NY|Tompkins County|Ithaca town|1499|0|3|Lejenne|Heath|2995|Ecuador|M|Son|||15|107401 +3010|NY|Tompkins County|Ithaca town|1499|0|4|Lejenne|Vivienne|2999|Maine|F|Daughter|||11|107402 +3010|NY|Tompkins County|Ithaca town|1499|0|5|Lejenne|Albert|3001|NY|M|Son|||9|107403 +3010|NY|Tompkins County|Ithaca town|1499|0|6|Lejenne|Shenika|3005|NY|F|Daughter|||5|107404 + +3010|CT|Hartford County|West Simsbury CDP|1500|0|1|Stecklair|Stefanie|2951|New Mexico|F|Spouse|||59|107405 +3010|CT|Hartford County|West Simsbury CDP|1500|0|2|Stecklair|Donovan|2987|South Dakota|M|Son|||23|107406 +3010|CT|Hartford County|West Simsbury CDP|1500|0|3|Stecklair|Nakisha|2997|Kansas|F|Daughter|||13|107407 +3010|CT|Hartford County|West Simsbury CDP|1500|0|4|Stecklair|Ryan Emmanuel|2999|Oklahoma|M|Son|||11|107408 +3010|CT|Hartford County|West Simsbury CDP|1500|0|5|Stecklair|Omar Ellis|3003|CT|M|Son|||7|107409 +3010|CT|Hartford County|West Simsbury CDP|1500|0|6|Stecklair|Francesco|3007|CT|M|Son|||3|107410 + +3010|PA|Centre County|Patton township|1501|0|1|Nelson|Marcos Porter|2969|Texas|M|Head|||41|107411 +3010|PA|Centre County|Patton township|1501|0|2|Nelson|Shanae Laronda|2978|Yemen|F|Spouse|||32|107412 + +3010|PA|Erie County|Lake City borough|1502|0|1|Hamrick|Manuel Pete|2974|Mexico|M|Head|||36|107413 +3010|PA|Erie County|Lake City borough|1502|0|2|Hamrick|Marvis|2978|South Dakota|F|Spouse|||32|107414 +3010|PA|Erie County|Lake City borough|1502|0|3|Hamrick|Margurite|2998|Iowa|F|Daughter|||12|107415 +3010|PA|Erie County|Lake City borough|1502|0|4|Hamrick|Tammi Maile|3003|PA|F|Daughter|||7|107416 +3010|PA|Erie County|Lake City borough|1502|0|5|Hamrick|Lisandra|3005|PA|F|Daughter|||5|107417 +3010|PA|Erie County|Lake City borough|1502|0|6|Hamrick|Vito|3007|PA|M|Son|||3|107418 +3010|PA|Erie County|Lake City borough|1502|0|7|Hamrick|Theola|3009|PA|F|Daughter|||1|107419 + +3010|MI|Missaukee County|West Branch township|1503|0|1|Hurley|Brice Chauncey|2951|Alabama|M|Head|||59|107420 +3010|MI|Missaukee County|West Branch township|1503|0|2|Hurley|Dayna|2997|Oregon|F|Daughter|||13|107421 +3010|MI|Missaukee County|West Branch township|1503|0|3|Hurley|Josphine|2999|Colorado|F|Daughter|||11|107422 + +3010|MD|Worcester County|Girdletree CDP|1504|0|1|Barker|Milo Benedict|2966|Montana|M|Head|||44|107423 +3010|MD|Worcester County|Girdletree CDP|1504|0|2|Barker|Kacie Nilda|2982|Florida|F|Spouse|||28|107424 +3010|MD|Worcester County|Girdletree CDP|1504|0|3|Barker|Raye|3001|MD|F|Daughter|||9|107425 +3010|MD|Worcester County|Girdletree CDP|1504|0|4|Barker|Larhonda|3007|MD|F|Daughter|||3|107426 +3010|MD|Worcester County|Girdletree CDP|1504|0|5|Barker|Tai Lera|3009|MD|F|Daughter|||1|107427 + +3010|PA|Potter County|Austin borough|1505|0|1|Wade|Jamaal|2950|Botswana|M|Head|||60|107428 +3010|PA|Potter County|Austin borough|1505|0|2|Wade|Dusty|2955|Texas|F|Spouse|||55|107429 +3010|PA|Potter County|Austin borough|1505|0|3|Wade|Stefan|2985|Indiana|M|Son|||25|107430 +3010|PA|Potter County|Austin borough|1505|0|4|Wade|Daniel|2989|New York|M|Son|||21|107431 +3010|PA|Potter County|Austin borough|1505|0|5|Wade|Sal|2997|New Hampshire|M|Son|||13|107432 +3010|PA|Potter County|Austin borough|1505|0|6|Wade|Lucas|2999|Hawaii|M|Son|||11|107433 +3010|PA|Potter County|Austin borough|1505|0|7|Wade|Ward|3009|PA|M|Son|||1|107434 + +3010|KY|Jefferson County|Barbourmeade city|1506|0|1|Alfonzo|Martha|2998|Michigan|F|Daughter|||12|107435 + +3010|PA|McKean County|Hamlin township|1507|0|1|Frase|Tyree Gavin|2938|Alaska|M|Head|||72|107436 +3010|PA|McKean County|Hamlin township|1507|0|2|Frase|Danial|2988|Barbados|M|Son|||22|107437 +3010|PA|McKean County|Hamlin township|1507|0|3|Frase|Starla|2996|Florida|F|Daughter|||14|107438 +3010|PA|McKean County|Hamlin township|1507|0|4|Frase|Brain Art|3000|Colorado|M|Son|||10|107439 + +3010|IL|Grundy County, Kendall County, Will County|Minooka village|1508|0|1|Knoll|Lyle Hai|2959|South Carolina|M|Head|||51|107440 +3010|IL|Grundy County, Kendall County, Will County|Minooka village|1508|0|2|Knoll|Felica|2988|Arizona|F|Daughter|||22|107441 +3010|IL|Grundy County, Kendall County, Will County|Minooka village|1508|0|3|Knoll|Meredith|2994|Bahrain|F|Daughter|||16|107442 +3010|IL|Grundy County, Kendall County, Will County|Minooka village|1508|0|4|Knoll|Bryan|3000|Wyoming|M|Son|||10|107443 +3010|IL|Grundy County, Kendall County, Will County|Minooka village|1508|0|5|Knoll|Katharyn|3001|IL|F|Daughter|||9|107444 +3010|IL|Grundy County, Kendall County, Will County|Minooka village|1508|0|6|Knoll|Mauro|3007|IL|M|Son|||3|107445 +3010|IL|Grundy County, Kendall County, Will County|Minooka village|1508|0|7|Knoll|Ena|3009|IL|F|Daughter|||1|107446 + +3010|CA|Mendocino County|Philo CDP|1509|0|1|Alles|Vivan|2950|Norfolk Island|F|Head|||60|107447 +3010|CA|Mendocino County|Philo CDP|1509|0|2|Alles|Napoleon|2980|Nebraska|M|Son|||30|107448 +3010|CA|Mendocino County|Philo CDP|1509|0|3|Alles|Hortense|2994|New Mexico|F|Daughter|||16|107449 +3010|CA|Mendocino County|Philo CDP|1509|0|4|Alles|Luciano|2996|Texas|M|Son|||14|107450 + +3010|TX|Cherokee County|Alto town|1510|0|1|Sarkisian|Taylor|2963|Kansas|M|Head|||47|107451 + +3010|NJ|Burlington County|Beverly city|1511|0|1|Lakin|Moshe|2960|Arizona|M|Head|||50|107452 +3010|NJ|Burlington County|Beverly city|1511|0|2|Lakin|Ricardo|2978|New Hampshire|M|Son|||32|107453 +3010|NJ|Burlington County|Beverly city|1511|0|3|Lakin|Shila|2982|Rhode Island|F|Daughter|||28|107454 +3010|NJ|Burlington County|Beverly city|1511|0|4|Lakin|Phil|2996|Minnesota|M|Son|||14|107455 + +3010|CA|Marin County|Strawberry CDP|1512|0|1|Flowers|Sydney Oren|2958|Oregon|M|Head|||52|107456 +3010|CA|Marin County|Strawberry CDP|1512|0|2|Flowers|Dyan|2964|Kansas|F|Spouse|||46|107457 +3010|CA|Marin County|Strawberry CDP|1512|0|3|Flowers|Maranda|2984|Mississippi|F|Daughter|||26|107458 +3010|CA|Marin County|Strawberry CDP|1512|0|4|Flowers|Gene|2998|Rhode Island|M|Son|||12|107459 +3010|CA|Marin County|Strawberry CDP|1512|0|5|Flowers|Kerry|3001|CA|M|Son|||9|107460 +3010|CA|Marin County|Strawberry CDP|1512|0|6|Flowers|Berna|3009|CA|F|Daughter|||1|107461 + +3010|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|1|Boatright|Nicky Marquis|2963|Florida|M|Head|||47|107462 +3010|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|2|Boatright|Thomasine|2995|Louisiana|F|Daughter|||15|107463 +3010|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|3|Boatright|Daine|2999|California|F|Daughter|||11|107464 +3010|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|4|Boatright|Clark|3001|WI|M|Son|||9|107465 +3010|WI|Dodge County, Fond du Lac County|Waupun city|1513|0|5|Boatright|Jamison|3003|WI|M|Son|||7|107466 + +3010|NJ|Sussex County|Hamburg borough|1514|0|1|Fracchia|Marcellus|2955|Ohio|M|Head|||55|107467 +3010|NJ|Sussex County|Hamburg borough|1514|0|2|Fracchia|Dorris|2976|North Dakota|F|Spouse|||34|107468 +3010|NJ|Sussex County|Hamburg borough|1514|0|3|Fracchia|Brendon|3001|NJ|M|Son|||9|107469 +3010|NJ|Sussex County|Hamburg borough|1514|0|4|Fracchia|Yasuko Ngoc|3005|NJ|F|Daughter|||5|107470 +3010|NJ|Sussex County|Hamburg borough|1514|0|5|Fracchia|Ola|3007|NJ|F|Daughter|||3|107471 + +3010|NC|Currituck County|Coinjock CDP|1515|0|1|Grattelo|Eddie Moises|2963|Kansas|M|Head|||47|107472 +3010|NC|Currituck County|Coinjock CDP|1515|0|2|Grattelo|Edythe Roslyn|2972|Tennessee|F|Spouse|||38|107473 +3010|NC|Currituck County|Coinjock CDP|1515|0|3|Grattelo|Cameron|3000|Ohio|M|Son|||10|107474 +3010|NC|Currituck County|Coinjock CDP|1515|0|4|Grattelo|Dee Felisa|3003|IL|F|Daughter|||7|107475 +3010|NC|Currituck County|Coinjock CDP|1515|0|5|Grattelo|Gregory|3005|IL|M|Son|||5|107476 + +3010|WI|Kenosha County|Camp Lake CDP|1516|0|1|Armstrong|Jayson Andy|2942|South Africa|M|Head|||68|107477 +3010|WI|Kenosha County|Camp Lake CDP|1516|0|2|Armstrong|Mohammad|2984|Uzbekistan|M|Son|||26|107478 +3010|WI|Kenosha County|Camp Lake CDP|1516|0|3|Armstrong|Osvaldo|2986|Virginia|M|Son|||24|107479 +3010|WI|Kenosha County|Camp Lake CDP|1516|0|4|Armstrong|Ema Shani|2996|New Hampshire|F|Daughter|||14|107480 +3010|WI|Kenosha County|Camp Lake CDP|1516|0|5|Armstrong|Bobette Crysta|3000|Kentucky|F|Daughter|||10|107481 +3010|WI|Kenosha County|Camp Lake CDP|1516|0|6|Armstrong|Nelly|3003|WI|F|Daughter|||7|107482 +3010|WI|Kenosha County|Camp Lake CDP|1516|0|7|Armstrong|Marlon|3007|WI|M|Son|||3|107483 +3010|WI|Kenosha County|Camp Lake CDP|1516|0|8|Armstrong|Karie Tamica|3009|WI|F|Daughter|||1|107484 + +3010|CA|Amador County|Camanche North Shore CDP|1517|0|1|Clark|Garrett Collin|2950|South Dakota|M|Head|||60|107485 +3010|CA|Amador County|Camanche North Shore CDP|1517|0|2|Clark|Lenita|2955|Indiana|F|Spouse|||55|107486 +3010|CA|Amador County|Camanche North Shore CDP|1517|0|3|Clark|Loni|2985|Ireland|F|Daughter|||25|107487 +3010|CA|Amador County|Camanche North Shore CDP|1517|0|4|Clark|Darren Reynaldo|2997|Iowa|M|Son|||13|107488 +3010|CA|Amador County|Camanche North Shore CDP|1517|0|5|Clark|Kurtis Corey|3005|CA|M|Son|||5|107489 +3010|CA|Amador County|Camanche North Shore CDP|1517|0|6|Clark|Tasia Veta|3007|CA|F|Daughter|||3|107490 + +3010|OH|Warren County|Landen CDP|1518|0|1|Neuser|Gaylord Gerald|2974|Louisiana|M|Head|||36|107491 +3010|OH|Warren County|Landen CDP|1518|0|2|Neuser|Page|2999|Massachusetts|F|Daughter|||11|107492 + +3010|CA|Modoc County|Adin CDP|1519|0|1|Rentschler|Raleigh Phillip|2974|North Dakota|M|Head|||36|107493 +3010|CA|Modoc County|Adin CDP|1519|0|2|Rentschler|Marcela|2997|Vermont|F|Daughter|||13|107494 + +3010|PA|York County|Susquehanna Trails CDP|1520|0|1|Wood|Guy Ray|2957|Delaware|M|Head|||53|107495 +3010|PA|York County|Susquehanna Trails CDP|1520|0|2|Wood|Adan|2987|Pennsylvania|M|Son|||23|107496 +3010|PA|York County|Susquehanna Trails CDP|1520|0|3|Wood|Octavio|2989|Samoa|M|Son|||21|107497 +3010|PA|York County|Susquehanna Trails CDP|1520|0|4|Wood|Elba Astrid|2997|Delaware|F|Daughter|||13|107498 + +3010|SD|Brookings County|Brookings city|1521|0|1|Fisichella|Leroy Darwin|2965|Macau|M|Head|||45|107499 +3010|SD|Brookings County|Brookings city|1521|0|2|Fisichella|Chan Leilani|2984|Hawaii|F|Spouse|||26|107500 +3010|SD|Brookings County|Brookings city|1521|0|3|Fisichella|Linnea|3001|SD|F|Daughter|||9|107501 +3010|SD|Brookings County|Brookings city|1521|0|4|Fisichella|Taren|3003|SD|F|Daughter|||7|107502 +3010|SD|Brookings County|Brookings city|1521|0|5|Fisichella|Ezequiel|3005|SD|M|Son|||5|107503 + +3010|VA|Fluvanna County|Lake Monticello CDP|1522|0|1|Sitterding|Carroll Cary|2968|West Virginia|M|Head|||42|107504 + +3010|NV|Carson City|Carson City|1523|0|1|Petronis|Curtis Norbert|2957|North Dakota|M|Head|||53|107505 +3010|NV|Carson City|Carson City|1523|0|2|Petronis|Marie Angelo|2955|North Carolina|F|Spouse|||55|107506 +3010|NV|Carson City|Carson City|1523|0|3|Petronis|Trevor|2989|Idaho|M|Son|||21|107507 +3010|NV|Carson City|Carson City|1523|0|4|Petronis|Arthur|3001|NV|M|Son|||9|107508 +3010|NV|Carson City|Carson City|1523|0|5|Petronis|Sang|3005|NV|M|Son|||5|107509 + +3010|OK|Harper County|May town|1524|0|1|Hart|Hai Jefferson|2967|Indiana|M|Head|||43|107510 +3010|OK|Harper County|May town|1524|0|2|Hart|Altha|2979|North Dakota|F|Spouse|||31|107511 +3010|OK|Harper County|May town|1524|0|3|Hart|Breana|3001|OK|F|Daughter|||9|107512 +3010|OK|Harper County|May town|1524|0|4|Hart|Jimmy|3003|OK|F|Daughter|||7|107513 +3010|OK|Harper County|May town|1524|0|5|Hart|Wan Rhiannon|3005|OK|F|Daughter|||5|107514 +3010|OK|Harper County|May town|1524|0|6|Hart|Shaunda|3007|OK|F|Daughter|||3|107515 + +3010|UT|Carbon County|Clear Creek CDP|1525|0|1|Burdge|Tangela|2953|Belize|F|Head|||57|107516 +3010|UT|Carbon County|Clear Creek CDP|1525|0|2|Burdge|Leif|2997|Florida|M|Son|||13|107517 + +3010|IA|Henry County|Winfield city|1526|0|1|Maciolek|Gerald|2961|Florida|F|Spouse|||49|107518 +3010|IA|Henry County|Winfield city|1526|0|2|Maciolek|Elli|2987|Nigeria|F|Daughter|||23|107519 +3010|IA|Henry County|Winfield city|1526|0|3|Maciolek|Nathanial|2995|Uganda|M|Son|||15|107520 +3010|IA|Henry County|Winfield city|1526|0|4|Maciolek|Maple|2999|Massachusetts|F|Daughter|||11|107521 +3010|IA|Henry County|Winfield city|1526|0|5|Maciolek|Emiko|3001|IA|F|Daughter|||9|107522 +3010|IA|Henry County|Winfield city|1526|0|6|Maciolek|Latrisha|3003|IA|F|Daughter|||7|107523 +3010|IA|Henry County|Winfield city|1526|0|7|Maciolek|Taylor|3005|IA|F|Daughter|||5|107524 +3010|IA|Henry County|Winfield city|1526|0|8|Maciolek|Joey|3007|IA|M|Son|||3|107525 + +3010|MO|Newton County|Wentworth village|1527|0|1|Laxton|Keli|2984|Washington|F|Spouse|||26|107526 +3010|MO|Newton County|Wentworth village|1527|0|2|Laxton|Nobuko|3001|MO|F|Daughter|||9|107527 +3010|MO|Newton County|Wentworth village|1527|0|3|Laxton|Jospeh|3005|MO|M|Son|||5|107528 +3010|MO|Newton County|Wentworth village|1527|0|4|Laxton|Melita Karan|3009|MO|F|Daughter|||1|107529 + +3010|MI|Benzie County|Lake Ann village|1528|0|1|Shonk|Tim Maurice|2946|American Samoa|M|Head|||64|107530 +3010|MI|Benzie County|Lake Ann village|1528|0|2|Shonk|Coralie|2951|Washington|F|Spouse|||59|107531 +3010|MI|Benzie County|Lake Ann village|1528|0|3|Shonk|Isiah|2975|Wyoming|M|Son|||35|107532 +3010|MI|Benzie County|Lake Ann village|1528|0|4|Shonk|Jeremiah|2985|California|M|Son|||25|107533 +3010|MI|Benzie County|Lake Ann village|1528|0|5|Shonk|Breann|3009|MI|F|Daughter|||1|107534 + +3010|IL|Lake County|Old Mill Creek village|1529|0|1|Breault|Jamie Augustine|2942|Vermont|M|Head|||68|107535 +3010|IL|Lake County|Old Mill Creek village|1529|0|2|Breault|Mayra|2947|Mississippi|F|Spouse|||63|107536 +3010|IL|Lake County|Old Mill Creek village|1529|0|3|Breault|Meridith|2995|Florida|F|Daughter|||15|107537 +3010|IL|Lake County|Old Mill Creek village|1529|0|4|Breault|Jon Tyler|3003|IL|F|Daughter|||7|107538 +3010|IL|Lake County|Old Mill Creek village|1529|0|5|Breault|Brittany|3005|IL|F|Daughter|||5|107539 + +3010|MI|Shiawassee County|Owosso city|1530|0|1|Gagliano|Herman Ernest|2939|Oregon|M|Head|||71|107540 +3010|MI|Shiawassee County|Owosso city|1530|0|2|Gagliano|Estelle|2989|New Jersey|F|Daughter|||21|107541 +3010|MI|Shiawassee County|Owosso city|1530|0|3|Gagliano|Clifford Ariel|2997|Michigan|M|Son|||13|107542 +3010|MI|Shiawassee County|Owosso city|1530|0|4|Gagliano|Pierre|2999|New Mexico|M|Son|||11|107543 + +3010|OH|Cuyahoga County|Parma city|1531|0|1|Rinner|Ezequiel|2952|South Carolina|M|Head|||58|107544 +3010|OH|Cuyahoga County|Parma city|1531|0|2|Rinner|Robt|2995|West Virginia|M|Son|||15|107545 +3010|OH|Cuyahoga County|Parma city|1531|0|3|Rinner|Abdul|2999|Romania|M|Son|||11|107546 + +3010|PA|Erie County|Concord township|1532|0|1|Kattner|Stefan Carmelo|2952|North Carolina|M|Head|||58|107547 +3010|PA|Erie County|Concord township|1532|0|2|Kattner|Britteny|2980|United Kingdom|F|Daughter|||30|107548 +3010|PA|Erie County|Concord township|1532|0|3|Kattner|Donnie|2998|Vermont|M|Son|||12|107549 + +3010|NE|Sarpy County|Gretna city|1533|0|1|Guerrant|Blaine|2958|Hawaii|M|Head|||52|107550 +3010|NE|Sarpy County|Gretna city|1533|0|2|Guerrant|Deann|2982|Latvia|F|Spouse|||28|107551 +3010|NE|Sarpy County|Gretna city|1533|0|3|Guerrant|Jean|3001|NE|F|Daughter|||9|107552 +3010|NE|Sarpy County|Gretna city|1533|0|4|Guerrant|Calista|3005|NE|F|Daughter|||5|107553 +3010|NE|Sarpy County|Gretna city|1533|0|5|Guerrant|Telma|3007|NE|F|Daughter|||3|107554 + +3010|NY|Suffolk County|Fishers Island CDP|1534|0|1|Kimbler|Peggie Christy|2956|Czech Republic|F|Head|||54|107555 +3010|NY|Suffolk County|Fishers Island CDP|1534|0|2|Kimbler|Lillie|2984|Vermont|F|Daughter|||26|107556 +3010|NY|Suffolk County|Fishers Island CDP|1534|0|3|Kimbler|Alonso Roberto|3000|Indiana|M|Son|||10|107557 + +3010|NY|Tompkins County|Enfield town|1535|0|1|Hampton|Juan Emil|2983|New Jersey|M|Head|||27|107558 +3010|NY|Tompkins County|Enfield town|1535|0|2|Hampton|Evelyn|2984|Mississippi|F|Spouse|||26|107559 +3010|NY|Tompkins County|Enfield town|1535|0|3|Hampton|Jessie|3001|NY|M|Son|||9|107560 +3010|NY|Tompkins County|Enfield town|1535|0|4|Hampton|Ha|3009|NY|F|Daughter|||1|107561 + +3010|IA|Sac County|Odebolt city|1536|0|1|Lepping|Moses Arlen|2951|Ohio|M|Head|||59|107562 +3010|IA|Sac County|Odebolt city|1536|0|2|Lepping|Sanora|2970|South Carolina|F|Spouse|||40|107563 +3010|IA|Sac County|Odebolt city|1536|0|3|Lepping|Arlene|3003|GA|F|Daughter|||7|107564 +3010|IA|Sac County|Odebolt city|1536|0|4|Lepping|Carson|3005|GA|M|Son|||5|107565 +3010|IA|Sac County|Odebolt city|1536|0|5|Lepping|Lane|3007|IA|M|Son|||3|107566 +3010|IA|Sac County|Odebolt city|1536|0|6|Lepping|Allan|3009|IA|M|Son|||1|107567 + +3010|WI|Sheboygan County|Random Lake village|1537|0|1|Greever|Tommie Emerson|2959|Cuba|M|Head|||51|107568 +3010|WI|Sheboygan County|Random Lake village|1537|0|2|Greever|Launa|2968|Iowa|F|Spouse|||42|107569 +3010|WI|Sheboygan County|Random Lake village|1537|0|3|Greever|Mao|2992|Oklahoma|F|Daughter|||18|107570 +3010|WI|Sheboygan County|Random Lake village|1537|0|4|Greever|Oren|2994|Texas|M|Son|||16|107571 +3010|WI|Sheboygan County|Random Lake village|1537|0|5|Greever|Malcolm|3001|AZ|M|Son|||9|107572 +3010|WI|Sheboygan County|Random Lake village|1537|0|6|Greever|Amos|3003|AZ|M|Son|||7|107573 +3010|WI|Sheboygan County|Random Lake village|1537|0|7|Greever|Wilhemina|3005|AZ|F|Daughter|||5|107574 +3010|WI|Sheboygan County|Random Lake village|1537|0|8|Greever|Hubert|3009|WI|M|Son|||1|107575 + +3010|WI|Shawano County|Cecil village|1538|0|1|Donoghue|Ronald Erich|2955|Texas|M|Head|||55|107576 +3010|WI|Shawano County|Cecil village|1538|0|2|Donoghue|Tracie Jessia|2967|New York|F|Spouse|||43|107577 +3010|WI|Shawano County|Cecil village|1538|0|3|Donoghue|Rudy Clemente|2987|Tennessee|M|Son|||23|107578 +3010|WI|Shawano County|Cecil village|1538|0|4|Donoghue|Crista Amie|2997|Hawaii|F|Daughter|||13|107579 +3010|WI|Shawano County|Cecil village|1538|0|5|Donoghue|Rubi|2999|North Dakota|F|Daughter|||11|107580 +3010|WI|Shawano County|Cecil village|1538|0|6|Donoghue|Dirk|3003|WI|M|Son|||7|107581 +3010|WI|Shawano County|Cecil village|1538|0|7|Donoghue|Olin|3005|WI|M|Son|||5|107582 + +3010|MN|Clay County|Hagen township|1539|0|1|Mino|Forest Eldon|2946|Kentucky|M|Head|||64|107583 +3010|MN|Clay County|Hagen township|1539|0|2|Mino|Adina|2963|Alaska|F|Spouse|||47|107584 +3010|MN|Clay County|Hagen township|1539|0|3|Mino|Vanessa|2995|Georgia|F|Daughter|||15|107585 +3010|MN|Clay County|Hagen township|1539|0|4|Mino|Blanch|3005|MN|F|Daughter|||5|107586 +3010|MN|Clay County|Hagen township|1539|0|5|Mino|Ahmad|3007|MN|M|Son|||3|107587 +3010|MN|Clay County|Hagen township|1539|0|6|Mino|Kristan Trudy|3009|MN|F|Daughter|||1|107588 + +3010|MS|Chickasaw County|Okolona city|1540|0|1|Arbogast|Gino Brady|2955|Maryland|M|Head|||55|107589 +3010|MS|Chickasaw County|Okolona city|1540|0|2|Arbogast|Nicholle|2962|Tennessee|F|Spouse|||48|107590 +3010|MS|Chickasaw County|Okolona city|1540|0|3|Arbogast|Nicol Keturah|2982|Michigan|F|Daughter|||28|107591 +3010|MS|Chickasaw County|Okolona city|1540|0|4|Arbogast|Gracia Liana|2986|Italy|F|Daughter|||24|107592 +3010|MS|Chickasaw County|Okolona city|1540|0|5|Arbogast|Altha|2990|Wyoming|F|Daughter|||20|107593 +3010|MS|Chickasaw County|Okolona city|1540|0|6|Arbogast|Armando|3000|Iowa|M|Son|||10|107594 +3010|MS|Chickasaw County|Okolona city|1540|0|7|Arbogast|Nancey Petronila|3003|MS|F|Daughter|||7|107595 +3010|MS|Chickasaw County|Okolona city|1540|0|8|Arbogast|Jamie|3007|MS|M|Son|||3|107596 + +3010|MI|Branch County|Algansee township|1541|0|1|Koopman|Russell Clayton|2966|Taiwan, Province Of China|M|Head|||44|107597 +3010|MI|Branch County|Algansee township|1541|0|2|Koopman|Ernie|2994|Iowa|M|Son|||16|107598 + +3010|KS|Rawlins County|Herndon city|1542|0|1|Provencher|Fred|2955|Palestinian Territory, Occupied|M|Head|||55|107599 +3010|KS|Rawlins County|Herndon city|1542|0|2|Provencher|Numbers|2953|Indiana|F|Spouse|||57|107600 +3010|KS|Rawlins County|Herndon city|1542|0|3|Provencher|Odilia Daniel|2985|Kansas|F|Daughter|||25|107601 +3010|KS|Rawlins County|Herndon city|1542|0|4|Provencher|Abram Joan|2993|Slovakia|M|Son|||17|107602 +3010|KS|Rawlins County|Herndon city|1542|0|5|Provencher|Angella|2997|Virginia|F|Daughter|||13|107603 +3010|KS|Rawlins County|Herndon city|1542|0|6|Provencher|Randy|3003|KS|M|Son|||7|107604 +3010|KS|Rawlins County|Herndon city|1542|0|7|Provencher|Wen|3005|KS|F|Daughter|||5|107605 + +3010|WI|Racine County|Sturtevant village|1543|0|1|Hession|Wes Hugh|2948|South Carolina|M|Head|||62|107606 +3010|WI|Racine County|Sturtevant village|1543|0|2|Hession|Harley|2995|Kansas|M|Son|||15|107607 +3010|WI|Racine County|Sturtevant village|1543|0|3|Hession|Shanae|2999|Ohio|F|Daughter|||11|107608 + +3010|MN|Sherburne County|Baldwin township|1544|0|1|Degarmo|Ivory Agustin|2946|Illinois|M|Head|||64|107609 +3010|MN|Sherburne County|Baldwin township|1544|0|2|Degarmo|Humberto|2998|Florida|M|Son|||12|107610 + +3010|WI|Marathon County|Harrison town|1545|0|1|Gurnett|Preston Scotty|2952|Colorado|M|Head|||58|107611 +3010|WI|Marathon County|Harrison town|1545|0|2|Gurnett|Annelle|2969|Georgia|F|Spouse|||41|107612 +3010|WI|Marathon County|Harrison town|1545|0|3|Gurnett|Nelida|2995|Rhode Island|F|Daughter|||15|107613 +3010|WI|Marathon County|Harrison town|1545|0|4|Gurnett|George|2999|Bosnia And Herzegovina|M|Son|||11|107614 +3010|WI|Marathon County|Harrison town|1545|0|5|Gurnett|Wm|3001|WI|M|Son|||9|107615 +3010|WI|Marathon County|Harrison town|1545|0|6|Gurnett|Martin|3005|WI|M|Son|||5|107616 + +3010|AK|Nome Census Area|Golovin city|1546|0|1|Hester|Adrian Antoine|2969|Louisiana|M|Head|||41|107617 +3010|AK|Nome Census Area|Golovin city|1546|0|2|Hester|Aide|2977|Utah|F|Spouse|||33|107618 +3010|AK|Nome Census Area|Golovin city|1546|0|3|Hester|Blondell Minta|2997|Iowa|F|Daughter|||13|107619 +3010|AK|Nome Census Area|Golovin city|1546|0|4|Hester|Jamel Jed|2999|Hawaii|M|Son|||11|107620 +3010|AK|Nome Census Area|Golovin city|1546|0|5|Hester|Tom|3001|AK|M|Son|||9|107621 +3010|AK|Nome Census Area|Golovin city|1546|0|6|Hester|Jason|3009|AK|M|Son|||1|107622 + +3010|FL|Pinellas County|Indian Shores town|1547|0|1|Tambasco|Raquel|2945|Saudi Arabia|F|Head|||65|107623 +3010|FL|Pinellas County|Indian Shores town|1547|0|2|Tambasco|Marcelle Kasie|2967|French Southern Territories|F|Daughter|||43|107624 +3010|FL|Pinellas County|Indian Shores town|1547|0|3|Tambasco|Karl|2981|California|M|Son|||29|107625 +3010|FL|Pinellas County|Indian Shores town|1547|0|4|Tambasco|Ona|2993|Turkmenistan|F|Daughter|||17|107626 +3010|FL|Pinellas County|Indian Shores town|1547|0|5|Tambasco|Lance|2997|New Hampshire|M|Son|||13|107627 +3010|FL|Pinellas County|Indian Shores town|1547|0|6|Tambasco|Kasi|2999|Wisconsin|F|Daughter|||11|107628 + +3010|CO|El Paso County|Fountain city|1548|0|1|Feierman|Rodolfo Douglass|2949|Pennsylvania|M|Head|||61|107629 +3010|CO|El Paso County|Fountain city|1548|0|2|Feierman|Roselyn|2953|Monaco|F|Spouse|||57|107630 +3010|CO|El Paso County|Fountain city|1548|0|3|Feierman|Exie|2991|Kentucky|F|Daughter|||19|107631 +3010|CO|El Paso County|Fountain city|1548|0|4|Feierman|Christel|3001|CO|F|Daughter|||9|107632 +3010|CO|El Paso County|Fountain city|1548|0|5|Feierman|Barry|3005|CO|M|Son|||5|107633 + +3010|MA|Barnstable County|Harwich Center CDP|1549|0|1|Doler|Marshall Yong|2967|Arkansas|M|Head|||43|107634 +3010|MA|Barnstable County|Harwich Center CDP|1549|0|2|Doler|Mariano|2997|Puerto Rico|M|Son|||13|107635 +3010|MA|Barnstable County|Harwich Center CDP|1549|0|3|Doler|Matthew|2999|Michigan|F|Daughter|||11|107636 + +3010|NJ|Ocean County|Holiday City-Berkeley CDP|1550|0|1|Mlenar|Bert|2939|Kentucky|M|Head|||71|107637 +3010|NJ|Ocean County|Holiday City-Berkeley CDP|1550|0|2|Mlenar|Geraldine|2992|Oregon|F|Daughter|||18|107638 +3010|NJ|Ocean County|Holiday City-Berkeley CDP|1550|0|3|Mlenar|Thanh|2994|Oregon|M|Son|||16|107639 +3010|NJ|Ocean County|Holiday City-Berkeley CDP|1550|0|4|Mlenar|Melia|2998|Burundi|F|Daughter|||12|107640 +3010|NJ|Ocean County|Holiday City-Berkeley CDP|1550|0|5|Mlenar|Joshua|3009|NJ|M|Son|||1|107641 + +3010|TX|Liberty County|Kenefick town|1551|0|1|Torres|Johnson|2947|Alaska|M|Head|||63|107642 +3010|TX|Liberty County|Kenefick town|1551|0|2|Torres|Isidra|2991|Delaware|F|Daughter|||19|107643 + +3010|NJ|Salem County|Woodstown borough|1552|0|1|Peters|Bruce|2959|Kentucky|M|Head|||51|107644 +3010|NJ|Salem County|Woodstown borough|1552|0|2|Peters|Kurt|2989|Saudi Arabia|M|Son|||21|107645 +3010|NJ|Salem County|Woodstown borough|1552|0|3|Peters|Lashawna|2995|Texas|F|Daughter|||15|107646 + +3010|MN|Goodhue County|Wacouta township|1553|0|1|Wilson|Craig Clifton|2966|Paraguay|M|Head|||44|107647 +3010|MN|Goodhue County|Wacouta township|1553|0|2|Wilson|Ammie|2962|Florida|F|Spouse|||48|107648 +3010|MN|Goodhue County|Wacouta township|1553|0|3|Wilson|Donnie|2986|Vermont|F|Daughter|||24|107649 +3010|MN|Goodhue County|Wacouta township|1553|0|4|Wilson|Ethan|2992|Uzbekistan|M|Son|||18|107650 +3010|MN|Goodhue County|Wacouta township|1553|0|5|Wilson|Racquel|2994|South Dakota|F|Daughter|||16|107651 +3010|MN|Goodhue County|Wacouta township|1553|0|6|Wilson|Marcella|3001|MN|F|Daughter|||9|107652 +3010|MN|Goodhue County|Wacouta township|1553|0|7|Wilson|Melvin|3009|MN|M|Son|||1|107653 + +3010|TX|Hardin County|Silsbee city|1554|0|1|Strama|Ali Monty|2980|California|M|Head|||30|107654 +3010|TX|Hardin County|Silsbee city|1554|0|2|Strama|Bridgett|2976|North Carolina|F|Spouse|||34|107655 +3010|TX|Hardin County|Silsbee city|1554|0|3|Strama|Eugena|2996|Florida|F|Daughter|||14|107656 +3010|TX|Hardin County|Silsbee city|1554|0|4|Strama|Malik|3001|TX|M|Son|||9|107657 +3010|TX|Hardin County|Silsbee city|1554|0|5|Strama|Douglas|3005|TX|M|Son|||5|107658 +3010|TX|Hardin County|Silsbee city|1554|0|6|Strama|Cassaundra|3009|TX|F|Daughter|||1|107659 + +3010|PA|York County|Delta borough|1555|0|1|Skelly|Henry|2959|Utah|M|Head|||51|107660 +3010|PA|York County|Delta borough|1555|0|2|Skelly|Genia Teisha|2997|Alabama|F|Daughter|||13|107661 +3010|PA|York County|Delta borough|1555|0|3|Skelly|Anastacia|2999|Tennessee|F|Daughter|||11|107662 +3010|PA|York County|Delta borough|1555|0|4|Skelly|Lonny Armand|3003|PA|M|Son|||7|107663 +3010|PA|York County|Delta borough|1555|0|5|Skelly|Jimmy|3007|PA|M|Son|||3|107664 + +3010|AZ|Pima County|Casas Adobes CDP|1556|0|1|Sneed|Shanelle|2939|South Carolina|F|Head|||71|107665 +3010|AZ|Pima County|Casas Adobes CDP|1556|0|2|Sneed|Sharolyn Faith|2961|Liberia|F|Daughter|||49|107666 +3010|AZ|Pima County|Casas Adobes CDP|1556|0|3|Sneed|Venita|2989|Singapore|F|Daughter|||21|107667 + +3010|PA|Luzerne County|Laflin borough|1557|0|1|Im|Florencio Lindsey|2976|Wisconsin|M|Head|||34|107668 +3010|PA|Luzerne County|Laflin borough|1557|0|2|Im|Valerie|2983|Missouri|F|Spouse|||27|107669 +3010|PA|Luzerne County|Laflin borough|1557|0|3|Im|Kyle|3005|PA|F|Daughter|||5|107670 +3010|PA|Luzerne County|Laflin borough|1557|0|4|Im|Blake|3007|PA|M|Son|||3|107671 +3010|PA|Luzerne County|Laflin borough|1557|0|5|Im|Andrew|3009|PA|M|Son|||1|107672 + +3010|IL|Cook County|Thornton village|1558|0|1|Howery|Terry|2948|Mississippi|M|Head|||62|107673 +3010|IL|Cook County|Thornton village|1558|0|2|Howery|June|2956|Illinois|F|Spouse|||54|107674 +3010|IL|Cook County|Thornton village|1558|0|3|Howery|Sharie|2986|Wyoming|F|Daughter|||24|107675 +3010|IL|Cook County|Thornton village|1558|0|4|Howery|Lucius Gilberto|2988|Guyana|M|Son|||22|107676 +3010|IL|Cook County|Thornton village|1558|0|5|Howery|Monte|2992|Connecticut|M|Son|||18|107677 +3010|IL|Cook County|Thornton village|1558|0|6|Howery|Chi|2998|South Carolina|M|Son|||12|107678 +3010|IL|Cook County|Thornton village|1558|0|7|Howery|Ricky|3000|Tennessee|M|Son|||10|107679 +3010|IL|Cook County|Thornton village|1558|0|8|Howery|Tresa|3001|IL|F|Daughter|||9|107680 +3010|IL|Cook County|Thornton village|1558|0|9|Howery|Herman|3003|IL|M|Son|||7|107681 +3010|IL|Cook County|Thornton village|1558|0|10|Howery|Kyong|3007|IL|F|Daughter|||3|107682 + +3010|NY|St. Lawrence County|Edwards village|1559|0|1|Ozier|Frances Doug|2937|South Dakota|M|Head|||73|107683 +3010|NY|St. Lawrence County|Edwards village|1559|0|2|Ozier|Milagros|2950|China|F|Spouse|||60|107684 +3010|NY|St. Lawrence County|Edwards village|1559|0|3|Ozier|Marine|2982|Oregon|F|Daughter|||28|107685 +3010|NY|St. Lawrence County|Edwards village|1559|0|4|Ozier|Johnson|2990|Oregon|M|Son|||20|107686 +3010|NY|St. Lawrence County|Edwards village|1559|0|5|Ozier|Demetrice|3000|Libyan Arab Jamahiriya|F|Daughter|||10|107687 + +3010|TN|Weakley County|Greenfield city|1560|0|1|Kugler|Kirk Columbus|2974|Missouri|M|Head|||36|107688 + +3010|MI|Marquette County|Negaunee city|1561|0|1|Ellefson|Seth|2938|Wisconsin|M|Head|||72|107689 +3010|MI|Marquette County|Negaunee city|1561|0|2|Ellefson|Sari|2988|Iraq|F|Daughter|||22|107690 +3010|MI|Marquette County|Negaunee city|1561|0|3|Ellefson|Odell Vincent|2996|Brunei Darussalam|M|Son|||14|107691 +3010|MI|Marquette County|Negaunee city|1561|0|4|Ellefson|Glen|2998|Colorado|M|Son|||12|107692 + +3010|KS|Nemaha County|Wetmore city|1562|0|1|Milovich|Coleman Waylon|2955|Utah|M|Head|||55|107693 +3010|KS|Nemaha County|Wetmore city|1562|0|2|Milovich|Beverley|2979|Colorado|F|Spouse|||31|107694 +3010|KS|Nemaha County|Wetmore city|1562|0|3|Milovich|Renate|2999|Washington|F|Daughter|||11|107695 +3010|KS|Nemaha County|Wetmore city|1562|0|4|Milovich|Marlon Ricardo|3001|KS|M|Son|||9|107696 +3010|KS|Nemaha County|Wetmore city|1562|0|5|Milovich|Brady|3007|KS|M|Son|||3|107697 + +3010|NC|Mitchell County|Bakersville town|1563|0|1|Guarneri|Cira|2993|Cambodia|F|Daughter|||17|107698 +3010|NC|Mitchell County|Bakersville town|1563|0|2|Guarneri|Roland|2997|Pennsylvania|M|Son|||13|107699 +3010|NC|Mitchell County|Bakersville town|1563|0|3|Guarneri|Yuko|3009|NC|F|Daughter|||1|107700 + +3010|AZ|Apache County|Teec Nos Pos CDP|1564|0|1|Hemmeter|Edgar Nolan|2940|Wisconsin|M|Head|||70|107701 +3010|AZ|Apache County|Teec Nos Pos CDP|1564|0|2|Hemmeter|Tashina|2942|Louisiana|F|Spouse|||68|107702 +3010|AZ|Apache County|Teec Nos Pos CDP|1564|0|3|Hemmeter|Garry|2970|Kentucky|M|Son|||40|107703 +3010|AZ|Apache County|Teec Nos Pos CDP|1564|0|4|Hemmeter|Alva|2974|Tennessee|M|Son|||36|107704 +3010|AZ|Apache County|Teec Nos Pos CDP|1564|0|5|Hemmeter|Jarod|2998|New Caledonia|M|Son|||12|107705 +3010|AZ|Apache County|Teec Nos Pos CDP|1564|0|6|Hemmeter|Dreama Daniel|3001|AZ|F|Daughter|||9|107706 +3010|AZ|Apache County|Teec Nos Pos CDP|1564|0|7|Hemmeter|Isreal|3003|AZ|M|Son|||7|107707 + +3010|MN|Fillmore County|Arendahl township|1565|0|1|Stobie|Lyle Garret|2948|Cambodia|M|Head|||62|107708 +3010|MN|Fillmore County|Arendahl township|1565|0|2|Stobie|Myron|2988|Tennessee|M|Son|||22|107709 +3010|MN|Fillmore County|Arendahl township|1565|0|3|Stobie|Marcy|3000|Tonga|F|Daughter|||10|107710 +3010|MN|Fillmore County|Arendahl township|1565|0|4|Stobie|Avis|3001|MN|F|Daughter|||9|107711 +3010|MN|Fillmore County|Arendahl township|1565|0|5|Stobie|Sheba|3003|MN|F|Daughter|||7|107712 + +3010|MI|Isabella County|Chippewa township|1566|0|1|Bilello|Milo Gerry|2951|Hawaii|M|Head|||59|107713 +3010|MI|Isabella County|Chippewa township|1566|0|2|Bilello|Mickie Kandra|2974|Swaziland|F|Spouse|||36|107714 +3010|MI|Isabella County|Chippewa township|1566|0|3|Bilello|Mazie|2996|Viet Nam|F|Daughter|||14|107715 +3010|MI|Isabella County|Chippewa township|1566|0|4|Bilello|Letitia|2998|New Hampshire|F|Daughter|||12|107716 +3010|MI|Isabella County|Chippewa township|1566|0|5|Bilello|Sharmaine|3001|MI|F|Daughter|||9|107717 +3010|MI|Isabella County|Chippewa township|1566|0|6|Bilello|Morris|3009|MI|M|Son|||1|107718 + +3010|TX|Henderson County|Poynor town|1567|0|1|Koerner|Rory|2944|Nevada|M|Head|||66|107719 +3010|TX|Henderson County|Poynor town|1567|0|2|Koerner|Travis|2999|New Hampshire|M|Son|||11|107720 + +3010|GA|Putnam County|Crooked Creek CDP|1568|0|1|Albertine|Art Valentine|2954|Rhode Island|M|Head|||56|107721 +3010|GA|Putnam County|Crooked Creek CDP|1568|0|2|Albertine|Leia|2993|Massachusetts|F|Daughter|||17|107722 +3010|GA|Putnam County|Crooked Creek CDP|1568|0|3|Albertine|Long|2997|Arkansas|M|Son|||13|107723 + +3010|MI|Kalkaska County|Kalkaska village|1569|0|1|Damberger|Hilda|2982|Connecticut|F|Spouse|||28|107724 +3010|MI|Kalkaska County|Kalkaska village|1569|0|2|Damberger|Garland|3001|MI|M|Son|||9|107725 +3010|MI|Kalkaska County|Kalkaska village|1569|0|3|Damberger|Lanny|3007|MI|M|Son|||3|107726 +3010|MI|Kalkaska County|Kalkaska village|1569|0|4|Damberger|Seymour|3009|MI|M|Son|||1|107727 + +3010|ME|Penobscot County|Levant town|1570|0|1|Sullivan|Tomas Gregg|2960|Venezuela|M|Head|||50|107728 +3010|ME|Penobscot County|Levant town|1570|0|2|Sullivan|Myrtice|2990|Burkina Faso|F|Daughter|||20|107729 +3010|ME|Penobscot County|Levant town|1570|0|3|Sullivan|Chase|2992|Iowa|M|Son|||18|107730 +3010|ME|Penobscot County|Levant town|1570|0|4|Sullivan|Quinn|2994|Alabama|M|Son|||16|107731 +3010|ME|Penobscot County|Levant town|1570|0|5|Sullivan|Todd|2996|Colombia|M|Son|||14|107732 +3010|ME|Penobscot County|Levant town|1570|0|6|Sullivan|Gilberto|3000|Idaho|M|Son|||10|107733 + +3010|GA|Washington County|Harrison town|1571|0|1|Rafanan|Oda|2973|Ohio|F|Head|||37|107734 +3010|GA|Washington County|Harrison town|1571|0|2|Rafanan|Joseph|2995|Utah|M|Son|||15|107735 +3010|GA|Washington County|Harrison town|1571|0|3|Rafanan|Arica|2997|Utah|F|Daughter|||13|107736 + +3010|WV|Webster County|Addison (Webster Springs) town|1572|0|1|Jack|Myrna|2940|Louisiana|F|Head|||70|107737 +3010|WV|Webster County|Addison (Webster Springs) town|1572|0|2|Jack|Edra|3000|Florida|F|Daughter|||10|107738 + +3010|IN|Delaware County|Yorktown town|1573|0|1|Janacek|Art Bruno|2940|Vanuatu|M|Head|||70|107739 +3010|IN|Delaware County|Yorktown town|1573|0|2|Janacek|Carolynn|2961|Argentina|F|Spouse|||49|107740 +3010|IN|Delaware County|Yorktown town|1573|0|3|Janacek|Mittie|2995|Senegal|F|Daughter|||15|107741 +3010|IN|Delaware County|Yorktown town|1573|0|4|Janacek|Paula|2997|Vermont|F|Daughter|||13|107742 +3010|IN|Delaware County|Yorktown town|1573|0|5|Janacek|Tameika|2999|Arkansas|F|Daughter|||11|107743 +3010|IN|Delaware County|Yorktown town|1573|0|6|Janacek|Miss|3001|IN|F|Daughter|||9|107744 + +3010|NY|Steuben County|Savona village|1574|0|1|Ovitt|Vernon Lemuel|2970|Massachusetts|M|Head|||40|107745 +3010|NY|Steuben County|Savona village|1574|0|2|Ovitt|Mikaela|2979|Indiana|F|Spouse|||31|107746 +3010|NY|Steuben County|Savona village|1574|0|3|Ovitt|Armando|2999|Saint Pierre And Miquelon|M|Son|||11|107747 +3010|NY|Steuben County|Savona village|1574|0|4|Ovitt|Randal|3001|NY|M|Son|||9|107748 +3010|NY|Steuben County|Savona village|1574|0|5|Ovitt|Emile Percy|3005|NY|M|Son|||5|107749 +3010|NY|Steuben County|Savona village|1574|0|6|Ovitt|Matha|3009|NY|F|Daughter|||1|107750 + +3010|CA|Sacramento County|Rancho Cordova city|1575|0|1|Thompson|Darryl Alberto|2960|Delaware|M|Head|||50|107751 +3010|CA|Sacramento County|Rancho Cordova city|1575|0|2|Thompson|Tamar|2957|Pennsylvania|F|Spouse|||53|107752 +3010|CA|Sacramento County|Rancho Cordova city|1575|0|3|Thompson|Domonique|2987|Oregon|F|Daughter|||23|107753 +3010|CA|Sacramento County|Rancho Cordova city|1575|0|4|Thompson|Zenia|2993|Benin|F|Daughter|||17|107754 +3010|CA|Sacramento County|Rancho Cordova city|1575|0|5|Thompson|Ginette|2995|Michigan|F|Daughter|||15|107755 +3010|CA|Sacramento County|Rancho Cordova city|1575|0|6|Thompson|Tricia|3001|CA|F|Daughter|||9|107756 +3010|CA|Sacramento County|Rancho Cordova city|1575|0|7|Thompson|Levi Thad|3007|CA|M|Son|||3|107757 + +3010|NE|Dodge County|Nickerson village|1576|0|1|Mcmahan|Rigoberto Randall|2966|New York|M|Head|||44|107758 + +3010|GA|Peach County|Fort Valley city|1577|0|1|Bos|Darrick Taylor|2959|Virgin Islands, British|M|Head|||51|107759 +3010|GA|Peach County|Fort Valley city|1577|0|2|Bos|Kami|2957|Nevada|F|Spouse|||53|107760 +3010|GA|Peach County|Fort Valley city|1577|0|3|Bos|Hermila|2983|Illinois|F|Daughter|||27|107761 +3010|GA|Peach County|Fort Valley city|1577|0|4|Bos|Cicely|2985|Illinois|F|Daughter|||25|107762 +3010|GA|Peach County|Fort Valley city|1577|0|5|Bos|Martin Jame|2999|Pennsylvania|M|Son|||11|107763 +3010|GA|Peach County|Fort Valley city|1577|0|6|Bos|Junior|3001|GA|M|Son|||9|107764 +3010|GA|Peach County|Fort Valley city|1577|0|7|Bos|Boyce|3007|GA|M|Son|||3|107765 + +3010|IA|Montgomery County|Stanton city|1578|0|1|Jorge|Julian Adolfo|2948|Minnesota|M|Head|||62|107766 +3010|IA|Montgomery County|Stanton city|1578|0|2|Jorge|Robby|2987|Rhode Island|M|Son|||23|107767 +3010|IA|Montgomery County|Stanton city|1578|0|3|Jorge|Nga|2997|Virginia|F|Daughter|||13|107768 +3010|IA|Montgomery County|Stanton city|1578|0|4|Jorge|Vernon|2999|Nebraska|M|Son|||11|107769 +3010|IA|Montgomery County|Stanton city|1578|0|5|Jorge|Jerrell|3005|MN|M|Son|||5|107770 +3010|IA|Montgomery County|Stanton city|1578|0|6|Jorge|Stan|3007|IA|M|Son|||3|107771 + +3010|CA|Santa Cruz County|Bonny Doon CDP|1579|0|1|Carter|Javier|2987|Michigan|M|Son|||23|107772 +3010|CA|Santa Cruz County|Bonny Doon CDP|1579|0|2|Carter|Aron|2995|Louisiana|M|Son|||15|107773 +3010|CA|Santa Cruz County|Bonny Doon CDP|1579|0|3|Carter|Dannette|2997|Nevada|F|Daughter|||13|107774 +3010|CA|Santa Cruz County|Bonny Doon CDP|1579|0|4|Carter|Franklyn|2999|Idaho|M|Son|||11|107775 + +3010|MO|Ozark County|Sundown CDP|1580|0|1|Bjorkquist|Donald Grady|2951|Reunion|M|Head|||59|107776 +3010|MO|Ozark County|Sundown CDP|1580|0|2|Bjorkquist|Myung|2955|California|F|Spouse|||55|107777 +3010|MO|Ozark County|Sundown CDP|1580|0|3|Bjorkquist|Walter|2985|Arizona|M|Son|||25|107778 +3010|MO|Ozark County|Sundown CDP|1580|0|4|Bjorkquist|Luis|2995|South Dakota|M|Son|||15|107779 +3010|MO|Ozark County|Sundown CDP|1580|0|5|Bjorkquist|Emogene|3001|MO|F|Daughter|||9|107780 + +3010|MO|Platte County|Ferrelview village|1581|0|1|Flores|Elijah Elias|2952|Arkansas|M|Head|||58|107781 +3010|MO|Platte County|Ferrelview village|1581|0|2|Flores|Sylvia|2971|Maine|F|Spouse|||39|107782 +3010|MO|Platte County|Ferrelview village|1581|0|3|Flores|Nidia|2991|Florida|F|Daughter|||19|107783 +3010|MO|Platte County|Ferrelview village|1581|0|4|Flores|Suellen|2993|Antarctica|F|Daughter|||17|107784 +3010|MO|Platte County|Ferrelview village|1581|0|5|Flores|Vita|2997|Korea, Republic Of|F|Daughter|||13|107785 +3010|MO|Platte County|Ferrelview village|1581|0|6|Flores|Jamar Harley|2999|Alaska|M|Son|||11|107786 +3010|MO|Platte County|Ferrelview village|1581|0|7|Flores|Marti Monique|3001|MO|F|Daughter|||9|107787 +3010|MO|Platte County|Ferrelview village|1581|0|8|Flores|Adrianna|3003|MO|F|Daughter|||7|107788 +3010|MO|Platte County|Ferrelview village|1581|0|9|Flores|Edmundo Horace|3005|MO|M|Son|||5|107789 + +3010|MA|Bristol County|Dighton town|1582|0|1|Skabo|Whitney Malcom|2959|Arizona|M|Head|||51|107790 +3010|MA|Bristol County|Dighton town|1582|0|2|Skabo|Alesia|2972|Idaho|F|Spouse|||38|107791 +3010|MA|Bristol County|Dighton town|1582|0|3|Skabo|Haydee Katherine|2992|Maine|F|Daughter|||18|107792 +3010|MA|Bristol County|Dighton town|1582|0|4|Skabo|Delmar|2996|Alabama|M|Son|||14|107793 +3010|MA|Bristol County|Dighton town|1582|0|5|Skabo|Denise|3000|Tennessee|F|Daughter|||10|107794 +3010|MA|Bristol County|Dighton town|1582|0|6|Skabo|Tony|3001|MA|M|Son|||9|107795 +3010|MA|Bristol County|Dighton town|1582|0|7|Skabo|Cliff|3003|MA|M|Son|||7|107796 +3010|MA|Bristol County|Dighton town|1582|0|8|Skabo|Christiane|3005|MA|F|Daughter|||5|107797 +3010|MA|Bristol County|Dighton town|1582|0|9|Skabo|Jacqualine|3007|MA|F|Daughter|||3|107798 +3010|MA|Bristol County|Dighton town|1582|0|10|Skabo|Zoe Shani|3009|MA|F|Daughter|||1|107799 + +3010|PA|Adams County|Arendtsville borough|1583|0|1|Callan|Everett|2956|Alaska|M|Head|||54|107800 +3010|PA|Adams County|Arendtsville borough|1583|0|2|Callan|Liberty|2979|Washington|F|Spouse|||31|107801 +3010|PA|Adams County|Arendtsville borough|1583|0|3|Callan|Blake Geoffrey|3001|PA|M|Son|||9|107802 +3010|PA|Adams County|Arendtsville borough|1583|0|4|Callan|Oliver|3003|PA|M|Son|||7|107803 +3010|PA|Adams County|Arendtsville borough|1583|0|5|Callan|Jared|3005|PA|M|Son|||5|107804 +3010|PA|Adams County|Arendtsville borough|1583|0|6|Callan|Freddie|3007|PA|M|Son|||3|107805 + +3010|AL|Shelby County|Alabaster city|1584|0|1|Santoli|Lester Wilton|2959|Bouvet Island|M|Head|||51|107806 +3010|AL|Shelby County|Alabaster city|1584|0|2|Santoli|Edwin|2990|Arizona|M|Son|||20|107807 +3010|AL|Shelby County|Alabaster city|1584|0|3|Santoli|Miesha|2992|Connecticut|F|Daughter|||18|107808 +3010|AL|Shelby County|Alabaster city|1584|0|4|Santoli|Rufus|2998|Delaware|M|Son|||12|107809 +3010|AL|Shelby County|Alabaster city|1584|0|5|Santoli|Russell|3000|Montana|M|Son|||10|107810 + +3010|PA|Clarion County|Clarion borough|1585|0|1|Rector|Spencer Augustine|2966|Illinois|M|Head|||44|107811 +3010|PA|Clarion County|Clarion borough|1585|0|2|Rector|Miss|2978|Iran, Islamic Republic Of|F|Spouse|||32|107812 +3010|PA|Clarion County|Clarion borough|1585|0|3|Rector|Mozella|3001|PA|F|Daughter|||9|107813 +3010|PA|Clarion County|Clarion borough|1585|0|4|Rector|Agatha|3005|PA|F|Daughter|||5|107814 +3010|PA|Clarion County|Clarion borough|1585|0|5|Rector|Simon|3007|PA|M|Son|||3|107815 + +3010|KS|Saline County|Assaria city|1586|0|1|Fritzler|Abraham Gustavo|2946|Colorado|M|Head|||64|107816 +3010|KS|Saline County|Assaria city|1586|0|2|Fritzler|Tamesha|2957|Nevada|F|Spouse|||53|107817 +3010|KS|Saline County|Assaria city|1586|0|3|Fritzler|Myung Nila|2979|Missouri|F|Daughter|||31|107818 +3010|KS|Saline County|Assaria city|1586|0|4|Fritzler|Hugh|2981|New Hampshire|M|Son|||29|107819 +3010|KS|Saline County|Assaria city|1586|0|5|Fritzler|Dollie|3005|KS|F|Daughter|||5|107820 + +3010|MD|Caroline County|Federalsburg town|1587|0|1|Brown|Kelvin|2952|Romania|M|Head|||58|107821 +3010|MD|Caroline County|Federalsburg town|1587|0|2|Brown|Kenna|2959|Wyoming|F|Spouse|||51|107822 +3010|MD|Caroline County|Federalsburg town|1587|0|3|Brown|Meagan|3001|MD|F|Daughter|||9|107823 +3010|MD|Caroline County|Federalsburg town|1587|0|4|Brown|Bart|3003|MD|M|Son|||7|107824 +3010|MD|Caroline County|Federalsburg town|1587|0|5|Brown|Rema|3007|MD|F|Daughter|||3|107825 +3010|MD|Caroline County|Federalsburg town|1587|0|6|Brown|Latashia|3009|MD|F|Daughter|||1|107826 + +3010|MN|Blue Earth County|Vernon Center township|1588|0|1|Hellams|Denny Errol|2975|Connecticut|M|Head|||35|107827 +3010|MN|Blue Earth County|Vernon Center township|1588|0|2|Hellams|Darcy|2973|Papua New Guinea|F|Spouse|||37|107828 +3010|MN|Blue Earth County|Vernon Center township|1588|0|3|Hellams|Hobert|2997|Maryland|M|Son|||13|107829 +3010|MN|Blue Earth County|Vernon Center township|1588|0|4|Hellams|Autumn|3001|MN|F|Daughter|||9|107830 +3010|MN|Blue Earth County|Vernon Center township|1588|0|5|Hellams|Stephenie|3009|MN|F|Daughter|||1|107831 + +3010|FL|Bradford County|Lawtey city|1589|0|1|Yamaoka|Chase Britt|2978|Nebraska|M|Head|||32|107832 + +3010|NY|Dutchess County|East Fishkill town|1590|0|1|Campagnone|Clinton Seth|2963|El Salvador|M|Head|||47|107833 +3010|NY|Dutchess County|East Fishkill town|1590|0|2|Campagnone|Belia|2961|Namibia|F|Spouse|||49|107834 +3010|NY|Dutchess County|East Fishkill town|1590|0|3|Campagnone|Malia|2993|New Jersey|F|Daughter|||17|107835 +3010|NY|Dutchess County|East Fishkill town|1590|0|4|Campagnone|Frank|2995|Hawaii|M|Son|||15|107836 +3010|NY|Dutchess County|East Fishkill town|1590|0|5|Campagnone|Deloise|2997|Idaho|F|Daughter|||13|107837 +3010|NY|Dutchess County|East Fishkill town|1590|0|6|Campagnone|Cathern|3005|NY|F|Daughter|||5|107838 +3010|NY|Dutchess County|East Fishkill town|1590|0|7|Campagnone|Felipe|3009|NY|M|Son|||1|107839 + +3010|MS|Holmes County|Goodman town|1591|0|1|Hardges|Marco Len|2954|New York|M|Head|||56|107840 +3010|MS|Holmes County|Goodman town|1591|0|2|Hardges|Luetta|2966|Wallis And Futuna|F|Spouse|||44|107841 +3010|MS|Holmes County|Goodman town|1591|0|3|Hardges|Rufus|2990|South Carolina|M|Son|||20|107842 +3010|MS|Holmes County|Goodman town|1591|0|4|Hardges|Michiko Mallory|2994|North Dakota|F|Daughter|||16|107843 +3010|MS|Holmes County|Goodman town|1591|0|5|Hardges|Lore|3000|Texas|F|Daughter|||10|107844 +3010|MS|Holmes County|Goodman town|1591|0|6|Hardges|Delmer Ty|3005|MS|M|Son|||5|107845 +3010|MS|Holmes County|Goodman town|1591|0|7|Hardges|Claretha Lottie|3007|MS|F|Daughter|||3|107846 + +3010|ME|Waldo County|Islesboro town|1592|0|1|Retzer|Ramon Guy|2965|Kentucky|M|Head|||45|107847 +3010|ME|Waldo County|Islesboro town|1592|0|2|Retzer|Savannah|2978|Vermont|F|Spouse|||32|107848 +3010|ME|Waldo County|Islesboro town|1592|0|3|Retzer|Dalila|2998|Washington|F|Daughter|||12|107849 +3010|ME|Waldo County|Islesboro town|1592|0|4|Retzer|Kattie|3001|ME|F|Daughter|||9|107850 +3010|ME|Waldo County|Islesboro town|1592|0|5|Retzer|Erick|3009|ME|M|Son|||1|107851 + +3010|VT|Rutland County|Rutland city|1593|0|1|Turley|Mervin Parker|2948|South Carolina|M|Head|||62|107852 +3010|VT|Rutland County|Rutland city|1593|0|2|Turley|Micah|2997|Alabama|M|Son|||13|107853 +3010|VT|Rutland County|Rutland city|1593|0|3|Turley|Shirely Emiko|2999|New Jersey|F|Daughter|||11|107854 + +3010|NV|Clark County|Las Vegas city|1594|0|1|Fitch|Orville Demetrius|2945|Vermont|M|Head|||65|107855 +3010|NV|Clark County|Las Vegas city|1594|0|2|Fitch|Rebecka|2963|Rhode Island|F|Spouse|||47|107856 +3010|NV|Clark County|Las Vegas city|1594|0|3|Fitch|Duncan|2995|Argentina|M|Son|||15|107857 +3010|NV|Clark County|Las Vegas city|1594|0|4|Fitch|Shirely|2997|New Jersey|F|Daughter|||13|107858 +3010|NV|Clark County|Las Vegas city|1594|0|5|Fitch|Kira Doretha|2999|Iowa|F|Daughter|||11|107859 +3010|NV|Clark County|Las Vegas city|1594|0|6|Fitch|Rickie|3005|NV|M|Son|||5|107860 +3010|NV|Clark County|Las Vegas city|1594|0|7|Fitch|Edgar|3007|NV|M|Son|||3|107861 + +3010|PA|Lawrence County|Chewton CDP|1595|0|1|Depriest|Lamar|2939|Arkansas|M|Head|||71|107862 +3010|PA|Lawrence County|Chewton CDP|1595|0|2|Depriest|Theron|2967|South Georgia And The South Sandwich Islands|M|Son|||43|107863 +3010|PA|Lawrence County|Chewton CDP|1595|0|3|Depriest|Claude|2995|Illinois|M|Son|||15|107864 + +3010|IN|Tippecanoe County|West Lafayette city|1596|0|1|Dunzelman|Harley Jackson|2941|Massachusetts|M|Head|||69|107865 +3010|IN|Tippecanoe County|West Lafayette city|1596|0|2|Dunzelman|Brock Dustin|2989|Washington|M|Son|||21|107866 +3010|IN|Tippecanoe County|West Lafayette city|1596|0|3|Dunzelman|Kattie|2991|New Mexico|F|Daughter|||19|107867 +3010|IN|Tippecanoe County|West Lafayette city|1596|0|4|Dunzelman|Richelle|2995|Rhode Island|F|Daughter|||15|107868 +3010|IN|Tippecanoe County|West Lafayette city|1596|0|5|Dunzelman|Marketta|2999|Serbia|F|Daughter|||11|107869 + +3010|MI|Ottawa County|Zeeland city|1597|0|1|Cracchiolo|Cedric Jarrett|2941|Washington|M|Head|||69|107870 +3010|MI|Ottawa County|Zeeland city|1597|0|2|Cracchiolo|Jung|2945|Texas|F|Spouse|||65|107871 +3010|MI|Ottawa County|Zeeland city|1597|0|3|Cracchiolo|Lavenia|2973|Kentucky|F|Daughter|||37|107872 +3010|MI|Ottawa County|Zeeland city|1597|0|4|Cracchiolo|Clarinda|2997|Slovakia|F|Daughter|||13|107873 +3010|MI|Ottawa County|Zeeland city|1597|0|5|Cracchiolo|Julius|3001|MI|M|Son|||9|107874 +3010|MI|Ottawa County|Zeeland city|1597|0|6|Cracchiolo|Lili|3007|MI|F|Daughter|||3|107875 + +3010|MD|Prince George's County|Largo CDP|1598|0|1|Vann|Willis Thaddeus|2952|Idaho|M|Head|||58|107876 +3010|MD|Prince George's County|Largo CDP|1598|0|2|Vann|Mozella|2957|Greenland|F|Spouse|||53|107877 +3010|MD|Prince George's County|Largo CDP|1598|0|3|Vann|Caleb|2995|Colorado|M|Son|||15|107878 +3010|MD|Prince George's County|Largo CDP|1598|0|4|Vann|Joaquin Ralph|3007|MD|M|Son|||3|107879 + +3010|NY|Suffolk County|Nesconset CDP|1599|0|1|Havers|Rolando Duncan|2960|Montana|M|Head|||50|107880 +3010|NY|Suffolk County|Nesconset CDP|1599|0|2|Havers|Thao|2961|Oklahoma|F|Spouse|||49|107881 +3010|NY|Suffolk County|Nesconset CDP|1599|0|3|Havers|Clement August|2987|Indiana|M|Son|||23|107882 +3010|NY|Suffolk County|Nesconset CDP|1599|0|4|Havers|Barney|2995|Oregon|M|Son|||15|107883 + +3010|CA|San Luis Obispo County|Atascadero city|1600|0|1|Oelschlaeger|Kendall Fabian|2948|Rhode Island|M|Head|||62|107884 +3010|CA|San Luis Obispo County|Atascadero city|1600|0|2|Oelschlaeger|Shea Miranda|2965|Connecticut|F|Spouse|||45|107885 +3010|CA|San Luis Obispo County|Atascadero city|1600|0|3|Oelschlaeger|Jamaal|2985|French Guiana|M|Son|||25|107886 +3010|CA|San Luis Obispo County|Atascadero city|1600|0|4|Oelschlaeger|Boyce|3001|CA|M|Son|||9|107887 +3010|CA|San Luis Obispo County|Atascadero city|1600|0|5|Oelschlaeger|Eusebio|3003|CA|M|Son|||7|107888 +3010|CA|San Luis Obispo County|Atascadero city|1600|0|6|Oelschlaeger|Garfield|3007|CA|M|Son|||3|107889 + +3010|KY|Ballard County|Lovelaceville CDP|1601|0|1|Clerk|Virgil Zack|2939|Wisconsin|M|Head|||71|107890 +3010|KY|Ballard County|Lovelaceville CDP|1601|0|2|Clerk|Zachary|2987|Massachusetts|M|Son|||23|107891 +3010|KY|Ballard County|Lovelaceville CDP|1601|0|3|Clerk|Abdul Adam|2997|Georgia|M|Son|||13|107892 + +3010|NE|Gage County|Filley village|1602|0|1|Jones|Manual Rashad|2953|Ecuador|M|Head|||57|107893 +3010|NE|Gage County|Filley village|1602|0|2|Jones|Hugh|2992|Alabama|M|Son|||18|107894 +3010|NE|Gage County|Filley village|1602|0|3|Jones|Jerry|2994|Montana|M|Son|||16|107895 + +3010|PA|Warren County|Columbus township|1603|0|1|Mandley|Rodrigo Emmitt|2947|North Carolina|M|Head|||63|107896 +3010|PA|Warren County|Columbus township|1603|0|2|Mandley|Gilda|2961|Bangladesh|F|Spouse|||49|107897 +3010|PA|Warren County|Columbus township|1603|0|3|Mandley|Jamaal Josh|2985|Nebraska|M|Son|||25|107898 +3010|PA|Warren County|Columbus township|1603|0|4|Mandley|Mckinley|2991|Hawaii|M|Son|||19|107899 +3010|PA|Warren County|Columbus township|1603|0|5|Mandley|Tamar|2993|China|F|Daughter|||17|107900 +3010|PA|Warren County|Columbus township|1603|0|6|Mandley|Takisha|2999|Montenegro|F|Daughter|||11|107901 +3010|PA|Warren County|Columbus township|1603|0|7|Mandley|Horace|3001|PA|M|Son|||9|107902 +3010|PA|Warren County|Columbus township|1603|0|8|Mandley|Lavern Earle|3005|PA|M|Son|||5|107903 +3010|PA|Warren County|Columbus township|1603|0|9|Mandley|Kraig|3007|PA|M|Son|||3|107904 + +3010|WI|Waukesha County|Sussex village|1604|0|1|Forsberg|Nick Winford|2945|California|M|Head|||65|107905 +3010|WI|Waukesha County|Sussex village|1604|0|2|Forsberg|Fabiola|2989|Northern Mariana Islands|F|Daughter|||21|107906 +3010|WI|Waukesha County|Sussex village|1604|0|3|Forsberg|Chere|2991|New York|F|Daughter|||19|107907 +3010|WI|Waukesha County|Sussex village|1604|0|4|Forsberg|Dirk|2997|Kentucky|M|Son|||13|107908 +3010|WI|Waukesha County|Sussex village|1604|0|5|Forsberg|Lashandra|2999|New York|F|Daughter|||11|107909 + +3010|GA|Morgan County|Rutledge city|1605|0|1|Goncalves|Willodean|2954|Florida|F|Spouse|||56|107910 +3010|GA|Morgan County|Rutledge city|1605|0|2|Goncalves|Dion|3003|GA|M|Son|||7|107911 +3010|GA|Morgan County|Rutledge city|1605|0|3|Goncalves|Eula|3007|GA|F|Daughter|||3|107912 + +3010|PA|Beaver County|Hookstown borough|1606|0|1|Goolman|Nathaniel Johnathon|2975|Delaware|M|Head|||35|107913 +3010|PA|Beaver County|Hookstown borough|1606|0|2|Goolman|Lenora|2973|New Mexico|F|Spouse|||37|107914 +3010|PA|Beaver County|Hookstown borough|1606|0|3|Goolman|Shad Nicolas|2997|Montana|M|Son|||13|107915 +3010|PA|Beaver County|Hookstown borough|1606|0|4|Goolman|Jefferey|2999|New York|M|Son|||11|107916 +3010|PA|Beaver County|Hookstown borough|1606|0|5|Goolman|Ryann|3001|PA|F|Daughter|||9|107917 +3010|PA|Beaver County|Hookstown borough|1606|0|6|Goolman|Harland|3003|PA|M|Son|||7|107918 +3010|PA|Beaver County|Hookstown borough|1606|0|7|Goolman|Alonzo|3005|PA|M|Son|||5|107919 +3010|PA|Beaver County|Hookstown borough|1606|0|8|Goolman|Kattie|3009|PA|F|Daughter|||1|107920 + +3010|NY|Steuben County|Campbell town|1607|0|1|Scobey|Wilton|2942|Liberia|M|Head|||68|107921 +3010|NY|Steuben County|Campbell town|1607|0|2|Scobey|Christinia Ruthann|2958|United States Minor Outlying Islands|F|Spouse|||52|107922 +3010|NY|Steuben County|Campbell town|1607|0|3|Scobey|Myron|2986|Mississippi|M|Son|||24|107923 +3010|NY|Steuben County|Campbell town|1607|0|4|Scobey|Keneth|2992|Spain|M|Son|||18|107924 +3010|NY|Steuben County|Campbell town|1607|0|5|Scobey|Lon|2996|Alaska|M|Son|||14|107925 +3010|NY|Steuben County|Campbell town|1607|0|6|Scobey|Paulita|2998|Illinois|F|Daughter|||12|107926 +3010|NY|Steuben County|Campbell town|1607|0|7|Scobey|Linnie Rhea|3005|NY|F|Daughter|||5|107927 +3010|NY|Steuben County|Campbell town|1607|0|8|Scobey|Marty|3009|NY|M|Son|||1|107928 + +3010|MI|Macomb County|Chesterfield township|1608|0|1|Hall|Dorthy|2965|Massachusetts|F|Spouse|||45|107929 +3010|MI|Macomb County|Chesterfield township|1608|0|2|Hall|Pinkie|2993|Lithuania|F|Daughter|||17|107930 +3010|MI|Macomb County|Chesterfield township|1608|0|3|Hall|Doreen|2999|California|F|Daughter|||11|107931 +3010|MI|Macomb County|Chesterfield township|1608|0|4|Hall|Les|3007|MI|M|Son|||3|107932 + +3010|NH|Cheshire County|Jaffrey town|1609|0|1|Banas|Ahmed|2946|New Mexico|M|Head|||64|107933 +3010|NH|Cheshire County|Jaffrey town|1609|0|2|Banas|Effie|2969|South Carolina|F|Spouse|||41|107934 +3010|NH|Cheshire County|Jaffrey town|1609|0|3|Banas|Robbin|2991|Missouri|F|Daughter|||19|107935 +3010|NH|Cheshire County|Jaffrey town|1609|0|4|Banas|Demetria|2993|Belgium|F|Daughter|||17|107936 +3010|NH|Cheshire County|Jaffrey town|1609|0|5|Banas|Tyler|3009|NH|F|Daughter|||1|107937 + +3010|NH|Coos County|Ervings location|1610|0|1|Wilson|Bernard Andreas|2964|Virginia|M|Head|||46|107938 +3010|NH|Coos County|Ervings location|1610|0|2|Wilson|Debra|2977|Mississippi|F|Spouse|||33|107939 +3010|NH|Coos County|Ervings location|1610|0|3|Wilson|Harvey|2997|Colorado|M|Son|||13|107940 +3010|NH|Coos County|Ervings location|1610|0|4|Wilson|Rudy|3001|NH|F|Daughter|||9|107941 +3010|NH|Coos County|Ervings location|1610|0|5|Wilson|Ellsworth|3005|NH|M|Son|||5|107942 +3010|NH|Coos County|Ervings location|1610|0|6|Wilson|Ashley Rayford|3007|NH|M|Son|||3|107943 + +3010|MN|Dodge County|Hayfield city|1611|0|1|Bryant|Kyle Lazaro|2943|Kansas|M|Head|||67|107944 +3010|MN|Dodge County|Hayfield city|1611|0|2|Bryant|Roscoe Sherman|2978|Massachusetts|M|Son|||32|107945 +3010|MN|Dodge County|Hayfield city|1611|0|3|Bryant|Sage|2992|Montana|F|Daughter|||18|107946 +3010|MN|Dodge County|Hayfield city|1611|0|4|Bryant|Albertina|2998|Portugal|F|Daughter|||12|107947 + +3010|NM|Santa Fe County|Santa Cruz CDP|1612|0|1|Lowell|Joshua|2961|New Jersey|M|Head|||49|107948 +3010|NM|Santa Fe County|Santa Cruz CDP|1612|0|2|Lowell|Sunny|2996|Utah|F|Daughter|||14|107949 +3010|NM|Santa Fe County|Santa Cruz CDP|1612|0|3|Lowell|Anthony|2998|Niger|F|Daughter|||12|107950 +3010|NM|Santa Fe County|Santa Cruz CDP|1612|0|4|Lowell|Thalia|3001|NM|F|Daughter|||9|107951 +3010|NM|Santa Fe County|Santa Cruz CDP|1612|0|5|Lowell|Delmar|3003|NM|M|Son|||7|107952 + +3010|NH|Strafford County|Dover city|1613|0|1|Laprete|Felix Judson|2958|North Dakota|M|Head|||52|107953 +3010|NH|Strafford County|Dover city|1613|0|2|Laprete|Lupe|2969|Oregon|F|Spouse|||41|107954 +3010|NH|Strafford County|Dover city|1613|0|3|Laprete|Dannie Trent|2991|Mississippi|M|Son|||19|107955 +3010|NH|Strafford County|Dover city|1613|0|4|Laprete|Bryant|2997|North Dakota|M|Son|||13|107956 +3010|NH|Strafford County|Dover city|1613|0|5|Laprete|Donovan|2999|Korea, Democratic People's Republic Of|M|Son|||11|107957 +3010|NH|Strafford County|Dover city|1613|0|6|Laprete|Gerry|3001|NH|M|Son|||9|107958 +3010|NH|Strafford County|Dover city|1613|0|7|Laprete|Rosendo|3005|NH|M|Son|||5|107959 +3010|NH|Strafford County|Dover city|1613|0|8|Laprete|Larisa Kasey|3007|NH|F|Daughter|||3|107960 + +3010|WA|Yakima County|Harrah town|1614|0|1|Mann|Romana|2963|West Virginia|F|Head|||47|107961 +3010|WA|Yakima County|Harrah town|1614|0|2|Mann|Dominic|2997|Utah|M|Son|||13|107962 + +3010|WI|Barron County|Cameron village|1615|0|1|Pezzica|Ezekiel Darell|2958|Antarctica|M|Head|||52|107963 +3010|WI|Barron County|Cameron village|1615|0|2|Pezzica|Loyd|2981|Nebraska|M|Son|||29|107964 +3010|WI|Barron County|Cameron village|1615|0|3|Pezzica|Erick|2987|Texas|M|Son|||23|107965 +3010|WI|Barron County|Cameron village|1615|0|4|Pezzica|Greg|2989|New York|M|Son|||21|107966 +3010|WI|Barron County|Cameron village|1615|0|5|Pezzica|Alan|2993|Arkansas|M|Son|||17|107967 +3010|WI|Barron County|Cameron village|1615|0|6|Pezzica|David|2999|Indiana|M|Son|||11|107968 + +3010|MS|Calhoun County|Vardaman town|1616|0|1|Givens|Danilo Shannon|2966|Texas|M|Head|||44|107969 +3010|MS|Calhoun County|Vardaman town|1616|0|2|Givens|Latasha|2980|Tennessee|F|Spouse|||30|107970 +3010|MS|Calhoun County|Vardaman town|1616|0|3|Givens|Quincy Frank|3001|MS|M|Son|||9|107971 +3010|MS|Calhoun County|Vardaman town|1616|0|4|Givens|Alden|3005|MS|M|Son|||5|107972 + +3010|TX|Rusk County|Mount Enterprise city|1617|0|1|Carethers|Huey|2938|Vermont|M|Head|||72|107973 +3010|TX|Rusk County|Mount Enterprise city|1617|0|2|Carethers|Marcy|2992|Tuvalu|F|Daughter|||18|107974 +3010|TX|Rusk County|Mount Enterprise city|1617|0|3|Carethers|Christi|2996|Colorado|F|Daughter|||14|107975 + +3010|KS|Morris County|Parkerville city|1618|0|1|Stevens|Katelin|2980|South Dakota|F|Head|||30|107976 + +3010|LA|Richland Parish|Rayville town|1619|0|1|Monroe|Gary Vito|2944|Idaho|M|Head|||66|107977 +3010|LA|Richland Parish|Rayville town|1619|0|2|Monroe|Eleanore|2946|South Dakota|F|Spouse|||64|107978 +3010|LA|Richland Parish|Rayville town|1619|0|3|Monroe|Olinda|2968|Michigan|F|Daughter|||42|107979 +3010|LA|Richland Parish|Rayville town|1619|0|4|Monroe|Hortense|2972|Holy See (vatican City State)|F|Daughter|||38|107980 +3010|LA|Richland Parish|Rayville town|1619|0|5|Monroe|Gerald|2992|Belize|M|Son|||18|107981 +3010|LA|Richland Parish|Rayville town|1619|0|6|Monroe|Dane|2996|Colombia|M|Son|||14|107982 +3010|LA|Richland Parish|Rayville town|1619|0|7|Monroe|Damon|3000|Arkansas|M|Son|||10|107983 +3010|LA|Richland Parish|Rayville town|1619|0|8|Monroe|Brendon|3001|LA|M|Son|||9|107984 +3010|LA|Richland Parish|Rayville town|1619|0|9|Monroe|Royal|3007|LA|M|Son|||3|107985 + +3010|NE|Thayer County|Belvidere village|1620|0|1|Diebol|Jasper Jere|2971|New York|M|Head|||39|107986 +3010|NE|Thayer County|Belvidere village|1620|0|2|Diebol|Carmen|2975|Pennsylvania|F|Spouse|||35|107987 +3010|NE|Thayer County|Belvidere village|1620|0|3|Diebol|Wen|2997|Illinois|F|Daughter|||13|107988 +3010|NE|Thayer County|Belvidere village|1620|0|4|Diebol|Charisse|3001|NE|F|Daughter|||9|107989 +3010|NE|Thayer County|Belvidere village|1620|0|5|Diebol|Alease|3007|NE|F|Daughter|||3|107990 + +3010|IL|LaSalle County|Mendota city|1621|0|1|Mirsch|Colin Nicholas|2960|Mississippi|M|Head|||50|107991 +3010|IL|LaSalle County|Mendota city|1621|0|2|Mirsch|Kendra|2969|Samoa|F|Spouse|||41|107992 +3010|IL|LaSalle County|Mendota city|1621|0|3|Mirsch|Roxann|2991|Utah|F|Daughter|||19|107993 +3010|IL|LaSalle County|Mendota city|1621|0|4|Mirsch|Linn|2993|Northern Mariana Islands|F|Daughter|||17|107994 +3010|IL|LaSalle County|Mendota city|1621|0|5|Mirsch|Pilar|2995|Virginia|F|Daughter|||15|107995 +3010|IL|LaSalle County|Mendota city|1621|0|6|Mirsch|Gus|3001|NE|M|Son|||9|107996 +3010|IL|LaSalle County|Mendota city|1621|0|7|Mirsch|Marlon|3003|NE|M|Son|||7|107997 +3010|IL|LaSalle County|Mendota city|1621|0|8|Mirsch|Samatha Maragaret|3009|IL|F|Daughter|||1|107998 + +3010|VA|Prince William County|Triangle CDP|1622|0|1|Hackworth|Charlie|2939|Mississippi|M|Head|||71|107999 +3010|VA|Prince William County|Triangle CDP|1622|0|2|Hackworth|Shan|2944|New York|F|Spouse|||66|108000 +3010|VA|Prince William County|Triangle CDP|1622|0|3|Hackworth|Berry|3000|New Mexico|M|Son|||10|108001 +3010|VA|Prince William County|Triangle CDP|1622|0|4|Hackworth|Kenya|3001|VA|F|Daughter|||9|108002 +3010|VA|Prince William County|Triangle CDP|1622|0|5|Hackworth|Lori|3003|VA|F|Daughter|||7|108003 + +3010|TX|Lamb County|Earth city|1623|0|1|James|Humberto Trent|2954|Arkansas|M|Head|||56|108004 +3010|TX|Lamb County|Earth city|1623|0|2|James|Lily|2986|Nebraska|F|Daughter|||24|108005 +3010|TX|Lamb County|Earth city|1623|0|3|James|Stephen|2988|Bulgaria|M|Son|||22|108006 +3010|TX|Lamb County|Earth city|1623|0|4|James|Louie|2998|Namibia|M|Son|||12|108007 + +3010|MI|Midland County|Coleman city|1624|0|1|Ragland|Leopoldo|2964|Louisiana|M|Head|||46|108008 +3010|MI|Midland County|Coleman city|1624|0|2|Ragland|Amberly|3005|MI|F|Daughter|||5|108009 + +3010|OH|Vinton County|Wilkesville village|1625|0|1|Kopperud|Leanne|2960|Illinois|F|Spouse|||50|108010 +3010|OH|Vinton County|Wilkesville village|1625|0|2|Kopperud|Jerrod|3000|Ohio|M|Son|||10|108011 +3010|OH|Vinton County|Wilkesville village|1625|0|3|Kopperud|Christen Treasa|3003|OH|F|Daughter|||7|108012 +3010|OH|Vinton County|Wilkesville village|1625|0|4|Kopperud|Freeman|3007|OH|M|Son|||3|108013 +3010|OH|Vinton County|Wilkesville village|1625|0|5|Kopperud|Maryam|3009|OH|F|Daughter|||1|108014 + +3010|MS|Lamar County|Arnold Line CDP|1626|0|1|Wlach|Marcelo Lionel|2965|French Polynesia|M|Head|||45|108015 + +3010|WA|Snohomish County|Mill Creek East CDP|1627|0|1|Lowe|Karissa Sonya|2953|Washington|F|Spouse|||57|108016 +3010|WA|Snohomish County|Mill Creek East CDP|1627|0|2|Lowe|Usha|2981|Oregon|F|Daughter|||29|108017 +3010|WA|Snohomish County|Mill Creek East CDP|1627|0|3|Lowe|Terrell|2991|Rwanda|M|Son|||19|108018 +3010|WA|Snohomish County|Mill Creek East CDP|1627|0|4|Lowe|Randy Karl|2997|Burkina Faso|M|Son|||13|108019 +3010|WA|Snohomish County|Mill Creek East CDP|1627|0|5|Lowe|Pasquale|3009|WA|M|Son|||1|108020 + +3010|MA|Barnstable County|Truro town|1628|0|1|Allen|Ali|2976|Michigan|M|Head|||34|108021 +3010|MA|Barnstable County|Truro town|1628|0|2|Allen|Delisa|2976|New Mexico|F|Spouse|||34|108022 +3010|MA|Barnstable County|Truro town|1628|0|3|Allen|Jacqueline|2996|Kentucky|F|Daughter|||14|108023 +3010|MA|Barnstable County|Truro town|1628|0|4|Allen|Lisbeth|3000|Korea, Republic Of|F|Daughter|||10|108024 +3010|MA|Barnstable County|Truro town|1628|0|5|Allen|Isaias|3001|MA|M|Son|||9|108025 +3010|MA|Barnstable County|Truro town|1628|0|6|Allen|Felicitas|3003|MA|F|Daughter|||7|108026 +3010|MA|Barnstable County|Truro town|1628|0|7|Allen|Ashley Edgardo|3005|MA|M|Son|||5|108027 +3010|MA|Barnstable County|Truro town|1628|0|8|Allen|Wally|3009|MA|M|Son|||1|108028 + +3010|FL|Citrus County|Inverness city|1629|0|1|Hodge|Kip Porter|2969|Nicaragua|M|Head|||41|108029 +3010|FL|Citrus County|Inverness city|1629|0|2|Hodge|Bethel|2984|Alaska|F|Spouse|||26|108030 +3010|FL|Citrus County|Inverness city|1629|0|3|Hodge|Shelby|3003|FL|M|Son|||7|108031 +3010|FL|Citrus County|Inverness city|1629|0|4|Hodge|Norberto|3007|FL|M|Son|||3|108032 + +3010|ND|McHenry County|Deering city|1630|0|1|Roscow|Anthony Randal|2957|Arizona|M|Head|||53|108033 +3010|ND|McHenry County|Deering city|1630|0|2|Roscow|Beverly|2957|Rhode Island|F|Spouse|||53|108034 +3010|ND|McHenry County|Deering city|1630|0|3|Roscow|Peter|2985|Hawaii|M|Son|||25|108035 +3010|ND|McHenry County|Deering city|1630|0|4|Roscow|Reyes|2995|North Carolina|M|Son|||15|108036 +3010|ND|McHenry County|Deering city|1630|0|5|Roscow|Luis|3001|ND|M|Son|||9|108037 +3010|ND|McHenry County|Deering city|1630|0|6|Roscow|Carmine Wm|3005|ND|M|Son|||5|108038 + +3010|OR|Clackamas County|Beavercreek CDP|1631|0|1|Oguin|Whitney Willis|2943|Benin|M|Head|||67|108039 +3010|OR|Clackamas County|Beavercreek CDP|1631|0|2|Oguin|Jayme|2955|Hawaii|F|Spouse|||55|108040 +3010|OR|Clackamas County|Beavercreek CDP|1631|0|3|Oguin|Marian|2985|Montana|F|Daughter|||25|108041 +3010|OR|Clackamas County|Beavercreek CDP|1631|0|4|Oguin|Ambrose|2991|Alaska|M|Son|||19|108042 +3010|OR|Clackamas County|Beavercreek CDP|1631|0|5|Oguin|Reed|2997|Arizona|M|Son|||13|108043 + +3010|VA|Augusta County, Rockingham County|Grottoes town|1632|0|1|Riley|Adam Dusty|2948|Vermont|M|Head|||62|108044 +3010|VA|Augusta County, Rockingham County|Grottoes town|1632|0|2|Riley|Kitty|2988|Missouri|F|Daughter|||22|108045 +3010|VA|Augusta County, Rockingham County|Grottoes town|1632|0|3|Riley|Dane|2998|Massachusetts|M|Son|||12|108046 + +3010|MN|Stearns County|Lake Henry township|1633|0|1|Fukuroku|Freddy Oren|2954|Massachusetts|M|Head|||56|108047 +3010|MN|Stearns County|Lake Henry township|1633|0|2|Fukuroku|Kayce|2950|Nevada|F|Spouse|||60|108048 +3010|MN|Stearns County|Lake Henry township|1633|0|3|Fukuroku|Olen|3003|MN|M|Son|||7|108049 +3010|MN|Stearns County|Lake Henry township|1633|0|4|Fukuroku|Jeffery|3007|MN|M|Son|||3|108050 + +3010|PA|Allegheny County|Forest Hills borough|1634|0|1|Mangino|Sherley|2944|Minnesota|F|Head|||66|108051 +3010|PA|Allegheny County|Forest Hills borough|1634|0|2|Mangino|Xavier|3000|Alaska|M|Son|||10|108052 + +3010|AL|Dale County|Level Plains town|1635|0|1|Mccarrol|Keneth Terence|2959|South Dakota|M|Head|||51|108053 +3010|AL|Dale County|Level Plains town|1635|0|2|Mccarrol|Rosia|2956|Rhode Island|F|Spouse|||54|108054 +3010|AL|Dale County|Level Plains town|1635|0|3|Mccarrol|Sherlyn|2984|Kentucky|F|Daughter|||26|108055 +3010|AL|Dale County|Level Plains town|1635|0|4|Mccarrol|Reiko Madonna|3003|AL|F|Daughter|||7|108056 +3010|AL|Dale County|Level Plains town|1635|0|5|Mccarrol|Damian|3005|AL|M|Son|||5|108057 +3010|AL|Dale County|Level Plains town|1635|0|6|Mccarrol|Marcelo|3007|AL|M|Son|||3|108058 +3010|AL|Dale County|Level Plains town|1635|0|7|Mccarrol|Mitchel Lazaro|3009|AL|M|Son|||1|108059 + +3010|FL|Highlands County|Sebring city|1636|0|1|Lafata|Alberto Ira|2969|Michigan|M|Head|||41|108060 +3010|FL|Highlands County|Sebring city|1636|0|2|Lafata|Danette|2974|South Carolina|F|Spouse|||36|108061 +3010|FL|Highlands County|Sebring city|1636|0|3|Lafata|Adolfo|2998|Arizona|M|Son|||12|108062 +3010|FL|Highlands County|Sebring city|1636|0|4|Lafata|Miles|3001|FL|M|Son|||9|108063 +3010|FL|Highlands County|Sebring city|1636|0|5|Lafata|Lynda Clelia|3003|FL|F|Daughter|||7|108064 +3010|FL|Highlands County|Sebring city|1636|0|6|Lafata|Brenton|3007|FL|M|Son|||3|108065 + +3010|CA|Ventura County|Camarillo city|1637|0|1|Hallman|Joannie|2950|Texas|F|Head|||60|108066 +3010|CA|Ventura County|Camarillo city|1637|0|2|Hallman|Rico|2984|Pennsylvania|M|Son|||26|108067 + +3010|WI|Green Lake County|Mackford town|1638|0|1|Smith|Dannie Daren|2946|New Mexico|M|Head|||64|108068 +3010|WI|Green Lake County|Mackford town|1638|0|2|Smith|Blondell|2954|North Carolina|F|Spouse|||56|108069 +3010|WI|Green Lake County|Mackford town|1638|0|3|Smith|Kindra|2984|Falkland Islands (malvinas)|F|Daughter|||26|108070 +3010|WI|Green Lake County|Mackford town|1638|0|4|Smith|Amos Floyd|2990|Nevada|M|Son|||20|108071 +3010|WI|Green Lake County|Mackford town|1638|0|5|Smith|Virgilio|2998|Germany|M|Son|||12|108072 +3010|WI|Green Lake County|Mackford town|1638|0|6|Smith|Monty|3000|Massachusetts|M|Son|||10|108073 +3010|WI|Green Lake County|Mackford town|1638|0|7|Smith|Zachariah|3001|WI|M|Son|||9|108074 +3010|WI|Green Lake County|Mackford town|1638|0|8|Smith|Kate|3003|WI|F|Daughter|||7|108075 + +3010|KS|Morris County|Council Grove city|1639|0|1|Elmblad|Clint Abel|2983|Minnesota|M|Head|||27|108076 +3010|KS|Morris County|Council Grove city|1639|0|2|Elmblad|Marquita|2982|Palau|F|Spouse|||28|108077 +3010|KS|Morris County|Council Grove city|1639|0|3|Elmblad|David Roman|3001|KS|M|Son|||9|108078 +3010|KS|Morris County|Council Grove city|1639|0|4|Elmblad|Sharell|3007|KS|F|Daughter|||3|108079 +3010|KS|Morris County|Council Grove city|1639|0|5|Elmblad|Denise|3009|KS|F|Daughter|||1|108080 + +3010|NY|Ulster County|Accord CDP|1640|0|1|Stumpf|Thurman Shirley|2951|Georgia|M|Head|||59|108081 +3010|NY|Ulster County|Accord CDP|1640|0|2|Stumpf|Hisako|2960|Indiana|F|Spouse|||50|108082 +3010|NY|Ulster County|Accord CDP|1640|0|3|Stumpf|Kattie|2980|Maine|F|Daughter|||30|108083 +3010|NY|Ulster County|Accord CDP|1640|0|4|Stumpf|Lacy|2982|Florida|F|Daughter|||28|108084 +3010|NY|Ulster County|Accord CDP|1640|0|5|Stumpf|Octavia|2994|Connecticut|F|Daughter|||16|108085 +3010|NY|Ulster County|Accord CDP|1640|0|6|Stumpf|Jon|2996|Wyoming|M|Son|||14|108086 +3010|NY|Ulster County|Accord CDP|1640|0|7|Stumpf|Orlando|3000|Alaska|M|Son|||10|108087 +3010|NY|Ulster County|Accord CDP|1640|0|8|Stumpf|Tatum Lieselotte|3005|NY|F|Daughter|||5|108088 + +3010|OR|Coos County|Coos Bay city|1641|0|1|Englehardt|Nelson Hal|2953|Mississippi|M|Head|||57|108089 +3010|OR|Coos County|Coos Bay city|1641|0|2|Englehardt|Clorinda|2951|Illinois|F|Spouse|||59|108090 +3010|OR|Coos County|Coos Bay city|1641|0|3|Englehardt|Jerold|2987|Gibraltar|M|Son|||23|108091 +3010|OR|Coos County|Coos Bay city|1641|0|4|Englehardt|Blair|2997|Alabama|M|Son|||13|108092 +3010|OR|Coos County|Coos Bay city|1641|0|5|Englehardt|Cassi|3009|OR|F|Daughter|||1|108093 + +3010|MN|Itasca County|Blackberry township|1642|0|1|Baker|Ezekiel Eduardo|2961|Vermont|M|Head|||49|108094 +3010|MN|Itasca County|Blackberry township|1642|0|2|Baker|Charmaine Katharine|2958|Louisiana|F|Spouse|||52|108095 +3010|MN|Itasca County|Blackberry township|1642|0|3|Baker|Kareem|2992|Florida|M|Son|||18|108096 +3010|MN|Itasca County|Blackberry township|1642|0|4|Baker|Kassie|3000|New Mexico|F|Daughter|||10|108097 +3010|MN|Itasca County|Blackberry township|1642|0|5|Baker|Napoleon|3001|NY|M|Son|||9|108098 +3010|MN|Itasca County|Blackberry township|1642|0|6|Baker|Savanna|3007|MN|F|Daughter|||3|108099 + +3010|MN|Nobles County|Elk township|1643|0|1|Holtrop|Robert Warren|2957|North Dakota|M|Head|||53|108100 +3010|MN|Nobles County|Elk township|1643|0|2|Holtrop|Cleopatra|2976|Connecticut|F|Spouse|||34|108101 +3010|MN|Nobles County|Elk township|1643|0|3|Holtrop|Thanh|3003|MN|M|Son|||7|108102 +3010|MN|Nobles County|Elk township|1643|0|4|Holtrop|Ivan Gino|3005|MN|M|Son|||5|108103 +3010|MN|Nobles County|Elk township|1643|0|5|Holtrop|Brice|3007|MN|M|Son|||3|108104 +3010|MN|Nobles County|Elk township|1643|0|6|Holtrop|Forest|3009|MN|M|Son|||1|108105 + +3010|IA|Mitchell County|Little Cedar CDP|1644|0|1|Solarz|Caleb Mac|2937|California|M|Head|||73|108106 +3010|IA|Mitchell County|Little Cedar CDP|1644|0|2|Solarz|Jazmine|2943|Kentucky|F|Spouse|||67|108107 +3010|IA|Mitchell County|Little Cedar CDP|1644|0|3|Solarz|Derek|2973|Alaska|M|Son|||37|108108 +3010|IA|Mitchell County|Little Cedar CDP|1644|0|4|Solarz|Vita|2987|Florida|F|Daughter|||23|108109 +3010|IA|Mitchell County|Little Cedar CDP|1644|0|5|Solarz|Sachiko|2991|Indiana|F|Daughter|||19|108110 +3010|IA|Mitchell County|Little Cedar CDP|1644|0|6|Solarz|Jerrold Geraldo|2995|Bhutan|M|Son|||15|108111 +3010|IA|Mitchell County|Little Cedar CDP|1644|0|7|Solarz|Gus|3001|IA|M|Son|||9|108112 +3010|IA|Mitchell County|Little Cedar CDP|1644|0|8|Solarz|Elenor|3009|IA|F|Daughter|||1|108113 + +3010|IL|Douglas County|Hindsboro village|1645|0|1|Coyner|Emile Jerrell|2947|Hawaii|M|Head|||63|108114 +3010|IL|Douglas County|Hindsboro village|1645|0|2|Coyner|Louanne|2964|Montana|F|Spouse|||46|108115 +3010|IL|Douglas County|Hindsboro village|1645|0|3|Coyner|Mellisa|2994|Georgia|F|Daughter|||16|108116 +3010|IL|Douglas County|Hindsboro village|1645|0|4|Coyner|Kristian|2996|Maryland|F|Daughter|||14|108117 +3010|IL|Douglas County|Hindsboro village|1645|0|5|Coyner|Wilber Garth|2998|Nepal|M|Son|||12|108118 +3010|IL|Douglas County|Hindsboro village|1645|0|6|Coyner|Gerardo|3003|IL|M|Son|||7|108119 +3010|IL|Douglas County|Hindsboro village|1645|0|7|Coyner|Jim|3005|IL|M|Son|||5|108120 + +3010|TX|Denton County|Hackberry town|1646|0|1|Hufstedler|Stanton Domingo|2966|Minnesota|M|Head|||44|108121 +3010|TX|Denton County|Hackberry town|1646|0|2|Hufstedler|Dusty|2962|New Jersey|F|Spouse|||48|108122 +3010|TX|Denton County|Hackberry town|1646|0|3|Hufstedler|Antony|2990|Burundi|M|Son|||20|108123 +3010|TX|Denton County|Hackberry town|1646|0|4|Hufstedler|Nicky|2994|Benin|M|Son|||16|108124 +3010|TX|Denton County|Hackberry town|1646|0|5|Hufstedler|Elisha|2996|Oklahoma|F|Daughter|||14|108125 +3010|TX|Denton County|Hackberry town|1646|0|6|Hufstedler|Sol|2998|Afghanistan|F|Daughter|||12|108126 +3010|TX|Denton County|Hackberry town|1646|0|7|Hufstedler|Hans|3000|Pennsylvania|M|Son|||10|108127 +3010|TX|Denton County|Hackberry town|1646|0|8|Hufstedler|Mitsuko Liz|3005|TX|F|Daughter|||5|108128 +3010|TX|Denton County|Hackberry town|1646|0|9|Hufstedler|Belkis|3009|TX|F|Daughter|||1|108129 + +3010|AZ|Navajo County|Show Low city|1647|0|1|Martin|Rueben Leonel|2953|South Carolina|M|Head|||57|108130 +3010|AZ|Navajo County|Show Low city|1647|0|2|Martin|Annalisa|2950|Kentucky|F|Spouse|||60|108131 +3010|AZ|Navajo County|Show Low city|1647|0|3|Martin|Angie|2994|Idaho|F|Daughter|||16|108132 +3010|AZ|Navajo County|Show Low city|1647|0|4|Martin|Corey|2998|North Carolina|F|Daughter|||12|108133 + +3010|MI|Ontonagon County|Interior township|1648|0|1|Hardi|Beatris Josette|2940|North Dakota|F|Head|||70|108134 +3010|MI|Ontonagon County|Interior township|1648|0|2|Hardi|Donette|2968|New Zealand|F|Daughter|||42|108135 +3010|MI|Ontonagon County|Interior township|1648|0|3|Hardi|Byron|2996|Bouvet Island|M|Son|||14|108136 + +3010|PA|Lawrence County|Volant borough|1649|0|1|Whorley|Chance Roman|2939|Hawaii|M|Head|||71|108137 +3010|PA|Lawrence County|Volant borough|1649|0|2|Whorley|Oneida Catalina|2998|Alaska|F|Daughter|||12|108138 +3010|PA|Lawrence County|Volant borough|1649|0|3|Whorley|Jamee|3000|Missouri|F|Daughter|||10|108139 + +3010|NY|Essex County|Lake Placid village|1650|0|1|Hamalak|Gordon Alfred|2945|Arkansas|M|Head|||65|108140 +3010|NY|Essex County|Lake Placid village|1650|0|2|Hamalak|Isa|2942|Netherlands Antilles|F|Spouse|||68|108141 +3010|NY|Essex County|Lake Placid village|1650|0|3|Hamalak|Curt|2976|Kentucky|M|Son|||34|108142 +3010|NY|Essex County|Lake Placid village|1650|0|4|Hamalak|Lacy|3000|Aruba|M|Son|||10|108143 +3010|NY|Essex County|Lake Placid village|1650|0|5|Hamalak|Vena|3001|NY|F|Daughter|||9|108144 + +3010|TN|Robertson County, Sumner County|White House city|1651|0|1|Wood|Maria Rory|2954|Nevada|M|Head|||56|108145 +3010|TN|Robertson County, Sumner County|White House city|1651|0|2|Wood|Domitila|2975|New Hampshire|F|Spouse|||35|108146 +3010|TN|Robertson County, Sumner County|White House city|1651|0|3|Wood|Chan Waltraud|2999|Alabama|F|Daughter|||11|108147 +3010|TN|Robertson County, Sumner County|White House city|1651|0|4|Wood|Jimmie|3003|TN|M|Son|||7|108148 +3010|TN|Robertson County, Sumner County|White House city|1651|0|5|Wood|Matthew|3007|TN|M|Son|||3|108149 +3010|TN|Robertson County, Sumner County|White House city|1651|0|6|Wood|Florentina|3009|TN|F|Daughter|||1|108150 + +3010|NY|Hamilton County|Morehouse town|1652|0|1|Smith|Larhonda|2977|Mississippi|F|Spouse|||33|108151 +3010|NY|Hamilton County|Morehouse town|1652|0|2|Smith|Debrah|2999|Nebraska|F|Daughter|||11|108152 +3010|NY|Hamilton County|Morehouse town|1652|0|3|Smith|Stacy|3001|NY|M|Son|||9|108153 +3010|NY|Hamilton County|Morehouse town|1652|0|4|Smith|Elvin Oscar|3003|NY|M|Son|||7|108154 +3010|NY|Hamilton County|Morehouse town|1652|0|5|Smith|Daryl Laurene|3007|NY|F|Daughter|||3|108155 +3010|NY|Hamilton County|Morehouse town|1652|0|6|Smith|Julius Adolfo|3009|NY|M|Son|||1|108156 + +3010|MN|Itasca County|Morse township|1653|0|1|Ruiz|Shizuko|2956|Georgia|F|Head|||54|108157 +3010|MN|Itasca County|Morse township|1653|0|2|Ruiz|Merrill|2990|Liberia|M|Son|||20|108158 +3010|MN|Itasca County|Morse township|1653|0|3|Ruiz|Monte|2996|Togo|M|Son|||14|108159 + +3010|TX|Bell County, Coryell County, Lampasas County|Copperas Cove city|1654|0|1|Larson|Randal Wilfred|2964|Indiana|M|Head|||46|108160 +3010|TX|Bell County, Coryell County, Lampasas County|Copperas Cove city|1654|0|2|Larson|Tandy|2965|Arkansas|F|Spouse|||45|108161 +3010|TX|Bell County, Coryell County, Lampasas County|Copperas Cove city|1654|0|3|Larson|Shawn|2993|Washington|M|Son|||17|108162 +3010|TX|Bell County, Coryell County, Lampasas County|Copperas Cove city|1654|0|4|Larson|Matt|3001|TX|M|Son|||9|108163 + +3010|WV|Marion County|Grant Town town|1655|0|1|Sapia|Clark Harrison|2937|Arizona|M|Head|||73|108164 +3010|WV|Marion County|Grant Town town|1655|0|2|Sapia|Karie|2944|West Virginia|F|Spouse|||66|108165 +3010|WV|Marion County|Grant Town town|1655|0|3|Sapia|Wilmer Darryl|2986|Delaware|M|Son|||24|108166 +3010|WV|Marion County|Grant Town town|1655|0|4|Sapia|Colette|2992|Wisconsin|F|Daughter|||18|108167 +3010|WV|Marion County|Grant Town town|1655|0|5|Sapia|Theo|2996|Illinois|M|Son|||14|108168 +3010|WV|Marion County|Grant Town town|1655|0|6|Sapia|Sudie|3001|WV|F|Daughter|||9|108169 +3010|WV|Marion County|Grant Town town|1655|0|7|Sapia|Chet|3003|WV|M|Son|||7|108170 +3010|WV|Marion County|Grant Town town|1655|0|8|Sapia|Darrick|3007|WV|M|Son|||3|108171 +3010|WV|Marion County|Grant Town town|1655|0|9|Sapia|Ludie|3009|WV|F|Daughter|||1|108172 + +3010|NE|Gage County|Odell village|1656|0|1|Matsuda|Abel Delmer|2940|Wyoming|M|Head|||70|108173 +3010|NE|Gage County|Odell village|1656|0|2|Matsuda|Octavia|2958|Denmark|F|Spouse|||52|108174 +3010|NE|Gage County|Odell village|1656|0|3|Matsuda|Gaynelle|2986|New Hampshire|F|Daughter|||24|108175 +3010|NE|Gage County|Odell village|1656|0|4|Matsuda|Hector|2996|Alabama|M|Son|||14|108176 +3010|NE|Gage County|Odell village|1656|0|5|Matsuda|Josue|2998|Pennsylvania|M|Son|||12|108177 +3010|NE|Gage County|Odell village|1656|0|6|Matsuda|Delbert|3000|Missouri|M|Son|||10|108178 +3010|NE|Gage County|Odell village|1656|0|7|Matsuda|Lawrence|3005|NE|M|Son|||5|108179 +3010|NE|Gage County|Odell village|1656|0|8|Matsuda|Alia|3009|NE|F|Daughter|||1|108180 + +3010|MN|Jackson County|Alpha city|1658|0|1|Kham|Hal|2990|Alabama|M|Son|||20|108181 +3010|MN|Jackson County|Alpha city|1658|0|2|Kham|Emely Mckenzie|2998|Missouri|F|Daughter|||12|108182 + +3010|CA|Placer County|North Auburn CDP|1659|0|1|Moore|Fleta|2958|Oklahoma|F|Spouse|||52|108183 +3010|CA|Placer County|North Auburn CDP|1659|0|2|Moore|Ryan|2992|Missouri|M|Son|||18|108184 +3010|CA|Placer County|North Auburn CDP|1659|0|3|Moore|Monty|2996|Alaska|M|Son|||14|108185 +3010|CA|Placer County|North Auburn CDP|1659|0|4|Moore|Louie|3000|Mississippi|M|Son|||10|108186 +3010|CA|Placer County|North Auburn CDP|1659|0|5|Moore|Emmanuel|3001|CA|M|Son|||9|108187 +3010|CA|Placer County|North Auburn CDP|1659|0|6|Moore|Michaele|3007|CA|F|Daughter|||3|108188 +3010|CA|Placer County|North Auburn CDP|1659|0|7|Moore|Laurel|3009|CA|F|Daughter|||1|108189 + +3010|AZ|Santa Cruz County|Beyerville CDP|1660|0|1|Moothart|Drema|2997|Botswana|F|Daughter|||13|108190 + +3010|CA|Plumas County|East Shore CDP|1661|0|1|Donnellon|Arron Isiah|2944|Netherlands Antilles|M|Head|||66|108191 +3010|CA|Plumas County|East Shore CDP|1661|0|2|Donnellon|Donette|2960|Ohio|F|Spouse|||50|108192 +3010|CA|Plumas County|East Shore CDP|1661|0|3|Donnellon|Victor Lavern|2984|Bolivia|M|Son|||26|108193 +3010|CA|Plumas County|East Shore CDP|1661|0|4|Donnellon|Vallie|2992|Oklahoma|F|Daughter|||18|108194 +3010|CA|Plumas County|East Shore CDP|1661|0|5|Donnellon|Daren|2996|South Dakota|M|Son|||14|108195 +3010|CA|Plumas County|East Shore CDP|1661|0|6|Donnellon|Warren Sol|2998|Virginia|M|Son|||12|108196 +3010|CA|Plumas County|East Shore CDP|1661|0|7|Donnellon|Henry|3001|CA|M|Son|||9|108197 +3010|CA|Plumas County|East Shore CDP|1661|0|8|Donnellon|Ria|3009|CA|F|Daughter|||1|108198 + +3010|IA|Boone County, Polk County, Story County|Sheldahl city|1662|0|1|Mattingly|Mattie|2964|United Arab Emirates|F|Head|||46|108199 +3010|IA|Boone County, Polk County, Story County|Sheldahl city|1662|0|2|Mattingly|Randell Alexander|2996|New Jersey|M|Son|||14|108200 +3010|IA|Boone County, Polk County, Story County|Sheldahl city|1662|0|3|Mattingly|Craig|2998|Maine|M|Son|||12|108201 +3010|IA|Boone County, Polk County, Story County|Sheldahl city|1662|0|4|Mattingly|Eldridge|3000|Oklahoma|M|Son|||10|108202 + +3010|IA|Keokuk County|Keota city|1663|0|1|Zentner|Lavern|3003|IA|M|Son|||7|108203 +3010|IA|Keokuk County|Keota city|1663|0|2|Zentner|Marisol|3005|IA|F|Daughter|||5|108204 +3010|IA|Keokuk County|Keota city|1663|0|3|Zentner|Mathew|3007|IA|M|Son|||3|108205 +3010|IA|Keokuk County|Keota city|1663|0|4|Zentner|Gerri|3009|IA|F|Daughter|||1|108206 + +3010|OK|Rogers County|Justice CDP|1664|0|1|Boggs|Stanley Eduardo|2970|Arkansas|M|Head|||40|108207 +3010|OK|Rogers County|Justice CDP|1664|0|2|Boggs|Candice|2967|Minnesota|F|Spouse|||43|108208 +3010|OK|Rogers County|Justice CDP|1664|0|3|Boggs|Antoine|2987|Missouri|M|Son|||23|108209 +3010|OK|Rogers County|Justice CDP|1664|0|4|Boggs|Genesis|2995|Wyoming|F|Daughter|||15|108210 +3010|OK|Rogers County|Justice CDP|1664|0|5|Boggs|Simon|2997|Kansas|M|Son|||13|108211 +3010|OK|Rogers County|Justice CDP|1664|0|6|Boggs|Landon|2999|India|M|Son|||11|108212 +3010|OK|Rogers County|Justice CDP|1664|0|7|Boggs|Alvera|3003|KY|F|Daughter|||7|108213 +3010|OK|Rogers County|Justice CDP|1664|0|8|Boggs|Zana|3005|KY|F|Daughter|||5|108214 +3010|OK|Rogers County|Justice CDP|1664|0|9|Boggs|Hallie|3009|OK|F|Daughter|||1|108215 + +3010|OH|Mercer County|St. Henry village|1665|0|1|Sherod|Vance Hobert|2953|Hawaii|M|Head|||57|108216 +3010|OH|Mercer County|St. Henry village|1665|0|2|Sherod|Nakita|2974|Michigan|F|Spouse|||36|108217 +3010|OH|Mercer County|St. Henry village|1665|0|3|Sherod|Wilber|2994|Alabama|M|Son|||16|108218 +3010|OH|Mercer County|St. Henry village|1665|0|4|Sherod|Asa|2996|Lithuania|M|Son|||14|108219 +3010|OH|Mercer County|St. Henry village|1665|0|5|Sherod|Carmen|3001|MN|M|Son|||9|108220 +3010|OH|Mercer County|St. Henry village|1665|0|6|Sherod|Dominique Felix|3007|OH|M|Son|||3|108221 + +3010|VA|Fairfax County|Springfield CDP|1666|0|1|Cilenti|Denis Malcolm|2964|New Zealand|M|Head|||46|108222 +3010|VA|Fairfax County|Springfield CDP|1666|0|2|Cilenti|Isa|2978|Ohio|F|Spouse|||32|108223 +3010|VA|Fairfax County|Springfield CDP|1666|0|3|Cilenti|Ollie|2998|Oklahoma|F|Daughter|||12|108224 +3010|VA|Fairfax County|Springfield CDP|1666|0|4|Cilenti|Dena|3001|VA|F|Daughter|||9|108225 +3010|VA|Fairfax County|Springfield CDP|1666|0|5|Cilenti|Eugene|3005|VA|M|Son|||5|108226 +3010|VA|Fairfax County|Springfield CDP|1666|0|6|Cilenti|Enrique|3007|VA|M|Son|||3|108227 + +3010|LA|De Soto Parish|Mansfield city|1667|0|1|Jimenez|Jesus Randell|2938|Delaware|M|Head|||72|108228 +3010|LA|De Soto Parish|Mansfield city|1667|0|2|Jimenez|Cinda Debroah|2962|Connecticut|F|Spouse|||48|108229 +3010|LA|De Soto Parish|Mansfield city|1667|0|3|Jimenez|Yong|2992|South Carolina|F|Daughter|||18|108230 +3010|LA|De Soto Parish|Mansfield city|1667|0|4|Jimenez|Julio|2998|Kansas|M|Son|||12|108231 +3010|LA|De Soto Parish|Mansfield city|1667|0|5|Jimenez|Devin|3005|LA|M|Son|||5|108232 +3010|LA|De Soto Parish|Mansfield city|1667|0|6|Jimenez|Flossie|3009|LA|F|Daughter|||1|108233 + +3010|MN|Nobles County|Graham Lakes township|1668|0|1|Jordan|Nicholas Preston|2961|Cape Verde|M|Head|||49|108234 +3010|MN|Nobles County|Graham Lakes township|1668|0|2|Jordan|Tran|2982|Idaho|F|Spouse|||28|108235 +3010|MN|Nobles County|Graham Lakes township|1668|0|3|Jordan|Dane Monte|3001|MN|M|Son|||9|108236 +3010|MN|Nobles County|Graham Lakes township|1668|0|4|Jordan|Barb|3003|MN|F|Daughter|||7|108237 + +3010|PA|Chester County|Pomeroy CDP|1669|0|1|Pyon|Clair Fernando|2959|Georgia|M|Head|||51|108238 +3010|PA|Chester County|Pomeroy CDP|1669|0|2|Pyon|Leola|2976|Arizona|F|Spouse|||34|108239 +3010|PA|Chester County|Pomeroy CDP|1669|0|3|Pyon|Latesha|2996|Oklahoma|F|Daughter|||14|108240 +3010|PA|Chester County|Pomeroy CDP|1669|0|4|Pyon|Oswaldo Tory|3000|Iowa|M|Son|||10|108241 +3010|PA|Chester County|Pomeroy CDP|1669|0|5|Pyon|Stefania|3003|PA|F|Daughter|||7|108242 +3010|PA|Chester County|Pomeroy CDP|1669|0|6|Pyon|Mickie|3005|PA|F|Daughter|||5|108243 +3010|PA|Chester County|Pomeroy CDP|1669|0|7|Pyon|Moses|3009|PA|M|Son|||1|108244 + +3010|NJ|Salem County|Pennsville township|1670|0|1|Sherwood|Gail Roosevelt|2961|Kansas|M|Head|||49|108245 +3010|NJ|Salem County|Pennsville township|1670|0|2|Sherwood|Sal|2999|Pennsylvania|M|Son|||11|108246 + +3010|NV|Mineral County|Schurz CDP|1671|0|1|Jamerson|Anibal|2987|Spain|M|Son|||23|108247 +3010|NV|Mineral County|Schurz CDP|1671|0|2|Jamerson|Oneida|2997|Morocco|F|Daughter|||13|108248 +3010|NV|Mineral County|Schurz CDP|1671|0|3|Jamerson|Kylee|2999|South Dakota|F|Daughter|||11|108249 + +3010|CT|Windham County|Putnam town|1672|0|1|Fees|Bernard Leandro|2945|Utah|M|Head|||65|108250 +3010|CT|Windham County|Putnam town|1672|0|2|Fees|Colton|2991|Connecticut|M|Son|||19|108251 +3010|CT|Windham County|Putnam town|1672|0|3|Fees|Jami|2993|Maryland|F|Daughter|||17|108252 +3010|CT|Windham County|Putnam town|1672|0|4|Fees|Joycelyn|2995|Armenia|F|Daughter|||15|108253 +3010|CT|Windham County|Putnam town|1672|0|5|Fees|Wally Brendan|2997|New Hampshire|M|Son|||13|108254 +3010|CT|Windham County|Putnam town|1672|0|6|Fees|Horace|2999|Ohio|M|Son|||11|108255 + +3010|MD|Dorchester County|Cambridge city|1673|0|1|Blodgett|Chase Willian|2941|Washington|M|Head|||69|108256 +3010|MD|Dorchester County|Cambridge city|1673|0|2|Blodgett|Jerica Shela|2939|Colorado|F|Spouse|||71|108257 +3010|MD|Dorchester County|Cambridge city|1673|0|3|Blodgett|Rosemarie|2981|Colorado|F|Daughter|||29|108258 +3010|MD|Dorchester County|Cambridge city|1673|0|4|Blodgett|Gabriella|2987|Washington|F|Daughter|||23|108259 +3010|MD|Dorchester County|Cambridge city|1673|0|5|Blodgett|Gaston|2995|Mississippi|M|Son|||15|108260 +3010|MD|Dorchester County|Cambridge city|1673|0|6|Blodgett|Inge|2999|Congo|F|Daughter|||11|108261 +3010|MD|Dorchester County|Cambridge city|1673|0|7|Blodgett|Nana|3001|MD|F|Daughter|||9|108262 +3010|MD|Dorchester County|Cambridge city|1673|0|8|Blodgett|Jonelle|3003|MD|F|Daughter|||7|108263 + +3010|MO|Linn County, Sullivan County|Browning city|1674|0|1|Allen|Clifton Salvador|2937|Maryland|M|Head|||73|108264 +3010|MO|Linn County, Sullivan County|Browning city|1674|0|2|Allen|Freeda|2950|New Mexico|F|Spouse|||60|108265 +3010|MO|Linn County, Sullivan County|Browning city|1674|0|3|Allen|Hunter Russ|2970|Florida|M|Son|||40|108266 +3010|MO|Linn County, Sullivan County|Browning city|1674|0|4|Allen|Renae Corie|2986|Louisiana|F|Daughter|||24|108267 +3010|MO|Linn County, Sullivan County|Browning city|1674|0|5|Allen|Herman|2998|Reunion|M|Son|||12|108268 +3010|MO|Linn County, Sullivan County|Browning city|1674|0|6|Allen|Harriette Lupita|3005|MO|F|Daughter|||5|108269 +3010|MO|Linn County, Sullivan County|Browning city|1674|0|7|Allen|Lesley Elidia|3007|MO|F|Daughter|||3|108270 + +3010|MO|Platte County|Edgerton city|1675|0|1|Rary|Houston|2968|Iowa|M|Head|||42|108271 +3010|MO|Platte County|Edgerton city|1675|0|2|Rary|Reynaldo|2998|New York|M|Son|||12|108272 + +3010|MO|Linn County|Bucklin city|1676|0|1|Bates|Chi Ariel|2974|Indiana|M|Head|||36|108273 +3010|MO|Linn County|Bucklin city|1676|0|2|Bates|Hae|2975|Ohio|F|Spouse|||35|108274 +3010|MO|Linn County|Bucklin city|1676|0|3|Bates|Beaulah|2995|New Mexico|F|Daughter|||15|108275 +3010|MO|Linn County|Bucklin city|1676|0|4|Bates|Napoleon|2997|Virginia|M|Son|||13|108276 +3010|MO|Linn County|Bucklin city|1676|0|5|Bates|Wilfredo|3007|MO|M|Son|||3|108277 + +3010|NY|St. Lawrence County|Ogdensburg city|1677|0|1|Darocha|Enoch Lance|2943|Ohio|M|Head|||67|108278 +3010|NY|St. Lawrence County|Ogdensburg city|1677|0|2|Darocha|Leslie|2952|El Salvador|F|Spouse|||58|108279 +3010|NY|St. Lawrence County|Ogdensburg city|1677|0|3|Darocha|Belkis|2978|Pennsylvania|F|Daughter|||32|108280 +3010|NY|St. Lawrence County|Ogdensburg city|1677|0|4|Darocha|Pasquale|2986|Oklahoma|M|Son|||24|108281 +3010|NY|St. Lawrence County|Ogdensburg city|1677|0|5|Darocha|Maximo|3003|NY|M|Son|||7|108282 +3010|NY|St. Lawrence County|Ogdensburg city|1677|0|6|Darocha|Bob|3009|NY|M|Son|||1|108283 + +3010|MN|Scott County|St. Lawrence township|1678|0|1|Gottesman|Douglas|2946|Iowa|M|Head|||64|108284 +3010|MN|Scott County|St. Lawrence township|1678|0|2|Gottesman|Shandra|2947|Alabama|F|Spouse|||63|108285 +3010|MN|Scott County|St. Lawrence township|1678|0|3|Gottesman|Brittanie Gladys|2969|Delaware|F|Daughter|||41|108286 +3010|MN|Scott County|St. Lawrence township|1678|0|4|Gottesman|Emmanuel Emery|2971|Panama|M|Son|||39|108287 +3010|MN|Scott County|St. Lawrence township|1678|0|5|Gottesman|Willian|2995|North Dakota|M|Son|||15|108288 +3010|MN|Scott County|St. Lawrence township|1678|0|6|Gottesman|Eleanora|3007|MN|F|Daughter|||3|108289 +3010|MN|Scott County|St. Lawrence township|1678|0|7|Gottesman|Elinore Bee|3009|MN|F|Daughter|||1|108290 + +3010|PA|Washington County|Cecil-Bishop CDP|1679|0|1|Palafox|Irwin Edmund|2972|Arizona|M|Head|||38|108291 +3010|PA|Washington County|Cecil-Bishop CDP|1679|0|2|Palafox|Neta|2984|South Carolina|F|Spouse|||26|108292 +3010|PA|Washington County|Cecil-Bishop CDP|1679|0|3|Palafox|Antony|3001|PA|M|Son|||9|108293 +3010|PA|Washington County|Cecil-Bishop CDP|1679|0|4|Palafox|Fred|3005|PA|M|Son|||5|108294 +3010|PA|Washington County|Cecil-Bishop CDP|1679|0|5|Palafox|Camie|3007|PA|F|Daughter|||3|108295 + +3010|NH|Grafton County|Lincoln town|1680|0|1|Letchworth|Jamey Manual|2940|Hawaii|M|Head|||70|108296 +3010|NH|Grafton County|Lincoln town|1680|0|2|Letchworth|Thaddeus|2996|Ohio|M|Son|||14|108297 +3010|NH|Grafton County|Lincoln town|1680|0|3|Letchworth|Savanna|3000|Utah|F|Daughter|||10|108298 +3010|NH|Grafton County|Lincoln town|1680|0|4|Letchworth|Carlos Earl|3003|NH|M|Son|||7|108299 + +3010|TX|Hays County|Hays city|1681|0|1|Harris|Noble Chi|2973|New Jersey|M|Head|||37|108300 +3010|TX|Hays County|Hays city|1681|0|2|Harris|Audie Dusti|2978|San Marino|F|Spouse|||32|108301 +3010|TX|Hays County|Hays city|1681|0|3|Harris|Emmitt Kareem|3000|Colorado|M|Son|||10|108302 +3010|TX|Hays County|Hays city|1681|0|4|Harris|Jamal|3001|TX|M|Son|||9|108303 +3010|TX|Hays County|Hays city|1681|0|5|Harris|Tandra|3003|TX|F|Daughter|||7|108304 +3010|TX|Hays County|Hays city|1681|0|6|Harris|Laticia|3007|TX|F|Daughter|||3|108305 + +3010|NJ|Bergen County|Ho-Ho-Kus borough|1682|0|1|Jones|Burl Randy|2961|Mississippi|M|Head|||49|108306 + +3010|IA|Dickinson County|Wahpeton city|1683|0|1|Gillock|Elias|2960|South Dakota|M|Head|||50|108307 +3010|IA|Dickinson County|Wahpeton city|1683|0|2|Gillock|Toi|2983|Kentucky|F|Spouse|||27|108308 +3010|IA|Dickinson County|Wahpeton city|1683|0|3|Gillock|Titus|3001|IA|M|Son|||9|108309 +3010|IA|Dickinson County|Wahpeton city|1683|0|4|Gillock|Rodrigo|3003|IA|M|Son|||7|108310 +3010|IA|Dickinson County|Wahpeton city|1683|0|5|Gillock|Dewayne|3007|IA|M|Son|||3|108311 + +3010|TX|Cameron County|Rio Hondo city|1684|0|1|Chaiken|Chang Karl|2966|Tennessee|M|Head|||44|108312 + +3010|CA|Orange County|Yorba Linda city|1685|0|1|Lunch|Trinidad Olin|2974|California|M|Head|||36|108313 +3010|CA|Orange County|Yorba Linda city|1685|0|2|Lunch|Anna|2997|North Carolina|F|Daughter|||13|108314 +3010|CA|Orange County|Yorba Linda city|1685|0|3|Lunch|Sherwood|2999|West Virginia|M|Son|||11|108315 + +3010|IL|LaSalle County|LaSalle city|1686|0|1|Haynes|Russel Aurelio|2954|New York|M|Head|||56|108316 +3010|IL|LaSalle County|LaSalle city|1686|0|2|Haynes|Latesha|2959|Kentucky|F|Spouse|||51|108317 +3010|IL|LaSalle County|LaSalle city|1686|0|3|Haynes|Mayme|2989|North Carolina|F|Daughter|||21|108318 +3010|IL|LaSalle County|LaSalle city|1686|0|4|Haynes|Yevette|3001|IL|F|Daughter|||9|108319 +3010|IL|LaSalle County|LaSalle city|1686|0|5|Haynes|Drew|3007|IL|F|Daughter|||3|108320 +3010|IL|LaSalle County|LaSalle city|1686|0|6|Haynes|Kami|3009|IL|F|Daughter|||1|108321 + +3010|TX|San Patricio County|Gregory city|1687|0|1|Grames|Caleb Lee|2946|Virginia|M|Head|||64|108322 +3010|TX|San Patricio County|Gregory city|1687|0|2|Grames|Teresita|2947|Cuba|F|Spouse|||63|108323 +3010|TX|San Patricio County|Gregory city|1687|0|3|Grames|Kirby|2983|Kentucky|F|Daughter|||27|108324 +3010|TX|San Patricio County|Gregory city|1687|0|4|Grames|Jaleesa|2985|Iowa|F|Daughter|||25|108325 +3010|TX|San Patricio County|Gregory city|1687|0|5|Grames|Luciano|2997|Guatemala|M|Son|||13|108326 +3010|TX|San Patricio County|Gregory city|1687|0|6|Grames|Tyler Isaac|3003|MI|M|Son|||7|108327 +3010|TX|San Patricio County|Gregory city|1687|0|7|Grames|Raymundo|3005|MI|M|Son|||5|108328 +3010|TX|San Patricio County|Gregory city|1687|0|8|Grames|Toney|3009|TX|M|Son|||1|108329 + +3010|WI|St. Croix County|Kinnickinnic town|1688|0|1|Pollack|Dominick Michale|2974|Pennsylvania|M|Head|||36|108330 +3010|WI|St. Croix County|Kinnickinnic town|1688|0|2|Pollack|Leeann|2978|Nebraska|F|Spouse|||32|108331 +3010|WI|St. Croix County|Kinnickinnic town|1688|0|3|Pollack|Angella|2998|Pennsylvania|F|Daughter|||12|108332 +3010|WI|St. Croix County|Kinnickinnic town|1688|0|4|Pollack|Reggie|3000|Oklahoma|M|Son|||10|108333 +3010|WI|St. Croix County|Kinnickinnic town|1688|0|5|Pollack|Daren|3001|WI|M|Son|||9|108334 +3010|WI|St. Croix County|Kinnickinnic town|1688|0|6|Pollack|Bernetta|3003|WI|F|Daughter|||7|108335 +3010|WI|St. Croix County|Kinnickinnic town|1688|0|7|Pollack|September Tien|3009|WI|F|Daughter|||1|108336 + +3010|AR|Sebastian County|Barling city|1689|0|1|Tyson|Dwain Damien|2952|Delaware|M|Head|||58|108337 +3010|AR|Sebastian County|Barling city|1689|0|2|Tyson|Fredrick|2994|New Mexico|M|Son|||16|108338 +3010|AR|Sebastian County|Barling city|1689|0|3|Tyson|Roseanna|3000|Tennessee|F|Daughter|||10|108339 + +3010|PA|Susquehanna County|Silver Lake township|1690|0|1|Vaughn|Sharonda Willette|2975|Wisconsin|F|Spouse|||35|108340 +3010|PA|Susquehanna County|Silver Lake township|1690|0|2|Vaughn|Robbie Jarrod|2997|Minnesota|M|Son|||13|108341 +3010|PA|Susquehanna County|Silver Lake township|1690|0|3|Vaughn|Isaiah|2999|South Dakota|M|Son|||11|108342 +3010|PA|Susquehanna County|Silver Lake township|1690|0|4|Vaughn|Yung|3005|PA|F|Daughter|||5|108343 +3010|PA|Susquehanna County|Silver Lake township|1690|0|5|Vaughn|Evalyn|3009|PA|F|Daughter|||1|108344 + +3010|OH|Hancock County|Vanlue village|1691|0|1|Headlee|Dwana Chery|2955|Maldives|F|Spouse|||55|108345 +3010|OH|Hancock County|Vanlue village|1691|0|2|Headlee|Eve Carline|2995|Missouri|F|Daughter|||15|108346 +3010|OH|Hancock County|Vanlue village|1691|0|3|Headlee|Phillis|2997|Wyoming|F|Daughter|||13|108347 +3010|OH|Hancock County|Vanlue village|1691|0|4|Headlee|Fanny|3009|OH|F|Daughter|||1|108348 + +3010|PA|Cambria County|Wilmore borough|1692|0|1|Campbell|Vincenzo|2958|New Jersey|M|Head|||52|108349 +3010|PA|Cambria County|Wilmore borough|1692|0|2|Campbell|Cheryll|2978|Pennsylvania|F|Spouse|||32|108350 +3010|PA|Cambria County|Wilmore borough|1692|0|3|Campbell|Henry|2998|California|M|Son|||12|108351 +3010|PA|Cambria County|Wilmore borough|1692|0|4|Campbell|Cherri Kam|3001|PA|F|Daughter|||9|108352 +3010|PA|Cambria County|Wilmore borough|1692|0|5|Campbell|Jane|3003|PA|F|Daughter|||7|108353 +3010|PA|Cambria County|Wilmore borough|1692|0|6|Campbell|Petronila|3007|PA|F|Daughter|||3|108354 +3010|PA|Cambria County|Wilmore borough|1692|0|7|Campbell|Leo|3009|PA|F|Daughter|||1|108355 + +3010|PA|Armstrong County|Burrell township|1693|0|1|Breehl|Levi Antione|2977|Lithuania|M|Head|||33|108356 +3010|PA|Armstrong County|Burrell township|1693|0|2|Breehl|Clarita|2973|Maine|F|Spouse|||37|108357 +3010|PA|Armstrong County|Burrell township|1693|0|3|Breehl|Kirby|2995|New Mexico|F|Daughter|||15|108358 +3010|PA|Armstrong County|Burrell township|1693|0|4|Breehl|Milissa|3001|PA|F|Daughter|||9|108359 +3010|PA|Armstrong County|Burrell township|1693|0|5|Breehl|Chase|3005|PA|M|Son|||5|108360 +3010|PA|Armstrong County|Burrell township|1693|0|6|Breehl|Debi|3007|PA|F|Daughter|||3|108361 +3010|PA|Armstrong County|Burrell township|1693|0|7|Breehl|Stefan|3009|PA|M|Son|||1|108362 + +3010|TX|Brazoria County|Manvel city|1694|0|1|Wagemann|Dalila|2970|Nevada|F|Head|||40|108363 +3010|TX|Brazoria County|Manvel city|1694|0|2|Wagemann|Maritza|2996|California|F|Daughter|||14|108364 +3010|TX|Brazoria County|Manvel city|1694|0|3|Wagemann|Nereida|3000|Iowa|F|Daughter|||10|108365 + +3010|OR|Jefferson County|Warm Springs CDP|1695|0|1|Coccia|Guillermo August|2975|Oklahoma|M|Head|||35|108366 +3010|OR|Jefferson County|Warm Springs CDP|1695|0|2|Coccia|Eula|2971|Rhode Island|F|Spouse|||39|108367 +3010|OR|Jefferson County|Warm Springs CDP|1695|0|3|Coccia|Bee|2991|Dominica|F|Daughter|||19|108368 +3010|OR|Jefferson County|Warm Springs CDP|1695|0|4|Coccia|Ronny|2995|Georgia|M|Son|||15|108369 +3010|OR|Jefferson County|Warm Springs CDP|1695|0|5|Coccia|Quincy|2997|Wyoming|M|Son|||13|108370 +3010|OR|Jefferson County|Warm Springs CDP|1695|0|6|Coccia|Michelina Tula|3001|OR|F|Daughter|||9|108371 +3010|OR|Jefferson County|Warm Springs CDP|1695|0|7|Coccia|Ken|3009|OR|M|Son|||1|108372 + +3010|CA|San Diego County|Valley Center CDP|1696|0|1|Byron|Rusty Herbert|2967|Texas|M|Head|||43|108373 +3010|CA|San Diego County|Valley Center CDP|1696|0|2|Byron|Tiffaney|2983|New York|F|Spouse|||27|108374 +3010|CA|San Diego County|Valley Center CDP|1696|0|3|Byron|Aurore|3001|MI|F|Daughter|||9|108375 +3010|CA|San Diego County|Valley Center CDP|1696|0|4|Byron|Nolan|3003|MI|M|Son|||7|108376 +3010|CA|San Diego County|Valley Center CDP|1696|0|5|Byron|Chase|3005|MI|M|Son|||5|108377 + +3010|WI|Clark County|Loyal city|1697|0|1|Cossey|Maryrose|2939|Afghanistan|F|Spouse|||71|108378 +3010|WI|Clark County|Loyal city|1697|0|2|Cossey|Ginette Demetrice|2993|Montenegro|F|Daughter|||17|108379 +3010|WI|Clark County|Loyal city|1697|0|3|Cossey|Verna|2995|West Virginia|F|Daughter|||15|108380 +3010|WI|Clark County|Loyal city|1697|0|4|Cossey|Manuela|3005|WI|F|Daughter|||5|108381 + +3010|IA|Cedar County|Bennett city|1698|0|1|Budzinski|Elvin Willian|2976|Wisconsin|M|Head|||34|108382 +3010|IA|Cedar County|Bennett city|1698|0|2|Budzinski|Karie|2977|Louisiana|F|Spouse|||33|108383 +3010|IA|Cedar County|Bennett city|1698|0|3|Budzinski|Dagny|2997|California|F|Daughter|||13|108384 +3010|IA|Cedar County|Bennett city|1698|0|4|Budzinski|Ashley|3001|IA|M|Son|||9|108385 +3010|IA|Cedar County|Bennett city|1698|0|5|Budzinski|Terence|3003|IA|M|Son|||7|108386 +3010|IA|Cedar County|Bennett city|1698|0|6|Budzinski|Norberto|3007|IA|M|Son|||3|108387 +3010|IA|Cedar County|Bennett city|1698|0|7|Budzinski|Charlie|3009|IA|F|Daughter|||1|108388 + +3010|MT|Pondera County|Heart Butte CDP|1699|0|1|Fors|Bo Silas|2941|North Dakota|M|Head|||69|108389 +3010|MT|Pondera County|Heart Butte CDP|1699|0|2|Fors|Sabine|2958|Indiana|F|Spouse|||52|108390 +3010|MT|Pondera County|Heart Butte CDP|1699|0|3|Fors|Angelic|2978|Nebraska|F|Daughter|||32|108391 +3010|MT|Pondera County|Heart Butte CDP|1699|0|4|Fors|Leena|2996|Croatia|F|Daughter|||14|108392 +3010|MT|Pondera County|Heart Butte CDP|1699|0|5|Fors|Kelly|3001|MT|M|Son|||9|108393 +3010|MT|Pondera County|Heart Butte CDP|1699|0|6|Fors|Javier|3007|MT|M|Son|||3|108394 +3010|MT|Pondera County|Heart Butte CDP|1699|0|7|Fors|Summer|3009|MT|F|Daughter|||1|108395 + +3010|MA|Plymouth County|Onset CDP|1700|0|1|Hendrixson|Mozelle|2985|Washington|F|Daughter|||25|108396 +3010|MA|Plymouth County|Onset CDP|1700|0|2|Hendrixson|Harvey|2995|Massachusetts|M|Son|||15|108397 +3010|MA|Plymouth County|Onset CDP|1700|0|3|Hendrixson|Laurine Kimi|3001|MA|F|Daughter|||9|108398 +3010|MA|Plymouth County|Onset CDP|1700|0|4|Hendrixson|Rhona|3003|MA|F|Daughter|||7|108399 +3010|MA|Plymouth County|Onset CDP|1700|0|5|Hendrixson|Branden|3009|MA|M|Son|||1|108400 + +3010|TX|Hidalgo County|Pharr city|1701|0|1|Gould|Guillermo Milo|2939|Pennsylvania|M|Head|||71|108401 +3010|TX|Hidalgo County|Pharr city|1701|0|2|Gould|Kasha|2937|Vermont|F|Spouse|||73|108402 +3010|TX|Hidalgo County|Pharr city|1701|0|3|Gould|Lamar Clay|2987|Alabama|M|Son|||23|108403 +3010|TX|Hidalgo County|Pharr city|1701|0|4|Gould|Tamica|2991|Maine|F|Daughter|||19|108404 +3010|TX|Hidalgo County|Pharr city|1701|0|5|Gould|Griselda|2995|Mississippi|F|Daughter|||15|108405 +3010|TX|Hidalgo County|Pharr city|1701|0|6|Gould|Muoi|2997|Wisconsin|F|Daughter|||13|108406 +3010|TX|Hidalgo County|Pharr city|1701|0|7|Gould|Ladonna|3001|TX|F|Daughter|||9|108407 + +3010|NC|Robeson County|Shannon CDP|1702|0|1|Madsen|Landon|2955|Tennessee|M|Head|||55|108408 +3010|NC|Robeson County|Shannon CDP|1702|0|2|Madsen|Paula Tabetha|2974|Hawaii|F|Spouse|||36|108409 +3010|NC|Robeson County|Shannon CDP|1702|0|3|Madsen|Yoshiko|2994|Philippines|F|Daughter|||16|108410 +3010|NC|Robeson County|Shannon CDP|1702|0|4|Madsen|Brandy|2996|North Carolina|F|Daughter|||14|108411 +3010|NC|Robeson County|Shannon CDP|1702|0|5|Madsen|Riva|2998|New Jersey|F|Daughter|||12|108412 +3010|NC|Robeson County|Shannon CDP|1702|0|6|Madsen|Leanora|3007|NC|F|Daughter|||3|108413 + +3010|MI|Schoolcraft County|Hiawatha township|1703|0|1|Osberg|Mellisa|2952|Poland|F|Head|||58|108414 +3010|MI|Schoolcraft County|Hiawatha township|1703|0|2|Osberg|Tatum Syble|2984|Colorado|F|Daughter|||26|108415 +3010|MI|Schoolcraft County|Hiawatha township|1703|0|3|Osberg|Jazmine|2998|Wisconsin|F|Daughter|||12|108416 + +3010|NY|St. Lawrence County|Hermon village|1704|0|1|Birts|Jarod Cedrick|2937|Delaware|M|Head|||73|108417 +3010|NY|St. Lawrence County|Hermon village|1704|0|2|Birts|Teresa|2986|Virginia|F|Daughter|||24|108418 + +3010|NC|Craven County|River Bend town|1705|0|1|Baransky|Lyle Jerrell|2979|Washington|M|Head|||31|108419 +3010|NC|Craven County|River Bend town|1705|0|2|Baransky|Juli|2975|Virginia|F|Spouse|||35|108420 +3010|NC|Craven County|River Bend town|1705|0|3|Baransky|Jeromy|2995|Slovakia|M|Son|||15|108421 +3010|NC|Craven County|River Bend town|1705|0|4|Baransky|Young|2997|New Mexico|F|Daughter|||13|108422 +3010|NC|Craven County|River Bend town|1705|0|5|Baransky|Hee|3001|NC|F|Daughter|||9|108423 + +3010|TX|Dallas County|Sunnyvale town|1706|0|1|Grauel|Emory Kory|2975|Maine|M|Head|||35|108424 +3010|TX|Dallas County|Sunnyvale town|1706|0|2|Grauel|Katerine|2980|Nebraska|F|Spouse|||30|108425 +3010|TX|Dallas County|Sunnyvale town|1706|0|3|Grauel|Hans|3000|Denmark|M|Son|||10|108426 +3010|TX|Dallas County|Sunnyvale town|1706|0|4|Grauel|Jessie|3005|KS|M|Son|||5|108427 +3010|TX|Dallas County|Sunnyvale town|1706|0|5|Grauel|Thurman|3007|TX|M|Son|||3|108428 + +3010|KY|Jessamine County|Wilmore city|1707|0|1|Willenbrock|Chase Alonzo|2944|Belize|M|Head|||66|108429 +3010|KY|Jessamine County|Wilmore city|1707|0|2|Willenbrock|Dania|2985|Colombia|F|Daughter|||25|108430 +3010|KY|Jessamine County|Wilmore city|1707|0|3|Willenbrock|Colby|2987|Oregon|M|Son|||23|108431 +3010|KY|Jessamine County|Wilmore city|1707|0|4|Willenbrock|Bernardo Tim|2995|South Carolina|M|Son|||15|108432 +3010|KY|Jessamine County|Wilmore city|1707|0|5|Willenbrock|Rodolfo|3005|KY|M|Son|||5|108433 + +3010|NM|Grant County|Cobre CDP|1708|0|1|Morrison|Sheldon Felix|2938|Mayotte|M|Head|||72|108434 +3010|NM|Grant County|Cobre CDP|1708|0|2|Morrison|Jacqualine|2955|South Carolina|F|Spouse|||55|108435 +3010|NM|Grant County|Cobre CDP|1708|0|3|Morrison|Chung|2987|Massachusetts|M|Son|||23|108436 +3010|NM|Grant County|Cobre CDP|1708|0|4|Morrison|Delmer|2991|Belarus|M|Son|||19|108437 +3010|NM|Grant County|Cobre CDP|1708|0|5|Morrison|Spencer|2993|Illinois|M|Son|||17|108438 +3010|NM|Grant County|Cobre CDP|1708|0|6|Morrison|Lanita|2995|New Jersey|F|Daughter|||15|108439 +3010|NM|Grant County|Cobre CDP|1708|0|7|Morrison|Cleveland|2999|New York|M|Son|||11|108440 +3010|NM|Grant County|Cobre CDP|1708|0|8|Morrison|Debby Kattie|3001|NM|F|Daughter|||9|108441 +3010|NM|Grant County|Cobre CDP|1708|0|9|Morrison|Hai|3003|NM|M|Son|||7|108442 +3010|NM|Grant County|Cobre CDP|1708|0|10|Morrison|Leonel Dick|3009|NM|M|Son|||1|108443 + +3010|PA|Wyoming County|Washington township|1709|0|1|Courtemanche|Marlin Wilford|2974|Kansas|M|Head|||36|108444 +3010|PA|Wyoming County|Washington township|1709|0|2|Courtemanche|Kandace|2974|Rhode Island|F|Spouse|||36|108445 +3010|PA|Wyoming County|Washington township|1709|0|3|Courtemanche|Walter|2994|Oregon|F|Daughter|||16|108446 +3010|PA|Wyoming County|Washington township|1709|0|4|Courtemanche|Odilia|2998|Louisiana|F|Daughter|||12|108447 +3010|PA|Wyoming County|Washington township|1709|0|5|Courtemanche|Keli|3000|Kansas|F|Daughter|||10|108448 +3010|PA|Wyoming County|Washington township|1709|0|6|Courtemanche|Tommie|3001|OR|M|Son|||9|108449 + +3010|NY|Oneida County|New Hartford village|1710|0|1|Hose|Joey|2952|Gabon|M|Head|||58|108450 +3010|NY|Oneida County|New Hartford village|1710|0|2|Hose|Tammi|2962|New Jersey|F|Spouse|||48|108451 +3010|NY|Oneida County|New Hartford village|1710|0|3|Hose|Xuan|2982|Wyoming|F|Daughter|||28|108452 +3010|NY|Oneida County|New Hartford village|1710|0|4|Hose|Micah|2998|Connecticut|M|Son|||12|108453 +3010|NY|Oneida County|New Hartford village|1710|0|5|Hose|Korey|3005|NY|M|Son|||5|108454 +3010|NY|Oneida County|New Hartford village|1710|0|6|Hose|Anna|3007|NY|F|Daughter|||3|108455 +3010|NY|Oneida County|New Hartford village|1710|0|7|Hose|Alexandra|3009|NY|F|Daughter|||1|108456 + +3010|WI|Waupaca County|Lebanon town|1711|0|1|Harvey|Malcom|2988|New York|M|Son|||22|108457 +3010|WI|Waupaca County|Lebanon town|1711|0|2|Harvey|Robert|2996|Cuba|M|Son|||14|108458 + +3010|IA|Wapello County|Agency city|1712|0|1|Roberts|Eloy Johnnie|2938|Alabama|M|Head|||72|108459 +3010|IA|Wapello County|Agency city|1712|0|2|Roberts|Casey|2984|Indiana|M|Son|||26|108460 +3010|IA|Wapello County|Agency city|1712|0|3|Roberts|Luna|2986|Vermont|F|Daughter|||24|108461 +3010|IA|Wapello County|Agency city|1712|0|4|Roberts|Garry|2994|Kentucky|M|Son|||16|108462 +3010|IA|Wapello County|Agency city|1712|0|5|Roberts|Ying|3000|Arkansas|F|Daughter|||10|108463 + +3010|PA|Potter County|Harrison township|1713|0|1|Alsandor|Keena|2964|Kansas|F|Head|||46|108464 +3010|PA|Potter County|Harrison township|1713|0|2|Alsandor|Dawna|2994|Louisiana|F|Daughter|||16|108465 + +3010|TX|Borden County|Gail CDP|1714|0|1|Smart|Herb Carlos|2970|Alabama|M|Head|||40|108466 +3010|TX|Borden County|Gail CDP|1714|0|2|Smart|Jude|2984|Wyoming|F|Spouse|||26|108467 +3010|TX|Borden County|Gail CDP|1714|0|3|Smart|Kendrick|3001|MN|M|Son|||9|108468 +3010|TX|Borden County|Gail CDP|1714|0|4|Smart|Loria|3003|MN|F|Daughter|||7|108469 +3010|TX|Borden County|Gail CDP|1714|0|5|Smart|Macy|3005|MN|F|Daughter|||5|108470 +3010|TX|Borden County|Gail CDP|1714|0|6|Smart|Pamella|3007|TX|F|Daughter|||3|108471 + +3010|TX|Callahan County|Putnam town|1715|0|1|Williams|Kip Neal|2945|Macau|M|Head|||65|108472 +3010|TX|Callahan County|Putnam town|1715|0|2|Williams|Eugenia Fermina|2966|Utah|F|Spouse|||44|108473 +3010|TX|Callahan County|Putnam town|1715|0|3|Williams|Kristopher|3001|TX|M|Son|||9|108474 +3010|TX|Callahan County|Putnam town|1715|0|4|Williams|Asa|3003|TX|M|Son|||7|108475 + +3010|AR|Boone County|South Lead Hill town|1716|0|1|Hilgert|Demarcus Mauro|2953|Oklahoma|M|Head|||57|108476 +3010|AR|Boone County|South Lead Hill town|1716|0|2|Hilgert|Clyde|2977|California|F|Spouse|||33|108477 +3010|AR|Boone County|South Lead Hill town|1716|0|3|Hilgert|Christen|2997|Illinois|F|Daughter|||13|108478 +3010|AR|Boone County|South Lead Hill town|1716|0|4|Hilgert|Candida|2999|North Dakota|F|Daughter|||11|108479 +3010|AR|Boone County|South Lead Hill town|1716|0|5|Hilgert|Andrew|3005|AR|M|Son|||5|108480 +3010|AR|Boone County|South Lead Hill town|1716|0|6|Hilgert|Vance|3009|AR|M|Son|||1|108481 + +3010|AZ|Apache County|Klagetoh CDP|1717|0|1|Kibble|Britt Damien|2954|Mali|M|Head|||56|108482 +3010|AZ|Apache County|Klagetoh CDP|1717|0|2|Kibble|Frederic|2986|Oklahoma|M|Son|||24|108483 +3010|AZ|Apache County|Klagetoh CDP|1717|0|3|Kibble|Edyth|2996|Utah|F|Daughter|||14|108484 +3010|AZ|Apache County|Klagetoh CDP|1717|0|4|Kibble|Elmer Ross|3000|Georgia|M|Son|||10|108485 + +3010|IN|Johnson County|Trafalgar town|1718|0|1|Voncannon|Dennis Hilton|2942|New Jersey|M|Head|||68|108486 +3010|IN|Johnson County|Trafalgar town|1718|0|2|Voncannon|Kamala|2954|Colorado|F|Spouse|||56|108487 +3010|IN|Johnson County|Trafalgar town|1718|0|3|Voncannon|Jefferey|2988|Illinois|M|Son|||22|108488 +3010|IN|Johnson County|Trafalgar town|1718|0|4|Voncannon|Karoline|3001|IN|F|Daughter|||9|108489 + +3010|IL|Williamson County|Colp village|1719|0|1|Thomas|Joey Raymond|2967|New Mexico|M|Head|||43|108490 +3010|IL|Williamson County|Colp village|1719|0|2|Thomas|Oliver|2986|Nevada|M|Son|||24|108491 +3010|IL|Williamson County|Colp village|1719|0|3|Thomas|Dante|2990|Virgin Islands, U.s.|M|Son|||20|108492 +3010|IL|Williamson County|Colp village|1719|0|4|Thomas|Ray|2996|Vanuatu|F|Daughter|||14|108493 + +3010|OK|Cleveland County|Noble city|1720|0|1|Lagroon|Patricia Willard|2958|Vermont|M|Head|||52|108494 +3010|OK|Cleveland County|Noble city|1720|0|2|Lagroon|Scot|2996|Sudan|M|Son|||14|108495 +3010|OK|Cleveland County|Noble city|1720|0|3|Lagroon|Tiffiny Cinderella|2998|Kansas|F|Daughter|||12|108496 + +3010|TX|Colorado County|Glidden CDP|1721|0|1|Pagan|Omar Millard|2964|Ohio|M|Head|||46|108497 +3010|TX|Colorado County|Glidden CDP|1721|0|2|Pagan|Echo|2962|Arkansas|F|Spouse|||48|108498 +3010|TX|Colorado County|Glidden CDP|1721|0|3|Pagan|Annamae Marge|3000|Wyoming|F|Daughter|||10|108499 + +3010|MO|Jackson County|Buckner city|1722|0|1|Hutto|Cordell Sal|2957|Utah|M|Head|||53|108500 +3010|MO|Jackson County|Buckner city|1722|0|2|Hutto|Tierra|2979|Nevada|F|Spouse|||31|108501 +3010|MO|Jackson County|Buckner city|1722|0|3|Hutto|Thomas|3001|MO|M|Son|||9|108502 +3010|MO|Jackson County|Buckner city|1722|0|4|Hutto|Rodrigo|3005|MO|M|Son|||5|108503 +3010|MO|Jackson County|Buckner city|1722|0|5|Hutto|Lore|3007|MO|F|Daughter|||3|108504 +3010|MO|Jackson County|Buckner city|1722|0|6|Hutto|Jackie|3009|MO|F|Daughter|||1|108505 + +3010|FL|Broward County|Dania Beach city|1723|0|1|Bibbs|Val Danilo|2971|Fiji|M|Head|||39|108506 +3010|FL|Broward County|Dania Beach city|1723|0|2|Bibbs|Marilyn|2980|Delaware|F|Spouse|||30|108507 +3010|FL|Broward County|Dania Beach city|1723|0|3|Bibbs|Renato|3001|FL|M|Son|||9|108508 +3010|FL|Broward County|Dania Beach city|1723|0|4|Bibbs|Zachery|3003|FL|M|Son|||7|108509 +3010|FL|Broward County|Dania Beach city|1723|0|5|Bibbs|Rana|3005|FL|F|Daughter|||5|108510 +3010|FL|Broward County|Dania Beach city|1723|0|6|Bibbs|Alecia|3007|FL|F|Daughter|||3|108511 + +3010|OK|Jefferson County|Terral town|1724|0|1|Southerland|Kerry Jack|2960|Massachusetts|M|Head|||50|108512 +3010|OK|Jefferson County|Terral town|1724|0|2|Southerland|Shavonda|2959|Virginia|F|Spouse|||51|108513 +3010|OK|Jefferson County|Terral town|1724|0|3|Southerland|Marisa|2985|Arkansas|F|Daughter|||25|108514 +3010|OK|Jefferson County|Terral town|1724|0|4|Southerland|Daryl|2987|Massachusetts|F|Daughter|||23|108515 +3010|OK|Jefferson County|Terral town|1724|0|5|Southerland|Son|2989|Panama|F|Daughter|||21|108516 +3010|OK|Jefferson County|Terral town|1724|0|6|Southerland|Clora Lakenya|2993|Nebraska|F|Daughter|||17|108517 +3010|OK|Jefferson County|Terral town|1724|0|7|Southerland|Randy|2995|Swaziland|M|Son|||15|108518 +3010|OK|Jefferson County|Terral town|1724|0|8|Southerland|Arie|2999|Louisiana|F|Daughter|||11|108519 +3010|OK|Jefferson County|Terral town|1724|0|9|Southerland|Aubrey|3001|OK|F|Daughter|||9|108520 + +3010|MI|Ionia County|Portland city|1725|0|1|Schabbing|Terrell Brett|2955|Alabama|M|Head|||55|108521 +3010|MI|Ionia County|Portland city|1725|0|2|Schabbing|Lewis Cassondra|2968|South Africa|F|Spouse|||42|108522 +3010|MI|Ionia County|Portland city|1725|0|3|Schabbing|Jess|2996|Massachusetts|M|Son|||14|108523 +3010|MI|Ionia County|Portland city|1725|0|4|Schabbing|Felicitas Alayna|3000|Romania|F|Daughter|||10|108524 +3010|MI|Ionia County|Portland city|1725|0|5|Schabbing|Shu|3007|MI|F|Daughter|||3|108525 + +3010|NY|Oneida County|New Hartford town|1726|0|1|Swanson|Fausto Gerard|2957|Arkansas|M|Head|||53|108526 +3010|NY|Oneida County|New Hartford town|1726|0|2|Swanson|Linnie|2978|Alabama|F|Spouse|||32|108527 +3010|NY|Oneida County|New Hartford town|1726|0|3|Swanson|Alden|3000|Missouri|M|Son|||10|108528 + +3010|WA|Whitman County|St. John town|1727|0|1|Brown|Edgar Malcom|2942|Pennsylvania|M|Head|||68|108529 +3010|WA|Whitman County|St. John town|1727|0|2|Brown|Annamaria|2944|Anguilla|F|Spouse|||66|108530 +3010|WA|Whitman County|St. John town|1727|0|3|Brown|Christina Edelmira|2998|North Carolina|F|Daughter|||12|108531 +3010|WA|Whitman County|St. John town|1727|0|4|Brown|Bonnie|3005|WA|F|Daughter|||5|108532 + +3010|PA|Adams County|Midway CDP|1728|0|1|Suryanarayana|Granville Hai|2966|Colorado|M|Head|||44|108533 +3010|PA|Adams County|Midway CDP|1728|0|2|Suryanarayana|Karri|2972|Hawaii|F|Spouse|||38|108534 +3010|PA|Adams County|Midway CDP|1728|0|3|Suryanarayana|Serina|2998|Arizona|F|Daughter|||12|108535 +3010|PA|Adams County|Midway CDP|1728|0|4|Suryanarayana|Blaine|3000|Iowa|M|Son|||10|108536 +3010|PA|Adams County|Midway CDP|1728|0|5|Suryanarayana|Lynsey|3001|PA|F|Daughter|||9|108537 +3010|PA|Adams County|Midway CDP|1728|0|6|Suryanarayana|Armando|3003|PA|M|Son|||7|108538 + +3010|OR|Jackson County|Eagle Point city|1729|0|1|Schwindt|Geri|2964|Maine|F|Head|||46|108539 +3010|OR|Jackson County|Eagle Point city|1729|0|2|Schwindt|Kurtis|2988|China|M|Son|||22|108540 +3010|OR|Jackson County|Eagle Point city|1729|0|3|Schwindt|Flossie|2990|Ohio|F|Daughter|||20|108541 +3010|OR|Jackson County|Eagle Point city|1729|0|4|Schwindt|Tod|2996|Oklahoma|M|Son|||14|108542 +3010|OR|Jackson County|Eagle Point city|1729|0|5|Schwindt|Jayna|3000|Arizona|F|Daughter|||10|108543 + +3010|OH|Williams County|Montpelier village|1730|0|1|Faggins|Hiram|2993|Delaware|M|Son|||17|108544 + +3010|FL|Orange County|Maitland city|1731|0|1|Jagow|Harvey Augustus|2977|Illinois|M|Head|||33|108545 + +3010|TX|Hall County|Estelline town|1732|0|1|Illas|Wallace Vernon|2976|North Dakota|M|Head|||34|108546 +3010|TX|Hall County|Estelline town|1732|0|2|Illas|Madelene|2999|Virginia|F|Daughter|||11|108547 + +3010|MI|Manistee County|Onekama village|1733|0|1|Dimitry|Mikel Kendrick|2958|Oregon|M|Head|||52|108548 +3010|MI|Manistee County|Onekama village|1733|0|2|Dimitry|Tequila Stacie|2974|Delaware|F|Daughter|||36|108549 +3010|MI|Manistee County|Onekama village|1733|0|3|Dimitry|Jed|2992|Minnesota|M|Son|||18|108550 + +3010|AZ|Apache County|Toyei CDP|1734|0|1|Mccrary|Forrest Hans|2937|Hawaii|M|Head|||73|108551 +3010|AZ|Apache County|Toyei CDP|1734|0|2|Mccrary|Hanh|2955|South Dakota|F|Spouse|||55|108552 +3010|AZ|Apache County|Toyei CDP|1734|0|3|Mccrary|Mavis|2985|Hawaii|F|Daughter|||25|108553 +3010|AZ|Apache County|Toyei CDP|1734|0|4|Mccrary|Timothy|2991|Alaska|F|Daughter|||19|108554 +3010|AZ|Apache County|Toyei CDP|1734|0|5|Mccrary|Bobbye|2997|Ohio|F|Daughter|||13|108555 +3010|AZ|Apache County|Toyei CDP|1734|0|6|Mccrary|Marybelle|2999|Nebraska|F|Daughter|||11|108556 +3010|AZ|Apache County|Toyei CDP|1734|0|7|Mccrary|Deedra|3005|AZ|F|Daughter|||5|108557 +3010|AZ|Apache County|Toyei CDP|1734|0|8|Mccrary|Mui|3009|AZ|F|Daughter|||1|108558 + +3010|IL|Lake County|Long Grove village|1735|0|1|Carbone|Bret Cruz|2943|Chile|M|Head|||67|108559 +3010|IL|Lake County|Long Grove village|1735|0|2|Carbone|Shenika|2945|Togo|F|Spouse|||65|108560 +3010|IL|Lake County|Long Grove village|1735|0|3|Carbone|Jacquline Cassidy|2967|Kansas|F|Daughter|||43|108561 +3010|IL|Lake County|Long Grove village|1735|0|4|Carbone|Mao|3003|IL|F|Daughter|||7|108562 +3010|IL|Lake County|Long Grove village|1735|0|5|Carbone|Gil|3009|IL|M|Son|||1|108563 + +3010|PA|Allegheny County|East Pittsburgh borough|1736|0|1|Gebbie|Young Edgardo|2959|North Carolina|M|Head|||51|108564 +3010|PA|Allegheny County|East Pittsburgh borough|1736|0|2|Gebbie|Debra|2999|Pennsylvania|F|Daughter|||11|108565 + +3010|WI|Marinette County|Crivitz village|1737|0|1|Guerrette|Angelika|2941|Afghanistan|F|Head|||69|108566 +3010|WI|Marinette County|Crivitz village|1737|0|2|Guerrette|Erik Moshe|2963|Nevada|M|Son|||47|108567 +3010|WI|Marinette County|Crivitz village|1737|0|3|Guerrette|Felecia|2967|New Jersey|F|Daughter|||43|108568 +3010|WI|Marinette County|Crivitz village|1737|0|4|Guerrette|Santiago|2973|Montenegro|M|Son|||37|108569 +3010|WI|Marinette County|Crivitz village|1737|0|5|Guerrette|Mallory Jodi|2997|Maryland|F|Daughter|||13|108570 + +3010|TX|Brazoria County|Manvel city|1738|0|1|Straseskie|Dewey Gavin|2957|Indiana|M|Head|||53|108571 +3010|TX|Brazoria County|Manvel city|1738|0|2|Straseskie|Betty|2966|Illinois|F|Spouse|||44|108572 +3010|TX|Brazoria County|Manvel city|1738|0|3|Straseskie|Allan|2986|Maryland|M|Son|||24|108573 +3010|TX|Brazoria County|Manvel city|1738|0|4|Straseskie|Treva Dominique|2998|Kiribati|F|Daughter|||12|108574 +3010|TX|Brazoria County|Manvel city|1738|0|5|Straseskie|Un|3000|Arizona|F|Daughter|||10|108575 +3010|TX|Brazoria County|Manvel city|1738|0|6|Straseskie|Shawanda|3001|TX|F|Daughter|||9|108576 +3010|TX|Brazoria County|Manvel city|1738|0|7|Straseskie|Chia|3007|TX|F|Daughter|||3|108577 +3010|TX|Brazoria County|Manvel city|1738|0|8|Straseskie|Margorie|3009|TX|F|Daughter|||1|108578 + +3010|MS|Hinds County|Utica town|1739|0|1|Taylor|Gene Antwan|2971|Sweden|M|Head|||39|108579 +3010|MS|Hinds County|Utica town|1739|0|2|Taylor|Nicolle|2996|Utah|F|Daughter|||14|108580 +3010|MS|Hinds County|Utica town|1739|0|3|Taylor|Doyle|3001|MS|M|Son|||9|108581 +3010|MS|Hinds County|Utica town|1739|0|4|Taylor|Joi|3007|MS|F|Daughter|||3|108582 + +3010|MS|Montgomery County|Winona city|1740|0|1|West|Myron Antonia|2938|Maine|M|Head|||72|108583 +3010|MS|Montgomery County|Winona city|1740|0|2|West|Reynalda|2938|Michigan|F|Spouse|||72|108584 +3010|MS|Montgomery County|Winona city|1740|0|3|West|Emile|2962|Delaware|M|Son|||48|108585 +3010|MS|Montgomery County|Winona city|1740|0|4|West|Huong|2994|Florida|F|Daughter|||16|108586 +3010|MS|Montgomery County|Winona city|1740|0|5|West|Doug|2998|Wisconsin|M|Son|||12|108587 +3010|MS|Montgomery County|Winona city|1740|0|6|West|Retta|3000|Wisconsin|F|Daughter|||10|108588 +3010|MS|Montgomery County|Winona city|1740|0|7|West|Harriett|3007|MS|F|Daughter|||3|108589 + +3010|IL|Macoupin County|Palmyra village|1741|0|1|Moreno|Granville Marlon|2953|Colorado|M|Head|||57|108590 +3010|IL|Macoupin County|Palmyra village|1741|0|2|Moreno|Socorro|2972|Idaho|F|Spouse|||38|108591 +3010|IL|Macoupin County|Palmyra village|1741|0|3|Moreno|Angelita|2992|Pennsylvania|F|Daughter|||18|108592 +3010|IL|Macoupin County|Palmyra village|1741|0|4|Moreno|Matthew|2998|Maryland|F|Daughter|||12|108593 +3010|IL|Macoupin County|Palmyra village|1741|0|5|Moreno|Stephane|3003|IL|F|Daughter|||7|108594 +3010|IL|Macoupin County|Palmyra village|1741|0|6|Moreno|Guy|3005|IL|M|Son|||5|108595 + +3010|GA|Lamar County|Milner city|1742|0|1|Alsheimer|Kyong|2967|China|F|Spouse|||43|108596 +3010|GA|Lamar County|Milner city|1742|0|2|Alsheimer|Martin|2995|Greece|M|Son|||15|108597 +3010|GA|Lamar County|Milner city|1742|0|3|Alsheimer|Lacey|3009|GA|F|Daughter|||1|108598 + +3010|PA|Indiana County|Armstrong township|1743|0|1|Mckellop|Vicente Willie|2971|Florida|M|Head|||39|108599 +3010|PA|Indiana County|Armstrong township|1743|0|2|Mckellop|Pilar|2995|Indiana|F|Daughter|||15|108600 +3010|PA|Indiana County|Armstrong township|1743|0|3|Mckellop|Lakeesha|2997|Anguilla|F|Daughter|||13|108601 + +3010|WI|Waukesha County|Waukesha town|1744|0|1|Kelm|Nolan|2947|Massachusetts|M|Head|||63|108602 +3010|WI|Waukesha County|Waukesha town|1744|0|2|Kelm|Nyla|2944|Botswana|F|Spouse|||66|108603 +3010|WI|Waukesha County|Waukesha town|1744|0|3|Kelm|Dorian Eulah|2970|Missouri|F|Daughter|||40|108604 +3010|WI|Waukesha County|Waukesha town|1744|0|4|Kelm|Laura|2988|Utah|F|Daughter|||22|108605 +3010|WI|Waukesha County|Waukesha town|1744|0|5|Kelm|Freddie|2990|Ohio|M|Son|||20|108606 +3010|WI|Waukesha County|Waukesha town|1744|0|6|Kelm|Audrie|2996|Maine|F|Daughter|||14|108607 +3010|WI|Waukesha County|Waukesha town|1744|0|7|Kelm|Lasandra|3003|WI|F|Daughter|||7|108608 +3010|WI|Waukesha County|Waukesha town|1744|0|8|Kelm|Tad|3005|WI|M|Son|||5|108609 + +3010|MS|Tippah County|Walnut town|1745|0|1|Fiotodimitrak|Alphonse Angelo|2941|Indiana|M|Head|||69|108610 +3010|MS|Tippah County|Walnut town|1745|0|2|Fiotodimitrak|Vernita|2962|Oregon|F|Spouse|||48|108611 +3010|MS|Tippah County|Walnut town|1745|0|3|Fiotodimitrak|Willian|2996|Kansas|M|Son|||14|108612 + +3010|MN|Cass County|Torrey township|1746|0|1|Massey|Alejandro Major|2962|Mississippi|M|Head|||48|108613 +3010|MN|Cass County|Torrey township|1746|0|2|Massey|Earle|3000|Wisconsin|M|Son|||10|108614 +3010|MN|Cass County|Torrey township|1746|0|3|Massey|Hilary|3005|MO|F|Daughter|||5|108615 +3010|MN|Cass County|Torrey township|1746|0|4|Massey|Elvin|3007|MN|M|Son|||3|108616 +3010|MN|Cass County|Torrey township|1746|0|5|Massey|Jerome|3009|MN|M|Son|||1|108617 + +3010|PA|Somerset County|Windber borough|1747|0|1|Miles|Pierre Terrence|2967|Arizona|M|Head|||43|108618 +3010|PA|Somerset County|Windber borough|1747|0|2|Miles|Darin|2994|Louisiana|M|Son|||16|108619 +3010|PA|Somerset County|Windber borough|1747|0|3|Miles|Johnnie|2996|Afghanistan|M|Son|||14|108620 +3010|PA|Somerset County|Windber borough|1747|0|4|Miles|Sang|3000|Arkansas|F|Daughter|||10|108621 +3010|PA|Somerset County|Windber borough|1747|0|5|Miles|Dedra|3001|PA|F|Daughter|||9|108622 +3010|PA|Somerset County|Windber borough|1747|0|6|Miles|Rogelio|3007|PA|M|Son|||3|108623 +3010|PA|Somerset County|Windber borough|1747|0|7|Miles|Brendon|3009|PA|M|Son|||1|108624 + +3010|PA|Delaware County|Ridley township|1748|0|1|Auch|Jared Chang|2951|North Dakota|M|Head|||59|108625 +3010|PA|Delaware County|Ridley township|1748|0|2|Auch|Brooks|2998|Delaware|M|Son|||12|108626 +3010|PA|Delaware County|Ridley township|1748|0|3|Auch|Josefina|3000|Maine|F|Daughter|||10|108627 + +3010|KY|McLean County|Calhoun city|1749|0|1|Sermeno|Gonzalo Monroe|2962|Virginia|M|Head|||48|108628 +3010|KY|McLean County|Calhoun city|1749|0|2|Sermeno|Kristi|2981|North Dakota|F|Daughter|||29|108629 +3010|KY|McLean County|Calhoun city|1749|0|3|Sermeno|Kattie|2989|Morocco|F|Daughter|||21|108630 +3010|KY|McLean County|Calhoun city|1749|0|4|Sermeno|Hailey|2991|California|F|Daughter|||19|108631 +3010|KY|McLean County|Calhoun city|1749|0|5|Sermeno|Isiah|2995|Florida|M|Son|||15|108632 + +3010|RI|Kent County|West Warwick town|1750|0|1|Cuckler|Brooks|2979|Kentucky|M|Head|||31|108633 +3010|RI|Kent County|West Warwick town|1750|0|2|Cuckler|Cecily|2984|Nebraska|F|Spouse|||26|108634 +3010|RI|Kent County|West Warwick town|1750|0|3|Cuckler|Gita|3003|RI|F|Daughter|||7|108635 +3010|RI|Kent County|West Warwick town|1750|0|4|Cuckler|Desirae|3005|RI|F|Daughter|||5|108636 +3010|RI|Kent County|West Warwick town|1750|0|5|Cuckler|Beatris|3007|RI|F|Daughter|||3|108637 + +3010|NE|Cherry County|Nenzel village|1751|0|1|Gary|Ramiro Zackary|2954|Rhode Island|M|Head|||56|108638 +3010|NE|Cherry County|Nenzel village|1751|0|2|Gary|Lucile|2955|Colorado|F|Spouse|||55|108639 +3010|NE|Cherry County|Nenzel village|1751|0|3|Gary|Ulrike|2981|Michigan|F|Daughter|||29|108640 +3010|NE|Cherry County|Nenzel village|1751|0|4|Gary|Rosendo|2983|North Carolina|M|Son|||27|108641 +3010|NE|Cherry County|Nenzel village|1751|0|5|Gary|Benita|2995|Alaska|F|Daughter|||15|108642 +3010|NE|Cherry County|Nenzel village|1751|0|6|Gary|Joesph|3003|NE|M|Son|||7|108643 +3010|NE|Cherry County|Nenzel village|1751|0|7|Gary|Bettina|3007|NE|F|Daughter|||3|108644 + +3010|WI|Polk County|Frederic village|1752|0|1|Lusk|Jerald Eusebio|2953|Connecticut|M|Head|||57|108645 +3010|WI|Polk County|Frederic village|1752|0|2|Lusk|Doreatha|2952|Russian Federation|F|Spouse|||58|108646 +3010|WI|Polk County|Frederic village|1752|0|3|Lusk|Allen|2972|Alaska|M|Son|||38|108647 +3010|WI|Polk County|Frederic village|1752|0|4|Lusk|Florinda|2994|California|F|Daughter|||16|108648 +3010|WI|Polk County|Frederic village|1752|0|5|Lusk|Winston|3007|WI|M|Son|||3|108649 + +3010|PA|Clinton County|South Renovo borough|1753|0|1|Krumbach|Floyd Dorsey|2956|Western Sahara|M|Head|||54|108650 +3010|PA|Clinton County|South Renovo borough|1753|0|2|Krumbach|Vella Vania|2971|Nevada|F|Spouse|||39|108651 +3010|PA|Clinton County|South Renovo borough|1753|0|3|Krumbach|Quinn|2991|Utah|F|Daughter|||19|108652 +3010|PA|Clinton County|South Renovo borough|1753|0|4|Krumbach|Maximo|3003|PA|M|Son|||7|108653 +3010|PA|Clinton County|South Renovo borough|1753|0|5|Krumbach|Dana|3007|PA|M|Son|||3|108654 +3010|PA|Clinton County|South Renovo borough|1753|0|6|Krumbach|Bob Berry|3009|PA|M|Son|||1|108655 + +3010|ME|Hancock County|Marshall Island UT|1754|0|1|Maiava|Noriko|2955|Kansas|F|Head|||55|108656 +3010|ME|Hancock County|Marshall Island UT|1754|0|2|Maiava|Anthony|2975|Alaska|M|Son|||35|108657 +3010|ME|Hancock County|Marshall Island UT|1754|0|3|Maiava|Harland|2977|Wyoming|M|Son|||33|108658 +3010|ME|Hancock County|Marshall Island UT|1754|0|4|Maiava|Michelle Ailene|2989|Samoa|F|Daughter|||21|108659 +3010|ME|Hancock County|Marshall Island UT|1754|0|5|Maiava|Christian|2993|North Carolina|M|Son|||17|108660 + +3010|NC|Johnston County|Selma town|1755|0|1|Windfield|Arlean|2945|Wisconsin|F|Head|||65|108661 +3010|NC|Johnston County|Selma town|1755|0|2|Windfield|Christian|2987|Vermont|M|Son|||23|108662 +3010|NC|Johnston County|Selma town|1755|0|3|Windfield|Lacresha Velia|2989|Nevada|F|Daughter|||21|108663 +3010|NC|Johnston County|Selma town|1755|0|4|Windfield|Rhett Christopher|2995|Kansas|M|Son|||15|108664 +3010|NC|Johnston County|Selma town|1755|0|5|Windfield|Jared|2997|Nebraska|M|Son|||13|108665 + +3010|CA|Lassen County|Patton Village CDP|1756|0|1|Wanca|Stefan Mohammed|2953|Netherlands|M|Head|||57|108666 +3010|CA|Lassen County|Patton Village CDP|1756|0|2|Wanca|January|2970|Delaware|F|Spouse|||40|108667 +3010|CA|Lassen County|Patton Village CDP|1756|0|3|Wanca|Jacob|2992|Mexico|M|Son|||18|108668 +3010|CA|Lassen County|Patton Village CDP|1756|0|4|Wanca|Kenny|2996|Minnesota|M|Son|||14|108669 +3010|CA|Lassen County|Patton Village CDP|1756|0|5|Wanca|Sherita|2998|South Carolina|F|Daughter|||12|108670 +3010|CA|Lassen County|Patton Village CDP|1756|0|6|Wanca|Alberta|3001|CA|F|Daughter|||9|108671 +3010|CA|Lassen County|Patton Village CDP|1756|0|7|Wanca|Kristie|3003|CA|F|Daughter|||7|108672 + +3010|OR|Jackson County|Trail CDP|1757|0|1|Chenard|Josef Ernie|2963|Kentucky|M|Head|||47|108673 +3010|OR|Jackson County|Trail CDP|1757|0|2|Chenard|Elizbeth Delia|2972|Montana|F|Spouse|||38|108674 +3010|OR|Jackson County|Trail CDP|1757|0|3|Chenard|Refugio Bernardo|2998|Maryland|M|Son|||12|108675 +3010|OR|Jackson County|Trail CDP|1757|0|4|Chenard|Marcos|3000|Connecticut|M|Son|||10|108676 +3010|OR|Jackson County|Trail CDP|1757|0|5|Chenard|Herbert|3001|OR|M|Son|||9|108677 +3010|OR|Jackson County|Trail CDP|1757|0|6|Chenard|Le|3003|OR|F|Daughter|||7|108678 + +3010|MN|McLeod County|Silver Lake city|1758|0|1|Schaeffer|Fernando Randy|2969|Honduras|M|Head|||41|108679 +3010|MN|McLeod County|Silver Lake city|1758|0|2|Schaeffer|Carroll|2995|Maine|F|Daughter|||15|108680 +3010|MN|McLeod County|Silver Lake city|1758|0|3|Schaeffer|Rod|2999|West Virginia|M|Son|||11|108681 +3010|MN|McLeod County|Silver Lake city|1758|0|4|Schaeffer|Melba Collene|3007|MN|F|Daughter|||3|108682 + +3010|CA|Plumas County|Twain CDP|1759|0|1|Srey|Archie Wesley|2948|Arkansas|M|Head|||62|108683 +3010|CA|Plumas County|Twain CDP|1759|0|2|Srey|Demetrice|2965|Martinique|F|Spouse|||45|108684 +3010|CA|Plumas County|Twain CDP|1759|0|3|Srey|Joleen|2995|Montana|F|Daughter|||15|108685 +3010|CA|Plumas County|Twain CDP|1759|0|4|Srey|Allena|2999|Connecticut|F|Daughter|||11|108686 +3010|CA|Plumas County|Twain CDP|1759|0|5|Srey|Grant|3005|CA|M|Son|||5|108687 + +3010|IA|Dickinson County|Okoboji city|1760|0|1|Graffeo|Graig Denis|2957|Nigeria|M|Head|||53|108688 +3010|IA|Dickinson County|Okoboji city|1760|0|2|Graffeo|Clyde|2996|Ohio|F|Daughter|||14|108689 + +3010|NY|Madison County|Hamilton town|1761|0|1|Bodway|Ralph Arlen|2976|Idaho|M|Head|||34|108690 + +3010|ME|Hancock County|Marshall Island UT|1762|0|1|Rupp|Ferdinand Tuan|2942|Idaho|M|Head|||68|108691 +3010|ME|Hancock County|Marshall Island UT|1762|0|2|Rupp|Aleida|2938|New York|F|Spouse|||72|108692 +3010|ME|Hancock County|Marshall Island UT|1762|0|3|Rupp|Erasmo Trevor|2986|New Jersey|M|Son|||24|108693 +3010|ME|Hancock County|Marshall Island UT|1762|0|4|Rupp|Ramiro|2988|New Mexico|M|Son|||22|108694 +3010|ME|Hancock County|Marshall Island UT|1762|0|5|Rupp|Forrest|2998|Arizona|M|Son|||12|108695 +3010|ME|Hancock County|Marshall Island UT|1762|0|6|Rupp|Sulema|3000|East Timor|F|Daughter|||10|108696 +3010|ME|Hancock County|Marshall Island UT|1762|0|7|Rupp|Leonore|3001|ME|F|Daughter|||9|108697 + +3010|PA|Bedford County|New Paris borough|1763|0|1|Paul|Rene Nelson|2945|Pennsylvania|M|Head|||65|108698 +3010|PA|Bedford County|New Paris borough|1763|0|2|Paul|Valentine|2994|Kentucky|M|Son|||16|108699 +3010|PA|Bedford County|New Paris borough|1763|0|3|Paul|Jorge|2996|Massachusetts|M|Son|||14|108700 +3010|PA|Bedford County|New Paris borough|1763|0|4|Paul|Sandy|3000|West Virginia|M|Son|||10|108701 + +3010|PA|Jefferson County|Knox township|1764|0|1|Pelayo|Orval Mason|2964|Panama|M|Head|||46|108702 +3010|PA|Jefferson County|Knox township|1764|0|2|Pelayo|Shasta|2971|Kuwait|F|Spouse|||39|108703 +3010|PA|Jefferson County|Knox township|1764|0|3|Pelayo|Sharan|2999|Brunei Darussalam|F|Daughter|||11|108704 +3010|PA|Jefferson County|Knox township|1764|0|4|Pelayo|Harriett|3003|PA|F|Daughter|||7|108705 +3010|PA|Jefferson County|Knox township|1764|0|5|Pelayo|Lawerence|3009|PA|M|Son|||1|108706 + +3010|MS|Perry County|New Augusta town|1765|0|1|Goodrich|Ardell|2960|Yemen|F|Head|||50|108707 +3010|MS|Perry County|New Augusta town|1765|0|2|Goodrich|Hipolito|2982|Maryland|M|Son|||28|108708 + +3010|NC|Cumberland County|Eastover town|1766|0|1|Benge|Jessie Alvin|2945|New Mexico|M|Head|||65|108709 +3010|NC|Cumberland County|Eastover town|1766|0|2|Benge|Cory|2948|Vermont|F|Spouse|||62|108710 +3010|NC|Cumberland County|Eastover town|1766|0|3|Benge|Martin|2998|Texas|M|Son|||12|108711 +3010|NC|Cumberland County|Eastover town|1766|0|4|Benge|Marlene|3000|Tuvalu|F|Daughter|||10|108712 +3010|NC|Cumberland County|Eastover town|1766|0|5|Benge|Kirk|3005|NC|M|Son|||5|108713 +3010|NC|Cumberland County|Eastover town|1766|0|6|Benge|Norberto|3007|NC|M|Son|||3|108714 + +3010|WV|Logan County|Mitchell Heights town|1767|0|1|Pratcher|Leonia|2959|Comoros|F|Spouse|||51|108715 +3010|WV|Logan County|Mitchell Heights town|1767|0|2|Pratcher|Tamika Magan|3001|WV|F|Daughter|||9|108716 +3010|WV|Logan County|Mitchell Heights town|1767|0|3|Pratcher|Roberto|3005|WV|M|Son|||5|108717 + +3010|MA|Berkshire County|Lee CDP|1768|0|1|Salas|Peter Chase|2940|Saint Lucia|M|Head|||70|108718 +3010|MA|Berkshire County|Lee CDP|1768|0|2|Salas|Austin|2995|Moldova, Republic Of|M|Son|||15|108719 +3010|MA|Berkshire County|Lee CDP|1768|0|3|Salas|Myrtis|3001|MA|F|Daughter|||9|108720 +3010|MA|Berkshire County|Lee CDP|1768|0|4|Salas|Barbra|3003|MA|F|Daughter|||7|108721 +3010|MA|Berkshire County|Lee CDP|1768|0|5|Salas|Magan|3007|MA|F|Daughter|||3|108722 + +3010|LA|Tangipahoa Parish|Tickfaw village|1769|0|1|Jenkins|Lionel Shaun|2947|Texas|M|Head|||63|108723 +3010|LA|Tangipahoa Parish|Tickfaw village|1769|0|2|Jenkins|Ariane Mozella|2953|Guinea-bissau|F|Spouse|||57|108724 +3010|LA|Tangipahoa Parish|Tickfaw village|1769|0|3|Jenkins|Cyril|2987|California|M|Son|||23|108725 +3010|LA|Tangipahoa Parish|Tickfaw village|1769|0|4|Jenkins|Brandy|2995|Texas|F|Daughter|||15|108726 +3010|LA|Tangipahoa Parish|Tickfaw village|1769|0|5|Jenkins|Lawana Rona|2997|Ohio|F|Daughter|||13|108727 +3010|LA|Tangipahoa Parish|Tickfaw village|1769|0|6|Jenkins|Mica|3007|LA|F|Daughter|||3|108728 + +3010|FL|Gilchrist County|Trenton city|1770|0|1|Fykes|Alberto Diego|2951|Michigan|M|Head|||59|108729 +3010|FL|Gilchrist County|Trenton city|1770|0|2|Fykes|Emmaline|2960|Heard Island And Mcdonald Islands|F|Spouse|||50|108730 +3010|FL|Gilchrist County|Trenton city|1770|0|3|Fykes|Myong Hanna|2994|Bahamas|F|Daughter|||16|108731 +3010|FL|Gilchrist County|Trenton city|1770|0|4|Fykes|Zulma|2996|Indiana|F|Daughter|||14|108732 +3010|FL|Gilchrist County|Trenton city|1770|0|5|Fykes|Allena|3000|Indiana|F|Daughter|||10|108733 +3010|FL|Gilchrist County|Trenton city|1770|0|6|Fykes|Elina Mandy|3001|FL|F|Daughter|||9|108734 +3010|FL|Gilchrist County|Trenton city|1770|0|7|Fykes|Howard Domingo|3009|FL|M|Son|||1|108735 + +3010|FL|Martin County|Port Salerno CDP|1771|0|1|Berry|Mason Kory|2961|Maryland|M|Head|||49|108736 +3010|FL|Martin County|Port Salerno CDP|1771|0|2|Berry|Cornelia|2974|Missouri|F|Spouse|||36|108737 +3010|FL|Martin County|Port Salerno CDP|1771|0|3|Berry|Lanny|2998|Delaware|M|Son|||12|108738 +3010|FL|Martin County|Port Salerno CDP|1771|0|4|Berry|Jennell|3000|Tennessee|F|Daughter|||10|108739 +3010|FL|Martin County|Port Salerno CDP|1771|0|5|Berry|Deadra Jeanne|3003|FL|F|Daughter|||7|108740 +3010|FL|Martin County|Port Salerno CDP|1771|0|6|Berry|Stan|3005|FL|M|Son|||5|108741 +3010|FL|Martin County|Port Salerno CDP|1771|0|7|Berry|Abel|3007|FL|M|Son|||3|108742 + +3010|IL|Clinton County|Carlyle city|1772|0|1|Smith|Carrol|2967|Georgia|F|Spouse|||43|108743 +3010|IL|Clinton County|Carlyle city|1772|0|2|Smith|Tom|2999|Kentucky|M|Son|||11|108744 +3010|IL|Clinton County|Carlyle city|1772|0|3|Smith|Lanell|3005|IL|F|Daughter|||5|108745 + +3010|SC|Greenville County|Berea CDP|1773|0|1|Carbajal|Sammy Patricia|2940|Wyoming|M|Head|||70|108746 +3010|SC|Greenville County|Berea CDP|1773|0|2|Carbajal|Pennie|2965|North Dakota|F|Daughter|||45|108747 +3010|SC|Greenville County|Berea CDP|1773|0|3|Carbajal|George Efren|2971|Massachusetts|M|Son|||39|108748 +3010|SC|Greenville County|Berea CDP|1773|0|4|Carbajal|Vilma|2981|Maryland|F|Daughter|||29|108749 +3010|SC|Greenville County|Berea CDP|1773|0|5|Carbajal|Meagan|2991|Florida|F|Daughter|||19|108750 +3010|SC|Greenville County|Berea CDP|1773|0|6|Carbajal|Chasidy Niki|2997|Minnesota|F|Daughter|||13|108751 + +3010|SC|Greenwood County|Greenwood city|1774|0|1|Leonor|Britt Ed|2953|Qatar|M|Head|||57|108752 +3010|SC|Greenwood County|Greenwood city|1774|0|2|Leonor|Lorrie|2987|Montana|F|Daughter|||23|108753 +3010|SC|Greenwood County|Greenwood city|1774|0|3|Leonor|Luz|2993|Vermont|F|Daughter|||17|108754 +3010|SC|Greenwood County|Greenwood city|1774|0|4|Leonor|Houston|2999|Georgia|M|Son|||11|108755 + +3010|GA|Glynn County|St. Simons CDP|1775|0|1|Coalter|Riley Elisha|2951|Maine|M|Head|||59|108756 +3010|GA|Glynn County|St. Simons CDP|1775|0|2|Coalter|Kenneth|2989|Maine|F|Daughter|||21|108757 +3010|GA|Glynn County|St. Simons CDP|1775|0|3|Coalter|Andrea|2995|Vermont|M|Son|||15|108758 + +3010|KY|Lyon County|Kuttawa city|1776|0|1|Denardo|Augustine Allen|2958|Tennessee|M|Head|||52|108759 +3010|KY|Lyon County|Kuttawa city|1776|0|2|Denardo|Moshe|2996|Oregon|M|Son|||14|108760 + +3010|IA|Hamilton County|Kamrar city|1777|0|1|Duke|Tobias Benito|2941|West Virginia|M|Head|||69|108761 +3010|IA|Hamilton County|Kamrar city|1777|0|2|Duke|Lan|2988|Massachusetts|F|Daughter|||22|108762 +3010|IA|Hamilton County|Kamrar city|1777|0|3|Duke|Samual|2996|Kentucky|M|Son|||14|108763 +3010|IA|Hamilton County|Kamrar city|1777|0|4|Duke|Lamar|3000|Minnesota|M|Son|||10|108764 +3010|IA|Hamilton County|Kamrar city|1777|0|5|Duke|Silas Carrol|3001|IA|M|Son|||9|108765 +3010|IA|Hamilton County|Kamrar city|1777|0|6|Duke|Ruben|3003|IA|M|Son|||7|108766 + +3010|MI|Isabella County|Lincoln township|1778|0|1|Kothe|Kirby Jefferey|2960|Idaho|M|Head|||50|108767 +3010|MI|Isabella County|Lincoln township|1778|0|2|Kothe|Sanjuanita Francene|2959|United Kingdom|F|Spouse|||51|108768 +3010|MI|Isabella County|Lincoln township|1778|0|3|Kothe|Liane|2985|Venezuela|F|Daughter|||25|108769 +3010|MI|Isabella County|Lincoln township|1778|0|4|Kothe|Vaughn|2987|Wisconsin|M|Son|||23|108770 +3010|MI|Isabella County|Lincoln township|1778|0|5|Kothe|Leonore|2995|Ohio|F|Daughter|||15|108771 +3010|MI|Isabella County|Lincoln township|1778|0|6|Kothe|Cuc|2999|Oregon|F|Daughter|||11|108772 +3010|MI|Isabella County|Lincoln township|1778|0|7|Kothe|Jude|3003|MI|M|Son|||7|108773 +3010|MI|Isabella County|Lincoln township|1778|0|8|Kothe|Titus|3009|MI|M|Son|||1|108774 + +3010|ND|Nelson County|Aneta city|1779|0|1|Stokes|Frida|2984|Norfolk Island|F|Spouse|||26|108775 +3010|ND|Nelson County|Aneta city|1779|0|2|Stokes|Marvin|3001|ND|M|Son|||9|108776 +3010|ND|Nelson County|Aneta city|1779|0|3|Stokes|Maximina|3007|ND|F|Daughter|||3|108777 + +3010|IN|Parke County|Mecca town|1780|0|1|Johnston|Concha|2952|South Dakota|F|Head|||58|108778 +3010|IN|Parke County|Mecca town|1780|0|2|Johnston|Bonita|2998|Mozambique|F|Daughter|||12|108779 +3010|IN|Parke County|Mecca town|1780|0|3|Johnston|Tabatha|3000|Maine|F|Daughter|||10|108780 + +3010|FL|Hardee County|Fort Green Springs CDP|1781|0|1|Beard|Harold Ed|2980|Michigan|M|Head|||30|108781 +3010|FL|Hardee County|Fort Green Springs CDP|1781|0|2|Beard|Margy Bernarda|2996|Illinois|F|Daughter|||14|108782 +3010|FL|Hardee County|Fort Green Springs CDP|1781|0|3|Beard|Raymon|2998|Indiana|M|Son|||12|108783 + +3010|PA|Beaver County|Midland borough|1782|0|1|Redic|Sandy Kim|2969|Maine|M|Head|||41|108784 +3010|PA|Beaver County|Midland borough|1782|0|2|Redic|Magaly|2974|Idaho|F|Spouse|||36|108785 +3010|PA|Beaver County|Midland borough|1782|0|3|Redic|Necole|2998|Ohio|F|Daughter|||12|108786 +3010|PA|Beaver County|Midland borough|1782|0|4|Redic|Danyelle|3000|Wyoming|F|Daughter|||10|108787 +3010|PA|Beaver County|Midland borough|1782|0|5|Redic|Dillon|3001|PA|M|Son|||9|108788 +3010|PA|Beaver County|Midland borough|1782|0|6|Redic|Darwin|3007|PA|M|Son|||3|108789 + +3010|IA|Polk County|Saylorville CDP|1783|0|1|Steel|Silas|2943|Wisconsin|M|Head|||67|108790 +3010|IA|Polk County|Saylorville CDP|1783|0|2|Steel|Carina|2961|Maryland|F|Spouse|||49|108791 +3010|IA|Polk County|Saylorville CDP|1783|0|3|Steel|Kary|2989|Montana|F|Daughter|||21|108792 +3010|IA|Polk County|Saylorville CDP|1783|0|4|Steel|Ayanna|2997|South Dakota|F|Daughter|||13|108793 +3010|IA|Polk County|Saylorville CDP|1783|0|5|Steel|Loreen|3003|IA|F|Daughter|||7|108794 + +3010|IN|Spencer County|Rockport city|1784|0|1|Maginnis|Ernie Billie|2942|Montana|M|Head|||68|108795 +3010|IN|Spencer County|Rockport city|1784|0|2|Maginnis|Lecia|2964|Montana|F|Spouse|||46|108796 +3010|IN|Spencer County|Rockport city|1784|0|3|Maginnis|Phillis|2990|North Carolina|F|Daughter|||20|108797 +3010|IN|Spencer County|Rockport city|1784|0|4|Maginnis|Arden|2996|Nebraska|M|Son|||14|108798 +3010|IN|Spencer County|Rockport city|1784|0|5|Maginnis|Beverlee|3005|IN|F|Daughter|||5|108799 +3010|IN|Spencer County|Rockport city|1784|0|6|Maginnis|Ruben Olin|3007|IN|M|Son|||3|108800 +3010|IN|Spencer County|Rockport city|1784|0|7|Maginnis|Arden|3009|IN|M|Son|||1|108801 + +3010|PA|Crawford County|Woodcock township|1785|0|1|Black|Latonia|2959|Vermont|F|Spouse|||51|108802 +3010|PA|Crawford County|Woodcock township|1785|0|2|Black|Mark|2987|California|F|Daughter|||23|108803 +3010|PA|Crawford County|Woodcock township|1785|0|3|Black|Spencer|3001|PA|M|Son|||9|108804 +3010|PA|Crawford County|Woodcock township|1785|0|4|Black|Linnea|3003|PA|F|Daughter|||7|108805 + +3010|IN|Whitley County|Churubusco town|1786|0|1|Ramelli|Alphonse Neil|2981|New Jersey|M|Head|||29|108806 +3010|IN|Whitley County|Churubusco town|1786|0|2|Ramelli|Nicolette Queenie|2981|South Dakota|F|Spouse|||29|108807 +3010|IN|Whitley County|Churubusco town|1786|0|3|Ramelli|Erin|3005|IN|M|Son|||5|108808 +3010|IN|Whitley County|Churubusco town|1786|0|4|Ramelli|Mario|3007|IN|M|Son|||3|108809 +3010|IN|Whitley County|Churubusco town|1786|0|5|Ramelli|Larissa|3009|IN|F|Daughter|||1|108810 + +3010|IN|Huntington County|Andrews town|1787|0|1|Mitchel|Augustus Columbus|2950|Maine|M|Head|||60|108811 + +3010|CA|Sutter County|Trowbridge CDP|1788|0|1|Guzman|Freddie Jack|2961|Hawaii|M|Head|||49|108812 +3010|CA|Sutter County|Trowbridge CDP|1788|0|2|Guzman|Jackelyn|2980|Delaware|F|Spouse|||30|108813 +3010|CA|Sutter County|Trowbridge CDP|1788|0|3|Guzman|Ernest|3000|Liberia|M|Son|||10|108814 +3010|CA|Sutter County|Trowbridge CDP|1788|0|4|Guzman|Danuta|3001|CA|F|Daughter|||9|108815 +3010|CA|Sutter County|Trowbridge CDP|1788|0|5|Guzman|Alethea|3003|CA|F|Daughter|||7|108816 +3010|CA|Sutter County|Trowbridge CDP|1788|0|6|Guzman|Vella Gracia|3009|CA|F|Daughter|||1|108817 + +3010|KY|Marshall County|Calvert City city|1789|0|1|Kidd|Kyle Linwood|2964|Cambodia|M|Head|||46|108818 +3010|KY|Marshall County|Calvert City city|1789|0|2|Kidd|Lovetta Hue|2982|Kuwait|F|Spouse|||28|108819 +3010|KY|Marshall County|Calvert City city|1789|0|3|Kidd|Stacey|3001|KY|M|Son|||9|108820 +3010|KY|Marshall County|Calvert City city|1789|0|4|Kidd|Allene|3003|KY|F|Daughter|||7|108821 +3010|KY|Marshall County|Calvert City city|1789|0|5|Kidd|Bridgette|3007|KY|F|Daughter|||3|108822 +3010|KY|Marshall County|Calvert City city|1789|0|6|Kidd|Marshall|3009|KY|M|Son|||1|108823 + +3010|NM|Valencia County|Peralta town|1790|0|1|White|Lenard Leroy|2953|Montana|M|Head|||57|108824 +3010|NM|Valencia County|Peralta town|1790|0|2|White|Kiera|2969|Rhode Island|F|Spouse|||41|108825 +3010|NM|Valencia County|Peralta town|1790|0|3|White|Donny|2995|Cocos (keeling) Islands|M|Son|||15|108826 +3010|NM|Valencia County|Peralta town|1790|0|4|White|Dortha|2999|Virginia|F|Daughter|||11|108827 +3010|NM|Valencia County|Peralta town|1790|0|5|White|Herman Andy|3003|NM|M|Son|||7|108828 +3010|NM|Valencia County|Peralta town|1790|0|6|White|Scot|3005|NM|M|Son|||5|108829 +3010|NM|Valencia County|Peralta town|1790|0|7|White|Ivette|3009|NM|F|Daughter|||1|108830 + +3010|IN|Hendricks County|Danville town|1791|0|1|Garrett|Katharyn|2976|Arizona|F|Spouse|||34|108831 +3010|IN|Hendricks County|Danville town|1791|0|2|Garrett|Sallie|2996|Georgia|F|Daughter|||14|108832 +3010|IN|Hendricks County|Danville town|1791|0|3|Garrett|Angele|2998|Ghana|F|Daughter|||12|108833 +3010|IN|Hendricks County|Danville town|1791|0|4|Garrett|Luis Anita|3001|IN|F|Daughter|||9|108834 + +3010|CO|Weld County|Nunn town|1792|0|1|Myles|Lynwood Anderson|2941|Utah|M|Head|||69|108835 +3010|CO|Weld County|Nunn town|1792|0|2|Myles|Edna Therese|2943|North Dakota|F|Spouse|||67|108836 +3010|CO|Weld County|Nunn town|1792|0|3|Myles|Man Genia|2985|Oregon|F|Daughter|||25|108837 +3010|CO|Weld County|Nunn town|1792|0|4|Myles|Autumn|2993|North Dakota|F|Daughter|||17|108838 +3010|CO|Weld County|Nunn town|1792|0|5|Myles|Aaron Cesar|2999|Brunei Darussalam|M|Son|||11|108839 +3010|CO|Weld County|Nunn town|1792|0|6|Myles|Eleanor Antoinette|3001|CO|F|Daughter|||9|108840 +3010|CO|Weld County|Nunn town|1792|0|7|Myles|Theodore|3005|CO|M|Son|||5|108841 + +3010|IN|Delaware County|Eaton town|1793|0|1|Price|Bari Karri|2943|Nevada|F|Spouse|||67|108842 +3010|IN|Delaware County|Eaton town|1793|0|2|Price|Louise|2995|Kentucky|F|Daughter|||15|108843 +3010|IN|Delaware County|Eaton town|1793|0|3|Price|Emma|3001|IN|F|Daughter|||9|108844 +3010|IN|Delaware County|Eaton town|1793|0|4|Price|Cecelia|3007|IN|F|Daughter|||3|108845 + +3010|WI|Waukesha County|Pewaukee village|1794|0|1|Garza|Myron|2970|Illinois|M|Head|||40|108846 +3010|WI|Waukesha County|Pewaukee village|1794|0|2|Garza|Kate|2967|Rhode Island|F|Spouse|||43|108847 +3010|WI|Waukesha County|Pewaukee village|1794|0|3|Garza|Miguelina|2997|New Mexico|F|Daughter|||13|108848 +3010|WI|Waukesha County|Pewaukee village|1794|0|4|Garza|Earnest|3007|WI|M|Son|||3|108849 + +3010|GA|Glascock County|Gibson city|1795|0|1|Baadsgaard|Clair Salvatore|2960|Kansas|M|Head|||50|108850 +3010|GA|Glascock County|Gibson city|1795|0|2|Baadsgaard|Kamala Dannette|2998|Ecuador|F|Daughter|||12|108851 + +3010|TX|Chambers County|Stowell CDP|1796|0|1|Campbell|Cliff German|2959|North Dakota|M|Head|||51|108852 +3010|TX|Chambers County|Stowell CDP|1796|0|2|Campbell|Julianne|2990|Hungary|F|Daughter|||20|108853 +3010|TX|Chambers County|Stowell CDP|1796|0|3|Campbell|Tim|2998|Ohio|M|Son|||12|108854 + +3010|OH|Lawrence County|South Point village|1797|0|1|Starr|Katharyn|2967|Vermont|F|Head|||43|108855 +3010|OH|Lawrence County|South Point village|1797|0|2|Starr|Janel|2993|Saint Pierre And Miquelon|F|Daughter|||17|108856 +3010|OH|Lawrence County|South Point village|1797|0|3|Starr|Bobbie|2995|South Dakota|M|Son|||15|108857 + +3010|WI|Racine County|Wind Point village|1798|0|1|Roberson|Darrick Connie|2957|Vermont|M|Head|||53|108858 +3010|WI|Racine County|Wind Point village|1798|0|2|Roberson|Colene Suzette|2974|West Virginia|F|Spouse|||36|108859 +3010|WI|Racine County|Wind Point village|1798|0|3|Roberson|Korey|2996|Michigan|M|Son|||14|108860 +3010|WI|Racine County|Wind Point village|1798|0|4|Roberson|Shad Leonardo|2998|Massachusetts|M|Son|||12|108861 +3010|WI|Racine County|Wind Point village|1798|0|5|Roberson|Bert|3000|Arkansas|M|Son|||10|108862 +3010|WI|Racine County|Wind Point village|1798|0|6|Roberson|Linette|3005|WI|F|Daughter|||5|108863 +3010|WI|Racine County|Wind Point village|1798|0|7|Roberson|Woodrow Johnathon|3007|WI|M|Son|||3|108864 +3010|WI|Racine County|Wind Point village|1798|0|8|Roberson|Ryann|3009|WI|F|Daughter|||1|108865 + +3010|NC|Rowan County|Faith town|1799|0|1|Krakauer|Calvin Benedict|2937|New Mexico|M|Head|||73|108866 +3010|NC|Rowan County|Faith town|1799|0|2|Krakauer|George|2952|Michigan|F|Spouse|||58|108867 +3010|NC|Rowan County|Faith town|1799|0|3|Krakauer|Venessa Kristy|2982|South Dakota|F|Daughter|||28|108868 +3010|NC|Rowan County|Faith town|1799|0|4|Krakauer|Tierra|2996|Minnesota|F|Daughter|||14|108869 +3010|NC|Rowan County|Faith town|1799|0|5|Krakauer|Alejandro Wilfred|2998|Illinois|M|Son|||12|108870 +3010|NC|Rowan County|Faith town|1799|0|6|Krakauer|Kortney|3000|North Carolina|F|Daughter|||10|108871 +3010|NC|Rowan County|Faith town|1799|0|7|Krakauer|Kent|3003|NC|M|Son|||7|108872 + +3010|MN|St. Louis County|Beatty township|1800|0|1|Garcia|Cortez Willy|2966|Cote D'ivoire|M|Head|||44|108873 +3010|MN|St. Louis County|Beatty township|1800|0|2|Garcia|Zena|2994|North Dakota|F|Daughter|||16|108874 +3010|MN|St. Louis County|Beatty township|1800|0|3|Garcia|Hannelore|2996|Montana|F|Daughter|||14|108875 +3010|MN|St. Louis County|Beatty township|1800|0|4|Garcia|Sina|2998|Montana|F|Daughter|||12|108876 + +3010|MA|Barnstable County|Brewster CDP|1801|0|1|Clarke|Walter Brock|2954|Iowa|M|Head|||56|108877 +3010|MA|Barnstable County|Brewster CDP|1801|0|2|Clarke|Minerva|2996|Minnesota|F|Daughter|||14|108878 +3010|MA|Barnstable County|Brewster CDP|1801|0|3|Clarke|Lorretta Vella|3000|West Virginia|F|Daughter|||10|108879 + +3010|PR|San Sebastián Municipio|San Sebastián zona urbana|1802|0|1|Dantzler|Ricky Lyle|2972|Maryland|M|Head|||38|108880 +3010|PR|San Sebastián Municipio|San Sebastián zona urbana|1802|0|2|Dantzler|Silvana|2983|Uruguay|F|Spouse|||27|108881 +3010|PR|San Sebastián Municipio|San Sebastián zona urbana|1802|0|3|Dantzler|Bibi|3003|PR|F|Daughter|||7|108882 +3010|PR|San Sebastián Municipio|San Sebastián zona urbana|1802|0|4|Dantzler|Cynthia|3005|PR|F|Daughter|||5|108883 + +3010|VA|Chesterfield County|Meadowbrook CDP|1803|0|1|Alvord|Pierre Craig|2978|New Jersey|M|Head|||32|108884 +3010|VA|Chesterfield County|Meadowbrook CDP|1803|0|2|Alvord|Marylou Venita|2984|Connecticut|F|Spouse|||26|108885 +3010|VA|Chesterfield County|Meadowbrook CDP|1803|0|3|Alvord|Teresia Margherita|3001|VA|F|Daughter|||9|108886 +3010|VA|Chesterfield County|Meadowbrook CDP|1803|0|4|Alvord|Kris|3003|VA|F|Daughter|||7|108887 +3010|VA|Chesterfield County|Meadowbrook CDP|1803|0|5|Alvord|Jorge|3005|VA|M|Son|||5|108888 +3010|VA|Chesterfield County|Meadowbrook CDP|1803|0|6|Alvord|Donn|3009|VA|M|Son|||1|108889 + +3010|CA|Monterey County|Sand City city|1804|0|1|Sakry|Wyatt Kristofer|2945|Rhode Island|M|Head|||65|108890 +3010|CA|Monterey County|Sand City city|1804|0|2|Sakry|Cedric|2983|Washington|M|Son|||27|108891 +3010|CA|Monterey County|Sand City city|1804|0|3|Sakry|Lindsay Marty|2985|Mississippi|M|Son|||25|108892 +3010|CA|Monterey County|Sand City city|1804|0|4|Sakry|Nestor|2991|Hawaii|M|Son|||19|108893 +3010|CA|Monterey County|Sand City city|1804|0|5|Sakry|Dana|2997|Lithuania|M|Son|||13|108894 +3010|CA|Monterey County|Sand City city|1804|0|6|Sakry|Alonso|2999|Azerbaijan|M|Son|||11|108895 + +3010|NY|Schuyler County|Burdett village|1805|0|1|Guillory|Elidia|2972|Cuba|F|Head|||38|108896 +3010|NY|Schuyler County|Burdett village|1805|0|2|Guillory|Colby|2996|Wisconsin|M|Son|||14|108897 + +3010|CT|New Haven County|New Haven town|1806|0|1|Garbett|Dale Drew|2948|Indiana|M|Head|||62|108898 + +3010|PA|Lehigh County|New Tripoli CDP|1807|0|1|Wells|Hubert Alfonzo|2957|Texas|M|Head|||53|108899 +3010|PA|Lehigh County|New Tripoli CDP|1807|0|2|Wells|Debbra|2956|Wisconsin|F|Spouse|||54|108900 +3010|PA|Lehigh County|New Tripoli CDP|1807|0|3|Wells|Danial|2978|Greece|M|Son|||32|108901 +3010|PA|Lehigh County|New Tripoli CDP|1807|0|4|Wells|Luther|2996|Idaho|M|Son|||14|108902 +3010|PA|Lehigh County|New Tripoli CDP|1807|0|5|Wells|Adrianne|2998|Colorado|F|Daughter|||12|108903 +3010|PA|Lehigh County|New Tripoli CDP|1807|0|6|Wells|Dong|3001|PA|M|Son|||9|108904 +3010|PA|Lehigh County|New Tripoli CDP|1807|0|7|Wells|Grant|3003|PA|M|Son|||7|108905 +3010|PA|Lehigh County|New Tripoli CDP|1807|0|8|Wells|Nigel Jamaal|3005|PA|M|Son|||5|108906 + +3010|TX|Clay County|Dean city|1808|0|1|Niehoff|Modesto|2980|Arkansas|M|Head|||30|108907 +3010|TX|Clay County|Dean city|1808|0|2|Niehoff|Elma|2983|Vermont|F|Spouse|||27|108908 +3010|TX|Clay County|Dean city|1808|0|3|Niehoff|Maia|3001|TX|F|Daughter|||9|108909 +3010|TX|Clay County|Dean city|1808|0|4|Niehoff|Coy|3003|TX|M|Son|||7|108910 +3010|TX|Clay County|Dean city|1808|0|5|Niehoff|Patrick|3005|TX|M|Son|||5|108911 +3010|TX|Clay County|Dean city|1808|0|6|Niehoff|Tommy|3007|TX|M|Son|||3|108912 + +3010|MN|Marshall County|Moose River township|1809|0|1|Froneberger|Jean Shaun|2973|Ohio|M|Head|||37|108913 +3010|MN|Marshall County|Moose River township|1809|0|2|Froneberger|Rubie|2970|Oklahoma|F|Spouse|||40|108914 +3010|MN|Marshall County|Moose River township|1809|0|3|Froneberger|Walker|3001|MN|M|Son|||9|108915 +3010|MN|Marshall County|Moose River township|1809|0|4|Froneberger|Myrtle|3003|MN|F|Daughter|||7|108916 + +3010|IN|Jay County|Redkey town|1810|0|1|Shedden|Jae Kirk|2960|Connecticut|M|Head|||50|108917 +3010|IN|Jay County|Redkey town|1810|0|2|Shedden|Crista Fred|2960|Louisiana|F|Spouse|||50|108918 +3010|IN|Jay County|Redkey town|1810|0|3|Shedden|Fernando|3000|Texas|M|Son|||10|108919 +3010|IN|Jay County|Redkey town|1810|0|4|Shedden|Beatriz|3003|NJ|F|Daughter|||7|108920 + +3010|MS|Quitman County|Darling CDP|1811|0|1|Chambers|Bert Sid|2964|Wisconsin|M|Head|||46|108921 +3010|MS|Quitman County|Darling CDP|1811|0|2|Chambers|Anneliese Gabriele|2998|South Dakota|F|Daughter|||12|108922 +3010|MS|Quitman County|Darling CDP|1811|0|3|Chambers|Elbert|3000|Maldives|M|Son|||10|108923 + +3010|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|1|Cavagnaro|Michale Diego|2947|Arkansas|M|Head|||63|108924 +3010|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|2|Cavagnaro|Lorine|2962|Brunei Darussalam|F|Spouse|||48|108925 +3010|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|3|Cavagnaro|Bruce|2990|Kyrgyzstan|M|Son|||20|108926 +3010|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|4|Cavagnaro|Ying|3000|Iowa|F|Daughter|||10|108927 +3010|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|5|Cavagnaro|Marcellus|3003|TX|M|Son|||7|108928 +3010|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|6|Cavagnaro|Caridad|3007|TX|F|Daughter|||3|108929 +3010|TX|Comal County, Guadalupe County|New Braunfels city|1812|0|7|Cavagnaro|Eladia|3009|TX|F|Daughter|||1|108930 + +3010|MS|Prentiss County|Booneville city|1813|0|1|Stains|Columbus|2945|Wyoming|M|Head|||65|108931 +3010|MS|Prentiss County|Booneville city|1813|0|2|Stains|Arnita|2957|Turkey|F|Spouse|||53|108932 +3010|MS|Prentiss County|Booneville city|1813|0|3|Stains|Hank|2995|Texas|M|Son|||15|108933 +3010|MS|Prentiss County|Booneville city|1813|0|4|Stains|Eldon|3003|MS|M|Son|||7|108934 + +3010|MI|Washtenaw County|Saline township|1814|0|1|Pacini|Long Reid|2968|Tennessee|M|Head|||42|108935 + +3010|CA|Marin County|Fairfax town|1815|0|1|Clewes|Melvin Charles|2938|Ohio|M|Head|||72|108936 +3010|CA|Marin County|Fairfax town|1815|0|2|Clewes|Melodie|2961|Wisconsin|F|Spouse|||49|108937 +3010|CA|Marin County|Fairfax town|1815|0|3|Clewes|Alaina|2989|North Carolina|F|Daughter|||21|108938 +3010|CA|Marin County|Fairfax town|1815|0|4|Clewes|Alline|2997|Maine|F|Daughter|||13|108939 +3010|CA|Marin County|Fairfax town|1815|0|5|Clewes|Cherry|3001|CA|F|Daughter|||9|108940 +3010|CA|Marin County|Fairfax town|1815|0|6|Clewes|Warner|3003|CA|M|Son|||7|108941 +3010|CA|Marin County|Fairfax town|1815|0|7|Clewes|Darby|3005|CA|F|Daughter|||5|108942 + +3010|NH|Rockingham County|Hampton town|1816|0|1|Moore|Lenard Wayne|2965|Tennessee|M|Head|||45|108943 +3010|NH|Rockingham County|Hampton town|1816|0|2|Moore|Paul|2970|South Carolina|F|Spouse|||40|108944 +3010|NH|Rockingham County|Hampton town|1816|0|3|Moore|Von|2990|Maine|M|Son|||20|108945 +3010|NH|Rockingham County|Hampton town|1816|0|4|Moore|Velda Terisa|2998|Colorado|F|Daughter|||12|108946 +3010|NH|Rockingham County|Hampton town|1816|0|5|Moore|Cordell|3001|PA|M|Son|||9|108947 +3010|NH|Rockingham County|Hampton town|1816|0|6|Moore|Delana|3003|PA|F|Daughter|||7|108948 +3010|NH|Rockingham County|Hampton town|1816|0|7|Moore|Bev|3007|NH|F|Daughter|||3|108949 +3010|NH|Rockingham County|Hampton town|1816|0|8|Moore|Benito|3009|NH|M|Son|||1|108950 + +3010|ND|Stark County|Richardton city|1817|0|1|Lee|Nathanael Jeffery|2948|Massachusetts|M|Head|||62|108951 +3010|ND|Stark County|Richardton city|1817|0|2|Lee|Sherly|2969|Oregon|F|Spouse|||41|108952 +3010|ND|Stark County|Richardton city|1817|0|3|Lee|Wilbert|2995|Arkansas|M|Son|||15|108953 +3010|ND|Stark County|Richardton city|1817|0|4|Lee|Will|2999|Montana|M|Son|||11|108954 +3010|ND|Stark County|Richardton city|1817|0|5|Lee|Javier|3005|ND|M|Son|||5|108955 + +3010|NJ|Ocean County|Seaside Park borough|1818|0|1|Eber|Tomas Monty|2976|Kosovo|M|Head|||34|108956 +3010|NJ|Ocean County|Seaside Park borough|1818|0|2|Eber|Adrienne|2982|South Carolina|F|Spouse|||28|108957 +3010|NJ|Ocean County|Seaside Park borough|1818|0|3|Eber|Delmar|3001|NJ|M|Son|||9|108958 +3010|NJ|Ocean County|Seaside Park borough|1818|0|4|Eber|Ernesto|3003|NJ|M|Son|||7|108959 +3010|NJ|Ocean County|Seaside Park borough|1818|0|5|Eber|Wilford|3007|NJ|M|Son|||3|108960 +3010|NJ|Ocean County|Seaside Park borough|1818|0|6|Eber|Rene|3009|NJ|F|Daughter|||1|108961 + +3010|PA|Adams County|Aspers CDP|1819|0|1|Bollier|Randell Rico|2941|Michigan|M|Head|||69|108962 +3010|PA|Adams County|Aspers CDP|1819|0|2|Bollier|Lilli Daniela|2937|Minnesota|F|Spouse|||73|108963 +3010|PA|Adams County|Aspers CDP|1819|0|3|Bollier|Maryrose|2981|Delaware|F|Daughter|||29|108964 +3010|PA|Adams County|Aspers CDP|1819|0|4|Bollier|Deangelo Bill|2985|Michigan|M|Son|||25|108965 + +3010|GA|Barrow County|Bethlehem town|1820|0|1|Sanjuan|Theo Horace|2978|Ohio|M|Head|||32|108966 +3010|GA|Barrow County|Bethlehem town|1820|0|2|Sanjuan|Remona Ariane|2976|Missouri|F|Spouse|||34|108967 +3010|GA|Barrow County|Bethlehem town|1820|0|3|Sanjuan|Rose|2996|Michigan|F|Daughter|||14|108968 +3010|GA|Barrow County|Bethlehem town|1820|0|4|Sanjuan|Gerda|3001|GA|F|Daughter|||9|108969 +3010|GA|Barrow County|Bethlehem town|1820|0|5|Sanjuan|Kenneth|3003|GA|F|Daughter|||7|108970 + +3010|UT|Weber County|Uintah town|1821|0|1|Conway|Gregory Rod|2947|Alaska|M|Head|||63|108971 +3010|UT|Weber County|Uintah town|1821|0|2|Conway|Cruz|2984|Virginia|M|Son|||26|108972 +3010|UT|Weber County|Uintah town|1821|0|3|Conway|Juan|2996|Washington|M|Son|||14|108973 +3010|UT|Weber County|Uintah town|1821|0|4|Conway|Yan|3005|UT|F|Daughter|||5|108974 + +3010|OK|Atoka County|Stringtown town|1822|0|1|Richardson|Jonathan Loren|2967|Benin|M|Head|||43|108975 +3010|OK|Atoka County|Stringtown town|1822|0|2|Richardson|Shenika Kayleen|2990|Iowa|F|Daughter|||20|108976 +3010|OK|Atoka County|Stringtown town|1822|0|3|Richardson|Carlyn|2996|Uganda|F|Daughter|||14|108977 +3010|OK|Atoka County|Stringtown town|1822|0|4|Richardson|Sanford|2998|Pennsylvania|M|Son|||12|108978 +3010|OK|Atoka County|Stringtown town|1822|0|5|Richardson|Ezra|3001|OK|M|Son|||9|108979 +3010|OK|Atoka County|Stringtown town|1822|0|6|Richardson|Benedict|3005|OK|M|Son|||5|108980 +3010|OK|Atoka County|Stringtown town|1822|0|7|Richardson|Tyrone Benito|3009|OK|M|Son|||1|108981 + +3010|MA|Worcester County|East Brookfield town|1823|0|1|Jobe|Jamel Silas|2953|Kansas|M|Head|||57|108982 +3010|MA|Worcester County|East Brookfield town|1823|0|2|Jobe|Consuelo|2995|Florida|F|Daughter|||15|108983 +3010|MA|Worcester County|East Brookfield town|1823|0|3|Jobe|Hollis|2997|Pakistan|F|Daughter|||13|108984 +3010|MA|Worcester County|East Brookfield town|1823|0|4|Jobe|Addie Marquita|3001|MA|F|Daughter|||9|108985 +3010|MA|Worcester County|East Brookfield town|1823|0|5|Jobe|Burt Merle|3003|MA|M|Son|||7|108986 +3010|MA|Worcester County|East Brookfield town|1823|0|6|Jobe|Samantha|3005|MA|F|Daughter|||5|108987 +3010|MA|Worcester County|East Brookfield town|1823|0|7|Jobe|Rayna|3007|MA|F|Daughter|||3|108988 + +3010|MI|Sanilac County|Evergreen township|1824|0|1|Emory|Brook|2950|Louisiana|F|Head|||60|108989 +3010|MI|Sanilac County|Evergreen township|1824|0|2|Emory|Kellee|2990|Michigan|F|Daughter|||20|108990 +3010|MI|Sanilac County|Evergreen township|1824|0|3|Emory|Brendan|2994|Portugal|M|Son|||16|108991 +3010|MI|Sanilac County|Evergreen township|1824|0|4|Emory|Glen|2996|Minnesota|M|Son|||14|108992 + +3010|NY|Fulton County|Caroga Lake CDP|1825|0|1|Blaisdell|Jefferey|2937|Comoros|M|Head|||73|108993 +3010|NY|Fulton County|Caroga Lake CDP|1825|0|2|Blaisdell|Shandi Jamee|2969|Indiana|F|Daughter|||41|108994 +3010|NY|Fulton County|Caroga Lake CDP|1825|0|3|Blaisdell|Johnson|2985|West Virginia|M|Son|||25|108995 + +3010|ID|Gooding County|Hagerman city|1826|0|1|Skipworth|Lindsay|2956|Maine|M|Head|||54|108996 +3010|ID|Gooding County|Hagerman city|1826|0|2|Skipworth|Man|2993|Texas|M|Son|||17|108997 + +3010|VA|Shenandoah County|Woodstock town|1827|0|1|Santaniello|Rich|2958|Connecticut|M|Head|||52|108998 +3010|VA|Shenandoah County|Woodstock town|1827|0|2|Santaniello|Danielle|2974|Virginia|F|Spouse|||36|108999 +3010|VA|Shenandoah County|Woodstock town|1827|0|3|Santaniello|Rosy|2996|Kentucky|F|Daughter|||14|109000 +3010|VA|Shenandoah County|Woodstock town|1827|0|4|Santaniello|Willie Alejandro|3001|VA|M|Son|||9|109001 + +3010|NJ|Camden County|Barrington borough|1828|0|1|Mills|Valorie|2951|New Hampshire|F|Spouse|||59|109002 +3010|NJ|Camden County|Barrington borough|1828|0|2|Mills|Nikki|2987|Estonia|F|Daughter|||23|109003 +3010|NJ|Camden County|Barrington borough|1828|0|3|Mills|Kraig|2993|Norfolk Island|M|Son|||17|109004 + +3010|PA|Delaware County|Media borough|1829|0|1|Hart|Julius Jame|2946|Missouri|M|Head|||64|109005 +3010|PA|Delaware County|Media borough|1829|0|2|Hart|Maryanna|2960|Zimbabwe|F|Spouse|||50|109006 +3010|PA|Delaware County|Media borough|1829|0|3|Hart|Karl|2982|Vanuatu|M|Son|||28|109007 +3010|PA|Delaware County|Media borough|1829|0|4|Hart|Edwardo|2996|Maine|M|Son|||14|109008 + +3010|TX|Henderson County|Berryville town|1830|0|1|Bell|Neil Beau|2938|Montana|M|Head|||72|109009 +3010|TX|Henderson County|Berryville town|1830|0|2|Bell|Genny|2943|Massachusetts|F|Spouse|||67|109010 +3010|TX|Henderson County|Berryville town|1830|0|3|Bell|Delorse|2989|Montana|F|Daughter|||21|109011 +3010|TX|Henderson County|Berryville town|1830|0|4|Bell|Vesta|2995|New York|F|Daughter|||15|109012 +3010|TX|Henderson County|Berryville town|1830|0|5|Bell|Evonne|3001|WA|F|Daughter|||9|109013 +3010|TX|Henderson County|Berryville town|1830|0|6|Bell|Hilma|3005|WA|F|Daughter|||5|109014 +3010|TX|Henderson County|Berryville town|1830|0|7|Bell|Elvis|3007|TX|M|Son|||3|109015 + +3010|ND|Rolette County|East Dunseith CDP|1831|0|1|Mccreery|Ed Normand|2961|New York|M|Head|||49|109016 +3010|ND|Rolette County|East Dunseith CDP|1831|0|2|Mccreery|Amiee Kindra|2993|Florida|F|Daughter|||17|109017 +3010|ND|Rolette County|East Dunseith CDP|1831|0|3|Mccreery|Dudley Kelvin|2997|Dominica|M|Son|||13|109018 + +3010|MN|Dakota County|Farmington city|1832|0|1|Tejada|Nigel|2944|Missouri|M|Head|||66|109019 +3010|MN|Dakota County|Farmington city|1832|0|2|Tejada|Natividad Mellisa|2967|Christmas Island|F|Daughter|||43|109020 +3010|MN|Dakota County|Farmington city|1832|0|3|Tejada|Forrest Ruben|2997|Tennessee|M|Son|||13|109021 +3010|MN|Dakota County|Farmington city|1832|0|4|Tejada|Avery|2999|Canada|F|Daughter|||11|109022 +3010|MN|Dakota County|Farmington city|1832|0|5|Tejada|Joyce|3001|CT|F|Daughter|||9|109023 +3010|MN|Dakota County|Farmington city|1832|0|6|Tejada|Oren|3005|CT|M|Son|||5|109024 + +3010|NY|Seneca County|Lodi village|1833|0|1|Garcia|Wayne Jimmie|2967|Tennessee|M|Head|||43|109025 +3010|NY|Seneca County|Lodi village|1833|0|2|Garcia|Annika|2966|Maine|F|Spouse|||44|109026 +3010|NY|Seneca County|Lodi village|1833|0|3|Garcia|Jerrold|2988|Ohio|M|Son|||22|109027 +3010|NY|Seneca County|Lodi village|1833|0|4|Garcia|Hollis|2992|Palau|M|Son|||18|109028 +3010|NY|Seneca County|Lodi village|1833|0|5|Garcia|Mel|3003|NY|M|Son|||7|109029 +3010|NY|Seneca County|Lodi village|1833|0|6|Garcia|Mariano|3005|NY|M|Son|||5|109030 + +3010|MO|St. Clair County|Lowry City city|1834|0|1|Baughman|Michal Geoffrey|2945|Oregon|M|Head|||65|109031 +3010|MO|St. Clair County|Lowry City city|1834|0|2|Baughman|Kiara|2944|Grenada|F|Spouse|||66|109032 +3010|MO|St. Clair County|Lowry City city|1834|0|3|Baughman|Dona Lenora|2966|Minnesota|F|Daughter|||44|109033 +3010|MO|St. Clair County|Lowry City city|1834|0|4|Baughman|Miguel|2980|Wyoming|M|Son|||30|109034 +3010|MO|St. Clair County|Lowry City city|1834|0|5|Baughman|Edgar|2982|Florida|M|Son|||28|109035 +3010|MO|St. Clair County|Lowry City city|1834|0|6|Baughman|Thaddeus|3001|MO|M|Son|||9|109036 +3010|MO|St. Clair County|Lowry City city|1834|0|7|Baughman|Long|3005|MO|M|Son|||5|109037 +3010|MO|St. Clair County|Lowry City city|1834|0|8|Baughman|Tomas|3009|MO|M|Son|||1|109038 + +3010|AL|Limestone County|Lester town|1835|0|1|Gill|Edward Dario|2970|Utah|M|Head|||40|109039 +3010|AL|Limestone County|Lester town|1835|0|2|Gill|Mazie|2974|Arkansas|F|Spouse|||36|109040 +3010|AL|Limestone County|Lester town|1835|0|3|Gill|Melvin Jerry|2998|Nepal|M|Son|||12|109041 +3010|AL|Limestone County|Lester town|1835|0|4|Gill|Catherin|3000|Indiana|F|Daughter|||10|109042 +3010|AL|Limestone County|Lester town|1835|0|5|Gill|Anika|3001|AL|F|Daughter|||9|109043 +3010|AL|Limestone County|Lester town|1835|0|6|Gill|Drew|3007|AL|M|Son|||3|109044 + +3010|MN|Houston County|Mound Prairie township|1836|0|1|Anzures|Milo Anderson|2974|New York|M|Head|||36|109045 +3010|MN|Houston County|Mound Prairie township|1836|0|2|Anzures|Charlie|2982|Delaware|F|Spouse|||28|109046 +3010|MN|Houston County|Mound Prairie township|1836|0|3|Anzures|Nadene|3001|WI|F|Daughter|||9|109047 +3010|MN|Houston County|Mound Prairie township|1836|0|4|Anzures|Benny|3009|MN|M|Son|||1|109048 + +3010|IN|Whitley County|Churubusco town|1837|0|1|Canella|Danny Jordan|2946|Maine|M|Head|||64|109049 + +3010|MN|Lac qui Parle County|Mehurin township|1838|0|1|Holle|Connie Andrew|2951|Oklahoma|M|Head|||59|109050 +3010|MN|Lac qui Parle County|Mehurin township|1838|0|2|Holle|Brady|2993|South Dakota|M|Son|||17|109051 +3010|MN|Lac qui Parle County|Mehurin township|1838|0|3|Holle|Herman|2997|Mississippi|M|Son|||13|109052 + +3010|AZ|Mohave County|Desert Hills CDP|1839|0|1|Konderla|Valentin Erich|2951|Kentucky|M|Head|||59|109053 +3010|AZ|Mohave County|Desert Hills CDP|1839|0|2|Konderla|Malik|2996|Dominican Republic|M|Son|||14|109054 +3010|AZ|Mohave County|Desert Hills CDP|1839|0|3|Konderla|Dwayne|3000|Missouri|M|Son|||10|109055 + +3010|PA|Mercer County|Findley township|1840|0|1|Morath|Shon Mikel|2947|New York|M|Head|||63|109056 +3010|PA|Mercer County|Findley township|1840|0|2|Morath|Tatyana|2967|New Mexico|F|Spouse|||43|109057 +3010|PA|Mercer County|Findley township|1840|0|3|Morath|Virgil|2995|New Mexico|M|Son|||15|109058 +3010|PA|Mercer County|Findley township|1840|0|4|Morath|Stacy Phil|2999|Louisiana|M|Son|||11|109059 +3010|PA|Mercer County|Findley township|1840|0|5|Morath|Anja|3003|PA|F|Daughter|||7|109060 +3010|PA|Mercer County|Findley township|1840|0|6|Morath|Amira Lesha|3007|PA|F|Daughter|||3|109061 + +3010|ME|York County|York town|1841|0|1|Gruber|Son|2949|Tennessee|M|Head|||61|109062 +3010|ME|York County|York town|1841|0|2|Gruber|Thelma|2958|Ohio|F|Spouse|||52|109063 +3010|ME|York County|York town|1841|0|3|Gruber|Heath|2978|Ohio|M|Son|||32|109064 +3010|ME|York County|York town|1841|0|4|Gruber|Jame|2982|North Dakota|M|Son|||28|109065 +3010|ME|York County|York town|1841|0|5|Gruber|Rebekah Ray|2998|Honduras|F|Daughter|||12|109066 + +3010|IA|Sac County|Schaller city|1842|0|1|Seacord|Everett Bernie|2975|Texas|M|Head|||35|109067 +3010|IA|Sac County|Schaller city|1842|0|2|Seacord|Elaine|2982|North Carolina|F|Spouse|||28|109068 +3010|IA|Sac County|Schaller city|1842|0|3|Seacord|Denver|3001|IA|M|Son|||9|109069 +3010|IA|Sac County|Schaller city|1842|0|4|Seacord|Benton|3003|IA|M|Son|||7|109070 +3010|IA|Sac County|Schaller city|1842|0|5|Seacord|Karmen|3007|IA|F|Daughter|||3|109071 + +3010|ME|Aroostook County|Weston town|1843|0|1|Washington|Claudio Norris|2965|Georgia|M|Head|||45|109072 +3010|ME|Aroostook County|Weston town|1843|0|2|Washington|Guillermo|2997|Connecticut|M|Son|||13|109073 +3010|ME|Aroostook County|Weston town|1843|0|3|Washington|Jess|2999|Vermont|M|Son|||11|109074 + +3010|MI|Manistee County|Parkdale CDP|1844|0|1|Sinclair|Nicholas Dewayne|2961|Nebraska|M|Head|||49|109075 +3010|MI|Manistee County|Parkdale CDP|1844|0|2|Sinclair|Bernita|2990|South Carolina|F|Daughter|||20|109076 +3010|MI|Manistee County|Parkdale CDP|1844|0|3|Sinclair|Amos|2998|New Mexico|M|Son|||12|109077 +3010|MI|Manistee County|Parkdale CDP|1844|0|4|Sinclair|Meta|3000|South Carolina|F|Daughter|||10|109078 + +3010|TX|Harris County|Cloverleaf CDP|1845|0|1|Abalos|Emmett|2993|Argentina|M|Son|||17|109079 +3010|TX|Harris County|Cloverleaf CDP|1845|0|2|Abalos|Christian|2995|Delaware|M|Son|||15|109080 +3010|TX|Harris County|Cloverleaf CDP|1845|0|3|Abalos|Shona|2999|Oregon|F|Daughter|||11|109081 + +3010|PA|Fayette County|Deer Lake CDP|1846|0|1|Shappen|Werner Odell|2938|Michigan|M|Head|||72|109082 +3010|PA|Fayette County|Deer Lake CDP|1846|0|2|Shappen|Johnson|2973|Nebraska|M|Son|||37|109083 +3010|PA|Fayette County|Deer Lake CDP|1846|0|3|Shappen|Alfreda Arianne|2987|North Carolina|F|Daughter|||23|109084 +3010|PA|Fayette County|Deer Lake CDP|1846|0|4|Shappen|Carol|2995|Portugal|M|Son|||15|109085 + +3010|WA|Whatcom County|Everson city|1847|0|1|Vanert|Kareem Ignacio|2986|Arkansas|M|Son|||24|109086 +3010|WA|Whatcom County|Everson city|1847|0|2|Vanert|Burma|2996|Connecticut|F|Daughter|||14|109087 +3010|WA|Whatcom County|Everson city|1847|0|3|Vanert|Shanti|3000|Montana|F|Daughter|||10|109088 + +3010|IA|Fremont County|Hamburg city|1848|0|1|Ogburn|Deandre Arlen|2955|Kentucky|M|Head|||55|109089 +3010|IA|Fremont County|Hamburg city|1848|0|2|Ogburn|Brittni|2954|Minnesota|F|Spouse|||56|109090 +3010|IA|Fremont County|Hamburg city|1848|0|3|Ogburn|Taunya|3001|IA|F|Daughter|||9|109091 +3010|IA|Fremont County|Hamburg city|1848|0|4|Ogburn|Jacqulyn|3003|IA|F|Daughter|||7|109092 +3010|IA|Fremont County|Hamburg city|1848|0|5|Ogburn|Billy|3007|IA|M|Son|||3|109093 +3010|IA|Fremont County|Hamburg city|1848|0|6|Ogburn|Arlen|3009|IA|M|Son|||1|109094 + +3010|AR|Saline County|Traskwood city|1849|0|1|Hesler|Hipolito Daren|2947|West Virginia|M|Head|||63|109095 +3010|AR|Saline County|Traskwood city|1849|0|2|Hesler|Logan Anette|2963|Rhode Island|F|Spouse|||47|109096 +3010|AR|Saline County|Traskwood city|1849|0|3|Hesler|Shanti|2995|Missouri|F|Daughter|||15|109097 +3010|AR|Saline County|Traskwood city|1849|0|4|Hesler|Isabell Marlyn|2997|Namibia|F|Daughter|||13|109098 +3010|AR|Saline County|Traskwood city|1849|0|5|Hesler|Clarence|3001|AR|M|Son|||9|109099 + +3010|NJ|Hunterdon County|Bloomsbury borough|1850|0|1|Bogan|William Ismael|2957|Saint Lucia|M|Head|||53|109100 +3010|NJ|Hunterdon County|Bloomsbury borough|1850|0|2|Bogan|Demetria|2967|Arizona|F|Spouse|||43|109101 +3010|NJ|Hunterdon County|Bloomsbury borough|1850|0|3|Bogan|Sherryl Cristine|2989|Texas|F|Daughter|||21|109102 +3010|NJ|Hunterdon County|Bloomsbury borough|1850|0|4|Bogan|Makeda|2991|Tennessee|F|Daughter|||19|109103 +3010|NJ|Hunterdon County|Bloomsbury borough|1850|0|5|Bogan|Moises|2997|Serbia|M|Son|||13|109104 +3010|NJ|Hunterdon County|Bloomsbury borough|1850|0|6|Bogan|Voncile Brittney|2999|South Dakota|F|Daughter|||11|109105 +3010|NJ|Hunterdon County|Bloomsbury borough|1850|0|7|Bogan|Loyd Sergio|3001|NJ|M|Son|||9|109106 +3010|NJ|Hunterdon County|Bloomsbury borough|1850|0|8|Bogan|Stefan|3003|NJ|M|Son|||7|109107 +3010|NJ|Hunterdon County|Bloomsbury borough|1850|0|9|Bogan|Werner|3005|NJ|M|Son|||5|109108 +3010|NJ|Hunterdon County|Bloomsbury borough|1850|0|10|Bogan|Carlton|3007|NJ|M|Son|||3|109109 +3010|NJ|Hunterdon County|Bloomsbury borough|1850|0|11|Bogan|Leighann|3009|NJ|F|Daughter|||1|109110 + +3010|PA|Berks County|Walnuttown CDP|1851|0|1|Oaxaca|Reginald Guy|2950|Texas|M|Head|||60|109111 +3010|PA|Berks County|Walnuttown CDP|1851|0|2|Oaxaca|Clora|2970|Alabama|F|Spouse|||40|109112 +3010|PA|Berks County|Walnuttown CDP|1851|0|3|Oaxaca|Cortez|2992|Utah|M|Son|||18|109113 +3010|PA|Berks County|Walnuttown CDP|1851|0|4|Oaxaca|Onita|2998|Virginia|F|Daughter|||12|109114 +3010|PA|Berks County|Walnuttown CDP|1851|0|5|Oaxaca|Magdalen|3000|New York|F|Daughter|||10|109115 +3010|PA|Berks County|Walnuttown CDP|1851|0|6|Oaxaca|Winston|3003|PA|M|Son|||7|109116 +3010|PA|Berks County|Walnuttown CDP|1851|0|7|Oaxaca|Fidela|3005|PA|F|Daughter|||5|109117 +3010|PA|Berks County|Walnuttown CDP|1851|0|8|Oaxaca|Hai|3007|PA|M|Son|||3|109118 + +3010|IL|Fulton County|Fairview village|1852|0|1|Fritts|Alphonso|2937|Albania|M|Head|||73|109119 +3010|IL|Fulton County|Fairview village|1852|0|2|Fritts|Selina|2960|United Arab Emirates|F|Spouse|||50|109120 +3010|IL|Fulton County|Fairview village|1852|0|3|Fritts|Caryl Salina|2992|South Dakota|F|Daughter|||18|109121 +3010|IL|Fulton County|Fairview village|1852|0|4|Fritts|Daniele|2996|North Dakota|F|Daughter|||14|109122 +3010|IL|Fulton County|Fairview village|1852|0|5|Fritts|Kasey|3000|Arizona|M|Son|||10|109123 +3010|IL|Fulton County|Fairview village|1852|0|6|Fritts|Kevin|3007|IL|M|Son|||3|109124 + +3010|MN|Benton County|Foley city|1853|0|1|Harles|Natasha|2960|Massachusetts|F|Head|||50|109125 +3010|MN|Benton County|Foley city|1853|0|2|Harles|Maile|2990|Georgia|F|Daughter|||20|109126 +3010|MN|Benton County|Foley city|1853|0|3|Harles|Kelvin|3000|Massachusetts|M|Son|||10|109127 + +3010|NM|De Baca County|Fort Sumner village|1854|0|1|Petkoff|Charmain|2971|Alabama|F|Daughter|||39|109128 +3010|NM|De Baca County|Fort Sumner village|1854|0|2|Petkoff|Lon|2993|New Hampshire|M|Son|||17|109129 + +3010|NC|Bertie County|Colerain town|1855|0|1|Scurlock|Fernando Kenton|2952|Kentucky|M|Head|||58|109130 +3010|NC|Bertie County|Colerain town|1855|0|2|Scurlock|Gerry Alexa|2970|Tokelau|F|Spouse|||40|109131 +3010|NC|Bertie County|Colerain town|1855|0|3|Scurlock|Dewey|2990|Saudi Arabia|M|Son|||20|109132 +3010|NC|Bertie County|Colerain town|1855|0|4|Scurlock|Felipa|2996|Mississippi|F|Daughter|||14|109133 +3010|NC|Bertie County|Colerain town|1855|0|5|Scurlock|Trinidad|3000|Connecticut|M|Son|||10|109134 +3010|NC|Bertie County|Colerain town|1855|0|6|Scurlock|Lenard|3007|NC|M|Son|||3|109135 + +3010|MN|Douglas County|La Grand township|1856|0|1|Dockins|Melissa|2980|Delaware|F|Head|||30|109136 +3010|MN|Douglas County|La Grand township|1856|0|2|Dockins|Brandon|3000|Kansas|M|Son|||10|109137 + +3010|ND|Grant County|Leith city|1857|0|1|Spratt|Augustus Bertram|2939|Illinois|M|Head|||71|109138 +3010|ND|Grant County|Leith city|1857|0|2|Spratt|Jessi|2943|Indiana|F|Spouse|||67|109139 +3010|ND|Grant County|Leith city|1857|0|3|Spratt|Karole|2995|Virgin Islands, U.s.|F|Daughter|||15|109140 +3010|ND|Grant County|Leith city|1857|0|4|Spratt|Venetta|2999|Oklahoma|F|Daughter|||11|109141 +3010|ND|Grant County|Leith city|1857|0|5|Spratt|Corey|3003|ND|M|Son|||7|109142 + +3010|MI|Muskegon County|Ravenna village|1858|0|1|Jordan|Greg Mark|2949|Wyoming|M|Head|||61|109143 +3010|MI|Muskegon County|Ravenna village|1858|0|2|Jordan|Nola|2963|Kentucky|F|Spouse|||47|109144 +3010|MI|Muskegon County|Ravenna village|1858|0|3|Jordan|Domenic|2999|South Dakota|M|Son|||11|109145 +3010|MI|Muskegon County|Ravenna village|1858|0|4|Jordan|Jarvis|3009|MI|M|Son|||1|109146 + +3010|TX|Tarrant County|Bedford city|1859|0|1|Lovell|Dorian|2955|Minnesota|M|Head|||55|109147 +3010|TX|Tarrant County|Bedford city|1859|0|2|Lovell|Sue|2976|Connecticut|F|Spouse|||34|109148 +3010|TX|Tarrant County|Bedford city|1859|0|3|Lovell|Sherita|2996|North Dakota|F|Daughter|||14|109149 +3010|TX|Tarrant County|Bedford city|1859|0|4|Lovell|Holli Melina|3001|GA|F|Daughter|||9|109150 + +3010|ME|Aroostook County|Madawaska CDP|1860|0|1|Kline|Marietta|2976|Iowa|F|Spouse|||34|109151 +3010|ME|Aroostook County|Madawaska CDP|1860|0|2|Kline|Hosea|3000|Kansas|M|Son|||10|109152 +3010|ME|Aroostook County|Madawaska CDP|1860|0|3|Kline|Marty|3001|ME|M|Son|||9|109153 +3010|ME|Aroostook County|Madawaska CDP|1860|0|4|Kline|Branden|3009|ME|M|Son|||1|109154 + +3010|PA|Cambria County|Lilly borough|1861|0|1|Wulff|Elmo Jimmie|2958|Hawaii|M|Head|||52|109155 +3010|PA|Cambria County|Lilly borough|1861|0|2|Wulff|Paz|2997|New Jersey|F|Daughter|||13|109156 + +3010|PA|Greene County|Greensboro borough|1862|0|1|Dosch|Haywood Lauren|2948|Colorado|M|Head|||62|109157 +3010|PA|Greene County|Greensboro borough|1862|0|2|Dosch|Jane Asley|2953|New York|F|Spouse|||57|109158 +3010|PA|Greene County|Greensboro borough|1862|0|3|Dosch|Gustavo Leonel|3007|PA|M|Son|||3|109159 + +3010|MN|Sibley County|Gaylord city|1863|0|1|Crown|Dwayne Gale|2937|Florida|M|Head|||73|109160 +3010|MN|Sibley County|Gaylord city|1863|0|2|Crown|Tanja|2937|Illinois|F|Spouse|||73|109161 +3010|MN|Sibley County|Gaylord city|1863|0|3|Crown|Truman|2989|Arkansas|M|Son|||21|109162 +3010|MN|Sibley County|Gaylord city|1863|0|4|Crown|Drew|2993|Oregon|M|Son|||17|109163 +3010|MN|Sibley County|Gaylord city|1863|0|5|Crown|Cherry|3001|MN|F|Daughter|||9|109164 +3010|MN|Sibley County|Gaylord city|1863|0|6|Crown|Lissette Idalia|3003|MN|F|Daughter|||7|109165 +3010|MN|Sibley County|Gaylord city|1863|0|7|Crown|Ena|3007|MN|F|Daughter|||3|109166 + +3010|MI|Leelanau County|Suttons Bay village|1864|0|1|Townsend|Michael Elmer|2970|Texas|M|Head|||40|109167 +3010|MI|Leelanau County|Suttons Bay village|1864|0|2|Townsend|Portia|2972|Utah|F|Spouse|||38|109168 +3010|MI|Leelanau County|Suttons Bay village|1864|0|3|Townsend|Roosevelt|2998|Marshall Islands|M|Son|||12|109169 +3010|MI|Leelanau County|Suttons Bay village|1864|0|4|Townsend|Huey|3000|Colorado|M|Son|||10|109170 +3010|MI|Leelanau County|Suttons Bay village|1864|0|5|Townsend|Lindsey|3001|MI|F|Daughter|||9|109171 +3010|MI|Leelanau County|Suttons Bay village|1864|0|6|Townsend|Kathryn|3003|MI|F|Daughter|||7|109172 +3010|MI|Leelanau County|Suttons Bay village|1864|0|7|Townsend|Gaston|3005|MI|M|Son|||5|109173 +3010|MI|Leelanau County|Suttons Bay village|1864|0|8|Townsend|Joana Beryl|3009|MI|F|Daughter|||1|109174 + +3010|IL|Cook County, DuPage County|Chicago city|1865|0|1|Payne|Mae|2994|Texas|F|Daughter|||16|109175 +3010|IL|Cook County, DuPage County|Chicago city|1865|0|2|Payne|Sheron|2998|British Indian Ocean Territory|F|Daughter|||12|109176 +3010|IL|Cook County, DuPage County|Chicago city|1865|0|3|Payne|Gia|3000|Alabama|F|Daughter|||10|109177 + +3010|AL|Monroe County|Excel town|1866|0|1|Ybarra|Nigel|2966|Jordan|M|Head|||44|109178 +3010|AL|Monroe County|Excel town|1866|0|2|Ybarra|Buffy|2962|Maryland|F|Spouse|||48|109179 +3010|AL|Monroe County|Excel town|1866|0|3|Ybarra|Sau|2996|Missouri|F|Daughter|||14|109180 +3010|AL|Monroe County|Excel town|1866|0|4|Ybarra|Alexander|2998|Oregon|M|Son|||12|109181 +3010|AL|Monroe County|Excel town|1866|0|5|Ybarra|Rogelio|3001|AL|M|Son|||9|109182 +3010|AL|Monroe County|Excel town|1866|0|6|Ybarra|Lloyd|3005|AL|M|Son|||5|109183 +3010|AL|Monroe County|Excel town|1866|0|7|Ybarra|Arnette|3007|AL|F|Daughter|||3|109184 +3010|AL|Monroe County|Excel town|1866|0|8|Ybarra|Bo|3009|AL|M|Son|||1|109185 + +3010|PA|Greene County|Nemacolin CDP|1867|0|1|Milardo|Maxwell Roosevelt|2938|Oklahoma|M|Head|||72|109186 +3010|PA|Greene County|Nemacolin CDP|1867|0|2|Milardo|Keira Yi|2938|Illinois|F|Spouse|||72|109187 +3010|PA|Greene County|Nemacolin CDP|1867|0|3|Milardo|Junior|2990|Oklahoma|M|Son|||20|109188 +3010|PA|Greene County|Nemacolin CDP|1867|0|4|Milardo|Dion|2992|West Virginia|F|Daughter|||18|109189 +3010|PA|Greene County|Nemacolin CDP|1867|0|5|Milardo|Desire|3000|Oklahoma|F|Daughter|||10|109190 + +3010|MI|Alger County|Rock River township|1868|0|1|Gomez|Danilo Max|2945|Rhode Island|M|Head|||65|109191 +3010|MI|Alger County|Rock River township|1868|0|2|Gomez|Ursula|2987|Colombia|F|Daughter|||23|109192 +3010|MI|Alger County|Rock River township|1868|0|3|Gomez|Inga|2995|Alabama|F|Daughter|||15|109193 + +3010|GA|Macon County|Oglethorpe city|1869|0|1|Langill|Donte Palmer|2972|Mississippi|M|Head|||38|109194 +3010|GA|Macon County|Oglethorpe city|1869|0|2|Langill|Marlene|2983|Tennessee|F|Spouse|||27|109195 +3010|GA|Macon County|Oglethorpe city|1869|0|3|Langill|Tammie|3001|GA|F|Daughter|||9|109196 +3010|GA|Macon County|Oglethorpe city|1869|0|4|Langill|Alba|3003|GA|F|Daughter|||7|109197 +3010|GA|Macon County|Oglethorpe city|1869|0|5|Langill|Abigail Tamika|3009|GA|F|Daughter|||1|109198 + +3010|FL|Orange County|Lake Buena Vista city|1870|0|1|Rohrig|Dudley|2951|Tennessee|M|Head|||59|109199 +3010|FL|Orange County|Lake Buena Vista city|1870|0|2|Rohrig|Michiko Cassandra|2971|Hawaii|F|Spouse|||39|109200 +3010|FL|Orange County|Lake Buena Vista city|1870|0|3|Rohrig|Gerardo|2991|Idaho|M|Son|||19|109201 +3010|FL|Orange County|Lake Buena Vista city|1870|0|4|Rohrig|Jude|3001|FL|M|Son|||9|109202 +3010|FL|Orange County|Lake Buena Vista city|1870|0|5|Rohrig|Sheldon|3009|FL|M|Son|||1|109203 + +3010|TX|Dallas County, Ellis County|Ovilla city|1871|0|1|Schoon|Lanita|2965|Virgin Islands, U.s.|F|Spouse|||45|109204 +3010|TX|Dallas County, Ellis County|Ovilla city|1871|0|2|Schoon|Enola Lu|2995|Canada|F|Daughter|||15|109205 +3010|TX|Dallas County, Ellis County|Ovilla city|1871|0|3|Schoon|Elwanda|3007|TX|F|Daughter|||3|109206 + +3010|GA|Newton County|Oxford city|1872|0|1|Griffin|Mendy|2940|Netherlands|F|Head|||70|109207 +3010|GA|Newton County|Oxford city|1872|0|2|Griffin|Rich|2976|Michigan|M|Son|||34|109208 +3010|GA|Newton County|Oxford city|1872|0|3|Griffin|Lanell|2988|Tennessee|F|Daughter|||22|109209 +3010|GA|Newton County|Oxford city|1872|0|4|Griffin|Candida|2994|Ohio|F|Daughter|||16|109210 +3010|GA|Newton County|Oxford city|1872|0|5|Griffin|Suzy|2998|New Mexico|F|Daughter|||12|109211 +3010|GA|Newton County|Oxford city|1872|0|6|Griffin|Vince|3000|India|M|Son|||10|109212 + +3010|MO|Scott County|Commerce village|1873|0|1|Nervis|Shirley Gale|2947|Connecticut|M|Head|||63|109213 +3010|MO|Scott County|Commerce village|1873|0|2|Nervis|Van Austin|2997|Michigan|M|Son|||13|109214 +3010|MO|Scott County|Commerce village|1873|0|3|Nervis|Shayna|2999|Anguilla|F|Daughter|||11|109215 +3010|MO|Scott County|Commerce village|1873|0|4|Nervis|Rosio|3001|MO|F|Daughter|||9|109216 +3010|MO|Scott County|Commerce village|1873|0|5|Nervis|Janett|3003|MO|F|Daughter|||7|109217 +3010|MO|Scott County|Commerce village|1873|0|6|Nervis|Ray|3005|MO|M|Son|||5|109218 + +3010|LA|Vermilion Parish|Abbeville city|1874|0|1|Bomia|Freeda|2978|Montana|F|Spouse|||32|109219 +3010|LA|Vermilion Parish|Abbeville city|1874|0|2|Bomia|Tobias John|2998|Tennessee|M|Son|||12|109220 +3010|LA|Vermilion Parish|Abbeville city|1874|0|3|Bomia|Alvina|3001|LA|F|Daughter|||9|109221 +3010|LA|Vermilion Parish|Abbeville city|1874|0|4|Bomia|Carmelia Linette|3005|LA|F|Daughter|||5|109222 +3010|LA|Vermilion Parish|Abbeville city|1874|0|5|Bomia|Tabitha Maxine|3009|LA|F|Daughter|||1|109223 + +3010|NE|Clay County|Edgar city|1875|0|1|Wilson|Harry Lemuel|2939|Rhode Island|M|Head|||71|109224 +3010|NE|Clay County|Edgar city|1875|0|2|Wilson|Allyn|2944|Cote D'ivoire|F|Spouse|||66|109225 +3010|NE|Clay County|Edgar city|1875|0|3|Wilson|Lilian|2970|New Jersey|F|Daughter|||40|109226 +3010|NE|Clay County|Edgar city|1875|0|4|Wilson|Claudio|2978|Illinois|M|Son|||32|109227 +3010|NE|Clay County|Edgar city|1875|0|5|Wilson|Francisca|3000|Minnesota|F|Daughter|||10|109228 +3010|NE|Clay County|Edgar city|1875|0|6|Wilson|Marc|3003|NE|M|Son|||7|109229 + +3010|WI|Columbia County|Pacific town|1876|0|1|Sherif|Meredith|2957|Wisconsin|F|Spouse|||53|109230 +3010|WI|Columbia County|Pacific town|1876|0|2|Sherif|Bart|2995|Wyoming|M|Son|||15|109231 +3010|WI|Columbia County|Pacific town|1876|0|3|Sherif|Pedro|2999|Maine|M|Son|||11|109232 + +3010|NM|Socorro County|Socorro city|1877|0|1|Jones|Sammie Young|2964|Iowa|M|Head|||46|109233 +3010|NM|Socorro County|Socorro city|1877|0|2|Jones|Sierra Ariel|2976|Alabama|F|Spouse|||34|109234 +3010|NM|Socorro County|Socorro city|1877|0|3|Jones|Wilton|2996|Equatorial Guinea|M|Son|||14|109235 +3010|NM|Socorro County|Socorro city|1877|0|4|Jones|Ester|3001|NM|F|Daughter|||9|109236 +3010|NM|Socorro County|Socorro city|1877|0|5|Jones|Emile|3003|NM|M|Son|||7|109237 +3010|NM|Socorro County|Socorro city|1877|0|6|Jones|Haywood|3007|NM|M|Son|||3|109238 +3010|NM|Socorro County|Socorro city|1877|0|7|Jones|Wilber|3009|NM|M|Son|||1|109239 + +3010|MI|Tuscola County|Novesta township|1878|0|1|Rohrbach|Ross Tom|2960|Iowa|M|Head|||50|109240 +3010|MI|Tuscola County|Novesta township|1878|0|2|Rohrbach|Joni|2970|Viet Nam|F|Spouse|||40|109241 +3010|MI|Tuscola County|Novesta township|1878|0|3|Rohrbach|Glenn|2990|Delaware|M|Son|||20|109242 +3010|MI|Tuscola County|Novesta township|1878|0|4|Rohrbach|Jonas|2998|California|M|Son|||12|109243 +3010|MI|Tuscola County|Novesta township|1878|0|5|Rohrbach|Bobbie Albina|3003|MI|F|Daughter|||7|109244 +3010|MI|Tuscola County|Novesta township|1878|0|6|Rohrbach|Randolph|3007|MI|M|Son|||3|109245 +3010|MI|Tuscola County|Novesta township|1878|0|7|Rohrbach|Luke|3009|MI|M|Son|||1|109246 + +3010|PA|Allegheny County|Shaler township|1879|0|1|Hall|Marissa|2969|Andorra|F|Spouse|||41|109247 +3010|PA|Allegheny County|Shaler township|1879|0|2|Hall|Leigh|3001|PA|M|Son|||9|109248 +3010|PA|Allegheny County|Shaler township|1879|0|3|Hall|Stephine|3007|PA|F|Daughter|||3|109249 +3010|PA|Allegheny County|Shaler township|1879|0|4|Hall|Dannie|3009|PA|M|Son|||1|109250 + +3010|DE|Kent County|Woodside town|1880|0|1|Kleinkopf|Luis Jerrod|2952|Hawaii|M|Head|||58|109251 +3010|DE|Kent County|Woodside town|1880|0|2|Kleinkopf|Vita Barb|2993|Macedonia, The Former Yugoslav Republic Of|F|Daughter|||17|109252 + +3010|MN|Sibley County|Winthrop city|1881|0|1|Tracy|Leon Shelton|2978|Georgia|M|Head|||32|109253 +3010|MN|Sibley County|Winthrop city|1881|0|2|Tracy|Lawana|2980|Mississippi|F|Spouse|||30|109254 +3010|MN|Sibley County|Winthrop city|1881|0|3|Tracy|Billy Willy|3001|MN|M|Son|||9|109255 +3010|MN|Sibley County|Winthrop city|1881|0|4|Tracy|Dorathy|3003|MN|F|Daughter|||7|109256 +3010|MN|Sibley County|Winthrop city|1881|0|5|Tracy|Rana Colby|3005|MN|F|Daughter|||5|109257 + +3010|MN|Todd County|Little Sauk township|1882|0|1|Kuester|Gene Fidelia|2982|Alabama|F|Spouse|||28|109258 +3010|MN|Todd County|Little Sauk township|1882|0|2|Kuester|Libbie|3001|MN|F|Daughter|||9|109259 +3010|MN|Todd County|Little Sauk township|1882|0|3|Kuester|Melinda|3009|MN|F|Daughter|||1|109260 + +3010|IL|Morgan County|South Jacksonville village|1883|0|1|Bellavance|Dustin|2942|Florida|M|Head|||68|109261 +3010|IL|Morgan County|South Jacksonville village|1883|0|2|Bellavance|Bernardine|2994|Illinois|F|Daughter|||16|109262 +3010|IL|Morgan County|South Jacksonville village|1883|0|3|Bellavance|Starr|3000|Georgia|F|Daughter|||10|109263 + +3010|MN|Fillmore County|Rushford city|1884|0|1|Harrison|Boyd Vincenzo|2971|Arizona|M|Head|||39|109264 +3010|MN|Fillmore County|Rushford city|1884|0|2|Harrison|Crystal Kendra|2967|Arizona|F|Spouse|||43|109265 +3010|MN|Fillmore County|Rushford city|1884|0|3|Harrison|Delmer|2993|New Hampshire|M|Son|||17|109266 +3010|MN|Fillmore County|Rushford city|1884|0|4|Harrison|Maurice|2999|New Mexico|M|Son|||11|109267 +3010|MN|Fillmore County|Rushford city|1884|0|5|Harrison|Saran|3001|MN|F|Daughter|||9|109268 +3010|MN|Fillmore County|Rushford city|1884|0|6|Harrison|Porter|3005|MN|M|Son|||5|109269 +3010|MN|Fillmore County|Rushford city|1884|0|7|Harrison|Virgil|3009|MN|M|Son|||1|109270 + +3010|MN|Marshall County|Espelie township|1886|0|1|Hisey|Nilsa|2966|Tennessee|F|Head|||44|109271 +3010|MN|Marshall County|Espelie township|1886|0|2|Hisey|Noreen|2986|West Virginia|F|Daughter|||24|109272 +3010|MN|Marshall County|Espelie township|1886|0|3|Hisey|Quinton|3000|Utah|M|Son|||10|109273 + +3010|SC|Charleston County|Ravenel town|1887|0|1|Eyles|Johnie Archie|2961|Ohio|M|Head|||49|109274 +3010|SC|Charleston County|Ravenel town|1887|0|2|Eyles|Elwanda|2973|Connecticut|F|Spouse|||37|109275 +3010|SC|Charleston County|Ravenel town|1887|0|3|Eyles|Armanda|2993|California|F|Daughter|||17|109276 +3010|SC|Charleston County|Ravenel town|1887|0|4|Eyles|Sonia|2995|North Dakota|F|Daughter|||15|109277 +3010|SC|Charleston County|Ravenel town|1887|0|5|Eyles|Derek|2997|Georgia|M|Son|||13|109278 +3010|SC|Charleston County|Ravenel town|1887|0|6|Eyles|Cary|2999|Iowa|M|Son|||11|109279 + +3010|KS|Cherokee County|West Mineral city|1888|0|1|Squires|Jerold|2994|South Dakota|M|Son|||16|109280 +3010|KS|Cherokee County|West Mineral city|1888|0|2|Squires|Milan|3000|Virginia|M|Son|||10|109281 + +3010|TX|Guadalupe County|New Berlin city|1889|0|1|Baxley|Adolfo Wayne|2980|Nevada|M|Head|||30|109282 +3010|TX|Guadalupe County|New Berlin city|1889|0|2|Baxley|Donella|2979|Comoros|F|Spouse|||31|109283 +3010|TX|Guadalupe County|New Berlin city|1889|0|3|Baxley|Lela|2999|Virginia|F|Daughter|||11|109284 +3010|TX|Guadalupe County|New Berlin city|1889|0|4|Baxley|Eduardo|3001|TX|M|Son|||9|109285 +3010|TX|Guadalupe County|New Berlin city|1889|0|5|Baxley|Steven|3003|TX|F|Daughter|||7|109286 +3010|TX|Guadalupe County|New Berlin city|1889|0|6|Baxley|Irish|3005|TX|F|Daughter|||5|109287 +3010|TX|Guadalupe County|New Berlin city|1889|0|7|Baxley|Donte|3007|TX|M|Son|||3|109288 + +3010|NV|White Pine County|Lund CDP|1890|0|1|Cardin|Ty Nathanial|2986|Tennessee|M|Son|||24|109289 +3010|NV|White Pine County|Lund CDP|1890|0|2|Cardin|Yuriko|3000|New York|F|Daughter|||10|109290 + +3010|TX|Lamar County|Roxton city|1891|0|1|Dresbach|Shayne|2970|New Hampshire|M|Head|||40|109291 +3010|TX|Lamar County|Roxton city|1891|0|2|Dresbach|Sylvia|2995|Ohio|F|Daughter|||15|109292 + +3010|HI|Honolulu County|Maunawili CDP|1892|0|1|Blankenship|Ronnie Jean|2978|Kentucky|M|Head|||32|109293 +3010|HI|Honolulu County|Maunawili CDP|1892|0|2|Blankenship|Millie|2976|Florida|F|Spouse|||34|109294 +3010|HI|Honolulu County|Maunawili CDP|1892|0|3|Blankenship|Abram Eldon|2996|North Dakota|M|Son|||14|109295 +3010|HI|Honolulu County|Maunawili CDP|1892|0|4|Blankenship|Cletus|3001|HI|M|Son|||9|109296 +3010|HI|Honolulu County|Maunawili CDP|1892|0|5|Blankenship|Min|3005|HI|F|Daughter|||5|109297 +3010|HI|Honolulu County|Maunawili CDP|1892|0|6|Blankenship|Vinita Jannie|3007|HI|F|Daughter|||3|109298 +3010|HI|Honolulu County|Maunawili CDP|1892|0|7|Blankenship|Waneta|3009|HI|F|Daughter|||1|109299 + +3010|KS|Barton County|Olmitz city|1893|0|1|Marsters|Clair Chung|2937|New Mexico|M|Head|||73|109300 +3010|KS|Barton County|Olmitz city|1893|0|2|Marsters|Aurelia|2942|Italy|F|Spouse|||68|109301 +3010|KS|Barton County|Olmitz city|1893|0|3|Marsters|Ambrose|3001|NE|M|Son|||9|109302 + +3010|ME|Somerset County|Madison town|1894|0|1|Allerton|Erasmo Desmond|2954|Oklahoma|M|Head|||56|109303 +3010|ME|Somerset County|Madison town|1894|0|2|Allerton|Ricarda|2992|Tennessee|F|Daughter|||18|109304 +3010|ME|Somerset County|Madison town|1894|0|3|Allerton|Domenic|2998|Rhode Island|M|Son|||12|109305 +3010|ME|Somerset County|Madison town|1894|0|4|Allerton|Michel|3000|Michigan|M|Son|||10|109306 +3010|ME|Somerset County|Madison town|1894|0|5|Allerton|Boyd|3007|ME|M|Son|||3|109307 + +3010|MN|Blue Earth County|Eagle Lake city|1895|0|1|Hardman|Clyde Long|2965|Djibouti|M|Head|||45|109308 +3010|MN|Blue Earth County|Eagle Lake city|1895|0|2|Hardman|Mandie|2962|Oklahoma|F|Spouse|||48|109309 +3010|MN|Blue Earth County|Eagle Lake city|1895|0|3|Hardman|Louie|2982|Iowa|M|Son|||28|109310 +3010|MN|Blue Earth County|Eagle Lake city|1895|0|4|Hardman|Zackary|2992|Idaho|M|Son|||18|109311 +3010|MN|Blue Earth County|Eagle Lake city|1895|0|5|Hardman|Alida Carolann|2996|Maine|F|Daughter|||14|109312 +3010|MN|Blue Earth County|Eagle Lake city|1895|0|6|Hardman|Mae|2998|Idaho|F|Daughter|||12|109313 +3010|MN|Blue Earth County|Eagle Lake city|1895|0|7|Hardman|Yvonne|3000|West Virginia|F|Daughter|||10|109314 + +3010|SC|Marion County|Sellers town|1896|0|1|Bechtold|Sharell|2978|New Mexico|F|Spouse|||32|109315 +3010|SC|Marion County|Sellers town|1896|0|2|Bechtold|Henrietta|3000|Cuba|F|Daughter|||10|109316 +3010|SC|Marion County|Sellers town|1896|0|3|Bechtold|Mignon|3003|SC|F|Daughter|||7|109317 +3010|SC|Marion County|Sellers town|1896|0|4|Bechtold|Buck Kevin|3005|SC|M|Son|||5|109318 +3010|SC|Marion County|Sellers town|1896|0|5|Bechtold|Dudley|3007|SC|M|Son|||3|109319 + +3010|FL|Lee County|Iona CDP|1897|0|1|Stewart|Jamal Cleo|2942|New Hampshire|M|Head|||68|109320 +3010|FL|Lee County|Iona CDP|1897|0|2|Stewart|Josefa|2940|Pennsylvania|F|Spouse|||70|109321 +3010|FL|Lee County|Iona CDP|1897|0|3|Stewart|Dewey|2964|Niger|M|Son|||46|109322 +3010|FL|Lee County|Iona CDP|1897|0|4|Stewart|Shelley|2982|Argentina|F|Daughter|||28|109323 +3010|FL|Lee County|Iona CDP|1897|0|5|Stewart|Magda|2986|Kentucky|F|Daughter|||24|109324 +3010|FL|Lee County|Iona CDP|1897|0|6|Stewart|Toi|2998|South Dakota|F|Daughter|||12|109325 +3010|FL|Lee County|Iona CDP|1897|0|7|Stewart|Doris|3003|OR|F|Daughter|||7|109326 + +3010|PR|Coamo Municipio|Los Llanos comunidad|1898|0|1|Foye|Lawrence Carl|2945|Hawaii|M|Head|||65|109327 +3010|PR|Coamo Municipio|Los Llanos comunidad|1898|0|2|Foye|Maryland|2969|Utah|F|Spouse|||41|109328 +3010|PR|Coamo Municipio|Los Llanos comunidad|1898|0|3|Foye|Mellisa|2995|New Jersey|F|Daughter|||15|109329 +3010|PR|Coamo Municipio|Los Llanos comunidad|1898|0|4|Foye|Marnie Dionna|2999|Arizona|F|Daughter|||11|109330 +3010|PR|Coamo Municipio|Los Llanos comunidad|1898|0|5|Foye|Carol|3001|PR|M|Son|||9|109331 + +3010|MI|Chippewa County|Kinross charter township|1899|0|1|Galluzzo|Silas Karl|2972|Hawaii|M|Head|||38|109332 +3010|MI|Chippewa County|Kinross charter township|1899|0|2|Galluzzo|Shaunna Jeanett|2972|Illinois|F|Spouse|||38|109333 +3010|MI|Chippewa County|Kinross charter township|1899|0|3|Galluzzo|Norberto|2996|Ohio|M|Son|||14|109334 +3010|MI|Chippewa County|Kinross charter township|1899|0|4|Galluzzo|Bernice Alline|2998|Oregon|F|Daughter|||12|109335 +3010|MI|Chippewa County|Kinross charter township|1899|0|5|Galluzzo|Diann|3001|MI|F|Daughter|||9|109336 + +3010|OK|Sequoyah County|Roland town|1900|0|1|Guenin|Eugene Eric|2980|Maryland|M|Head|||30|109337 +3010|OK|Sequoyah County|Roland town|1900|0|2|Guenin|Glinda|2984|Alabama|F|Spouse|||26|109338 +3010|OK|Sequoyah County|Roland town|1900|0|3|Guenin|Andreas|3003|OK|M|Son|||7|109339 +3010|OK|Sequoyah County|Roland town|1900|0|4|Guenin|Eduardo|3005|OK|M|Son|||5|109340 +3010|OK|Sequoyah County|Roland town|1900|0|5|Guenin|Connie|3007|OK|F|Daughter|||3|109341 + +3010|MA|Franklin County|South Deerfield CDP|1901|0|1|Dubray|Randolph Caleb|2959|Australia|M|Head|||51|109342 +3010|MA|Franklin County|South Deerfield CDP|1901|0|2|Dubray|Ludie|2960|Georgia|F|Spouse|||50|109343 +3010|MA|Franklin County|South Deerfield CDP|1901|0|3|Dubray|Homer|2982|West Virginia|M|Son|||28|109344 +3010|MA|Franklin County|South Deerfield CDP|1901|0|4|Dubray|Micha|2984|Utah|F|Daughter|||26|109345 +3010|MA|Franklin County|South Deerfield CDP|1901|0|5|Dubray|Jonathon Richie|2996|North Dakota|M|Son|||14|109346 +3010|MA|Franklin County|South Deerfield CDP|1901|0|6|Dubray|Mathew|3000|Vermont|M|Son|||10|109347 +3010|MA|Franklin County|South Deerfield CDP|1901|0|7|Dubray|Alva Drew|3001|MA|M|Son|||9|109348 +3010|MA|Franklin County|South Deerfield CDP|1901|0|8|Dubray|Racquel|3007|MA|F|Daughter|||3|109349 + +3010|NY|Nassau County|Salisbury CDP|1902|0|1|Calonsag|Dewey Glen|2962|Oregon|M|Head|||48|109350 +3010|NY|Nassau County|Salisbury CDP|1902|0|2|Calonsag|Virgil Josie|2975|Norway|F|Spouse|||35|109351 +3010|NY|Nassau County|Salisbury CDP|1902|0|3|Calonsag|Edgardo|2997|Oregon|M|Son|||13|109352 +3010|NY|Nassau County|Salisbury CDP|1902|0|4|Calonsag|Wes Cary|3005|NY|M|Son|||5|109353 +3010|NY|Nassau County|Salisbury CDP|1902|0|5|Calonsag|Carita|3009|NY|F|Daughter|||1|109354 + +3010|MI|Benzie County|Weldon township|1903|0|1|Ogans|Angelia|2962|Oregon|F|Spouse|||48|109355 +3010|MI|Benzie County|Weldon township|1903|0|2|Ogans|Burton|2994|Ohio|M|Son|||16|109356 +3010|MI|Benzie County|Weldon township|1903|0|3|Ogans|Odis|3000|California|M|Son|||10|109357 +3010|MI|Benzie County|Weldon township|1903|0|4|Ogans|Rocio|3007|MI|F|Daughter|||3|109358 + +3010|NY|Nassau County|Baldwin Harbor CDP|1904|0|1|Penders|Keneth Darrel|2948|Iowa|M|Head|||62|109359 +3010|NY|Nassau County|Baldwin Harbor CDP|1904|0|2|Penders|Shala|2963|Maine|F|Spouse|||47|109360 +3010|NY|Nassau County|Baldwin Harbor CDP|1904|0|3|Penders|Christa|2989|Nevada|F|Daughter|||21|109361 +3010|NY|Nassau County|Baldwin Harbor CDP|1904|0|4|Penders|Evan|2993|Michigan|M|Son|||17|109362 +3010|NY|Nassau County|Baldwin Harbor CDP|1904|0|5|Penders|Daisy|2995|Illinois|F|Daughter|||15|109363 +3010|NY|Nassau County|Baldwin Harbor CDP|1904|0|6|Penders|Freeda|2997|Texas|F|Daughter|||13|109364 +3010|NY|Nassau County|Baldwin Harbor CDP|1904|0|7|Penders|Sandy|2999|Tanzania, United Republic Of|M|Son|||11|109365 + +3010|NY|Otsego County|Edmeston town|1905|0|1|Dudack|Luke Nicolas|2938|Saint Lucia|M|Head|||72|109366 +3010|NY|Otsego County|Edmeston town|1905|0|2|Dudack|Edwina|2974|Texas|F|Daughter|||36|109367 +3010|NY|Otsego County|Edmeston town|1905|0|3|Dudack|George|2986|Mississippi|F|Daughter|||24|109368 +3010|NY|Otsego County|Edmeston town|1905|0|4|Dudack|Amos|2996|Michigan|M|Son|||14|109369 +3010|NY|Otsego County|Edmeston town|1905|0|5|Dudack|Kaci|2998|Texas|F|Daughter|||12|109370 + +3010|AZ|Navajo County|Seba Dalkai CDP|1906|0|1|Bowring|Martin Deandre|2965|Colorado|M|Head|||45|109371 +3010|AZ|Navajo County|Seba Dalkai CDP|1906|0|2|Bowring|Usha|2974|Rhode Island|F|Spouse|||36|109372 +3010|AZ|Navajo County|Seba Dalkai CDP|1906|0|3|Bowring|Otis|2996|Arkansas|M|Son|||14|109373 +3010|AZ|Navajo County|Seba Dalkai CDP|1906|0|4|Bowring|Pamela|2998|Missouri|F|Daughter|||12|109374 +3010|AZ|Navajo County|Seba Dalkai CDP|1906|0|5|Bowring|Tyron|3001|AZ|M|Son|||9|109375 +3010|AZ|Navajo County|Seba Dalkai CDP|1906|0|6|Bowring|Hunter|3003|AZ|M|Son|||7|109376 +3010|AZ|Navajo County|Seba Dalkai CDP|1906|0|7|Bowring|Donya|3005|AZ|F|Daughter|||5|109377 + +3010|NM|Grant County|Cobre CDP|1907|0|1|Heybrock|Sue|2967|Utah|F|Head|||43|109378 +3010|NM|Grant County|Cobre CDP|1907|0|2|Heybrock|Karissa|2991|Germany|F|Daughter|||19|109379 + +3010|PA|Fayette County|Washington township|1908|0|1|Novas|Hulda|2977|Nevada|F|Head|||33|109380 +3010|PA|Fayette County|Washington township|1908|0|2|Novas|Franklyn|2999|Connecticut|M|Son|||11|109381 + +3010|MI|Missaukee County|Lake township|1909|0|1|Daehler|Dan|2938|Iceland|M|Head|||72|109382 +3010|MI|Missaukee County|Lake township|1909|0|2|Daehler|My|2943|Wisconsin|F|Spouse|||67|109383 +3010|MI|Missaukee County|Lake township|1909|0|3|Daehler|Eveline|2995|Wisconsin|F|Daughter|||15|109384 +3010|MI|Missaukee County|Lake township|1909|0|4|Daehler|Tula|2997|Oklahoma|F|Daughter|||13|109385 + +3010|IL|Cook County, DuPage County|Bensenville village|1910|0|1|Doyel|Maximo Byron|2937|Pennsylvania|M|Head|||73|109386 +3010|IL|Cook County, DuPage County|Bensenville village|1910|0|2|Doyel|Johnnie|2985|Haiti|F|Daughter|||25|109387 +3010|IL|Cook County, DuPage County|Bensenville village|1910|0|3|Doyel|Antony|2993|Vermont|M|Son|||17|109388 +3010|IL|Cook County, DuPage County|Bensenville village|1910|0|4|Doyel|Lilla|2999|Alaska|F|Daughter|||11|109389 + +3010|OK|Adair County|West Peavine CDP|1911|0|1|Clouse|Preston Hugh|2953|Nevada|M|Head|||57|109390 +3010|OK|Adair County|West Peavine CDP|1911|0|2|Clouse|Honey|2954|Arkansas|F|Spouse|||56|109391 +3010|OK|Adair County|West Peavine CDP|1911|0|3|Clouse|Edwardo|2992|Washington|M|Son|||18|109392 +3010|OK|Adair County|West Peavine CDP|1911|0|4|Clouse|Herlinda|2994|Missouri|F|Daughter|||16|109393 +3010|OK|Adair County|West Peavine CDP|1911|0|5|Clouse|Kati Cassie|2996|Utah|F|Daughter|||14|109394 +3010|OK|Adair County|West Peavine CDP|1911|0|6|Clouse|Seymour|3000|Andorra|M|Son|||10|109395 +3010|OK|Adair County|West Peavine CDP|1911|0|7|Clouse|Alta Kimi|3001|OK|F|Daughter|||9|109396 +3010|OK|Adair County|West Peavine CDP|1911|0|8|Clouse|Deon|3003|OK|M|Son|||7|109397 +3010|OK|Adair County|West Peavine CDP|1911|0|9|Clouse|Charley|3007|OK|M|Son|||3|109398 +3010|OK|Adair County|West Peavine CDP|1911|0|10|Clouse|Al|3009|OK|M|Son|||1|109399 + +3010|WI|Washburn County|Sarona town|1912|0|1|Peterson|Octavio Lacy|2946|Cape Verde|M|Head|||64|109400 +3010|WI|Washburn County|Sarona town|1912|0|2|Peterson|Sun|2988|Pennsylvania|F|Daughter|||22|109401 +3010|WI|Washburn County|Sarona town|1912|0|3|Peterson|Claudia|2994|New Jersey|F|Daughter|||16|109402 + +3010|GA|Barrow County|Russell CDP|1913|0|1|Hamby|Rex Brent|2940|Northern Mariana Islands|M|Head|||70|109403 +3010|GA|Barrow County|Russell CDP|1913|0|2|Hamby|Cindi|2980|Tennessee|F|Daughter|||30|109404 + +3010|MT|Carbon County|Boyd CDP|1914|0|1|Alarcon|Roger Benny|2938|West Virginia|M|Head|||72|109405 +3010|MT|Carbon County|Boyd CDP|1914|0|2|Alarcon|Lorelei|2953|Michigan|F|Spouse|||57|109406 +3010|MT|Carbon County|Boyd CDP|1914|0|3|Alarcon|Tarsha|2999|Oklahoma|F|Daughter|||11|109407 +3010|MT|Carbon County|Boyd CDP|1914|0|4|Alarcon|Bulah|3003|MT|F|Daughter|||7|109408 +3010|MT|Carbon County|Boyd CDP|1914|0|5|Alarcon|Maryanne|3005|MT|F|Daughter|||5|109409 + +3010|GA|Bartow County|Euharlee city|1915|0|1|Ketterer|Grover|2963|Indiana|M|Head|||47|109410 +3010|GA|Bartow County|Euharlee city|1915|0|2|Ketterer|Joanne|2962|Ohio|F|Spouse|||48|109411 +3010|GA|Bartow County|Euharlee city|1915|0|3|Ketterer|Tawny|2988|Angola|F|Daughter|||22|109412 +3010|GA|Bartow County|Euharlee city|1915|0|4|Ketterer|Dorathy|2994|New Hampshire|F|Daughter|||16|109413 +3010|GA|Bartow County|Euharlee city|1915|0|5|Ketterer|Russell|2998|Arkansas|F|Daughter|||12|109414 +3010|GA|Bartow County|Euharlee city|1915|0|6|Ketterer|Keri|3007|GA|F|Daughter|||3|109415 + +3010|IA|Wapello County|Agency city|1916|0|1|Chaves|Pete Wilmer|2961|New Hampshire|M|Head|||49|109416 +3010|IA|Wapello County|Agency city|1916|0|2|Chaves|Charmain|2967|Mississippi|F|Spouse|||43|109417 +3010|IA|Wapello County|Agency city|1916|0|3|Chaves|Kaycee|2993|Tennessee|F|Daughter|||17|109418 +3010|IA|Wapello County|Agency city|1916|0|4|Chaves|Marty|2999|New York|M|Son|||11|109419 +3010|IA|Wapello County|Agency city|1916|0|5|Chaves|Siobhan Keiko|3001|IA|F|Daughter|||9|109420 +3010|IA|Wapello County|Agency city|1916|0|6|Chaves|Frankie|3005|IA|M|Son|||5|109421 +3010|IA|Wapello County|Agency city|1916|0|7|Chaves|Lacy|3007|IA|F|Daughter|||3|109422 + +3010|WI|Kenosha County|Bristol town|1917|0|1|Vernet|Frankie Tanner|2953|Alabama|M|Head|||57|109423 +3010|WI|Kenosha County|Bristol town|1917|0|2|Vernet|Cayla|2955|Connecticut|F|Spouse|||55|109424 +3010|WI|Kenosha County|Bristol town|1917|0|3|Vernet|Clifford|2991|Pennsylvania|M|Son|||19|109425 +3010|WI|Kenosha County|Bristol town|1917|0|4|Vernet|Jackie Palmer|2993|Virginia|M|Son|||17|109426 +3010|WI|Kenosha County|Bristol town|1917|0|5|Vernet|Shan|2999|Pennsylvania|F|Daughter|||11|109427 +3010|WI|Kenosha County|Bristol town|1917|0|6|Vernet|Kenyatta|3005|WI|F|Daughter|||5|109428 +3010|WI|Kenosha County|Bristol town|1917|0|7|Vernet|Nick|3007|WI|M|Son|||3|109429 + +3010|KS|Anderson County|Colony city|1918|0|1|Lynch|Glen Calvin|2972|Nebraska|M|Head|||38|109430 +3010|KS|Anderson County|Colony city|1918|0|2|Lynch|Jules|2994|Colorado|M|Son|||16|109431 +3010|KS|Anderson County|Colony city|1918|0|3|Lynch|Felipe|2998|Michigan|M|Son|||12|109432 + +3010|VA|Botetourt County|Blue Ridge CDP|1919|0|1|Aeschliman|Christian Truman|2968|Arkansas|M|Head|||42|109433 +3010|VA|Botetourt County|Blue Ridge CDP|1919|0|2|Aeschliman|Erica|2971|Connecticut|F|Spouse|||39|109434 +3010|VA|Botetourt County|Blue Ridge CDP|1919|0|3|Aeschliman|Prince|2995|United States|M|Son|||15|109435 +3010|VA|Botetourt County|Blue Ridge CDP|1919|0|4|Aeschliman|Denna|2997|Nevada|F|Daughter|||13|109436 + +3010|MT|Phillips County|Whitewater CDP|1920|0|1|Skillan|Latrina|2965|United Arab Emirates|F|Head|||45|109437 +3010|MT|Phillips County|Whitewater CDP|1920|0|2|Skillan|Dustin|2995|West Virginia|M|Son|||15|109438 +3010|MT|Phillips County|Whitewater CDP|1920|0|3|Skillan|Bobette|2997|Florida|F|Daughter|||13|109439 + +3010|MN|Marshall County|Nelson Park township|1921|0|1|Hilliard|Roberto Woodrow|2939|Georgia|M|Head|||71|109440 +3010|MN|Marshall County|Nelson Park township|1921|0|2|Hilliard|Cecily|2978|Cape Verde|F|Daughter|||32|109441 +3010|MN|Marshall County|Nelson Park township|1921|0|3|Hilliard|Jacinto|2986|New Mexico|M|Son|||24|109442 +3010|MN|Marshall County|Nelson Park township|1921|0|4|Hilliard|Marget|2992|Hawaii|F|Daughter|||18|109443 +3010|MN|Marshall County|Nelson Park township|1921|0|5|Hilliard|Sharika Kia|2998|Massachusetts|F|Daughter|||12|109444 +3010|MN|Marshall County|Nelson Park township|1921|0|6|Hilliard|Terry|3000|New York|F|Daughter|||10|109445 + +3010|TX|Denton County|Highland Village city|1922|0|1|Sherley|Damien Bryant|2957|Michigan|M|Head|||53|109446 +3010|TX|Denton County|Highland Village city|1922|0|2|Sherley|Luvenia|2956|Connecticut|F|Spouse|||54|109447 +3010|TX|Denton County|Highland Village city|1922|0|3|Sherley|Hipolito|3001|TX|M|Son|||9|109448 +3010|TX|Denton County|Highland Village city|1922|0|4|Sherley|Rodger|3005|TX|M|Son|||5|109449 +3010|TX|Denton County|Highland Village city|1922|0|5|Sherley|Martina|3007|TX|F|Daughter|||3|109450 +3010|TX|Denton County|Highland Village city|1922|0|6|Sherley|Jared|3009|TX|M|Son|||1|109451 + +3010|IA|Johnson County|Swisher city|1923|0|1|Baxley|Jarod Granville|2948|Maine|M|Head|||62|109452 +3010|IA|Johnson County|Swisher city|1923|0|2|Baxley|Salley|2967|Illinois|F|Spouse|||43|109453 +3010|IA|Johnson County|Swisher city|1923|0|3|Baxley|Kori Leilani|2987|Alabama|F|Daughter|||23|109454 +3010|IA|Johnson County|Swisher city|1923|0|4|Baxley|Taryn|2991|Missouri|F|Daughter|||19|109455 +3010|IA|Johnson County|Swisher city|1923|0|5|Baxley|Jackqueline|2997|Maryland|F|Daughter|||13|109456 + +3010|WI|Juneau County|Kildare town|1924|0|1|Hoffman|Trenton Jamey|2980|Georgia|M|Head|||30|109457 +3010|WI|Juneau County|Kildare town|1924|0|2|Hoffman|Calista|2978|Utah|F|Spouse|||32|109458 +3010|WI|Juneau County|Kildare town|1924|0|3|Hoffman|Dorsey Eli|3001|WI|M|Son|||9|109459 + +3010|MI|Emmet County|Bliss township|1925|0|1|Crawford|Richie Lamont|2970|Minnesota|M|Head|||40|109460 +3010|MI|Emmet County|Bliss township|1925|0|2|Crawford|Rickie|2995|Georgia|M|Son|||15|109461 +3010|MI|Emmet County|Bliss township|1925|0|3|Crawford|Nana|2997|Tennessee|F|Daughter|||13|109462 +3010|MI|Emmet County|Bliss township|1925|0|4|Crawford|Carol Hubert|3001|MI|M|Son|||9|109463 +3010|MI|Emmet County|Bliss township|1925|0|5|Crawford|Lavern|3003|MI|M|Son|||7|109464 +3010|MI|Emmet County|Bliss township|1925|0|6|Crawford|Gennie|3009|MI|F|Daughter|||1|109465 + +3010|NY|Erie County|Sardinia town|1926|0|1|Nurse|Markus Drew|2984|Arkansas|M|Head|||26|109466 +3010|NY|Erie County|Sardinia town|1926|0|2|Nurse|Lorita|2984|Montana|F|Spouse|||26|109467 +3010|NY|Erie County|Sardinia town|1926|0|3|Nurse|Stefanie|3005|NY|F|Daughter|||5|109468 +3010|NY|Erie County|Sardinia town|1926|0|4|Nurse|Sook|3007|NY|F|Daughter|||3|109469 +3010|NY|Erie County|Sardinia town|1926|0|5|Nurse|Isreal|3009|NY|M|Son|||1|109470 + +3010|NE|Gosper County|Smithfield village|1927|0|1|Eure|Chas Donnell|2957|Minnesota|M|Head|||53|109471 +3010|NE|Gosper County|Smithfield village|1927|0|2|Eure|Nam|2966|Texas|F|Spouse|||44|109472 +3010|NE|Gosper County|Smithfield village|1927|0|3|Eure|Calvin|2986|South Dakota|M|Son|||24|109473 +3010|NE|Gosper County|Smithfield village|1927|0|4|Eure|Armando|2990|New Mexico|M|Son|||20|109474 +3010|NE|Gosper County|Smithfield village|1927|0|5|Eure|Jed|2992|Nigeria|M|Son|||18|109475 +3010|NE|Gosper County|Smithfield village|1927|0|6|Eure|Reed|2998|Kansas|M|Son|||12|109476 +3010|NE|Gosper County|Smithfield village|1927|0|7|Eure|Jolynn Clora|3005|NE|F|Daughter|||5|109477 +3010|NE|Gosper County|Smithfield village|1927|0|8|Eure|Wilmer|3007|NE|M|Son|||3|109478 + +3010|WI|Green County|Monroe city|1928|0|1|Dorsey|Demetrice Odessa|2983|Austria|F|Head|||27|109479 + +3010|PA|Montgomery County|Lansdale borough|1929|0|1|Wenrich|Colin Ed|2948|Arkansas|M|Head|||62|109480 +3010|PA|Montgomery County|Lansdale borough|1929|0|2|Wenrich|Cordia|2953|West Virginia|F|Spouse|||57|109481 +3010|PA|Montgomery County|Lansdale borough|1929|0|3|Wenrich|Dee|2977|Nevada|M|Son|||33|109482 +3010|PA|Montgomery County|Lansdale borough|1929|0|4|Wenrich|Kai|2983|North Carolina|F|Daughter|||27|109483 +3010|PA|Montgomery County|Lansdale borough|1929|0|5|Wenrich|Carita|2993|Arizona|F|Daughter|||17|109484 +3010|PA|Montgomery County|Lansdale borough|1929|0|6|Wenrich|Alethea|2999|North Carolina|F|Daughter|||11|109485 +3010|PA|Montgomery County|Lansdale borough|1929|0|7|Wenrich|Edgar|3007|PA|M|Son|||3|109486 + +3010|LA|Calcasieu Parish|Gillis CDP|1930|0|1|Seneker|Otis Malik|2979|Arkansas|M|Head|||31|109487 +3010|LA|Calcasieu Parish|Gillis CDP|1930|0|2|Seneker|Damaris|2984|Kentucky|F|Spouse|||26|109488 +3010|LA|Calcasieu Parish|Gillis CDP|1930|0|3|Seneker|Rolf|3001|LA|M|Son|||9|109489 +3010|LA|Calcasieu Parish|Gillis CDP|1930|0|4|Seneker|Aubrey|3005|LA|M|Son|||5|109490 + +3010|ME|Androscoggin County|Poland town|1931|0|1|Roudybush|Dwayne Rusty|2949|Hawaii|M|Head|||61|109491 +3010|ME|Androscoggin County|Poland town|1931|0|2|Roudybush|Emma|2972|Kentucky|F|Spouse|||38|109492 +3010|ME|Androscoggin County|Poland town|1931|0|3|Roudybush|Billi|2996|New York|F|Daughter|||14|109493 +3010|ME|Androscoggin County|Poland town|1931|0|4|Roudybush|Ardelle|2998|Minnesota|F|Daughter|||12|109494 +3010|ME|Androscoggin County|Poland town|1931|0|5|Roudybush|Maira|3000|Wisconsin|F|Daughter|||10|109495 +3010|ME|Androscoggin County|Poland town|1931|0|6|Roudybush|Arminda|3005|ME|F|Daughter|||5|109496 +3010|ME|Androscoggin County|Poland town|1931|0|7|Roudybush|Laurice|3007|ME|F|Daughter|||3|109497 + +3010|MT|Jefferson County|Cardwell CDP|1932|0|1|Isaac|Eldon Eliseo|2964|Mauritania|M|Head|||46|109498 +3010|MT|Jefferson County|Cardwell CDP|1932|0|2|Isaac|Dina|2965|Connecticut|F|Spouse|||45|109499 +3010|MT|Jefferson County|Cardwell CDP|1932|0|3|Isaac|Rubye|2993|Oregon|F|Daughter|||17|109500 +3010|MT|Jefferson County|Cardwell CDP|1932|0|4|Isaac|Vance|2995|Alabama|M|Son|||15|109501 +3010|MT|Jefferson County|Cardwell CDP|1932|0|5|Isaac|Alonso Julian|3003|MT|M|Son|||7|109502 +3010|MT|Jefferson County|Cardwell CDP|1932|0|6|Isaac|Cruz Jerrod|3009|MT|M|Son|||1|109503 + +3010|OK|Beckham County|Erick city|1933|0|1|Dragos|Bernie Shad|2972|Tennessee|M|Head|||38|109504 +3010|OK|Beckham County|Erick city|1933|0|2|Dragos|Lettie|2969|Vermont|F|Spouse|||41|109505 +3010|OK|Beckham County|Erick city|1933|0|3|Dragos|Reggie|2989|Alaska|M|Son|||21|109506 +3010|OK|Beckham County|Erick city|1933|0|4|Dragos|Fran|3003|OK|F|Daughter|||7|109507 +3010|OK|Beckham County|Erick city|1933|0|5|Dragos|Jeanelle|3009|OK|F|Daughter|||1|109508 + +3010|KS|Butler County|Benton city|1934|0|1|Flynn|Rhona|2966|San Marino|F|Head|||44|109509 +3010|KS|Butler County|Benton city|1934|0|2|Flynn|Alysha|2988|Mississippi|F|Daughter|||22|109510 +3010|KS|Butler County|Benton city|1934|0|3|Flynn|Micheal|2996|New Mexico|F|Daughter|||14|109511 + +3010|IN|Washington County|Livonia town|1935|0|1|Trebon|Tammi|2956|New York|F|Head|||54|109512 +3010|IN|Washington County|Livonia town|1935|0|2|Trebon|Shannon|2996|West Virginia|M|Son|||14|109513 +3010|IN|Washington County|Livonia town|1935|0|3|Trebon|Dorsey|2998|Arizona|M|Son|||12|109514 +3010|IN|Washington County|Livonia town|1935|0|4|Trebon|Juan|3000|Louisiana|M|Son|||10|109515 + +3010|NH|Cheshire County|Swanzey town|1936|0|1|Vallerand|Pasquale|2942|Georgia|M|Head|||68|109516 +3010|NH|Cheshire County|Swanzey town|1936|0|2|Vallerand|Gloria|2966|New Caledonia|F|Spouse|||44|109517 +3010|NH|Cheshire County|Swanzey town|1936|0|3|Vallerand|Yolande|2986|Connecticut|F|Daughter|||24|109518 +3010|NH|Cheshire County|Swanzey town|1936|0|4|Vallerand|Sid|2996|Oklahoma|M|Son|||14|109519 +3010|NH|Cheshire County|Swanzey town|1936|0|5|Vallerand|Rhiannon|3001|NH|F|Daughter|||9|109520 +3010|NH|Cheshire County|Swanzey town|1936|0|6|Vallerand|Antione|3007|NH|M|Son|||3|109521 + +3010|MI|Newaygo County|Grant city|1937|0|1|Pritchard|Johnnie|2938|Connecticut|M|Head|||72|109522 +3010|MI|Newaygo County|Grant city|1937|0|2|Pritchard|Delphia|2955|Niger|F|Spouse|||55|109523 +3010|MI|Newaygo County|Grant city|1937|0|3|Pritchard|Linwood Caleb|2983|Nepal|M|Son|||27|109524 +3010|MI|Newaygo County|Grant city|1937|0|4|Pritchard|Everett|3005|MI|M|Son|||5|109525 +3010|MI|Newaygo County|Grant city|1937|0|5|Pritchard|Dion|3007|MI|M|Son|||3|109526 + +3010|IA|Clay County|Gillett Grove city|1938|0|1|Viramontes|Marjory|2980|Georgia|F|Spouse|||30|109527 +3010|IA|Clay County|Gillett Grove city|1938|0|2|Viramontes|Victor|3003|IA|M|Son|||7|109528 +3010|IA|Clay County|Gillett Grove city|1938|0|3|Viramontes|Domenic|3009|IA|M|Son|||1|109529 + +3010|IL|Winnebago County|Rockton village|1939|0|1|Lund|Alan Wilton|2984|Washington|M|Head|||26|109530 +3010|IL|Winnebago County|Rockton village|1939|0|2|Lund|Marianna|2982|Missouri|F|Spouse|||28|109531 +3010|IL|Winnebago County|Rockton village|1939|0|3|Lund|Felipa|3005|IL|F|Daughter|||5|109532 +3010|IL|Winnebago County|Rockton village|1939|0|4|Lund|Kali Joshua|3007|IL|F|Daughter|||3|109533 + +3010|MN|Nobles County|Ransom township|1940|0|1|Obrien|Lucas Nickolas|2958|Wyoming|M|Head|||52|109534 +3010|MN|Nobles County|Ransom township|1940|0|2|Obrien|Claire|2966|New Hampshire|F|Spouse|||44|109535 +3010|MN|Nobles County|Ransom township|1940|0|3|Obrien|Adrian|2986|Wisconsin|M|Son|||24|109536 +3010|MN|Nobles County|Ransom township|1940|0|4|Obrien|Pennie|2998|Trinidad And Tobago|F|Daughter|||12|109537 + +3010|WA|Clallam County|Carlsborg CDP|1941|0|1|Sutton|Adrian Kris|2959|Hawaii|M|Head|||51|109538 +3010|WA|Clallam County|Carlsborg CDP|1941|0|2|Sutton|Rosalie|2980|Georgia|F|Spouse|||30|109539 +3010|WA|Clallam County|Carlsborg CDP|1941|0|3|Sutton|Charolette|3000|Florida|F|Daughter|||10|109540 +3010|WA|Clallam County|Carlsborg CDP|1941|0|4|Sutton|Sheldon Erik|3001|WA|M|Son|||9|109541 +3010|WA|Clallam County|Carlsborg CDP|1941|0|5|Sutton|Brendon|3003|WA|M|Son|||7|109542 +3010|WA|Clallam County|Carlsborg CDP|1941|0|6|Sutton|Ema|3005|WA|F|Daughter|||5|109543 +3010|WA|Clallam County|Carlsborg CDP|1941|0|7|Sutton|Joshua|3009|WA|M|Son|||1|109544 + +3010|AL|Lamar County|Millport town|1942|0|1|Bryant|Ola|2953|Rhode Island|F|Spouse|||57|109545 +3010|AL|Lamar County|Millport town|1942|0|2|Bryant|Janie Myrta|2989|Alabama|F|Daughter|||21|109546 +3010|AL|Lamar County|Millport town|1942|0|3|Bryant|Hermina|2991|Kentucky|F|Daughter|||19|109547 +3010|AL|Lamar County|Millport town|1942|0|4|Bryant|Edwin|2997|Florida|M|Son|||13|109548 +3010|AL|Lamar County|Millport town|1942|0|5|Bryant|Herta|2999|Pennsylvania|F|Daughter|||11|109549 +3010|AL|Lamar County|Millport town|1942|0|6|Bryant|Clark|3003|AL|M|Son|||7|109550 + +3010|NY|Saratoga County|Edinburg town|1943|0|1|Lovinggood|Whitney|2945|Barbados|M|Head|||65|109551 +3010|NY|Saratoga County|Edinburg town|1943|0|2|Lovinggood|Gianna|2990|Kyrgyzstan|F|Daughter|||20|109552 +3010|NY|Saratoga County|Edinburg town|1943|0|3|Lovinggood|Jamaal|2996|New Hampshire|M|Son|||14|109553 +3010|NY|Saratoga County|Edinburg town|1943|0|4|Lovinggood|Deshawn|2998|Kansas|M|Son|||12|109554 +3010|NY|Saratoga County|Edinburg town|1943|0|5|Lovinggood|Mickey|3000|Iowa|M|Son|||10|109555 +3010|NY|Saratoga County|Edinburg town|1943|0|6|Lovinggood|Bill|3001|NY|M|Son|||9|109556 + +3010|AK|Fairbanks North Star Borough|Harding-Birch Lakes CDP|1944|0|1|Kennedy|Ron Jamison|2947|Connecticut|M|Head|||63|109557 +3010|AK|Fairbanks North Star Borough|Harding-Birch Lakes CDP|1944|0|2|Kennedy|Parthenia Sirena|2981|North Dakota|F|Daughter|||29|109558 +3010|AK|Fairbanks North Star Borough|Harding-Birch Lakes CDP|1944|0|3|Kennedy|Titus|2987|Minnesota|M|Son|||23|109559 +3010|AK|Fairbanks North Star Borough|Harding-Birch Lakes CDP|1944|0|4|Kennedy|Clayton|2997|Sudan|M|Son|||13|109560 + +3010|AL|Talladega County|Bon Air town|1945|0|1|Andrade|Donn Fred|2959|Mississippi|M|Head|||51|109561 +3010|AL|Talladega County|Bon Air town|1945|0|2|Andrade|Eden|2995|Namibia|F|Daughter|||15|109562 +3010|AL|Talladega County|Bon Air town|1945|0|3|Andrade|Chong|2999|New Jersey|F|Daughter|||11|109563 +3010|AL|Talladega County|Bon Air town|1945|0|4|Andrade|Jeremiah|3001|IN|M|Son|||9|109564 + +3010|NJ|Bergen County|Carlstadt borough|1946|0|1|Kent|Rodrick Everette|2968|Nevada|M|Head|||42|109565 +3010|NJ|Bergen County|Carlstadt borough|1946|0|2|Kent|Louisa|2964|Indonesia|F|Spouse|||46|109566 +3010|NJ|Bergen County|Carlstadt borough|1946|0|3|Kent|Myung|2988|Iowa|F|Daughter|||22|109567 +3010|NJ|Bergen County|Carlstadt borough|1946|0|4|Kent|Oneida|2996|Rhode Island|F|Daughter|||14|109568 +3010|NJ|Bergen County|Carlstadt borough|1946|0|5|Kent|Dee|3001|GA|M|Son|||9|109569 +3010|NJ|Bergen County|Carlstadt borough|1946|0|6|Kent|Jc Lawrence|3005|GA|M|Son|||5|109570 + +3010|PA|Clarion County|Callensburg borough|1947|0|1|Pollak|Alfonzo|2956|North Carolina|M|Head|||54|109571 +3010|PA|Clarion County|Callensburg borough|1947|0|2|Pollak|Frieda|2973|South Dakota|F|Spouse|||37|109572 +3010|PA|Clarion County|Callensburg borough|1947|0|3|Pollak|Daren|2995|Alaska|M|Son|||15|109573 +3010|PA|Clarion County|Callensburg borough|1947|0|4|Pollak|Britt|3003|PA|M|Son|||7|109574 +3010|PA|Clarion County|Callensburg borough|1947|0|5|Pollak|Le|3005|PA|F|Daughter|||5|109575 +3010|PA|Clarion County|Callensburg borough|1947|0|6|Pollak|Stacy|3009|PA|M|Son|||1|109576 + +3010|AR|Johnson County|Clarksville city|1948|0|1|Guity|Bernardo Walker|2945|Nevada|M|Head|||65|109577 +3010|AR|Johnson County|Clarksville city|1948|0|2|Guity|Tora|2946|Colorado|F|Spouse|||64|109578 +3010|AR|Johnson County|Clarksville city|1948|0|3|Guity|Albertine|2974|Alaska|F|Daughter|||36|109579 +3010|AR|Johnson County|Clarksville city|1948|0|4|Guity|Sarai|2986|Virginia|F|Daughter|||24|109580 +3010|AR|Johnson County|Clarksville city|1948|0|5|Guity|Antwan|2990|Mississippi|M|Son|||20|109581 +3010|AR|Johnson County|Clarksville city|1948|0|6|Guity|Hal|3001|AR|M|Son|||9|109582 +3010|AR|Johnson County|Clarksville city|1948|0|7|Guity|Mavis|3005|AR|F|Daughter|||5|109583 + +3010|NY|Dutchess County|Crown Heights CDP|1949|0|1|Bouler|Marty|2967|Nevada|M|Head|||43|109584 +3010|NY|Dutchess County|Crown Heights CDP|1949|0|2|Bouler|Chana|2963|Minnesota|F|Spouse|||47|109585 +3010|NY|Dutchess County|Crown Heights CDP|1949|0|3|Bouler|Glen|2997|Illinois|M|Son|||13|109586 +3010|NY|Dutchess County|Crown Heights CDP|1949|0|4|Bouler|Antone Hung|3001|NY|M|Son|||9|109587 +3010|NY|Dutchess County|Crown Heights CDP|1949|0|5|Bouler|Wilburn|3003|NY|M|Son|||7|109588 +3010|NY|Dutchess County|Crown Heights CDP|1949|0|6|Bouler|Terri|3007|NY|F|Daughter|||3|109589 + +3010|WI|Manitowoc County|Maribel village|1950|0|1|Woods|Sonja|2971|Maine|F|Head|||39|109590 +3010|WI|Manitowoc County|Maribel village|1950|0|2|Woods|Rey|2997|Virgin Islands, U.s.|M|Son|||13|109591 +3010|WI|Manitowoc County|Maribel village|1950|0|3|Woods|Jerlene|2999|Pennsylvania|F|Daughter|||11|109592 + +3010|MI|Montcalm County|Belvidere township|1951|0|1|Myers|Foster Trenton|2951|Maine|M|Head|||59|109593 +3010|MI|Montcalm County|Belvidere township|1951|0|2|Myers|Felipa Antonia|2973|Connecticut|F|Spouse|||37|109594 +3010|MI|Montcalm County|Belvidere township|1951|0|3|Myers|Olympia|2995|Oklahoma|F|Daughter|||15|109595 +3010|MI|Montcalm County|Belvidere township|1951|0|4|Myers|Agueda|2997|Virginia|F|Daughter|||13|109596 +3010|MI|Montcalm County|Belvidere township|1951|0|5|Myers|Darron|2999|Minnesota|M|Son|||11|109597 +3010|MI|Montcalm County|Belvidere township|1951|0|6|Myers|Loris|3003|MI|F|Daughter|||7|109598 +3010|MI|Montcalm County|Belvidere township|1951|0|7|Myers|Gregory|3009|MI|F|Daughter|||1|109599 + +3010|TX|Cameron County|San Pedro CDP|1952|0|1|Bacolor|Vida|2952|Oklahoma|F|Head|||58|109600 +3010|TX|Cameron County|San Pedro CDP|1952|0|2|Bacolor|Gerardo|2998|Djibouti|M|Son|||12|109601 +3010|TX|Cameron County|San Pedro CDP|1952|0|3|Bacolor|Fiona|3000|Georgia|F|Daughter|||10|109602 + +3010|MN|St. Louis County|Buhl city|1953|0|1|Turner|Earnest Esteban|2945|Florida|M|Head|||65|109603 +3010|MN|St. Louis County|Buhl city|1953|0|2|Turner|Lizzie|2995|Montana|F|Daughter|||15|109604 +3010|MN|St. Louis County|Buhl city|1953|0|3|Turner|Hugh|3001|MN|M|Son|||9|109605 +3010|MN|St. Louis County|Buhl city|1953|0|4|Turner|Earnestine Iola|3003|MN|F|Daughter|||7|109606 + +3010|MN|Faribault County|Winnebago city|1954|0|1|Leftwich|Raymond Irwin|2968|Rhode Island|M|Head|||42|109607 +3010|MN|Faribault County|Winnebago city|1954|0|2|Leftwich|Avril|2984|Wisconsin|F|Spouse|||26|109608 +3010|MN|Faribault County|Winnebago city|1954|0|3|Leftwich|Elizbeth|3001|MN|F|Daughter|||9|109609 +3010|MN|Faribault County|Winnebago city|1954|0|4|Leftwich|Coy|3003|MN|M|Son|||7|109610 +3010|MN|Faribault County|Winnebago city|1954|0|5|Leftwich|Alica|3007|MN|F|Daughter|||3|109611 + +3010|IN|Huntington County|Warren town|1955|0|1|Moorehead|Dwight Von|2968|Minnesota|M|Head|||42|109612 + +3010|PA|Schuylkill County|South Manheim township|1956|0|1|Brady|Jame Aubrey|2940|Nebraska|M|Head|||70|109613 +3010|PA|Schuylkill County|South Manheim township|1956|0|2|Brady|Andres Cornell|2988|Kansas|M|Son|||22|109614 +3010|PA|Schuylkill County|South Manheim township|1956|0|3|Brady|Leonel|2996|Delaware|M|Son|||14|109615 +3010|PA|Schuylkill County|South Manheim township|1956|0|4|Brady|Jutta|2998|Delaware|F|Daughter|||12|109616 + +3010|TX|Ellis County|Midlothian city|1957|0|1|Corners|Rosario Hubert|2942|Mississippi|M|Head|||68|109617 +3010|TX|Ellis County|Midlothian city|1957|0|2|Corners|Marg Lorinda|2962|Paraguay|F|Spouse|||48|109618 +3010|TX|Ellis County|Midlothian city|1957|0|3|Corners|Riley|3000|Oregon|M|Son|||10|109619 +3010|TX|Ellis County|Midlothian city|1957|0|4|Corners|Romeo|3003|TX|M|Son|||7|109620 +3010|TX|Ellis County|Midlothian city|1957|0|5|Corners|Shaunta|3005|TX|F|Daughter|||5|109621 + +3010|ME|Hancock County|Brooksville town|1958|0|1|Hood|Kizzy|2951|Tennessee|F|Head|||59|109622 +3010|ME|Hancock County|Brooksville town|1958|0|2|Hood|Colleen|2977|Togo|F|Daughter|||33|109623 +3010|ME|Hancock County|Brooksville town|1958|0|3|Hood|Donovan|2985|Alaska|M|Son|||25|109624 +3010|ME|Hancock County|Brooksville town|1958|0|4|Hood|Wilber Keneth|2997|Virginia|M|Son|||13|109625 +3010|ME|Hancock County|Brooksville town|1958|0|5|Hood|Jazmin|2999|Nebraska|F|Daughter|||11|109626 + +3010|AR|Lawrence County|Smithville town|1959|0|1|Franklin|Vance Christian|2964|Nevada|M|Head|||46|109627 + +3010|WI|Sawyer County|Winter village|1960|0|1|Infante|Victor Cordell|2949|Kansas|M|Head|||61|109628 +3010|WI|Sawyer County|Winter village|1960|0|2|Infante|Erlene|2968|Alabama|F|Spouse|||42|109629 +3010|WI|Sawyer County|Winter village|1960|0|3|Infante|Laci|2988|New Jersey|F|Daughter|||22|109630 +3010|WI|Sawyer County|Winter village|1960|0|4|Infante|Sheldon|2998|Portugal|M|Son|||12|109631 +3010|WI|Sawyer County|Winter village|1960|0|5|Infante|Gerardo|3000|Niue|M|Son|||10|109632 +3010|WI|Sawyer County|Winter village|1960|0|6|Infante|Hilario|3001|WI|M|Son|||9|109633 +3010|WI|Sawyer County|Winter village|1960|0|7|Infante|Emerson|3003|WI|M|Son|||7|109634 +3010|WI|Sawyer County|Winter village|1960|0|8|Infante|Melvin|3005|WI|F|Daughter|||5|109635 +3010|WI|Sawyer County|Winter village|1960|0|9|Infante|Christopher|3009|WI|F|Daughter|||1|109636 + +3010|ND|Stutsman County|Jamestown city|1961|0|1|Weber|Bernard Frederic|2947|Marshall Islands|M|Head|||63|109637 +3010|ND|Stutsman County|Jamestown city|1961|0|2|Weber|Tommie|2975|Massachusetts|M|Son|||35|109638 +3010|ND|Stutsman County|Jamestown city|1961|0|3|Weber|Dudley Donn|2997|Washington|M|Son|||13|109639 + +3010|PA|York County|Franklintown borough|1962|0|1|Martinez|Zack Beau|2943|Turkey|M|Head|||67|109640 +3010|PA|York County|Franklintown borough|1962|0|2|Martinez|Marhta|2949|Alaska|F|Spouse|||61|109641 +3010|PA|York County|Franklintown borough|1962|0|3|Martinez|Hubert|2995|Alabama|M|Son|||15|109642 +3010|PA|York County|Franklintown borough|1962|0|4|Martinez|Avery|2997|Sao Tome And Principe|F|Daughter|||13|109643 +3010|PA|York County|Franklintown borough|1962|0|5|Martinez|Bill|3007|PA|M|Son|||3|109644 +3010|PA|York County|Franklintown borough|1962|0|6|Martinez|Latisha|3009|PA|F|Daughter|||1|109645 + +3010|TX|Haskell County, Jones County|Stamford city|1963|0|1|Qureshi|Twyla|2958|Fiji|F|Head|||52|109646 +3010|TX|Haskell County, Jones County|Stamford city|1963|0|2|Qureshi|Piedad Ethyl|2978|Arizona|F|Daughter|||32|109647 +3010|TX|Haskell County, Jones County|Stamford city|1963|0|3|Qureshi|Carson|2986|Georgia|M|Son|||24|109648 +3010|TX|Haskell County, Jones County|Stamford city|1963|0|4|Qureshi|Francesco|2988|North Dakota|M|Son|||22|109649 +3010|TX|Haskell County, Jones County|Stamford city|1963|0|5|Qureshi|Joette|2996|Nebraska|F|Daughter|||14|109650 + +3010|IA|Jefferson County|Fairfield city|1964|0|1|Brown|Mikel Edwardo|2954|Maryland|M|Head|||56|109651 +3010|IA|Jefferson County|Fairfield city|1964|0|2|Brown|Cecille|2969|Vermont|F|Spouse|||41|109652 +3010|IA|Jefferson County|Fairfield city|1964|0|3|Brown|Byron|2991|Massachusetts|M|Son|||19|109653 +3010|IA|Jefferson County|Fairfield city|1964|0|4|Brown|Harrison|2993|Georgia|M|Son|||17|109654 +3010|IA|Jefferson County|Fairfield city|1964|0|5|Brown|Odis|2995|South Dakota|M|Son|||15|109655 +3010|IA|Jefferson County|Fairfield city|1964|0|6|Brown|Lucio|2997|Massachusetts|M|Son|||13|109656 +3010|IA|Jefferson County|Fairfield city|1964|0|7|Brown|Kacy|3001|IA|F|Daughter|||9|109657 +3010|IA|Jefferson County|Fairfield city|1964|0|8|Brown|Francisco|3003|IA|M|Son|||7|109658 + +3010|CT|Windham County|Hampton town|1965|0|1|Martin|Joel Vince|2955|Delaware|M|Head|||55|109659 +3010|CT|Windham County|Hampton town|1965|0|2|Martin|Reda|2955|New Hampshire|F|Spouse|||55|109660 +3010|CT|Windham County|Hampton town|1965|0|3|Martin|Hester|2985|Utah|F|Daughter|||25|109661 +3010|CT|Windham County|Hampton town|1965|0|4|Martin|Allen Hector|2989|Michigan|M|Son|||21|109662 +3010|CT|Windham County|Hampton town|1965|0|5|Martin|Nisha|2997|Maine|F|Daughter|||13|109663 +3010|CT|Windham County|Hampton town|1965|0|6|Martin|Aide|3003|CT|F|Daughter|||7|109664 +3010|CT|Windham County|Hampton town|1965|0|7|Martin|Calista|3009|CT|F|Daughter|||1|109665 + +3010|VT|Windsor County|Stockbridge town|1966|0|1|Daunt|Ty Monte|2970|Connecticut|M|Head|||40|109666 +3010|VT|Windsor County|Stockbridge town|1966|0|2|Daunt|Dotty|2967|Ohio|F|Spouse|||43|109667 +3010|VT|Windsor County|Stockbridge town|1966|0|3|Daunt|Delores|2993|Arkansas|F|Daughter|||17|109668 +3010|VT|Windsor County|Stockbridge town|1966|0|4|Daunt|Diann|2995|Arkansas|F|Daughter|||15|109669 +3010|VT|Windsor County|Stockbridge town|1966|0|5|Daunt|Reiko|2997|Mississippi|F|Daughter|||13|109670 +3010|VT|Windsor County|Stockbridge town|1966|0|6|Daunt|Karisa|3007|VT|F|Daughter|||3|109671 +3010|VT|Windsor County|Stockbridge town|1966|0|7|Daunt|Gregory|3009|VT|M|Son|||1|109672 + +3010|TX|Rains County|Emory city|1967|0|1|Jamieson|Elton Mel|2961|Alabama|M|Head|||49|109673 +3010|TX|Rains County|Emory city|1967|0|2|Jamieson|Jessenia Arlena|2974|New Jersey|F|Spouse|||36|109674 +3010|TX|Rains County|Emory city|1967|0|3|Jamieson|Neil|2994|Micronesia, Federated States Of|M|Son|||16|109675 +3010|TX|Rains County|Emory city|1967|0|4|Jamieson|Domenica|2996|Arkansas|F|Daughter|||14|109676 +3010|TX|Rains County|Emory city|1967|0|5|Jamieson|Terica|2998|Kentucky|F|Daughter|||12|109677 +3010|TX|Rains County|Emory city|1967|0|6|Jamieson|Kindra|3003|TX|F|Daughter|||7|109678 +3010|TX|Rains County|Emory city|1967|0|7|Jamieson|Candi|3007|TX|F|Daughter|||3|109679 + +3010|KY|Lyon County|Eddyville city|1968|0|1|Sussman|Hobert|2945|Missouri|M|Head|||65|109680 +3010|KY|Lyon County|Eddyville city|1968|0|2|Sussman|Minh|2967|Virginia|F|Spouse|||43|109681 +3010|KY|Lyon County|Eddyville city|1968|0|3|Sussman|Jaclyn|2987|Rwanda|F|Daughter|||23|109682 +3010|KY|Lyon County|Eddyville city|1968|0|4|Sussman|Milan|2989|Utah|M|Son|||21|109683 +3010|KY|Lyon County|Eddyville city|1968|0|5|Sussman|Ronnie Adam|2993|Colorado|M|Son|||17|109684 +3010|KY|Lyon County|Eddyville city|1968|0|6|Sussman|Joan|2995|North Dakota|F|Daughter|||15|109685 +3010|KY|Lyon County|Eddyville city|1968|0|7|Sussman|Heide|3003|KY|F|Daughter|||7|109686 +3010|KY|Lyon County|Eddyville city|1968|0|8|Sussman|Keturah|3005|KY|F|Daughter|||5|109687 + +3010|OH|Mahoning County|Maple Ridge CDP|1969|0|1|Goyette|Eddie Thaddeus|2948|Botswana|M|Head|||62|109688 +3010|OH|Mahoning County|Maple Ridge CDP|1969|0|2|Goyette|Kirsten|2957|Aruba|F|Spouse|||53|109689 +3010|OH|Mahoning County|Maple Ridge CDP|1969|0|3|Goyette|Antone|2995|Georgia|M|Son|||15|109690 +3010|OH|Mahoning County|Maple Ridge CDP|1969|0|4|Goyette|Krishna Angel|2997|Louisiana|F|Daughter|||13|109691 +3010|OH|Mahoning County|Maple Ridge CDP|1969|0|5|Goyette|Malcom|2999|Gabon|M|Son|||11|109692 +3010|OH|Mahoning County|Maple Ridge CDP|1969|0|6|Goyette|Nancy|3003|OH|F|Daughter|||7|109693 +3010|OH|Mahoning County|Maple Ridge CDP|1969|0|7|Goyette|Elza|3005|OH|F|Daughter|||5|109694 + +3010|WI|Barron County|Crystal Lake town|1970|0|1|Semon|Leandro|2979|South Carolina|M|Head|||31|109695 +3010|WI|Barron County|Crystal Lake town|1970|0|2|Semon|Roselee|2984|Turkey|F|Spouse|||26|109696 +3010|WI|Barron County|Crystal Lake town|1970|0|3|Semon|Madison Ida|3001|WI|F|Daughter|||9|109697 +3010|WI|Barron County|Crystal Lake town|1970|0|4|Semon|Iva|3003|WI|F|Daughter|||7|109698 +3010|WI|Barron County|Crystal Lake town|1970|0|5|Semon|Jeff|3005|WI|M|Son|||5|109699 +3010|WI|Barron County|Crystal Lake town|1970|0|6|Semon|Despina Willette|3007|WI|F|Daughter|||3|109700 +3010|WI|Barron County|Crystal Lake town|1970|0|7|Semon|Carlos|3009|WI|F|Daughter|||1|109701 + +3010|IN|Grant County|Sweetser town|1971|0|1|Abramowitz|Beau Horacio|2947|American Samoa|M|Head|||63|109702 +3010|IN|Grant County|Sweetser town|1971|0|2|Abramowitz|Jennefer|2987|Rhode Island|F|Daughter|||23|109703 +3010|IN|Grant County|Sweetser town|1971|0|3|Abramowitz|Barbar|2991|Micronesia, Federated States Of|F|Daughter|||19|109704 +3010|IN|Grant County|Sweetser town|1971|0|4|Abramowitz|Adell|2995|South Dakota|F|Daughter|||15|109705 +3010|IN|Grant County|Sweetser town|1971|0|5|Abramowitz|Sanda Un|2997|Iraq|F|Daughter|||13|109706 +3010|IN|Grant County|Sweetser town|1971|0|6|Abramowitz|Jason Elvin|2999|South Carolina|M|Son|||11|109707 +3010|IN|Grant County|Sweetser town|1971|0|7|Abramowitz|Amanda|3003|IN|F|Daughter|||7|109708 + +3010|MA|Middlesex County|Marlborough city|1972|0|1|Panos|Sid Genaro|2973|Iowa|M|Head|||37|109709 +3010|MA|Middlesex County|Marlborough city|1972|0|2|Panos|Marshall|2974|Norway|F|Spouse|||36|109710 +3010|MA|Middlesex County|Marlborough city|1972|0|3|Panos|Edward|2994|Massachusetts|M|Son|||16|109711 +3010|MA|Middlesex County|Marlborough city|1972|0|4|Panos|Kassandra|2998|South Dakota|F|Daughter|||12|109712 +3010|MA|Middlesex County|Marlborough city|1972|0|5|Panos|Kathryne Vergie|3001|MA|F|Daughter|||9|109713 +3010|MA|Middlesex County|Marlborough city|1972|0|6|Panos|Roselle|3003|MA|F|Daughter|||7|109714 +3010|MA|Middlesex County|Marlborough city|1972|0|7|Panos|Melisa Mona|3005|MA|F|Daughter|||5|109715 +3010|MA|Middlesex County|Marlborough city|1972|0|8|Panos|Santo|3009|MA|M|Son|||1|109716 + +3010|PA|Luzerne County|Pikes Creek CDP|1973|0|1|Chan|Olin Erich|2945|Connecticut|M|Head|||65|109717 +3010|PA|Luzerne County|Pikes Creek CDP|1973|0|2|Chan|Risa|2956|Hawaii|F|Spouse|||54|109718 +3010|PA|Luzerne County|Pikes Creek CDP|1973|0|3|Chan|Katrina|2978|Alabama|F|Daughter|||32|109719 +3010|PA|Luzerne County|Pikes Creek CDP|1973|0|4|Chan|Elease Vanesa|2990|Missouri|F|Daughter|||20|109720 +3010|PA|Luzerne County|Pikes Creek CDP|1973|0|5|Chan|Doris Dianna|3000|Turks And Caicos Islands|F|Daughter|||10|109721 +3010|PA|Luzerne County|Pikes Creek CDP|1973|0|6|Chan|Mercy|3005|PA|F|Daughter|||5|109722 +3010|PA|Luzerne County|Pikes Creek CDP|1973|0|7|Chan|Wilbur|3007|PA|M|Son|||3|109723 + +3010|PA|Washington County|East Washington borough|1974|0|1|Nida|Zackary Johnie|2964|California|M|Head|||46|109724 +3010|PA|Washington County|East Washington borough|1974|0|2|Nida|Pablo|3005|PA|M|Son|||5|109725 +3010|PA|Washington County|East Washington borough|1974|0|3|Nida|Jody|3007|PA|M|Son|||3|109726 +3010|PA|Washington County|East Washington borough|1974|0|4|Nida|Shella|3009|PA|F|Daughter|||1|109727 + +3010|WI|Brown County|Green Bay city|1975|0|1|Beurskens|Danny|2980|New Jersey|M|Head|||30|109728 +3010|WI|Brown County|Green Bay city|1975|0|2|Beurskens|Tawanna|2997|Missouri|F|Daughter|||13|109729 +3010|WI|Brown County|Green Bay city|1975|0|3|Beurskens|Anderson|2999|Cook Islands|M|Son|||11|109730 + +3010|MN|Douglas County|Kensington city|1976|0|1|Wedderburn|Austin Kareem|2969|Indonesia|M|Head|||41|109731 +3010|MN|Douglas County|Kensington city|1976|0|2|Wedderburn|Genevive|2974|North Carolina|F|Spouse|||36|109732 +3010|MN|Douglas County|Kensington city|1976|0|3|Wedderburn|Shanelle|2996|Massachusetts|F|Daughter|||14|109733 +3010|MN|Douglas County|Kensington city|1976|0|4|Wedderburn|Clyde|2998|Romania|M|Son|||12|109734 +3010|MN|Douglas County|Kensington city|1976|0|5|Wedderburn|Pamelia|3000|Michigan|F|Daughter|||10|109735 +3010|MN|Douglas County|Kensington city|1976|0|6|Wedderburn|Yoko|3005|MN|F|Daughter|||5|109736 +3010|MN|Douglas County|Kensington city|1976|0|7|Wedderburn|Logan|3007|MN|M|Son|||3|109737 + +3010|MD|Frederick County|Sabillasville CDP|1977|0|1|Snider|Coleman Jared|2941|Idaho|M|Head|||69|109738 +3010|MD|Frederick County|Sabillasville CDP|1977|0|2|Snider|Hortense|2952|Oklahoma|F|Spouse|||58|109739 +3010|MD|Frederick County|Sabillasville CDP|1977|0|3|Snider|Douglas|2986|Nepal|M|Son|||24|109740 +3010|MD|Frederick County|Sabillasville CDP|1977|0|4|Snider|Christoper|2990|Montenegro|M|Son|||20|109741 +3010|MD|Frederick County|Sabillasville CDP|1977|0|5|Snider|Yuriko|2998|Missouri|F|Daughter|||12|109742 +3010|MD|Frederick County|Sabillasville CDP|1977|0|6|Snider|Vince|3005|MD|M|Son|||5|109743 +3010|MD|Frederick County|Sabillasville CDP|1977|0|7|Snider|Brandon|3007|MD|M|Son|||3|109744 + +3010|AL|Jefferson County|Forestdale CDP|1978|0|1|Mayberry|Charley|2946|Hawaii|M|Head|||64|109745 +3010|AL|Jefferson County|Forestdale CDP|1978|0|2|Mayberry|Miss|2965|North Dakota|F|Spouse|||45|109746 +3010|AL|Jefferson County|Forestdale CDP|1978|0|3|Mayberry|Laurette|2987|Heard Island And Mcdonald Islands|F|Daughter|||23|109747 +3010|AL|Jefferson County|Forestdale CDP|1978|0|4|Mayberry|Bao|3001|AL|F|Daughter|||9|109748 +3010|AL|Jefferson County|Forestdale CDP|1978|0|5|Mayberry|Tawanna|3005|AL|F|Daughter|||5|109749 +3010|AL|Jefferson County|Forestdale CDP|1978|0|6|Mayberry|Deidre|3007|AL|F|Daughter|||3|109750 + +3010|PA|Lycoming County|Shrewsbury township|1979|0|1|Nadoff|Woodrow Florencio|2957|Virginia|M|Head|||53|109751 +3010|PA|Lycoming County|Shrewsbury township|1979|0|2|Nadoff|Cheryle|2972|California|F|Spouse|||38|109752 +3010|PA|Lycoming County|Shrewsbury township|1979|0|3|Nadoff|Bernardo|2998|California|M|Son|||12|109753 +3010|PA|Lycoming County|Shrewsbury township|1979|0|4|Nadoff|Derick|3001|PA|M|Son|||9|109754 +3010|PA|Lycoming County|Shrewsbury township|1979|0|5|Nadoff|Nicolle Elisabeth|3003|PA|F|Daughter|||7|109755 +3010|PA|Lycoming County|Shrewsbury township|1979|0|6|Nadoff|Anamaria|3005|PA|F|Daughter|||5|109756 +3010|PA|Lycoming County|Shrewsbury township|1979|0|7|Nadoff|Ignacio Troy|3007|PA|M|Son|||3|109757 + +3010|MN|Pennington County|Hickory township|1980|0|1|Nelson|Theda|2957|Denmark|F|Spouse|||53|109758 +3010|MN|Pennington County|Hickory township|1980|0|2|Nelson|Ebony|2981|Oregon|F|Daughter|||29|109759 +3010|MN|Pennington County|Hickory township|1980|0|3|Nelson|Lea|2985|Utah|F|Daughter|||25|109760 +3010|MN|Pennington County|Hickory township|1980|0|4|Nelson|Ernesto|2995|New York|M|Son|||15|109761 +3010|MN|Pennington County|Hickory township|1980|0|5|Nelson|Kendall|3009|MN|M|Son|||1|109762 + +3010|PA|Lycoming County|Jordan township|1981|0|1|Gillespie|Neil Carson|2947|Pennsylvania|M|Head|||63|109763 +3010|PA|Lycoming County|Jordan township|1981|0|2|Gillespie|Alayna|2957|Texas|F|Spouse|||53|109764 +3010|PA|Lycoming County|Jordan township|1981|0|3|Gillespie|Mauro|2977|Ohio|M|Son|||33|109765 +3010|PA|Lycoming County|Jordan township|1981|0|4|Gillespie|Jolyn|2991|Connecticut|F|Daughter|||19|109766 +3010|PA|Lycoming County|Jordan township|1981|0|5|Gillespie|Xuan Mark|2995|North Dakota|F|Daughter|||15|109767 +3010|PA|Lycoming County|Jordan township|1981|0|6|Gillespie|Elroy|2997|California|M|Son|||13|109768 +3010|PA|Lycoming County|Jordan township|1981|0|7|Gillespie|Edwin|2999|Kenya|M|Son|||11|109769 + +3010|MN|Wilkin County|Andrea township|1982|0|1|Hargrave|Dudley Bud|2966|Louisiana|M|Head|||44|109770 +3010|MN|Wilkin County|Andrea township|1982|0|2|Hargrave|Joeann Gennie|2979|Maine|F|Spouse|||31|109771 +3010|MN|Wilkin County|Andrea township|1982|0|3|Hargrave|Basil|3003|MN|M|Son|||7|109772 +3010|MN|Wilkin County|Andrea township|1982|0|4|Hargrave|Hershel|3009|MN|M|Son|||1|109773 + +3010|PA|Warren County|Southwest township|1983|0|1|Martinez|Rudolf Norman|2949|Nebraska|M|Head|||61|109774 +3010|PA|Warren County|Southwest township|1983|0|2|Martinez|Madelyn|2950|Rhode Island|F|Spouse|||60|109775 +3010|PA|Warren County|Southwest township|1983|0|3|Martinez|Evelyn|2982|Saudi Arabia|F|Daughter|||28|109776 +3010|PA|Warren County|Southwest township|1983|0|4|Martinez|Verna|2990|New Mexico|F|Daughter|||20|109777 +3010|PA|Warren County|Southwest township|1983|0|5|Martinez|Mattie Bennie|2994|Colorado|F|Daughter|||16|109778 +3010|PA|Warren County|Southwest township|1983|0|6|Martinez|Joellen|2996|Arizona|F|Daughter|||14|109779 +3010|PA|Warren County|Southwest township|1983|0|7|Martinez|Russ|3001|PA|M|Son|||9|109780 +3010|PA|Warren County|Southwest township|1983|0|8|Martinez|Kenny|3005|PA|M|Son|||5|109781 + +3010|MI|Jackson County|Liberty township|1984|0|1|Jimenez|Patrick Blake|2948|South Dakota|M|Head|||62|109782 +3010|MI|Jackson County|Liberty township|1984|0|2|Jimenez|Tyisha Jenae|2972|Senegal|F|Spouse|||38|109783 +3010|MI|Jackson County|Liberty township|1984|0|3|Jimenez|Nancee|2992|Guam|F|Daughter|||18|109784 +3010|MI|Jackson County|Liberty township|1984|0|4|Jimenez|Stanley|2996|North Carolina|M|Son|||14|109785 +3010|MI|Jackson County|Liberty township|1984|0|5|Jimenez|Efrain|3003|MI|M|Son|||7|109786 +3010|MI|Jackson County|Liberty township|1984|0|6|Jimenez|Cornelia|3007|MI|F|Daughter|||3|109787 + +3010|AZ|Apache County|Fort Defiance CDP|1985|0|1|Disharoon|Donald Zackary|2970|Michigan|M|Head|||40|109788 +3010|AZ|Apache County|Fort Defiance CDP|1985|0|2|Disharoon|Jeannie|2974|Mississippi|F|Spouse|||36|109789 +3010|AZ|Apache County|Fort Defiance CDP|1985|0|3|Disharoon|Leana|2996|New Jersey|F|Daughter|||14|109790 +3010|AZ|Apache County|Fort Defiance CDP|1985|0|4|Disharoon|Fransisca|3000|Oregon|F|Daughter|||10|109791 +3010|AZ|Apache County|Fort Defiance CDP|1985|0|5|Disharoon|Buffy|3003|AZ|F|Daughter|||7|109792 +3010|AZ|Apache County|Fort Defiance CDP|1985|0|6|Disharoon|Macie|3007|AZ|F|Daughter|||3|109793 +3010|AZ|Apache County|Fort Defiance CDP|1985|0|7|Disharoon|Harlan|3009|AZ|M|Son|||1|109794 + +3010|MN|Grant County|Ashby city|1986|0|1|Walka|Douglas|2946|Nebraska|M|Head|||64|109795 +3010|MN|Grant County|Ashby city|1986|0|2|Walka|Kathryne|2955|New Hampshire|F|Spouse|||55|109796 +3010|MN|Grant County|Ashby city|1986|0|3|Walka|William Jimmie|2985|Montana|M|Son|||25|109797 +3010|MN|Grant County|Ashby city|1986|0|4|Walka|Karly|2987|Montana|F|Daughter|||23|109798 +3010|MN|Grant County|Ashby city|1986|0|5|Walka|John|2995|South Dakota|M|Son|||15|109799 +3010|MN|Grant County|Ashby city|1986|0|6|Walka|Elton|3003|MN|M|Son|||7|109800 +3010|MN|Grant County|Ashby city|1986|0|7|Walka|Hildegarde|3007|MN|F|Daughter|||3|109801 + +3010|CA|Siskiyou County|McCloud CDP|1987|0|1|Petruzzi|Isaiah Emmett|2940|Tennessee|M|Head|||70|109802 +3010|CA|Siskiyou County|McCloud CDP|1987|0|2|Petruzzi|Carola|2937|Florida|F|Spouse|||73|109803 +3010|CA|Siskiyou County|McCloud CDP|1987|0|3|Petruzzi|Zachary Ahmed|2989|Delaware|M|Son|||21|109804 +3010|CA|Siskiyou County|McCloud CDP|1987|0|4|Petruzzi|Cyrus|2995|Pennsylvania|M|Son|||15|109805 +3010|CA|Siskiyou County|McCloud CDP|1987|0|5|Petruzzi|Goldie Flo|3001|CA|F|Daughter|||9|109806 +3010|CA|Siskiyou County|McCloud CDP|1987|0|6|Petruzzi|Alphonse|3005|CA|M|Son|||5|109807 +3010|CA|Siskiyou County|McCloud CDP|1987|0|7|Petruzzi|Verona|3007|CA|F|Daughter|||3|109808 + +3010|MI|Cass County|Ontwa township|1988|0|1|Johnson|Romeo Darwin|2974|Croatia|M|Head|||36|109809 +3010|MI|Cass County|Ontwa township|1988|0|2|Johnson|Bethanie|2984|Washington|F|Spouse|||26|109810 +3010|MI|Cass County|Ontwa township|1988|0|3|Johnson|Kenya|3001|MI|F|Daughter|||9|109811 +3010|MI|Cass County|Ontwa township|1988|0|4|Johnson|Israel|3003|MI|M|Son|||7|109812 +3010|MI|Cass County|Ontwa township|1988|0|5|Johnson|Eddie|3009|MI|M|Son|||1|109813 + +3010|HI|Hawaii County|Pepeekeo CDP|1989|0|1|Esworthy|Al Tod|2969|Wisconsin|M|Head|||41|109814 +3010|HI|Hawaii County|Pepeekeo CDP|1989|0|2|Esworthy|Ranae|2976|Wisconsin|F|Spouse|||34|109815 +3010|HI|Hawaii County|Pepeekeo CDP|1989|0|3|Esworthy|Effie|2998|Kentucky|F|Daughter|||12|109816 +3010|HI|Hawaii County|Pepeekeo CDP|1989|0|4|Esworthy|Sina|3000|Ohio|F|Daughter|||10|109817 +3010|HI|Hawaii County|Pepeekeo CDP|1989|0|5|Esworthy|Sol|3001|HI|M|Son|||9|109818 +3010|HI|Hawaii County|Pepeekeo CDP|1989|0|6|Esworthy|Christian Lester|3005|HI|M|Son|||5|109819 + +3010|NY|Delaware County|Tompkins town|1990|0|1|Musgrove|Ciera|2978|Maryland|F|Head|||32|109820 +3010|NY|Delaware County|Tompkins town|1990|0|2|Musgrove|Antonio|2998|Namibia|M|Son|||12|109821 +3010|NY|Delaware County|Tompkins town|1990|0|3|Musgrove|Criselda|3000|Wyoming|F|Daughter|||10|109822 + +3010|WI|Dane County|Mazomanie town|1991|0|1|Graves|Andera|2974|Washington|F|Head|||36|109823 +3010|WI|Dane County|Mazomanie town|1991|0|2|Graves|America|3000|Louisiana|F|Daughter|||10|109824 + +3010|MN|Mower County|Dexter township|1992|0|1|Stamand|Loyd Rolland|2982|Tennessee|M|Head|||28|109825 +3010|MN|Mower County|Dexter township|1992|0|2|Stamand|Felipe Barrett|2999|California|M|Son|||11|109826 +3010|MN|Mower County|Dexter township|1992|0|3|Stamand|Jordan|3001|MN|M|Son|||9|109827 +3010|MN|Mower County|Dexter township|1992|0|4|Stamand|Kacey|3003|MN|F|Daughter|||7|109828 +3010|MN|Mower County|Dexter township|1992|0|5|Stamand|Hilaria|3005|MN|F|Daughter|||5|109829 +3010|MN|Mower County|Dexter township|1992|0|6|Stamand|Marcelo|3007|MN|M|Son|||3|109830 +3010|MN|Mower County|Dexter township|1992|0|7|Stamand|Selene|3009|MN|F|Daughter|||1|109831 + +3010|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|1|Mccourt|Hilario Hoyt|2960|West Virginia|M|Head|||50|109832 +3010|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|2|Mccourt|Ilene|2957|Arizona|F|Spouse|||53|109833 +3010|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|3|Mccourt|Darcy|2977|New Mexico|F|Daughter|||33|109834 +3010|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|4|Mccourt|Ashlea|2983|Oregon|F|Daughter|||27|109835 +3010|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|5|Mccourt|Daren|2985|Georgia|M|Son|||25|109836 +3010|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|6|Mccourt|Lucretia|2987|Pennsylvania|F|Daughter|||23|109837 +3010|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|7|Mccourt|Julian|2995|Hawaii|M|Son|||15|109838 +3010|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|8|Mccourt|Clarice|2997|New Mexico|F|Daughter|||13|109839 +3010|PR|Caguas Municipio|Las Carolinas comunidad|1993|0|9|Mccourt|Jonie|2999|Georgia|F|Daughter|||11|109840 + +3010|MI|Roscommon County|Gerrish township|1994|0|1|Blauser|Nigel Keith|2967|Iowa|M|Head|||43|109841 +3010|MI|Roscommon County|Gerrish township|1994|0|2|Blauser|Eusebio|3000|Missouri|M|Son|||10|109842 + +3010|WI|Richland County|Yuba village|1995|0|1|Victoria|Afton|2996|Florida|F|Daughter|||14|109843 +3010|WI|Richland County|Yuba village|1995|0|2|Victoria|Cornell Shad|3000|Maryland|M|Son|||10|109844 + +3010|LA|Concordia Parish|Spokane CDP|1996|0|1|Bluth|Keith Noah|2969|Alabama|M|Head|||41|109845 + +3010|UT|Duchesne County|Bluebell CDP|1997|0|1|Winsky|Rocco Marcelo|2963|Kentucky|M|Head|||47|109846 +3010|UT|Duchesne County|Bluebell CDP|1997|0|2|Winsky|Sydney Adriane|2972|Delaware|F|Spouse|||38|109847 +3010|UT|Duchesne County|Bluebell CDP|1997|0|3|Winsky|Keith|2994|West Virginia|M|Son|||16|109848 +3010|UT|Duchesne County|Bluebell CDP|1997|0|4|Winsky|Jeromy Nathan|2996|Indiana|M|Son|||14|109849 +3010|UT|Duchesne County|Bluebell CDP|1997|0|5|Winsky|Avery|3001|UT|F|Daughter|||9|109850 +3010|UT|Duchesne County|Bluebell CDP|1997|0|6|Winsky|Shanon|3005|UT|F|Daughter|||5|109851 +3010|UT|Duchesne County|Bluebell CDP|1997|0|7|Winsky|Dante|3009|UT|M|Son|||1|109852 + +3010|IN|Union County|West College Corner town|1998|0|1|Baerg|Duncan|2998|Connecticut|M|Son|||12|109853 + +3010|IN|LaPorte County|Wanatah town|1999|0|1|Parks|Samual Renaldo|2937|Comoros|M|Head|||73|109854 +3010|IN|LaPorte County|Wanatah town|1999|0|2|Parks|Ellyn Renate|2944|New York|F|Spouse|||66|109855 +3010|IN|LaPorte County|Wanatah town|1999|0|3|Parks|Tomika Aundrea|2980|Wyoming|F|Daughter|||30|109856 +3010|IN|LaPorte County|Wanatah town|1999|0|4|Parks|Daniel|3000|Ecuador|F|Daughter|||10|109857 + diff -Nru cctools-7.0.22/doc/manuals/prune/examples/census/simulated_data/3010.3.txt cctools-7.1.2/doc/manuals/prune/examples/census/simulated_data/3010.3.txt --- cctools-7.0.22/doc/manuals/prune/examples/census/simulated_data/3010.3.txt 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/census/simulated_data/3010.3.txt 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,7202 @@ +3010|TX|Hockley County|Anton city|2000|0|1|Gray|Daryl|2994|Iowa|M|Head|||16|109858 +3010|TX|Hockley County|Anton city|2000|0|2|Gray|Vernell|2978|Libyan Arab Jamahiriya|F|Spouse|||32|109859 +3010|TX|Hockley County|Anton city|2000|0|3|Gray|Majorie|3003|TX|F|Daughter|||7|109860 +3010|TX|Hockley County|Anton city|2000|0|4|Gray|Selena|3005|TX|F|Daughter|||5|109861 +3010|TX|Hockley County|Anton city|2000|0|5|Gray|Elwood|3009|TX|M|Son|||1|109862 + +3010|MS|Pearl River County|Picayune city|2001|0|1|Chester|Alejandro|2988|New Jersey|M|Head|||22|109863 +3010|MS|Pearl River County|Picayune city|2001|0|2|Chester|Zaida|2986|Arkansas|F|Spouse|||24|109864 +3010|MS|Pearl River County|Picayune city|2001|0|3|Chester|Wilfred|3003|MS|M|Son|||7|109865 +3010|MS|Pearl River County|Picayune city|2001|0|4|Chester|Darrell Doyle|3009|MS|M|Son|||1|109866 + +3010|MN|Nobles County|Ellsworth city|2002|0|1|Hughes|Jordon|2959|Vermont|M|Head|||51|109867 +3010|MN|Nobles County|Ellsworth city|2002|0|2|Hughes|Charlie|2992|Grenada|F|Spouse|||18|109868 +3010|MN|Nobles County|Ellsworth city|2002|0|3|Hughes|Cassey|3001|MN|F|Daughter|||9|109869 +3010|MN|Nobles County|Ellsworth city|2002|0|4|Hughes|Luigi Johnathon|3003|MN|M|Son|||7|109870 + +3010|TX|El Paso County|Homestead Meadows South CDP|2003|0|1|Hughes|Dick Michel|2961|Washington|M|Head|||49|109871 +3010|TX|El Paso County|Homestead Meadows South CDP|2003|0|2|Hughes|Elvina|2994|Pennsylvania|F|Spouse|||16|109872 +3010|TX|El Paso County|Homestead Meadows South CDP|2003|0|3|Hughes|Elois|3001|TX|F|Daughter|||9|109873 +3010|TX|El Paso County|Homestead Meadows South CDP|2003|0|4|Hughes|Macie|3005|TX|F|Daughter|||5|109874 +3010|TX|El Paso County|Homestead Meadows South CDP|2003|0|5|Hughes|Adria Lady|3007|TX|F|Daughter|||3|109875 + +3010|TX|El Paso County|Homestead Meadows South CDP|2004|0|1|Hughes|Robt|2991|Arizona|M|Head|||19|109876 +3010|TX|El Paso County|Homestead Meadows South CDP|2004|0|2|Hughes|Roxy|2963|Georgia|F|Spouse|||47|109877 +3010|TX|El Paso County|Homestead Meadows South CDP|2004|0|3|Hughes|Harland|3003|TX|M|Son|||7|109878 +3010|TX|El Paso County|Homestead Meadows South CDP|2004|0|4|Hughes|Johanna|3005|TX|F|Daughter|||5|109879 +3010|TX|El Paso County|Homestead Meadows South CDP|2004|0|5|Hughes|Marline Anastasia|3007|TX|F|Daughter|||3|109880 +3010|TX|El Paso County|Homestead Meadows South CDP|2004|0|6|Hughes|Twana|3009|TX|F|Daughter|||1|109881 + +3010|TX|Hale County|Plainview city|2005|0|1|Chatfield|Merrill Alan|2986|New Mexico|M|Head|||24|109882 +3010|TX|Hale County|Plainview city|2005|0|2|Chatfield|Angle|2985|Nebraska|F|Spouse|||25|109883 +3010|TX|Hale County|Plainview city|2005|0|3|Chatfield|Freddy|3003|TX|M|Son|||7|109884 +3010|TX|Hale County|Plainview city|2005|0|4|Chatfield|Evan|3005|TX|M|Son|||5|109885 +3010|TX|Hale County|Plainview city|2005|0|5|Chatfield|Yong|3009|TX|M|Son|||1|109886 + +3010|NY|Chautauqua County|Brocton village|2006|0|1|Mas|Jae|2979|Ukraine|M|Head|||31|109887 +3010|NY|Chautauqua County|Brocton village|2006|0|2|Mas|Rachal|2989|Tennessee|F|Spouse|||21|109888 +3010|NY|Chautauqua County|Brocton village|2006|0|3|Mas|Stewart|3001|NY|M|Son|||9|109889 +3010|NY|Chautauqua County|Brocton village|2006|0|4|Mas|Sebastian|3003|NY|M|Son|||7|109890 +3010|NY|Chautauqua County|Brocton village|2006|0|5|Mas|Edith|3005|NY|F|Daughter|||5|109891 +3010|NY|Chautauqua County|Brocton village|2006|0|6|Mas|Fredricka|3009|NY|F|Daughter|||1|109892 + +3010|NY|Chautauqua County|Brocton village|2007|0|1|Mas|Robert|2993|Wyoming|M|Head|||17|109893 +3010|NY|Chautauqua County|Brocton village|2007|0|2|Mas|Kaitlin|2991|Maine|F|Spouse|||19|109894 +3010|NY|Chautauqua County|Brocton village|2007|0|3|Mas|Lenore|3001|NY|F|Daughter|||9|109895 +3010|NY|Chautauqua County|Brocton village|2007|0|4|Mas|Jeremiah|3003|NY|M|Son|||7|109896 +3010|NY|Chautauqua County|Brocton village|2007|0|5|Mas|Berneice Marilynn|3005|NY|F|Daughter|||5|109897 +3010|NY|Chautauqua County|Brocton village|2007|0|6|Mas|Derick|3007|NY|M|Son|||3|109898 + +3010|NY|Suffolk County|North Great River CDP|2008|0|1|Dunphe|Terry|2990|Nebraska|M|Head|||20|109899 +3010|NY|Suffolk County|North Great River CDP|2008|0|2|Dunphe|Albertina|2992|Washington|F|Spouse|||18|109900 +3010|NY|Suffolk County|North Great River CDP|2008|0|3|Dunphe|Adolfo|3001|NY|M|Son|||9|109901 +3010|NY|Suffolk County|North Great River CDP|2008|0|4|Dunphe|Cassaundra|3007|NY|F|Daughter|||3|109902 +3010|NY|Suffolk County|North Great River CDP|2008|0|5|Dunphe|Lashawnda|3009|NY|F|Daughter|||1|109903 + +3010|NY|Albany County|Watervliet city|2009|0|1|Desanty|Arron Miquel|2991|Kansas|M|Head|||19|109904 +3010|NY|Albany County|Watervliet city|2009|0|2|Desanty|Odessa|2993|Ethiopia|F|Spouse|||17|109905 +3010|NY|Albany County|Watervliet city|2009|0|3|Desanty|Tyra|3001|NY|F|Daughter|||9|109906 +3010|NY|Albany County|Watervliet city|2009|0|4|Desanty|Chia|3003|NY|F|Daughter|||7|109907 +3010|NY|Albany County|Watervliet city|2009|0|5|Desanty|Irina|3005|NY|F|Daughter|||5|109908 + +3010|MN|Meeker County|Union Grove township|2010|0|1|Chicca|Shad|2966|Northern Mariana Islands|M|Head|||44|109909 +3010|MN|Meeker County|Union Grove township|2010|0|2|Chicca|Kristina|2987|British Indian Ocean Territory|F|Spouse|||23|109910 +3010|MN|Meeker County|Union Grove township|2010|0|3|Chicca|Travis Blake|3001|MN|M|Son|||9|109911 + +3010|IA|Fremont County|Imogene city|2011|0|1|Negron|Burl|2987|South Dakota|M|Head|||23|109912 +3010|IA|Fremont County|Imogene city|2011|0|2|Negron|Tosha|2991|New Mexico|F|Spouse|||19|109913 +3010|IA|Fremont County|Imogene city|2011|0|3|Negron|Gaston|3001|IA|M|Son|||9|109914 +3010|IA|Fremont County|Imogene city|2011|0|4|Negron|Billy|3005|IA|F|Daughter|||5|109915 + +3010|PR|Aguadilla Municipio|Aguadilla zona urbana|2012|0|1|Himmelright|Reuben Terence|2989|Netherlands|M|Head|||21|109916 +3010|PR|Aguadilla Municipio|Aguadilla zona urbana|2012|0|2|Himmelright|Joella Mirtha|2983|Guinea-bissau|F|Spouse|||27|109917 +3010|PR|Aguadilla Municipio|Aguadilla zona urbana|2012|0|3|Himmelright|Jeniffer|3003|PR|F|Daughter|||7|109918 +3010|PR|Aguadilla Municipio|Aguadilla zona urbana|2012|0|4|Himmelright|Donna|3007|PR|F|Daughter|||3|109919 +3010|PR|Aguadilla Municipio|Aguadilla zona urbana|2012|0|5|Himmelright|Ruthann|3009|PR|F|Daughter|||1|109920 + +3010|NH|Coos County|Gorham CDP|2013|0|1|Featherston|Terry|2989|Missouri|M|Head|||21|109921 +3010|NH|Coos County|Gorham CDP|2013|0|2|Featherston|Shila|2993|Nebraska|F|Spouse|||17|109922 +3010|NH|Coos County|Gorham CDP|2013|0|3|Featherston|Charis|3001|NH|F|Daughter|||9|109923 +3010|NH|Coos County|Gorham CDP|2013|0|4|Featherston|Cecil|3003|NH|M|Son|||7|109924 +3010|NH|Coos County|Gorham CDP|2013|0|5|Featherston|Pete|3009|NH|M|Son|||1|109925 + +3010|MN|Olmsted County|Eyota city|2014|0|1|Moorhead|Werner|2961|Delaware|M|Head|||49|109926 +3010|MN|Olmsted County|Eyota city|2014|0|2|Moorhead|Ocie|2994|Mexico|F|Spouse|||16|109927 +3010|MN|Olmsted County|Eyota city|2014|0|3|Moorhead|Deshawn|3003|MN|M|Son|||7|109928 +3010|MN|Olmsted County|Eyota city|2014|0|4|Moorhead|Kieth Angelo|3005|MN|M|Son|||5|109929 + +3010|PR|Peñuelas Municipio|Tallaboa comunidad|2015|0|1|Moorhead|Marlin|2977|Massachusetts|M|Head|||33|109930 +3010|PR|Peñuelas Municipio|Tallaboa comunidad|2015|0|2|Moorhead|Tamika|2987|West Virginia|F|Spouse|||23|109931 +3010|PR|Peñuelas Municipio|Tallaboa comunidad|2015|0|3|Moorhead|Darrick|3001|PR|M|Son|||9|109932 +3010|PR|Peñuelas Municipio|Tallaboa comunidad|2015|0|4|Moorhead|Hal Leigh|3003|PR|M|Son|||7|109933 +3010|PR|Peñuelas Municipio|Tallaboa comunidad|2015|0|5|Moorhead|Jeanett|3005|PR|F|Daughter|||5|109934 + +3010|MT|Sanders County|Noxon CDP|2016|0|1|Thomas|Ronald|2975|California|M|Head|||35|109935 +3010|MT|Sanders County|Noxon CDP|2016|0|2|Thomas|Kaylee|2989|Ohio|F|Spouse|||21|109936 +3010|MT|Sanders County|Noxon CDP|2016|0|3|Thomas|Lanie|3001|MT|F|Daughter|||9|109937 +3010|MT|Sanders County|Noxon CDP|2016|0|4|Thomas|Olin|3003|MT|M|Son|||7|109938 +3010|MT|Sanders County|Noxon CDP|2016|0|5|Thomas|Courtney Pierre|3005|MT|M|Son|||5|109939 +3010|MT|Sanders County|Noxon CDP|2016|0|6|Thomas|Rhett|3007|MT|M|Son|||3|109940 + +3010|IA|Fremont County|Imogene city|2017|0|1|Hernandez|Alva|2964|Massachusetts|M|Head|||46|109941 +3010|IA|Fremont County|Imogene city|2017|0|2|Hernandez|Lorine Jessika|2993|Myanmar|F|Spouse|||17|109942 +3010|IA|Fremont County|Imogene city|2017|0|3|Hernandez|Del Ambrose|3003|IA|M|Son|||7|109943 +3010|IA|Fremont County|Imogene city|2017|0|4|Hernandez|Melvin|3009|IA|M|Son|||1|109944 + +3010|IL|Cook County|Forest View village|2018|0|1|Lysaght|Tracey|2986|Ohio|M|Head|||24|109945 +3010|IL|Cook County|Forest View village|2018|0|2|Lysaght|Velvet|2985|Massachusetts|F|Spouse|||25|109946 +3010|IL|Cook County|Forest View village|2018|0|3|Lysaght|Sherri|3005|IL|F|Daughter|||5|109947 +3010|IL|Cook County|Forest View village|2018|0|4|Lysaght|Filiberto Dewayne|3007|IL|M|Son|||3|109948 + +3010|IL|Cook County|Forest View village|2019|0|1|Lysaght|Hong|2990|Norway|M|Head|||20|109949 +3010|IL|Cook County|Forest View village|2019|0|2|Lysaght|Bobbye|2967|Delaware|F|Spouse|||43|109950 +3010|IL|Cook County|Forest View village|2019|0|3|Lysaght|Myles|3001|IL|M|Son|||9|109951 +3010|IL|Cook County|Forest View village|2019|0|4|Lysaght|Bobbie Wilbur|3003|IL|M|Son|||7|109952 + +3010|IL|Cook County|Forest View village|2020|0|1|Lysaght|Alexander Nathanial|2994|Maine|M|Head|||16|109953 +3010|IL|Cook County|Forest View village|2020|0|2|Lysaght|Theodora|2969|Montana|F|Spouse|||41|109954 +3010|IL|Cook County|Forest View village|2020|0|3|Lysaght|Emerald|3001|IL|F|Daughter|||9|109955 +3010|IL|Cook County|Forest View village|2020|0|4|Lysaght|Mai|3003|IL|F|Daughter|||7|109956 +3010|IL|Cook County|Forest View village|2020|0|5|Lysaght|Jude|3005|IL|M|Son|||5|109957 + +3010|OR|Polk County, Yamhill County|Grand Ronde CDP|2021|0|1|Nestel|Philip|2989|Vermont|M|Head|||21|109958 +3010|OR|Polk County, Yamhill County|Grand Ronde CDP|2021|0|2|Nestel|Chanda|2987|Oklahoma|F|Spouse|||23|109959 +3010|OR|Polk County, Yamhill County|Grand Ronde CDP|2021|0|3|Nestel|Machelle|3001|OR|F|Daughter|||9|109960 +3010|OR|Polk County, Yamhill County|Grand Ronde CDP|2021|0|4|Nestel|Gilda|3003|OR|F|Daughter|||7|109961 + +3010|NE|Dixon County|Martinsburg village|2022|0|1|Renaud|Ward|2982|Louisiana|M|Head|||28|109962 +3010|NE|Dixon County|Martinsburg village|2022|0|2|Renaud|Elnora|2959|Austria|F|Spouse|||51|109963 +3010|NE|Dixon County|Martinsburg village|2022|0|3|Renaud|Eryn Wen|3001|NE|F|Daughter|||9|109964 +3010|NE|Dixon County|Martinsburg village|2022|0|4|Renaud|Jules|3003|NE|M|Son|||7|109965 +3010|NE|Dixon County|Martinsburg village|2022|0|5|Renaud|Laila|3009|NE|F|Daughter|||1|109966 + +3010|NE|Dixon County|Martinsburg village|2023|0|1|Renaud|Carter Titus|2994|Kansas|M|Head|||16|109967 +3010|NE|Dixon County|Martinsburg village|2023|0|2|Renaud|Lashandra|2981|North Dakota|F|Spouse|||29|109968 +3010|NE|Dixon County|Martinsburg village|2023|0|3|Renaud|Lesia|3003|NE|F|Daughter|||7|109969 +3010|NE|Dixon County|Martinsburg village|2023|0|4|Renaud|Jenifer|3009|NE|F|Daughter|||1|109970 + +3010|VA|Washington County|Glade Spring town|2024|0|1|Michael|Darwin|2987|Moldova, Republic Of|M|Head|||23|109971 +3010|VA|Washington County|Glade Spring town|2024|0|2|Michael|Jeanelle|2989|Pennsylvania|F|Spouse|||21|109972 +3010|VA|Washington County|Glade Spring town|2024|0|3|Michael|Elenora|3001|VA|F|Daughter|||9|109973 +3010|VA|Washington County|Glade Spring town|2024|0|4|Michael|Adrian|3003|VA|M|Son|||7|109974 +3010|VA|Washington County|Glade Spring town|2024|0|5|Michael|Brigette|3005|VA|F|Daughter|||5|109975 +3010|VA|Washington County|Glade Spring town|2024|0|6|Michael|Emmett Herb|3007|VA|M|Son|||3|109976 + +3010|MA|Plymouth County|Brockton city|2025|0|1|Fronek|Miquel|2991|Hawaii|M|Head|||19|109977 +3010|MA|Plymouth County|Brockton city|2025|0|2|Fronek|Lilliam Shea|2994|Maine|F|Spouse|||16|109978 +3010|MA|Plymouth County|Brockton city|2025|0|3|Fronek|Felix Art|3001|MA|M|Son|||9|109979 +3010|MA|Plymouth County|Brockton city|2025|0|4|Fronek|Whitney|3003|MA|M|Son|||7|109980 +3010|MA|Plymouth County|Brockton city|2025|0|5|Fronek|Leland Ray|3005|MA|M|Son|||5|109981 +3010|MA|Plymouth County|Brockton city|2025|0|6|Fronek|Clair|3007|MA|M|Son|||3|109982 + +3010|NH|Grafton County|Enfield town|2026|0|1|Loeppke|Doug|2993|Missouri|M|Head|||17|109983 +3010|NH|Grafton County|Enfield town|2026|0|2|Loeppke|Clementine|2994|French Guiana|F|Spouse|||16|109984 +3010|NH|Grafton County|Enfield town|2026|0|3|Loeppke|Loren|3005|NH|M|Son|||5|109985 +3010|NH|Grafton County|Enfield town|2026|0|4|Loeppke|Lakesha Sana|3007|NH|F|Daughter|||3|109986 +3010|NH|Grafton County|Enfield town|2026|0|5|Loeppke|Arnold|3009|NH|M|Son|||1|109987 + +3010|OH|Hamilton County|Pleasant Run Farm CDP|2027|0|1|Damour|Lacy|2967|Kansas|M|Head|||43|109988 +3010|OH|Hamilton County|Pleasant Run Farm CDP|2027|0|2|Damour|Santa|2988|West Virginia|F|Spouse|||22|109989 +3010|OH|Hamilton County|Pleasant Run Farm CDP|2027|0|3|Damour|Corrine|3001|OH|F|Daughter|||9|109990 +3010|OH|Hamilton County|Pleasant Run Farm CDP|2027|0|4|Damour|Evonne|3003|OH|F|Daughter|||7|109991 +3010|OH|Hamilton County|Pleasant Run Farm CDP|2027|0|5|Damour|Deana|3009|OH|F|Daughter|||1|109992 + +3010|OH|Hamilton County|Pleasant Run Farm CDP|2028|0|1|Damour|Lowell|2987|Maine|M|Head|||23|109993 +3010|OH|Hamilton County|Pleasant Run Farm CDP|2028|0|2|Damour|Stacy|2981|Wyoming|F|Spouse|||29|109994 +3010|OH|Hamilton County|Pleasant Run Farm CDP|2028|0|3|Damour|Santos|3001|OH|M|Son|||9|109995 + +3010|PA|Allegheny County|West Homestead borough|2029|0|1|Chilek|Quincy|2988|Gibraltar|M|Head|||22|109996 +3010|PA|Allegheny County|West Homestead borough|2029|0|2|Chilek|Jannet|2985|Estonia|F|Spouse|||25|109997 +3010|PA|Allegheny County|West Homestead borough|2029|0|3|Chilek|Rodger|3001|PA|M|Son|||9|109998 +3010|PA|Allegheny County|West Homestead borough|2029|0|4|Chilek|Chester|3003|PA|M|Son|||7|109999 +3010|PA|Allegheny County|West Homestead borough|2029|0|5|Chilek|Corazon|3007|PA|F|Daughter|||3|110000 +3010|PA|Allegheny County|West Homestead borough|2029|0|6|Chilek|Andres|3009|PA|M|Son|||1|110001 + +3010|FL|Sumter County|Coleman city|2030|0|1|Dagis|Joesph|2987|Colorado|M|Head|||23|110002 +3010|FL|Sumter County|Coleman city|2030|0|2|Dagis|Maxima Terresa|2988|Kentucky|F|Spouse|||22|110003 +3010|FL|Sumter County|Coleman city|2030|0|3|Dagis|Rudy|3001|FL|M|Son|||9|110004 +3010|FL|Sumter County|Coleman city|2030|0|4|Dagis|Stephan|3003|FL|M|Son|||7|110005 +3010|FL|Sumter County|Coleman city|2030|0|5|Dagis|Kandis|3007|FL|F|Daughter|||3|110006 + +3010|FL|Sumter County|Coleman city|2031|0|1|Dagis|Elijah|2993|New Mexico|M|Head|||17|110007 +3010|FL|Sumter County|Coleman city|2031|0|2|Dagis|Marquerite|2993|Kentucky|F|Spouse|||17|110008 +3010|FL|Sumter County|Coleman city|2031|0|3|Dagis|Jerold|3001|FL|M|Son|||9|110009 +3010|FL|Sumter County|Coleman city|2031|0|4|Dagis|Dorris Trudy|3003|FL|F|Daughter|||7|110010 +3010|FL|Sumter County|Coleman city|2031|0|5|Dagis|Titus|3007|FL|M|Son|||3|110011 + +3010|MA|Worcester County|Boylston town|2032|0|1|Cappelluti|Clifton|2991|Venezuela|M|Head|||19|110012 +3010|MA|Worcester County|Boylston town|2032|0|2|Cappelluti|Glinda|2971|California|F|Spouse|||39|110013 +3010|MA|Worcester County|Boylston town|2032|0|3|Cappelluti|Gaston|3001|MA|M|Son|||9|110014 +3010|MA|Worcester County|Boylston town|2032|0|4|Cappelluti|Edyth|3003|MA|F|Daughter|||7|110015 +3010|MA|Worcester County|Boylston town|2032|0|5|Cappelluti|Russel|3005|MA|M|Son|||5|110016 +3010|MA|Worcester County|Boylston town|2032|0|6|Cappelluti|Alphonse|3007|MA|M|Son|||3|110017 +3010|MA|Worcester County|Boylston town|2032|0|7|Cappelluti|Willis Colby|3009|MA|M|Son|||1|110018 + +3010|TX|Tarrant County|Kennedale city|2033|0|1|Bosshart|Tod|2994|Arkansas|M|Head|||16|110019 +3010|TX|Tarrant County|Kennedale city|2033|0|2|Bosshart|Ava|2979|West Virginia|F|Spouse|||31|110020 +3010|TX|Tarrant County|Kennedale city|2033|0|3|Bosshart|Fiona|3001|TX|F|Daughter|||9|110021 +3010|TX|Tarrant County|Kennedale city|2033|0|4|Bosshart|Mckenzie|3003|TX|F|Daughter|||7|110022 +3010|TX|Tarrant County|Kennedale city|2033|0|5|Bosshart|Agustina|3005|TX|F|Daughter|||5|110023 +3010|TX|Tarrant County|Kennedale city|2033|0|6|Bosshart|Sean Leah|3007|TX|F|Daughter|||3|110024 + +3010|MN|Aitkin County|Nordland township|2034|0|1|Deegan|Pat Daren|2991|New Mexico|M|Head|||19|110025 +3010|MN|Aitkin County|Nordland township|2034|0|2|Deegan|Malisa|2985|Svalbard And Jan Mayen|F|Spouse|||25|110026 +3010|MN|Aitkin County|Nordland township|2034|0|3|Deegan|Sharon|3001|MN|F|Daughter|||9|110027 +3010|MN|Aitkin County|Nordland township|2034|0|4|Deegan|Mabelle|3003|MN|F|Daughter|||7|110028 +3010|MN|Aitkin County|Nordland township|2034|0|5|Deegan|Stephine|3005|MN|F|Daughter|||5|110029 + +3010|TX|Bexar County|Hill Country Village city|2035|0|1|Deckman|Hoyt|2990|Arkansas|M|Head|||20|110030 +3010|TX|Bexar County|Hill Country Village city|2035|0|2|Deckman|Jadwiga|2993|California|F|Spouse|||17|110031 +3010|TX|Bexar County|Hill Country Village city|2035|0|3|Deckman|Phil|3001|TX|M|Son|||9|110032 +3010|TX|Bexar County|Hill Country Village city|2035|0|4|Deckman|Henry|3005|TX|M|Son|||5|110033 +3010|TX|Bexar County|Hill Country Village city|2035|0|5|Deckman|Salvador|3007|TX|M|Son|||3|110034 +3010|TX|Bexar County|Hill Country Village city|2035|0|6|Deckman|Benita|3009|TX|F|Daughter|||1|110035 + +3010|CT|Windham County|Moosup CDP|2036|0|1|Balmaceda|Sammie|2975|Hawaii|M|Head|||35|110036 +3010|CT|Windham County|Moosup CDP|2036|0|2|Balmaceda|Renetta|2993|Georgia|F|Spouse|||17|110037 +3010|CT|Windham County|Moosup CDP|2036|0|3|Balmaceda|Thaddeus|3001|CT|M|Son|||9|110038 +3010|CT|Windham County|Moosup CDP|2036|0|4|Balmaceda|Stewart Lamar|3003|CT|M|Son|||7|110039 +3010|CT|Windham County|Moosup CDP|2036|0|5|Balmaceda|Almeta Nadia|3005|CT|F|Daughter|||5|110040 +3010|CT|Windham County|Moosup CDP|2036|0|6|Balmaceda|Werner|3007|CT|M|Son|||3|110041 +3010|CT|Windham County|Moosup CDP|2036|0|7|Balmaceda|Elizebeth|3009|CT|F|Daughter|||1|110042 + +3010|TX|Rains County, Wood County|Alba town|2037|0|1|Follis|Sherwood|2978|Syrian Arab Republic|M|Head|||32|110043 +3010|TX|Rains County, Wood County|Alba town|2037|0|2|Follis|Lelah|2976|Montana|F|Spouse|||34|110044 +3010|TX|Rains County, Wood County|Alba town|2037|0|3|Follis|Renae|3003|TX|F|Daughter|||7|110045 +3010|TX|Rains County, Wood County|Alba town|2037|0|4|Follis|Sheri|3005|TX|F|Daughter|||5|110046 +3010|TX|Rains County, Wood County|Alba town|2037|0|5|Follis|Kory|3007|TX|M|Son|||3|110047 + +3010|MN|Winona County|Stockton city|2038|0|1|Follis|Rafael|2992|Illinois|M|Head|||18|110048 +3010|MN|Winona County|Stockton city|2038|0|2|Follis|Stephen|2991|West Virginia|F|Spouse|||19|110049 +3010|MN|Winona County|Stockton city|2038|0|3|Follis|Lynelle|3001|MN|F|Daughter|||9|110050 + +3010|MN|Winona County|Stockton city|2039|0|1|Follis|Jc|2994|Minnesota|M|Head|||16|110051 +3010|MN|Winona County|Stockton city|2039|0|2|Follis|Anita Gayla|2985|South Carolina|F|Spouse|||25|110052 +3010|MN|Winona County|Stockton city|2039|0|3|Follis|Estelle|3007|MN|F|Daughter|||3|110053 +3010|MN|Winona County|Stockton city|2039|0|4|Follis|Lacy|3009|MN|M|Son|||1|110054 + +3010|CA|Mono County|Sunny Slopes CDP|2040|0|1|Pou|Evan|2990|Jordan|M|Head|||20|110055 +3010|CA|Mono County|Sunny Slopes CDP|2040|0|2|Pou|Ellan|2991|Central African Republic|F|Spouse|||19|110056 +3010|CA|Mono County|Sunny Slopes CDP|2040|0|3|Pou|Janell|3001|CA|F|Daughter|||9|110057 +3010|CA|Mono County|Sunny Slopes CDP|2040|0|4|Pou|Tamela|3003|CA|F|Daughter|||7|110058 +3010|CA|Mono County|Sunny Slopes CDP|2040|0|5|Pou|Tamra|3009|CA|F|Daughter|||1|110059 + +3010|NJ|Passaic County|Paterson city|2041|0|1|Childers|Reyes|2980|Nebraska|M|Head|||30|110060 +3010|NJ|Passaic County|Paterson city|2041|0|2|Childers|Ivonne|2993|West Virginia|F|Spouse|||17|110061 +3010|NJ|Passaic County|Paterson city|2041|0|3|Childers|Rayford|3001|NJ|M|Son|||9|110062 +3010|NJ|Passaic County|Paterson city|2041|0|4|Childers|Grady|3005|NJ|M|Son|||5|110063 +3010|NJ|Passaic County|Paterson city|2041|0|5|Childers|Ollie|3009|NJ|M|Son|||1|110064 + +3010|WI|Jefferson County|Jefferson city|2042|0|1|Weber|Stan|2984|Washington|M|Head|||26|110065 +3010|WI|Jefferson County|Jefferson city|2042|0|2|Weber|Hilda|2990|Wisconsin|F|Spouse|||20|110066 +3010|WI|Jefferson County|Jefferson city|2042|0|3|Weber|Sofia Mckenzie|3001|WI|F|Daughter|||9|110067 +3010|WI|Jefferson County|Jefferson city|2042|0|4|Weber|Alphonso|3005|WI|M|Son|||5|110068 + +3010|NY|Lewis County|West Turin town|2043|0|1|Moe|Florencio|2990|New Jersey|M|Head|||20|110069 +3010|NY|Lewis County|West Turin town|2043|0|2|Moe|Delena|2993|Kansas|F|Spouse|||17|110070 +3010|NY|Lewis County|West Turin town|2043|0|3|Moe|Joya|3001|NY|F|Daughter|||9|110071 +3010|NY|Lewis County|West Turin town|2043|0|4|Moe|Caleb|3003|NY|M|Son|||7|110072 +3010|NY|Lewis County|West Turin town|2043|0|5|Moe|Zula Glynda|3005|NY|F|Daughter|||5|110073 + +3010|KS|McPherson County|Marquette city|2044|0|1|Sahagian|Gerard|2992|Arkansas|M|Head|||18|110074 +3010|KS|McPherson County|Marquette city|2044|0|2|Sahagian|Debby|2986|Maryland|F|Spouse|||24|110075 +3010|KS|McPherson County|Marquette city|2044|0|3|Sahagian|Rodney|3005|KS|M|Son|||5|110076 +3010|KS|McPherson County|Marquette city|2044|0|4|Sahagian|Jill|3009|KS|F|Daughter|||1|110077 + +3010|VT|Orleans County|Newport city|2045|0|1|Nolan|Christian|2983|New Jersey|M|Head|||27|110078 +3010|VT|Orleans County|Newport city|2045|0|2|Nolan|Ona Magdalena|2988|New York|F|Spouse|||22|110079 +3010|VT|Orleans County|Newport city|2045|0|3|Nolan|Gregorio|3001|VT|M|Son|||9|110080 +3010|VT|Orleans County|Newport city|2045|0|4|Nolan|Nicolette|3005|VT|F|Daughter|||5|110081 +3010|VT|Orleans County|Newport city|2045|0|5|Nolan|Adaline|3009|VT|F|Daughter|||1|110082 + +3010|VT|Orleans County|Newport city|2046|0|1|Nolan|Fletcher|2993|Georgia|M|Head|||17|110083 +3010|VT|Orleans County|Newport city|2046|0|2|Nolan|Annalisa|2982|Kentucky|F|Spouse|||28|110084 +3010|VT|Orleans County|Newport city|2046|0|3|Nolan|Irene|3001|VT|F|Daughter|||9|110085 +3010|VT|Orleans County|Newport city|2046|0|4|Nolan|Val|3003|VT|M|Son|||7|110086 + +3010|WI|Waushara County|Coloma village|2047|0|1|Mannion|Guillermo|2993|Indiana|M|Head|||17|110087 +3010|WI|Waushara County|Coloma village|2047|0|2|Mannion|Daria|2990|Texas|F|Spouse|||20|110088 +3010|WI|Waushara County|Coloma village|2047|0|3|Mannion|Eula|3001|WI|F|Daughter|||9|110089 +3010|WI|Waushara County|Coloma village|2047|0|4|Mannion|Collette|3003|WI|F|Daughter|||7|110090 + +3010|PR|Sabana Grande Municipio|Sabana Grande zona urbana|2048|0|1|Santos|Nicolas|2978|Ohio|M|Head|||32|110091 +3010|PR|Sabana Grande Municipio|Sabana Grande zona urbana|2048|0|2|Santos|Valene|2992|Virginia|F|Spouse|||18|110092 +3010|PR|Sabana Grande Municipio|Sabana Grande zona urbana|2048|0|3|Santos|Renate Domitila|3001|PR|F|Daughter|||9|110093 +3010|PR|Sabana Grande Municipio|Sabana Grande zona urbana|2048|0|4|Santos|Nigel|3003|PR|M|Son|||7|110094 +3010|PR|Sabana Grande Municipio|Sabana Grande zona urbana|2048|0|5|Santos|Hans|3009|PR|M|Son|||1|110095 + +3010|AR|Crawford County|Mulberry city|2049|0|1|Santos|Jeremiah|2990|Missouri|M|Head|||20|110096 +3010|AR|Crawford County|Mulberry city|2049|0|2|Santos|Kanisha|2994|Kansas|F|Spouse|||16|110097 +3010|AR|Crawford County|Mulberry city|2049|0|3|Santos|Mable Nettie|3003|AR|F|Daughter|||7|110098 +3010|AR|Crawford County|Mulberry city|2049|0|4|Santos|Tu|3007|AR|F|Daughter|||3|110099 +3010|AR|Crawford County|Mulberry city|2049|0|5|Santos|Daryl|3009|AR|F|Daughter|||1|110100 + +3010|PR|Sabana Grande Municipio|Sabana Grande zona urbana|2050|0|1|Santos|Jose|2994|Michigan|M|Head|||16|110101 +3010|PR|Sabana Grande Municipio|Sabana Grande zona urbana|2050|0|2|Santos|Carey|2988|Vermont|F|Spouse|||22|110102 +3010|PR|Sabana Grande Municipio|Sabana Grande zona urbana|2050|0|3|Santos|Mazie|3001|PR|F|Daughter|||9|110103 +3010|PR|Sabana Grande Municipio|Sabana Grande zona urbana|2050|0|4|Santos|Tyson|3007|PR|M|Son|||3|110104 + +3010|ID|Payette County|Payette city|2051|0|1|Hofstetter|Alva|2985|Rhode Island|M|Head|||25|110105 +3010|ID|Payette County|Payette city|2051|0|2|Hofstetter|Hertha Danika|2982|Rhode Island|F|Spouse|||28|110106 +3010|ID|Payette County|Payette city|2051|0|3|Hofstetter|Grover|3001|ID|M|Son|||9|110107 +3010|ID|Payette County|Payette city|2051|0|4|Hofstetter|Mari|3003|ID|F|Daughter|||7|110108 +3010|ID|Payette County|Payette city|2051|0|5|Hofstetter|Kori|3005|ID|F|Daughter|||5|110109 + +3010|VT|Windham County|Athens town|2052|0|1|Baskow|Manuel|2976|Zimbabwe|M|Head|||34|110110 +3010|VT|Windham County|Athens town|2052|0|2|Baskow|Margarita|2986|Tunisia|F|Spouse|||24|110111 +3010|VT|Windham County|Athens town|2052|0|3|Baskow|Donita|3001|VT|F|Daughter|||9|110112 +3010|VT|Windham County|Athens town|2052|0|4|Baskow|Alvin|3009|VT|M|Son|||1|110113 + +3010|KS|Cherokee County|Galena city|2053|0|1|Meadows|Nicholas|2983|Mozambique|M|Head|||27|110114 +3010|KS|Cherokee County|Galena city|2053|0|2|Meadows|Dorla|2988|New York|F|Spouse|||22|110115 +3010|KS|Cherokee County|Galena city|2053|0|3|Meadows|Ike|3001|KS|M|Son|||9|110116 +3010|KS|Cherokee County|Galena city|2053|0|4|Meadows|Michal|3003|KS|M|Son|||7|110117 +3010|KS|Cherokee County|Galena city|2053|0|5|Meadows|Jayna|3005|KS|F|Daughter|||5|110118 +3010|KS|Cherokee County|Galena city|2053|0|6|Meadows|Faustino|3007|KS|M|Son|||3|110119 +3010|KS|Cherokee County|Galena city|2053|0|7|Meadows|Alyce|3009|KS|F|Daughter|||1|110120 + +3010|ME|Penobscot County|Hampden town|2054|0|1|Davis|Willy|2990|New Mexico|M|Head|||20|110121 +3010|ME|Penobscot County|Hampden town|2054|0|2|Davis|Treasa|2988|Arkansas|F|Spouse|||22|110122 +3010|ME|Penobscot County|Hampden town|2054|0|3|Davis|Herbert|3003|ME|M|Son|||7|110123 +3010|ME|Penobscot County|Hampden town|2054|0|4|Davis|Hermina|3009|ME|F|Daughter|||1|110124 + +3010|NM|Lea County|Nadine CDP|2055|0|1|Helton|Mary|2986|Illinois|M|Head|||24|110125 +3010|NM|Lea County|Nadine CDP|2055|0|2|Helton|Lynsey|2990|Michigan|F|Spouse|||20|110126 +3010|NM|Lea County|Nadine CDP|2055|0|3|Helton|Virgil|3001|NM|M|Son|||9|110127 +3010|NM|Lea County|Nadine CDP|2055|0|4|Helton|Jude|3003|NM|F|Daughter|||7|110128 +3010|NM|Lea County|Nadine CDP|2055|0|5|Helton|Octavio|3005|NM|M|Son|||5|110129 +3010|NM|Lea County|Nadine CDP|2055|0|6|Helton|Guy|3007|NM|M|Son|||3|110130 + +3010|MO|Nodaway County|Elmo city|2056|0|1|Kosh|Bennett|2992|Minnesota|M|Head|||18|110131 +3010|MO|Nodaway County|Elmo city|2056|0|2|Kosh|Yolande|2985|Delaware|F|Spouse|||25|110132 +3010|MO|Nodaway County|Elmo city|2056|0|3|Kosh|Alva|3005|MO|M|Son|||5|110133 +3010|MO|Nodaway County|Elmo city|2056|0|4|Kosh|Argelia|3007|MO|F|Daughter|||3|110134 +3010|MO|Nodaway County|Elmo city|2056|0|5|Kosh|Daniel|3009|MO|M|Son|||1|110135 + +3010|NJ|Union County|Summit city|2057|0|1|Branck|Leonard|2979|Hawaii|M|Head|||31|110136 +3010|NJ|Union County|Summit city|2057|0|2|Branck|Mica Lorette|2991|Rhode Island|F|Spouse|||19|110137 +3010|NJ|Union County|Summit city|2057|0|3|Branck|Dimple|3003|NJ|F|Daughter|||7|110138 + +3010|NJ|Union County|Summit city|2058|0|1|Branck|Moises|2989|Indiana|M|Head|||21|110139 +3010|NJ|Union County|Summit city|2058|0|2|Branck|Yukiko|2986|Connecticut|F|Spouse|||24|110140 +3010|NJ|Union County|Summit city|2058|0|3|Branck|Felipe|3001|NJ|M|Son|||9|110141 +3010|NJ|Union County|Summit city|2058|0|4|Branck|Harry Phillip|3003|NJ|M|Son|||7|110142 +3010|NJ|Union County|Summit city|2058|0|5|Branck|Jack|3005|NJ|M|Son|||5|110143 +3010|NJ|Union County|Summit city|2058|0|6|Branck|Kena|3007|NJ|F|Daughter|||3|110144 + +3010|MA|Worcester County|Baldwinville CDP|2059|0|1|Matteo|Randolph|2989|Kentucky|M|Head|||21|110145 +3010|MA|Worcester County|Baldwinville CDP|2059|0|2|Matteo|Alvera|2988|Alaska|F|Spouse|||22|110146 +3010|MA|Worcester County|Baldwinville CDP|2059|0|3|Matteo|Digna|3001|MA|F|Daughter|||9|110147 +3010|MA|Worcester County|Baldwinville CDP|2059|0|4|Matteo|Ciara|3003|MA|F|Daughter|||7|110148 +3010|MA|Worcester County|Baldwinville CDP|2059|0|5|Matteo|Tori|3005|MA|F|Daughter|||5|110149 +3010|MA|Worcester County|Baldwinville CDP|2059|0|6|Matteo|Clemente|3007|MA|M|Son|||3|110150 + +3010|TX|Zapata County|Lopeño CDP|2060|0|1|Auble|Stefan|2976|South Dakota|M|Head|||34|110151 +3010|TX|Zapata County|Lopeño CDP|2060|0|2|Auble|Farah|2988|Illinois|F|Spouse|||22|110152 +3010|TX|Zapata County|Lopeño CDP|2060|0|3|Auble|Yoshie Chloe|3003|TX|F|Daughter|||7|110153 + +3010|MA|Worcester County|Sterling town|2061|0|1|Tinsman|Devin|2992|Maryland|M|Head|||18|110154 +3010|MA|Worcester County|Sterling town|2061|0|2|Tinsman|Zada|2988|Turkey|F|Spouse|||22|110155 +3010|MA|Worcester County|Sterling town|2061|0|3|Tinsman|Fredric|3001|MA|M|Son|||9|110156 +3010|MA|Worcester County|Sterling town|2061|0|4|Tinsman|Charlyn|3005|MA|F|Daughter|||5|110157 + +3010|NY|Livingston County|Livonia village|2062|0|1|Ruckman|Laurence|2986|Pennsylvania|M|Head|||24|110158 +3010|NY|Livingston County|Livonia village|2062|0|2|Ruckman|Lavonna Alex|2992|Switzerland|F|Spouse|||18|110159 +3010|NY|Livingston County|Livonia village|2062|0|3|Ruckman|Jerrie|3003|NY|F|Daughter|||7|110160 +3010|NY|Livingston County|Livonia village|2062|0|4|Ruckman|Saul|3005|NY|M|Son|||5|110161 +3010|NY|Livingston County|Livonia village|2062|0|5|Ruckman|Rene|3009|NY|M|Son|||1|110162 + +3010|NY|Livingston County|Livonia village|2063|0|1|Ruckman|Ernest|2990|Massachusetts|M|Head|||20|110163 +3010|NY|Livingston County|Livonia village|2063|0|2|Ruckman|Shannon|2994|Oklahoma|F|Spouse|||16|110164 +3010|NY|Livingston County|Livonia village|2063|0|3|Ruckman|Oralia Keila|3003|NY|F|Daughter|||7|110165 +3010|NY|Livingston County|Livonia village|2063|0|4|Ruckman|Ladonna|3005|NY|F|Daughter|||5|110166 + +3010|IA|Emmet County|Ringsted city|2064|0|1|Phillips|Hugo Burt|2988|Oklahoma|M|Head|||22|110167 +3010|IA|Emmet County|Ringsted city|2064|0|2|Phillips|Cherryl|2991|Delaware|F|Spouse|||19|110168 +3010|IA|Emmet County|Ringsted city|2064|0|3|Phillips|Kyla|3001|IA|F|Daughter|||9|110169 +3010|IA|Emmet County|Ringsted city|2064|0|4|Phillips|Elidia|3005|IA|F|Daughter|||5|110170 +3010|IA|Emmet County|Ringsted city|2064|0|5|Phillips|Celia Fanny|3007|IA|F|Daughter|||3|110171 +3010|IA|Emmet County|Ringsted city|2064|0|6|Phillips|Cordia|3009|IA|F|Daughter|||1|110172 + +3010|MI|Eaton County|Oneida charter township|2065|0|1|Hunt|Bennett|2990|Indiana|M|Head|||20|110173 +3010|MI|Eaton County|Oneida charter township|2065|0|2|Hunt|Lu|2963|Kenya|F|Spouse|||47|110174 +3010|MI|Eaton County|Oneida charter township|2065|0|3|Hunt|Janae|3001|MI|F|Daughter|||9|110175 +3010|MI|Eaton County|Oneida charter township|2065|0|4|Hunt|Chester|3003|MI|M|Son|||7|110176 +3010|MI|Eaton County|Oneida charter township|2065|0|5|Hunt|Renee|3009|MI|F|Daughter|||1|110177 + +3010|WI|Waushara County|Coloma village|2066|0|1|Tur|Sammie|2987|Delaware|M|Head|||23|110178 +3010|WI|Waushara County|Coloma village|2066|0|2|Tur|Bethany Elenor|2977|Louisiana|F|Spouse|||33|110179 +3010|WI|Waushara County|Coloma village|2066|0|3|Tur|Natividad|3001|WI|F|Daughter|||9|110180 +3010|WI|Waushara County|Coloma village|2066|0|4|Tur|Demetrius|3003|WI|F|Daughter|||7|110181 +3010|WI|Waushara County|Coloma village|2066|0|5|Tur|Dean Toby|3005|WI|M|Son|||5|110182 + +3010|WI|Waushara County|Coloma village|2067|0|1|Tur|Larry|2989|Mississippi|M|Head|||21|110183 +3010|WI|Waushara County|Coloma village|2067|0|2|Tur|Catheryn Jerry|2991|East Timor|F|Spouse|||19|110184 +3010|WI|Waushara County|Coloma village|2067|0|3|Tur|Demarcus|3001|WI|M|Son|||9|110185 +3010|WI|Waushara County|Coloma village|2067|0|4|Tur|Vaughn|3003|WI|M|Son|||7|110186 +3010|WI|Waushara County|Coloma village|2067|0|5|Tur|Micah|3005|WI|M|Son|||5|110187 +3010|WI|Waushara County|Coloma village|2067|0|6|Tur|Wava|3007|WI|F|Daughter|||3|110188 + +3010|NY|Allegany County|Willing town|2068|0|1|Tur|Laverne|2993|Michigan|M|Head|||17|110189 +3010|NY|Allegany County|Willing town|2068|0|2|Tur|Marlene|2974|Bouvet Island|F|Spouse|||36|110190 +3010|NY|Allegany County|Willing town|2068|0|3|Tur|Tracy|3001|NY|M|Son|||9|110191 +3010|NY|Allegany County|Willing town|2068|0|4|Tur|Glenn|3009|NY|F|Daughter|||1|110192 + +3010|WI|Marinette County|Goodman town|2069|0|1|Yu|Dylan Carson|2980|Belgium|M|Head|||30|110193 +3010|WI|Marinette County|Goodman town|2069|0|2|Yu|Denisse|2982|Anguilla|F|Spouse|||28|110194 +3010|WI|Marinette County|Goodman town|2069|0|3|Yu|Janey Hedwig|3009|WI|F|Daughter|||1|110195 + +3010|WI|Marinette County|Goodman town|2070|0|1|Yu|Alec|2992|Kansas|M|Head|||18|110196 +3010|WI|Marinette County|Goodman town|2070|0|2|Yu|Charla|2990|Kansas|F|Spouse|||20|110197 +3010|WI|Marinette County|Goodman town|2070|0|3|Yu|Kaleigh|3003|WI|F|Daughter|||7|110198 +3010|WI|Marinette County|Goodman town|2070|0|4|Yu|Antoine|3009|WI|M|Son|||1|110199 + +3010|MA|Worcester County|Sutton town|2071|0|1|Green|Tom|2992|Connecticut|M|Head|||18|110200 +3010|MA|Worcester County|Sutton town|2071|0|2|Green|Gillian|2992|Kansas|F|Spouse|||18|110201 +3010|MA|Worcester County|Sutton town|2071|0|3|Green|Illa|3003|MA|F|Daughter|||7|110202 +3010|MA|Worcester County|Sutton town|2071|0|4|Green|Alberto|3005|MA|M|Son|||5|110203 + +3010|AL|Dale County|Midland City town|2072|0|1|Sturgul|Jonas|2971|Michigan|M|Head|||39|110204 +3010|AL|Dale County|Midland City town|2072|0|2|Sturgul|Lien|2994|Kansas|F|Spouse|||16|110205 +3010|AL|Dale County|Midland City town|2072|0|3|Sturgul|Caterina|3001|AL|F|Daughter|||9|110206 +3010|AL|Dale County|Midland City town|2072|0|4|Sturgul|Annalisa|3003|AL|F|Daughter|||7|110207 +3010|AL|Dale County|Midland City town|2072|0|5|Sturgul|Ed|3007|AL|M|Son|||3|110208 + +3010|MT|Wibaux County|Wibaux town|2073|0|1|Sturgul|Simon|2985|Wyoming|M|Head|||25|110209 +3010|MT|Wibaux County|Wibaux town|2073|0|2|Sturgul|Ludie|2975|North Dakota|F|Spouse|||35|110210 +3010|MT|Wibaux County|Wibaux town|2073|0|3|Sturgul|Micheal|3005|MT|M|Son|||5|110211 +3010|MT|Wibaux County|Wibaux town|2073|0|4|Sturgul|Elli|3007|MT|F|Daughter|||3|110212 +3010|MT|Wibaux County|Wibaux town|2073|0|5|Sturgul|Minda|3009|MT|F|Daughter|||1|110213 + +3010|FL|Brevard County|Cape Canaveral city|2074|0|1|Schnabel|Milton Levi|2986|Virginia|M|Head|||24|110214 +3010|FL|Brevard County|Cape Canaveral city|2074|0|2|Schnabel|Marianela|2987|Rhode Island|F|Spouse|||23|110215 +3010|FL|Brevard County|Cape Canaveral city|2074|0|3|Schnabel|Lera|3005|FL|F|Daughter|||5|110216 +3010|FL|Brevard County|Cape Canaveral city|2074|0|4|Schnabel|Jeanelle|3009|FL|F|Daughter|||1|110217 + +3010|MN|Swift County|Kerkhoven township|2075|0|1|Dukelow|Steven|2973|Oregon|M|Head|||37|110218 +3010|MN|Swift County|Kerkhoven township|2075|0|2|Dukelow|Hiedi|2975|Iowa|F|Spouse|||35|110219 +3010|MN|Swift County|Kerkhoven township|2075|0|3|Dukelow|Jaunita|3001|MN|F|Daughter|||9|110220 +3010|MN|Swift County|Kerkhoven township|2075|0|4|Dukelow|Jo|3007|MN|F|Daughter|||3|110221 +3010|MN|Swift County|Kerkhoven township|2075|0|5|Dukelow|Kimberly|3009|MN|F|Daughter|||1|110222 + +3010|MD|Caroline County|Preston town|2076|0|1|Helwig|Rod|2990|North Carolina|M|Head|||20|110223 +3010|MD|Caroline County|Preston town|2076|0|2|Helwig|Lesia|2991|China|F|Spouse|||19|110224 +3010|MD|Caroline County|Preston town|2076|0|3|Helwig|Elwood Barry|3001|MD|M|Son|||9|110225 +3010|MD|Caroline County|Preston town|2076|0|4|Helwig|Quinn|3005|MD|M|Son|||5|110226 +3010|MD|Caroline County|Preston town|2076|0|5|Helwig|Jenice|3007|MD|F|Daughter|||3|110227 + +3010|PA|Tioga County|Farmington township|2077|0|1|Budds|Eugene Alfonzo|2987|South Dakota|M|Head|||23|110228 +3010|PA|Tioga County|Farmington township|2077|0|2|Budds|Valene|2993|Iowa|F|Spouse|||17|110229 +3010|PA|Tioga County|Farmington township|2077|0|3|Budds|Vera|3003|PA|F|Daughter|||7|110230 +3010|PA|Tioga County|Farmington township|2077|0|4|Budds|Jacalyn|3009|PA|F|Daughter|||1|110231 + +3010|SC|Spartanburg County|Inman Mills CDP|2078|0|1|Henderson|Werner|2981|North Carolina|M|Head|||29|110232 +3010|SC|Spartanburg County|Inman Mills CDP|2078|0|2|Henderson|Corrine|2991|Mexico|F|Spouse|||19|110233 +3010|SC|Spartanburg County|Inman Mills CDP|2078|0|3|Henderson|Lucia|3007|SC|F|Daughter|||3|110234 + +3010|PA|Potter County|Summit township|2079|0|1|Curci|Ronnie|2988|Delaware|M|Head|||22|110235 +3010|PA|Potter County|Summit township|2079|0|2|Curci|Alix|2988|Delaware|F|Spouse|||22|110236 +3010|PA|Potter County|Summit township|2079|0|3|Curci|Tatyana|3001|PA|F|Daughter|||9|110237 +3010|PA|Potter County|Summit township|2079|0|4|Curci|Seth|3003|PA|M|Son|||7|110238 +3010|PA|Potter County|Summit township|2079|0|5|Curci|Lisabeth|3007|PA|F|Daughter|||3|110239 + +3010|CO|Chaffee County|Johnson Village CDP|2080|0|1|Curci|Shad|2994|Colorado|M|Head|||16|110240 +3010|CO|Chaffee County|Johnson Village CDP|2080|0|2|Curci|Nia|2976|Iowa|F|Spouse|||34|110241 +3010|CO|Chaffee County|Johnson Village CDP|2080|0|3|Curci|Yong|3001|CO|M|Son|||9|110242 +3010|CO|Chaffee County|Johnson Village CDP|2080|0|4|Curci|Una|3005|CO|F|Daughter|||5|110243 +3010|CO|Chaffee County|Johnson Village CDP|2080|0|5|Curci|Felipe|3009|CO|M|Son|||1|110244 + +3010|ID|Payette County|New Plymouth city|2081|0|1|Peterson|Cory|2976|Maryland|M|Head|||34|110245 +3010|ID|Payette County|New Plymouth city|2081|0|2|Peterson|Gema Vanessa|2986|Florida|F|Spouse|||24|110246 +3010|ID|Payette County|New Plymouth city|2081|0|3|Peterson|Rashad|3001|ID|M|Son|||9|110247 +3010|ID|Payette County|New Plymouth city|2081|0|4|Peterson|Ahmed Hal|3005|ID|M|Son|||5|110248 + +3010|KY|Greenup County|Raceland city|2082|0|1|Novida|Kim|2974|Benin|M|Head|||36|110249 +3010|KY|Greenup County|Raceland city|2082|0|2|Novida|Albertina|2981|Saint Helena|F|Spouse|||29|110250 +3010|KY|Greenup County|Raceland city|2082|0|3|Novida|Deidre|3001|KY|F|Daughter|||9|110251 +3010|KY|Greenup County|Raceland city|2082|0|4|Novida|Heike Alita|3007|KY|F|Daughter|||3|110252 +3010|KY|Greenup County|Raceland city|2082|0|5|Novida|Wan|3009|KY|F|Daughter|||1|110253 + +3010|NJ|Union County|Summit city|2083|0|1|Aalbers|Nolan Minh|2988|Alaska|M|Head|||22|110254 +3010|NJ|Union County|Summit city|2083|0|2|Aalbers|Cary Kamilah|2985|Missouri|F|Spouse|||25|110255 +3010|NJ|Union County|Summit city|2083|0|3|Aalbers|Mari|3003|NJ|F|Daughter|||7|110256 +3010|NJ|Union County|Summit city|2083|0|4|Aalbers|Maynard|3009|NJ|M|Son|||1|110257 + +3010|ME|Oxford County|Canton town|2084|0|1|Aalbers|Elisha|2990|Minnesota|M|Head|||20|110258 +3010|ME|Oxford County|Canton town|2084|0|2|Aalbers|Tonia Lanita|2991|Kentucky|F|Spouse|||19|110259 +3010|ME|Oxford County|Canton town|2084|0|3|Aalbers|Alonzo|3003|ME|M|Son|||7|110260 +3010|ME|Oxford County|Canton town|2084|0|4|Aalbers|Erwin|3007|ME|M|Son|||3|110261 + +3010|ME|Oxford County|Canton town|2085|0|1|Aalbers|Rafael|2992|Idaho|M|Head|||18|110262 +3010|ME|Oxford County|Canton town|2085|0|2|Aalbers|Elois|2986|Rhode Island|F|Spouse|||24|110263 +3010|ME|Oxford County|Canton town|2085|0|3|Aalbers|Benedict Vernon|3005|ME|M|Son|||5|110264 + +3010|MA|Worcester County|Baldwinville CDP|2086|0|1|Pauley|Milton|2984|Arkansas|M|Head|||26|110265 +3010|MA|Worcester County|Baldwinville CDP|2086|0|2|Pauley|Merrie|2973|Kentucky|F|Spouse|||37|110266 +3010|MA|Worcester County|Baldwinville CDP|2086|0|3|Pauley|Forest|3001|MA|M|Son|||9|110267 +3010|MA|Worcester County|Baldwinville CDP|2086|0|4|Pauley|Rueben|3005|MA|M|Son|||5|110268 +3010|MA|Worcester County|Baldwinville CDP|2086|0|5|Pauley|Carlo|3007|MA|M|Son|||3|110269 +3010|MA|Worcester County|Baldwinville CDP|2086|0|6|Pauley|Dorie|3009|MA|F|Daughter|||1|110270 + +3010|VA|Northumberland County|Heathsville CDP|2087|0|1|Pauley|Kent|2986|Delaware|M|Head|||24|110271 +3010|VA|Northumberland County|Heathsville CDP|2087|0|2|Pauley|Mittie|2985|Saint Lucia|F|Spouse|||25|110272 +3010|VA|Northumberland County|Heathsville CDP|2087|0|3|Pauley|Nancee|3001|VA|F|Daughter|||9|110273 +3010|VA|Northumberland County|Heathsville CDP|2087|0|4|Pauley|Veola|3003|VA|F|Daughter|||7|110274 +3010|VA|Northumberland County|Heathsville CDP|2087|0|5|Pauley|Sam Neal|3007|VA|M|Son|||3|110275 +3010|VA|Northumberland County|Heathsville CDP|2087|0|6|Pauley|Erminia|3009|VA|F|Daughter|||1|110276 + +3010|VA|Mecklenburg County|Baskerville CDP|2088|0|1|Brailsford|Alonso|2982|Rhode Island|M|Head|||28|110277 +3010|VA|Mecklenburg County|Baskerville CDP|2088|0|2|Brailsford|Germaine|2985|New York|F|Spouse|||25|110278 +3010|VA|Mecklenburg County|Baskerville CDP|2088|0|3|Brailsford|Basil|3003|VA|M|Son|||7|110279 +3010|VA|Mecklenburg County|Baskerville CDP|2088|0|4|Brailsford|Naida|3005|VA|F|Daughter|||5|110280 +3010|VA|Mecklenburg County|Baskerville CDP|2088|0|5|Brailsford|Jaime|3007|VA|M|Son|||3|110281 +3010|VA|Mecklenburg County|Baskerville CDP|2088|0|6|Brailsford|Edmundo|3009|VA|M|Son|||1|110282 + +3010|OK|Cherokee County|Briggs CDP|2089|0|1|Akright|Jeff|2971|Maine|M|Head|||39|110283 +3010|OK|Cherokee County|Briggs CDP|2089|0|2|Akright|Marti|2988|Arkansas|F|Spouse|||22|110284 +3010|OK|Cherokee County|Briggs CDP|2089|0|3|Akright|Deb|3005|OK|F|Daughter|||5|110285 +3010|OK|Cherokee County|Briggs CDP|2089|0|4|Akright|Danna|3007|OK|F|Daughter|||3|110286 +3010|OK|Cherokee County|Briggs CDP|2089|0|5|Akright|Na|3009|OK|F|Daughter|||1|110287 + +3010|OK|Cherokee County|Briggs CDP|2090|0|1|Akright|Jayson|2991|New Hampshire|M|Head|||19|110288 +3010|OK|Cherokee County|Briggs CDP|2090|0|2|Akright|Viva|2986|Minnesota|F|Spouse|||24|110289 +3010|OK|Cherokee County|Briggs CDP|2090|0|3|Akright|Nam|3003|OK|F|Daughter|||7|110290 +3010|OK|Cherokee County|Briggs CDP|2090|0|4|Akright|Moriah|3005|OK|F|Daughter|||5|110291 + +3010|PA|Indiana County|Washington township|2091|0|1|Bartkowski|Mohammad Ahmed|2987|Wyoming|M|Head|||23|110292 +3010|PA|Indiana County|Washington township|2091|0|2|Bartkowski|Domenica|2990|Equatorial Guinea|F|Spouse|||20|110293 +3010|PA|Indiana County|Washington township|2091|0|3|Bartkowski|Albina|3001|PA|F|Daughter|||9|110294 +3010|PA|Indiana County|Washington township|2091|0|4|Bartkowski|Carlie|3003|PA|F|Daughter|||7|110295 + +3010|MT|Glacier County|Babb CDP|2092|0|1|Irvin|Kennith|2992|New York|M|Head|||18|110296 +3010|MT|Glacier County|Babb CDP|2092|0|2|Irvin|Takisha|2987|Delaware|F|Spouse|||23|110297 +3010|MT|Glacier County|Babb CDP|2092|0|3|Irvin|Demarcus|3003|MT|M|Son|||7|110298 +3010|MT|Glacier County|Babb CDP|2092|0|4|Irvin|Ricardo|3005|MT|M|Son|||5|110299 + +3010|TX|Henderson County|Poynor town|2093|0|1|Kimbell|Gale|2966|Iowa|M|Head|||44|110300 +3010|TX|Henderson County|Poynor town|2093|0|2|Kimbell|Leonie|2991|Oregon|F|Spouse|||19|110301 +3010|TX|Henderson County|Poynor town|2093|0|3|Kimbell|Mirtha|3003|TX|F|Daughter|||7|110302 +3010|TX|Henderson County|Poynor town|2093|0|4|Kimbell|Margaretta|3005|TX|F|Daughter|||5|110303 +3010|TX|Henderson County|Poynor town|2093|0|5|Kimbell|Shad|3007|TX|M|Son|||3|110304 +3010|TX|Henderson County|Poynor town|2093|0|6|Kimbell|Terry|3009|TX|M|Son|||1|110305 + +3010|TX|Henderson County|Poynor town|2094|0|1|Kimbell|Gordon|2992|Connecticut|M|Head|||18|110306 +3010|TX|Henderson County|Poynor town|2094|0|2|Kimbell|Roxanne|2985|Pennsylvania|F|Spouse|||25|110307 +3010|TX|Henderson County|Poynor town|2094|0|3|Kimbell|Wilburn|3005|TX|M|Son|||5|110308 +3010|TX|Henderson County|Poynor town|2094|0|4|Kimbell|Williemae|3007|TX|F|Daughter|||3|110309 + +3010|KS|Crawford County|Mulberry city|2095|0|1|Dement|Carmelo|2987|Nevada|M|Head|||23|110310 +3010|KS|Crawford County|Mulberry city|2095|0|2|Dement|Nida|2987|Alabama|F|Spouse|||23|110311 +3010|KS|Crawford County|Mulberry city|2095|0|3|Dement|Melvina|3001|KS|F|Daughter|||9|110312 +3010|KS|Crawford County|Mulberry city|2095|0|4|Dement|Gus|3007|KS|M|Son|||3|110313 +3010|KS|Crawford County|Mulberry city|2095|0|5|Dement|Tobias Phillip|3009|KS|M|Son|||1|110314 + +3010|MI|Iosco County|Whittemore city|2096|0|1|Dement|Lindsay|2991|New Mexico|M|Head|||19|110315 +3010|MI|Iosco County|Whittemore city|2096|0|2|Dement|Magali|2991|Nevada|F|Spouse|||19|110316 +3010|MI|Iosco County|Whittemore city|2096|0|3|Dement|Lazaro|3003|MI|M|Son|||7|110317 +3010|MI|Iosco County|Whittemore city|2096|0|4|Dement|Yesenia|3005|MI|F|Daughter|||5|110318 +3010|MI|Iosco County|Whittemore city|2096|0|5|Dement|Alisa Tyisha|3007|MI|F|Daughter|||3|110319 + +3010|AL|Monroe County|Excel town|2097|0|1|Stear|Percy|2981|Western Sahara|M|Head|||29|110320 +3010|AL|Monroe County|Excel town|2097|0|2|Stear|Tierra|2979|Mississippi|F|Spouse|||31|110321 +3010|AL|Monroe County|Excel town|2097|0|3|Stear|Alberto|3005|AL|M|Son|||5|110322 +3010|AL|Monroe County|Excel town|2097|0|4|Stear|Dale|3007|AL|M|Son|||3|110323 + +3010|AL|Monroe County|Excel town|2098|0|1|Stear|Don|2989|Utah|M|Head|||21|110324 +3010|AL|Monroe County|Excel town|2098|0|2|Stear|Darcel|2989|Missouri|F|Spouse|||21|110325 +3010|AL|Monroe County|Excel town|2098|0|3|Stear|Douglass Arnold|3001|AL|M|Son|||9|110326 +3010|AL|Monroe County|Excel town|2098|0|4|Stear|Rhett Miguel|3005|AL|M|Son|||5|110327 +3010|AL|Monroe County|Excel town|2098|0|5|Stear|Adam|3007|AL|M|Son|||3|110328 + +3010|CO|Larimer County|Laporte CDP|2099|0|1|Dickey|Donny|2992|Montana|M|Head|||18|110329 +3010|CO|Larimer County|Laporte CDP|2099|0|2|Dickey|Marry|2991|Louisiana|F|Spouse|||19|110330 +3010|CO|Larimer County|Laporte CDP|2099|0|3|Dickey|Minh|3001|CO|M|Son|||9|110331 +3010|CO|Larimer County|Laporte CDP|2099|0|4|Dickey|Rowena|3003|CO|F|Daughter|||7|110332 +3010|CO|Larimer County|Laporte CDP|2099|0|5|Dickey|Numbers|3005|CO|M|Son|||5|110333 +3010|CO|Larimer County|Laporte CDP|2099|0|6|Dickey|Branden|3009|CO|M|Son|||1|110334 + +3010|KY|Oldham County|La Grange city|2100|0|1|Wood|Ian|2992|Saint Kitts And Nevis|M|Head|||18|110335 +3010|KY|Oldham County|La Grange city|2100|0|2|Wood|Henriette|2976|Marshall Islands|F|Spouse|||34|110336 +3010|KY|Oldham County|La Grange city|2100|0|3|Wood|Emery|3003|KY|M|Son|||7|110337 +3010|KY|Oldham County|La Grange city|2100|0|4|Wood|Jan Juan|3005|KY|M|Son|||5|110338 +3010|KY|Oldham County|La Grange city|2100|0|5|Wood|Luigi|3007|KY|M|Son|||3|110339 + +3010|ND|Griggs County|Hannaford city|2101|0|1|Abraham|Lyndon|2989|Wisconsin|M|Head|||21|110340 +3010|ND|Griggs County|Hannaford city|2101|0|2|Abraham|Rory Diedre|2990|South Dakota|F|Spouse|||20|110341 +3010|ND|Griggs County|Hannaford city|2101|0|3|Abraham|Errol Darrell|3001|ND|M|Son|||9|110342 +3010|ND|Griggs County|Hannaford city|2101|0|4|Abraham|Laverne|3003|ND|M|Son|||7|110343 +3010|ND|Griggs County|Hannaford city|2101|0|5|Abraham|Myles|3007|ND|M|Son|||3|110344 + +3010|GA|Barrow County, Gwinnett County, Hall County, Jackson County|Braselton town|2102|0|1|Gill|Maurice|2989|Arizona|M|Head|||21|110345 +3010|GA|Barrow County, Gwinnett County, Hall County, Jackson County|Braselton town|2102|0|2|Gill|Katerine|2990|Illinois|F|Spouse|||20|110346 +3010|GA|Barrow County, Gwinnett County, Hall County, Jackson County|Braselton town|2102|0|3|Gill|Mitchel|3005|GA|M|Son|||5|110347 +3010|GA|Barrow County, Gwinnett County, Hall County, Jackson County|Braselton town|2102|0|4|Gill|Miles|3007|GA|M|Son|||3|110348 +3010|GA|Barrow County, Gwinnett County, Hall County, Jackson County|Braselton town|2102|0|5|Gill|Shannon|3009|GA|M|Son|||1|110349 + +3010|KS|Harper County|Harper city|2103|0|1|Drakos|Darrell|2982|Indiana|M|Head|||28|110350 +3010|KS|Harper County|Harper city|2103|0|2|Drakos|Marna|2994|Brazil|F|Spouse|||16|110351 +3010|KS|Harper County|Harper city|2103|0|3|Drakos|Carmen|3001|KS|F|Daughter|||9|110352 +3010|KS|Harper County|Harper city|2103|0|4|Drakos|Chi Jerold|3003|KS|M|Son|||7|110353 +3010|KS|Harper County|Harper city|2103|0|5|Drakos|Roscoe Johnnie|3005|KS|M|Son|||5|110354 +3010|KS|Harper County|Harper city|2103|0|6|Drakos|Misha Necole|3009|KS|F|Daughter|||1|110355 + +3010|NM|Taos County|Rio Lucio CDP|2104|0|1|Mohr|Abdul|2962|Minnesota|M|Head|||48|110356 +3010|NM|Taos County|Rio Lucio CDP|2104|0|2|Mohr|Tamiko|2977|Christmas Island|F|Spouse|||33|110357 +3010|NM|Taos County|Rio Lucio CDP|2104|0|3|Mohr|Theda|3001|NM|F|Daughter|||9|110358 +3010|NM|Taos County|Rio Lucio CDP|2104|0|4|Mohr|Stewart Harold|3003|NM|M|Son|||7|110359 +3010|NM|Taos County|Rio Lucio CDP|2104|0|5|Mohr|Deloise Sofia|3007|NM|F|Daughter|||3|110360 + +3010|SD|Corson County|Bullhead CDP|2105|0|1|Fergus|Irwin Mauricio|2985|Qatar|M|Head|||25|110361 +3010|SD|Corson County|Bullhead CDP|2105|0|2|Fergus|Royce|2988|Nevada|F|Spouse|||22|110362 +3010|SD|Corson County|Bullhead CDP|2105|0|3|Fergus|Minh|3001|SD|M|Son|||9|110363 +3010|SD|Corson County|Bullhead CDP|2105|0|4|Fergus|Bobby|3003|SD|M|Son|||7|110364 + +3010|WI|Waupaca County|Mukwa town|2106|0|1|Webb|Harvey|2993|Minnesota|M|Head|||17|110365 +3010|WI|Waupaca County|Mukwa town|2106|0|2|Webb|Tammy|2994|Virginia|F|Spouse|||16|110366 +3010|WI|Waupaca County|Mukwa town|2106|0|3|Webb|Alexis|3001|WI|M|Son|||9|110367 +3010|WI|Waupaca County|Mukwa town|2106|0|4|Webb|Marlena|3003|WI|F|Daughter|||7|110368 +3010|WI|Waupaca County|Mukwa town|2106|0|5|Webb|Indira|3005|WI|F|Daughter|||5|110369 + +3010|IA|Lyon County|Alvord city|2107|0|1|Vannatta|Damon|2991|Ireland|M|Head|||19|110370 +3010|IA|Lyon County|Alvord city|2107|0|2|Vannatta|Voncile|2989|Cocos (keeling) Islands|F|Spouse|||21|110371 +3010|IA|Lyon County|Alvord city|2107|0|3|Vannatta|Cletus|3001|IA|M|Son|||9|110372 +3010|IA|Lyon County|Alvord city|2107|0|4|Vannatta|Ervin|3003|IA|M|Son|||7|110373 +3010|IA|Lyon County|Alvord city|2107|0|5|Vannatta|Asuncion|3007|IA|F|Daughter|||3|110374 + +3010|AK|Valdez-Cordova Census Area|Gulkana CDP|2108|0|1|Oliver|Mitchel Kieth|2988|South Carolina|M|Head|||22|110375 +3010|AK|Valdez-Cordova Census Area|Gulkana CDP|2108|0|2|Oliver|Melodee|2989|Chile|F|Spouse|||21|110376 +3010|AK|Valdez-Cordova Census Area|Gulkana CDP|2108|0|3|Oliver|Esther|3001|AK|F|Daughter|||9|110377 +3010|AK|Valdez-Cordova Census Area|Gulkana CDP|2108|0|4|Oliver|Clifton|3003|AK|M|Son|||7|110378 +3010|AK|Valdez-Cordova Census Area|Gulkana CDP|2108|0|5|Oliver|Donette|3005|AK|F|Daughter|||5|110379 + +3010|MI|Allegan County|Allegan city|2109|0|1|Black|Darwin Adolph|2988|Indiana|M|Head|||22|110380 +3010|MI|Allegan County|Allegan city|2109|0|2|Black|Tamala|2991|Indiana|F|Spouse|||19|110381 +3010|MI|Allegan County|Allegan city|2109|0|3|Black|Paris|3001|MI|M|Son|||9|110382 +3010|MI|Allegan County|Allegan city|2109|0|4|Black|Oscar|3009|MI|M|Son|||1|110383 + +3010|AR|Saline County|Bryant city|2110|0|1|Black|Robert|2992|Micronesia, Federated States Of|M|Head|||18|110384 +3010|AR|Saline County|Bryant city|2110|0|2|Black|Shakia|2993|Texas|F|Spouse|||17|110385 +3010|AR|Saline County|Bryant city|2110|0|3|Black|Paola|3001|AR|F|Daughter|||9|110386 +3010|AR|Saline County|Bryant city|2110|0|4|Black|Kourtney|3003|AR|F|Daughter|||7|110387 +3010|AR|Saline County|Bryant city|2110|0|5|Black|Jan Santo|3005|AR|M|Son|||5|110388 +3010|AR|Saline County|Bryant city|2110|0|6|Black|Russ Odis|3009|AR|M|Son|||1|110389 + +3010|NY|Montgomery County|Canajoharie village|2111|0|1|Esper|Wayne Riley|2982|Arkansas|M|Head|||28|110390 +3010|NY|Montgomery County|Canajoharie village|2111|0|2|Esper|Brittney|2989|Washington|F|Spouse|||21|110391 +3010|NY|Montgomery County|Canajoharie village|2111|0|3|Esper|Matt|3005|NY|M|Son|||5|110392 +3010|NY|Montgomery County|Canajoharie village|2111|0|4|Esper|Benny|3007|NY|M|Son|||3|110393 + +3010|NY|Montgomery County|Canajoharie village|2112|0|1|Esper|Milford|2988|Oklahoma|M|Head|||22|110394 +3010|NY|Montgomery County|Canajoharie village|2112|0|2|Esper|Glory|2987|Nevada|F|Spouse|||23|110395 +3010|NY|Montgomery County|Canajoharie village|2112|0|3|Esper|Branda Leesa|3007|NY|F|Daughter|||3|110396 +3010|NY|Montgomery County|Canajoharie village|2112|0|4|Esper|Lindsey|3009|NY|F|Daughter|||1|110397 + +3010|CA|Del Norte County|Bertsch-Oceanview CDP|2113|0|1|Fleming|Jamie Rusty|2991|Maryland|M|Head|||19|110398 +3010|CA|Del Norte County|Bertsch-Oceanview CDP|2113|0|2|Fleming|Alyssa|2991|Utah|F|Spouse|||19|110399 +3010|CA|Del Norte County|Bertsch-Oceanview CDP|2113|0|3|Fleming|Jonathon Ben|3001|CA|M|Son|||9|110400 +3010|CA|Del Norte County|Bertsch-Oceanview CDP|2113|0|4|Fleming|Rodney|3005|CA|M|Son|||5|110401 +3010|CA|Del Norte County|Bertsch-Oceanview CDP|2113|0|5|Fleming|Kelly|3007|CA|F|Daughter|||3|110402 + +3010|IL|Ogle County|Creston village|2114|0|1|Maloof|Leif|2983|Mayotte|M|Head|||27|110403 +3010|IL|Ogle County|Creston village|2114|0|2|Maloof|Lenora|2992|Namibia|F|Spouse|||18|110404 +3010|IL|Ogle County|Creston village|2114|0|3|Maloof|Janene|3001|IL|F|Daughter|||9|110405 +3010|IL|Ogle County|Creston village|2114|0|4|Maloof|Marcene|3003|IL|F|Daughter|||7|110406 +3010|IL|Ogle County|Creston village|2114|0|5|Maloof|Nannette|3007|IL|F|Daughter|||3|110407 + +3010|MI|Kalkaska County|Boardman township|2115|0|1|Leroux|Mario|2985|New Jersey|M|Head|||25|110408 +3010|MI|Kalkaska County|Boardman township|2115|0|2|Leroux|Kera|2994|Norfolk Island|F|Spouse|||16|110409 +3010|MI|Kalkaska County|Boardman township|2115|0|3|Leroux|Vonnie Leanne|3001|MI|F|Daughter|||9|110410 +3010|MI|Kalkaska County|Boardman township|2115|0|4|Leroux|Andres|3003|MI|M|Son|||7|110411 +3010|MI|Kalkaska County|Boardman township|2115|0|5|Leroux|Julienne Lara|3005|MI|F|Daughter|||5|110412 +3010|MI|Kalkaska County|Boardman township|2115|0|6|Leroux|Renee|3009|MI|F|Daughter|||1|110413 + +3010|MI|Kalkaska County|Boardman township|2116|0|1|Leroux|Junior|2989|Vermont|M|Head|||21|110414 +3010|MI|Kalkaska County|Boardman township|2116|0|2|Leroux|Geri|2986|Arizona|F|Spouse|||24|110415 +3010|MI|Kalkaska County|Boardman township|2116|0|3|Leroux|Niki|3001|MI|F|Daughter|||9|110416 +3010|MI|Kalkaska County|Boardman township|2116|0|4|Leroux|Manuel|3003|MI|M|Son|||7|110417 +3010|MI|Kalkaska County|Boardman township|2116|0|5|Leroux|Toi|3007|MI|F|Daughter|||3|110418 +3010|MI|Kalkaska County|Boardman township|2116|0|6|Leroux|Shauna|3009|MI|F|Daughter|||1|110419 + +3010|NV|Clark County|Indian Springs CDP|2117|0|1|Kerns|Shayne|2982|Alaska|M|Head|||28|110420 +3010|NV|Clark County|Indian Springs CDP|2117|0|2|Kerns|Leana|2969|Oklahoma|F|Spouse|||41|110421 +3010|NV|Clark County|Indian Springs CDP|2117|0|3|Kerns|Francesco|3001|NV|M|Son|||9|110422 +3010|NV|Clark County|Indian Springs CDP|2117|0|4|Kerns|Dannie|3007|NV|M|Son|||3|110423 + +3010|NY|Suffolk County|Melville CDP|2118|0|1|Henry|Genaro Dick|2990|Washington|M|Head|||20|110424 +3010|NY|Suffolk County|Melville CDP|2118|0|2|Henry|Paula|2990|Illinois|F|Spouse|||20|110425 +3010|NY|Suffolk County|Melville CDP|2118|0|3|Henry|Verdell|3001|NY|F|Daughter|||9|110426 +3010|NY|Suffolk County|Melville CDP|2118|0|4|Henry|Nathanael|3003|NY|M|Son|||7|110427 +3010|NY|Suffolk County|Melville CDP|2118|0|5|Henry|Heide|3009|NY|F|Daughter|||1|110428 + +3010|VA|Southampton County|Branchville town|2119|0|1|Foster|Alton Elliot|2981|Virginia|M|Head|||29|110429 +3010|VA|Southampton County|Branchville town|2119|0|2|Foster|Vicky|2992|Tennessee|F|Spouse|||18|110430 +3010|VA|Southampton County|Branchville town|2119|0|3|Foster|Shenita Carmelina|3007|VA|F|Daughter|||3|110431 +3010|VA|Southampton County|Branchville town|2119|0|4|Foster|Arturo|3009|VA|M|Son|||1|110432 + +3010|VA|Southampton County|Branchville town|2120|0|1|Foster|Riley|2983|Kentucky|M|Head|||27|110433 +3010|VA|Southampton County|Branchville town|2120|0|2|Foster|Renea|2993|West Virginia|F|Spouse|||17|110434 +3010|VA|Southampton County|Branchville town|2120|0|3|Foster|Harriette Pamelia|3001|VA|F|Daughter|||9|110435 +3010|VA|Southampton County|Branchville town|2120|0|4|Foster|Sherri|3005|VA|F|Daughter|||5|110436 +3010|VA|Southampton County|Branchville town|2120|0|5|Foster|Coy|3007|VA|M|Son|||3|110437 + +3010|VA|Southampton County|Branchville town|2121|0|1|Foster|Dewayne|2989|Oregon|M|Head|||21|110438 +3010|VA|Southampton County|Branchville town|2121|0|2|Foster|Dede|2984|Ecuador|F|Spouse|||26|110439 +3010|VA|Southampton County|Branchville town|2121|0|3|Foster|Thomas|3001|VA|F|Daughter|||9|110440 + +3010|OK|Delaware County, Mayes County|Kenwood CDP|2122|0|1|Lirag|Rudy Ross|2986|Kentucky|M|Head|||24|110441 +3010|OK|Delaware County, Mayes County|Kenwood CDP|2122|0|2|Lirag|Wilhemina|2990|Florida|F|Spouse|||20|110442 +3010|OK|Delaware County, Mayes County|Kenwood CDP|2122|0|3|Lirag|Debora|3001|OK|F|Daughter|||9|110443 +3010|OK|Delaware County, Mayes County|Kenwood CDP|2122|0|4|Lirag|Jim|3003|OK|M|Son|||7|110444 +3010|OK|Delaware County, Mayes County|Kenwood CDP|2122|0|5|Lirag|Brittni|3005|OK|F|Daughter|||5|110445 +3010|OK|Delaware County, Mayes County|Kenwood CDP|2122|0|6|Lirag|Brett|3007|OK|M|Son|||3|110446 + +3010|OK|Delaware County, Mayes County|Kenwood CDP|2123|0|1|Lirag|Palmer|2988|Alabama|M|Head|||22|110447 +3010|OK|Delaware County, Mayes County|Kenwood CDP|2123|0|2|Lirag|Elly|2994|Dominican Republic|F|Spouse|||16|110448 +3010|OK|Delaware County, Mayes County|Kenwood CDP|2123|0|3|Lirag|Francisco|3005|OK|M|Son|||5|110449 +3010|OK|Delaware County, Mayes County|Kenwood CDP|2123|0|4|Lirag|Stewart|3007|OK|M|Son|||3|110450 +3010|OK|Delaware County, Mayes County|Kenwood CDP|2123|0|5|Lirag|Bobbie|3009|OK|M|Son|||1|110451 + +3010|IN|Jennings County|North Vernon city|2124|0|1|Stubson|Keven|2979|Nebraska|M|Head|||31|110452 +3010|IN|Jennings County|North Vernon city|2124|0|2|Stubson|Marsha|2984|Minnesota|F|Spouse|||26|110453 +3010|IN|Jennings County|North Vernon city|2124|0|3|Stubson|Dominique|3003|IN|F|Daughter|||7|110454 +3010|IN|Jennings County|North Vernon city|2124|0|4|Stubson|Isidro|3005|IN|M|Son|||5|110455 +3010|IN|Jennings County|North Vernon city|2124|0|5|Stubson|Jeffrey|3007|IN|F|Daughter|||3|110456 + +3010|IN|Jennings County|North Vernon city|2125|0|1|Stubson|Ambrose|2985|Rhode Island|M|Head|||25|110457 +3010|IN|Jennings County|North Vernon city|2125|0|2|Stubson|Lashaun|2990|Wyoming|F|Spouse|||20|110458 +3010|IN|Jennings County|North Vernon city|2125|0|3|Stubson|Alfredo Dante|3007|IN|M|Son|||3|110459 + +3010|VT|Franklin County|Fairfax town|2126|0|1|Pandey|Nolan|2986|Tennessee|M|Head|||24|110460 +3010|VT|Franklin County|Fairfax town|2126|0|2|Pandey|Valarie|2994|Mississippi|F|Spouse|||16|110461 +3010|VT|Franklin County|Fairfax town|2126|0|3|Pandey|Tynisha|3001|VT|F|Daughter|||9|110462 +3010|VT|Franklin County|Fairfax town|2126|0|4|Pandey|Stephania|3005|VT|F|Daughter|||5|110463 + +3010|VT|Franklin County|Fairfax town|2127|0|1|Pandey|Nathanael|2992|North Carolina|M|Head|||18|110464 +3010|VT|Franklin County|Fairfax town|2127|0|2|Pandey|Erica|2988|Alabama|F|Spouse|||22|110465 +3010|VT|Franklin County|Fairfax town|2127|0|3|Pandey|Liane|3007|VT|F|Daughter|||3|110466 +3010|VT|Franklin County|Fairfax town|2127|0|4|Pandey|Tristan Luke|3009|VT|M|Son|||1|110467 + +3010|ME|Kennebec County|Hallowell city|2128|0|1|Raffaele|Leopoldo|2989|Illinois|M|Head|||21|110468 +3010|ME|Kennebec County|Hallowell city|2128|0|2|Raffaele|Scott|2984|Vermont|F|Spouse|||26|110469 +3010|ME|Kennebec County|Hallowell city|2128|0|3|Raffaele|Russel Cristopher|3001|ME|M|Son|||9|110470 +3010|ME|Kennebec County|Hallowell city|2128|0|4|Raffaele|Londa|3003|ME|F|Daughter|||7|110471 +3010|ME|Kennebec County|Hallowell city|2128|0|5|Raffaele|Adalberto|3007|ME|M|Son|||3|110472 + +3010|OK|Cherokee County|Briggs CDP|2129|0|1|Starr|Pasquale|2974|Kentucky|M|Head|||36|110473 +3010|OK|Cherokee County|Briggs CDP|2129|0|2|Starr|Lashaun|2993|Kansas|F|Spouse|||17|110474 +3010|OK|Cherokee County|Briggs CDP|2129|0|3|Starr|Julio|3003|OK|M|Son|||7|110475 +3010|OK|Cherokee County|Briggs CDP|2129|0|4|Starr|Jan|3007|OK|M|Son|||3|110476 + +3010|WI|Marinette County|Athelstane town|2130|0|1|Maxey|Jorge|2979|Missouri|M|Head|||31|110477 +3010|WI|Marinette County|Athelstane town|2130|0|2|Maxey|Sima Kym|2994|Kansas|F|Spouse|||16|110478 +3010|WI|Marinette County|Athelstane town|2130|0|3|Maxey|Hana|3001|WI|F|Daughter|||9|110479 +3010|WI|Marinette County|Athelstane town|2130|0|4|Maxey|Rusty|3007|WI|M|Son|||3|110480 +3010|WI|Marinette County|Athelstane town|2130|0|5|Maxey|Leonel Andre|3009|WI|M|Son|||1|110481 + +3010|OH|Delaware County|Powell city|2131|0|1|Maxey|Jeramy|2985|Louisiana|M|Head|||25|110482 +3010|OH|Delaware County|Powell city|2131|0|2|Maxey|Leticia|2987|Myanmar|F|Spouse|||23|110483 +3010|OH|Delaware County|Powell city|2131|0|3|Maxey|Caroll|3001|OH|F|Daughter|||9|110484 +3010|OH|Delaware County|Powell city|2131|0|4|Maxey|Eldon Herman|3003|OH|M|Son|||7|110485 +3010|OH|Delaware County|Powell city|2131|0|5|Maxey|Kris|3005|OH|M|Son|||5|110486 +3010|OH|Delaware County|Powell city|2131|0|6|Maxey|Christi|3007|OH|F|Daughter|||3|110487 + +3010|WI|Marinette County|Athelstane town|2132|0|1|Maxey|Gus|2993|Alabama|M|Head|||17|110488 +3010|WI|Marinette County|Athelstane town|2132|0|2|Maxey|Bridgette|2989|Wisconsin|F|Spouse|||21|110489 +3010|WI|Marinette County|Athelstane town|2132|0|3|Maxey|Lannie|3003|WI|F|Daughter|||7|110490 +3010|WI|Marinette County|Athelstane town|2132|0|4|Maxey|Myrtie|3005|WI|F|Daughter|||5|110491 +3010|WI|Marinette County|Athelstane town|2132|0|5|Maxey|Kyla|3009|WI|F|Daughter|||1|110492 + +3010|MI|Barry County|Maple Grove township|2133|0|1|Vasquez|Ben Lonny|2986|Washington|M|Head|||24|110493 +3010|MI|Barry County|Maple Grove township|2133|0|2|Vasquez|Carroll Lorenza|2984|Oklahoma|F|Spouse|||26|110494 +3010|MI|Barry County|Maple Grove township|2133|0|3|Vasquez|Christoper|3005|MI|M|Son|||5|110495 +3010|MI|Barry County|Maple Grove township|2133|0|4|Vasquez|Courtney|3009|MI|M|Son|||1|110496 + +3010|TX|Bowie County|Red Lick city|2134|0|1|Zeidan|Royce|2990|Delaware|M|Head|||20|110497 +3010|TX|Bowie County|Red Lick city|2134|0|2|Zeidan|Buena|2983|Turkmenistan|F|Spouse|||27|110498 +3010|TX|Bowie County|Red Lick city|2134|0|3|Zeidan|Dennis|3001|TX|M|Son|||9|110499 +3010|TX|Bowie County|Red Lick city|2134|0|4|Zeidan|Tina|3005|TX|F|Daughter|||5|110500 +3010|TX|Bowie County|Red Lick city|2134|0|5|Zeidan|Devon|3007|TX|M|Son|||3|110501 +3010|TX|Bowie County|Red Lick city|2134|0|6|Zeidan|Abdul|3009|TX|M|Son|||1|110502 + +3010|TX|Bowie County|Red Lick city|2135|0|1|Zeidan|Ryan|2992|Georgia|M|Head|||18|110503 +3010|TX|Bowie County|Red Lick city|2135|0|2|Zeidan|Lorelei|2989|Rhode Island|F|Spouse|||21|110504 +3010|TX|Bowie County|Red Lick city|2135|0|3|Zeidan|Michelina|3005|TX|F|Daughter|||5|110505 +3010|TX|Bowie County|Red Lick city|2135|0|4|Zeidan|Trinidad|3009|TX|M|Son|||1|110506 + +3010|NY|Chautauqua County|Sherman town|2136|0|1|Blount|Benito|2994|Idaho|M|Head|||16|110507 +3010|NY|Chautauqua County|Sherman town|2136|0|2|Blount|Judi|2994|New Mexico|F|Spouse|||16|110508 +3010|NY|Chautauqua County|Sherman town|2136|0|3|Blount|Jazmine|3001|NY|F|Daughter|||9|110509 +3010|NY|Chautauqua County|Sherman town|2136|0|4|Blount|Wilfred|3003|NY|M|Son|||7|110510 +3010|NY|Chautauqua County|Sherman town|2136|0|5|Blount|Quinton|3005|NY|M|Son|||5|110511 + +3010|NM|Hidalgo County|Windmill CDP|2137|0|1|Vanhamme|Joaquin|2986|Virginia|M|Head|||24|110512 +3010|NM|Hidalgo County|Windmill CDP|2137|0|2|Vanhamme|Jenniffer|2994|Iowa|F|Spouse|||16|110513 +3010|NM|Hidalgo County|Windmill CDP|2137|0|3|Vanhamme|Brad|3001|NM|M|Son|||9|110514 +3010|NM|Hidalgo County|Windmill CDP|2137|0|4|Vanhamme|Parker|3003|NM|M|Son|||7|110515 +3010|NM|Hidalgo County|Windmill CDP|2137|0|5|Vanhamme|Alejandro|3005|NM|M|Son|||5|110516 +3010|NM|Hidalgo County|Windmill CDP|2137|0|6|Vanhamme|Keesha Andera|3007|NM|F|Daughter|||3|110517 +3010|NM|Hidalgo County|Windmill CDP|2137|0|7|Vanhamme|Margit|3009|NM|F|Daughter|||1|110518 + +3010|PA|Northampton County|Lower Nazareth township|2138|0|1|Driskill|Ben|2962|North Carolina|M|Head|||48|110519 +3010|PA|Northampton County|Lower Nazareth township|2138|0|2|Driskill|Debora|2994|Oregon|F|Spouse|||16|110520 +3010|PA|Northampton County|Lower Nazareth township|2138|0|3|Driskill|Bernarda|3003|PA|F|Daughter|||7|110521 +3010|PA|Northampton County|Lower Nazareth township|2138|0|4|Driskill|Martha|3005|PA|F|Daughter|||5|110522 +3010|PA|Northampton County|Lower Nazareth township|2138|0|5|Driskill|Robbie|3007|PA|M|Son|||3|110523 + +3010|TX|Henderson County|Poynor town|2139|0|1|Driskill|Dustin|2988|Alabama|M|Head|||22|110524 +3010|TX|Henderson County|Poynor town|2139|0|2|Driskill|Malka Adelina|2988|Andorra|F|Spouse|||22|110525 +3010|TX|Henderson County|Poynor town|2139|0|3|Driskill|Darrel|3001|TX|M|Son|||9|110526 +3010|TX|Henderson County|Poynor town|2139|0|4|Driskill|Nannette|3005|TX|F|Daughter|||5|110527 +3010|TX|Henderson County|Poynor town|2139|0|5|Driskill|Malisa|3007|TX|F|Daughter|||3|110528 + +3010|PA|Northampton County|Lower Nazareth township|2140|0|1|Driskill|Manuel|2990|South Dakota|M|Head|||20|110529 +3010|PA|Northampton County|Lower Nazareth township|2140|0|2|Driskill|Yang|2985|Louisiana|F|Spouse|||25|110530 +3010|PA|Northampton County|Lower Nazareth township|2140|0|3|Driskill|Lakenya|3001|PA|F|Daughter|||9|110531 + +3010|DE|Sussex County|Frankford town|2141|0|1|Roberts|Jewell Shannon|2975|New Mexico|M|Head|||35|110532 +3010|DE|Sussex County|Frankford town|2141|0|2|Roberts|Chiquita|2988|Utah|F|Spouse|||22|110533 +3010|DE|Sussex County|Frankford town|2141|0|3|Roberts|Andreas|3001|DE|M|Son|||9|110534 +3010|DE|Sussex County|Frankford town|2141|0|4|Roberts|Shon|3003|DE|M|Son|||7|110535 +3010|DE|Sussex County|Frankford town|2141|0|5|Roberts|Babara|3005|DE|F|Daughter|||5|110536 + +3010|DE|Sussex County|Frankford town|2142|0|1|Roberts|Rosendo|2987|Florida|M|Head|||23|110537 +3010|DE|Sussex County|Frankford town|2142|0|2|Roberts|Soo|2973|New York|F|Spouse|||37|110538 +3010|DE|Sussex County|Frankford town|2142|0|3|Roberts|Ezequiel|3001|DE|M|Son|||9|110539 +3010|DE|Sussex County|Frankford town|2142|0|4|Roberts|Timothy|3003|DE|M|Son|||7|110540 +3010|DE|Sussex County|Frankford town|2142|0|5|Roberts|Kary|3005|DE|F|Daughter|||5|110541 +3010|DE|Sussex County|Frankford town|2142|0|6|Roberts|Warren|3007|DE|M|Son|||3|110542 + +3010|DE|Sussex County|Frankford town|2143|0|1|Roberts|Deangelo|2989|Missouri|M|Head|||21|110543 +3010|DE|Sussex County|Frankford town|2143|0|2|Roberts|Rachele|2973|North Carolina|F|Spouse|||37|110544 +3010|DE|Sussex County|Frankford town|2143|0|3|Roberts|Angelena|3001|DE|F|Daughter|||9|110545 +3010|DE|Sussex County|Frankford town|2143|0|4|Roberts|Ursula|3003|DE|F|Daughter|||7|110546 +3010|DE|Sussex County|Frankford town|2143|0|5|Roberts|Nancey|3009|DE|F|Daughter|||1|110547 + +3010|AL|Monroe County|Excel town|2144|0|1|Nicolai|Antonio|2992|Wyoming|M|Head|||18|110548 +3010|AL|Monroe County|Excel town|2144|0|2|Nicolai|Hoa Karen|2985|Missouri|F|Spouse|||25|110549 +3010|AL|Monroe County|Excel town|2144|0|3|Nicolai|Tonia|3001|AL|F|Daughter|||9|110550 + +3010|MD|St. Mary's County|Mechanicsville CDP|2145|0|1|Shunnarah|Julius|2992|New Jersey|M|Head|||18|110551 +3010|MD|St. Mary's County|Mechanicsville CDP|2145|0|2|Shunnarah|Brandie|2991|Vermont|F|Spouse|||19|110552 +3010|MD|St. Mary's County|Mechanicsville CDP|2145|0|3|Shunnarah|Aura|3001|MD|F|Daughter|||9|110553 +3010|MD|St. Mary's County|Mechanicsville CDP|2145|0|4|Shunnarah|Carlos|3005|MD|M|Son|||5|110554 +3010|MD|St. Mary's County|Mechanicsville CDP|2145|0|5|Shunnarah|Jessika|3007|MD|F|Daughter|||3|110555 +3010|MD|St. Mary's County|Mechanicsville CDP|2145|0|6|Shunnarah|Tobias Casey|3009|MD|M|Son|||1|110556 + +3010|PA|Susquehanna County|Harford township|2146|0|1|Winch|Stephen|2985|Guyana|M|Head|||25|110557 +3010|PA|Susquehanna County|Harford township|2146|0|2|Winch|Lindsey|2985|Poland|F|Spouse|||25|110558 +3010|PA|Susquehanna County|Harford township|2146|0|3|Winch|Curt|3001|PA|M|Son|||9|110559 +3010|PA|Susquehanna County|Harford township|2146|0|4|Winch|Blake|3003|PA|M|Son|||7|110560 +3010|PA|Susquehanna County|Harford township|2146|0|5|Winch|Rachel|3005|PA|F|Daughter|||5|110561 +3010|PA|Susquehanna County|Harford township|2146|0|6|Winch|Arron|3009|PA|M|Son|||1|110562 + +3010|PA|Lawrence County|Washington township|2147|0|1|Peacock|Neil|2991|Delaware|M|Head|||19|110563 +3010|PA|Lawrence County|Washington township|2147|0|2|Peacock|Shawnda|2988|Bahamas|F|Spouse|||22|110564 +3010|PA|Lawrence County|Washington township|2147|0|3|Peacock|Louis Sammy|3001|PA|M|Son|||9|110565 +3010|PA|Lawrence County|Washington township|2147|0|4|Peacock|Aide|3007|PA|F|Daughter|||3|110566 +3010|PA|Lawrence County|Washington township|2147|0|5|Peacock|Leone|3009|PA|F|Daughter|||1|110567 + +3010|VA|Shenandoah County|Toms Brook town|2148|0|1|Heatherly|Valentine|2982|Illinois|M|Head|||28|110568 +3010|VA|Shenandoah County|Toms Brook town|2148|0|2|Heatherly|Kattie|2990|Spain|F|Spouse|||20|110569 +3010|VA|Shenandoah County|Toms Brook town|2148|0|3|Heatherly|Demetrius|3001|VA|F|Daughter|||9|110570 +3010|VA|Shenandoah County|Toms Brook town|2148|0|4|Heatherly|Eric|3003|VA|F|Daughter|||7|110571 +3010|VA|Shenandoah County|Toms Brook town|2148|0|5|Heatherly|Hugo|3005|VA|M|Son|||5|110572 + +3010|VA|Shenandoah County|Toms Brook town|2149|0|1|Heatherly|Clifton|2986|Kyrgyzstan|M|Head|||24|110573 +3010|VA|Shenandoah County|Toms Brook town|2149|0|2|Heatherly|Tomi|2978|Pennsylvania|F|Spouse|||32|110574 +3010|VA|Shenandoah County|Toms Brook town|2149|0|3|Heatherly|Logan|3001|VA|F|Daughter|||9|110575 +3010|VA|Shenandoah County|Toms Brook town|2149|0|4|Heatherly|Mirta|3003|VA|F|Daughter|||7|110576 +3010|VA|Shenandoah County|Toms Brook town|2149|0|5|Heatherly|Emerson|3005|VA|M|Son|||5|110577 +3010|VA|Shenandoah County|Toms Brook town|2149|0|6|Heatherly|Elwood Rolland|3007|VA|M|Son|||3|110578 + +3010|SC|Hampton County|Estill town|2150|0|1|Brumfield|Timmy|2984|Jordan|M|Head|||26|110579 +3010|SC|Hampton County|Estill town|2150|0|2|Brumfield|Blossom|2992|Chile|F|Spouse|||18|110580 +3010|SC|Hampton County|Estill town|2150|0|3|Brumfield|Kizzie|3007|SC|F|Daughter|||3|110581 +3010|SC|Hampton County|Estill town|2150|0|4|Brumfield|Alden|3009|SC|M|Son|||1|110582 + +3010|PA|Wayne County|Waymart borough|2151|0|1|Gillan|Fabian|2985|North Dakota|M|Head|||25|110583 +3010|PA|Wayne County|Waymart borough|2151|0|2|Gillan|Jessica|2982|Montserrat|F|Spouse|||28|110584 +3010|PA|Wayne County|Waymart borough|2151|0|3|Gillan|Alexander|3005|PA|M|Son|||5|110585 + +3010|ND|Sargent County|Havana city|2152|0|1|Lachapelle|Fidel|2989|South Dakota|M|Head|||21|110586 +3010|ND|Sargent County|Havana city|2152|0|2|Lachapelle|Concha|2994|Jordan|F|Spouse|||16|110587 +3010|ND|Sargent County|Havana city|2152|0|3|Lachapelle|Lorenzo|3001|ND|M|Son|||9|110588 +3010|ND|Sargent County|Havana city|2152|0|4|Lachapelle|Chris|3003|ND|M|Son|||7|110589 +3010|ND|Sargent County|Havana city|2152|0|5|Lachapelle|Mable|3005|ND|F|Daughter|||5|110590 +3010|ND|Sargent County|Havana city|2152|0|6|Lachapelle|Parker Jorge|3009|ND|M|Son|||1|110591 + +3010|MI|Missaukee County|McBain city|2153|0|1|Baisden|Florentino Jean|2982|Illinois|M|Head|||28|110592 +3010|MI|Missaukee County|McBain city|2153|0|2|Baisden|Petrina Minda|2985|Iowa|F|Spouse|||25|110593 +3010|MI|Missaukee County|McBain city|2153|0|3|Baisden|Blossom|3005|MI|F|Daughter|||5|110594 +3010|MI|Missaukee County|McBain city|2153|0|4|Baisden|Osvaldo|3007|MI|M|Son|||3|110595 +3010|MI|Missaukee County|McBain city|2153|0|5|Baisden|Mohammed|3009|MI|M|Son|||1|110596 + +3010|MI|Missaukee County|McBain city|2154|0|1|Baisden|Davis|2990|Louisiana|M|Head|||20|110597 +3010|MI|Missaukee County|McBain city|2154|0|2|Baisden|Amber Trudy|2983|Virgin Islands, British|F|Spouse|||27|110598 +3010|MI|Missaukee County|McBain city|2154|0|3|Baisden|Darrin|3001|MI|M|Son|||9|110599 +3010|MI|Missaukee County|McBain city|2154|0|4|Baisden|Ike|3005|MI|M|Son|||5|110600 +3010|MI|Missaukee County|McBain city|2154|0|5|Baisden|Tyrell|3007|MI|M|Son|||3|110601 + +3010|IL|Macoupin County|Carlinville city|2155|0|1|Delcine|Nathaniel Hilton|2990|Montana|M|Head|||20|110602 +3010|IL|Macoupin County|Carlinville city|2155|0|2|Delcine|Celsa|2985|Minnesota|F|Spouse|||25|110603 +3010|IL|Macoupin County|Carlinville city|2155|0|3|Delcine|Geri|3003|IL|F|Daughter|||7|110604 + +3010|ND|Traill County|Buxton city|2156|0|1|Delcine|Vance Houston|2992|Thailand|M|Head|||18|110605 +3010|ND|Traill County|Buxton city|2156|0|2|Delcine|Eliza|2987|Oklahoma|F|Spouse|||23|110606 +3010|ND|Traill County|Buxton city|2156|0|3|Delcine|Tawanna Lydia|3003|ND|F|Daughter|||7|110607 +3010|ND|Traill County|Buxton city|2156|0|4|Delcine|Renaldo|3009|ND|M|Son|||1|110608 + +3010|ND|Traill County|Buxton city|2157|0|1|Delcine|Chad|2994|New Mexico|M|Head|||16|110609 +3010|ND|Traill County|Buxton city|2157|0|2|Delcine|Gracie|2989|Virgin Islands, British|F|Spouse|||21|110610 +3010|ND|Traill County|Buxton city|2157|0|3|Delcine|Barbar Ferne|3001|ND|F|Daughter|||9|110611 +3010|ND|Traill County|Buxton city|2157|0|4|Delcine|Olevia|3003|ND|F|Daughter|||7|110612 +3010|ND|Traill County|Buxton city|2157|0|5|Delcine|Mirta|3005|ND|F|Daughter|||5|110613 +3010|ND|Traill County|Buxton city|2157|0|6|Delcine|Dave|3007|ND|M|Son|||3|110614 +3010|ND|Traill County|Buxton city|2157|0|7|Delcine|Junior|3009|ND|M|Son|||1|110615 + +3010|NE|Dixon County|Allen village|2158|0|1|Carlson|Geraldo|2986|Ohio|M|Head|||24|110616 +3010|NE|Dixon County|Allen village|2158|0|2|Carlson|Paris|2984|Canada|F|Spouse|||26|110617 +3010|NE|Dixon County|Allen village|2158|0|3|Carlson|Randall|3003|NE|M|Son|||7|110618 +3010|NE|Dixon County|Allen village|2158|0|4|Carlson|Nona|3005|NE|F|Daughter|||5|110619 +3010|NE|Dixon County|Allen village|2158|0|5|Carlson|Hilton|3009|NE|M|Son|||1|110620 + +3010|PA|Clearfield County|Burnside borough|2159|0|1|Houck|Markus|2992|Missouri|M|Head|||18|110621 +3010|PA|Clearfield County|Burnside borough|2159|0|2|Houck|Audra Billie|2986|Illinois|F|Spouse|||24|110622 +3010|PA|Clearfield County|Burnside borough|2159|0|3|Houck|Irene|3003|PA|F|Daughter|||7|110623 +3010|PA|Clearfield County|Burnside borough|2159|0|4|Houck|Imogene|3005|PA|F|Daughter|||5|110624 +3010|PA|Clearfield County|Burnside borough|2159|0|5|Houck|Cyrus|3007|PA|M|Son|||3|110625 +3010|PA|Clearfield County|Burnside borough|2159|0|6|Houck|Brandon|3009|PA|M|Son|||1|110626 + +3010|MN|Cass County|North Central Cass UT|2160|0|1|Anderson|Donn|2989|Massachusetts|M|Head|||21|110627 +3010|MN|Cass County|North Central Cass UT|2160|0|2|Anderson|Genevive|2990|Barbados|F|Spouse|||20|110628 +3010|MN|Cass County|North Central Cass UT|2160|0|3|Anderson|Rodolfo|3001|MN|M|Son|||9|110629 +3010|MN|Cass County|North Central Cass UT|2160|0|4|Anderson|Mario|3003|MN|M|Son|||7|110630 +3010|MN|Cass County|North Central Cass UT|2160|0|5|Anderson|Noble|3005|MN|M|Son|||5|110631 +3010|MN|Cass County|North Central Cass UT|2160|0|6|Anderson|James|3009|MN|M|Son|||1|110632 + +3010|CA|Trinity County|Burnt Ranch CDP|2161|0|1|Dellow|William|2981|Kansas|M|Head|||29|110633 +3010|CA|Trinity County|Burnt Ranch CDP|2161|0|2|Dellow|Easter|2980|California|F|Spouse|||30|110634 +3010|CA|Trinity County|Burnt Ranch CDP|2161|0|3|Dellow|Dorsey|3001|CA|M|Son|||9|110635 +3010|CA|Trinity County|Burnt Ranch CDP|2161|0|4|Dellow|Gwyn|3005|CA|F|Daughter|||5|110636 + +3010|CA|Trinity County|Burnt Ranch CDP|2162|0|1|Dellow|Johnathon|2987|Montana|M|Head|||23|110637 +3010|CA|Trinity County|Burnt Ranch CDP|2162|0|2|Dellow|Armanda|2986|Florida|F|Spouse|||24|110638 +3010|CA|Trinity County|Burnt Ranch CDP|2162|0|3|Dellow|Robert|3001|CA|M|Son|||9|110639 +3010|CA|Trinity County|Burnt Ranch CDP|2162|0|4|Dellow|Neomi|3003|CA|F|Daughter|||7|110640 +3010|CA|Trinity County|Burnt Ranch CDP|2162|0|5|Dellow|Yaeko|3005|CA|F|Daughter|||5|110641 +3010|CA|Trinity County|Burnt Ranch CDP|2162|0|6|Dellow|Owen|3007|CA|M|Son|||3|110642 + +3010|CA|Trinity County|Burnt Ranch CDP|2163|0|1|Dellow|Jasper|2993|Missouri|M|Head|||17|110643 +3010|CA|Trinity County|Burnt Ranch CDP|2163|0|2|Dellow|Avis|2989|Indiana|F|Spouse|||21|110644 +3010|CA|Trinity County|Burnt Ranch CDP|2163|0|3|Dellow|Kareem|3001|CA|M|Son|||9|110645 +3010|CA|Trinity County|Burnt Ranch CDP|2163|0|4|Dellow|Gudrun|3005|CA|F|Daughter|||5|110646 +3010|CA|Trinity County|Burnt Ranch CDP|2163|0|5|Dellow|Octavio|3007|CA|M|Son|||3|110647 +3010|CA|Trinity County|Burnt Ranch CDP|2163|0|6|Dellow|Harvey|3009|CA|M|Son|||1|110648 + +3010|VA|Loudoun County|Sterling CDP|2164|0|1|Benoit|Emmitt|2984|Nebraska|M|Head|||26|110649 +3010|VA|Loudoun County|Sterling CDP|2164|0|2|Benoit|Alisa Jeffie|2989|Nevada|F|Spouse|||21|110650 +3010|VA|Loudoun County|Sterling CDP|2164|0|3|Benoit|Jeanice|3001|VA|F|Daughter|||9|110651 +3010|VA|Loudoun County|Sterling CDP|2164|0|4|Benoit|Allison|3003|VA|F|Daughter|||7|110652 + +3010|VA|Loudoun County|Sterling CDP|2165|0|1|Benoit|Kenny|2992|Iowa|M|Head|||18|110653 +3010|VA|Loudoun County|Sterling CDP|2165|0|2|Benoit|Christy|2991|California|F|Spouse|||19|110654 +3010|VA|Loudoun County|Sterling CDP|2165|0|3|Benoit|Graig|3001|VA|M|Son|||9|110655 +3010|VA|Loudoun County|Sterling CDP|2165|0|4|Benoit|Khalilah|3007|VA|F|Daughter|||3|110656 + +3010|CA|Fresno County|Mendota city|2166|0|1|Viguerie|Colton|2978|Dominica|M|Head|||32|110657 +3010|CA|Fresno County|Mendota city|2166|0|2|Viguerie|Porsha|2986|Illinois|F|Spouse|||24|110658 +3010|CA|Fresno County|Mendota city|2166|0|3|Viguerie|Lazaro|3007|CA|M|Son|||3|110659 +3010|CA|Fresno County|Mendota city|2166|0|4|Viguerie|Versie|3009|CA|F|Daughter|||1|110660 + +3010|NJ|Monmouth County|Aberdeen township|2167|0|1|Franklyn|Dwain|2987|New Mexico|M|Head|||23|110661 +3010|NJ|Monmouth County|Aberdeen township|2167|0|2|Franklyn|Neoma|2993|Vermont|F|Spouse|||17|110662 +3010|NJ|Monmouth County|Aberdeen township|2167|0|3|Franklyn|Thad|3001|NJ|M|Son|||9|110663 +3010|NJ|Monmouth County|Aberdeen township|2167|0|4|Franklyn|Val|3005|NJ|M|Son|||5|110664 +3010|NJ|Monmouth County|Aberdeen township|2167|0|5|Franklyn|Filiberto Willie|3009|NJ|M|Son|||1|110665 + +3010|GA|Laurens County|Dexter town|2168|0|1|Stoddard|Ali|2994|Maine|M|Head|||16|110666 +3010|GA|Laurens County|Dexter town|2168|0|2|Stoddard|Fiona|2989|Vermont|F|Spouse|||21|110667 +3010|GA|Laurens County|Dexter town|2168|0|3|Stoddard|Lu|3001|GA|F|Daughter|||9|110668 +3010|GA|Laurens County|Dexter town|2168|0|4|Stoddard|Adelaida|3003|GA|F|Daughter|||7|110669 +3010|GA|Laurens County|Dexter town|2168|0|5|Stoddard|Wyatt|3007|GA|M|Son|||3|110670 +3010|GA|Laurens County|Dexter town|2168|0|6|Stoddard|Demarcus|3009|GA|M|Son|||1|110671 + +3010|MS|Kemper County, Neshoba County|Bogue Chitto CDP|2169|0|1|Norman|Miquel|2987|Rhode Island|M|Head|||23|110672 +3010|MS|Kemper County, Neshoba County|Bogue Chitto CDP|2169|0|2|Norman|Lesley|2993|Florida|F|Spouse|||17|110673 +3010|MS|Kemper County, Neshoba County|Bogue Chitto CDP|2169|0|3|Norman|Ludie|3009|MS|F|Daughter|||1|110674 + +3010|IN|Decatur County|Millhousen town|2170|0|1|Norman|Darryl|2993|West Virginia|M|Head|||17|110675 +3010|IN|Decatur County|Millhousen town|2170|0|2|Norman|Tory|2976|New Hampshire|F|Spouse|||34|110676 +3010|IN|Decatur County|Millhousen town|2170|0|3|Norman|Jamey|3001|IN|M|Son|||9|110677 +3010|IN|Decatur County|Millhousen town|2170|0|4|Norman|Mariano|3005|IN|M|Son|||5|110678 +3010|IN|Decatur County|Millhousen town|2170|0|5|Norman|Elias|3007|IN|M|Son|||3|110679 + +3010|CA|Shasta County|Montgomery Creek CDP|2171|0|1|Germann|Domingo Glen|2983|Wisconsin|M|Head|||27|110680 +3010|CA|Shasta County|Montgomery Creek CDP|2171|0|2|Germann|Yee Joelle|2980|Oregon|F|Spouse|||30|110681 +3010|CA|Shasta County|Montgomery Creek CDP|2171|0|3|Germann|Lachelle|3001|CA|F|Daughter|||9|110682 +3010|CA|Shasta County|Montgomery Creek CDP|2171|0|4|Germann|Hettie|3003|CA|F|Daughter|||7|110683 + +3010|CA|Shasta County|Montgomery Creek CDP|2172|0|1|Germann|Deon Clark|2985|Connecticut|M|Head|||25|110684 +3010|CA|Shasta County|Montgomery Creek CDP|2172|0|2|Germann|Gudrun|2988|Missouri|F|Spouse|||22|110685 +3010|CA|Shasta County|Montgomery Creek CDP|2172|0|3|Germann|Janean Lavonda|3003|CA|F|Daughter|||7|110686 +3010|CA|Shasta County|Montgomery Creek CDP|2172|0|4|Germann|Alfredo|3005|CA|M|Son|||5|110687 +3010|CA|Shasta County|Montgomery Creek CDP|2172|0|5|Germann|Jasper|3007|CA|M|Son|||3|110688 + +3010|CA|Shasta County|Montgomery Creek CDP|2173|0|1|Germann|Raymon|2989|New Mexico|M|Head|||21|110689 +3010|CA|Shasta County|Montgomery Creek CDP|2173|0|2|Germann|Isaura|2990|Missouri|F|Spouse|||20|110690 +3010|CA|Shasta County|Montgomery Creek CDP|2173|0|3|Germann|Margret|3001|CA|F|Daughter|||9|110691 +3010|CA|Shasta County|Montgomery Creek CDP|2173|0|4|Germann|Hannah|3005|CA|F|Daughter|||5|110692 +3010|CA|Shasta County|Montgomery Creek CDP|2173|0|5|Germann|Martina Maryann|3009|CA|F|Daughter|||1|110693 + +3010|CO|Pueblo County|Blende CDP|2174|0|1|Gasper|Leopoldo|2989|Oregon|M|Head|||21|110694 +3010|CO|Pueblo County|Blende CDP|2174|0|2|Gasper|Annita Ulrike|2987|Wyoming|F|Spouse|||23|110695 +3010|CO|Pueblo County|Blende CDP|2174|0|3|Gasper|Jarod Sidney|3009|CO|M|Son|||1|110696 + +3010|OK|Delaware County, Mayes County|Kenwood CDP|2175|0|1|Gasper|Miles|2991|Wisconsin|M|Head|||19|110697 +3010|OK|Delaware County, Mayes County|Kenwood CDP|2175|0|2|Gasper|Drucilla|2980|Turkmenistan|F|Spouse|||30|110698 + +3010|IN|Rush County|Carthage town|2176|0|1|Bubrig|Columbus|2984|Maryland|M|Head|||26|110699 +3010|IN|Rush County|Carthage town|2176|0|2|Bubrig|Theresa|2975|New York|F|Spouse|||35|110700 +3010|IN|Rush County|Carthage town|2176|0|3|Bubrig|Shirley|3005|IN|M|Son|||5|110701 +3010|IN|Rush County|Carthage town|2176|0|4|Bubrig|Neal|3007|IN|M|Son|||3|110702 + +3010|NY|Nassau County|Malverne Park Oaks CDP|2177|0|1|Broomhall|Gustavo|2987|Hawaii|M|Head|||23|110703 +3010|NY|Nassau County|Malverne Park Oaks CDP|2177|0|2|Broomhall|Evia Kathern|2991|Massachusetts|F|Spouse|||19|110704 +3010|NY|Nassau County|Malverne Park Oaks CDP|2177|0|3|Broomhall|Rudolph|3003|NY|M|Son|||7|110705 + +3010|MN|Cass County|Bena city|2178|0|1|Rudoy|Arnold|2991|Arizona|M|Head|||19|110706 +3010|MN|Cass County|Bena city|2178|0|2|Rudoy|Sima|2974|Cuba|F|Spouse|||36|110707 +3010|MN|Cass County|Bena city|2178|0|3|Rudoy|Bo|3005|MN|M|Son|||5|110708 +3010|MN|Cass County|Bena city|2178|0|4|Rudoy|Brett|3007|MN|M|Son|||3|110709 + +3010|MN|Cass County|Bena city|2179|0|1|Rudoy|Jesse|2993|Oklahoma|M|Head|||17|110710 +3010|MN|Cass County|Bena city|2179|0|2|Rudoy|Blossom Tess|2990|West Virginia|F|Spouse|||20|110711 +3010|MN|Cass County|Bena city|2179|0|3|Rudoy|Nicolas Numbers|3001|MN|M|Son|||9|110712 +3010|MN|Cass County|Bena city|2179|0|4|Rudoy|Lincoln|3003|MN|M|Son|||7|110713 +3010|MN|Cass County|Bena city|2179|0|5|Rudoy|Connie|3005|MN|M|Son|||5|110714 + +3010|PA|Northampton County|Old Orchard CDP|2180|0|1|Quintana|Mickey|2972|North Carolina|M|Head|||38|110715 +3010|PA|Northampton County|Old Orchard CDP|2180|0|2|Quintana|Kaley|2994|Russian Federation|F|Spouse|||16|110716 +3010|PA|Northampton County|Old Orchard CDP|2180|0|3|Quintana|Stefan|3001|PA|M|Son|||9|110717 +3010|PA|Northampton County|Old Orchard CDP|2180|0|4|Quintana|Elene|3003|PA|F|Daughter|||7|110718 +3010|PA|Northampton County|Old Orchard CDP|2180|0|5|Quintana|Jackson|3005|PA|M|Son|||5|110719 +3010|PA|Northampton County|Old Orchard CDP|2180|0|6|Quintana|Lolita|3007|PA|F|Daughter|||3|110720 + +3010|NY|Onondaga County|Liverpool village|2181|0|1|Quintana|Omer|2978|Idaho|M|Head|||32|110721 +3010|NY|Onondaga County|Liverpool village|2181|0|2|Quintana|Donetta|2994|Hawaii|F|Spouse|||16|110722 +3010|NY|Onondaga County|Liverpool village|2181|0|3|Quintana|Frederick|3001|NY|M|Son|||9|110723 +3010|NY|Onondaga County|Liverpool village|2181|0|4|Quintana|Neville|3007|NY|M|Son|||3|110724 + +3010|NY|Orange County|Blooming Grove town|2182|0|1|Mimes|Landon Hai|2979|Nebraska|M|Head|||31|110725 +3010|NY|Orange County|Blooming Grove town|2182|0|2|Mimes|Teisha|2988|Lithuania|F|Spouse|||22|110726 +3010|NY|Orange County|Blooming Grove town|2182|0|3|Mimes|Penelope|3001|NY|F|Daughter|||9|110727 +3010|NY|Orange County|Blooming Grove town|2182|0|4|Mimes|Shirlene Sidney|3003|NY|F|Daughter|||7|110728 +3010|NY|Orange County|Blooming Grove town|2182|0|5|Mimes|Madelyn|3005|NY|F|Daughter|||5|110729 +3010|NY|Orange County|Blooming Grove town|2182|0|6|Mimes|Trevor|3007|NY|M|Son|||3|110730 +3010|NY|Orange County|Blooming Grove town|2182|0|7|Mimes|Betsy Harmony|3009|NY|F|Daughter|||1|110731 + +3010|PA|Washington County|Somerset township|2183|0|1|Mimes|Jasper|2989|Massachusetts|M|Head|||21|110732 +3010|PA|Washington County|Somerset township|2183|0|2|Mimes|Danika Gina|2986|Louisiana|F|Spouse|||24|110733 +3010|PA|Washington County|Somerset township|2183|0|3|Mimes|Clayton Bart|3001|PA|M|Son|||9|110734 +3010|PA|Washington County|Somerset township|2183|0|4|Mimes|Roseanna Latarsha|3003|PA|F|Daughter|||7|110735 +3010|PA|Washington County|Somerset township|2183|0|5|Mimes|Jin|3005|PA|F|Daughter|||5|110736 +3010|PA|Washington County|Somerset township|2183|0|6|Mimes|Huey|3009|PA|M|Son|||1|110737 + +3010|HI|Honolulu County|Ewa Villages CDP|2184|0|1|Chamber|Marlon|2994|Oregon|M|Head|||16|110738 +3010|HI|Honolulu County|Ewa Villages CDP|2184|0|2|Chamber|Patrica Marquetta|2989|United Kingdom|F|Spouse|||21|110739 +3010|HI|Honolulu County|Ewa Villages CDP|2184|0|3|Chamber|William|3001|HI|M|Son|||9|110740 +3010|HI|Honolulu County|Ewa Villages CDP|2184|0|4|Chamber|Man|3003|HI|M|Son|||7|110741 +3010|HI|Honolulu County|Ewa Villages CDP|2184|0|5|Chamber|Florene|3009|HI|F|Daughter|||1|110742 + +3010|PA|Westmoreland County|Scottdale borough|2185|0|1|Hodgson|Mauro|2992|Andorra|M|Head|||18|110743 +3010|PA|Westmoreland County|Scottdale borough|2185|0|2|Hodgson|Elmira|2993|Louisiana|F|Spouse|||17|110744 +3010|PA|Westmoreland County|Scottdale borough|2185|0|3|Hodgson|Cyrus|3001|PA|M|Son|||9|110745 +3010|PA|Westmoreland County|Scottdale borough|2185|0|4|Hodgson|Chris|3003|PA|M|Son|||7|110746 +3010|PA|Westmoreland County|Scottdale borough|2185|0|5|Hodgson|Kristopher|3009|PA|M|Son|||1|110747 + +3010|MN|Itasca County|Nashwauk city|2186|0|1|Rippey|Odell|2987|Ukraine|M|Head|||23|110748 +3010|MN|Itasca County|Nashwauk city|2186|0|2|Rippey|Genie|2993|Delaware|F|Spouse|||17|110749 +3010|MN|Itasca County|Nashwauk city|2186|0|3|Rippey|Don|3005|MN|M|Son|||5|110750 +3010|MN|Itasca County|Nashwauk city|2186|0|4|Rippey|Marna|3007|MN|F|Daughter|||3|110751 +3010|MN|Itasca County|Nashwauk city|2186|0|5|Rippey|Rebeca|3009|MN|F|Daughter|||1|110752 + +3010|MN|Mower County|Austin city|2187|0|1|Masuda|Seth|2992|Montana|M|Head|||18|110753 +3010|MN|Mower County|Austin city|2187|0|2|Masuda|Alejandrina|2990|Guadeloupe|F|Spouse|||20|110754 +3010|MN|Mower County|Austin city|2187|0|3|Masuda|Tommie|3003|MN|M|Son|||7|110755 +3010|MN|Mower County|Austin city|2187|0|4|Masuda|Cathie|3007|MN|F|Daughter|||3|110756 +3010|MN|Mower County|Austin city|2187|0|5|Masuda|Jacquelyn|3009|MN|F|Daughter|||1|110757 + +3010|MI|Missaukee County|McBain city|2188|0|1|Masuda|Lester|2994|Hawaii|M|Head|||16|110758 +3010|MI|Missaukee County|McBain city|2188|0|2|Masuda|Tatum|2988|New York|F|Spouse|||22|110759 +3010|MI|Missaukee County|McBain city|2188|0|3|Masuda|Jacques Sterling|3003|MI|M|Son|||7|110760 +3010|MI|Missaukee County|McBain city|2188|0|4|Masuda|Craig|3005|MI|M|Son|||5|110761 +3010|MI|Missaukee County|McBain city|2188|0|5|Masuda|Fred Toshia|3007|MI|F|Daughter|||3|110762 +3010|MI|Missaukee County|McBain city|2188|0|6|Masuda|Jarrod|3009|MI|M|Son|||1|110763 + +3010|ND|Traill County|Buxton city|2189|0|1|Wilder|Len|2982|Colorado|M|Head|||28|110764 +3010|ND|Traill County|Buxton city|2189|0|2|Wilder|Devin|2978|Cameroon|F|Spouse|||32|110765 +3010|ND|Traill County|Buxton city|2189|0|3|Wilder|Craig|3001|ND|M|Son|||9|110766 +3010|ND|Traill County|Buxton city|2189|0|4|Wilder|Bulah|3009|ND|F|Daughter|||1|110767 + +3010|MA|Worcester County|Uxbridge town|2190|0|1|Schroth|Norman|2993|Cape Verde|M|Head|||17|110768 +3010|MA|Worcester County|Uxbridge town|2190|0|2|Schroth|Cecelia|2988|Nebraska|F|Spouse|||22|110769 +3010|MA|Worcester County|Uxbridge town|2190|0|3|Schroth|Elana|3001|MA|F|Daughter|||9|110770 +3010|MA|Worcester County|Uxbridge town|2190|0|4|Schroth|Faustino|3003|MA|M|Son|||7|110771 +3010|MA|Worcester County|Uxbridge town|2190|0|5|Schroth|Lore|3007|MA|F|Daughter|||3|110772 +3010|MA|Worcester County|Uxbridge town|2190|0|6|Schroth|Stefan|3009|MA|M|Son|||1|110773 + +3010|KS|Ford County|Dodge City city|2191|0|1|Oravec|Raul|2991|South Carolina|M|Head|||19|110774 +3010|KS|Ford County|Dodge City city|2191|0|2|Oravec|Blondell|2990|Iowa|F|Spouse|||20|110775 +3010|KS|Ford County|Dodge City city|2191|0|3|Oravec|Lyndia|3003|KS|F|Daughter|||7|110776 +3010|KS|Ford County|Dodge City city|2191|0|4|Oravec|Nicolasa|3009|KS|F|Daughter|||1|110777 + +3010|CT|Tolland County|Vernon town|2192|0|1|Triguro|Orville Wilford|2986|New Mexico|M|Head|||24|110778 +3010|CT|Tolland County|Vernon town|2192|0|2|Triguro|Kaye|2992|California|F|Spouse|||18|110779 +3010|CT|Tolland County|Vernon town|2192|0|3|Triguro|Verdie Harmony|3001|CT|F|Daughter|||9|110780 +3010|CT|Tolland County|Vernon town|2192|0|4|Triguro|Werner|3005|CT|M|Son|||5|110781 + +3010|MN|Todd County|Burtrum city|2193|0|1|Gingery|Marlon Donny|2989|Kiribati|M|Head|||21|110782 +3010|MN|Todd County|Burtrum city|2193|0|2|Gingery|Cayla|2991|Wisconsin|F|Spouse|||19|110783 +3010|MN|Todd County|Burtrum city|2193|0|3|Gingery|Aretha|3003|MN|F|Daughter|||7|110784 +3010|MN|Todd County|Burtrum city|2193|0|4|Gingery|Trey|3007|MN|M|Son|||3|110785 +3010|MN|Todd County|Burtrum city|2193|0|5|Gingery|Charlie|3009|MN|M|Son|||1|110786 + +3010|TX|Harris County|South Houston city|2194|0|1|Parks|Lucius|2978|Wyoming|M|Head|||32|110787 +3010|TX|Harris County|South Houston city|2194|0|2|Parks|Jeannine|2983|Maryland|F|Spouse|||27|110788 +3010|TX|Harris County|South Houston city|2194|0|3|Parks|Leonia Kylee|3001|TX|F|Daughter|||9|110789 +3010|TX|Harris County|South Houston city|2194|0|4|Parks|Temika|3003|TX|F|Daughter|||7|110790 +3010|TX|Harris County|South Houston city|2194|0|5|Parks|Beau Ronnie|3005|TX|M|Son|||5|110791 +3010|TX|Harris County|South Houston city|2194|0|6|Parks|Randall|3009|TX|M|Son|||1|110792 + +3010|WI|Waukesha County|North Prairie village|2195|0|1|Parks|Guillermo|2988|Massachusetts|M|Head|||22|110793 +3010|WI|Waukesha County|North Prairie village|2195|0|2|Parks|Charlesetta Troy|2988|New York|F|Spouse|||22|110794 +3010|WI|Waukesha County|North Prairie village|2195|0|3|Parks|Jorge|3003|WI|M|Son|||7|110795 + +3010|MN|Cass County|North Central Cass UT|2196|0|1|Parks|Matt Armando|2990|Tonga|M|Head|||20|110796 +3010|MN|Cass County|North Central Cass UT|2196|0|2|Parks|Lesha Lu|2991|Louisiana|F|Spouse|||19|110797 +3010|MN|Cass County|North Central Cass UT|2196|0|3|Parks|Freda|3003|MN|F|Daughter|||7|110798 +3010|MN|Cass County|North Central Cass UT|2196|0|4|Parks|Ferdinand|3009|MN|M|Son|||1|110799 + +3010|WI|Waukesha County|North Prairie village|2197|0|1|Parks|Francis|2992|Georgia|M|Head|||18|110800 +3010|WI|Waukesha County|North Prairie village|2197|0|2|Parks|Gabriel|2993|Delaware|F|Spouse|||17|110801 +3010|WI|Waukesha County|North Prairie village|2197|0|3|Parks|Kathryne|3001|WI|F|Daughter|||9|110802 +3010|WI|Waukesha County|North Prairie village|2197|0|4|Parks|Romeo|3003|WI|M|Son|||7|110803 +3010|WI|Waukesha County|North Prairie village|2197|0|5|Parks|Karisa|3007|WI|F|Daughter|||3|110804 +3010|WI|Waukesha County|North Prairie village|2197|0|6|Parks|Catalina Serita|3009|WI|F|Daughter|||1|110805 + +3010|ME|Kennebec County|Randolph CDP|2198|0|1|Kluesner|Leon|2993|Guinea|M|Head|||17|110806 +3010|ME|Kennebec County|Randolph CDP|2198|0|2|Kluesner|Layne|2965|Hawaii|F|Spouse|||45|110807 +3010|ME|Kennebec County|Randolph CDP|2198|0|3|Kluesner|Jeanette Bobbye|3001|ME|F|Daughter|||9|110808 +3010|ME|Kennebec County|Randolph CDP|2198|0|4|Kluesner|Cecille|3005|ME|F|Daughter|||5|110809 + +3010|MN|Clay County|Dilworth city|2199|0|1|Easler|Harley|2984|Ohio|M|Head|||26|110810 +3010|MN|Clay County|Dilworth city|2199|0|2|Easler|Michelina|2985|Utah|F|Spouse|||25|110811 +3010|MN|Clay County|Dilworth city|2199|0|3|Easler|Deane|3003|MN|F|Daughter|||7|110812 +3010|MN|Clay County|Dilworth city|2199|0|4|Easler|Petra|3007|MN|F|Daughter|||3|110813 +3010|MN|Clay County|Dilworth city|2199|0|5|Easler|Wilford|3009|MN|M|Son|||1|110814 + +3010|MN|Clay County|Dilworth city|2200|0|1|Easler|Chance|2988|Argentina|M|Head|||22|110815 +3010|MN|Clay County|Dilworth city|2200|0|2|Easler|Berna|2987|Romania|F|Spouse|||23|110816 +3010|MN|Clay County|Dilworth city|2200|0|3|Easler|Lelia|3001|MN|F|Daughter|||9|110817 +3010|MN|Clay County|Dilworth city|2200|0|4|Easler|Lorina Lani|3003|MN|F|Daughter|||7|110818 +3010|MN|Clay County|Dilworth city|2200|0|5|Easler|Alvina|3005|MN|F|Daughter|||5|110819 +3010|MN|Clay County|Dilworth city|2200|0|6|Easler|Lowell|3009|MN|M|Son|||1|110820 + +3010|NY|Livingston County|Websters Crossing CDP|2201|0|1|Easler|Ronald|2990|Greenland|M|Head|||20|110821 +3010|NY|Livingston County|Websters Crossing CDP|2201|0|2|Easler|Kristel|2960|Nevada|F|Spouse|||50|110822 +3010|NY|Livingston County|Websters Crossing CDP|2201|0|3|Easler|Jason Darron|3001|NY|M|Son|||9|110823 +3010|NY|Livingston County|Websters Crossing CDP|2201|0|4|Easler|Elmer|3003|NY|M|Son|||7|110824 +3010|NY|Livingston County|Websters Crossing CDP|2201|0|5|Easler|Laquita|3005|NY|F|Daughter|||5|110825 +3010|NY|Livingston County|Websters Crossing CDP|2201|0|6|Easler|Olinda Chu|3009|NY|F|Daughter|||1|110826 + +3010|OH|Portage County|Kent city|2202|0|1|Fischel|Giovanni|2967|Iowa|M|Head|||43|110827 +3010|OH|Portage County|Kent city|2202|0|2|Fischel|Brandie|2974|Missouri|F|Spouse|||36|110828 +3010|OH|Portage County|Kent city|2202|0|3|Fischel|Jodie|3003|OH|F|Daughter|||7|110829 +3010|OH|Portage County|Kent city|2202|0|4|Fischel|Osvaldo Darwin|3005|OH|M|Son|||5|110830 +3010|OH|Portage County|Kent city|2202|0|5|Fischel|Eloy|3009|OH|M|Son|||1|110831 + +3010|OK|Oklahoma County|Warr Acres city|2203|0|1|Fischel|Paul|2991|Mississippi|M|Head|||19|110832 +3010|OK|Oklahoma County|Warr Acres city|2203|0|2|Fischel|Sherita|2992|Arizona|F|Spouse|||18|110833 +3010|OK|Oklahoma County|Warr Acres city|2203|0|3|Fischel|Bryan|3001|OK|M|Son|||9|110834 +3010|OK|Oklahoma County|Warr Acres city|2203|0|4|Fischel|Velva|3003|OK|F|Daughter|||7|110835 +3010|OK|Oklahoma County|Warr Acres city|2203|0|5|Fischel|Florencio|3007|OK|M|Son|||3|110836 +3010|OK|Oklahoma County|Warr Acres city|2203|0|6|Fischel|Antonio|3009|OK|M|Son|||1|110837 + +3010|OH|Auglaize County|St. Marys city|2204|0|1|Miranda|Byron|2978|Peru|M|Head|||32|110838 +3010|OH|Auglaize County|St. Marys city|2204|0|2|Miranda|Dottie|2990|Guinea-bissau|F|Spouse|||20|110839 +3010|OH|Auglaize County|St. Marys city|2204|0|3|Miranda|Antonette|3003|OH|F|Daughter|||7|110840 +3010|OH|Auglaize County|St. Marys city|2204|0|4|Miranda|Andrew|3005|OH|F|Daughter|||5|110841 +3010|OH|Auglaize County|St. Marys city|2204|0|5|Miranda|Tomoko|3007|OH|F|Daughter|||3|110842 +3010|OH|Auglaize County|St. Marys city|2204|0|6|Miranda|Boyd|3009|OH|M|Son|||1|110843 + +3010|NE|Seward County|Tamora CDP|2205|0|1|Ricker|Ellis|2958|North Dakota|M|Head|||52|110844 +3010|NE|Seward County|Tamora CDP|2205|0|2|Ricker|Meggan|2988|Mississippi|F|Spouse|||22|110845 +3010|NE|Seward County|Tamora CDP|2205|0|3|Ricker|Doyle|3001|NE|M|Son|||9|110846 +3010|NE|Seward County|Tamora CDP|2205|0|4|Ricker|Troy|3003|NE|M|Son|||7|110847 +3010|NE|Seward County|Tamora CDP|2205|0|5|Ricker|Freddie|3005|NE|F|Daughter|||5|110848 + +3010|MI|Isabella County|Vernon township|2206|0|1|Falk|David|2977|West Virginia|M|Head|||33|110849 +3010|MI|Isabella County|Vernon township|2206|0|2|Falk|Cornelia|2991|California|F|Spouse|||19|110850 +3010|MI|Isabella County|Vernon township|2206|0|3|Falk|Chester Landon|3007|MI|M|Son|||3|110851 + +3010|PA|Jefferson County|Crenshaw CDP|2207|0|1|Guymon|Chase|2987|Colorado|M|Head|||23|110852 +3010|PA|Jefferson County|Crenshaw CDP|2207|0|2|Guymon|Savannah|2979|Arizona|F|Spouse|||31|110853 +3010|PA|Jefferson County|Crenshaw CDP|2207|0|3|Guymon|Judson|3001|PA|M|Son|||9|110854 +3010|PA|Jefferson County|Crenshaw CDP|2207|0|4|Guymon|Sammy Valda|3003|PA|F|Daughter|||7|110855 +3010|PA|Jefferson County|Crenshaw CDP|2207|0|5|Guymon|Alton|3007|PA|M|Son|||3|110856 +3010|PA|Jefferson County|Crenshaw CDP|2207|0|6|Guymon|Dino Garth|3009|PA|M|Son|||1|110857 + +3010|FL|Escambia County|Pensacola city|2208|0|1|Roeker|Raymond|2988|Luxembourg|M|Head|||22|110858 +3010|FL|Escambia County|Pensacola city|2208|0|2|Roeker|Porsche|2988|Ghana|F|Spouse|||22|110859 + +3010|FL|Escambia County|Pensacola city|2209|0|1|Roeker|Herbert|2990|Indiana|M|Head|||20|110860 +3010|FL|Escambia County|Pensacola city|2209|0|2|Roeker|Huong|2994|Minnesota|F|Spouse|||16|110861 +3010|FL|Escambia County|Pensacola city|2209|0|3|Roeker|Reed|3001|FL|M|Son|||9|110862 +3010|FL|Escambia County|Pensacola city|2209|0|4|Roeker|Londa|3003|FL|F|Daughter|||7|110863 +3010|FL|Escambia County|Pensacola city|2209|0|5|Roeker|Alexis|3005|FL|M|Son|||5|110864 +3010|FL|Escambia County|Pensacola city|2209|0|6|Roeker|Ada|3007|FL|F|Daughter|||3|110865 + +3010|VA|Halifax County|Riverdale CDP|2210|0|1|Bryan|Marshall|2983|South Carolina|M|Head|||27|110866 +3010|VA|Halifax County|Riverdale CDP|2210|0|2|Bryan|Joelle|2981|North Dakota|F|Spouse|||29|110867 +3010|VA|Halifax County|Riverdale CDP|2210|0|3|Bryan|Troy|3001|VA|F|Daughter|||9|110868 +3010|VA|Halifax County|Riverdale CDP|2210|0|4|Bryan|Librada|3003|VA|F|Daughter|||7|110869 +3010|VA|Halifax County|Riverdale CDP|2210|0|5|Bryan|Carolina|3009|VA|F|Daughter|||1|110870 + +3010|WY|Fremont County|Boulder Flats CDP|2211|0|1|Bryan|Maurice|2985|California|M|Head|||25|110871 +3010|WY|Fremont County|Boulder Flats CDP|2211|0|2|Bryan|Marceline|2993|Idaho|F|Spouse|||17|110872 +3010|WY|Fremont County|Boulder Flats CDP|2211|0|3|Bryan|Francesca|3001|WY|F|Daughter|||9|110873 + +3010|IA|Dubuque County|Asbury city|2212|0|1|Bryan|Berry|2989|Tennessee|M|Head|||21|110874 +3010|IA|Dubuque County|Asbury city|2212|0|2|Bryan|Clorinda|2966|Mozambique|F|Spouse|||44|110875 +3010|IA|Dubuque County|Asbury city|2212|0|3|Bryan|Eunice|3003|IA|F|Daughter|||7|110876 +3010|IA|Dubuque County|Asbury city|2212|0|4|Bryan|Lucio|3007|IA|M|Son|||3|110877 +3010|IA|Dubuque County|Asbury city|2212|0|5|Bryan|Herminia|3009|IA|F|Daughter|||1|110878 + +3010|NC|Harnett County|Dunn city|2213|0|1|Burr|Guy|2976|Syrian Arab Republic|M|Head|||34|110879 +3010|NC|Harnett County|Dunn city|2213|0|2|Burr|Jeffie Mao|2983|Massachusetts|F|Spouse|||27|110880 +3010|NC|Harnett County|Dunn city|2213|0|3|Burr|Cary|3001|NC|M|Son|||9|110881 +3010|NC|Harnett County|Dunn city|2213|0|4|Burr|Nga Felisha|3005|NC|F|Daughter|||5|110882 +3010|NC|Harnett County|Dunn city|2213|0|5|Burr|Marjorie|3007|NC|F|Daughter|||3|110883 +3010|NC|Harnett County|Dunn city|2213|0|6|Burr|Cary|3009|NC|M|Son|||1|110884 + +3010|PA|Allegheny County|Aspinwall borough|2214|0|1|Burr|Logan Jarred|2982|Greece|M|Head|||28|110885 +3010|PA|Allegheny County|Aspinwall borough|2214|0|2|Burr|Chery|2982|New Hampshire|F|Spouse|||28|110886 +3010|PA|Allegheny County|Aspinwall borough|2214|0|3|Burr|Krissy|3005|PA|F|Daughter|||5|110887 +3010|PA|Allegheny County|Aspinwall borough|2214|0|4|Burr|Esteban Aaron|3009|PA|M|Son|||1|110888 + +3010|NC|Harnett County|Dunn city|2215|0|1|Burr|Shelby|2986|Georgia|M|Head|||24|110889 +3010|NC|Harnett County|Dunn city|2215|0|2|Burr|Brenda|2990|Oregon|F|Spouse|||20|110890 +3010|NC|Harnett County|Dunn city|2215|0|3|Burr|Moses|3003|NC|M|Son|||7|110891 +3010|NC|Harnett County|Dunn city|2215|0|4|Burr|Tiny|3005|NC|F|Daughter|||5|110892 +3010|NC|Harnett County|Dunn city|2215|0|5|Burr|Lavette|3009|NC|F|Daughter|||1|110893 + +3010|MA|Worcester County|Mendon town|2216|0|1|Kanoza|Craig|2990|Maldives|M|Head|||20|110894 +3010|MA|Worcester County|Mendon town|2216|0|2|Kanoza|Pamala|2992|Iowa|F|Spouse|||18|110895 +3010|MA|Worcester County|Mendon town|2216|0|3|Kanoza|Connie|3001|MA|M|Son|||9|110896 +3010|MA|Worcester County|Mendon town|2216|0|4|Kanoza|Gayle|3007|MA|F|Daughter|||3|110897 + +3010|SD|Davison County|Ethan town|2217|0|1|Kanoza|Bennett|2992|Colorado|M|Head|||18|110898 +3010|SD|Davison County|Ethan town|2217|0|2|Kanoza|Zelda|2986|South Dakota|F|Spouse|||24|110899 +3010|SD|Davison County|Ethan town|2217|0|3|Kanoza|Leo|3003|SD|F|Daughter|||7|110900 +3010|SD|Davison County|Ethan town|2217|0|4|Kanoza|Wonda|3005|SD|F|Daughter|||5|110901 + +3010|OH|Brown County|St. Martin village|2218|0|1|Levy|Del|2984|West Virginia|M|Head|||26|110902 +3010|OH|Brown County|St. Martin village|2218|0|2|Levy|Kristy|2992|Idaho|F|Spouse|||18|110903 +3010|OH|Brown County|St. Martin village|2218|0|3|Levy|Jesus|3007|OH|M|Son|||3|110904 + +3010|OH|Brown County|St. Martin village|2219|0|1|Levy|Tyree Adalberto|2986|Texas|M|Head|||24|110905 +3010|OH|Brown County|St. Martin village|2219|0|2|Levy|Nam|2992|Maryland|F|Spouse|||18|110906 +3010|OH|Brown County|St. Martin village|2219|0|3|Levy|Melinda|3003|OH|F|Daughter|||7|110907 +3010|OH|Brown County|St. Martin village|2219|0|4|Levy|Hoa|3005|OH|F|Daughter|||5|110908 +3010|OH|Brown County|St. Martin village|2219|0|5|Levy|Rufus|3007|OH|M|Son|||3|110909 + +3010|CA|Los Angeles County|Temple City city|2220|0|1|Neihoff|Jc|2980|Iowa|M|Head|||30|110910 +3010|CA|Los Angeles County|Temple City city|2220|0|2|Neihoff|Merissa|2994|California|F|Spouse|||16|110911 +3010|CA|Los Angeles County|Temple City city|2220|0|3|Neihoff|Soraya|3001|CA|F|Daughter|||9|110912 +3010|CA|Los Angeles County|Temple City city|2220|0|4|Neihoff|Cathie|3007|CA|F|Daughter|||3|110913 +3010|CA|Los Angeles County|Temple City city|2220|0|5|Neihoff|Jackqueline|3009|CA|F|Daughter|||1|110914 + +3010|NY|Erie County|Alden town|2221|0|1|Martinez|Christian|2991|New Hampshire|M|Head|||19|110915 +3010|NY|Erie County|Alden town|2221|0|2|Martinez|Diedre|2987|Louisiana|F|Spouse|||23|110916 +3010|NY|Erie County|Alden town|2221|0|3|Martinez|Johnathan|3001|NY|M|Son|||9|110917 +3010|NY|Erie County|Alden town|2221|0|4|Martinez|Lavonda Guadalupe|3005|NY|F|Daughter|||5|110918 +3010|NY|Erie County|Alden town|2221|0|5|Martinez|Launa|3007|NY|F|Daughter|||3|110919 + +3010|MN|Meeker County|Watkins city|2222|0|1|Banda|Wilton|2991|New Mexico|M|Head|||19|110920 +3010|MN|Meeker County|Watkins city|2222|0|2|Banda|Mozell|2983|Nevada|F|Spouse|||27|110921 +3010|MN|Meeker County|Watkins city|2222|0|3|Banda|Roxanna|3001|MN|F|Daughter|||9|110922 +3010|MN|Meeker County|Watkins city|2222|0|4|Banda|Aja|3005|MN|F|Daughter|||5|110923 + +3010|MA|Suffolk County|Chelsea city|2223|0|1|Shawley|Gerry|2990|Indiana|M|Head|||20|110924 +3010|MA|Suffolk County|Chelsea city|2223|0|2|Shawley|Karey Shawn|2987|Pennsylvania|F|Spouse|||23|110925 +3010|MA|Suffolk County|Chelsea city|2223|0|3|Shawley|Leigh|3007|MA|M|Son|||3|110926 +3010|MA|Suffolk County|Chelsea city|2223|0|4|Shawley|Shawnda|3009|MA|F|Daughter|||1|110927 + +3010|WI|Barron County|Oak Grove town|2224|0|1|Smyth|Enoch|2989|Arizona|M|Head|||21|110928 +3010|WI|Barron County|Oak Grove town|2224|0|2|Smyth|Tula|2990|Malaysia|F|Spouse|||20|110929 +3010|WI|Barron County|Oak Grove town|2224|0|3|Smyth|Zona|3001|WI|F|Daughter|||9|110930 +3010|WI|Barron County|Oak Grove town|2224|0|4|Smyth|Lona|3007|WI|F|Daughter|||3|110931 + +3010|OH|Highland County|Sinking Spring village|2225|0|1|Venneman|Jamey|2992|Alabama|M|Head|||18|110932 +3010|OH|Highland County|Sinking Spring village|2225|0|2|Venneman|Bella Loida|2987|New Jersey|F|Spouse|||23|110933 +3010|OH|Highland County|Sinking Spring village|2225|0|3|Venneman|Mohamed|3001|OH|M|Son|||9|110934 +3010|OH|Highland County|Sinking Spring village|2225|0|4|Venneman|Stephan Raleigh|3003|OH|M|Son|||7|110935 +3010|OH|Highland County|Sinking Spring village|2225|0|5|Venneman|Sixta|3007|OH|F|Daughter|||3|110936 +3010|OH|Highland County|Sinking Spring village|2225|0|6|Venneman|Earl Miguel|3009|OH|M|Son|||1|110937 + +3010|AL|Houston County|Columbia town|2226|0|1|Petrelli|Pierre|2989|Massachusetts|M|Head|||21|110938 +3010|AL|Houston County|Columbia town|2226|0|2|Petrelli|Lucretia|2994|Dominica|F|Spouse|||16|110939 +3010|AL|Houston County|Columbia town|2226|0|3|Petrelli|Monty|3001|AL|M|Son|||9|110940 +3010|AL|Houston County|Columbia town|2226|0|4|Petrelli|Blair|3003|AL|F|Daughter|||7|110941 +3010|AL|Houston County|Columbia town|2226|0|5|Petrelli|Len|3005|AL|M|Son|||5|110942 +3010|AL|Houston County|Columbia town|2226|0|6|Petrelli|Kendall|3007|AL|M|Son|||3|110943 +3010|AL|Houston County|Columbia town|2226|0|7|Petrelli|Sherry|3009|AL|F|Daughter|||1|110944 + +3010|NY|St. Lawrence County|Massena town|2227|0|1|Davis|Brain|2986|Alaska|M|Head|||24|110945 +3010|NY|St. Lawrence County|Massena town|2227|0|2|Davis|Viva|2979|California|F|Spouse|||31|110946 + +3010|KY|Knox County|Barbourville city|2228|0|1|Davis|Deangelo|2988|Mississippi|M|Head|||22|110947 +3010|KY|Knox County|Barbourville city|2228|0|2|Davis|Birdie|2988|Pitcairn|F|Spouse|||22|110948 +3010|KY|Knox County|Barbourville city|2228|0|3|Davis|Elfrieda|3001|KY|F|Daughter|||9|110949 +3010|KY|Knox County|Barbourville city|2228|0|4|Davis|Bryce|3005|KY|M|Son|||5|110950 + +3010|KY|Knox County|Barbourville city|2229|0|1|Davis|Brice Luis|2994|Utah|M|Head|||16|110951 +3010|KY|Knox County|Barbourville city|2229|0|2|Davis|Dannie|2990|Texas|F|Spouse|||20|110952 +3010|KY|Knox County|Barbourville city|2229|0|3|Davis|Miguelina|3001|KY|F|Daughter|||9|110953 +3010|KY|Knox County|Barbourville city|2229|0|4|Davis|Norman|3003|KY|M|Son|||7|110954 +3010|KY|Knox County|Barbourville city|2229|0|5|Davis|Florrie Oliva|3005|KY|F|Daughter|||5|110955 +3010|KY|Knox County|Barbourville city|2229|0|6|Davis|Matt|3007|KY|M|Son|||3|110956 + +3010|MS|Pearl River County|Nicholson CDP|2230|0|1|Snow|Efrain|2994|South Dakota|M|Head|||16|110957 +3010|MS|Pearl River County|Nicholson CDP|2230|0|2|Snow|Flossie|2990|New Jersey|F|Spouse|||20|110958 +3010|MS|Pearl River County|Nicholson CDP|2230|0|3|Snow|Earl|3005|MS|M|Son|||5|110959 + +3010|TX|Kendall County|Comfort CDP|2231|0|1|Moraga|Juan|2993|Georgia|M|Head|||17|110960 +3010|TX|Kendall County|Comfort CDP|2231|0|2|Moraga|Nona Lydia|2985|New Mexico|F|Spouse|||25|110961 +3010|TX|Kendall County|Comfort CDP|2231|0|3|Moraga|Isaac|3003|TX|M|Son|||7|110962 +3010|TX|Kendall County|Comfort CDP|2231|0|4|Moraga|Russel|3009|TX|M|Son|||1|110963 + +3010|KS|Cowley County|Cambridge city|2232|0|1|Shatto|Jordan Hassan|2982|Washington|M|Head|||28|110964 +3010|KS|Cowley County|Cambridge city|2232|0|2|Shatto|Georgiann|2985|Louisiana|F|Spouse|||25|110965 +3010|KS|Cowley County|Cambridge city|2232|0|3|Shatto|Juan|3001|KS|M|Son|||9|110966 +3010|KS|Cowley County|Cambridge city|2232|0|4|Shatto|Cristina|3003|KS|F|Daughter|||7|110967 +3010|KS|Cowley County|Cambridge city|2232|0|5|Shatto|Nelia|3005|KS|F|Daughter|||5|110968 +3010|KS|Cowley County|Cambridge city|2232|0|6|Shatto|Sid|3007|KS|M|Son|||3|110969 + +3010|KS|Cowley County|Cambridge city|2233|0|1|Shatto|Brock|2992|Rhode Island|M|Head|||18|110970 +3010|KS|Cowley County|Cambridge city|2233|0|2|Shatto|Rona|2980|Mississippi|F|Spouse|||30|110971 +3010|KS|Cowley County|Cambridge city|2233|0|3|Shatto|Dustin Stewart|3003|KS|M|Son|||7|110972 +3010|KS|Cowley County|Cambridge city|2233|0|4|Shatto|Donella|3005|KS|F|Daughter|||5|110973 +3010|KS|Cowley County|Cambridge city|2233|0|5|Shatto|Maryrose|3009|KS|F|Daughter|||1|110974 + +3010|TX|Hamilton County|Hamilton city|2234|0|1|Purtle|Irwin|2983|Guam|M|Head|||27|110975 +3010|TX|Hamilton County|Hamilton city|2234|0|2|Purtle|Leia Magaret|2992|Florida|F|Spouse|||18|110976 +3010|TX|Hamilton County|Hamilton city|2234|0|3|Purtle|Margart|3001|TX|F|Daughter|||9|110977 +3010|TX|Hamilton County|Hamilton city|2234|0|4|Purtle|Carlita|3003|TX|F|Daughter|||7|110978 +3010|TX|Hamilton County|Hamilton city|2234|0|5|Purtle|Larry|3005|TX|M|Son|||5|110979 +3010|TX|Hamilton County|Hamilton city|2234|0|6|Purtle|Earl|3009|TX|M|Son|||1|110980 + +3010|TX|Hamilton County|Hamilton city|2235|0|1|Purtle|Stanford|2985|New Jersey|M|Head|||25|110981 +3010|TX|Hamilton County|Hamilton city|2235|0|2|Purtle|Kimberli|2987|New Hampshire|F|Spouse|||23|110982 +3010|TX|Hamilton County|Hamilton city|2235|0|3|Purtle|Noah Gregg|3001|TX|M|Son|||9|110983 +3010|TX|Hamilton County|Hamilton city|2235|0|4|Purtle|Towanda|3003|TX|F|Daughter|||7|110984 + +3010|NY|Erie County|Buffalo city|2236|0|1|Cartwright|Will|2985|Colorado|M|Head|||25|110985 +3010|NY|Erie County|Buffalo city|2236|0|2|Cartwright|Bulah|2993|Minnesota|F|Spouse|||17|110986 +3010|NY|Erie County|Buffalo city|2236|0|3|Cartwright|Boris|3009|NY|M|Son|||1|110987 + +3010|MI|Osceola County|Tustin village|2237|0|1|Alamillo|Harley|2993|Arizona|M|Head|||17|110988 +3010|MI|Osceola County|Tustin village|2237|0|2|Alamillo|Devon|2963|Idaho|F|Spouse|||47|110989 +3010|MI|Osceola County|Tustin village|2237|0|3|Alamillo|Rob|3003|MI|M|Son|||7|110990 +3010|MI|Osceola County|Tustin village|2237|0|4|Alamillo|Katy|3005|MI|F|Daughter|||5|110991 +3010|MI|Osceola County|Tustin village|2237|0|5|Alamillo|Gabriel Fritz|3009|MI|M|Son|||1|110992 + +3010|KS|Gove County|Grinnell city|2238|0|1|Hughes|Keven|2989|Maryland|M|Head|||21|110993 +3010|KS|Gove County|Grinnell city|2238|0|2|Hughes|Robbyn|2977|North Carolina|F|Spouse|||33|110994 +3010|KS|Gove County|Grinnell city|2238|0|3|Hughes|Mary|3001|KS|M|Son|||9|110995 +3010|KS|Gove County|Grinnell city|2238|0|4|Hughes|Lonny|3007|KS|M|Son|||3|110996 + +3010|KY|Jefferson County|Lynnview city|2239|0|1|Green|Millard|2987|Greenland|M|Head|||23|110997 +3010|KY|Jefferson County|Lynnview city|2239|0|2|Green|Sudie|2973|Oregon|F|Spouse|||37|110998 +3010|KY|Jefferson County|Lynnview city|2239|0|3|Green|Mark|3001|KY|F|Daughter|||9|110999 + +3010|NH|Rockingham County|Salem town|2240|0|1|Mead|Lindsay|2986|Alabama|M|Head|||24|111000 +3010|NH|Rockingham County|Salem town|2240|0|2|Mead|Maida|2987|Georgia|F|Spouse|||23|111001 +3010|NH|Rockingham County|Salem town|2240|0|3|Mead|Ardis Vinita|3001|NH|F|Daughter|||9|111002 +3010|NH|Rockingham County|Salem town|2240|0|4|Mead|Dorothy|3005|NH|F|Daughter|||5|111003 +3010|NH|Rockingham County|Salem town|2240|0|5|Mead|Demetrius|3007|NH|M|Son|||3|111004 + +3010|OH|Auglaize County|St. Marys city|2241|0|1|Fink|Jessie|2975|Wisconsin|M|Head|||35|111005 +3010|OH|Auglaize County|St. Marys city|2241|0|2|Fink|Clarice|2992|Indiana|F|Spouse|||18|111006 +3010|OH|Auglaize County|St. Marys city|2241|0|3|Fink|Noriko|3003|OH|F|Daughter|||7|111007 +3010|OH|Auglaize County|St. Marys city|2241|0|4|Fink|Charlene|3005|OH|F|Daughter|||5|111008 +3010|OH|Auglaize County|St. Marys city|2241|0|5|Fink|Vernon|3007|OH|F|Daughter|||3|111009 + +3010|PA|Chester County|Coatesville city|2242|0|1|Fink|Abel|2987|Armenia|M|Head|||23|111010 +3010|PA|Chester County|Coatesville city|2242|0|2|Fink|Jettie|2974|Colorado|F|Spouse|||36|111011 +3010|PA|Chester County|Coatesville city|2242|0|3|Fink|Magnolia|3001|PA|F|Daughter|||9|111012 +3010|PA|Chester County|Coatesville city|2242|0|4|Fink|Willow|3005|PA|F|Daughter|||5|111013 +3010|PA|Chester County|Coatesville city|2242|0|5|Fink|Elmo|3007|PA|M|Son|||3|111014 +3010|PA|Chester County|Coatesville city|2242|0|6|Fink|Reginald|3009|PA|M|Son|||1|111015 + +3010|TX|Robertson County|Bremond city|2243|0|1|Fink|Ellsworth Jamar|2993|South Dakota|M|Head|||17|111016 +3010|TX|Robertson County|Bremond city|2243|0|2|Fink|Asha|2985|Zimbabwe|F|Spouse|||25|111017 +3010|TX|Robertson County|Bremond city|2243|0|3|Fink|Rosario|3001|TX|M|Son|||9|111018 +3010|TX|Robertson County|Bremond city|2243|0|4|Fink|Terrell|3003|TX|F|Daughter|||7|111019 +3010|TX|Robertson County|Bremond city|2243|0|5|Fink|Kacie|3007|TX|F|Daughter|||3|111020 + +3010|PA|Cambria County|Daisytown borough|2244|0|1|Assum|Marshall|2980|Texas|M|Head|||30|111021 +3010|PA|Cambria County|Daisytown borough|2244|0|2|Assum|Royce Candie|2989|United States|F|Spouse|||21|111022 +3010|PA|Cambria County|Daisytown borough|2244|0|3|Assum|Noble|3001|PA|M|Son|||9|111023 +3010|PA|Cambria County|Daisytown borough|2244|0|4|Assum|James|3003|PA|M|Son|||7|111024 +3010|PA|Cambria County|Daisytown borough|2244|0|5|Assum|Jule|3005|PA|F|Daughter|||5|111025 +3010|PA|Cambria County|Daisytown borough|2244|0|6|Assum|Maryann|3009|PA|F|Daughter|||1|111026 + +3010|PA|Cambria County|Daisytown borough|2245|0|1|Assum|Johnathon|2986|South Carolina|M|Head|||24|111027 +3010|PA|Cambria County|Daisytown borough|2245|0|2|Assum|Tiny|2990|Georgia|F|Spouse|||20|111028 +3010|PA|Cambria County|Daisytown borough|2245|0|3|Assum|Willian|3001|PA|M|Son|||9|111029 +3010|PA|Cambria County|Daisytown borough|2245|0|4|Assum|Tillie|3003|PA|F|Daughter|||7|111030 +3010|PA|Cambria County|Daisytown borough|2245|0|5|Assum|Danny Raymundo|3005|PA|M|Son|||5|111031 + +3010|NY|Ulster County|Wawarsing town|2246|0|1|Assum|Charles|2990|California|M|Head|||20|111032 +3010|NY|Ulster County|Wawarsing town|2246|0|2|Assum|Andree|2985|Delaware|F|Spouse|||25|111033 +3010|NY|Ulster County|Wawarsing town|2246|0|3|Assum|Moriah Carrol|3005|NY|F|Daughter|||5|111034 +3010|NY|Ulster County|Wawarsing town|2246|0|4|Assum|Kathlene|3007|NY|F|Daughter|||3|111035 + +3010|PA|Cambria County|Daisytown borough|2247|0|1|Assum|Lucien|2994|California|M|Head|||16|111036 +3010|PA|Cambria County|Daisytown borough|2247|0|2|Assum|Pamula Lakiesha|2978|South Dakota|F|Spouse|||32|111037 +3010|PA|Cambria County|Daisytown borough|2247|0|3|Assum|Melynda|3003|PA|F|Daughter|||7|111038 +3010|PA|Cambria County|Daisytown borough|2247|0|4|Assum|Tabatha|3007|PA|F|Daughter|||3|111039 +3010|PA|Cambria County|Daisytown borough|2247|0|5|Assum|Alessandra|3009|PA|F|Daughter|||1|111040 + +3010|PA|Centre County|Philipsburg borough|2248|0|1|Fuller|Peter|2978|Oklahoma|M|Head|||32|111041 +3010|PA|Centre County|Philipsburg borough|2248|0|2|Fuller|Georgianne|2985|Oklahoma|F|Spouse|||25|111042 + +3010|PA|Centre County|Philipsburg borough|2249|0|1|Fuller|Valentin|2986|Slovakia|M|Head|||24|111043 +3010|PA|Centre County|Philipsburg borough|2249|0|2|Fuller|Florene|2993|Utah|F|Spouse|||17|111044 +3010|PA|Centre County|Philipsburg borough|2249|0|3|Fuller|Bob|3003|PA|M|Son|||7|111045 +3010|PA|Centre County|Philipsburg borough|2249|0|4|Fuller|David|3009|PA|M|Son|||1|111046 + +3010|AZ|Yuma County|Fortuna Foothills CDP|2250|0|1|Fuller|Arnulfo|2994|Wisconsin|M|Head|||16|111047 +3010|AZ|Yuma County|Fortuna Foothills CDP|2250|0|2|Fuller|Diann|2985|Vermont|F|Spouse|||25|111048 +3010|AZ|Yuma County|Fortuna Foothills CDP|2250|0|3|Fuller|Dave|3003|AZ|M|Son|||7|111049 +3010|AZ|Yuma County|Fortuna Foothills CDP|2250|0|4|Fuller|Margit|3007|AZ|F|Daughter|||3|111050 + +3010|IA|Jones County|Stone City CDP|2251|0|1|Graves|Loyd|2977|Hawaii|M|Head|||33|111051 +3010|IA|Jones County|Stone City CDP|2251|0|2|Graves|Onie|2980|East Timor|F|Spouse|||30|111052 +3010|IA|Jones County|Stone City CDP|2251|0|3|Graves|Rolf|3003|IA|M|Son|||7|111053 +3010|IA|Jones County|Stone City CDP|2251|0|4|Graves|Edgardo|3009|IA|M|Son|||1|111054 + +3010|NY|Erie County|Alden town|2252|0|1|Hamre|Booker|2972|Kentucky|M|Head|||38|111055 +3010|NY|Erie County|Alden town|2252|0|2|Hamre|Alida|2993|Montana|F|Spouse|||17|111056 +3010|NY|Erie County|Alden town|2252|0|3|Hamre|Lakesha|3003|NY|F|Daughter|||7|111057 +3010|NY|Erie County|Alden town|2252|0|4|Hamre|Monet|3007|NY|F|Daughter|||3|111058 + +3010|AZ|Navajo County|Linden CDP|2253|0|1|Hamre|Shane|2974|California|M|Head|||36|111059 +3010|AZ|Navajo County|Linden CDP|2253|0|2|Hamre|Willette|2986|United States|F|Spouse|||24|111060 +3010|AZ|Navajo County|Linden CDP|2253|0|3|Hamre|Bryon Alden|3001|AZ|M|Son|||9|111061 +3010|AZ|Navajo County|Linden CDP|2253|0|4|Hamre|Sterling|3005|AZ|M|Son|||5|111062 +3010|AZ|Navajo County|Linden CDP|2253|0|5|Hamre|Fausto|3007|AZ|M|Son|||3|111063 +3010|AZ|Navajo County|Linden CDP|2253|0|6|Hamre|Emmett|3009|AZ|M|Son|||1|111064 + +3010|GA|Wayne County|Odum city|2254|0|1|Furtak|Ronnie Mohammed|2991|Congo, The Democratic Republic Of The|M|Head|||19|111065 +3010|GA|Wayne County|Odum city|2254|0|2|Furtak|Becky|2994|Montana|F|Spouse|||16|111066 +3010|GA|Wayne County|Odum city|2254|0|3|Furtak|Jarrod|3001|GA|M|Son|||9|111067 +3010|GA|Wayne County|Odum city|2254|0|4|Furtak|Evita Janiece|3003|GA|F|Daughter|||7|111068 +3010|GA|Wayne County|Odum city|2254|0|5|Furtak|Donny|3007|GA|M|Son|||3|111069 +3010|GA|Wayne County|Odum city|2254|0|6|Furtak|Jovita|3009|GA|F|Daughter|||1|111070 + +3010|IA|Shelby County|Jacksonville CDP|2255|0|1|Smudrick|Rashad|2992|Virginia|M|Head|||18|111071 +3010|IA|Shelby County|Jacksonville CDP|2255|0|2|Smudrick|Georgianne Ronnie|2985|Maine|F|Spouse|||25|111072 +3010|IA|Shelby County|Jacksonville CDP|2255|0|3|Smudrick|Ernie|3001|IA|M|Son|||9|111073 +3010|IA|Shelby County|Jacksonville CDP|2255|0|4|Smudrick|Alesha|3005|IA|F|Daughter|||5|111074 +3010|IA|Shelby County|Jacksonville CDP|2255|0|5|Smudrick|Candida|3007|IA|F|Daughter|||3|111075 +3010|IA|Shelby County|Jacksonville CDP|2255|0|6|Smudrick|Conrad|3009|IA|M|Son|||1|111076 + +3010|HI|Honolulu County|Makaha Valley CDP|2256|0|1|Kriesel|Rosario|2984|Arkansas|M|Head|||26|111077 +3010|HI|Honolulu County|Makaha Valley CDP|2256|0|2|Kriesel|Rebecca|2986|New Mexico|F|Spouse|||24|111078 +3010|HI|Honolulu County|Makaha Valley CDP|2256|0|3|Kriesel|Sheba Loise|3001|HI|F|Daughter|||9|111079 +3010|HI|Honolulu County|Makaha Valley CDP|2256|0|4|Kriesel|Kelley|3005|HI|M|Son|||5|111080 +3010|HI|Honolulu County|Makaha Valley CDP|2256|0|5|Kriesel|Ira|3009|HI|M|Son|||1|111081 + +3010|MA|Suffolk County|Chelsea city|2257|0|1|Roses|Emory|2990|Illinois|M|Head|||20|111082 +3010|MA|Suffolk County|Chelsea city|2257|0|2|Roses|Becky|2992|Iowa|F|Spouse|||18|111083 +3010|MA|Suffolk County|Chelsea city|2257|0|3|Roses|Eloise|3001|MA|F|Daughter|||9|111084 +3010|MA|Suffolk County|Chelsea city|2257|0|4|Roses|Noah|3003|MA|M|Son|||7|111085 +3010|MA|Suffolk County|Chelsea city|2257|0|5|Roses|Essie Jama|3005|MA|F|Daughter|||5|111086 +3010|MA|Suffolk County|Chelsea city|2257|0|6|Roses|Spencer|3007|MA|M|Son|||3|111087 +3010|MA|Suffolk County|Chelsea city|2257|0|7|Roses|Cody Aja|3009|MA|F|Daughter|||1|111088 + +3010|MA|Suffolk County|Chelsea city|2258|0|1|Molyneux|Irvin|2983|Florida|M|Head|||27|111089 +3010|MA|Suffolk County|Chelsea city|2258|0|2|Molyneux|Oralia|2994|Arizona|F|Spouse|||16|111090 +3010|MA|Suffolk County|Chelsea city|2258|0|3|Molyneux|Lesley|3003|MA|M|Son|||7|111091 + +3010|TX|Gonzales County|Waelder city|2259|0|1|Stanton|Sanford|2993|Germany|M|Head|||17|111092 +3010|TX|Gonzales County|Waelder city|2259|0|2|Stanton|Roxy|2991|Nevada|F|Spouse|||19|111093 +3010|TX|Gonzales County|Waelder city|2259|0|3|Stanton|Mike|3007|TX|F|Daughter|||3|111094 +3010|TX|Gonzales County|Waelder city|2259|0|4|Stanton|Gail|3009|TX|M|Son|||1|111095 + +3010|TX|Wise County|Chico city|2260|0|1|Kovach|Alexander|2986|Massachusetts|M|Head|||24|111096 +3010|TX|Wise County|Chico city|2260|0|2|Kovach|Mickey|2980|Pennsylvania|F|Spouse|||30|111097 +3010|TX|Wise County|Chico city|2260|0|3|Kovach|Ocie|3001|TX|F|Daughter|||9|111098 +3010|TX|Wise County|Chico city|2260|0|4|Kovach|Jenni|3003|TX|F|Daughter|||7|111099 +3010|TX|Wise County|Chico city|2260|0|5|Kovach|Leda|3005|TX|F|Daughter|||5|111100 +3010|TX|Wise County|Chico city|2260|0|6|Kovach|Twana|3007|TX|F|Daughter|||3|111101 + +3010|MO|St. Louis County|Twin Oaks village|2261|0|1|Bald|Daryl|2994|Tunisia|M|Head|||16|111102 +3010|MO|St. Louis County|Twin Oaks village|2261|0|2|Bald|Dorene|2992|Utah|F|Spouse|||18|111103 +3010|MO|St. Louis County|Twin Oaks village|2261|0|3|Bald|Rebekah|3001|MO|F|Daughter|||9|111104 +3010|MO|St. Louis County|Twin Oaks village|2261|0|4|Bald|Marlon|3003|MO|M|Son|||7|111105 +3010|MO|St. Louis County|Twin Oaks village|2261|0|5|Bald|Winford Porfirio|3005|MO|M|Son|||5|111106 +3010|MO|St. Louis County|Twin Oaks village|2261|0|6|Bald|Soraya Lavon|3009|MO|F|Daughter|||1|111107 + +3010|TX|Jim Wells County|Westdale CDP|2262|0|1|Toot|Emmett|2976|New Mexico|M|Head|||34|111108 +3010|TX|Jim Wells County|Westdale CDP|2262|0|2|Toot|Novella|2994|Arizona|F|Spouse|||16|111109 +3010|TX|Jim Wells County|Westdale CDP|2262|0|3|Toot|Ivory|3003|TX|F|Daughter|||7|111110 +3010|TX|Jim Wells County|Westdale CDP|2262|0|4|Toot|Raymon Joshua|3005|TX|M|Son|||5|111111 + +3010|MN|Grant County|Herman city|2263|0|1|Toot|Jonathan|2980|Delaware|M|Head|||30|111112 +3010|MN|Grant County|Herman city|2263|0|2|Toot|Nell|2988|Colorado|F|Spouse|||22|111113 +3010|MN|Grant County|Herman city|2263|0|3|Toot|Wilburn|3001|MN|M|Son|||9|111114 +3010|MN|Grant County|Herman city|2263|0|4|Toot|Raphael Roy|3005|MN|M|Son|||5|111115 +3010|MN|Grant County|Herman city|2263|0|5|Toot|Cortney Lakesha|3007|MN|F|Daughter|||3|111116 + +3010|MN|Grant County|Herman city|2264|0|1|Toot|Brooks|2984|Maryland|M|Head|||26|111117 +3010|MN|Grant County|Herman city|2264|0|2|Toot|Joanie|2988|Virginia|F|Spouse|||22|111118 +3010|MN|Grant County|Herman city|2264|0|3|Toot|Clayton|3003|MN|M|Son|||7|111119 +3010|MN|Grant County|Herman city|2264|0|4|Toot|Lorraine|3005|MN|F|Daughter|||5|111120 +3010|MN|Grant County|Herman city|2264|0|5|Toot|Dominique|3007|MN|M|Son|||3|111121 +3010|MN|Grant County|Herman city|2264|0|6|Toot|Burt|3009|MN|M|Son|||1|111122 + +3010|IA|Decatur County|Leon city|2265|0|1|Slowinski|Lou|2980|Michigan|M|Head|||30|111123 +3010|IA|Decatur County|Leon city|2265|0|2|Slowinski|Cythia|2991|Arkansas|F|Spouse|||19|111124 +3010|IA|Decatur County|Leon city|2265|0|3|Slowinski|Casey Margert|3003|IA|F|Daughter|||7|111125 +3010|IA|Decatur County|Leon city|2265|0|4|Slowinski|Tamara Kirstie|3005|IA|F|Daughter|||5|111126 +3010|IA|Decatur County|Leon city|2265|0|5|Slowinski|Wallace Rueben|3007|IA|M|Son|||3|111127 +3010|IA|Decatur County|Leon city|2265|0|6|Slowinski|Zenaida|3009|IA|F|Daughter|||1|111128 + +3010|NY|Onondaga County|Fabius village|2266|0|1|Freeborn|Samual|2977|New York|M|Head|||33|111129 +3010|NY|Onondaga County|Fabius village|2266|0|2|Freeborn|Dora|2993|Arizona|F|Spouse|||17|111130 +3010|NY|Onondaga County|Fabius village|2266|0|3|Freeborn|Elba|3003|NY|F|Daughter|||7|111131 +3010|NY|Onondaga County|Fabius village|2266|0|4|Freeborn|Winfred|3007|NY|M|Son|||3|111132 + +3010|NY|Onondaga County|Fabius village|2267|0|1|Freeborn|Marshall|2983|Michigan|M|Head|||27|111133 +3010|NY|Onondaga County|Fabius village|2267|0|2|Freeborn|Peggie|2990|California|F|Spouse|||20|111134 +3010|NY|Onondaga County|Fabius village|2267|0|3|Freeborn|Sabrina Katie|3001|NY|F|Daughter|||9|111135 +3010|NY|Onondaga County|Fabius village|2267|0|4|Freeborn|Bobbie Alma|3007|NY|F|Daughter|||3|111136 +3010|NY|Onondaga County|Fabius village|2267|0|5|Freeborn|Audrie|3009|NY|F|Daughter|||1|111137 + +3010|NY|Onondaga County|Fabius village|2268|0|1|Freeborn|Erasmo|2989|Rhode Island|M|Head|||21|111138 +3010|NY|Onondaga County|Fabius village|2268|0|2|Freeborn|Sheridan|2994|Morocco|F|Spouse|||16|111139 +3010|NY|Onondaga County|Fabius village|2268|0|3|Freeborn|Carrol An|3001|NY|F|Daughter|||9|111140 +3010|NY|Onondaga County|Fabius village|2268|0|4|Freeborn|Latashia|3003|NY|F|Daughter|||7|111141 +3010|NY|Onondaga County|Fabius village|2268|0|5|Freeborn|Erich|3009|NY|M|Son|||1|111142 + +3010|ME|Washington County|Calais city|2269|0|1|Brisbone|Ignacio|2991|New Hampshire|M|Head|||19|111143 +3010|ME|Washington County|Calais city|2269|0|2|Brisbone|Karren|2993|Montana|F|Spouse|||17|111144 +3010|ME|Washington County|Calais city|2269|0|3|Brisbone|Carmon|3001|ME|F|Daughter|||9|111145 +3010|ME|Washington County|Calais city|2269|0|4|Brisbone|Nita Theressa|3003|ME|F|Daughter|||7|111146 +3010|ME|Washington County|Calais city|2269|0|5|Brisbone|Merle|3005|ME|M|Son|||5|111147 +3010|ME|Washington County|Calais city|2269|0|6|Brisbone|Terrell|3007|ME|M|Son|||3|111148 +3010|ME|Washington County|Calais city|2269|0|7|Brisbone|Andera|3009|ME|F|Daughter|||1|111149 + +3010|LA|St. Mary Parish|Berwick town|2270|0|1|Jasinski|Dana|2972|Tennessee|M|Head|||38|111150 +3010|LA|St. Mary Parish|Berwick town|2270|0|2|Jasinski|Diana|2985|Botswana|F|Spouse|||25|111151 +3010|LA|St. Mary Parish|Berwick town|2270|0|3|Jasinski|Dorsey|3003|LA|M|Son|||7|111152 +3010|LA|St. Mary Parish|Berwick town|2270|0|4|Jasinski|Robby|3005|LA|M|Son|||5|111153 +3010|LA|St. Mary Parish|Berwick town|2270|0|5|Jasinski|Ezekiel|3007|LA|M|Son|||3|111154 +3010|LA|St. Mary Parish|Berwick town|2270|0|6|Jasinski|Edna Hilary|3009|LA|F|Daughter|||1|111155 + +3010|LA|St. Mary Parish|Berwick town|2271|0|1|Jasinski|Elbert|2986|South Dakota|M|Head|||24|111156 +3010|LA|St. Mary Parish|Berwick town|2271|0|2|Jasinski|Contessa|2989|Michigan|F|Spouse|||21|111157 +3010|LA|St. Mary Parish|Berwick town|2271|0|3|Jasinski|Winford Hector|3009|LA|M|Son|||1|111158 + +3010|TX|Cooke County|Lake Kiowa CDP|2272|0|1|Taylor|Garry|2970|Utah|M|Head|||40|111159 +3010|TX|Cooke County|Lake Kiowa CDP|2272|0|2|Taylor|Delora|2985|Kentucky|F|Spouse|||25|111160 +3010|TX|Cooke County|Lake Kiowa CDP|2272|0|3|Taylor|Nila|3001|TX|F|Daughter|||9|111161 +3010|TX|Cooke County|Lake Kiowa CDP|2272|0|4|Taylor|Carroll|3003|TX|M|Son|||7|111162 +3010|TX|Cooke County|Lake Kiowa CDP|2272|0|5|Taylor|Darci|3009|TX|F|Daughter|||1|111163 + +3010|MA|Essex County|Lawrence city|2273|0|1|Taylor|Art|2994|Missouri|M|Head|||16|111164 +3010|MA|Essex County|Lawrence city|2273|0|2|Taylor|Esta|2991|Ohio|F|Spouse|||19|111165 +3010|MA|Essex County|Lawrence city|2273|0|3|Taylor|Val|3001|MA|M|Son|||9|111166 +3010|MA|Essex County|Lawrence city|2273|0|4|Taylor|Alease|3009|MA|F|Daughter|||1|111167 + +3010|MS|Wayne County|Waynesboro city|2274|0|1|Kincaid|Malik|2990|Minnesota|M|Head|||20|111168 +3010|MS|Wayne County|Waynesboro city|2274|0|2|Kincaid|Virginia|2973|Kentucky|F|Spouse|||37|111169 +3010|MS|Wayne County|Waynesboro city|2274|0|3|Kincaid|Carrol|3003|MS|M|Son|||7|111170 +3010|MS|Wayne County|Waynesboro city|2274|0|4|Kincaid|Ruthie|3005|MS|F|Daughter|||5|111171 +3010|MS|Wayne County|Waynesboro city|2274|0|5|Kincaid|Dwight|3007|MS|M|Son|||3|111172 +3010|MS|Wayne County|Waynesboro city|2274|0|6|Kincaid|Gaylord|3009|MS|M|Son|||1|111173 + +3010|MI|Kent County|Sparta village|2275|0|1|Castiglia|Woodrow|2989|Massachusetts|M|Head|||21|111174 +3010|MI|Kent County|Sparta village|2275|0|2|Castiglia|Ruthann|2991|North Carolina|F|Spouse|||19|111175 +3010|MI|Kent County|Sparta village|2275|0|3|Castiglia|Marquitta|3001|MI|F|Daughter|||9|111176 +3010|MI|Kent County|Sparta village|2275|0|4|Castiglia|Taylor|3007|MI|M|Son|||3|111177 +3010|MI|Kent County|Sparta village|2275|0|5|Castiglia|Dolly|3009|MI|F|Daughter|||1|111178 + +3010|MI|Kent County|Sparta village|2276|0|1|Castiglia|Clayton Fermin|2993|Pennsylvania|M|Head|||17|111179 +3010|MI|Kent County|Sparta village|2276|0|2|Castiglia|Cristy|2990|French Polynesia|F|Spouse|||20|111180 +3010|MI|Kent County|Sparta village|2276|0|3|Castiglia|Elvin|3003|MI|M|Son|||7|111181 +3010|MI|Kent County|Sparta village|2276|0|4|Castiglia|Rafael|3005|MI|M|Son|||5|111182 +3010|MI|Kent County|Sparta village|2276|0|5|Castiglia|Velda|3007|MI|F|Daughter|||3|111183 + +3010|OR|Linn County|Waterloo town|2277|0|1|Scott|Douglas Clinton|2989|Delaware|M|Head|||21|111184 +3010|OR|Linn County|Waterloo town|2277|0|2|Scott|Angelita|2985|Vermont|F|Spouse|||25|111185 +3010|OR|Linn County|Waterloo town|2277|0|3|Scott|Fredrick|3001|OR|M|Son|||9|111186 +3010|OR|Linn County|Waterloo town|2277|0|4|Scott|Carlos|3007|OR|M|Son|||3|111187 + +3010|OR|Linn County|Waterloo town|2278|0|1|Scott|Bertram Hipolito|2991|Connecticut|M|Head|||19|111188 +3010|OR|Linn County|Waterloo town|2278|0|2|Scott|Marvis|2991|Rhode Island|F|Spouse|||19|111189 +3010|OR|Linn County|Waterloo town|2278|0|3|Scott|Waneta|3001|OR|F|Daughter|||9|111190 +3010|OR|Linn County|Waterloo town|2278|0|4|Scott|Tandy|3003|OR|F|Daughter|||7|111191 +3010|OR|Linn County|Waterloo town|2278|0|5|Scott|Nelly|3005|OR|F|Daughter|||5|111192 +3010|OR|Linn County|Waterloo town|2278|0|6|Scott|Anika|3009|OR|F|Daughter|||1|111193 + +3010|CA|Plumas County|Graeagle CDP|2279|0|1|Nelson|Tobias|2994|Finland|M|Head|||16|111194 +3010|CA|Plumas County|Graeagle CDP|2279|0|2|Nelson|Ocie|2965|Ohio|F|Spouse|||45|111195 +3010|CA|Plumas County|Graeagle CDP|2279|0|3|Nelson|Ezra Jules|3001|CA|M|Son|||9|111196 +3010|CA|Plumas County|Graeagle CDP|2279|0|4|Nelson|Elke|3003|CA|F|Daughter|||7|111197 +3010|CA|Plumas County|Graeagle CDP|2279|0|5|Nelson|Zackary|3005|CA|M|Son|||5|111198 + +3010|NH|Coos County|Crawfords purchase|2280|0|1|Hyrkas|Dewayne Mac|2993|Florida|M|Head|||17|111199 +3010|NH|Coos County|Crawfords purchase|2280|0|2|Hyrkas|Lanita Armandina|2969|New York|F|Spouse|||41|111200 +3010|NH|Coos County|Crawfords purchase|2280|0|3|Hyrkas|Marcus|3001|NH|M|Son|||9|111201 +3010|NH|Coos County|Crawfords purchase|2280|0|4|Hyrkas|Hue|3005|NH|F|Daughter|||5|111202 +3010|NH|Coos County|Crawfords purchase|2280|0|5|Hyrkas|Bruna|3007|NH|F|Daughter|||3|111203 + +3010|MI|Wexford County|Manton city|2281|0|1|Walkinshaw|Nicolas|2993|Mississippi|M|Head|||17|111204 +3010|MI|Wexford County|Manton city|2281|0|2|Walkinshaw|Karey|2988|Florida|F|Spouse|||22|111205 +3010|MI|Wexford County|Manton city|2281|0|3|Walkinshaw|Lisandra|3003|MI|F|Daughter|||7|111206 +3010|MI|Wexford County|Manton city|2281|0|4|Walkinshaw|Long|3007|MI|M|Son|||3|111207 +3010|MI|Wexford County|Manton city|2281|0|5|Walkinshaw|Mario Abraham|3009|MI|M|Son|||1|111208 + +3010|PA|Centre County|Philipsburg borough|2282|0|1|Prim|Timmy|2976|Saint Helena|M|Head|||34|111209 +3010|PA|Centre County|Philipsburg borough|2282|0|2|Prim|Lulu|2982|Florida|F|Spouse|||28|111210 +3010|PA|Centre County|Philipsburg borough|2282|0|3|Prim|Martin|3001|PA|M|Son|||9|111211 +3010|PA|Centre County|Philipsburg borough|2282|0|4|Prim|Karey|3005|PA|F|Daughter|||5|111212 +3010|PA|Centre County|Philipsburg borough|2282|0|5|Prim|Myesha|3007|PA|F|Daughter|||3|111213 +3010|PA|Centre County|Philipsburg borough|2282|0|6|Prim|Lesli|3009|PA|F|Daughter|||1|111214 + +3010|PA|Centre County|Philipsburg borough|2283|0|1|Prim|Chang|2992|Vermont|M|Head|||18|111215 +3010|PA|Centre County|Philipsburg borough|2283|0|2|Prim|Yolando Karina|2992|New Hampshire|F|Spouse|||18|111216 +3010|PA|Centre County|Philipsburg borough|2283|0|3|Prim|Trevor|3005|PA|M|Son|||5|111217 + +3010|OK|Choctaw County|Sawyer town|2284|0|1|Sells|Jerome|2990|Louisiana|M|Head|||20|111218 +3010|OK|Choctaw County|Sawyer town|2284|0|2|Sells|Joannie|2991|Alaska|F|Spouse|||19|111219 +3010|OK|Choctaw County|Sawyer town|2284|0|3|Sells|Stephenie|3003|OK|F|Daughter|||7|111220 +3010|OK|Choctaw County|Sawyer town|2284|0|4|Sells|Kirby|3005|OK|M|Son|||5|111221 +3010|OK|Choctaw County|Sawyer town|2284|0|5|Sells|Jacinto|3007|OK|M|Son|||3|111222 + +3010|OR|Baker County|Sumpter city|2285|0|1|Krynicki|Elton|2983|Nebraska|M|Head|||27|111223 +3010|OR|Baker County|Sumpter city|2285|0|2|Krynicki|Shella|2986|California|F|Spouse|||24|111224 +3010|OR|Baker County|Sumpter city|2285|0|3|Krynicki|Darwin|3005|OR|M|Son|||5|111225 +3010|OR|Baker County|Sumpter city|2285|0|4|Krynicki|Raye|3007|OR|F|Daughter|||3|111226 + +3010|OR|Baker County|Sumpter city|2286|0|1|Krynicki|Reginald|2991|Georgia|M|Head|||19|111227 +3010|OR|Baker County|Sumpter city|2286|0|2|Krynicki|Angelina|2994|Indiana|F|Spouse|||16|111228 +3010|OR|Baker County|Sumpter city|2286|0|3|Krynicki|Celestine Lettie|3001|OR|F|Daughter|||9|111229 +3010|OR|Baker County|Sumpter city|2286|0|4|Krynicki|Aubrey|3005|OR|M|Son|||5|111230 + +3010|GA|Henry County, Spalding County|Heron Bay CDP|2287|0|1|Peach|Jon|2992|Nevada|M|Head|||18|111231 +3010|GA|Henry County, Spalding County|Heron Bay CDP|2287|0|2|Peach|Milagro Roma|2986|Mississippi|F|Spouse|||24|111232 +3010|GA|Henry County, Spalding County|Heron Bay CDP|2287|0|3|Peach|Christian|3001|GA|F|Daughter|||9|111233 +3010|GA|Henry County, Spalding County|Heron Bay CDP|2287|0|4|Peach|Ngan|3005|GA|F|Daughter|||5|111234 +3010|GA|Henry County, Spalding County|Heron Bay CDP|2287|0|5|Peach|Dion|3009|GA|F|Daughter|||1|111235 + +3010|NJ|Somerset County|North Plainfield borough|2288|0|1|Pickering|Jonathon|2992|Nevada|M|Head|||18|111236 +3010|NJ|Somerset County|North Plainfield borough|2288|0|2|Pickering|Denese|2988|North Dakota|F|Spouse|||22|111237 +3010|NJ|Somerset County|North Plainfield borough|2288|0|3|Pickering|Evelina|3001|NJ|F|Daughter|||9|111238 +3010|NJ|Somerset County|North Plainfield borough|2288|0|4|Pickering|Margene|3007|NJ|F|Daughter|||3|111239 + +3010|OH|Logan County|Quincy village|2289|0|1|Sobon|Joseph|2972|Connecticut|M|Head|||38|111240 +3010|OH|Logan County|Quincy village|2289|0|2|Sobon|Rachal|2990|Maine|F|Spouse|||20|111241 +3010|OH|Logan County|Quincy village|2289|0|3|Sobon|Shanna|3001|OH|F|Daughter|||9|111242 +3010|OH|Logan County|Quincy village|2289|0|4|Sobon|Aleshia|3005|OH|F|Daughter|||5|111243 +3010|OH|Logan County|Quincy village|2289|0|5|Sobon|Jocelyn Raina|3007|OH|F|Daughter|||3|111244 + +3010|OH|Logan County|Quincy village|2290|0|1|Sobon|Waylon|2988|New Jersey|M|Head|||22|111245 +3010|OH|Logan County|Quincy village|2290|0|2|Sobon|Marcelle|2985|Arizona|F|Spouse|||25|111246 +3010|OH|Logan County|Quincy village|2290|0|3|Sobon|Kristan|3005|OH|F|Daughter|||5|111247 +3010|OH|Logan County|Quincy village|2290|0|4|Sobon|Benny|3007|OH|M|Son|||3|111248 + +3010|AZ|Navajo County|Linden CDP|2291|0|1|Sampson|Darryl|2993|Washington|M|Head|||17|111249 +3010|AZ|Navajo County|Linden CDP|2291|0|2|Sampson|Ricarda|2980|Missouri|F|Spouse|||30|111250 +3010|AZ|Navajo County|Linden CDP|2291|0|3|Sampson|Burma|3001|AZ|F|Daughter|||9|111251 +3010|AZ|Navajo County|Linden CDP|2291|0|4|Sampson|Audra|3005|AZ|F|Daughter|||5|111252 +3010|AZ|Navajo County|Linden CDP|2291|0|5|Sampson|Angela|3009|AZ|F|Daughter|||1|111253 + +3010|MN|Fillmore County|Fountain township|2292|0|1|Wray|Garret|2994|New York|M|Head|||16|111254 +3010|MN|Fillmore County|Fountain township|2292|0|2|Wray|Jamika|2994|Ohio|F|Spouse|||16|111255 +3010|MN|Fillmore County|Fountain township|2292|0|3|Wray|Benjamin|3001|MN|M|Son|||9|111256 +3010|MN|Fillmore County|Fountain township|2292|0|4|Wray|Barton|3003|MN|M|Son|||7|111257 +3010|MN|Fillmore County|Fountain township|2292|0|5|Wray|Sang|3005|MN|M|Son|||5|111258 +3010|MN|Fillmore County|Fountain township|2292|0|6|Wray|Bernie|3009|MN|M|Son|||1|111259 + +3010|PA|Armstrong County|Lenape Heights CDP|2293|0|1|Greenhaw|Rosendo|2989|Maine|M|Head|||21|111260 +3010|PA|Armstrong County|Lenape Heights CDP|2293|0|2|Greenhaw|Deon|2991|Maryland|F|Spouse|||19|111261 +3010|PA|Armstrong County|Lenape Heights CDP|2293|0|3|Greenhaw|Mario|3001|PA|M|Son|||9|111262 +3010|PA|Armstrong County|Lenape Heights CDP|2293|0|4|Greenhaw|Mao|3003|PA|F|Daughter|||7|111263 +3010|PA|Armstrong County|Lenape Heights CDP|2293|0|5|Greenhaw|Maryrose|3005|PA|F|Daughter|||5|111264 + +3010|CA|San Bernardino County|Upland city|2294|0|1|Rykert|Stanley|2986|Virginia|M|Head|||24|111265 +3010|CA|San Bernardino County|Upland city|2294|0|2|Rykert|Clementina|2985|Mexico|F|Spouse|||25|111266 +3010|CA|San Bernardino County|Upland city|2294|0|3|Rykert|Ashley|3001|CA|M|Son|||9|111267 +3010|CA|San Bernardino County|Upland city|2294|0|4|Rykert|Cordie|3003|CA|F|Daughter|||7|111268 +3010|CA|San Bernardino County|Upland city|2294|0|5|Rykert|Meaghan|3005|CA|F|Daughter|||5|111269 +3010|CA|San Bernardino County|Upland city|2294|0|6|Rykert|Bari|3009|CA|F|Daughter|||1|111270 + +3010|MI|Marquette County|Humboldt township|2295|0|1|Truman|Roscoe|2985|North Dakota|M|Head|||25|111271 +3010|MI|Marquette County|Humboldt township|2295|0|2|Truman|Teri|2990|New York|F|Spouse|||20|111272 +3010|MI|Marquette County|Humboldt township|2295|0|3|Truman|Cherry Lacey|3001|MI|F|Daughter|||9|111273 +3010|MI|Marquette County|Humboldt township|2295|0|4|Truman|Amina Sherilyn|3005|MI|F|Daughter|||5|111274 +3010|MI|Marquette County|Humboldt township|2295|0|5|Truman|Deeanna|3007|MI|F|Daughter|||3|111275 + +3010|GA|Catoosa County|Ringgold city|2296|0|1|Relic|Marcellus|2989|Argentina|M|Head|||21|111276 +3010|GA|Catoosa County|Ringgold city|2296|0|2|Relic|Delores|2988|Lebanon|F|Spouse|||22|111277 +3010|GA|Catoosa County|Ringgold city|2296|0|3|Relic|Davina|3001|GA|F|Daughter|||9|111278 + +3010|TX|Gonzales County|Waelder city|2297|0|1|Wilhoit|Mervin|2964|Tennessee|M|Head|||46|111279 +3010|TX|Gonzales County|Waelder city|2297|0|2|Wilhoit|Brett|2973|Vermont|F|Spouse|||37|111280 +3010|TX|Gonzales County|Waelder city|2297|0|3|Wilhoit|Wally|3001|TX|M|Son|||9|111281 +3010|TX|Gonzales County|Waelder city|2297|0|4|Wilhoit|Lane|3003|TX|M|Son|||7|111282 + +3010|MT|Cascade County|Great Falls city|2298|0|1|Wilhoit|Nickolas|2994|Wyoming|M|Head|||16|111283 +3010|MT|Cascade County|Great Falls city|2298|0|2|Wilhoit|Silvia|2977|Palau|F|Spouse|||33|111284 +3010|MT|Cascade County|Great Falls city|2298|0|3|Wilhoit|Ryan|3005|MT|M|Son|||5|111285 +3010|MT|Cascade County|Great Falls city|2298|0|4|Wilhoit|Irwin|3007|MT|M|Son|||3|111286 +3010|MT|Cascade County|Great Falls city|2298|0|5|Wilhoit|Shon|3009|MT|M|Son|||1|111287 + +3010|PA|Somerset County|Addison borough|2299|0|1|Womack|Orville|2991|Arizona|M|Head|||19|111288 +3010|PA|Somerset County|Addison borough|2299|0|2|Womack|Kami|2988|Oklahoma|F|Spouse|||22|111289 +3010|PA|Somerset County|Addison borough|2299|0|3|Womack|Valene|3001|PA|F|Daughter|||9|111290 +3010|PA|Somerset County|Addison borough|2299|0|4|Womack|Jamison|3003|PA|M|Son|||7|111291 +3010|PA|Somerset County|Addison borough|2299|0|5|Womack|Casey|3005|PA|M|Son|||5|111292 + +3010|IL|Shelby County|Findlay village|2300|0|1|Tandy|Cody|2992|Ohio|M|Head|||18|111293 +3010|IL|Shelby County|Findlay village|2300|0|2|Tandy|Susan|2992|Indiana|F|Spouse|||18|111294 +3010|IL|Shelby County|Findlay village|2300|0|3|Tandy|Inga|3001|IL|F|Daughter|||9|111295 +3010|IL|Shelby County|Findlay village|2300|0|4|Tandy|Coletta|3003|IL|F|Daughter|||7|111296 +3010|IL|Shelby County|Findlay village|2300|0|5|Tandy|Edmundo|3007|IL|M|Son|||3|111297 +3010|IL|Shelby County|Findlay village|2300|0|6|Tandy|Brett|3009|IL|M|Son|||1|111298 + +3010|WI|Rock County|Avon town|2301|0|1|Davis|Alvaro|2964|Alabama|M|Head|||46|111299 +3010|WI|Rock County|Avon town|2301|0|2|Davis|Florance|2984|California|F|Spouse|||26|111300 +3010|WI|Rock County|Avon town|2301|0|3|Davis|Myrna|3007|WI|F|Daughter|||3|111301 + +3010|HI|Maui County|Waikapu CDP|2302|0|1|Gay|Forrest|2991|New Jersey|M|Head|||19|111302 +3010|HI|Maui County|Waikapu CDP|2302|0|2|Gay|Dulcie|2994|Arkansas|F|Spouse|||16|111303 +3010|HI|Maui County|Waikapu CDP|2302|0|3|Gay|Abbie|3001|HI|F|Daughter|||9|111304 +3010|HI|Maui County|Waikapu CDP|2302|0|4|Gay|Mikel|3003|HI|M|Son|||7|111305 +3010|HI|Maui County|Waikapu CDP|2302|0|5|Gay|Isela|3007|HI|F|Daughter|||3|111306 + +3010|ME|Lincoln County|Louds Island UT|2303|0|1|Sage|Percy Gilbert|2991|Maryland|M|Head|||19|111307 +3010|ME|Lincoln County|Louds Island UT|2303|0|2|Sage|Brittany|2975|Suriname|F|Spouse|||35|111308 +3010|ME|Lincoln County|Louds Island UT|2303|0|3|Sage|Wilfred|3001|ME|M|Son|||9|111309 +3010|ME|Lincoln County|Louds Island UT|2303|0|4|Sage|Alesha Concetta|3003|ME|F|Daughter|||7|111310 +3010|ME|Lincoln County|Louds Island UT|2303|0|5|Sage|Ella|3007|ME|F|Daughter|||3|111311 +3010|ME|Lincoln County|Louds Island UT|2303|0|6|Sage|Leonie|3009|ME|F|Daughter|||1|111312 + +3010|OH|Warren County|Pleasant Plain village|2304|0|1|Oliver|Alfonso|2976|Minnesota|M|Head|||34|111313 +3010|OH|Warren County|Pleasant Plain village|2304|0|2|Oliver|Sheilah|2987|New Mexico|F|Spouse|||23|111314 +3010|OH|Warren County|Pleasant Plain village|2304|0|3|Oliver|Bianca|3001|OH|F|Daughter|||9|111315 +3010|OH|Warren County|Pleasant Plain village|2304|0|4|Oliver|Lamont|3003|OH|M|Son|||7|111316 +3010|OH|Warren County|Pleasant Plain village|2304|0|5|Oliver|Wendie|3005|OH|F|Daughter|||5|111317 +3010|OH|Warren County|Pleasant Plain village|2304|0|6|Oliver|Jacob|3007|OH|M|Son|||3|111318 +3010|OH|Warren County|Pleasant Plain village|2304|0|7|Oliver|Lekisha|3009|OH|F|Daughter|||1|111319 + +3010|OH|Warren County|Pleasant Plain village|2305|0|1|Oliver|Roosevelt|2990|Georgia|M|Head|||20|111320 +3010|OH|Warren County|Pleasant Plain village|2305|0|2|Oliver|Tessie|2993|Utah|F|Spouse|||17|111321 +3010|OH|Warren County|Pleasant Plain village|2305|0|3|Oliver|Kiara|3003|OH|F|Daughter|||7|111322 +3010|OH|Warren County|Pleasant Plain village|2305|0|4|Oliver|Paul|3005|OH|M|Son|||5|111323 + +3010|MI|Huron County|Owendale village|2306|0|1|Rodrigez|Matt|2986|Texas|M|Head|||24|111324 +3010|MI|Huron County|Owendale village|2306|0|2|Rodrigez|Blanche|2990|Louisiana|F|Spouse|||20|111325 +3010|MI|Huron County|Owendale village|2306|0|3|Rodrigez|Cassie|3001|MI|F|Daughter|||9|111326 +3010|MI|Huron County|Owendale village|2306|0|4|Rodrigez|Lonnie Romeo|3003|MI|M|Son|||7|111327 +3010|MI|Huron County|Owendale village|2306|0|5|Rodrigez|Willy|3007|MI|M|Son|||3|111328 +3010|MI|Huron County|Owendale village|2306|0|6|Rodrigez|Grady|3009|MI|M|Son|||1|111329 + +3010|MI|Huron County|Owendale village|2307|0|1|Rodrigez|Nick|2992|Missouri|M|Head|||18|111330 +3010|MI|Huron County|Owendale village|2307|0|2|Rodrigez|Susie|2986|New Hampshire|F|Spouse|||24|111331 +3010|MI|Huron County|Owendale village|2307|0|3|Rodrigez|Keith|3001|MI|M|Son|||9|111332 +3010|MI|Huron County|Owendale village|2307|0|4|Rodrigez|Crystle|3003|MI|F|Daughter|||7|111333 +3010|MI|Huron County|Owendale village|2307|0|5|Rodrigez|Lyndon|3005|MI|M|Son|||5|111334 + +3010|MN|Chippewa County|Maynard city|2308|0|1|Gasiorowski|Micah|2992|South Georgia And The South Sandwich Islands|M|Head|||18|111335 +3010|MN|Chippewa County|Maynard city|2308|0|2|Gasiorowski|Julian|2978|Iowa|F|Spouse|||32|111336 +3010|MN|Chippewa County|Maynard city|2308|0|3|Gasiorowski|Bobby|3003|MN|M|Son|||7|111337 +3010|MN|Chippewa County|Maynard city|2308|0|4|Gasiorowski|Elmer Russ|3005|MN|M|Son|||5|111338 +3010|MN|Chippewa County|Maynard city|2308|0|5|Gasiorowski|Hermelinda|3007|MN|F|Daughter|||3|111339 + +3010|NE|York County|Lushton village|2309|0|1|Marose|Odell|2980|North Dakota|M|Head|||30|111340 +3010|NE|York County|Lushton village|2309|0|2|Marose|Eddie|2990|Indiana|F|Spouse|||20|111341 + +3010|TX|Lubbock County|Slaton city|2310|0|1|Onsurez|Avery|2979|Idaho|M|Head|||31|111342 +3010|TX|Lubbock County|Slaton city|2310|0|2|Onsurez|Marg|2981|New Jersey|F|Spouse|||29|111343 +3010|TX|Lubbock County|Slaton city|2310|0|3|Onsurez|Stasia|3001|TX|F|Daughter|||9|111344 +3010|TX|Lubbock County|Slaton city|2310|0|4|Onsurez|Antone|3003|TX|M|Son|||7|111345 +3010|TX|Lubbock County|Slaton city|2310|0|5|Onsurez|Athena|3009|TX|F|Daughter|||1|111346 + +3010|TX|Lubbock County|Slaton city|2311|0|1|Onsurez|Harland|2981|Vermont|M|Head|||29|111347 +3010|TX|Lubbock County|Slaton city|2311|0|2|Onsurez|Jamee|2993|Fiji|F|Spouse|||17|111348 +3010|TX|Lubbock County|Slaton city|2311|0|3|Onsurez|Oralia|3003|TX|F|Daughter|||7|111349 +3010|TX|Lubbock County|Slaton city|2311|0|4|Onsurez|Jed|3007|TX|M|Son|||3|111350 +3010|TX|Lubbock County|Slaton city|2311|0|5|Onsurez|Buddy|3009|TX|M|Son|||1|111351 + +3010|VA|Smyth County|Atkins CDP|2312|0|1|Erickson|Lenard|2987|Idaho|M|Head|||23|111352 +3010|VA|Smyth County|Atkins CDP|2312|0|2|Erickson|Raylene|2987|United States Minor Outlying Islands|F|Spouse|||23|111353 + +3010|GA|Twiggs County, Wilkinson County|Danville town|2313|0|1|Doxey|Palmer|2983|Arizona|M|Head|||27|111354 +3010|GA|Twiggs County, Wilkinson County|Danville town|2313|0|2|Doxey|Elise|2974|South Carolina|F|Spouse|||36|111355 +3010|GA|Twiggs County, Wilkinson County|Danville town|2313|0|3|Doxey|Aimee|3001|GA|F|Daughter|||9|111356 +3010|GA|Twiggs County, Wilkinson County|Danville town|2313|0|4|Doxey|King|3003|GA|M|Son|||7|111357 +3010|GA|Twiggs County, Wilkinson County|Danville town|2313|0|5|Doxey|Barb|3005|GA|F|Daughter|||5|111358 +3010|GA|Twiggs County, Wilkinson County|Danville town|2313|0|6|Doxey|Kirby|3007|GA|F|Daughter|||3|111359 + +3010|GA|Twiggs County, Wilkinson County|Danville town|2314|0|1|Doxey|Jordan|2993|Idaho|M|Head|||17|111360 +3010|GA|Twiggs County, Wilkinson County|Danville town|2314|0|2|Doxey|Stephenie|2980|Nevada|F|Spouse|||30|111361 +3010|GA|Twiggs County, Wilkinson County|Danville town|2314|0|3|Doxey|Corinne|3001|GA|F|Daughter|||9|111362 +3010|GA|Twiggs County, Wilkinson County|Danville town|2314|0|4|Doxey|Raguel|3003|GA|F|Daughter|||7|111363 +3010|GA|Twiggs County, Wilkinson County|Danville town|2314|0|5|Doxey|Desire|3007|GA|F|Daughter|||3|111364 + +3010|OH|Highland County|Leesburg village|2315|0|1|Smith|Damion|2988|New York|M|Head|||22|111365 +3010|OH|Highland County|Leesburg village|2315|0|2|Smith|Harmony|2986|Macau|F|Spouse|||24|111366 +3010|OH|Highland County|Leesburg village|2315|0|3|Smith|Layla Delores|3003|OH|F|Daughter|||7|111367 +3010|OH|Highland County|Leesburg village|2315|0|4|Smith|Dana|3005|OH|F|Daughter|||5|111368 +3010|OH|Highland County|Leesburg village|2315|0|5|Smith|Cari|3007|OH|F|Daughter|||3|111369 + +3010|KY|Henry County|Campbellsburg city|2316|0|1|Smith|Asa|2992|Delaware|M|Head|||18|111370 +3010|KY|Henry County|Campbellsburg city|2316|0|2|Smith|Maryam|2987|American Samoa|F|Spouse|||23|111371 +3010|KY|Henry County|Campbellsburg city|2316|0|3|Smith|Josette|3001|KY|F|Daughter|||9|111372 +3010|KY|Henry County|Campbellsburg city|2316|0|4|Smith|Sharie|3003|KY|F|Daughter|||7|111373 +3010|KY|Henry County|Campbellsburg city|2316|0|5|Smith|Esmeralda|3007|KY|F|Daughter|||3|111374 + +3010|NY|Broome County|Binghamton city|2317|0|1|Ybanez|Eliseo|2967|Kentucky|M|Head|||43|111375 +3010|NY|Broome County|Binghamton city|2317|0|2|Ybanez|Esther|2986|Maine|F|Spouse|||24|111376 +3010|NY|Broome County|Binghamton city|2317|0|3|Ybanez|Jenniffer Lashaunda|3003|NY|F|Daughter|||7|111377 +3010|NY|Broome County|Binghamton city|2317|0|4|Ybanez|Virgil|3005|NY|M|Son|||5|111378 +3010|NY|Broome County|Binghamton city|2317|0|5|Ybanez|Monroe|3007|NY|M|Son|||3|111379 + +3010|OH|Jefferson County|Richmond village|2318|0|1|Ybanez|Werner|2975|Iowa|M|Head|||35|111380 +3010|OH|Jefferson County|Richmond village|2318|0|2|Ybanez|Alica|2987|Argentina|F|Spouse|||23|111381 +3010|OH|Jefferson County|Richmond village|2318|0|3|Ybanez|Frida|3001|OH|F|Daughter|||9|111382 +3010|OH|Jefferson County|Richmond village|2318|0|4|Ybanez|Denver|3005|OH|M|Son|||5|111383 +3010|OH|Jefferson County|Richmond village|2318|0|5|Ybanez|Tomas|3007|OH|M|Son|||3|111384 +3010|OH|Jefferson County|Richmond village|2318|0|6|Ybanez|Alfredia|3009|OH|F|Daughter|||1|111385 + +3010|IA|Decatur County|Davis City city|2319|0|1|Thompson|Jayson|2992|Utah|M|Head|||18|111386 +3010|IA|Decatur County|Davis City city|2319|0|2|Thompson|Simona|2985|Wyoming|F|Spouse|||25|111387 +3010|IA|Decatur County|Davis City city|2319|0|3|Thompson|Kasey|3005|IA|M|Son|||5|111388 +3010|IA|Decatur County|Davis City city|2319|0|4|Thompson|Alphonse|3007|IA|M|Son|||3|111389 + +3010|CA|Plumas County|Graeagle CDP|2320|0|1|Roelfs|Brenton|2986|Rhode Island|M|Head|||24|111390 +3010|CA|Plumas County|Graeagle CDP|2320|0|2|Roelfs|Vanesa|2980|Texas|F|Spouse|||30|111391 +3010|CA|Plumas County|Graeagle CDP|2320|0|3|Roelfs|Irvin|3003|CA|M|Son|||7|111392 +3010|CA|Plumas County|Graeagle CDP|2320|0|4|Roelfs|Terrilyn|3005|CA|F|Daughter|||5|111393 +3010|CA|Plumas County|Graeagle CDP|2320|0|5|Roelfs|Allen|3009|CA|M|Son|||1|111394 + +3010|NH|Strafford County|Durham CDP|2321|0|1|Jacques|Benton|2992|Arizona|M|Head|||18|111395 +3010|NH|Strafford County|Durham CDP|2321|0|2|Jacques|Lacey|2988|Washington|F|Spouse|||22|111396 +3010|NH|Strafford County|Durham CDP|2321|0|3|Jacques|Sacha|3003|NH|F|Daughter|||7|111397 +3010|NH|Strafford County|Durham CDP|2321|0|4|Jacques|Gay|3005|NH|F|Daughter|||5|111398 +3010|NH|Strafford County|Durham CDP|2321|0|5|Jacques|Susie|3007|NH|F|Daughter|||3|111399 +3010|NH|Strafford County|Durham CDP|2321|0|6|Jacques|Janey|3009|NH|F|Daughter|||1|111400 + +3010|AR|Sebastian County|Barling city|2322|0|1|Armstead|Stevie|2994|Connecticut|M|Head|||16|111401 +3010|AR|Sebastian County|Barling city|2322|0|2|Armstead|Herta Brett|2990|French Southern Territories|F|Spouse|||20|111402 +3010|AR|Sebastian County|Barling city|2322|0|3|Armstead|Tatum|3001|AR|F|Daughter|||9|111403 +3010|AR|Sebastian County|Barling city|2322|0|4|Armstead|Sheba|3003|AR|F|Daughter|||7|111404 +3010|AR|Sebastian County|Barling city|2322|0|5|Armstead|Winston|3007|AR|M|Son|||3|111405 + +3010|SD|Minnehaha County|Baltic city|2323|0|1|Jennifer|Randolph|2991|Rhode Island|M|Head|||19|111406 +3010|SD|Minnehaha County|Baltic city|2323|0|2|Jennifer|Julianna|2969|Kansas|F|Spouse|||41|111407 +3010|SD|Minnehaha County|Baltic city|2323|0|3|Jennifer|Daron|3001|SD|M|Son|||9|111408 +3010|SD|Minnehaha County|Baltic city|2323|0|4|Jennifer|Delicia|3009|SD|F|Daughter|||1|111409 + +3010|KY|Mason County|Dover city|2324|0|1|Faustino|Otto|2980|Kentucky|M|Head|||30|111410 +3010|KY|Mason County|Dover city|2324|0|2|Faustino|Lindsey|2977|South Dakota|F|Spouse|||33|111411 +3010|KY|Mason County|Dover city|2324|0|3|Faustino|Shakira|3001|KY|F|Daughter|||9|111412 +3010|KY|Mason County|Dover city|2324|0|4|Faustino|Garry|3003|KY|M|Son|||7|111413 +3010|KY|Mason County|Dover city|2324|0|5|Faustino|Marcus|3005|KY|M|Son|||5|111414 +3010|KY|Mason County|Dover city|2324|0|6|Faustino|Lucille|3007|KY|F|Daughter|||3|111415 +3010|KY|Mason County|Dover city|2324|0|7|Faustino|Shari|3009|KY|F|Daughter|||1|111416 + +3010|KY|Mason County|Dover city|2325|0|1|Faustino|Norberto|2988|Maine|M|Head|||22|111417 +3010|KY|Mason County|Dover city|2325|0|2|Faustino|Sheree|2985|Washington|F|Spouse|||25|111418 +3010|KY|Mason County|Dover city|2325|0|3|Faustino|Alberto|3001|KY|M|Son|||9|111419 +3010|KY|Mason County|Dover city|2325|0|4|Faustino|Rosita|3003|KY|F|Daughter|||7|111420 +3010|KY|Mason County|Dover city|2325|0|5|Faustino|Agustin|3007|KY|M|Son|||3|111421 +3010|KY|Mason County|Dover city|2325|0|6|Faustino|Guillermo|3009|KY|M|Son|||1|111422 + +3010|VA|Loudoun County|Lansdowne CDP|2326|0|1|Hawbaker|Lanny|2990|New Hampshire|M|Head|||20|111423 +3010|VA|Loudoun County|Lansdowne CDP|2326|0|2|Hawbaker|Cecilia|2987|Guatemala|F|Spouse|||23|111424 +3010|VA|Loudoun County|Lansdowne CDP|2326|0|3|Hawbaker|Jung|3001|VA|F|Daughter|||9|111425 + +3010|WI|Richland County|Willow town|2327|0|1|Armstrong|Tyree|2986|New Jersey|M|Head|||24|111426 +3010|WI|Richland County|Willow town|2327|0|2|Armstrong|Lorene|2987|Idaho|F|Spouse|||23|111427 +3010|WI|Richland County|Willow town|2327|0|3|Armstrong|Joel|3001|WI|M|Son|||9|111428 +3010|WI|Richland County|Willow town|2327|0|4|Armstrong|Linette|3003|WI|F|Daughter|||7|111429 +3010|WI|Richland County|Willow town|2327|0|5|Armstrong|Ok|3005|WI|F|Daughter|||5|111430 +3010|WI|Richland County|Willow town|2327|0|6|Armstrong|Sidney|3009|WI|M|Son|||1|111431 + +3010|AK|Northwest Arctic Borough|Noorvik city|2328|0|1|Treff|Zachary|2993|Iowa|M|Head|||17|111432 +3010|AK|Northwest Arctic Borough|Noorvik city|2328|0|2|Treff|Tianna|2986|Maryland|F|Spouse|||24|111433 +3010|AK|Northwest Arctic Borough|Noorvik city|2328|0|3|Treff|Paul Raeann|3001|AK|F|Daughter|||9|111434 +3010|AK|Northwest Arctic Borough|Noorvik city|2328|0|4|Treff|Elijah Aldo|3003|AK|M|Son|||7|111435 +3010|AK|Northwest Arctic Borough|Noorvik city|2328|0|5|Treff|Dirk|3007|AK|M|Son|||3|111436 +3010|AK|Northwest Arctic Borough|Noorvik city|2328|0|6|Treff|Faith|3009|AK|F|Daughter|||1|111437 + +3010|PA|Erie County|Waterford borough|2329|0|1|Agustine|Robt|2992|Arkansas|M|Head|||18|111438 +3010|PA|Erie County|Waterford borough|2329|0|2|Agustine|Dulcie|2993|Ohio|F|Spouse|||17|111439 +3010|PA|Erie County|Waterford borough|2329|0|3|Agustine|Spencer|3001|PA|M|Son|||9|111440 +3010|PA|Erie County|Waterford borough|2329|0|4|Agustine|Alana|3005|PA|F|Daughter|||5|111441 +3010|PA|Erie County|Waterford borough|2329|0|5|Agustine|Merrill|3009|PA|M|Son|||1|111442 + +3010|NY|Delaware County|Roxbury town|2330|0|1|Binkley|Bradly|2983|Illinois|M|Head|||27|111443 +3010|NY|Delaware County|Roxbury town|2330|0|2|Binkley|Talia|2986|Guatemala|F|Spouse|||24|111444 +3010|NY|Delaware County|Roxbury town|2330|0|3|Binkley|Myong|3003|NY|F|Daughter|||7|111445 +3010|NY|Delaware County|Roxbury town|2330|0|4|Binkley|Eulalia|3005|NY|F|Daughter|||5|111446 +3010|NY|Delaware County|Roxbury town|2330|0|5|Binkley|Hilda|3007|NY|F|Daughter|||3|111447 + +3010|NY|Delaware County|Roxbury town|2331|0|1|Binkley|Dustin|2985|Delaware|M|Head|||25|111448 +3010|NY|Delaware County|Roxbury town|2331|0|2|Binkley|Leonila|2986|Iowa|F|Spouse|||24|111449 +3010|NY|Delaware County|Roxbury town|2331|0|3|Binkley|Sylvester|3005|NY|M|Son|||5|111450 + +3010|PA|Allegheny County|West Mifflin borough|2332|0|1|Vining|Juan|2986|Maine|M|Head|||24|111451 +3010|PA|Allegheny County|West Mifflin borough|2332|0|2|Vining|Layla|2988|Virgin Islands, British|F|Spouse|||22|111452 +3010|PA|Allegheny County|West Mifflin borough|2332|0|3|Vining|Leigha|3001|PA|F|Daughter|||9|111453 +3010|PA|Allegheny County|West Mifflin borough|2332|0|4|Vining|Iliana|3005|PA|F|Daughter|||5|111454 + +3010|WI|St. Croix County|Woodville village|2333|0|1|Vining|Bradly|2992|Michigan|M|Head|||18|111455 +3010|WI|St. Croix County|Woodville village|2333|0|2|Vining|Arletha|2994|Wisconsin|F|Spouse|||16|111456 +3010|WI|St. Croix County|Woodville village|2333|0|3|Vining|Kenneth|3001|WI|M|Son|||9|111457 +3010|WI|St. Croix County|Woodville village|2333|0|4|Vining|Ian|3007|WI|M|Son|||3|111458 +3010|WI|St. Croix County|Woodville village|2333|0|5|Vining|Carli Ardis|3009|WI|F|Daughter|||1|111459 + +3010|PA|Allegheny County|West Mifflin borough|2334|0|1|Vining|Erwin|2994|Idaho|M|Head|||16|111460 +3010|PA|Allegheny County|West Mifflin borough|2334|0|2|Vining|Mariam|2979|Florida|F|Spouse|||31|111461 +3010|PA|Allegheny County|West Mifflin borough|2334|0|3|Vining|Bret|3005|PA|M|Son|||5|111462 +3010|PA|Allegheny County|West Mifflin borough|2334|0|4|Vining|Clarice|3007|PA|F|Daughter|||3|111463 +3010|PA|Allegheny County|West Mifflin borough|2334|0|5|Vining|Dexter|3009|PA|M|Son|||1|111464 + +3010|ND|Ramsey County|Devils Lake city|2335|0|1|Reznicek|Britt|2989|Oklahoma|M|Head|||21|111465 +3010|ND|Ramsey County|Devils Lake city|2335|0|2|Reznicek|Remedios|2988|West Virginia|F|Spouse|||22|111466 +3010|ND|Ramsey County|Devils Lake city|2335|0|3|Reznicek|Sonny|3001|ND|M|Son|||9|111467 +3010|ND|Ramsey County|Devils Lake city|2335|0|4|Reznicek|Gearldine|3003|ND|F|Daughter|||7|111468 +3010|ND|Ramsey County|Devils Lake city|2335|0|5|Reznicek|Carmel|3005|ND|F|Daughter|||5|111469 +3010|ND|Ramsey County|Devils Lake city|2335|0|6|Reznicek|Julio|3009|ND|M|Son|||1|111470 + +3010|PA|Delaware County|Aldan borough|2336|0|1|Kimmins|Jordan|2961|Nevada|M|Head|||49|111471 +3010|PA|Delaware County|Aldan borough|2336|0|2|Kimmins|Blythe Paulette|2987|South Carolina|F|Spouse|||23|111472 +3010|PA|Delaware County|Aldan borough|2336|0|3|Kimmins|Angelique|3001|PA|F|Daughter|||9|111473 +3010|PA|Delaware County|Aldan borough|2336|0|4|Kimmins|Sona|3003|PA|F|Daughter|||7|111474 + +3010|PA|Bucks County|Lower Makefield township|2337|0|1|Taylor|Kris|2968|Costa Rica|M|Head|||42|111475 +3010|PA|Bucks County|Lower Makefield township|2337|0|2|Taylor|Claribel|2974|Iowa|F|Spouse|||36|111476 +3010|PA|Bucks County|Lower Makefield township|2337|0|3|Taylor|Kelle Elly|3001|PA|F|Daughter|||9|111477 +3010|PA|Bucks County|Lower Makefield township|2337|0|4|Taylor|Stacy|3003|PA|M|Son|||7|111478 +3010|PA|Bucks County|Lower Makefield township|2337|0|5|Taylor|Talia|3007|PA|F|Daughter|||3|111479 + +3010|PA|Bucks County|Lower Makefield township|2338|0|1|Taylor|Abraham|2970|Hawaii|M|Head|||40|111480 +3010|PA|Bucks County|Lower Makefield township|2338|0|2|Taylor|Saturnina|2978|Texas|F|Spouse|||32|111481 +3010|PA|Bucks County|Lower Makefield township|2338|0|3|Taylor|Shelli|3005|PA|F|Daughter|||5|111482 +3010|PA|Bucks County|Lower Makefield township|2338|0|4|Taylor|Huong|3007|PA|F|Daughter|||3|111483 +3010|PA|Bucks County|Lower Makefield township|2338|0|5|Taylor|Lola|3009|PA|F|Daughter|||1|111484 + +3010|NY|Montgomery County|Tribes Hill CDP|2339|0|1|Taylor|Cary|2988|United States Minor Outlying Islands|M|Head|||22|111485 +3010|NY|Montgomery County|Tribes Hill CDP|2339|0|2|Taylor|Micheal|2990|Oregon|F|Spouse|||20|111486 +3010|NY|Montgomery County|Tribes Hill CDP|2339|0|3|Taylor|Allan|3003|NY|M|Son|||7|111487 +3010|NY|Montgomery County|Tribes Hill CDP|2339|0|4|Taylor|Arlen|3007|NY|M|Son|||3|111488 + +3010|MN|Meeker County|Collinwood township|2340|0|1|Brum|Franklin|2992|Washington|M|Head|||18|111489 +3010|MN|Meeker County|Collinwood township|2340|0|2|Brum|Zofia|2994|Guyana|F|Spouse|||16|111490 +3010|MN|Meeker County|Collinwood township|2340|0|3|Brum|Jamey|3001|MN|M|Son|||9|111491 +3010|MN|Meeker County|Collinwood township|2340|0|4|Brum|Donald|3003|MN|M|Son|||7|111492 +3010|MN|Meeker County|Collinwood township|2340|0|5|Brum|Daniel|3007|MN|F|Daughter|||3|111493 + +3010|NC|Cleveland County|Kingstown town|2341|0|1|Norrie|Myles|2991|Maryland|M|Head|||19|111494 +3010|NC|Cleveland County|Kingstown town|2341|0|2|Norrie|Cherlyn|2988|Nevada|F|Spouse|||22|111495 +3010|NC|Cleveland County|Kingstown town|2341|0|3|Norrie|Kiyoko|3007|NC|F|Daughter|||3|111496 +3010|NC|Cleveland County|Kingstown town|2341|0|4|Norrie|Kendal|3009|NC|F|Daughter|||1|111497 + +3010|MD|Allegany County|Carlos CDP|2342|0|1|Gustovich|Allan|2993|Maine|M|Head|||17|111498 +3010|MD|Allegany County|Carlos CDP|2342|0|2|Gustovich|Ilse|2990|Texas|F|Spouse|||20|111499 +3010|MD|Allegany County|Carlos CDP|2342|0|3|Gustovich|Betty|3003|MD|F|Daughter|||7|111500 +3010|MD|Allegany County|Carlos CDP|2342|0|4|Gustovich|Joey|3005|MD|M|Son|||5|111501 +3010|MD|Allegany County|Carlos CDP|2342|0|5|Gustovich|Lila|3007|MD|F|Daughter|||3|111502 +3010|MD|Allegany County|Carlos CDP|2342|0|6|Gustovich|Asa|3009|MD|M|Son|||1|111503 + +3010|CA|Humboldt County|Rio Dell city|2343|0|1|Tuttle|Jeremiah|2980|Minnesota|M|Head|||30|111504 +3010|CA|Humboldt County|Rio Dell city|2343|0|2|Tuttle|Chelsey|2992|Washington|F|Spouse|||18|111505 +3010|CA|Humboldt County|Rio Dell city|2343|0|3|Tuttle|Domingo|3005|CA|M|Son|||5|111506 +3010|CA|Humboldt County|Rio Dell city|2343|0|4|Tuttle|Wilfredo|3007|CA|M|Son|||3|111507 +3010|CA|Humboldt County|Rio Dell city|2343|0|5|Tuttle|Nella|3009|CA|F|Daughter|||1|111508 + +3010|NJ|Warren County|Lopatcong Overlook CDP|2344|0|1|Tuttle|Jamie Adolph|2986|Spain|M|Head|||24|111509 +3010|NJ|Warren County|Lopatcong Overlook CDP|2344|0|2|Tuttle|Yvonne|2994|Kansas|F|Spouse|||16|111510 +3010|NJ|Warren County|Lopatcong Overlook CDP|2344|0|3|Tuttle|Jonathon Clifford|3001|NJ|M|Son|||9|111511 +3010|NJ|Warren County|Lopatcong Overlook CDP|2344|0|4|Tuttle|Garth|3003|NJ|M|Son|||7|111512 +3010|NJ|Warren County|Lopatcong Overlook CDP|2344|0|5|Tuttle|Kurtis|3005|NJ|M|Son|||5|111513 + +3010|NH|Coos County|Low and Burbanks grant|2345|0|1|Campagne|Elliot|2990|Togo|M|Head|||20|111514 +3010|NH|Coos County|Low and Burbanks grant|2345|0|2|Campagne|Matilda Germaine|2972|Illinois|F|Spouse|||38|111515 +3010|NH|Coos County|Low and Burbanks grant|2345|0|3|Campagne|Leif|3001|NH|M|Son|||9|111516 +3010|NH|Coos County|Low and Burbanks grant|2345|0|4|Campagne|Preston|3003|NH|M|Son|||7|111517 +3010|NH|Coos County|Low and Burbanks grant|2345|0|5|Campagne|Zoila|3007|NH|F|Daughter|||3|111518 + +3010|NH|Coos County|Low and Burbanks grant|2346|0|1|Campagne|Stanley Tomas|2992|Alabama|M|Head|||18|111519 +3010|NH|Coos County|Low and Burbanks grant|2346|0|2|Campagne|Kate Loura|2981|Vermont|F|Spouse|||29|111520 +3010|NH|Coos County|Low and Burbanks grant|2346|0|3|Campagne|Kareen|3001|NH|F|Daughter|||9|111521 +3010|NH|Coos County|Low and Burbanks grant|2346|0|4|Campagne|Telma Sabina|3003|NH|F|Daughter|||7|111522 +3010|NH|Coos County|Low and Burbanks grant|2346|0|5|Campagne|Branden|3007|NH|M|Son|||3|111523 + +3010|PA|Armstrong County|Lenape Heights CDP|2347|0|1|Desporte|Lynn|2994|Wisconsin|M|Head|||16|111524 +3010|PA|Armstrong County|Lenape Heights CDP|2347|0|2|Desporte|Takako|2985|Michigan|F|Spouse|||25|111525 +3010|PA|Armstrong County|Lenape Heights CDP|2347|0|3|Desporte|Chi|3003|PA|M|Son|||7|111526 +3010|PA|Armstrong County|Lenape Heights CDP|2347|0|4|Desporte|Gianna|3005|PA|F|Daughter|||5|111527 +3010|PA|Armstrong County|Lenape Heights CDP|2347|0|5|Desporte|Faustino|3009|PA|M|Son|||1|111528 + +3010|WA|Skamania County|Carson CDP|2348|0|1|Cline|Tim|2965|Wisconsin|M|Head|||45|111529 +3010|WA|Skamania County|Carson CDP|2348|0|2|Cline|Candie|2990|Indiana|F|Spouse|||20|111530 +3010|WA|Skamania County|Carson CDP|2348|0|3|Cline|Chad|3001|WA|M|Son|||9|111531 +3010|WA|Skamania County|Carson CDP|2348|0|4|Cline|Bobbye|3003|WA|F|Daughter|||7|111532 + +3010|WA|Skamania County|Carson CDP|2349|0|1|Cline|Porfirio|2989|Georgia|M|Head|||21|111533 +3010|WA|Skamania County|Carson CDP|2349|0|2|Cline|Bettyann|2963|Romania|F|Spouse|||47|111534 +3010|WA|Skamania County|Carson CDP|2349|0|3|Cline|Loretta Crissy|3003|WA|F|Daughter|||7|111535 + +3010|MI|Marquette County|Humboldt township|2350|0|1|Cline|Jonas|2993|Senegal|M|Head|||17|111536 +3010|MI|Marquette County|Humboldt township|2350|0|2|Cline|Kim|2973|Indiana|F|Spouse|||37|111537 +3010|MI|Marquette County|Humboldt township|2350|0|3|Cline|Columbus|3001|MI|M|Son|||9|111538 +3010|MI|Marquette County|Humboldt township|2350|0|4|Cline|Jerome|3003|MI|M|Son|||7|111539 +3010|MI|Marquette County|Humboldt township|2350|0|5|Cline|Lavona|3005|MI|F|Daughter|||5|111540 +3010|MI|Marquette County|Humboldt township|2350|0|6|Cline|Glenda|3007|MI|F|Daughter|||3|111541 + +3010|PA|Montgomery County|Schwenksville borough|2351|0|1|Malandruccolo|Erich Wilburn|2981|Kuwait|M|Head|||29|111542 +3010|PA|Montgomery County|Schwenksville borough|2351|0|2|Malandruccolo|Barbie|2993|Senegal|F|Spouse|||17|111543 +3010|PA|Montgomery County|Schwenksville borough|2351|0|3|Malandruccolo|Val|3005|PA|M|Son|||5|111544 +3010|PA|Montgomery County|Schwenksville borough|2351|0|4|Malandruccolo|Damian|3007|PA|M|Son|||3|111545 +3010|PA|Montgomery County|Schwenksville borough|2351|0|5|Malandruccolo|Robby|3009|PA|M|Son|||1|111546 + +3010|UT|Salt Lake County|West Valley City city|2352|0|1|Northcut|John Eldridge|2989|Illinois|M|Head|||21|111547 +3010|UT|Salt Lake County|West Valley City city|2352|0|2|Northcut|Becki|2970|New Jersey|F|Spouse|||40|111548 +3010|UT|Salt Lake County|West Valley City city|2352|0|3|Northcut|Kiera|3003|UT|F|Daughter|||7|111549 +3010|UT|Salt Lake County|West Valley City city|2352|0|4|Northcut|Santos|3005|UT|F|Daughter|||5|111550 +3010|UT|Salt Lake County|West Valley City city|2352|0|5|Northcut|Lemuel|3009|UT|M|Son|||1|111551 + +3010|WI|Ashland County|Mellen city|2353|0|1|Junkins|Thaddeus|2990|Nevada|M|Head|||20|111552 +3010|WI|Ashland County|Mellen city|2353|0|2|Junkins|Kayleen|2986|New Hampshire|F|Spouse|||24|111553 +3010|WI|Ashland County|Mellen city|2353|0|3|Junkins|Coy|3001|WI|M|Son|||9|111554 +3010|WI|Ashland County|Mellen city|2353|0|4|Junkins|Santina Tammera|3003|WI|F|Daughter|||7|111555 + +3010|MI|Marquette County|Republic township|2354|0|1|Wooley|Jeremiah|2967|Tanzania, United Republic Of|M|Head|||43|111556 +3010|MI|Marquette County|Republic township|2354|0|2|Wooley|Annis|2984|Vermont|F|Spouse|||26|111557 +3010|MI|Marquette County|Republic township|2354|0|3|Wooley|Candelaria|3001|MI|F|Daughter|||9|111558 +3010|MI|Marquette County|Republic township|2354|0|4|Wooley|Kristopher|3007|MI|M|Son|||3|111559 +3010|MI|Marquette County|Republic township|2354|0|5|Wooley|Josefine|3009|MI|F|Daughter|||1|111560 + +3010|MI|Marquette County|Republic township|2355|0|1|Wooley|Tyron|2987|Massachusetts|M|Head|||23|111561 +3010|MI|Marquette County|Republic township|2355|0|2|Wooley|Nicole|2986|Washington|F|Spouse|||24|111562 +3010|MI|Marquette County|Republic township|2355|0|3|Wooley|Kyla Lashandra|3001|MI|F|Daughter|||9|111563 +3010|MI|Marquette County|Republic township|2355|0|4|Wooley|Dianna|3005|MI|F|Daughter|||5|111564 + +3010|KS|Labette County|Bartlett city|2356|0|1|Marlowe|Rich|2993|Argentina|M|Head|||17|111565 +3010|KS|Labette County|Bartlett city|2356|0|2|Marlowe|Simona|2988|Iowa|F|Spouse|||22|111566 +3010|KS|Labette County|Bartlett city|2356|0|3|Marlowe|Wilma Tabatha|3003|KS|F|Daughter|||7|111567 +3010|KS|Labette County|Bartlett city|2356|0|4|Marlowe|Marlys Suk|3005|KS|F|Daughter|||5|111568 + +3010|CO|Garfield County|No Name CDP|2357|0|1|Knight|Cedric|2993|Congo|M|Head|||17|111569 +3010|CO|Garfield County|No Name CDP|2357|0|2|Knight|Allyson|2972|Iceland|F|Spouse|||38|111570 +3010|CO|Garfield County|No Name CDP|2357|0|3|Knight|Bryant|3001|CO|M|Son|||9|111571 +3010|CO|Garfield County|No Name CDP|2357|0|4|Knight|Bobby|3007|CO|M|Son|||3|111572 + +3010|AR|Sebastian County|Hackett city|2358|0|1|Miller|Wes|2987|Idaho|M|Head|||23|111573 +3010|AR|Sebastian County|Hackett city|2358|0|2|Miller|Jerica|2987|Missouri|F|Spouse|||23|111574 +3010|AR|Sebastian County|Hackett city|2358|0|3|Miller|Krystina|3003|AR|F|Daughter|||7|111575 +3010|AR|Sebastian County|Hackett city|2358|0|4|Miller|Trinh|3007|AR|F|Daughter|||3|111576 +3010|AR|Sebastian County|Hackett city|2358|0|5|Miller|Dannette|3009|AR|F|Daughter|||1|111577 + +3010|NY|Schenectady County|Rotterdam CDP|2359|0|1|Miller|Ross|2989|Arizona|M|Head|||21|111578 +3010|NY|Schenectady County|Rotterdam CDP|2359|0|2|Miller|Anja|2989|Mayotte|F|Spouse|||21|111579 +3010|NY|Schenectady County|Rotterdam CDP|2359|0|3|Miller|Zina|3005|NY|F|Daughter|||5|111580 +3010|NY|Schenectady County|Rotterdam CDP|2359|0|4|Miller|Philip|3009|NY|M|Son|||1|111581 + +3010|KS|Barton County|Olmitz city|2360|0|1|Arroliga|Jeremy|2968|South Dakota|M|Head|||42|111582 +3010|KS|Barton County|Olmitz city|2360|0|2|Arroliga|Peter|2974|Minnesota|F|Spouse|||36|111583 +3010|KS|Barton County|Olmitz city|2360|0|3|Arroliga|Reginald|3001|KS|M|Son|||9|111584 +3010|KS|Barton County|Olmitz city|2360|0|4|Arroliga|Lamar|3005|KS|M|Son|||5|111585 +3010|KS|Barton County|Olmitz city|2360|0|5|Arroliga|Les|3009|KS|M|Son|||1|111586 + +3010|KS|Barton County|Olmitz city|2361|0|1|Arroliga|Gilbert Clement|2972|West Virginia|M|Head|||38|111587 +3010|KS|Barton County|Olmitz city|2361|0|2|Arroliga|Adelia|2975|Russian Federation|F|Spouse|||35|111588 +3010|KS|Barton County|Olmitz city|2361|0|3|Arroliga|Irwin Jimmy|3003|KS|M|Son|||7|111589 +3010|KS|Barton County|Olmitz city|2361|0|4|Arroliga|Ariel|3005|KS|M|Son|||5|111590 + +3010|SD|Minnehaha County|Pine Lakes Addition CDP|2362|0|1|Iorio|Cornell|2978|New York|M|Head|||32|111591 +3010|SD|Minnehaha County|Pine Lakes Addition CDP|2362|0|2|Iorio|Breana|2985|Virginia|F|Spouse|||25|111592 +3010|SD|Minnehaha County|Pine Lakes Addition CDP|2362|0|3|Iorio|Genie|3001|SD|F|Daughter|||9|111593 +3010|SD|Minnehaha County|Pine Lakes Addition CDP|2362|0|4|Iorio|Mara|3003|SD|F|Daughter|||7|111594 +3010|SD|Minnehaha County|Pine Lakes Addition CDP|2362|0|5|Iorio|Nakisha|3007|SD|F|Daughter|||3|111595 +3010|SD|Minnehaha County|Pine Lakes Addition CDP|2362|0|6|Iorio|Clifford|3009|SD|M|Son|||1|111596 + +3010|OH|Warren County|Pleasant Plain village|2363|0|1|Iorio|Brenton|2986|Nebraska|M|Head|||24|111597 +3010|OH|Warren County|Pleasant Plain village|2363|0|2|Iorio|Alia|2978|Benin|F|Spouse|||32|111598 +3010|OH|Warren County|Pleasant Plain village|2363|0|3|Iorio|Melina|3005|OH|F|Daughter|||5|111599 +3010|OH|Warren County|Pleasant Plain village|2363|0|4|Iorio|Cordia|3007|OH|F|Daughter|||3|111600 + +3010|NY|Columbia County|Greenport town|2364|0|1|Smith|Nathanial|2984|Missouri|M|Head|||26|111601 +3010|NY|Columbia County|Greenport town|2364|0|2|Smith|Raylene|2982|Utah|F|Spouse|||28|111602 +3010|NY|Columbia County|Greenport town|2364|0|3|Smith|Al Quinn|3001|NY|M|Son|||9|111603 +3010|NY|Columbia County|Greenport town|2364|0|4|Smith|Margret|3005|NY|F|Daughter|||5|111604 +3010|NY|Columbia County|Greenport town|2364|0|5|Smith|Cornelia|3007|NY|F|Daughter|||3|111605 +3010|NY|Columbia County|Greenport town|2364|0|6|Smith|Tim|3009|NY|M|Son|||1|111606 + +3010|TX|Jim Wells County|Rancho Alegre CDP|2365|0|1|Smith|Abdul|2992|South Carolina|M|Head|||18|111607 +3010|TX|Jim Wells County|Rancho Alegre CDP|2365|0|2|Smith|Ginny|2994|Connecticut|F|Spouse|||16|111608 +3010|TX|Jim Wells County|Rancho Alegre CDP|2365|0|3|Smith|Paul|3005|TX|M|Son|||5|111609 + +3010|OH|Warren County|Five Points CDP|2366|0|1|Davis|Cordell Jeff|2993|Montana|M|Head|||17|111610 +3010|OH|Warren County|Five Points CDP|2366|0|2|Davis|Jodee|2972|Malaysia|F|Spouse|||38|111611 +3010|OH|Warren County|Five Points CDP|2366|0|3|Davis|Larry|3003|OH|M|Son|||7|111612 +3010|OH|Warren County|Five Points CDP|2366|0|4|Davis|Jeffery|3005|OH|M|Son|||5|111613 +3010|OH|Warren County|Five Points CDP|2366|0|5|Davis|Ike|3007|OH|M|Son|||3|111614 + +3010|KS|Osage County|Olivet city|2367|0|1|Odom|Tristan|2988|Maryland|M|Head|||22|111615 +3010|KS|Osage County|Olivet city|2367|0|2|Odom|Lucina|2987|Massachusetts|F|Spouse|||23|111616 +3010|KS|Osage County|Olivet city|2367|0|3|Odom|Virgil|3001|KS|M|Son|||9|111617 +3010|KS|Osage County|Olivet city|2367|0|4|Odom|Maxima|3005|KS|F|Daughter|||5|111618 +3010|KS|Osage County|Olivet city|2367|0|5|Odom|Lanette|3007|KS|F|Daughter|||3|111619 + +3010|MO|Nodaway County|Maryville city|2368|0|1|Mcafee|Luther|2990|Hawaii|M|Head|||20|111620 +3010|MO|Nodaway County|Maryville city|2368|0|2|Mcafee|Edda|2993|Monaco|F|Spouse|||17|111621 +3010|MO|Nodaway County|Maryville city|2368|0|3|Mcafee|Kyung Susie|3001|MO|F|Daughter|||9|111622 +3010|MO|Nodaway County|Maryville city|2368|0|4|Mcafee|Valeria|3003|MO|F|Daughter|||7|111623 +3010|MO|Nodaway County|Maryville city|2368|0|5|Mcafee|Setsuko|3005|MO|F|Daughter|||5|111624 +3010|MO|Nodaway County|Maryville city|2368|0|6|Mcafee|Logan|3007|MO|F|Daughter|||3|111625 +3010|MO|Nodaway County|Maryville city|2368|0|7|Mcafee|Roderick|3009|MO|M|Son|||1|111626 + +3010|MI|Baraga County|Spurr township|2369|0|1|Roddey|Harland Darwin|2994|Alaska|M|Head|||16|111627 +3010|MI|Baraga County|Spurr township|2369|0|2|Roddey|Marlena|2969|Tennessee|F|Spouse|||41|111628 +3010|MI|Baraga County|Spurr township|2369|0|3|Roddey|Kathline|3003|MI|F|Daughter|||7|111629 +3010|MI|Baraga County|Spurr township|2369|0|4|Roddey|Bo Elmo|3005|MI|M|Son|||5|111630 +3010|MI|Baraga County|Spurr township|2369|0|5|Roddey|Angelo|3007|MI|M|Son|||3|111631 + +3010|WI|Wood County|Biron village|2370|0|1|Steele|Matt Chance|2991|Illinois|M|Head|||19|111632 +3010|WI|Wood County|Biron village|2370|0|2|Steele|Somer Michiko|2991|Kansas|F|Spouse|||19|111633 +3010|WI|Wood County|Biron village|2370|0|3|Steele|Lani|3003|WI|F|Daughter|||7|111634 +3010|WI|Wood County|Biron village|2370|0|4|Steele|Benita|3007|WI|F|Daughter|||3|111635 +3010|WI|Wood County|Biron village|2370|0|5|Steele|Alyce Tyesha|3009|WI|F|Daughter|||1|111636 + +3010|NY|Ontario County|Bloomfield village|2371|0|1|Inzano|Rosario|2985|Tokelau|M|Head|||25|111637 +3010|NY|Ontario County|Bloomfield village|2371|0|2|Inzano|Caterina|2987|Arkansas|F|Spouse|||23|111638 +3010|NY|Ontario County|Bloomfield village|2371|0|3|Inzano|Bernard|3001|NY|M|Son|||9|111639 +3010|NY|Ontario County|Bloomfield village|2371|0|4|Inzano|Clay Emery|3003|NY|M|Son|||7|111640 +3010|NY|Ontario County|Bloomfield village|2371|0|5|Inzano|Libbie|3007|NY|F|Daughter|||3|111641 + +3010|TN|Grundy County|Palmer town|2372|0|1|Inguardsen|Guillermo|2988|Nevada|M|Head|||22|111642 +3010|TN|Grundy County|Palmer town|2372|0|2|Inguardsen|Sage|2989|Tajikistan|F|Spouse|||21|111643 +3010|TN|Grundy County|Palmer town|2372|0|3|Inguardsen|Lydia|3001|TN|F|Daughter|||9|111644 +3010|TN|Grundy County|Palmer town|2372|0|4|Inguardsen|Gregg|3003|TN|M|Son|||7|111645 + +3010|IL|Christian County|Assumption city|2373|0|1|Faaita|Norris|2982|Hawaii|M|Head|||28|111646 +3010|IL|Christian County|Assumption city|2373|0|2|Faaita|Elba|2992|Wisconsin|F|Spouse|||18|111647 + +3010|PA|Allegheny County|Mount Oliver borough|2374|0|1|Faaita|Desmond|2988|Illinois|M|Head|||22|111648 +3010|PA|Allegheny County|Mount Oliver borough|2374|0|2|Faaita|Dollie|2986|Connecticut|F|Spouse|||24|111649 +3010|PA|Allegheny County|Mount Oliver borough|2374|0|3|Faaita|Cristie|3003|PA|F|Daughter|||7|111650 +3010|PA|Allegheny County|Mount Oliver borough|2374|0|4|Faaita|Eleanor|3005|PA|F|Daughter|||5|111651 +3010|PA|Allegheny County|Mount Oliver borough|2374|0|5|Faaita|Weldon|3007|PA|M|Son|||3|111652 + +3010|PA|Allegheny County|Mount Oliver borough|2375|0|1|Faaita|Milan|2990|Tennessee|M|Head|||20|111653 +3010|PA|Allegheny County|Mount Oliver borough|2375|0|2|Faaita|Jacqulyn|2987|Kentucky|F|Spouse|||23|111654 +3010|PA|Allegheny County|Mount Oliver borough|2375|0|3|Faaita|Young Hilton|3001|PA|M|Son|||9|111655 +3010|PA|Allegheny County|Mount Oliver borough|2375|0|4|Faaita|Mauricio|3003|PA|M|Son|||7|111656 +3010|PA|Allegheny County|Mount Oliver borough|2375|0|5|Faaita|Thaddeus|3009|PA|M|Son|||1|111657 + +3010|WI|Rusk County|Conrath village|2376|0|1|Scocca|Johnathan Louie|2992|Wyoming|M|Head|||18|111658 +3010|WI|Rusk County|Conrath village|2376|0|2|Scocca|Aleida|2988|Uruguay|F|Spouse|||22|111659 +3010|WI|Rusk County|Conrath village|2376|0|3|Scocca|Wilson|3007|WI|M|Son|||3|111660 + +3010|CA|Imperial County|Calexico city|2377|0|1|Dennis|Long|2986|Illinois|M|Head|||24|111661 +3010|CA|Imperial County|Calexico city|2377|0|2|Dennis|Margarette|2988|Guadeloupe|F|Spouse|||22|111662 +3010|CA|Imperial County|Calexico city|2377|0|3|Dennis|Wilfred|3003|CA|M|Son|||7|111663 +3010|CA|Imperial County|Calexico city|2377|0|4|Dennis|Eddie|3005|CA|M|Son|||5|111664 +3010|CA|Imperial County|Calexico city|2377|0|5|Dennis|Lincoln|3009|CA|M|Son|||1|111665 + +3010|WI|Portage County|Sharon town|2378|0|1|Werma|Abdul|2990|Ohio|M|Head|||20|111666 +3010|WI|Portage County|Sharon town|2378|0|2|Werma|Nieves|2985|Haiti|F|Spouse|||25|111667 +3010|WI|Portage County|Sharon town|2378|0|3|Werma|Grant|3001|WI|M|Son|||9|111668 +3010|WI|Portage County|Sharon town|2378|0|4|Werma|Luanne|3005|WI|F|Daughter|||5|111669 + +3010|WI|Portage County|Sharon town|2379|0|1|Werma|Arnulfo|2994|Georgia|M|Head|||16|111670 +3010|WI|Portage County|Sharon town|2379|0|2|Werma|Laree|2993|Idaho|F|Spouse|||17|111671 +3010|WI|Portage County|Sharon town|2379|0|3|Werma|Marjory|3001|WI|F|Daughter|||9|111672 +3010|WI|Portage County|Sharon town|2379|0|4|Werma|Annita|3003|WI|F|Daughter|||7|111673 + +3010|MN|Clay County|Baker CDP|2380|0|1|Bertsche|Claude|2987|Rhode Island|M|Head|||23|111674 +3010|MN|Clay County|Baker CDP|2380|0|2|Bertsche|Rana Tracy|2992|Connecticut|F|Spouse|||18|111675 +3010|MN|Clay County|Baker CDP|2380|0|3|Bertsche|Sam|3003|MN|M|Son|||7|111676 +3010|MN|Clay County|Baker CDP|2380|0|4|Bertsche|Jonah|3005|MN|M|Son|||5|111677 +3010|MN|Clay County|Baker CDP|2380|0|5|Bertsche|Eliza|3007|MN|F|Daughter|||3|111678 +3010|MN|Clay County|Baker CDP|2380|0|6|Bertsche|Rashad|3009|MN|M|Son|||1|111679 + +3010|ND|Logan County|Fredonia city|2381|0|1|Bertsche|Doyle|2989|Jamaica|M|Head|||21|111680 +3010|ND|Logan County|Fredonia city|2381|0|2|Bertsche|Sandee Nakita|2985|Maryland|F|Spouse|||25|111681 +3010|ND|Logan County|Fredonia city|2381|0|3|Bertsche|Rhea|3003|ND|F|Daughter|||7|111682 +3010|ND|Logan County|Fredonia city|2381|0|4|Bertsche|Josefine Leatha|3007|ND|F|Daughter|||3|111683 +3010|ND|Logan County|Fredonia city|2381|0|5|Bertsche|Azucena|3009|ND|F|Daughter|||1|111684 + +3010|CT|Tolland County|Rockville CDP|2382|0|1|Buckett|Eli|2978|Mississippi|M|Head|||32|111685 +3010|CT|Tolland County|Rockville CDP|2382|0|2|Buckett|Particia Tena|2992|California|F|Spouse|||18|111686 +3010|CT|Tolland County|Rockville CDP|2382|0|3|Buckett|Gertrud|3005|CT|F|Daughter|||5|111687 +3010|CT|Tolland County|Rockville CDP|2382|0|4|Buckett|Sabra|3007|CT|F|Daughter|||3|111688 +3010|CT|Tolland County|Rockville CDP|2382|0|5|Buckett|Benny|3009|CT|M|Son|||1|111689 + +3010|CT|Tolland County|Rockville CDP|2383|0|1|Buckett|Dane|2994|Burkina Faso|M|Head|||16|111690 +3010|CT|Tolland County|Rockville CDP|2383|0|2|Buckett|Monet|2994|Wisconsin|F|Spouse|||16|111691 +3010|CT|Tolland County|Rockville CDP|2383|0|3|Buckett|Rebecka|3001|CT|F|Daughter|||9|111692 +3010|CT|Tolland County|Rockville CDP|2383|0|4|Buckett|Nanci|3003|CT|F|Daughter|||7|111693 +3010|CT|Tolland County|Rockville CDP|2383|0|5|Buckett|Maryellen|3005|CT|F|Daughter|||5|111694 + +3010|IA|Worth County|Northwood city|2384|0|1|Levitz|Von|2986|Delaware|M|Head|||24|111695 +3010|IA|Worth County|Northwood city|2384|0|2|Levitz|Svetlana Zoila|2992|Kansas|F|Spouse|||18|111696 +3010|IA|Worth County|Northwood city|2384|0|3|Levitz|Bruno Bernardo|3001|IA|M|Son|||9|111697 +3010|IA|Worth County|Northwood city|2384|0|4|Levitz|Stephen|3003|IA|M|Son|||7|111698 +3010|IA|Worth County|Northwood city|2384|0|5|Levitz|Barry|3009|IA|M|Son|||1|111699 + +3010|VT|Orleans County|Orleans village|2385|0|1|Carleton|Jude|2968|Massachusetts|M|Head|||42|111700 +3010|VT|Orleans County|Orleans village|2385|0|2|Carleton|Min Lillie|2980|Florida|F|Spouse|||30|111701 +3010|VT|Orleans County|Orleans village|2385|0|3|Carleton|Belen|3001|VT|F|Daughter|||9|111702 +3010|VT|Orleans County|Orleans village|2385|0|4|Carleton|Asa|3005|VT|M|Son|||5|111703 +3010|VT|Orleans County|Orleans village|2385|0|5|Carleton|Celina Tamara|3009|VT|F|Daughter|||1|111704 + +3010|IL|Cook County, Lake County|Palatine village|2386|0|1|Carleton|Armando|2984|Oklahoma|M|Head|||26|111705 +3010|IL|Cook County, Lake County|Palatine village|2386|0|2|Carleton|Kortney|2990|South Carolina|F|Spouse|||20|111706 +3010|IL|Cook County, Lake County|Palatine village|2386|0|3|Carleton|Ashley|3003|IL|M|Son|||7|111707 +3010|IL|Cook County, Lake County|Palatine village|2386|0|4|Carleton|Blake Filiberto|3005|IL|M|Son|||5|111708 +3010|IL|Cook County, Lake County|Palatine village|2386|0|5|Carleton|Coleman|3007|IL|M|Son|||3|111709 + +3010|PA|Erie County|Waterford borough|2387|0|1|Krah|Tristan|2974|Missouri|M|Head|||36|111710 +3010|PA|Erie County|Waterford borough|2387|0|2|Krah|Krystle|2990|Maine|F|Spouse|||20|111711 +3010|PA|Erie County|Waterford borough|2387|0|3|Krah|Yasuko|3005|PA|F|Daughter|||5|111712 +3010|PA|Erie County|Waterford borough|2387|0|4|Krah|Ramon|3009|PA|M|Son|||1|111713 + +3010|NJ|Hunterdon County|Milford borough|2388|0|1|Gallager|Bud Vito|2992|Pennsylvania|M|Head|||18|111714 +3010|NJ|Hunterdon County|Milford borough|2388|0|2|Gallager|Hellen|2990|South Dakota|F|Spouse|||20|111715 +3010|NJ|Hunterdon County|Milford borough|2388|0|3|Gallager|Dana|3003|NJ|M|Son|||7|111716 +3010|NJ|Hunterdon County|Milford borough|2388|0|4|Gallager|Franklyn|3007|NJ|M|Son|||3|111717 +3010|NJ|Hunterdon County|Milford borough|2388|0|5|Gallager|Christian Sean|3009|NJ|M|Son|||1|111718 + +3010|NM|McKinley County|Yah-ta-hey CDP|2389|0|1|Sobol|Warner|2992|Nevada|M|Head|||18|111719 +3010|NM|McKinley County|Yah-ta-hey CDP|2389|0|2|Sobol|Agatha|2993|Colorado|F|Spouse|||17|111720 +3010|NM|McKinley County|Yah-ta-hey CDP|2389|0|3|Sobol|Lasandra|3001|NM|F|Daughter|||9|111721 +3010|NM|McKinley County|Yah-ta-hey CDP|2389|0|4|Sobol|Travis|3003|NM|M|Son|||7|111722 + +3010|OH|Hamilton County|St. Bernard city|2390|0|1|Molloy|Hollis|2989|Svalbard And Jan Mayen|M|Head|||21|111723 +3010|OH|Hamilton County|St. Bernard city|2390|0|2|Molloy|Ena|2989|Maine|F|Spouse|||21|111724 +3010|OH|Hamilton County|St. Bernard city|2390|0|3|Molloy|Ruthanne|3005|OH|F|Daughter|||5|111725 + +3010|TX|DeWitt County, Lavaca County|Yoakum city|2391|0|1|Smutnick|Wilson|2974|Pennsylvania|M|Head|||36|111726 +3010|TX|DeWitt County, Lavaca County|Yoakum city|2391|0|2|Smutnick|Velva|2991|Idaho|F|Spouse|||19|111727 +3010|TX|DeWitt County, Lavaca County|Yoakum city|2391|0|3|Smutnick|Duane|3001|TX|M|Son|||9|111728 +3010|TX|DeWitt County, Lavaca County|Yoakum city|2391|0|4|Smutnick|Junior|3003|TX|M|Son|||7|111729 +3010|TX|DeWitt County, Lavaca County|Yoakum city|2391|0|5|Smutnick|Eleanor|3005|TX|F|Daughter|||5|111730 +3010|TX|DeWitt County, Lavaca County|Yoakum city|2391|0|6|Smutnick|Anderson|3009|TX|M|Son|||1|111731 + +3010|MN|Benton County, Morrison County|Royalton city|2392|0|1|Zempel|Sang|2988|Idaho|M|Head|||22|111732 +3010|MN|Benton County, Morrison County|Royalton city|2392|0|2|Zempel|Lindsy Wanita|2979|Louisiana|F|Spouse|||31|111733 +3010|MN|Benton County, Morrison County|Royalton city|2392|0|3|Zempel|Jeramy|3001|MN|M|Son|||9|111734 +3010|MN|Benton County, Morrison County|Royalton city|2392|0|4|Zempel|Cristopher|3003|MN|M|Son|||7|111735 +3010|MN|Benton County, Morrison County|Royalton city|2392|0|5|Zempel|Freeman|3005|MN|M|Son|||5|111736 +3010|MN|Benton County, Morrison County|Royalton city|2392|0|6|Zempel|Stephani Cierra|3007|MN|F|Daughter|||3|111737 +3010|MN|Benton County, Morrison County|Royalton city|2392|0|7|Zempel|Madelyn|3009|MN|F|Daughter|||1|111738 + +3010|MN|Wright County|Annandale city|2393|0|1|Clubs|Luigi|2987|Hawaii|M|Head|||23|111739 +3010|MN|Wright County|Annandale city|2393|0|2|Clubs|Oralia|2993|Massachusetts|F|Spouse|||17|111740 +3010|MN|Wright County|Annandale city|2393|0|3|Clubs|Asuncion|3001|MN|F|Daughter|||9|111741 +3010|MN|Wright County|Annandale city|2393|0|4|Clubs|Russell|3009|MN|M|Son|||1|111742 + +3010|WI|Wood County|Port Edwards village|2394|0|1|Accornero|Newton Alejandro|2989|South Dakota|M|Head|||21|111743 +3010|WI|Wood County|Port Edwards village|2394|0|2|Accornero|Gabriela|2977|Nevada|F|Spouse|||33|111744 +3010|WI|Wood County|Port Edwards village|2394|0|3|Accornero|Buster|3001|WI|M|Son|||9|111745 +3010|WI|Wood County|Port Edwards village|2394|0|4|Accornero|Mac|3005|WI|M|Son|||5|111746 +3010|WI|Wood County|Port Edwards village|2394|0|5|Accornero|Dorothy Hilda|3007|WI|F|Daughter|||3|111747 +3010|WI|Wood County|Port Edwards village|2394|0|6|Accornero|Dorian|3009|WI|F|Daughter|||1|111748 + +3010|ND|Ramsey County|Devils Lake city|2395|0|1|Moan|Clair|2985|Ethiopia|M|Head|||25|111749 +3010|ND|Ramsey County|Devils Lake city|2395|0|2|Moan|Vella|2993|Norway|F|Spouse|||17|111750 +3010|ND|Ramsey County|Devils Lake city|2395|0|3|Moan|Son|3001|ND|F|Daughter|||9|111751 +3010|ND|Ramsey County|Devils Lake city|2395|0|4|Moan|Reinaldo Bryon|3007|ND|M|Son|||3|111752 +3010|ND|Ramsey County|Devils Lake city|2395|0|5|Moan|Eusebio|3009|ND|M|Son|||1|111753 + +3010|MN|Clay County|Georgetown township|2396|0|1|Storton|Chadwick|2994|Georgia|M|Head|||16|111754 +3010|MN|Clay County|Georgetown township|2396|0|2|Storton|Ena|2959|Wisconsin|F|Spouse|||51|111755 +3010|MN|Clay County|Georgetown township|2396|0|3|Storton|Lyda|3001|MN|F|Daughter|||9|111756 + +3010|IA|Calhoun County|Lake City city|2397|0|1|Reyes|Donnell|2992|Togo|M|Head|||18|111757 +3010|IA|Calhoun County|Lake City city|2397|0|2|Reyes|Alina|2976|Georgia|F|Spouse|||34|111758 +3010|IA|Calhoun County|Lake City city|2397|0|3|Reyes|Celia|3001|IA|F|Daughter|||9|111759 +3010|IA|Calhoun County|Lake City city|2397|0|4|Reyes|Leatrice|3005|IA|F|Daughter|||5|111760 + +3010|MN|Pine County|Henriette city|2398|0|1|Renick|Jerrod|2990|Utah|M|Head|||20|111761 +3010|MN|Pine County|Henriette city|2398|0|2|Renick|Tu|2993|Svalbard And Jan Mayen|F|Spouse|||17|111762 +3010|MN|Pine County|Henriette city|2398|0|3|Renick|Gerard Brant|3001|MN|M|Son|||9|111763 +3010|MN|Pine County|Henriette city|2398|0|4|Renick|Michael|3005|MN|M|Son|||5|111764 +3010|MN|Pine County|Henriette city|2398|0|5|Renick|Shay|3009|MN|F|Daughter|||1|111765 + +3010|TX|Shackelford County|Moran city|2399|0|1|Renick|Faustino|2992|Colorado|M|Head|||18|111766 +3010|TX|Shackelford County|Moran city|2399|0|2|Renick|Mikki Marjory|2989|Alaska|F|Spouse|||21|111767 +3010|TX|Shackelford County|Moran city|2399|0|3|Renick|Amelia|3001|TX|F|Daughter|||9|111768 +3010|TX|Shackelford County|Moran city|2399|0|4|Renick|Jerome|3003|TX|M|Son|||7|111769 +3010|TX|Shackelford County|Moran city|2399|0|5|Renick|Asa|3005|TX|M|Son|||5|111770 + +3010|MN|Kandiyohi County|Lake Lillian township|2400|0|1|Watson|Vance|2988|China|M|Head|||22|111771 +3010|MN|Kandiyohi County|Lake Lillian township|2400|0|2|Watson|Louetta|2991|Alaska|F|Spouse|||19|111772 +3010|MN|Kandiyohi County|Lake Lillian township|2400|0|3|Watson|Edwardo|3003|MN|M|Son|||7|111773 +3010|MN|Kandiyohi County|Lake Lillian township|2400|0|4|Watson|Lorenzo|3005|MN|M|Son|||5|111774 +3010|MN|Kandiyohi County|Lake Lillian township|2400|0|5|Watson|Ross|3007|MN|M|Son|||3|111775 +3010|MN|Kandiyohi County|Lake Lillian township|2400|0|6|Watson|Teodoro|3009|MN|M|Son|||1|111776 + +3010|MN|McLeod County|Rich Valley township|2401|0|1|Berends|Carrol|2991|Bahamas|M|Head|||19|111777 +3010|MN|McLeod County|Rich Valley township|2401|0|2|Berends|Janice|2990|Michigan|F|Spouse|||20|111778 +3010|MN|McLeod County|Rich Valley township|2401|0|3|Berends|Noah Sang|3001|MN|M|Son|||9|111779 + +3010|PA|Bucks County|New Britain township|2402|0|1|Hoerr|Bobbie Duane|2982|Oregon|M|Head|||28|111780 +3010|PA|Bucks County|New Britain township|2402|0|2|Hoerr|Myong|2994|Connecticut|F|Spouse|||16|111781 +3010|PA|Bucks County|New Britain township|2402|0|3|Hoerr|Richie|3001|PA|M|Son|||9|111782 +3010|PA|Bucks County|New Britain township|2402|0|4|Hoerr|Avery|3005|PA|M|Son|||5|111783 + +3010|KS|Meade County|Meade city|2403|0|1|Sundt|Darius Emmitt|2994|New Hampshire|M|Head|||16|111784 +3010|KS|Meade County|Meade city|2403|0|2|Sundt|Jenna|2993|Minnesota|F|Spouse|||17|111785 +3010|KS|Meade County|Meade city|2403|0|3|Sundt|Ellamae Luetta|3001|KS|F|Daughter|||9|111786 +3010|KS|Meade County|Meade city|2403|0|4|Sundt|Rueben|3003|KS|M|Son|||7|111787 + +3010|UT|Salt Lake County|West Valley City city|2404|0|1|Ziadie|Walter|2984|Indiana|M|Head|||26|111788 +3010|UT|Salt Lake County|West Valley City city|2404|0|2|Ziadie|Dia|2983|Arkansas|F|Spouse|||27|111789 +3010|UT|Salt Lake County|West Valley City city|2404|0|3|Ziadie|Moses|3005|UT|M|Son|||5|111790 +3010|UT|Salt Lake County|West Valley City city|2404|0|4|Ziadie|Burton|3009|UT|M|Son|||1|111791 + +3010|MN|Big Stone County|Graceville city|2405|0|1|Ziadie|Ethan|2986|Alaska|M|Head|||24|111792 +3010|MN|Big Stone County|Graceville city|2405|0|2|Ziadie|Sharonda|2989|Indiana|F|Spouse|||21|111793 +3010|MN|Big Stone County|Graceville city|2405|0|3|Ziadie|Winfred|3001|MN|M|Son|||9|111794 +3010|MN|Big Stone County|Graceville city|2405|0|4|Ziadie|Nikole|3009|MN|F|Daughter|||1|111795 + +3010|WA|Okanogan County|Elmer City town|2406|0|1|Carr|Emerson|2972|South Carolina|M|Head|||38|111796 +3010|WA|Okanogan County|Elmer City town|2406|0|2|Carr|Joi|2991|New Jersey|F|Spouse|||19|111797 +3010|WA|Okanogan County|Elmer City town|2406|0|3|Carr|Genoveva Valda|3001|WA|F|Daughter|||9|111798 +3010|WA|Okanogan County|Elmer City town|2406|0|4|Carr|Len|3005|WA|M|Son|||5|111799 +3010|WA|Okanogan County|Elmer City town|2406|0|5|Carr|Ramon Jake|3007|WA|M|Son|||3|111800 + +3010|GA|Jackson County|Talmo town|2407|0|1|Carr|Beau|2994|Pennsylvania|M|Head|||16|111801 +3010|GA|Jackson County|Talmo town|2407|0|2|Carr|Dacia|2987|New Jersey|F|Spouse|||23|111802 +3010|GA|Jackson County|Talmo town|2407|0|3|Carr|Bennett|3005|GA|M|Son|||5|111803 +3010|GA|Jackson County|Talmo town|2407|0|4|Carr|Tina|3007|GA|F|Daughter|||3|111804 +3010|GA|Jackson County|Talmo town|2407|0|5|Carr|Tamra|3009|GA|F|Daughter|||1|111805 + +3010|MN|Wilkin County|Breckenridge city|2408|0|1|Born|Wilford|2988|Kentucky|M|Head|||22|111806 +3010|MN|Wilkin County|Breckenridge city|2408|0|2|Born|Jaleesa Carolyn|2987|New Jersey|F|Spouse|||23|111807 +3010|MN|Wilkin County|Breckenridge city|2408|0|3|Born|Terrell|3001|MN|F|Daughter|||9|111808 +3010|MN|Wilkin County|Breckenridge city|2408|0|4|Born|Alvina|3007|MN|F|Daughter|||3|111809 +3010|MN|Wilkin County|Breckenridge city|2408|0|5|Born|Karl|3009|MN|M|Son|||1|111810 + +3010|PA|Lancaster County|Salunga CDP|2409|0|1|Camisa|Fletcher Lino|2991|West Virginia|M|Head|||19|111811 +3010|PA|Lancaster County|Salunga CDP|2409|0|2|Camisa|Vickie Lenore|2977|South Dakota|F|Spouse|||33|111812 +3010|PA|Lancaster County|Salunga CDP|2409|0|3|Camisa|Stephine|3003|PA|F|Daughter|||7|111813 +3010|PA|Lancaster County|Salunga CDP|2409|0|4|Camisa|Stepanie Criselda|3007|PA|F|Daughter|||3|111814 + +3010|OH|Warren County|Five Points CDP|2410|0|1|Pardi|Abram|2993|Delaware|M|Head|||17|111815 +3010|OH|Warren County|Five Points CDP|2410|0|2|Pardi|Verlie|2987|Vermont|F|Spouse|||23|111816 +3010|OH|Warren County|Five Points CDP|2410|0|3|Pardi|Leopoldo|3001|OH|M|Son|||9|111817 +3010|OH|Warren County|Five Points CDP|2410|0|4|Pardi|Jaye|3003|OH|F|Daughter|||7|111818 + +3010|MI|Lapeer County|Attica township|2411|0|1|Rios|Ernest Darwin|2988|California|M|Head|||22|111819 +3010|MI|Lapeer County|Attica township|2411|0|2|Rios|Jennell Soila|2986|Wallis And Futuna|F|Spouse|||24|111820 +3010|MI|Lapeer County|Attica township|2411|0|3|Rios|Gaynelle|3005|MI|F|Daughter|||5|111821 +3010|MI|Lapeer County|Attica township|2411|0|4|Rios|Jeannine|3009|MI|F|Daughter|||1|111822 + +3010|MI|Lapeer County|Attica township|2412|0|1|Rios|Genaro|2990|Turks And Caicos Islands|M|Head|||20|111823 +3010|MI|Lapeer County|Attica township|2412|0|2|Rios|Grace|2988|Oregon|F|Spouse|||22|111824 +3010|MI|Lapeer County|Attica township|2412|0|3|Rios|Una|3001|MI|F|Daughter|||9|111825 +3010|MI|Lapeer County|Attica township|2412|0|4|Rios|Kelley|3003|MI|M|Son|||7|111826 +3010|MI|Lapeer County|Attica township|2412|0|5|Rios|Lewis|3005|MI|M|Son|||5|111827 + +3010|WV|Kanawha County|Marmet city|2413|0|1|Wingerson|Bruno|2984|Connecticut|M|Head|||26|111828 +3010|WV|Kanawha County|Marmet city|2413|0|2|Wingerson|Viva|2985|Georgia|F|Spouse|||25|111829 +3010|WV|Kanawha County|Marmet city|2413|0|3|Wingerson|Justin|3001|WV|M|Son|||9|111830 +3010|WV|Kanawha County|Marmet city|2413|0|4|Wingerson|Augustus|3003|WV|M|Son|||7|111831 +3010|WV|Kanawha County|Marmet city|2413|0|5|Wingerson|Pierre|3009|WV|M|Son|||1|111832 + +3010|PA|Carbon County|Jim Thorpe borough|2414|0|1|Boshard|Stanford|2993|Mississippi|M|Head|||17|111833 +3010|PA|Carbon County|Jim Thorpe borough|2414|0|2|Boshard|Rosamaria|2987|Nepal|F|Spouse|||23|111834 +3010|PA|Carbon County|Jim Thorpe borough|2414|0|3|Boshard|Flora|3001|PA|F|Daughter|||9|111835 +3010|PA|Carbon County|Jim Thorpe borough|2414|0|4|Boshard|Demetria|3003|PA|F|Daughter|||7|111836 +3010|PA|Carbon County|Jim Thorpe borough|2414|0|5|Boshard|Julian|3005|PA|M|Son|||5|111837 +3010|PA|Carbon County|Jim Thorpe borough|2414|0|6|Boshard|Albertina|3007|PA|F|Daughter|||3|111838 + +3010|NY|Ontario County|Bloomfield village|2415|0|1|Caffey|Hong|2982|Texas|M|Head|||28|111839 +3010|NY|Ontario County|Bloomfield village|2415|0|2|Caffey|Shay|2993|Mongolia|F|Spouse|||17|111840 +3010|NY|Ontario County|Bloomfield village|2415|0|3|Caffey|Jeanene|3001|NY|F|Daughter|||9|111841 +3010|NY|Ontario County|Bloomfield village|2415|0|4|Caffey|Malcom|3003|NY|M|Son|||7|111842 +3010|NY|Ontario County|Bloomfield village|2415|0|5|Caffey|Lorenzo|3007|NY|M|Son|||3|111843 +3010|NY|Ontario County|Bloomfield village|2415|0|6|Caffey|Letty|3009|NY|F|Daughter|||1|111844 + +3010|PA|Blair County|North Woodbury township|2416|0|1|Caffey|Buddy|2986|Sierra Leone|M|Head|||24|111845 +3010|PA|Blair County|North Woodbury township|2416|0|2|Caffey|Tania Zona|2968|Arizona|F|Spouse|||42|111846 +3010|PA|Blair County|North Woodbury township|2416|0|3|Caffey|Walker Bobby|3005|PA|M|Son|||5|111847 +3010|PA|Blair County|North Woodbury township|2416|0|4|Caffey|Ellis|3007|PA|M|Son|||3|111848 +3010|PA|Blair County|North Woodbury township|2416|0|5|Caffey|Izetta|3009|PA|F|Daughter|||1|111849 + +3010|TN|Grundy County|Palmer town|2417|0|1|Caffey|Eldridge Nathanael|2992|New Jersey|M|Head|||18|111850 +3010|TN|Grundy County|Palmer town|2417|0|2|Caffey|Clarence|2990|North Carolina|F|Spouse|||20|111851 +3010|TN|Grundy County|Palmer town|2417|0|3|Caffey|Porfirio|3001|TN|M|Son|||9|111852 +3010|TN|Grundy County|Palmer town|2417|0|4|Caffey|Lakeisha|3007|TN|F|Daughter|||3|111853 + +3010|AK|Bethel Census Area|Akiachak CDP|2418|0|1|Jett|Keven|2983|South Carolina|M|Head|||27|111854 +3010|AK|Bethel Census Area|Akiachak CDP|2418|0|2|Jett|Krystina|2986|Kentucky|F|Spouse|||24|111855 +3010|AK|Bethel Census Area|Akiachak CDP|2418|0|3|Jett|Vance|3001|AK|M|Son|||9|111856 +3010|AK|Bethel Census Area|Akiachak CDP|2418|0|4|Jett|Callie|3003|AK|F|Daughter|||7|111857 +3010|AK|Bethel Census Area|Akiachak CDP|2418|0|5|Jett|Arnita|3005|AK|F|Daughter|||5|111858 +3010|AK|Bethel Census Area|Akiachak CDP|2418|0|6|Jett|Chung|3009|AK|M|Son|||1|111859 + +3010|ME|Cumberland County|Long Island town|2419|0|1|Bronson|Bryant|2991|Utah|M|Head|||19|111860 +3010|ME|Cumberland County|Long Island town|2419|0|2|Bronson|Irena|2990|Swaziland|F|Spouse|||20|111861 +3010|ME|Cumberland County|Long Island town|2419|0|3|Bronson|Patience Chery|3003|ME|F|Daughter|||7|111862 +3010|ME|Cumberland County|Long Island town|2419|0|4|Bronson|Jed|3005|ME|M|Son|||5|111863 +3010|ME|Cumberland County|Long Island town|2419|0|5|Bronson|Viviana|3009|ME|F|Daughter|||1|111864 + +3010|NJ|Warren County|Hainesburg CDP|2420|0|1|Hernandez|Alphonse Ben|2992|Vermont|M|Head|||18|111865 +3010|NJ|Warren County|Hainesburg CDP|2420|0|2|Hernandez|Exie|2992|Delaware|F|Spouse|||18|111866 +3010|NJ|Warren County|Hainesburg CDP|2420|0|3|Hernandez|Shannan Nikita|3001|NJ|F|Daughter|||9|111867 + +3010|IA|Worth County|Northwood city|2421|0|1|Janssen|Del|2980|New York|M|Head|||30|111868 +3010|IA|Worth County|Northwood city|2421|0|2|Janssen|Wanetta|2990|Alaska|F|Spouse|||20|111869 +3010|IA|Worth County|Northwood city|2421|0|3|Janssen|Delmer|3001|IA|M|Son|||9|111870 +3010|IA|Worth County|Northwood city|2421|0|4|Janssen|Thomasena|3003|IA|F|Daughter|||7|111871 +3010|IA|Worth County|Northwood city|2421|0|5|Janssen|Darrin|3005|IA|M|Son|||5|111872 +3010|IA|Worth County|Northwood city|2421|0|6|Janssen|Yanira|3007|IA|F|Daughter|||3|111873 +3010|IA|Worth County|Northwood city|2421|0|7|Janssen|Clint|3009|IA|M|Son|||1|111874 + +3010|MI|Allegan County|Ganges township|2422|0|1|Janssen|Jefferson|2986|Nevada|M|Head|||24|111875 +3010|MI|Allegan County|Ganges township|2422|0|2|Janssen|Riva|2988|Russian Federation|F|Spouse|||22|111876 +3010|MI|Allegan County|Ganges township|2422|0|3|Janssen|Simon|3001|MI|M|Son|||9|111877 +3010|MI|Allegan County|Ganges township|2422|0|4|Janssen|Winfred|3005|MI|M|Son|||5|111878 + +3010|WI|Columbia County|Lodi city|2423|0|1|Davis|King|2994|Montana|M|Head|||16|111879 +3010|WI|Columbia County|Lodi city|2423|0|2|Davis|Hildegard|2992|Nevada|F|Spouse|||18|111880 +3010|WI|Columbia County|Lodi city|2423|0|3|Davis|Leigh Wilfredo|3001|WI|M|Son|||9|111881 +3010|WI|Columbia County|Lodi city|2423|0|4|Davis|Carlotta|3005|WI|F|Daughter|||5|111882 + +3010|OK|Le Flore County|Rock Island town|2424|0|1|Beaudoin|Armando|2975|Mississippi|M|Head|||35|111883 +3010|OK|Le Flore County|Rock Island town|2424|0|2|Beaudoin|Margrett|2994|North Carolina|F|Spouse|||16|111884 +3010|OK|Le Flore County|Rock Island town|2424|0|3|Beaudoin|Mireya|3001|OK|F|Daughter|||9|111885 +3010|OK|Le Flore County|Rock Island town|2424|0|4|Beaudoin|Darnell|3003|OK|M|Son|||7|111886 +3010|OK|Le Flore County|Rock Island town|2424|0|5|Beaudoin|Concepcion|3005|OK|F|Daughter|||5|111887 + +3010|OH|Butler County, Warren County|Middletown city|2425|0|1|Beaudoin|Timmy|2987|Alaska|M|Head|||23|111888 +3010|OH|Butler County, Warren County|Middletown city|2425|0|2|Beaudoin|Senaida|2986|New Mexico|F|Spouse|||24|111889 +3010|OH|Butler County, Warren County|Middletown city|2425|0|3|Beaudoin|Pearle|3003|OH|F|Daughter|||7|111890 +3010|OH|Butler County, Warren County|Middletown city|2425|0|4|Beaudoin|Gertrud Charita|3005|OH|F|Daughter|||5|111891 +3010|OH|Butler County, Warren County|Middletown city|2425|0|5|Beaudoin|Jake|3007|OH|M|Son|||3|111892 + +3010|OH|Butler County, Warren County|Middletown city|2426|0|1|Beaudoin|Rocky|2993|Nevada|M|Head|||17|111893 +3010|OH|Butler County, Warren County|Middletown city|2426|0|2|Beaudoin|Mariah|2992|Cuba|F|Spouse|||18|111894 +3010|OH|Butler County, Warren County|Middletown city|2426|0|3|Beaudoin|Humberto|3007|OH|M|Son|||3|111895 + +3010|NY|Erie County|North Boston CDP|2427|0|1|Kringas|Carrol|2981|North Carolina|M|Head|||29|111896 +3010|NY|Erie County|North Boston CDP|2427|0|2|Kringas|Yang|2988|Macedonia, The Former Yugoslav Republic Of|F|Spouse|||22|111897 +3010|NY|Erie County|North Boston CDP|2427|0|3|Kringas|Homer|3001|NY|M|Son|||9|111898 +3010|NY|Erie County|North Boston CDP|2427|0|4|Kringas|Rema|3005|NY|F|Daughter|||5|111899 + +3010|NE|Greeley County|Spalding village|2428|0|1|Nonnemacher|Ronnie|2993|Turkmenistan|M|Head|||17|111900 +3010|NE|Greeley County|Spalding village|2428|0|2|Nonnemacher|Thomas|2990|Nebraska|F|Spouse|||20|111901 +3010|NE|Greeley County|Spalding village|2428|0|3|Nonnemacher|Pansy|3001|NE|F|Daughter|||9|111902 +3010|NE|Greeley County|Spalding village|2428|0|4|Nonnemacher|Lauralee|3005|NE|F|Daughter|||5|111903 +3010|NE|Greeley County|Spalding village|2428|0|5|Nonnemacher|Gino Clinton|3007|NE|M|Son|||3|111904 +3010|NE|Greeley County|Spalding village|2428|0|6|Nonnemacher|Martin|3009|NE|F|Daughter|||1|111905 + +3010|GA|Henry County|Hampton city|2429|0|1|Evans|Dion|2975|Cyprus|M|Head|||35|111906 +3010|GA|Henry County|Hampton city|2429|0|2|Evans|Georgeanna|2977|Hawaii|F|Spouse|||33|111907 +3010|GA|Henry County|Hampton city|2429|0|3|Evans|Bertram|3001|GA|M|Son|||9|111908 +3010|GA|Henry County|Hampton city|2429|0|4|Evans|Conchita|3003|GA|F|Daughter|||7|111909 +3010|GA|Henry County|Hampton city|2429|0|5|Evans|Dion|3005|GA|F|Daughter|||5|111910 +3010|GA|Henry County|Hampton city|2429|0|6|Evans|Samantha|3007|GA|F|Daughter|||3|111911 + +3010|AR|Saline County|Shannon Hills city|2430|0|1|Michalenko|Ike|2990|Delaware|M|Head|||20|111912 +3010|AR|Saline County|Shannon Hills city|2430|0|2|Michalenko|Blondell|2987|South Carolina|F|Spouse|||23|111913 +3010|AR|Saline County|Shannon Hills city|2430|0|3|Michalenko|Kerri|3003|AR|F|Daughter|||7|111914 +3010|AR|Saline County|Shannon Hills city|2430|0|4|Michalenko|Daisy|3009|AR|F|Daughter|||1|111915 + +3010|MO|Cedar County|Umber View Heights village|2431|0|1|Stinson|Jed|2989|Delaware|M|Head|||21|111916 +3010|MO|Cedar County|Umber View Heights village|2431|0|2|Stinson|Carmelia|2990|Saint Lucia|F|Spouse|||20|111917 +3010|MO|Cedar County|Umber View Heights village|2431|0|3|Stinson|Randy Sid|3001|MO|M|Son|||9|111918 +3010|MO|Cedar County|Umber View Heights village|2431|0|4|Stinson|Ronni|3003|MO|F|Daughter|||7|111919 +3010|MO|Cedar County|Umber View Heights village|2431|0|5|Stinson|Minnie|3005|MO|F|Daughter|||5|111920 +3010|MO|Cedar County|Umber View Heights village|2431|0|6|Stinson|Bradford|3007|MO|M|Son|||3|111921 +3010|MO|Cedar County|Umber View Heights village|2431|0|7|Stinson|Valeria|3009|MO|F|Daughter|||1|111922 + +3010|OK|Le Flore County|Poteau city|2432|0|1|Bradley|Gino|2993|Oregon|M|Head|||17|111923 +3010|OK|Le Flore County|Poteau city|2432|0|2|Bradley|Scottie|2980|French Southern Territories|F|Spouse|||30|111924 +3010|OK|Le Flore County|Poteau city|2432|0|3|Bradley|Nickolas|3001|OK|M|Son|||9|111925 +3010|OK|Le Flore County|Poteau city|2432|0|4|Bradley|Homer|3003|OK|M|Son|||7|111926 +3010|OK|Le Flore County|Poteau city|2432|0|5|Bradley|Anibal|3005|OK|M|Son|||5|111927 +3010|OK|Le Flore County|Poteau city|2432|0|6|Bradley|Stephane Brittny|3009|OK|F|Daughter|||1|111928 + +3010|PA|Butler County|Lancaster township|2433|0|1|Toomer|Mauro|2985|Zimbabwe|M|Head|||25|111929 +3010|PA|Butler County|Lancaster township|2433|0|2|Toomer|Julieta Rossana|2992|New Jersey|F|Spouse|||18|111930 +3010|PA|Butler County|Lancaster township|2433|0|3|Toomer|Franchesca Lesia|3001|PA|F|Daughter|||9|111931 +3010|PA|Butler County|Lancaster township|2433|0|4|Toomer|Eden|3003|PA|F|Daughter|||7|111932 + +3010|PA|Butler County|Lancaster township|2434|0|1|Toomer|Geoffrey|2987|Delaware|M|Head|||23|111933 +3010|PA|Butler County|Lancaster township|2434|0|2|Toomer|Cleotilde|2977|Tennessee|F|Spouse|||33|111934 +3010|PA|Butler County|Lancaster township|2434|0|3|Toomer|Dallas Elena|3005|PA|F|Daughter|||5|111935 +3010|PA|Butler County|Lancaster township|2434|0|4|Toomer|Amiee|3009|PA|F|Daughter|||1|111936 + +3010|ME|Cumberland County|Cumberland Center CDP|2435|0|1|Vaughn|Huey Arden|2989|Florida|M|Head|||21|111937 +3010|ME|Cumberland County|Cumberland Center CDP|2435|0|2|Vaughn|Meridith|2989|Arkansas|F|Spouse|||21|111938 +3010|ME|Cumberland County|Cumberland Center CDP|2435|0|3|Vaughn|Wilhemina|3003|ME|F|Daughter|||7|111939 +3010|ME|Cumberland County|Cumberland Center CDP|2435|0|4|Vaughn|Refugio|3005|ME|M|Son|||5|111940 + +3010|MO|Warren County|Wright City city|2436|0|1|Hooks|Maria|2985|Uzbekistan|M|Head|||25|111941 +3010|MO|Warren County|Wright City city|2436|0|2|Hooks|Magnolia|2988|Comoros|F|Spouse|||22|111942 +3010|MO|Warren County|Wright City city|2436|0|3|Hooks|Joey Jenelle|3001|MO|F|Daughter|||9|111943 +3010|MO|Warren County|Wright City city|2436|0|4|Hooks|Lucy|3005|MO|F|Daughter|||5|111944 +3010|MO|Warren County|Wright City city|2436|0|5|Hooks|Velva|3007|MO|F|Daughter|||3|111945 + +3010|MA|Worcester County|Templeton town|2437|0|1|Barbeau|Manuel|2979|Zambia|M|Head|||31|111946 +3010|MA|Worcester County|Templeton town|2437|0|2|Barbeau|Daryl|2993|Pennsylvania|F|Spouse|||17|111947 +3010|MA|Worcester County|Templeton town|2437|0|3|Barbeau|Serina Ardith|3005|MA|F|Daughter|||5|111948 +3010|MA|Worcester County|Templeton town|2437|0|4|Barbeau|Rebekah|3007|MA|F|Daughter|||3|111949 + +3010|MI|Leelanau County|Leland CDP|2438|0|1|Barbeau|Willian|2987|France|M|Head|||23|111950 +3010|MI|Leelanau County|Leland CDP|2438|0|2|Barbeau|Lorrine|2990|New Mexico|F|Spouse|||20|111951 +3010|MI|Leelanau County|Leland CDP|2438|0|3|Barbeau|Dorthea|3001|MI|F|Daughter|||9|111952 +3010|MI|Leelanau County|Leland CDP|2438|0|4|Barbeau|Gavin|3003|MI|M|Son|||7|111953 +3010|MI|Leelanau County|Leland CDP|2438|0|5|Barbeau|Joella Tony|3005|MI|F|Daughter|||5|111954 +3010|MI|Leelanau County|Leland CDP|2438|0|6|Barbeau|Vella|3009|MI|F|Daughter|||1|111955 + +3010|PA|Bucks County|Plumstead township|2439|0|1|Webster|Lyman|2986|French Southern Territories|M|Head|||24|111956 +3010|PA|Bucks County|Plumstead township|2439|0|2|Webster|Chun|2988|Utah|F|Spouse|||22|111957 +3010|PA|Bucks County|Plumstead township|2439|0|3|Webster|Hilario|3001|PA|M|Son|||9|111958 +3010|PA|Bucks County|Plumstead township|2439|0|4|Webster|Georgeann|3003|PA|F|Daughter|||7|111959 +3010|PA|Bucks County|Plumstead township|2439|0|5|Webster|Huong|3007|PA|F|Daughter|||3|111960 +3010|PA|Bucks County|Plumstead township|2439|0|6|Webster|Milton|3009|PA|M|Son|||1|111961 + +3010|PA|Bucks County|Plumstead township|2440|0|1|Webster|Cole Lacy|2988|Chile|M|Head|||22|111962 +3010|PA|Bucks County|Plumstead township|2440|0|2|Webster|Carmina|2988|Alabama|F|Spouse|||22|111963 +3010|PA|Bucks County|Plumstead township|2440|0|3|Webster|Shelby|3001|PA|M|Son|||9|111964 +3010|PA|Bucks County|Plumstead township|2440|0|4|Webster|Chara|3003|PA|F|Daughter|||7|111965 +3010|PA|Bucks County|Plumstead township|2440|0|5|Webster|Edythe|3009|PA|F|Daughter|||1|111966 + +3010|TN|Putnam County|Cookeville city|2441|0|1|Hancock|Jamison|2992|Jordan|M|Head|||18|111967 +3010|TN|Putnam County|Cookeville city|2441|0|2|Hancock|Deneen|2991|Singapore|F|Spouse|||19|111968 +3010|TN|Putnam County|Cookeville city|2441|0|3|Hancock|Wilber|3001|TN|M|Son|||9|111969 +3010|TN|Putnam County|Cookeville city|2441|0|4|Hancock|Wayne|3007|TN|M|Son|||3|111970 +3010|TN|Putnam County|Cookeville city|2441|0|5|Hancock|Trista|3009|TN|F|Daughter|||1|111971 + +3010|IL|Madison County|St. Jacob village|2442|0|1|Dorado|Leo|2985|Alabama|M|Head|||25|111972 +3010|IL|Madison County|St. Jacob village|2442|0|2|Dorado|Letha|2986|Bosnia And Herzegovina|F|Spouse|||24|111973 +3010|IL|Madison County|St. Jacob village|2442|0|3|Dorado|Gisele|3001|IL|F|Daughter|||9|111974 +3010|IL|Madison County|St. Jacob village|2442|0|4|Dorado|Joslyn|3003|IL|F|Daughter|||7|111975 +3010|IL|Madison County|St. Jacob village|2442|0|5|Dorado|Erasmo Frederic|3005|IL|M|Son|||5|111976 +3010|IL|Madison County|St. Jacob village|2442|0|6|Dorado|Doreatha Willia|3007|IL|F|Daughter|||3|111977 + +3010|IL|Madison County|St. Jacob village|2443|0|1|Dorado|Jasper|2987|Washington|M|Head|||23|111978 +3010|IL|Madison County|St. Jacob village|2443|0|2|Dorado|Regine|2974|Indiana|F|Spouse|||36|111979 +3010|IL|Madison County|St. Jacob village|2443|0|3|Dorado|Shirley|3001|IL|M|Son|||9|111980 +3010|IL|Madison County|St. Jacob village|2443|0|4|Dorado|Eusebio|3003|IL|M|Son|||7|111981 +3010|IL|Madison County|St. Jacob village|2443|0|5|Dorado|Enoch|3005|IL|M|Son|||5|111982 +3010|IL|Madison County|St. Jacob village|2443|0|6|Dorado|Pamala|3007|IL|F|Daughter|||3|111983 + +3010|IA|Audubon County|Brayton city|2444|0|1|Silverstone|Marlin|2989|Georgia|M|Head|||21|111984 +3010|IA|Audubon County|Brayton city|2444|0|2|Silverstone|Reginia Eladia|2978|Maine|F|Spouse|||32|111985 +3010|IA|Audubon County|Brayton city|2444|0|3|Silverstone|Carin|3001|IA|F|Daughter|||9|111986 +3010|IA|Audubon County|Brayton city|2444|0|4|Silverstone|Boris|3003|IA|M|Son|||7|111987 + +3010|SD|Clark County|Bradley town|2445|0|1|Broccoli|Erik|2987|Louisiana|M|Head|||23|111988 +3010|SD|Clark County|Bradley town|2445|0|2|Broccoli|Felisha Towanda|2990|Michigan|F|Spouse|||20|111989 +3010|SD|Clark County|Bradley town|2445|0|3|Broccoli|Mikel|3001|SD|M|Son|||9|111990 +3010|SD|Clark County|Bradley town|2445|0|4|Broccoli|Marc|3005|SD|M|Son|||5|111991 + +3010|WI|Winnebago County|Poygan town|2446|0|1|Golaszewski|Mervin|2993|Tennessee|M|Head|||17|111992 +3010|WI|Winnebago County|Poygan town|2446|0|2|Golaszewski|Tamie|2994|Pennsylvania|F|Spouse|||16|111993 +3010|WI|Winnebago County|Poygan town|2446|0|3|Golaszewski|Caprice|3001|WI|F|Daughter|||9|111994 +3010|WI|Winnebago County|Poygan town|2446|0|4|Golaszewski|Augusta|3003|WI|F|Daughter|||7|111995 +3010|WI|Winnebago County|Poygan town|2446|0|5|Golaszewski|Wilfredo Eddie|3005|WI|M|Son|||5|111996 +3010|WI|Winnebago County|Poygan town|2446|0|6|Golaszewski|Willard|3007|WI|M|Son|||3|111997 +3010|WI|Winnebago County|Poygan town|2446|0|7|Golaszewski|Lonnie|3009|WI|M|Son|||1|111998 + +3010|GA|Jackson County|Talmo town|2447|0|1|Daniel|Leonel|2989|New Mexico|M|Head|||21|111999 +3010|GA|Jackson County|Talmo town|2447|0|2|Daniel|Enda|2992|Kentucky|F|Spouse|||18|112000 +3010|GA|Jackson County|Talmo town|2447|0|3|Daniel|Clayton|3003|GA|M|Son|||7|112001 +3010|GA|Jackson County|Talmo town|2447|0|4|Daniel|Tyrell|3009|GA|M|Son|||1|112002 + +3010|TX|Cameron County|Los Indios town|2448|0|1|Landrum|Boris Benjamin|2981|Arizona|M|Head|||29|112003 +3010|TX|Cameron County|Los Indios town|2448|0|2|Landrum|Carrol|2983|Massachusetts|F|Spouse|||27|112004 +3010|TX|Cameron County|Los Indios town|2448|0|3|Landrum|Addie|3001|TX|F|Daughter|||9|112005 +3010|TX|Cameron County|Los Indios town|2448|0|4|Landrum|Benito|3003|TX|M|Son|||7|112006 +3010|TX|Cameron County|Los Indios town|2448|0|5|Landrum|Delilah|3007|TX|F|Daughter|||3|112007 + +3010|TX|Cameron County|Los Indios town|2449|0|1|Landrum|Jason|2989|Wyoming|M|Head|||21|112008 +3010|TX|Cameron County|Los Indios town|2449|0|2|Landrum|Melany|2987|Vermont|F|Spouse|||23|112009 +3010|TX|Cameron County|Los Indios town|2449|0|3|Landrum|William|3001|TX|M|Son|||9|112010 +3010|TX|Cameron County|Los Indios town|2449|0|4|Landrum|Bertram|3007|TX|M|Son|||3|112011 + +3010|IN|Porter County|Porter town|2450|0|1|Walter|Jules|2991|Brazil|M|Head|||19|112012 +3010|IN|Porter County|Porter town|2450|0|2|Walter|Stasia|2980|Utah|F|Spouse|||30|112013 +3010|IN|Porter County|Porter town|2450|0|3|Walter|Harold|3003|IN|M|Son|||7|112014 +3010|IN|Porter County|Porter town|2450|0|4|Walter|Elliot|3005|IN|M|Son|||5|112015 + +3010|PA|Mercer County|Wolf Creek township|2451|0|1|Barnes|Everett Freddie|2988|Utah|M|Head|||22|112016 +3010|PA|Mercer County|Wolf Creek township|2451|0|2|Barnes|Teresa|2986|France|F|Spouse|||24|112017 +3010|PA|Mercer County|Wolf Creek township|2451|0|3|Barnes|Bryan|3001|PA|M|Son|||9|112018 +3010|PA|Mercer County|Wolf Creek township|2451|0|4|Barnes|Deon|3007|PA|M|Son|||3|112019 +3010|PA|Mercer County|Wolf Creek township|2451|0|5|Barnes|Tomi|3009|PA|F|Daughter|||1|112020 + +3010|NC|Beaufort County|Aurora town|2452|0|1|Barnes|Refugio|2992|Nevada|M|Head|||18|112021 +3010|NC|Beaufort County|Aurora town|2452|0|2|Barnes|Vikki|2968|Honduras|F|Spouse|||42|112022 +3010|NC|Beaufort County|Aurora town|2452|0|3|Barnes|Renda|3001|NC|F|Daughter|||9|112023 +3010|NC|Beaufort County|Aurora town|2452|0|4|Barnes|James|3003|NC|M|Son|||7|112024 +3010|NC|Beaufort County|Aurora town|2452|0|5|Barnes|Isabella Elke|3005|NC|F|Daughter|||5|112025 + +3010|VA|Accomack County|Painter town|2453|0|1|Neske|Mark|2994|Washington|M|Head|||16|112026 +3010|VA|Accomack County|Painter town|2453|0|2|Neske|Georgeanna|2985|New Hampshire|F|Spouse|||25|112027 +3010|VA|Accomack County|Painter town|2453|0|3|Neske|Detra|3003|VA|F|Daughter|||7|112028 + +3010|OH|Franklin County|Minerva Park village|2454|0|1|Carder|Graig|2990|Michigan|M|Head|||20|112029 +3010|OH|Franklin County|Minerva Park village|2454|0|2|Carder|Tynisha|2985|Oregon|F|Spouse|||25|112030 +3010|OH|Franklin County|Minerva Park village|2454|0|3|Carder|Leopoldo|3003|OH|M|Son|||7|112031 + +3010|MI|Leelanau County|Leelanau township|2455|0|1|Feraco|Toby|2990|Kentucky|M|Head|||20|112032 +3010|MI|Leelanau County|Leelanau township|2455|0|2|Feraco|Tonya|2985|Montana|F|Spouse|||25|112033 +3010|MI|Leelanau County|Leelanau township|2455|0|3|Feraco|Kris|3001|MI|M|Son|||9|112034 +3010|MI|Leelanau County|Leelanau township|2455|0|4|Feraco|Veola|3003|MI|F|Daughter|||7|112035 +3010|MI|Leelanau County|Leelanau township|2455|0|5|Feraco|Patience|3009|MI|F|Daughter|||1|112036 + +3010|MI|Leelanau County|Leelanau township|2456|0|1|Feraco|Coleman|2994|Lao People's Democratic Republic|M|Head|||16|112037 +3010|MI|Leelanau County|Leelanau township|2456|0|2|Feraco|Eden|2989|Norfolk Island|F|Spouse|||21|112038 +3010|MI|Leelanau County|Leelanau township|2456|0|3|Feraco|Tommie|3003|MI|M|Son|||7|112039 +3010|MI|Leelanau County|Leelanau township|2456|0|4|Feraco|Christiana|3005|MI|F|Daughter|||5|112040 +3010|MI|Leelanau County|Leelanau township|2456|0|5|Feraco|Mammie Lea|3007|MI|F|Daughter|||3|112041 +3010|MI|Leelanau County|Leelanau township|2456|0|6|Feraco|Stanford|3009|MI|M|Son|||1|112042 + +3010|FL|Santa Rosa County|Navarre Beach CDP|2457|0|1|Antonacci|Horacio|2985|North Carolina|M|Head|||25|112043 +3010|FL|Santa Rosa County|Navarre Beach CDP|2457|0|2|Antonacci|Katheryn|2990|Niue|F|Spouse|||20|112044 +3010|FL|Santa Rosa County|Navarre Beach CDP|2457|0|3|Antonacci|Andrew|3001|FL|F|Daughter|||9|112045 +3010|FL|Santa Rosa County|Navarre Beach CDP|2457|0|4|Antonacci|Sherwood Jeffrey|3003|FL|M|Son|||7|112046 +3010|FL|Santa Rosa County|Navarre Beach CDP|2457|0|5|Antonacci|Marianna|3009|FL|F|Daughter|||1|112047 + +3010|FL|Santa Rosa County|Navarre Beach CDP|2458|0|1|Antonacci|Ruben|2989|Vermont|M|Head|||21|112048 +3010|FL|Santa Rosa County|Navarre Beach CDP|2458|0|2|Antonacci|Loren|2994|Michigan|F|Spouse|||16|112049 +3010|FL|Santa Rosa County|Navarre Beach CDP|2458|0|3|Antonacci|Elmo|3001|FL|M|Son|||9|112050 +3010|FL|Santa Rosa County|Navarre Beach CDP|2458|0|4|Antonacci|Octavio|3003|FL|M|Son|||7|112051 +3010|FL|Santa Rosa County|Navarre Beach CDP|2458|0|5|Antonacci|Seema Sunday|3005|FL|F|Daughter|||5|112052 +3010|FL|Santa Rosa County|Navarre Beach CDP|2458|0|6|Antonacci|Arlie|3007|FL|M|Son|||3|112053 + +3010|FL|Santa Rosa County|Navarre Beach CDP|2459|0|1|Antonacci|Vincent|2993|Wisconsin|M|Head|||17|112054 +3010|FL|Santa Rosa County|Navarre Beach CDP|2459|0|2|Antonacci|Shirl Mollie|2988|North Dakota|F|Spouse|||22|112055 +3010|FL|Santa Rosa County|Navarre Beach CDP|2459|0|3|Antonacci|Lyn|3001|FL|F|Daughter|||9|112056 +3010|FL|Santa Rosa County|Navarre Beach CDP|2459|0|4|Antonacci|Esther|3003|FL|F|Daughter|||7|112057 +3010|FL|Santa Rosa County|Navarre Beach CDP|2459|0|5|Antonacci|Khadijah|3009|FL|F|Daughter|||1|112058 + +3010|MN|Aitkin County|McGregor township|2460|0|1|Gibbons|Moses|2988|Washington|M|Head|||22|112059 +3010|MN|Aitkin County|McGregor township|2460|0|2|Gibbons|Lyndsey|2975|Central African Republic|F|Spouse|||35|112060 +3010|MN|Aitkin County|McGregor township|2460|0|3|Gibbons|Jonas|3003|MN|M|Son|||7|112061 +3010|MN|Aitkin County|McGregor township|2460|0|4|Gibbons|Willie|3007|MN|M|Son|||3|112062 +3010|MN|Aitkin County|McGregor township|2460|0|5|Gibbons|Kaila|3009|MN|F|Daughter|||1|112063 + +3010|GA|Atkinson County|Pearson city|2461|0|1|Koenig|Mikel|2989|Mississippi|M|Head|||21|112064 +3010|GA|Atkinson County|Pearson city|2461|0|2|Koenig|Chantelle|2985|Virginia|F|Spouse|||25|112065 +3010|GA|Atkinson County|Pearson city|2461|0|3|Koenig|Kim Allen|3001|GA|M|Son|||9|112066 +3010|GA|Atkinson County|Pearson city|2461|0|4|Koenig|Eliseo Duncan|3003|GA|M|Son|||7|112067 +3010|GA|Atkinson County|Pearson city|2461|0|5|Koenig|Bart|3005|GA|M|Son|||5|112068 +3010|GA|Atkinson County|Pearson city|2461|0|6|Koenig|Clare|3007|GA|F|Daughter|||3|112069 + +3010|GA|Atkinson County|Pearson city|2462|0|1|Koenig|Daren|2991|Hawaii|M|Head|||19|112070 +3010|GA|Atkinson County|Pearson city|2462|0|2|Koenig|Cherrie|2987|Michigan|F|Spouse|||23|112071 +3010|GA|Atkinson County|Pearson city|2462|0|3|Koenig|Calvin|3001|GA|M|Son|||9|112072 +3010|GA|Atkinson County|Pearson city|2462|0|4|Koenig|Roberto|3005|GA|M|Son|||5|112073 +3010|GA|Atkinson County|Pearson city|2462|0|5|Koenig|Annette|3007|GA|F|Daughter|||3|112074 +3010|GA|Atkinson County|Pearson city|2462|0|6|Koenig|Cory|3009|GA|F|Daughter|||1|112075 + +3010|GA|Atkinson County|Pearson city|2463|0|1|Koenig|Wilfred|2993|Tunisia|M|Head|||17|112076 +3010|GA|Atkinson County|Pearson city|2463|0|2|Koenig|Yukiko|2991|Virgin Islands, British|F|Spouse|||19|112077 +3010|GA|Atkinson County|Pearson city|2463|0|3|Koenig|Hilario|3003|GA|M|Son|||7|112078 +3010|GA|Atkinson County|Pearson city|2463|0|4|Koenig|Celinda|3005|GA|F|Daughter|||5|112079 +3010|GA|Atkinson County|Pearson city|2463|0|5|Koenig|Kathryne|3009|GA|F|Daughter|||1|112080 + +3010|MN|Blue Earth County|Skyline city|2464|0|1|Turner|Sal|2991|Delaware|M|Head|||19|112081 +3010|MN|Blue Earth County|Skyline city|2464|0|2|Turner|Kattie|2993|South Georgia And The South Sandwich Islands|F|Spouse|||17|112082 +3010|MN|Blue Earth County|Skyline city|2464|0|3|Turner|Anibal Emmett|3001|MN|M|Son|||9|112083 +3010|MN|Blue Earth County|Skyline city|2464|0|4|Turner|Walker|3003|MN|M|Son|||7|112084 +3010|MN|Blue Earth County|Skyline city|2464|0|5|Turner|Robby Randolph|3005|MN|M|Son|||5|112085 +3010|MN|Blue Earth County|Skyline city|2464|0|6|Turner|Ngoc|3007|MN|F|Daughter|||3|112086 +3010|MN|Blue Earth County|Skyline city|2464|0|7|Turner|Lewis|3009|MN|M|Son|||1|112087 + +3010|LA|Jefferson Davis Parish|Jennings city|2465|0|1|Frum|Kermit|2972|Monaco|M|Head|||38|112088 +3010|LA|Jefferson Davis Parish|Jennings city|2465|0|2|Frum|Shavon|2989|West Virginia|F|Spouse|||21|112089 +3010|LA|Jefferson Davis Parish|Jennings city|2465|0|3|Frum|Natashia|3003|LA|F|Daughter|||7|112090 + +3010|LA|Jefferson Davis Parish|Jennings city|2466|0|1|Frum|Terrell|2986|Virginia|M|Head|||24|112091 +3010|LA|Jefferson Davis Parish|Jennings city|2466|0|2|Frum|Charlie|2993|Minnesota|F|Spouse|||17|112092 +3010|LA|Jefferson Davis Parish|Jennings city|2466|0|3|Frum|Carmelo Noah|3003|LA|M|Son|||7|112093 +3010|LA|Jefferson Davis Parish|Jennings city|2466|0|4|Frum|Darci|3005|LA|F|Daughter|||5|112094 +3010|LA|Jefferson Davis Parish|Jennings city|2466|0|5|Frum|Liberty Laurel|3007|LA|F|Daughter|||3|112095 +3010|LA|Jefferson Davis Parish|Jennings city|2466|0|6|Frum|Terry|3009|LA|M|Son|||1|112096 + +3010|CT|Litchfield County|New Preston CDP|2467|0|1|Pak|Jospeh|2994|South Carolina|M|Head|||16|112097 +3010|CT|Litchfield County|New Preston CDP|2467|0|2|Pak|Alexandria|2969|New Jersey|F|Spouse|||41|112098 +3010|CT|Litchfield County|New Preston CDP|2467|0|3|Pak|Shante|3001|CT|F|Daughter|||9|112099 +3010|CT|Litchfield County|New Preston CDP|2467|0|4|Pak|Kiara|3005|CT|F|Daughter|||5|112100 +3010|CT|Litchfield County|New Preston CDP|2467|0|5|Pak|Shon|3007|CT|M|Son|||3|112101 +3010|CT|Litchfield County|New Preston CDP|2467|0|6|Pak|Micheal|3009|CT|F|Daughter|||1|112102 + +3010|IL|Clay County|Iola village|2468|0|1|Helbling|Walker|2993|Alaska|M|Head|||17|112103 +3010|IL|Clay County|Iola village|2468|0|2|Helbling|Wendolyn|2985|Wisconsin|F|Spouse|||25|112104 +3010|IL|Clay County|Iola village|2468|0|3|Helbling|Fabiola Tiffiny|3003|IL|F|Daughter|||7|112105 +3010|IL|Clay County|Iola village|2468|0|4|Helbling|Shelton Abel|3007|IL|M|Son|||3|112106 + +3010|GA|Newton County, Walton County|Social Circle city|2469|0|1|Deluise|Len|2980|California|M|Head|||30|112107 +3010|GA|Newton County, Walton County|Social Circle city|2469|0|2|Deluise|Toi|2981|Wyoming|F|Spouse|||29|112108 +3010|GA|Newton County, Walton County|Social Circle city|2469|0|3|Deluise|Corazon|3005|GA|F|Daughter|||5|112109 + +3010|PA|Butler County|Lancaster township|2470|0|1|Simon|Rickie|2989|Connecticut|M|Head|||21|112110 +3010|PA|Butler County|Lancaster township|2470|0|2|Simon|Joie|2991|Nebraska|F|Spouse|||19|112111 +3010|PA|Butler County|Lancaster township|2470|0|3|Simon|Jim|3001|PA|M|Son|||9|112112 +3010|PA|Butler County|Lancaster township|2470|0|4|Simon|Rosalee|3005|PA|F|Daughter|||5|112113 + +3010|IN|Wayne County|Greens Fork town|2471|0|1|Simon|Tyree|2991|Tennessee|M|Head|||19|112114 +3010|IN|Wayne County|Greens Fork town|2471|0|2|Simon|Brandy|2993|Haiti|F|Spouse|||17|112115 +3010|IN|Wayne County|Greens Fork town|2471|0|3|Simon|Lester|3001|IN|F|Daughter|||9|112116 +3010|IN|Wayne County|Greens Fork town|2471|0|4|Simon|Dylan|3003|IN|M|Son|||7|112117 +3010|IN|Wayne County|Greens Fork town|2471|0|5|Simon|Keven|3005|IN|M|Son|||5|112118 +3010|IN|Wayne County|Greens Fork town|2471|0|6|Simon|Trent|3007|IN|M|Son|||3|112119 + +3010|WI|Dane County|Dane village|2472|0|1|Vaughen|Reynaldo|2965|Arkansas|M|Head|||45|112120 +3010|WI|Dane County|Dane village|2472|0|2|Vaughen|Tangela|2970|Virginia|F|Spouse|||40|112121 +3010|WI|Dane County|Dane village|2472|0|3|Vaughen|Donald|3001|WI|M|Son|||9|112122 +3010|WI|Dane County|Dane village|2472|0|4|Vaughen|Shonda|3007|WI|F|Daughter|||3|112123 + +3010|MN|Ramsey County|North Oaks city|2473|0|1|Barlow|Dewitt Merle|2982|Michigan|M|Head|||28|112124 +3010|MN|Ramsey County|North Oaks city|2473|0|2|Barlow|Guillermina|2980|West Virginia|F|Spouse|||30|112125 +3010|MN|Ramsey County|North Oaks city|2473|0|3|Barlow|Ulysses Weldon|3003|MN|M|Son|||7|112126 +3010|MN|Ramsey County|North Oaks city|2473|0|4|Barlow|Irish|3007|MN|F|Daughter|||3|112127 +3010|MN|Ramsey County|North Oaks city|2473|0|5|Barlow|Khalilah Brittaney|3009|MN|F|Daughter|||1|112128 + +3010|MI|Antrim County|Helena township|2474|0|1|Ward|Emile|2986|Montana|M|Head|||24|112129 +3010|MI|Antrim County|Helena township|2474|0|2|Ward|Kristin Phyllis|2994|Oklahoma|F|Spouse|||16|112130 +3010|MI|Antrim County|Helena township|2474|0|3|Ward|Sherrill Flossie|3001|MI|F|Daughter|||9|112131 +3010|MI|Antrim County|Helena township|2474|0|4|Ward|Huey|3007|MI|M|Son|||3|112132 +3010|MI|Antrim County|Helena township|2474|0|5|Ward|Raymond|3009|MI|F|Daughter|||1|112133 + +3010|MI|Antrim County|Helena township|2475|0|1|Ward|Dino|2988|Massachusetts|M|Head|||22|112134 +3010|MI|Antrim County|Helena township|2475|0|2|Ward|Constance Shayla|2994|Kansas|F|Spouse|||16|112135 +3010|MI|Antrim County|Helena township|2475|0|3|Ward|Miles|3001|MI|M|Son|||9|112136 +3010|MI|Antrim County|Helena township|2475|0|4|Ward|Ollie|3005|MI|M|Son|||5|112137 +3010|MI|Antrim County|Helena township|2475|0|5|Ward|Blake|3007|MI|M|Son|||3|112138 + +3010|TX|Comal County|Canyon Lake CDP|2476|0|1|Benson|Tyrone|2990|Vermont|M|Head|||20|112139 +3010|TX|Comal County|Canyon Lake CDP|2476|0|2|Benson|Sachiko|2985|Spain|F|Spouse|||25|112140 +3010|TX|Comal County|Canyon Lake CDP|2476|0|3|Benson|Samantha|3007|TX|F|Daughter|||3|112141 +3010|TX|Comal County|Canyon Lake CDP|2476|0|4|Benson|Karleen|3009|TX|F|Daughter|||1|112142 + +3010|TX|Comal County|Canyon Lake CDP|2477|0|1|Benson|Kelley|2994|Sao Tome And Principe|M|Head|||16|112143 +3010|TX|Comal County|Canyon Lake CDP|2477|0|2|Benson|Victorina|2987|Israel|F|Spouse|||23|112144 +3010|TX|Comal County|Canyon Lake CDP|2477|0|3|Benson|Bunny|3001|TX|F|Daughter|||9|112145 +3010|TX|Comal County|Canyon Lake CDP|2477|0|4|Benson|Bell|3007|TX|F|Daughter|||3|112146 +3010|TX|Comal County|Canyon Lake CDP|2477|0|5|Benson|Jonah|3009|TX|M|Son|||1|112147 + +3010|PA|Venango County|Cherrytree township|2478|0|1|Trujillo|Malcom|2986|Vermont|M|Head|||24|112148 +3010|PA|Venango County|Cherrytree township|2478|0|2|Trujillo|Terra|2973|Georgia|F|Spouse|||37|112149 +3010|PA|Venango County|Cherrytree township|2478|0|3|Trujillo|Ross|3003|PA|M|Son|||7|112150 +3010|PA|Venango County|Cherrytree township|2478|0|4|Trujillo|Hai|3009|PA|M|Son|||1|112151 + +3010|MA|Worcester County|Templeton town|2479|0|1|Bolivar|Art|2984|Georgia|M|Head|||26|112152 +3010|MA|Worcester County|Templeton town|2479|0|2|Bolivar|Eloisa|2985|New Jersey|F|Spouse|||25|112153 +3010|MA|Worcester County|Templeton town|2479|0|3|Bolivar|Aron|3001|MA|M|Son|||9|112154 +3010|MA|Worcester County|Templeton town|2479|0|4|Bolivar|Violette|3003|MA|F|Daughter|||7|112155 +3010|MA|Worcester County|Templeton town|2479|0|5|Bolivar|Adell|3007|MA|F|Daughter|||3|112156 + +3010|NH|Belknap County|Tilton town|2480|0|1|Matrone|Porfirio Harvey|2988|New York|M|Head|||22|112157 +3010|NH|Belknap County|Tilton town|2480|0|2|Matrone|Evangelina|2968|Iowa|F|Spouse|||42|112158 +3010|NH|Belknap County|Tilton town|2480|0|3|Matrone|Jeanine|3005|NH|F|Daughter|||5|112159 +3010|NH|Belknap County|Tilton town|2480|0|4|Matrone|Janella|3007|NH|F|Daughter|||3|112160 + +3010|RI|Washington County|South Kingstown town|2481|0|1|Rider|Issac|2991|Colorado|M|Head|||19|112161 +3010|RI|Washington County|South Kingstown town|2481|0|2|Rider|Madeleine Mariela|2974|Norway|F|Spouse|||36|112162 +3010|RI|Washington County|South Kingstown town|2481|0|3|Rider|Lyndsey|3005|RI|F|Daughter|||5|112163 +3010|RI|Washington County|South Kingstown town|2481|0|4|Rider|Elsie|3009|RI|F|Daughter|||1|112164 + +3010|WV|Lincoln County|Harts CDP|2482|0|1|Shepherd|Tyrone Deandre|2967|Chad|M|Head|||43|112165 +3010|WV|Lincoln County|Harts CDP|2482|0|2|Shepherd|Mamie Ray|2986|Nevada|F|Spouse|||24|112166 +3010|WV|Lincoln County|Harts CDP|2482|0|3|Shepherd|Ellamae|3001|WV|F|Daughter|||9|112167 +3010|WV|Lincoln County|Harts CDP|2482|0|4|Shepherd|Chassidy|3003|WV|F|Daughter|||7|112168 +3010|WV|Lincoln County|Harts CDP|2482|0|5|Shepherd|Devin|3009|WV|F|Daughter|||1|112169 + +3010|WV|Lincoln County|Harts CDP|2483|0|1|Shepherd|Nathanael|2977|Solomon Islands|M|Head|||33|112170 +3010|WV|Lincoln County|Harts CDP|2483|0|2|Shepherd|Priscilla|2980|Virginia|F|Spouse|||30|112171 +3010|WV|Lincoln County|Harts CDP|2483|0|3|Shepherd|Teddy|3005|WV|M|Son|||5|112172 +3010|WV|Lincoln County|Harts CDP|2483|0|4|Shepherd|Kurt Rocky|3007|WV|M|Son|||3|112173 +3010|WV|Lincoln County|Harts CDP|2483|0|5|Shepherd|Juana Rae|3009|WV|F|Daughter|||1|112174 + +3010|NJ|Morris County|Florham Park borough|2484|0|1|Pisani|Graig|2978|Mississippi|M|Head|||32|112175 +3010|NJ|Morris County|Florham Park borough|2484|0|2|Pisani|Suzann|2990|Florida|F|Spouse|||20|112176 +3010|NJ|Morris County|Florham Park borough|2484|0|3|Pisani|Jamel|3005|NJ|M|Son|||5|112177 +3010|NJ|Morris County|Florham Park borough|2484|0|4|Pisani|Hong Wendell|3007|NJ|M|Son|||3|112178 + +3010|TN|Obion County|Woodland Mills city|2485|0|1|Pisani|Omer|2992|New York|M|Head|||18|112179 +3010|TN|Obion County|Woodland Mills city|2485|0|2|Pisani|Teresita|2980|New Jersey|F|Spouse|||30|112180 +3010|TN|Obion County|Woodland Mills city|2485|0|3|Pisani|Wilford|3001|TN|M|Son|||9|112181 +3010|TN|Obion County|Woodland Mills city|2485|0|4|Pisani|Ali|3003|TN|M|Son|||7|112182 +3010|TN|Obion County|Woodland Mills city|2485|0|5|Pisani|Kasey|3007|TN|M|Son|||3|112183 +3010|TN|Obion County|Woodland Mills city|2485|0|6|Pisani|Travis|3009|TN|M|Son|||1|112184 + +3010|NY|Oswego County|Amboy town|2486|0|1|Smith|Antonia|2987|Missouri|M|Head|||23|112185 +3010|NY|Oswego County|Amboy town|2486|0|2|Smith|Julienne Marguerita|2992|Czech Republic|F|Spouse|||18|112186 +3010|NY|Oswego County|Amboy town|2486|0|3|Smith|Morris|3001|NY|M|Son|||9|112187 +3010|NY|Oswego County|Amboy town|2486|0|4|Smith|Andrea|3003|NY|M|Son|||7|112188 +3010|NY|Oswego County|Amboy town|2486|0|5|Smith|Carol|3007|NY|F|Daughter|||3|112189 +3010|NY|Oswego County|Amboy town|2486|0|6|Smith|Russell|3009|NY|M|Son|||1|112190 + +3010|MI|Schoolcraft County|Doyle township|2487|0|1|Babe|Gonzalo|2979|Vermont|M|Head|||31|112191 +3010|MI|Schoolcraft County|Doyle township|2487|0|2|Babe|Flossie|2994|Ohio|F|Spouse|||16|112192 +3010|MI|Schoolcraft County|Doyle township|2487|0|3|Babe|Demarcus|3005|MI|M|Son|||5|112193 +3010|MI|Schoolcraft County|Doyle township|2487|0|4|Babe|Idella|3009|MI|F|Daughter|||1|112194 + +3010|MN|Chippewa County|Rheiderland township|2488|0|1|Babe|Andre|2987|Pennsylvania|M|Head|||23|112195 +3010|MN|Chippewa County|Rheiderland township|2488|0|2|Babe|Dell|2987|Georgia|F|Spouse|||23|112196 +3010|MN|Chippewa County|Rheiderland township|2488|0|3|Babe|Crista|3001|MN|F|Daughter|||9|112197 +3010|MN|Chippewa County|Rheiderland township|2488|0|4|Babe|Sharie Juliet|3005|MN|F|Daughter|||5|112198 +3010|MN|Chippewa County|Rheiderland township|2488|0|5|Babe|Federico|3009|MN|M|Son|||1|112199 + +3010|MN|Chippewa County|Rheiderland township|2489|0|1|Babe|Reid|2993|Arizona|M|Head|||17|112200 +3010|MN|Chippewa County|Rheiderland township|2489|0|2|Babe|Aja|2993|California|F|Spouse|||17|112201 +3010|MN|Chippewa County|Rheiderland township|2489|0|3|Babe|Sheba|3001|MN|F|Daughter|||9|112202 +3010|MN|Chippewa County|Rheiderland township|2489|0|4|Babe|Tish|3005|MN|F|Daughter|||5|112203 +3010|MN|Chippewa County|Rheiderland township|2489|0|5|Babe|Adam|3007|MN|M|Son|||3|112204 +3010|MN|Chippewa County|Rheiderland township|2489|0|6|Babe|Drusilla|3009|MN|F|Daughter|||1|112205 + +3010|AR|Lonoke County|Carlisle city|2490|0|1|Nunez|Preston|2989|Oklahoma|M|Head|||21|112206 +3010|AR|Lonoke County|Carlisle city|2490|0|2|Nunez|Zena|2991|North Carolina|F|Spouse|||19|112207 +3010|AR|Lonoke County|Carlisle city|2490|0|3|Nunez|Winter|3001|AR|F|Daughter|||9|112208 +3010|AR|Lonoke County|Carlisle city|2490|0|4|Nunez|Brittni|3003|AR|F|Daughter|||7|112209 +3010|AR|Lonoke County|Carlisle city|2490|0|5|Nunez|Roselle|3005|AR|F|Daughter|||5|112210 + +3010|AL|St. Clair County|Ashville city|2491|0|1|Boday|Darin|2983|Massachusetts|M|Head|||27|112211 +3010|AL|St. Clair County|Ashville city|2491|0|2|Boday|Nicola Selena|2983|Montana|F|Spouse|||27|112212 +3010|AL|St. Clair County|Ashville city|2491|0|3|Boday|Jefferey|3001|AL|M|Son|||9|112213 +3010|AL|St. Clair County|Ashville city|2491|0|4|Boday|Tarsha|3005|AL|F|Daughter|||5|112214 +3010|AL|St. Clair County|Ashville city|2491|0|5|Boday|Rebbecca|3007|AL|F|Daughter|||3|112215 + +3010|AL|St. Clair County|Ashville city|2492|0|1|Boday|Galen|2987|Vanuatu|M|Head|||23|112216 +3010|AL|St. Clair County|Ashville city|2492|0|2|Boday|Tesha|2988|Illinois|F|Spouse|||22|112217 +3010|AL|St. Clair County|Ashville city|2492|0|3|Boday|Austin|3001|AL|M|Son|||9|112218 +3010|AL|St. Clair County|Ashville city|2492|0|4|Boday|Kermit|3007|AL|M|Son|||3|112219 + +3010|MO|DeKalb County|Stewartsville city|2493|0|1|Lautt|Eduardo Grant|2975|New York|M|Head|||35|112220 +3010|MO|DeKalb County|Stewartsville city|2493|0|2|Lautt|Jannie Gita|2990|Virginia|F|Spouse|||20|112221 +3010|MO|DeKalb County|Stewartsville city|2493|0|3|Lautt|Joesph|3003|MO|M|Son|||7|112222 +3010|MO|DeKalb County|Stewartsville city|2493|0|4|Lautt|Ewa|3005|MO|F|Daughter|||5|112223 +3010|MO|DeKalb County|Stewartsville city|2493|0|5|Lautt|Joana|3009|MO|F|Daughter|||1|112224 + +3010|IN|Porter County|Porter town|2494|0|1|Lautt|Heath Aubrey|2985|Oklahoma|M|Head|||25|112225 +3010|IN|Porter County|Porter town|2494|0|2|Lautt|Thomasine|2993|Kansas|F|Spouse|||17|112226 +3010|IN|Porter County|Porter town|2494|0|3|Lautt|Nora|3009|IN|F|Daughter|||1|112227 + +3010|OK|Rogers County|Justice CDP|2495|0|1|Mazariegos|Joaquin|2984|Idaho|M|Head|||26|112228 +3010|OK|Rogers County|Justice CDP|2495|0|2|Mazariegos|Tanisha|2989|Cook Islands|F|Spouse|||21|112229 +3010|OK|Rogers County|Justice CDP|2495|0|3|Mazariegos|Darrell|3001|OK|M|Son|||9|112230 +3010|OK|Rogers County|Justice CDP|2495|0|4|Mazariegos|Myriam|3005|OK|F|Daughter|||5|112231 +3010|OK|Rogers County|Justice CDP|2495|0|5|Mazariegos|Ahmad|3007|OK|M|Son|||3|112232 +3010|OK|Rogers County|Justice CDP|2495|0|6|Mazariegos|Alecia|3009|OK|F|Daughter|||1|112233 + +3010|MI|Alpena County|Wilson township|2496|0|1|Mazariegos|Leonard|2986|Nebraska|M|Head|||24|112234 +3010|MI|Alpena County|Wilson township|2496|0|2|Mazariegos|Cleora|2991|Paraguay|F|Spouse|||19|112235 +3010|MI|Alpena County|Wilson township|2496|0|3|Mazariegos|Lillian|3003|MI|F|Daughter|||7|112236 +3010|MI|Alpena County|Wilson township|2496|0|4|Mazariegos|Gerald|3007|MI|M|Son|||3|112237 + +3010|IA|Black Hawk County, Buchanan County|Jesup city|2497|0|1|Mazariegos|Nick Vince|2988|Maine|M|Head|||22|112238 +3010|IA|Black Hawk County, Buchanan County|Jesup city|2497|0|2|Mazariegos|Xochitl Lelia|2987|Louisiana|F|Spouse|||23|112239 +3010|IA|Black Hawk County, Buchanan County|Jesup city|2497|0|3|Mazariegos|Fritz|3003|IA|M|Son|||7|112240 +3010|IA|Black Hawk County, Buchanan County|Jesup city|2497|0|4|Mazariegos|Lois|3005|IA|F|Daughter|||5|112241 +3010|IA|Black Hawk County, Buchanan County|Jesup city|2497|0|5|Mazariegos|Dortha|3007|IA|F|Daughter|||3|112242 + +3010|WI|Sauk County|Reedsburg town|2498|0|1|Mazariegos|Jacques|2990|Iraq|M|Head|||20|112243 +3010|WI|Sauk County|Reedsburg town|2498|0|2|Mazariegos|Myong|2991|Spain|F|Spouse|||19|112244 +3010|WI|Sauk County|Reedsburg town|2498|0|3|Mazariegos|Benjamin|3005|WI|M|Son|||5|112245 + +3010|SD|Brookings County, Hamlin County|Lake Poinsett CDP|2499|0|1|Glembocki|Bryce|2992|Netherlands|M|Head|||18|112246 +3010|SD|Brookings County, Hamlin County|Lake Poinsett CDP|2499|0|2|Glembocki|Juliet|2987|Montana|F|Spouse|||23|112247 +3010|SD|Brookings County, Hamlin County|Lake Poinsett CDP|2499|0|3|Glembocki|Cecila|3009|SD|F|Daughter|||1|112248 + +3010|MN|Jackson County|Alpha city|2500|0|1|Russom|Wm|2961|Florida|M|Head|||49|112249 +3010|MN|Jackson County|Alpha city|2500|0|2|Russom|Blair|2982|Arkansas|F|Spouse|||28|112250 +3010|MN|Jackson County|Alpha city|2500|0|3|Russom|Jalisa Katherina|3003|MN|F|Daughter|||7|112251 + +3010|MN|Jackson County|Alpha city|2501|0|1|Russom|George|2985|Belize|M|Head|||25|112252 +3010|MN|Jackson County|Alpha city|2501|0|2|Russom|Bunny|2990|Singapore|F|Spouse|||20|112253 +3010|MN|Jackson County|Alpha city|2501|0|3|Russom|Douglas|3001|MN|M|Son|||9|112254 +3010|MN|Jackson County|Alpha city|2501|0|4|Russom|Sharla Filomena|3005|MN|F|Daughter|||5|112255 +3010|MN|Jackson County|Alpha city|2501|0|5|Russom|Sammy|3007|MN|M|Son|||3|112256 +3010|MN|Jackson County|Alpha city|2501|0|6|Russom|Darrin|3009|MN|M|Son|||1|112257 + +3010|WI|Rusk County|Grant town|2502|0|1|Havnen|Gustavo|2993|Cambodia|M|Head|||17|112258 +3010|WI|Rusk County|Grant town|2502|0|2|Havnen|Danuta|2982|Colorado|F|Spouse|||28|112259 +3010|WI|Rusk County|Grant town|2502|0|3|Havnen|Chet|3001|WI|M|Son|||9|112260 +3010|WI|Rusk County|Grant town|2502|0|4|Havnen|Concetta|3003|WI|F|Daughter|||7|112261 +3010|WI|Rusk County|Grant town|2502|0|5|Havnen|Domenic|3009|WI|M|Son|||1|112262 + +3010|MN|Winona County|Utica city|2503|0|1|Che|William|2969|Mississippi|M|Head|||41|112263 +3010|MN|Winona County|Utica city|2503|0|2|Che|Dannie|2988|Suriname|F|Spouse|||22|112264 +3010|MN|Winona County|Utica city|2503|0|3|Che|Ashley|3005|MN|M|Son|||5|112265 +3010|MN|Winona County|Utica city|2503|0|4|Che|Adrian|3007|MN|M|Son|||3|112266 +3010|MN|Winona County|Utica city|2503|0|5|Che|Albert|3009|MN|M|Son|||1|112267 + +3010|KS|Clark County|Ashland city|2504|0|1|Bonnell|Odell|2987|Wyoming|M|Head|||23|112268 +3010|KS|Clark County|Ashland city|2504|0|2|Bonnell|Maricruz|2992|Vermont|F|Spouse|||18|112269 +3010|KS|Clark County|Ashland city|2504|0|3|Bonnell|Xavier|3001|KS|M|Son|||9|112270 +3010|KS|Clark County|Ashland city|2504|0|4|Bonnell|Chang|3003|KS|M|Son|||7|112271 + +3010|CA|Santa Cruz County|Amesti CDP|2505|0|1|Young|Kendall|2975|Alaska|M|Head|||35|112272 +3010|CA|Santa Cruz County|Amesti CDP|2505|0|2|Young|Alisha|2991|Fiji|F|Spouse|||19|112273 +3010|CA|Santa Cruz County|Amesti CDP|2505|0|3|Young|Caitlin|3001|CA|F|Daughter|||9|112274 +3010|CA|Santa Cruz County|Amesti CDP|2505|0|4|Young|Dale|3005|CA|M|Son|||5|112275 +3010|CA|Santa Cruz County|Amesti CDP|2505|0|5|Young|Sang|3009|CA|M|Son|||1|112276 + +3010|AZ|Maricopa County|Gilbert town|2506|0|1|Young|Burl|2993|Kenya|M|Head|||17|112277 +3010|AZ|Maricopa County|Gilbert town|2506|0|2|Young|Thi|2993|Florida|F|Spouse|||17|112278 +3010|AZ|Maricopa County|Gilbert town|2506|0|3|Young|Kymberly|3007|AZ|F|Daughter|||3|112279 +3010|AZ|Maricopa County|Gilbert town|2506|0|4|Young|Malinda|3009|AZ|F|Daughter|||1|112280 + +3010|MN|Aitkin County|McGregor township|2507|0|1|Keys|Basil|2987|North Dakota|M|Head|||23|112281 +3010|MN|Aitkin County|McGregor township|2507|0|2|Keys|Charla|2990|Indiana|F|Spouse|||20|112282 +3010|MN|Aitkin County|McGregor township|2507|0|3|Keys|Johnny|3001|MN|M|Son|||9|112283 +3010|MN|Aitkin County|McGregor township|2507|0|4|Keys|Rodger|3005|MN|M|Son|||5|112284 +3010|MN|Aitkin County|McGregor township|2507|0|5|Keys|Michale|3007|MN|M|Son|||3|112285 +3010|MN|Aitkin County|McGregor township|2507|0|6|Keys|Daniela|3009|MN|F|Daughter|||1|112286 + +3010|PA|Bucks County|Eddington CDP|2508|0|1|Ancira|Edward|2994|Mississippi|M|Head|||16|112287 +3010|PA|Bucks County|Eddington CDP|2508|0|2|Ancira|Jaqueline|2982|Vermont|F|Spouse|||28|112288 +3010|PA|Bucks County|Eddington CDP|2508|0|3|Ancira|Jule|3001|PA|F|Daughter|||9|112289 +3010|PA|Bucks County|Eddington CDP|2508|0|4|Ancira|Joey Josue|3007|PA|M|Son|||3|112290 + +3010|TX|Navarro County|Goodlow city|2509|0|1|Eastmond|Hobert|2988|Wyoming|M|Head|||22|112291 +3010|TX|Navarro County|Goodlow city|2509|0|2|Eastmond|Adelaide|2993|Delaware|F|Spouse|||17|112292 +3010|TX|Navarro County|Goodlow city|2509|0|3|Eastmond|Chase Abe|3001|TX|M|Son|||9|112293 +3010|TX|Navarro County|Goodlow city|2509|0|4|Eastmond|Ruben|3003|TX|M|Son|||7|112294 +3010|TX|Navarro County|Goodlow city|2509|0|5|Eastmond|Mary|3005|TX|M|Son|||5|112295 + +3010|TX|Brazoria County|Quintana town|2510|0|1|Peth|Gabriel|2977|Illinois|M|Head|||33|112296 +3010|TX|Brazoria County|Quintana town|2510|0|2|Peth|Opal|2974|Pennsylvania|F|Spouse|||36|112297 +3010|TX|Brazoria County|Quintana town|2510|0|3|Peth|Moshe|3001|TX|M|Son|||9|112298 +3010|TX|Brazoria County|Quintana town|2510|0|4|Peth|Wiley|3003|TX|M|Son|||7|112299 +3010|TX|Brazoria County|Quintana town|2510|0|5|Peth|Terrance|3005|TX|M|Son|||5|112300 +3010|TX|Brazoria County|Quintana town|2510|0|6|Peth|Oma|3007|TX|F|Daughter|||3|112301 + +3010|OR|Wheeler County|Spray town|2511|0|1|Teaff|Dante|2984|Antarctica|M|Head|||26|112302 +3010|OR|Wheeler County|Spray town|2511|0|2|Teaff|Agueda|2984|Iowa|F|Spouse|||26|112303 +3010|OR|Wheeler County|Spray town|2511|0|3|Teaff|Elza|3005|OR|F|Daughter|||5|112304 +3010|OR|Wheeler County|Spray town|2511|0|4|Teaff|Charles|3009|OR|M|Son|||1|112305 + +3010|KS|Reno County|Arlington city|2512|0|1|Garrett|Damien Derek|2982|North Carolina|M|Head|||28|112306 +3010|KS|Reno County|Arlington city|2512|0|2|Garrett|Frederica Hellen|2988|Missouri|F|Spouse|||22|112307 +3010|KS|Reno County|Arlington city|2512|0|3|Garrett|Jamie Preston|3001|KS|M|Son|||9|112308 +3010|KS|Reno County|Arlington city|2512|0|4|Garrett|Lola|3003|KS|F|Daughter|||7|112309 +3010|KS|Reno County|Arlington city|2512|0|5|Garrett|Lory|3005|KS|F|Daughter|||5|112310 + +3010|KS|Reno County|Arlington city|2513|0|1|Garrett|Parker|2984|Idaho|M|Head|||26|112311 +3010|KS|Reno County|Arlington city|2513|0|2|Garrett|Sharyn|2985|Maryland|F|Spouse|||25|112312 +3010|KS|Reno County|Arlington city|2513|0|3|Garrett|Noreen|3001|KS|F|Daughter|||9|112313 +3010|KS|Reno County|Arlington city|2513|0|4|Garrett|Jeramy|3003|KS|M|Son|||7|112314 +3010|KS|Reno County|Arlington city|2513|0|5|Garrett|Chase|3005|KS|M|Son|||5|112315 + +3010|PA|York County|Seven Valleys borough|2514|0|1|Cull|Seth|2988|North Carolina|M|Head|||22|112316 +3010|PA|York County|Seven Valleys borough|2514|0|2|Cull|Shawna|2993|Virginia|F|Spouse|||17|112317 +3010|PA|York County|Seven Valleys borough|2514|0|3|Cull|Johnson|3001|PA|M|Son|||9|112318 +3010|PA|York County|Seven Valleys borough|2514|0|4|Cull|Hermelinda|3005|PA|F|Daughter|||5|112319 +3010|PA|York County|Seven Valleys borough|2514|0|5|Cull|Leta|3007|PA|F|Daughter|||3|112320 +3010|PA|York County|Seven Valleys borough|2514|0|6|Cull|Pamula|3009|PA|F|Daughter|||1|112321 + +3010|AK|Lake and Peninsula Borough|Chignik Lake CDP|2515|0|1|Cull|Santos|2990|Iowa|M|Head|||20|112322 +3010|AK|Lake and Peninsula Borough|Chignik Lake CDP|2515|0|2|Cull|Melinda|2988|Rhode Island|F|Spouse|||22|112323 +3010|AK|Lake and Peninsula Borough|Chignik Lake CDP|2515|0|3|Cull|Beverley|3001|AK|F|Daughter|||9|112324 +3010|AK|Lake and Peninsula Borough|Chignik Lake CDP|2515|0|4|Cull|Lucio|3003|AK|M|Son|||7|112325 +3010|AK|Lake and Peninsula Borough|Chignik Lake CDP|2515|0|5|Cull|Maurice|3005|AK|F|Daughter|||5|112326 + +3010|MS|Coahoma County|Jonestown town|2516|0|1|May|Darin|2968|South Dakota|M|Head|||42|112327 +3010|MS|Coahoma County|Jonestown town|2516|0|2|May|Joey|2962|New Jersey|F|Spouse|||48|112328 +3010|MS|Coahoma County|Jonestown town|2516|0|3|May|Tim|3001|MS|M|Son|||9|112329 +3010|MS|Coahoma County|Jonestown town|2516|0|4|May|George Hoyt|3005|MS|M|Son|||5|112330 +3010|MS|Coahoma County|Jonestown town|2516|0|5|May|Gerardo|3009|MS|M|Son|||1|112331 + +3010|MI|Lenawee County|Adrian city|2517|0|1|Meade|Kendrick|2993|Idaho|M|Head|||17|112332 +3010|MI|Lenawee County|Adrian city|2517|0|2|Meade|Leesa|2983|Eritrea|F|Spouse|||27|112333 +3010|MI|Lenawee County|Adrian city|2517|0|3|Meade|Paul|3001|MI|M|Son|||9|112334 +3010|MI|Lenawee County|Adrian city|2517|0|4|Meade|Diego|3005|MI|M|Son|||5|112335 + +3010|NJ|Hunterdon County|Union township|2518|0|1|Sullivan|Barry|2991|Oklahoma|M|Head|||19|112336 +3010|NJ|Hunterdon County|Union township|2518|0|2|Sullivan|Eulalia|2991|Arkansas|F|Spouse|||19|112337 +3010|NJ|Hunterdon County|Union township|2518|0|3|Sullivan|Leland|3007|NJ|M|Son|||3|112338 + +3010|NE|Knox County|Bazile Mills village|2519|0|1|Burgess|Deshawn|2988|Mississippi|M|Head|||22|112339 +3010|NE|Knox County|Bazile Mills village|2519|0|2|Burgess|Synthia Ericka|2993|Tennessee|F|Spouse|||17|112340 +3010|NE|Knox County|Bazile Mills village|2519|0|3|Burgess|Isaac|3003|NE|M|Son|||7|112341 +3010|NE|Knox County|Bazile Mills village|2519|0|4|Burgess|Merlin Kenneth|3005|NE|M|Son|||5|112342 +3010|NE|Knox County|Bazile Mills village|2519|0|5|Burgess|Wilson|3007|NE|M|Son|||3|112343 + +3010|WV|Lincoln County|Harts CDP|2520|0|1|Ordonez|Darin|2986|North Dakota|M|Head|||24|112344 +3010|WV|Lincoln County|Harts CDP|2520|0|2|Ordonez|Latesha|2961|Colorado|F|Spouse|||49|112345 +3010|WV|Lincoln County|Harts CDP|2520|0|3|Ordonez|Raymon|3005|WV|M|Son|||5|112346 +3010|WV|Lincoln County|Harts CDP|2520|0|4|Ordonez|Roy|3007|WV|F|Daughter|||3|112347 + +3010|OR|Coos County|Myrtle Point city|2521|0|1|Ordonez|Roger|2990|Rhode Island|M|Head|||20|112348 +3010|OR|Coos County|Myrtle Point city|2521|0|2|Ordonez|Marta|2985|Mississippi|F|Spouse|||25|112349 +3010|OR|Coos County|Myrtle Point city|2521|0|3|Ordonez|Dina|3003|OR|F|Daughter|||7|112350 +3010|OR|Coos County|Myrtle Point city|2521|0|4|Ordonez|Scotty|3005|OR|M|Son|||5|112351 +3010|OR|Coos County|Myrtle Point city|2521|0|5|Ordonez|Tosha Marissa|3009|OR|F|Daughter|||1|112352 + +3010|TN|Obion County|Woodland Mills city|2522|0|1|Stein|Graham|2988|Arizona|M|Head|||22|112353 +3010|TN|Obion County|Woodland Mills city|2522|0|2|Stein|Crystal|2976|Vermont|F|Spouse|||34|112354 +3010|TN|Obion County|Woodland Mills city|2522|0|3|Stein|Shyla|3003|TN|F|Daughter|||7|112355 +3010|TN|Obion County|Woodland Mills city|2522|0|4|Stein|Sammy|3007|TN|M|Son|||3|112356 +3010|TN|Obion County|Woodland Mills city|2522|0|5|Stein|Elli Naoma|3009|TN|F|Daughter|||1|112357 + +3010|NJ|Monmouth County|Little Silver borough|2523|0|1|Stein|Darrin Marlon|2990|Iowa|M|Head|||20|112358 +3010|NJ|Monmouth County|Little Silver borough|2523|0|2|Stein|Hee|2982|Myanmar|F|Spouse|||28|112359 +3010|NJ|Monmouth County|Little Silver borough|2523|0|3|Stein|Hipolito Ricardo|3009|NJ|M|Son|||1|112360 + +3010|OH|Cuyahoga County|Cleveland city|2524|0|1|Miklas|Hershel|2985|South Carolina|M|Head|||25|112361 +3010|OH|Cuyahoga County|Cleveland city|2524|0|2|Miklas|Monika|2986|Iowa|F|Spouse|||24|112362 +3010|OH|Cuyahoga County|Cleveland city|2524|0|3|Miklas|Loralee|3001|OH|F|Daughter|||9|112363 +3010|OH|Cuyahoga County|Cleveland city|2524|0|4|Miklas|Denita Gerald|3005|OH|F|Daughter|||5|112364 + +3010|IL|St. Clair County|Darmstadt CDP|2525|0|1|Eason|Wally|2988|Mississippi|M|Head|||22|112365 +3010|IL|St. Clair County|Darmstadt CDP|2525|0|2|Eason|Onie|2983|West Virginia|F|Spouse|||27|112366 +3010|IL|St. Clair County|Darmstadt CDP|2525|0|3|Eason|Renaldo|3001|IL|M|Son|||9|112367 +3010|IL|St. Clair County|Darmstadt CDP|2525|0|4|Eason|Lorie|3003|IL|F|Daughter|||7|112368 + +3010|IL|St. Clair County|Darmstadt CDP|2526|0|1|Eason|Emile|2992|South Carolina|M|Head|||18|112369 +3010|IL|St. Clair County|Darmstadt CDP|2526|0|2|Eason|Marcia|2989|Hawaii|F|Spouse|||21|112370 +3010|IL|St. Clair County|Darmstadt CDP|2526|0|3|Eason|Helga|3005|IL|F|Daughter|||5|112371 +3010|IL|St. Clair County|Darmstadt CDP|2526|0|4|Eason|Lakeesha|3009|IL|F|Daughter|||1|112372 + +3010|NY|Monroe County|Rush town|2527|0|1|Cuadrado|Beau|2994|Washington|M|Head|||16|112373 +3010|NY|Monroe County|Rush town|2527|0|2|Cuadrado|Refugio|2993|Alabama|F|Spouse|||17|112374 +3010|NY|Monroe County|Rush town|2527|0|3|Cuadrado|Signe|3001|NY|F|Daughter|||9|112375 +3010|NY|Monroe County|Rush town|2527|0|4|Cuadrado|Loren|3009|NY|M|Son|||1|112376 + +3010|KS|Decatur County|Dresden city|2528|0|1|Faraldo|Dexter|2985|Idaho|M|Head|||25|112377 +3010|KS|Decatur County|Dresden city|2528|0|2|Faraldo|Marylin|2989|Montana|F|Spouse|||21|112378 +3010|KS|Decatur County|Dresden city|2528|0|3|Faraldo|Shenna|3001|KS|F|Daughter|||9|112379 +3010|KS|Decatur County|Dresden city|2528|0|4|Faraldo|Trinidad|3003|KS|F|Daughter|||7|112380 + +3010|KS|Decatur County|Dresden city|2529|0|1|Faraldo|Andrew|2987|Malaysia|M|Head|||23|112381 +3010|KS|Decatur County|Dresden city|2529|0|2|Faraldo|Tiana|2993|Ethiopia|F|Spouse|||17|112382 +3010|KS|Decatur County|Dresden city|2529|0|3|Faraldo|Joelle|3003|KS|F|Daughter|||7|112383 +3010|KS|Decatur County|Dresden city|2529|0|4|Faraldo|Tu|3005|KS|F|Daughter|||5|112384 +3010|KS|Decatur County|Dresden city|2529|0|5|Faraldo|Chong|3007|KS|F|Daughter|||3|112385 +3010|KS|Decatur County|Dresden city|2529|0|6|Faraldo|Tosha|3009|KS|F|Daughter|||1|112386 + +3010|KS|Decatur County|Dresden city|2530|0|1|Faraldo|Emile Everette|2991|North Dakota|M|Head|||19|112387 +3010|KS|Decatur County|Dresden city|2530|0|2|Faraldo|Yuki|2985|Maryland|F|Spouse|||25|112388 +3010|KS|Decatur County|Dresden city|2530|0|3|Faraldo|Bruna|3001|KS|F|Daughter|||9|112389 +3010|KS|Decatur County|Dresden city|2530|0|4|Faraldo|Keenan|3009|KS|M|Son|||1|112390 + +3010|WV|Calhoun County|Grantsville town|2531|0|1|Rudy|Chris|2985|Indiana|M|Head|||25|112391 +3010|WV|Calhoun County|Grantsville town|2531|0|2|Rudy|Eleanora|2989|Kentucky|F|Spouse|||21|112392 +3010|WV|Calhoun County|Grantsville town|2531|0|3|Rudy|Jan|3005|WV|M|Son|||5|112393 + +3010|MI|Eaton County|Bellevue township|2532|0|1|Rudy|Phillip|2993|South Carolina|M|Head|||17|112394 +3010|MI|Eaton County|Bellevue township|2532|0|2|Rudy|Tressa|2991|Iowa|F|Spouse|||19|112395 +3010|MI|Eaton County|Bellevue township|2532|0|3|Rudy|Vonda|3003|MI|F|Daughter|||7|112396 +3010|MI|Eaton County|Bellevue township|2532|0|4|Rudy|Irwin|3005|MI|M|Son|||5|112397 +3010|MI|Eaton County|Bellevue township|2532|0|5|Rudy|Connie|3007|MI|M|Son|||3|112398 +3010|MI|Eaton County|Bellevue township|2532|0|6|Rudy|Paola Dulcie|3009|MI|F|Daughter|||1|112399 + +3010|MI|Oakland County|Ferndale city|2533|0|1|Biscardi|Ali|2989|Kansas|M|Head|||21|112400 +3010|MI|Oakland County|Ferndale city|2533|0|2|Biscardi|Roselee|2981|Alabama|F|Spouse|||29|112401 +3010|MI|Oakland County|Ferndale city|2533|0|3|Biscardi|Carmelia|3001|MI|F|Daughter|||9|112402 +3010|MI|Oakland County|Ferndale city|2533|0|4|Biscardi|Shanika|3005|MI|F|Daughter|||5|112403 +3010|MI|Oakland County|Ferndale city|2533|0|5|Biscardi|Douglass Gavin|3007|MI|M|Son|||3|112404 + +3010|WA|Clark County|Orchards CDP|2534|0|1|Pesantes|Gustavo Markus|2989|New Mexico|M|Head|||21|112405 +3010|WA|Clark County|Orchards CDP|2534|0|2|Pesantes|Lois|2989|Mexico|F|Spouse|||21|112406 +3010|WA|Clark County|Orchards CDP|2534|0|3|Pesantes|Susanna|3003|WA|F|Daughter|||7|112407 +3010|WA|Clark County|Orchards CDP|2534|0|4|Pesantes|Yolanda Rosita|3005|WA|F|Daughter|||5|112408 +3010|WA|Clark County|Orchards CDP|2534|0|5|Pesantes|Bradley|3007|WA|M|Son|||3|112409 + +3010|IL|Shelby County|Shelbyville city|2535|0|1|Hartman|Delbert|2982|Tennessee|M|Head|||28|112410 +3010|IL|Shelby County|Shelbyville city|2535|0|2|Hartman|Demetrius|2991|Montana|F|Spouse|||19|112411 +3010|IL|Shelby County|Shelbyville city|2535|0|3|Hartman|Casey|3003|IL|M|Son|||7|112412 +3010|IL|Shelby County|Shelbyville city|2535|0|4|Hartman|Vanita|3005|IL|F|Daughter|||5|112413 +3010|IL|Shelby County|Shelbyville city|2535|0|5|Hartman|Vada|3007|IL|F|Daughter|||3|112414 +3010|IL|Shelby County|Shelbyville city|2535|0|6|Hartman|Sharita|3009|IL|F|Daughter|||1|112415 + +3010|AR|Lonoke County|Carlisle city|2536|0|1|Champlain|Walton Mikel|2974|New Hampshire|M|Head|||36|112416 +3010|AR|Lonoke County|Carlisle city|2536|0|2|Champlain|Myrta|2981|Connecticut|F|Spouse|||29|112417 +3010|AR|Lonoke County|Carlisle city|2536|0|3|Champlain|Winnifred|3003|AR|F|Daughter|||7|112418 +3010|AR|Lonoke County|Carlisle city|2536|0|4|Champlain|Adolph|3005|AR|M|Son|||5|112419 +3010|AR|Lonoke County|Carlisle city|2536|0|5|Champlain|Neva|3007|AR|F|Daughter|||3|112420 + +3010|CO|Grand County|Grand Lake town|2537|0|1|Wilson|Deangelo|2990|Connecticut|M|Head|||20|112421 +3010|CO|Grand County|Grand Lake town|2537|0|2|Wilson|Nikki|2977|North Dakota|F|Spouse|||33|112422 +3010|CO|Grand County|Grand Lake town|2537|0|3|Wilson|Major|3001|CO|M|Son|||9|112423 +3010|CO|Grand County|Grand Lake town|2537|0|4|Wilson|Carmel|3003|CO|F|Daughter|||7|112424 +3010|CO|Grand County|Grand Lake town|2537|0|5|Wilson|Jerlene|3009|CO|F|Daughter|||1|112425 + +3010|OH|Clark County, Greene County|Clifton village|2538|0|1|Wilson|Jc|2992|Vermont|M|Head|||18|112426 +3010|OH|Clark County, Greene County|Clifton village|2538|0|2|Wilson|Danae|2985|South Dakota|F|Spouse|||25|112427 +3010|OH|Clark County, Greene County|Clifton village|2538|0|3|Wilson|Genevieve|3001|OH|F|Daughter|||9|112428 +3010|OH|Clark County, Greene County|Clifton village|2538|0|4|Wilson|Lyda|3009|OH|F|Daughter|||1|112429 + +3010|NY|Columbia County|Chatham town|2539|0|1|Christle|Maxwell Warner|2989|Chad|M|Head|||21|112430 +3010|NY|Columbia County|Chatham town|2539|0|2|Christle|Christena|2993|Michigan|F|Spouse|||17|112431 +3010|NY|Columbia County|Chatham town|2539|0|3|Christle|Jesusa|3003|NY|F|Daughter|||7|112432 +3010|NY|Columbia County|Chatham town|2539|0|4|Christle|Eduardo|3007|NY|M|Son|||3|112433 + +3010|GA|Morgan County|Rutledge city|2540|0|1|Thibodeaux|Freddy|2987|Michigan|M|Head|||23|112434 +3010|GA|Morgan County|Rutledge city|2540|0|2|Thibodeaux|Lewis|2993|Botswana|F|Spouse|||17|112435 +3010|GA|Morgan County|Rutledge city|2540|0|3|Thibodeaux|Paulette Nora|3001|GA|F|Daughter|||9|112436 +3010|GA|Morgan County|Rutledge city|2540|0|4|Thibodeaux|Douglas|3005|GA|M|Son|||5|112437 + +3010|UT|Washington County|Hildale city|2541|0|1|Lallave|Caleb|2990|South Dakota|M|Head|||20|112438 +3010|UT|Washington County|Hildale city|2541|0|2|Lallave|Lynne|2994|Texas|F|Spouse|||16|112439 +3010|UT|Washington County|Hildale city|2541|0|3|Lallave|Kari|3001|UT|F|Daughter|||9|112440 +3010|UT|Washington County|Hildale city|2541|0|4|Lallave|Adan|3003|UT|M|Son|||7|112441 +3010|UT|Washington County|Hildale city|2541|0|5|Lallave|Clifford|3005|UT|M|Son|||5|112442 +3010|UT|Washington County|Hildale city|2541|0|6|Lallave|Edna|3007|UT|F|Daughter|||3|112443 + +3010|MD|Frederick County|Rosemont village|2542|0|1|Smolen|Rico|2968|South Dakota|M|Head|||42|112444 +3010|MD|Frederick County|Rosemont village|2542|0|2|Smolen|Esmeralda|2984|Missouri|F|Spouse|||26|112445 +3010|MD|Frederick County|Rosemont village|2542|0|3|Smolen|Johnathan|3001|MD|M|Son|||9|112446 +3010|MD|Frederick County|Rosemont village|2542|0|4|Smolen|Frederick|3005|MD|M|Son|||5|112447 +3010|MD|Frederick County|Rosemont village|2542|0|5|Smolen|Jeremy|3009|MD|M|Son|||1|112448 + +3010|MD|Frederick County|Rosemont village|2543|0|1|Smolen|Marlin|2988|Albania|M|Head|||22|112449 +3010|MD|Frederick County|Rosemont village|2543|0|2|Smolen|Cheryle|2990|Mali|F|Spouse|||20|112450 +3010|MD|Frederick County|Rosemont village|2543|0|3|Smolen|Irmgard Shawanna|3003|MD|F|Daughter|||7|112451 +3010|MD|Frederick County|Rosemont village|2543|0|4|Smolen|Darrell|3005|MD|M|Son|||5|112452 + +3010|AK|Haines Borough|Mosquito Lake CDP|2544|0|1|Morris|Terrell|2973|Comoros|M|Head|||37|112453 +3010|AK|Haines Borough|Mosquito Lake CDP|2544|0|2|Morris|Stevie|2993|Eritrea|F|Spouse|||17|112454 +3010|AK|Haines Borough|Mosquito Lake CDP|2544|0|3|Morris|Madalyn|3001|AK|F|Daughter|||9|112455 +3010|AK|Haines Borough|Mosquito Lake CDP|2544|0|4|Morris|Bethany|3003|AK|F|Daughter|||7|112456 +3010|AK|Haines Borough|Mosquito Lake CDP|2544|0|5|Morris|Cornelius|3005|AK|M|Son|||5|112457 +3010|AK|Haines Borough|Mosquito Lake CDP|2544|0|6|Morris|Clinton|3009|AK|M|Son|||1|112458 + +3010|VA|Bath County|Warm Springs CDP|2545|0|1|Thomas|Virgil|2971|Illinois|M|Head|||39|112459 +3010|VA|Bath County|Warm Springs CDP|2545|0|2|Thomas|Buffy|2985|Illinois|F|Spouse|||25|112460 +3010|VA|Bath County|Warm Springs CDP|2545|0|3|Thomas|Alyce Marine|3001|VA|F|Daughter|||9|112461 +3010|VA|Bath County|Warm Springs CDP|2545|0|4|Thomas|Harrison|3003|VA|M|Son|||7|112462 +3010|VA|Bath County|Warm Springs CDP|2545|0|5|Thomas|Vertie|3007|VA|F|Daughter|||3|112463 + +3010|VA|Bath County|Warm Springs CDP|2546|0|1|Thomas|Norman|2981|Indiana|M|Head|||29|112464 +3010|VA|Bath County|Warm Springs CDP|2546|0|2|Thomas|Yuki Theresa|2991|West Virginia|F|Spouse|||19|112465 +3010|VA|Bath County|Warm Springs CDP|2546|0|3|Thomas|Monte|3001|VA|M|Son|||9|112466 +3010|VA|Bath County|Warm Springs CDP|2546|0|4|Thomas|Mistie|3003|VA|F|Daughter|||7|112467 +3010|VA|Bath County|Warm Springs CDP|2546|0|5|Thomas|Toby|3007|VA|M|Son|||3|112468 +3010|VA|Bath County|Warm Springs CDP|2546|0|6|Thomas|Zaida|3009|VA|F|Daughter|||1|112469 + +3010|VA|Bath County|Warm Springs CDP|2547|0|1|Thomas|Guillermo|2987|Nebraska|M|Head|||23|112470 +3010|VA|Bath County|Warm Springs CDP|2547|0|2|Thomas|Senaida|2967|Guyana|F|Spouse|||43|112471 +3010|VA|Bath County|Warm Springs CDP|2547|0|3|Thomas|Jake|3001|VA|M|Son|||9|112472 +3010|VA|Bath County|Warm Springs CDP|2547|0|4|Thomas|Demetrice|3003|VA|F|Daughter|||7|112473 +3010|VA|Bath County|Warm Springs CDP|2547|0|5|Thomas|Adelina Louie|3005|VA|F|Daughter|||5|112474 +3010|VA|Bath County|Warm Springs CDP|2547|0|6|Thomas|Raymundo|3007|VA|M|Son|||3|112475 + +3010|MN|Winona County|New Hartford township|2548|0|1|Lund|Wiley|2989|Arizona|M|Head|||21|112476 +3010|MN|Winona County|New Hartford township|2548|0|2|Lund|Ngoc Maryanna|2981|Delaware|F|Spouse|||29|112477 +3010|MN|Winona County|New Hartford township|2548|0|3|Lund|Israel|3001|MN|M|Son|||9|112478 +3010|MN|Winona County|New Hartford township|2548|0|4|Lund|Lulu Jackeline|3005|MN|F|Daughter|||5|112479 +3010|MN|Winona County|New Hartford township|2548|0|5|Lund|Spencer|3007|MN|M|Son|||3|112480 + +3010|CO|Larimer County|Timnath town|2549|0|1|Lund|Henry|2993|Colorado|M|Head|||17|112481 +3010|CO|Larimer County|Timnath town|2549|0|2|Lund|Tammie|2989|Ghana|F|Spouse|||21|112482 +3010|CO|Larimer County|Timnath town|2549|0|3|Lund|Loreen|3005|CO|F|Daughter|||5|112483 +3010|CO|Larimer County|Timnath town|2549|0|4|Lund|Cornell|3007|CO|M|Son|||3|112484 + +3010|MI|Midland County|Edenville township|2550|0|1|Oseguera|Dan|2984|American Samoa|M|Head|||26|112485 +3010|MI|Midland County|Edenville township|2550|0|2|Oseguera|Cecila Anisa|2971|Texas|F|Spouse|||39|112486 +3010|MI|Midland County|Edenville township|2550|0|3|Oseguera|Melvin|3001|MI|F|Daughter|||9|112487 + +3010|AZ|Maricopa County|Gilbert town|2551|0|1|Oseguera|Arlen Saul|2986|North Dakota|M|Head|||24|112488 +3010|AZ|Maricopa County|Gilbert town|2551|0|2|Oseguera|Sona|2991|Oklahoma|F|Spouse|||19|112489 +3010|AZ|Maricopa County|Gilbert town|2551|0|3|Oseguera|Carmine Arden|3001|AZ|M|Son|||9|112490 +3010|AZ|Maricopa County|Gilbert town|2551|0|4|Oseguera|Kate|3003|AZ|F|Daughter|||7|112491 +3010|AZ|Maricopa County|Gilbert town|2551|0|5|Oseguera|Minh|3005|AZ|M|Son|||5|112492 +3010|AZ|Maricopa County|Gilbert town|2551|0|6|Oseguera|Manual Esteban|3007|AZ|M|Son|||3|112493 + +3010|MI|Midland County|Edenville township|2552|0|1|Oseguera|Freeman|2994|Lao People's Democratic Republic|M|Head|||16|112494 +3010|MI|Midland County|Edenville township|2552|0|2|Oseguera|Larisa Tarsha|2991|Papua New Guinea|F|Spouse|||19|112495 +3010|MI|Midland County|Edenville township|2552|0|3|Oseguera|Loraine|3001|MI|F|Daughter|||9|112496 +3010|MI|Midland County|Edenville township|2552|0|4|Oseguera|Bret Allen|3003|MI|M|Son|||7|112497 +3010|MI|Midland County|Edenville township|2552|0|5|Oseguera|Alberto|3005|MI|M|Son|||5|112498 +3010|MI|Midland County|Edenville township|2552|0|6|Oseguera|Delaine|3007|MI|F|Daughter|||3|112499 + +3010|CA|San Luis Obispo County|Templeton CDP|2553|0|1|Clemons|Stefan|2990|Maryland|M|Head|||20|112500 +3010|CA|San Luis Obispo County|Templeton CDP|2553|0|2|Clemons|Sumiko|2974|Cocos (keeling) Islands|F|Spouse|||36|112501 +3010|CA|San Luis Obispo County|Templeton CDP|2553|0|3|Clemons|Domingo|3003|CA|M|Son|||7|112502 +3010|CA|San Luis Obispo County|Templeton CDP|2553|0|4|Clemons|Myong|3009|CA|F|Daughter|||1|112503 + +3010|MI|Kalamazoo County|Westwood CDP|2554|0|1|Lux|Luigi|2978|Alabama|M|Head|||32|112504 +3010|MI|Kalamazoo County|Westwood CDP|2554|0|2|Lux|Terresa|2986|Michigan|F|Spouse|||24|112505 +3010|MI|Kalamazoo County|Westwood CDP|2554|0|3|Lux|Linwood|3003|MI|M|Son|||7|112506 +3010|MI|Kalamazoo County|Westwood CDP|2554|0|4|Lux|Wally|3007|MI|M|Son|||3|112507 + +3010|PA|Philadelphia County|Philadelphia city|2555|0|1|Neumeister|Ernie|2991|Delaware|M|Head|||19|112508 +3010|PA|Philadelphia County|Philadelphia city|2555|0|2|Neumeister|Arlean|2988|Michigan|F|Spouse|||22|112509 +3010|PA|Philadelphia County|Philadelphia city|2555|0|3|Neumeister|Clifford|3001|PA|M|Son|||9|112510 +3010|PA|Philadelphia County|Philadelphia city|2555|0|4|Neumeister|Manda Suzanne|3005|PA|F|Daughter|||5|112511 + +3010|NJ|Ocean County|Dover Beaches North CDP|2556|0|1|Petrauskas|Eusebio|2986|Washington|M|Head|||24|112512 +3010|NJ|Ocean County|Dover Beaches North CDP|2556|0|2|Petrauskas|Kris|2990|Arkansas|F|Spouse|||20|112513 + +3010|NJ|Ocean County|Dover Beaches North CDP|2557|0|1|Petrauskas|Jerrell|2988|South Carolina|M|Head|||22|112514 +3010|NJ|Ocean County|Dover Beaches North CDP|2557|0|2|Petrauskas|Carolyn|2993|Massachusetts|F|Spouse|||17|112515 +3010|NJ|Ocean County|Dover Beaches North CDP|2557|0|3|Petrauskas|Jeffrey|3001|NJ|F|Daughter|||9|112516 +3010|NJ|Ocean County|Dover Beaches North CDP|2557|0|4|Petrauskas|Galen|3003|NJ|M|Son|||7|112517 +3010|NJ|Ocean County|Dover Beaches North CDP|2557|0|5|Petrauskas|Karolyn|3005|NJ|F|Daughter|||5|112518 +3010|NJ|Ocean County|Dover Beaches North CDP|2557|0|6|Petrauskas|Bruno Ernest|3007|NJ|M|Son|||3|112519 +3010|NJ|Ocean County|Dover Beaches North CDP|2557|0|7|Petrauskas|Ike|3009|NJ|M|Son|||1|112520 + +3010|NJ|Ocean County|Dover Beaches North CDP|2558|0|1|Petrauskas|Doyle|2992|Wyoming|M|Head|||18|112521 +3010|NJ|Ocean County|Dover Beaches North CDP|2558|0|2|Petrauskas|Euna Amelia|2993|Idaho|F|Spouse|||17|112522 +3010|NJ|Ocean County|Dover Beaches North CDP|2558|0|3|Petrauskas|Granville Jefferson|3001|NJ|M|Son|||9|112523 +3010|NJ|Ocean County|Dover Beaches North CDP|2558|0|4|Petrauskas|Brendan|3003|NJ|M|Son|||7|112524 +3010|NJ|Ocean County|Dover Beaches North CDP|2558|0|5|Petrauskas|Marjorie|3007|NJ|F|Daughter|||3|112525 +3010|NJ|Ocean County|Dover Beaches North CDP|2558|0|6|Petrauskas|Bernadette|3009|NJ|F|Daughter|||1|112526 + +3010|PR|Arecibo Municipio|La Alianza comunidad|2559|0|1|Hill|Leland|2986|West Virginia|M|Head|||24|112527 +3010|PR|Arecibo Municipio|La Alianza comunidad|2559|0|2|Hill|Berenice Hertha|2969|Vermont|F|Spouse|||41|112528 +3010|PR|Arecibo Municipio|La Alianza comunidad|2559|0|3|Hill|Thurman|3001|PR|M|Son|||9|112529 +3010|PR|Arecibo Municipio|La Alianza comunidad|2559|0|4|Hill|Linda|3005|PR|F|Daughter|||5|112530 +3010|PR|Arecibo Municipio|La Alianza comunidad|2559|0|5|Hill|Lacy|3007|PR|M|Son|||3|112531 +3010|PR|Arecibo Municipio|La Alianza comunidad|2559|0|6|Hill|Lily Christinia|3009|PR|F|Daughter|||1|112532 + +3010|NY|Yates County|Jerusalem town|2560|0|1|Mitchell|Chris|2981|New Hampshire|M|Head|||29|112533 +3010|NY|Yates County|Jerusalem town|2560|0|2|Mitchell|Diedre|2987|Alaska|F|Spouse|||23|112534 +3010|NY|Yates County|Jerusalem town|2560|0|3|Mitchell|Kyle|3003|NY|M|Son|||7|112535 +3010|NY|Yates County|Jerusalem town|2560|0|4|Mitchell|Ema|3005|NY|F|Daughter|||5|112536 +3010|NY|Yates County|Jerusalem town|2560|0|5|Mitchell|Dylan|3007|NY|M|Son|||3|112537 +3010|NY|Yates County|Jerusalem town|2560|0|6|Mitchell|Florencia|3009|NY|F|Daughter|||1|112538 + +3010|NY|Yates County|Jerusalem town|2561|0|1|Mitchell|Dominique|2989|Nevada|M|Head|||21|112539 +3010|NY|Yates County|Jerusalem town|2561|0|2|Mitchell|Danuta|2966|Pennsylvania|F|Spouse|||44|112540 +3010|NY|Yates County|Jerusalem town|2561|0|3|Mitchell|Duane|3001|NY|M|Son|||9|112541 +3010|NY|Yates County|Jerusalem town|2561|0|4|Mitchell|Raul|3005|NY|M|Son|||5|112542 + +3010|WI|Jackson County|Garfield town|2562|0|1|Mitchell|Scott|2993|Oklahoma|M|Head|||17|112543 +3010|WI|Jackson County|Garfield town|2562|0|2|Mitchell|Cyrstal|2990|Indonesia|F|Spouse|||20|112544 +3010|WI|Jackson County|Garfield town|2562|0|3|Mitchell|Williemae Sachiko|3001|WI|F|Daughter|||9|112545 +3010|WI|Jackson County|Garfield town|2562|0|4|Mitchell|Lora|3003|WI|F|Daughter|||7|112546 +3010|WI|Jackson County|Garfield town|2562|0|5|Mitchell|Laila|3005|WI|F|Daughter|||5|112547 +3010|WI|Jackson County|Garfield town|2562|0|6|Mitchell|Kristyn Erna|3007|WI|F|Daughter|||3|112548 +3010|WI|Jackson County|Garfield town|2562|0|7|Mitchell|Yer|3009|WI|F|Daughter|||1|112549 + +3010|LA|Tangipahoa Parish|Tangipahoa village|2563|0|1|Stoute|Eldridge|2987|Vanuatu|M|Head|||23|112550 +3010|LA|Tangipahoa Parish|Tangipahoa village|2563|0|2|Stoute|Latia|2987|North Dakota|F|Spouse|||23|112551 +3010|LA|Tangipahoa Parish|Tangipahoa village|2563|0|3|Stoute|Farah|3001|LA|F|Daughter|||9|112552 +3010|LA|Tangipahoa Parish|Tangipahoa village|2563|0|4|Stoute|Tory|3009|LA|M|Son|||1|112553 + +3010|OH|Stark County|Canal Fulton city|2564|0|1|Stoute|Evan|2993|Paraguay|M|Head|||17|112554 +3010|OH|Stark County|Canal Fulton city|2564|0|2|Stoute|Cherrie|2978|Colorado|F|Spouse|||32|112555 +3010|OH|Stark County|Canal Fulton city|2564|0|3|Stoute|Rossie Carole|3001|OH|F|Daughter|||9|112556 +3010|OH|Stark County|Canal Fulton city|2564|0|4|Stoute|Fran|3009|OH|F|Daughter|||1|112557 + +3010|KS|Reno County|Arlington city|2565|0|1|Hadnot|Dorsey|2984|Arkansas|M|Head|||26|112558 +3010|KS|Reno County|Arlington city|2565|0|2|Hadnot|Lorie|2990|Iowa|F|Spouse|||20|112559 +3010|KS|Reno County|Arlington city|2565|0|3|Hadnot|Bernadette Timika|3001|KS|F|Daughter|||9|112560 +3010|KS|Reno County|Arlington city|2565|0|4|Hadnot|Coleman|3003|KS|M|Son|||7|112561 +3010|KS|Reno County|Arlington city|2565|0|5|Hadnot|Richelle|3005|KS|F|Daughter|||5|112562 +3010|KS|Reno County|Arlington city|2565|0|6|Hadnot|Mariana|3009|KS|F|Daughter|||1|112563 + +3010|KS|Reno County|Arlington city|2566|0|1|Harrison|Donn|2987|Maryland|M|Head|||23|112564 +3010|KS|Reno County|Arlington city|2566|0|2|Harrison|Robbi|2992|Virginia|F|Spouse|||18|112565 +3010|KS|Reno County|Arlington city|2566|0|3|Harrison|Maximina|3001|KS|F|Daughter|||9|112566 +3010|KS|Reno County|Arlington city|2566|0|4|Harrison|Deandre|3003|KS|M|Son|||7|112567 +3010|KS|Reno County|Arlington city|2566|0|5|Harrison|Marquis|3007|KS|M|Son|||3|112568 +3010|KS|Reno County|Arlington city|2566|0|6|Harrison|Jen|3009|KS|F|Daughter|||1|112569 + +3010|TN|Hamilton County|Falling Water CDP|2567|0|1|Cunningham|Brenton|2987|Saint Lucia|M|Head|||23|112570 +3010|TN|Hamilton County|Falling Water CDP|2567|0|2|Cunningham|June Tameka|2994|Venezuela|F|Spouse|||16|112571 +3010|TN|Hamilton County|Falling Water CDP|2567|0|3|Cunningham|Russell|3003|TN|M|Son|||7|112572 +3010|TN|Hamilton County|Falling Water CDP|2567|0|4|Cunningham|Leonard|3005|TN|M|Son|||5|112573 +3010|TN|Hamilton County|Falling Water CDP|2567|0|5|Cunningham|Ernestina|3007|TN|F|Daughter|||3|112574 +3010|TN|Hamilton County|Falling Water CDP|2567|0|6|Cunningham|Jerrold|3009|TN|M|Son|||1|112575 + +3010|OH|Sandusky County|Clyde city|2568|0|1|Giles|Barton|2989|Equatorial Guinea|M|Head|||21|112576 +3010|OH|Sandusky County|Clyde city|2568|0|2|Giles|Natasha|2986|Pennsylvania|F|Spouse|||24|112577 +3010|OH|Sandusky County|Clyde city|2568|0|3|Giles|Octavio|3001|OH|M|Son|||9|112578 +3010|OH|Sandusky County|Clyde city|2568|0|4|Giles|Jose|3007|OH|F|Daughter|||3|112579 +3010|OH|Sandusky County|Clyde city|2568|0|5|Giles|Cyril|3009|OH|M|Son|||1|112580 + +3010|PA|Allegheny County|North Braddock borough|2569|0|1|Johnson|Gaylord Wallace|2986|Rhode Island|M|Head|||24|112581 +3010|PA|Allegheny County|North Braddock borough|2569|0|2|Johnson|Florencia|2980|Missouri|F|Spouse|||30|112582 +3010|PA|Allegheny County|North Braddock borough|2569|0|3|Johnson|Antonia|3007|PA|M|Son|||3|112583 +3010|PA|Allegheny County|North Braddock borough|2569|0|4|Johnson|Christoper|3009|PA|M|Son|||1|112584 + +3010|PA|Allegheny County|North Braddock borough|2570|0|1|Johnson|Adrian|2988|Mississippi|M|Head|||22|112585 +3010|PA|Allegheny County|North Braddock borough|2570|0|2|Johnson|Lilli|2986|Alabama|F|Spouse|||24|112586 +3010|PA|Allegheny County|North Braddock borough|2570|0|3|Johnson|Walton|3003|PA|M|Son|||7|112587 +3010|PA|Allegheny County|North Braddock borough|2570|0|4|Johnson|Jamaal|3005|PA|M|Son|||5|112588 + +3010|MI|Wexford County|Cadillac city|2571|0|1|Babcock|Josiah|2992|Oklahoma|M|Head|||18|112589 +3010|MI|Wexford County|Cadillac city|2571|0|2|Babcock|Ling|2987|Uganda|F|Spouse|||23|112590 +3010|MI|Wexford County|Cadillac city|2571|0|3|Babcock|Scott|3005|MI|M|Son|||5|112591 + +3010|PA|Union County|Hartleton borough|2572|0|1|Delaney|Travis|2992|California|M|Head|||18|112592 +3010|PA|Union County|Hartleton borough|2572|0|2|Delaney|Walter|2993|Aruba|F|Spouse|||17|112593 +3010|PA|Union County|Hartleton borough|2572|0|3|Delaney|Morgan|3005|PA|M|Son|||5|112594 +3010|PA|Union County|Hartleton borough|2572|0|4|Delaney|Aldo|3009|PA|M|Son|||1|112595 + +3010|MS|George County|Lucedale city|2573|0|1|Herrin|Lon|2994|New Mexico|M|Head|||16|112596 +3010|MS|George County|Lucedale city|2573|0|2|Herrin|Glynda|2981|Cyprus|F|Spouse|||29|112597 +3010|MS|George County|Lucedale city|2573|0|3|Herrin|Edmund|3009|MS|M|Son|||1|112598 + +3010|IA|Decatur County|Leon city|2574|0|1|Pound|Mitchell|2994|Rhode Island|M|Head|||16|112599 +3010|IA|Decatur County|Leon city|2574|0|2|Pound|Carolann|2980|Delaware|F|Spouse|||30|112600 +3010|IA|Decatur County|Leon city|2574|0|3|Pound|Esteban|3001|IA|M|Son|||9|112601 +3010|IA|Decatur County|Leon city|2574|0|4|Pound|Augustus|3003|IA|M|Son|||7|112602 +3010|IA|Decatur County|Leon city|2574|0|5|Pound|Emil|3005|IA|M|Son|||5|112603 +3010|IA|Decatur County|Leon city|2574|0|6|Pound|Tomi|3007|IA|F|Daughter|||3|112604 +3010|IA|Decatur County|Leon city|2574|0|7|Pound|Loyd|3009|IA|M|Son|||1|112605 + +3010|AZ|Pima County|Catalina Foothills CDP|2575|0|1|Valdez|Tony|2992|Missouri|M|Head|||18|112606 +3010|AZ|Pima County|Catalina Foothills CDP|2575|0|2|Valdez|Bibi|2994|Idaho|F|Spouse|||16|112607 +3010|AZ|Pima County|Catalina Foothills CDP|2575|0|3|Valdez|Madonna|3001|AZ|F|Daughter|||9|112608 +3010|AZ|Pima County|Catalina Foothills CDP|2575|0|4|Valdez|Shane|3003|AZ|M|Son|||7|112609 +3010|AZ|Pima County|Catalina Foothills CDP|2575|0|5|Valdez|Roma|3005|AZ|F|Daughter|||5|112610 +3010|AZ|Pima County|Catalina Foothills CDP|2575|0|6|Valdez|Jerry|3007|AZ|M|Son|||3|112611 + +3010|AZ|Pima County|Catalina Foothills CDP|2576|0|1|Valdez|Leonardo|2994|Virginia|M|Head|||16|112612 +3010|AZ|Pima County|Catalina Foothills CDP|2576|0|2|Valdez|Jeane|2992|New Hampshire|F|Spouse|||18|112613 +3010|AZ|Pima County|Catalina Foothills CDP|2576|0|3|Valdez|Adaline|3003|AZ|F|Daughter|||7|112614 +3010|AZ|Pima County|Catalina Foothills CDP|2576|0|4|Valdez|Wes|3009|AZ|M|Son|||1|112615 + +3010|NY|Livingston County|Dansville village|2577|0|1|Newbill|Roman|2986|Hawaii|M|Head|||24|112616 +3010|NY|Livingston County|Dansville village|2577|0|2|Newbill|Iluminada Frances|2979|Oregon|F|Spouse|||31|112617 +3010|NY|Livingston County|Dansville village|2577|0|3|Newbill|Rosario|3001|NY|M|Son|||9|112618 +3010|NY|Livingston County|Dansville village|2577|0|4|Newbill|Tasha|3003|NY|F|Daughter|||7|112619 +3010|NY|Livingston County|Dansville village|2577|0|5|Newbill|Arnoldo|3005|NY|M|Son|||5|112620 +3010|NY|Livingston County|Dansville village|2577|0|6|Newbill|Rikki|3009|NY|F|Daughter|||1|112621 + +3010|OH|Cuyahoga County|Cleveland city|2578|0|1|Newbill|Tomas|2988|Ohio|M|Head|||22|112622 +3010|OH|Cuyahoga County|Cleveland city|2578|0|2|Newbill|Brenna|2987|Kansas|F|Spouse|||23|112623 +3010|OH|Cuyahoga County|Cleveland city|2578|0|3|Newbill|Bo|3001|OH|M|Son|||9|112624 +3010|OH|Cuyahoga County|Cleveland city|2578|0|4|Newbill|Christal|3005|OH|F|Daughter|||5|112625 +3010|OH|Cuyahoga County|Cleveland city|2578|0|5|Newbill|Clark|3009|OH|M|Son|||1|112626 + +3010|CA|Colusa County|Grimes CDP|2579|0|1|Capparelli|Irvin|2993|Montana|M|Head|||17|112627 +3010|CA|Colusa County|Grimes CDP|2579|0|2|Capparelli|Bonny|2990|Colorado|F|Spouse|||20|112628 +3010|CA|Colusa County|Grimes CDP|2579|0|3|Capparelli|Cuc|3005|CA|F|Daughter|||5|112629 +3010|CA|Colusa County|Grimes CDP|2579|0|4|Capparelli|Matthew Richie|3007|CA|M|Son|||3|112630 + +3010|CA|Contra Costa County|San Ramon city|2580|0|1|Long|Vern|2977|Idaho|M|Head|||33|112631 +3010|CA|Contra Costa County|San Ramon city|2580|0|2|Long|Lina|2964|Oklahoma|F|Spouse|||46|112632 +3010|CA|Contra Costa County|San Ramon city|2580|0|3|Long|Evie|3007|CA|F|Daughter|||3|112633 + +3010|CA|Contra Costa County|San Ramon city|2581|0|1|Long|Ferdinand|2989|Tennessee|M|Head|||21|112634 +3010|CA|Contra Costa County|San Ramon city|2581|0|2|Long|Bettyann|2980|Massachusetts|F|Spouse|||30|112635 +3010|CA|Contra Costa County|San Ramon city|2581|0|3|Long|Kenny|3005|CA|M|Son|||5|112636 +3010|CA|Contra Costa County|San Ramon city|2581|0|4|Long|Cherry Lasandra|3007|CA|F|Daughter|||3|112637 + +3010|CA|Contra Costa County|San Ramon city|2582|0|1|Long|Willian|2993|California|M|Head|||17|112638 +3010|CA|Contra Costa County|San Ramon city|2582|0|2|Long|Ryan|2990|Alabama|F|Spouse|||20|112639 +3010|CA|Contra Costa County|San Ramon city|2582|0|3|Long|Silvia|3001|CA|F|Daughter|||9|112640 +3010|CA|Contra Costa County|San Ramon city|2582|0|4|Long|Felton|3003|CA|M|Son|||7|112641 +3010|CA|Contra Costa County|San Ramon city|2582|0|5|Long|Brigid|3007|CA|F|Daughter|||3|112642 +3010|CA|Contra Costa County|San Ramon city|2582|0|6|Long|Claudio|3009|CA|M|Son|||1|112643 + +3010|PA|Snyder County|Port Trevorton CDP|2583|0|1|Crane|Leonardo|2991|Delaware|M|Head|||19|112644 +3010|PA|Snyder County|Port Trevorton CDP|2583|0|2|Crane|Lashay|2989|Arkansas|F|Spouse|||21|112645 +3010|PA|Snyder County|Port Trevorton CDP|2583|0|3|Crane|Lincoln|3001|PA|M|Son|||9|112646 +3010|PA|Snyder County|Port Trevorton CDP|2583|0|4|Crane|Angele Faye|3003|PA|F|Daughter|||7|112647 +3010|PA|Snyder County|Port Trevorton CDP|2583|0|5|Crane|Sherry|3009|PA|F|Daughter|||1|112648 + +3010|KS|Decatur County|Dresden city|2584|0|1|Kump|Xavier|2991|Alaska|M|Head|||19|112649 +3010|KS|Decatur County|Dresden city|2584|0|2|Kump|Pura|2993|Maine|F|Spouse|||17|112650 +3010|KS|Decatur County|Dresden city|2584|0|3|Kump|Shari Nathalie|3005|KS|F|Daughter|||5|112651 +3010|KS|Decatur County|Dresden city|2584|0|4|Kump|Chas|3007|KS|M|Son|||3|112652 + +3010|MN|Kittson County|Kennedy city|2585|0|1|Rosenbush|Benjamin Harris|2967|Cambodia|M|Head|||43|112653 +3010|MN|Kittson County|Kennedy city|2585|0|2|Rosenbush|Dena|2986|South Dakota|F|Spouse|||24|112654 +3010|MN|Kittson County|Kennedy city|2585|0|3|Rosenbush|Reuben Roger|3005|MN|M|Son|||5|112655 +3010|MN|Kittson County|Kennedy city|2585|0|4|Rosenbush|Pei|3007|MN|F|Daughter|||3|112656 + +3010|MN|Kittson County|Kennedy city|2586|0|1|Rosenbush|Kelly|2989|Benin|M|Head|||21|112657 +3010|MN|Kittson County|Kennedy city|2586|0|2|Rosenbush|Beatrice|2988|Ohio|F|Spouse|||22|112658 +3010|MN|Kittson County|Kennedy city|2586|0|3|Rosenbush|Kandra|3001|MN|F|Daughter|||9|112659 +3010|MN|Kittson County|Kennedy city|2586|0|4|Rosenbush|Stanton|3003|MN|M|Son|||7|112660 +3010|MN|Kittson County|Kennedy city|2586|0|5|Rosenbush|Bennett|3005|MN|M|Son|||5|112661 +3010|MN|Kittson County|Kennedy city|2586|0|6|Rosenbush|Patrick|3009|MN|M|Son|||1|112662 + +3010|MI|Oakland County|Ferndale city|2587|0|1|Jones|Granville Lee|2992|Louisiana|M|Head|||18|112663 +3010|MI|Oakland County|Ferndale city|2587|0|2|Jones|Melvin|2985|Kansas|F|Spouse|||25|112664 +3010|MI|Oakland County|Ferndale city|2587|0|3|Jones|Clyde|3001|MI|M|Son|||9|112665 +3010|MI|Oakland County|Ferndale city|2587|0|4|Jones|Bennie|3005|MI|M|Son|||5|112666 +3010|MI|Oakland County|Ferndale city|2587|0|5|Jones|Lavern|3007|MI|M|Son|||3|112667 +3010|MI|Oakland County|Ferndale city|2587|0|6|Jones|Lissette|3009|MI|F|Daughter|||1|112668 + +3010|PA|Centre County|Taylor township|2588|0|1|Simpson|Russ|2967|North Carolina|M|Head|||43|112669 +3010|PA|Centre County|Taylor township|2588|0|2|Simpson|Sherise Elizabeth|2991|Alabama|F|Spouse|||19|112670 +3010|PA|Centre County|Taylor township|2588|0|3|Simpson|Carroll Millard|3005|PA|M|Son|||5|112671 + +3010|PA|Montgomery County|West Conshohocken borough|2589|0|1|Simpson|Alphonso Ernest|2987|Turkmenistan|M|Head|||23|112672 +3010|PA|Montgomery County|West Conshohocken borough|2589|0|2|Simpson|Terica|2992|France|F|Spouse|||18|112673 +3010|PA|Montgomery County|West Conshohocken borough|2589|0|3|Simpson|Jodie|3003|PA|F|Daughter|||7|112674 +3010|PA|Montgomery County|West Conshohocken borough|2589|0|4|Simpson|Bryant|3005|PA|M|Son|||5|112675 + +3010|MA|Barnstable County|West Chatham CDP|2590|0|1|Gallusser|Will|2994|Missouri|M|Head|||16|112676 +3010|MA|Barnstable County|West Chatham CDP|2590|0|2|Gallusser|Chieko Eliana|2990|Oregon|F|Spouse|||20|112677 +3010|MA|Barnstable County|West Chatham CDP|2590|0|3|Gallusser|Gavin|3003|MA|M|Son|||7|112678 +3010|MA|Barnstable County|West Chatham CDP|2590|0|4|Gallusser|Daniell|3005|MA|F|Daughter|||5|112679 +3010|MA|Barnstable County|West Chatham CDP|2590|0|5|Gallusser|Carmine|3007|MA|M|Son|||3|112680 + +3010|MO|Henry County|Hartwell CDP|2591|0|1|Harris|Efrain|2967|North Carolina|M|Head|||43|112681 +3010|MO|Henry County|Hartwell CDP|2591|0|2|Harris|Francie Louis|2992|Iowa|F|Spouse|||18|112682 +3010|MO|Henry County|Hartwell CDP|2591|0|3|Harris|Judy|3001|MO|F|Daughter|||9|112683 + +3010|KS|Phillips County|Kirwin city|2592|0|1|Scalice|Lewis|2990|Indonesia|M|Head|||20|112684 +3010|KS|Phillips County|Kirwin city|2592|0|2|Scalice|Gale Hermine|2978|Mauritius|F|Spouse|||32|112685 +3010|KS|Phillips County|Kirwin city|2592|0|3|Scalice|Leeanna Etsuko|3003|KS|F|Daughter|||7|112686 +3010|KS|Phillips County|Kirwin city|2592|0|4|Scalice|Saul|3005|KS|M|Son|||5|112687 +3010|KS|Phillips County|Kirwin city|2592|0|5|Scalice|Joselyn|3007|KS|F|Daughter|||3|112688 +3010|KS|Phillips County|Kirwin city|2592|0|6|Scalice|Rueben Rogelio|3009|KS|M|Son|||1|112689 + +3010|MO|St. Louis County|Vinita Park city|2593|0|1|Ruggero|Chas|2986|New Zealand|M|Head|||24|112690 +3010|MO|St. Louis County|Vinita Park city|2593|0|2|Ruggero|Solange|2994|New Mexico|F|Spouse|||16|112691 +3010|MO|St. Louis County|Vinita Park city|2593|0|3|Ruggero|Lanny|3001|MO|M|Son|||9|112692 +3010|MO|St. Louis County|Vinita Park city|2593|0|4|Ruggero|Magaly|3003|MO|F|Daughter|||7|112693 +3010|MO|St. Louis County|Vinita Park city|2593|0|5|Ruggero|Shira|3009|MO|F|Daughter|||1|112694 + +3010|NH|Carroll County|Union CDP|2594|0|1|Renteria|Domingo|2976|Sweden|M|Head|||34|112695 +3010|NH|Carroll County|Union CDP|2594|0|2|Renteria|Tiffiny|2976|California|F|Spouse|||34|112696 +3010|NH|Carroll County|Union CDP|2594|0|3|Renteria|Carey|3001|NH|F|Daughter|||9|112697 +3010|NH|Carroll County|Union CDP|2594|0|4|Renteria|Fern|3003|NH|F|Daughter|||7|112698 +3010|NH|Carroll County|Union CDP|2594|0|5|Renteria|Stephanie|3009|NH|F|Daughter|||1|112699 + +3010|NH|Carroll County|Union CDP|2595|0|1|Renteria|Fausto|2988|West Virginia|M|Head|||22|112700 +3010|NH|Carroll County|Union CDP|2595|0|2|Renteria|Whitney|2978|Maryland|F|Spouse|||32|112701 +3010|NH|Carroll County|Union CDP|2595|0|3|Renteria|Dana|3003|NH|F|Daughter|||7|112702 +3010|NH|Carroll County|Union CDP|2595|0|4|Renteria|Frieda|3005|NH|F|Daughter|||5|112703 +3010|NH|Carroll County|Union CDP|2595|0|5|Renteria|Sheena|3007|NH|F|Daughter|||3|112704 +3010|NH|Carroll County|Union CDP|2595|0|6|Renteria|Carlena Gia|3009|NH|F|Daughter|||1|112705 + +3010|CA|Yuba County|Beale AFB CDP|2596|0|1|Runyan|Eliseo|2987|Arizona|M|Head|||23|112706 +3010|CA|Yuba County|Beale AFB CDP|2596|0|2|Runyan|Avelina|2992|Somalia|F|Spouse|||18|112707 +3010|CA|Yuba County|Beale AFB CDP|2596|0|3|Runyan|Mason|3001|CA|M|Son|||9|112708 +3010|CA|Yuba County|Beale AFB CDP|2596|0|4|Runyan|Jill|3005|CA|F|Daughter|||5|112709 +3010|CA|Yuba County|Beale AFB CDP|2596|0|5|Runyan|Velia|3007|CA|F|Daughter|||3|112710 + +3010|CA|Amador County|Plymouth city|2597|0|1|Fite|Kasey|2989|Grenada|M|Head|||21|112711 +3010|CA|Amador County|Plymouth city|2597|0|2|Fite|Melida|2988|Indiana|F|Spouse|||22|112712 +3010|CA|Amador County|Plymouth city|2597|0|3|Fite|Diedre Dina|3003|CA|F|Daughter|||7|112713 +3010|CA|Amador County|Plymouth city|2597|0|4|Fite|Willian|3007|CA|M|Son|||3|112714 +3010|CA|Amador County|Plymouth city|2597|0|5|Fite|Julee|3009|CA|F|Daughter|||1|112715 + +3010|MT|Prairie County|Terry town|2598|0|1|Lee|Jan|2994|Kentucky|M|Head|||16|112716 +3010|MT|Prairie County|Terry town|2598|0|2|Lee|Retha|2991|Delaware|F|Spouse|||19|112717 +3010|MT|Prairie County|Terry town|2598|0|3|Lee|Ernie|3005|MT|M|Son|||5|112718 +3010|MT|Prairie County|Terry town|2598|0|4|Lee|Jacques|3007|MT|M|Son|||3|112719 +3010|MT|Prairie County|Terry town|2598|0|5|Lee|Rocky|3009|MT|M|Son|||1|112720 + +3010|NE|Colfax County|Rogers village|2599|0|1|Mischnick|Lewis|2992|Nevada|M|Head|||18|112721 +3010|NE|Colfax County|Rogers village|2599|0|2|Mischnick|Aida|2991|Belize|F|Spouse|||19|112722 +3010|NE|Colfax County|Rogers village|2599|0|3|Mischnick|Albert Joelle|3005|NE|F|Daughter|||5|112723 +3010|NE|Colfax County|Rogers village|2599|0|4|Mischnick|Fred|3007|NE|M|Son|||3|112724 +3010|NE|Colfax County|Rogers village|2599|0|5|Mischnick|Lupe|3009|NE|M|Son|||1|112725 + +3010|OH|Clinton County|Sabina village|2600|0|1|Claffey|Tyree|2991|Louisiana|M|Head|||19|112726 +3010|OH|Clinton County|Sabina village|2600|0|2|Claffey|Jackelyn|2990|Spain|F|Spouse|||20|112727 +3010|OH|Clinton County|Sabina village|2600|0|3|Claffey|Cyrus|3003|OH|M|Son|||7|112728 +3010|OH|Clinton County|Sabina village|2600|0|4|Claffey|Vincent|3007|OH|M|Son|||3|112729 + +3010|PA|Dauphin County|Halifax borough|2601|0|1|Denger|Sammie|2987|Arizona|M|Head|||23|112730 +3010|PA|Dauphin County|Halifax borough|2601|0|2|Denger|Mckenzie|2980|Wisconsin|F|Spouse|||30|112731 +3010|PA|Dauphin County|Halifax borough|2601|0|3|Denger|Wynell|3001|PA|F|Daughter|||9|112732 +3010|PA|Dauphin County|Halifax borough|2601|0|4|Denger|Ferdinand|3005|PA|M|Son|||5|112733 +3010|PA|Dauphin County|Halifax borough|2601|0|5|Denger|Lanny|3009|PA|M|Son|||1|112734 + +3010|PA|Dauphin County|Halifax borough|2602|0|1|Denger|Brendan Ismael|2991|New Mexico|M|Head|||19|112735 +3010|PA|Dauphin County|Halifax borough|2602|0|2|Denger|Dusty|2986|Pennsylvania|F|Spouse|||24|112736 +3010|PA|Dauphin County|Halifax borough|2602|0|3|Denger|Marya|3001|PA|F|Daughter|||9|112737 +3010|PA|Dauphin County|Halifax borough|2602|0|4|Denger|Joycelyn|3005|PA|F|Daughter|||5|112738 + +3010|WI|Forest County|Mole Lake CDP|2603|0|1|Wilson|Kyle Micheal|2987|Texas|M|Head|||23|112739 +3010|WI|Forest County|Mole Lake CDP|2603|0|2|Wilson|Milagro|2972|Maine|F|Spouse|||38|112740 +3010|WI|Forest County|Mole Lake CDP|2603|0|3|Wilson|Lance Alvaro|3001|WI|M|Son|||9|112741 +3010|WI|Forest County|Mole Lake CDP|2603|0|4|Wilson|Erica|3003|WI|F|Daughter|||7|112742 + +3010|GA|DeKalb County|Gresham Park CDP|2604|0|1|Mottram|Zachariah|2981|Oklahoma|M|Head|||29|112743 +3010|GA|DeKalb County|Gresham Park CDP|2604|0|2|Mottram|Arla|2982|North Carolina|F|Spouse|||28|112744 +3010|GA|DeKalb County|Gresham Park CDP|2604|0|3|Mottram|Madge|3003|GA|F|Daughter|||7|112745 +3010|GA|DeKalb County|Gresham Park CDP|2604|0|4|Mottram|Victorina|3005|GA|F|Daughter|||5|112746 +3010|GA|DeKalb County|Gresham Park CDP|2604|0|5|Mottram|Garrett Elisha|3009|GA|M|Son|||1|112747 + +3010|IN|Fayette County, Rush County|Glenwood town|2605|0|1|Mottram|Felipe|2987|Seychelles|M|Head|||23|112748 +3010|IN|Fayette County, Rush County|Glenwood town|2605|0|2|Mottram|Andrea|2988|Samoa|F|Spouse|||22|112749 +3010|IN|Fayette County, Rush County|Glenwood town|2605|0|3|Mottram|Derrick|3001|IN|M|Son|||9|112750 +3010|IN|Fayette County, Rush County|Glenwood town|2605|0|4|Mottram|Enoch|3003|IN|M|Son|||7|112751 +3010|IN|Fayette County, Rush County|Glenwood town|2605|0|5|Mottram|Eusebio|3005|IN|M|Son|||5|112752 + +3010|MA|Middlesex County|Melrose city|2606|0|1|Mottram|Wendell|2993|Hawaii|M|Head|||17|112753 +3010|MA|Middlesex County|Melrose city|2606|0|2|Mottram|Ciera|2984|Missouri|F|Spouse|||26|112754 +3010|MA|Middlesex County|Melrose city|2606|0|3|Mottram|Chanel|3009|MA|F|Daughter|||1|112755 + +3010|PA|Centre County|Park Forest Village CDP|2607|0|1|Mercik|Norbert Jose|2977|California|M|Head|||33|112756 +3010|PA|Centre County|Park Forest Village CDP|2607|0|2|Mercik|Caryn|2987|Mississippi|F|Spouse|||23|112757 +3010|PA|Centre County|Park Forest Village CDP|2607|0|3|Mercik|Raymundo Hans|3003|PA|M|Son|||7|112758 +3010|PA|Centre County|Park Forest Village CDP|2607|0|4|Mercik|Roberto|3007|PA|F|Daughter|||3|112759 + +3010|MS|Hinds County|Clinton city|2608|0|1|Mercik|Joaquin|2985|Turkmenistan|M|Head|||25|112760 +3010|MS|Hinds County|Clinton city|2608|0|2|Mercik|Sherell|2972|Oregon|F|Spouse|||38|112761 +3010|MS|Hinds County|Clinton city|2608|0|3|Mercik|Kina|3003|MS|F|Daughter|||7|112762 +3010|MS|Hinds County|Clinton city|2608|0|4|Mercik|Dina|3009|MS|F|Daughter|||1|112763 + +3010|FL|Palm Beach County|Boca Raton city|2609|0|1|Glander|Elroy|2966|Kentucky|M|Head|||44|112764 +3010|FL|Palm Beach County|Boca Raton city|2609|0|2|Glander|Marylou|2988|Texas|F|Spouse|||22|112765 +3010|FL|Palm Beach County|Boca Raton city|2609|0|3|Glander|Kimberli|3003|FL|F|Daughter|||7|112766 + +3010|WA|Klickitat County|Goldendale city|2610|0|1|Rosso|Oscar|2987|Alaska|M|Head|||23|112767 +3010|WA|Klickitat County|Goldendale city|2610|0|2|Rosso|Ila|2977|Pakistan|F|Spouse|||33|112768 +3010|WA|Klickitat County|Goldendale city|2610|0|3|Rosso|Tamera|3001|WA|F|Daughter|||9|112769 +3010|WA|Klickitat County|Goldendale city|2610|0|4|Rosso|Idalia|3009|WA|F|Daughter|||1|112770 + +3010|NJ|Monmouth County|Shark River Hills CDP|2611|0|1|Liberatore|Damien|2989|South Dakota|M|Head|||21|112771 +3010|NJ|Monmouth County|Shark River Hills CDP|2611|0|2|Liberatore|Rikki|2983|Kentucky|F|Spouse|||27|112772 +3010|NJ|Monmouth County|Shark River Hills CDP|2611|0|3|Liberatore|Bunny|3003|NJ|F|Daughter|||7|112773 +3010|NJ|Monmouth County|Shark River Hills CDP|2611|0|4|Liberatore|Dalia Inge|3005|NJ|F|Daughter|||5|112774 +3010|NJ|Monmouth County|Shark River Hills CDP|2611|0|5|Liberatore|Gretta|3007|NJ|F|Daughter|||3|112775 + +3010|NM|San Miguel County|Pueblo CDP|2612|0|1|Kaucher|Rolf|2970|New York|M|Head|||40|112776 +3010|NM|San Miguel County|Pueblo CDP|2612|0|2|Kaucher|Fallon Lisha|2988|Georgia|F|Spouse|||22|112777 +3010|NM|San Miguel County|Pueblo CDP|2612|0|3|Kaucher|Eulah|3003|NM|F|Daughter|||7|112778 +3010|NM|San Miguel County|Pueblo CDP|2612|0|4|Kaucher|Vern|3005|NM|M|Son|||5|112779 +3010|NM|San Miguel County|Pueblo CDP|2612|0|5|Kaucher|Cammie|3009|NM|F|Daughter|||1|112780 + +3010|NY|Rensselaer County|Nassau village|2613|0|1|Rice|Jame|2992|Maine|M|Head|||18|112781 +3010|NY|Rensselaer County|Nassau village|2613|0|2|Rice|Lia|2990|Alaska|F|Spouse|||20|112782 +3010|NY|Rensselaer County|Nassau village|2613|0|3|Rice|Dimple Donnette|3001|NY|F|Daughter|||9|112783 +3010|NY|Rensselaer County|Nassau village|2613|0|4|Rice|Leighann|3003|NY|F|Daughter|||7|112784 +3010|NY|Rensselaer County|Nassau village|2613|0|5|Rice|Mac|3005|NY|M|Son|||5|112785 + +3010|PA|Greene County|Center township|2614|0|1|Rice|Salvador|2994|California|M|Head|||16|112786 +3010|PA|Greene County|Center township|2614|0|2|Rice|Ena|2984|Oklahoma|F|Spouse|||26|112787 +3010|PA|Greene County|Center township|2614|0|3|Rice|Scott|3003|PA|M|Son|||7|112788 +3010|PA|Greene County|Center township|2614|0|4|Rice|Jacinto|3009|PA|M|Son|||1|112789 + +3010|AL|Washington County|Hobson CDP|2615|0|1|Pardew|Willian|2993|Arizona|M|Head|||17|112790 +3010|AL|Washington County|Hobson CDP|2615|0|2|Pardew|Marguerite Alexander|2990|Arkansas|F|Spouse|||20|112791 +3010|AL|Washington County|Hobson CDP|2615|0|3|Pardew|Joel|3001|AL|M|Son|||9|112792 +3010|AL|Washington County|Hobson CDP|2615|0|4|Pardew|Odell|3003|AL|M|Son|||7|112793 +3010|AL|Washington County|Hobson CDP|2615|0|5|Pardew|Neil|3005|AL|M|Son|||5|112794 +3010|AL|Washington County|Hobson CDP|2615|0|6|Pardew|Samuel|3007|AL|M|Son|||3|112795 + +3010|PR|Arecibo Municipio|La Alianza comunidad|2616|0|1|Niksich|Chadwick|2987|Montana|M|Head|||23|112796 +3010|PR|Arecibo Municipio|La Alianza comunidad|2616|0|2|Niksich|Jennifer|2992|Vermont|F|Spouse|||18|112797 +3010|PR|Arecibo Municipio|La Alianza comunidad|2616|0|3|Niksich|Arturo|3005|PR|M|Son|||5|112798 + +3010|WY|Natrona County|Evansville town|2617|0|1|Cummins|Lloyd|2986|New Jersey|M|Head|||24|112799 +3010|WY|Natrona County|Evansville town|2617|0|2|Cummins|Lindy Melisa|2991|Utah|F|Spouse|||19|112800 +3010|WY|Natrona County|Evansville town|2617|0|3|Cummins|Penelope|3001|WY|F|Daughter|||9|112801 +3010|WY|Natrona County|Evansville town|2617|0|4|Cummins|Bernie|3003|WY|F|Daughter|||7|112802 +3010|WY|Natrona County|Evansville town|2617|0|5|Cummins|Carlo|3007|WY|M|Son|||3|112803 + +3010|NY|Delaware County|Walton town|2618|0|1|Falk|Ivan|2987|Montana|M|Head|||23|112804 +3010|NY|Delaware County|Walton town|2618|0|2|Falk|Hildred|2989|Massachusetts|F|Spouse|||21|112805 +3010|NY|Delaware County|Walton town|2618|0|3|Falk|Jayme|3001|NY|F|Daughter|||9|112806 +3010|NY|Delaware County|Walton town|2618|0|4|Falk|Brad|3003|NY|M|Son|||7|112807 +3010|NY|Delaware County|Walton town|2618|0|5|Falk|Jani|3009|NY|F|Daughter|||1|112808 + +3010|MA|Plymouth County|West Bridgewater town|2619|0|1|Heidema|Francisco|2982|North Dakota|M|Head|||28|112809 +3010|MA|Plymouth County|West Bridgewater town|2619|0|2|Heidema|Julianne|2983|Djibouti|F|Spouse|||27|112810 +3010|MA|Plymouth County|West Bridgewater town|2619|0|3|Heidema|Dorthy Rosa|3001|MA|F|Daughter|||9|112811 +3010|MA|Plymouth County|West Bridgewater town|2619|0|4|Heidema|Jay|3003|MA|M|Son|||7|112812 +3010|MA|Plymouth County|West Bridgewater town|2619|0|5|Heidema|Benjamin Florentino|3005|MA|M|Son|||5|112813 +3010|MA|Plymouth County|West Bridgewater town|2619|0|6|Heidema|Trent Trinidad|3007|MA|M|Son|||3|112814 + +3010|TN|Hamilton County|Falling Water CDP|2620|0|1|Heidema|Barry|2984|East Timor|M|Head|||26|112815 +3010|TN|Hamilton County|Falling Water CDP|2620|0|2|Heidema|Larisa|2989|Minnesota|F|Spouse|||21|112816 +3010|TN|Hamilton County|Falling Water CDP|2620|0|3|Heidema|Lolita Lissette|3001|TN|F|Daughter|||9|112817 +3010|TN|Hamilton County|Falling Water CDP|2620|0|4|Heidema|Aurelio|3003|TN|M|Son|||7|112818 +3010|TN|Hamilton County|Falling Water CDP|2620|0|5|Heidema|Deadra|3007|TN|F|Daughter|||3|112819 + +3010|WA|King County|Black Diamond city|2621|0|1|Lumbreras|Cory|2982|Maryland|M|Head|||28|112820 +3010|WA|King County|Black Diamond city|2621|0|2|Lumbreras|Karleen|2986|New Hampshire|F|Spouse|||24|112821 +3010|WA|King County|Black Diamond city|2621|0|3|Lumbreras|Elvis Monty|3007|WA|M|Son|||3|112822 +3010|WA|King County|Black Diamond city|2621|0|4|Lumbreras|Anisa|3009|WA|F|Daughter|||1|112823 + +3010|NE|Saunders County|Morse Bluff village|2622|0|1|Kahl|Buck|2991|Rhode Island|M|Head|||19|112824 +3010|NE|Saunders County|Morse Bluff village|2622|0|2|Kahl|Ok|2985|Mongolia|F|Spouse|||25|112825 +3010|NE|Saunders County|Morse Bluff village|2622|0|3|Kahl|Perry|3001|NE|M|Son|||9|112826 +3010|NE|Saunders County|Morse Bluff village|2622|0|4|Kahl|Reuben|3005|NE|M|Son|||5|112827 +3010|NE|Saunders County|Morse Bluff village|2622|0|5|Kahl|Nathanael|3009|NE|M|Son|||1|112828 + +3010|PA|Berks County|Lyons borough|2623|0|1|Elmore|Eddie|2992|Indiana|M|Head|||18|112829 +3010|PA|Berks County|Lyons borough|2623|0|2|Elmore|Wilda|2991|Oregon|F|Spouse|||19|112830 +3010|PA|Berks County|Lyons borough|2623|0|3|Elmore|Alan Kendall|3003|PA|M|Son|||7|112831 +3010|PA|Berks County|Lyons borough|2623|0|4|Elmore|Silvia|3007|PA|F|Daughter|||3|112832 +3010|PA|Berks County|Lyons borough|2623|0|5|Elmore|Tula|3009|PA|F|Daughter|||1|112833 + +3010|MD|Garrett County|Deer Park town|2624|0|1|Waltmon|Rogelio|2993|Ohio|M|Head|||17|112834 +3010|MD|Garrett County|Deer Park town|2624|0|2|Waltmon|Lorette|2991|Alabama|F|Spouse|||19|112835 +3010|MD|Garrett County|Deer Park town|2624|0|3|Waltmon|Dessie Paz|3003|MD|F|Daughter|||7|112836 +3010|MD|Garrett County|Deer Park town|2624|0|4|Waltmon|Heriberto|3005|MD|M|Son|||5|112837 +3010|MD|Garrett County|Deer Park town|2624|0|5|Waltmon|Zachery|3009|MD|M|Son|||1|112838 + +3010|MI|Osceola County|Orient township|2625|0|1|Woods|Gino Alan|2975|Nevada|M|Head|||35|112839 +3010|MI|Osceola County|Orient township|2625|0|2|Woods|Fernande|2988|North Carolina|F|Spouse|||22|112840 +3010|MI|Osceola County|Orient township|2625|0|3|Woods|Jody|3003|MI|F|Daughter|||7|112841 +3010|MI|Osceola County|Orient township|2625|0|4|Woods|Allen|3007|MI|M|Son|||3|112842 +3010|MI|Osceola County|Orient township|2625|0|5|Woods|Alphonse|3009|MI|M|Son|||1|112843 + +3010|PA|Union County|Hartleton borough|2626|0|1|Woods|Garth|2977|Bhutan|M|Head|||33|112844 +3010|PA|Union County|Hartleton borough|2626|0|2|Woods|Ardath|2988|Nevada|F|Spouse|||22|112845 +3010|PA|Union County|Hartleton borough|2626|0|3|Woods|Lucilla|3001|PA|F|Daughter|||9|112846 +3010|PA|Union County|Hartleton borough|2626|0|4|Woods|Eusebio|3005|PA|M|Son|||5|112847 +3010|PA|Union County|Hartleton borough|2626|0|5|Woods|Hedwig|3007|PA|F|Daughter|||3|112848 + +3010|MI|Osceola County|Orient township|2627|0|1|Woods|Brant|2985|Liechtenstein|M|Head|||25|112849 +3010|MI|Osceola County|Orient township|2627|0|2|Woods|Serina|2991|Saint Kitts And Nevis|F|Spouse|||19|112850 +3010|MI|Osceola County|Orient township|2627|0|3|Woods|Haley|3001|MI|F|Daughter|||9|112851 +3010|MI|Osceola County|Orient township|2627|0|4|Woods|Kisha|3007|MI|F|Daughter|||3|112852 +3010|MI|Osceola County|Orient township|2627|0|5|Woods|Jamison|3009|MI|M|Son|||1|112853 + +3010|AZ|Apache County|Red Rock CDP|2628|0|1|Abel|Jesus|2991|Rhode Island|M|Head|||19|112854 +3010|AZ|Apache County|Red Rock CDP|2628|0|2|Abel|Toi|2985|Tanzania, United Republic Of|F|Spouse|||25|112855 +3010|AZ|Apache County|Red Rock CDP|2628|0|3|Abel|Judson|3001|AZ|M|Son|||9|112856 +3010|AZ|Apache County|Red Rock CDP|2628|0|4|Abel|Tyron|3003|AZ|M|Son|||7|112857 +3010|AZ|Apache County|Red Rock CDP|2628|0|5|Abel|Jerry|3005|AZ|M|Son|||5|112858 +3010|AZ|Apache County|Red Rock CDP|2628|0|6|Abel|Terry|3007|AZ|M|Son|||3|112859 + +3010|CO|Mesa County|Palisade town|2629|0|1|Hourani|Grant|2994|Utah|M|Head|||16|112860 +3010|CO|Mesa County|Palisade town|2629|0|2|Hourani|Chasidy|2993|New Hampshire|F|Spouse|||17|112861 +3010|CO|Mesa County|Palisade town|2629|0|3|Hourani|Dee|3001|CO|F|Daughter|||9|112862 +3010|CO|Mesa County|Palisade town|2629|0|4|Hourani|Arnulfo|3003|CO|M|Son|||7|112863 +3010|CO|Mesa County|Palisade town|2629|0|5|Hourani|Willy|3007|CO|M|Son|||3|112864 + +3010|CA|Tulare County|Patterson Tract CDP|2630|0|1|Sar|Anibal|2969|Wyoming|M|Head|||41|112865 +3010|CA|Tulare County|Patterson Tract CDP|2630|0|2|Sar|Clotilde|2991|Hawaii|F|Spouse|||19|112866 +3010|CA|Tulare County|Patterson Tract CDP|2630|0|3|Sar|Ezra|3001|CA|M|Son|||9|112867 +3010|CA|Tulare County|Patterson Tract CDP|2630|0|4|Sar|Raleigh|3003|CA|M|Son|||7|112868 +3010|CA|Tulare County|Patterson Tract CDP|2630|0|5|Sar|Leticia|3005|CA|F|Daughter|||5|112869 +3010|CA|Tulare County|Patterson Tract CDP|2630|0|6|Sar|Alessandra|3007|CA|F|Daughter|||3|112870 + +3010|CA|Tulare County|Patterson Tract CDP|2631|0|1|Sar|Matt|2987|Argentina|M|Head|||23|112871 +3010|CA|Tulare County|Patterson Tract CDP|2631|0|2|Sar|Lenna|2978|Panama|F|Spouse|||32|112872 +3010|CA|Tulare County|Patterson Tract CDP|2631|0|3|Sar|Lacy|3003|CA|M|Son|||7|112873 +3010|CA|Tulare County|Patterson Tract CDP|2631|0|4|Sar|Kala Cheryle|3007|CA|F|Daughter|||3|112874 + +3010|MD|Frederick County|New Market town|2632|0|1|Cummings|Phillip|2987|Georgia|M|Head|||23|112875 +3010|MD|Frederick County|New Market town|2632|0|2|Cummings|Bettie|2991|Wisconsin|F|Spouse|||19|112876 +3010|MD|Frederick County|New Market town|2632|0|3|Cummings|Augustus|3001|MD|M|Son|||9|112877 +3010|MD|Frederick County|New Market town|2632|0|4|Cummings|Kandace|3003|MD|F|Daughter|||7|112878 +3010|MD|Frederick County|New Market town|2632|0|5|Cummings|Marc Wilton|3007|MD|M|Son|||3|112879 + +3010|PA|Mercer County|Perry township|2633|0|1|Brown|Booker|2965|Kansas|M|Head|||45|112880 +3010|PA|Mercer County|Perry township|2633|0|2|Brown|George|2986|Pakistan|F|Spouse|||24|112881 +3010|PA|Mercer County|Perry township|2633|0|3|Brown|Connie Ruben|3007|PA|M|Son|||3|112882 + +3010|AZ|Pima County|Catalina Foothills CDP|2634|0|1|Brown|Reinaldo|2973|Tokelau|M|Head|||37|112883 +3010|AZ|Pima County|Catalina Foothills CDP|2634|0|2|Brown|Dinah|2972|Alabama|F|Spouse|||38|112884 +3010|AZ|Pima County|Catalina Foothills CDP|2634|0|3|Brown|Aron|3001|AZ|M|Son|||9|112885 +3010|AZ|Pima County|Catalina Foothills CDP|2634|0|4|Brown|Dell|3007|AZ|F|Daughter|||3|112886 + +3010|AZ|Pima County|Catalina Foothills CDP|2635|0|1|Brown|Jorge|2985|Hawaii|M|Head|||25|112887 +3010|AZ|Pima County|Catalina Foothills CDP|2635|0|2|Brown|Emeline|2986|Vermont|F|Spouse|||24|112888 +3010|AZ|Pima County|Catalina Foothills CDP|2635|0|3|Brown|Sana|3003|AZ|F|Daughter|||7|112889 +3010|AZ|Pima County|Catalina Foothills CDP|2635|0|4|Brown|Willis Tommie|3007|AZ|M|Son|||3|112890 + +3010|WI|Jackson County|Franklin town|2636|0|1|Brown|Rich|2993|South Dakota|M|Head|||17|112891 +3010|WI|Jackson County|Franklin town|2636|0|2|Brown|Kellie Clementine|2990|Oklahoma|F|Spouse|||20|112892 +3010|WI|Jackson County|Franklin town|2636|0|3|Brown|Yahaira Delia|3001|WI|F|Daughter|||9|112893 +3010|WI|Jackson County|Franklin town|2636|0|4|Brown|Albertha|3003|WI|F|Daughter|||7|112894 +3010|WI|Jackson County|Franklin town|2636|0|5|Brown|Nelia|3009|WI|F|Daughter|||1|112895 + +3010|SC|Barnwell County|Kline town|2637|0|1|Javis|Bryce|2981|Maryland|M|Head|||29|112896 +3010|SC|Barnwell County|Kline town|2637|0|2|Javis|Moriah|2986|Honduras|F|Spouse|||24|112897 +3010|SC|Barnwell County|Kline town|2637|0|3|Javis|Sebastian|3001|SC|M|Son|||9|112898 +3010|SC|Barnwell County|Kline town|2637|0|4|Javis|Jeannie|3005|SC|F|Daughter|||5|112899 +3010|SC|Barnwell County|Kline town|2637|0|5|Javis|Oliva|3007|SC|F|Daughter|||3|112900 + +3010|NH|Rockingham County|New Castle town|2638|0|1|Mcindoe|Jonas|2994|Costa Rica|M|Head|||16|112901 +3010|NH|Rockingham County|New Castle town|2638|0|2|Mcindoe|Dinorah|2985|Mississippi|F|Spouse|||25|112902 +3010|NH|Rockingham County|New Castle town|2638|0|3|Mcindoe|Harley|3001|NH|M|Son|||9|112903 +3010|NH|Rockingham County|New Castle town|2638|0|4|Mcindoe|Franklyn|3003|NH|M|Son|||7|112904 +3010|NH|Rockingham County|New Castle town|2638|0|5|Mcindoe|Graham|3005|NH|M|Son|||5|112905 +3010|NH|Rockingham County|New Castle town|2638|0|6|Mcindoe|Raleigh|3007|NH|M|Son|||3|112906 +3010|NH|Rockingham County|New Castle town|2638|0|7|Mcindoe|Monica|3009|NH|F|Daughter|||1|112907 + +3010|MI|Houghton County|Houghton city|2639|0|1|Hutchinson|Glenn Prince|2984|Luxembourg|M|Head|||26|112908 +3010|MI|Houghton County|Houghton city|2639|0|2|Hutchinson|Brandy|2975|Maryland|F|Spouse|||35|112909 +3010|MI|Houghton County|Houghton city|2639|0|3|Hutchinson|Luciana|3005|MI|F|Daughter|||5|112910 +3010|MI|Houghton County|Houghton city|2639|0|4|Hutchinson|Chester|3007|MI|M|Son|||3|112911 + +3010|MI|Houghton County|Houghton city|2640|0|1|Hutchinson|Dudley|2990|New York|M|Head|||20|112912 +3010|MI|Houghton County|Houghton city|2640|0|2|Hutchinson|An|2987|Arkansas|F|Spouse|||23|112913 +3010|MI|Houghton County|Houghton city|2640|0|3|Hutchinson|Carley Cristy|3001|MI|F|Daughter|||9|112914 +3010|MI|Houghton County|Houghton city|2640|0|4|Hutchinson|Terrence|3005|MI|M|Son|||5|112915 +3010|MI|Houghton County|Houghton city|2640|0|5|Hutchinson|Thomasina Tiffany|3007|MI|F|Daughter|||3|112916 +3010|MI|Houghton County|Houghton city|2640|0|6|Hutchinson|Paul|3009|MI|F|Daughter|||1|112917 + +3010|WI|Iron County|Gurney town|2641|0|1|Wagner|Hung|2989|North Carolina|M|Head|||21|112918 +3010|WI|Iron County|Gurney town|2641|0|2|Wagner|Karoline|2978|South Carolina|F|Spouse|||32|112919 +3010|WI|Iron County|Gurney town|2641|0|3|Wagner|Claudine|3001|WI|F|Daughter|||9|112920 +3010|WI|Iron County|Gurney town|2641|0|4|Wagner|Melania|3003|WI|F|Daughter|||7|112921 +3010|WI|Iron County|Gurney town|2641|0|5|Wagner|Morris Dalton|3005|WI|M|Son|||5|112922 +3010|WI|Iron County|Gurney town|2641|0|6|Wagner|Hassie Kaley|3007|WI|F|Daughter|||3|112923 +3010|WI|Iron County|Gurney town|2641|0|7|Wagner|Gina|3009|WI|F|Daughter|||1|112924 + +3010|PA|Wayne County|Damascus township|2642|0|1|Regnier|Deangelo Isidro|2986|Nauru|M|Head|||24|112925 +3010|PA|Wayne County|Damascus township|2642|0|2|Regnier|Lean Lora|2990|Alabama|F|Spouse|||20|112926 +3010|PA|Wayne County|Damascus township|2642|0|3|Regnier|Micheal|3001|PA|M|Son|||9|112927 +3010|PA|Wayne County|Damascus township|2642|0|4|Regnier|Wm|3003|PA|M|Son|||7|112928 + +3010|LA|Assumption Parish|Labadieville CDP|2643|0|1|Estock|Loren|2988|Virginia|M|Head|||22|112929 +3010|LA|Assumption Parish|Labadieville CDP|2643|0|2|Estock|Valorie|2990|Ecuador|F|Spouse|||20|112930 +3010|LA|Assumption Parish|Labadieville CDP|2643|0|3|Estock|Sherwood|3003|LA|M|Son|||7|112931 +3010|LA|Assumption Parish|Labadieville CDP|2643|0|4|Estock|Glynda Rozanne|3009|LA|F|Daughter|||1|112932 + +3010|LA|Plaquemines Parish|Belle Chasse CDP|2644|0|1|Evans|Blair Ray|2993|Arizona|M|Head|||17|112933 +3010|LA|Plaquemines Parish|Belle Chasse CDP|2644|0|2|Evans|Ja|2988|Florida|F|Spouse|||22|112934 +3010|LA|Plaquemines Parish|Belle Chasse CDP|2644|0|3|Evans|Calista Diedre|3001|LA|F|Daughter|||9|112935 +3010|LA|Plaquemines Parish|Belle Chasse CDP|2644|0|4|Evans|Jordan|3009|LA|M|Son|||1|112936 + +3010|ND|Ransom County|Sheldon city|2645|0|1|Mcpeters|Coleman Ted|2985|Arkansas|M|Head|||25|112937 +3010|ND|Ransom County|Sheldon city|2645|0|2|Mcpeters|Donetta|2993|Utah|F|Spouse|||17|112938 +3010|ND|Ransom County|Sheldon city|2645|0|3|Mcpeters|Timmy|3007|ND|M|Son|||3|112939 +3010|ND|Ransom County|Sheldon city|2645|0|4|Mcpeters|Vickie Tomi|3009|ND|F|Daughter|||1|112940 + +3010|MI|Oakland County|Holly village|2646|0|1|Beuchler|Ernie|2981|Minnesota|M|Head|||29|112941 +3010|MI|Oakland County|Holly village|2646|0|2|Beuchler|Jaime|2991|New Jersey|F|Spouse|||19|112942 +3010|MI|Oakland County|Holly village|2646|0|3|Beuchler|Londa|3001|MI|F|Daughter|||9|112943 +3010|MI|Oakland County|Holly village|2646|0|4|Beuchler|Cedric|3003|MI|M|Son|||7|112944 + +3010|SD|Hanson County|Alexandria city|2647|0|1|Landucci|Valentin Broderick|2986|New Hampshire|M|Head|||24|112945 +3010|SD|Hanson County|Alexandria city|2647|0|2|Landucci|Eloise|2992|Arkansas|F|Spouse|||18|112946 +3010|SD|Hanson County|Alexandria city|2647|0|3|Landucci|Ariel|3001|SD|F|Daughter|||9|112947 +3010|SD|Hanson County|Alexandria city|2647|0|4|Landucci|Salvador|3003|SD|M|Son|||7|112948 +3010|SD|Hanson County|Alexandria city|2647|0|5|Landucci|Carol|3005|SD|M|Son|||5|112949 + +3010|MN|Jackson County|Delafield township|2648|0|1|Sinegal|Anibal|2985|Colorado|M|Head|||25|112950 +3010|MN|Jackson County|Delafield township|2648|0|2|Sinegal|Sofia|2969|Iran, Islamic Republic Of|F|Spouse|||41|112951 +3010|MN|Jackson County|Delafield township|2648|0|3|Sinegal|Florencia|3001|MN|F|Daughter|||9|112952 + +3010|MO|Henry County|Hartwell CDP|2649|0|1|Sinegal|Mohammad|2993|Louisiana|M|Head|||17|112953 +3010|MO|Henry County|Hartwell CDP|2649|0|2|Sinegal|Carlotta|2983|Illinois|F|Spouse|||27|112954 +3010|MO|Henry County|Hartwell CDP|2649|0|3|Sinegal|Marcia Breann|3005|MO|F|Daughter|||5|112955 +3010|MO|Henry County|Hartwell CDP|2649|0|4|Sinegal|Frances Wilton|3007|MO|M|Son|||3|112956 +3010|MO|Henry County|Hartwell CDP|2649|0|5|Sinegal|Herb|3009|MO|M|Son|||1|112957 + +3010|MN|Dodge County|Ripley township|2650|0|1|Valle|Chance|2986|New Hampshire|M|Head|||24|112958 +3010|MN|Dodge County|Ripley township|2650|0|2|Valle|Patria|2987|Indiana|F|Spouse|||23|112959 +3010|MN|Dodge County|Ripley township|2650|0|3|Valle|Louanne Krystyna|3001|MN|F|Daughter|||9|112960 +3010|MN|Dodge County|Ripley township|2650|0|4|Valle|Xuan|3005|MN|F|Daughter|||5|112961 +3010|MN|Dodge County|Ripley township|2650|0|5|Valle|Phylis Caitlin|3007|MN|F|Daughter|||3|112962 + +3010|NC|Lenoir County|Pink Hill town|2651|0|1|Valle|Shirley|2994|Delaware|M|Head|||16|112963 +3010|NC|Lenoir County|Pink Hill town|2651|0|2|Valle|Sulema Cristi|2980|Kentucky|F|Spouse|||30|112964 +3010|NC|Lenoir County|Pink Hill town|2651|0|3|Valle|Shea|3001|NC|F|Daughter|||9|112965 +3010|NC|Lenoir County|Pink Hill town|2651|0|4|Valle|Cyril|3003|NC|M|Son|||7|112966 + +3010|PA|York County|Red Lion borough|2652|0|1|Rodges|Darryl|2986|Missouri|M|Head|||24|112967 +3010|PA|York County|Red Lion borough|2652|0|2|Rodges|Della|2992|Senegal|F|Spouse|||18|112968 +3010|PA|York County|Red Lion borough|2652|0|3|Rodges|Dong|3001|PA|F|Daughter|||9|112969 +3010|PA|York County|Red Lion borough|2652|0|4|Rodges|Aurelia|3007|PA|F|Daughter|||3|112970 + +3010|KS|Phillips County|Kirwin city|2653|0|1|Rodges|Zachary|2988|Utah|M|Head|||22|112971 +3010|KS|Phillips County|Kirwin city|2653|0|2|Rodges|Roselia|2988|Indiana|F|Spouse|||22|112972 +3010|KS|Phillips County|Kirwin city|2653|0|3|Rodges|Shad|3001|KS|M|Son|||9|112973 +3010|KS|Phillips County|Kirwin city|2653|0|4|Rodges|Chloe|3003|KS|F|Daughter|||7|112974 +3010|KS|Phillips County|Kirwin city|2653|0|5|Rodges|Ingeborg Angelia|3007|KS|F|Daughter|||3|112975 + +3010|ND|Pembina County|Drayton city|2654|0|1|Lucas|Moshe|2978|South Dakota|M|Head|||32|112976 +3010|ND|Pembina County|Drayton city|2654|0|2|Lucas|Ellena|2994|South Carolina|F|Spouse|||16|112977 +3010|ND|Pembina County|Drayton city|2654|0|3|Lucas|Lawrence Susie|3001|ND|F|Daughter|||9|112978 +3010|ND|Pembina County|Drayton city|2654|0|4|Lucas|Doretta|3009|ND|F|Daughter|||1|112979 + +3010|ND|Pembina County|Drayton city|2655|0|1|Lucas|Leonel|2992|Wyoming|M|Head|||18|112980 +3010|ND|Pembina County|Drayton city|2655|0|2|Lucas|Sharyn|2993|California|F|Spouse|||17|112981 +3010|ND|Pembina County|Drayton city|2655|0|3|Lucas|Jeana|3003|ND|F|Daughter|||7|112982 +3010|ND|Pembina County|Drayton city|2655|0|4|Lucas|Geneva|3005|ND|F|Daughter|||5|112983 +3010|ND|Pembina County|Drayton city|2655|0|5|Lucas|Carri|3007|ND|F|Daughter|||3|112984 + +3010|IL|Crawford County|Flat Rock village|2656|0|1|Bugg|Duncan|2981|California|M|Head|||29|112985 +3010|IL|Crawford County|Flat Rock village|2656|0|2|Bugg|Saundra|2980|Barbados|F|Spouse|||30|112986 +3010|IL|Crawford County|Flat Rock village|2656|0|3|Bugg|Tianna Devin|3001|IL|F|Daughter|||9|112987 +3010|IL|Crawford County|Flat Rock village|2656|0|4|Bugg|Ricarda|3009|IL|F|Daughter|||1|112988 + +3010|TX|Harris County|Taylor Lake Village city|2657|0|1|Poncho|Elroy Stevie|2982|Illinois|M|Head|||28|112989 +3010|TX|Harris County|Taylor Lake Village city|2657|0|2|Poncho|Celia|2984|Pennsylvania|F|Spouse|||26|112990 +3010|TX|Harris County|Taylor Lake Village city|2657|0|3|Poncho|Felton|3003|TX|M|Son|||7|112991 +3010|TX|Harris County|Taylor Lake Village city|2657|0|4|Poncho|Angelo|3007|TX|M|Son|||3|112992 + +3010|TX|Harris County|Taylor Lake Village city|2658|0|1|Poncho|Craig Mitchell|2986|Connecticut|M|Head|||24|112993 +3010|TX|Harris County|Taylor Lake Village city|2658|0|2|Poncho|Nada|2988|Ohio|F|Spouse|||22|112994 +3010|TX|Harris County|Taylor Lake Village city|2658|0|3|Poncho|Mirta|3001|TX|F|Daughter|||9|112995 +3010|TX|Harris County|Taylor Lake Village city|2658|0|4|Poncho|Cherie|3003|TX|F|Daughter|||7|112996 +3010|TX|Harris County|Taylor Lake Village city|2658|0|5|Poncho|Leopoldo|3005|TX|M|Son|||5|112997 +3010|TX|Harris County|Taylor Lake Village city|2658|0|6|Poncho|Cheryl|3007|TX|F|Daughter|||3|112998 + +3010|OR|Tillamook County|Bay City city|2659|0|1|Ringstaff|Hunter|2985|South Dakota|M|Head|||25|112999 +3010|OR|Tillamook County|Bay City city|2659|0|2|Ringstaff|Darcel|2991|Louisiana|F|Spouse|||19|113000 +3010|OR|Tillamook County|Bay City city|2659|0|3|Ringstaff|Louella Yoko|3001|OR|F|Daughter|||9|113001 +3010|OR|Tillamook County|Bay City city|2659|0|4|Ringstaff|Tynisha|3003|OR|F|Daughter|||7|113002 +3010|OR|Tillamook County|Bay City city|2659|0|5|Ringstaff|Liz|3009|OR|F|Daughter|||1|113003 + +3010|MN|St. Louis County|Brookston city|2660|0|1|Ringstaff|Coleman|2989|Israel|M|Head|||21|113004 +3010|MN|St. Louis County|Brookston city|2660|0|2|Ringstaff|Dorethea|2991|Connecticut|F|Spouse|||19|113005 +3010|MN|St. Louis County|Brookston city|2660|0|3|Ringstaff|Daina|3005|MN|F|Daughter|||5|113006 +3010|MN|St. Louis County|Brookston city|2660|0|4|Ringstaff|Dwayne|3009|MN|M|Son|||1|113007 + +3010|WI|Marinette County|Goodman CDP|2661|0|1|Alessi|Santiago|2981|Massachusetts|M|Head|||29|113008 +3010|WI|Marinette County|Goodman CDP|2661|0|2|Alessi|Daniel|2981|Niue|F|Spouse|||29|113009 +3010|WI|Marinette County|Goodman CDP|2661|0|3|Alessi|Lee|3003|WI|F|Daughter|||7|113010 +3010|WI|Marinette County|Goodman CDP|2661|0|4|Alessi|Kory|3007|WI|M|Son|||3|113011 +3010|WI|Marinette County|Goodman CDP|2661|0|5|Alessi|Samuel|3009|WI|M|Son|||1|113012 + +3010|WI|Marinette County|Goodman CDP|2662|0|1|Alessi|Kendall|2989|California|M|Head|||21|113013 +3010|WI|Marinette County|Goodman CDP|2662|0|2|Alessi|Aurora|2985|Wyoming|F|Spouse|||25|113014 +3010|WI|Marinette County|Goodman CDP|2662|0|3|Alessi|Tracy|3001|WI|F|Daughter|||9|113015 +3010|WI|Marinette County|Goodman CDP|2662|0|4|Alessi|Many|3003|WI|F|Daughter|||7|113016 +3010|WI|Marinette County|Goodman CDP|2662|0|5|Alessi|Tawny|3005|WI|F|Daughter|||5|113017 +3010|WI|Marinette County|Goodman CDP|2662|0|6|Alessi|Leon|3007|WI|M|Son|||3|113018 +3010|WI|Marinette County|Goodman CDP|2662|0|7|Alessi|Setsuko|3009|WI|F|Daughter|||1|113019 + +3010|WI|Marinette County|Goodman CDP|2663|0|1|Alessi|Maxwell|2993|Maryland|M|Head|||17|113020 +3010|WI|Marinette County|Goodman CDP|2663|0|2|Alessi|Maple|2989|Tennessee|F|Spouse|||21|113021 +3010|WI|Marinette County|Goodman CDP|2663|0|3|Alessi|Damion|3001|WI|M|Son|||9|113022 +3010|WI|Marinette County|Goodman CDP|2663|0|4|Alessi|Shena|3005|WI|F|Daughter|||5|113023 +3010|WI|Marinette County|Goodman CDP|2663|0|5|Alessi|Harvey Markus|3007|WI|M|Son|||3|113024 +3010|WI|Marinette County|Goodman CDP|2663|0|6|Alessi|Aaron Lezlie|3009|WI|F|Daughter|||1|113025 + +3010|PR|Salinas Municipio|Central Aguirre comunidad|2664|0|1|Grover|King|2967|Nebraska|M|Head|||43|113026 +3010|PR|Salinas Municipio|Central Aguirre comunidad|2664|0|2|Grover|Mirna|2989|Pennsylvania|F|Spouse|||21|113027 +3010|PR|Salinas Municipio|Central Aguirre comunidad|2664|0|3|Grover|Flossie|3005|PR|F|Daughter|||5|113028 +3010|PR|Salinas Municipio|Central Aguirre comunidad|2664|0|4|Grover|Quintin|3007|PR|M|Son|||3|113029 + +3010|NY|Greene County|Prattsville CDP|2665|0|1|Kudley|Luigi Vince|2980|Connecticut|M|Head|||30|113030 +3010|NY|Greene County|Prattsville CDP|2665|0|2|Kudley|Violette Bridgett|2991|Burundi|F|Spouse|||19|113031 +3010|NY|Greene County|Prattsville CDP|2665|0|3|Kudley|Raelene|3001|NY|F|Daughter|||9|113032 +3010|NY|Greene County|Prattsville CDP|2665|0|4|Kudley|Angel|3003|NY|M|Son|||7|113033 +3010|NY|Greene County|Prattsville CDP|2665|0|5|Kudley|Michale|3005|NY|M|Son|||5|113034 + +3010|FL|Palm Beach County|Boca Raton city|2666|0|1|Evans|Orval|2985|Texas|M|Head|||25|113035 +3010|FL|Palm Beach County|Boca Raton city|2666|0|2|Evans|Kristen|2974|Oklahoma|F|Spouse|||36|113036 +3010|FL|Palm Beach County|Boca Raton city|2666|0|3|Evans|Philip|3001|FL|M|Son|||9|113037 +3010|FL|Palm Beach County|Boca Raton city|2666|0|4|Evans|Tiffaney|3003|FL|F|Daughter|||7|113038 +3010|FL|Palm Beach County|Boca Raton city|2666|0|5|Evans|Kristyn|3005|FL|F|Daughter|||5|113039 +3010|FL|Palm Beach County|Boca Raton city|2666|0|6|Evans|Bradford|3009|FL|M|Son|||1|113040 + +3010|OH|Marion County|Caledonia village|2667|0|1|Kujala|Kelley|2978|Portugal|M|Head|||32|113041 +3010|OH|Marion County|Caledonia village|2667|0|2|Kujala|Lannie|2986|Alabama|F|Spouse|||24|113042 +3010|OH|Marion County|Caledonia village|2667|0|3|Kujala|Josh|3001|OH|M|Son|||9|113043 +3010|OH|Marion County|Caledonia village|2667|0|4|Kujala|Jewel|3003|OH|M|Son|||7|113044 +3010|OH|Marion County|Caledonia village|2667|0|5|Kujala|Zachary|3009|OH|M|Son|||1|113045 + +3010|OH|Marion County|Caledonia village|2668|0|1|Kujala|Ward|2994|Texas|M|Head|||16|113046 +3010|OH|Marion County|Caledonia village|2668|0|2|Kujala|Paulette|2988|New Mexico|F|Spouse|||22|113047 +3010|OH|Marion County|Caledonia village|2668|0|3|Kujala|Ahmed Elmer|3005|OH|M|Son|||5|113048 +3010|OH|Marion County|Caledonia village|2668|0|4|Kujala|Kaila|3007|OH|F|Daughter|||3|113049 +3010|OH|Marion County|Caledonia village|2668|0|5|Kujala|Prince|3009|OH|M|Son|||1|113050 + +3010|AL|Conecuh County|Repton town|2669|0|1|Yamanoha|Gilberto|2978|New York|M|Head|||32|113051 +3010|AL|Conecuh County|Repton town|2669|0|2|Yamanoha|Kera|2994|North Dakota|F|Spouse|||16|113052 +3010|AL|Conecuh County|Repton town|2669|0|3|Yamanoha|Jonathan|3001|AL|M|Son|||9|113053 +3010|AL|Conecuh County|Repton town|2669|0|4|Yamanoha|Melissa Ronna|3003|AL|F|Daughter|||7|113054 +3010|AL|Conecuh County|Repton town|2669|0|5|Yamanoha|Rolanda Jovita|3005|AL|F|Daughter|||5|113055 +3010|AL|Conecuh County|Repton town|2669|0|6|Yamanoha|Micheal|3007|AL|M|Son|||3|113056 + +3010|AL|Conecuh County|Repton town|2670|0|1|Yamanoha|Derrick|2986|Connecticut|M|Head|||24|113057 +3010|AL|Conecuh County|Repton town|2670|0|2|Yamanoha|Tamera|2984|Korea, Democratic People's Republic Of|F|Spouse|||26|113058 +3010|AL|Conecuh County|Repton town|2670|0|3|Yamanoha|Bert|3001|AL|M|Son|||9|113059 +3010|AL|Conecuh County|Repton town|2670|0|4|Yamanoha|Christopher|3003|AL|F|Daughter|||7|113060 +3010|AL|Conecuh County|Repton town|2670|0|5|Yamanoha|Benito Todd|3005|AL|M|Son|||5|113061 +3010|AL|Conecuh County|Repton town|2670|0|6|Yamanoha|Ofelia|3007|AL|F|Daughter|||3|113062 +3010|AL|Conecuh County|Repton town|2670|0|7|Yamanoha|Janett|3009|AL|F|Daughter|||1|113063 + +3010|AL|Conecuh County|Repton town|2671|0|1|Yamanoha|Rickey|2990|Israel|M|Head|||20|113064 +3010|AL|Conecuh County|Repton town|2671|0|2|Yamanoha|Janyce|2992|Maine|F|Spouse|||18|113065 +3010|AL|Conecuh County|Repton town|2671|0|3|Yamanoha|William|3005|AL|M|Son|||5|113066 + +3010|WI|Portage County|Dewey town|2672|0|1|Jones|Faustino|2993|New Hampshire|M|Head|||17|113067 +3010|WI|Portage County|Dewey town|2672|0|2|Jones|Tess|2978|Rhode Island|F|Spouse|||32|113068 +3010|WI|Portage County|Dewey town|2672|0|3|Jones|Odessa|3003|WI|F|Daughter|||7|113069 +3010|WI|Portage County|Dewey town|2672|0|4|Jones|Zachariah Joesph|3005|WI|M|Son|||5|113070 +3010|WI|Portage County|Dewey town|2672|0|5|Jones|Brittany|3007|WI|F|Daughter|||3|113071 +3010|WI|Portage County|Dewey town|2672|0|6|Jones|Twana Ayako|3009|WI|F|Daughter|||1|113072 + +3010|NY|Dutchess County|Dover Plains CDP|2673|0|1|Camilleri|Jamal|2990|Wyoming|M|Head|||20|113073 +3010|NY|Dutchess County|Dover Plains CDP|2673|0|2|Camilleri|Lezlie|2988|Nevada|F|Spouse|||22|113074 +3010|NY|Dutchess County|Dover Plains CDP|2673|0|3|Camilleri|Faustino|3005|NY|M|Son|||5|113075 +3010|NY|Dutchess County|Dover Plains CDP|2673|0|4|Camilleri|Katrina|3007|NY|F|Daughter|||3|113076 + +3010|FL|Bay County|Springfield city|2674|0|1|Camilleri|Hugh|2992|Liechtenstein|M|Head|||18|113077 +3010|FL|Bay County|Springfield city|2674|0|2|Camilleri|Rosana|2993|Alabama|F|Spouse|||17|113078 +3010|FL|Bay County|Springfield city|2674|0|3|Camilleri|Johnie|3001|FL|M|Son|||9|113079 +3010|FL|Bay County|Springfield city|2674|0|4|Camilleri|Walker|3003|FL|M|Son|||7|113080 + +3010|NJ|Monmouth County|Shark River Hills CDP|2675|0|1|Bevins|Wyatt|2984|North Dakota|M|Head|||26|113081 +3010|NJ|Monmouth County|Shark River Hills CDP|2675|0|2|Bevins|Jenniffer|2993|Hawaii|F|Spouse|||17|113082 +3010|NJ|Monmouth County|Shark River Hills CDP|2675|0|3|Bevins|Tobie|3003|NJ|F|Daughter|||7|113083 +3010|NJ|Monmouth County|Shark River Hills CDP|2675|0|4|Bevins|Jenni|3005|NJ|F|Daughter|||5|113084 + +3010|AK|Northwest Arctic Borough|Kivalina city|2676|0|1|Ross|Kirby Horacio|2979|Alabama|M|Head|||31|113085 +3010|AK|Northwest Arctic Borough|Kivalina city|2676|0|2|Ross|Geralyn|2983|South Dakota|F|Spouse|||27|113086 +3010|AK|Northwest Arctic Borough|Kivalina city|2676|0|3|Ross|Santos Dan|3003|AK|F|Daughter|||7|113087 +3010|AK|Northwest Arctic Borough|Kivalina city|2676|0|4|Ross|Ira|3005|AK|M|Son|||5|113088 +3010|AK|Northwest Arctic Borough|Kivalina city|2676|0|5|Ross|Rosario|3007|AK|M|Son|||3|113089 +3010|AK|Northwest Arctic Borough|Kivalina city|2676|0|6|Ross|Noelle|3009|AK|F|Daughter|||1|113090 + +3010|AK|Northwest Arctic Borough|Kivalina city|2677|0|1|Ross|Jeffry|2987|Iowa|M|Head|||23|113091 +3010|AK|Northwest Arctic Borough|Kivalina city|2677|0|2|Ross|Ardath Lean|2987|Nevada|F|Spouse|||23|113092 +3010|AK|Northwest Arctic Borough|Kivalina city|2677|0|3|Ross|Lurlene Gaynell|3001|AK|F|Daughter|||9|113093 +3010|AK|Northwest Arctic Borough|Kivalina city|2677|0|4|Ross|Marni|3005|AK|F|Daughter|||5|113094 +3010|AK|Northwest Arctic Borough|Kivalina city|2677|0|5|Ross|Chong|3007|AK|F|Daughter|||3|113095 + +3010|PA|Mifflin County|Longfellow CDP|2678|0|1|Cottrell|Rick|2987|Reunion|M|Head|||23|113096 +3010|PA|Mifflin County|Longfellow CDP|2678|0|2|Cottrell|Jacquelyn Melina|2976|Alaska|F|Spouse|||34|113097 +3010|PA|Mifflin County|Longfellow CDP|2678|0|3|Cottrell|Arnold|3001|PA|M|Son|||9|113098 +3010|PA|Mifflin County|Longfellow CDP|2678|0|4|Cottrell|Kyong|3005|PA|F|Daughter|||5|113099 +3010|PA|Mifflin County|Longfellow CDP|2678|0|5|Cottrell|Maricela|3007|PA|F|Daughter|||3|113100 +3010|PA|Mifflin County|Longfellow CDP|2678|0|6|Cottrell|Curtis Rheba|3009|PA|F|Daughter|||1|113101 + +3010|NY|Jefferson County|Le Ray town|2679|0|1|Dinapoli|Pat Ray|2987|Arizona|M|Head|||23|113102 +3010|NY|Jefferson County|Le Ray town|2679|0|2|Dinapoli|Cecilia Robbie|2985|Delaware|F|Spouse|||25|113103 +3010|NY|Jefferson County|Le Ray town|2679|0|3|Dinapoli|Gayle|3001|NY|F|Daughter|||9|113104 +3010|NY|Jefferson County|Le Ray town|2679|0|4|Dinapoli|Gil|3005|NY|M|Son|||5|113105 +3010|NY|Jefferson County|Le Ray town|2679|0|5|Dinapoli|Harold|3009|NY|M|Son|||1|113106 + +3010|KY|McCracken County|Reidland CDP|2680|0|1|Johnson|Rodney|2990|Oklahoma|M|Head|||20|113107 +3010|KY|McCracken County|Reidland CDP|2680|0|2|Johnson|Dessie|2985|California|F|Spouse|||25|113108 +3010|KY|McCracken County|Reidland CDP|2680|0|3|Johnson|Curtis|3001|KY|M|Son|||9|113109 +3010|KY|McCracken County|Reidland CDP|2680|0|4|Johnson|Jeffry|3003|KY|M|Son|||7|113110 +3010|KY|McCracken County|Reidland CDP|2680|0|5|Johnson|Shanon|3005|KY|F|Daughter|||5|113111 +3010|KY|McCracken County|Reidland CDP|2680|0|6|Johnson|Marcus|3007|KY|M|Son|||3|113112 +3010|KY|McCracken County|Reidland CDP|2680|0|7|Johnson|Charlotte Santana|3009|KY|F|Daughter|||1|113113 + +3010|MN|Sibley County|Green Isle city|2681|0|1|Strei|Teddy|2993|Alabama|M|Head|||17|113114 +3010|MN|Sibley County|Green Isle city|2681|0|2|Strei|Arletha|2983|Connecticut|F|Spouse|||27|113115 +3010|MN|Sibley County|Green Isle city|2681|0|3|Strei|Vito|3001|MN|M|Son|||9|113116 +3010|MN|Sibley County|Green Isle city|2681|0|4|Strei|Vince|3007|MN|M|Son|||3|113117 +3010|MN|Sibley County|Green Isle city|2681|0|5|Strei|Margene|3009|MN|F|Daughter|||1|113118 + +3010|NY|Kings County|Brooklyn borough|2682|0|1|Kohl|Malcom|2966|Missouri|M|Head|||44|113119 +3010|NY|Kings County|Brooklyn borough|2682|0|2|Kohl|Burma|2985|Israel|F|Spouse|||25|113120 +3010|NY|Kings County|Brooklyn borough|2682|0|3|Kohl|Dorian|3003|NY|M|Son|||7|113121 +3010|NY|Kings County|Brooklyn borough|2682|0|4|Kohl|Berniece|3005|NY|F|Daughter|||5|113122 + +3010|NY|Delaware County|Walton town|2683|0|1|Kohl|Marcelo Gino|2988|New Hampshire|M|Head|||22|113123 +3010|NY|Delaware County|Walton town|2683|0|2|Kohl|Jolie|2991|Sao Tome And Principe|F|Spouse|||19|113124 +3010|NY|Delaware County|Walton town|2683|0|3|Kohl|Chia|3009|NY|F|Daughter|||1|113125 + +3010|VA|Manassas Park city|Manassas Park city|2684|0|1|Arciba|Burton|2991|North Dakota|M|Head|||19|113126 +3010|VA|Manassas Park city|Manassas Park city|2684|0|2|Arciba|Jayna|2991|Heard Island And Mcdonald Islands|F|Spouse|||19|113127 +3010|VA|Manassas Park city|Manassas Park city|2684|0|3|Arciba|Marlene|3003|VA|F|Daughter|||7|113128 +3010|VA|Manassas Park city|Manassas Park city|2684|0|4|Arciba|Joel|3007|VA|M|Son|||3|113129 + +3010|IA|Bremer County, Fayette County|Sumner city|2685|0|1|Erekson|Xavier|2967|Arizona|M|Head|||43|113130 +3010|IA|Bremer County, Fayette County|Sumner city|2685|0|2|Erekson|Cinthia|2970|Iowa|F|Spouse|||40|113131 +3010|IA|Bremer County, Fayette County|Sumner city|2685|0|3|Erekson|Deloras|3001|IA|F|Daughter|||9|113132 +3010|IA|Bremer County, Fayette County|Sumner city|2685|0|4|Erekson|Clarinda|3003|IA|F|Daughter|||7|113133 +3010|IA|Bremer County, Fayette County|Sumner city|2685|0|5|Erekson|Christie|3005|IA|F|Daughter|||5|113134 +3010|IA|Bremer County, Fayette County|Sumner city|2685|0|6|Erekson|Richard|3007|IA|M|Son|||3|113135 + +3010|IA|Bremer County, Fayette County|Sumner city|2686|0|1|Erekson|Werner Joe|2975|Kansas|M|Head|||35|113136 +3010|IA|Bremer County, Fayette County|Sumner city|2686|0|2|Erekson|Camie|2976|Moldova, Republic Of|F|Spouse|||34|113137 +3010|IA|Bremer County, Fayette County|Sumner city|2686|0|3|Erekson|Yuri|3003|IA|F|Daughter|||7|113138 +3010|IA|Bremer County, Fayette County|Sumner city|2686|0|4|Erekson|Meryl|3007|IA|F|Daughter|||3|113139 +3010|IA|Bremer County, Fayette County|Sumner city|2686|0|5|Erekson|Luci|3009|IA|F|Daughter|||1|113140 + +3010|PA|Tioga County|Wellsboro borough|2687|0|1|Gschwend|Ross|2987|Western Sahara|M|Head|||23|113141 +3010|PA|Tioga County|Wellsboro borough|2687|0|2|Gschwend|Ardelle|2990|Liechtenstein|F|Spouse|||20|113142 +3010|PA|Tioga County|Wellsboro borough|2687|0|3|Gschwend|Mike|3001|PA|F|Daughter|||9|113143 +3010|PA|Tioga County|Wellsboro borough|2687|0|4|Gschwend|Danial|3005|PA|M|Son|||5|113144 + +3010|PA|York County|Manheim township|2688|0|1|Shults|Lionel|2974|Nevada|M|Head|||36|113145 +3010|PA|York County|Manheim township|2688|0|2|Shults|Amada Cathleen|2987|New Mexico|F|Spouse|||23|113146 +3010|PA|York County|Manheim township|2688|0|3|Shults|Thaddeus|3001|PA|M|Son|||9|113147 +3010|PA|York County|Manheim township|2688|0|4|Shults|Derek|3005|PA|M|Son|||5|113148 +3010|PA|York County|Manheim township|2688|0|5|Shults|Nathan|3007|PA|M|Son|||3|113149 +3010|PA|York County|Manheim township|2688|0|6|Shults|Johnathon|3009|PA|M|Son|||1|113150 + +3010|PA|York County|Manheim township|2689|0|1|Shults|Andrea|2994|Arizona|M|Head|||16|113151 +3010|PA|York County|Manheim township|2689|0|2|Shults|Liliana|2986|Antarctica|F|Spouse|||24|113152 +3010|PA|York County|Manheim township|2689|0|3|Shults|Sacha|3001|PA|F|Daughter|||9|113153 +3010|PA|York County|Manheim township|2689|0|4|Shults|Lanny|3005|PA|M|Son|||5|113154 + +3010|NY|Nassau County|Manhasset CDP|2690|0|1|Mcintyre|Darin|2977|Tennessee|M|Head|||33|113155 +3010|NY|Nassau County|Manhasset CDP|2690|0|2|Mcintyre|Willie|2988|Washington|F|Spouse|||22|113156 +3010|NY|Nassau County|Manhasset CDP|2690|0|3|Mcintyre|Marcella|3005|NY|F|Daughter|||5|113157 +3010|NY|Nassau County|Manhasset CDP|2690|0|4|Mcintyre|Fumiko|3007|NY|F|Daughter|||3|113158 +3010|NY|Nassau County|Manhasset CDP|2690|0|5|Mcintyre|Margherita|3009|NY|F|Daughter|||1|113159 + +3010|NH|Carroll County|Albany town|2691|0|1|Allen|Gabriel|2991|Ohio|M|Head|||19|113160 +3010|NH|Carroll County|Albany town|2691|0|2|Allen|Rhea|2994|Alabama|F|Spouse|||16|113161 +3010|NH|Carroll County|Albany town|2691|0|3|Allen|Laverne|3001|NH|M|Son|||9|113162 + +3010|NJ|Camden County|Voorhees township|2692|0|1|Cupples|Noah|2990|Colorado|M|Head|||20|113163 +3010|NJ|Camden County|Voorhees township|2692|0|2|Cupples|Rachelle|2991|Louisiana|F|Spouse|||19|113164 +3010|NJ|Camden County|Voorhees township|2692|0|3|Cupples|Tonisha|3007|NJ|F|Daughter|||3|113165 +3010|NJ|Camden County|Voorhees township|2692|0|4|Cupples|Charita|3009|NJ|F|Daughter|||1|113166 + +3010|MT|Hill County|Sangrey CDP|2693|0|1|Cupples|Houston|2994|Nevada|M|Head|||16|113167 +3010|MT|Hill County|Sangrey CDP|2693|0|2|Cupples|Jacinta Alpha|2993|Ohio|F|Spouse|||17|113168 +3010|MT|Hill County|Sangrey CDP|2693|0|3|Cupples|Galen|3005|MT|M|Son|||5|113169 + +3010|WI|Trempealeau County|Arcadia city|2694|0|1|Mccuin|Granville|2990|Massachusetts|M|Head|||20|113170 +3010|WI|Trempealeau County|Arcadia city|2694|0|2|Mccuin|Loida|2990|New Jersey|F|Spouse|||20|113171 +3010|WI|Trempealeau County|Arcadia city|2694|0|3|Mccuin|Savannah|3003|WI|F|Daughter|||7|113172 +3010|WI|Trempealeau County|Arcadia city|2694|0|4|Mccuin|Iva|3007|WI|F|Daughter|||3|113173 +3010|WI|Trempealeau County|Arcadia city|2694|0|5|Mccuin|Hugh|3009|WI|M|Son|||1|113174 + +3010|PA|Berks County|Shoemakersville borough|2695|0|1|Lebitski|Eldridge|2972|Washington|M|Head|||38|113175 +3010|PA|Berks County|Shoemakersville borough|2695|0|2|Lebitski|Marie|2979|Alabama|F|Spouse|||31|113176 +3010|PA|Berks County|Shoemakersville borough|2695|0|3|Lebitski|Merrill|3003|PA|M|Son|||7|113177 +3010|PA|Berks County|Shoemakersville borough|2695|0|4|Lebitski|Brendan|3005|PA|M|Son|||5|113178 +3010|PA|Berks County|Shoemakersville borough|2695|0|5|Lebitski|Verdell|3009|PA|F|Daughter|||1|113179 + +3010|MI|Barry County|Irving township|2696|0|1|Lebitski|Kyle Willis|2982|New Zealand|M|Head|||28|113180 +3010|MI|Barry County|Irving township|2696|0|2|Lebitski|Tony|2969|Montana|F|Spouse|||41|113181 +3010|MI|Barry County|Irving township|2696|0|3|Lebitski|Angel|3005|MI|M|Son|||5|113182 + +3010|PA|Berks County|Shoemakersville borough|2697|0|1|Lebitski|Devon|2986|Congo|M|Head|||24|113183 +3010|PA|Berks County|Shoemakersville borough|2697|0|2|Lebitski|Elana|2991|Colorado|F|Spouse|||19|113184 +3010|PA|Berks County|Shoemakersville borough|2697|0|3|Lebitski|Bobbye|3001|PA|F|Daughter|||9|113185 +3010|PA|Berks County|Shoemakersville borough|2697|0|4|Lebitski|Maxwell|3003|PA|M|Son|||7|113186 +3010|PA|Berks County|Shoemakersville borough|2697|0|5|Lebitski|Laurence|3007|PA|F|Daughter|||3|113187 + +3010|AZ|Apache County|Red Rock CDP|2698|0|1|Finkel|Lino|2976|Kansas|M|Head|||34|113188 +3010|AZ|Apache County|Red Rock CDP|2698|0|2|Finkel|Tracee|2993|Wyoming|F|Spouse|||17|113189 +3010|AZ|Apache County|Red Rock CDP|2698|0|3|Finkel|Will Wilbur|3001|AZ|M|Son|||9|113190 +3010|AZ|Apache County|Red Rock CDP|2698|0|4|Finkel|Noel|3005|AZ|M|Son|||5|113191 +3010|AZ|Apache County|Red Rock CDP|2698|0|5|Finkel|Charles|3009|AZ|M|Son|||1|113192 + +3010|NH|Grafton County|Wentworth town|2699|0|1|Strumpf|Nestor|2993|Idaho|M|Head|||17|113193 +3010|NH|Grafton County|Wentworth town|2699|0|2|Strumpf|Breanna Hettie|2983|Iowa|F|Spouse|||27|113194 +3010|NH|Grafton County|Wentworth town|2699|0|3|Strumpf|Freddy|3001|NH|M|Son|||9|113195 +3010|NH|Grafton County|Wentworth town|2699|0|4|Strumpf|Elane|3003|NH|F|Daughter|||7|113196 +3010|NH|Grafton County|Wentworth town|2699|0|5|Strumpf|Hoyt|3007|NH|M|Son|||3|113197 +3010|NH|Grafton County|Wentworth town|2699|0|6|Strumpf|Ambrose|3009|NH|M|Son|||1|113198 + +3010|OK|Choctaw County|Hugo city|2700|0|1|Bayer|Jae Rigoberto|2985|Vermont|M|Head|||25|113199 +3010|OK|Choctaw County|Hugo city|2700|0|2|Bayer|Cody Margit|2980|Belgium|F|Spouse|||30|113200 +3010|OK|Choctaw County|Hugo city|2700|0|3|Bayer|Emmanuel|3001|OK|M|Son|||9|113201 +3010|OK|Choctaw County|Hugo city|2700|0|4|Bayer|Lakeshia Nelle|3003|OK|F|Daughter|||7|113202 +3010|OK|Choctaw County|Hugo city|2700|0|5|Bayer|Roy|3007|OK|M|Son|||3|113203 + +3010|NY|Rockland County|Montebello village|2701|0|1|Hockman|Mathew|2983|Massachusetts|M|Head|||27|113204 +3010|NY|Rockland County|Montebello village|2701|0|2|Hockman|Verdell|2982|South Carolina|F|Spouse|||28|113205 +3010|NY|Rockland County|Montebello village|2701|0|3|Hockman|Romana|3001|NY|F|Daughter|||9|113206 +3010|NY|Rockland County|Montebello village|2701|0|4|Hockman|Joycelyn|3009|NY|F|Daughter|||1|113207 + +3010|MA|Hampden County|Agawam Town city|2702|0|1|Hockman|Emery|2987|Virginia|M|Head|||23|113208 +3010|MA|Hampden County|Agawam Town city|2702|0|2|Hockman|Marchelle Jack|2990|New Jersey|F|Spouse|||20|113209 +3010|MA|Hampden County|Agawam Town city|2702|0|3|Hockman|Sana Yong|3001|MA|F|Daughter|||9|113210 +3010|MA|Hampden County|Agawam Town city|2702|0|4|Hockman|Eugenio|3003|MA|M|Son|||7|113211 +3010|MA|Hampden County|Agawam Town city|2702|0|5|Hockman|Daron|3007|MA|M|Son|||3|113212 + +3010|NJ|Burlington County|Southampton township|2703|0|1|Willette|Cortez|2972|Wyoming|M|Head|||38|113213 +3010|NJ|Burlington County|Southampton township|2703|0|2|Willette|Tu|2978|Wyoming|F|Spouse|||32|113214 +3010|NJ|Burlington County|Southampton township|2703|0|3|Willette|Randa|3001|NJ|F|Daughter|||9|113215 +3010|NJ|Burlington County|Southampton township|2703|0|4|Willette|Bret|3005|NJ|M|Son|||5|113216 + +3010|WI|Juneau County|Lisbon town|2704|0|1|Riebe|Walter|2989|Kentucky|M|Head|||21|113217 +3010|WI|Juneau County|Lisbon town|2704|0|2|Riebe|Sondra|2993|Kentucky|F|Spouse|||17|113218 +3010|WI|Juneau County|Lisbon town|2704|0|3|Riebe|Conrad|3001|WI|M|Son|||9|113219 +3010|WI|Juneau County|Lisbon town|2704|0|4|Riebe|Alycia|3003|WI|F|Daughter|||7|113220 +3010|WI|Juneau County|Lisbon town|2704|0|5|Riebe|Cleotilde|3005|WI|F|Daughter|||5|113221 +3010|WI|Juneau County|Lisbon town|2704|0|6|Riebe|Jamey Cierra|3007|WI|F|Daughter|||3|113222 + +3010|ND|Pembina County|Mountain city|2705|0|1|Jasica|Horace|2986|Alabama|M|Head|||24|113223 +3010|ND|Pembina County|Mountain city|2705|0|2|Jasica|Mariam|2989|New York|F|Spouse|||21|113224 +3010|ND|Pembina County|Mountain city|2705|0|3|Jasica|Chang|3005|ND|M|Son|||5|113225 +3010|ND|Pembina County|Mountain city|2705|0|4|Jasica|Madonna|3007|ND|F|Daughter|||3|113226 + +3010|ND|Pembina County|Mountain city|2706|0|1|Jasica|Terrence|2988|South Dakota|M|Head|||22|113227 +3010|ND|Pembina County|Mountain city|2706|0|2|Jasica|Twyla|2989|Ohio|F|Spouse|||21|113228 +3010|ND|Pembina County|Mountain city|2706|0|3|Jasica|Darnell|3003|ND|F|Daughter|||7|113229 +3010|ND|Pembina County|Mountain city|2706|0|4|Jasica|Fred|3007|ND|M|Son|||3|113230 + +3010|OH|Hamilton County|Forest Park city|2707|0|1|Schein|Wiley|2981|Hong Kong|M|Head|||29|113231 +3010|OH|Hamilton County|Forest Park city|2707|0|2|Schein|Cyndi Windy|2993|Utah|F|Spouse|||17|113232 + +3010|MN|Crow Wing County|Jenkins township|2708|0|1|Herron|Wilbert Ismael|2972|Washington|M|Head|||38|113233 +3010|MN|Crow Wing County|Jenkins township|2708|0|2|Herron|Marylyn|2980|New York|F|Spouse|||30|113234 +3010|MN|Crow Wing County|Jenkins township|2708|0|3|Herron|Neil|3001|MN|M|Son|||9|113235 +3010|MN|Crow Wing County|Jenkins township|2708|0|4|Herron|Werner|3005|MN|M|Son|||5|113236 +3010|MN|Crow Wing County|Jenkins township|2708|0|5|Herron|Karole|3007|MN|F|Daughter|||3|113237 + +3010|MN|Crow Wing County|Jenkins township|2709|0|1|Herron|Mariano Clyde|2986|Pennsylvania|M|Head|||24|113238 +3010|MN|Crow Wing County|Jenkins township|2709|0|2|Herron|Nerissa|2992|Mississippi|F|Spouse|||18|113239 +3010|MN|Crow Wing County|Jenkins township|2709|0|3|Herron|Patricia|3001|MN|M|Son|||9|113240 +3010|MN|Crow Wing County|Jenkins township|2709|0|4|Herron|Salvatore Johnny|3003|MN|M|Son|||7|113241 +3010|MN|Crow Wing County|Jenkins township|2709|0|5|Herron|Hilario|3007|MN|M|Son|||3|113242 + +3010|MN|Crow Wing County|Jenkins township|2710|0|1|Herron|Weston Noel|2992|Benin|M|Head|||18|113243 +3010|MN|Crow Wing County|Jenkins township|2710|0|2|Herron|Vertie|2991|New Jersey|F|Spouse|||19|113244 +3010|MN|Crow Wing County|Jenkins township|2710|0|3|Herron|Maurice|3001|MN|F|Daughter|||9|113245 +3010|MN|Crow Wing County|Jenkins township|2710|0|4|Herron|Curtis Jame|3003|MN|M|Son|||7|113246 +3010|MN|Crow Wing County|Jenkins township|2710|0|5|Herron|Rosario|3007|MN|M|Son|||3|113247 +3010|MN|Crow Wing County|Jenkins township|2710|0|6|Herron|Ricardo|3009|MN|M|Son|||1|113248 + +3010|CA|Santa Cruz County|Brookdale CDP|2711|0|1|Rentz|Dusty|2988|Papua New Guinea|M|Head|||22|113249 +3010|CA|Santa Cruz County|Brookdale CDP|2711|0|2|Rentz|Reatha|2973|Oklahoma|F|Spouse|||37|113250 +3010|CA|Santa Cruz County|Brookdale CDP|2711|0|3|Rentz|Bella Adah|3001|CA|F|Daughter|||9|113251 +3010|CA|Santa Cruz County|Brookdale CDP|2711|0|4|Rentz|George Ricardo|3003|CA|M|Son|||7|113252 +3010|CA|Santa Cruz County|Brookdale CDP|2711|0|5|Rentz|Chery|3009|CA|F|Daughter|||1|113253 + +3010|NE|Harlan County|Stamford village|2712|0|1|Dang|Stephan|2987|Minnesota|M|Head|||23|113254 +3010|NE|Harlan County|Stamford village|2712|0|2|Dang|Karoline|2985|Massachusetts|F|Spouse|||25|113255 +3010|NE|Harlan County|Stamford village|2712|0|3|Dang|Jerrell|3005|NE|M|Son|||5|113256 +3010|NE|Harlan County|Stamford village|2712|0|4|Dang|Jamel|3007|NE|M|Son|||3|113257 + +3010|MN|Meeker County|Ellsworth township|2713|0|1|Doyle|Williams|2986|Arkansas|M|Head|||24|113258 +3010|MN|Meeker County|Ellsworth township|2713|0|2|Doyle|Katheleen|2988|Alabama|F|Spouse|||22|113259 +3010|MN|Meeker County|Ellsworth township|2713|0|3|Doyle|Lorinda|3001|MN|F|Daughter|||9|113260 +3010|MN|Meeker County|Ellsworth township|2713|0|4|Doyle|Alessandra|3003|MN|F|Daughter|||7|113261 +3010|MN|Meeker County|Ellsworth township|2713|0|5|Doyle|Deangelo|3005|MN|M|Son|||5|113262 +3010|MN|Meeker County|Ellsworth township|2713|0|6|Doyle|Peggy|3009|MN|F|Daughter|||1|113263 + +3010|MN|Meeker County|Ellsworth township|2714|0|1|Doyle|Hassan|2990|Bouvet Island|M|Head|||20|113264 +3010|MN|Meeker County|Ellsworth township|2714|0|2|Doyle|Adria|2994|Alabama|F|Spouse|||16|113265 +3010|MN|Meeker County|Ellsworth township|2714|0|3|Doyle|Shameka|3003|MN|F|Daughter|||7|113266 +3010|MN|Meeker County|Ellsworth township|2714|0|4|Doyle|Charlyn|3007|MN|F|Daughter|||3|113267 + +3010|NJ|Middlesex County|Jamesburg borough|2715|0|1|Salberg|Marco|2993|Colorado|M|Head|||17|113268 +3010|NJ|Middlesex County|Jamesburg borough|2715|0|2|Salberg|Enriqueta Carmella|2970|Palestinian Territory, Occupied|F|Spouse|||40|113269 +3010|NJ|Middlesex County|Jamesburg borough|2715|0|3|Salberg|Tawny|3001|NJ|F|Daughter|||9|113270 +3010|NJ|Middlesex County|Jamesburg borough|2715|0|4|Salberg|Carolann Elisabeth|3005|NJ|F|Daughter|||5|113271 +3010|NJ|Middlesex County|Jamesburg borough|2715|0|5|Salberg|Kim|3007|NJ|M|Son|||3|113272 +3010|NJ|Middlesex County|Jamesburg borough|2715|0|6|Salberg|Alec|3009|NJ|M|Son|||1|113273 + +3010|MS|Jackson County|Helena CDP|2716|0|1|Beidleman|Young|2993|Iowa|M|Head|||17|113274 +3010|MS|Jackson County|Helena CDP|2716|0|2|Beidleman|Carlyn|2989|Colorado|F|Spouse|||21|113275 +3010|MS|Jackson County|Helena CDP|2716|0|3|Beidleman|Bruno|3001|MS|M|Son|||9|113276 +3010|MS|Jackson County|Helena CDP|2716|0|4|Beidleman|Thaddeus|3005|MS|M|Son|||5|113277 +3010|MS|Jackson County|Helena CDP|2716|0|5|Beidleman|Glen|3009|MS|M|Son|||1|113278 + +3010|PA|Franklin County|Washington township|2717|0|1|Zavodny|Mauro|2986|Alabama|M|Head|||24|113279 +3010|PA|Franklin County|Washington township|2717|0|2|Zavodny|Paul|2986|Missouri|F|Spouse|||24|113280 +3010|PA|Franklin County|Washington township|2717|0|3|Zavodny|Yvone|3001|PA|F|Daughter|||9|113281 +3010|PA|Franklin County|Washington township|2717|0|4|Zavodny|Justin|3005|PA|M|Son|||5|113282 +3010|PA|Franklin County|Washington township|2717|0|5|Zavodny|Olen|3007|PA|M|Son|||3|113283 +3010|PA|Franklin County|Washington township|2717|0|6|Zavodny|Aura|3009|PA|F|Daughter|||1|113284 + +3010|NY|Dutchess County|Hyde Park town|2718|0|1|Reeves|Dorian|2985|Pennsylvania|M|Head|||25|113285 +3010|NY|Dutchess County|Hyde Park town|2718|0|2|Reeves|Kellee|2988|Florida|F|Spouse|||22|113286 +3010|NY|Dutchess County|Hyde Park town|2718|0|3|Reeves|Amal|3003|NY|F|Daughter|||7|113287 +3010|NY|Dutchess County|Hyde Park town|2718|0|4|Reeves|Bruno|3007|NY|M|Son|||3|113288 + +3010|NY|Dutchess County|Hyde Park town|2719|0|1|Reeves|Fredrick|2987|Alabama|M|Head|||23|113289 +3010|NY|Dutchess County|Hyde Park town|2719|0|2|Reeves|Juana|2993|North Dakota|F|Spouse|||17|113290 +3010|NY|Dutchess County|Hyde Park town|2719|0|3|Reeves|Tracey|3003|NY|M|Son|||7|113291 +3010|NY|Dutchess County|Hyde Park town|2719|0|4|Reeves|Norris|3005|NY|M|Son|||5|113292 +3010|NY|Dutchess County|Hyde Park town|2719|0|5|Reeves|Jaymie Honey|3007|NY|F|Daughter|||3|113293 + +3010|MN|Mille Lacs County|Onamia city|2720|0|1|Bermudez|Alfredo|2991|Maine|M|Head|||19|113294 +3010|MN|Mille Lacs County|Onamia city|2720|0|2|Bermudez|Eveline Lore|2987|Connecticut|F|Spouse|||23|113295 +3010|MN|Mille Lacs County|Onamia city|2720|0|3|Bermudez|Enola|3003|MN|F|Daughter|||7|113296 + +3010|ME|Aroostook County|Oxbow plantation|2721|0|1|Fire|Fidel Ernest|2989|Colorado|M|Head|||21|113297 +3010|ME|Aroostook County|Oxbow plantation|2721|0|2|Fire|Zenobia|2989|Wyoming|F|Spouse|||21|113298 +3010|ME|Aroostook County|Oxbow plantation|2721|0|3|Fire|Caroll Micaela|3001|ME|F|Daughter|||9|113299 +3010|ME|Aroostook County|Oxbow plantation|2721|0|4|Fire|Leonard|3003|ME|M|Son|||7|113300 +3010|ME|Aroostook County|Oxbow plantation|2721|0|5|Fire|Hunter|3005|ME|M|Son|||5|113301 +3010|ME|Aroostook County|Oxbow plantation|2721|0|6|Fire|Lyman|3007|ME|M|Son|||3|113302 + +3010|TX|Nolan County|Roscoe city|2722|0|1|Eagle|Maurice|2986|Portugal|M|Head|||24|113303 +3010|TX|Nolan County|Roscoe city|2722|0|2|Eagle|Giselle|2994|Idaho|F|Spouse|||16|113304 +3010|TX|Nolan County|Roscoe city|2722|0|3|Eagle|Carmen|3003|TX|F|Daughter|||7|113305 +3010|TX|Nolan County|Roscoe city|2722|0|4|Eagle|Jerold|3005|TX|M|Son|||5|113306 + +3010|NY|Oswego County|Schroeppel town|2723|0|1|Eagle|Deshawn|2992|Lebanon|M|Head|||18|113307 +3010|NY|Oswego County|Schroeppel town|2723|0|2|Eagle|Marivel|2994|Brunei Darussalam|F|Spouse|||16|113308 +3010|NY|Oswego County|Schroeppel town|2723|0|3|Eagle|Adam|3001|NY|M|Son|||9|113309 +3010|NY|Oswego County|Schroeppel town|2723|0|4|Eagle|Polly|3007|NY|F|Daughter|||3|113310 +3010|NY|Oswego County|Schroeppel town|2723|0|5|Eagle|Boris|3009|NY|M|Son|||1|113311 + +3010|NE|Kearney County|Norman village|2724|0|1|Zepeda|Daron|2985|Louisiana|M|Head|||25|113312 +3010|NE|Kearney County|Norman village|2724|0|2|Zepeda|Ruby|2979|Nevada|F|Spouse|||31|113313 +3010|NE|Kearney County|Norman village|2724|0|3|Zepeda|Elodia|3001|NE|F|Daughter|||9|113314 +3010|NE|Kearney County|Norman village|2724|0|4|Zepeda|Takisha|3003|NE|F|Daughter|||7|113315 +3010|NE|Kearney County|Norman village|2724|0|5|Zepeda|Raina|3005|NE|F|Daughter|||5|113316 + +3010|SD|Shannon County|Batesland town|2725|0|1|Sigmund|Jesus|2989|New Jersey|M|Head|||21|113317 +3010|SD|Shannon County|Batesland town|2725|0|2|Sigmund|Onie|2987|Rhode Island|F|Spouse|||23|113318 +3010|SD|Shannon County|Batesland town|2725|0|3|Sigmund|Elvina Winnie|3001|SD|F|Daughter|||9|113319 +3010|SD|Shannon County|Batesland town|2725|0|4|Sigmund|Antony|3003|SD|M|Son|||7|113320 +3010|SD|Shannon County|Batesland town|2725|0|5|Sigmund|Duane|3005|SD|M|Son|||5|113321 +3010|SD|Shannon County|Batesland town|2725|0|6|Sigmund|Roxane|3007|SD|F|Daughter|||3|113322 + +3010|NY|Suffolk County|South Huntington CDP|2726|0|1|Sigmund|Seymour|2993|Uganda|M|Head|||17|113323 +3010|NY|Suffolk County|South Huntington CDP|2726|0|2|Sigmund|Maia|2993|Mississippi|F|Spouse|||17|113324 +3010|NY|Suffolk County|South Huntington CDP|2726|0|3|Sigmund|Yael|3005|NY|F|Daughter|||5|113325 +3010|NY|Suffolk County|South Huntington CDP|2726|0|4|Sigmund|Marya Thomasina|3007|NY|F|Daughter|||3|113326 +3010|NY|Suffolk County|South Huntington CDP|2726|0|5|Sigmund|Marline|3009|NY|F|Daughter|||1|113327 + +3010|CO|El Paso County|Peyton CDP|2727|0|1|Jones|Billie Guadalupe|2985|Wisconsin|M|Head|||25|113328 +3010|CO|El Paso County|Peyton CDP|2727|0|2|Jones|Zoila Amelia|2973|Alabama|F|Spouse|||37|113329 +3010|CO|El Paso County|Peyton CDP|2727|0|3|Jones|Corine|3005|CO|F|Daughter|||5|113330 +3010|CO|El Paso County|Peyton CDP|2727|0|4|Jones|Shakita|3009|CO|F|Daughter|||1|113331 + +3010|MI|Lenawee County|Ridgeway township|2728|0|1|Giantonio|Napoleon Terrell|2992|Georgia|M|Head|||18|113332 +3010|MI|Lenawee County|Ridgeway township|2728|0|2|Giantonio|Donnetta|2991|New Hampshire|F|Spouse|||19|113333 +3010|MI|Lenawee County|Ridgeway township|2728|0|3|Giantonio|Spencer|3001|MI|M|Son|||9|113334 +3010|MI|Lenawee County|Ridgeway township|2728|0|4|Giantonio|Teodoro|3005|MI|M|Son|||5|113335 + +3010|TN|McMinn County, Monroe County|Sweetwater city|2729|0|1|Rincones|Cory|2993|Ohio|M|Head|||17|113336 +3010|TN|McMinn County, Monroe County|Sweetwater city|2729|0|2|Rincones|Sonia|2993|Louisiana|F|Spouse|||17|113337 +3010|TN|McMinn County, Monroe County|Sweetwater city|2729|0|3|Rincones|Vannessa Debbra|3001|TN|F|Daughter|||9|113338 +3010|TN|McMinn County, Monroe County|Sweetwater city|2729|0|4|Rincones|Yong|3003|TN|F|Daughter|||7|113339 +3010|TN|McMinn County, Monroe County|Sweetwater city|2729|0|5|Rincones|Lee|3005|TN|M|Son|||5|113340 + +3010|CA|Alameda County|San Lorenzo CDP|2730|0|1|Lackey|Linwood|2989|Montana|M|Head|||21|113341 +3010|CA|Alameda County|San Lorenzo CDP|2730|0|2|Lackey|Clair|2986|Wyoming|F|Spouse|||24|113342 +3010|CA|Alameda County|San Lorenzo CDP|2730|0|3|Lackey|Marine Bernardina|3005|CA|F|Daughter|||5|113343 +3010|CA|Alameda County|San Lorenzo CDP|2730|0|4|Lackey|Lucien|3007|CA|M|Son|||3|113344 + +3010|MD|Calvert County|Dunkirk CDP|2731|0|1|Wrights|Walker|2963|Iowa|M|Head|||47|113345 +3010|MD|Calvert County|Dunkirk CDP|2731|0|2|Wrights|Jammie|2990|Alabama|F|Spouse|||20|113346 +3010|MD|Calvert County|Dunkirk CDP|2731|0|3|Wrights|Jayme|3005|MD|F|Daughter|||5|113347 +3010|MD|Calvert County|Dunkirk CDP|2731|0|4|Wrights|Dorthea|3007|MD|F|Daughter|||3|113348 +3010|MD|Calvert County|Dunkirk CDP|2731|0|5|Wrights|Sherman|3009|MD|M|Son|||1|113349 + +3010|MI|Oakland County|Holly village|2732|0|1|Wrights|Neal|2975|Georgia|M|Head|||35|113350 +3010|MI|Oakland County|Holly village|2732|0|2|Wrights|Cindie|2969|Montana|F|Spouse|||41|113351 +3010|MI|Oakland County|Holly village|2732|0|3|Wrights|Lashon|3001|MI|F|Daughter|||9|113352 +3010|MI|Oakland County|Holly village|2732|0|4|Wrights|Shala|3003|MI|F|Daughter|||7|113353 +3010|MI|Oakland County|Holly village|2732|0|5|Wrights|Brendan|3005|MI|M|Son|||5|113354 +3010|MI|Oakland County|Holly village|2732|0|6|Wrights|Marcellus|3007|MI|M|Son|||3|113355 +3010|MI|Oakland County|Holly village|2732|0|7|Wrights|Mathew|3009|MI|M|Son|||1|113356 + +3010|IA|Cerro Gordo County|Plymouth city|2733|0|1|Shrewsbury|Kermit|2987|Illinois|M|Head|||23|113357 +3010|IA|Cerro Gordo County|Plymouth city|2733|0|2|Shrewsbury|Louis|2983|Missouri|F|Spouse|||27|113358 +3010|IA|Cerro Gordo County|Plymouth city|2733|0|3|Shrewsbury|Lonnie|3001|IA|M|Son|||9|113359 + +3010|IA|Cerro Gordo County|Plymouth city|2734|0|1|Shrewsbury|Leonel Reed|2989|North Dakota|M|Head|||21|113360 +3010|IA|Cerro Gordo County|Plymouth city|2734|0|2|Shrewsbury|Esta|2985|Massachusetts|F|Spouse|||25|113361 +3010|IA|Cerro Gordo County|Plymouth city|2734|0|3|Shrewsbury|Jon Joshua|3005|IA|F|Daughter|||5|113362 +3010|IA|Cerro Gordo County|Plymouth city|2734|0|4|Shrewsbury|Dennis Lauren|3007|IA|F|Daughter|||3|113363 +3010|IA|Cerro Gordo County|Plymouth city|2734|0|5|Shrewsbury|Bernie|3009|IA|M|Son|||1|113364 + +3010|NJ|Gloucester County|Wenonah borough|2735|0|1|Barick|Richie|2979|South Dakota|M|Head|||31|113365 +3010|NJ|Gloucester County|Wenonah borough|2735|0|2|Barick|Marcella|2989|Iran, Islamic Republic Of|F|Spouse|||21|113366 +3010|NJ|Gloucester County|Wenonah borough|2735|0|3|Barick|Shawanda|3001|NJ|F|Daughter|||9|113367 +3010|NJ|Gloucester County|Wenonah borough|2735|0|4|Barick|Salvador|3003|NJ|M|Son|||7|113368 +3010|NJ|Gloucester County|Wenonah borough|2735|0|5|Barick|Travis|3005|NJ|M|Son|||5|113369 +3010|NJ|Gloucester County|Wenonah borough|2735|0|6|Barick|Kelly|3009|NJ|M|Son|||1|113370 + +3010|SC|Berkeley County|Hanahan city|2736|0|1|Halgas|Bradly|2980|North Carolina|M|Head|||30|113371 +3010|SC|Berkeley County|Hanahan city|2736|0|2|Halgas|Maggie Laquanda|2994|Michigan|F|Spouse|||16|113372 +3010|SC|Berkeley County|Hanahan city|2736|0|3|Halgas|Elizabet|3001|SC|F|Daughter|||9|113373 +3010|SC|Berkeley County|Hanahan city|2736|0|4|Halgas|Chassidy|3003|SC|F|Daughter|||7|113374 +3010|SC|Berkeley County|Hanahan city|2736|0|5|Halgas|Mafalda|3005|SC|F|Daughter|||5|113375 +3010|SC|Berkeley County|Hanahan city|2736|0|6|Halgas|Leonor|3007|SC|F|Daughter|||3|113376 + +3010|SC|Berkeley County|Hanahan city|2737|0|1|Halgas|Sammy|2994|Tennessee|M|Head|||16|113377 +3010|SC|Berkeley County|Hanahan city|2737|0|2|Halgas|Walter|2990|Nevada|F|Spouse|||20|113378 +3010|SC|Berkeley County|Hanahan city|2737|0|3|Halgas|Jenelle|3005|SC|F|Daughter|||5|113379 +3010|SC|Berkeley County|Hanahan city|2737|0|4|Halgas|Scott|3007|SC|M|Son|||3|113380 +3010|SC|Berkeley County|Hanahan city|2737|0|5|Halgas|Alfred|3009|SC|M|Son|||1|113381 + +3010|NC|Wilkes County|Pleasant Hill CDP|2738|0|1|Gagne|Lee|2970|Niger|M|Head|||40|113382 +3010|NC|Wilkes County|Pleasant Hill CDP|2738|0|2|Gagne|Yael|2990|Iowa|F|Spouse|||20|113383 +3010|NC|Wilkes County|Pleasant Hill CDP|2738|0|3|Gagne|Harvey Kristofer|3005|NC|M|Son|||5|113384 +3010|NC|Wilkes County|Pleasant Hill CDP|2738|0|4|Gagne|Janice Cassondra|3009|NC|F|Daughter|||1|113385 + +3010|PA|York County|Red Lion borough|2739|0|1|Gagne|Thaddeus|2980|Tennessee|M|Head|||30|113386 +3010|PA|York County|Red Lion borough|2739|0|2|Gagne|Allen|2992|New Hampshire|F|Spouse|||18|113387 +3010|PA|York County|Red Lion borough|2739|0|3|Gagne|Aurelia|3001|PA|F|Daughter|||9|113388 +3010|PA|York County|Red Lion borough|2739|0|4|Gagne|Jay|3005|PA|F|Daughter|||5|113389 +3010|PA|York County|Red Lion borough|2739|0|5|Gagne|Kasey|3009|PA|F|Daughter|||1|113390 + +3010|NC|Greene County|Walstonburg town|2740|0|1|Bonamico|Lavern|2978|Massachusetts|M|Head|||32|113391 +3010|NC|Greene County|Walstonburg town|2740|0|2|Bonamico|Cherlyn|2992|Missouri|F|Spouse|||18|113392 +3010|NC|Greene County|Walstonburg town|2740|0|3|Bonamico|Teodoro|3001|NC|M|Son|||9|113393 +3010|NC|Greene County|Walstonburg town|2740|0|4|Bonamico|Mirta|3005|NC|F|Daughter|||5|113394 +3010|NC|Greene County|Walstonburg town|2740|0|5|Bonamico|Lecia|3009|NC|F|Daughter|||1|113395 + +3010|NC|Greene County|Walstonburg town|2741|0|1|Bonamico|Chas|2988|New Mexico|M|Head|||22|113396 +3010|NC|Greene County|Walstonburg town|2741|0|2|Bonamico|Grace|2992|Hawaii|F|Spouse|||18|113397 +3010|NC|Greene County|Walstonburg town|2741|0|3|Bonamico|Laurinda|3001|NC|F|Daughter|||9|113398 +3010|NC|Greene County|Walstonburg town|2741|0|4|Bonamico|Brandon|3003|NC|M|Son|||7|113399 +3010|NC|Greene County|Walstonburg town|2741|0|5|Bonamico|Syble|3005|NC|F|Daughter|||5|113400 +3010|NC|Greene County|Walstonburg town|2741|0|6|Bonamico|Kendra|3007|NC|F|Daughter|||3|113401 +3010|NC|Greene County|Walstonburg town|2741|0|7|Bonamico|Cortez Will|3009|NC|M|Son|||1|113402 + +3010|NC|Greene County|Walstonburg town|2742|0|1|Bonamico|Hugh|2990|Kazakstan|M|Head|||20|113403 +3010|NC|Greene County|Walstonburg town|2742|0|2|Bonamico|Eneida|2985|Louisiana|F|Spouse|||25|113404 +3010|NC|Greene County|Walstonburg town|2742|0|3|Bonamico|Noah|3003|NC|M|Son|||7|113405 +3010|NC|Greene County|Walstonburg town|2742|0|4|Bonamico|Consuela|3005|NC|F|Daughter|||5|113406 +3010|NC|Greene County|Walstonburg town|2742|0|5|Bonamico|Jeannetta|3009|NC|F|Daughter|||1|113407 + +3010|NC|Greene County|Walstonburg town|2743|0|1|Bonamico|Lyndon|2994|North Carolina|M|Head|||16|113408 +3010|NC|Greene County|Walstonburg town|2743|0|2|Bonamico|Walter|2993|Idaho|F|Spouse|||17|113409 +3010|NC|Greene County|Walstonburg town|2743|0|3|Bonamico|Jenice|3001|NC|F|Daughter|||9|113410 +3010|NC|Greene County|Walstonburg town|2743|0|4|Bonamico|Danica Hang|3003|NC|F|Daughter|||7|113411 +3010|NC|Greene County|Walstonburg town|2743|0|5|Bonamico|Richie Garland|3005|NC|M|Son|||5|113412 + +3010|MN|Washington County|Hugo city|2744|0|1|Loosier|Eliseo|2990|South Carolina|M|Head|||20|113413 +3010|MN|Washington County|Hugo city|2744|0|2|Loosier|Reta|2984|Venezuela|F|Spouse|||26|113414 +3010|MN|Washington County|Hugo city|2744|0|3|Loosier|Roni|3003|MN|F|Daughter|||7|113415 +3010|MN|Washington County|Hugo city|2744|0|4|Loosier|Else|3007|MN|F|Daughter|||3|113416 + +3010|AR|Grant County|Sheridan city|2745|0|1|Wheelus|Sandy Erik|2987|Michigan|M|Head|||23|113417 +3010|AR|Grant County|Sheridan city|2745|0|2|Wheelus|Jadwiga Nikole|2991|Kentucky|F|Spouse|||19|113418 +3010|AR|Grant County|Sheridan city|2745|0|3|Wheelus|Tosha|3001|AR|F|Daughter|||9|113419 +3010|AR|Grant County|Sheridan city|2745|0|4|Wheelus|Victor|3003|AR|M|Son|||7|113420 +3010|AR|Grant County|Sheridan city|2745|0|5|Wheelus|Lorette|3005|AR|F|Daughter|||5|113421 + +3010|IL|Coles County|Oakland city|2746|0|1|Noble|Truman|2986|Wisconsin|M|Head|||24|113422 +3010|IL|Coles County|Oakland city|2746|0|2|Noble|Lenore|2985|Vermont|F|Spouse|||25|113423 +3010|IL|Coles County|Oakland city|2746|0|3|Noble|Von|3003|IL|M|Son|||7|113424 +3010|IL|Coles County|Oakland city|2746|0|4|Noble|Ahmad|3005|IL|M|Son|||5|113425 +3010|IL|Coles County|Oakland city|2746|0|5|Noble|Jacqulyn|3007|IL|F|Daughter|||3|113426 +3010|IL|Coles County|Oakland city|2746|0|6|Noble|Aleida|3009|IL|F|Daughter|||1|113427 + +3010|NY|Tompkins County|Groton village|2747|0|1|Emrich|Joesph|2986|Kentucky|M|Head|||24|113428 +3010|NY|Tompkins County|Groton village|2747|0|2|Emrich|Dawn|2985|Georgia|F|Spouse|||25|113429 +3010|NY|Tompkins County|Groton village|2747|0|3|Emrich|Alva|3001|NY|M|Son|||9|113430 +3010|NY|Tompkins County|Groton village|2747|0|4|Emrich|Rueben|3007|NY|M|Son|||3|113431 +3010|NY|Tompkins County|Groton village|2747|0|5|Emrich|Noe|3009|NY|M|Son|||1|113432 + +3010|KS|Franklin County|Richmond city|2748|0|1|Ladner|Maria|2990|Massachusetts|M|Head|||20|113433 +3010|KS|Franklin County|Richmond city|2748|0|2|Ladner|Shayna|2980|Oregon|F|Spouse|||30|113434 +3010|KS|Franklin County|Richmond city|2748|0|3|Ladner|Clifton Stacey|3001|KS|M|Son|||9|113435 +3010|KS|Franklin County|Richmond city|2748|0|4|Ladner|Hedy|3007|KS|F|Daughter|||3|113436 +3010|KS|Franklin County|Richmond city|2748|0|5|Ladner|Jon|3009|KS|M|Son|||1|113437 + +3010|AL|Houston County|Cottonwood town|2749|0|1|Malley|Vaughn Dane|2970|Louisiana|M|Head|||40|113438 +3010|AL|Houston County|Cottonwood town|2749|0|2|Malley|Leonia|2982|Indiana|F|Spouse|||28|113439 +3010|AL|Houston County|Cottonwood town|2749|0|3|Malley|Natalie|3001|AL|F|Daughter|||9|113440 +3010|AL|Houston County|Cottonwood town|2749|0|4|Malley|Emory|3007|AL|M|Son|||3|113441 +3010|AL|Houston County|Cottonwood town|2749|0|5|Malley|Domenic|3009|AL|M|Son|||1|113442 + +3010|AL|Houston County|Cottonwood town|2750|0|1|Malley|Denver|2986|Oregon|M|Head|||24|113443 +3010|AL|Houston County|Cottonwood town|2750|0|2|Malley|Rosemarie|2988|Armenia|F|Spouse|||22|113444 +3010|AL|Houston County|Cottonwood town|2750|0|3|Malley|Rose|3001|AL|F|Daughter|||9|113445 +3010|AL|Houston County|Cottonwood town|2750|0|4|Malley|Milagro|3003|AL|F|Daughter|||7|113446 +3010|AL|Houston County|Cottonwood town|2750|0|5|Malley|Cory|3005|AL|M|Son|||5|113447 +3010|AL|Houston County|Cottonwood town|2750|0|6|Malley|Lyndon Hassan|3007|AL|M|Son|||3|113448 +3010|AL|Houston County|Cottonwood town|2750|0|7|Malley|Edgardo|3009|AL|M|Son|||1|113449 + +3010|MI|Muskegon County|Casnovia township|2751|0|1|Scoma|Salvador|2988|Iowa|M|Head|||22|113450 +3010|MI|Muskegon County|Casnovia township|2751|0|2|Scoma|Adelia|2988|Holy See (vatican City State)|F|Spouse|||22|113451 + +3010|MI|Muskegon County|Casnovia township|2752|0|1|Scoma|Joel|2992|Maryland|M|Head|||18|113452 +3010|MI|Muskegon County|Casnovia township|2752|0|2|Scoma|Kathaleen|2987|Iowa|F|Spouse|||23|113453 +3010|MI|Muskegon County|Casnovia township|2752|0|3|Scoma|Marya|3003|MI|F|Daughter|||7|113454 +3010|MI|Muskegon County|Casnovia township|2752|0|4|Scoma|Exie|3005|MI|F|Daughter|||5|113455 +3010|MI|Muskegon County|Casnovia township|2752|0|5|Scoma|Arlena|3007|MI|F|Daughter|||3|113456 +3010|MI|Muskegon County|Casnovia township|2752|0|6|Scoma|Noble|3009|MI|M|Son|||1|113457 + +3010|MI|Muskegon County|Casnovia township|2753|0|1|Scoma|Marcelino Sammy|2994|West Virginia|M|Head|||16|113458 +3010|MI|Muskegon County|Casnovia township|2753|0|2|Scoma|Asia|2988|Maryland|F|Spouse|||22|113459 +3010|MI|Muskegon County|Casnovia township|2753|0|3|Scoma|Long|3003|MI|M|Son|||7|113460 +3010|MI|Muskegon County|Casnovia township|2753|0|4|Scoma|Lawerence|3005|MI|M|Son|||5|113461 +3010|MI|Muskegon County|Casnovia township|2753|0|5|Scoma|Madlyn|3007|MI|F|Daughter|||3|113462 +3010|MI|Muskegon County|Casnovia township|2753|0|6|Scoma|Chelsey|3009|MI|F|Daughter|||1|113463 + +3010|OR|Washington County|Cedar Hills CDP|2754|0|1|Hemple|Napoleon|2985|Mozambique|M|Head|||25|113464 +3010|OR|Washington County|Cedar Hills CDP|2754|0|2|Hemple|Genna Alvera|2976|West Virginia|F|Spouse|||34|113465 +3010|OR|Washington County|Cedar Hills CDP|2754|0|3|Hemple|Fred|3003|OR|M|Son|||7|113466 +3010|OR|Washington County|Cedar Hills CDP|2754|0|4|Hemple|Idalia|3005|OR|F|Daughter|||5|113467 +3010|OR|Washington County|Cedar Hills CDP|2754|0|5|Hemple|Rubin|3009|OR|M|Son|||1|113468 + +3010|IA|Montgomery County|Villisca city|2755|0|1|Hemple|Alton|2993|California|M|Head|||17|113469 +3010|IA|Montgomery County|Villisca city|2755|0|2|Hemple|Jestine|2978|Nauru|F|Spouse|||32|113470 +3010|IA|Montgomery County|Villisca city|2755|0|3|Hemple|Carlton Felipe|3001|IA|M|Son|||9|113471 +3010|IA|Montgomery County|Villisca city|2755|0|4|Hemple|Herschel|3005|IA|M|Son|||5|113472 +3010|IA|Montgomery County|Villisca city|2755|0|5|Hemple|Fabian Russel|3009|IA|M|Son|||1|113473 + +3010|WY|Sweetwater County|Clearview Acres CDP|2756|0|1|Weissberg|Joesph|2986|Michigan|M|Head|||24|113474 +3010|WY|Sweetwater County|Clearview Acres CDP|2756|0|2|Weissberg|Tina|2990|Sierra Leone|F|Spouse|||20|113475 +3010|WY|Sweetwater County|Clearview Acres CDP|2756|0|3|Weissberg|Shelton Whitney|3001|WY|M|Son|||9|113476 +3010|WY|Sweetwater County|Clearview Acres CDP|2756|0|4|Weissberg|Pandora Shavon|3003|WY|F|Daughter|||7|113477 +3010|WY|Sweetwater County|Clearview Acres CDP|2756|0|5|Weissberg|Arturo|3005|WY|M|Son|||5|113478 + +3010|SC|York County|Riverview CDP|2757|0|1|Taskey|Edgardo|2983|California|M|Head|||27|113479 +3010|SC|York County|Riverview CDP|2757|0|2|Taskey|Patsy|2994|Connecticut|F|Spouse|||16|113480 +3010|SC|York County|Riverview CDP|2757|0|3|Taskey|Chadwick Leigh|3001|SC|M|Son|||9|113481 +3010|SC|York County|Riverview CDP|2757|0|4|Taskey|Boyce|3003|SC|M|Son|||7|113482 + +3010|SC|York County|Riverview CDP|2758|0|1|Taskey|Bo|2987|Comoros|M|Head|||23|113483 +3010|SC|York County|Riverview CDP|2758|0|2|Taskey|Alexandria|2982|Macau|F|Spouse|||28|113484 +3010|SC|York County|Riverview CDP|2758|0|3|Taskey|Blythe|3001|SC|F|Daughter|||9|113485 +3010|SC|York County|Riverview CDP|2758|0|4|Taskey|Kenton|3003|SC|M|Son|||7|113486 +3010|SC|York County|Riverview CDP|2758|0|5|Taskey|Rigoberto Jerrod|3005|SC|M|Son|||5|113487 + +3010|NJ|Gloucester County|Woodbury city|2759|0|1|Pierce|Arnulfo Rosendo|2987|Gibraltar|M|Head|||23|113488 +3010|NJ|Gloucester County|Woodbury city|2759|0|2|Pierce|Buena Rosann|2977|Illinois|F|Spouse|||33|113489 +3010|NJ|Gloucester County|Woodbury city|2759|0|3|Pierce|Meggan|3003|NJ|F|Daughter|||7|113490 +3010|NJ|Gloucester County|Woodbury city|2759|0|4|Pierce|Gearldine|3007|NJ|F|Daughter|||3|113491 +3010|NJ|Gloucester County|Woodbury city|2759|0|5|Pierce|Lorilee|3009|NJ|F|Daughter|||1|113492 + +3010|IA|Woodbury County|Oto city|2760|0|1|Lopinto|Valentin|2962|Kansas|M|Head|||48|113493 +3010|IA|Woodbury County|Oto city|2760|0|2|Lopinto|Anette|2985|Delaware|F|Spouse|||25|113494 +3010|IA|Woodbury County|Oto city|2760|0|3|Lopinto|Elvin|3001|IA|M|Son|||9|113495 +3010|IA|Woodbury County|Oto city|2760|0|4|Lopinto|Collin|3009|IA|M|Son|||1|113496 + +3010|MN|Redwood County|Clements city|2761|0|1|Lang|Cleveland|2988|Connecticut|M|Head|||22|113497 +3010|MN|Redwood County|Clements city|2761|0|2|Lang|Emilie|2978|French Southern Territories|F|Spouse|||32|113498 +3010|MN|Redwood County|Clements city|2761|0|3|Lang|Cinderella|3003|MN|F|Daughter|||7|113499 + +3010|WI|Outagamie County|Kaukauna city|2762|0|1|Chambless|Brett|2988|North Dakota|M|Head|||22|113500 +3010|WI|Outagamie County|Kaukauna city|2762|0|2|Chambless|Jazmin|2988|South Dakota|F|Spouse|||22|113501 +3010|WI|Outagamie County|Kaukauna city|2762|0|3|Chambless|Sunni|3001|WI|F|Daughter|||9|113502 +3010|WI|Outagamie County|Kaukauna city|2762|0|4|Chambless|Gwyneth|3003|WI|F|Daughter|||7|113503 +3010|WI|Outagamie County|Kaukauna city|2762|0|5|Chambless|Barton|3007|WI|M|Son|||3|113504 +3010|WI|Outagamie County|Kaukauna city|2762|0|6|Chambless|Tracee|3009|WI|F|Daughter|||1|113505 + +3010|NH|Hillsborough County|Milford CDP|2763|0|1|Frantz|Cliff|2984|Indiana|M|Head|||26|113506 +3010|NH|Hillsborough County|Milford CDP|2763|0|2|Frantz|Nancie|2994|Wisconsin|F|Spouse|||16|113507 +3010|NH|Hillsborough County|Milford CDP|2763|0|3|Frantz|Anastasia|3009|NH|F|Daughter|||1|113508 + +3010|MI|Barry County|Hastings city|2764|0|1|Frantz|Seth Ferdinand|2992|New York|M|Head|||18|113509 +3010|MI|Barry County|Hastings city|2764|0|2|Frantz|Xochitl|2989|Kentucky|F|Spouse|||21|113510 +3010|MI|Barry County|Hastings city|2764|0|3|Frantz|Kristian|3001|MI|F|Daughter|||9|113511 +3010|MI|Barry County|Hastings city|2764|0|4|Frantz|Blaine Hayden|3003|MI|M|Son|||7|113512 +3010|MI|Barry County|Hastings city|2764|0|5|Frantz|Elvie|3005|MI|F|Daughter|||5|113513 + +3010|NY|Chemung County|Horseheads village|2765|0|1|Lewis|Leonard|2970|Indiana|M|Head|||40|113514 +3010|NY|Chemung County|Horseheads village|2765|0|2|Lewis|Rhoda|2986|Florida|F|Spouse|||24|113515 +3010|NY|Chemung County|Horseheads village|2765|0|3|Lewis|Chase|3001|NY|M|Son|||9|113516 +3010|NY|Chemung County|Horseheads village|2765|0|4|Lewis|Keven|3005|NY|M|Son|||5|113517 + +3010|KY|McCracken County|Reidland CDP|2766|0|1|Hernandez|Kirby|2976|Ohio|M|Head|||34|113518 +3010|KY|McCracken County|Reidland CDP|2766|0|2|Hernandez|Dianne Shenna|2992|Massachusetts|F|Spouse|||18|113519 +3010|KY|McCracken County|Reidland CDP|2766|0|3|Hernandez|Taina Laraine|3003|KY|F|Daughter|||7|113520 +3010|KY|McCracken County|Reidland CDP|2766|0|4|Hernandez|Albert Angelo|3007|KY|M|Son|||3|113521 + +3010|ND|Slope County|Amidon city|2767|0|1|Hernandez|Bart|2990|Michigan|M|Head|||20|113522 +3010|ND|Slope County|Amidon city|2767|0|2|Hernandez|Pamella|2979|Florida|F|Spouse|||31|113523 +3010|ND|Slope County|Amidon city|2767|0|3|Hernandez|Irwin|3003|ND|M|Son|||7|113524 +3010|ND|Slope County|Amidon city|2767|0|4|Hernandez|Buddy Ralph|3005|ND|M|Son|||5|113525 +3010|ND|Slope County|Amidon city|2767|0|5|Hernandez|Rocky|3007|ND|M|Son|||3|113526 + +3010|NJ|Somerset County|Bernardsville borough|2768|0|1|Gonzalez|Gino|2992|Missouri|M|Head|||18|113527 +3010|NJ|Somerset County|Bernardsville borough|2768|0|2|Gonzalez|Hermelinda|2987|Congo|F|Spouse|||23|113528 +3010|NJ|Somerset County|Bernardsville borough|2768|0|3|Gonzalez|Pete|3007|NJ|M|Son|||3|113529 +3010|NJ|Somerset County|Bernardsville borough|2768|0|4|Gonzalez|Sung|3009|NJ|F|Daughter|||1|113530 + +3010|IA|Polk County|Saylorville CDP|2769|0|1|Wanczyk|Stanton|2992|Kentucky|M|Head|||18|113531 +3010|IA|Polk County|Saylorville CDP|2769|0|2|Wanczyk|Meta|2987|Virginia|F|Spouse|||23|113532 +3010|IA|Polk County|Saylorville CDP|2769|0|3|Wanczyk|Granville|3005|IA|M|Son|||5|113533 +3010|IA|Polk County|Saylorville CDP|2769|0|4|Wanczyk|Luisa|3007|IA|F|Daughter|||3|113534 +3010|IA|Polk County|Saylorville CDP|2769|0|5|Wanczyk|Ira|3009|IA|M|Son|||1|113535 + +3010|TX|Jefferson County|Bevil Oaks city|2770|0|1|Corbett|Jimmie|2991|Guam|M|Head|||19|113536 +3010|TX|Jefferson County|Bevil Oaks city|2770|0|2|Corbett|Yuk|2991|Wisconsin|F|Spouse|||19|113537 +3010|TX|Jefferson County|Bevil Oaks city|2770|0|3|Corbett|Lyman|3001|TX|M|Son|||9|113538 +3010|TX|Jefferson County|Bevil Oaks city|2770|0|4|Corbett|Stacey|3003|TX|F|Daughter|||7|113539 +3010|TX|Jefferson County|Bevil Oaks city|2770|0|5|Corbett|Vince|3007|TX|M|Son|||3|113540 + +3010|WI|Rusk County|Wilson town|2771|0|1|Sporman|Mason Mike|2988|Nevada|M|Head|||22|113541 +3010|WI|Rusk County|Wilson town|2771|0|2|Sporman|Fatima|2987|Bermuda|F|Spouse|||23|113542 +3010|WI|Rusk County|Wilson town|2771|0|3|Sporman|Mitch|3005|WI|M|Son|||5|113543 +3010|WI|Rusk County|Wilson town|2771|0|4|Sporman|Carline|3009|WI|F|Daughter|||1|113544 + +3010|NH|Grafton County|Mountain Lakes CDP|2772|0|1|Scott|Josh|2967|Florida|M|Head|||43|113545 +3010|NH|Grafton County|Mountain Lakes CDP|2772|0|2|Scott|Elise Candance|2989|Alabama|F|Spouse|||21|113546 +3010|NH|Grafton County|Mountain Lakes CDP|2772|0|3|Scott|Angelic|3001|NH|F|Daughter|||9|113547 +3010|NH|Grafton County|Mountain Lakes CDP|2772|0|4|Scott|Robby|3003|NH|M|Son|||7|113548 +3010|NH|Grafton County|Mountain Lakes CDP|2772|0|5|Scott|Lida|3007|NH|F|Daughter|||3|113549 +3010|NH|Grafton County|Mountain Lakes CDP|2772|0|6|Scott|Cornelius|3009|NH|M|Son|||1|113550 + +3010|WI|Racine County|Norway town|2773|0|1|Sorrell|Elmer|2994|Maine|M|Head|||16|113551 +3010|WI|Racine County|Norway town|2773|0|2|Sorrell|Juli Clair|2993|Texas|F|Spouse|||17|113552 +3010|WI|Racine County|Norway town|2773|0|3|Sorrell|Waneta Christiane|3005|WI|F|Daughter|||5|113553 +3010|WI|Racine County|Norway town|2773|0|4|Sorrell|Catina|3007|WI|F|Daughter|||3|113554 + +3010|NY|Wyoming County|Perry village|2774|0|1|Mazell|Landon|2970|California|M|Head|||40|113555 +3010|NY|Wyoming County|Perry village|2774|0|2|Mazell|Jona|2985|Louisiana|F|Spouse|||25|113556 +3010|NY|Wyoming County|Perry village|2774|0|3|Mazell|Jerold|3001|NY|M|Son|||9|113557 +3010|NY|Wyoming County|Perry village|2774|0|4|Mazell|Grady|3003|NY|M|Son|||7|113558 +3010|NY|Wyoming County|Perry village|2774|0|5|Mazell|Eva|3005|NY|F|Daughter|||5|113559 + +3010|NY|Wyoming County|Perry village|2775|0|1|Mazell|Geoffrey|2988|Colorado|M|Head|||22|113560 +3010|NY|Wyoming County|Perry village|2775|0|2|Mazell|Tinisha|2989|Georgia|F|Spouse|||21|113561 +3010|NY|Wyoming County|Perry village|2775|0|3|Mazell|Fermin|3001|NY|M|Son|||9|113562 +3010|NY|Wyoming County|Perry village|2775|0|4|Mazell|Synthia|3003|NY|F|Daughter|||7|113563 +3010|NY|Wyoming County|Perry village|2775|0|5|Mazell|Lashell|3007|NY|F|Daughter|||3|113564 + +3010|PA|Tioga County|Wellsboro borough|2776|0|1|Mays|Rich|2987|West Virginia|M|Head|||23|113565 +3010|PA|Tioga County|Wellsboro borough|2776|0|2|Mays|Marilu Tawana|2991|Morocco|F|Spouse|||19|113566 +3010|PA|Tioga County|Wellsboro borough|2776|0|3|Mays|Bernard|3001|PA|M|Son|||9|113567 +3010|PA|Tioga County|Wellsboro borough|2776|0|4|Mays|Thelma|3005|PA|F|Daughter|||5|113568 +3010|PA|Tioga County|Wellsboro borough|2776|0|5|Mays|Jamaal|3007|PA|M|Son|||3|113569 + +3010|OH|Summit County|Montrose-Ghent CDP|2777|0|1|Wilson|Ezra Jonathon|2994|West Virginia|M|Head|||16|113570 +3010|OH|Summit County|Montrose-Ghent CDP|2777|0|2|Wilson|Shelley Patience|2967|California|F|Spouse|||43|113571 +3010|OH|Summit County|Montrose-Ghent CDP|2777|0|3|Wilson|Marcus|3009|OH|M|Son|||1|113572 + +3010|ID|Camas County|Fairfield city|2778|0|1|Mcconnell|Harrison|2980|New Mexico|M|Head|||30|113573 +3010|ID|Camas County|Fairfield city|2778|0|2|Mcconnell|Alpha|2992|Wisconsin|F|Spouse|||18|113574 +3010|ID|Camas County|Fairfield city|2778|0|3|Mcconnell|Ruben Osvaldo|3001|ID|M|Son|||9|113575 +3010|ID|Camas County|Fairfield city|2778|0|4|Mcconnell|Teodora|3005|ID|F|Daughter|||5|113576 +3010|ID|Camas County|Fairfield city|2778|0|5|Mcconnell|Denis|3007|ID|M|Son|||3|113577 +3010|ID|Camas County|Fairfield city|2778|0|6|Mcconnell|Graig|3009|ID|M|Son|||1|113578 + +3010|AR|Pope County|Dover city|2779|0|1|Mcmenomy|Joey|2976|Idaho|M|Head|||34|113579 +3010|AR|Pope County|Dover city|2779|0|2|Mcmenomy|Rhona|2971|Illinois|F|Spouse|||39|113580 +3010|AR|Pope County|Dover city|2779|0|3|Mcmenomy|Charles|3003|AR|M|Son|||7|113581 +3010|AR|Pope County|Dover city|2779|0|4|Mcmenomy|Al|3005|AR|M|Son|||5|113582 +3010|AR|Pope County|Dover city|2779|0|5|Mcmenomy|Thomasine|3007|AR|F|Daughter|||3|113583 + +3010|NJ|Camden County|Voorhees township|2780|0|1|Whitehead|Floyd Ulysses|2992|Arkansas|M|Head|||18|113584 +3010|NJ|Camden County|Voorhees township|2780|0|2|Whitehead|Nohemi|2988|Japan|F|Spouse|||22|113585 +3010|NJ|Camden County|Voorhees township|2780|0|3|Whitehead|Krystal|3005|NJ|F|Daughter|||5|113586 +3010|NJ|Camden County|Voorhees township|2780|0|4|Whitehead|Joan Faustino|3009|NJ|M|Son|||1|113587 + +3010|CA|Amador County|Buena Vista CDP|2781|0|1|Robbins|Duane|2973|Massachusetts|M|Head|||37|113588 +3010|CA|Amador County|Buena Vista CDP|2781|0|2|Robbins|Loan|2977|Nevada|F|Spouse|||33|113589 +3010|CA|Amador County|Buena Vista CDP|2781|0|3|Robbins|Eugenio|3001|CA|M|Son|||9|113590 +3010|CA|Amador County|Buena Vista CDP|2781|0|4|Robbins|Beau|3003|CA|M|Son|||7|113591 +3010|CA|Amador County|Buena Vista CDP|2781|0|5|Robbins|Brett|3005|CA|M|Son|||5|113592 +3010|CA|Amador County|Buena Vista CDP|2781|0|6|Robbins|Joeann|3007|CA|F|Daughter|||3|113593 +3010|CA|Amador County|Buena Vista CDP|2781|0|7|Robbins|Marshall|3009|CA|M|Son|||1|113594 + +3010|CA|Amador County|Buena Vista CDP|2782|0|1|Robbins|Frederic|2987|Arizona|M|Head|||23|113595 +3010|CA|Amador County|Buena Vista CDP|2782|0|2|Robbins|Jene|2985|Michigan|F|Spouse|||25|113596 +3010|CA|Amador County|Buena Vista CDP|2782|0|3|Robbins|Gwyn|3005|CA|F|Daughter|||5|113597 +3010|CA|Amador County|Buena Vista CDP|2782|0|4|Robbins|Keren|3007|CA|F|Daughter|||3|113598 + +3010|NY|Erie County|Wales town|2783|0|1|Kennedy|Laurence|2983|California|M|Head|||27|113599 +3010|NY|Erie County|Wales town|2783|0|2|Kennedy|Sharla|2987|Cuba|F|Spouse|||23|113600 +3010|NY|Erie County|Wales town|2783|0|3|Kennedy|Wen|3003|NY|F|Daughter|||7|113601 + +3010|FL|Sarasota County|Southgate CDP|2784|0|1|Kennedy|Herb|2989|New Caledonia|M|Head|||21|113602 +3010|FL|Sarasota County|Southgate CDP|2784|0|2|Kennedy|Dahlia Leda|2988|Washington|F|Spouse|||22|113603 +3010|FL|Sarasota County|Southgate CDP|2784|0|3|Kennedy|Lakeisha|3001|FL|F|Daughter|||9|113604 +3010|FL|Sarasota County|Southgate CDP|2784|0|4|Kennedy|Latoria|3007|FL|F|Daughter|||3|113605 +3010|FL|Sarasota County|Southgate CDP|2784|0|5|Kennedy|Herbert|3009|FL|M|Son|||1|113606 + +3010|NC|Cleveland County|Fallston town|2785|0|1|Turner|Gustavo|2991|Delaware|M|Head|||19|113607 +3010|NC|Cleveland County|Fallston town|2785|0|2|Turner|Sherie|2989|New Hampshire|F|Spouse|||21|113608 +3010|NC|Cleveland County|Fallston town|2785|0|3|Turner|Kam|3001|NC|F|Daughter|||9|113609 +3010|NC|Cleveland County|Fallston town|2785|0|4|Turner|Luetta|3003|NC|F|Daughter|||7|113610 +3010|NC|Cleveland County|Fallston town|2785|0|5|Turner|Willette|3005|NC|F|Daughter|||5|113611 +3010|NC|Cleveland County|Fallston town|2785|0|6|Turner|Son Son|3009|NC|M|Son|||1|113612 + +3010|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|2786|0|1|Nordsiek|Santiago|2990|Maine|M|Head|||20|113613 +3010|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|2786|0|2|Nordsiek|Eliana|2989|Illinois|F|Spouse|||21|113614 +3010|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|2786|0|3|Nordsiek|Thad|3001|PR|M|Son|||9|113615 +3010|PR|Cabo Rojo Municipio|Cabo Rojo zona urbana|2786|0|4|Nordsiek|Ferne|3003|PR|F|Daughter|||7|113616 + +3010|NM|Santa Fe County|Cuartelez CDP|2787|0|1|Hadley|Josiah|2992|Texas|M|Head|||18|113617 +3010|NM|Santa Fe County|Cuartelez CDP|2787|0|2|Hadley|Yukiko|2989|Alabama|F|Spouse|||21|113618 +3010|NM|Santa Fe County|Cuartelez CDP|2787|0|3|Hadley|Reggie|3007|NM|M|Son|||3|113619 +3010|NM|Santa Fe County|Cuartelez CDP|2787|0|4|Hadley|Nelson|3009|NM|M|Son|||1|113620 + +3010|MS|Calhoun County|Big Creek village|2788|0|1|Jackson|Hobert|2989|Montana|M|Head|||21|113621 +3010|MS|Calhoun County|Big Creek village|2788|0|2|Jackson|Tempie|2985|Utah|F|Spouse|||25|113622 +3010|MS|Calhoun County|Big Creek village|2788|0|3|Jackson|Lorilee Clorinda|3001|MS|F|Daughter|||9|113623 +3010|MS|Calhoun County|Big Creek village|2788|0|4|Jackson|Adan|3003|MS|M|Son|||7|113624 +3010|MS|Calhoun County|Big Creek village|2788|0|5|Jackson|Melonie|3005|MS|F|Daughter|||5|113625 +3010|MS|Calhoun County|Big Creek village|2788|0|6|Jackson|Nora|3007|MS|F|Daughter|||3|113626 + +3010|PA|Schuylkill County|New Castle township|2789|0|1|Zurita|Wilber Anton|2991|Utah|M|Head|||19|113627 +3010|PA|Schuylkill County|New Castle township|2789|0|2|Zurita|Kassie|2991|New Hampshire|F|Spouse|||19|113628 +3010|PA|Schuylkill County|New Castle township|2789|0|3|Zurita|Rosetta|3001|PA|F|Daughter|||9|113629 +3010|PA|Schuylkill County|New Castle township|2789|0|4|Zurita|Marie|3005|PA|F|Daughter|||5|113630 +3010|PA|Schuylkill County|New Castle township|2789|0|5|Zurita|Saran|3009|PA|F|Daughter|||1|113631 + +3010|KS|Marion County|Ramona city|2790|0|1|Stanaway|Markus|2972|Delaware|M|Head|||38|113632 +3010|KS|Marion County|Ramona city|2790|0|2|Stanaway|Shavonne|2974|Virginia|F|Spouse|||36|113633 +3010|KS|Marion County|Ramona city|2790|0|3|Stanaway|Lorenzo|3003|KS|M|Son|||7|113634 +3010|KS|Marion County|Ramona city|2790|0|4|Stanaway|Terrilyn Renea|3005|KS|F|Daughter|||5|113635 +3010|KS|Marion County|Ramona city|2790|0|5|Stanaway|Gerald|3009|KS|F|Daughter|||1|113636 + +3010|KS|Marion County|Ramona city|2791|0|1|Stanaway|Rey Orval|2976|Oklahoma|M|Head|||34|113637 +3010|KS|Marion County|Ramona city|2791|0|2|Stanaway|Leia|2971|Idaho|F|Spouse|||39|113638 +3010|KS|Marion County|Ramona city|2791|0|3|Stanaway|Margery|3005|KS|F|Daughter|||5|113639 +3010|KS|Marion County|Ramona city|2791|0|4|Stanaway|Peter|3007|KS|M|Son|||3|113640 +3010|KS|Marion County|Ramona city|2791|0|5|Stanaway|Marquis|3009|KS|M|Son|||1|113641 + +3010|NY|Rockland County|West Nyack CDP|2792|0|1|Stribling|Nestor|2976|Nebraska|M|Head|||34|113642 +3010|NY|Rockland County|West Nyack CDP|2792|0|2|Stribling|Lena|2974|South Carolina|F|Spouse|||36|113643 +3010|NY|Rockland County|West Nyack CDP|2792|0|3|Stribling|Winfred|3001|NY|M|Son|||9|113644 +3010|NY|Rockland County|West Nyack CDP|2792|0|4|Stribling|Wilford|3003|NY|M|Son|||7|113645 +3010|NY|Rockland County|West Nyack CDP|2792|0|5|Stribling|Loree|3009|NY|F|Daughter|||1|113646 + +3010|NY|Hamilton County|Speculator village|2793|0|1|Stribling|Zackary|2982|New Hampshire|M|Head|||28|113647 +3010|NY|Hamilton County|Speculator village|2793|0|2|Stribling|Jan|2988|China|F|Spouse|||22|113648 +3010|NY|Hamilton County|Speculator village|2793|0|3|Stribling|Niesha|3001|NY|F|Daughter|||9|113649 +3010|NY|Hamilton County|Speculator village|2793|0|4|Stribling|Angelo|3005|NY|M|Son|||5|113650 +3010|NY|Hamilton County|Speculator village|2793|0|5|Stribling|Allen|3009|NY|M|Son|||1|113651 + +3010|NJ|Somerset County|Somerset CDP|2794|0|1|Vars|Hong|2982|Washington|M|Head|||28|113652 +3010|NJ|Somerset County|Somerset CDP|2794|0|2|Vars|Leoma|2990|Wyoming|F|Spouse|||20|113653 +3010|NJ|Somerset County|Somerset CDP|2794|0|3|Vars|Corey|3001|NJ|M|Son|||9|113654 +3010|NJ|Somerset County|Somerset CDP|2794|0|4|Vars|Harley|3003|NJ|M|Son|||7|113655 +3010|NJ|Somerset County|Somerset CDP|2794|0|5|Vars|Christinia|3007|NJ|F|Daughter|||3|113656 +3010|NJ|Somerset County|Somerset CDP|2794|0|6|Vars|Janyce|3009|NJ|F|Daughter|||1|113657 + +3010|NE|Webster County|Bladen village|2795|0|1|Vars|Renato|2984|Connecticut|M|Head|||26|113658 +3010|NE|Webster County|Bladen village|2795|0|2|Vars|Janeth|2990|Colorado|F|Spouse|||20|113659 +3010|NE|Webster County|Bladen village|2795|0|3|Vars|Beau|3003|NE|M|Son|||7|113660 +3010|NE|Webster County|Bladen village|2795|0|4|Vars|Daryl Arnold|3005|NE|M|Son|||5|113661 +3010|NE|Webster County|Bladen village|2795|0|5|Vars|Clemente|3007|NE|M|Son|||3|113662 +3010|NE|Webster County|Bladen village|2795|0|6|Vars|Norberto|3009|NE|M|Son|||1|113663 + +3010|MA|Norfolk County|Sharon CDP|2796|0|1|Vars|Edgardo|2994|Hawaii|M|Head|||16|113664 +3010|MA|Norfolk County|Sharon CDP|2796|0|2|Vars|Shawana|2994|Tokelau|F|Spouse|||16|113665 +3010|MA|Norfolk County|Sharon CDP|2796|0|3|Vars|Paige|3007|MA|F|Daughter|||3|113666 +3010|MA|Norfolk County|Sharon CDP|2796|0|4|Vars|Divina|3009|MA|F|Daughter|||1|113667 + +3010|CA|Santa Cruz County|Brookdale CDP|2797|0|1|Cantu|Art|2991|Ohio|M|Head|||19|113668 +3010|CA|Santa Cruz County|Brookdale CDP|2797|0|2|Cantu|Shirly|2986|Maine|F|Spouse|||24|113669 +3010|CA|Santa Cruz County|Brookdale CDP|2797|0|3|Cantu|Cris Yevette|3001|CA|F|Daughter|||9|113670 +3010|CA|Santa Cruz County|Brookdale CDP|2797|0|4|Cantu|Dinah|3005|CA|F|Daughter|||5|113671 +3010|CA|Santa Cruz County|Brookdale CDP|2797|0|5|Cantu|Mark|3007|CA|M|Son|||3|113672 +3010|CA|Santa Cruz County|Brookdale CDP|2797|0|6|Cantu|Tory|3009|CA|M|Son|||1|113673 + +3010|PA|Beaver County|Midland borough|2798|0|1|Bradley|Nicolas Leland|2988|Algeria|M|Head|||22|113674 +3010|PA|Beaver County|Midland borough|2798|0|2|Bradley|Carmel Jerri|2994|Wisconsin|F|Spouse|||16|113675 +3010|PA|Beaver County|Midland borough|2798|0|3|Bradley|Britt|3001|PA|F|Daughter|||9|113676 +3010|PA|Beaver County|Midland borough|2798|0|4|Bradley|Robert|3003|PA|M|Son|||7|113677 +3010|PA|Beaver County|Midland borough|2798|0|5|Bradley|Chantell|3005|PA|F|Daughter|||5|113678 +3010|PA|Beaver County|Midland borough|2798|0|6|Bradley|Erline|3009|PA|F|Daughter|||1|113679 + +3010|PA|Beaver County|Midland borough|2799|0|1|Bradley|Dario|2992|Texas|M|Head|||18|113680 +3010|PA|Beaver County|Midland borough|2799|0|2|Bradley|Carleen|2991|New Jersey|F|Spouse|||19|113681 +3010|PA|Beaver County|Midland borough|2799|0|3|Bradley|Yoshiko|3001|PA|F|Daughter|||9|113682 +3010|PA|Beaver County|Midland borough|2799|0|4|Bradley|Armand|3003|PA|M|Son|||7|113683 +3010|PA|Beaver County|Midland borough|2799|0|5|Bradley|Malik|3007|PA|M|Son|||3|113684 + +3010|IN|Dearborn County|Greendale city|2800|0|1|Bradley|Ulysses|2994|Montana|M|Head|||16|113685 +3010|IN|Dearborn County|Greendale city|2800|0|2|Bradley|Rosia|2989|Slovakia|F|Spouse|||21|113686 +3010|IN|Dearborn County|Greendale city|2800|0|3|Bradley|Tammie|3001|IN|F|Daughter|||9|113687 +3010|IN|Dearborn County|Greendale city|2800|0|4|Bradley|Ezequiel|3003|IN|M|Son|||7|113688 +3010|IN|Dearborn County|Greendale city|2800|0|5|Bradley|Joni Antonette|3009|IN|F|Daughter|||1|113689 + +3010|MN|Lac qui Parle County|Camp Release township|2801|0|1|Mook|Gale|2993|North Carolina|M|Head|||17|113690 +3010|MN|Lac qui Parle County|Camp Release township|2801|0|2|Mook|Janna|2991|Wisconsin|F|Spouse|||19|113691 +3010|MN|Lac qui Parle County|Camp Release township|2801|0|3|Mook|Bobbi|3003|MN|F|Daughter|||7|113692 +3010|MN|Lac qui Parle County|Camp Release township|2801|0|4|Mook|Conrad|3005|MN|M|Son|||5|113693 +3010|MN|Lac qui Parle County|Camp Release township|2801|0|5|Mook|Virgilio|3007|MN|M|Son|||3|113694 + +3010|IA|Washington County|Kalona city|2802|0|1|Schmeling|Garland|2979|Massachusetts|M|Head|||31|113695 +3010|IA|Washington County|Kalona city|2802|0|2|Schmeling|Maia|2978|New Jersey|F|Spouse|||32|113696 +3010|IA|Washington County|Kalona city|2802|0|3|Schmeling|Zelda|3001|IA|F|Daughter|||9|113697 +3010|IA|Washington County|Kalona city|2802|0|4|Schmeling|Jeanine|3007|IA|F|Daughter|||3|113698 + +3010|IA|Washington County|Kalona city|2803|0|1|Schmeling|Adan|2987|Mississippi|M|Head|||23|113699 +3010|IA|Washington County|Kalona city|2803|0|2|Schmeling|Athena|2987|Pennsylvania|F|Spouse|||23|113700 +3010|IA|Washington County|Kalona city|2803|0|3|Schmeling|Burton|3001|IA|M|Son|||9|113701 +3010|IA|Washington County|Kalona city|2803|0|4|Schmeling|Art|3009|IA|M|Son|||1|113702 + +3010|VA|Chesterfield County|Woodlake CDP|2804|0|1|Paywa|Tyson|2988|Slovakia|M|Head|||22|113703 +3010|VA|Chesterfield County|Woodlake CDP|2804|0|2|Paywa|Kristan|2969|Nevada|F|Spouse|||41|113704 +3010|VA|Chesterfield County|Woodlake CDP|2804|0|3|Paywa|Krissy|3001|VA|F|Daughter|||9|113705 +3010|VA|Chesterfield County|Woodlake CDP|2804|0|4|Paywa|Melinda|3003|VA|F|Daughter|||7|113706 +3010|VA|Chesterfield County|Woodlake CDP|2804|0|5|Paywa|Harold|3005|VA|M|Son|||5|113707 +3010|VA|Chesterfield County|Woodlake CDP|2804|0|6|Paywa|Frankie|3007|VA|F|Daughter|||3|113708 +3010|VA|Chesterfield County|Woodlake CDP|2804|0|7|Paywa|Keira|3009|VA|F|Daughter|||1|113709 + +3010|VA|Chesterfield County|Woodlake CDP|2805|0|1|Paywa|Lawerence|2992|Illinois|M|Head|||18|113710 +3010|VA|Chesterfield County|Woodlake CDP|2805|0|2|Paywa|Heide|2987|Netherlands Antilles|F|Spouse|||23|113711 +3010|VA|Chesterfield County|Woodlake CDP|2805|0|3|Paywa|Hellen|3001|VA|F|Daughter|||9|113712 +3010|VA|Chesterfield County|Woodlake CDP|2805|0|4|Paywa|Mi|3005|VA|F|Daughter|||5|113713 +3010|VA|Chesterfield County|Woodlake CDP|2805|0|5|Paywa|Monika Sam|3009|VA|F|Daughter|||1|113714 + +3010|IA|Sac County|Wall Lake city|2806|0|1|Baruffa|Kerry|2990|Delaware|M|Head|||20|113715 +3010|IA|Sac County|Wall Lake city|2806|0|2|Baruffa|Britney|2991|Montana|F|Spouse|||19|113716 +3010|IA|Sac County|Wall Lake city|2806|0|3|Baruffa|Trudy|3001|IA|F|Daughter|||9|113717 +3010|IA|Sac County|Wall Lake city|2806|0|4|Baruffa|Waneta|3007|IA|F|Daughter|||3|113718 + +3010|ME|Waldo County|Prospect town|2807|0|1|Baruffa|Von Teodoro|2992|Tennessee|M|Head|||18|113719 +3010|ME|Waldo County|Prospect town|2807|0|2|Baruffa|Beula|2979|Namibia|F|Spouse|||31|113720 +3010|ME|Waldo County|Prospect town|2807|0|3|Baruffa|Darron|3009|ME|M|Son|||1|113721 + +3010|FL|Holmes County|Noma town|2808|0|1|Previte|Bob|2991|Nevada|M|Head|||19|113722 +3010|FL|Holmes County|Noma town|2808|0|2|Previte|Brunilda Lonnie|2989|Poland|F|Spouse|||21|113723 +3010|FL|Holmes County|Noma town|2808|0|3|Previte|Lorette|3001|FL|F|Daughter|||9|113724 +3010|FL|Holmes County|Noma town|2808|0|4|Previte|Marcelino|3005|FL|M|Son|||5|113725 +3010|FL|Holmes County|Noma town|2808|0|5|Previte|Clifford|3007|FL|M|Son|||3|113726 + +3010|WI|Douglas County|Superior village|2809|0|1|Howell|Jamar Raymundo|2987|Florida|M|Head|||23|113727 +3010|WI|Douglas County|Superior village|2809|0|2|Howell|Leah|2989|South Dakota|F|Spouse|||21|113728 +3010|WI|Douglas County|Superior village|2809|0|3|Howell|Darin|3003|WI|M|Son|||7|113729 +3010|WI|Douglas County|Superior village|2809|0|4|Howell|Gavin|3007|WI|M|Son|||3|113730 +3010|WI|Douglas County|Superior village|2809|0|5|Howell|Julian|3009|WI|F|Daughter|||1|113731 + +3010|AR|Conway County|Plumerville city|2810|0|1|Brunk|Winfred Eric|2975|Nevada|M|Head|||35|113732 +3010|AR|Conway County|Plumerville city|2810|0|2|Brunk|Vinnie|2990|Texas|F|Spouse|||20|113733 +3010|AR|Conway County|Plumerville city|2810|0|3|Brunk|Temple|3001|AR|F|Daughter|||9|113734 +3010|AR|Conway County|Plumerville city|2810|0|4|Brunk|Delila|3005|AR|F|Daughter|||5|113735 +3010|AR|Conway County|Plumerville city|2810|0|5|Brunk|Elliot|3007|AR|M|Son|||3|113736 + +3010|AR|Conway County|Plumerville city|2811|0|1|Brunk|Rodney Tanner|2993|Massachusetts|M|Head|||17|113737 +3010|AR|Conway County|Plumerville city|2811|0|2|Brunk|Rufina|2991|Texas|F|Spouse|||19|113738 +3010|AR|Conway County|Plumerville city|2811|0|3|Brunk|Julianna|3001|AR|F|Daughter|||9|113739 +3010|AR|Conway County|Plumerville city|2811|0|4|Brunk|Louie|3005|AR|M|Son|||5|113740 + +3010|PA|Lancaster County|West Cocalico township|2812|0|1|Tappin|Hershel Jake|2988|South Georgia And The South Sandwich Islands|M|Head|||22|113741 +3010|PA|Lancaster County|West Cocalico township|2812|0|2|Tappin|Hilma|2987|Massachusetts|F|Spouse|||23|113742 +3010|PA|Lancaster County|West Cocalico township|2812|0|3|Tappin|Joshua|3007|PA|M|Son|||3|113743 +3010|PA|Lancaster County|West Cocalico township|2812|0|4|Tappin|Gordon|3009|PA|M|Son|||1|113744 + +3010|NY|Oneida County|Rome city|2813|0|1|Briggs|Maxwell|2981|Montana|M|Head|||29|113745 +3010|NY|Oneida County|Rome city|2813|0|2|Briggs|Cassey|2991|Nevada|F|Spouse|||19|113746 +3010|NY|Oneida County|Rome city|2813|0|3|Briggs|Avril|3003|NY|F|Daughter|||7|113747 +3010|NY|Oneida County|Rome city|2813|0|4|Briggs|Ami|3005|NY|F|Daughter|||5|113748 +3010|NY|Oneida County|Rome city|2813|0|5|Briggs|Venessa|3007|NY|F|Daughter|||3|113749 + +3010|VA|Albemarle County|Esmont CDP|2814|0|1|Thomas|Justin|2988|Benin|M|Head|||22|113750 +3010|VA|Albemarle County|Esmont CDP|2814|0|2|Thomas|Betsy|2992|South Dakota|F|Spouse|||18|113751 +3010|VA|Albemarle County|Esmont CDP|2814|0|3|Thomas|Antwan|3005|VA|M|Son|||5|113752 + +3010|VA|Albemarle County|Esmont CDP|2815|0|1|Thomas|Adalberto|2990|Georgia|M|Head|||20|113753 +3010|VA|Albemarle County|Esmont CDP|2815|0|2|Thomas|Caren|2994|Saint Lucia|F|Spouse|||16|113754 +3010|VA|Albemarle County|Esmont CDP|2815|0|3|Thomas|Zachery Willard|3003|VA|M|Son|||7|113755 +3010|VA|Albemarle County|Esmont CDP|2815|0|4|Thomas|Granville|3007|VA|M|Son|||3|113756 + +3010|VA|Albemarle County|Esmont CDP|2816|0|1|Thomas|Jeremiah|2994|Pennsylvania|M|Head|||16|113757 +3010|VA|Albemarle County|Esmont CDP|2816|0|2|Thomas|Jeffrey|2987|Montana|F|Spouse|||23|113758 +3010|VA|Albemarle County|Esmont CDP|2816|0|3|Thomas|Leopoldo|3001|VA|M|Son|||9|113759 +3010|VA|Albemarle County|Esmont CDP|2816|0|4|Thomas|Jeffrey|3003|VA|M|Son|||7|113760 +3010|VA|Albemarle County|Esmont CDP|2816|0|5|Thomas|Alfred|3009|VA|M|Son|||1|113761 + +3010|ME|Kennebec County|Randolph CDP|2817|0|1|Fahlstedt|Alexis|2984|Michigan|M|Head|||26|113762 +3010|ME|Kennebec County|Randolph CDP|2817|0|2|Fahlstedt|Mark Astrid|2993|Bangladesh|F|Spouse|||17|113763 +3010|ME|Kennebec County|Randolph CDP|2817|0|3|Fahlstedt|Ethan|3001|ME|M|Son|||9|113764 +3010|ME|Kennebec County|Randolph CDP|2817|0|4|Fahlstedt|Britt|3003|ME|M|Son|||7|113765 +3010|ME|Kennebec County|Randolph CDP|2817|0|5|Fahlstedt|Kendall Edmond|3009|ME|M|Son|||1|113766 + +3010|ME|Kennebec County|Randolph CDP|2818|0|1|Fahlstedt|Vincent Kurtis|2986|Wisconsin|M|Head|||24|113767 +3010|ME|Kennebec County|Randolph CDP|2818|0|2|Fahlstedt|Collen|2991|Ohio|F|Spouse|||19|113768 +3010|ME|Kennebec County|Randolph CDP|2818|0|3|Fahlstedt|Eric Erik|3007|ME|M|Son|||3|113769 + +3010|ME|Kennebec County|Randolph CDP|2819|0|1|Fahlstedt|Anderson|2988|Maine|M|Head|||22|113770 +3010|ME|Kennebec County|Randolph CDP|2819|0|2|Fahlstedt|Lisette|2986|Connecticut|F|Spouse|||24|113771 +3010|ME|Kennebec County|Randolph CDP|2819|0|3|Fahlstedt|Waylon|3001|ME|M|Son|||9|113772 +3010|ME|Kennebec County|Randolph CDP|2819|0|4|Fahlstedt|Harris|3003|ME|M|Son|||7|113773 +3010|ME|Kennebec County|Randolph CDP|2819|0|5|Fahlstedt|Napoleon Mckinley|3005|ME|M|Son|||5|113774 +3010|ME|Kennebec County|Randolph CDP|2819|0|6|Fahlstedt|Milissa Marilynn|3007|ME|F|Daughter|||3|113775 +3010|ME|Kennebec County|Randolph CDP|2819|0|7|Fahlstedt|Oscar|3009|ME|M|Son|||1|113776 + +3010|ME|Kennebec County|Randolph CDP|2820|0|1|Fahlstedt|Demetrius|2992|Benin|M|Head|||18|113777 +3010|ME|Kennebec County|Randolph CDP|2820|0|2|Fahlstedt|Shirl|2988|Maine|F|Spouse|||22|113778 +3010|ME|Kennebec County|Randolph CDP|2820|0|3|Fahlstedt|Sena|3003|ME|F|Daughter|||7|113779 +3010|ME|Kennebec County|Randolph CDP|2820|0|4|Fahlstedt|Latoya|3005|ME|F|Daughter|||5|113780 + +3010|IL|DuPage County|Glen Ellyn village|2821|0|1|Vierthaler|Erasmo|2991|Arizona|M|Head|||19|113781 +3010|IL|DuPage County|Glen Ellyn village|2821|0|2|Vierthaler|Wai|2971|Alabama|F|Spouse|||39|113782 +3010|IL|DuPage County|Glen Ellyn village|2821|0|3|Vierthaler|Elvia|3009|IL|F|Daughter|||1|113783 + +3010|IL|DuPage County|Glen Ellyn village|2822|0|1|Vierthaler|Rodolfo|2993|Ukraine|M|Head|||17|113784 +3010|IL|DuPage County|Glen Ellyn village|2822|0|2|Vierthaler|Hellen|2977|Lesotho|F|Spouse|||33|113785 +3010|IL|DuPage County|Glen Ellyn village|2822|0|3|Vierthaler|Hedy|3003|IL|F|Daughter|||7|113786 +3010|IL|DuPage County|Glen Ellyn village|2822|0|4|Vierthaler|Bobby|3005|IL|F|Daughter|||5|113787 +3010|IL|DuPage County|Glen Ellyn village|2822|0|5|Vierthaler|Lorri|3009|IL|F|Daughter|||1|113788 + +3010|OR|Klamath County|Malin city|2823|0|1|Kuty|Michel|2980|Washington|M|Head|||30|113789 +3010|OR|Klamath County|Malin city|2823|0|2|Kuty|Ima|2988|Kansas|F|Spouse|||22|113790 +3010|OR|Klamath County|Malin city|2823|0|3|Kuty|Sylvester|3001|OR|M|Son|||9|113791 +3010|OR|Klamath County|Malin city|2823|0|4|Kuty|Sirena|3009|OR|F|Daughter|||1|113792 + +3010|OR|Klamath County|Malin city|2824|0|1|Kuty|Lamar|2986|Delaware|M|Head|||24|113793 +3010|OR|Klamath County|Malin city|2824|0|2|Kuty|Tommye|2989|Virginia|F|Spouse|||21|113794 +3010|OR|Klamath County|Malin city|2824|0|3|Kuty|Kendall|3003|OR|F|Daughter|||7|113795 +3010|OR|Klamath County|Malin city|2824|0|4|Kuty|Fidel|3005|OR|M|Son|||5|113796 +3010|OR|Klamath County|Malin city|2824|0|5|Kuty|Noble|3009|OR|M|Son|||1|113797 + +3010|NJ|Gloucester County|Wenonah borough|2825|0|1|Kuty|Edmund Man|2990|New York|M|Head|||20|113798 +3010|NJ|Gloucester County|Wenonah borough|2825|0|2|Kuty|Ellyn|2973|Louisiana|F|Spouse|||37|113799 +3010|NJ|Gloucester County|Wenonah borough|2825|0|3|Kuty|Delmer|3001|NJ|M|Son|||9|113800 +3010|NJ|Gloucester County|Wenonah borough|2825|0|4|Kuty|Bari|3003|NJ|F|Daughter|||7|113801 +3010|NJ|Gloucester County|Wenonah borough|2825|0|5|Kuty|Tomoko|3005|NJ|F|Daughter|||5|113802 +3010|NJ|Gloucester County|Wenonah borough|2825|0|6|Kuty|Berry|3007|NJ|M|Son|||3|113803 + +3010|NY|Erie County|Elma town|2826|0|1|Mendivil|Aubrey|2982|Nevada|M|Head|||28|113804 +3010|NY|Erie County|Elma town|2826|0|2|Mendivil|Linda|2985|Congo|F|Spouse|||25|113805 +3010|NY|Erie County|Elma town|2826|0|3|Mendivil|Shila|3003|NY|F|Daughter|||7|113806 +3010|NY|Erie County|Elma town|2826|0|4|Mendivil|Berry Micheal|3005|NY|M|Son|||5|113807 +3010|NY|Erie County|Elma town|2826|0|5|Mendivil|Hector|3007|NY|M|Son|||3|113808 + +3010|NJ|Gloucester County|Wenonah borough|2827|0|1|Mendivil|Vincent|2986|Kansas|M|Head|||24|113809 +3010|NJ|Gloucester County|Wenonah borough|2827|0|2|Mendivil|Bulah|2987|Georgia|F|Spouse|||23|113810 +3010|NJ|Gloucester County|Wenonah borough|2827|0|3|Mendivil|Michel Lamar|3001|NJ|M|Son|||9|113811 +3010|NJ|Gloucester County|Wenonah borough|2827|0|4|Mendivil|Vicente|3003|NJ|M|Son|||7|113812 +3010|NJ|Gloucester County|Wenonah borough|2827|0|5|Mendivil|Emanuel|3009|NJ|M|Son|||1|113813 + +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2828|0|1|Sellers|Anton|2980|Wisconsin|M|Head|||30|113814 +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2828|0|2|Sellers|Yer|2993|New York|F|Spouse|||17|113815 +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2828|0|3|Sellers|Foster|3003|HI|M|Son|||7|113816 +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2828|0|4|Sellers|Desire|3005|HI|F|Daughter|||5|113817 +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2828|0|5|Sellers|Herman|3007|HI|M|Son|||3|113818 +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2828|0|6|Sellers|Andres|3009|HI|M|Son|||1|113819 + +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2829|0|1|Sellers|Eli|2982|Florida|M|Head|||28|113820 +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2829|0|2|Sellers|Monserrate|2992|Maryland|F|Spouse|||18|113821 +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2829|0|3|Sellers|Carmela|3001|HI|F|Daughter|||9|113822 +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2829|0|4|Sellers|Kim|3003|HI|M|Son|||7|113823 +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2829|0|5|Sellers|Charlotte|3009|HI|F|Daughter|||1|113824 + +3010|OK|Greer County|Willow town|2830|0|1|Oconnor|Aron|2990|Montana|M|Head|||20|113825 +3010|OK|Greer County|Willow town|2830|0|2|Oconnor|Karissa|2991|Uganda|F|Spouse|||19|113826 +3010|OK|Greer County|Willow town|2830|0|3|Oconnor|Tijuana|3003|OK|F|Daughter|||7|113827 +3010|OK|Greer County|Willow town|2830|0|4|Oconnor|Thao|3005|OK|F|Daughter|||5|113828 +3010|OK|Greer County|Willow town|2830|0|5|Oconnor|Julee|3007|OK|F|Daughter|||3|113829 + +3010|MA|Plymouth County|Scituate town|2831|0|1|Mayers|Eugenio|2985|Egypt|M|Head|||25|113830 +3010|MA|Plymouth County|Scituate town|2831|0|2|Mayers|Tonya|2981|Iowa|F|Spouse|||29|113831 +3010|MA|Plymouth County|Scituate town|2831|0|3|Mayers|Shanell|3001|MA|F|Daughter|||9|113832 +3010|MA|Plymouth County|Scituate town|2831|0|4|Mayers|Mervin|3003|MA|M|Son|||7|113833 +3010|MA|Plymouth County|Scituate town|2831|0|5|Mayers|Willow|3005|MA|F|Daughter|||5|113834 +3010|MA|Plymouth County|Scituate town|2831|0|6|Mayers|Roxana|3009|MA|F|Daughter|||1|113835 + +3010|MO|Lincoln County|Truxton village|2832|0|1|Huertes|Ty|2984|Texas|M|Head|||26|113836 +3010|MO|Lincoln County|Truxton village|2832|0|2|Huertes|Celesta|2987|Delaware|F|Spouse|||23|113837 +3010|MO|Lincoln County|Truxton village|2832|0|3|Huertes|Palma|3001|MO|F|Daughter|||9|113838 +3010|MO|Lincoln County|Truxton village|2832|0|4|Huertes|Denice|3009|MO|F|Daughter|||1|113839 + +3010|WV|Mason County|Mason town|2833|0|1|Espey|Ken|2983|Illinois|M|Head|||27|113840 +3010|WV|Mason County|Mason town|2833|0|2|Espey|Lisabeth|2987|Florida|F|Spouse|||23|113841 +3010|WV|Mason County|Mason town|2833|0|3|Espey|Emil|3001|WV|M|Son|||9|113842 +3010|WV|Mason County|Mason town|2833|0|4|Espey|Hana|3005|WV|F|Daughter|||5|113843 + +3010|WI|Waushara County|Poysippi town|2834|0|1|Espey|Freddie|2987|Iowa|M|Head|||23|113844 +3010|WI|Waushara County|Poysippi town|2834|0|2|Espey|Hulda|2989|Alabama|F|Spouse|||21|113845 +3010|WI|Waushara County|Poysippi town|2834|0|3|Espey|Carlos|3001|WI|F|Daughter|||9|113846 +3010|WI|Waushara County|Poysippi town|2834|0|4|Espey|Bret|3003|WI|M|Son|||7|113847 +3010|WI|Waushara County|Poysippi town|2834|0|5|Espey|Mistie Lyla|3009|WI|F|Daughter|||1|113848 + +3010|MO|Maries County, Osage County|Argyle town|2835|0|1|Vignola|Gregorio|2991|Wisconsin|M|Head|||19|113849 +3010|MO|Maries County, Osage County|Argyle town|2835|0|2|Vignola|Jackeline|2988|Netherlands Antilles|F|Spouse|||22|113850 +3010|MO|Maries County, Osage County|Argyle town|2835|0|3|Vignola|Nettie|3003|MO|F|Daughter|||7|113851 +3010|MO|Maries County, Osage County|Argyle town|2835|0|4|Vignola|Wm|3005|MO|M|Son|||5|113852 + +3010|VT|Windsor County|Rochester town|2836|0|1|Blackburn|Quentin|2993|Kazakstan|M|Head|||17|113853 +3010|VT|Windsor County|Rochester town|2836|0|2|Blackburn|Yvonne|2990|Hawaii|F|Spouse|||20|113854 +3010|VT|Windsor County|Rochester town|2836|0|3|Blackburn|Carl|3003|VT|M|Son|||7|113855 + +3010|ME|Hancock County|Waltham town|2837|0|1|Berver|Russ|2994|Alaska|M|Head|||16|113856 +3010|ME|Hancock County|Waltham town|2837|0|2|Berver|Delena|2988|Alabama|F|Spouse|||22|113857 +3010|ME|Hancock County|Waltham town|2837|0|3|Berver|Steven|3001|ME|M|Son|||9|113858 + +3010|AK|Kenai Peninsula Borough|Halibut Cove CDP|2838|0|1|Adomaitis|Oswaldo Dave|2985|Nevada|M|Head|||25|113859 +3010|AK|Kenai Peninsula Borough|Halibut Cove CDP|2838|0|2|Adomaitis|Mellie|2990|South Dakota|F|Spouse|||20|113860 +3010|AK|Kenai Peninsula Borough|Halibut Cove CDP|2838|0|3|Adomaitis|Nanette|3001|AK|F|Daughter|||9|113861 +3010|AK|Kenai Peninsula Borough|Halibut Cove CDP|2838|0|4|Adomaitis|Frankie|3003|AK|M|Son|||7|113862 +3010|AK|Kenai Peninsula Borough|Halibut Cove CDP|2838|0|5|Adomaitis|Jules|3007|AK|M|Son|||3|113863 +3010|AK|Kenai Peninsula Borough|Halibut Cove CDP|2838|0|6|Adomaitis|Freddy|3009|AK|M|Son|||1|113864 + +3010|CA|Sacramento County|Foothill Farms CDP|2839|0|1|Willard|Woodrow Dewayne|2989|Algeria|M|Head|||21|113865 +3010|CA|Sacramento County|Foothill Farms CDP|2839|0|2|Willard|Lilliam|2987|Rhode Island|F|Spouse|||23|113866 +3010|CA|Sacramento County|Foothill Farms CDP|2839|0|3|Willard|Virgilio|3003|CA|M|Son|||7|113867 +3010|CA|Sacramento County|Foothill Farms CDP|2839|0|4|Willard|Pat|3005|CA|M|Son|||5|113868 +3010|CA|Sacramento County|Foothill Farms CDP|2839|0|5|Willard|Peggy|3009|CA|F|Daughter|||1|113869 + +3010|GA|Fayette County|Tyrone town|2840|0|1|Szoka|Wally|2977|El Salvador|M|Head|||33|113870 +3010|GA|Fayette County|Tyrone town|2840|0|2|Szoka|Florence|2992|Arkansas|F|Spouse|||18|113871 +3010|GA|Fayette County|Tyrone town|2840|0|3|Szoka|Marcie|3007|GA|F|Daughter|||3|113872 + +3010|GA|Fayette County|Tyrone town|2841|0|1|Szoka|Willie|2987|Idaho|M|Head|||23|113873 +3010|GA|Fayette County|Tyrone town|2841|0|2|Szoka|Natasha|2985|Iceland|F|Spouse|||25|113874 +3010|GA|Fayette County|Tyrone town|2841|0|3|Szoka|Jessica|3001|GA|F|Daughter|||9|113875 +3010|GA|Fayette County|Tyrone town|2841|0|4|Szoka|Rosalia|3003|GA|F|Daughter|||7|113876 +3010|GA|Fayette County|Tyrone town|2841|0|5|Szoka|Russel|3009|GA|M|Son|||1|113877 + +3010|NE|Sherman County|Hazard village|2842|0|1|Monroy|Ernesto|2977|Oman|M|Head|||33|113878 +3010|NE|Sherman County|Hazard village|2842|0|2|Monroy|Jamey|2992|Louisiana|F|Spouse|||18|113879 +3010|NE|Sherman County|Hazard village|2842|0|3|Monroy|Felice|3001|NE|F|Daughter|||9|113880 +3010|NE|Sherman County|Hazard village|2842|0|4|Monroy|Millard|3007|NE|M|Son|||3|113881 +3010|NE|Sherman County|Hazard village|2842|0|5|Monroy|Graham|3009|NE|M|Son|||1|113882 + +3010|WI|Polk County|Lorain town|2843|0|1|Woodend|Judson|2992|Maine|M|Head|||18|113883 +3010|WI|Polk County|Lorain town|2843|0|2|Woodend|Martine|2994|North Carolina|F|Spouse|||16|113884 +3010|WI|Polk County|Lorain town|2843|0|3|Woodend|Sean|3005|WI|M|Son|||5|113885 + +3010|WI|Outagamie County|Kaukauna city|2844|0|1|Solis|Brice|2988|Georgia|M|Head|||22|113886 +3010|WI|Outagamie County|Kaukauna city|2844|0|2|Solis|Cecil|2984|Missouri|F|Spouse|||26|113887 +3010|WI|Outagamie County|Kaukauna city|2844|0|3|Solis|Carmon|3001|WI|F|Daughter|||9|113888 +3010|WI|Outagamie County|Kaukauna city|2844|0|4|Solis|Jo|3003|WI|F|Daughter|||7|113889 +3010|WI|Outagamie County|Kaukauna city|2844|0|5|Solis|Clyde Jewell|3005|WI|M|Son|||5|113890 +3010|WI|Outagamie County|Kaukauna city|2844|0|6|Solis|Aubrey|3009|WI|M|Son|||1|113891 + +3010|CA|Mono County|McGee Creek CDP|2845|0|1|Root|Lucio|2988|New Hampshire|M|Head|||22|113892 +3010|CA|Mono County|McGee Creek CDP|2845|0|2|Root|Marla|2992|Martinique|F|Spouse|||18|113893 +3010|CA|Mono County|McGee Creek CDP|2845|0|3|Root|Loreta|3003|CA|F|Daughter|||7|113894 +3010|CA|Mono County|McGee Creek CDP|2845|0|4|Root|Regine|3007|CA|F|Daughter|||3|113895 + +3010|CA|Mono County|McGee Creek CDP|2846|0|1|Root|Lance|2992|New Hampshire|M|Head|||18|113896 +3010|CA|Mono County|McGee Creek CDP|2846|0|2|Root|Shanelle|2990|Texas|F|Spouse|||20|113897 +3010|CA|Mono County|McGee Creek CDP|2846|0|3|Root|Rene|3001|CA|M|Son|||9|113898 +3010|CA|Mono County|McGee Creek CDP|2846|0|4|Root|Allan|3003|CA|M|Son|||7|113899 +3010|CA|Mono County|McGee Creek CDP|2846|0|5|Root|Errol|3009|CA|M|Son|||1|113900 + +3010|CA|Mono County|McGee Creek CDP|2847|0|1|Root|Herschel|2994|New Jersey|M|Head|||16|113901 +3010|CA|Mono County|McGee Creek CDP|2847|0|2|Root|Ericka Arlena|2988|Louisiana|F|Spouse|||22|113902 +3010|CA|Mono County|McGee Creek CDP|2847|0|3|Root|Elba|3005|CA|F|Daughter|||5|113903 +3010|CA|Mono County|McGee Creek CDP|2847|0|4|Root|Maire|3007|CA|F|Daughter|||3|113904 + +3010|NJ|Passaic County|Pompton Lakes borough|2848|0|1|Schaunt|Gilbert Mel|2993|Connecticut|M|Head|||17|113905 +3010|NJ|Passaic County|Pompton Lakes borough|2848|0|2|Schaunt|Opal|2984|Florida|F|Spouse|||26|113906 +3010|NJ|Passaic County|Pompton Lakes borough|2848|0|3|Schaunt|Brianna|3001|NJ|F|Daughter|||9|113907 +3010|NJ|Passaic County|Pompton Lakes borough|2848|0|4|Schaunt|Lashandra Dalene|3003|NJ|F|Daughter|||7|113908 +3010|NJ|Passaic County|Pompton Lakes borough|2848|0|5|Schaunt|Harmony|3007|NJ|F|Daughter|||3|113909 + +3010|NM|Grant County|Tyrone CDP|2849|0|1|Zirk|Vicente|2991|New Mexico|M|Head|||19|113910 +3010|NM|Grant County|Tyrone CDP|2849|0|2|Zirk|Maya|2986|South Carolina|F|Spouse|||24|113911 +3010|NM|Grant County|Tyrone CDP|2849|0|3|Zirk|Selma|3001|NM|F|Daughter|||9|113912 +3010|NM|Grant County|Tyrone CDP|2849|0|4|Zirk|Alanna|3005|NM|F|Daughter|||5|113913 +3010|NM|Grant County|Tyrone CDP|2849|0|5|Zirk|Marlon|3007|NM|M|Son|||3|113914 +3010|NM|Grant County|Tyrone CDP|2849|0|6|Zirk|Joe|3009|NM|F|Daughter|||1|113915 + +3010|IL|Hancock County, Henderson County|Dallas City city|2850|0|1|Dunn|Judson|2994|Minnesota|M|Head|||16|113916 +3010|IL|Hancock County, Henderson County|Dallas City city|2850|0|2|Dunn|Florance|2990|Alabama|F|Spouse|||20|113917 +3010|IL|Hancock County, Henderson County|Dallas City city|2850|0|3|Dunn|Garry|3003|IL|M|Son|||7|113918 +3010|IL|Hancock County, Henderson County|Dallas City city|2850|0|4|Dunn|Zena|3005|IL|F|Daughter|||5|113919 +3010|IL|Hancock County, Henderson County|Dallas City city|2850|0|5|Dunn|Pamila|3009|IL|F|Daughter|||1|113920 + +3010|WI|Pierce County|Diamond Bluff town|2851|0|1|Hood|Rosario|2986|Minnesota|M|Head|||24|113921 +3010|WI|Pierce County|Diamond Bluff town|2851|0|2|Hood|Kum Tianna|2987|Kansas|F|Spouse|||23|113922 +3010|WI|Pierce County|Diamond Bluff town|2851|0|3|Hood|Dominga|3005|WI|F|Daughter|||5|113923 +3010|WI|Pierce County|Diamond Bluff town|2851|0|4|Hood|Darin Boyd|3009|WI|M|Son|||1|113924 + +3010|WI|Pierce County|Diamond Bluff town|2852|0|1|Hood|Miquel|2992|Ohio|M|Head|||18|113925 +3010|WI|Pierce County|Diamond Bluff town|2852|0|2|Hood|Charleen|2988|Indiana|F|Spouse|||22|113926 +3010|WI|Pierce County|Diamond Bluff town|2852|0|3|Hood|Cary Chet|3001|WI|M|Son|||9|113927 +3010|WI|Pierce County|Diamond Bluff town|2852|0|4|Hood|Salvador|3005|WI|M|Son|||5|113928 + +3010|NY|Ulster County|New Paltz village|2853|0|1|Tiogangco|Frances|2987|Wyoming|M|Head|||23|113929 +3010|NY|Ulster County|New Paltz village|2853|0|2|Tiogangco|Shonda|2992|Wisconsin|F|Spouse|||18|113930 +3010|NY|Ulster County|New Paltz village|2853|0|3|Tiogangco|Major|3001|NY|M|Son|||9|113931 +3010|NY|Ulster County|New Paltz village|2853|0|4|Tiogangco|Gayle|3009|NY|M|Son|||1|113932 + +3010|NY|Ulster County|New Paltz village|2854|0|1|Tiogangco|Williams|2989|Honduras|M|Head|||21|113933 +3010|NY|Ulster County|New Paltz village|2854|0|2|Tiogangco|Zenia|2976|North Carolina|F|Spouse|||34|113934 +3010|NY|Ulster County|New Paltz village|2854|0|3|Tiogangco|Cristina|3001|NY|F|Daughter|||9|113935 +3010|NY|Ulster County|New Paltz village|2854|0|4|Tiogangco|Corrine Clarence|3003|NY|F|Daughter|||7|113936 +3010|NY|Ulster County|New Paltz village|2854|0|5|Tiogangco|Otto|3005|NY|M|Son|||5|113937 + +3010|MN|Kandiyohi County|Harrison township|2855|0|1|Tiogangco|Dirk|2991|Louisiana|M|Head|||19|113938 +3010|MN|Kandiyohi County|Harrison township|2855|0|2|Tiogangco|Karrie|2988|Rhode Island|F|Spouse|||22|113939 +3010|MN|Kandiyohi County|Harrison township|2855|0|3|Tiogangco|Norberto|3003|MN|M|Son|||7|113940 +3010|MN|Kandiyohi County|Harrison township|2855|0|4|Tiogangco|Merle|3005|MN|M|Son|||5|113941 +3010|MN|Kandiyohi County|Harrison township|2855|0|5|Tiogangco|Johnie|3007|MN|F|Daughter|||3|113942 + +3010|MN|Clearwater County|Long Lost Lake township|2856|0|1|Meyerowitz|Ervin|2988|Taiwan, Province Of China|M|Head|||22|113943 +3010|MN|Clearwater County|Long Lost Lake township|2856|0|2|Meyerowitz|Yuonne|2992|South Dakota|F|Spouse|||18|113944 +3010|MN|Clearwater County|Long Lost Lake township|2856|0|3|Meyerowitz|Tyrell|3001|MN|M|Son|||9|113945 +3010|MN|Clearwater County|Long Lost Lake township|2856|0|4|Meyerowitz|Jovita|3005|MN|F|Daughter|||5|113946 +3010|MN|Clearwater County|Long Lost Lake township|2856|0|5|Meyerowitz|Bennett|3007|MN|M|Son|||3|113947 + +3010|MN|Clearwater County|Long Lost Lake township|2857|0|1|Meyerowitz|Zack|2992|Belarus|M|Head|||18|113948 +3010|MN|Clearwater County|Long Lost Lake township|2857|0|2|Meyerowitz|Kenna|2984|Indiana|F|Spouse|||26|113949 +3010|MN|Clearwater County|Long Lost Lake township|2857|0|3|Meyerowitz|Horace|3007|MN|M|Son|||3|113950 + +3010|OH|Clermont County|Bethel village|2858|0|1|Meyerowitz|Wade Adan|2994|Oregon|M|Head|||16|113951 +3010|OH|Clermont County|Bethel village|2858|0|2|Meyerowitz|Treasa|2986|Pennsylvania|F|Spouse|||24|113952 +3010|OH|Clermont County|Bethel village|2858|0|3|Meyerowitz|Sidney Nicky|3001|OH|M|Son|||9|113953 +3010|OH|Clermont County|Bethel village|2858|0|4|Meyerowitz|Darell|3003|OH|M|Son|||7|113954 +3010|OH|Clermont County|Bethel village|2858|0|5|Meyerowitz|Bonnie|3007|OH|F|Daughter|||3|113955 + +3010|WA|Whatcom County|Nooksack city|2859|0|1|Mcdonald|Jonathon|2987|Maine|M|Head|||23|113956 +3010|WA|Whatcom County|Nooksack city|2859|0|2|Mcdonald|Dominique Kelsi|2990|Alabama|F|Spouse|||20|113957 +3010|WA|Whatcom County|Nooksack city|2859|0|3|Mcdonald|Alva|3001|WA|M|Son|||9|113958 +3010|WA|Whatcom County|Nooksack city|2859|0|4|Mcdonald|Matthew|3007|WA|M|Son|||3|113959 +3010|WA|Whatcom County|Nooksack city|2859|0|5|Mcdonald|Nelle|3009|WA|F|Daughter|||1|113960 + +3010|CA|Amador County|Buena Vista CDP|2860|0|1|Mcdonald|Del|2993|Vermont|M|Head|||17|113961 +3010|CA|Amador County|Buena Vista CDP|2860|0|2|Mcdonald|Dusti Leola|2983|Florida|F|Spouse|||27|113962 +3010|CA|Amador County|Buena Vista CDP|2860|0|3|Mcdonald|Jerri|3001|CA|F|Daughter|||9|113963 +3010|CA|Amador County|Buena Vista CDP|2860|0|4|Mcdonald|Harrison|3003|CA|M|Son|||7|113964 +3010|CA|Amador County|Buena Vista CDP|2860|0|5|Mcdonald|Odis|3005|CA|M|Son|||5|113965 + +3010|CT|Fairfield County|Brookfield town|2861|0|1|Vargas|Erwin|2980|Connecticut|M|Head|||30|113966 +3010|CT|Fairfield County|Brookfield town|2861|0|2|Vargas|Jeri|2991|Estonia|F|Spouse|||19|113967 +3010|CT|Fairfield County|Brookfield town|2861|0|3|Vargas|Tyron|3001|CT|M|Son|||9|113968 +3010|CT|Fairfield County|Brookfield town|2861|0|4|Vargas|Chance|3003|CT|M|Son|||7|113969 + +3010|WI|Washington County|West Bend city|2862|0|1|Geerdes|Zachery|2993|Georgia|M|Head|||17|113970 +3010|WI|Washington County|West Bend city|2862|0|2|Geerdes|Vera|2991|Louisiana|F|Spouse|||19|113971 +3010|WI|Washington County|West Bend city|2862|0|3|Geerdes|Jacklyn|3009|WI|F|Daughter|||1|113972 + +3010|MA|Barnstable County|West Chatham CDP|2863|0|1|Thorp|Jimmy|2989|Switzerland|M|Head|||21|113973 +3010|MA|Barnstable County|West Chatham CDP|2863|0|2|Thorp|Claire|2968|Mississippi|F|Spouse|||42|113974 +3010|MA|Barnstable County|West Chatham CDP|2863|0|3|Thorp|Merrill|3001|MA|M|Son|||9|113975 +3010|MA|Barnstable County|West Chatham CDP|2863|0|4|Thorp|Elvis|3003|MA|M|Son|||7|113976 +3010|MA|Barnstable County|West Chatham CDP|2863|0|5|Thorp|Silvia Santina|3005|MA|F|Daughter|||5|113977 +3010|MA|Barnstable County|West Chatham CDP|2863|0|6|Thorp|Debbie|3009|MA|F|Daughter|||1|113978 + +3010|OH|Trumbull County|Lordstown village|2864|0|1|Maerz|Marlin Lenny|2993|Texas|M|Head|||17|113979 +3010|OH|Trumbull County|Lordstown village|2864|0|2|Maerz|Hester|2988|Alabama|F|Spouse|||22|113980 +3010|OH|Trumbull County|Lordstown village|2864|0|3|Maerz|Lean|3001|OH|F|Daughter|||9|113981 +3010|OH|Trumbull County|Lordstown village|2864|0|4|Maerz|Rosario|3003|OH|F|Daughter|||7|113982 + +3010|MN|Sibley County|Green Isle city|2865|0|1|Bain|Anthony|2991|Michigan|M|Head|||19|113983 +3010|MN|Sibley County|Green Isle city|2865|0|2|Bain|Katelyn Hiroko|2985|New Jersey|F|Spouse|||25|113984 +3010|MN|Sibley County|Green Isle city|2865|0|3|Bain|Abram|3005|MN|M|Son|||5|113985 +3010|MN|Sibley County|Green Isle city|2865|0|4|Bain|Raleigh|3007|MN|M|Son|||3|113986 +3010|MN|Sibley County|Green Isle city|2865|0|5|Bain|Lurline|3009|MN|F|Daughter|||1|113987 + +3010|WI|Jackson County|Melrose town|2866|0|1|Kemp|Felix|2973|California|M|Head|||37|113988 +3010|WI|Jackson County|Melrose town|2866|0|2|Kemp|Bethann|2993|Benin|F|Spouse|||17|113989 +3010|WI|Jackson County|Melrose town|2866|0|3|Kemp|Svetlana|3003|WI|F|Daughter|||7|113990 + +3010|WI|Jackson County|Melrose town|2867|0|1|Kemp|Gaylord|2985|Rhode Island|M|Head|||25|113991 +3010|WI|Jackson County|Melrose town|2867|0|2|Kemp|Debbi|2985|Idaho|F|Spouse|||25|113992 +3010|WI|Jackson County|Melrose town|2867|0|3|Kemp|Yon|3001|WI|F|Daughter|||9|113993 +3010|WI|Jackson County|Melrose town|2867|0|4|Kemp|Nakita|3003|WI|F|Daughter|||7|113994 +3010|WI|Jackson County|Melrose town|2867|0|5|Kemp|Jacques|3007|WI|M|Son|||3|113995 +3010|WI|Jackson County|Melrose town|2867|0|6|Kemp|James|3009|WI|F|Daughter|||1|113996 + +3010|WI|Clark County, Marathon County|Dorchester village|2868|0|1|Breen|Christian|2981|Nevada|M|Head|||29|113997 +3010|WI|Clark County, Marathon County|Dorchester village|2868|0|2|Breen|Angie|2987|Nevada|F|Spouse|||23|113998 +3010|WI|Clark County, Marathon County|Dorchester village|2868|0|3|Breen|Darnell|3003|WI|M|Son|||7|113999 +3010|WI|Clark County, Marathon County|Dorchester village|2868|0|4|Breen|Jamie|3009|WI|M|Son|||1|114000 + +3010|IA|Union County|Kent CDP|2869|0|1|Lowes|Glen|2993|Maryland|M|Head|||17|114001 +3010|IA|Union County|Kent CDP|2869|0|2|Lowes|Gretta|2989|Utah|F|Spouse|||21|114002 +3010|IA|Union County|Kent CDP|2869|0|3|Lowes|Latoya|3005|IA|F|Daughter|||5|114003 + +3010|KS|Marion County|Ramona city|2870|0|1|Tosh|Mauricio|2992|Massachusetts|M|Head|||18|114004 +3010|KS|Marion County|Ramona city|2870|0|2|Tosh|Ashlee|2986|Holy See (vatican City State)|F|Spouse|||24|114005 +3010|KS|Marion County|Ramona city|2870|0|3|Tosh|Grant Jospeh|3003|KS|M|Son|||7|114006 + +3010|GA|Emanuel County|Norristown CDP|2871|0|1|Jones|Shelton|2994|Pennsylvania|M|Head|||16|114007 +3010|GA|Emanuel County|Norristown CDP|2871|0|2|Jones|Vera|2990|Mauritius|F|Spouse|||20|114008 +3010|GA|Emanuel County|Norristown CDP|2871|0|3|Jones|Laura|3001|GA|F|Daughter|||9|114009 +3010|GA|Emanuel County|Norristown CDP|2871|0|4|Jones|Gaston|3007|GA|M|Son|||3|114010 +3010|GA|Emanuel County|Norristown CDP|2871|0|5|Jones|Reatha|3009|GA|F|Daughter|||1|114011 + +3010|NY|Westchester County|Greenburgh town|2872|0|1|Malys|Raul|2979|Rhode Island|M|Head|||31|114012 +3010|NY|Westchester County|Greenburgh town|2872|0|2|Malys|Lorinda|2992|Malaysia|F|Spouse|||18|114013 +3010|NY|Westchester County|Greenburgh town|2872|0|3|Malys|Bret|3003|NY|M|Son|||7|114014 +3010|NY|Westchester County|Greenburgh town|2872|0|4|Malys|Evelyn Rowena|3009|NY|F|Daughter|||1|114015 + +3010|CO|Phillips County|Holyoke city|2873|0|1|Atteburg|Werner Jamey|2985|Utah|M|Head|||25|114016 +3010|CO|Phillips County|Holyoke city|2873|0|2|Atteburg|Omega|2980|Florida|F|Spouse|||30|114017 +3010|CO|Phillips County|Holyoke city|2873|0|3|Atteburg|Loyce|3003|CO|F|Daughter|||7|114018 +3010|CO|Phillips County|Holyoke city|2873|0|4|Atteburg|Nerissa|3005|CO|F|Daughter|||5|114019 +3010|CO|Phillips County|Holyoke city|2873|0|5|Atteburg|Essie|3007|CO|F|Daughter|||3|114020 +3010|CO|Phillips County|Holyoke city|2873|0|6|Atteburg|Glayds|3009|CO|F|Daughter|||1|114021 + +3010|WI|Buffalo County|Maxville town|2874|0|1|Mosier|Thad|2986|Illinois|M|Head|||24|114022 +3010|WI|Buffalo County|Maxville town|2874|0|2|Mosier|Shenika|2992|Congo|F|Spouse|||18|114023 +3010|WI|Buffalo County|Maxville town|2874|0|3|Mosier|Reginald|3001|WI|M|Son|||9|114024 +3010|WI|Buffalo County|Maxville town|2874|0|4|Mosier|Lucas|3007|WI|M|Son|||3|114025 +3010|WI|Buffalo County|Maxville town|2874|0|5|Mosier|Mitch|3009|WI|M|Son|||1|114026 + +3010|WI|Buffalo County|Maxville town|2875|0|1|Mosier|Malcolm Teodoro|2990|Netherlands|M|Head|||20|114027 +3010|WI|Buffalo County|Maxville town|2875|0|2|Mosier|Shella|2975|Kuwait|F|Spouse|||35|114028 +3010|WI|Buffalo County|Maxville town|2875|0|3|Mosier|Bernardine|3001|WI|F|Daughter|||9|114029 +3010|WI|Buffalo County|Maxville town|2875|0|4|Mosier|Rosemary|3003|WI|F|Daughter|||7|114030 +3010|WI|Buffalo County|Maxville town|2875|0|5|Mosier|Michel Isaias|3005|WI|M|Son|||5|114031 + +3010|WV|Preston County|Newburg town|2876|0|1|Psencik|Randell|2987|Alabama|M|Head|||23|114032 +3010|WV|Preston County|Newburg town|2876|0|2|Psencik|Yukiko Reagan|2987|Illinois|F|Spouse|||23|114033 +3010|WV|Preston County|Newburg town|2876|0|3|Psencik|Korey|3001|WV|M|Son|||9|114034 +3010|WV|Preston County|Newburg town|2876|0|4|Psencik|Roni|3003|WV|F|Daughter|||7|114035 +3010|WV|Preston County|Newburg town|2876|0|5|Psencik|Dexter|3005|WV|M|Son|||5|114036 +3010|WV|Preston County|Newburg town|2876|0|6|Psencik|Tomi|3007|WV|F|Daughter|||3|114037 +3010|WV|Preston County|Newburg town|2876|0|7|Psencik|Fay|3009|WV|F|Daughter|||1|114038 + +3010|WV|Preston County|Newburg town|2877|0|1|Psencik|Jon|2993|Maine|M|Head|||17|114039 +3010|WV|Preston County|Newburg town|2877|0|2|Psencik|Kari Flossie|2993|New Jersey|F|Spouse|||17|114040 +3010|WV|Preston County|Newburg town|2877|0|3|Psencik|Rodrick|3001|WV|M|Son|||9|114041 +3010|WV|Preston County|Newburg town|2877|0|4|Psencik|Kum|3003|WV|F|Daughter|||7|114042 +3010|WV|Preston County|Newburg town|2877|0|5|Psencik|Stefania|3009|WV|F|Daughter|||1|114043 + +3010|NH|Hillsborough County|Amherst CDP|2878|0|1|Jollimore|Logan|2964|Maryland|M|Head|||46|114044 +3010|NH|Hillsborough County|Amherst CDP|2878|0|2|Jollimore|Arminda|2975|Ohio|F|Spouse|||35|114045 +3010|NH|Hillsborough County|Amherst CDP|2878|0|3|Jollimore|Lois|3001|NH|F|Daughter|||9|114046 +3010|NH|Hillsborough County|Amherst CDP|2878|0|4|Jollimore|Tamela|3003|NH|F|Daughter|||7|114047 +3010|NH|Hillsborough County|Amherst CDP|2878|0|5|Jollimore|Horace|3007|NH|M|Son|||3|114048 +3010|NH|Hillsborough County|Amherst CDP|2878|0|6|Jollimore|Kayce|3009|NH|F|Daughter|||1|114049 + +3010|WV|Fayette County|Ansted town|2879|0|1|Jollimore|Cortez Kendrick|2984|Maine|M|Head|||26|114050 +3010|WV|Fayette County|Ansted town|2879|0|2|Jollimore|Lolita|2983|Maine|F|Spouse|||27|114051 +3010|WV|Fayette County|Ansted town|2879|0|3|Jollimore|Pok Alena|3003|WV|F|Daughter|||7|114052 +3010|WV|Fayette County|Ansted town|2879|0|4|Jollimore|Nelson|3005|WV|M|Son|||5|114053 +3010|WV|Fayette County|Ansted town|2879|0|5|Jollimore|Julee|3007|WV|F|Daughter|||3|114054 +3010|WV|Fayette County|Ansted town|2879|0|6|Jollimore|Helga|3009|WV|F|Daughter|||1|114055 + +3010|NH|Hillsborough County|Amherst CDP|2880|0|1|Jollimore|Wilfredo|2990|Montana|M|Head|||20|114056 +3010|NH|Hillsborough County|Amherst CDP|2880|0|2|Jollimore|Georgiann|2989|Oregon|F|Spouse|||21|114057 +3010|NH|Hillsborough County|Amherst CDP|2880|0|3|Jollimore|Fay Carri|3003|NH|F|Daughter|||7|114058 +3010|NH|Hillsborough County|Amherst CDP|2880|0|4|Jollimore|Tai|3007|NH|F|Daughter|||3|114059 + +3010|VA|Campbell County|Altavista town|2881|0|1|Thieme|Dino|2991|Samoa|M|Head|||19|114060 +3010|VA|Campbell County|Altavista town|2881|0|2|Thieme|Vanita|2991|Vermont|F|Spouse|||19|114061 +3010|VA|Campbell County|Altavista town|2881|0|3|Thieme|Kali|3005|VA|F|Daughter|||5|114062 +3010|VA|Campbell County|Altavista town|2881|0|4|Thieme|Laquita|3007|VA|F|Daughter|||3|114063 +3010|VA|Campbell County|Altavista town|2881|0|5|Thieme|Devin|3009|VA|F|Daughter|||1|114064 + +3010|IL|St. Clair County|Darmstadt CDP|2882|0|1|Pent|Chance|2985|Michigan|M|Head|||25|114065 +3010|IL|St. Clair County|Darmstadt CDP|2882|0|2|Pent|Margeret|2988|Virginia|F|Spouse|||22|114066 +3010|IL|St. Clair County|Darmstadt CDP|2882|0|3|Pent|Romana|3007|IL|F|Daughter|||3|114067 +3010|IL|St. Clair County|Darmstadt CDP|2882|0|4|Pent|Geneva|3009|IL|F|Daughter|||1|114068 + +3010|IL|St. Clair County|Darmstadt CDP|2883|0|1|Pent|Quinn|2987|Hawaii|M|Head|||23|114069 +3010|IL|St. Clair County|Darmstadt CDP|2883|0|2|Pent|Samatha|2994|Kentucky|F|Spouse|||16|114070 +3010|IL|St. Clair County|Darmstadt CDP|2883|0|3|Pent|Corie|3001|IL|F|Daughter|||9|114071 +3010|IL|St. Clair County|Darmstadt CDP|2883|0|4|Pent|Marion|3003|IL|M|Son|||7|114072 +3010|IL|St. Clair County|Darmstadt CDP|2883|0|5|Pent|Haywood|3005|IL|M|Son|||5|114073 + +3010|IL|St. Clair County|Darmstadt CDP|2884|0|1|Pent|Emmitt|2989|Virgin Islands, U.s.|M|Head|||21|114074 +3010|IL|St. Clair County|Darmstadt CDP|2884|0|2|Pent|Trista|2977|Utah|F|Spouse|||33|114075 +3010|IL|St. Clair County|Darmstadt CDP|2884|0|3|Pent|Glenda|3003|IL|F|Daughter|||7|114076 +3010|IL|St. Clair County|Darmstadt CDP|2884|0|4|Pent|See|3005|IL|F|Daughter|||5|114077 +3010|IL|St. Clair County|Darmstadt CDP|2884|0|5|Pent|Janeen|3007|IL|F|Daughter|||3|114078 + +3010|MN|Lac qui Parle County|Maxwell township|2885|0|1|Fisk|Andrew|2989|Delaware|M|Head|||21|114079 +3010|MN|Lac qui Parle County|Maxwell township|2885|0|2|Fisk|Nikki|2974|Alabama|F|Spouse|||36|114080 +3010|MN|Lac qui Parle County|Maxwell township|2885|0|3|Fisk|Emilio|3005|MN|M|Son|||5|114081 + +3010|VA|Chesterfield County|Woodlake CDP|2886|0|1|Edwards|Joaquin Louis|2991|Virgin Islands, U.s.|M|Head|||19|114082 +3010|VA|Chesterfield County|Woodlake CDP|2886|0|2|Edwards|Troy|2990|Oregon|F|Spouse|||20|114083 +3010|VA|Chesterfield County|Woodlake CDP|2886|0|3|Edwards|Mitch|3001|VA|M|Son|||9|114084 +3010|VA|Chesterfield County|Woodlake CDP|2886|0|4|Edwards|Fairy|3003|VA|F|Daughter|||7|114085 +3010|VA|Chesterfield County|Woodlake CDP|2886|0|5|Edwards|Casie|3007|VA|F|Daughter|||3|114086 +3010|VA|Chesterfield County|Woodlake CDP|2886|0|6|Edwards|Ryan Eddy|3009|VA|M|Son|||1|114087 + +3010|AZ|Yavapai County|Cornville CDP|2887|0|1|Williams|Coleman|2957|Vermont|M|Head|||53|114088 +3010|AZ|Yavapai County|Cornville CDP|2887|0|2|Williams|Teresa|2994|Martinique|F|Spouse|||16|114089 +3010|AZ|Yavapai County|Cornville CDP|2887|0|3|Williams|Terri|3005|AZ|F|Daughter|||5|114090 +3010|AZ|Yavapai County|Cornville CDP|2887|0|4|Williams|Ervin|3009|AZ|M|Son|||1|114091 + +3010|AZ|Yavapai County|Cornville CDP|2888|0|1|Williams|Hosea|2989|Kansas|M|Head|||21|114092 +3010|AZ|Yavapai County|Cornville CDP|2888|0|2|Williams|Mitzie|2977|Liberia|F|Spouse|||33|114093 +3010|AZ|Yavapai County|Cornville CDP|2888|0|3|Williams|Lu|3001|AZ|F|Daughter|||9|114094 +3010|AZ|Yavapai County|Cornville CDP|2888|0|4|Williams|Luana|3003|AZ|F|Daughter|||7|114095 +3010|AZ|Yavapai County|Cornville CDP|2888|0|5|Williams|Jacquelynn|3009|AZ|F|Daughter|||1|114096 + +3010|CA|Fresno County|Coalinga city|2889|0|1|Freeman|Burton|2988|Virginia|M|Head|||22|114097 +3010|CA|Fresno County|Coalinga city|2889|0|2|Freeman|Venus|2985|Virginia|F|Spouse|||25|114098 +3010|CA|Fresno County|Coalinga city|2889|0|3|Freeman|Vashti|3005|CA|F|Daughter|||5|114099 + +3010|AZ|Gila County|Round Valley CDP|2890|0|1|Crawford|Malik|2981|New Mexico|M|Head|||29|114100 +3010|AZ|Gila County|Round Valley CDP|2890|0|2|Crawford|Yasuko Libbie|2989|Liberia|F|Spouse|||21|114101 +3010|AZ|Gila County|Round Valley CDP|2890|0|3|Crawford|Celeste|3001|AZ|F|Daughter|||9|114102 +3010|AZ|Gila County|Round Valley CDP|2890|0|4|Crawford|Shalonda|3005|AZ|F|Daughter|||5|114103 +3010|AZ|Gila County|Round Valley CDP|2890|0|5|Crawford|Antwan Jed|3007|AZ|M|Son|||3|114104 +3010|AZ|Gila County|Round Valley CDP|2890|0|6|Crawford|Eric|3009|AZ|M|Son|||1|114105 + +3010|NY|Niagara County|Cambria town|2891|0|1|Batton|Trey|2978|Kentucky|M|Head|||32|114106 +3010|NY|Niagara County|Cambria town|2891|0|2|Batton|Nancee|2986|Alaska|F|Spouse|||24|114107 +3010|NY|Niagara County|Cambria town|2891|0|3|Batton|Lenard|3001|NY|M|Son|||9|114108 +3010|NY|Niagara County|Cambria town|2891|0|4|Batton|Jolyn|3003|NY|F|Daughter|||7|114109 +3010|NY|Niagara County|Cambria town|2891|0|5|Batton|Huey|3005|NY|M|Son|||5|114110 +3010|NY|Niagara County|Cambria town|2891|0|6|Batton|Jonas Jarred|3009|NY|M|Son|||1|114111 + +3010|NY|Seneca County|Waterloo village|2892|0|1|Pensiero|Greg|2983|Washington|M|Head|||27|114112 +3010|NY|Seneca County|Waterloo village|2892|0|2|Pensiero|Le Charlene|2993|Maine|F|Spouse|||17|114113 +3010|NY|Seneca County|Waterloo village|2892|0|3|Pensiero|Rosenda|3001|NY|F|Daughter|||9|114114 +3010|NY|Seneca County|Waterloo village|2892|0|4|Pensiero|Jarred Cody|3003|NY|M|Son|||7|114115 + +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|2893|0|1|Eflin|Deshawn|2986|Connecticut|M|Head|||24|114116 +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|2893|0|2|Eflin|Letisha|2968|Nevada|F|Spouse|||42|114117 +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|2893|0|3|Eflin|Janeen|3001|PR|F|Daughter|||9|114118 +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|2893|0|4|Eflin|Peggie|3003|PR|F|Daughter|||7|114119 +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|2893|0|5|Eflin|Kindra|3005|PR|F|Daughter|||5|114120 +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|2893|0|6|Eflin|Candyce|3007|PR|F|Daughter|||3|114121 + +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|2894|0|1|Eflin|Abram|2992|New York|M|Head|||18|114122 +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|2894|0|2|Eflin|Alexa|2986|Vermont|F|Spouse|||24|114123 +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|2894|0|3|Eflin|Katheleen|3003|PR|F|Daughter|||7|114124 +3010|PR|Manatí Municipio, Vega Baja Municipio|Coto Norte comunidad|2894|0|4|Eflin|Quintin|3005|PR|M|Son|||5|114125 + +3010|ME|Knox County|Friendship town|2895|0|1|Adcock|Hunter|2987|Norway|M|Head|||23|114126 +3010|ME|Knox County|Friendship town|2895|0|2|Adcock|Liane|2988|Barbados|F|Spouse|||22|114127 +3010|ME|Knox County|Friendship town|2895|0|3|Adcock|Gaston|3001|ME|M|Son|||9|114128 +3010|ME|Knox County|Friendship town|2895|0|4|Adcock|Juli|3003|ME|F|Daughter|||7|114129 +3010|ME|Knox County|Friendship town|2895|0|5|Adcock|Carlo Lon|3007|ME|M|Son|||3|114130 +3010|ME|Knox County|Friendship town|2895|0|6|Adcock|Giuseppe|3009|ME|M|Son|||1|114131 + +3010|MD|Cecil County|Cecilton town|2896|0|1|Brown|Seymour|2988|Utah|M|Head|||22|114132 +3010|MD|Cecil County|Cecilton town|2896|0|2|Brown|Classie|2990|Delaware|F|Spouse|||20|114133 +3010|MD|Cecil County|Cecilton town|2896|0|3|Brown|Savanna|3001|MD|F|Daughter|||9|114134 +3010|MD|Cecil County|Cecilton town|2896|0|4|Brown|Jacques|3005|MD|M|Son|||5|114135 +3010|MD|Cecil County|Cecilton town|2896|0|5|Brown|Drusilla|3007|MD|F|Daughter|||3|114136 +3010|MD|Cecil County|Cecilton town|2896|0|6|Brown|Greg|3009|MD|M|Son|||1|114137 + +3010|MI|Montcalm County|Crystal township|2897|0|1|Weiland|Pablo|2990|Pennsylvania|M|Head|||20|114138 +3010|MI|Montcalm County|Crystal township|2897|0|2|Weiland|Casimira Dianna|2985|Oregon|F|Spouse|||25|114139 +3010|MI|Montcalm County|Crystal township|2897|0|3|Weiland|Carly|3001|MI|F|Daughter|||9|114140 +3010|MI|Montcalm County|Crystal township|2897|0|4|Weiland|Earnest|3003|MI|M|Son|||7|114141 +3010|MI|Montcalm County|Crystal township|2897|0|5|Weiland|Kim|3009|MI|M|Son|||1|114142 + +3010|UT|Utah County|Highland city|2898|0|1|Amolsch|Garry|2989|Illinois|M|Head|||21|114143 +3010|UT|Utah County|Highland city|2898|0|2|Amolsch|Regine|2966|Panama|F|Spouse|||44|114144 +3010|UT|Utah County|Highland city|2898|0|3|Amolsch|Aurelia|3003|UT|F|Daughter|||7|114145 +3010|UT|Utah County|Highland city|2898|0|4|Amolsch|Ben|3005|UT|M|Son|||5|114146 +3010|UT|Utah County|Highland city|2898|0|5|Amolsch|Willie|3009|UT|M|Son|||1|114147 + +3010|UT|Utah County|Highland city|2899|0|1|Amolsch|Alexander|2991|Texas|M|Head|||19|114148 +3010|UT|Utah County|Highland city|2899|0|2|Amolsch|Betty|2990|Illinois|F|Spouse|||20|114149 +3010|UT|Utah County|Highland city|2899|0|3|Amolsch|Elbert|3001|UT|M|Son|||9|114150 +3010|UT|Utah County|Highland city|2899|0|4|Amolsch|Maynard|3003|UT|M|Son|||7|114151 +3010|UT|Utah County|Highland city|2899|0|5|Amolsch|Bailey|3005|UT|F|Daughter|||5|114152 + +3010|MO|Montgomery County|Wellsville city|2900|0|1|Manny|Gilberto|2987|Florida|M|Head|||23|114153 +3010|MO|Montgomery County|Wellsville city|2900|0|2|Manny|Xiao|2993|United Arab Emirates|F|Spouse|||17|114154 +3010|MO|Montgomery County|Wellsville city|2900|0|3|Manny|David Bradford|3003|MO|M|Son|||7|114155 +3010|MO|Montgomery County|Wellsville city|2900|0|4|Manny|August|3007|MO|M|Son|||3|114156 +3010|MO|Montgomery County|Wellsville city|2900|0|5|Manny|Luann|3009|MO|F|Daughter|||1|114157 + +3010|KS|Geary County|Grandview Plaza city|2901|0|1|Alvarado|Gerald|2967|Wisconsin|M|Head|||43|114158 +3010|KS|Geary County|Grandview Plaza city|2901|0|2|Alvarado|Rene Kasey|2978|Ghana|F|Spouse|||32|114159 +3010|KS|Geary County|Grandview Plaza city|2901|0|3|Alvarado|Tawnya|3003|KS|F|Daughter|||7|114160 +3010|KS|Geary County|Grandview Plaza city|2901|0|4|Alvarado|Mervin|3005|KS|M|Son|||5|114161 + +3010|WA|Yakima County|Gleed CDP|2902|0|1|Alvarado|Markus|2981|Vermont|M|Head|||29|114162 +3010|WA|Yakima County|Gleed CDP|2902|0|2|Alvarado|Marie|2992|Vermont|F|Spouse|||18|114163 +3010|WA|Yakima County|Gleed CDP|2902|0|3|Alvarado|Luciana|3005|WA|F|Daughter|||5|114164 +3010|WA|Yakima County|Gleed CDP|2902|0|4|Alvarado|Candi|3007|WA|F|Daughter|||3|114165 + +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2903|0|1|Alvarado|George|2991|Hawaii|M|Head|||19|114166 +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2903|0|2|Alvarado|Cynthia|2988|Montana|F|Spouse|||22|114167 +3010|HI|Hawaii County|Hawaiian Paradise Park CDP|2903|0|3|Alvarado|Dawn|3003|HI|F|Daughter|||7|114168 + +3010|TX|El Paso County|Homestead Meadows South CDP|2904|0|1|Keoghan|Carlos|2985|New York|M|Head|||25|114169 +3010|TX|El Paso County|Homestead Meadows South CDP|2904|0|2|Keoghan|Nisha Lakenya|2958|Maryland|F|Spouse|||52|114170 +3010|TX|El Paso County|Homestead Meadows South CDP|2904|0|3|Keoghan|Tim|3003|TX|M|Son|||7|114171 + +3010|IL|Cook County|La Grange Park village|2905|0|1|Lantz|Mauro Richard|2987|West Virginia|M|Head|||23|114172 +3010|IL|Cook County|La Grange Park village|2905|0|2|Lantz|Terrilyn Nu|2988|Idaho|F|Spouse|||22|114173 +3010|IL|Cook County|La Grange Park village|2905|0|3|Lantz|Renea|3003|IL|F|Daughter|||7|114174 +3010|IL|Cook County|La Grange Park village|2905|0|4|Lantz|Leon|3005|IL|M|Son|||5|114175 + +3010|MN|Polk County|Beltrami city|2906|0|1|Jeanbaptise|Ty|2993|Kansas|M|Head|||17|114176 +3010|MN|Polk County|Beltrami city|2906|0|2|Jeanbaptise|Shaneka|2981|Liberia|F|Spouse|||29|114177 +3010|MN|Polk County|Beltrami city|2906|0|3|Jeanbaptise|Joshua|3003|MN|F|Daughter|||7|114178 +3010|MN|Polk County|Beltrami city|2906|0|4|Jeanbaptise|Cary|3007|MN|M|Son|||3|114179 + +3010|CT|Hartford County|West Simsbury CDP|2907|0|1|Stecklair|Derick|2973|New Mexico|M|Head|||37|114180 +3010|CT|Hartford County|West Simsbury CDP|2907|0|2|Stecklair|Vi|2987|Washington|F|Spouse|||23|114181 +3010|CT|Hartford County|West Simsbury CDP|2907|0|3|Stecklair|Ismael|3003|CT|M|Son|||7|114182 +3010|CT|Hartford County|West Simsbury CDP|2907|0|4|Stecklair|Sirena|3005|CT|F|Daughter|||5|114183 +3010|CT|Hartford County|West Simsbury CDP|2907|0|5|Stecklair|Louie|3009|CT|M|Son|||1|114184 + +3010|CT|Hartford County|West Simsbury CDP|2908|0|1|Stecklair|Frederick|2985|Mayotte|M|Head|||25|114185 +3010|CT|Hartford County|West Simsbury CDP|2908|0|2|Stecklair|Adrianna|2992|Michigan|F|Spouse|||18|114186 +3010|CT|Hartford County|West Simsbury CDP|2908|0|3|Stecklair|Quyen|3005|CT|F|Daughter|||5|114187 + +3010|CT|Hartford County|West Simsbury CDP|2909|0|1|Stecklair|Millard Hugh|2989|Kentucky|M|Head|||21|114188 +3010|CT|Hartford County|West Simsbury CDP|2909|0|2|Stecklair|Katerine|2987|North Carolina|F|Spouse|||23|114189 +3010|CT|Hartford County|West Simsbury CDP|2909|0|3|Stecklair|Rowena|3001|CT|F|Daughter|||9|114190 +3010|CT|Hartford County|West Simsbury CDP|2909|0|4|Stecklair|Darrell|3003|CT|M|Son|||7|114191 +3010|CT|Hartford County|West Simsbury CDP|2909|0|5|Stecklair|Harris Nick|3005|CT|M|Son|||5|114192 +3010|CT|Hartford County|West Simsbury CDP|2909|0|6|Stecklair|Andrew|3009|CT|M|Son|||1|114193 + +3010|VT|Orange County|Chelsea town|2910|0|1|Stecklair|Ezekiel|2993|Oklahoma|M|Head|||17|114194 +3010|VT|Orange County|Chelsea town|2910|0|2|Stecklair|Pearle|2989|Ohio|F|Spouse|||21|114195 +3010|VT|Orange County|Chelsea town|2910|0|3|Stecklair|Yukiko|3003|VT|F|Daughter|||7|114196 +3010|VT|Orange County|Chelsea town|2910|0|4|Stecklair|Adalberto|3005|VT|M|Son|||5|114197 +3010|VT|Orange County|Chelsea town|2910|0|5|Stecklair|Luciano Lesley|3007|VT|M|Son|||3|114198 + +3010|ME|Hancock County|Waltham town|2911|0|1|Hurley|Dewey|2981|Nebraska|M|Head|||29|114199 +3010|ME|Hancock County|Waltham town|2911|0|2|Hurley|Arline|2990|Indiana|F|Spouse|||20|114200 +3010|ME|Hancock County|Waltham town|2911|0|3|Hurley|Darin|3003|ME|M|Son|||7|114201 +3010|ME|Hancock County|Waltham town|2911|0|4|Hurley|Linette|3005|ME|F|Daughter|||5|114202 +3010|ME|Hancock County|Waltham town|2911|0|5|Hurley|Alexandria|3007|ME|F|Daughter|||3|114203 +3010|ME|Hancock County|Waltham town|2911|0|6|Hurley|Benton|3009|ME|M|Son|||1|114204 + +3010|PA|Potter County|Austin borough|2912|0|1|Wade|Michale|2981|Minnesota|M|Head|||29|114205 +3010|PA|Potter County|Austin borough|2912|0|2|Wade|Clemmie|2985|Indiana|F|Spouse|||25|114206 +3010|PA|Potter County|Austin borough|2912|0|3|Wade|Willette|3001|PA|F|Daughter|||9|114207 +3010|PA|Potter County|Austin borough|2912|0|4|Wade|Kym|3003|PA|F|Daughter|||7|114208 +3010|PA|Potter County|Austin borough|2912|0|5|Wade|Nita Alethea|3005|PA|F|Daughter|||5|114209 +3010|PA|Potter County|Austin borough|2912|0|6|Wade|Kiley|3009|PA|F|Daughter|||1|114210 + +3010|PA|Potter County|Austin borough|2913|0|1|Wade|Guillermo|2987|Bosnia And Herzegovina|M|Head|||23|114211 +3010|PA|Potter County|Austin borough|2913|0|2|Wade|Selene|2987|Virginia|F|Spouse|||23|114212 +3010|PA|Potter County|Austin borough|2913|0|3|Wade|Kenton|3003|PA|M|Son|||7|114213 +3010|PA|Potter County|Austin borough|2913|0|4|Wade|Lucia|3005|PA|F|Daughter|||5|114214 +3010|PA|Potter County|Austin borough|2913|0|5|Wade|Many|3007|PA|F|Daughter|||3|114215 +3010|PA|Potter County|Austin borough|2913|0|6|Wade|In|3009|PA|F|Daughter|||1|114216 + +3010|KY|Jefferson County|Barbourmeade city|2914|0|1|Alfonzo|Buster|2990|Mississippi|M|Head|||20|114217 +3010|KY|Jefferson County|Barbourmeade city|2914|0|2|Alfonzo|Lanelle|2993|Maryland|F|Spouse|||17|114218 +3010|KY|Jefferson County|Barbourmeade city|2914|0|3|Alfonzo|Kenyatta|3005|KY|F|Daughter|||5|114219 +3010|KY|Jefferson County|Barbourmeade city|2914|0|4|Alfonzo|Tatiana|3007|KY|F|Daughter|||3|114220 + +3010|PA|McKean County|Hamlin township|2915|0|1|Frase|Hugo Jonah|2986|Illinois|M|Head|||24|114221 +3010|PA|McKean County|Hamlin township|2915|0|2|Frase|Paz Tierra|2987|Faroe Islands|F|Spouse|||23|114222 +3010|PA|McKean County|Hamlin township|2915|0|3|Frase|Benton|3001|PA|M|Son|||9|114223 +3010|PA|McKean County|Hamlin township|2915|0|4|Frase|Kerry|3003|PA|M|Son|||7|114224 +3010|PA|McKean County|Hamlin township|2915|0|5|Frase|Malik|3009|PA|M|Son|||1|114225 + +3010|PA|McKean County|Hamlin township|2916|0|1|Frase|Marcelo|2992|Missouri|M|Head|||18|114226 +3010|PA|McKean County|Hamlin township|2916|0|2|Frase|Christen|2989|West Virginia|F|Spouse|||21|114227 +3010|PA|McKean County|Hamlin township|2916|0|3|Frase|Donovan|3005|PA|M|Son|||5|114228 +3010|PA|McKean County|Hamlin township|2916|0|4|Frase|Brooks|3009|PA|M|Son|||1|114229 + +3010|CA|Mendocino County|Philo CDP|2917|0|1|Alles|Scott|2988|Nevada|M|Head|||22|114230 +3010|CA|Mendocino County|Philo CDP|2917|0|2|Alles|Amelia|2991|Kansas|F|Spouse|||19|114231 +3010|CA|Mendocino County|Philo CDP|2917|0|3|Alles|Royce|3001|CA|M|Son|||9|114232 +3010|CA|Mendocino County|Philo CDP|2917|0|4|Alles|Kaci|3005|CA|F|Daughter|||5|114233 +3010|CA|Mendocino County|Philo CDP|2917|0|5|Alles|Nathanial|3007|CA|M|Son|||3|114234 +3010|CA|Mendocino County|Philo CDP|2917|0|6|Alles|Domenic|3009|CA|M|Son|||1|114235 + +3010|AR|Crawford County|Van Buren city|2918|0|1|Lakin|Theo|2990|Gambia|M|Head|||20|114236 +3010|AR|Crawford County|Van Buren city|2918|0|2|Lakin|Shirely|2985|New Mexico|F|Spouse|||25|114237 +3010|AR|Crawford County|Van Buren city|2918|0|3|Lakin|Lyman|3001|AR|M|Son|||9|114238 +3010|AR|Crawford County|Van Buren city|2918|0|4|Lakin|Thanh|3003|AR|M|Son|||7|114239 +3010|AR|Crawford County|Van Buren city|2918|0|5|Lakin|Angie|3007|AR|F|Daughter|||3|114240 + +3010|CA|Marin County|Strawberry CDP|2919|0|1|Flowers|Hayden|2992|Colorado|M|Head|||18|114241 +3010|CA|Marin County|Strawberry CDP|2919|0|2|Flowers|Whitney|2980|Arkansas|F|Spouse|||30|114242 +3010|CA|Marin County|Strawberry CDP|2919|0|3|Flowers|Rosaura Karie|3001|CA|F|Daughter|||9|114243 +3010|CA|Marin County|Strawberry CDP|2919|0|4|Flowers|Krystyna|3003|CA|F|Daughter|||7|114244 +3010|CA|Marin County|Strawberry CDP|2919|0|5|Flowers|Velvet|3007|CA|F|Daughter|||3|114245 +3010|CA|Marin County|Strawberry CDP|2919|0|6|Flowers|Keith|3009|CA|M|Son|||1|114246 + +3010|NY|Madison County|Brookfield town|2920|0|1|Boatright|Thanh|2983|Maryland|M|Head|||27|114247 +3010|NY|Madison County|Brookfield town|2920|0|2|Boatright|Camille|2978|Arkansas|F|Spouse|||32|114248 +3010|NY|Madison County|Brookfield town|2920|0|3|Boatright|Shelby|3001|NY|M|Son|||9|114249 +3010|NY|Madison County|Brookfield town|2920|0|4|Boatright|Liberty|3003|NY|F|Daughter|||7|114250 +3010|NY|Madison County|Brookfield town|2920|0|5|Boatright|Jacob|3009|NY|M|Son|||1|114251 + +3010|AZ|Yuma County|Avenue B and C CDP|2921|0|1|Boatright|Burt|2989|Tunisia|M|Head|||21|114252 +3010|AZ|Yuma County|Avenue B and C CDP|2921|0|2|Boatright|Racheal|2994|Montana|F|Spouse|||16|114253 +3010|AZ|Yuma County|Avenue B and C CDP|2921|0|3|Boatright|Bert|3001|AZ|M|Son|||9|114254 +3010|AZ|Yuma County|Avenue B and C CDP|2921|0|4|Boatright|Armand|3003|AZ|M|Son|||7|114255 +3010|AZ|Yuma County|Avenue B and C CDP|2921|0|5|Boatright|Maribeth|3005|AZ|F|Daughter|||5|114256 +3010|AZ|Yuma County|Avenue B and C CDP|2921|0|6|Boatright|Donnie|3009|AZ|M|Son|||1|114257 + +3010|NC|Currituck County|Coinjock CDP|2922|0|1|Grattelo|Trevor|2994|Delaware|M|Head|||16|114258 +3010|NC|Currituck County|Coinjock CDP|2922|0|2|Grattelo|Dina|2986|Utah|F|Spouse|||24|114259 +3010|NC|Currituck County|Coinjock CDP|2922|0|3|Grattelo|Clarence|3001|NC|F|Daughter|||9|114260 +3010|NC|Currituck County|Coinjock CDP|2922|0|4|Grattelo|Danilo|3003|NC|M|Son|||7|114261 +3010|NC|Currituck County|Coinjock CDP|2922|0|5|Grattelo|Hiedi|3005|NC|F|Daughter|||5|114262 +3010|NC|Currituck County|Coinjock CDP|2922|0|6|Grattelo|Margert|3007|NC|F|Daughter|||3|114263 + +3010|CA|Amador County|Camanche North Shore CDP|2923|0|1|Clark|Adalberto Lucio|2987|Qatar|M|Head|||23|114264 +3010|CA|Amador County|Camanche North Shore CDP|2923|0|2|Clark|Yasmine|2984|Indiana|F|Spouse|||26|114265 +3010|CA|Amador County|Camanche North Shore CDP|2923|0|3|Clark|Rusty|3003|CA|M|Son|||7|114266 +3010|CA|Amador County|Camanche North Shore CDP|2923|0|4|Clark|Aiko|3005|CA|F|Daughter|||5|114267 +3010|CA|Amador County|Camanche North Shore CDP|2923|0|5|Clark|Galina|3009|CA|F|Daughter|||1|114268 + +3010|OH|Warren County|Landen CDP|2924|0|1|Neuser|Cleveland|2991|South Dakota|M|Head|||19|114269 +3010|OH|Warren County|Landen CDP|2924|0|2|Neuser|Hedwig|2988|Indiana|F|Spouse|||22|114270 +3010|OH|Warren County|Landen CDP|2924|0|3|Neuser|Scotty Lynwood|3001|OH|M|Son|||9|114271 +3010|OH|Warren County|Landen CDP|2924|0|4|Neuser|Elwood|3007|OH|M|Son|||3|114272 + +3010|PA|Susquehanna County|New Milford borough|2925|0|1|Petronis|Porter|2985|Nevada|M|Head|||25|114273 +3010|PA|Susquehanna County|New Milford borough|2925|0|2|Petronis|Alyssa|2993|Wisconsin|F|Spouse|||17|114274 +3010|PA|Susquehanna County|New Milford borough|2925|0|3|Petronis|Kathryne|3003|PA|F|Daughter|||7|114275 +3010|PA|Susquehanna County|New Milford borough|2925|0|4|Petronis|Armand|3005|PA|M|Son|||5|114276 +3010|PA|Susquehanna County|New Milford borough|2925|0|5|Petronis|Roseanna|3009|PA|F|Daughter|||1|114277 + +3010|NV|Carson City|Carson City|2926|0|1|Petronis|Trinidad|2987|Oregon|M|Head|||23|114278 +3010|NV|Carson City|Carson City|2926|0|2|Petronis|Sheryll|2990|Georgia|F|Spouse|||20|114279 +3010|NV|Carson City|Carson City|2926|0|3|Petronis|Barrett|3005|NV|M|Son|||5|114280 +3010|NV|Carson City|Carson City|2926|0|4|Petronis|Darnell Hank|3007|NV|M|Son|||3|114281 +3010|NV|Carson City|Carson City|2926|0|5|Petronis|Paz|3009|NV|F|Daughter|||1|114282 + +3010|NV|Carson City|Carson City|2927|0|1|Petronis|Del|2993|North Carolina|M|Head|||17|114283 +3010|NV|Carson City|Carson City|2927|0|2|Petronis|Chun|2985|Denmark|F|Spouse|||25|114284 +3010|NV|Carson City|Carson City|2927|0|3|Petronis|Lucius|3003|NV|M|Son|||7|114285 +3010|NV|Carson City|Carson City|2927|0|4|Petronis|Elane|3009|NV|F|Daughter|||1|114286 + +3010|UT|Carbon County|Clear Creek CDP|2928|0|1|Burdge|Tyler|2973|Maine|M|Head|||37|114287 +3010|UT|Carbon County|Clear Creek CDP|2928|0|2|Burdge|Scottie|2994|Kansas|F|Spouse|||16|114288 +3010|UT|Carbon County|Clear Creek CDP|2928|0|3|Burdge|Tameka|3001|UT|F|Daughter|||9|114289 + +3010|UT|Carbon County|Clear Creek CDP|2929|0|1|Burdge|Danial|2975|Fiji|M|Head|||35|114290 +3010|UT|Carbon County|Clear Creek CDP|2929|0|2|Burdge|Cinderella|2968|Wyoming|F|Spouse|||42|114291 +3010|UT|Carbon County|Clear Creek CDP|2929|0|3|Burdge|Hayden|3003|UT|M|Son|||7|114292 +3010|UT|Carbon County|Clear Creek CDP|2929|0|4|Burdge|Delena|3005|UT|F|Daughter|||5|114293 +3010|UT|Carbon County|Clear Creek CDP|2929|0|5|Burdge|Lucina|3009|UT|F|Daughter|||1|114294 + +3010|CT|Fairfield County|Brookfield town|2930|0|1|Burdge|Craig|2989|Massachusetts|M|Head|||21|114295 +3010|CT|Fairfield County|Brookfield town|2930|0|2|Burdge|Lorena|2984|Louisiana|F|Spouse|||26|114296 +3010|CT|Fairfield County|Brookfield town|2930|0|3|Burdge|Kym|3005|CT|F|Daughter|||5|114297 +3010|CT|Fairfield County|Brookfield town|2930|0|4|Burdge|Sheldon|3009|CT|M|Son|||1|114298 + +3010|IL|Lake County|Old Mill Creek village|2931|0|1|Breault|Rueben|2993|Tennessee|M|Head|||17|114299 +3010|IL|Lake County|Old Mill Creek village|2931|0|2|Breault|Cassi|2975|Nebraska|F|Spouse|||35|114300 +3010|IL|Lake County|Old Mill Creek village|2931|0|3|Breault|Ken|3005|IL|M|Son|||5|114301 +3010|IL|Lake County|Old Mill Creek village|2931|0|4|Breault|Ira|3009|IL|F|Daughter|||1|114302 + +3010|MI|Shiawassee County|Owosso city|2932|0|1|Gagliano|Kerry|2987|California|M|Head|||23|114303 +3010|MI|Shiawassee County|Owosso city|2932|0|2|Gagliano|Lahoma|2993|Alabama|F|Spouse|||17|114304 +3010|MI|Shiawassee County|Owosso city|2932|0|3|Gagliano|Norris|3001|MI|M|Son|||9|114305 +3010|MI|Shiawassee County|Owosso city|2932|0|4|Gagliano|Ethelene|3005|MI|F|Daughter|||5|114306 + +3010|OH|Cuyahoga County|Parma city|2933|0|1|Rinner|Lorenzo|2985|Alabama|M|Head|||25|114307 +3010|OH|Cuyahoga County|Parma city|2933|0|2|Rinner|Artie Helene|2983|Iowa|F|Spouse|||27|114308 +3010|OH|Cuyahoga County|Parma city|2933|0|3|Rinner|Manual|3001|OH|M|Son|||9|114309 +3010|OH|Cuyahoga County|Parma city|2933|0|4|Rinner|Franklyn|3003|OH|M|Son|||7|114310 +3010|OH|Cuyahoga County|Parma city|2933|0|5|Rinner|Hal Brain|3005|OH|M|Son|||5|114311 +3010|OH|Cuyahoga County|Parma city|2933|0|6|Rinner|Chas|3007|OH|M|Son|||3|114312 + +3010|CA|Shasta County|Cassel CDP|2934|0|1|Rinner|Clinton|2991|Utah|M|Head|||19|114313 +3010|CA|Shasta County|Cassel CDP|2934|0|2|Rinner|Lenita|2991|North Dakota|F|Spouse|||19|114314 +3010|CA|Shasta County|Cassel CDP|2934|0|3|Rinner|Boyd|3001|CA|M|Son|||9|114315 +3010|CA|Shasta County|Cassel CDP|2934|0|4|Rinner|Domenic|3003|CA|M|Son|||7|114316 + +3010|PA|Erie County|Concord township|2935|0|1|Kattner|Houston|2988|Oregon|M|Head|||22|114317 +3010|PA|Erie County|Concord township|2935|0|2|Kattner|Augustina|2989|Nebraska|F|Spouse|||21|114318 +3010|PA|Erie County|Concord township|2935|0|3|Kattner|Elliot|3001|PA|M|Son|||9|114319 +3010|PA|Erie County|Concord township|2935|0|4|Kattner|Coy|3003|PA|M|Son|||7|114320 +3010|PA|Erie County|Concord township|2935|0|5|Kattner|Aleida|3005|PA|F|Daughter|||5|114321 +3010|PA|Erie County|Concord township|2935|0|6|Kattner|Fermin|3007|PA|M|Son|||3|114322 + +3010|PA|Erie County|Concord township|2936|0|1|Kattner|Titus|2994|Florida|M|Head|||16|114323 +3010|PA|Erie County|Concord township|2936|0|2|Kattner|Beverly|2991|Michigan|F|Spouse|||19|114324 +3010|PA|Erie County|Concord township|2936|0|3|Kattner|Polly|3001|PA|F|Daughter|||9|114325 +3010|PA|Erie County|Concord township|2936|0|4|Kattner|Darren|3005|PA|M|Son|||5|114326 +3010|PA|Erie County|Concord township|2936|0|5|Kattner|Marty|3009|PA|M|Son|||1|114327 + +3010|NY|Suffolk County|Fishers Island CDP|2937|0|1|Kimbler|Jackie|2992|Bulgaria|M|Head|||18|114328 +3010|NY|Suffolk County|Fishers Island CDP|2937|0|2|Kimbler|Lawanda Zona|2993|Vermont|F|Spouse|||17|114329 +3010|NY|Suffolk County|Fishers Island CDP|2937|0|3|Kimbler|Juliann|3003|NY|F|Daughter|||7|114330 +3010|NY|Suffolk County|Fishers Island CDP|2937|0|4|Kimbler|Micah|3007|NY|F|Daughter|||3|114331 +3010|NY|Suffolk County|Fishers Island CDP|2937|0|5|Kimbler|Hunter Jarrett|3009|NY|M|Son|||1|114332 + +3010|LA|East Feliciana Parish|Jackson town|2938|0|1|Hession|Zachary Carmen|2985|Morocco|M|Head|||25|114333 +3010|LA|East Feliciana Parish|Jackson town|2938|0|2|Hession|Angie|2988|Oregon|F|Spouse|||22|114334 +3010|LA|East Feliciana Parish|Jackson town|2938|0|3|Hession|Fredricka|3003|LA|F|Daughter|||7|114335 +3010|LA|East Feliciana Parish|Jackson town|2938|0|4|Hession|Kassie|3005|LA|F|Daughter|||5|114336 +3010|LA|East Feliciana Parish|Jackson town|2938|0|5|Hession|Jospeh Benton|3007|LA|M|Son|||3|114337 + +3010|WI|Clark County, Marathon County|Dorchester village|2939|0|1|Hession|Elmo|2991|North Carolina|M|Head|||19|114338 +3010|WI|Clark County, Marathon County|Dorchester village|2939|0|2|Hession|Ilda|2971|Alaska|F|Spouse|||39|114339 +3010|WI|Clark County, Marathon County|Dorchester village|2939|0|3|Hession|Lon|3007|WI|M|Son|||3|114340 +3010|WI|Clark County, Marathon County|Dorchester village|2939|0|4|Hession|Weston|3009|WI|M|Son|||1|114341 + +3010|WI|Marathon County|Harrison town|2940|0|1|Gurnett|Gerardo|2991|Oregon|M|Head|||19|114342 +3010|WI|Marathon County|Harrison town|2940|0|2|Gurnett|Kasie|2992|Washington|F|Spouse|||18|114343 +3010|WI|Marathon County|Harrison town|2940|0|3|Gurnett|Caryn|3003|WI|F|Daughter|||7|114344 +3010|WI|Marathon County|Harrison town|2940|0|4|Gurnett|Fawn|3007|WI|F|Daughter|||3|114345 + +3010|FL|Pinellas County|Indian Shores town|2941|0|1|Tambasco|Roman|2989|Hawaii|M|Head|||21|114346 +3010|FL|Pinellas County|Indian Shores town|2941|0|2|Tambasco|Yu Sanora|2982|Utah|F|Spouse|||28|114347 +3010|FL|Pinellas County|Indian Shores town|2941|0|3|Tambasco|Joel|3003|FL|M|Son|||7|114348 +3010|FL|Pinellas County|Indian Shores town|2941|0|4|Tambasco|Dean|3005|FL|F|Daughter|||5|114349 + +3010|MA|Barnstable County|Harwich Center CDP|2942|0|1|Doler|Winfred|2991|Arkansas|M|Head|||19|114350 +3010|MA|Barnstable County|Harwich Center CDP|2942|0|2|Doler|Tawanda|2987|Nebraska|F|Spouse|||23|114351 +3010|MA|Barnstable County|Harwich Center CDP|2942|0|3|Doler|Maurice|3001|MA|M|Son|||9|114352 +3010|MA|Barnstable County|Harwich Center CDP|2942|0|4|Doler|Winston|3003|MA|M|Son|||7|114353 +3010|MA|Barnstable County|Harwich Center CDP|2942|0|5|Doler|Ji|3007|MA|F|Daughter|||3|114354 +3010|MA|Barnstable County|Harwich Center CDP|2942|0|6|Doler|Rosette|3009|MA|F|Daughter|||1|114355 + +3010|NJ|Ocean County|Holiday City-Berkeley CDP|2943|0|1|Mlenar|Sam|2964|Arkansas|M|Head|||46|114356 +3010|NJ|Ocean County|Holiday City-Berkeley CDP|2943|0|2|Mlenar|Antonietta|2993|Rhode Island|F|Spouse|||17|114357 +3010|NJ|Ocean County|Holiday City-Berkeley CDP|2943|0|3|Mlenar|Oliver Brant|3003|NJ|M|Son|||7|114358 +3010|NJ|Ocean County|Holiday City-Berkeley CDP|2943|0|4|Mlenar|Madelaine|3007|NJ|F|Daughter|||3|114359 +3010|NJ|Ocean County|Holiday City-Berkeley CDP|2943|0|5|Mlenar|Rick|3009|NJ|M|Son|||1|114360 + +3010|PA|Adams County|Gardners CDP|2944|0|1|Torres|Benny|2985|Antigua And Barbuda|M|Head|||25|114361 +3010|PA|Adams County|Gardners CDP|2944|0|2|Torres|Silvana|2993|North Dakota|F|Spouse|||17|114362 +3010|PA|Adams County|Gardners CDP|2944|0|3|Torres|Peter|3003|PA|M|Son|||7|114363 +3010|PA|Adams County|Gardners CDP|2944|0|4|Torres|Harley|3007|PA|M|Son|||3|114364 + +3010|TX|Liberty County|Kenefick town|2945|0|1|Torres|Desmond|2989|Virginia|M|Head|||21|114365 +3010|TX|Liberty County|Kenefick town|2945|0|2|Torres|Leena|2989|New Hampshire|F|Spouse|||21|114366 +3010|TX|Liberty County|Kenefick town|2945|0|3|Torres|Kristi|3001|TX|F|Daughter|||9|114367 +3010|TX|Liberty County|Kenefick town|2945|0|4|Torres|Lewis|3003|TX|M|Son|||7|114368 +3010|TX|Liberty County|Kenefick town|2945|0|5|Torres|Shelly|3009|TX|F|Daughter|||1|114369 + +3010|CO|Phillips County|Holyoke city|2946|0|1|Wilson|Marlon|2988|Pitcairn|M|Head|||22|114370 +3010|CO|Phillips County|Holyoke city|2946|0|2|Wilson|Rasheeda|2991|Indiana|F|Spouse|||19|114371 +3010|CO|Phillips County|Holyoke city|2946|0|3|Wilson|Chris|3001|CO|M|Son|||9|114372 +3010|CO|Phillips County|Holyoke city|2946|0|4|Wilson|Zada Randi|3003|CO|F|Daughter|||7|114373 +3010|CO|Phillips County|Holyoke city|2946|0|5|Wilson|Antonia|3007|CO|M|Son|||3|114374 + +3010|NJ|Hudson County|Hoboken city|2947|0|1|Sneed|Lynwood|2987|Montana|M|Head|||23|114375 +3010|NJ|Hudson County|Hoboken city|2947|0|2|Sneed|Jeannine|2985|Georgia|F|Spouse|||25|114376 +3010|NJ|Hudson County|Hoboken city|2947|0|3|Sneed|Dudley|3005|NJ|M|Son|||5|114377 +3010|NJ|Hudson County|Hoboken city|2947|0|4|Sneed|Kazuko|3009|NJ|F|Daughter|||1|114378 + +3010|NY|St. Lawrence County|Edwards village|2948|0|1|Ozier|Lemuel|2970|Greenland|M|Head|||40|114379 +3010|NY|St. Lawrence County|Edwards village|2948|0|2|Ozier|Aleida|2993|Colorado|F|Spouse|||17|114380 +3010|NY|St. Lawrence County|Edwards village|2948|0|3|Ozier|Alfonzo|3001|NY|M|Son|||9|114381 +3010|NY|St. Lawrence County|Edwards village|2948|0|4|Ozier|August|3003|NY|M|Son|||7|114382 +3010|NY|St. Lawrence County|Edwards village|2948|0|5|Ozier|Korey|3007|NY|M|Son|||3|114383 + +3010|NJ|Passaic County|Paterson city|2949|0|1|Ellefson|Asa|2986|West Virginia|M|Head|||24|114384 +3010|NJ|Passaic County|Paterson city|2949|0|2|Ellefson|Leticia|2960|Connecticut|F|Spouse|||50|114385 +3010|NJ|Passaic County|Paterson city|2949|0|3|Ellefson|Jonie|3001|NJ|F|Daughter|||9|114386 +3010|NJ|Passaic County|Paterson city|2949|0|4|Ellefson|Kathryn|3003|NJ|F|Daughter|||7|114387 +3010|NJ|Passaic County|Paterson city|2949|0|5|Ellefson|Latanya|3007|NJ|F|Daughter|||3|114388 + +3010|MI|Marquette County|Negaunee city|2950|0|1|Ellefson|Issac Conrad|2992|Ohio|M|Head|||18|114389 +3010|MI|Marquette County|Negaunee city|2950|0|2|Ellefson|Ocie|2989|Minnesota|F|Spouse|||21|114390 +3010|MI|Marquette County|Negaunee city|2950|0|3|Ellefson|Jay|3001|MI|M|Son|||9|114391 +3010|MI|Marquette County|Negaunee city|2950|0|4|Ellefson|Mellisa|3003|MI|F|Daughter|||7|114392 +3010|MI|Marquette County|Negaunee city|2950|0|5|Ellefson|Alton|3005|MI|M|Son|||5|114393 + +3010|MI|Marquette County|Negaunee city|2951|0|1|Ellefson|Desmond|2994|Texas|M|Head|||16|114394 +3010|MI|Marquette County|Negaunee city|2951|0|2|Ellefson|Calista|2978|Oregon|F|Spouse|||32|114395 +3010|MI|Marquette County|Negaunee city|2951|0|3|Ellefson|Jerome|3005|MI|M|Son|||5|114396 + +3010|NC|Mitchell County|Bakersville town|2952|0|1|Guarneri|Amos Jamaal|2973|Maine|M|Head|||37|114397 +3010|NC|Mitchell County|Bakersville town|2952|0|2|Guarneri|Autumn|2975|New Mexico|F|Spouse|||35|114398 +3010|NC|Mitchell County|Bakersville town|2952|0|3|Guarneri|Rickey|3003|NC|M|Son|||7|114399 +3010|NC|Mitchell County|Bakersville town|2952|0|4|Guarneri|Jess Harvey|3007|NC|M|Son|||3|114400 +3010|NC|Mitchell County|Bakersville town|2952|0|5|Guarneri|Alex|3009|NC|M|Son|||1|114401 + +3010|AZ|Apache County|Teec Nos Pos CDP|2953|0|1|Hemmeter|Noe|2990|Saint Kitts And Nevis|M|Head|||20|114402 +3010|AZ|Apache County|Teec Nos Pos CDP|2953|0|2|Hemmeter|Rubye|2994|Iowa|F|Spouse|||16|114403 +3010|AZ|Apache County|Teec Nos Pos CDP|2953|0|3|Hemmeter|Kaley|3001|AZ|F|Daughter|||9|114404 + +3010|AZ|Apache County|Teec Nos Pos CDP|2954|0|1|Hemmeter|Freddie|2992|Alabama|M|Head|||18|114405 +3010|AZ|Apache County|Teec Nos Pos CDP|2954|0|2|Hemmeter|Virgina|2971|Montana|F|Spouse|||39|114406 +3010|AZ|Apache County|Teec Nos Pos CDP|2954|0|3|Hemmeter|Reatha|3005|AZ|F|Daughter|||5|114407 +3010|AZ|Apache County|Teec Nos Pos CDP|2954|0|4|Hemmeter|Lucy|3007|AZ|F|Daughter|||3|114408 +3010|AZ|Apache County|Teec Nos Pos CDP|2954|0|5|Hemmeter|Lane|3009|AZ|M|Son|||1|114409 + +3010|MN|Fillmore County|Arendahl township|2955|0|1|Stobie|Deangelo|2994|New Jersey|M|Head|||16|114410 +3010|MN|Fillmore County|Arendahl township|2955|0|2|Stobie|Brandee|2961|North Carolina|F|Spouse|||49|114411 +3010|MN|Fillmore County|Arendahl township|2955|0|3|Stobie|Pat|3001|MN|M|Son|||9|114412 +3010|MN|Fillmore County|Arendahl township|2955|0|4|Stobie|Charise|3003|MN|F|Daughter|||7|114413 +3010|MN|Fillmore County|Arendahl township|2955|0|5|Stobie|Mervin|3005|MN|M|Son|||5|114414 + +3010|TX|Henderson County|Poynor town|2956|0|1|Koerner|Grant|2973|Connecticut|M|Head|||37|114415 +3010|TX|Henderson County|Poynor town|2956|0|2|Koerner|Whitley|2994|Wyoming|F|Spouse|||16|114416 +3010|TX|Henderson County|Poynor town|2956|0|3|Koerner|Adrian|3001|TX|M|Son|||9|114417 +3010|TX|Henderson County|Poynor town|2956|0|4|Koerner|Rene|3003|TX|M|Son|||7|114418 +3010|TX|Henderson County|Poynor town|2956|0|5|Koerner|Dwight|3007|TX|M|Son|||3|114419 +3010|TX|Henderson County|Poynor town|2956|0|6|Koerner|Laurence|3009|TX|M|Son|||1|114420 + +3010|TX|Henderson County|Poynor town|2957|0|1|Koerner|Manual Van|2989|Maryland|M|Head|||21|114421 +3010|TX|Henderson County|Poynor town|2957|0|2|Koerner|Anisa|2987|Hawaii|F|Spouse|||23|114422 +3010|TX|Henderson County|Poynor town|2957|0|3|Koerner|Beaulah|3001|TX|F|Daughter|||9|114423 +3010|TX|Henderson County|Poynor town|2957|0|4|Koerner|Kerry|3003|TX|M|Son|||7|114424 +3010|TX|Henderson County|Poynor town|2957|0|5|Koerner|Tressa|3005|TX|F|Daughter|||5|114425 + +3010|NY|Niagara County|Cambria town|2958|0|1|Albertine|Winfred Frances|2983|Maryland|M|Head|||27|114426 +3010|NY|Niagara County|Cambria town|2958|0|2|Albertine|Emily|2992|Denmark|F|Spouse|||18|114427 +3010|NY|Niagara County|Cambria town|2958|0|3|Albertine|Annika|3005|NY|F|Daughter|||5|114428 + +3010|MI|Monroe County|Monroe city|2959|0|1|Jack|Lynn|2968|North Dakota|M|Head|||42|114429 +3010|MI|Monroe County|Monroe city|2959|0|2|Jack|Sophie|2991|Louisiana|F|Spouse|||19|114430 +3010|MI|Monroe County|Monroe city|2959|0|3|Jack|Sebastian|3003|MI|M|Son|||7|114431 +3010|MI|Monroe County|Monroe city|2959|0|4|Jack|Ranae|3009|MI|F|Daughter|||1|114432 + +3010|IN|Delaware County|Yorktown town|2960|0|1|Janacek|Claud Chadwick|2989|Zimbabwe|M|Head|||21|114433 +3010|IN|Delaware County|Yorktown town|2960|0|2|Janacek|Minna|2983|California|F|Spouse|||27|114434 +3010|IN|Delaware County|Yorktown town|2960|0|3|Janacek|Reyes|3001|IN|M|Son|||9|114435 +3010|IN|Delaware County|Yorktown town|2960|0|4|Janacek|Donny|3003|IN|M|Son|||7|114436 +3010|IN|Delaware County|Yorktown town|2960|0|5|Janacek|Lincoln|3005|IN|M|Son|||5|114437 +3010|IN|Delaware County|Yorktown town|2960|0|6|Janacek|Micah|3007|IN|M|Son|||3|114438 + +3010|GA|Peach County|Fort Valley city|2961|0|1|Bos|Alden|2981|Kansas|M|Head|||29|114439 +3010|GA|Peach County|Fort Valley city|2961|0|2|Bos|Eveline|2985|Western Sahara|F|Spouse|||25|114440 +3010|GA|Peach County|Fort Valley city|2961|0|3|Bos|Isaac|3001|GA|M|Son|||9|114441 +3010|GA|Peach County|Fort Valley city|2961|0|4|Bos|Marcelene|3007|GA|F|Daughter|||3|114442 +3010|GA|Peach County|Fort Valley city|2961|0|5|Bos|Dallas|3009|GA|M|Son|||1|114443 + +3010|GA|Screven County|Newington town|2962|0|1|Jorge|Allan|2993|Ohio|M|Head|||17|114444 +3010|GA|Screven County|Newington town|2962|0|2|Jorge|Bettie|2987|New York|F|Spouse|||23|114445 +3010|GA|Screven County|Newington town|2962|0|3|Jorge|Alvaro|3001|GA|M|Son|||9|114446 +3010|GA|Screven County|Newington town|2962|0|4|Jorge|Tangela|3005|GA|F|Daughter|||5|114447 +3010|GA|Screven County|Newington town|2962|0|5|Jorge|Nelson|3009|GA|M|Son|||1|114448 + +3010|CA|Santa Cruz County|Bonny Doon CDP|2963|0|1|Carter|Guy|2989|Virginia|M|Head|||21|114449 +3010|CA|Santa Cruz County|Bonny Doon CDP|2963|0|2|Carter|Dagny|2993|Montana|F|Spouse|||17|114450 +3010|CA|Santa Cruz County|Bonny Doon CDP|2963|0|3|Carter|Candace|3001|CA|F|Daughter|||9|114451 +3010|CA|Santa Cruz County|Bonny Doon CDP|2963|0|4|Carter|Dominic|3005|CA|M|Son|||5|114452 + +3010|CA|Santa Cruz County|Bonny Doon CDP|2964|0|1|Carter|Harry|2993|Cyprus|M|Head|||17|114453 +3010|CA|Santa Cruz County|Bonny Doon CDP|2964|0|2|Carter|Courtney|2974|Vermont|F|Spouse|||36|114454 +3010|CA|Santa Cruz County|Bonny Doon CDP|2964|0|3|Carter|Janee|3001|CA|F|Daughter|||9|114455 +3010|CA|Santa Cruz County|Bonny Doon CDP|2964|0|4|Carter|Edmund|3003|CA|M|Son|||7|114456 + +3010|MO|Ozark County|Sundown CDP|2965|0|1|Bjorkquist|Rufus|2977|Pennsylvania|M|Head|||33|114457 +3010|MO|Ozark County|Sundown CDP|2965|0|2|Bjorkquist|Ashely|2986|Niue|F|Spouse|||24|114458 +3010|MO|Ozark County|Sundown CDP|2965|0|3|Bjorkquist|Liane|3001|MO|F|Daughter|||9|114459 +3010|MO|Ozark County|Sundown CDP|2965|0|4|Bjorkquist|Contessa|3003|MO|F|Daughter|||7|114460 +3010|MO|Ozark County|Sundown CDP|2965|0|5|Bjorkquist|Neil Warner|3005|MO|M|Son|||5|114461 +3010|MO|Ozark County|Sundown CDP|2965|0|6|Bjorkquist|Lauren|3007|MO|F|Daughter|||3|114462 + +3010|MO|Ozark County|Sundown CDP|2966|0|1|Bjorkquist|August|2979|Utah|M|Head|||31|114463 +3010|MO|Ozark County|Sundown CDP|2966|0|2|Bjorkquist|Bong Yelena|2982|New Hampshire|F|Spouse|||28|114464 +3010|MO|Ozark County|Sundown CDP|2966|0|3|Bjorkquist|Jamison|3005|MO|M|Son|||5|114465 +3010|MO|Ozark County|Sundown CDP|2966|0|4|Bjorkquist|Erick|3009|MO|M|Son|||1|114466 + +3010|NY|Steuben County|Troupsburg town|2967|0|1|Bjorkquist|Gilbert|2991|Taiwan, Province Of China|M|Head|||19|114467 +3010|NY|Steuben County|Troupsburg town|2967|0|2|Bjorkquist|Shavonne|2994|Delaware|F|Spouse|||16|114468 +3010|NY|Steuben County|Troupsburg town|2967|0|3|Bjorkquist|Jaquelyn|3001|NY|F|Daughter|||9|114469 +3010|NY|Steuben County|Troupsburg town|2967|0|4|Bjorkquist|Sherman|3003|NY|M|Son|||7|114470 +3010|NY|Steuben County|Troupsburg town|2967|0|5|Bjorkquist|Horacio|3005|NY|M|Son|||5|114471 +3010|NY|Steuben County|Troupsburg town|2967|0|6|Bjorkquist|Nestor|3007|NY|M|Son|||3|114472 +3010|NY|Steuben County|Troupsburg town|2967|0|7|Bjorkquist|Dirk|3009|NY|M|Son|||1|114473 + +3010|MO|Ozark County|Sundown CDP|2968|0|1|Bjorkquist|Logan|2993|Georgia|M|Head|||17|114474 +3010|MO|Ozark County|Sundown CDP|2968|0|2|Bjorkquist|Donnette|2987|Afghanistan|F|Spouse|||23|114475 +3010|MO|Ozark County|Sundown CDP|2968|0|3|Bjorkquist|Wilford|3001|MO|M|Son|||9|114476 +3010|MO|Ozark County|Sundown CDP|2968|0|4|Bjorkquist|Bryon|3003|MO|M|Son|||7|114477 +3010|MO|Ozark County|Sundown CDP|2968|0|5|Bjorkquist|Paris Barton|3005|MO|M|Son|||5|114478 +3010|MO|Ozark County|Sundown CDP|2968|0|6|Bjorkquist|Ted|3009|MO|M|Son|||1|114479 + +3010|NY|Dutchess County|East Fishkill town|2969|0|1|Campagnone|Neal|2989|Kansas|M|Head|||21|114480 +3010|NY|Dutchess County|East Fishkill town|2969|0|2|Campagnone|Elizabeth|2993|Hawaii|F|Spouse|||17|114481 +3010|NY|Dutchess County|East Fishkill town|2969|0|3|Campagnone|Kieth|3001|NY|M|Son|||9|114482 +3010|NY|Dutchess County|East Fishkill town|2969|0|4|Campagnone|Karla|3003|NY|F|Daughter|||7|114483 + +3010|VT|Rutland County|Rutland city|2970|0|1|Turley|Graham|2979|Nauru|M|Head|||31|114484 +3010|VT|Rutland County|Rutland city|2970|0|2|Turley|Fabiola|2975|Trinidad And Tobago|F|Spouse|||35|114485 +3010|VT|Rutland County|Rutland city|2970|0|3|Turley|Dinorah|3003|VT|F|Daughter|||7|114486 + +3010|VT|Rutland County|Rutland city|2971|0|1|Turley|Jordon|2985|Kansas|M|Head|||25|114487 +3010|VT|Rutland County|Rutland city|2971|0|2|Turley|Monserrate Evelia|2965|Connecticut|F|Spouse|||45|114488 +3010|VT|Rutland County|Rutland city|2971|0|3|Turley|Larry|3007|VT|M|Son|||3|114489 +3010|VT|Rutland County|Rutland city|2971|0|4|Turley|Reanna|3009|VT|F|Daughter|||1|114490 + +3010|VT|Rutland County|Rutland city|2972|0|1|Turley|Ollie|2991|North Carolina|M|Head|||19|114491 +3010|VT|Rutland County|Rutland city|2972|0|2|Turley|Charla|2987|Wisconsin|F|Spouse|||23|114492 +3010|VT|Rutland County|Rutland city|2972|0|3|Turley|Morris|3001|VT|M|Son|||9|114493 +3010|VT|Rutland County|Rutland city|2972|0|4|Turley|Kevin|3003|VT|F|Daughter|||7|114494 +3010|VT|Rutland County|Rutland city|2972|0|5|Turley|Cory|3007|VT|M|Son|||3|114495 + +3010|NV|Clark County|Las Vegas city|2973|0|1|Fitch|Lyman|2993|Louisiana|M|Head|||17|114496 +3010|NV|Clark County|Las Vegas city|2973|0|2|Fitch|Pat|2991|Texas|F|Spouse|||19|114497 +3010|NV|Clark County|Las Vegas city|2973|0|3|Fitch|Shannan|3001|NV|F|Daughter|||9|114498 +3010|NV|Clark County|Las Vegas city|2973|0|4|Fitch|Aubrey|3003|NV|M|Son|||7|114499 + +3010|PA|Lawrence County|Chewton CDP|2974|0|1|Depriest|Ezra|2963|United States|M|Head|||47|114500 +3010|PA|Lawrence County|Chewton CDP|2974|0|2|Depriest|Brian|2992|Wyoming|F|Spouse|||18|114501 +3010|PA|Lawrence County|Chewton CDP|2974|0|3|Depriest|Sergio|3003|PA|M|Son|||7|114502 +3010|PA|Lawrence County|Chewton CDP|2974|0|4|Depriest|William|3005|PA|M|Son|||5|114503 +3010|PA|Lawrence County|Chewton CDP|2974|0|5|Depriest|Elvira|3009|PA|F|Daughter|||1|114504 + +3010|MI|Missaukee County|West Branch township|2975|0|1|Depriest|Jae Rafael|2977|Guadeloupe|M|Head|||33|114505 +3010|MI|Missaukee County|West Branch township|2975|0|2|Depriest|Delaine|2987|New Mexico|F|Spouse|||23|114506 +3010|MI|Missaukee County|West Branch township|2975|0|3|Depriest|Madge|3005|MI|F|Daughter|||5|114507 +3010|MI|Missaukee County|West Branch township|2975|0|4|Depriest|Lionel|3007|MI|M|Son|||3|114508 +3010|MI|Missaukee County|West Branch township|2975|0|5|Depriest|Lionel|3009|MI|M|Son|||1|114509 + +3010|PA|Lawrence County|Chewton CDP|2976|0|1|Depriest|Maurice|2993|Pennsylvania|M|Head|||17|114510 +3010|PA|Lawrence County|Chewton CDP|2976|0|2|Depriest|Alberta|2990|New Jersey|F|Spouse|||20|114511 +3010|PA|Lawrence County|Chewton CDP|2976|0|3|Depriest|Tyisha|3003|PA|F|Daughter|||7|114512 +3010|PA|Lawrence County|Chewton CDP|2976|0|4|Depriest|Chi|3005|PA|M|Son|||5|114513 +3010|PA|Lawrence County|Chewton CDP|2976|0|5|Depriest|Lionel|3007|PA|M|Son|||3|114514 +3010|PA|Lawrence County|Chewton CDP|2976|0|6|Depriest|Annice Tracy|3009|PA|F|Daughter|||1|114515 + +3010|IN|Tippecanoe County|West Lafayette city|2977|0|1|Dunzelman|Darius|2983|Pennsylvania|M|Head|||27|114516 +3010|IN|Tippecanoe County|West Lafayette city|2977|0|2|Dunzelman|Kimberlie|2985|New York|F|Spouse|||25|114517 +3010|IN|Tippecanoe County|West Lafayette city|2977|0|3|Dunzelman|Daniella|3001|IN|F|Daughter|||9|114518 +3010|IN|Tippecanoe County|West Lafayette city|2977|0|4|Dunzelman|Keisha Lesley|3005|IN|F|Daughter|||5|114519 + +3010|IN|Tippecanoe County|West Lafayette city|2978|0|1|Dunzelman|Garret|2993|Heard Island And Mcdonald Islands|M|Head|||17|114520 +3010|IN|Tippecanoe County|West Lafayette city|2978|0|2|Dunzelman|Elda|2992|South Carolina|F|Spouse|||18|114521 +3010|IN|Tippecanoe County|West Lafayette city|2978|0|3|Dunzelman|Geoffrey|3005|IN|M|Son|||5|114522 +3010|IN|Tippecanoe County|West Lafayette city|2978|0|4|Dunzelman|Maryann|3007|IN|F|Daughter|||3|114523 +3010|IN|Tippecanoe County|West Lafayette city|2978|0|5|Dunzelman|Terry|3009|IN|M|Son|||1|114524 + +3010|CA|Amador County|Camanche North Shore CDP|2979|0|1|Cracchiolo|Jeremiah|2977|Virginia|M|Head|||33|114525 +3010|CA|Amador County|Camanche North Shore CDP|2979|0|2|Cracchiolo|Justina Tia|2991|Afghanistan|F|Spouse|||19|114526 +3010|CA|Amador County|Camanche North Shore CDP|2979|0|3|Cracchiolo|Hilda|3005|CA|F|Daughter|||5|114527 + +3010|MI|Ottawa County|Zeeland city|2980|0|1|Cracchiolo|Modesto|2993|West Virginia|M|Head|||17|114528 +3010|MI|Ottawa County|Zeeland city|2980|0|2|Cracchiolo|Trudi|2985|Kansas|F|Spouse|||25|114529 +3010|MI|Ottawa County|Zeeland city|2980|0|3|Cracchiolo|Kraig|3005|MI|M|Son|||5|114530 +3010|MI|Ottawa County|Zeeland city|2980|0|4|Cracchiolo|Gillian|3009|MI|F|Daughter|||1|114531 + +3010|MD|Prince George's County|Largo CDP|2981|0|1|Vann|Roscoe|2979|Alaska|M|Head|||31|114532 +3010|MD|Prince George's County|Largo CDP|2981|0|2|Vann|Wilma|2987|New Jersey|F|Spouse|||23|114533 +3010|MD|Prince George's County|Largo CDP|2981|0|3|Vann|Joleen|3007|MD|F|Daughter|||3|114534 +3010|MD|Prince George's County|Largo CDP|2981|0|4|Vann|Jade|3009|MD|F|Daughter|||1|114535 + +3010|MD|Prince George's County|Largo CDP|2982|0|1|Vann|Lamar Rodolfo|2985|West Virginia|M|Head|||25|114536 +3010|MD|Prince George's County|Largo CDP|2982|0|2|Vann|Carletta|2985|Tonga|F|Spouse|||25|114537 +3010|MD|Prince George's County|Largo CDP|2982|0|3|Vann|Danica|3003|MD|F|Daughter|||7|114538 +3010|MD|Prince George's County|Largo CDP|2982|0|4|Vann|Leonel|3009|MD|M|Son|||1|114539 + +3010|NY|Suffolk County|Nesconset CDP|2983|0|1|Havers|Joan|2985|Nebraska|M|Head|||25|114540 +3010|NY|Suffolk County|Nesconset CDP|2983|0|2|Havers|Lottie|2989|Idaho|F|Spouse|||21|114541 +3010|NY|Suffolk County|Nesconset CDP|2983|0|3|Havers|Carma|3003|NY|F|Daughter|||7|114542 +3010|NY|Suffolk County|Nesconset CDP|2983|0|4|Havers|Scottie|3005|NY|M|Son|||5|114543 + +3010|NY|Suffolk County|Nesconset CDP|2984|0|1|Havers|Jeffry|2993|Vermont|M|Head|||17|114544 +3010|NY|Suffolk County|Nesconset CDP|2984|0|2|Havers|Melania Sanjuanita|2987|Alaska|F|Spouse|||23|114545 +3010|NY|Suffolk County|Nesconset CDP|2984|0|3|Havers|Alfonzo|3001|NY|M|Son|||9|114546 +3010|NY|Suffolk County|Nesconset CDP|2984|0|4|Havers|Artie|3005|NY|F|Daughter|||5|114547 + +3010|MI|Benzie County|Lake Ann village|2985|0|1|Oelschlaeger|David|2993|Vanuatu|M|Head|||17|114548 +3010|MI|Benzie County|Lake Ann village|2985|0|2|Oelschlaeger|Dalila|2993|Nebraska|F|Spouse|||17|114549 +3010|MI|Benzie County|Lake Ann village|2985|0|3|Oelschlaeger|Willian|3001|MI|M|Son|||9|114550 +3010|MI|Benzie County|Lake Ann village|2985|0|4|Oelschlaeger|Charley|3003|MI|M|Son|||7|114551 +3010|MI|Benzie County|Lake Ann village|2985|0|5|Oelschlaeger|Ivan|3007|MI|M|Son|||3|114552 +3010|MI|Benzie County|Lake Ann village|2985|0|6|Oelschlaeger|Rich|3009|MI|M|Son|||1|114553 + +3010|GA|Morgan County|Rutledge city|2986|0|1|Goncalves|Jude|2978|North Carolina|M|Head|||32|114554 +3010|GA|Morgan County|Rutledge city|2986|0|2|Goncalves|Jacquline Rachell|2967|Viet Nam|F|Spouse|||43|114555 +3010|GA|Morgan County|Rutledge city|2986|0|3|Goncalves|Daniele|3003|GA|F|Daughter|||7|114556 +3010|GA|Morgan County|Rutledge city|2986|0|4|Goncalves|Berniece|3005|GA|F|Daughter|||5|114557 + +3010|GA|Morgan County|Rutledge city|2987|0|1|Goncalves|Hilario|2984|Spain|M|Head|||26|114558 +3010|GA|Morgan County|Rutledge city|2987|0|2|Goncalves|Lenna|2979|Illinois|F|Spouse|||31|114559 +3010|GA|Morgan County|Rutledge city|2987|0|3|Goncalves|Kelly|3001|GA|F|Daughter|||9|114560 +3010|GA|Morgan County|Rutledge city|2987|0|4|Goncalves|Vern|3007|GA|M|Son|||3|114561 +3010|GA|Morgan County|Rutledge city|2987|0|5|Goncalves|Richie|3009|GA|M|Son|||1|114562 + +3010|GA|Morgan County|Rutledge city|2988|0|1|Goncalves|Doug|2986|American Samoa|M|Head|||24|114563 +3010|GA|Morgan County|Rutledge city|2988|0|2|Goncalves|Louise|2987|Wyoming|F|Spouse|||23|114564 +3010|GA|Morgan County|Rutledge city|2988|0|3|Goncalves|Carmelia|3005|GA|F|Daughter|||5|114565 +3010|GA|Morgan County|Rutledge city|2988|0|4|Goncalves|Hosea|3009|GA|M|Son|||1|114566 + +3010|GA|Morgan County|Rutledge city|2989|0|1|Goncalves|Ali Bertram|2992|Niue|M|Head|||18|114567 +3010|GA|Morgan County|Rutledge city|2989|0|2|Goncalves|Hazel|2991|Michigan|F|Spouse|||19|114568 +3010|GA|Morgan County|Rutledge city|2989|0|3|Goncalves|Kortney|3001|GA|F|Daughter|||9|114569 +3010|GA|Morgan County|Rutledge city|2989|0|4|Goncalves|Phyliss|3005|GA|F|Daughter|||5|114570 +3010|GA|Morgan County|Rutledge city|2989|0|5|Goncalves|Jeremy|3009|GA|M|Son|||1|114571 + +3010|OH|Cuyahoga County|Parma city|2990|0|1|Hall|Coy|2985|Mississippi|M|Head|||25|114572 +3010|OH|Cuyahoga County|Parma city|2990|0|2|Hall|Caitlyn|2987|Congo|F|Spouse|||23|114573 +3010|OH|Cuyahoga County|Parma city|2990|0|3|Hall|Benjamin|3005|OH|M|Son|||5|114574 +3010|OH|Cuyahoga County|Parma city|2990|0|4|Hall|Lashunda Madelyn|3007|OH|F|Daughter|||3|114575 +3010|OH|Cuyahoga County|Parma city|2990|0|5|Hall|Gidget|3009|OH|F|Daughter|||1|114576 + +3010|NH|Strafford County|Dover city|2991|0|1|Laprete|Tobias|2993|New York|M|Head|||17|114577 +3010|NH|Strafford County|Dover city|2991|0|2|Laprete|Cruz Arlyne|2993|Oklahoma|F|Spouse|||17|114578 +3010|NH|Strafford County|Dover city|2991|0|3|Laprete|Darin Mariano|3001|NH|M|Son|||9|114579 +3010|NH|Strafford County|Dover city|2991|0|4|Laprete|Cedric|3003|NH|M|Son|||7|114580 +3010|NH|Strafford County|Dover city|2991|0|5|Laprete|Jacob|3007|NH|M|Son|||3|114581 + +3010|WA|Yakima County|Harrah town|2992|0|1|Mann|Quentin|2987|Wyoming|M|Head|||23|114582 +3010|WA|Yakima County|Harrah town|2992|0|2|Mann|Casimira|2992|Hawaii|F|Spouse|||18|114583 +3010|WA|Yakima County|Harrah town|2992|0|3|Mann|Kieth|3001|WA|M|Son|||9|114584 +3010|WA|Yakima County|Harrah town|2992|0|4|Mann|Bo|3003|WA|M|Son|||7|114585 +3010|WA|Yakima County|Harrah town|2992|0|5|Mann|Charley|3007|WA|M|Son|||3|114586 + +3010|WI|Barron County|Cameron village|2993|0|1|Pezzica|Jermaine|2991|Delaware|M|Head|||19|114587 +3010|WI|Barron County|Cameron village|2993|0|2|Pezzica|Sheryl|2980|Panama|F|Spouse|||30|114588 +3010|WI|Barron County|Cameron village|2993|0|3|Pezzica|Santos|3005|WI|M|Son|||5|114589 + +3010|TX|Rusk County|Mount Enterprise city|2994|0|1|Carethers|Tomas Jose|2976|Wyoming|M|Head|||34|114590 +3010|TX|Rusk County|Mount Enterprise city|2994|0|2|Carethers|Rosaura|2986|Illinois|F|Spouse|||24|114591 +3010|TX|Rusk County|Mount Enterprise city|2994|0|3|Carethers|Alita|3001|TX|F|Daughter|||9|114592 + +3010|TX|Rusk County|Mount Enterprise city|2995|0|1|Carethers|Calvin|2994|New Mexico|M|Head|||16|114593 +3010|TX|Rusk County|Mount Enterprise city|2995|0|2|Carethers|Reatha|2994|Idaho|F|Spouse|||16|114594 +3010|TX|Rusk County|Mount Enterprise city|2995|0|3|Carethers|Orval|3001|TX|M|Son|||9|114595 +3010|TX|Rusk County|Mount Enterprise city|2995|0|4|Carethers|Naoma|3003|TX|F|Daughter|||7|114596 +3010|TX|Rusk County|Mount Enterprise city|2995|0|5|Carethers|Sammy|3005|TX|M|Son|||5|114597 +3010|TX|Rusk County|Mount Enterprise city|2995|0|6|Carethers|Preston Derrick|3007|TX|M|Son|||3|114598 +3010|TX|Rusk County|Mount Enterprise city|2995|0|7|Carethers|Murray|3009|TX|M|Son|||1|114599 + +3010|MN|St. Louis County|Cedar Valley township|2996|0|1|Hackworth|Fredrick|2966|Oklahoma|M|Head|||44|114600 +3010|MN|St. Louis County|Cedar Valley township|2996|0|2|Hackworth|Janay|2993|Tennessee|F|Spouse|||17|114601 +3010|MN|St. Louis County|Cedar Valley township|2996|0|3|Hackworth|Jake|3001|MN|M|Son|||9|114602 +3010|MN|St. Louis County|Cedar Valley township|2996|0|4|Hackworth|Veola|3003|MN|F|Daughter|||7|114603 +3010|MN|St. Louis County|Cedar Valley township|2996|0|5|Hackworth|Reyna|3005|MN|F|Daughter|||5|114604 +3010|MN|St. Louis County|Cedar Valley township|2996|0|6|Hackworth|Krysta|3007|MN|F|Daughter|||3|114605 + +3010|VA|Prince William County|Triangle CDP|2997|0|1|Hackworth|Andre|2974|Arkansas|M|Head|||36|114606 +3010|VA|Prince William County|Triangle CDP|2997|0|2|Hackworth|Judy|2985|Missouri|F|Spouse|||25|114607 +3010|VA|Prince William County|Triangle CDP|2997|0|3|Hackworth|Jeneva Mirna|3001|VA|F|Daughter|||9|114608 +3010|VA|Prince William County|Triangle CDP|2997|0|4|Hackworth|Gary|3003|VA|M|Son|||7|114609 +3010|VA|Prince William County|Triangle CDP|2997|0|5|Hackworth|Lavonne|3007|VA|F|Daughter|||3|114610 +3010|VA|Prince William County|Triangle CDP|2997|0|6|Hackworth|Sherrell|3009|VA|F|Daughter|||1|114611 + +3010|TX|Lamb County|Earth city|2998|0|1|James|Kyle|2978|Poland|M|Head|||32|114612 +3010|TX|Lamb County|Earth city|2998|0|2|James|Loise|2991|Montana|F|Spouse|||19|114613 +3010|TX|Lamb County|Earth city|2998|0|3|James|Jan|3001|TX|M|Son|||9|114614 +3010|TX|Lamb County|Earth city|2998|0|4|James|Opal Alease|3003|TX|F|Daughter|||7|114615 +3010|TX|Lamb County|Earth city|2998|0|5|James|Thad|3009|TX|M|Son|||1|114616 + +3010|OH|Vinton County|Wilkesville village|2999|0|1|Kopperud|Brooks|2990|Arizona|M|Head|||20|114617 +3010|OH|Vinton County|Wilkesville village|2999|0|2|Kopperud|Margurite|2992|Washington|F|Spouse|||18|114618 +3010|OH|Vinton County|Wilkesville village|2999|0|3|Kopperud|Jillian|3001|OH|F|Daughter|||9|114619 +3010|OH|Vinton County|Wilkesville village|2999|0|4|Kopperud|Dusti|3003|OH|F|Daughter|||7|114620 +3010|OH|Vinton County|Wilkesville village|2999|0|5|Kopperud|Anneliese Karie|3005|OH|F|Daughter|||5|114621 + +3010|MI|Branch County|Algansee township|3000|0|1|Lowe|Federico|2975|Illinois|M|Head|||35|114622 +3010|MI|Branch County|Algansee township|3000|0|2|Lowe|Dolores|2986|New Hampshire|F|Spouse|||24|114623 +3010|MI|Branch County|Algansee township|3000|0|3|Lowe|Katina|3003|MI|F|Daughter|||7|114624 + +3010|WA|Snohomish County|Mill Creek East CDP|3001|0|1|Lowe|Quincy|2989|Alaska|M|Head|||21|114625 +3010|WA|Snohomish County|Mill Creek East CDP|3001|0|2|Lowe|Terese|2989|Utah|F|Spouse|||21|114626 +3010|WA|Snohomish County|Mill Creek East CDP|3001|0|3|Lowe|Danial|3007|WA|M|Son|||3|114627 + +3010|ND|McHenry County|Deering city|3002|0|1|Roscow|Anthony|2987|Georgia|M|Head|||23|114628 +3010|ND|McHenry County|Deering city|3002|0|2|Roscow|Donald|2984|Washington|F|Spouse|||26|114629 +3010|ND|McHenry County|Deering city|3002|0|3|Roscow|Leandro|3003|ND|M|Son|||7|114630 +3010|ND|McHenry County|Deering city|3002|0|4|Roscow|Nan|3005|ND|F|Daughter|||5|114631 +3010|ND|McHenry County|Deering city|3002|0|5|Roscow|Belen|3007|ND|F|Daughter|||3|114632 +3010|ND|McHenry County|Deering city|3002|0|6|Roscow|Dorotha|3009|ND|F|Daughter|||1|114633 + +3010|OR|Clackamas County|Beavercreek CDP|3003|0|1|Oguin|Chris|2989|Illinois|M|Head|||21|114634 +3010|OR|Clackamas County|Beavercreek CDP|3003|0|2|Oguin|Venessa Monica|2986|Minnesota|F|Spouse|||24|114635 +3010|OR|Clackamas County|Beavercreek CDP|3003|0|3|Oguin|Fawn Ellamae|3005|OR|F|Daughter|||5|114636 +3010|OR|Clackamas County|Beavercreek CDP|3003|0|4|Oguin|Johnie|3007|OR|M|Son|||3|114637 +3010|OR|Clackamas County|Beavercreek CDP|3003|0|5|Oguin|Cecila|3009|OR|F|Daughter|||1|114638 + +3010|VA|Augusta County, Rockingham County|Grottoes town|3004|0|1|Riley|Pierre Myles|2986|Louisiana|M|Head|||24|114639 +3010|VA|Augusta County, Rockingham County|Grottoes town|3004|0|2|Riley|Carmela|2973|Nevada|F|Spouse|||37|114640 +3010|VA|Augusta County, Rockingham County|Grottoes town|3004|0|3|Riley|Gregory|3001|VA|M|Son|||9|114641 +3010|VA|Augusta County, Rockingham County|Grottoes town|3004|0|4|Riley|Arline|3007|VA|F|Daughter|||3|114642 +3010|VA|Augusta County, Rockingham County|Grottoes town|3004|0|5|Riley|Billie Guillermo|3009|VA|M|Son|||1|114643 + +3010|MN|Stearns County|Lake Henry township|3005|0|1|Fukuroku|Ned|2970|Kansas|M|Head|||40|114644 +3010|MN|Stearns County|Lake Henry township|3005|0|2|Fukuroku|Georgia Cyrstal|2985|Montserrat|F|Spouse|||25|114645 +3010|MN|Stearns County|Lake Henry township|3005|0|3|Fukuroku|Phylis|3001|MN|F|Daughter|||9|114646 +3010|MN|Stearns County|Lake Henry township|3005|0|4|Fukuroku|Lennie|3003|MN|F|Daughter|||7|114647 +3010|MN|Stearns County|Lake Henry township|3005|0|5|Fukuroku|Bradford|3007|MN|M|Son|||3|114648 +3010|MN|Stearns County|Lake Henry township|3005|0|6|Fukuroku|Hyacinth|3009|MN|F|Daughter|||1|114649 + +3010|MN|Stearns County|Lake Henry township|3006|0|1|Fukuroku|Cordell Leigh|2984|South Carolina|M|Head|||26|114650 +3010|MN|Stearns County|Lake Henry township|3006|0|2|Fukuroku|Oscar|2977|Mississippi|F|Spouse|||33|114651 +3010|MN|Stearns County|Lake Henry township|3006|0|3|Fukuroku|Vasiliki|3005|MN|F|Daughter|||5|114652 + +3010|MN|Stearns County|Lake Henry township|3007|0|1|Fukuroku|Leopoldo|2992|Oregon|M|Head|||18|114653 +3010|MN|Stearns County|Lake Henry township|3007|0|2|Fukuroku|Ashely Merlyn|2993|Alabama|F|Spouse|||17|114654 +3010|MN|Stearns County|Lake Henry township|3007|0|3|Fukuroku|Viva|3003|MN|F|Daughter|||7|114655 + +3010|MN|Stearns County|Lake Henry township|3008|0|1|Fukuroku|Jules|2994|Oman|M|Head|||16|114656 +3010|MN|Stearns County|Lake Henry township|3008|0|2|Fukuroku|Shira|2990|South Dakota|F|Spouse|||20|114657 +3010|MN|Stearns County|Lake Henry township|3008|0|3|Fukuroku|Clint|3001|MN|M|Son|||9|114658 +3010|MN|Stearns County|Lake Henry township|3008|0|4|Fukuroku|Melina|3007|MN|F|Daughter|||3|114659 + +3010|TX|Liberty County|Kenefick town|3009|0|1|Mangino|Brandon Darius|2968|Pennsylvania|M|Head|||42|114660 +3010|TX|Liberty County|Kenefick town|3009|0|2|Mangino|Azzie|2987|New Zealand|F|Spouse|||23|114661 +3010|TX|Liberty County|Kenefick town|3009|0|3|Mangino|Rosalba Roselee|3001|TX|F|Daughter|||9|114662 +3010|TX|Liberty County|Kenefick town|3009|0|4|Mangino|Dominique|3003|TX|M|Son|||7|114663 +3010|TX|Liberty County|Kenefick town|3009|0|5|Mangino|Elliot Jimmie|3005|TX|M|Son|||5|114664 +3010|TX|Liberty County|Kenefick town|3009|0|6|Mangino|Demetrius|3009|TX|M|Son|||1|114665 + +3010|PA|Allegheny County|Forest Hills borough|3010|0|1|Mangino|Neal|2972|Minnesota|M|Head|||38|114666 +3010|PA|Allegheny County|Forest Hills borough|3010|0|2|Mangino|Shantell|2965|Michigan|F|Spouse|||45|114667 +3010|PA|Allegheny County|Forest Hills borough|3010|0|3|Mangino|Danial|3001|PA|M|Son|||9|114668 +3010|PA|Allegheny County|Forest Hills borough|3010|0|4|Mangino|Corliss|3003|PA|F|Daughter|||7|114669 +3010|PA|Allegheny County|Forest Hills borough|3010|0|5|Mangino|Rueben|3005|PA|M|Son|||5|114670 +3010|PA|Allegheny County|Forest Hills borough|3010|0|6|Mangino|Sirena Danika|3007|PA|F|Daughter|||3|114671 +3010|PA|Allegheny County|Forest Hills borough|3010|0|7|Mangino|Hong|3009|PA|M|Son|||1|114672 + +3010|PA|Allegheny County|Forest Hills borough|3011|0|1|Mangino|Levi|2992|Belize|M|Head|||18|114673 +3010|PA|Allegheny County|Forest Hills borough|3011|0|2|Mangino|Tonda|2988|Montana|F|Spouse|||22|114674 +3010|PA|Allegheny County|Forest Hills borough|3011|0|3|Mangino|Jeremiah Chas|3001|PA|M|Son|||9|114675 +3010|PA|Allegheny County|Forest Hills borough|3011|0|4|Mangino|Forrest|3005|PA|M|Son|||5|114676 +3010|PA|Allegheny County|Forest Hills borough|3011|0|5|Mangino|Burton|3007|PA|M|Son|||3|114677 + +3010|AL|Dale County|Level Plains town|3012|0|1|Mccarrol|Duane|2994|Pennsylvania|M|Head|||16|114678 +3010|AL|Dale County|Level Plains town|3012|0|2|Mccarrol|Halley|2982|Delaware|F|Spouse|||28|114679 +3010|AL|Dale County|Level Plains town|3012|0|3|Mccarrol|Courtney|3001|AL|M|Son|||9|114680 +3010|AL|Dale County|Level Plains town|3012|0|4|Mccarrol|Vesta|3003|AL|F|Daughter|||7|114681 +3010|AL|Dale County|Level Plains town|3012|0|5|Mccarrol|Cary|3007|AL|M|Son|||3|114682 + +3010|CA|Ventura County|Camarillo city|3013|0|1|Hallman|Homer|2978|Texas|M|Head|||32|114683 +3010|CA|Ventura County|Camarillo city|3013|0|2|Hallman|Tasia|2990|Alaska|F|Spouse|||20|114684 +3010|CA|Ventura County|Camarillo city|3013|0|3|Hallman|Samantha|3001|CA|F|Daughter|||9|114685 +3010|CA|Ventura County|Camarillo city|3013|0|4|Hallman|Jere|3003|CA|M|Son|||7|114686 +3010|CA|Ventura County|Camarillo city|3013|0|5|Hallman|Shirley|3007|CA|M|Son|||3|114687 +3010|CA|Ventura County|Camarillo city|3013|0|6|Hallman|Ronny|3009|CA|M|Son|||1|114688 + +3010|OR|Coos County|Coos Bay city|3014|0|1|Englehardt|Randolph|2993|Maryland|M|Head|||17|114689 +3010|OR|Coos County|Coos Bay city|3014|0|2|Englehardt|Chasidy Sadye|2987|British Indian Ocean Territory|F|Spouse|||23|114690 +3010|OR|Coos County|Coos Bay city|3014|0|3|Englehardt|Ethyl|3007|OR|F|Daughter|||3|114691 +3010|OR|Coos County|Coos Bay city|3014|0|4|Englehardt|Fabian|3009|OR|M|Son|||1|114692 + +3010|MN|Itasca County|Blackberry township|3015|0|1|Baker|Roger|2986|Rhode Island|M|Head|||24|114693 +3010|MN|Itasca County|Blackberry township|3015|0|2|Baker|Brenna|2994|Arizona|F|Spouse|||16|114694 +3010|MN|Itasca County|Blackberry township|3015|0|3|Baker|Fred|3009|MN|M|Son|||1|114695 + +3010|MN|Itasca County|Blackberry township|3016|0|1|Baker|Herman|2990|New Hampshire|M|Head|||20|114696 +3010|MN|Itasca County|Blackberry township|3016|0|2|Baker|Manda|2975|Jordan|F|Spouse|||35|114697 +3010|MN|Itasca County|Blackberry township|3016|0|3|Baker|Charlyn|3001|MN|F|Daughter|||9|114698 +3010|MN|Itasca County|Blackberry township|3016|0|4|Baker|Mario Karan|3003|MN|F|Daughter|||7|114699 +3010|MN|Itasca County|Blackberry township|3016|0|5|Baker|Margrett|3005|MN|F|Daughter|||5|114700 +3010|MN|Itasca County|Blackberry township|3016|0|6|Baker|Pasty|3007|MN|F|Daughter|||3|114701 + +3010|TX|Denton County|Hackberry town|3017|0|1|Hufstedler|Denver|2986|Gabon|M|Head|||24|114702 +3010|TX|Denton County|Hackberry town|3017|0|2|Hufstedler|Laurette|2993|South Dakota|F|Spouse|||17|114703 +3010|TX|Denton County|Hackberry town|3017|0|3|Hufstedler|Danilo|3003|TX|M|Son|||7|114704 +3010|TX|Denton County|Hackberry town|3017|0|4|Hufstedler|Orpha|3005|TX|F|Daughter|||5|114705 + +3010|TX|Denton County|Hackberry town|3018|0|1|Hufstedler|Brett|2988|Antarctica|M|Head|||22|114706 +3010|TX|Denton County|Hackberry town|3018|0|2|Hufstedler|Annemarie|2989|Maryland|F|Spouse|||21|114707 +3010|TX|Denton County|Hackberry town|3018|0|3|Hufstedler|Gary Efrain|3001|TX|M|Son|||9|114708 +3010|TX|Denton County|Hackberry town|3018|0|4|Hufstedler|Ludie|3003|TX|F|Daughter|||7|114709 +3010|TX|Denton County|Hackberry town|3018|0|5|Hufstedler|Gilbert|3007|TX|M|Son|||3|114710 + +3010|AZ|Navajo County|Show Low city|3019|0|1|Martin|Ross Courtney|2992|West Virginia|M|Head|||18|114711 +3010|AZ|Navajo County|Show Low city|3019|0|2|Martin|Teresia|2986|Mississippi|F|Spouse|||24|114712 +3010|AZ|Navajo County|Show Low city|3019|0|3|Martin|Shaunna Tijuana|3001|AZ|F|Daughter|||9|114713 +3010|AZ|Navajo County|Show Low city|3019|0|4|Martin|Tilda|3009|AZ|F|Daughter|||1|114714 + +3010|TX|Ellis County|Red Oak city|3020|0|1|Hardi|Rocco|2986|Texas|M|Head|||24|114715 +3010|TX|Ellis County|Red Oak city|3020|0|2|Hardi|Corazon|2962|Nevada|F|Spouse|||48|114716 +3010|TX|Ellis County|Red Oak city|3020|0|3|Hardi|Emma|3001|TX|F|Daughter|||9|114717 +3010|TX|Ellis County|Red Oak city|3020|0|4|Hardi|Vicente|3003|TX|M|Son|||7|114718 +3010|TX|Ellis County|Red Oak city|3020|0|5|Hardi|Shelly|3005|TX|F|Daughter|||5|114719 +3010|TX|Ellis County|Red Oak city|3020|0|6|Hardi|Mitchell Rafael|3007|TX|M|Son|||3|114720 +3010|TX|Ellis County|Red Oak city|3020|0|7|Hardi|Lore|3009|TX|F|Daughter|||1|114721 + +3010|MI|Ontonagon County|Interior township|3021|0|1|Hardi|Otha Bruce|2992|Montana|M|Head|||18|114722 +3010|MI|Ontonagon County|Interior township|3021|0|2|Hardi|Alisa|2976|North Dakota|F|Spouse|||34|114723 +3010|MI|Ontonagon County|Interior township|3021|0|3|Hardi|Kieth|3001|MI|M|Son|||9|114724 +3010|MI|Ontonagon County|Interior township|3021|0|4|Hardi|Jeannine|3003|MI|F|Daughter|||7|114725 +3010|MI|Ontonagon County|Interior township|3021|0|5|Hardi|Patrick|3009|MI|M|Son|||1|114726 + +3010|MI|Ontonagon County|Interior township|3022|0|1|Hardi|Domingo|2994|Arizona|M|Head|||16|114727 +3010|MI|Ontonagon County|Interior township|3022|0|2|Hardi|Clarence|2983|New Hampshire|F|Spouse|||27|114728 +3010|MI|Ontonagon County|Interior township|3022|0|3|Hardi|Theodore|3001|MI|M|Son|||9|114729 +3010|MI|Ontonagon County|Interior township|3022|0|4|Hardi|Julissa|3007|MI|F|Daughter|||3|114730 +3010|MI|Ontonagon County|Interior township|3022|0|5|Hardi|Cinthia|3009|MI|F|Daughter|||1|114731 + +3010|NY|Essex County|Lake Placid village|3023|0|1|Hamalak|Marty|2974|Romania|M|Head|||36|114732 +3010|NY|Essex County|Lake Placid village|3023|0|2|Hamalak|Debby|2985|Greece|F|Spouse|||25|114733 +3010|NY|Essex County|Lake Placid village|3023|0|3|Hamalak|Marquetta|3003|NY|F|Daughter|||7|114734 +3010|NY|Essex County|Lake Placid village|3023|0|4|Hamalak|Valentine|3007|NY|M|Son|||3|114735 + +3010|CA|Sacramento County|Rancho Cordova city|3024|0|1|Hamalak|Randell Vicente|2986|California|M|Head|||24|114736 +3010|CA|Sacramento County|Rancho Cordova city|3024|0|2|Hamalak|Miguelina|2989|Sweden|F|Spouse|||21|114737 +3010|CA|Sacramento County|Rancho Cordova city|3024|0|3|Hamalak|Quincy|3001|CA|M|Son|||9|114738 +3010|CA|Sacramento County|Rancho Cordova city|3024|0|4|Hamalak|Wade|3003|CA|M|Son|||7|114739 +3010|CA|Sacramento County|Rancho Cordova city|3024|0|5|Hamalak|Tanya|3005|CA|F|Daughter|||5|114740 + +3010|GA|Peach County|Fort Valley city|3025|0|1|Ruiz|Francisco|2982|Hawaii|M|Head|||28|114741 +3010|GA|Peach County|Fort Valley city|3025|0|2|Ruiz|Maris|2987|Zambia|F|Spouse|||23|114742 +3010|GA|Peach County|Fort Valley city|3025|0|3|Ruiz|Elizabeth|3005|GA|F|Daughter|||5|114743 + +3010|IA|Montgomery County|Stanton city|3026|0|1|Larson|Mose Leon|2987|Kentucky|M|Head|||23|114744 +3010|IA|Montgomery County|Stanton city|3026|0|2|Larson|Lorriane|2981|Indiana|F|Spouse|||29|114745 +3010|IA|Montgomery County|Stanton city|3026|0|3|Larson|Jerrold|3001|IA|M|Son|||9|114746 +3010|IA|Montgomery County|Stanton city|3026|0|4|Larson|Rodney Alvaro|3007|IA|M|Son|||3|114747 +3010|IA|Montgomery County|Stanton city|3026|0|5|Larson|Clayton|3009|IA|M|Son|||1|114748 + +3010|IA|Montgomery County|Stanton city|3027|0|1|Sapia|Carlo|2988|Oregon|M|Head|||22|114749 +3010|IA|Montgomery County|Stanton city|3027|0|2|Sapia|Crystle|2989|Massachusetts|F|Spouse|||21|114750 +3010|IA|Montgomery County|Stanton city|3027|0|3|Sapia|Paulette|3001|IA|F|Daughter|||9|114751 +3010|IA|Montgomery County|Stanton city|3027|0|4|Sapia|Woodrow|3005|IA|M|Son|||5|114752 + +3010|MO|Ozark County|Sundown CDP|3028|0|1|Matsuda|Sebastian Marcelino|2994|Utah|M|Head|||16|114753 +3010|MO|Ozark County|Sundown CDP|3028|0|2|Matsuda|Henriette|2975|Nevada|F|Spouse|||35|114754 +3010|MO|Ozark County|Sundown CDP|3028|0|3|Matsuda|Eric|3001|MO|M|Son|||9|114755 +3010|MO|Ozark County|Sundown CDP|3028|0|4|Matsuda|Rashad|3003|MO|M|Son|||7|114756 +3010|MO|Ozark County|Sundown CDP|3028|0|5|Matsuda|Tawny|3005|MO|F|Daughter|||5|114757 +3010|MO|Ozark County|Sundown CDP|3028|0|6|Matsuda|Jeremiah|3009|MO|M|Son|||1|114758 + +3010|OK|Rogers County|Justice CDP|3029|0|1|Boggs|Jerrell|2989|Cayman Islands|M|Head|||21|114759 +3010|OK|Rogers County|Justice CDP|3029|0|2|Boggs|Kathlyn|2985|Arizona|F|Spouse|||25|114760 +3010|OK|Rogers County|Justice CDP|3029|0|3|Boggs|Alleen|3001|OK|F|Daughter|||9|114761 +3010|OK|Rogers County|Justice CDP|3029|0|4|Boggs|Charlesetta|3003|OK|F|Daughter|||7|114762 + +3010|KS|Saline County|Assaria city|3030|0|1|Jimenez|Sammy|2982|Arizona|M|Head|||28|114763 +3010|KS|Saline County|Assaria city|3030|0|2|Jimenez|Larisa Belinda|2989|Georgia|F|Spouse|||21|114764 +3010|KS|Saline County|Assaria city|3030|0|3|Jimenez|Camila|3001|KS|F|Daughter|||9|114765 +3010|KS|Saline County|Assaria city|3030|0|4|Jimenez|Linwood|3003|KS|M|Son|||7|114766 + +3010|MD|Caroline County|Federalsburg town|3031|0|1|Jimenez|Burl|2986|Louisiana|M|Head|||24|114767 +3010|MD|Caroline County|Federalsburg town|3031|0|2|Jimenez|Denese|2981|Belgium|F|Spouse|||29|114768 +3010|MD|Caroline County|Federalsburg town|3031|0|3|Jimenez|Orpha|3001|MD|F|Daughter|||9|114769 +3010|MD|Caroline County|Federalsburg town|3031|0|4|Jimenez|Trent|3003|MD|M|Son|||7|114770 +3010|MD|Caroline County|Federalsburg town|3031|0|5|Jimenez|Lorena|3005|MD|F|Daughter|||5|114771 +3010|MD|Caroline County|Federalsburg town|3031|0|6|Jimenez|Diane|3007|MD|F|Daughter|||3|114772 +3010|MD|Caroline County|Federalsburg town|3031|0|7|Jimenez|Rueben Kris|3009|MD|M|Son|||1|114773 + +3010|MS|Holmes County|Goodman town|3032|0|1|Jamerson|Francesco|2991|Arizona|M|Head|||19|114774 +3010|MS|Holmes County|Goodman town|3032|0|2|Jamerson|Norma|2988|Iowa|F|Spouse|||22|114775 +3010|MS|Holmes County|Goodman town|3032|0|3|Jamerson|Ronnie Garth|3003|MS|M|Son|||7|114776 +3010|MS|Holmes County|Goodman town|3032|0|4|Jamerson|Rossie|3005|MS|F|Daughter|||5|114777 +3010|MS|Holmes County|Goodman town|3032|0|5|Jamerson|Alfonzo|3009|MS|M|Son|||1|114778 + +3010|MD|Dorchester County|Cambridge city|3033|0|1|Blodgett|Hal|2989|Algeria|M|Head|||21|114779 +3010|MD|Dorchester County|Cambridge city|3033|0|2|Blodgett|Alishia|2981|Idaho|F|Spouse|||29|114780 +3010|MD|Dorchester County|Cambridge city|3033|0|3|Blodgett|Karolyn|3001|MD|F|Daughter|||9|114781 +3010|MD|Dorchester County|Cambridge city|3033|0|4|Blodgett|Serina|3003|MD|F|Daughter|||7|114782 +3010|MD|Dorchester County|Cambridge city|3033|0|5|Blodgett|Breanne|3005|MD|F|Daughter|||5|114783 +3010|MD|Dorchester County|Cambridge city|3033|0|6|Blodgett|Ji|3007|MD|F|Daughter|||3|114784 + +3010|MO|Linn County, Sullivan County|Browning city|3034|0|1|Allen|Horacio|2976|Kansas|M|Head|||34|114785 +3010|MO|Linn County, Sullivan County|Browning city|3034|0|2|Allen|Almeta|2987|Pennsylvania|F|Spouse|||23|114786 +3010|MO|Linn County, Sullivan County|Browning city|3034|0|3|Allen|Santa|3001|MO|F|Daughter|||9|114787 +3010|MO|Linn County, Sullivan County|Browning city|3034|0|4|Allen|Ira|3003|MO|M|Son|||7|114788 +3010|MO|Linn County, Sullivan County|Browning city|3034|0|5|Allen|Teena|3007|MO|F|Daughter|||3|114789 +3010|MO|Linn County, Sullivan County|Browning city|3034|0|6|Allen|Micah|3009|MO|F|Daughter|||1|114790 + +3010|MO|Linn County, Sullivan County|Browning city|3035|0|1|Allen|Rex|2988|Mississippi|M|Head|||22|114791 +3010|MO|Linn County, Sullivan County|Browning city|3035|0|2|Allen|Junie|2989|Montana|F|Spouse|||21|114792 +3010|MO|Linn County, Sullivan County|Browning city|3035|0|3|Allen|Staci|3001|MO|F|Daughter|||9|114793 + +3010|MO|Platte County|Edgerton city|3036|0|1|Rary|Jerome|2990|New Jersey|M|Head|||20|114794 +3010|MO|Platte County|Edgerton city|3036|0|2|Rary|Rebbeca|2991|West Virginia|F|Spouse|||19|114795 +3010|MO|Platte County|Edgerton city|3036|0|3|Rary|Aleen|3007|MO|F|Daughter|||3|114796 + +3010|GA|Carroll County, Haralson County|Bremen city|3037|0|1|Darocha|Donny|2974|Maine|M|Head|||36|114797 +3010|GA|Carroll County, Haralson County|Bremen city|3037|0|2|Darocha|Yadira|2961|Guinea-bissau|F|Spouse|||49|114798 +3010|GA|Carroll County, Haralson County|Bremen city|3037|0|3|Darocha|Georgia|3001|GA|F|Daughter|||9|114799 +3010|GA|Carroll County, Haralson County|Bremen city|3037|0|4|Darocha|Margene Anette|3003|GA|F|Daughter|||7|114800 +3010|GA|Carroll County, Haralson County|Bremen city|3037|0|5|Darocha|Lucio|3009|GA|M|Son|||1|114801 + +3010|IA|Lee County|West Point city|3038|0|1|Darocha|Myron|2990|Michigan|M|Head|||20|114802 +3010|IA|Lee County|West Point city|3038|0|2|Darocha|Opal Madelene|2967|Oklahoma|F|Spouse|||43|114803 +3010|IA|Lee County|West Point city|3038|0|3|Darocha|Leisa|3003|IA|F|Daughter|||7|114804 +3010|IA|Lee County|West Point city|3038|0|4|Darocha|Herbert|3005|IA|M|Son|||5|114805 +3010|IA|Lee County|West Point city|3038|0|5|Darocha|Ligia|3009|IA|F|Daughter|||1|114806 + +3010|MN|Scott County|St. Lawrence township|3039|0|1|Gottesman|Jason|2985|Greece|M|Head|||25|114807 +3010|MN|Scott County|St. Lawrence township|3039|0|2|Gottesman|Cecelia|2985|Michigan|F|Spouse|||25|114808 +3010|MN|Scott County|St. Lawrence township|3039|0|3|Gottesman|Dorthea|3005|MN|F|Daughter|||5|114809 +3010|MN|Scott County|St. Lawrence township|3039|0|4|Gottesman|Jake Ezequiel|3007|MN|M|Son|||3|114810 +3010|MN|Scott County|St. Lawrence township|3039|0|5|Gottesman|Florentino Franklyn|3009|MN|M|Son|||1|114811 + +3010|NH|Grafton County|Lincoln town|3040|0|1|Letchworth|Jeremiah|2988|Hawaii|M|Head|||22|114812 +3010|NH|Grafton County|Lincoln town|3040|0|2|Letchworth|Angeline|2983|Massachusetts|F|Spouse|||27|114813 +3010|NH|Grafton County|Lincoln town|3040|0|3|Letchworth|Walker|3003|NH|M|Son|||7|114814 +3010|NH|Grafton County|Lincoln town|3040|0|4|Letchworth|Rosendo Brenton|3005|NH|M|Son|||5|114815 +3010|NH|Grafton County|Lincoln town|3040|0|5|Letchworth|Regan|3009|NH|F|Daughter|||1|114816 + +3010|IL|LaSalle County|LaSalle city|3041|0|1|Haynes|Duncan Antione|2979|Nevada|M|Head|||31|114817 +3010|IL|LaSalle County|LaSalle city|3041|0|2|Haynes|Frida|2989|Arkansas|F|Spouse|||21|114818 +3010|IL|LaSalle County|LaSalle city|3041|0|3|Haynes|Kayla|3001|IL|F|Daughter|||9|114819 +3010|IL|LaSalle County|LaSalle city|3041|0|4|Haynes|Margaret|3003|IL|F|Daughter|||7|114820 +3010|IL|LaSalle County|LaSalle city|3041|0|5|Haynes|Clifford|3005|IL|M|Son|||5|114821 + +3010|IL|LaSalle County|LaSalle city|3042|0|1|Haynes|Elmo|2985|Michigan|M|Head|||25|114822 +3010|IL|LaSalle County|LaSalle city|3042|0|2|Haynes|Nell Brunilda|2987|Kansas|F|Spouse|||23|114823 +3010|IL|LaSalle County|LaSalle city|3042|0|3|Haynes|Maryanna|3001|IL|F|Daughter|||9|114824 +3010|IL|LaSalle County|LaSalle city|3042|0|4|Haynes|Isreal|3009|IL|M|Son|||1|114825 + +3010|TX|San Patricio County|Gregory city|3043|0|1|Grames|Cletus|2991|Montana|M|Head|||19|114826 +3010|TX|San Patricio County|Gregory city|3043|0|2|Grames|Charla Janie|2991|Wisconsin|F|Spouse|||19|114827 +3010|TX|San Patricio County|Gregory city|3043|0|3|Grames|Rosamaria Darnell|3005|TX|F|Daughter|||5|114828 +3010|TX|San Patricio County|Gregory city|3043|0|4|Grames|Cristopher Glenn|3007|TX|M|Son|||3|114829 +3010|TX|San Patricio County|Gregory city|3043|0|5|Grames|Horace|3009|TX|M|Son|||1|114830 + +3010|OH|Hancock County|Vanlue village|3044|0|1|Headlee|Cleveland|2991|Armenia|M|Head|||19|114831 +3010|OH|Hancock County|Vanlue village|3044|0|2|Headlee|Hye Shizuko|2989|Washington|F|Spouse|||21|114832 +3010|OH|Hancock County|Vanlue village|3044|0|3|Headlee|Lavera|3001|OH|F|Daughter|||9|114833 +3010|OH|Hancock County|Vanlue village|3044|0|4|Headlee|Pricilla Alfreda|3003|OH|F|Daughter|||7|114834 +3010|OH|Hancock County|Vanlue village|3044|0|5|Headlee|Warren|3005|OH|M|Son|||5|114835 +3010|OH|Hancock County|Vanlue village|3044|0|6|Headlee|Val|3009|OH|M|Son|||1|114836 + +3010|TX|Brazoria County|Manvel city|3045|0|1|Wagemann|Herbert|2992|French Southern Territories|M|Head|||18|114837 +3010|TX|Brazoria County|Manvel city|3045|0|2|Wagemann|Corina|2983|Washington|F|Spouse|||27|114838 +3010|TX|Brazoria County|Manvel city|3045|0|3|Wagemann|Laureen|3001|TX|F|Daughter|||9|114839 +3010|TX|Brazoria County|Manvel city|3045|0|4|Wagemann|Eva Natosha|3003|TX|F|Daughter|||7|114840 +3010|TX|Brazoria County|Manvel city|3045|0|5|Wagemann|Kenton|3009|TX|M|Son|||1|114841 + +3010|WI|Clark County|Loyal city|3046|0|1|Cossey|Darius|2981|Jamaica|M|Head|||29|114842 +3010|WI|Clark County|Loyal city|3046|0|2|Cossey|Hana|2987|North Carolina|F|Spouse|||23|114843 +3010|WI|Clark County|Loyal city|3046|0|3|Cossey|Emmett|3009|WI|M|Son|||1|114844 + +3010|WI|Clark County|Loyal city|3047|0|1|Cossey|Sal Frankie|2983|Sudan|M|Head|||27|114845 +3010|WI|Clark County|Loyal city|3047|0|2|Cossey|Gay|2990|South Dakota|F|Spouse|||20|114846 +3010|WI|Clark County|Loyal city|3047|0|3|Cossey|Ashlee|3001|WI|F|Daughter|||9|114847 +3010|WI|Clark County|Loyal city|3047|0|4|Cossey|Rikki|3005|WI|F|Daughter|||5|114848 +3010|WI|Clark County|Loyal city|3047|0|5|Cossey|Lowell|3009|WI|M|Son|||1|114849 + +3010|WI|Clark County|Loyal city|3048|0|1|Cossey|Alfredo|2989|New Mexico|M|Head|||21|114850 +3010|WI|Clark County|Loyal city|3048|0|2|Cossey|Pei|2978|New Mexico|F|Spouse|||32|114851 +3010|WI|Clark County|Loyal city|3048|0|3|Cossey|Bennie Stacy|3001|WI|M|Son|||9|114852 +3010|WI|Clark County|Loyal city|3048|0|4|Cossey|Sammie Nicolas|3003|WI|M|Son|||7|114853 +3010|WI|Clark County|Loyal city|3048|0|5|Cossey|Carson|3005|WI|M|Son|||5|114854 +3010|WI|Clark County|Loyal city|3048|0|6|Cossey|Harland|3007|WI|M|Son|||3|114855 + +3010|MT|Pondera County|Heart Butte CDP|3049|0|1|Fors|Johnny|2986|United States|M|Head|||24|114856 +3010|MT|Pondera County|Heart Butte CDP|3049|0|2|Fors|Shirly|2980|Jordan|F|Spouse|||30|114857 +3010|MT|Pondera County|Heart Butte CDP|3049|0|3|Fors|Edmundo|3001|MT|M|Son|||9|114858 +3010|MT|Pondera County|Heart Butte CDP|3049|0|4|Fors|Mel|3003|MT|M|Son|||7|114859 +3010|MT|Pondera County|Heart Butte CDP|3049|0|5|Fors|Misha|3005|MT|F|Daughter|||5|114860 +3010|MT|Pondera County|Heart Butte CDP|3049|0|6|Fors|Yuk|3009|MT|F|Daughter|||1|114861 + +3010|MN|Dodge County|Hayfield city|3050|0|1|Fors|Israel|2994|Minnesota|M|Head|||16|114862 +3010|MN|Dodge County|Hayfield city|3050|0|2|Fors|Sanjuana|2986|United States|F|Spouse|||24|114863 +3010|MN|Dodge County|Hayfield city|3050|0|3|Fors|Joslyn|3001|MN|F|Daughter|||9|114864 +3010|MN|Dodge County|Hayfield city|3050|0|4|Fors|Richard Rupert|3003|MN|M|Son|||7|114865 +3010|MN|Dodge County|Hayfield city|3050|0|5|Fors|Monty|3007|MN|M|Son|||3|114866 + +3010|UT|Sanpete County|Fayette town|3051|0|1|Hendrixson|Harland|2987|Bhutan|M|Head|||23|114867 +3010|UT|Sanpete County|Fayette town|3051|0|2|Hendrixson|Heide|2989|Maryland|F|Spouse|||21|114868 +3010|UT|Sanpete County|Fayette town|3051|0|3|Hendrixson|Armand|3007|UT|M|Son|||3|114869 + +3010|OH|Holmes County|Holmesville village|3052|0|1|Gould|Wilmer|2985|South Dakota|M|Head|||25|114870 +3010|OH|Holmes County|Holmesville village|3052|0|2|Gould|Myung Jacquetta|2977|Oregon|F|Spouse|||33|114871 +3010|OH|Holmes County|Holmesville village|3052|0|3|Gould|Ernest|3001|OH|M|Son|||9|114872 +3010|OH|Holmes County|Holmesville village|3052|0|4|Gould|Isobel|3003|OH|F|Daughter|||7|114873 +3010|OH|Holmes County|Holmesville village|3052|0|5|Gould|David|3009|OH|M|Son|||1|114874 + +3010|MI|Schoolcraft County|Hiawatha township|3053|0|1|Osberg|Brad|2990|Kansas|M|Head|||20|114875 +3010|MI|Schoolcraft County|Hiawatha township|3053|0|2|Osberg|Arlinda|2970|Ukraine|F|Spouse|||40|114876 +3010|MI|Schoolcraft County|Hiawatha township|3053|0|3|Osberg|Geneva|3005|MI|F|Daughter|||5|114877 +3010|MI|Schoolcraft County|Hiawatha township|3053|0|4|Osberg|Ina|3009|MI|F|Daughter|||1|114878 + +3010|TX|Rusk County|Mount Enterprise city|3054|0|1|Birts|German|2990|Kentucky|M|Head|||20|114879 +3010|TX|Rusk County|Mount Enterprise city|3054|0|2|Birts|Laureen|2974|New Mexico|F|Spouse|||36|114880 +3010|TX|Rusk County|Mount Enterprise city|3054|0|3|Birts|Gertrud Marisol|3003|TX|F|Daughter|||7|114881 +3010|TX|Rusk County|Mount Enterprise city|3054|0|4|Birts|Howard|3005|TX|M|Son|||5|114882 +3010|TX|Rusk County|Mount Enterprise city|3054|0|5|Birts|Ilse|3007|TX|F|Daughter|||3|114883 +3010|TX|Rusk County|Mount Enterprise city|3054|0|6|Birts|Arianna|3009|TX|F|Daughter|||1|114884 + +3010|KY|Jessamine County|Wilmore city|3055|0|1|Willenbrock|Marvin|2989|Tennessee|M|Head|||21|114885 +3010|KY|Jessamine County|Wilmore city|3055|0|2|Willenbrock|Lavette|2980|Iowa|F|Spouse|||30|114886 +3010|KY|Jessamine County|Wilmore city|3055|0|3|Willenbrock|Caitlin|3003|KY|F|Daughter|||7|114887 +3010|KY|Jessamine County|Wilmore city|3055|0|4|Willenbrock|Ezekiel|3005|KY|M|Son|||5|114888 +3010|KY|Jessamine County|Wilmore city|3055|0|5|Willenbrock|Columbus|3007|KY|M|Son|||3|114889 + +3010|TX|Rusk County|Mount Enterprise city|3056|0|1|Hose|Ted|2992|Utah|M|Head|||18|114890 +3010|TX|Rusk County|Mount Enterprise city|3056|0|2|Hose|Echo|2990|Maine|F|Spouse|||20|114891 +3010|TX|Rusk County|Mount Enterprise city|3056|0|3|Hose|Stephen|3005|TX|M|Son|||5|114892 +3010|TX|Rusk County|Mount Enterprise city|3056|0|4|Hose|Vincenza Lindy|3007|TX|F|Daughter|||3|114893 +3010|TX|Rusk County|Mount Enterprise city|3056|0|5|Hose|Jesenia|3009|TX|F|Daughter|||1|114894 + +3010|WI|Waupaca County|Lebanon town|3057|0|1|Harvey|Lincoln|2986|Hawaii|M|Head|||24|114895 +3010|WI|Waupaca County|Lebanon town|3057|0|2|Harvey|Eugenie|2984|Pennsylvania|F|Spouse|||26|114896 +3010|WI|Waupaca County|Lebanon town|3057|0|3|Harvey|Ethel|3003|WI|F|Daughter|||7|114897 +3010|WI|Waupaca County|Lebanon town|3057|0|4|Harvey|Gigi|3005|WI|F|Daughter|||5|114898 +3010|WI|Waupaca County|Lebanon town|3057|0|5|Harvey|Darius|3007|WI|M|Son|||3|114899 +3010|WI|Waupaca County|Lebanon town|3057|0|6|Harvey|Norman|3009|WI|M|Son|||1|114900 + +3010|WI|Waupaca County|Lebanon town|3058|0|1|Harvey|Benny|2992|Indiana|M|Head|||18|114901 +3010|WI|Waupaca County|Lebanon town|3058|0|2|Harvey|Raisa|2994|Washington|F|Spouse|||16|114902 +3010|WI|Waupaca County|Lebanon town|3058|0|3|Harvey|Noelle|3007|WI|F|Daughter|||3|114903 +3010|WI|Waupaca County|Lebanon town|3058|0|4|Harvey|Lashawnda|3009|WI|F|Daughter|||1|114904 + +3010|WI|Waupaca County|Lebanon town|3059|0|1|Harvey|Bryce|2994|Guinea-bissau|M|Head|||16|114905 +3010|WI|Waupaca County|Lebanon town|3059|0|2|Harvey|Damaris|2976|Minnesota|F|Spouse|||34|114906 +3010|WI|Waupaca County|Lebanon town|3059|0|3|Harvey|Clarice|3001|WI|F|Daughter|||9|114907 +3010|WI|Waupaca County|Lebanon town|3059|0|4|Harvey|Bobbi|3003|WI|F|Daughter|||7|114908 +3010|WI|Waupaca County|Lebanon town|3059|0|5|Harvey|Barbra|3005|WI|F|Daughter|||5|114909 + +3010|PA|Potter County|Harrison township|3060|0|1|Alsandor|Monte|2986|Florida|M|Head|||24|114910 +3010|PA|Potter County|Harrison township|3060|0|2|Alsandor|Marketta|2986|Texas|F|Spouse|||24|114911 +3010|PA|Potter County|Harrison township|3060|0|3|Alsandor|Gonzalo|3005|PA|M|Son|||5|114912 +3010|PA|Potter County|Harrison township|3060|0|4|Alsandor|Elmo Bennett|3007|PA|M|Son|||3|114913 +3010|PA|Potter County|Harrison township|3060|0|5|Alsandor|Jimmie|3009|PA|M|Son|||1|114914 + +3010|PA|Potter County|Harrison township|3061|0|1|Alsandor|Roderick|2988|Lebanon|M|Head|||22|114915 +3010|PA|Potter County|Harrison township|3061|0|2|Alsandor|Princess|2983|Hawaii|F|Spouse|||27|114916 +3010|PA|Potter County|Harrison township|3061|0|3|Alsandor|Trista|3009|PA|F|Daughter|||1|114917 + +3010|TX|Callahan County|Putnam town|3062|0|1|Williams|Sidney|2990|South Carolina|M|Head|||20|114918 +3010|TX|Callahan County|Putnam town|3062|0|2|Williams|Miss|2985|North Dakota|F|Spouse|||25|114919 +3010|TX|Callahan County|Putnam town|3062|0|3|Williams|Jospeh|3001|TX|M|Son|||9|114920 +3010|TX|Callahan County|Putnam town|3062|0|4|Williams|Yong|3005|TX|F|Daughter|||5|114921 +3010|TX|Callahan County|Putnam town|3062|0|5|Williams|Florencia|3009|TX|F|Daughter|||1|114922 + +3010|AZ|Apache County|Klagetoh CDP|3063|0|1|Kibble|Guadalupe Karl|2988|Switzerland|M|Head|||22|114923 +3010|AZ|Apache County|Klagetoh CDP|3063|0|2|Kibble|Kecia|2987|Arizona|F|Spouse|||23|114924 +3010|AZ|Apache County|Klagetoh CDP|3063|0|3|Kibble|Jolene|3001|AZ|F|Daughter|||9|114925 +3010|AZ|Apache County|Klagetoh CDP|3063|0|4|Kibble|Numbers|3003|AZ|M|Son|||7|114926 +3010|AZ|Apache County|Klagetoh CDP|3063|0|5|Kibble|Randee|3007|AZ|F|Daughter|||3|114927 +3010|AZ|Apache County|Klagetoh CDP|3063|0|6|Kibble|Neely|3009|AZ|F|Daughter|||1|114928 + +3010|LA|Iberia Parish|Loreauville village|3064|0|1|Kibble|Derek|2990|Vermont|M|Head|||20|114929 +3010|LA|Iberia Parish|Loreauville village|3064|0|2|Kibble|Gabriella|2987|Delaware|F|Spouse|||23|114930 +3010|LA|Iberia Parish|Loreauville village|3064|0|3|Kibble|Marian|3003|LA|F|Daughter|||7|114931 +3010|LA|Iberia Parish|Loreauville village|3064|0|4|Kibble|Marietta|3005|LA|F|Daughter|||5|114932 +3010|LA|Iberia Parish|Loreauville village|3064|0|5|Kibble|Marquis|3009|LA|M|Son|||1|114933 + +3010|IN|Johnson County|Trafalgar town|3065|0|1|Voncannon|Al Lauren|2986|South Dakota|M|Head|||24|114934 +3010|IN|Johnson County|Trafalgar town|3065|0|2|Voncannon|Joanie|2990|Kansas|F|Spouse|||20|114935 +3010|IN|Johnson County|Trafalgar town|3065|0|3|Voncannon|Alpha|3001|IN|F|Daughter|||9|114936 +3010|IN|Johnson County|Trafalgar town|3065|0|4|Voncannon|Josue Terence|3003|IN|M|Son|||7|114937 +3010|IN|Johnson County|Trafalgar town|3065|0|5|Voncannon|Haywood|3005|IN|M|Son|||5|114938 + +3010|NY|Delaware County|Walton town|3066|0|1|Thomas|Jared|2988|Philippines|M|Head|||22|114939 +3010|NY|Delaware County|Walton town|3066|0|2|Thomas|Rosemarie|2994|Arizona|F|Spouse|||16|114940 +3010|NY|Delaware County|Walton town|3066|0|3|Thomas|Dung|3003|NY|F|Daughter|||7|114941 +3010|NY|Delaware County|Walton town|3066|0|4|Thomas|Nakisha|3007|NY|F|Daughter|||3|114942 +3010|NY|Delaware County|Walton town|3066|0|5|Thomas|Hiram|3009|NY|M|Son|||1|114943 + +3010|IL|Williamson County|Colp village|3067|0|1|Thomas|Isaiah|2994|Iran, Islamic Republic Of|M|Head|||16|114944 +3010|IL|Williamson County|Colp village|3067|0|2|Thomas|Rachel|2974|Montana|F|Spouse|||36|114945 +3010|IL|Williamson County|Colp village|3067|0|3|Thomas|Lisabeth|3001|IL|F|Daughter|||9|114946 +3010|IL|Williamson County|Colp village|3067|0|4|Thomas|Dillon Jess|3003|IL|M|Son|||7|114947 + +3010|OK|Cleveland County|Noble city|3068|0|1|Lagroon|Irvin|2992|South Dakota|M|Head|||18|114948 +3010|OK|Cleveland County|Noble city|3068|0|2|Lagroon|Dorethea|2982|Japan|F|Spouse|||28|114949 +3010|OK|Cleveland County|Noble city|3068|0|3|Lagroon|Damaris|3003|OK|F|Daughter|||7|114950 +3010|OK|Cleveland County|Noble city|3068|0|4|Lagroon|Megan Zoraida|3005|OK|F|Daughter|||5|114951 +3010|OK|Cleveland County|Noble city|3068|0|5|Lagroon|Antione Waylon|3009|OK|M|Son|||1|114952 + +3010|WI|Fond du Lac County|Calumet town|3069|0|1|Lagroon|Luigi|2994|West Virginia|M|Head|||16|114953 +3010|WI|Fond du Lac County|Calumet town|3069|0|2|Lagroon|Tashia|2989|Delaware|F|Spouse|||21|114954 +3010|WI|Fond du Lac County|Calumet town|3069|0|3|Lagroon|Samual|3001|WI|M|Son|||9|114955 +3010|WI|Fond du Lac County|Calumet town|3069|0|4|Lagroon|Kendall|3003|WI|F|Daughter|||7|114956 +3010|WI|Fond du Lac County|Calumet town|3069|0|5|Lagroon|Renata|3005|WI|F|Daughter|||5|114957 +3010|WI|Fond du Lac County|Calumet town|3069|0|6|Lagroon|Dorie|3007|WI|F|Daughter|||3|114958 + +3010|TX|Colorado County|Glidden CDP|3070|0|1|Pagan|Roy|2988|Cape Verde|M|Head|||22|114959 +3010|TX|Colorado County|Glidden CDP|3070|0|2|Pagan|Jaye|2988|New York|F|Spouse|||22|114960 +3010|TX|Colorado County|Glidden CDP|3070|0|3|Pagan|Renda|3001|TX|F|Daughter|||9|114961 +3010|TX|Colorado County|Glidden CDP|3070|0|4|Pagan|Nicholas|3003|TX|M|Son|||7|114962 + +3010|TX|Colorado County|Glidden CDP|3071|0|1|Pagan|Robby|2994|Rhode Island|M|Head|||16|114963 +3010|TX|Colorado County|Glidden CDP|3071|0|2|Pagan|Ronni|2992|North Carolina|F|Spouse|||18|114964 +3010|TX|Colorado County|Glidden CDP|3071|0|3|Pagan|Frank|3001|TX|F|Daughter|||9|114965 +3010|TX|Colorado County|Glidden CDP|3071|0|4|Pagan|Milagro|3003|TX|F|Daughter|||7|114966 +3010|TX|Colorado County|Glidden CDP|3071|0|5|Pagan|Jason Wilford|3005|TX|M|Son|||5|114967 +3010|TX|Colorado County|Glidden CDP|3071|0|6|Pagan|Vanessa Ria|3007|TX|F|Daughter|||3|114968 + +3010|MI|Ionia County|Portland city|3072|0|1|Schabbing|Peter|2992|Belize|M|Head|||18|114969 +3010|MI|Ionia County|Portland city|3072|0|2|Schabbing|Rosio Brenna|2974|Louisiana|F|Spouse|||36|114970 +3010|MI|Ionia County|Portland city|3072|0|3|Schabbing|Hwa|3001|MI|F|Daughter|||9|114971 +3010|MI|Ionia County|Portland city|3072|0|4|Schabbing|Guadalupe|3005|MI|F|Daughter|||5|114972 +3010|MI|Ionia County|Portland city|3072|0|5|Schabbing|Alonzo|3007|MI|M|Son|||3|114973 +3010|MI|Ionia County|Portland city|3072|0|6|Schabbing|Alpha Jude|3009|MI|F|Daughter|||1|114974 + +3010|WA|Whitman County|St. John town|3073|0|1|Brown|Sang|2976|Washington|M|Head|||34|114975 +3010|WA|Whitman County|St. John town|3073|0|2|Brown|Shante Glynis|2978|Missouri|F|Spouse|||32|114976 +3010|WA|Whitman County|St. John town|3073|0|3|Brown|Shon|3001|WA|M|Son|||9|114977 +3010|WA|Whitman County|St. John town|3073|0|4|Brown|Sergio Randy|3005|WA|M|Son|||5|114978 +3010|WA|Whitman County|St. John town|3073|0|5|Brown|Nannie|3009|WA|F|Daughter|||1|114979 + +3010|WA|Whitman County|St. John town|3074|0|1|Brown|Claud|2992|Washington|M|Head|||18|114980 +3010|WA|Whitman County|St. John town|3074|0|2|Brown|Eric|2986|Missouri|F|Spouse|||24|114981 +3010|WA|Whitman County|St. John town|3074|0|3|Brown|Yanira|3001|WA|F|Daughter|||9|114982 +3010|WA|Whitman County|St. John town|3074|0|4|Brown|Shelton|3003|WA|M|Son|||7|114983 +3010|WA|Whitman County|St. John town|3074|0|5|Brown|Helga|3005|WA|F|Daughter|||5|114984 + +3010|NY|Essex County|Lake Placid village|3075|0|1|Carbone|Jess|2979|Alabama|M|Head|||31|114985 +3010|NY|Essex County|Lake Placid village|3075|0|2|Carbone|Rosetta|2992|Connecticut|F|Spouse|||18|114986 +3010|NY|Essex County|Lake Placid village|3075|0|3|Carbone|Claudie|3001|NY|F|Daughter|||9|114987 +3010|NY|Essex County|Lake Placid village|3075|0|4|Carbone|Melvin|3009|NY|M|Son|||1|114988 + +3010|IL|Lake County|Long Grove village|3076|0|1|Carbone|Jarvis Alan|2993|Massachusetts|M|Head|||17|114989 +3010|IL|Lake County|Long Grove village|3076|0|2|Carbone|Cheree|2988|Bolivia|F|Spouse|||22|114990 +3010|IL|Lake County|Long Grove village|3076|0|3|Carbone|Sheldon|3001|IL|M|Son|||9|114991 +3010|IL|Lake County|Long Grove village|3076|0|4|Carbone|Randy|3003|IL|M|Son|||7|114992 +3010|IL|Lake County|Long Grove village|3076|0|5|Carbone|Maximo|3005|IL|M|Son|||5|114993 +3010|IL|Lake County|Long Grove village|3076|0|6|Carbone|Hilario|3007|IL|M|Son|||3|114994 +3010|IL|Lake County|Long Grove village|3076|0|7|Carbone|Celestine Luanna|3009|IL|F|Daughter|||1|114995 + +3010|MN|Itasca County|Morse township|3077|0|1|Taylor|James|2992|Louisiana|M|Head|||18|114996 +3010|MN|Itasca County|Morse township|3077|0|2|Taylor|Soon Kanesha|2994|Maryland|F|Spouse|||16|114997 +3010|MN|Itasca County|Morse township|3077|0|3|Taylor|Norman|3001|MN|M|Son|||9|114998 +3010|MN|Itasca County|Morse township|3077|0|4|Taylor|Dan Joesph|3007|MN|M|Son|||3|114999 +3010|MN|Itasca County|Morse township|3077|0|5|Taylor|Anya|3009|MN|F|Daughter|||1|115000 + +3010|MS|Montgomery County|Winona city|3078|0|1|West|Donald Irving|2982|Iowa|M|Head|||28|115001 +3010|MS|Montgomery County|Winona city|3078|0|2|West|Raylene|2985|Kyrgyzstan|F|Spouse|||25|115002 +3010|MS|Montgomery County|Winona city|3078|0|3|West|Dale|3005|MS|M|Son|||5|115003 +3010|MS|Montgomery County|Winona city|3078|0|4|West|Jina Shavonne|3009|MS|F|Daughter|||1|115004 + +3010|PA|Indiana County|Armstrong township|3079|0|1|Mckellop|Dan|2991|Indiana|M|Head|||19|115005 +3010|PA|Indiana County|Armstrong township|3079|0|2|Mckellop|Mercy|2989|Arizona|F|Spouse|||21|115006 +3010|PA|Indiana County|Armstrong township|3079|0|3|Mckellop|Casie Roxana|3001|PA|F|Daughter|||9|115007 +3010|PA|Indiana County|Armstrong township|3079|0|4|Mckellop|Ardath|3003|PA|F|Daughter|||7|115008 +3010|PA|Indiana County|Armstrong township|3079|0|5|Mckellop|Soo|3005|PA|F|Daughter|||5|115009 +3010|PA|Indiana County|Armstrong township|3079|0|6|Mckellop|Margie|3009|PA|F|Daughter|||1|115010 + +3010|MS|Tippah County|Walnut town|3080|0|1|Fiotodimitrak|Darron|2988|Oklahoma|M|Head|||22|115011 +3010|MS|Tippah County|Walnut town|3080|0|2|Fiotodimitrak|Barrie|2988|Utah|F|Spouse|||22|115012 +3010|MS|Tippah County|Walnut town|3080|0|3|Fiotodimitrak|Wendi|3003|MS|F|Daughter|||7|115013 +3010|MS|Tippah County|Walnut town|3080|0|4|Fiotodimitrak|Wendolyn|3005|MS|F|Daughter|||5|115014 +3010|MS|Tippah County|Walnut town|3080|0|5|Fiotodimitrak|Myrl|3007|MS|F|Daughter|||3|115015 +3010|MS|Tippah County|Walnut town|3080|0|6|Fiotodimitrak|Joette|3009|MS|F|Daughter|||1|115016 + +3010|CA|Placer County|North Auburn CDP|3081|0|1|Fiotodimitrak|Dean|2990|New Jersey|M|Head|||20|115017 +3010|CA|Placer County|North Auburn CDP|3081|0|2|Fiotodimitrak|Gene|2990|Vermont|F|Spouse|||20|115018 +3010|CA|Placer County|North Auburn CDP|3081|0|3|Fiotodimitrak|Rossana|3001|CA|F|Daughter|||9|115019 +3010|CA|Placer County|North Auburn CDP|3081|0|4|Fiotodimitrak|Arlean|3003|CA|F|Daughter|||7|115020 +3010|CA|Placer County|North Auburn CDP|3081|0|5|Fiotodimitrak|Anibal|3007|CA|M|Son|||3|115021 + +3010|MS|Tippah County|Walnut town|3082|0|1|Fiotodimitrak|Emory|2992|West Virginia|M|Head|||18|115022 +3010|MS|Tippah County|Walnut town|3082|0|2|Fiotodimitrak|Charissa|2986|Kuwait|F|Spouse|||24|115023 +3010|MS|Tippah County|Walnut town|3082|0|3|Fiotodimitrak|Fredrick Joan|3001|MS|M|Son|||9|115024 +3010|MS|Tippah County|Walnut town|3082|0|4|Fiotodimitrak|Luis|3003|MS|M|Son|||7|115025 +3010|MS|Tippah County|Walnut town|3082|0|5|Fiotodimitrak|Hector|3005|MS|M|Son|||5|115026 +3010|MS|Tippah County|Walnut town|3082|0|6|Fiotodimitrak|Ronnie|3007|MS|F|Daughter|||3|115027 +3010|MS|Tippah County|Walnut town|3082|0|7|Fiotodimitrak|Sheldon|3009|MS|M|Son|||1|115028 + +3010|PA|Somerset County|Windber borough|3083|0|1|Miles|Abraham Lou|2990|New Mexico|M|Head|||20|115029 +3010|PA|Somerset County|Windber borough|3083|0|2|Miles|Lela|2984|Ukraine|F|Spouse|||26|115030 +3010|PA|Somerset County|Windber borough|3083|0|3|Miles|Leonel|3001|PA|M|Son|||9|115031 +3010|PA|Somerset County|Windber borough|3083|0|4|Miles|Stepanie|3003|PA|F|Daughter|||7|115032 +3010|PA|Somerset County|Windber borough|3083|0|5|Miles|Donella|3009|PA|F|Daughter|||1|115033 + +3010|NE|Cherry County|Nenzel village|3084|0|1|Gary|Frederic Chance|2991|Wisconsin|M|Head|||19|115034 +3010|NE|Cherry County|Nenzel village|3084|0|2|Gary|Leana Eliz|2986|Nevada|F|Spouse|||24|115035 +3010|NE|Cherry County|Nenzel village|3084|0|3|Gary|Brendan Emilio|3001|NE|M|Son|||9|115036 +3010|NE|Cherry County|Nenzel village|3084|0|4|Gary|Treena|3005|NE|F|Daughter|||5|115037 +3010|NE|Cherry County|Nenzel village|3084|0|5|Gary|Kori|3009|NE|F|Daughter|||1|115038 + +3010|IA|Boone County, Polk County, Story County|Sheldahl city|3085|0|1|Lusk|Felipe Glenn|2986|Ohio|M|Head|||24|115039 +3010|IA|Boone County, Polk County, Story County|Sheldahl city|3085|0|2|Lusk|Cathy|2992|Wisconsin|F|Spouse|||18|115040 +3010|IA|Boone County, Polk County, Story County|Sheldahl city|3085|0|3|Lusk|Veda|3001|IA|F|Daughter|||9|115041 +3010|IA|Boone County, Polk County, Story County|Sheldahl city|3085|0|4|Lusk|Miquel|3007|IA|M|Son|||3|115042 +3010|IA|Boone County, Polk County, Story County|Sheldahl city|3085|0|5|Lusk|Joane|3009|IA|F|Daughter|||1|115043 + +3010|WI|Polk County|Frederic village|3086|0|1|Lusk|Darnell|2990|Colorado|M|Head|||20|115044 +3010|WI|Polk County|Frederic village|3086|0|2|Lusk|Susan Leota|2985|Colorado|F|Spouse|||25|115045 +3010|WI|Polk County|Frederic village|3086|0|3|Lusk|Onie|3005|WI|F|Daughter|||5|115046 +3010|WI|Polk County|Frederic village|3086|0|4|Lusk|Tara|3007|WI|F|Daughter|||3|115047 +3010|WI|Polk County|Frederic village|3086|0|5|Lusk|Evangelina|3009|WI|F|Daughter|||1|115048 + +3010|ME|Hancock County|Marshall Island UT|3087|0|1|Maiava|Gregorio|2983|Louisiana|M|Head|||27|115049 +3010|ME|Hancock County|Marshall Island UT|3087|0|2|Maiava|Jacquline|2988|Florida|F|Spouse|||22|115050 +3010|ME|Hancock County|Marshall Island UT|3087|0|3|Maiava|Christal|3001|ME|F|Daughter|||9|115051 +3010|ME|Hancock County|Marshall Island UT|3087|0|4|Maiava|Granville|3003|ME|M|Son|||7|115052 +3010|ME|Hancock County|Marshall Island UT|3087|0|5|Maiava|Kristofer|3005|ME|M|Son|||5|115053 +3010|ME|Hancock County|Marshall Island UT|3087|0|6|Maiava|Jae|3009|ME|M|Son|||1|115054 + +3010|MO|Platte County|Edgerton city|3088|0|1|Maiava|Harvey|2987|Idaho|M|Head|||23|115055 +3010|MO|Platte County|Edgerton city|3088|0|2|Maiava|Shanel|2992|Central African Republic|F|Spouse|||18|115056 +3010|MO|Platte County|Edgerton city|3088|0|3|Maiava|Pasquale|3007|MO|M|Son|||3|115057 + +3010|NC|Johnston County|Selma town|3089|0|1|Windfield|Herman|2967|Mississippi|M|Head|||43|115058 +3010|NC|Johnston County|Selma town|3089|0|2|Windfield|Glenn|2988|South Dakota|F|Spouse|||22|115059 +3010|NC|Johnston County|Selma town|3089|0|3|Windfield|Holly|3003|NC|F|Daughter|||7|115060 +3010|NC|Johnston County|Selma town|3089|0|4|Windfield|Sung|3007|NC|M|Son|||3|115061 +3010|NC|Johnston County|Selma town|3089|0|5|Windfield|Gordon|3009|NC|M|Son|||1|115062 + +3010|NY|St. Lawrence County|Ogdensburg city|3090|0|1|Wanca|Cory|2994|Texas|M|Head|||16|115063 +3010|NY|St. Lawrence County|Ogdensburg city|3090|0|2|Wanca|Anissa|2992|West Virginia|F|Spouse|||18|115064 +3010|NY|St. Lawrence County|Ogdensburg city|3090|0|3|Wanca|Weston|3003|NY|M|Son|||7|115065 +3010|NY|St. Lawrence County|Ogdensburg city|3090|0|4|Wanca|Elsa Jesusa|3007|NY|F|Daughter|||3|115066 + +3010|CA|Plumas County|Twain CDP|3091|0|1|Srey|Odell|2993|Idaho|M|Head|||17|115067 +3010|CA|Plumas County|Twain CDP|3091|0|2|Srey|Cathy|2975|New York|F|Spouse|||35|115068 +3010|CA|Plumas County|Twain CDP|3091|0|3|Srey|Wyatt|3003|CA|M|Son|||7|115069 +3010|CA|Plumas County|Twain CDP|3091|0|4|Srey|Darnell|3005|CA|M|Son|||5|115070 +3010|CA|Plumas County|Twain CDP|3091|0|5|Srey|Darnell Forrest|3009|CA|M|Son|||1|115071 + +3010|MS|Perry County|New Augusta town|3092|0|1|Goodrich|Perry|2992|Cocos (keeling) Islands|M|Head|||18|115072 +3010|MS|Perry County|New Augusta town|3092|0|2|Goodrich|Chae|2987|Kentucky|F|Spouse|||23|115073 +3010|MS|Perry County|New Augusta town|3092|0|3|Goodrich|Jame|3001|MS|M|Son|||9|115074 +3010|MS|Perry County|New Augusta town|3092|0|4|Goodrich|Kimberley|3003|MS|F|Daughter|||7|115075 + +3010|NC|Cumberland County|Eastover town|3093|0|1|Benge|Erin|2986|Wisconsin|M|Head|||24|115076 +3010|NC|Cumberland County|Eastover town|3093|0|2|Benge|Gayle Doretha|2989|Cameroon|F|Spouse|||21|115077 +3010|NC|Cumberland County|Eastover town|3093|0|3|Benge|Beau Hector|3001|NC|M|Son|||9|115078 +3010|NC|Cumberland County|Eastover town|3093|0|4|Benge|Winford|3003|NC|M|Son|||7|115079 +3010|NC|Cumberland County|Eastover town|3093|0|5|Benge|Debera|3007|NC|F|Daughter|||3|115080 +3010|NC|Cumberland County|Eastover town|3093|0|6|Benge|Leon Patrice|3009|NC|F|Daughter|||1|115081 + +3010|NC|Cumberland County|Eastover town|3094|0|1|Benge|Elmer|2988|Maine|M|Head|||22|115082 +3010|NC|Cumberland County|Eastover town|3094|0|2|Benge|Milagro|2986|Minnesota|F|Spouse|||24|115083 +3010|NC|Cumberland County|Eastover town|3094|0|3|Benge|Alberta|3001|NC|F|Daughter|||9|115084 +3010|NC|Cumberland County|Eastover town|3094|0|4|Benge|Margarete|3005|NC|F|Daughter|||5|115085 + +3010|NC|Cumberland County|Eastover town|3095|0|1|Benge|Juan|2992|Wisconsin|M|Head|||18|115086 +3010|NC|Cumberland County|Eastover town|3095|0|2|Benge|Dorothy|2991|Hungary|F|Spouse|||19|115087 +3010|NC|Cumberland County|Eastover town|3095|0|3|Benge|Josh|3001|NC|M|Son|||9|115088 +3010|NC|Cumberland County|Eastover town|3095|0|4|Benge|Jolene|3003|NC|F|Daughter|||7|115089 +3010|NC|Cumberland County|Eastover town|3095|0|5|Benge|Omar|3005|NC|M|Son|||5|115090 +3010|NC|Cumberland County|Eastover town|3095|0|6|Benge|Pennie|3009|NC|F|Daughter|||1|115091 + +3010|TX|San Patricio County|Gregory city|3096|0|1|Salas|Willy|2981|Iowa|M|Head|||29|115092 +3010|TX|San Patricio County|Gregory city|3096|0|2|Salas|Renata Talia|2967|Oklahoma|F|Spouse|||43|115093 +3010|TX|San Patricio County|Gregory city|3096|0|3|Salas|Jake|3005|TX|M|Son|||5|115094 +3010|TX|San Patricio County|Gregory city|3096|0|4|Salas|Verna|3007|TX|F|Daughter|||3|115095 +3010|TX|San Patricio County|Gregory city|3096|0|5|Salas|Alonzo Denny|3009|TX|M|Son|||1|115096 + +3010|TX|San Patricio County|Gregory city|3097|0|1|Salas|Carlos|2993|Kentucky|M|Head|||17|115097 +3010|TX|San Patricio County|Gregory city|3097|0|2|Salas|Marchelle Laurel|2993|Oklahoma|F|Spouse|||17|115098 +3010|TX|San Patricio County|Gregory city|3097|0|3|Salas|Jeffery|3001|TX|M|Son|||9|115099 +3010|TX|San Patricio County|Gregory city|3097|0|4|Salas|Gertrudis|3005|TX|F|Daughter|||5|115100 +3010|TX|San Patricio County|Gregory city|3097|0|5|Salas|Deja Winnifred|3009|TX|F|Daughter|||1|115101 + +3010|LA|Tangipahoa Parish|Tickfaw village|3098|0|1|Jenkins|Randolph Jc|2983|Hong Kong|M|Head|||27|115102 +3010|LA|Tangipahoa Parish|Tickfaw village|3098|0|2|Jenkins|Yee|2979|Minnesota|F|Spouse|||31|115103 +3010|LA|Tangipahoa Parish|Tickfaw village|3098|0|3|Jenkins|Micha|3003|LA|F|Daughter|||7|115104 +3010|LA|Tangipahoa Parish|Tickfaw village|3098|0|4|Jenkins|Dwana|3007|LA|F|Daughter|||3|115105 + +3010|PA|Lancaster County|Earl township|3099|0|1|Fykes|Darrick Rocky|2990|Georgia|M|Head|||20|115106 +3010|PA|Lancaster County|Earl township|3099|0|2|Fykes|Gracia|2983|Connecticut|F|Spouse|||27|115107 +3010|PA|Lancaster County|Earl township|3099|0|3|Fykes|Johnny|3001|PA|M|Son|||9|115108 +3010|PA|Lancaster County|Earl township|3099|0|4|Fykes|Roberto|3003|PA|M|Son|||7|115109 +3010|PA|Lancaster County|Earl township|3099|0|5|Fykes|Brian|3007|PA|F|Daughter|||3|115110 +3010|PA|Lancaster County|Earl township|3099|0|6|Fykes|Marquerite|3009|PA|F|Daughter|||1|115111 + +3010|GA|Glynn County|St. Simons CDP|3100|0|1|Coalter|Elias|2977|Tennessee|M|Head|||33|115112 +3010|GA|Glynn County|St. Simons CDP|3100|0|2|Coalter|Angla|2989|Guinea|F|Spouse|||21|115113 +3010|GA|Glynn County|St. Simons CDP|3100|0|3|Coalter|Tommie|3001|GA|M|Son|||9|115114 +3010|GA|Glynn County|St. Simons CDP|3100|0|4|Coalter|Marleen|3007|GA|F|Daughter|||3|115115 +3010|GA|Glynn County|St. Simons CDP|3100|0|5|Coalter|Astrid|3009|GA|F|Daughter|||1|115116 + +3010|GA|Glynn County|St. Simons CDP|3101|0|1|Coalter|Juan|2987|Congo, The Democratic Republic Of The|M|Head|||23|115117 +3010|GA|Glynn County|St. Simons CDP|3101|0|2|Coalter|Quiana|2992|Wisconsin|F|Spouse|||18|115118 +3010|GA|Glynn County|St. Simons CDP|3101|0|3|Coalter|Antonette|3001|GA|F|Daughter|||9|115119 +3010|GA|Glynn County|St. Simons CDP|3101|0|4|Coalter|Ervin|3003|GA|M|Son|||7|115120 +3010|GA|Glynn County|St. Simons CDP|3101|0|5|Coalter|King|3005|GA|M|Son|||5|115121 +3010|GA|Glynn County|St. Simons CDP|3101|0|6|Coalter|Odessa|3009|GA|F|Daughter|||1|115122 + +3010|GA|Glynn County|St. Simons CDP|3102|0|1|Coalter|Darin|2993|Delaware|M|Head|||17|115123 +3010|GA|Glynn County|St. Simons CDP|3102|0|2|Coalter|Mirella Magen|2991|Georgia|F|Spouse|||19|115124 +3010|GA|Glynn County|St. Simons CDP|3102|0|3|Coalter|Lupe|3001|GA|M|Son|||9|115125 +3010|GA|Glynn County|St. Simons CDP|3102|0|4|Coalter|Jacquline|3003|GA|F|Daughter|||7|115126 +3010|GA|Glynn County|St. Simons CDP|3102|0|5|Coalter|Dahlia|3009|GA|F|Daughter|||1|115127 + +3010|NY|Allegany County|Willing town|3103|0|1|Steel|Vincenzo|2981|Utah|M|Head|||29|115128 +3010|NY|Allegany County|Willing town|3103|0|2|Steel|Allen|2967|North Carolina|F|Spouse|||43|115129 +3010|NY|Allegany County|Willing town|3103|0|3|Steel|Rosalia|3005|NY|F|Daughter|||5|115130 +3010|NY|Allegany County|Willing town|3103|0|4|Steel|Arlen|3007|NY|M|Son|||3|115131 +3010|NY|Allegany County|Willing town|3103|0|5|Steel|Daniell|3009|NY|F|Daughter|||1|115132 + +3010|IA|Polk County|Saylorville CDP|3104|0|1|Steel|Jeromy Hong|2991|Arkansas|M|Head|||19|115133 +3010|IA|Polk County|Saylorville CDP|3104|0|2|Steel|Ashton|2988|Missouri|F|Spouse|||22|115134 +3010|IA|Polk County|Saylorville CDP|3104|0|3|Steel|Britt|3005|IA|M|Son|||5|115135 +3010|IA|Polk County|Saylorville CDP|3104|0|4|Steel|Roselia|3007|IA|F|Daughter|||3|115136 + +3010|IN|Spencer County|Rockport city|3105|0|1|Maginnis|Archie|2984|South Carolina|M|Head|||26|115137 +3010|IN|Spencer County|Rockport city|3105|0|2|Maginnis|Sanda|2974|Georgia|F|Spouse|||36|115138 +3010|IN|Spencer County|Rockport city|3105|0|3|Maginnis|Shaneka|3001|IN|F|Daughter|||9|115139 +3010|IN|Spencer County|Rockport city|3105|0|4|Maginnis|Zachary Mark|3005|IN|M|Son|||5|115140 +3010|IN|Spencer County|Rockport city|3105|0|5|Maginnis|Grace|3007|IN|F|Daughter|||3|115141 + +3010|NY|St. Lawrence County|Hermon village|3106|0|1|Maginnis|Lynwood|2986|New Hampshire|M|Head|||24|115142 +3010|NY|St. Lawrence County|Hermon village|3106|0|2|Maginnis|Johnetta Tristan|2994|New Hampshire|F|Spouse|||16|115143 +3010|NY|St. Lawrence County|Hermon village|3106|0|3|Maginnis|Zenia|3001|NY|F|Daughter|||9|115144 +3010|NY|St. Lawrence County|Hermon village|3106|0|4|Maginnis|Ross|3003|NY|M|Son|||7|115145 +3010|NY|St. Lawrence County|Hermon village|3106|0|5|Maginnis|Heather|3007|NY|F|Daughter|||3|115146 + +3010|PA|Crawford County|Woodcock township|3107|0|1|Black|Dorian|2989|Missouri|M|Head|||21|115147 +3010|PA|Crawford County|Woodcock township|3107|0|2|Black|Jeneva|2985|Washington|F|Spouse|||25|115148 +3010|PA|Crawford County|Woodcock township|3107|0|3|Black|Hyman|3001|PA|M|Son|||9|115149 +3010|PA|Crawford County|Woodcock township|3107|0|4|Black|Sonny|3003|PA|M|Son|||7|115150 +3010|PA|Crawford County|Woodcock township|3107|0|5|Black|Santana|3007|PA|F|Daughter|||3|115151 +3010|PA|Crawford County|Woodcock township|3107|0|6|Black|Thanh|3009|PA|M|Son|||1|115152 + +3010|IN|Huntington County|Andrews town|3108|0|1|Mitchel|Marquis|2989|Tennessee|M|Head|||21|115153 +3010|IN|Huntington County|Andrews town|3108|0|2|Mitchel|Maple|2986|Kenya|F|Spouse|||24|115154 +3010|IN|Huntington County|Andrews town|3108|0|3|Mitchel|Casandra|3001|IN|F|Daughter|||9|115155 +3010|IN|Huntington County|Andrews town|3108|0|4|Mitchel|Aldo|3003|IN|M|Son|||7|115156 + +3010|MD|Charles County|Bryans Road CDP|3109|0|1|Price|Vern|2989|Florida|M|Head|||21|115157 +3010|MD|Charles County|Bryans Road CDP|3109|0|2|Price|Breann|2990|West Virginia|F|Spouse|||20|115158 +3010|MD|Charles County|Bryans Road CDP|3109|0|3|Price|Flora|3001|MD|F|Daughter|||9|115159 +3010|MD|Charles County|Bryans Road CDP|3109|0|4|Price|Chantay|3003|MD|F|Daughter|||7|115160 +3010|MD|Charles County|Bryans Road CDP|3109|0|5|Price|Rhett|3005|MD|M|Son|||5|115161 + +3010|GA|Glascock County|Gibson city|3110|0|1|Baadsgaard|Garret|2994|Arkansas|M|Head|||16|115162 +3010|GA|Glascock County|Gibson city|3110|0|2|Baadsgaard|Tammie|2988|New Mexico|F|Spouse|||22|115163 +3010|GA|Glascock County|Gibson city|3110|0|3|Baadsgaard|Raymond|3003|GA|M|Son|||7|115164 +3010|GA|Glascock County|Gibson city|3110|0|4|Baadsgaard|Raymond|3009|GA|M|Son|||1|115165 + +3010|WI|Racine County|Wind Point village|3111|0|1|Roberson|Dalton|2994|Mississippi|M|Head|||16|115166 +3010|WI|Racine County|Wind Point village|3111|0|2|Roberson|Flossie|2992|West Virginia|F|Spouse|||18|115167 +3010|WI|Racine County|Wind Point village|3111|0|3|Roberson|Latoria|3001|WI|F|Daughter|||9|115168 +3010|WI|Racine County|Wind Point village|3111|0|4|Roberson|Grady|3003|WI|M|Son|||7|115169 +3010|WI|Racine County|Wind Point village|3111|0|5|Roberson|Lawerence|3005|WI|M|Son|||5|115170 +3010|WI|Racine County|Wind Point village|3111|0|6|Roberson|Sammy Elijah|3007|WI|M|Son|||3|115171 + +3010|TX|Colorado County|Glidden CDP|3112|0|1|Krakauer|Rogelio|2988|Michigan|M|Head|||22|115172 +3010|TX|Colorado County|Glidden CDP|3112|0|2|Krakauer|Etha Enedina|2982|Michigan|F|Spouse|||28|115173 +3010|TX|Colorado County|Glidden CDP|3112|0|3|Krakauer|Eliseo|3001|TX|M|Son|||9|115174 +3010|TX|Colorado County|Glidden CDP|3112|0|4|Krakauer|Lemuel Rudolf|3005|TX|M|Son|||5|115175 +3010|TX|Colorado County|Glidden CDP|3112|0|5|Krakauer|Shemika|3009|TX|F|Daughter|||1|115176 + +3010|MA|Barnstable County|Brewster CDP|3113|0|1|Clarke|Nestor|2988|Pennsylvania|M|Head|||22|115177 +3010|MA|Barnstable County|Brewster CDP|3113|0|2|Clarke|Elenora|2986|West Virginia|F|Spouse|||24|115178 +3010|MA|Barnstable County|Brewster CDP|3113|0|3|Clarke|Shayne|3005|MA|M|Son|||5|115179 +3010|MA|Barnstable County|Brewster CDP|3113|0|4|Clarke|Jamison|3007|MA|M|Son|||3|115180 + +3010|MA|Barnstable County|Brewster CDP|3114|0|1|Clarke|Emery Gregory|2992|Utah|M|Head|||18|115181 +3010|MA|Barnstable County|Brewster CDP|3114|0|2|Clarke|Eryn|2968|Massachusetts|F|Spouse|||42|115182 +3010|MA|Barnstable County|Brewster CDP|3114|0|3|Clarke|Enriqueta Cherelle|3001|MA|F|Daughter|||9|115183 +3010|MA|Barnstable County|Brewster CDP|3114|0|4|Clarke|Chung Shaun|3005|MA|M|Son|||5|115184 + +3010|CA|Monterey County|Sand City city|3115|0|1|Sakry|Lionel|2989|Virginia|M|Head|||21|115185 +3010|CA|Monterey County|Sand City city|3115|0|2|Sakry|Nelle|2988|Texas|F|Spouse|||22|115186 +3010|CA|Monterey County|Sand City city|3115|0|3|Sakry|Shawn|3007|CA|M|Son|||3|115187 +3010|CA|Monterey County|Sand City city|3115|0|4|Sakry|Alonso|3009|CA|M|Son|||1|115188 + +3010|CT|New Haven County|New Haven town|3116|0|1|Garbett|Isreal|2973|Nebraska|M|Head|||37|115189 +3010|CT|New Haven County|New Haven town|3116|0|2|Garbett|Shaun Suzann|2994|Florida|F|Spouse|||16|115190 +3010|CT|New Haven County|New Haven town|3116|0|3|Garbett|Ayana|3009|CT|F|Daughter|||1|115191 + +3010|CT|New Haven County|New Haven town|3117|0|1|Garbett|Earl|2991|Oklahoma|M|Head|||19|115192 +3010|CT|New Haven County|New Haven town|3117|0|2|Garbett|Renna|2992|Maine|F|Spouse|||18|115193 +3010|CT|New Haven County|New Haven town|3117|0|3|Garbett|Elane Janey|3001|CT|F|Daughter|||9|115194 +3010|CT|New Haven County|New Haven town|3117|0|4|Garbett|Frank|3003|CT|M|Son|||7|115195 +3010|CT|New Haven County|New Haven town|3117|0|5|Garbett|Shea|3005|CT|F|Daughter|||5|115196 + +3010|CT|New Haven County|New Haven town|3118|0|1|Garbett|Dewey|2993|Wyoming|M|Head|||17|115197 +3010|CT|New Haven County|New Haven town|3118|0|2|Garbett|Melisa|2989|North Dakota|F|Spouse|||21|115198 +3010|CT|New Haven County|New Haven town|3118|0|3|Garbett|Jude Janett|3001|CT|F|Daughter|||9|115199 +3010|CT|New Haven County|New Haven town|3118|0|4|Garbett|Selma|3003|CT|F|Daughter|||7|115200 +3010|CT|New Haven County|New Haven town|3118|0|5|Garbett|Carmine|3005|CT|M|Son|||5|115201 + +3010|PA|Lehigh County|New Tripoli CDP|3119|0|1|Wells|Eli|2984|North Carolina|M|Head|||26|115202 +3010|PA|Lehigh County|New Tripoli CDP|3119|0|2|Wells|Elisa|2981|Connecticut|F|Spouse|||29|115203 +3010|PA|Lehigh County|New Tripoli CDP|3119|0|3|Wells|Jame|3001|PA|M|Son|||9|115204 +3010|PA|Lehigh County|New Tripoli CDP|3119|0|4|Wells|Illa|3005|PA|F|Daughter|||5|115205 +3010|PA|Lehigh County|New Tripoli CDP|3119|0|5|Wells|Walter|3009|PA|M|Son|||1|115206 + +3010|CA|Butte County|Gridley city|3120|0|1|Shedden|Manuel|2986|Syrian Arab Republic|M|Head|||24|115207 +3010|CA|Butte County|Gridley city|3120|0|2|Shedden|Johnnie|2985|Kosovo|F|Spouse|||25|115208 +3010|CA|Butte County|Gridley city|3120|0|3|Shedden|Albert|3001|CA|M|Son|||9|115209 +3010|CA|Butte County|Gridley city|3120|0|4|Shedden|Waylon|3003|CA|M|Son|||7|115210 +3010|CA|Butte County|Gridley city|3120|0|5|Shedden|Genaro|3005|CA|M|Son|||5|115211 + +3010|IN|Jay County|Redkey town|3121|0|1|Shedden|Marco|2990|Nauru|M|Head|||20|115212 +3010|IN|Jay County|Redkey town|3121|0|2|Shedden|Willow|2991|Kansas|F|Spouse|||19|115213 +3010|IN|Jay County|Redkey town|3121|0|3|Shedden|Roy Werner|3001|IN|M|Son|||9|115214 +3010|IN|Jay County|Redkey town|3121|0|4|Shedden|Jeanne|3003|IN|F|Daughter|||7|115215 +3010|IN|Jay County|Redkey town|3121|0|5|Shedden|Wm|3007|IN|M|Son|||3|115216 +3010|IN|Jay County|Redkey town|3121|0|6|Shedden|Theron|3009|IN|M|Son|||1|115217 + +3010|TX|Comal County, Guadalupe County|New Braunfels city|3122|0|1|Cavagnaro|Laverne Leigh|2992|New Hampshire|M|Head|||18|115218 +3010|TX|Comal County, Guadalupe County|New Braunfels city|3122|0|2|Cavagnaro|Matilde Shantay|2981|Greece|F|Spouse|||29|115219 +3010|TX|Comal County, Guadalupe County|New Braunfels city|3122|0|3|Cavagnaro|Fonda|3003|TX|F|Daughter|||7|115220 +3010|TX|Comal County, Guadalupe County|New Braunfels city|3122|0|4|Cavagnaro|Anissa|3007|TX|F|Daughter|||3|115221 +3010|TX|Comal County, Guadalupe County|New Braunfels city|3122|0|5|Cavagnaro|Guadalupe|3009|TX|M|Son|||1|115222 + +3010|WI|Marinette County|Crivitz village|3123|0|1|Stains|Sean Columbus|2977|Israel|M|Head|||33|115223 +3010|WI|Marinette County|Crivitz village|3123|0|2|Stains|Grace Izola|2987|West Virginia|F|Spouse|||23|115224 +3010|WI|Marinette County|Crivitz village|3123|0|3|Stains|Daryl|3001|WI|M|Son|||9|115225 +3010|WI|Marinette County|Crivitz village|3123|0|4|Stains|Hershel|3003|WI|M|Son|||7|115226 +3010|WI|Marinette County|Crivitz village|3123|0|5|Stains|Kieth|3007|WI|M|Son|||3|115227 + +3010|CA|Marin County|Fairfax town|3124|0|1|Clewes|Ernesto|2985|Oklahoma|M|Head|||25|115228 +3010|CA|Marin County|Fairfax town|3124|0|2|Clewes|Olinda|2990|Florida|F|Spouse|||20|115229 +3010|CA|Marin County|Fairfax town|3124|0|3|Clewes|Benjamin|3003|CA|M|Son|||7|115230 + +3010|UT|Weber County|Uintah town|3125|0|1|Conway|Damian|2966|Maryland|M|Head|||44|115231 +3010|UT|Weber County|Uintah town|3125|0|2|Conway|Helena Dione|2994|Louisiana|F|Spouse|||16|115232 +3010|UT|Weber County|Uintah town|3125|0|3|Conway|Man|3003|UT|F|Daughter|||7|115233 +3010|UT|Weber County|Uintah town|3125|0|4|Conway|Marshall Bella|3005|UT|F|Daughter|||5|115234 + +3010|ND|Nelson County|Lakota city|3126|0|1|Conway|Alton|2986|New Hampshire|M|Head|||24|115235 +3010|ND|Nelson County|Lakota city|3126|0|2|Conway|Conchita|2987|Pennsylvania|F|Spouse|||23|115236 +3010|ND|Nelson County|Lakota city|3126|0|3|Conway|Andre|3003|ND|F|Daughter|||7|115237 +3010|ND|Nelson County|Lakota city|3126|0|4|Conway|Albert|3005|ND|F|Daughter|||5|115238 +3010|ND|Nelson County|Lakota city|3126|0|5|Conway|Genaro|3007|ND|M|Son|||3|115239 + +3010|MA|Worcester County|East Brookfield town|3127|0|1|Jobe|Clay|2993|Serbia|M|Head|||17|115240 +3010|MA|Worcester County|East Brookfield town|3127|0|2|Jobe|Makeda|2993|Arkansas|F|Spouse|||17|115241 +3010|MA|Worcester County|East Brookfield town|3127|0|3|Jobe|Quintin|3003|MA|M|Son|||7|115242 +3010|MA|Worcester County|East Brookfield town|3127|0|4|Jobe|Christia|3005|MA|F|Daughter|||5|115243 + +3010|MI|Sanilac County|Evergreen township|3128|0|1|Emory|Brent|2986|Colorado|M|Head|||24|115244 +3010|MI|Sanilac County|Evergreen township|3128|0|2|Emory|Alexandra|2993|Maine|F|Spouse|||17|115245 +3010|MI|Sanilac County|Evergreen township|3128|0|3|Emory|Benedict|3003|MI|M|Son|||7|115246 +3010|MI|Sanilac County|Evergreen township|3128|0|4|Emory|Dorinda Rosamond|3005|MI|F|Daughter|||5|115247 +3010|MI|Sanilac County|Evergreen township|3128|0|5|Emory|Brenda|3007|MI|F|Daughter|||3|115248 +3010|MI|Sanilac County|Evergreen township|3128|0|6|Emory|Ling|3009|MI|F|Daughter|||1|115249 + +3010|NY|Fulton County|Caroga Lake CDP|3129|0|1|Blaisdell|Walker|2987|Malaysia|M|Head|||23|115250 +3010|NY|Fulton County|Caroga Lake CDP|3129|0|2|Blaisdell|Alethia|2992|Vermont|F|Spouse|||18|115251 +3010|NY|Fulton County|Caroga Lake CDP|3129|0|3|Blaisdell|Tegan|3003|NY|F|Daughter|||7|115252 +3010|NY|Fulton County|Caroga Lake CDP|3129|0|4|Blaisdell|Hoa|3005|NY|F|Daughter|||5|115253 + +3010|ID|Gooding County|Hagerman city|3130|0|1|Skipworth|Emilio|2979|Mississippi|M|Head|||31|115254 +3010|ID|Gooding County|Hagerman city|3130|0|2|Skipworth|Tawanna|2994|Vermont|F|Spouse|||16|115255 +3010|ID|Gooding County|Hagerman city|3130|0|3|Skipworth|Bryant|3001|ID|M|Son|||9|115256 +3010|ID|Gooding County|Hagerman city|3130|0|4|Skipworth|Valentine|3009|ID|M|Son|||1|115257 + +3010|ID|Gooding County|Hagerman city|3131|0|1|Skipworth|Sammy|2985|Cote D'ivoire|M|Head|||25|115258 +3010|ID|Gooding County|Hagerman city|3131|0|2|Skipworth|Stacee|2985|Lao People's Democratic Republic|F|Spouse|||25|115259 +3010|ID|Gooding County|Hagerman city|3131|0|3|Skipworth|Gaynelle|3001|ID|F|Daughter|||9|115260 +3010|ID|Gooding County|Hagerman city|3131|0|4|Skipworth|Genaro|3003|ID|M|Son|||7|115261 +3010|ID|Gooding County|Hagerman city|3131|0|5|Skipworth|Derek|3009|ID|M|Son|||1|115262 + +3010|ID|Gooding County|Hagerman city|3132|0|1|Skipworth|Mckinley|2989|Connecticut|M|Head|||21|115263 +3010|ID|Gooding County|Hagerman city|3132|0|2|Skipworth|Lizeth|2993|Florida|F|Spouse|||17|115264 +3010|ID|Gooding County|Hagerman city|3132|0|3|Skipworth|Tequila|3001|ID|F|Daughter|||9|115265 +3010|ID|Gooding County|Hagerman city|3132|0|4|Skipworth|Brigitte Chanell|3005|ID|F|Daughter|||5|115266 + +3010|NJ|Camden County|Barrington borough|3133|0|1|Mills|Broderick Wilmer|2985|South Dakota|M|Head|||25|115267 +3010|NJ|Camden County|Barrington borough|3133|0|2|Mills|Gladis|2987|Maine|F|Spouse|||23|115268 +3010|NJ|Camden County|Barrington borough|3133|0|3|Mills|Delpha|3001|NJ|F|Daughter|||9|115269 +3010|NJ|Camden County|Barrington borough|3133|0|4|Mills|Josephine|3003|NJ|F|Daughter|||7|115270 +3010|NJ|Camden County|Barrington borough|3133|0|5|Mills|Tori|3007|NJ|F|Daughter|||3|115271 + +3010|ME|Hancock County|Marshall Island UT|3134|0|1|Hart|Eliseo|2980|Delaware|M|Head|||30|115272 +3010|ME|Hancock County|Marshall Island UT|3134|0|2|Hart|Shantay|2985|Georgia|F|Spouse|||25|115273 +3010|ME|Hancock County|Marshall Island UT|3134|0|3|Hart|Sid|3001|ME|M|Son|||9|115274 +3010|ME|Hancock County|Marshall Island UT|3134|0|4|Hart|Son|3005|ME|M|Son|||5|115275 +3010|ME|Hancock County|Marshall Island UT|3134|0|5|Hart|Cherry|3007|ME|F|Daughter|||3|115276 + +3010|PA|Delaware County|Media borough|3135|0|1|Hart|Eric|2988|Wyoming|M|Head|||22|115277 +3010|PA|Delaware County|Media borough|3135|0|2|Hart|Miguelina|2965|Illinois|F|Spouse|||45|115278 +3010|PA|Delaware County|Media borough|3135|0|3|Hart|Warner|3001|PA|M|Son|||9|115279 +3010|PA|Delaware County|Media borough|3135|0|4|Hart|Terrance|3003|PA|M|Son|||7|115280 +3010|PA|Delaware County|Media borough|3135|0|5|Hart|Coleman Cyril|3009|PA|M|Son|||1|115281 + +3010|NY|Washington County|Easton town|3136|0|1|Tejada|Cory|2965|Cook Islands|M|Head|||45|115282 +3010|NY|Washington County|Easton town|3136|0|2|Tejada|Lashaun|2973|Connecticut|F|Spouse|||37|115283 +3010|NY|Washington County|Easton town|3136|0|3|Tejada|Vernice|3003|NY|F|Daughter|||7|115284 +3010|NY|Washington County|Easton town|3136|0|4|Tejada|Ena|3005|NY|F|Daughter|||5|115285 +3010|NY|Washington County|Easton town|3136|0|5|Tejada|Ray|3007|NY|M|Son|||3|115286 + +3010|MN|Dakota County|Farmington city|3137|0|1|Tejada|Kerry|2979|Indonesia|M|Head|||31|115287 +3010|MN|Dakota County|Farmington city|3137|0|2|Tejada|Carmelia|2987|Seychelles|F|Spouse|||23|115288 +3010|MN|Dakota County|Farmington city|3137|0|3|Tejada|Romeo|3001|MN|M|Son|||9|115289 +3010|MN|Dakota County|Farmington city|3137|0|4|Tejada|Latina|3005|MN|F|Daughter|||5|115290 +3010|MN|Dakota County|Farmington city|3137|0|5|Tejada|Maddie|3007|MN|F|Daughter|||3|115291 + +3010|NY|Seneca County|Lodi village|3138|0|1|Garcia|Wilford Errol|2990|Delaware|M|Head|||20|115292 +3010|NY|Seneca County|Lodi village|3138|0|2|Garcia|Rachel|2970|Rhode Island|F|Spouse|||40|115293 +3010|NY|Seneca County|Lodi village|3138|0|3|Garcia|Luz|3001|NY|F|Daughter|||9|115294 +3010|NY|Seneca County|Lodi village|3138|0|4|Garcia|Bradley|3003|NY|M|Son|||7|115295 +3010|NY|Seneca County|Lodi village|3138|0|5|Garcia|Alejandrina Nelle|3009|NY|F|Daughter|||1|115296 + +3010|MN|Lac qui Parle County|Mehurin township|3139|0|1|Holle|Damion|2979|Colorado|M|Head|||31|115297 +3010|MN|Lac qui Parle County|Mehurin township|3139|0|2|Holle|Mandy|2980|Ghana|F|Spouse|||30|115298 +3010|MN|Lac qui Parle County|Mehurin township|3139|0|3|Holle|Arnoldo|3007|MN|M|Son|||3|115299 +3010|MN|Lac qui Parle County|Mehurin township|3139|0|4|Holle|Rebbecca|3009|MN|F|Daughter|||1|115300 + +3010|MN|Lac qui Parle County|Mehurin township|3140|0|1|Holle|Malcom Zachary|2983|Wisconsin|M|Head|||27|115301 +3010|MN|Lac qui Parle County|Mehurin township|3140|0|2|Holle|Drusilla|2980|Lesotho|F|Spouse|||30|115302 +3010|MN|Lac qui Parle County|Mehurin township|3140|0|3|Holle|Temika|3003|MN|F|Daughter|||7|115303 +3010|MN|Lac qui Parle County|Mehurin township|3140|0|4|Holle|Hyman|3005|MN|M|Son|||5|115304 +3010|MN|Lac qui Parle County|Mehurin township|3140|0|5|Holle|Teddy Johnny|3007|MN|M|Son|||3|115305 +3010|MN|Lac qui Parle County|Mehurin township|3140|0|6|Holle|Burt|3009|MN|M|Son|||1|115306 + +3010|MN|Lac qui Parle County|Mehurin township|3141|0|1|Holle|Charlie|2987|Kentucky|M|Head|||23|115307 +3010|MN|Lac qui Parle County|Mehurin township|3141|0|2|Holle|Rolanda Simonne|2987|North Carolina|F|Spouse|||23|115308 +3010|MN|Lac qui Parle County|Mehurin township|3141|0|3|Holle|Cleotilde|3003|MN|F|Daughter|||7|115309 +3010|MN|Lac qui Parle County|Mehurin township|3141|0|4|Holle|Micha|3005|MN|F|Daughter|||5|115310 +3010|MN|Lac qui Parle County|Mehurin township|3141|0|5|Holle|Stanford|3009|MN|M|Son|||1|115311 + +3010|AZ|Mohave County|Desert Hills CDP|3142|0|1|Konderla|Jonathan|2990|Kentucky|M|Head|||20|115312 +3010|AZ|Mohave County|Desert Hills CDP|3142|0|2|Konderla|Haley|2991|New Mexico|F|Spouse|||19|115313 +3010|AZ|Mohave County|Desert Hills CDP|3142|0|3|Konderla|Micah|3001|AZ|M|Son|||9|115314 +3010|AZ|Mohave County|Desert Hills CDP|3142|0|4|Konderla|Michal|3003|AZ|M|Son|||7|115315 +3010|AZ|Mohave County|Desert Hills CDP|3142|0|5|Konderla|Mireya Juliann|3009|AZ|F|Daughter|||1|115316 + +3010|PA|Mercer County|Findley township|3143|0|1|Morath|Jody|2987|Nebraska|M|Head|||23|115317 +3010|PA|Mercer County|Findley township|3143|0|2|Morath|Marjorie|2985|Colorado|F|Spouse|||25|115318 +3010|PA|Mercer County|Findley township|3143|0|3|Morath|Jamey|3003|PA|M|Son|||7|115319 +3010|PA|Mercer County|Findley township|3143|0|4|Morath|Sydney Phillis|3005|PA|F|Daughter|||5|115320 +3010|PA|Mercer County|Findley township|3143|0|5|Morath|Phillip|3007|PA|M|Son|||3|115321 + +3010|PA|Mercer County|Findley township|3144|0|1|Morath|Asa|2991|Czech Republic|M|Head|||19|115322 +3010|PA|Mercer County|Findley township|3144|0|2|Morath|Amira|2989|Florida|F|Spouse|||21|115323 +3010|PA|Mercer County|Findley township|3144|0|3|Morath|Brenna|3003|PA|F|Daughter|||7|115324 +3010|PA|Mercer County|Findley township|3144|0|4|Morath|Donn|3005|PA|M|Son|||5|115325 + +3010|MI|Manistee County|Parkdale CDP|3145|0|1|Sinclair|Johnathan|2988|Tennessee|M|Head|||22|115326 +3010|MI|Manistee County|Parkdale CDP|3145|0|2|Sinclair|Lawana|2987|Nevada|F|Spouse|||23|115327 +3010|MI|Manistee County|Parkdale CDP|3145|0|3|Sinclair|Mose|3003|MI|M|Son|||7|115328 +3010|MI|Manistee County|Parkdale CDP|3145|0|4|Sinclair|Libby|3005|MI|F|Daughter|||5|115329 +3010|MI|Manistee County|Parkdale CDP|3145|0|5|Sinclair|Kermit|3007|MI|M|Son|||3|115330 + +3010|IL|Clinton County|Carlyle city|3146|0|1|Vanert|Ricardo|2982|French Guiana|M|Head|||28|115331 +3010|IL|Clinton County|Carlyle city|3146|0|2|Vanert|Zoraida|2989|North Carolina|F|Spouse|||21|115332 +3010|IL|Clinton County|Carlyle city|3146|0|3|Vanert|Blaine|3001|IL|M|Son|||9|115333 +3010|IL|Clinton County|Carlyle city|3146|0|4|Vanert|Ben|3007|IL|M|Son|||3|115334 +3010|IL|Clinton County|Carlyle city|3146|0|5|Vanert|Leonel|3009|IL|M|Son|||1|115335 + +3010|WA|Whatcom County|Everson city|3147|0|1|Vanert|Jessie|2992|Serbia|M|Head|||18|115336 +3010|WA|Whatcom County|Everson city|3147|0|2|Vanert|Babara|2993|West Virginia|F|Spouse|||17|115337 +3010|WA|Whatcom County|Everson city|3147|0|3|Vanert|Benton|3001|WA|M|Son|||9|115338 +3010|WA|Whatcom County|Everson city|3147|0|4|Vanert|Jim|3003|WA|M|Son|||7|115339 +3010|WA|Whatcom County|Everson city|3147|0|5|Vanert|Chuck|3005|WA|M|Son|||5|115340 +3010|WA|Whatcom County|Everson city|3147|0|6|Vanert|Zaida|3007|WA|F|Daughter|||3|115341 +3010|WA|Whatcom County|Everson city|3147|0|7|Vanert|King|3009|WA|M|Son|||1|115342 + +3010|IA|Fremont County|Hamburg city|3148|0|1|Ogburn|Gregg|2990|Iran, Islamic Republic Of|M|Head|||20|115343 +3010|IA|Fremont County|Hamburg city|3148|0|2|Ogburn|Jamie Clotilde|2969|Minnesota|F|Spouse|||41|115344 +3010|IA|Fremont County|Hamburg city|3148|0|3|Ogburn|Joni|3003|IA|F|Daughter|||7|115345 +3010|IA|Fremont County|Hamburg city|3148|0|4|Ogburn|Carlotta|3005|IA|F|Daughter|||5|115346 +3010|IA|Fremont County|Hamburg city|3148|0|5|Ogburn|Buck|3007|IA|M|Son|||3|115347 + +3010|AR|Saline County|Traskwood city|3149|0|1|Hesler|Gale|2993|Mississippi|M|Head|||17|115348 +3010|AR|Saline County|Traskwood city|3149|0|2|Hesler|Shakira|2973|Iowa|F|Spouse|||37|115349 +3010|AR|Saline County|Traskwood city|3149|0|3|Hesler|Alyson|3005|AR|F|Daughter|||5|115350 +3010|AR|Saline County|Traskwood city|3149|0|4|Hesler|Cole|3007|AR|M|Son|||3|115351 + +3010|NJ|Hunterdon County|Bloomsbury borough|3150|0|1|Bogan|Carroll|2993|Virginia|M|Head|||17|115352 +3010|NJ|Hunterdon County|Bloomsbury borough|3150|0|2|Bogan|Lavone|2992|Florida|F|Spouse|||18|115353 +3010|NJ|Hunterdon County|Bloomsbury borough|3150|0|3|Bogan|Henry|3001|NJ|M|Son|||9|115354 +3010|NJ|Hunterdon County|Bloomsbury borough|3150|0|4|Bogan|Fairy|3003|NJ|F|Daughter|||7|115355 +3010|NJ|Hunterdon County|Bloomsbury borough|3150|0|5|Bogan|Glenna|3005|NJ|F|Daughter|||5|115356 +3010|NJ|Hunterdon County|Bloomsbury borough|3150|0|6|Bogan|Kate Corrine|3007|NJ|F|Daughter|||3|115357 + +3010|PA|Berks County|Walnuttown CDP|3151|0|1|Oaxaca|Hunter|2994|Christmas Island|M|Head|||16|115358 +3010|PA|Berks County|Walnuttown CDP|3151|0|2|Oaxaca|Pamula|2990|Michigan|F|Spouse|||20|115359 +3010|PA|Berks County|Walnuttown CDP|3151|0|3|Oaxaca|Zona|3003|PA|F|Daughter|||7|115360 +3010|PA|Berks County|Walnuttown CDP|3151|0|4|Oaxaca|Elma|3007|PA|F|Daughter|||3|115361 + +3010|IL|Fulton County|Fairview village|3152|0|1|Fritts|Sammie|2990|Georgia|M|Head|||20|115362 +3010|IL|Fulton County|Fairview village|3152|0|2|Fritts|Nena|2993|Arkansas|F|Spouse|||17|115363 + +3010|NM|De Baca County|Fort Sumner village|3153|0|1|Petkoff|Ramon|2979|Antigua And Barbuda|M|Head|||31|115364 +3010|NM|De Baca County|Fort Sumner village|3153|0|2|Petkoff|Elouise|2994|Aruba|F|Spouse|||16|115365 +3010|NM|De Baca County|Fort Sumner village|3153|0|3|Petkoff|Kaley|3003|NM|F|Daughter|||7|115366 +3010|NM|De Baca County|Fort Sumner village|3153|0|4|Petkoff|Mayola|3005|NM|F|Daughter|||5|115367 +3010|NM|De Baca County|Fort Sumner village|3153|0|5|Petkoff|Kathaleen|3009|NM|F|Daughter|||1|115368 + +3010|NM|De Baca County|Fort Sumner village|3154|0|1|Petkoff|Josh|2987|Colorado|M|Head|||23|115369 +3010|NM|De Baca County|Fort Sumner village|3154|0|2|Petkoff|Camelia|2985|Wisconsin|F|Spouse|||25|115370 +3010|NM|De Baca County|Fort Sumner village|3154|0|3|Petkoff|Rachell|3005|NM|F|Daughter|||5|115371 +3010|NM|De Baca County|Fort Sumner village|3154|0|4|Petkoff|Boris|3007|NM|M|Son|||3|115372 +3010|NM|De Baca County|Fort Sumner village|3154|0|5|Petkoff|Jodee|3009|NM|F|Daughter|||1|115373 + +3010|NM|De Baca County|Fort Sumner village|3155|0|1|Petkoff|Robbie|2989|Bulgaria|M|Head|||21|115374 +3010|NM|De Baca County|Fort Sumner village|3155|0|2|Petkoff|Daine|2985|North Carolina|F|Spouse|||25|115375 +3010|NM|De Baca County|Fort Sumner village|3155|0|3|Petkoff|Cliff|3001|NM|M|Son|||9|115376 +3010|NM|De Baca County|Fort Sumner village|3155|0|4|Petkoff|Jan|3003|NM|M|Son|||7|115377 + +3010|ND|Grant County|Leith city|3156|0|1|Spratt|Junior Chester|2977|California|M|Head|||33|115378 +3010|ND|Grant County|Leith city|3156|0|2|Spratt|Amanda|2991|Kentucky|F|Spouse|||19|115379 +3010|ND|Grant County|Leith city|3156|0|3|Spratt|Particia|3001|ND|F|Daughter|||9|115380 +3010|ND|Grant County|Leith city|3156|0|4|Spratt|Jewel|3003|ND|M|Son|||7|115381 +3010|ND|Grant County|Leith city|3156|0|5|Spratt|Jonas Lou|3005|ND|M|Son|||5|115382 + +3010|PA|Snyder County|Union township|3157|0|1|Spratt|Robby|2989|Guam|M|Head|||21|115383 +3010|PA|Snyder County|Union township|3157|0|2|Spratt|Ulrike Williemae|2979|Colorado|F|Spouse|||31|115384 +3010|PA|Snyder County|Union township|3157|0|3|Spratt|Genna Katelin|3003|PA|F|Daughter|||7|115385 +3010|PA|Snyder County|Union township|3157|0|4|Spratt|Herman|3007|PA|M|Son|||3|115386 + +3010|MI|Muskegon County|Ravenna village|3158|0|1|Jordan|Earle|2985|Bulgaria|M|Head|||25|115387 +3010|MI|Muskegon County|Ravenna village|3158|0|2|Jordan|Ellamae|2990|Indiana|F|Spouse|||20|115388 +3010|MI|Muskegon County|Ravenna village|3158|0|3|Jordan|Gussie|3001|MI|F|Daughter|||9|115389 +3010|MI|Muskegon County|Ravenna village|3158|0|4|Jordan|Pete|3003|MI|M|Son|||7|115390 +3010|MI|Muskegon County|Ravenna village|3158|0|5|Jordan|Pearlene|3005|MI|F|Daughter|||5|115391 +3010|MI|Muskegon County|Ravenna village|3158|0|6|Jordan|Garry|3009|MI|M|Son|||1|115392 + +3010|TX|Chambers County|Stowell CDP|3159|0|1|Jordan|Lester|2987|Texas|M|Head|||23|115393 +3010|TX|Chambers County|Stowell CDP|3159|0|2|Jordan|Arcelia|2988|New Mexico|F|Spouse|||22|115394 +3010|TX|Chambers County|Stowell CDP|3159|0|3|Jordan|Flora|3001|TX|F|Daughter|||9|115395 +3010|TX|Chambers County|Stowell CDP|3159|0|4|Jordan|Delcie|3007|TX|F|Daughter|||3|115396 + +3010|MI|Muskegon County|Ravenna village|3160|0|1|Jordan|Merle|2989|Indiana|M|Head|||21|115397 +3010|MI|Muskegon County|Ravenna village|3160|0|2|Jordan|Lin|2987|Gabon|F|Spouse|||23|115398 +3010|MI|Muskegon County|Ravenna village|3160|0|3|Jordan|Mauro|3001|MI|M|Son|||9|115399 +3010|MI|Muskegon County|Ravenna village|3160|0|4|Jordan|Fritz|3005|MI|M|Son|||5|115400 + +3010|OH|Lawrence County|South Point village|3161|0|1|Crown|Luke|2967|Tuvalu|M|Head|||43|115401 +3010|OH|Lawrence County|South Point village|3161|0|2|Crown|Zona Dalene|2989|Arkansas|F|Spouse|||21|115402 +3010|OH|Lawrence County|South Point village|3161|0|3|Crown|Allen|3001|OH|M|Son|||9|115403 +3010|OH|Lawrence County|South Point village|3161|0|4|Crown|Stacy Jamel|3003|OH|M|Son|||7|115404 +3010|OH|Lawrence County|South Point village|3161|0|5|Crown|Eric Loyd|3007|OH|M|Son|||3|115405 + +3010|MN|Sibley County|Gaylord city|3162|0|1|Crown|Thaddeus|2969|Alaska|M|Head|||41|115406 +3010|MN|Sibley County|Gaylord city|3162|0|2|Crown|Rosaline|2986|Iowa|F|Spouse|||24|115407 +3010|MN|Sibley County|Gaylord city|3162|0|3|Crown|Felice|3001|MN|F|Daughter|||9|115408 +3010|MN|Sibley County|Gaylord city|3162|0|4|Crown|Tandra|3003|MN|F|Daughter|||7|115409 +3010|MN|Sibley County|Gaylord city|3162|0|5|Crown|Merrilee|3005|MN|F|Daughter|||5|115410 +3010|MN|Sibley County|Gaylord city|3162|0|6|Crown|Edison|3007|MN|M|Son|||3|115411 +3010|MN|Sibley County|Gaylord city|3162|0|7|Crown|Christopher|3009|MN|M|Son|||1|115412 + +3010|IL|Cook County, DuPage County|Chicago city|3163|0|1|Payne|Luke|2990|Oklahoma|M|Head|||20|115413 +3010|IL|Cook County, DuPage County|Chicago city|3163|0|2|Payne|Classie|2986|Vermont|F|Spouse|||24|115414 +3010|IL|Cook County, DuPage County|Chicago city|3163|0|3|Payne|Alec|3005|IL|M|Son|||5|115415 +3010|IL|Cook County, DuPage County|Chicago city|3163|0|4|Payne|Santos|3009|IL|M|Son|||1|115416 + +3010|PA|Greene County|Nemacolin CDP|3164|0|1|Milardo|Rudy|2974|Wisconsin|M|Head|||36|115417 +3010|PA|Greene County|Nemacolin CDP|3164|0|2|Milardo|Margareta|2987|Vermont|F|Spouse|||23|115418 +3010|PA|Greene County|Nemacolin CDP|3164|0|3|Milardo|Robbyn Florine|3001|PA|F|Daughter|||9|115419 +3010|PA|Greene County|Nemacolin CDP|3164|0|4|Milardo|Milo|3007|PA|M|Son|||3|115420 + +3010|FL|Orange County|Lake Buena Vista city|3165|0|1|Rohrig|Ahmed|2993|Micronesia, Federated States Of|M|Head|||17|115421 +3010|FL|Orange County|Lake Buena Vista city|3165|0|2|Rohrig|Ursula|2992|Wyoming|F|Spouse|||18|115422 +3010|FL|Orange County|Lake Buena Vista city|3165|0|3|Rohrig|Camellia|3003|FL|F|Daughter|||7|115423 +3010|FL|Orange County|Lake Buena Vista city|3165|0|4|Rohrig|Orlando|3005|FL|M|Son|||5|115424 +3010|FL|Orange County|Lake Buena Vista city|3165|0|5|Rohrig|Hassan|3009|FL|M|Son|||1|115425 + +3010|GA|Newton County|Oxford city|3166|0|1|Griffin|Lino|2964|Massachusetts|M|Head|||46|115426 +3010|GA|Newton County|Oxford city|3166|0|2|Griffin|Maren|2981|Wisconsin|F|Spouse|||29|115427 +3010|GA|Newton County|Oxford city|3166|0|3|Griffin|Nellie|3003|GA|F|Daughter|||7|115428 + +3010|MO|Scott County|Commerce village|3167|0|1|Nervis|Stacy|2989|Ohio|M|Head|||21|115429 +3010|MO|Scott County|Commerce village|3167|0|2|Nervis|Lan|2988|Philippines|F|Spouse|||22|115430 +3010|MO|Scott County|Commerce village|3167|0|3|Nervis|Joycelyn Fumiko|3001|MO|F|Daughter|||9|115431 +3010|MO|Scott County|Commerce village|3167|0|4|Nervis|Alec|3005|MO|M|Son|||5|115432 + +3010|NE|Clay County|Edgar city|3168|0|1|Wilson|Steven|2980|Vermont|M|Head|||30|115433 +3010|NE|Clay County|Edgar city|3168|0|2|Wilson|Carl|2982|Ireland|F|Spouse|||28|115434 +3010|NE|Clay County|Edgar city|3168|0|3|Wilson|Larry|3001|NE|M|Son|||9|115435 +3010|NE|Clay County|Edgar city|3168|0|4|Wilson|Gregorio|3007|NE|M|Son|||3|115436 + +3010|NE|Clay County|Edgar city|3169|0|1|Wilson|Foster Sherwood|2982|Alabama|M|Head|||28|115437 +3010|NE|Clay County|Edgar city|3169|0|2|Wilson|Alexis|2986|Wisconsin|F|Spouse|||24|115438 +3010|NE|Clay County|Edgar city|3169|0|3|Wilson|Randall|3001|NE|M|Son|||9|115439 +3010|NE|Clay County|Edgar city|3169|0|4|Wilson|Danyel|3005|NE|F|Daughter|||5|115440 +3010|NE|Clay County|Edgar city|3169|0|5|Wilson|Maurice|3009|NE|M|Son|||1|115441 + +3010|MI|Gladwin County|Hay township|3170|0|1|Sherif|Joseph|2983|Michigan|M|Head|||27|115442 +3010|MI|Gladwin County|Hay township|3170|0|2|Sherif|Eulah|2994|New York|F|Spouse|||16|115443 +3010|MI|Gladwin County|Hay township|3170|0|3|Sherif|Norris|3005|MI|M|Son|||5|115444 +3010|MI|Gladwin County|Hay township|3170|0|4|Sherif|Wade|3007|MI|M|Son|||3|115445 +3010|MI|Gladwin County|Hay township|3170|0|5|Sherif|Earleen|3009|MI|F|Daughter|||1|115446 + +3010|PA|Allegheny County|Shaler township|3171|0|1|Hall|Angelo|2989|Pennsylvania|M|Head|||21|115447 +3010|PA|Allegheny County|Shaler township|3171|0|2|Hall|Caron|2983|Delaware|F|Spouse|||27|115448 +3010|PA|Allegheny County|Shaler township|3171|0|3|Hall|Casimira|3001|PA|F|Daughter|||9|115449 +3010|PA|Allegheny County|Shaler township|3171|0|4|Hall|Alane|3003|PA|F|Daughter|||7|115450 +3010|PA|Allegheny County|Shaler township|3171|0|5|Hall|Colby|3007|PA|M|Son|||3|115451 +3010|PA|Allegheny County|Shaler township|3171|0|6|Hall|Adam|3009|PA|M|Son|||1|115452 + +3010|PA|Allegheny County|Shaler township|3172|0|1|Hall|Harley|2991|Hawaii|M|Head|||19|115453 +3010|PA|Allegheny County|Shaler township|3172|0|2|Hall|Lessie|2993|West Virginia|F|Spouse|||17|115454 +3010|PA|Allegheny County|Shaler township|3172|0|3|Hall|Erin|3001|PA|M|Son|||9|115455 +3010|PA|Allegheny County|Shaler township|3172|0|4|Hall|Tom|3003|PA|M|Son|||7|115456 +3010|PA|Allegheny County|Shaler township|3172|0|5|Hall|Irvin|3009|PA|M|Son|||1|115457 + +3010|MN|Fillmore County|Rushford city|3173|0|1|Harrison|Darryl|2989|Hawaii|M|Head|||21|115458 +3010|MN|Fillmore County|Rushford city|3173|0|2|Harrison|Jill|2989|Oklahoma|F|Spouse|||21|115459 +3010|MN|Fillmore County|Rushford city|3173|0|3|Harrison|Silvana|3001|MN|F|Daughter|||9|115460 +3010|MN|Fillmore County|Rushford city|3173|0|4|Harrison|Sterling|3003|MN|M|Son|||7|115461 +3010|MN|Fillmore County|Rushford city|3173|0|5|Harrison|Aja|3007|MN|F|Daughter|||3|115462 +3010|MN|Fillmore County|Rushford city|3173|0|6|Harrison|Benton Louis|3009|MN|M|Son|||1|115463 + +3010|MN|Fillmore County|Rushford city|3174|0|1|Harrison|Devon|2991|Pennsylvania|M|Head|||19|115464 +3010|MN|Fillmore County|Rushford city|3174|0|2|Harrison|Casimira|2959|Oklahoma|F|Spouse|||51|115465 +3010|MN|Fillmore County|Rushford city|3174|0|3|Harrison|Lincoln|3003|MN|M|Son|||7|115466 +3010|MN|Fillmore County|Rushford city|3174|0|4|Harrison|Fawn|3007|MN|F|Daughter|||3|115467 + +3010|MN|Marshall County|Espelie township|3175|0|1|Hisey|Clint|2988|Utah|M|Head|||22|115468 +3010|MN|Marshall County|Espelie township|3175|0|2|Hisey|Carmel|2977|Wisconsin|F|Spouse|||33|115469 +3010|MN|Marshall County|Espelie township|3175|0|3|Hisey|Coleen|3001|MN|F|Daughter|||9|115470 +3010|MN|Marshall County|Espelie township|3175|0|4|Hisey|Leann Cathey|3007|MN|F|Daughter|||3|115471 + +3010|MN|Marshall County|Espelie township|3176|0|1|Hisey|Jimmy|2994|Mauritius|M|Head|||16|115472 +3010|MN|Marshall County|Espelie township|3176|0|2|Hisey|Patria|2978|Maine|F|Spouse|||32|115473 +3010|MN|Marshall County|Espelie township|3176|0|3|Hisey|Shila|3001|MN|F|Daughter|||9|115474 +3010|MN|Marshall County|Espelie township|3176|0|4|Hisey|Shantelle|3003|MN|F|Daughter|||7|115475 + +3010|UT|Weber County|Uintah town|3177|0|1|Marsters|Kerry|2970|Nevada|M|Head|||40|115476 +3010|UT|Weber County|Uintah town|3177|0|2|Marsters|Madelyn|2988|Bulgaria|F|Spouse|||22|115477 +3010|UT|Weber County|Uintah town|3177|0|3|Marsters|Carylon Lucinda|3009|UT|F|Daughter|||1|115478 + +3010|MN|Blue Earth County|Eagle Lake city|3178|0|1|Hardman|Micah|2986|Ohio|M|Head|||24|115479 +3010|MN|Blue Earth County|Eagle Lake city|3178|0|2|Hardman|Danika|2975|Canada|F|Spouse|||35|115480 +3010|MN|Blue Earth County|Eagle Lake city|3178|0|3|Hardman|Yoko|3001|MN|F|Daughter|||9|115481 +3010|MN|Blue Earth County|Eagle Lake city|3178|0|4|Hardman|Celina|3003|MN|F|Daughter|||7|115482 +3010|MN|Blue Earth County|Eagle Lake city|3178|0|5|Hardman|Foster|3005|MN|M|Son|||5|115483 +3010|MN|Blue Earth County|Eagle Lake city|3178|0|6|Hardman|Young|3009|MN|M|Son|||1|115484 + +3010|MN|Blue Earth County|Eagle Lake city|3179|0|1|Hardman|Chi Toney|2990|Guinea-bissau|M|Head|||20|115485 +3010|MN|Blue Earth County|Eagle Lake city|3179|0|2|Hardman|Molly|2973|Nevada|F|Spouse|||37|115486 +3010|MN|Blue Earth County|Eagle Lake city|3179|0|3|Hardman|Timothy|3005|MN|M|Son|||5|115487 +3010|MN|Blue Earth County|Eagle Lake city|3179|0|4|Hardman|Chantay|3007|MN|F|Daughter|||3|115488 +3010|MN|Blue Earth County|Eagle Lake city|3179|0|5|Hardman|Freda|3009|MN|F|Daughter|||1|115489 + +3010|MN|Blue Earth County|Eagle Lake city|3180|0|1|Hardman|Frances|2994|Utah|M|Head|||16|115490 +3010|MN|Blue Earth County|Eagle Lake city|3180|0|2|Hardman|Hiedi Maragaret|2991|Rhode Island|F|Spouse|||19|115491 +3010|MN|Blue Earth County|Eagle Lake city|3180|0|3|Hardman|Vaughn|3001|MN|M|Son|||9|115492 +3010|MN|Blue Earth County|Eagle Lake city|3180|0|4|Hardman|Bret|3005|MN|M|Son|||5|115493 +3010|MN|Blue Earth County|Eagle Lake city|3180|0|5|Hardman|Jesse|3009|MN|F|Daughter|||1|115494 + +3010|VA|Winchester city|Winchester city|3181|0|1|Stewart|Tad Arnoldo|2990|Alabama|M|Head|||20|115495 +3010|VA|Winchester city|Winchester city|3181|0|2|Stewart|Hortense|2984|West Virginia|F|Spouse|||26|115496 +3010|VA|Winchester city|Winchester city|3181|0|3|Stewart|Carmelita|3003|VA|F|Daughter|||7|115497 +3010|VA|Winchester city|Winchester city|3181|0|4|Stewart|Graham|3005|VA|M|Son|||5|115498 +3010|VA|Winchester city|Winchester city|3181|0|5|Stewart|Irving|3009|VA|M|Son|||1|115499 + +3010|TX|Henderson County|Berryville town|3182|0|1|Dubray|Earl|2980|Maryland|M|Head|||30|115500 +3010|TX|Henderson County|Berryville town|3182|0|2|Dubray|Minta|2971|Panama|F|Spouse|||39|115501 +3010|TX|Henderson County|Berryville town|3182|0|3|Dubray|Alonso|3003|TX|M|Son|||7|115502 + +3010|MA|Franklin County|South Deerfield CDP|3183|0|1|Dubray|Rafael|2986|Idaho|M|Head|||24|115503 +3010|MA|Franklin County|South Deerfield CDP|3183|0|2|Dubray|Marina|2987|India|F|Spouse|||23|115504 +3010|MA|Franklin County|South Deerfield CDP|3183|0|3|Dubray|Heath Sherman|3003|MA|M|Son|||7|115505 +3010|MA|Franklin County|South Deerfield CDP|3183|0|4|Dubray|Scottie|3005|MA|F|Daughter|||5|115506 +3010|MA|Franklin County|South Deerfield CDP|3183|0|5|Dubray|Raina|3007|MA|F|Daughter|||3|115507 +3010|MA|Franklin County|South Deerfield CDP|3183|0|6|Dubray|Conrad Del|3009|MA|M|Son|||1|115508 + +3010|VA|Smyth County, Washington County|Saltville town|3184|0|1|Dubray|Elvin|2992|Oregon|M|Head|||18|115509 +3010|VA|Smyth County, Washington County|Saltville town|3184|0|2|Dubray|Walter Cristi|2991|West Virginia|F|Spouse|||19|115510 +3010|VA|Smyth County, Washington County|Saltville town|3184|0|3|Dubray|Clemencia|3003|VA|F|Daughter|||7|115511 +3010|VA|Smyth County, Washington County|Saltville town|3184|0|4|Dubray|Raymundo|3005|VA|M|Son|||5|115512 +3010|VA|Smyth County, Washington County|Saltville town|3184|0|5|Dubray|Tasha|3009|VA|F|Daughter|||1|115513 + +3010|MI|Benzie County|Weldon township|3185|0|1|Ogans|Newton|2986|Florida|M|Head|||24|115514 +3010|MI|Benzie County|Weldon township|3185|0|2|Ogans|Velda|2991|Delaware|F|Spouse|||19|115515 +3010|MI|Benzie County|Weldon township|3185|0|3|Ogans|Vida|3001|MI|F|Daughter|||9|115516 +3010|MI|Benzie County|Weldon township|3185|0|4|Ogans|Nicola|3003|MI|F|Daughter|||7|115517 +3010|MI|Benzie County|Weldon township|3185|0|5|Ogans|Rodolfo|3007|MI|M|Son|||3|115518 +3010|MI|Benzie County|Weldon township|3185|0|6|Ogans|Babette Adela|3009|MI|F|Daughter|||1|115519 + +3010|MI|Benzie County|Weldon township|3186|0|1|Ogans|Dewey|2988|Washington|M|Head|||22|115520 +3010|MI|Benzie County|Weldon township|3186|0|2|Ogans|Gracia|2974|Latvia|F|Spouse|||36|115521 +3010|MI|Benzie County|Weldon township|3186|0|3|Ogans|Isa|3001|MI|F|Daughter|||9|115522 +3010|MI|Benzie County|Weldon township|3186|0|4|Ogans|Rachele|3003|MI|F|Daughter|||7|115523 +3010|MI|Benzie County|Weldon township|3186|0|5|Ogans|Maria|3005|MI|M|Son|||5|115524 + +3010|MI|Benzie County|Weldon township|3187|0|1|Ogans|Vance|2990|Arkansas|M|Head|||20|115525 +3010|MI|Benzie County|Weldon township|3187|0|2|Ogans|Alissa|2977|Arkansas|F|Spouse|||33|115526 +3010|MI|Benzie County|Weldon township|3187|0|3|Ogans|Burt|3001|MI|M|Son|||9|115527 +3010|MI|Benzie County|Weldon township|3187|0|4|Ogans|Breanne|3003|MI|F|Daughter|||7|115528 +3010|MI|Benzie County|Weldon township|3187|0|5|Ogans|Ha|3005|MI|F|Daughter|||5|115529 +3010|MI|Benzie County|Weldon township|3187|0|6|Ogans|Letitia|3009|MI|F|Daughter|||1|115530 + +3010|MN|Lac qui Parle County|Mehurin township|3188|0|1|Dudack|Clarence Jarrett|2990|Nevada|M|Head|||20|115531 +3010|MN|Lac qui Parle County|Mehurin township|3188|0|2|Dudack|Mozella|2991|Florida|F|Spouse|||19|115532 +3010|MN|Lac qui Parle County|Mehurin township|3188|0|3|Dudack|Roderick|3003|MN|M|Son|||7|115533 +3010|MN|Lac qui Parle County|Mehurin township|3188|0|4|Dudack|Cathern|3005|MN|F|Daughter|||5|115534 +3010|MN|Lac qui Parle County|Mehurin township|3188|0|5|Dudack|Chung|3007|MN|M|Son|||3|115535 + +3010|NM|Grant County|Cobre CDP|3189|0|1|Heybrock|Filiberto|2987|Mississippi|M|Head|||23|115536 +3010|NM|Grant County|Cobre CDP|3189|0|2|Heybrock|Evette|2986|Minnesota|F|Spouse|||24|115537 +3010|NM|Grant County|Cobre CDP|3189|0|3|Heybrock|Sylvester|3001|NM|M|Son|||9|115538 +3010|NM|Grant County|Cobre CDP|3189|0|4|Heybrock|Marty|3007|NM|M|Son|||3|115539 +3010|NM|Grant County|Cobre CDP|3189|0|5|Heybrock|Brad|3009|NM|M|Son|||1|115540 + +3010|FL|Orange County|Doctor Phillips CDP|3190|0|1|Daehler|Morris|2977|Alabama|M|Head|||33|115541 +3010|FL|Orange County|Doctor Phillips CDP|3190|0|2|Daehler|Sachiko|2989|New Jersey|F|Spouse|||21|115542 +3010|FL|Orange County|Doctor Phillips CDP|3190|0|3|Daehler|Dong|3003|FL|M|Son|||7|115543 +3010|FL|Orange County|Doctor Phillips CDP|3190|0|4|Daehler|Kanesha|3007|FL|F|Daughter|||3|115544 +3010|FL|Orange County|Doctor Phillips CDP|3190|0|5|Daehler|Carter|3009|FL|M|Son|||1|115545 + +3010|IA|Appanoose County|Mystic city|3191|0|1|Daehler|Kareem|2987|Montana|M|Head|||23|115546 +3010|IA|Appanoose County|Mystic city|3191|0|2|Daehler|Theresa|2994|South Carolina|F|Spouse|||16|115547 +3010|IA|Appanoose County|Mystic city|3191|0|3|Daehler|Mason|3003|IA|M|Son|||7|115548 +3010|IA|Appanoose County|Mystic city|3191|0|4|Daehler|Fermin|3005|IA|M|Son|||5|115549 +3010|IA|Appanoose County|Mystic city|3191|0|5|Daehler|Beverlee|3007|IA|F|Daughter|||3|115550 +3010|IA|Appanoose County|Mystic city|3191|0|6|Daehler|Altha Lashaun|3009|IA|F|Daughter|||1|115551 + +3010|IA|Fremont County|Hamburg city|3192|0|1|Daehler|Barrett|2991|Georgia|M|Head|||19|115552 +3010|IA|Fremont County|Hamburg city|3192|0|2|Daehler|Charity|2994|Missouri|F|Spouse|||16|115553 +3010|IA|Fremont County|Hamburg city|3192|0|3|Daehler|Tommie|3001|IA|M|Son|||9|115554 +3010|IA|Fremont County|Hamburg city|3192|0|4|Daehler|Renay|3007|IA|F|Daughter|||3|115555 +3010|IA|Fremont County|Hamburg city|3192|0|5|Daehler|Glynis|3009|IA|F|Daughter|||1|115556 + +3010|MI|Missaukee County|Lake township|3193|0|1|Daehler|Kurt Sammy|2993|Ohio|M|Head|||17|115557 +3010|MI|Missaukee County|Lake township|3193|0|2|Daehler|Dominga|2985|Kansas|F|Spouse|||25|115558 +3010|MI|Missaukee County|Lake township|3193|0|3|Daehler|Zack|3001|MI|M|Son|||9|115559 +3010|MI|Missaukee County|Lake township|3193|0|4|Daehler|Kareen Adrian|3005|MI|F|Daughter|||5|115560 +3010|MI|Missaukee County|Lake township|3193|0|5|Daehler|Jimmie Tameka|3007|MI|F|Daughter|||3|115561 +3010|MI|Missaukee County|Lake township|3193|0|6|Daehler|Donette|3009|MI|F|Daughter|||1|115562 + +3010|IL|Cook County, DuPage County|Bensenville village|3194|0|1|Doyel|Donny|2983|North Carolina|M|Head|||27|115563 +3010|IL|Cook County, DuPage County|Bensenville village|3194|0|2|Doyel|Bree|2987|Faroe Islands|F|Spouse|||23|115564 +3010|IL|Cook County, DuPage County|Bensenville village|3194|0|3|Doyel|Tamara|3001|IL|F|Daughter|||9|115565 +3010|IL|Cook County, DuPage County|Bensenville village|3194|0|4|Doyel|Laurinda|3003|IL|F|Daughter|||7|115566 +3010|IL|Cook County, DuPage County|Bensenville village|3194|0|5|Doyel|Edra Jasmin|3009|IL|F|Daughter|||1|115567 + +3010|OK|Adair County|West Peavine CDP|3195|0|1|Clouse|Sean|2986|Louisiana|M|Head|||24|115568 +3010|OK|Adair County|West Peavine CDP|3195|0|2|Clouse|Annis Rema|2984|Mississippi|F|Spouse|||26|115569 +3010|OK|Adair County|West Peavine CDP|3195|0|3|Clouse|Rob Bart|3005|OK|M|Son|||5|115570 +3010|OK|Adair County|West Peavine CDP|3195|0|4|Clouse|Mark|3007|OK|M|Son|||3|115571 + +3010|WI|Washburn County|Sarona town|3196|0|1|Peterson|Jay|2986|Wyoming|M|Head|||24|115572 +3010|WI|Washburn County|Sarona town|3196|0|2|Peterson|Gerry|2986|Guyana|F|Spouse|||24|115573 +3010|WI|Washburn County|Sarona town|3196|0|3|Peterson|Evelyne|3001|WI|F|Daughter|||9|115574 + +3010|MN|Benton County|Foley city|3197|0|1|Hamby|Deon|2992|South Carolina|M|Head|||18|115575 +3010|MN|Benton County|Foley city|3197|0|2|Hamby|Mei Dorcas|2986|Wyoming|F|Spouse|||24|115576 +3010|MN|Benton County|Foley city|3197|0|3|Hamby|Edythe|3001|MN|F|Daughter|||9|115577 +3010|MN|Benton County|Foley city|3197|0|4|Hamby|Waylon Abel|3005|MN|M|Son|||5|115578 +3010|MN|Benton County|Foley city|3197|0|5|Hamby|Terica|3007|MN|F|Daughter|||3|115579 + +3010|MT|Carbon County|Boyd CDP|3198|0|1|Alarcon|Rolf|2977|Wisconsin|M|Head|||33|115580 +3010|MT|Carbon County|Boyd CDP|3198|0|2|Alarcon|Stephane|2994|Mississippi|F|Spouse|||16|115581 +3010|MT|Carbon County|Boyd CDP|3198|0|3|Alarcon|Kiara Elouise|3001|MT|F|Daughter|||9|115582 +3010|MT|Carbon County|Boyd CDP|3198|0|4|Alarcon|Patrick|3003|MT|M|Son|||7|115583 +3010|MT|Carbon County|Boyd CDP|3198|0|5|Alarcon|Bernadette|3005|MT|F|Daughter|||5|115584 + +3010|MT|Carbon County|Boyd CDP|3199|0|1|Alarcon|Marco|2979|Mississippi|M|Head|||31|115585 +3010|MT|Carbon County|Boyd CDP|3199|0|2|Alarcon|Particia|2992|Georgia|F|Spouse|||18|115586 +3010|MT|Carbon County|Boyd CDP|3199|0|3|Alarcon|Wava Adella|3001|MT|F|Daughter|||9|115587 +3010|MT|Carbon County|Boyd CDP|3199|0|4|Alarcon|Coreen|3007|MT|F|Daughter|||3|115588 + +3010|IA|Wapello County|Agency city|3200|0|1|Chaves|Lyle|2991|North Dakota|M|Head|||19|115589 +3010|IA|Wapello County|Agency city|3200|0|2|Chaves|Shanda Iona|2985|Albania|F|Spouse|||25|115590 +3010|IA|Wapello County|Agency city|3200|0|3|Chaves|Francoise|3003|IA|F|Daughter|||7|115591 +3010|IA|Wapello County|Agency city|3200|0|4|Chaves|Ernie Trinidad|3007|IA|M|Son|||3|115592 +3010|IA|Wapello County|Agency city|3200|0|5|Chaves|Eugenie|3009|IA|F|Daughter|||1|115593 + +3010|VA|Botetourt County|Blue Ridge CDP|3201|0|1|Aeschliman|Morgan|2991|Colorado|M|Head|||19|115594 +3010|VA|Botetourt County|Blue Ridge CDP|3201|0|2|Aeschliman|Taneka Celesta|2975|Virginia|F|Spouse|||35|115595 +3010|VA|Botetourt County|Blue Ridge CDP|3201|0|3|Aeschliman|Edelmira|3003|VA|F|Daughter|||7|115596 +3010|VA|Botetourt County|Blue Ridge CDP|3201|0|4|Aeschliman|Guillermo|3007|VA|M|Son|||3|115597 +3010|VA|Botetourt County|Blue Ridge CDP|3201|0|5|Aeschliman|Rosamaria Chelsey|3009|VA|F|Daughter|||1|115598 + +3010|VA|Botetourt County|Blue Ridge CDP|3202|0|1|Aeschliman|Emmitt|2993|Mississippi|M|Head|||17|115599 +3010|VA|Botetourt County|Blue Ridge CDP|3202|0|2|Aeschliman|Sammie|2993|Pennsylvania|F|Spouse|||17|115600 +3010|VA|Botetourt County|Blue Ridge CDP|3202|0|3|Aeschliman|Sterling|3009|VA|M|Son|||1|115601 + +3010|MT|Phillips County|Whitewater CDP|3203|0|1|Skillan|Ulysses Elvis|2985|Minnesota|M|Head|||25|115602 +3010|MT|Phillips County|Whitewater CDP|3203|0|2|Skillan|Lulu Gloria|2992|South Carolina|F|Spouse|||18|115603 +3010|MT|Phillips County|Whitewater CDP|3203|0|3|Skillan|Dahlia|3005|MT|F|Daughter|||5|115604 +3010|MT|Phillips County|Whitewater CDP|3203|0|4|Skillan|Delbert|3009|MT|M|Son|||1|115605 + +3010|TX|Denton County|Highland Village city|3204|0|1|Sherley|Garret|2976|Montana|M|Head|||34|115606 +3010|TX|Denton County|Highland Village city|3204|0|2|Sherley|Timothy|2966|Colorado|F|Spouse|||44|115607 +3010|TX|Denton County|Highland Village city|3204|0|3|Sherley|Bobbie|3003|TX|M|Son|||7|115608 +3010|TX|Denton County|Highland Village city|3204|0|4|Sherley|Sanjuanita|3005|TX|F|Daughter|||5|115609 + +3010|TX|Denton County|Highland Village city|3205|0|1|Sherley|Nicky|2980|Alaska|M|Head|||30|115610 +3010|TX|Denton County|Highland Village city|3205|0|2|Sherley|Lester|2970|Colorado|F|Spouse|||40|115611 +3010|TX|Denton County|Highland Village city|3205|0|3|Sherley|Laree Lulu|3001|TX|F|Daughter|||9|115612 +3010|TX|Denton County|Highland Village city|3205|0|4|Sherley|Tory|3003|TX|M|Son|||7|115613 +3010|TX|Denton County|Highland Village city|3205|0|5|Sherley|Brandon|3005|TX|F|Daughter|||5|115614 + +3010|PA|Greene County|Nemacolin CDP|3206|0|1|Baxley|Darrel|2993|Georgia|M|Head|||17|115615 +3010|PA|Greene County|Nemacolin CDP|3206|0|2|Baxley|Rosaura|2984|Georgia|F|Spouse|||26|115616 +3010|PA|Greene County|Nemacolin CDP|3206|0|3|Baxley|Rocco Luigi|3001|PA|M|Son|||9|115617 +3010|PA|Greene County|Nemacolin CDP|3206|0|4|Baxley|Tina|3003|PA|F|Daughter|||7|115618 +3010|PA|Greene County|Nemacolin CDP|3206|0|5|Baxley|Rheba|3005|PA|F|Daughter|||5|115619 +3010|PA|Greene County|Nemacolin CDP|3206|0|6|Baxley|Jaunita|3009|PA|F|Daughter|||1|115620 + +3010|PA|Montgomery County|Lansdale borough|3207|0|1|Wenrich|Jess|2989|California|M|Head|||21|115621 +3010|PA|Montgomery County|Lansdale borough|3207|0|2|Wenrich|Chong|2986|Nebraska|F|Spouse|||24|115622 +3010|PA|Montgomery County|Lansdale borough|3207|0|3|Wenrich|Aubrey|3003|PA|M|Son|||7|115623 +3010|PA|Montgomery County|Lansdale borough|3207|0|4|Wenrich|Paulita|3005|PA|F|Daughter|||5|115624 + +3010|TX|Dallas County, Ellis County|Ovilla city|3208|0|1|Roudybush|Hai|2992|Kiribati|M|Head|||18|115625 +3010|TX|Dallas County, Ellis County|Ovilla city|3208|0|2|Roudybush|Evangelina|2987|Kansas|F|Spouse|||23|115626 +3010|TX|Dallas County, Ellis County|Ovilla city|3208|0|3|Roudybush|Kathlene Nam|3003|TX|F|Daughter|||7|115627 +3010|TX|Dallas County, Ellis County|Ovilla city|3208|0|4|Roudybush|Olin Alden|3005|TX|M|Son|||5|115628 +3010|TX|Dallas County, Ellis County|Ovilla city|3208|0|5|Roudybush|Pierre|3007|TX|M|Son|||3|115629 + +3010|MT|Jefferson County|Cardwell CDP|3209|0|1|Isaac|Hassan|2985|Iraq|M|Head|||25|115630 +3010|MT|Jefferson County|Cardwell CDP|3209|0|2|Isaac|Norma|2991|North Carolina|F|Spouse|||19|115631 +3010|MT|Jefferson County|Cardwell CDP|3209|0|3|Isaac|Inell|3001|MT|F|Daughter|||9|115632 +3010|MT|Jefferson County|Cardwell CDP|3209|0|4|Isaac|Jeanne|3009|MT|F|Daughter|||1|115633 + +3010|OK|Beckham County|Erick city|3210|0|1|Dragos|Rosario|2993|Arizona|M|Head|||17|115634 +3010|OK|Beckham County|Erick city|3210|0|2|Dragos|Nannie Belle|2968|Mississippi|F|Spouse|||42|115635 +3010|OK|Beckham County|Erick city|3210|0|3|Dragos|Ellen|3001|OK|F|Daughter|||9|115636 +3010|OK|Beckham County|Erick city|3210|0|4|Dragos|Evelia|3009|OK|F|Daughter|||1|115637 + +3010|KS|Butler County|Benton city|3211|0|1|Flynn|Olen Clay|2992|Virginia|M|Head|||18|115638 +3010|KS|Butler County|Benton city|3211|0|2|Flynn|Mckenzie|2986|Louisiana|F|Spouse|||24|115639 +3010|KS|Butler County|Benton city|3211|0|3|Flynn|Emmett|3003|KS|M|Son|||7|115640 +3010|KS|Butler County|Benton city|3211|0|4|Flynn|Romeo|3005|KS|M|Son|||5|115641 + +3010|NE|Clay County|Edgar city|3212|0|1|Flynn|Mohammad|2994|Missouri|M|Head|||16|115642 +3010|NE|Clay County|Edgar city|3212|0|2|Flynn|Kirstie Leisha|2968|Virgin Islands, U.s.|F|Spouse|||42|115643 +3010|NE|Clay County|Edgar city|3212|0|3|Flynn|Gabriel|3001|NE|M|Son|||9|115644 +3010|NE|Clay County|Edgar city|3212|0|4|Flynn|Amber|3003|NE|F|Daughter|||7|115645 +3010|NE|Clay County|Edgar city|3212|0|5|Flynn|Donald|3007|NE|M|Son|||3|115646 + +3010|IN|Washington County|Livonia town|3213|0|1|Trebon|Von|2994|Texas|M|Head|||16|115647 +3010|IN|Washington County|Livonia town|3213|0|2|Trebon|Angelita|2988|Texas|F|Spouse|||22|115648 +3010|IN|Washington County|Livonia town|3213|0|3|Trebon|Michael|3001|IN|M|Son|||9|115649 +3010|IN|Washington County|Livonia town|3213|0|4|Trebon|Michel|3007|IN|M|Son|||3|115650 +3010|IN|Washington County|Livonia town|3213|0|5|Trebon|Rolf|3009|IN|M|Son|||1|115651 + +3010|NH|Cheshire County|Swanzey town|3214|0|1|Vallerand|Tony|2988|Sri Lanka|M|Head|||22|115652 +3010|NH|Cheshire County|Swanzey town|3214|0|2|Vallerand|Shavon Lezlie|2990|Florida|F|Spouse|||20|115653 +3010|NH|Cheshire County|Swanzey town|3214|0|3|Vallerand|Alba Diedra|3001|NH|F|Daughter|||9|115654 +3010|NH|Cheshire County|Swanzey town|3214|0|4|Vallerand|Mandy|3007|NH|F|Daughter|||3|115655 + +3010|NH|Cheshire County|Swanzey town|3215|0|1|Vallerand|Randal|2992|Wisconsin|M|Head|||18|115656 +3010|NH|Cheshire County|Swanzey town|3215|0|2|Vallerand|Vivienne Tambra|2985|Saint Kitts And Nevis|F|Spouse|||25|115657 +3010|NH|Cheshire County|Swanzey town|3215|0|3|Vallerand|Jaime|3001|NH|F|Daughter|||9|115658 +3010|NH|Cheshire County|Swanzey town|3215|0|4|Vallerand|Ricky|3003|NH|M|Son|||7|115659 +3010|NH|Cheshire County|Swanzey town|3215|0|5|Vallerand|Gino|3007|NH|M|Son|||3|115660 +3010|NH|Cheshire County|Swanzey town|3215|0|6|Vallerand|Rikki|3009|NH|F|Daughter|||1|115661 + +3010|WI|Columbia County|Pacific town|3216|0|1|Pritchard|Kendall|2993|Louisiana|M|Head|||17|115662 +3010|WI|Columbia County|Pacific town|3216|0|2|Pritchard|Shin|2987|New Mexico|F|Spouse|||23|115663 +3010|WI|Columbia County|Pacific town|3216|0|3|Pritchard|Rene|3001|WI|M|Son|||9|115664 +3010|WI|Columbia County|Pacific town|3216|0|4|Pritchard|Bo|3007|WI|M|Son|||3|115665 +3010|WI|Columbia County|Pacific town|3216|0|5|Pritchard|Marcos|3009|WI|M|Son|||1|115666 + +3010|AR|Garland County|Piney CDP|3217|0|1|Bryant|Gaston|2983|Alabama|M|Head|||27|115667 +3010|AR|Garland County|Piney CDP|3217|0|2|Bryant|Tanika|2991|Ohio|F|Spouse|||19|115668 +3010|AR|Garland County|Piney CDP|3217|0|3|Bryant|Rupert|3003|AR|M|Son|||7|115669 +3010|AR|Garland County|Piney CDP|3217|0|4|Bryant|Golda Evia|3005|AR|F|Daughter|||5|115670 +3010|AR|Garland County|Piney CDP|3217|0|5|Bryant|Enid|3009|AR|F|Daughter|||1|115671 + +3010|IL|Morgan County|South Jacksonville village|3218|0|1|Kennedy|Ervin|2979|Idaho|M|Head|||31|115672 +3010|IL|Morgan County|South Jacksonville village|3218|0|2|Kennedy|Lela|2986|Arizona|F|Spouse|||24|115673 +3010|IL|Morgan County|South Jacksonville village|3218|0|3|Kennedy|Wilfredo|3001|IL|M|Son|||9|115674 +3010|IL|Morgan County|South Jacksonville village|3218|0|4|Kennedy|Hermila|3003|IL|F|Daughter|||7|115675 +3010|IL|Morgan County|South Jacksonville village|3218|0|5|Kennedy|Tabetha|3005|IL|F|Daughter|||5|115676 + +3010|NJ|Bergen County|Carlstadt borough|3219|0|1|Kent|Alberto|2984|Alaska|M|Head|||26|115677 +3010|NJ|Bergen County|Carlstadt borough|3219|0|2|Kent|Elin|2988|Netherlands Antilles|F|Spouse|||22|115678 +3010|NJ|Bergen County|Carlstadt borough|3219|0|3|Kent|Ardath|3001|NJ|F|Daughter|||9|115679 +3010|NJ|Bergen County|Carlstadt borough|3219|0|4|Kent|Erin|3007|NJ|F|Daughter|||3|115680 + +3010|IL|Morgan County|South Jacksonville village|3220|0|1|Kent|Olin|2986|Massachusetts|M|Head|||24|115681 +3010|IL|Morgan County|South Jacksonville village|3220|0|2|Kent|Jeannine|2992|Lebanon|F|Spouse|||18|115682 +3010|IL|Morgan County|South Jacksonville village|3220|0|3|Kent|Annamae|3001|IL|F|Daughter|||9|115683 +3010|IL|Morgan County|South Jacksonville village|3220|0|4|Kent|Winfred|3007|IL|M|Son|||3|115684 + +3010|NJ|Bergen County|Carlstadt borough|3221|0|1|Kent|Horace|2994|Virginia|M|Head|||16|115685 +3010|NJ|Bergen County|Carlstadt borough|3221|0|2|Kent|Johana|2994|Utah|F|Spouse|||16|115686 +3010|NJ|Bergen County|Carlstadt borough|3221|0|3|Kent|Myrtice|3003|NJ|F|Daughter|||7|115687 +3010|NJ|Bergen County|Carlstadt borough|3221|0|4|Kent|Nestor|3005|NJ|M|Son|||5|115688 +3010|NJ|Bergen County|Carlstadt borough|3221|0|5|Kent|Jenette|3009|NJ|F|Daughter|||1|115689 + +3010|PA|Clarion County|Callensburg borough|3222|0|1|Pollak|Nick|2993|Kentucky|M|Head|||17|115690 +3010|PA|Clarion County|Callensburg borough|3222|0|2|Pollak|Aimee|2982|New Jersey|F|Spouse|||28|115691 +3010|PA|Clarion County|Callensburg borough|3222|0|3|Pollak|Rusty|3001|PA|M|Son|||9|115692 +3010|PA|Clarion County|Callensburg borough|3222|0|4|Pollak|Gwenn|3003|PA|F|Daughter|||7|115693 +3010|PA|Clarion County|Callensburg borough|3222|0|5|Pollak|Aliza|3005|PA|F|Daughter|||5|115694 +3010|PA|Clarion County|Callensburg borough|3222|0|6|Pollak|Michele Jaymie|3009|PA|F|Daughter|||1|115695 + +3010|AR|Johnson County|Clarksville city|3223|0|1|Guity|Haywood|2976|Nevada|M|Head|||34|115696 +3010|AR|Johnson County|Clarksville city|3223|0|2|Guity|Modesta|2990|California|F|Spouse|||20|115697 +3010|AR|Johnson County|Clarksville city|3223|0|3|Guity|Porfirio|3003|AR|M|Son|||7|115698 +3010|AR|Johnson County|Clarksville city|3223|0|4|Guity|Joella|3007|AR|F|Daughter|||3|115699 + +3010|AR|Johnson County|Clarksville city|3224|0|1|Guity|Dwayne|2994|Minnesota|M|Head|||16|115700 +3010|AR|Johnson County|Clarksville city|3224|0|2|Guity|Cicely|2994|Missouri|F|Spouse|||16|115701 +3010|AR|Johnson County|Clarksville city|3224|0|3|Guity|Kenna|3001|AR|F|Daughter|||9|115702 +3010|AR|Johnson County|Clarksville city|3224|0|4|Guity|Isaiah|3005|AR|M|Son|||5|115703 +3010|AR|Johnson County|Clarksville city|3224|0|5|Guity|Cassaundra|3007|AR|F|Daughter|||3|115704 +3010|AR|Johnson County|Clarksville city|3224|0|6|Guity|Micah Bernard|3009|AR|M|Son|||1|115705 + +3010|TX|Cameron County|San Pedro CDP|3225|0|1|Bacolor|Salvador|2972|Idaho|M|Head|||38|115706 +3010|TX|Cameron County|San Pedro CDP|3225|0|2|Bacolor|Branda|2988|New Jersey|F|Spouse|||22|115707 +3010|TX|Cameron County|San Pedro CDP|3225|0|3|Bacolor|Felix|3001|TX|M|Son|||9|115708 +3010|TX|Cameron County|San Pedro CDP|3225|0|4|Bacolor|Kera|3003|TX|F|Daughter|||7|115709 +3010|TX|Cameron County|San Pedro CDP|3225|0|5|Bacolor|Nelle|3005|TX|F|Daughter|||5|115710 +3010|TX|Cameron County|San Pedro CDP|3225|0|6|Bacolor|Kimber|3007|TX|F|Daughter|||3|115711 +3010|TX|Cameron County|San Pedro CDP|3225|0|7|Bacolor|Fred|3009|TX|M|Son|||1|115712 + +3010|TX|Cameron County|San Pedro CDP|3226|0|1|Bacolor|Dorian|2980|Colorado|M|Head|||30|115713 +3010|TX|Cameron County|San Pedro CDP|3226|0|2|Bacolor|Alessandra|2972|Louisiana|F|Spouse|||38|115714 +3010|TX|Cameron County|San Pedro CDP|3226|0|3|Bacolor|Mitch|3003|TX|M|Son|||7|115715 +3010|TX|Cameron County|San Pedro CDP|3226|0|4|Bacolor|Awilda|3005|TX|F|Daughter|||5|115716 +3010|TX|Cameron County|San Pedro CDP|3226|0|5|Bacolor|Emory|3007|TX|M|Son|||3|115717 +3010|TX|Cameron County|San Pedro CDP|3226|0|6|Bacolor|Rosena|3009|TX|F|Daughter|||1|115718 + +3010|TX|Cameron County|San Pedro CDP|3227|0|1|Bacolor|Homer Clinton|2982|Georgia|M|Head|||28|115719 +3010|TX|Cameron County|San Pedro CDP|3227|0|2|Bacolor|Norine Cleora|2976|Nepal|F|Spouse|||34|115720 +3010|TX|Cameron County|San Pedro CDP|3227|0|3|Bacolor|Anamaria Leana|3001|TX|F|Daughter|||9|115721 +3010|TX|Cameron County|San Pedro CDP|3227|0|4|Bacolor|Lang|3003|TX|F|Daughter|||7|115722 +3010|TX|Cameron County|San Pedro CDP|3227|0|5|Bacolor|Gordon|3007|TX|M|Son|||3|115723 + +3010|MI|Chippewa County|Kinross charter township|3228|0|1|Brady|Bradley|2992|Cameroon|M|Head|||18|115724 +3010|MI|Chippewa County|Kinross charter township|3228|0|2|Brady|Ossie|2992|Maryland|F|Spouse|||18|115725 +3010|MI|Chippewa County|Kinross charter township|3228|0|3|Brady|Stacey|3001|MI|M|Son|||9|115726 +3010|MI|Chippewa County|Kinross charter township|3228|0|4|Brady|Audie|3003|MI|F|Daughter|||7|115727 +3010|MI|Chippewa County|Kinross charter township|3228|0|5|Brady|Harley|3007|MI|M|Son|||3|115728 + +3010|PA|Schuylkill County|South Manheim township|3229|0|1|Brady|Edward|2994|Iowa|M|Head|||16|115729 +3010|PA|Schuylkill County|South Manheim township|3229|0|2|Brady|Vita Ines|2982|Illinois|F|Spouse|||28|115730 +3010|PA|Schuylkill County|South Manheim township|3229|0|3|Brady|Roslyn|3007|PA|F|Daughter|||3|115731 +3010|PA|Schuylkill County|South Manheim township|3229|0|4|Brady|Linda|3009|PA|F|Daughter|||1|115732 + +3010|TX|Ellis County|Midlothian city|3230|0|1|Corners|Jean|2988|Montana|M|Head|||22|115733 +3010|TX|Ellis County|Midlothian city|3230|0|2|Corners|Macie|2987|Maryland|F|Spouse|||23|115734 +3010|TX|Ellis County|Midlothian city|3230|0|3|Corners|Inocencia|3003|TX|F|Daughter|||7|115735 +3010|TX|Ellis County|Midlothian city|3230|0|4|Corners|Lacy|3009|TX|M|Son|||1|115736 + +3010|ME|Hancock County|Brooksville town|3231|0|1|Hood|Brooks|2991|Arkansas|M|Head|||19|115737 +3010|ME|Hancock County|Brooksville town|3231|0|2|Hood|Audie|2991|Arizona|F|Spouse|||19|115738 +3010|ME|Hancock County|Brooksville town|3231|0|3|Hood|Arturo Rhett|3001|ME|M|Son|||9|115739 +3010|ME|Hancock County|Brooksville town|3231|0|4|Hood|Talia|3003|ME|F|Daughter|||7|115740 +3010|ME|Hancock County|Brooksville town|3231|0|5|Hood|Otto|3007|ME|M|Son|||3|115741 + +3010|WI|Sawyer County|Winter village|3232|0|1|Infante|Lloyd|2992|Nevada|M|Head|||18|115742 +3010|WI|Sawyer County|Winter village|3232|0|2|Infante|Sharika|2966|Ohio|F|Spouse|||44|115743 +3010|WI|Sawyer County|Winter village|3232|0|3|Infante|Steve|3001|WI|M|Son|||9|115744 +3010|WI|Sawyer County|Winter village|3232|0|4|Infante|Andy Jefferson|3003|WI|M|Son|||7|115745 +3010|WI|Sawyer County|Winter village|3232|0|5|Infante|Vivienne Victorina|3009|WI|F|Daughter|||1|115746 + +3010|ND|Stutsman County|Jamestown city|3233|0|1|Weber|Ross|2991|Wisconsin|M|Head|||19|115747 +3010|ND|Stutsman County|Jamestown city|3233|0|2|Weber|Else|2982|Iowa|F|Spouse|||28|115748 +3010|ND|Stutsman County|Jamestown city|3233|0|3|Weber|Bob Phil|3001|ND|M|Son|||9|115749 +3010|ND|Stutsman County|Jamestown city|3233|0|4|Weber|Edmond|3007|ND|M|Son|||3|115750 + +3010|CT|Windham County|Hampton town|3234|0|1|Martin|Dave|2975|Florida|M|Head|||35|115751 +3010|CT|Windham County|Hampton town|3234|0|2|Martin|Mozelle|2979|New Hampshire|F|Spouse|||31|115752 +3010|CT|Windham County|Hampton town|3234|0|3|Martin|Louisa Vicenta|3003|CT|F|Daughter|||7|115753 +3010|CT|Windham County|Hampton town|3234|0|4|Martin|Stephaine|3007|CT|F|Daughter|||3|115754 + +3010|CT|Windham County|Hampton town|3235|0|1|Martin|Jerold|2991|Puerto Rico|M|Head|||19|115755 +3010|CT|Windham County|Hampton town|3235|0|2|Martin|Willena|2983|Mississippi|F|Spouse|||27|115756 +3010|CT|Windham County|Hampton town|3235|0|3|Martin|Nohemi|3003|CT|F|Daughter|||7|115757 +3010|CT|Windham County|Hampton town|3235|0|4|Martin|Tamala|3005|CT|F|Daughter|||5|115758 +3010|CT|Windham County|Hampton town|3235|0|5|Martin|Lora|3007|CT|F|Daughter|||3|115759 + +3010|IL|Cook County, DuPage County|Bensenville village|3236|0|1|Goyette|Donny|2987|Netherlands|M|Head|||23|115760 +3010|IL|Cook County, DuPage County|Bensenville village|3236|0|2|Goyette|Emily|2973|California|F|Spouse|||37|115761 +3010|IL|Cook County, DuPage County|Bensenville village|3236|0|3|Goyette|Eddy|3003|IL|M|Son|||7|115762 +3010|IL|Cook County, DuPage County|Bensenville village|3236|0|4|Goyette|Lester|3005|IL|M|Son|||5|115763 +3010|IL|Cook County, DuPage County|Bensenville village|3236|0|5|Goyette|Angelena|3007|IL|F|Daughter|||3|115764 +3010|IL|Cook County, DuPage County|Bensenville village|3236|0|6|Goyette|Syreeta|3009|IL|F|Daughter|||1|115765 + +3010|IN|Grant County|Sweetser town|3237|0|1|Abramowitz|Riley|2983|Mississippi|M|Head|||27|115766 +3010|IN|Grant County|Sweetser town|3237|0|2|Abramowitz|Royce|2980|New Mexico|F|Spouse|||30|115767 +3010|IN|Grant County|Sweetser town|3237|0|3|Abramowitz|Barrett|3007|IN|M|Son|||3|115768 +3010|IN|Grant County|Sweetser town|3237|0|4|Abramowitz|Faviola|3009|IN|F|Daughter|||1|115769 + +3010|IN|Grant County|Sweetser town|3238|0|1|Abramowitz|Sydney|2985|Austria|M|Head|||25|115770 +3010|IN|Grant County|Sweetser town|3238|0|2|Abramowitz|Mark|2988|Samoa|F|Spouse|||22|115771 +3010|IN|Grant County|Sweetser town|3238|0|3|Abramowitz|Eugena Vanessa|3001|IN|F|Daughter|||9|115772 +3010|IN|Grant County|Sweetser town|3238|0|4|Abramowitz|Catherina|3003|IN|F|Daughter|||7|115773 +3010|IN|Grant County|Sweetser town|3238|0|5|Abramowitz|Samella|3005|IN|F|Daughter|||5|115774 +3010|IN|Grant County|Sweetser town|3238|0|6|Abramowitz|Caren|3009|IN|F|Daughter|||1|115775 + +3010|AL|Jefferson County|Forestdale CDP|3239|0|1|Mayberry|Leandro Adolfo|2985|Colorado|M|Head|||25|115776 +3010|AL|Jefferson County|Forestdale CDP|3239|0|2|Mayberry|Lakeisha|2985|Oregon|F|Spouse|||25|115777 +3010|AL|Jefferson County|Forestdale CDP|3239|0|3|Mayberry|Trent|3001|AL|M|Son|||9|115778 +3010|AL|Jefferson County|Forestdale CDP|3239|0|4|Mayberry|Flavia|3007|AL|F|Daughter|||3|115779 + +3010|MN|Pennington County|Hickory township|3240|0|1|Nelson|Hugo|2991|North Dakota|M|Head|||19|115780 +3010|MN|Pennington County|Hickory township|3240|0|2|Nelson|Miguelina|2988|Lesotho|F|Spouse|||22|115781 +3010|MN|Pennington County|Hickory township|3240|0|3|Nelson|Merlin|3001|MN|M|Son|||9|115782 +3010|MN|Pennington County|Hickory township|3240|0|4|Nelson|Velma|3003|MN|F|Daughter|||7|115783 +3010|MN|Pennington County|Hickory township|3240|0|5|Nelson|Alene|3009|MN|F|Daughter|||1|115784 + +3010|PA|Lycoming County|Jordan township|3241|0|1|Gillespie|Kendall|2985|New York|M|Head|||25|115785 +3010|PA|Lycoming County|Jordan township|3241|0|2|Gillespie|Estelle|2988|Thailand|F|Spouse|||22|115786 +3010|PA|Lycoming County|Jordan township|3241|0|3|Gillespie|Meghann|3001|PA|F|Daughter|||9|115787 +3010|PA|Lycoming County|Jordan township|3241|0|4|Gillespie|Edmond|3003|PA|M|Son|||7|115788 +3010|PA|Lycoming County|Jordan township|3241|0|5|Gillespie|Domingo|3005|PA|M|Son|||5|115789 +3010|PA|Lycoming County|Jordan township|3241|0|6|Gillespie|Hortencia|3009|PA|F|Daughter|||1|115790 + +3010|MI|Roscommon County|Gerrish township|3242|0|1|Blauser|Perry Ernie|2988|Georgia|M|Head|||22|115791 +3010|MI|Roscommon County|Gerrish township|3242|0|2|Blauser|Tomeka|2985|Missouri|F|Spouse|||25|115792 +3010|MI|Roscommon County|Gerrish township|3242|0|3|Blauser|Rogelio|3005|MI|M|Son|||5|115793 +3010|MI|Roscommon County|Gerrish township|3242|0|4|Blauser|Bambi|3007|MI|F|Daughter|||3|115794 +3010|MI|Roscommon County|Gerrish township|3242|0|5|Blauser|Harrison|3009|MI|M|Son|||1|115795 + +3010|MI|Roscommon County|Gerrish township|3243|0|1|Blauser|Antony|2994|Honduras|M|Head|||16|115796 +3010|MI|Roscommon County|Gerrish township|3243|0|2|Blauser|Minerva|2985|Nevada|F|Spouse|||25|115797 +3010|MI|Roscommon County|Gerrish township|3243|0|3|Blauser|Joshua|3005|MI|M|Son|||5|115798 +3010|MI|Roscommon County|Gerrish township|3243|0|4|Blauser|Maia|3007|MI|F|Daughter|||3|115799 +3010|MI|Roscommon County|Gerrish township|3243|0|5|Blauser|Linn|3009|MI|F|Daughter|||1|115800 + +3010|MN|Nobles County|Ransom township|3244|0|1|Victoria|Jonathan|2990|Taiwan, Province Of China|M|Head|||20|115801 +3010|MN|Nobles County|Ransom township|3244|0|2|Victoria|Annie|2990|Georgia|F|Spouse|||20|115802 +3010|MN|Nobles County|Ransom township|3244|0|3|Victoria|Lurlene|3001|MN|F|Daughter|||9|115803 +3010|MN|Nobles County|Ransom township|3244|0|4|Victoria|Ricky|3005|MN|M|Son|||5|115804 + +3010|IN|LaPorte County|Wanatah town|3245|0|1|Parks|Alonso|2968|Kansas|M|Head|||42|115805 +3010|IN|LaPorte County|Wanatah town|3245|0|2|Parks|Erinn|2987|Kansas|F|Spouse|||23|115806 +3010|IN|LaPorte County|Wanatah town|3245|0|3|Parks|Anjanette|3005|IN|F|Daughter|||5|115807 +3010|IN|LaPorte County|Wanatah town|3245|0|4|Parks|Kristen|3007|IN|F|Daughter|||3|115808 + +3010|IN|LaPorte County|Wanatah town|3246|0|1|Parks|Christoper|2970|Louisiana|M|Head|||40|115809 +3010|IN|LaPorte County|Wanatah town|3246|0|2|Parks|Lasandra Teressa|2994|Maryland|F|Spouse|||16|115810 +3010|IN|LaPorte County|Wanatah town|3246|0|3|Parks|Manda Sherrill|3005|IN|F|Daughter|||5|115811 +3010|IN|LaPorte County|Wanatah town|3246|0|4|Parks|Jose|3009|IN|M|Son|||1|115812 + diff -Nru cctools-7.0.22/doc/manuals/prune/examples/hep/cms.umbrella cctools-7.1.2/doc/manuals/prune/examples/hep/cms.umbrella --- cctools-7.0.22/doc/manuals/prune/examples/hep/cms.umbrella 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/hep/cms.umbrella 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,48 @@ +{ + "comment": "a CMS application whose software dependencies are all from CVMFS, and whose data dependencies are not from CVMFS.", + "hardware": { + "cores": "2", + "disk": "3GB", + "arch": "x86_64", + "memory": "2GB" + }, + "kernel": { + "version": ">=2.6.32", + "name": "linux" + }, + "os": { + "name": "Redhat", + "format": "tgz", + "checksum": "669ab5ef94af84d273f8f92a86b7907a", + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/669ab5ef94af84d273f8f92a86b7907a/redhat-6.5-x86_64.tar.gz" + ], + "version": "6.5", + "uncompressed_size": "1743656960", + "id": "669ab5ef94af84d273f8f92a86b7907a", + "size": "633848940" + }, + "software": { + "cmssw-5.2.5-slc5-amd64": { + "mountpoint": "/cvmfs/cms.cern.ch", + "mount_env": "CMS_DIR", + "id": "cvmfs://cvmfs/cms.cern.ch", + "source": [ + "cvmfs://cvmfs/cms.cern.ch" + ] + } + }, + "data": { + }, + "environ": { + "PWD": "/tmp", + "CMS_VERSION": "CMSSW_5_2_5", + "SCRAM_ARCH": "slc5_amd64_gcc462" + }, + "output": { + "files": [], + "dirs": [ + "/tmp/final_data" + ] + } +} diff -Nru cctools-7.0.22/doc/manuals/prune/examples/hep/digitize.sh cctools-7.1.2/doc/manuals/prune/examples/hep/digitize.sh --- cctools-7.0.22/doc/manuals/prune/examples/hep/digitize.sh 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/hep/digitize.sh 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,22 @@ +#!/bin/bash + +NumEvents=$1 +#Input SinglePi0E10_cfi_GEN_SIM.root + +#ulimit -n 4096 +export CMS_VERSION=CMSSW_5_3_11 +export SCRAM_ARCH=slc5_amd64_gcc462 + +rm -rf final_data +mkdir final_data +cd final_data +mv ../SinglePi0E10_cfi_GEN_SIM.root ./ + +. /cvmfs/cms.cern.ch/cmsset_default.sh +scramv1 project CMSSW ${CMS_VERSION} +cd ${CMS_VERSION} +eval `scram runtime -sh` +cd .. + +cmsDriver.py SinglePi0E10_cfi_GEN --datatier GEN-SIM-DIGI-RAW-HLTDEBUG --conditions auto:startup -s DIGI,L1,DIGI2RAW,HLT:@relval,RAW2DIGI,L1Reco --eventcontent FEVTDEBUGHLT -n $NumEvents +#Output SinglePi0E10_cfi_GEN_DIGI_L1_DIGI2RAW_HLT_RAW2DIGI_L1Reco.root diff -Nru cctools-7.0.22/doc/manuals/prune/examples/hep/hep.py cctools-7.1.2/doc/manuals/prune/examples/hep/hep.py --- cctools-7.0.22/doc/manuals/prune/examples/hep/hep.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/hep/hep.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +# Copyright (c) 2010- The University of Notre Dame. +# This software is distributed under the GNU General Public License. +# See the file COPYING for details. + +from prune import client +import os + +prune = client.Connect(base_dir = os.environ["HOME"] + '/.prune') #Prune data is stored in base_dir + +###### Create common HEP environment ###### +E1 = prune.envi_add(engine='umbrella', + spec='cms.umbrella', + sandbox_mode='parrot', + log='umbrella.log', + cms_siteconf='SITECONF.tar.gz', + cvmfs_http_proxy='http://eddie.crc.nd.edu:3128', + http_proxy='http://eddie.crc.nd.edu:3128' ) + +event_count = 10 + +###### Simulation stage ###### +D1 = prune.file_add('simulate.sh') +D2, = prune.task_add(returns=['SinglePi0E10_cfi_GEN_SIM.root'], + env=E1, + cmd='chmod 755 simulate.sh; ./simulate.sh %i ' % (event_count), + args=[D1], + params=['simulate.sh']) + +###### Digitization stage ###### +D3 = prune.file_add( 'digitize.sh' ) +D4, = prune.task_add(returns=['SinglePi0E10_cfi_GEN_DIGI_L1_DIGI2RAW_HLT_RAW2DIGI_L1Reco.root'], + env=E1, + cmd='chmod 755 digitize.sh; ./digitize.sh %i' % (event_count), + args=[D3,D2], + params=['digitize.sh','SinglePi0E10_cfi_GEN_SIM.root']) + +###### Reconstruction stage ###### +D5 = prune.file_add('reconstruct.sh') +D6, D7, D8 = prune.task_add(returns=['SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM.py', + 'SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM.root', + 'SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM_inDQM.root'], + env=E1, + cmd='chmod 755 reconstruct.sh; ./reconstruct.sh %i' % (event_count), + args=[D5,D4], + params=['reconstruct.sh','SinglePi0E10_cfi_GEN_DIGI2RAW.root']) + +###### Execute the workflow ###### +prune.execute( worker_type='local', cores=8 ) + +###### Export final data ###### +prune.export( D7, 'hep.result.root' ) + + +###### Export publishable workflow ###### +prune.export( D7, 'hep.prune', lineage=3 ) diff -Nru cctools-7.0.22/doc/manuals/prune/examples/hep/hep.wq.py cctools-7.1.2/doc/manuals/prune/examples/hep/hep.wq.py --- cctools-7.0.22/doc/manuals/prune/examples/hep/hep.wq.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/hep/hep.wq.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,53 @@ +#!/usr/bin/env python + +# Copyright (c) 2010- The University of Notre Dame. +# This software is distributed under the GNU General Public License. +# See the file COPYING for details. + +from prune import client +from os.path import expanduser + + +HOME = expanduser("~") +prune = client.Connect(base_dir = HOME+'/.prune') #Prune data is stored in base_dir + +###### Create common HEP environment ###### +E1 = prune.envi_add( engine='umbrella', spec='cms.umbrella', + sandbox_mode='parrot', log='umbrella.log', + cms_siteconf='SITECONF.tar.gz', + cvmfs_http_proxy='http://eddie.crc.nd.edu:3128', + http_proxy='http://eddie.crc.nd.edu:3128' ) + +event_count = 10 + +###### Simulation stage ###### +D1 = prune.file_add( 'simulate.sh' ) +D2, = prune.task_add( returns=['SinglePi0E10_cfi_GEN_SIM.root'], + env=E1, cmd='chmod 755 simulate.sh; ./simulate.sh %i' % (event_count), + args=[D1], params=['simulate.sh'] ) + + +###### Digitization stage ###### +D3 = prune.file_add( 'digitize.sh' ) +D4, = prune.task_add( returns=['SinglePi0E10_cfi_GEN_DIGI_L1_DIGI2RAW_HLT_RAW2DIGI_L1Reco.root'], + env=E1, cmd='chmod 755 digitize.sh; ./digitize.sh %i' % (event_count), + args=[D3,D2], params=['digitize.sh','SinglePi0E10_cfi_GEN_SIM.root'] ) + +###### Reconstruction stage ###### +D5 = prune.file_add( 'reconstruct.sh' ) +D6, D7, D8 = prune.task_add( returns=[ + 'SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM.py', + 'SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM.root', + 'SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM_inDQM.root'], + env=E1, cmd='chmod 755 reconstruct.sh; reconstruct.sh %i' % (event_count), + args=[D5,D4], params=['reconstruct.sh','SinglePi0E10_cfi_GEN_DIGI2RAW.root'] ) + +###### Execute the workflow ###### +prune.execute( worker_type='work_queue', name='prune_hep_example' ) + +###### Export final data ###### +prune.export( D7, 'hep.result.root' ) + + +###### Export publishable workflow ###### +prune.export( D7, 'hep.prune', lineage=3 ) diff -Nru cctools-7.0.22/doc/manuals/prune/examples/hep/reconstruct.sh cctools-7.1.2/doc/manuals/prune/examples/hep/reconstruct.sh --- cctools-7.0.22/doc/manuals/prune/examples/hep/reconstruct.sh 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/hep/reconstruct.sh 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,24 @@ +#!/bin/bash + +NumEvents=$1 +#Input SinglePi0E10_cfi_GEN_DIGI2RAW.root + +#ulimit -n 4096 +export CMS_VERSION=CMSSW_5_3_11 +export SCRAM_ARCH=slc5_amd64_gcc462 + +rm -rf final_data +mkdir final_data +cd final_data +mv ../SinglePi0E10_cfi_GEN_DIGI2RAW.root ./ + +. /cvmfs/cms.cern.ch/cmsset_default.sh +scramv1 project CMSSW ${CMS_VERSION} +cd ${CMS_VERSION} +eval `scram runtime -sh` +cd .. + +cmsDriver.py SinglePi0E10_cfi_GEN --datatier GEN-SIM-RECO,DQM --conditions auto:startup -s RAW2DIGI,L1Reco,RECO,VALIDATION,DQM --eventcontent RECOSIM,DQM -n $NumEvents +#Output SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM.py +#Output SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM.root +#Output SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM_inDQM.root diff -Nru cctools-7.0.22/doc/manuals/prune/examples/hep/simulate.sh cctools-7.1.2/doc/manuals/prune/examples/hep/simulate.sh --- cctools-7.0.22/doc/manuals/prune/examples/hep/simulate.sh 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/hep/simulate.sh 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,20 @@ +#!/bin/bash + +NumEvents=$1 + +#ulimit -n 4096 +export CMS_VERSION=CMSSW_5_2_5 +export SCRAM_ARCH=slc5_amd64_gcc462 + +rm -rf final_data +mkdir final_data +cd final_data + +. /cvmfs/cms.cern.ch/cmsset_default.sh +scramv1 project CMSSW ${CMS_VERSION} +cd ${CMS_VERSION} +eval `scram runtime -sh` +cd .. + +cmsDriver.py SinglePi0E10_cfi --conditions auto:startup -s GEN,SIM --datatier GEN-SIM -n $NumEvents --relval 25000,100 --eventcontent RAWSIM +# Output SinglePi0E10_cfi_GEN_SIM.root diff -Nru cctools-7.0.22/doc/manuals/prune/examples/merge_sort/merge_sort.py cctools-7.1.2/doc/manuals/prune/examples/merge_sort/merge_sort.py --- cctools-7.0.22/doc/manuals/prune/examples/merge_sort/merge_sort.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/merge_sort/merge_sort.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +# Copyright (c) 2010- The University of Notre Dame. +# This software is distributed under the GNU General Public License. +# See the file COPYING for details. + +from prune import client +import os + +#Prune data is stored in base_dir +prune = client.Connect(base_dir = os.environ["HOME"] + '/.prune') + +###### Import sources stage ###### +# D1 and D2 are handlers for our input files +D1 = prune.file_add( 'nouns.txt' ) +D2 = prune.file_add( 'verbs.txt' ) + +# E1 is a handler for an environment specification. We will deal with +# environments in a further example, and for now we simply use prune's nil +E1 = prune.nil + +###### Sort stage ###### +# We define the first task, which sorts the file D1 (that is, nouns.txt) +# In the command line, D1 is mapped to the parameter 'input.txt'. +# The return value D3 represents the output file 'output.txt' +D3, = prune.task_add(returns=['output.txt'], + env=E1, + cmd='/bin/sort input.txt > output.txt', + args=[D1], + params=['input.txt']) + +# Similarly, we define the second task, which sorts the file D2 (verbs.txt) +# Note that in the command line, D2 is also mapped to the parameter +# 'input.txt', and the output is also named 'output.txt'. This is ok, as all +# prune tasks are executed in their own sandbox. +D4, = prune.task_add(returns=['output.txt'], + env=E1, + cmd='sort input.txt > output.txt', + args=[D2], + params=['input.txt']) + +###### Merge stage ###### +# In the third task we combine the files D3 and D4 into the merged output D5. +# Note that D3 is mapped to input1.txt, D4 to input2.txt, and the output D5 to +# merged_output.txt +D5, = prune.task_add(returns=['merged_output.txt'], + env=E1, + cmd='sort -m input*.txt > merged_output.txt', + args=[D3,D4], + params=['input1.txt','input2.txt']) + +###### Execute the workflow ###### +# So far we have only defined the workflow, but nothing has been executed yet. +# Now we execute the workflow locally in our computer... +prune.execute( worker_type='local', cores=8 ) + +###### Export final data ###### +# ...and export the final result into the file merged_words.txt... +prune.export( D5, 'merged_words.txt' ) + +###### Export publishable workflow ###### +# ...and the workflow, complete with the original inputs and intermidiate files +# so that other can reproduce and modify our results: +prune.export( D5, 'merge_sort.prune', lineage=2 ) + diff -Nru cctools-7.0.22/doc/manuals/prune/examples/merge_sort/nouns.txt cctools-7.1.2/doc/manuals/prune/examples/merge_sort/nouns.txt --- cctools-7.0.22/doc/manuals/prune/examples/merge_sort/nouns.txt 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/merge_sort/nouns.txt 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,25 @@ +time +person +year +way +day +thing +man +world +life +hand +part +child +eye +woman +place +work +week +case +point +government +company +number +group +problem +fact diff -Nru cctools-7.0.22/doc/manuals/prune/examples/merge_sort/verbs.txt cctools-7.1.2/doc/manuals/prune/examples/merge_sort/verbs.txt --- cctools-7.0.22/doc/manuals/prune/examples/merge_sort/verbs.txt 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/examples/merge_sort/verbs.txt 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,25 @@ +be +have +do +say +get +make +go +know +take +see +come +think +look +want +give +use +find +tell +ask +work +seem +feel +try +leave +call diff -Nru cctools-7.0.22/doc/manuals/prune/index.md cctools-7.1.2/doc/manuals/prune/index.md --- cctools-7.0.22/doc/manuals/prune/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/prune/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,210 @@ +# Prune User's Manual + +## Overview + +Prune is a system for executing and precisely preserving scientific workflows. + +Every task to be executed in a workflow is wrapped in a functional interface +and coupled with a strictly defined environment. The task is then executed by +Prune rather than the user to ensure reproducibility. + +As a scientific workflow evolves in a Prune repository, a growing but immutable +tree of derived data is created. The provenance of every item in the system can +be precisely described, facilitating sharing and modification between +collaborating researchers, along with efficient management of limited storage +space. Collaborators can verifiy research results and easily extend them at a +granularity that makes sense to users, since the granularity of each task was +chosen by a scientist rather than captured at the level of system calls. + +## Getting Started + +### Installing Prune + +Prune is part of the [Cooperating Computing +Tools](http://ccl.cse.nd.edu/software). Follow the [installation instructions](../install) to setup CCTools required for +running Prune. + + +### Prune Example Workflow: Merge Sort + +In this first example our workflow processes two text files, `nouns.txt` and +`verbs.txt` which contain a word per line, and produces the file +`merge_output.txt`, with all the words from the input files sorted +alphabetically. + +- Inputs: [nouns.txt](examples/merge_sort/nouns.txt) [verbs.txt](examples/merge_sort/verbs.txt) +- Workflow: [merge_sort.py](examples/merge_sort/merge_sort.py) + +```python +# merge_sort.py + +from prune import client +import os + +#Prune data is stored in base_dir +prune = client.Connect(base_dir = os.environ["HOME"] + '/.prune') + +###### Import sources stage ###### +# D1 and D2 are handlers for our input files +D1 = prune.file_add( 'nouns.txt' ) +D2 = prune.file_add( 'verbs.txt' ) + +# E1 is a handler for an environment specification. We will deal with +# environments in a further example, and for now we simply use prune's nil +E1 = prune.nil + +###### Sort stage ###### +# We define the first task, which sorts the file D1 (that is, nouns.txt) +# In the command line, D1 is mapped to the parameter 'input.txt'. +# The return value D3 represents the output file 'output.txt' +D3, = prune.task_add(returns=['output.txt'], + env=E1, + cmd='/bin/sort input.txt > output.txt', + args=[D1], + params=['input.txt']) + +# Similarly, we define the second task, which sorts the file D2 (verbs.txt) +# Note that in the command line, D2 is also mapped to the parameter +# 'input.txt', and the output is also named 'output.txt'. This is ok, as all +# prune tasks are executed in their own sandbox. +D4, = prune.task_add(returns=['output.txt'], + env=E1, + cmd='sort input.txt > output.txt', + args=[D2], + params=['input.txt']) + +###### Merge stage ###### +# In the third task we combine the files D3 and D4 into the merged output D5. +# Note that D3 is mapped to input1.txt, D4 to input2.txt, and the output D5 to +# merged_output.txt +D5, = prune.task_add(returns=['merged_output.txt'], + env=E1, + cmd='sort -m input*.txt > merged_output.txt', + args=[D3,D4], + params=['input1.txt','input2.txt']) + +###### Execute the workflow ###### +# So far we have only defined the workflow, but nothing has been executed yet. +# Now we execute the workflow locally in our computer... +prune.execute( worker_type='local', cores=8 ) + +###### Export final data ###### +# ...and export the final result into the file merged_words.txt... +prune.export( D5, 'merged_words.txt' ) + +###### Export publishable workflow ###### +# ...and the workflow, complete with the original inputs and intermidiate files +# so that other can reproduce and modify our results: +prune.export( D5, 'merge_sort.prune', lineage=2 ) + +``` + +After running the workflow with: + +```sh +$ python merge_sort.py +``` + +the merged results can be found in a file called `merged_words.txt` and the +file `merge_sort.prune` contains a sharable package that describes the full +workflow. + +If you try to execute the workflow again, **prune** finds the previous computed +results, and does not need to recompute them: + +```sh +$ python merge_sort.py + +Working from base directory: /home/btovar/.prune/ +Allocating 8 local workers. +.Nothing to execute. + +Export (merged_words.txt) contains the following objects... +file: 609507ca8c80d6f30c9df119766a5ac43690cc11 259 + +Export (merge_sort.prune) contains the following objects... +task: 42d1a7dc8c80af695882031cf8a5651c78d28ca6 sort -m input*.txt > merged_output.txt +task: 49e7ac81c83a6dac1c2a3d538b94c109b30c47d6 /bin/sort input.txt > output.txt +task: 319418e43783a78e3cb7e219f9a1211cba4b3b31 sort input.txt > output.txt +file: 29ae0a576ab660cb17bf9b14729c7b464fa98cca 144 +file: 48044131b31906e6c917d857ddd1539278c455cf 115 +Export description: pathname=merge_sort.prune prid(s)=48044131b31906e6c917d857ddd1539278c455cf {'lineage': 2} +Export results: duration=0.000000 size=1883 file_cnt=2 task_cnt=3 temp_cnt=0 more_cnt=0 +``` + + +## Prune Example Workflow: High Energy Physics (HEP) + +The Merge Sort example above did not specify an environment. A different +workflow (involving High Energy Physics) uses [Umbrella](../umbrella) to +specify and create the appropriate environment for individual workflow tasks: + +- Environment definition: [cms.umbrella](examples/hep/cms.umbrella) +- Input files: [digitize.sh](examples/hep/digitize.sh)[reconstruct.sh](examples/hep/reconstruct.sh)[simulate.sh](examples/hep/simulate.sh) +- Workflow: [hep.py](examples/hep/hep.py) + + +The script command to specify an Umbrella environment looks like this: + +```python +E1 = prune.envi_add(engine='umbrella', + spec='cms.umbrella', + sandbox_mode='parrot', + log='umbrella.log', + cms_siteconf='SITECONF.tar.gz', + cvmfs_http_proxy='http://eddie.crc.nd.edu:3128', + http_proxy='http://eddie.crc.nd.edu:3128' ) +``` + +Execute the workflow with this command: + +```sh +$ python hep.py +``` + +## Prune Example Workflow: U.S. Census + +The U.S. Census workflow demonstrates the scalability of Prune by using [Work +Queue](../work_queue/) to execute the workflow in a distributed manner, rather +than only executing with the local machine. The included census data is a +small simulation of a real census, but could be applied to the real U.S. +Censuses if available. + +This example workflow differs mainly in the way the execute command is used in +the script: + +`prune.execute( worker_type='work_queue', name='prune_census_example' )` + +Now, running the workflow script initiates a Work Queue master that will wait +for workers to attach to it in order to execute the tasks. + +`python match_people.py` + +The following command line instruction is one way to assign 10 workers to the +Work Queue master: + +`condor_submit_workers -N prune_census_example 10` + +See the [Work Queue Manual](../work_queue) for more information on ways to +assign workers to execute tasks in the workflow. + +(The hep.wq.py script, in the hep example folder, runs the HEP workflow using +Work Queue after submitting workers to the Work Queue master with name +'prune_hep_example' instead of 'prune_census_example'.) + +## For More Information + +For the latest information about CCTools, please visit our [web +site](http://ccl.cse.nd.edu/) and subscribe to our [mailing +list](http://ccl.cse.nd.edu/software/help.shtml). + + +Prune is Copyright (C) 2014- The University of Notre Dame. +All rights reserved. +This software is distributed under the GNU General Public License. +See the file COPYING for details. + + + +**Last edited: September 2017** + diff -Nru cctools-7.0.22/doc/manuals/resource_monitor/index.md cctools-7.1.2/doc/manuals/resource_monitor/index.md --- cctools-7.0.22/doc/manuals/resource_monitor/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/resource_monitor/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,495 @@ +# Resource Monitor User's Manual + +## Overview + +**resource_monitor** is a tool to monitor the computational resources used by +the process created by the command given as an argument, and all its +descendants. The monitor works *indirectly*, that is, by observing how the +environment changed while a process was running, therefore all the information +reported should be considered just as an estimate (this is in contrast with +direct methods, such as ptrace). It works on Linux, and it can be used in three ways: + +- Stand alone mode, directly calling the `resource_monitor` executable. +- Activating the monitoring modes of [makeflow](../makeflow) and [work queue](../work_queue) applications. +- As a [python module](http://ccl.cse.nd.edu/software/manuals/api/html/namespaceresource__monitor.html) to monitor single function evaluations. + +**resource_monitor** generates up to three log files: a JSON encoded summary +file with the maximum values of resource used and the time they occurred, a +time-series that shows the resources used at given time intervals, and a list +of files that were opened during execution. + +Additionally, **resource_monitor** may be set to produce measurement snapshots +according to events in some files (e.g., when a file is created, deleted, or a +regular expression pattern appears in the file.). Maximum resource limits can +be specified in the form of a file, or a string given at the command line. If +one of the resources goes over the limit specified, then the monitor +terminates the task, and reports which resource went over the respective +limits. + +In systems that support it, **resource_monitor** wraps some libc functions to +obtain a better estimate of the resources used. + +### Installing + +See the [Installation Instructions](../install) for the Cooperative Computing Tools package. Then, make sure to set your `PATH` appropriately. + + +## Running resource_monitor + +On a terminal, type: + +```sh +resource_monitor -O mymeasurements -- ls +``` + +This will generate the file mymeasurements.summary, with the resource +usage of the command `ls`. Further: + + +```sh +resource_monitor -O mymeasurements --with-time-series --with-inotify -O mymeasurements -- ls +``` + +will generate three files describing the +resource usage of the command `ls`. These files are `mymeasurements.summary` +, ` mymeasurements.series`, and `mymeasurements.files`, in which PID +represents the corresponding process id. By default, measurements are taken +every second, and each time an event such as a file is opened, or a process +forks, or exits. We can specify the output names, and the sampling intervals: + +```sh +resource_monitor -O log-sleep -i 2 -- sleep 10 +``` + +The previous command will monitor `sleep 10`, at two second intervals, and will +generate the files `log-sleep.summary`, `log-sleep.series`, and +`log-sleep.files`. The monitor assumes that the application monitored is not +interactive. + +To change this behaviour use the `-f` switch: + +```sh +resource_monitor -O my.summary -f -- /bin/sh +``` + +## Output Format + +The summary is JSON encoded and includes the following fields: + +|Field | Description | +|-------------------------|----------------| +|command | the command line given as an argument. | +|start | time at start of execution, since the epoch. | +|end | time at end of execution, since the epoch. | +|exit_type | one of `normal`, `signal` or `limit` (a string). | +|signal | number of the signal that terminated the process. Only present if exit_type is signal. | +|cores | maximum number of cores used. | +|cores_avg | number of cores as cpu_time/wall_time. | +|exit_status | final status of the parent process. | +|max_concurrent_processes | the maximum number of processes running concurrently. | +|total_processes | count of all of the processes created. | +|wall_time | duration of execution, end - start. | +|cpu_time | user+system time of the execution | +|virtual_memory | maximum virtual memory across all processes. | +|memory | maximum resident size across all processes. | +|swap_memory | maximum swap usage across all processes | +|bytes_read | amount of data read from disk. | +|bytes_written | amount of data written to disk. | +|bytes_received | amount of data read from network interfaces. | +|bytes_sent | amount of data written to network interfaces. | +|bandwidth | maximum bandwidth used. | +|total_files | total maximum number of files and directories of all the working directories in the tree. | +|disk | size of all working directories in the tree. | +|limits_exceeded | resources over the limit with -l, -L options (JSON object). | +|peak_times | seconds from start when a maximum occured (JSON object). | +|snapshots | List of intermediate measurements, identified by snapshot_name (JSON object). | + + +The time-series log has a row per time sample. For each row, the columns have +the following meaning: + +|Field | Description | +|-------------------------|----------------| +|wall_clock | the sample time, since the epoch, in microseconds. | +|cpu_time | accumulated user + kernel time, in microseconds. | +|cores | current number of cores used. | +|max_concurrent_processes | concurrent processes at the time of the sample. | +|virtual_memory | current virtual memory size, in MB. | +|memory | current resident memory size, in MB. | +|swap_memory | current swap usage, in MB. | +|bytes_read | accumulated number of bytes read, in bytes. | +|bytes_written | accumulated number of bytes written, in bytes. | +|bytes_received | accumulated number of bytes received, in bytes. | +|bytes_sent | accumulated number of bytes sent, in bytes. | +|bandwidth | current bandwidth, in bps. | +|total_files | current number of files and directories, across all working directories in the tree. | +|disk | current size of working directories in the tree, in MB. | + + +## Specifying Resource Limits + +Resource limits can be specified with a JSON object in a file in the same +format as the output format . Only resources specified in the file are +enforced. Thus, for example, to automatically kill a process after one hour, +or if it is using 5GB of swap, we can create the following file `limits.json`: + +```json +{ "wall_time": [3600, "s"], "swap_memory": [5, "GB"] } +``` + +and set limits to the execution with: + +```sh +resource_monitor -O output --monitor-limits=limits.json -- myapp ` +``` + +## Snapshots + +The **resource_monitor** can be directed to take snapshots of the resources used +according to the files created by the processes monitored. The typical use of +monitoring snapshots is to set a watch on a log file, and generate a snapshot +when a line in the log matches a pattern. + +Snapshots are specified via a JSON-encoded file with the following syntax: + +```json +{ + "FILENAME": { + "from-start":boolean, + "from-start-if-truncated":boolean, + "delete-if-found":boolean, + "events": [ + { + "label":"EVENT_NAME", + "on-create":boolean, + "on-truncate":boolean, + "on-pattern":"REGEXP", + "count":integer + }, + { + "label":"EVENT_NAME", + ... + } + ] + }, + "FILENAME": { + ... + }, + ... +``` + +|Field | Type | Description | +|------|------|-------------| +|FILENAME |string |Name of a text file to watch. +|from-start |boolean |If FILENAME exits when the monitor starts running, process from line 1. Default |false, as monitored processes may be appending to already existing files. +|from-start-if-truncated |boolean |If FILENAME is truncated, process from line 1. Default |true, to account for log rotations. +|delete-if-found boolean |Delete FILENAME when found. Default |false +|events |array |xxx +|label |string |Name that identifies the snapshot. Only alphanumeric, -, and _ characters are allowed. +|on-create |boolean |Take a snapshot every time the file is created. Default |false +|on-delete |boolean | Take a snapshot every time the file is deleted. Default |false +|on-truncate |boolean | Take a snapshot when the file is truncated. Default |false +|on-pattern |boolean | Take a snapshot when a line matches the regexp pattern. Default: none +|count |integer |Maximum number of snapshots for this label. Default |-1 (no limit) + +All fields but *label* are optional. + +As an example, assume that 'myapp' goes through three stages during execution: +start, processing, and analysis, and that it indicates the current stage by +writing a line to 'my.log' of the form '# STAGE'. We can direct the +*resource_monitor* to take a snapshot at the beginning of each stage as follows: + +File: snapshots.json: + +```json +{ "my.log": { + "events":[ + { "label":"file-created", "on-creation":true }, + { "label":"started", "on-pattern":"^# START" }, + { "label":"end-of-start", "on-pattern":"^# PROCESSING" }, + { "label":"end-of-processing", "on-pattern":"^# ANALYSIS" }, + { "label":"file-deleted", "on-deletion":true }]}} +``` + +```sh +resource_monitor -O output --snapshots- file=snapshots.json -- myapp +``` + +Snapshots are included in the output summary +file as an array of JSON objects under the key `snapshots`. Additionally, each +snapshot is written to a file `output.snapshot.N`, where ` N ` is 0,1,2,... + +As another example, the monitor can generate a snapshot every time a particular file is created. The monitor can detected this file, generate a snapshot, and delete the file to get ready for the next snapshot. In the following example the monitor takes a snapshot everytime the file please-take-a-snapshot is created: + +```json +{ + "please-take-a-snapshot": + { + "delete-if-found":true, + "events":[ + { + "label":"manual-snapshot", + "on-create":true + } + ] + } +} +``` + +## Integration with other CCTools + +### Makeflow mode + +If you already have a makeflow file, you can activate the resource_monitor by +giving the `--monitor` option to makeflow with a desired output directory, for +example: + +```sh +makeflow --monitor monitor_logs Makeflow +``` + +In this case, makeflow wraps every command line rule with the monitor, and +writes the resulting logs per rule in the directory `monitor_logs`. + +### Work-queue mode + +From Work Queue in python, monitoring is activated with: + +```python +import work_queue as wq +q = wq.WorkQueue(port) +q.enable_monitoring() +``` + +Limits for a task are set by defining a `category` of tasks. All tasks in a +category are assumed to use a similar quantity of resources: + +``` +# creating a category by assigning maximum resources: +q.specify_category_max_resources('my-category', {"cores": 1, "memory":512}) + +t = wq.Task(...) +t.specify_category('my-category') + +... + +t = q.wait(5) + + +if t: + print("cores: {}".format(t.resources_measured.cores)) + print("memory: {}".format(t.resources_measured.memory)) + print("disk: {}".format(t.resources_measured.disk)) + print("bytes_read: {}".format(t.resources_measured.bytes_read)) + ... + + if t.limits_exceeded: + # any resource above a specified limit is different from -1: + if t.limits_exceeded.memory != -1: + ... + +``` + +Similarly, in C: + +```c +q = work_queue_create(port); + +/* wraps every task with the monitor, and appends all generated summary files + * into the file `some-log- file. */ +work_queue_enable_monitoring(q, "some-log-file", /* kill tasks on exhaustion */ 1); + +... + +struct work_queue_task *t = work_queue_wait(q, 5); + +if(t) { + /* access resources measured with t->resources_measured->{cores,disk,memory,...} */ + /* and limits exceeded with: */ + if(t->resources_measured->limits_exceeded) { + if(t->resources_measured->limits_exceeded->cores != -1) { ... } + } +} +``` + +## Monitoring with Condor + +Unlike the previous examples, when using the `resource_monitor` directly with +**condor** , you have to specify the `resource_monitor` as an input file, and +the generated log files as output files. For example, consider the following +submission file: + +```conf +universe = vanilla +executable = matlab +arguments = -r "run script.m" +output = matlab.output +transfer_input_files=script.m +should_transfer_files = yes +when_to_transfer_output = on_exit +log = condor.matlab.logfile +queue +``` + +This can be rewritten for monitoring as: + +```conf +universe = vanilla +executable = resource_monitor +arguments = -O matlab-resources --limits-file=limits.json -r "run script.m" +output = matlab.output +transfer_input_files=script.m,limits.json,/path/to/resource_monitor +transfer_output_files=matlab-resources.summary +should_transfer_files = yes +when_to_transfer_output = on_exit +log = condor.matlab.logfile queue +``` + +## Monitoring functions in python + +With the `resource_monitor` [python +module](http://ccl.cse.nd.edu/software/manuals/api/html/namespaceresource__monitor.html) +python module, function evaluations can be monitored with resource limits +enforcement. + +To monitor already defined functions, use the `monitored` function. This +creates a new function that returns a tuple of the original result, and a +dictionary of the resources used: + +```python +import resource_monitor + +def my_sum(a,b): + return a + b + +my_sum_monitored = resource_monitor.monitored()(my_sum) + +original_result = my_sum(1,2) + +(monitored_result, resources) = my_sum_monitored(1,2) +print('function used ' + str(resources['cores']) + ' cores') + +assert(original_result, monitored_result) +``` + +Or more directly, use it as decorator: +```python +import resource_monitor + +@resource_monitor.monitored() +def my_sum_decorated(a,b): + return a + b + +(monitored_result, resources) = my_sum_decorated(1,2) +``` + +With the function `resource_monitor.monitored`, we can specify resource limits +to be enforced. For example, if we simply want to enforce for a function not to +use for more than a megabyte of memory: + +```python +import resource_monitor + +@resource_monitor.monitored(limits = 'memory': 1024, return_resources = False) +def my_sum_limited(a,b): + return a + b + +try: + # Note that since we used return_resources = False, the return value of the + # function is not modified: + x = my_sum_limited(1,2) +except resource_monitor.ResourceExhaustion as e: + print(e.resources.limits_exceeded) +``` + +For a list of all the resources that can be monitored and enforced, please consult the documentation of the [module](http://ccl.cse.nd.edu/software/manuals/api/html/namespaceresource__monitor.html). + + +Further, a function callback can be specified. This callback will be executed +at each measurement. As an example, we can use a callback to send messages to a +server with the resources measured: + +```python +import resource_monitor + +# monitor callback function example +# a callback function will be called everytime resources are measured. +# arguments are: +# - id: unique identifier for the function invocation +# - fun_name: string with the name of the function +# - step: resource sample number (1 for the first, 2 for the second, ..., -1 for the last) +# - resources: dictionary with resources measured +def send_udp_message(id, fun_name, step, resources): + """ Send a UDP message with the results of a measurement. """ + import socket + import json + + finished = True if step == -1 else False + exhaustion = True if resources.get('limits_exceeded', False) else False + + msg = {'id': id, 'function': fun_name, 'finished': finished, 'resource_exhaustion': exhaustion, 'resources': resources} + + sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + sock.sendto(json.dumps(msg).encode(), ('localhost', 9800)) + +# Create the monitored function addint the callback. Also, set the interval measurements to 5s, instead of the default 1s +@resource_monitor.monitored(callback = send_udp_message, interval = 5, return_resources = False) +def my_function_monitored(...): + ... + +my_function_monitored(...) + +# in another script, run the server as: +import socket +import pickle + +sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + +sock.bind(('localhost', 9800)) + +while True: + data, addr = sock.recvfrom(1024) + print("message: ", pickle.loads(data)) +``` + +!!! warning + The monitored function and the callback are executed in a different process + from the calling environment. This means that they cannot modify variables + from the calling environment. + +For example, the following will not work as you may expect: + +```python +# Note: This code does not work!!! + +import resource_monitor + +function_has_run = False +resources_series = [] + +def my_callback(id, fun_name, step, resources): + resources_series.append(resources) + +@resource_monitor.monitored(callback = my_callback): +def my_function(): + function_has_run = True + +my_function() + +# here function_has_run is still False, resources_series is []. +``` + +Please see an example +[here](http://ccl.cse.nd.edu/software/manuals/api/html/namespaceresource__monitor.html) +that shows how to construct a time series of the resources, and makes it +available to the calling environment. + + +## Further Information + +For more information, please see [Getting Help](../help) or visit the [Cooperative Computing Lab](http://ccl.cse.nd.edu) website. + +## Copyright + +CCTools is Copyright (C) 2019- The University of Notre Dame. This software is distributed under the GNU General Public License Version 2. See the file COPYING for +details. Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/umbrella/images/umbrella-archive-sandbox-cache.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/umbrella/images/umbrella-archive-sandbox-cache.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/umbrella/images/Umbrella.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/umbrella/images/Umbrella.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/umbrella/images/umbrella-povray.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/umbrella/images/umbrella-povray.png differ Binary files /tmp/tmp6D1BxH/lJFV4PUh8K/cctools-7.0.22/doc/manuals/umbrella/images/umbrella-specification-big-picture.png and /tmp/tmp6D1BxH/bcpNMgH50h/cctools-7.1.2/doc/manuals/umbrella/images/umbrella-specification-big-picture.png differ diff -Nru cctools-7.0.22/doc/manuals/umbrella/index.md cctools-7.1.2/doc/manuals/umbrella/index.md --- cctools-7.0.22/doc/manuals/umbrella/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/umbrella/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,1031 @@ +# Umbrella User's Manual + +## Overview + +Umbrella is a tool for specifying and materializing comprehensive execution +environments, from the hardware all the way up to software and data. A user +simply invokes Umbrella with the desired task, and Umbrella parses the +specification, determines the minimum mechanism necessary to run the task, +downloads missing dependencies, and executes the application through the +available minimal mechanism, which may be direct execution, a system container +(Docker, chroot, Parrot), a local virtual machine (i.e., VMware), or +submission to a cloud environment (i.e., Amazon EC2) or grid environment +(i.e., Condor). The following figure shows the overview of Umbrella. + +![](images/Umbrella.png) + +The architecture of Umbrella is shown in the figure below. + +![](images/umbrella-specification-big-picture.png) + +An architecture can be divided in five parts: + +1. User inputs. Consist of the task specification, input files of the task, and the output +directory. + +- Umbrella tool. Instantiates the user's execution environment specification + with the underlying execution engines. + +- Execution engines. Execute the task. + +- Remote archive. Stores the OS images, and software and data dependencies. + +- Metadata database. Maps the relationship between the dependency name + referred in the specification and the actual storage location within the + remote archive. + +Currently, Umbrella supports the following execution engines: + + +* docker + +* parrot + +* local execution (Use docker if available, if not, use parrot.) + +* destructive (Requires root as fulfils dependencies using rpms.) + +* EC2 + +* HTcondor + +!!! warning + The Docker execution engine of Umbrella can not work together with AFS. If + you try to use the Docker execution engine of Umbrella, please do not + install CCTools on your AFS directory. + + + +## Getting Started + +To get started using Umbrella, please begin by [installing CCTools](http://ccl.cse.nd.edu/software/manuals/install.html) on your system. + +When your installation is ready, try the following example which uses a +Ray-Tracing application to illustrate how to execute an application with +Umbrella: + +[povray.umbrella](http://ccl.cse.nd.edu/software/umbrella/database/povray/povray.umbrella) +```json +{ + "comment": "A ray-tracing application which creates video frames.", + "hardware": { + "cores": "2", + "disk": "3GB", + "arch": "x86_64", + "memory": "2GB" + }, + "kernel": { + "version": ">=2.6.18", + "name": "linux" + }, + "os": { + "name": "Redhat", + "format": "tgz", + "checksum": "62aa9bc37afe3f738052da5545832c80", + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-\nstudy/62aa9bc37afe3f738052da5545832c80/redhat-5.10-x86_64.tar.gz" + ], + "version": "5.10", + "uncompressed_size": "1622159360", + "id": "62aa9bc37afe3f738052da5545832c80", + "size": "503195460" + }, + "software": { + "povray-3.6.1-redhat5-x86_64": { + "format": "tgz", + "checksum": "9b7f2362e6b927c8ef08c3f92599e47c", + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-\nstudy/9b7f2362e6b927c8ef08c3f92599e47c/povray-3.6.1-redhat5-x86_64.tar.gz" + ], + "action": "unpack", + "mountpoint": "/software/povray-3.6.1-redhat5-x86_64", + "mount_env": "POVRAY_PATH", + "uncompressed_size": "3004423", + "id": "9b7f2362e6b927c8ef08c3f92599e47c", + "size": "1471457" + } + }, + "data": { + "4_cubes.pov": { + "format": "plain", + "checksum": "c65266cd2b672854b821ed93028a877a", + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-\nstudy/c65266cd2b672854b821ed93028a877a/4_cubes.pov" + ], + "mountpoint": "/tmp/4_cubes.pov", + "id": "c65266cd2b672854b821ed93028a877a", + "size": "1757" + }, + "WRC_RubiksCube.inc": { + "format": "plain", + "checksum": "2f8afdd09fc3a6177c6f1977bb3bdae7", + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-\nstudy/2f8afdd09fc3a6177c6f1977bb3bdae7/WRC_RubiksCube.inc" + ], + "mountpoint": "/tmp/WRC_RubiksCube.inc", + "id": "2f8afdd09fc3a6177c6f1977bb3bdae7", + "size": "28499" + } + }, + "environ": { + "PWD": "/tmp" + }, + "cmd": "povray +I/tmp/4_cubes.pov\n+O/tmp/frame000.png +K.0 -H50 -W50", + "output": { + "files": [ + "/tmp/frame000.png" + ], + "dirs": [] + } +} +``` + +To execute this task specification using the parrot engine: + +```sh +$ umbrella --spec povray.umbrella --localdir /tmp/umbrella --output "/tmp/frame000.png=/tmp/umbrella/cubes.png"--sandbox_mode parrot --log umbrella.log run +``` + +After this umbrella command is finished, you can find the output file, +`/tmp/umbrella/cubes.png`. The output png file should look like: + +![](images/umbrella-povray.png) + +You can check the help document of umbrella for the option settings by running +the command: + +```sh +$ umbrella -h +``` + + +## Try CMS Applications with Umbrella + +The part uses a CMS application as an example to illustrate how to execute a +CMS application with Umbrella. + +(cms_complex.umbrella)[http://ccl.cse.nd.edu/software/umbrella/database/cms_complex/cms_complex.umbrella] +(cms_complex.sh)[http://ccl.cse.nd.edu/software/umbrella/database/cms_complex/cms_complex.sh] +```json +{ + "comment": "A ray-tracing application which creates video frames.", + "hardware": { + "cores": "2", + "disk": "3GB", + "arch": "x86_64", + "memory": "2GB" + }, + "kernel": { + "version": ">=2.6.18", + "name": "linux" + }, + "os": { + "name": "Redhat", + "format": "tgz", + "checksum": "62aa9bc37afe3f738052da5545832c80", + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/62aa9bc37afe3f738052da5545832c80/redhat-5.10-x86_64.tar.gz" + ], + "version": "5.10", + "uncompressed_size": "1622159360", + "id": "62aa9bc37afe3f738052da5545832c80", + "size": "503195460" + }, + "software": { + "povray-3.6.1-redhat5-x86_64": { + "format": "tgz", + "checksum": "9b7f2362e6b927c8ef08c3f92599e47c", + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/9b7f2362e6b927c8ef08c3f92599e47c/povray-3.6.1-redhat5-x86_64.tar.gz" + ], + "action": "unpack", + "mountpoint": "/software/povray-3.6.1-redhat5-x86_64", + "mount_env": "POVRAY_PATH", + "uncompressed_size": "3004423", + "id": "9b7f2362e6b927c8ef08c3f92599e47c", + "size": "1471457" + } + }, + "data": { + "4_cubes.pov": { + "format": "plain", + "checksum": "c65266cd2b672854b821ed93028a877a", + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/c65266cd2b672854b821ed93028a877a/4_cubes.pov" + ], + "mountpoint": "/tmp/4_cubes.pov", + "id": "c65266cd2b672854b821ed93028a877a", + "size": "1757" + }, + "WRC_RubiksCube.inc": { + "format": "plain", + "checksum": "2f8afdd09fc3a6177c6f1977bb3bdae7", + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/2f8afdd09fc3a6177c6f1977bb3bdae7/WRC_RubiksCube.inc" + ], + "mountpoint": "/tmp/WRC_RubiksCube.inc", + "id": "2f8afdd09fc3a6177c6f1977bb3bdae7", + "size": "28499" + } + }, + "environ": { + "PWD": "/tmp" + }, + "cmd": "povray +I/tmp/4_cubes.pov +O/tmp/frame000.png +K.0 -H50 -W50", + "output": { + "files": [ + "/tmp/frame000.png" + ], + "dirs": [ + ] + } +} +``` + +The analysis code will create a directory called +`sim_job` and put the CMSSW software dependencies under it. Using parrot as the +engine when cvmfs *is* available in the machine: + +```sh +$ umbrella --sandbox_mode parrot --log umbrella.log --spec cms_complex.umbrella --localdir /tmp/umbrella_test/ --output "/tmp/sim_job=/tmp/umbrella_test/parrot_cms_complex_output" --use_local_cvmfs run` + +Using parrot as the engine when cvmfs *is not* available in the machine: + +```sh +$ umbrella --sandbox_mode parrot --log umbrella.log --spec cms_complex.umbrella --localdir /tmp/umbrella_test/ --output "/tmp/sim_job=/tmp/umbrella_test/parrot_cms_complex_output" --cvmfs_http_proxy http://cache01.hep.wisc.edu:3128 run` +``` + +After umbrella finishes executing the CMS application, you should see something like this: + +```sh +21-May-2015 11:05:45 EDT Initiating request to open LHE file file:/tmp/final_events_2381.lhe +21-May-2015 11:05:45 EDT Successfully opened LHE file file:/tmp/final_events_2381.lhe +Begin processing the 1st record. Run 1, Event 1, LumiSection 1 at 21-May-2015 11:05:45.202 EDT +Begin processing the 2nd record. Run 1, Event 2, LumiSection 1 at 21-May-2015 11:05:45.204 EDT +Begin processing the 3rd record. Run 1, Event 3, LumiSection 1 at 21-May-2015 11:05:45.210 EDT +Begin processing the 4th record. Run 1, Event 4, LumiSection 1 at 21-May-2015 11:05:45.214 EDT +Begin processing the 5th record. Run 1, Event 5, LumiSection 1 at 21-May-2015 11:05:45.216 EDT +Begin processing the 6th record. Run 1, Event 6, LumiSection 1 at 21-May-2015 11:05:45.235 EDT +Begin processing the 7th record. Run 1, Event 7, LumiSection 1 at 21-May-2015 11:05:45.244 EDT +Begin processing the 8th record. Run 1, Event 8, LumiSection 1 at 21-May-2015 11:05:45.248 EDT +Begin processing the 9th record. Run 1, Event 9, LumiSection 1 at 21-May-2015 11:05:45.249 EDT +Begin processing the 10th record. Run 1, Event 10, LumiSection 1 at 21-May-2015 11:05:45.264 EDT + +============================================= + +MessageLogger Summary + + type category sev module subroutine count total + ---- -------------------- -- ---------------- ---------------- ----- ----- + 1 fileAction -s AfterSource 2 2 + + type category Examples: run/evt run/evt run/evt + ---- -------------------- ---------------- ---------------- ---------------- + 1 fileAction BeforeEvents BeforeEvents + + Severity # Occurrences Total Occurrences + -------- ------------- ----------------- + System 2 2 +``` + + +## Create Your Own Specifications + +The Umbrella specification for an application is encoded in a JSON object. It includes the following sections: + +### hardware (required) + + * **arch** (required): the hardware architecture the application needs to run on. Options: x86_64, i386, i686. Current support options: x86_64. Not case sensitive. + * **cores** (optional): the number of cores the applications needs. Options: 1, 2, 3, 4, ... Default: 1. + * **memory** (optional): the memory space the application needs in the unit of GB. Options: 1GB, 2GB, .... Default: 1GB. Not case sensitive. + * **disk** (optional): the disk space the application needs in the unit of GB. Options: 1GB, 2GB, .... Default: 1GB. Not case sensitive. + +### kernel (required): + + * **name** (required): the kernel type the application requires. Options: linux, windows. Current support options: linux. Not case sensitive. + * **version** (required): the kernel version in the format of ` A.B.C` (A: kernel version; B: major revision of the kernel; C: the minor revision of the kernel). You can specify this attribute to a single value like `2.6.18` or a range like `>=2.6.18` or a range like `[2.6.18, 2.6.32]`. + +### os (required) + + * **name** (required): the OS name. Options: redhat, centos, arch, .... Not case sensitive. + * **version** (required): the OS version in the format of ` A.B`: A is the main version number and B is the minor version number. Exmaples: 5.10, 6.5. + * **id** (optional): the id of the OS image. There may exist multiple OS images for redhat 5.10, the id attribute uniquely identifies an OS image. + * **action** (required): the action on the downloaded dependencies. Options: ` none`, `unpack`. `none` leaves the downloaded dedendency as it is. `unpack` uncompresses the dependency. Default: unpack. Not case sensitive. + +### software (optional) + +Each software dependency has a case-sensitive name. The name of a software +dependency is in the format of 'A-B-C-D', where A is the software name, B is +the software version, C is OS distro name (the OS name followed by the main +version number, e.g., redhat5), D is hardware architecture. +`povray-3.6.1-redhat5-x86_64` is an example of this category. + + * **id** (optional): the id of the software. There may exist multiple versions of a software due to the difference of complication settings. the id attribute uniquely identifies a software. + * **action** (required): the action on the downloaded dependencies. Options: ` none`, `unpack`. `none` leaves the downloaded dedendency as it is. `unpack` uncompresses the dependency. Default: unpack. Not case sensitive. + * **mode** (optional): the file mode set as a string, such as ` "0644"`. + * **mountpoint** (optional): the mountpoint of the software. Case sensitive. + * **mount_env** (optional): Replace hard-coded paths in the shell script with environment variables to make it easy to redirect dependencies in the future. Case sensitive. In the above example, ` POVRAY_PATH` is used inside the user's source code instead of the path `/software/povray-3.6.1-redhat5-x86_64`. + +!!! warning + Even if both mountpoint and mount_env are optional, at least one of them must be provided. + +#### Relationship between mountpoint and mount_env + +**Case 1:** If only mountpoint is set to A in a specification, the dependency +will be downloaded into the umbrella local cache with the file path of D, and +a new mountpoint will be added into mount_dict (mount_dict[A] = D). + +**Case 2:** If only mount_env is set to B in a specification, the dependency +will not be downloaded, package_search will be executed to get one remote +storage location, C, of the dependency, a new environment variable will be set +(env_para_dict[B] = C). + +**Case 3:** If mountpoint is set to A and mount_env is set to B in a +specification, the dependency will be downloaded into the umbrella local cache +with the file path of D, and a new mountpoint will be added into mount_dict +(mount_dict[A] = D) and a new environment variable will also be set +(env_para_dict[B] = A). + +### data (optional) + +Each data dependency has a name. There is no special limitation on the name of +a data dependency. `WRC_RubiksCube.inc` is an example of this category. + + * **id** (optional): the id of the data. There may exist multiple versions of a data. the id attribute uniquely identifies a data. + * **action** (required): the action on the downloaded dependencies. Options: ` none`, `unpack`. `none` leaves the downloaded dedendency as it is. `unpack` uncompresses the dependency. Default: unpack. Not case sensitive. + * **mode** (optional): the file mode set as a string, such as ` "0644"`. + * **mountpoint** (optional): the mountpoint of the data dependency. The same as the mountpoint attribute of the software section. Case sensitive. + * **mount_env** (optional): the same as the mount_env attribute of the software section. Case sensitive. + +!!! note + Even if both mountpoint and mount_env are optional, at least one of them must be provided. + +### environ (optional) + +A list of key-value pairs. For example, `"HOME": "/home/hmeng"`, which sets +the HOME environment variable used by the sandbox to execute the applicition. +Case sensitive. + +### cmd (optional) + +The command to execute in the format of a string. + +### output (optional) + +This section allows the creator of an Umbrella spec to specify the output +files and directories. Correspondingly, there are two subsections: `files` (a +list of strings representing the output files) and `dirs` (a list of strings +representing the output dirs). + +## Common Attributes of OS, Software, Data Dependencies + +Each OS, software and data dependency can have the following attributes: +source, checksum, size, format, uncompressed_size, and upload. + +These attributes are required in a self-contained umbrella specification, but +not required in an umbrella specification which is attached to a Metadata +Database. + + * **source** : a list of storage location of the dependency, which includes one or more resource URL. Currently Umbrella supports the URLs identifying the resources from the following remote services. For private resources from OSF, and S3, the corresponding authentication information can be provided through the Umbrella options. + +|remote service|example path| +|-|-| +Local| /home/hmeng/data/input | +HTTP | http://www.somewhere.com/index.html | +HTTPS| https://ccl.cse.nd.edu/index.html | +Amazon S3| s3+https://s3.amazonaws.com/testhmeng/4_cubes.pov | +[Open Science Framework](https://osf.io/)| osf+https://files.osf.io/v1/...7559c3a | +Git | git+https://github.com/ayrodrig/OutreachExercise2010.git | +[CVMFS](http://cernvm.cern.ch/portal/filesystem)| cvmfs://cvmfs/cms.cern.ch + + * **checksum** : the checksum of the dependencies. Currently Umbrella only supports md5 checksum. Not case sensitive. + * **format** : the perservation format of the dependency. Currently Umbrella supports two formats: `tgz` (gzip compressed tarball) and `plain` (plain text). + * **size** : the size of the dependency in bytes. + * **uncompressed_size** : the uncompressed size of the dependency in bytes, only meaningful when the format attribute is not plain text. + * **upload (optional)** : whether this dependency will be uploaded into the storage services like OSF and S3 or not. The type of this field is boolean. This field can be set to be `false` or `true`. + +#### Relationship of id and checksum and source + +The checksum of each package can be used as the id of the package. However, it +is not necessary for them to be identical to each other. You can implement your +own mechanism once the id of each package is unique for one dependency. In case +when the checksum of one dependency is not provided or feasible, the first item +of the source section can be used as the value of the id attribute. For +example, in the CMS example, ` cmssw-4.2.8-slc5-amd64` is delivered through +cvmfs during runtime, and no checksum is provided, the url from the source +section, `cvmfs://cvmfs/cms.cern.ch` is used as the id of this package. + + +## Behaviors of Umbrella + +### Execute your Application through Umbrella + +For the following examples, +[cms_opendata_S.umbrella](http://ccl.cse.nd.edu/research/data/hep-case- +study/cms_opendata/cms_opendata_S.umbrella) is a self-contained umbrella +specification, +[cms_opendata.umbrella](http://ccl.cse.nd.edu/research/data/hep-case- +study/cms_opendata/cms_opendata.umbrella) is an umbrella specification which +does not include any metadata information. + +The metadata information here includes: source, checksum, size, format, and +uncompressed_size. + +#### Running an application from an umbrella specification + +```sh +$ umbrella --spec cms_opendata_S.umbrella --localdir /tmp/umbrella_test/ --output "/tmp/sim_job=/tmp/umbrella_test/parrot_cms_opendata_output" --sandbox_mode parrot --log umbrella.log --cvmfs_http_proxy http://cache01.hep.wisc.edu:3128 run +``` + +For further information on the `run` command: + +```sh +$ umbrella run help +``` + +`cms_opendata_S.umbrella` is self-contained, so no metadata database is needed. + +!!! note + This example uses parrot execution engine, for other execution engines, please check the Different Execution Engines of Umbrella section. + +!!! note + The cvmfs_http_proxy option is used to specify a http proxy for cvmfs access. If your application does not need to access cvmfs, ignore this option. + + + +#### Validating an Umbrella Spec File + +##### Validate a self-contained Umbrella specificiation + +```sh +$ umbrella --spec cms_opendata_S.umbrella validate +``` + + +##### Validating an Umbrella specificiation with the help of a metadata db + +```sh +$ umbrella --spec cms_opendata.umbrella --meta http://ccl.cse.nd.edu/software/umbrella/database/packages.json validate +``` + +For further information on the `validate` command: + +```sh +$ umbrella validate help +``` + + + +### Splitting an Umbrella Spec File into Spec and Meta + +```sh +$ umbrella --spec cms_opendata_S.umbrella --log umbrella.log split f2 db2 +``` + +After the command is done, f2 becomes an umbrella specification without any +metadata information, db2 only includes the metadata information of the +dependencies. + +For further information on the `validate` command: + +```sh +$ umbrella split help +``` + +##### Expand an Umbrella Spec File into a Self-Contained Spec + + +```json +$ umbrella --spec cms_opendata.umbrella --meta http://ccl.cse.nd.edu/software/umbrella/database/packages.json --sandbox_mode parrot --log umbrella.log expand f1 +``` + +After this command, f1 becomes self-contained including both the specification +and metadata info of its dependencies. The metadata info are abstract from the +metadata db provided through the --meta option. + +For further information on the `expand` command: + +```sh +$ umbrella expand help +``` + + +##### Filter the Meta Info for an Umbrella Spec File from a Metadata DB + + +```json +$ umbrella --spec cms_opendata.umbrella --meta http://ccl.cse.nd.edu/software/umbrella/database/packages.json --sandbox_mode parrot --log umbrella.log filter db1 +``` + +After this command, db1 only includes the metadata information of the +dependencies involved in cms_opendata.umbrella. + +For further information on the `expand` command: + +```sh +$ umbrella filter help +``` + + +##### Upload the Dependencies in an Umbrella Spec into the Amazon S3 + +```json +$ umbrella --spec cms_complex_S.umbrella --localdir /tmp/umbrella_test/ --log umbrella.log upload s3 test_bucket public s3.umbrella +``` + +**test_bucket** is the Amazon S3 bucket name which will be created to hold the +dependencies. **public** specifies the access permission of the created bucket +and the new objects in it is public (Anyone with the s3 link can download the +resource). **s3.umbrella** is the new umbrella spec which has all the +dependencies from the Amazon S3. + +After this command, a new file called **s3.umbrella** will be created and all +the dependencies in it are from the Amazon S3. + + +##### Upload the Dependencies in an Umbrella Spec into OSF + +```json +$ umbrella --spec cms_complex_S.umbrella --localdir /tmp/umbrella_test/ --log umbrella.log upload osf proj_cms public osf.umbrella` +``` + +**proj_cms** is the OSF project name which will be created to hold the +dependencies. **public** specifies the access permission of the created +project and the new objects in it is public (Anyone with the osf link can +download the resource). **osf.umbrella** is the new umbrella spec which has +all the dependencies from OSF. + +After this command, a new file called **osf.umbrella** will be created and all +the dependencies in it are from OSF. + +For further information on the `upload` command: + +```sh +$ umbrella upload help +``` + + +## Different Execution Engines of Umbrella + +At runtime, Umbrella evaluates the local execution environment to see if it is +compatible with the specification. Umbrella evaluates the hardware resources +available, the kernel and OS distribution, and the software and data +dependencies. It then selects the mechanism necessary to deliver the desired +environment. In the case where Umbrella can not construct the desired +environment on the local machine, the user will be notified. + +**Local Cache and Mounting Mechanism.** One cache directory will be set on +each execution node involved in the execution engine to avoid download the +same data from the remote archive repeatedly. Umbrella downloads and caches OS +images, software dependencies, and data dependencies in the host machine, and +then creates a sandbox to execute the application. To enable software +reusability by multiple users, Umbrella constructs the sandbox for each +application through mounting-based sandbox techniques. + +The following figure shows the relationship between the remote archive, the +local cache and the sandbox for each application. `Sandbox 1` uses the root +filesystem of the host machine as the root filesystem and mounts the needed +software and data dependencies (`A` and `G`) into it. `Sandbox 2` needs to +construct a separate root filesystem which groups together the needed OS image +(`C`), software dependency (`A`). + +![](images/umbrella-archive-sandbox-cache.png) + +The following parts uses a Ray-Tracing application as an example to illustrate +how to use different execution engines of Umbrella to execute the application. + +The specification for the application is [povray_S.umbrella](http://ccl.cse.nd.edu/software/umbrella/database/povray/povray_S.umbrella). It needs the two input files [4_cubes.pov](http://ccl.cse.nd.edu/software/umbrella/database/povray/4_cubes.pov) +and +[WRC_RubiksCube.inc](http://ccl.cse.nd.edu/software/umbrella/database/povray/WRC_RubiksCube.inc). + +The command for this application is:`povray +I4_cubes.pov +Oframe000.png +K.0 +-H50 -W50` Suppose you do your umbrella test under `/tmp/umbrella`. First +download the specification into `/tmp/umbrella`. + + +### Execute your Application through Umbrella - Parrot + +```json +$ umbrella --spec povray_S.umbrella --localdir /tmp/umbrella_test/ --output "/tmp/frame000.png=/tmp/umbrella_test/parrot_povray" --sandbox_mode parrot --log umbrella.log run` +``` + +### Execute your Application through Umbrella - Docker + +```json +$ umbrella --spec povray_S.umbrella --localdir /tmp/umbrella_test/ --output "/tmp/frame000.png=/tmp/umbrella_test/docker_povray" --sandbox_mode docker --log umbrella.log run` +``` + +!!! warning + The Docker execution engine of Umbrella can not work together with AFS. If + you try to use the Docker execution engine of Umbrella, please do not + install CCTools on your AFS directory. + + +### Execute your Application through Umbrella - EC2 + +```json +$ umbrella --spec povray_S.umbrella --localdir /tmp/umbrella_test/ --output "/tmp/frame000.png=/tmp/umbrella_test/ec2_povray/output.png" --sandbox_mode ec2 --ec2_log umbrella.log.ec2 --ec2_sshkey ~/bin/feb272015.pem --ec2_key feb272015 --ec2_instance_type m3.medium --log umbrella.log run +``` + +Using the `ec2 execution engine requires the composer of an Umbrella +specification to specify the AMIs, its region and default user in the os +section of the umbrella spec. For example, + +```json +"ec2": { "ami": "ami-2cf8901c", "region": "us-west-2", "user": "ec2-user" } +``` + +To repeat an experiment using Umbrella ec2 execution engine, you need to +provide your EC2 key pair, security group, ssh key and instance type through +the umbrella options. + +Note that the EC2 AMIs, the security groups, key pairs are all [regional +resources](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resources.html). Therefore, please check the region setting of the desired AMI in the +umbrella spec file, and provide security group, key pairs, ssh keys in the +same region. The security group used should allow incoming ssh traffic. + + +## Create Your Own Metadata Database + +When your have multiple relevant applications which share lots of their +dependencies, instead of putting metadata information of each dependency into +the Umbrella specification, you can ceate a metadata database which includes +all the metadata information. + +Example metadata db: + +[packages.json](http://ccl.cse.nd.edu/software/umbrella/database/packages.json) + +```json +{ + "povray-3.6.1-redhat5-x86_64": { + "9b7f2362e6b927c8ef08c3f92599e47c": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/9b7f2362e6b927c8ef08c3f92599e47c/povray-3.6.1-redhat5-x86_64.tar.gz" + ], + "format": "tgz", + "checksum": "9b7f2362e6b927c8ef08c3f92599e47c", + "uncompressed_size": "3004423", + "size": "1471457" + } + }, + "povray-3.6.1-redhat6-x86_64": { + "b02ba86dd3081a703b4b01dc463e0499": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/b02ba86dd3081a703b4b01dc463e0499/povray-3.6.1-redhat6-x86_64.tar.gz" + ], + "format": "tgz", + "checksum": "b02ba86dd3081a703b4b01dc463e0499", + "uncompressed_size": "3010560", + "size": "1471452" + } + }, + "povray-3.6.1-centos6-x86_64": { + "6fd5c05379d1bf2ff3f06dde024649ca": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/6fd5c05379d1bf2ff3f06dde024649ca/povray-3.6.1-centos6-x86_64.tar.gz" + ], + "format": "tgz", + "checksum": "6fd5c05379d1bf2ff3f06dde024649ca", + "uncompressed_size": "3010560", + "size": "1471451" + } + }, + "centos-6.6-x86_64": { + "902703f016e0f930a870eaf9cb31640b": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/902703f016e0f930a870eaf9cb31640b/centos-6.6-x86_64.tar.gz" + ], + "format": "tgz", + "checksum": "902703f016e0f930a870eaf9cb31640b", + "uncompressed_size": "212684800", + "size": "72213624" + } + }, + "cms_siteconf_local_cvmfs": { + "2efd5cbb3424fe6b4a74294c84d0fb43": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/2efd5cbb3424fe6b4a74294c84d0fb43/SITECONF.tar.gz" + ], + "format": "tgz", + "checksum": "2efd5cbb3424fe6b4a74294c84d0fb43", + "uncompressed_size": "11619", + "size": "935" + } + }, + "cmssw-4.2.8-slc5-amd64": { + "cvmfs://cvmfs/cms.cern.ch": { + "source": [ + "cvmfs://cvmfs/cms.cern.ch" + ] + } + }, + "cmssw-5.3.11-slc5-amd64": { + "cvmfs://cvmfs/cms.cern.ch": { + "source": [ + "cvmfs://cvmfs/cms.cern.ch" + ] + } + }, + "cmssw-5.2.5-slc5-amd64": { + "cvmfs://cvmfs/cms.cern.ch": { + "source": [ + "cvmfs://cvmfs/cms.cern.ch" + ] + } + }, + "redhat-5.10-x86_64": { + "62aa9bc37afe3f738052da5545832c80": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/62aa9bc37afe3f738052da5545832c80/redhat-5.10-x86_64.tar.gz" + ], + "format": "tgz", + "checksum": "62aa9bc37afe3f738052da5545832c80", + "uncompressed_size": "1622159360", + "size": "503195460" + } + }, + "redhat-6.5-x86_64": { + "669ab5ef94af84d273f8f92a86b7907a": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/669ab5ef94af84d273f8f92a86b7907a/redhat-6.5-x86_64.tar.gz" + ], + "format": "tgz", + "checksum": "669ab5ef94af84d273f8f92a86b7907a", + "uncompressed_size": "1743656960", + "size": "633848940" + } + }, + "python-2.6.9-redhat5-x86_64": { + "c9da9e46b3ce0f7f9885ce60077c45c5": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/c9da9e46b3ce0f7f9885ce60077c45c5/python-2.6.9-redhat5-x86_64.tar.gz" + ], + "format": "tgz", + "checksum": "c9da9e46b3ce0f7f9885ce60077c45c5", + "uncompressed_size": "81591992", + "size": "23037031" + } + }, + "python-2.6.9-redhat6-x86_64": { + "df37d1ae059e218f319b28029cbdaffc": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/df36d1ae059e218f319b28029cbdaffc/python-2.6.9-redhat6-x86_64.tar.gz" + ], + "format": "tgz", + "checksum": "df36d1ae059e218f319b28029cbdaffc", + "uncompressed_size": "84099190", + "size": "22936670" + } + }, + "git-1.7.9-redhat5-x86_64": { + "e20b34ee6e39d84cf65c5f8edae8a4a1": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/e20b34ee6e39d84cf65c5f8edae8a4a1/git-1.7.9-redhat5-x86_64.tar.gz" + ], + "format": "tgz", + "checksum": "e20b34ee6e39d84cf65c5f8edae8a4a1", + "uncompressed_size": "46436031", + "size": "16930687" + } + }, + "demoanalyzer_cfg.py": { + "b0d3eb7874304ab2f75129646a311b12": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/b0d3eb7874304ab2f75129646a311b12/demoanalyzer_cfg.py" + ], + "format": "plain", + "checksum": "b0d3eb7874304ab2f75129646a311b12", + "size": "623" + } + }, + "OutreachExercise2010.git": { + "git+https://github.com/ayrodrig/OutreachExercise2010.git": { + "source": [ + "git+https://github.com/ayrodrig/OutreachExercise2010.git" + ], + "branch": "master" + } + }, + "cms_opendata_git": { + "https://github.com/ayrodrig/OutreachExercise2010.git": { + "source": [ + "https://github.com/ayrodrig/OutreachExercise2010.git" + ] + } + }, + "00459D48-EB70-E011-AF09-90E6BA19A252.root": { + "69836a0b460adbb47f76032fe1c7e0aa": { + "source": [ + "eospublic.cern.ch//eos/opendata/cms/Run2010B/Mu/AOD/Apr21ReReco-v1/0000/00459D48-EB70-E011-AF09-90E6BA19A252.root" + ] + } + }, + "cms_opendata.sh": { + "2f2051dff6ca75ff67e71f95e9271857": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/2f2051dff6ca75ff67e71f95e9271857/cms_opendata.sh" + ], + "format": "plain", + "checksum": "2f2051dff6ca75ff67e71f95e9271857", + "size": "726" + }, + "a6f9d99bcc08adb019ed6f3c31d9c090": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/a6f9d99bcc08adb019ed6f3c31d9c090/cms_opendata.sh" + ], + "format": "plain", + "checksum": "a6f9d99bcc08adb019ed6f3c31d9c090", + "size": "1444" + } + }, + "cms_simple.sh": { + "9d4b969f93743ded4a4830376b2038b9": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/9d4b969f93743ded4a4830376b2038b9/cms_simple.sh" + ], + "format": "plain", + "checksum": "9d4b969f93743ded4a4830376b2038b9", + "size": "348" + } + }, + "cms_complex.sh": { + "9f8587e9ef90ab4f5de8b3c9ab5cf0cb": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/9f8587e9ef90ab4f5de8b3c9ab5cf0cb/cms_complex.sh" + ], + "format": "plain", + "checksum": "9f8587e9ef90ab4f5de8b3c9ab5cf0cb", + "size": "399" + } + }, + "git_protocol.sh": { + "518876dbe4dca81bd19e823b6ea1f866": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/518876dbe4dca81bd19e823b6ea1f866/git_protocol.sh" + ], + "format": "plain", + "checksum": "518876dbe4dca81bd19e823b6ea1f866", + "size": "546" + } + }, + "4_cubes.pov": { + "c65266cd2b672854b821ed93028a877a": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/c65266cd2b672854b821ed93028a877a/4_cubes.pov" + ], + "format": "plain", + "checksum": "c65266cd2b672854b821ed93028a877a", + "size": "1757" + } + }, + "WRC_RubiksCube.inc": { + "2f8afdd09fc3a6177c6f1977bb3bdae7": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/2f8afdd09fc3a6177c6f1977bb3bdae7/WRC_RubiksCube.inc" + ], + "format": "plain", + "checksum": "2f8afdd09fc3a6177c6f1977bb3bdae7", + "size": "28499" + } + }, + "yum.conf": { + "33144cbf8a3bd638ff84948f3e26f31a": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/33144cbf8a3bd638ff84948f3e26f31a/yum.conf" + ], + "format": "plain", + "checksum": "33144cbf8a3bd638ff84948f3e26f31a", + "size": "984" + } + }, + "final_events_2381.lhe": { + "cb9878132aad42e7db30eabd214be8e2": { + "source": [ + "http://ccl.cse.nd.edu/research/data/hep-case-study/cb9878132aad42e7db30eabd214be8e2/final_events_2381.lhe" + ], + "format": "plain", + "checksum": "cb9878132aad42e7db30eabd214be8e2", + "size": "17840176" + } + } +} +``` + +### Naming Rules of Dependencies + +The name of a software dependency is in the format of 'A-B-C-D', where A is +the software name, B is the software version, C is OS distro name, D is +hardware architecture. `povray-3.6.1-redhat5-x86_64` is an example of this +category. + +The name of an OS image dependency is in the format of 'A-B-C', where A is the +OS name, B is the OS version, C is hardware architecture. `redhat-5.10-x86_64` +is an example of this category. + +There is no special limitation on the name of a data dependency. +`final_events_2381.lhe` is an example of this category. + + +#### Multiple Packages for One Dependency + +According to the building and compilation settings, there may be multiple +packages for one dependency. In this case, all the packages for one dependency +will be organized together and the `id` attribute of each package will be used +as item key to differentiate different packages. + +For example, for the software dependency `povray-3.6.1-redhat5-x86_64`, there +are two different packages: one with the id of +`9b7f2362e6b927c8ef08c3f92599e47c` and one with the id of `c9da9e46b3ce0f7f9885ce60077c45c5`. + +Each package may include the following attributes: source, checksum, size, +format, and uncompressed_size. + +#### Relationship of id and checksum and source + +The checksum of each package +in the archive can be used as the id of the package in our implementation of +metadata database. However, it is not necessary for them to be identical to +each other. You can implement your metadata database in a different semantics +once the id of each package is unique for one dependency. In case when the +checksum of one dependency is not provided or feasible, the first item of the +source section will be used. + +For example, in the above example, `cmssw-4.2.8-slc5-amd64` is delivered through cvmfs during runtime, and no +checksum is provided, the url from the source section, +`cvmfs://cvmfs/cms.cern.ch` is used as the id of this package. + +#### Organization of the Local Cache + +Within the local cache, the id of each package dependency will be used to +create a directory under the ` /cache`, then the package will be put +into `/cache/`. Therefore, +`/cache/9b7f2362e6b927c8ef08c3f92599e47c/povray-3.6.1-redhat5-x86_64.tar.gz` +will be the local location of the first povray package shown in the above +example. The uncompressed directory of the tarball will be +`/cache/9b7f2362e6b927c8ef08c3f92599e47c/povray-3.6.1-redhat5-x86_64`. + +#### Organization of the Remote Archive + +Within the remote archive, to differentiate multiple packages for the same +dependency and the different dependencies, a directory with the name of the +checksum of each package will be created and functions as the direct parent +directory of the package. Therefore, in the remote archive, there is a +directory named ` 9b7f2362e6b927c8ef08c3f92599e47c`, under which exists +`povray-3.6.1-redhat5-x86_64.tar.gz` However, the organization of the remote +archive can be in other format, once you have a way to differentiate the +packages. + +If you want to customize your own metadata database, please follow the +requirements above and then tell umbrella through `--meta` option to use your +own metadata database. For Example: + +```sh +$ umbrella --spec povray.umbrella --meta http://ccl.cse.nd.edu/software/umbrella/database/packages.json --localdir /tmp/umbrella_test/ --output "/tmp/frame000.png=/tmp/umbrella_test/local_povray" --sandbox_mode local --log umbrella.log run +``` + +There are two ways to create an Umbrella metadata database: + +1. Use `umbrella --spec spec_filename split new_spec_filename db_filename` to abstract all the +metadata information from a self-contained umbrella specification. + +2. Follow the format of the metadata database and create your own metadata +database manually. + + +#### Umbrella Support for CMS Application + +As for CMS applications which need software from CVMFS, Umbrella first checks +whether the execution node has CVMFS installed or not. If CVMFS is installed +and its CMS repository is mounted as ` /cvmfs/cms.cern.ch`, the application +can run directly without the help from sandboxing techniques. If CVMFS is not +installed or the mountpoint `/cvmfs/cms.cern.ch` is not found, +[Parrot](http://ccl.cse.nd.edu/software/parrot/) will be used to help access +software from CVMFS. + +Like other software dependencies, the dependency of CMSSW will be specified +inside the `software` section of the specification, however, you only need to +specify the `mountpoint` attribute. The `id` and `action` attributes for the +CMSSW dependency will be ignored even if they are specified. In fact, the +support for CMS applications are hardcoded inside the source code of Umbrella, +not inside the metadata database. + +If you want to run this CMS application through Umbrella, please check the Try +CMS Applications with Umbrella. + + +# Further Information + +Umbrella is Copyright (C) 2015 The University of Notre Dame. +All rights reserved. +This software is distributed under the GNU General Public License. +See the file COPYING for details. + +**Please use the following citation for Umbrella in a scientific +publication:** + + * Haiyan Meng and Douglas Thain, [Umbrella: A Portable Environment Creator for Reproducible Computing on Clusters, Clouds, and Grids](http://ccl.cse.nd.edu/research/papers/umbrella-vtdc15.pdf), Workshop on Virtualization Technologies in Distributed Computing (VTDC) at HPDC, June, 2015. DOI: 10.1145/2755979.2755982 + + +**Last edited: August 2019** + diff -Nru cctools-7.0.22/doc/manuals/umbrella/umbrella.log cctools-7.1.2/doc/manuals/umbrella/umbrella.log --- cctools-7.0.22/doc/manuals/umbrella/umbrella.log 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/umbrella/umbrella.log 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,28 @@ +2019-08-22 11:46:39.673 DEBUG umbrella - main: *******Welcome to Umbrella******* +2019-08-22 11:46:39.673 DEBUG umbrella - main: Arguments: +2019-08-22 11:46:39.673 DEBUG umbrella - main: ['/afs/crc.nd.edu/user/b/btovar/usr/x86_64/redhat7/cctools/bin/umbrella', '--spec', 'umbrella-hello-world.json', '--localdir', '/tmp/umbrella', '--output', '/tmp/frame000.png=/tmp/umbrella/hello.png--sandbox_mode', 'parrot', '--log', 'umbrella.log', 'run'] +2019-08-22 11:46:39.673 DEBUG umbrella - main: Start time: 2019-08-22 11:46:39.673565 +2019-08-22 11:46:39.673 DEBUG umbrella - main: Check the validity of the command .... +2019-08-22 11:46:39.673 DEBUG umbrella - main: Check the validity of the behavior: parrot +2019-08-22 11:46:39.673 CRITICAL umbrella - main: parrot is not supported by umbrella! +2019-08-22 11:48:11.393 DEBUG umbrella - main: *******Welcome to Umbrella******* +2019-08-22 11:48:11.393 DEBUG umbrella - main: Arguments: +2019-08-22 11:48:11.393 DEBUG umbrella - main: ['/afs/crc.nd.edu/user/b/btovar/usr/x86_64/redhat7/cctools/bin/umbrella', '--spec', 'umbrella-hello-world.json', '--localdir', '/tmp/umbrella', '--output', '/tmp/frame000.png=/tmp/umbrella/hello.png--sandbox_mode', 'parrot', '--log', 'umbrella.log', 'run'] +2019-08-22 11:48:11.393 DEBUG umbrella - main: Start time: 2019-08-22 11:48:11.393964 +2019-08-22 11:48:11.394 DEBUG umbrella - main: Check the validity of the command .... +2019-08-22 11:48:11.394 DEBUG umbrella - main: Check the validity of the behavior: parrot +2019-08-22 11:48:11.394 CRITICAL umbrella - main: parrot is not supported by umbrella! +2019-08-22 11:48:15.135 DEBUG umbrella - main: *******Welcome to Umbrella******* +2019-08-22 11:48:15.135 DEBUG umbrella - main: Arguments: +2019-08-22 11:48:15.135 DEBUG umbrella - main: ['/afs/crc.nd.edu/user/b/btovar/usr/x86_64/redhat7/cctools/bin/umbrella', '--spec', 'umbrella-hello-world.json', '--localdir', '/tmp/umbrella', '--output', '/tmp/frame000.png=/tmp/umbrella/hello.png--sandbox_mode', 'parrotx', '--log', 'umbrella.log', 'run'] +2019-08-22 11:48:15.135 DEBUG umbrella - main: Start time: 2019-08-22 11:48:15.135523 +2019-08-22 11:48:15.135 DEBUG umbrella - main: Check the validity of the command .... +2019-08-22 11:48:15.135 DEBUG umbrella - main: Check the validity of the behavior: parrotx +2019-08-22 11:48:15.135 CRITICAL umbrella - main: parrotx is not supported by umbrella! +2019-08-22 11:48:29.818 DEBUG umbrella - main: *******Welcome to Umbrella******* +2019-08-22 11:48:29.818 DEBUG umbrella - main: Arguments: +2019-08-22 11:48:29.818 DEBUG umbrella - main: ['/afs/crc.nd.edu/user/b/btovar/usr/x86_64/redhat7/cctools/bin/umbrella', '--spec', 'umbrella-hello-world.json', '--localdir', '/tmp/umbrella', '--output', '/tmp/frame000.png=/tmp/umbrella/hello.png--sandbox_mode', 'local', '--log', 'umbrella.log', 'run'] +2019-08-22 11:48:29.818 DEBUG umbrella - main: Start time: 2019-08-22 11:48:29.818405 +2019-08-22 11:48:29.818 DEBUG umbrella - main: Check the validity of the command .... +2019-08-22 11:48:29.818 DEBUG umbrella - main: Check the validity of the behavior: local +2019-08-22 11:48:29.818 CRITICAL umbrella - main: local is not supported by umbrella! diff -Nru cctools-7.0.22/doc/manuals/watchdog/index.md cctools-7.1.2/doc/manuals/watchdog/index.md --- cctools-7.0.22/doc/manuals/watchdog/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/watchdog/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,81 @@ +# Watchdog User's Manual + +## Overview + +Keeping a collection of processes running in large distributed system presents +many practical challenges. Machines reboot, programs crash, filesystems go up +and down, and software must be upgraded. Ensuring that a collection of +services is always running and up-to-date can require a large amount of manual +activity in the face of these challenges. + +**watchdog** is a tool for keeping server processes running continuously. The +idea is simple: watchdog is responsible for starting a server. If the server +should crash or exit, watchdog restarts it. If the program on disk is +upgraded, watchdog will cleanly stop and restart the server to take advantage +of the new version. To avoid storms of coordinated activity in a large +cluster, these actions are taken with an exponential backoff and a random +factor. + +**watchdog** is recommended for running the [chirp and catalog +servers](../chirp) found elsewhere in this package. + + +## Invocation + +To run a server under the eye of watchdog, simply place ` watchdog` in front +of the server name. + +That is, if you normally run: + +```sh +chirp_server -r /my/data -p 10101 +``` + +Then run this instead: + +```sh +watchdog chirp_server -r /my/data -p 10101 +``` + +For most situations, this is all that is needed. You may fine tune the behavior +of watchdog in the following ways: + +**Logging.** Watchdog keeps a log of all actions that it performs on the +watched process. Use the ` -d all` option to see them, and the `-o file` +option to direct them to a log file: + +```sh +# We use -- to separate the watchdog's options from the command to be executed: + +watchdog -dall -o my.log -- chirp_server -r /my/data -p 10101 +``` + +**Upgrading.** To upgrade servers running on a large cluster, simply install +the new binary in the filesystem. By default, each watchdog will check for an +upgraded binary once per hour and restart if necessary. Checks are randomly +distributed around the hour so that the network and/or filesystem will not be +overloaded. (To force a restart, send a SIGHUP to the watchdog.) Use the ` -c` +option to change the upgrade check interval. + +**Timing.** Watchdog has several internal timers to ensure that the system is +not overloaded by cyclic errors. These can be adjusted by various options (in +parentheses.) A minimum time of ten seconds (`-m`) must pass between a server +stop and restart, regardless of the cause of the restart. If the server exits +within the first minute (`-s`) of execution, it is considered to have failed. +For each such failure, the minimum restart time is doubled, up to a maximum of +one hour (`-M`). If the program must be stopped, it is first sent an advisory +SIGTERM signal. If it does not exit voluntarily within one minute (`-S`), then +it is killed outright with a SIGKILL signal. + + +# Further Information + +watchdog is Copyright (C) 2003-2004 Douglas Thain and Copyright (C) 2005- The +University of Notre Dame. +All rights reserved. +This software is distributed under the GNU General Public License. +See the file COPYING for details. + +Last edited: August 2019 + + diff -Nru cctools-7.0.22/doc/manuals/work_queue/examples/work_queue_example.c cctools-7.1.2/doc/manuals/work_queue/examples/work_queue_example.c --- cctools-7.0.22/doc/manuals/work_queue/examples/work_queue_example.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/work_queue/examples/work_queue_example.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,124 @@ +/* + * Copyright (C) 2008- The University of Notre Dame + * This software is distributed under the GNU General Public License. + * See the file COPYING for details. + * */ + +/* + * This program is a very simple example of how to use the Work Queue. + * It accepts a list of files on the command line. + * Each file is compressed with gzip and returned to the user. + * */ + +#include "work_queue.h" + +#include +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + struct work_queue *q; + struct work_queue_task *t; + int taskid; + int i; + char *gzip_path; + + if(argc < 2) { + printf("work_queue_example [file2] [file3] ...\n"); + printf("Each file given on the command line will be compressed using a remote worker.\n"); + return 0; + } + + /* + Usually, we can execute the gzip utility by simply typing its name at a + terminal. However, this is not enough for work queue; we have to specify + precisely which files need to be transmitted to the workers. We record + the location of gzip in 'gzip_path', which is usually found in /bin/gzip + or /usr/bin/gzip. We use the 'access' function (from unistd.h standard C + library), and test the path for execution (X_OK) and reading (R_OK) + permissions. + */ + gzip_path = "/bin/gzip"; + if(access(gzip_path, X_OK | R_OK) != 0) { + gzip_path = "/usr/bin/gzip"; + if(access(gzip_path, X_OK | R_OK) != 0) { + fprintf(stderr, "gzip was not found. Please modify the gzip_path variable accordingly. To determine the location of gzip, from the terminal type: which gzip (usual locations are /bin/gzip and /usr/bin/gzip)\n"); + exit(1); + } + } + + /* We create the tasks queue using the default port. If this port is + * already been used by another program, you can try changing the argument + * to work_queue_create to 0 to use an available port. */ + q = work_queue_create(WORK_QUEUE_DEFAULT_PORT); + if(!q) { + printf("couldn't create queue: %s\n", strerror(errno)); + return 1; + } + printf("listening on port %d...\n", work_queue_port(q)); + + /* We create and dispatch a task for each filename given in the argument list */ + for(i = 1; i < argc; i++) { + + char infile[256], outfile[256], command[1024]; + + sprintf(infile, "%s", argv[i]); + sprintf(outfile, "%s.gz", argv[i]); + + /* Note that we write ./gzip here, to guarantee that the gzip version + * we are using is the one being sent to the workers. */ + sprintf(command, "./gzip < %s > %s", infile, outfile); + + t = work_queue_task_create(command); + + /* gzip is the same across all tasks, so we can cache it in the + * workers. Note that when specifying a file, we have to name its local + * name (e.g. gzip_path), and its remote name (e.g. "gzip"). Unlike the + * following line, more often than not these are the same. */ + work_queue_task_specify_file(t, gzip_path, "gzip", WORK_QUEUE_INPUT, WORK_QUEUE_CACHE); + + /* files to be compressed are different across all tasks, so we do not + * cache them. This is, of course, application specific. Sometimes you + * may want to cache an output file if is the input of a later task.*/ + work_queue_task_specify_file(t, infile, infile, WORK_QUEUE_INPUT, WORK_QUEUE_NOCACHE); + work_queue_task_specify_file(t, outfile, outfile, WORK_QUEUE_OUTPUT, WORK_QUEUE_NOCACHE); + + /* Once all files has been specified, we are ready to submit the task to the queue. */ + taskid = work_queue_submit(q, t); + + printf("submitted task (id# %d): %s\n", taskid, t->command_line); + } + + printf("waiting for tasks to complete...\n"); + + while(!work_queue_empty(q)) { + + /* Application specific code goes here ... */ + + /* work_queue_wait waits at most 5 seconds for some task to return. */ + t = work_queue_wait(q, 5); + + if(t) { + printf("task (id# %d) complete: %s (return code %d)\n", t->taskid, t->command_line, t->return_status); + if(t->return_status != 0) + { + /* The task failed. Error handling (e.g., resubmit with new parameters) here. */ + } + + work_queue_task_delete(t); + } + + /* Application specific code goes here ... */ + } + + printf("all tasks complete!\n"); + + work_queue_delete(q); + + return 0; +} + +/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/doc/manuals/work_queue/examples/work_queue_example.pl cctools-7.1.2/doc/manuals/work_queue/examples/work_queue_example.pl --- cctools-7.0.22/doc/manuals/work_queue/examples/work_queue_example.pl 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/work_queue/examples/work_queue_example.pl 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,96 @@ +#! /usr/bin/env perl + +# Copyright (c) 2010- The University of Notre Dame. +# This software is distributed under the GNU General Public License. +# See the file COPYING for details. +# +# This program is a very simple example of how to use Work Queue. +# It accepts a list of files on the command line. +# Each file is compressed with gzip and returned to the user. + +use strict; +use warnings; + +use Work_Queue; + + +# Main program: +unless (@ARGV) { + die "work_queue_example [file2] [file3] ...\nEach file given on the command line will be compressed using a remote worker.\n"; +} + +# Usually, we can execute the gzip utility by simply typing its name at a +# terminal. However, this is not enough for work queue; we have to specify +# precisely which files need to be transmitted to the workers. We record the +# location of gzip in 'gzip_path', which is usually found in /bin/gzip or +# /usr/bin/gzip. +my $gzip_path = find_executable('gzip') || die "Could not find gzip anywhere in \$PATH"; + +# We create the tasks queue using the default port. If this port is already +# been used by another program, you can try setting port = 0 to use an +# available port. + +my $q = Work_Queue->new(port => $Work_Queue::WORK_QUEUE_DEFAULT_PORT) || die "Instantiation of Work Queue failed! ($!)\n"; + +print "listening on port @{[$q->port]}...\n"; + +# We create and dispatch a task for each filename given in the argument list +for my $infile (@ARGV) { + my $outfile = $infile . ".gz"; + + # Note that we write ./gzip here, to guarantee that the gzip + # version we are using is the one being sent to the workers. + my $command = "./gzip <$infile >$outfile"; + my $t = Work_Queue::Task->new($command); + + # gzip is the same across all tasks, so we can cache (the default) + # it in the workers. Note that when specifying a file, we have + # to name its local name (e.g. gzip_path), and its remote name + # (e.g. "gzip"). Unlike the following line, more often than not + # these are the same. + $t->specify_input_file(local_name => $gzip_path, remote_name=>'gzip'); + + # files to be compressed are different across all tasks, so we do + # not cache them. This is, of course, application + # specific. Sometimes you may want to cache an output file if is + # the input of a later task. Note that remote_name defaults to + # local_name when absent. + $t->specify_input_file(local_name => $infile, cache => $Work_Queue::WORK_QUEUE_NOCACHE); + $t->specify_output_file(local_name => $outfile, cache => $Work_Queue::WORK_QUEUE_NOCACHE); + + # Once all files has been specified, we are ready to submit the + # task to the queue. + my $taskid = $q->submit($t); + print "submitted task (id# ", $t->id, '): ', $t->command, "\n"; +} + +print "waiting for tasks to complete...\n"; + +while (not $q->empty) { + my $t = $q->wait(5); + + if($t) { + print 'task (id# ', $t->id, ') complete: ', $t->command, '(return code ', $t->return_status, ")\n"; + + if($t->return_status != 0) { + # Task failed. Error handling here. + } + } +} + +print "all tasks complete!\n"; + +sub find_executable { + my $executable = shift; + + my @dirs = split ':', $ENV{PATH}; + push @dirs, '.'; + + my @paths = map { "$_/$executable" } @dirs; + + for my $path (@paths) { + return $path if -x $path; + } + + undef; +} diff -Nru cctools-7.0.22/doc/manuals/work_queue/examples/work_queue_example.py cctools-7.1.2/doc/manuals/work_queue/examples/work_queue_example.py --- cctools-7.0.22/doc/manuals/work_queue/examples/work_queue_example.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/work_queue/examples/work_queue_example.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,87 @@ +#!/usr/bin/env python + +# Copyright (c) 2010- The University of Notre Dame. +# This software is distributed under the GNU General Public License. +# See the file COPYING for details. + +# This program is a very simple example of how to use Work Queue. +# It accepts a list of files on the command line. +# Each file is compressed with gzip and returned to the user. + +from work_queue import * + +import os +import sys + +# Main program +if __name__ == '__main__': + if len(sys.argv) < 2: + print("work_queue_example [file2] [file3] ...") + print("Each file given on the command line will be compressed using a remote worker.") + sys.exit(1) + + # Usually, we can execute the gzip utility by simply typing its name at a + # terminal. However, this is not enough for work queue; we have to + # specify precisely which files need to be transmitted to the workers. We + # record the location of gzip in 'gzip_path', which is usually found in + # /bin/gzip or /usr/bin/gzip. + + gzip_path = "/bin/gzip" + if not os.path.exists(gzip_path): + gzip_path = "/usr/bin/gzip" + if not os.path.exists(gzip_path): + print("gzip was not found. Please modify the gzip_path variable accordingly. To determine the location of gzip, from the terminal type: which gzip (usual locations are /bin/gzip and /usr/bin/gzip)") + sys.exit(1); + + # We create the tasks queue using the default port. If this port is already + # been used by another program, you can try setting port = 0 to use an + # available port. + try: + q = WorkQueue(port = WORK_QUEUE_DEFAULT_PORT) + except: + print("Instantiation of Work Queue failed!") + sys.exit(1) + + print("listening on port %d..." % q.port) + + # We create and dispatch a task for each filename given in the argument list + for i in range(1, len(sys.argv)): + infile = "%s" % sys.argv[i] + outfile = "%s.gz" % sys.argv[i] + + # Note that we write ./gzip here, to guarantee that the gzip version we + # are using is the one being sent to the workers. + command = "./gzip < %s > %s" % (infile, outfile) + + t = Task(command) + + # gzip is the same across all tasks, so we can cache it in the workers. + # Note that when specifying a file, we have to name its local name + # (e.g. gzip_path), and its remote name (e.g. "gzip"). Unlike the + # following line, more often than not these are the same. + t.specify_file(gzip_path, "gzip", WORK_QUEUE_INPUT, cache=True) + + # files to be compressed are different across all tasks, so we do not + # cache them. This is, of course, application specific. Sometimes you may + # want to cache an output file if is the input of a later task. + t.specify_file(infile, infile, WORK_QUEUE_INPUT, cache=False) + t.specify_file(outfile, outfile, WORK_QUEUE_OUTPUT, cache=False) + + # Once all files has been specified, we are ready to submit the task to the queue. + taskid = q.submit(t) + print("submitted task (id# %d): %s" % (taskid, t.command)) + + print("waiting for tasks to complete...") + while not q.empty(): + t = q.wait(5) + if t: + print("task (id# %d) complete: %s (return code %d)" % (t.id, t.command, t.return_status)) + if t.return_status != 0: + # The task failed. Error handling (e.g., resubmit with new parameters, examine logs, etc.) here + None + #task object will be garbage collected by Python automatically when it goes out of scope + + print("all tasks complete!") + + #work queue object will be garbage collected by Python automatically when it goes out of scope + sys.exit(0) diff -Nru cctools-7.0.22/doc/manuals/work_queue/index.md cctools-7.1.2/doc/manuals/work_queue/index.md --- cctools-7.0.22/doc/manuals/work_queue/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/work_queue/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,1044 @@ +# Work Queue User's Manual + +## Overview + +Work Queue is a framework for building large scale master-worker applications. +Using the Work Queue library, you create a custom master program that defines +and submits a large number of small tasks. Each task is distributed to a +remote worker process which executes it and returns the results. As results +are created, the master may generate more tasks to be executed. It is not +unusual to write programs that distribute millions of tasks to thousands of +remote workers. + +Each worker process is a common executable that can be deployed within +existing cluster and cloud systems, so it's easy to deploy a Work Queue +application to run on machines that you already have access to. Whether you +use a university batch system or a commercial cloud provider, your Work Queue +application will be able to run there. + +Work Queue is a production framework that has been used to create highly +scalable scientific applications in high energy physics, bioinformatics, data +mining, and other fields. It can also be used as an execution system for the +[Makeflow](http://ccl.cse.nd.edu/software/makeflow) workflow engine. To see +some of the Work Queue applications running right now, view the [real time +status page](http://ccl.cse.nd.edu/software/workqueue/status). + +## Getting Started + +### Installing + +See the [Installation Instructions](../install) for the Cooperative Computing Tools package. Then, make sure to set your `PATH` appropriately. + +The documentation for the full set of features of the Work Queue +API can be viewed from either within the CCTools package or +[here](http://ccl.cse.nd.edu/software/manuals/api/html/work__queue_8h.html) and +[here](http://ccl.cse.nd.edu/software/manuals/api/html/namespaceWorkQueuePython.html). + +## Building a Work Queue Application + +We begin by running a simple but complete example of a Work Queue application. +After trying it out, we will then show how to write a Work Queue application +from scratch. + +We assume that you have downloaded and installed the cctools package in your +home directory under `$HOME/cctools`. Next, download the example file for the +language of your choice: + + * Python: [work_queue_example.py](examples/work_queue_example.py) + * Perl: [work_queue_example.pl](examples/work_queue_example.pl) + * C: [work_queue_example.c](examples/work_queue_example.c) + +If you are using the Python example, set `PYTHONPATH` to include the Python +modules in cctools: (You may need to adjust the version number to match your +Python.) + +```sh +$ PYVER=$(python -c 'import sys; print("%s.%s" % sys.version_info[:2])') +$ export PYTHONPATH=${PYTHONPATH}:${HOME}/cctools/lib/python${PYVER}/site-packages +``` + +If you are using the Perl example, set `PERL5LIB` to include the Perl modules in +cctools: + +```sh +$ export PERL5LIB=${PERL5LIB}:${HOME}/cctools/lib/perl5/site_perl +``` + + +If you are using the C example, compile it like this: + +```sh +$ gcc work_queue_example.c -o work_queue_example -I${HOME}/cctools/include/cctools -L${HOME}/cctools/lib -lwork_queue -ldttools -lm -lz +``` + + + +## Running a Work Queue Application + +The example application simply compresses a bunch of files in parallel. The +files to be compressed must be listed on the command line. Each will be +transmitted to a remote worker, compressed, and then sent back to the Work +Queue master. To compress files `a`, `b`, and `c` with this example +application, run it as: + +```sh +# Python: +$ ./work_queue_example.py a b c + +# Perl: +$ ./work_queue_example.pl a b c + +# C +$ ./work_queue_example a b c +``` + + +You will see this right away: + + +```sh +listening on port 9123... +submitted task: /usr/bin/gzip < a > a.gz +submitted task: /usr/bin/gzip < b > b.gz +submitted task: /usr/bin/gzip < c > c.gz +waiting for tasks to complete... +``` + + +The Work Queue master is now waiting for workers to connect and begin +requesting work. (Without any workers, it will wait forever.) You can start +one worker on the same machine by opening a new shell and running: + + +```sh +# Substitute the name of your machine for MACHINENAME. +$ work_queue_worker MACHINENAME 9123 +``` + +If you have access to other machines, you can `ssh` there and run workers as +well. In general, the more you start, the faster the work gets done. If a +worker should fail, the work queue infrastructure will retry the work +elsewhere, so it is safe to submit many workers to an unreliable system. + +If you have access to a Condor pool, you can use this shortcut to submit ten +workers at once via Condor: + +```sh +$ condor_submit_workers MACHINENAME 9123 10 + +Submitting job(s).......... +Logging submit event(s).......... +10 job(s) submitted to cluster 298. +``` + + +Or, if you have access to an SGE cluster, do this: + +```sh +$ sge_submit_workers MACHINENAME 9123 10 + +Your job 153083 ("worker.sh") has been submitted +Your job 153084 ("worker.sh") has been submitted +Your job 153085 ("worker.sh") has been submitted +... +``` + + +Similar scripts are available for other common batch systems: + +```sh +$ pbs_submit_workers MACHINENAME 9123 10 + +$ torque_submit_workers MACHINENAME 9123 10 + +$ slurm_submit_workers MACHINENAME 9123 10 + +$ ec2_submit_workers MACHINENAME 9123 10 +``` + +When the master completes, if the workers were not shut down in the master, +your workers will still be available, so you can either run another master +with the same workers, or you can remove the workers with `kill`, `condor_rm`, +or `qdel` as appropriate. If you forget to remove them, they will exit +automatically after fifteen minutes. (This can be adjusted with the `-t` +option to `worker`.) + +## Writing a Work Queue Master Program + +The easiest way to start writing your own program using WorkQueue is to modify +with one of the examples in [Python](examples/work_queue_example.py), +[Perl](examples/work_queue_example.pl), or [C](examples/work_queue_example.c). +The basic outline of a WorkQueue master is: + +1. Create and configure the tasks' queue. +2. Create tasks and add them to the queue. +3. Wait for tasks to complete. + +To create a new queue listening on port 9123: + +#### Python + +```python +import work_queue as wq + +# create a new queue listening on port 9123 +q = wq.WorkQueue(9123) +``` + +#### Perl + +```perl +use Work_Queue; + +# create a new queue listening on port 9123 +my $q = Work_Queue->new(9123); +``` + +#### C + +```C +#include "work_queue.h" + +# create a new queue listening on port 9123 +struct work_queue *q = work_queue_create(9123); +``` + +The master then creates tasks to submit to the queue. Each task consists of a +command line to run and a statement of what data is needed, and what data will +be produced by the command. Input data can be provided in the form of a file +or a local memory buffer. Output data can be provided in the form of a file or +the standard output of the program. It is also required to specify whether the +data, input or output, need to be cached at the worker site for later use. + +In the example, we specify a command `./gzip` that takes a single input file +`my-file` and produces a single output file `my-file.gz`. We then create a task +by providing the specified command as an argument: + +#### Python + +```python +t = wq.Task("./gzip < my-file > my-file.gz") +``` + +#### Perl + +```perl +my $t = Work_Queue::Task->new("./gzip < my-file > my-file.gz"); +``` + +#### C + +```C +struct work_queue_task *t = work_queue_task_create("./gzip < my-file > my-file.gz"); +``` + +The input and output files associated with the execution of the task must be +explicitly specified. In the example, we also specify the executable in the +command invocation as an input file so that it is transferred and installed in +the working directory of the worker. We require this executable to be cached +so that it can be used by subsequent tasks that need it in their execution. On +the other hand, the input and output of the task are not required to be cached +since they are not used by subsequent tasks in this example. + + +#### Python + +```python +# t.specify_input_file("name at master", "name when copied at execution site", ...) + +t.specify_input_file("/usr/bin/gzip", "gzip", cache = True) +t.specify_input_file("my-file", "my-file", cache = False) +t.specify_output_file("my-file.gz", "my-file.gz", cache = False) + +# when the name at master is the same as the exection site, we can write instead: +t.specify_input_file("my-file", cache = False) +t.specify_output_file("my-file.gz", cache = False) +``` + +#### Perl + +```perl +# $t->specify_input_file(local_name => "name at master", remote_name => "name when copied at execution site", ...); + +$t->specify_input_file(local_name => "/usr/bin/gzip", remote_name => "gzip", cache = True); +$t->specify_input_file(local_name => "my-file", remote_name => "my-file", cache = False); +$t->specify_output_file(local_name => "my-file.gz", remote_name => "my-file.gz", cache = False); + +# when the name at master is the same as the exection site, we can write instead: +$t->specify_input_file(local_name => "my-file", cache = False); +$t->specify_output_file(local_name => "my-file.gz", cache = False); +``` + + +#### C + +```C +# work_queue_task_specify_file(t, "name at master", "name when copied at execution site", ...) + +work_queue_task_specify_file(t, "/usr/bin/gzip", "gzip", WORK_QUEUE_INPUT, WORK_QUEUE_CACHE); +work_queue_task_specify_file(t, "my-file", "my-file", WORK_QUEUE_INPUT, WORK_QUEUE_NOCACHE); +work_queue_task_specify_file(t, "my-file.gz", "my-file.gz", WORK_QUEUE_OUTPUT, WORK_QUEUE_NOCACHE); +``` + +Note that the specified input directories and files for each task are +transferred and setup in the sandbox directory of the worker (unless an +absolute path is specified for their location). This sandbox serves as the +initial working directory of each task executed by the worker. The task +outputs are also stored in the sandbox directory (unless an absolute path is +specified for their storage). The path of the sandbox directory is exported to +the execution environment of each worker through the `WORK_QUEUE_SANDBOX` shell +environment variable. This shell variable can be used in the execution +environment of the worker to describe and access the locations of files in the +sandbox directory. + +We can also run a program that is already installed at the remote site, where +the worker runs, by specifying its installed location in the command line of +the task (and removing the specification of the executable as an input file). +For example: + +#### Python + +```python +t = Task("/usr/bin/gzip < my-file > my-file.gz") +``` + +#### Perl + +```perl +my $t = Work_Queue::Task->new("/usr/bin/gzip < my-file > my-file.gz") +``` + +#### C + +```C +struct work_queue_task *t = work_queue_task_create("/usr/bin/gzip < my-file > my-file.gz"); +``` + +Once a task has been fully specified, it can be submitted to the queue where it +gets assigned a unique taskid: + +### Python + +```python +taskid = q.submit(t) +``` + +### Perl + +```perl +my $taskid = $q->submit($t) +``` + +#### C + +```C +int taskid = work_queue_submit(q,t); +``` + +Next, wait for a task to complete, stating how long you are willing to wait for +a result, in seconds: + +#### Python + +```python +while not q.empty(): + t = q.wait(5) + if t: + print("Task {} has returned!".format(t.id)) + + if t.return_status == 0: + print("command exit code:\n{}".format(t.exit_code)) + print("stdout:\n{}".format(t.output)) + else: + print("There was a problem executing the task.") +``` + +#### Perl + +```perl +while(not $q->empty()) { + my $t = $q->wait(5) + if($t) { + print("Task @{[$t->id]} has returned!\n"); + + if($t->{return_status} == 0) { + print("command exit code:\n@{[$t->{exit_code}]}\n"); + print("stdout:\n@{[$t->{output}]}\n"); + } else { + print("There was a problem executing the task.\n"); + } + } +} +``` + +#### C + +```C +while(!work_queue_empty(q)) { + struct work_queue_task *t = work_queue_wait(q,5); + if(t) { + printf("Task %d has returned!\n", t->taskid); + if(t->return_status == 0) { + printf("command exit code: %d\n", t->exit_code); + printf("stdout: %s\n", t->output); + } else { + printf("There was a problem executing the task.\n"); + } + + } +} +``` + +A completed task will have its output files written to disk. You may examine +the standard output of the task in `output` and the exit code in +`exit_status`. + +!!! note + The size of `output` is limited to 1 GB. Any output beyond 1 GB will be + truncated. So, please redirect the stdout `./my-command > my-stdout` of the + task to a file and specify the file as an output file of the task as + described above. + +When you are done with the task, delete it (only needed for C): + +#### C +```C +work_queue_task_delete(t); +``` + +Continue submitting and waiting for tasks until all work is complete. You may +check to make sure that the queue is empty with `work_queue_empty`. When all +is done, delete the queue (only needed for C): + +#### C + +```C +work_queue_delete(q); +``` + + +Full details of all of the Work Queue functions can be found in the [Work Queue API](http://ccl.cse.nd.edu/software/manuals/api/html/work__queue_8h.html). + + +## Project Names and the Catalog Server + +Keeping track of the master's hostname and port can get cumbersome, especially +if there are multiple masters. To help with difficulty, we provide the project +name feature to identify a Work Queue master with a more recognizable project +name. Work Queue workers can then be started for their masters by providing +the project names. + +The project name feature uses the **catalog server** to maintain and track the +project names of masters and their respective locations. It works as follows: +the master advertises its project name along with its hostname and port to the +catalog server. Work Queue workers that are provided with the master's project +name query the catalog server to find the hostname and port of the master with +the given project name. So, to utilize this feature, the master must be +specified to run in the `WORK_QUEUE_MASTER_MODE_CATALOG`. See [Catalog +Servers](../catalog) for details on specifying catalog servers. + +For example, to have a Work Queue master advertise its project name as +`myproject`, add the following code snippet after creating the queue: + +#### Python +```python +q = wq.WorkQueue(name = "myproject") +``` + +#### Perl +```perl +my $q = Work_Queue->new(name => "myproject"); +``` + +#### C + +```C +work_queue_specify_name(q, "myproject"); +``` + + + +To start a worker for this master, specify the project name (`myproject`) to +connect in the `-M` option: + +```sh +$ work_queue_worker -M myproject +``` + + +You can start ten workers for this master on Condor using +`condor_submit_workers` by providing the same option arguments.: + +```sh +$ condor_submit_workers -M myproject 10 +Submitting job(s).......... +Logging submit event(s).......... +10 job(s) submitted to cluster 298. +``` + +Or similarly on SGE using `sge_submit_workers` as: + +```sh +$ sge_submit_workers -M myproject 10 +Your job 153097 ("worker.sh") has been submitted +Your job 153098 ("worker.sh") has been submitted +Your job 153099 ("worker.sh") has been submitted +... +``` + +## Task Resources + +Unless otherwise specified, Work Queue assumes that a single task runs on a +single worker at a time, and a single worker occupies an entire machine. + +However, if you have large multi-core machines and multi-threaded tasks, you +will want one worker to manage multiple tasks running on a machine. For +example, if you have a 8-core machine, then you might want to run four 2-core +tasks on a single worker at once, being careful not to exceed the available +memory and disk. + +By default a worker tries to use all the resources of the machine it is +running. You can specify the exact number of cores, memory, and disk to use +like this: + +```sh +$ work_queue_worker --cores 8 --memory 1000 --disk 8000 -M myproject +``` + +To run several task in a worker, every task must have a description of the +resources it uses, in terms of cores, memory, and disk: + + +#### Python + +```python +t.specify_cores(2) #needs 2 cores +t.specify_memory(100) #needs 100 MB memory +t.specify_disk(1000) #needs 1 GB disk +``` + +#### Perl + +```perl +$t->specify_cores(2); #needs 2 cores +$t->specify_memory(100); #needs 100 MB memory +$t->specify_disk(1000); #needs 1 GB disk +``` + +#### C + +```C +work_queue_task_specify_cores(t, 2); //needs 2 cores +work_queue_task_specify_memory(t, 100); //needs 100 MB memory +work_queue_task_specify_disk(t, 1000); //needs 1 GB disk +``` + +Note that if no requirements are specified, a task consumes an entire worker. +**All resource requirements must be specified in order to run multiple tasks on +a single worker.** For example, if you annotate a task as using 1 core, but +don't specify its memory or disk requirments, Work Queue will only schedule one +task to a two-core worker. However, if you annotate the core, memory, and disc +requirements for a task, Work Queue can schedule two such tasks to a two- task +worker, assuming it has the available memory and disk requirements for each +individual task. + +You may also use the `--cores`, `--memory`, and `--disk` options when using +batch submission scripts such as `condor_submit_workers` or +`slurm_submit_workers`, and the script will correctly ask the batch system for +an appropiate node. + +The only caveat is when using `sge_submit_workers`, as there are many +differences across systems that the script cannot manage. For ` +sge_submit_workers ` you have to specify **both** the resources used by the +worker (i.e., with `--cores`, etc.) and the appropiate computing node with the ` +-p ` option. + +For example, say that your local SGE installation requires you to specify the +number of cores with the switch ` -pe smp ` , and you want workers with 4 +cores: + +```sh +$ sge_submit_workers --cores 4 -p "-pe smp 4" MACHINENAME 9123 +``` + +If you find that there are options that are needed everytime, you can compile +CCTools using the ` --sge-parameter `. For example, at Notre Dame we +automatically set the number of cores as follows: + +```sh +$ ./configure --sge-parameter '-pe smp $cores' +``` + + +So that we can simply call: + +```sh +$ sge_submit_workers --cores 4 MACHINENAME 9123 +``` + +The variables `$cores `, `$memory `, and `$disk `, have the values of the +options passed to `--cores`, `--memory`, `--disk. ` + + +## Recommended Practices + +### Security + +By default, Work Queue does **not** perform any authentication, so any workers +will be able to connect to your master, and vice versa. This may be fine for a +short running anonymous application, but is not safe for a long running +application with a public name. + +We recommend that you enable a password for your applications. Create a file +(e.g. ` mypwfile`) that contains any password (or other long phrase) that you +like (e.g. `This is my password`). The password will be particular to your +application and should not match any other passwords that you own. Note that +the contents of the file are taken verbatim as the password; this means that +any new line character at the end of the phrase will be considered as part of +the password. + +Then, modify your master program to use the password: + +#### Python + +```python +q.specify_password_file("mypwfile") +``` + +#### Perl + +```perl +$q->specify_password_file("mypwfile"); +``` + +#### C + +```C +work_queue_specify_password_file(q,"mypwfile"); +``` + + +And give the `--password` option to give the same password file to your +workers: + +```sh +$ work_queue_worker --password mypwfile -M myproject +``` + +With this option enabled, both the master and the workers will verify that the +other has the matching password before proceeding. The password is not sent in +the clear, but is securely verified through a SHA1-based challenge-response +protocol. + +### Debugging + +Work Queue can be set up to print debug messages at the master and worker to +help troubleshoot failures, bugs, and errors. To activate debug output: + + +#### Python + +```python +q = wq.WorkQueue(debug_log = "my.debug.log") +``` + +#### Perl + +```perl +my $q = Work_Queue->new(debug_log => "my.debug.log"); +``` + +#### C + +```C +#include "debug.h" + +cctools_debug_flags_set("all"); +cctools_debug_config_file("my.debug.log"); +``` + +The `all` flag causes debug messages from every subsystem called by Work Queue +to be printed. More information about the debug flags are +[here](http://ccl.cse.nd.edu/software/manuals/api/html/debug_8h.html). + + +To enable debugging at the worker, set the `-d` option: + + +```sh +$ work_queue_worker -d all -o worker.debug -M myproject +``` + + +### Logging and Plotting + +You can specify a log file to obtain a time series of work queue statistics as +follows: + +#### Python + +```python +q = wq.WorkQueue(stats_log = "my.statslog") +``` + +#### Perl + +```perl +my $q = Work_Queue->new(stats_log => "my.stats.log"); +``` + +#### C + +```C +work_queue_specify_log(q, "my.stats.log"); +``` + +The script `work_queue_graph_log` is a wrapper for `gnuplot`, and with it you +can plot some of the statistics, such as total time spent transfering tasks, +number of tasks running, and workers connected: + +```sh +$ work_queue_graph_log -o myplots my.stats.log +$ ls *.png +$ ... my.stats.log.tasks.png my.stats.log.tasks-log.png my.stats.log.time.png my.stats.log.time-log.png ... +``` + + +We find it very helpful to plot these statistics when diagnosing a problem with +work queue applications. + + +## Advanced Topics + +A variety of advanced features are available for programs with unusual needs +or very large scales. Each feature is described briefly here, and more details +may be found in the [Work Queue +API](http://ccl.cse.nd.edu/software/manuals/api/html/work__queue_8h.html). + +### Pipelined Submission. + +If you have a **very** large number of tasks to run, it may not be possible to +submit all of the tasks, and then wait for all of them. Instead, submit a +small number of tasks, then alternate waiting and submiting to keep a constant +number in the queue. The `hungry` will tell you if more submission are +warranted: + +#### Python + +```python +if q.hungry(): + # submit more tasks... +``` + +#### Perl + +```perl +if($q->hungry()) { + # submit more tasks... +} +``` + +#### C + +```C +if(q->hungry()) { + // submit more tasks... +} +``` + + +### Watching Output Files + +If you would like to see the output of a task as it is produced, add +`WORK_QUEUE_WATCH` to the flags argument of `specify_file`. This will +cause the worker to periodically send output appended to that file back to the +master. This is useful for a program that produces a log or progress bar as +part of its output. + +#### Python +```python +t.specify_output_file("my-file", flags = wq.WORK_QUEUE_WATCH) +``` + +#### Perl +```perl +$t->specify_output_file(local_name => "my-file", flags = wq.WORK_QUEUE_WATCH) +``` + +#### C +```C +work_queue_task_specify_file(t, "my-file", "my-file", WORK_QUEUE_OUTPUT, WORK_QUEUE_NOCACHE | WORK_QUEUE_WATCH); +``` + +### Fast Abort + +A large computation can often be slowed down by stragglers. If you have a +large number of small tasks that take a short amount of time, then Fast Abort +can help. The Fast Abort feature keeps statistics on tasks execution times and +proactively aborts tasks that are statistical outliers: + +#### Python +```python +# Kill workers that are executing tasks twice as slow as compared to the +# average. +q.activate_fast_abort(2) +``` + +#### Perl +```perl +# Kill workers that are executing tasks twice as slow as compared to the +# average. +$q->activate_fast_abort(2); +``` + +#### C +```C +// Kill workers that are executing tasks twice as slow as compared to the +// average. +work_queue_activate_fast_abort(q, 2); +``` + +### String Interpolation + +If you have workers distributed across multiple operating systems (such as +Linux, Cygwin, Solaris) and/or architectures (such as i686, x86_64) and have +files specific to each of these systems, this feature will help. The strings +$OS and $ARCH are available for use in the specification of input file names. +Work Queue will automatically resolve these strings to the operating system +and architecture of each connected worker and transfer the input file +corresponding to the resolved file name. For example: + +#### Python +```C +t.specify_input_file("my-executable.$OS.$ARCH", "my-exe") +``` + +#### Perl +```perl +$t->specify_output_file(local_name => "my-executable.$OS.$ARCH", remote_name => "my-exe"); +``` + +#### C + +```C +work_queue_task_specify_file(t,"my-executable.$OS.$ARCH","./my-exe",WORK_QUEUE_INPUT,WORK_QUEUE_CACHE); +``` + +This will transfer `my-executable.Linux.x86_64` to workers running on a Linux +system with an x86_64 architecture and `a.Cygwin.i686` to workers on Cygwin +with an i686 architecture. + +Note this feature is specifically designed for specifying and distingushing +input file names for different platforms and architectures. Also, this is +different from the $WORK_QUEUE_SANDBOX shell environment variable that exports +the location of the working directory of the worker to its execution +environment. + + +### Task Cancellations + +This feature is useful in workflows where there are redundant tasks or tasks +that become obsolete as other tasks finish. Tasks that have been submitted can +be cancelled and immediately retrieved without waiting for Work Queue to +return them in `work_queue_wait`. The tasks to cancel can be identified by +either their `taskid` or `tag`. For example: + +```python +# create task as usual and tag it with an arbitrary string. +t = wq.Task(...) +t.specify_tag("my-tag") + +taskid = q.submit(t) + +# cancel task by id. Return the canceled task. +t = q.cancel_by_taskid(taskid) + +# or cancel task by tag. Return the canceled task. +t = q.cancel_by_tasktag("my-tag") +``` + + +```perl +# create task as usual and tag it with an arbitrary string. +my $t = Work_Queue::Task->new(...) +my $t->specify_tag("my-tag") + +my taskid = $q->submit($t); + +# cancel task by id. Return the canceled task. +$t = $q->cancel_by_taskid(taskid); + +# or cancel task by tag. Return the canceled task. +$t = $q->cancel_by_tasktag("my-tag"); +``` + +```C +// create task as usual and tag it with an arbitrary string. +struct work_queue_task *t = work_queue_task_create("..."); +work_queue_specify_task(t, "my-tag"); + +int taskid = work_queue_submit(q, t); + +// cancel task by id. Return the canceled task. +t = work_queue_cancel_by_taskid(q, taskid); + +# or cancel task by tag. Return the canceled task. +t = work_queue_cancel_by_tasktag(q, "my-tag"); +``` + + +!!! note + If several tasks have the same tag, only one of them is cancelled. If you + want to cancel all the tasks with the same tag, you can use loop until + `cancel_by_task` does not return a task, as in: +``` + while q->cancel_by_taskid("my-tag"): + pass +``` + + +### Worker Blacklist + +You may find that certain hosts are not correctly configured to run your +tasks. The master can be directed to ignore certain workers with the blacklist +feature. For example: + +#### Python +```python +t = q.wait(5) + +# if t fails given a worker misconfiguration: +q.blacklist(t.hostname) +``` + +#### Perl +```perl +my $t = $q->wait(5); + +# if $t fails given a worker misconfiguration: +$q->blacklist($t->hostname); +``` + +#### C +```C +struct work_queue_task *t = work_queue_wait(q, t); + +//if t fails given a worker misconfiguration: +work_queue_blacklist_add(q, t->{hostname}); +``` + +### Performance Statistics + +The queue tracks a fair number of statistics that count the number of tasks, +number of workers, number of failures, and so forth. This information is useful +to make a progress bar or other user-visible information: + +#### Python +```python +stats = q.stats +print(stats.workers_busy) +``` + +#### Perl +```perl +my $stats = $q->stats; +print($stats->{task_running}); +``` + +#### C +```C +struct work_queue_stats stats; +work_queue_get_stats(q, &stats); +printf("%d\n", stats->workers_connected); +``` + +The statistics available are: + +| Field | Description +|-------|------------ +|- | **Stats for the current state of workers** +| workers_connected; | Number of workers currently connected to the master. +| workers_init; | Number of workers connected, but that have not send their available resources report yet +| workers_idle; | Number of workers that are not running a task. +| workers_busy; | Number of workers that are running at least one task. +| workers_able; | Number of workers on which the largest task can run. +| +|- | **Cumulative stats for workers** +| workers_joined; | Total number of worker connections that were established to the master. +| workers_removed; | Total number of worker connections that were released by the master, idled-out, fast-aborted, or lost. +| workers_released; | Total number of worker connections that were asked by the master to disconnect. +| workers_idled_out; | Total number of worker that disconnected for being idle. +| workers_fast_aborted; | Total number of worker connections terminated for being too slow. +| workers_blacklisted ; | Total number of workers blacklisted by the master. (Includes fast-aborted.) +| workers_lost; | Total number of worker connections that were unexpectedly lost. (does not include idled-out or fast-aborted) +| +|- | **Stats for the current state of tasks** +| tasks_waiting; | Number of tasks waiting to be dispatched. +| tasks_on_workers; | Number of tasks currently dispatched to some worker. +| tasks_running; | Number of tasks currently executing at some worker. +| tasks_with_results; | Number of tasks with retrieved results and waiting to be returned to user. +| +|- | **Cumulative stats for tasks** +| tasks_submitted; | Total number of tasks submitted to the queue. +| tasks_dispatched; | Total number of tasks dispatch to workers. +| tasks_done; | Total number of tasks completed and returned to user. (includes tasks_failed) +| tasks_failed; | Total number of tasks completed and returned to user with result other than WQ_RESULT_SUCCESS. +| tasks_cancelled; | Total number of tasks cancelled. +| tasks_exhausted_attempts; | Total number of task executions that failed given resource exhaustion. +| +| - | **Master time statistics (in microseconds)** +| time_when_started; | Absolute time at which the master started. +| time_send; | Total time spent in sending tasks to workers (tasks descriptions, and input files.). +| time_receive; | Total time spent in receiving results from workers (output files.). +| time_send_good; | Total time spent in sending data to workers for tasks with result WQ_RESULT_SUCCESS. +| time_receive_good; | Total time spent in sending data to workers for tasks with result WQ_RESULT_SUCCESS. +| time_status_msgs; | Total time spent sending and receiving status messages to and from workers, including workers' standard output, new workers connections, resources updates, etc. +| time_internal; | Total time the queue spents in internal processing. +| time_polling; | Total time blocking waiting for worker communications (i.e., master idle waiting for a worker message). +| time_application; | Total time spent outside work_queue_wait. +| +| - | **Wrokers time statistics (in microseconds)** +| time_workers_execute; | Total time workers spent executing done tasks. +| time_workers_execute_good; | Total time workers spent executing done tasks with result WQ_RESULT_SUCCESS. +| time_workers_execute_exhaustion; | Total time workers spent executing tasks that exhausted resources. +| +| - | **Transfer statistics** +| bytes_sent; | Total number of file bytes (not including protocol control msg bytes) sent out to the workers by the master. +| bytes_received; | Total number of file bytes (not including protocol control msg bytes) received from the workers by the master. +| bandwidth; | Average network bandwidth in MB/S observed by the master when transferring to workers. +| +| - | **Resources statistics** +| capacity_tasks; | The estimated number of tasks that this master can effectively support. +| capacity_cores; | The estimated number of workers' cores that this master can effectively support. +| capacity_memory; | The estimated number of workers' MB of RAM that this master can effectively support. +| capacity_disk; | The estimated number of workers' MB of disk that this master can effectively support. +| capacity_instantaneous; | The estimated number of tasks that this master can support considering only the most recently completed task. +| capacity_weighted; | The estimated number of tasks that this master can support placing greater weight on the most recently completed task. +| +| total_cores; | Total number of cores aggregated across the connected workers. +| total_memory; | Total memory in MB aggregated across the connected workers. +| total_disk; | Total disk space in MB aggregated across the connected workers. +| +| committed_cores; | Committed number of cores aggregated across the connected workers. +| committed_memory; | Committed memory in MB aggregated across the connected workers. +| committed_disk; | Committed disk space in MB aggregated across the connected workers. +| +| max_cores; | The highest number of cores observed among the connected workers. +| max_memory; | The largest memory size in MB observed among the connected workers. +| max_disk; | The largest disk space in MB observed among the connected workers. +| +| min_cores; | The lowest number of cores observed among the connected workers. +| min_memory; | The smallest memory size in MB observed among the connected workers. +| min_disk; | The smallest disk space in MB observed among the connected workers. +| +| master_load; | In the range of [0,1]. If close to 1, then the master is at full load and spends most of its time sending and receiving taks, and thus cannot accept connections from new workers. If close to 0, the master is spending most of its time waiting for something to happen. + +## Further Information + +For more information, please see [Getting Help](../help) or visit the [Cooperative Computing Lab](http://ccl.cse.nd.edu) website. + +## Copyright + +CCTools is Copyright (C) 2019- The University of Notre Dame. This software is distributed under the GNU General Public License Version 2. See the file COPYING for +details. + diff -Nru cctools-7.0.22/doc/manuals/work_queue_jupyter/index.md cctools-7.1.2/doc/manuals/work_queue_jupyter/index.md --- cctools-7.0.22/doc/manuals/work_queue_jupyter/index.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/work_queue_jupyter/index.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,23 @@ +# WorkQueue Jupyter Tutorial + +## Overview + +Welcome to WorkQueue! This tutorial is made for first time users who want to unlock the power of distributed computing, in tools that you're already familiar with, like Python and Jupyter. If that's you, then you've come to the right place. In this tutorial, you will learn about the need for distributed computing, the power of WorkQueue, and how we can write Python programs to use WorkQueue. + +This tutorial will be entirely within a Jupyter Notebook. If you already have Jupyter and WorkQueue installed on your computer, and if you are experienced in Jupyter already, go ahead a click here to download the tutorial notebook; or, you can type `wget `LOCATION/OF/NOTEBOOK in your terminal. + +If you are brand new, no worries! You can take the following steps to make sure you have everything installed and set up correctly. + +## Installation and Setup + +1. Make sure that you have the ability to install things using conda. + - In your terminal, run `conda list` + - If it fails, then you need to install either miniconda or anaconda. Miniconda is a light version of anaconda, and we recommend it as it is much faster to install. Install the versions for `Python 3.7` in your home directory. + - Descend into your conda directory: `cd ` +2. Before doing anything else, unset your PYTHONPATH. Run: `unset PYTHONPATH` +3. Once you have conda installed and you are in the directory, run this command to install cctools (which includes WorkQueue): `conda install -y -c conda-forge ndcctools` +4. Install jupyterlab, which allows you to use Jupyter Notebooks: `conda install jupyterlab` +5. Now, it is essential to set your PYTHONPATH to include the path to where WorkQueue exists as a library. + - In order to set your PYTHONPATH to the correct directory, run `export PYTHONPATH=~//pkgs//lib/python3.7/site-packages`, but replace `` with the conda directory you chose (it should look like `miniconda3`, `anaconda`, or something similar), and replace `` with the name of the ndcctools directory that was installed for you (it should look like `ndcctools-7.0.21-abcdef123456`). You can run `ls pkgs | grep ndcctools` to discover what your directory is called. +6. To get the notebook for the tutorial, either click here to download it, then move the file into your conda directory; or, run `wget `LOCATION/OF/NOTEBOOK. +7. Finally, run `jupyter notebook`, and when the directory tree pops up in your browser, click on the file you just downloaded to open it up! diff -Nru cctools-7.0.22/doc/manuals/work_queue_jupyter/WorkQueue_Jupyter_Tutorial.ipynb cctools-7.1.2/doc/manuals/work_queue_jupyter/WorkQueue_Jupyter_Tutorial.ipynb --- cctools-7.0.22/doc/manuals/work_queue_jupyter/WorkQueue_Jupyter_Tutorial.ipynb 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/doc/manuals/work_queue_jupyter/WorkQueue_Jupyter_Tutorial.ipynb 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,994 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# WorkQueue Jupyter Tutorial\n", + "\n", + "## Overview\n", + "\n", + "Welcome to WorkQueue! This tutorial is made for first time users who want to unlock the power of distributed computing, in tools that you're already familiar with, like Python and Jupyter. If that's you, then you've come to the right place. In this tutorial, you will learn about the need for distributed computing, the power of WorkQueue, and how we can write Python programs to use WorkQueue.\n", + "\n", + "When you feel like you've mastered the basics, have a look at our documentation for more detailed information about WorkQueue's advanced capabilities.\n", + "\n", + "And of course, if you have any questions, comments, or suggestions, please visit our get help page. Here, you can access manuals, ask questions in the forum, and submit patches and issues. We'd love to hear from you!\n", + "\n", + "Let's get started." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Distributed Computing in WorkQueue\n", + "\n", + "### What is distributed computing, and why do we need it?\n", + "\n", + "Distributed computing is the practice of using multiple computers that work together to accomplish some task, while essentially masking this behavior to the user. This practice is extraordinarily common in systems that have to do lots of data processing. For example, think about what happens when you upload a picture to Instagram. A large number of functions are being called in the backend on Instagram's servers in order to update your profile, write your caption, post your picture, link the caption with the picture, notify tagged friends, associate the post with your hashtags and location, and so much more. And every second, 953 posts are made to Instagram. If all of these functions for all of these posts were executed sequentially on a single computer, the users would never see the end of their loading bars. Instead, Instagram employs distributed computing to run these functions on a massive number of computers, simultaneously. Making this work is exceedingly difficult, as it requires all the computers to be perfectly in sync with one another, resolve conflicts, and aggregate data on one user's phone in the end. But, the ordinary Instagram user takes for granted the immediate speed at which their picture was uploaded for their friends to see.\n", + "\n", + "Distributed computing can be used in a variety of settings far beyond social media data processing. Any task that is using lots of data, performing a large number of calculations, or calling a bounty of functions can potentially be sped up using distributed computing. In scientific research, for example, a massive number of calculations are often needed in order to create precise models, make a new discovery, or prove a theorem. If the calculations can be split up logically, performed in parallel, and aggregated at the end, then the scientist can take advantage of distributed computing to reduce their computation time astronomically.\n", + "\n", + "### What is the power of WorkQueue?\n", + "\n", + "WorkQueue is powerful because *it makes distributed computing easy.* With a simple yet versatile interface, WorkQueue provides a logical structure to split up complex tasks and aggregate results. WorkQueue is extremely fast, fault tolerant, and fun.\n", + "\n", + "The interface essentially boils down to a Master and a bunch of Workers. The Master program controls the tasks that need to be completed, and the Workers actually perform those tasks. In the Master, you create a task queue (`q = WorkQueue()`), then add tasks to it (`task = q.submit()`), then wait for the tasks to be completed by Workers (`completed_task = q.wait()`). The Workers are easy to create, and once you connect them to the Master, they will automatically begin processing the tasks in your queue. That's it. It's really just about that easy!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Writing Python Programs with WorkQueue\n", + "\n", + "### Installation and Import\n", + "\n", + "To begin, let's make sure that WorkQueue is properly installed. Try importing it below, and if something's wrong, then go back and make sure you followed all the steps for the proper installation and setup. You can also check out the installation instructions for help." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "try:\n", + " import work_queue as wq\n", + " print(\"Congrats! WorkQueue is properly installed :)\")\n", + "except:\n", + " print(\"Uh oh. Something's wrong :(\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "WorkQueue's default port is **9123**. Try running the following command to be sure that WorkQueue was imported properly." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "port = wq.WORK_QUEUE_DEFAULT_PORT\n", + "print(port)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If WorkQueue was imported properly, then we're ready to start coding up a master program." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Writing a WorkQueue Master\n", + "\n", + "As we know, there are two separate elements to WorkQueue programs running. The first element is the Master, which is used to control all the tasks you want to complete. The second element is the Worker, which completes the tasks. There can be as many Workers as you would like, and they can be reused after they complete a task. But, there can only be one Master program.\n", + "\n", + "The WorkQueue Master is the \"controller.\" It controls when tasks are to be completed, who they can be completed by, and subsequently delegates the tasks to Workers who connect to the Master.\n", + "\n", + "In the Master, we create a **task queue** and add a bunch of tasks to it. These tasks could be big, small, or anywhere in between, and you can specify what kind of requirements (like memory, cores, etc.) these tasks need in order to run. The master will wait for workers to connect via its port, then properly delegate tasks to workers who can accommodate each task. When a worker finishes, the master program will accumulate its outputs, and the worker can then be reused on another task.\n", + "\n", + "In a nutshell, the basic outline of a WorkQueue master is:\n", + "\n", + "1. Create and configure the task queue.\n", + "2. Create tasks and add them to the queue.\n", + "3. Wait for tasks to complete.\n", + "\n", + "#### 1. Create and configure the tasks' queue\n", + "Try creating a new **task queue**, listening for Workers on port 9123, by running the following command.\n", + "\n", + "(Only run this once. It will fail if you try to allocate a port you are already listening on.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "q = wq.WorkQueue(port)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great! At this point, we could further configure this queue in many different ways; for example, we could set up monitoring or enforce passwords from workers. In this tutorial, we will stick with the basic, default queue that we're given, and move on to adding tasks to the queue." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2. Create tasks and add them to the queue\n", + "\n", + "##### Generating input files and specifying output files\n", + "\n", + "In this example, we will create three tasks. Each task will take an input file containing some text and produce an output file of that text reversed, using the `rev` command line utility that reverses text (`rev` will also be passed to the Worker as an \"input file\"). Run the following lines of code to create three input files containing some text." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "infiles = ['file0.txt', 'file1.txt', 'file2.txt']\n", + "for i, f in enumerate(infiles):\n", + " fh = open(f, 'w')\n", + " fh.write('This is file number {}.'.format(i))\n", + " fh.close()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When working at the command line, we can usually execute the `rev` utility by simply typing its name then the name of the file we want to reverse. However, this is not enough for WorkQueue; we must specify precisely which files need to be transmitted to the workers. We record the location of `rev` in `'rev_path'`, which is usually found in `/bin/rev` or `/usr/bin/rev`. This file will be considered another input file for the task, since it is used to produce the desired output file." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "rev_path = \"/bin/rev\"\n", + "if not os.path.exists(rev_path):\n", + " rev_path = \"/usr/bin/rev\"\n", + " if not os.path.exists(rev_path):\n", + " print('Cannot find rev. Please modify rev_path \\\n", + " according to where it is installed in your system. \\\n", + " This can be determined by running \"which rev\".')\n", + "\n", + "print(rev_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will name our output files as `file#.txt.reversed`. It is necessary to specify output files so that the Master knows which files are important to save." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "outfiles = ['file0.txt.reversed', 'file1.txt.reversed', 'file2.txt.reversed']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Creating the Task objects and adding them to the Task Queue\n", + "\n", + "Now, let's actually create our tasks. Each task is simply created by calling the Task() constructor. The only argument the constructor takes is a command, which the Worker will execute when it picks up the task. In this case, our command will be `./rev file#.txt > file#.txt.reversed`. Notice that our command is `./rev` rather than our `rev_path`. This is because we are running the `rev` command remotely on the Worker. The *local* path to our executable is stored in `rev_path`, whereas the *remote* path, the path that the Worker will use, is `./rev`, since it will store the file we pass to it in its home directory.\n", + "\n", + "After we create the task, we can add files to it using the function specify_files(), which takes (*local path*, *remote path*, *file type*, and *cache*) as arguments. The *local path* is the path to the file on the Master's computer. The *remote path* is the path to the file on the Worker's computer (usually in its current directory). The *file type* is simply specifying whether this is an input file or an output file, and the values it can be are `WORK_QUEUE_INPUT` or `WORK_QUEUE_OUTPUT`. The *cache* argument tells the Worker whether you want it to cache the file for reuse. Essentially, if the Worker is going to be reused, and some file is needed for every single task that that Worker will take, then it is a waste of time to delete that file from the Worker after it has finished the first task, only to re-add the same file for the next task. In our example, the `rev` executable input file will be used in every single worker, so we will want to cache it.\n", + "\n", + "Finally, once we have specified all the files for the task, we can submit the task to the task queue we defined earlier using the submit() function, which returns an id for your task." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(3):\n", + " infile = infiles[i]\n", + " outfile = outfiles[i]\n", + " \n", + " # Create a task by passing its constructor the command\n", + " cmd = \"./rev {} > {}\".format(infile, outfile)\n", + " t = wq.Task(cmd)\n", + " \n", + " # Specify input and output files for this task\n", + " t.specify_file(rev_path, \"rev\", wq.WORK_QUEUE_INPUT, cache=True)\n", + " t.specify_file(infile, infile, wq.WORK_QUEUE_INPUT, cache=False)\n", + " t.specify_file(outfile, outfile, wq.WORK_QUEUE_OUTPUT, cache=False)\n", + " \n", + " # Submit the task to the task queue\n", + " task_id = q.submit(t)\n", + " print(\"Submitted task {}: {}\".format(task_id, t.command))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3. Wait for Tasks to Complete\n", + "\n", + "Now, all we have to do in the Master is set up a while-loop that effectively waits for each task to be completed. To do this, we will use two functions of the task queue: `empty()` and `wait()`.\n", + "\n", + "The function `q.empty()` will return `True` if there are no more tasks left to complete in the task queue. Initially, `q.empty()` should return `False`, since we just submitted three tasks to the queue.\n", + "\n", + "The function `q.wait()` takes one argument, which is the amount of time in seconds we should wait for a task to complete. This will return `null` if no tasks have been completed in that amount of time. If one or more tasks have been completed, it will return a Task object for the completed task." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "while not q.empty():\n", + " t = q.wait(5)\n", + " if t:\n", + " print(\"task (id# {}) complete: {} (return code {})\".format(t.id, t.command, t.return_status))\n", + "\n", + "print(\"all tasks complete!\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Submit a Worker\n", + "\n", + "If you have been following along so far, the above cell will not terminate running (you should see [ * ] to the left of the cell), since it is waiting for tasks to complete. At this point, the Master is waiting for Workers to connect to it. Now, we need to open up a terminal and submit a Worker to perform the tasks we created. To do this, we create a Worker with the command line utility `work_queue_worker`, and pass it options for the name of the machine your Master is running on, and the port you selected at the beginning (remember, the default port for WorkQueue is 9123). Let's go ahead and submit one Worker by opening up a terminal and running the following command:\n", + "\n", + "`work_queue_worker localhost 9123`\n", + "\n", + "(This assumes that you are running the command on the same computer that your Jupyter Notebook is running on. If this is not the case, replace `localhost` with the name of your machine.)\n", + "\n", + "After running this command, the Worker you just submitted will connect to the Master program you have been writing during this tutorial. The Master allocates the first task to the Worker, and then the Worker returns its output file to the Master. After this, the same Worker takes up the next tasks sequentially until it has no more tasks to complete.\n", + "\n", + "Once you see that all tasks have been completed in the above cell, go ahead and use `ctrl-C` to kill the Worker in the terminal." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Observing the Results\n", + "\n", + "Congratulations! You have now written your first WorkQueue Master! Let's take a look at our results by reading the output files that have now been created inside of your Master's directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "files = [open(\"file{}.txt.reversed\".format(i)) for i in range(3)]\n", + "for f in files:\n", + " for line in f:\n", + " print(line)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Beyond the Basics\n", + "\n", + "Now that we have the feel for the basics of WorkQueue, let's take a look at the ways in which we can use WorkQueue to actually enhance the speed of your tasks, and the ease of doing your business. So far, you have run your Master program on your local computer, and you have connected a Worker on to the Master on the same local computer; there is a bit more to learn about this (1). But, distributed computing is all about taking advantage of the processing power of a cluster of computers. To learn how to do this, we will start by learning how to run your Master Notebook remotely, and connecting a Worker to it on the same remote computer (2). After that, we will try to submit one Worker to a cluster from your remote Master (3). Finally, we will submit multiple Workers to a cluster from your remote Master (4).\n", + "\n", + "

    \n", + " ☞ TERMINOLOGY
    \n", + "

    In the following sections, in accordance with common practices, I might use the following terminology. Don't let it confuse you!\n", + "

      \n", + "
    • Node: A computer
    • \n", + "
    • Machine: Also a computer
    • \n", + "
    • Cluster: A group of computers connected somehow
    • \n", + "
    • Head (or head node): The node your Master is running on, the main node.
    • \n", + "
    \n", + "

    \n", + "
    " + ] + }, + { + "attachments": { + "WorkQueue%20Tutorial%20Diagram%20%282%29.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAByEAAAGkCAYAAACW1VkzAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAABibAAAYmwFJdYOUAAAAB3RJTUUH4wsaAQYtBjfUogAAgABJREFUeNrs3XlcU2e+P/BPAEVEoiwCkmoFUVEroghal1ItihvWznVBajt10LGtDlfb+mtvdZxrRzvtVUfHWltHrTPWIi6dWnfUaq1LlaUiqKBGwCqIAqIgYiSB3x9MMoSchAQSThI+79f1Djkbz4n1LM/3eb5fSU1NTQ2IiIiIiIiIiIiIiIiIiMzEQewGEBEREREREREREREREZF9YRCSiIiIiIiIiIiIiIiIiMyKQUgiIiIiIiIiIiIiIiIiMisGIYmIiIiIiIiIiIiIiIjIrBiEJCIiIiIiIiIiIiIiIiKzYhCSiIiIiIiIiIiIiIiIiMyKQUgiIiIiIiIiIiIiIiIiMisGIYmIiIiIiIiIiIiIiIjIrBiEJCIiIiIiIiIiIiIiIiKzYhCSiIiIiIiIiIiIiIiIiMyKQUgiIiIiIiIiIiIiIiIiMisGIYmIiIiIiIiIiIiIiIjIrBiEJCIiIiIiIiIiIiIiIiKzYhCSiIiIiIiIiIiIiIiIiMyKQUgiIiIiIiIiIiIiIiIiMisGIYmIiIiIiIiIiIiIiIjIrBiEJCIiIiIiIiIiIiIiIiKzYhCSiIiIiIiIiIiIiIiIiMyKQUgiIiIiIiIiIiIiIiIiMisGIYmIiIiIiIiIiIiIiIjIrBiEJCIiIiIiIiIiIiIiIiKzYhCSiIiIiIiIiIiIiIiIiMyKQUgiIiIiIiIiIiIiIiIiMisGIYmIiIiIiIiIiIiIiIjIrBiEJCIiIiIiIiIiIiIiIiKzYhCSiIiIiIiIiIiIiIiIiMyKQUgiIiIiIiIiIiIiIiIiMisGIYmIiIiIiIiIiIiIiIjIrBiEJCIiIiIiIiIiIiIiIiKzYhCSiIiIiIiIiIiIiIiIiMyKQUgiIiIiIiIiIiIiIiIiMisGIYmIiIiIiIiIiIiIiIjIrBiEJCIiIiIiIiIiIiIiIiKzYhCSiIiIiIiIiIiIiIiIiMyKQUgiIiIiIiIiIiIiIiIiMisGIYmIiIiIiIiIiIiIiIjIrBiEJCIiIiIiIiIiIiIiIiKzYhCSiIiIiIiIiIiIiIiIiMyKQUgiIiIiIiIiIiIiIiIiMisGIYmIiIiIiIiIiIiIiIjIrBiEJCIiIiIiIiIiIiIiIiKzYhCSiIiIiIiIiIiIiIiIiMyKQUgiIiIiIiIiIiIiIiIiMisnsRtARERERERERERERET26fbt22jn5gZJaxexm9Ikbm1a4UllJR49egRvb2+xm0NkE1psELKiogKurq5iN4OI7BCvL0RE1FLwnkdERNRyKZVKAICTU4vtXiQiI+Tl5aGtVIo3dqVib8ZNsZvTaP8vMhhzh/dCTXkJunTpInZziGyGXT8lKJVKnD9/Hjt37kRRURGKiopw7Ngxne2mT58OAAgKCsIrr7yCvn37it10IrJyvL4QEVFLUVFRgfT0dM097/Lly8jIyNDZTn3PGzJkCCIiInjPIyIishMVFRU4efIktm3bBgA4ceIECgsLtbbx9fXFiBEjAAAzZsxAREQEByoREeRyObx8/TD5nz/h+NUCsZvTOBIJlk0YgMgefvjN5h/w7dQQsVtEZFMkNTU1NWI3wpzqPhht37690ceJj4/H1KlTMWjQII7oIiIAvL4QEVHLob7nrV69WnCQjTF8fX3x1ltv4aWXXsLQoUPFPiUiIiIyQUVFBbZs2YLvv/++0c8CkZGRePnllzFz5kwGJIlaoEuXLsGnc1e8/NWPOJd7T+zmNNr/jhuAiEBfRP/9GDq2c8aJNwZxJiSRCewmCKlUKrFz5068++67OqOxmsLX1xebN2/GuHHjxD5FIhIJry9ERNRSVFRUYNWqVfjTn/5k1uMGBwdj/fr1DEYSERFZOUs9CyxduhTvvvsug5FELURWVhY8numKqPVJyMi/L3ZzGu2PY/pjZI9OGPvlETx5qoS/lxuDkEQmchC7AeaQkJCAzp0749VXXzVrgAAACgsLMX78ePTr1w9nzpwR+1SJqJnx+kJERC2BUqlEQkICAgMDzd7pCAAZGRkYNmwYRo0ahby8PLFPl4iIiOqx9LPAn/70JwQGBiIhIUFTS5KI7FNWVhZcvf3wwt8O2m4AUiLBylfCMa73M3h54zE8ecrrFlFj2fRMyIqKCkyaNKnBtBDq9A8eHh7o27cv3NzcNOvKy8uRmZmJ+/fvY+PGjYL1beqKj4/HqlWrmEKRyM7x+kJERC1FUVERgoODGxxsExkZiZkzZwKorftYV35+Pm7evAm5XI4vvviiwWMtXboUS5YsEfvUiYiICLXPApGRkQ2+s06fPh0TJkxAhw4d0Lt3b611V65cwYMHD7B///4Gy5cEBwfj2LFj6Nixo9inTkRmdvnyZbh36ozRG37AlTulYjenUSQOEnwxdQh6eEsx8e/H8OhJlWYdZ0ISmc5mg5B5eXl4/vnn9XZwREZGYsGCBSYXwi4qKsLRo0fx6aef6n34ioyMxJ49e5hCgshO8fpCREQtxZkzZzB58mS997zp06dj7ty5CAkJMenelJeXh/3792P58uUG76eHDh3i4BsiIiIRZWZmYvTo0Q0+CwwaNMjoe7ZSqcT58+fx+eef6w1I+vr64siRI+jbt6/YXwERmUl6ejo6dw/CK5uOI+vuA7Gb0ygOEgn+9ptBaO/SGv/11XGdGZAMQhKZziaDkGfOnMGwYcME1wUHB2Pbtm1meYg5ePAg4uLiBB/EfH198fPPP6Nr165ifx1EZEa8vhARUUuxbt06/OEPfxBcN336dHz88cdNvhc1VFeZMyGI7M/t27fRzs0NktYuYjelSdzatMKTyko8evQI3t7eYjeHyCIOHjyI8ePHC64z17NAXl4ePvzwQ73ByAMHDmDcuHFifxVE1ERZWVno3rMncorLxW5Kk7R3aY0bxeUY8dkhVClVOusZhCQync0FIfUFCHx9fbF7924MHTrUrL9P3XHy6quvCq6/d+8eO02I7ASvL0RE1FLoC0Ba8p737rvvYu3atYK/MyMjg/c8IjuQl5eHtlIpfv+vC9ibcVPs5jTa/4sMxtzhvVBTXsJORrJb+gKQlnoWMJR9gYFIItunUqlQVKGA3+JEsZvSJHHP98TQAG/87ptTgusZhCQynYPYDTBFXl6eYIAgODgYGRkZZn9AAgAnJyfExsYiIyMDvr6+gr+7oqJC7K+GiJqI1xciImopzpw5IxiAjIyMxK1btyx2z/vb3/6G06dP66wrLCxEbGwslEplI45MRNZCLpejg5c3Yrcn224AUiLBsuhQ/Kbfs/jN5h/Ebg2RxeTl5QkGICMjIyGXyy3yLDB06FDI5XJERkbqrBs/fjzy8vLE/lqIyIxqJBIeg4gAADZTgKWiogLPP/+8zvLp06dj69atFq8l07dvX2RkZCA2NhbHjh3TLC8sLMSkSZNYz4bIhvH6QkRELUVRUZHgoJulS5fiww8/tPj9ZujQobh37x6Cg4O1ZkIcO3YM7777Lv72t7+J/RURUSNcunQJPp27YtzG4ziXe0/s5jTa/47tj6H+Poj8PAkd2zmL3RwiiygqKhJ8/42Pj8eqVass+izg6uqKQ4cOCWZHeP7555kZgciOSOolX+wr88DALl5wFDmg91RVjetFZTifV4Tq6upGnUtzq6ysRGlpqd71fn5+oraPqCE206s9adIknZQN06dPR0JCQrO1oWPHjjh06BBCQ0ORkZGhWX7s2DF8/PHHWLJkidhfExE1Aq8vRETUElRUVCA4OFhn+dKlS5v1PtOxY0dkZGToBCLXrl2L7t27Y968eWJ/VURkgqysLHR8thtGrU9CRv59sZvTaH8c0x8Rgb4Y++URPHmqZBCS7JJSqURsbKzO+298fHyzDQRSZ0cAoBWIVGdG4CBcIvvyrKcbtsQOQzvnVvhRXogqlXGBP0txdnLA9AEB6OblhlmJZ/DT9Ttif0UNOnnyJBYvXmzUtjExMZg0aRICAwPFbjaRhk3UhExISNCpmRYcHIy0tDSTH0yUSiW+/PJLnD17Vuv4pigqKtLpNAGA3NzcJhfsJqLmZY7rS0VFBb7//nvI5XKcOnVKM5vR19cXI0aMwIQJEzB16lSjjsfrCxERWcpHH32EP/3pT1rLIiMjcfToUaP2VyqVOHLkCFJTU5GdnY3t27cDqL1v9unTBx07dsTUqVONTuGWl5cHf39/neWPHj2Cq6ur2F8XERkhKysLrt5+GPXFMVy/91Ds5jSORIKVk8Iw1N8HUV8koazyKQDWfCL7JPT+GxkZaZbAX2ZmJv7yl79oPg8ZMsTgwCKlUomxY8dqZQMCgG+++QaxsbFif1VEZCKhmpA+0rY4PX8cFu3/BTsv5AJWFIbo94wn9sx6CVFfHMG1uw80y62xJuThw4eNDkKqeXp64tNPP0VISEiztVMMSqUSgwcPRlRUFJYvXy52c0gPqw9CKpVKdO7cWatD3tfXt1EpGoqKihAZGak1ywgAGvMVZGZm6owkb+6ZU0TUNE29vlRUVGDVqlU6HbpCfH19sXv3bqM6Znl9ISIic6uoqEC7du20lhk76EapVGLnzp149913dQbJCAkODsa2bdvQt2/fBrc9ePCgTk2q5pyNQUSNd/nyZbh36ozRG37AlTulTT+gCCQOEnwxdQh6eEsx8e/H8OhJlWYdg5Bkb8zZv2bMsY15hxUahOvr64tbt25xNiSRjREKQq6b+jzkReVYc+KS2M0TFBvWDRP6dEbsP37ULLP2IOTevXsF068WFBQgJycHCQkJSE5O1iw/evQo3N3dm62tza2goAATJ05kENLKOYjdgIbs3LlTp7Nj9+7dJj8gJSQkwNvbWycA2Vh9+/bF0qVLtZZt374dZ86cEfcLIyKjNeX6UlRUhMDAQKMCkEBtaplhw4YZdY3g9YWIiMxt9uzZOsu+//57ozr4Pv74Y7z66qtGBSABaFKtZmZmNrjtuHHjMH36dK1la9euRV5enthfGREZkJ6eDt+u3RDz9WncLa+EZ7s2Nveno5sLvnktAp07uGLcl0e1ApBE9shc/WtCjB2oVF/Hjh2xe/durWWFhYXYuXOnuF8WEZnFqJ4yfJ0iF7sZeu1Oz8OI7p0AketUmoOfnx+GDRuG9evXIyYmRrP8/PnzDe6rVCqhVCot1rbKyspG7WNMm0yN9SiVyka1h5rGqmdCVlRUIDAwUOtBJjg4GBcvXjTpGLNnz9akixLS2K9AaKSXqe0jInE05foitK+vry8WLVqECRMmaJZduXIF//M//6N1Q/T19cWdOw3nm+f1hYiIzEUo7amxsw2F0rap9586dSpkMhnKy8vx3Xff6QzM8fX1hVwubzC1alFREby9vbWWMQMAkfXKyspC9549kVNcLnZTmqS9S2vcKC7HiM8OoUqp0lnPmZBkT/RlRDDH+6VQJh/AtHt5v379dDqSmZ6dyLYIzYS893EsvBdtt6o0rPX9+tE0BP55N55W1T4L2OpMyLrkcrkmEKlvhmBBQQE+//xzpKamoqSkBEBtCteBAwdi7ty5gr9j0aJFAIApU6agZ8+e2Lt3L7777jvI5XJ4enpi1KhRiIuLg7u7O5RKJb799lucPHkSycnJCAwMxBtvvIHIyEi9A2Hlcjm2bNmCpKQkreVRUVGYOXOmVp3L9PR07Nq1Czdu3ND8/oEDB2raVzcNbWlpKTZv3ozU1FTI5XKtc62/LVmGVec2OHnypM5Iqm3bthm9/5kzZzB58mStY0RGRgKATs75xnBycsKqVau0OmYyMjKQl5fH2m1EVq4p15cPP/xQJzgolM6ua9euGD16NF5//XXNQIjCwkKcOXOmwbSsvL4QEZG5bN26VWfZxx9/3OB+FRUVOgHIb775RrDOcd++ffH6669rBTsLCwuxZcsWg/WggNpZEEuXLtUKYm7fvh0bN25k5yORFerRoweKHj1B0LJvxW5Kk6g7GYUCkET25uTJkzrLvv/++yYfV6lUYvTo0U0+zvfff68zYOrkyZMYN25c831JRGQZVhyABIDqmho42MFMyLrq9hsKpWLVV2OypKQESUlJSEpKwpo1azBs2DCt9ergYHBwMP7+979rpX0tKSlBYmIiUlNTsW3bNsTHx2utl8vlWLx4MVavXo3ExESddm3cuBEbNmwQPB91mxYuXIhp06YBqH3XrBusVLcdAIYPH65Znp6ejvfff18TaBU61zlz5ghmDiLzsep0rPUDApGRkUbVllH7/PPPtQIF33zzDY4ePWqWVBNqU6dOha+vr9ay/fv3i/SNEZGxmnJ9Wbt2rdbn9evX6x3F4+TkhLlz52otMza1DK8vRERkDl988YXW56VLlxoV3KvfYRkcHIzY2Fi997yuXbvqpFY9e/asUW189913G/z9RGSdaszQcWdPxyCyRqtXr9b6HBkZaZbBra+//rqm3y0yMlLnOcBYXbt21Uwa0NdmIiIyzrlz5zQ/17+2FhQUaAUg16xZg1OnTiE1NRVr1qyBp6cnAGD+/PkoKCgQPP6KFSuQnJyMqKgoHD16FImJiYiKigJQG2ycMWOGZv3evXuxd+9ezJkzB0Bt8O/y5ctax0tPT9cEIMPDw7F3716kpqYiNTUVe/fuRXh4uOb3qts0ZswYpKaman5vVFSUZp8xY8YAqE3pOmvWLE0Acs2aNTh69ChSU1ORmJiomVm5YcMGnD59Wuy/NrtmtTMhlUqlTgrVBQsWNOpYwcHBOHbsmFmDj2pOTk546623tEZub9y4scER30QknqZcX+rXtwoODm5wVuOgQYO0PhcVFRn1u3h9ISKipsrMzNSZ+f/KK68YtW/9ATvvv/9+g/vMnTtX6x67fft2o1Kxubq6IjIyUitbyerVqzkDgsgGSOrNcOgr88DALl5wFDmg91RVjetFZTifV4Tq6upGnQuRPVAqlTrZwBrbv1bXwYMHte75GzduxIcfftjo4y1YsECrnceOHYNSqTSqfjUREdUqLS3FunXrNJ+fe+45rfWff/655udNmzZppSIdNmwY9uzZg0mTJqGkpAQHDhzQO0Ow7kxJd3d3LF26VDMTUS6X68wunD17Nnbv3o2SkhKcO3dOa5blJ598AqA2ReratWu1rvt+fn5Yu3YtBg8erGm/UHpZIXXfZ+ufa2BgoNaMzXXr1unM/CTzsdo7uVDR1IiICJOP89lnn+HNN9+06EPLSy+9pBUkyMjIQFFRkUWCnkTUdE25vvj6+uKbb74BUHtTNaYj18nJSSfNnLF4fSEioqaoP5vQ19fX6Jn/M2bM0NQ63r9/P6ZOndrgPvUH3piCnY9Etu1ZTzdsiR2Gds6t8KO8EFUq4wJ/luLs5IDpAwLQzcsNsxLP4KfrDddlF5u+9Gj1eXp6YvLkyZg8ebJgmjWiuszVv1ZXRUUF4uLiNJ8/++yzJs+sFGrT+fPnGxz0Sy2bQqHA06dP4ebmJnZTiJpFTk6OzudHjx4BqK0XWTcFakxMjNa7lFKp1AQKY2JiBGshuri4YNSoUUhMTMSGDRv0BiFDQ0O1Pjs5OcHT01Mz63D8+PE6+wwcOBBJSUk4evQo3nvvPQC1QVN1ncbJkycLvvs5OTkhJiYGiYmJSEpKMjoIuXv3bgC1AUehc3VycsLEiRORnJwMuVyO0tJSPldZiNW+0ddPVxgZGWlyTZjmqiMj1NmSkpLCkdtEVqop15eOHTsiNjbW5N9ZP/e4sXh9ISKipqhf7+mtt94yet+695rG3PsA6KQVN0So8zErK8ukcgxEJA4faVscmxuFRft/wc4LuVZV/6nfM57YM+slRH1xBNfuPhC7OWZRUlKCDRs2YMOGDQgMDMSyZcs0KcXs2cCBAxEVFWV05yPVMkf/Wn2zZ8/WZFrw9fXFm2++2eR2CmVF2LlzJ4OQNi4/Px8AIJPJGty2uLgYe/bsQXl5OaKjo+Hv7w9HR0fBbVUqFXbv3o3jx48DAIKCgvDaa6/By8tL7/FVKhWuXLkCoLa+sbOzs9hfj10zV5r0pmYpsJZjmMv8+fMb3MbT0xMLFizQScV67949zc/t27fXm261ffv2mp8LCgrg5+entT4wMBAuLi46+6mDjAB09gFqs8klJSVp9ZFWVlZqfg4LC9N7TnVndAq1SYj693Tr1k3vubZr105rewYhLcNqg5D10xW+/PLLJh+jOQKQQG3UfPr06VppKB48eNAsv5uITGeO64upfvzxR83P6lklxuD1hYiImqJ++jVjU7E2VlZWltbnESNGGL2vUOdjZmYmg5BENuCPY/rh81PZ2PlLTtMPZmYXb5dg0YE0/O/YEMT+40exm2O0NWvWICAgQHDdqVOn8N1330Eul0Mul2Pu3LnYs2ePYIegvdDXeUgNM/f7b/00rEeOHDFb1oKXX35Z6znA2FImZH3y8/OxefNmrSBkXFyc3mBkcXExFi1apPmcnZ2NmJgYvc+SaWlpmgCkevsffvgB06ZNE9xeoVBg8eLFKCsr0yxbuHBhixjAIRZzBO3s6RjmEh4erhMoKy0t1cyAjIqKwtKlSwWvy48fP9b8rB7M1BjdunUzuF5dp7G+usFNtbqBUW9vb73HNGVwq/o7UUtKStIERw2Ry+W8JliIg9gN0Kf+g4aHh4fYTTKofmpEoXQXRGQdxLi+ZGRkaH5+9tlnTdqX1xciIjIXS6aqUiqVeOedd7SWzZgxw6RjMN04kW0a1VOGr1PkYjdDr93peRjRvRMgcp1KUwQEBMDPz0/wz7Rp05CYmKjp5CspKdFJv21v6r5PkWnM+f5bVFSklYY1Pj7erIOF6reNQUjbdejQIU0AEqgNSh46dEjv9l9//bXOsoMHD+rdfteuXTrLjh8/DpVKJbj90aNHtQKQALBv3z6D56BSqZCZmYnMzEwoFApxvkiiehYvXozly5dr/Vm7dq0meJaUlITy8nLBfdUz2K2JsW0yFKAUUneGJYnPamdC1h+1be0joOunTOSDEpH1au7rS0JCgubn4OBgk9PJ8PpCRESNIXS/sESmEKVSiaysLMyYMUOrk3j69Okmpw8XGnjT2FSwRNR83F1ao6TCejton1apUKWqRmsnBzytUjX9gFZiypQpmpH9ly5dwpgxY3S2KS0txe7du3HhwgWtWRJdu3bVW1NSPRtpypQpeO6553Du3DkcOnQISUlJCA8PR0REBEaPHg13d3colUqd9b///e8Fay+pFRQUICEhATk5OZo2hYeHIyAgALGxsVop1tLT07Fr1y7cuHEDAJCamqrVvrq/R6lUYsuWLcjLy9N8L+Hh4ejfvz9GjBjRYmc3mPP9NzY2VisN66pVq8za1vptq992EpdCocDRo0dRUVGBYcOGGUyxmpKSIrhs5syZgilWhWY7l5WVQaVSCW7v5+enE1SUSqV607cKBRyzs7OhUCgE07Jy5iTZEicnJyxbtgwxMTEAgJUrVwqmLq+bYWHhwoV6Zw43J2P/TZk6GKnu8w1TuYvPaoOQ9dlagWEGCYhshyWvL0VFRXj11Vc1n9evX2+WYxIRETWkoqJCZ5k5ZhquW7cOZ8+eBVB7TxLqIIyPj29UxyQH3hDZMCtKVSakuqYGDjY0E9IYdesj1U07pnb69GnB2lHqAN3u3bvx6aef6gQM1euDg4Oxa9curRRmycnJSE5OxsmTJ7F+/XqsWbMGiYmJOusDAwOxZcsWnRSxhw8fxuLFi3XapN4vMTERy5Yt0wRUCwsLtX5/SUmJ5vPw4cM1y9VpaevWmap73A0bNmgdtyVr7PtvQkKC1j3fnGlYm9o2srz66VKPHz9uMF2qTCbTmgmpXqYvSDhlyhRs3rxZa9nIkSP1bv/aa69ptQeAwcFv0dHROoHIoKAgvXUh9c2cXLBggcW/a6LGCAwMRExMDBITE5GUlISxY8di2LBherfPyMiwiiBk27ZtNT/n5OTorfX48OFDzc/GpJ+vu01qaqrYp9niWWU6VqEOE2tXP70iR2sRWafmvL4olUqt2Rvx8fEmz4IEeH0hIiLrcvbsWWzfvh3bt2/Xuif5+vpi6dKlyM3Nxd/+9jezd0wSEZG2S5cuaX4eO3as1rqCggKtAOSaNWuwd+9e7N27F8uWLQNQG9CbNWuWYAATAFasWIGkpCQEBgZi79692LRpE8LDwwHUBvfUnZ2BgYHYtGkTNm3apEkRK5fLkZaWptMmdQDS09MTiYmJOHXqFM6dO4fExER4enoCqE01p54VFRERgb1792p+b3h4uOY8IiIiANS+d9UNQM6ZM0ezzZo1a7SOm56eLvZfW7NSKpVmOU79wbVLly5ttoxl5joHapo9e/boLDt16pTe7esOEjC0TC00NBQjR47UfA4KCsJLL72kd3svLy8sX74cYWFhCAoKwsKFC/HCCy/o3X7UqFGQSqVay6Kjo/Vub2jmJJG1mj9/vuae9+c//1knJamfn59mvaEaiQUFBc1Wi7lum+pmkqtPnXbe09NTMIuD0LOMepZlSUmJ3med0tJSyOXWW1LAXlhlENISaaIs7ebNm1qfp0+fLnaTiEhAc11flEolxo4dq+mcjYyMbHSqGl5fiIjIFhQWFuKLL77A1q1bOYORiMjCKisr8fe//13zefDgwVrrP//8c83PmzZtwrBhwzQ1JceMGYOjR49q1u/evVvv71m4cCESExPh5+eHkJAQrF27VrNOLpdjzpw5SExMREhICEJCQrTSnZ07d05vm9TBSxcXFzg5OSEwMFBrRqV6WxcXF/j5+Wk6HN3d3TXnoZ7lcOzYMa0A5OzZszXbDBs2DAcOHNB0RNb9zloCcw0Iqju4Njg4GB9++KHNnQM1jVB61fz8fL01GEeMGIHly5cjOjoaI0eOxJIlS/TOmgQAR0dHTJs2DWvXrsXKlSuxYMECeHl5GWyTl5cXZs2ahQULFiAwMFDvrEkAcHZ2xieffIJ58+YhLi5Oq4aeEKEApaGZk0DtbNH9+/dj//79FgtWrl69GnK5XO/3Ti2bk5MT/vjHPwKoDbypBx3VVXc278qVK3UClaWlpZg5cyYmTpyoM9vYUiZPngygdoDTxo0bddqUnp6uSd+ubzZycnKyTuD0gw8+0Py8efNmnUCkUqnEokWLEBMTg6ioKA56sSCrDEIK0VdQlYioqcx9fSkqKkJoaKhWAPLQoUN8eSIiomYllHrVHMHBIUOGYPr06Zo/vr6+mnWFhYX405/+BG9vb6xbt87kY58/f17rc1BQkAjfHFkrvhNSS5KTk6OZiVD3T3p6OlauXInhw4drOuRiYmJ03jXUMxxiYmIE6zO6u7trZi1u2LBBbztGjx6t9dnJyUkzYwEAxo8fr7OP+rh1A52VlZWaNs2ZM0dwFoO7u7umnpWhGRr1rV69GkDtjIfZs2frrHdycsIrr7wCoLaTUt9siJbC1GvpunXrtDIffP/99xZ7t+V13nrFxcXpLAsLCzMY+PPy8sKECRMwbdo0g/Uj63J2drZYWl5HR0f07dsX4eHhBoOJgOkzJ0+cOIFFixZh37592LdvH+Lj41FcXGz2c8jOzsaKFSvwwQcfYP/+/fw3QzqGDRumuQ8nJSXh9OnTWusjIyM19/HExEQMHz4cGzduRHp6OjZu3Ii33noLJSUl8PT0xHvvvdcsbZ4xY4amTRs2bMDw4cNx+PBhnD59Ghs3bsSsWbMA1M6CjIyM1Nq37gzrZcuWYePGjdixYwcAICQkRJNJITExEaNGjcKiRYtw+vRp7NixAzNmzNA8S23ZsoX9thZktd/s9OnTsX37ds3nzMzMZkv10BjsMCGyHZa8vhw8eFDrRXzp0qX48MMPm3Qj4/WFiIgaQ2j2f0VFRZPrQs6bNw/z5s3TWlZUVISjR49qpWr7wx/+AA8PD63ZEw2pHyQ1NEKdrE9xcTHc3d0Ndkiq5efn4/Tp0+jduzd69+5tcJ/i4mLs2bMHKSkpkEqlmDJliqZDQR+VSoUrV66gU6dODc6koKapMUOdxRqJBJIm1pS0lmOYi1Atx/o8PT2xYMECnQ65ujMB6taNrG/s2LGaYF9BQYFOHSZ9Kc8GDhyo2U+odlNwcDCSkpK06jPWDfyFhYXpbVPd9gq1SYj69wwcOFDvNqGhoZqfKysrBc/LXjXl/TcvLw9/+MMfNJ+/+eYbdO3a1WJtzczM1Gk7WYfQ0FBkZGRoZkTKZDKdNND2RD1z8sqVK6isrES/fv0MBi6FUtPu2bNHEzwxt7KyMk3AMygoCNHR0fD39zfqGYzs33vvvae5T//5z3/Gnj17NNkDnJycsGfPHixbtkyzzYYNG7QGJKlTpjfXvdLFxQWJiYlYtGiRJihYv350eHg4Vq1apdO/GhERAU9PT5SUlGjqQEdFRWnqXa5duxZbtmzRnF9SUpLOQKdNmzYZ9bxBjWe1Qcj67t+/L3YTDLpy5YrWZ3aYENkOc1xflEolXn/9da2Xu6VLl2LJkiVNPjavL0REZC75+fkW6Tzs2LEjYmNj0bdvX4wePRqFhYUAgFdffRWjRo0yOvB5+fJlsb8iaoTMzEx89913yM/PNypIuGPHDhw/fhwANP+7du1avZ1769evR35+PoDaTrfNmzdDJpPpnVWRmZmJrVu3oqysDEBtR+n777/f4KwHahxzBO3s6RjNJSoqCkuXLhUc7Pj48WPNz4sXL9bpyDOWoaCeug1C2rdvr7Ps3r17mp+9vb31HrNdu3YmtbFucDMxMVErpas+GRkZLbqz0dj3X6VSiZdfflnzOTIy0qSBRZZsG5lXeXm5pt5aRESE4ExER0dHzJo1C5MmTYJCoTB6ZqMtU8+cNIb6OaWulJQUzJw5U29gsLi42CzfZXZ2NrKzsyGVShEREaH375BsV3BwsCa1qjGBQXd3dyQmJmpqHZaWlmqCkEBt0G/58uWYO3cuMjIyNDWmBw8ejD59+uj9Heo21M2EU9eUKVMwfPhwvevrnodQm9euXYu8vDzI5XKcOnUK7u7ueO655xAYGKi3L1QdwKw7gaPu73dycsLs2bMxefJknD9/Hrdu3UJeXh6GDx+O4ODgFv080JysNghZf6bPxo0bdUZcW4uKigqt1BQA0KFDB7GbRUR6mPv6kpeXh+eff17T4QoABw4cwLhx45rcVl5fiIioKerPfti5cyeGDh1qsd/Xt29fLFq0SGvWREpKilH3xKKiImRkZGgtGzJkiAjfGplCpVJppd5VBwkDAgIEZyAqFApN4LGuixcvCgYu8/PzBTv2Tp8+rRnhXN93332nCUCqj6Hv+HXPIzc3F507d2awkqzC3r17dTrGlEolxo8fj5KSEqSmpqKqqkowCKnudLQmdd+VDAkICDDpuPXrRpGuxr7/fvnll5r7sq+vL/bs2WPxtm7cuNFg28n8kpOTsXnzZs3nffv2IS4uTu89k9kFhIWFhenUzYyJiREMQKpUKmzZskVrVmlcXFyTg5GcHWm/1HWOTWEocFf/uGPGjDHqmA1tJ5T+3ZTzUNeIDgwMNLpNQG0As6HtjdmGLMdqa0Kq8/WrZWRkmKWGjSWkp6frLIuIiBC7WUSkhzmvL2fOnIG/v7/WS/Xp06fNEoAEeH0hIqKmqR/EW7t2LZRKpUV/Z/37VGpqqlH7qWt31PXMM89Y+BsifRQKBZKTkyGXy6FSqfRuVz9jg9q5c+cEl9+6dUtwef0AtJq+gKBQumGgdlaBUNDy8OHDes8hOTkZH3zwAVasWIH4+HjB/xaJrIGTkxM+/fRTALUpSPXNJggODtb8vGzZMqSmpjb4x9IzAYzN5qLvWqBP3dkaMTExRp1rS+uEbOz779mzZzU/FxYWol27dpBIJAb/1B34tH37dq11CQkJBn+f0GCk+m0n8xO6Pxq6Z5KwsWPHagURw8LC8MILLwhum5aWphWwzM/Px6FDh8zaHmuoHWmudO32cgyilsxqg5BC093rFjW3Jjt37tT6HBkZqfelmIjEZ67ry5kzZzBs2DDNZ19fX+Tm5pp1hgmvL0RE1BRCM8WysrIa3K+iogJ5eXlISEhAQkKCTo0mQ+rPYsnOzjZqv++//17rc3x8fJNqKlPjJScnIz4+Hps3b9Z0YCkUCsFtPTw8BJfrS7fo7+8PqVSqs/zFF18U3N7Ly0twJszgwYMFt3d3dxc8/oABAwS3V6lU2Lx5s9bMyePHjwsGMomsQUhIiCYNalJSEk6fPm1we6E6ZWJo27at5uecnByj9qmbOs6Ybay1z0hsttK/JtQmY1NhUuMJ3e/y8/MNDkAiXTKZDEuWLMGSJUuwfPlyzJo1S+8MxLozT9VSUlIs8p2rZ0e+9957WL16dYODy8zJWtKkW8sxiFoyqw1CArUdD3WpR/xZk4qKCqxdu1Zr2cyZM8VuFhE1oKnXF6EAZEZGhlnrbPH6QkRETdWxY0etGTEA8Je//KXB/YqKiuDv749XX30Vr776KkaPHm30DMr6syuMSamal5enk3586tSpYn99LdauXbu0PpeVlWnNiKlLX23G0NBQwe0dHR0xZcoUrWVBQUHw9/fX2563334b0dHRkEqlCAsLw8KFC/Wmg3N0dBTMGjFq1CjB7fXN5GwosEMkpsWLF8PT0xMA8Oc//1nn+lx3VmNSUpLe41RWVjZbOtO6AxP0zZQGatPQqgnVpKpbA1JNPcuypKREcD1Qm8pW37qWwBb61+q3qX6byTKEBvoEBQUxhWcjyWSyBlPWhoWFCe5n6e/cGmZHElHLZNVByPodDxkZGTh48KDYzdKyatUqnWX6XnCJyHo05fqiVCoxefJkzWd1ALJjx45mbSOvL0REZA6zZ8/W+rx9+3bk5eUZ3Kf+oJrCwkKd2fn67N+/X+tz//79G9znww8/1Fk2aNAgEb4tKi4u1poVqGZoNtX777+PmJgYyGQyREdHY+XKlQY70sLDw7F+/XrMmzcPy5cvx4IFCwxu7+zsjAkTJmDFihWYNWtWg2kdJ0yYgOXLlyM6OhpxcXFYu3at3rSunTp1Elzeu3dvvcdXqVTIzMxEZmam3hmi5nDixAmLHp9sl4uLCxYsWACgNvC2Zs0anW3mzJmj+XnHjh06gUqlUolJkyZh+PDhePvtty3eZicnJ02bEhMTcfjwYZ02paenIzk5Waf9dSUnJ+sETj/44APNz5s3b9ZZr1QqER8fj1GjRiEmJsbiacmtkdD775kzZwzuk5CQgJqaGpP+TJ8+XbP/9OnTtdbFxsbq/V1nzpzRScXKwUjNY+rUqVoZBKRSKaKjo8Vull2bNGmSzrLhw4c32+8Xc3YkEbVMVh2EHDRoEHx9fbWWxcXFWc0DY0VFBf70pz9pLZs+fbrZAxFEZH5Nub58/PHHWjUgN2/ebPZ/97y+EBGRuQjNohcK+tUXGRmp9fndd99t8D5ZVFSEP/zhD1rLQkJCDO6Tl5enVUMKAJYuXcpUrCLx8vISTGdqqHPM2dkZI0aMwJIlSzBhwgS4ubk1+HscHR3Rt2/fBmcLNOU8JkyYgPDwcL0BSPV2QrNA9AUhi4uL8fbbb2PdunVYt24d4uPjIZfLzd5+hUKBxMRExMfHY9OmTRb5HWTbxowZg/DwcAC1Qb36/43MnDlTM1tyxYoVGD9+PA4fPgy5XI4dO3ZgxowZKCkpgaenJ5YvX94sbZ4xY4bm58WLF+u0adasWYLbArp1Lg8fPoz09HQAtfcZ9eCExMREDB8+HBs3bkRBQQEOHz6M+Ph4TXDzgw8+aJH3F6H338mTJ1tF/1r9Qb5A7UBfDkZqHjKZDCtWrMDChQuxcOFCfPLJJ0bXcKXG8fLywsqVKxEdHY2RI0diyZIlGDFihChtsfTsSIlE/f+slwQSmJJt1d3F2fiNiQgAYNVPXk5OTti8eTPGjx+vWaYehW1oBFVzqT+qHKgNTpD5lJeXIy8vDzdv3kRhYSHKy8v11hWSyWTw8/NDt27d0LlzZ/j4+BjVAUItU2OvL/WDg9OnT8e4cePM3j5eX4iIyFxcXV2xdOlSrfvX9u3bMXfuXIN1jDdu3KiVIrOwsBChoaHYtm2bTo0mpVKJnTt34t1339Va/tlnnzVYy/jll1/WWVb/ONS8Xn/9daxbt07zWSqVGpVW11bFx8cjNzcXP/74I4KDg9GvXz+9MzOF0kgmJCRgyZIlZm1T3U7AlJQUpKSkQCaTYcyYMejXr5/BwCq1HIsXL8bEiRMBAHPnzsWBAwc0ATYnJyckJiZi0aJFSE5ORklJCRYvXqxzjM8//1ww7akluLi44OjRo4iJiUFJSYlgmwIDA/HFF1/o1IMcPnw4VqxYAaA2xWxSUhKioqI0A122bduGP/3pT5r0sxs2bMCGDRu0jrFs2bIGB8bYK2vuX9u5c6fWIF+gdqBvSwwWi4mBx+bl5uaGCRMmiN0MDfXsyH379iEoKAhTp04VTLdvqkt3HmBkj044frVA7FMU5NmuDRwdJFAojZsJ2sOnPb6bNRIlN+Xo0qWL2M0nshmSmhrrr6zar18/nbQMGRkZBgtUx8bG6oyoNtX06dORkJAguC4hIQGvvvqq1rL4+Hj87W9/E/vrsnn5+fm4cOECTp48KZgKyhRSqRQDBw5E79690aNHD76skw5Try95eXkGaxYZi9cXIiJqThUVFQgMDNTq5DMmnbjQPUlNnXKtqKhIp54jUDuT8ujRowbb9dFHH+nM/P/ss88wb948sb8yu1VcXIycnBwEBAQYnIWoUChw9uxZdO7cmR2TdehLEWko5StQ+727u7sbXe+puLgYixYt0rt+5MiRGDZsmFk6CE2lUqlQVKGA3+JEzbJ7H8fC+8OEJhzV8vKWTkXQ8n/hydPamV9xz/fE0ABv/O4b4VTD/l5uOPHGoGbtZCwoKNC8m0REROgE4oSkp6drru3BwcFa9SCB2kEi586dQ35+vubYwcHBCA0NRdeuXQUDPYcPHwZQe58QCtqpf6e+9XXPY8yYMTrr1W3KysrSpAcPDg6GTCbD4MGD9QafSktLcf78ec1nod+vbps6hXTXrl0RFhaGnj17GvV92juh99/c3FydNOyNVbcvztA7r5rQ+3VwcDAuXrwo9ldFZJX0PYeYQ1hYGIKDg9GrV69GTeoQej4Y7O+NLa8Ox/C/HURxefPUIDZWKydHJL7xIs7nFeH/jv3nuqjv+aDfM57YP2sEyu7mo1evXmI3n8im2MSwovXr12PYsGFay0aPHm2RGmzGyMzMFOyM4SylxlMoFLh48SJ27drV5MBjXWVlZTh+/DiOHz8OoPZlPTQ0FP7+/iyyTQBMv76cPXvWou3h9YXINqln7ldWVuLevXs6o7nVKcQCAgJM6oQmMhdXV1esWrVK6x5TWFiIyMhIpKWl6e3wVc+OePfdd3X+uzY04C8+Pl6wtnFdBw8e1AlA+vr64s033xT767Jbq1ev1soqEhQUpKkrV586xSppi46Oxr59+7SWyWQyvQHI/Px8bN68Gfn5+Zr9zTHzQf2Ow9mR9sXPz08niNiQhmb2OTk5ad53pk2bZtQxhQKHpvzOhs5D3ab672ENcXd3N7ptDW3XUgm9/z7//POQy+UNZi4wt4qKCjz//POCbSTzksvl+PHHH1FeXo7o6Gj2iRGA2ufAkJAQs6THr66uxoULF/BMD+109udy72Hl8Us4M388lhz8BT9cu4PKKvHTQA/x98ZfogfiTM5d/N8PmQ1u37+zF47NjUJJwS0UFxcbrJWuz+DBg9GqVSuxT51IFDYRhBw6dCji4+Oxdu1azbLCwkLExsbi0KFDzZqioaioCKNHj9ZZ/s033zT7A5s9UCgUOHr0qM6LvKWoX9alUinGjRuHIUOG8GW9hTP1+lJ35K258fpCZDtUKhWuXLmCK1euIDU1tcEBNCkpKVqfZTIZBgwYgKCgIHYCULOZOnUqtmzZojVrMSMjA2PHjjX4TB0bG4uXX34ZH374oWDKtLoiIyOxcePGBmdUZGZmaqWEU9u9ezfTr1lIcXGxTlmD7OxsFBcXW6wuoz0aPHiwTsYWQ6kM16xZo7WtOs1ZQ7NL79y5Y1R71EFOQLzZkTVmqPVUI5FA0sQkTdZyDCJrNnToUEyfPl1rIFFhYSEmTZrUrP1rSqUSkyZN0nmmmD59usFU8WS6EydOIDHxPzPTsrOzERMTw4FGLZD6HbR///7w9fU12ztoVVUVcnNzcbOVF54RWL/57FVcuF2C+RF98KcxIWjjJP67b/a9h3j3u2ScvN7w89Zzfh5IeD0C/7MvrVEBVEcHB/wxqh/fcahFs4l0rEDtA8rYsWN1Uj0FBwfj2LFjOjOWioqKUFFR0aTf6erqqnXczMxMjB49WuchiWkSGyczMxNbt24168zHxoiOjsaoUaMYjGzBTLm+mOPaAvD6QmSrLDV4JiwsDGPHjhUlrR61LEJpWYHa4KGxnY9FRUU6aVaHDBlidCq3M2fOCM5+YRpWy0pOTtYEq+oy18y8lkSlUiE3Nxf37983OANRLpdratjVNXLkyAZnpOn7+zKGpWdHMh0rkW3T9/4bGRmJhISEJmUcq/u+XP+dt+42sbGxgr+/uScatAQfffSRZja+mlQqFbw/kfUzJR2rVCpFREQEgoKC0LlzZ4s8Ezx58gS3bt3CiaJqzNt9Dr/+7xSt5wNbVPf5ILxrRyS+MQIx//gRyXn3TD6Wk5Mjvp4xHK0cHTChT2e0toIALJEYbObO7uTkhD179uh0mmRkZCA4OBhHjhzRquHWsWNHs6Zq1VcPJzIyssFUU6RNpVJhy5YtOrNCxKIuvBwdHY2xY8dyNkoLZMr1xdzXFoDXFyJbYOmZ+ykpKUhJSdF0HIeGhvJ+RBbh6uqKjIwMeHt7ay0/duwYOnfubFS5g44dOxqc+WWIUA1IoHbmAwOQlhUQECC4fPDgwWI3zeY4OjoaVSfTx8dHcLmlM1xYw+xIIrJeTk5OSEhIQHBwsNb777FjxxAcHIyff/650TUiG3pfzsvLw/PPP68zGMrX1xcJCQkMQFpA/QAkUFu6SKVS8X3DzkilUgwcOBC9e/dG165dG1XX0RQVFRW4desWDhQosfD7FDiYITOCNXmxRyd8FTscU7ecQOrNIpP3d27thN0zR6C4QoFXv/4JFSteE/uUiERjU3d3V1dX/PzzzzpFqwsLCxEcHIylS5fiww8/NOtDS0VFBWbPni1Y88bX1xd79uzhQ5IJysvL8dFHH5k8+1Gdp9zV1VWw5opCoUB+fj7u3buH69ev66SaMsa+fftw8uRJvP7661oBbWoZeH0hIn2aMhvFVOqO4127dmHKlCkMRpJFdOzYEadPn9aZjVhYWAhvb2988803mDp1qlnvQXl5efjwww8F73mRkZHYunWr2F+L3fPy8kJQUJBOTUimYrUcNzc3ne8cAEaNGtVsbWDtSCIS0rFjRxw5ckRTt1ytsLAQ/v7+Zn8WUCqV2Llzp+DgWwA4cuSI2Qf7Uq2RI0fi+PHjOsv4jmEfwsLCEBwcjICAgGZ9pissLER1DfDF5Qf47KcsoKYGqBeEtJY06Y05xrAAH/R/xhNR65Nw/d5Dk4/h074t/vW7kThytQBLD12o/X4soLKyEqWlpZrPptSVLigo0Pzs7u4OFxcXi7SRCLChdKx1FRUV6YzYUvP19cWqVaua/LBUUVGBVatWCY7UBmo7S/bs2cM6bSbQl45In+jo6EbnKVepVCgsLMS1a9dw6tQpwZFfhgQFBWHWrFkWHzVE1ofXFyJSUygUWL9+faMGtpiLVCrFnDlzjJpxQ2SqM2fOYPLkyQbveY2d8ahmaMANUDsDcuvWrRx004yKi4uRmZmJvn37MgDZDBQKBS5evIjDhw9jwIABGDx4sFHf+44dO3Q6jc0lOjra6HYIEUrHWvSXWHT8cLvFOtnM4ebSaeix7FsoqoxLxzqgsxf+NS2E6VjJrumbmQjUPgts3rwZ48aNa9LvOHjwIOLi4vT+jqbMvKSGFRcX4+uvv9a80wQFBeG1117jM4CNWr16NUJCQtCjRw+z1nU0RW5uLtq174DZ//oFezNuapY7ODjg8crX8PBJldhfU5O0cXLE9aIyjFp/GKUVCpP3D+goRdJbo/HxkQxsOXdNs7zyr7+Fs5nTsR4+fBiLFy/WfD569Cjc3d0b3K+0tFRrUNyyZcswZswYS3ydRABsNAgJ1HZoTJo0SSeHvJqvry/eeustvPTSSxg0aJBRHRsVFRVIT0/Hzp07sXbtWr3bxcfHY9WqVewsMYGxAUipVGqRmR/FxcU4d+6cyWn04uLiEB4e3uzfF4mL1xciasrMfTc3N61R5ffu3UNhYSGuXr3a6DrIYWFhmDZtGgfHkNkVFRUhMjISGRkZguvV97xXXnnF6EwRFRUVOHnyJLZt26Y3+AgAS5cuxZIlS8T+Cois0qZNmyxevkImk+GVV15B7969TXr3EgpCnogfhz8npeP41QKjj9OcPNu1wcX3J+GZJTs0gVJDQcgePu1x9O0olNyUIyQkROzmE1mUvhqNasHBwZg9ezYiIiKMfhbIzMzEyZMnsXHjRr3PGOaoQUnGKy8vBwC+T1CTyOVyePn6Yco/f8IPVnrPbyp/Lzfce/QEFY0Ipvbxc8f+34/Ce9+n4NsLuVrrmiMIuXDhwgbrjgPAxo0bsWHDBs1nawhCvv3220hOTkZqaqqo7SDLsNkgJFCbzuHjjz/WO5uorunTp6Njx44YNGgQAODZZ5/FzZu1ozXOnz+PK1eu6H3gquubb75p8ojwlsbYAGRcXJzF086pVCqkpaVh165dRncEBwUF4e2332baohaG1xeilksul2PDhg1G3SekUinGjRuHHj16GFVvq7y8HHfv3kV2djZOnjxpclCSg2PIEpRKJV5//XWDAUO16dOnIygoSDM7t+49b//+/SgqKmrwnufr64vdu3dj6NChYp86kdWydBCybt2oHj16mPSuIxSEHOzvjS2vDsfwvx1EcXmlqN9dfa2cHJH4xos4n1eE/zv2n2CIviBkv2c8sX/WCJTdzUevXr3Ebj5RszD2WcDX1xcjRozAkCFD4OHhgQ4dOgAAHjx4gPv37+Ps2bM4ceKE4KzHupgJgcj2XLlyBR1lXTDpq5P4Ofeu2M2xOgOf7Yh/xY3E73ecxeHLt3TWN0cQMjAwEImJiQ3uFxUVhZKSEs1nawhCDhw4EAAYhLRTNh2EVDNUY8Zc4uPj8fHHHzM9oomMCUDKZDIsWLCgWUdjmRqMlEqlmD9/vlEdzGRfeH0halmMHTgjk8kQGxsLf3//Jg2eyc/Px+nTp01KuRcWFobXXnuNg2PI7DIzMzFjxgy9MxbMYenSpXj33Xd5z7MQlUqF3NxcpKWlITQ0lKmcbZi5g5B1g45du3Zt9LtXdXU1fvnlFzzTo7dWEBIA4ob0xP97qS+WHPwFP1y7g8p/pz0V0xB/b/wleiDO5NzFf397XitdrFAQsn9nLxybG4WSglu4c+dOo37n4MGD0apVK7FPnahRLP0sEBwcjG3bthk9o5KIrENWVhba+8gwftMJXLxd0vQD2pmI7p2w7bUXELv1JE7JhQdhWDIIGR4ejuTkZABAYmKiwXeA9PR0zJo1C56enppApDFByMrKSrRq1coig0cKCgowceJEAMYHIUtLS41KPUvWwS6CkGpnzpzB22+/bdaHpenTp+Pjjz9mfvpGKC8vx3vvvWdwm5EjR2Ly5MmiFcRWByM3b95s1PYxMTEYMWKEKG0lcfH6QmT/8vPz8dFHHxncRp023NyzERUKBY4ePWp02nAOjiFLssQ9jwNuLE+lUuGDDz7QGmAXFhaGWbNmid00aoQ5c+Y0aX9zBR3rqqqqQm5uLjIrW2Oov7dOEBIABnTxwvyIPhjYxRNtzNzR1hjZ9x7i02OZOHldN6BYPwj5nJ8Hds0cgdU/Xm5UANXRwQF/jOqHrh7tIJFIxD51oiYxVMexMcxVX5KImt/Fixfh0SUQo9Yn4drdB2I3x+qM69MZX04bglc2/YC0X4v1bmfJIGRUVBTc3d2RmJiIOXPmYPbs2Xr3WblypWY7dUpWoSCkUqnEuXPnkJWVhR9++AFyuVyzLioqCnPnzoWfn5/g7ygoKMDnn3+OpKQkzTJPT09MnjwZYWFhmlT3paWlWLlyJUpLSzVB1KioKAC1g1bqppZVKpXYsmULLly4oNlWvX39bdXS09Oxa9cuAMDy5ctx+vRpHDp0CDdu3MAbb7wh+uzPlsSugpBqeXl52L9/v8Hc84ZERkZi5syZGDVqFHPTN5JQJ0h90dHRmDBhgthNBVAbMN20aZOmULchYWFhmDlzpmiBUxIXry9E9smYGpBBQUGYNWuWRWfumxqM5OAYsqTMzEx89913+Pbbbxt9z1uwYAEiIiIYfGwG+mZyr1y5kvWfbJCpQUhLBB3revLkCW7duoUTRdWYt/scfv3fKYJBSFtSNwgZ3rUjEt8YgZh//IjkvHsmH8vJyRFfzxiOVo4OmNCnM1pbQQCWyBzUzwJffPGFyQHJxtSVpqZTqVRQKpXMmkJmceHCBbg90w2j1ifhZkm52M2xOlMHBODTiQMx4e9Hcbmg1OC2lg5Czpw5EzExMfD09MSBAwcEZyxWVlZi+PDhAGpnTMbExAAQDkLu2LGjwSxRQrMu69ebNLRf3RmQ9UVFRWH58uUAaoOVb731llYgtL7w8HCsXbtW67zrpqute776zpksxy6Tr3ft2hXz5s3DvHnzUFRUhJSUFDx48ADnz59HUVGRplbN9OnTAUBT16ZDhw7sJDGTLVu22EwAEqgtzL1gwQJkZmZi69atBtuekpKC8vJyi3dEk3Xi9YXI/qhUqgYDkM01AMXZ2RkTJkzA4MGD8fXXXzc4OCYxMRH37t0TNasA2a++ffuib9++WLJkCYqKinD06FEAtbUfAeDy5cvIyMjQuec9++yzGDRoEOs8NbO0tDTB5VlZWawla4csHXSsq6KiArdu3cKBAiUWfp8CBzub5fdij074KnY4pm45gdSbRSbv79zaCbtnjkBxhQKvfv0TKla8JvYpEZlN3WeBzMxMZGZmamo/AsCJEycAQDMoTl0rUr0fNa8TJ07g4MGDKCsrw8iRIzFu3Dj2W1GjXbhwAc/27I2Z35xGx3Zt0LFdG7GbZFWG+HvjDy/0wkufH0ZOUcOlviwtMDBQk2L10qVLmtmGdZ08eRJA7axEQylbS0tLNQHImJgYxMXFwd3dHaWlpdi9ezd2796NkpISzJ07V2u2o1Kp1AQgw8PDsXjxYs1syYKCAixbtgzJycmYO3cuDhw4AD8/P6SmpmoFC4XSsa5cuVITgJwzZw7Gjx8PPz8/VFZWYtmyZUhKSkJycjLWrFmjNyuj+vjqmZPBwcFi/5W1KHbfM9CxY0dNuofY2Fixm9MiZGZmGqxfYm0ByLrUD9cNzYrMzs7GRx99hPfffx9eXl5iN5tEwusLkX2wxoEzXl5emsEx69atM7jt8ePHUVBQgPj4eAYiyWI6duyoudfxnmedQkNDBevL9uvXT+ymkYlUKpXOsuYMOtZVWFiI6hrgi8sP8NlPWbU1FesFIWskEkiamGBJrGMMC/BB/2c8EbU+CdfvPTT5GD7t2+JfvxuJI1cLsPTQBa2ak0T2pm5gcd68eWI3h+rJzMxEYuJ/ZqirnwmEUhQSGaNP32D8cO0O3hzaU+ymWKUR3Tuh+7LdyC+tMGr75hjC9bvf/Q4rVqzAsWPHBIOQ//jHPwAAkydPNnicumXL5s6dCxcXFwCAu7s7Zs+ejby8PCQlJaGkpESrNuOlS5c0+73zzjta6Vr9/PywfPlyrFy5EkBtpjlj6tcXFBRoAp31U826uLhg+fLl6Nq1KzZs2IDExESt9tYll8tx9OhR1pEUid0HIal5qVQqbN26Ve/6kSNHWm0AUs3NzQ3x8fE4dOiQwXR4ZWVlWLRoERYuXGjURZOIiKyPtQ+c6du3L1auXInVq1cjPz9f73bZ2dn44IMPsGTJEo52JmqhAgMDERYWpnVNi4mJYTo2G1RaWipa0LGu3NxctGvfAW/+6xfszbiptc6jrTPufmzbAxLaODnielEZRq0/jNIKBQCYFIAM6ChF0luj8fGRDGw5d82iba07QwAATp06JdjBVl9paSlGjRql+czUY0T2S6gv7vjx48yYQo1W9qQK4788InYzrNb9T2cYHYBcGBkMSU01AMv+Wxw9ejRWrFghGIwrKCjQzCYcP368weO89957eO+991BZWSn4vDF8+HBNYLCyslIT2PP29tZs89e//lUnPaq7u7smxaqxEhISND/PmDFDcJvx48drZmCePHlS8FknPDycAUgRMQhJZnXo0CG9s0lkMlmDIy2shaOjIyZMmICgoCBs2LDB4AyZFStWMBBJRGSDFAqFwVmGQUFBGDt2rNjNhJubGxYtWmTU4JiPPvqIgUiiFmzWrFmYNm0asrKy0K9fPwYgbZSXl1eDNXgsTS6Xw8vXD1P++RN+uFqgta66uhpt3vmnqO0zB38vN9x79AQVT6pM3rePnzv2/34U3vs+Bd9eyG32tuvrYKvvyBHr6zxetGgRkpKSBNOtEVHjubm56fRdSaVSBiCJRPbmsCD890C/Zvm36O7ujvDwcCQnJyMtLQ3Dhg3TrDtw4ACA2oGLdWcoGqIOQBYUaD8L1p3xWJefnx+ioqI06VHj4+PxzjvvoGvXro0u1VFaWqr1c93PQh4+fCi4nNl8xMUgJJlNcXGxwc7RBQsW2NzDT2BgIJYsWdJgrTAGIomIbM/XX3+td51MJrOq9KZ1B8cY6phWByLnzJnDexJRC+Xm5sYakNQkV65cQUdZF4zfeAI/594VuzkWk1tc3qj9Bj7bEf+KG4nf7ziLw5dvidL2f/zjH0YFIb/66itR2mdI3dpRRGQ+sbGxOu8JERERYjeLWjBbTtdurmPMi+iNecGeaNu2LRwcHJrUBmPFxsYiOTkZCQkJmiCkUqnE7t27AQBvvPGGUccpKCjAO++8o5k9aay6dSKTk5MRExMDoHYm4u9//3s899xzJgUk6w5amjhxYoPbZ2RkCKahDggIMOO3TKZqnv/6qUXYs2eP3nUxMTE2OyvDzc0Nn3zyCYKCggxut2LFCpMvzEREJI7i4mKDaVjffvttqwlA1hUYGIjly5dDKpXq3aasrAwrVqwwmL6ViIhISFZWFjr4PoPRG36w6wBkY0V074Tv4kbi1a0nRQlAqgcYyeXyBmcCyOVylJSUiPI96dNQm4mo8QIDA7Fw4ULIZDLIZDLExcVppWMmam5NDfzZ+jHiX+yD/xnyLGR+fujQoUOT22Cs0NBQALUBQPV999KlS5pnAmMGJxw+fBgTJ07U9HOHh4cjKioKy5Ytw7JlyzBnzhy9+/r5+eHUqVNYs2aN1sDo5ORkzJo1C+PHj8fp06eNPh9re5ahxuFMSDKL/Px8vZ25UqkUL7zwgthNbBJHR0fEx8dj9+7dmuLeQjgjkojINqxfv17vuri4OHh5eYndRL28vLywZMkSbNq0CdnZ2Xq3W7NmDVOzEhGR0S5evAiPLoEYuT4J1+4+ELs5Vmdcn874ctoQTNr0A9J+LRalDd26dcPAgQORmJiI3bt3Y/bs2Xq3VQ8SjomJQWJiot7tlEol8vLykJaWhoyMDM3shcDAQLz00kuYMWOG3vqTlZWV2LZtG/Ly8nDjxg3I5XKEh4cjIiICo0eP1tReKi0txcqVK7WCkIsWLQIABAcH68xYOHz4ME6dOoXU1FSUlJQgMDAQ3bp1w9ixY7VSy6mlp6dj165dAIDly5fj9OnTyMrKQl5eHoYPH846mNRiqLN5EZG4Zg7ugYWDnkHbtm3h6urarL/bxcVFc+8/cuQIpk2bhmPHjgGofSZoqKa0UqnU1KEODAzEX//6V530renp6ZoajPraMGzYMAwbNgyVlZVIS0vDoUOHkJSUhJKSEvz5z3/GgQMHjJoRqU4vC4Cp3G0Yg5BkFjt37tS7bs6cOVY5m8RUjo6OmDZtGlxdXQ2mnWUgkojIusnlcr2zBGUymU2kMXRzc0N8fDzWrl2rNxDJGpFERGSsCxcuwO2Zbnhh7UHcLGlcmlJ7NnVAAD6dOBBjvzyCywXizuaLjIxsMAhZWVmpCTyqt9fn2LFjms7GuuRyOeRyOTZs2IC9e/fqdEAePnxYcL/k5GQkJydjxYoVmv0qKyt10rDW/awOQlZWVuLdd9/VdDbWb0tSUhJiYmIwf/58rY7LwsJCzfHmzp2L+fPna9YNHz5cvL8sIiISXU/fDgj0avr7cG7JI1y50/AzwJQB/lg5ri+UVU/Rvn17Uc5Zfe//6quvMG3aNBw9ehQAMGnSpAb3zcvL0/w8b948wfqRV69eNbotdQOSADSByEuXLiEkJKTB/dUDmoDaFLHG1rMk68IgJDVZcXGx3g7QoKAguwvGTZgwAQAaDEQuX77cqmfSEBG1VAkJCXrXvf3222I3z2jGzNJXByI/+eQTuxgQRES1FAoFzp49i4MHD8LPzw/R0dF298xNzefChQt4tmdvzPzmNDq2a4OO7dqI3SSrMsTfG394oRde+vwwcorKxG4OQkJC4OnpiZKSEqSnpwt24KWlpWl+fu655/Qeq7KyUhNIDA8PxzvvvIOuXbsiLy8Pe/bs0QQv33nnHa1AplKpxOrVqwHUzpJYtmwZunbtiqqqKly9ehWffPIJ5HI53nnnHWzbtg3e3t7Yu3cvDhw4oJk5sXfvXgDQmpGxbNkyTQAyPDxc07bHjx9j8eLFkMvlSExMRPv27fUGYD///HNNuwYOHIjg4GCx/8qIiEhEM8O7Y+FLzzX5OJ/9lIX5354zuM3YPp3x+cv9oXhSCV9fX9HOue6zwsaNG1FSUgJPT0+j3hfqlhoTqqOoVCq1ak4/fvxY83NBQQFycnLQp08freCh2tKlSzVZDo4dOyb4DKNUKrUGGgUHB2sGGmVkZAgGIZVKJS5duoSePXs2ONOTxMEgJDXZDz/8oHfda6+9JnbzLGLChAlwdXU1OKL0008/5ewTIiIrY2gWZFhYmM0NHjFmln5ZWRnWrl2L+Ph4BiKJ7MTXX3+tKYVQVlaG7OxsLFmyBDKZTOymkQ3q0zcYP1y7gzeH9hS7KVZpRPdO6L5sN/JLK4zaXtIMbZo8eTI2bNigtwNv3bp1AGqzEhlKdbZt2zbNz4sXL9Z07AUGBuK9995DaWkpkpKSIJfLUVlZqenYq1tbatmyZZpOTScnJ4SEhOCLL77AqFGj0K1bN+Tl5SEwMBB+fn7o3Lmz5vfV70QsKCjQdDKGh4dj7dq1Wm1PTEzEypUrkZiYiA0bNuhNE5uUlISjR48Kdn4SEVHLs/ncNRy/fqfJx/m19JHB9RHdO+GryaGofFSudb8Ti/pZQT3453e/+51R+w0aNEjz84EDB7QG/RQUFODzzz/XqtOYlpameQ5QDyby9PQUTLd67tw5zb6xsbGCv//YsWNaadQnTpyIFStWAKgdwOTr66vz7LNlyxatQU6cLWl9GISkJlEoFHpnX9hiZ64pRowYgYqKCoOdvpx9QkRkXQzVLbDlgTMTJkxAYWGh3vrM2dnZWLt2LRYsWCB2U4moiRQKheC/9UOHDmHWrFliN49sUNmTKoz/8ojYzbBa9z+dYXQAcmFkMCQ11QAs+/6n7lhMTEzUSU1aWlqqmcUwYsQIg8eZPXs2xo8fDwCCHXbDhw/XBAZLS0sFg34nTpzQmVnh7u5uct2mAwcOaH5etWqVYPB00qRJmoHAaWlpgvUhAwMDGYAkIiKN6/ce4vq9hxb9HWHPdsS3b7yAspIidO3aVexTBvCfZwW10aNHG7Wfu7u7pg6jev9evXph3bp1mueLTZs2abIefPXVV2jfvj0GDRqEVatWYdKkSSgpKcGMGTPw0ksvISwsDI8ePUJ+fr5mBmVUVJTWc0fdrAWrV6/Gw4cPkZGRgeXLl8PFxQXLli3D4sWLNSnfAwMDMW/ePDx69Ah79+7VZFFYtmwZA5BWykHsBpBtu3jxot51L774otjNs7gJEyYgOjpa73r17BOVSiV2U4mIWjy5XI6yMuE0atHR0XB2dha7iU0yc+ZMBAUF6V2fnZ2N/fv3i91MImqip0+fCi4vL2cdPyIxvTksCP890K9ZBqC6u7trAn/nzmmnhtu9ezeA2mCcMWnX/Pz8NB12SqUSBQUFmj8PHwp32oaEhGiOvWHDBqxcuRKlpU2rlamuQeXp6ak3lVrd89GX2WLevHlm/a6JrJ1CocCJEyeQnJwMhUIhdnOIWpzn/DywN+5FlBQWWE0AEtB+VggPDzdpgM4777wDT09PALX3+fnz52sCkGvWrEFISAg++OADAEBJSQkWL16M8+fPw8XFRZMWXV1XetasWZg/fz5WrFihSQs7d+5crd/n5+eH8PBwzfFWrFihVTt6zJgxWLNmjeazXC7H/PnzNYFJoDb7Q90ZlGRdOBOSmuTw4cOCy2UyWYupS9NQjcjs7GwcOnRIsx0REYmjbn2k+kaNGiV285pMXSNy7dq1ems179u3D97e3poHfCKyPW5ubggKCtL5d25oYByRJdVIJJDU1LToY8yL6I15wZ5o27YtHByaZ6z3G2+8gcWLFyMhIUFrRqA6CPnKK68YdZzS0lJs3rwZR48e1Uqv1pAPPvhAM/s6MTERiYmJ8PT0xKhRozBp0iST+wPUMydLSkowcODABrfPyMjAtGnTdJYL1a8isleZmZma9MtqK1euZFkgIjMa7O+Dc7l3BdcFerfHkbdHo+jXHIM1mC0lODgYy5Yt01t/8q9//SsyMjL01kdetmyZ5jha5xUYqEnHfuLECQC12RW6du2qyVQQEhKiqe9cf9/U1FQUFBQgIyMDly5dQmlpKYYPH45BgwbpDYauXbsWx44d03uuw4YNw6lTp5CWlob8/HzNeYWGhmq1S+j7AcAsCSJjEJKMsn//fnh7e0Mmk8HZ2RleXl4oLy/XO/rQ2BceezFhwgRcv36dnb5ERFbKUPpwe5gFqebo6IhZs2bho48+0jvrc/PmzfDw8Ggxg4WI7NGsWbOwY8cOpKSkQCqVYty4cfw3TaJpauDP1o8R/2IfvP98F0ilUri6uja5DcaKiIgAACQnJ2vqNcrlck0gceLEiQ0e4/Tp05g/f77mc2BgILp16wYAmtkc+lLZh4SE4OjRo9i9ezd2796NkpISlJSUaAKSgYGB+OCDDwRrVgoxJQBKRLW+++47nWU7duxgenayPIkEG6cPRXiXjmK3xOJcWzuhz1++g6JKqbXc2ckBR9+OQsmtXFECkIB2NoPGrG9o5mBDWRWM+d3Gzk50cnJqcFsXFxfNwCuhgUimnj81HwYhySgnT57U6cyUSqUICQmBUqlEfn6+VvqVHj16iN3kZtfQ7JPNmzcjICDArutkEhFZq2vXruld179/f7GbZ1Zubm5YsmSJwUDkhg0bsGTJEo6SJrJRbm5umDVrFl577TU4OTmx/jiRSGYO7oGFg55B27ZtmzUACdR2xEVFRSEpKQl79+7FtGnTNLMVoqKi9KY0rUsdgPT09MSnn36qEzBMT083WE/b3d0ds2fPxuzZs1FQUIBTp07h5MmTSE5OhlwuxyeffKKp4dgQdf0pT09PrRRsRKSf0MSAlJQUzJw5k88G1GRSl9Y4Ok84KNS2tRPKKp8i6gv7vV63cXLEsXlj4OXqjP1zIgXX37953e76E4gsgUFIMkrPnj2RkpKitaysrAzp6emC28fHxyMsLAxubm7w9/eHh4cHOnfubDczTYQYM/vk008/xSeffMKHQSKiZiY0ShioTR8uk8nEbp7Zubm5Yf78+fjoo48E15eVlWHTpk1YsGCB2E0loiaw52drIlP19O2AQK+mD67JLXmEK3carm84ZYA/Vo7rC2XVU7Rv316Uc54yZQqSkpLw3XffYdq0aZpUrFOmTGlwX3VtJwD43e9+JzhjsbCw0Oi2+Pn5Ydq0afiv//ovxMfHawKR6enpRs2GVKdJKykpQWlpKdOmERlBX3p29jmRORTm30b3NrrLy8vL0cajM6L/fgz3Hz3Ru79Np1qXSPBV7DCk3CxGhJ8LurdR6mySmZnJACSRkRiEJKN069ZNJwjZkPrbL1++3O47Stzc3PD+++9j0aJFguvLysqwe/duo6aMExGReRhKHz58+HCxm2cxMpkM8+bN06kTo5adnY3k5GSmCiciIrswM7w7Fr7U9HRon/2UhfnfnjO4zdg+nfH5y/2heFKptw5Tc3juuefg6ekJuVyOHTt2oKSkBJ6enkYF/eoGIfU9D/3jH/8QXF5ZWYn8/Hx4enrqBAudnJywatUqzTF37dol2B6lUqlVv0md/hUALl++rFXnsq6CggKmViP6t+joaBQUFGgGwstkMruodU/WoUuXLjrLSkpK0K6DO0Z+edxgABKw7VTrs57vgQBPN8xMOI0Tb4QLfhdCy4hIGIOQZJSmphCVyWQtJg2pl5cXFi5ciBUrVgiuP378OHr37o2+ffuK3VQiohYhLy9P77ohQ4aI3TyL6tu3L6Kjo7Fv3z7B9Zs3b0avXr2YlpWIiGze5nPXcPz6nSYf59fSRwbXR3TvhK8mh6LyUTk6d+4s6jk7OTlh8uTJ2LBhg+b9c/LkyUbtO2jQIM3Pp06d0hooW1pais2bN2sFKjMyMjTBv3fffRfJyckIDAzEtm3btIKJgHaKSH2zMs+dO6cVaJwxY4Ym9WtCQgICAgJ0go07duzQnOfRo0c5W5JavMDAQHzyySfIzc3VfCaylJqaGjx8+BCrf7mHjNv2W8e3p08HLBkTgiGrD8DBQSJ2c4jsAoOQZJROnTo1af/Y2FixT6FZBQYGYuTIkTh+/Ljg+q1bt2LZsmV2PzOUiMganD9/XnB5UFBQi7gOT5gwAdevX9dbs5hpWYmIyB5cv/cQ1+89tOjvCHu2I7594wWUlRRpzdwT0/jx47XqNhobhHR3d0dgYCDkcjm++uorAEBoaCi2bNmiqcm4Zs0arFu3DnK5HP/4xz/Qrl07hIaGYvny5YiJiYFcLseMGTPwyiuvYPjw4Xj8+DHkcjlWr14NoPa9uO4syODgYM3P69atw6NHtQHfMWPGwMXFBXPmzMGGDRuQnJyMiRMnIioqCjNnzkRhYSHOnTunqS85Z84cBiCJ/s3R0ZHBR2oWFy5cwK9Onvj8VJbYTbGYVk6OSPhtBBb8Kxm3Sx+hqxnSvBMR4CB2A8g2NGUWo0wma5EPRJMnT4ZUKhVcV1ZWhj179ojdRCIiu6dSqfSmEzcmVZm9mDVrlt516rSsRGT98vPzkZmZCZVKJXZTiFqc5/w8sDfuRZQUFlhNABKorcWoft8ODAw0KTj3wQcfAKhNr7dixQrExMRoApBz5szBsGHDNNvI5XLMnz8fJ0+ehLu7Oz799FPN8hUrVmDixImIiYnB4sWLUVJSO0Nm2bJlWr/P29tb01a5XI7Fixdj8eLFmvWzZ8/GwoULNZ+TkpIQExOD+fPnawKQUVFRmD17tthfOxFRi3L9+nV4+fdA3PbTgBlSpDZWTU2N4B9z+Ut0KNJuleDb9Fy0buWIz/5rMO7fvy/a+RLZC0mNOf+lkl376KOP9NbUMmThwoUtMggJAMXFxXrrQwLAkiVLIJPJxG4mEZHdUneMCVm5cmWLSkOamZmptz4kAKxdu7ZFzAwlskUKhQKffvqp1rP4vHnzmN6fzKL40RN4f5ggdjNEN9jfB+dy7+osv//pDISv2oef4sei+NccPPdc0+tOmqqgoAAZGRnw9fUVHEQll8shl8sRHBwsWC/x8OHDACC4XqlU4tKlSzh27Fjt9zB4MEJDQ+Hi4qJz/PrHqKysxNWrV3H16lWcPHkS9+/fxyuvvILQ0FB07dpVJ02r+vepf5famDFjBM/30qVLKC0thbu7OwYPHow+ffoIBlnV2wNARESEVtuJiKhpysvLUalQ4L++ScaZG4WitkVfGEMiaXra1FG9ZFjzm0EIW7kPSlU1vo0biS7VD/i8TWQGDEKS0TZt2qR3Nok+MpkMS5YsEbvpojpx4oRm1GZ9MpkMixYtgqOjo9jNJCKyafn5+ZrOeQ8PD3To0AHOzs44efKkYD1EqVSqNzhpzwzdy8PCwgzOmCQi8SQnJ2Pz5s1ay1rqdYzMz2AQUiLBxulDEd6lo9jNtDjX1k7o85fvoKhSai2vWPU67pU/waM7N9GnTx+xm0lERNSsrly5gsS8J1h2OF3splgsCOnl5oKUd6PxyuYfcPnOA/yLAUgis2JNSDJacHCwyUHIllYLUsgLL7yAU6dOCc4izc/PR1paGsLDw8VuJhGRTXN2dtbpoK/Lw8MDANCqVSvcvXsXffv2RXFxMYCmpRy3Na+99hquXr2KsrIynXUpKSl48cUXW2z2AiJrpp7FVFdZWRmKi4tb1DWMLEPq0hpH540RXNe2tRPKKp8i6osksZtpMW2cHHFs3hh4uTpj/5xIwfX3b15H//79xW4qERFRs0pJScHAgQPxivQ+Jj7XRezm6A9CAkATApHebm2w/lQ2A5BEFsIgJBnN1LShLbUWZH2Ojo54++239aZl3bVrF/r168cUeERETdBQJ3z9Og5nzpzBmTNntJYFBQXh7bfftuvrsbOzM6ZMmaI3YJuQkMAZ+kRWaMCAAToD2qRSqUm134j0Kcy/je5tdJeXl5ejjUdnRP/9GO4/eqJ3/xqJBJImJlgS7RgSCb6KHYaUm8WI8HNB9zZKnU0yMzMZgCQiq1NeXo6TJ08CqE1D3JLKTFDzefr0KTacvYqVxy+J3ZRa+u7zTZwJuSV2GFJvFTMASWQhDEKS0aRSqUnbcxbkf3h5eWHkyJE4fvy4zrqysjIcPXoUEyZMELuZREQ2LSwszOQZ+/XZcwBSLTw8HGfOnEF2drbOOs7QJ7JOo0aN0kktPW7cOA4YILPo0kV3ZkNJSQnadXDHyC+PGwxAAmhy8FDMY8x6vgcCPN0wM+E0TrwRLvhdCC0jIhJT/TTt+/btQ1xcHJ/hyewkEglKK54ip6is6QczgxoDQcimhCEfP1Xhi6lD8KTwJgOQRBbAICQZzZRRVZwFqWvy5MlITU0VTIG3b98+jBo1qkV0fhMRWUq3bt2aFISMjo4W+xSazWuvvWZwhn5oaCiDG0RWxNnZGevXr0daWhru3buHwYMHMw0rWUxNTQ0ePnyI1b/cQ8btErGbYzE9fTpgyZgQDFl9AA4OTZtBQUTUnITStB8+fJhBSLKImYO6Y0wv07LjWYql0rF283LDjazLzHxAZCEMQpJJgoKCBGdO1MdZkLocHR0NpsDjbEgioqbp3Llzo/dtaYNnvLy8EB0drTOzCqidoX/o0CHek4isjKOjIzsXqVlcuHABvzp54vNTWWI3xWJaOTki4bcRWPCvZNwufYSuXkxjSES2o36KdvUylUrFgYRkVkOGDAEA+EpdxG4KAGDOnDmCy9977z107969ScdmAJLIchzEbgDZFj8/vwa3aWkduaYIDQ3Vm9Z23759UCgUYjeRiMhm+fj4NHrfV155RezmN7tRo0bpXXfy5EmoVCqxm0hERM3s+vXr8PLvgbjtp/XXXWoGNTU1gn/M5S/RoUi7VYJv03PRupUjPvuvwTr1o4mIrFVQUJDgMgYgiYjIGjEISSbx9/dvcJuW2JFrLPVsSH3Onj0rdhOJiGyWKWnD65JKpejdu7fYzW92zs7OiIuLE1xXVlaGtLQ0sZtIRETNqLy8HO3d3fHq1p9QWmG/gyNH9ZJhbO9nMP9f59HayRHf/m4kulQ/QEhIiNhNIyIyytSpU7UGuEul0hZVWoKIiGwL07GSSQICAgyub6kduaYIDQ3Frl27BGtDHjx4EC+88AJHrxERNVJYWJjJdSHHjRvXYq+7hu5JrCtDRNSy3Lp1C4l5T3DmRqHYTbEYLzcX/H3aULyy+QdUqarxr7jaAGTfvn3FbhoRkdFkMhlWrFgBuVwOoHbCQEt9nyEiIuvHICSZpKFZJlOmTOGDTwMM1YYsKyvDlStX+BJMRNRI3bp1MzkIqa5z0RI5Ojpi3LhxSExM1FmXn5+P/Px8yGQysZtJREQWlpKSgoEDB+IV6X1MfK6L2M3Rm3pVIpE06bjebm2w/lQ2Lt95wAAkEdk8lkIiIiJbwCAkmcTZ2VnvOqlUitDQULGbaBMMzTw5duwYX4SJiBqpc+fOJm0fHR1t8N7WEgwZMkQwCAkAp0+fxrRp08RuIlGLpx4UEBAQAC8vL7GbQ3bo6dOn2HD2KlYevyR2U2rpq//YxCDklthhSL1VzAAkEREREVEzYRCSTKYv1R1nQRrP0dERERER2Ldvn8667OxslJeXN7q2GRFRS+bj42PS9hEREWI3WXTOzs4YOXIkjh8/rrPu+PHjmDx5Mu/vRCL66KOPkJ+fr/k8cuRIDg4gs5NIJCiteIqcorKmH8wMLDUT8vFTFb6YOgRPCm8yAElERERE1AwYhCSTCaW64yxI0+kLQgJAamoqRowYIXYTiYhsjikDOMLCwjjg49+GDRsmGIQEwDThRCKSy+VaAUigdnDApEmTWvwsbjK/mYO6Y0wv60jBbakgZDcvN9zIuoz+/fuLfYpERERERC0Cg5BkMqEUUJwFaTo3NzcEBQUhOztbZ92pU6cYhCQiaiR9M/brmzRpkthNtRoymQxSqZRpwomsjNBzIgBcvHgR4eHhYjeP7Ii6PrKv1EXspgAA5syZI7h8w4YNTT42A5BERERERM3HQewGkO3p1KmT1mfOgmy8yMhIweX5+fkoLy8Xu3lERDapW7duDW4jk8lYV62ecePGCS7Pzs6GQqEQu3lELVJQUJDg8n79+ondNCIiIhKJQqHAiRMnsH//fvYdERGR1WMQkkzm7u6u9ZmzIBuvR48eetfl5eWJ3TwiIptk6NqqFhsbK3Yzrc7AgQP1rrt165bYzSNqkQIDAyGTaafHHDlyJFOxEhERtVDl5eWIj49HYmIi9u3bh/feew/JycliN4uIiEgvpmMlkzk6OkImkyE/P5+zIJvI2dlZb0rW8+fPM/0dNSgnJwf379+Hj48PPHw64cFjBVydW+HJw/u4ffs22rZti969e4vdTKJm1dAMR5lMhsDAQLGbaXXc3Nw09/f60tLS+J0RiWTJkiXIz8/HtWvX0LdvX87iJiIiasF27Nihs+zw4cNM005ERFaLMyGpUfz8/ABwFqQ5DB06VHC5MfXMqOUqLCzEtWvXUNGmA7bkVuHFLefQbuHXeOZPO+HxwTcY8PmPWJv9GMWtPXDz5k3k5OSI3WSiZuPs7AypVKp3/ZgxY8RuotUaMGCA4PLU1FSxm0bUoslkMowYMYIBSCIiohZOqK8oPz8fDx48ELtpREREghiEpEYJDg4GAM6CNIOAgAC964qLi8VuHlmhS5cuwdHFFZ+k3kW/T7/H+tPZyCl59J8Nampwp6wSX6fcQMRnh/DmoatwlHoiLS1N7KYTNZuePXsKLucMfsP69+8vuLysrIz1ZoiIiIiIrJRSqRS7CURERIIYhKRG8fDwQHR0NGdBmoGhEe137twRu3lkZbKzs9G+Uxe8uP4YtpyXo8aIfQ5n5WPQmkNo5evPQCS1GOrBMvWNGzeO9y4DfH199a67e/eu2M0jIiIiIiIiIiIbwpqQdsySteI6d+6Mzp07i32KdiMsLEwwpcbNmzdZF5I0njx5Aldpe0zYdBxXCh+YtO/d8kpEfXEE5+aPRU5OjsEZuET2QCaTCS4fMmSI2E2zanXrPtd369Yt1oUkIiIiIptz+fJlPH36FF27dgWc2+LxUyXc2zrjzq2bKCoqwjPPPINnnnlG7GYaJS4uDkBtiRYA8Pb2hoODA9zc3MRuGhERkSAGIe1QYWEhysrKoGjnhS25d3H44DlNqkYJAF+pCyJ7+mHW4Gdw8+ZNqFQqkwMSzs7OYp+mXenWrZtgEFL9UEkEABcvXsSh+62RUVDaqP0Lyyvx5u7z+HJsz0btT2RLhGaZR0dH8/5lhAEDBggGIW/cuIERI0aI3TwiIiIiIqPk5eXBwcEBd1t54MvkbJzYdQjFFQoAtf1jPbzbY0KfZ/BmNynS09PRo0cPtG3bVuxmGxQeHi52E4iIiEzCdKx2hrXibJO+lKxCgUlqmRQKBbr36o21J6806TiHs/KRV+WMa9euiX1KRBbl7OwMqVSqtWzw4MFiN8smeHt7Cy6/evWq2E0japHKy8uRnJwsODiAiIiIhP3yyy9wknpg3uFriFx3CLvS8zQBSABATQ2u3nuIVScuI+jjf+Hb/Go8ePgQBQUFYjediIjIrnAmpB2pWyvO2FSN6lpxR94ajbS0NISGhop9Gi1Sp06dxG4CWbnLly8jo8oNDx4rIDFie0mN/mqRX57JxvwgF7FPicjievbsqRnMERYWZrAGL/2HvuwIZWVlYjeNqMXZsWMHjh8/rvksk8mwZMkSsZtFRERk1dLT09HGLwCD1xxC/sPHDb5Dq6prsDwpHZl3SvHlxGDcvXsXPj4+Yp8GERGRXeBMSDthjlpxXs8GIicnR+xTaZEMpQcsLy8Xu3lkBWpqanAku3ZEZo1EYvBPQ9scyS6Ap6en2KdEZHHBwcGan8eOHSt2c2yGoXtScXGx2M0jajEUCoVWABIA8vPzIZfLxW4aERGR1SopKYGHXxeMXp+E/IePTdr3+8xfsTApCxUVFaiurhb7VIiIiOwCg5B24uLFi9h8sbDJteIcHR3FPpUWyVABcYVCYcKRyF61bt0a14vNMwvp/mMFHNq4in1KRBYnk8k0/6v+mRpm6J5ERM3nyJEjgsvPnj0rdtOIiIis1q+//oqPfrhicgBSbVvqDaQ8qE3nSkRERE3HIKQdYK04Ivvn6OiIyqdKsx2vrbS92KdEZHHq9KuxsbFiN4WIyGQeHh6Cy0tKSsRuGhERkVW6d+8evLr2wD+Tm5Y1YNGBX9DVP6BJxyAiIqJarAlpB1grjsj+VVdXw71ta7Md7/GDEkDaVuzTIrIoZ2dnBAUFITAwUOymEBGZrFWrVoLLOVuZiIhIWG5uLg7dbw2Vqlqnf0yoL6z+MvXnnKIypN57jICSYvTo0UPs0yIiIrJpDELagfq14gyR1NQY3OZIdgH+PDRc7FMionrKy8vRx9cdZ27cbfKxunq0w+OyhwA6i31aRBY3btw45Ofn4z5ckFtiPTV2+z3jgS7u7SCRGDN8iIiMlZOTg/v378PHxwcePp3w4LECrs6t8OThfdy+fRtt27ZF7969xW6mUTw8PBAWFgaFQoEHDx7Azc0Nbdu2Rbdu3cRuGhERkVVq3749jpytnQVZt+9LqC+s/rL6n49mF2Cyr0rsUyIiIrJ5DELaAdaKI7J/7dq1w9je7fH3M9lNPtbYXs+goqJC7FMisribN2+iXbt2uPSwGv+18XtUVpkvpXFTRPd9Fom/G4lHiiq4tTHfDGeilqywsBBlZWVQtPPClty7OHzwHHJKHgEAJAB8pS6I7OmHWYOfwc2bN6FSqRAQYN1p1gIDAzmTm4iIyARubm6QF5ln4OH14jLU+DB7EBERUVOxJqQdYK04IvvXp08fDPZtC38vN0hqagz+AaB3naODBH94oRf8/PzEPiUii7p58yZat26NX+4r8ZuNx6wmAPnG4B7YNSsS/3vwF2Tk3xe7OUR24dKlS3B0ccUnqXfR79Pvsf50tiYACQCoqcGdskp8nXIDEZ8dwpuHrsJR6om0tDSxm05ERERm1Lp1azw203P/46dKuLiwXBEREVFTMQhpByxSK46alUrFFB9kmIODAwpu38LyCaGokUgM/gGgd92CF/tAVXwbnTszFSvZr9u3b8PJyQmpxU8xZdMxPLGSAGTckCD8PXY4Fuz+GSuOXhS7OUR2ITs7G+07dcGL649hy3k5aozY53BWPgatOYRWvv4MRBIREdmRqqoqs/WPubs4M4MQERGRGTAIaQfUteLM4T+14qg5lZaW6l3n7m6ev1uyff3790d/1yq8Hta41GzDAnzw/4YH4plnnhH7VIgsJicnBxKJBJceViPmq+OoUlWL3SQAwOyhQfgiZijm7jiDL05dEbs5BpWXW0/tTCJDnjx5Aldpe0zYdBxXCh+YtO/d8kpEfXEEXs8GIicnR+xTISIiIjMoLCw0W/9Yn04d4OTEKlZERERNxSCkHaitFWeeoAJrxYnjwYMHetc5OjqK3TyyIl5eXvgksgfiBnc3ab9RPf2wc8bzKCu9jw4dOpi9XT///DMyMjJw/vx5JCcn4+LFi/j111+hUCjE/sqoBcnKykL79u3x872n+M1G65kBOXtoENZOGYLfbfsJG81Q19XSDP279fLyErt5RBoXL17E5ouFyCgobdT+heWVeHP3eT5rERER2QmlUmm2/rFxvZ9hGRMiIiIz4JAeO9CnTx94l9yHv5cbcosbnr2grhlXn4OjA/7wQi+0q+IMiOZ2/75wXTCZTCZ208jKeHp6oqSkBB8O8kNkTz98sDcVN0v1DxzwbOuMxVH9MLWHB54+KkO3bt0s0q7q6mrsvKXE7QdP4e/phgBPV/grneFYqYS0qgp3CwtRXl4OhUIBR0dHuLm5wcvLiwENMpusrCz4+flh39V7mPn1SVTXGJOU0fLihgTh82lD8bttP2Fb8nWxm2OUO3fuCC6XSqViN41IQ6FQoHuv3hj78d4mHedwVj7yIoOhuHYNPXr0EPu0iIiIqAmCgoLwbDXwv4ec8fCx9sA6ob6w+svUn58P8IEPHqNLl2fFPiUiIiKbxyCkHahbK276P08a3FZSU6OpGVefplbcc8+JfUotTkZGhuDynj17it00skKenp5wd3fH/V9+Qdp/j8bp22U4lHUbl++UovTxU7g6O6GXTweM6umHsT28cT3rCjw8uqFNmzYWbdfF/PvYf/mWzvI2To4I8GyHbl5S+Hu6wd+zLfzbtEXVUwe0UVThSflD3L17F48ePYKHhwe6dzdtlifRtWvX4O3tjX1X7yHum5+sJgA5e2htAHLujjM2E4AEgJs3bwou5z2JrMnly5eRUeWGB48VkBixvcTAdeHLM9mYH+Qi9ikRERFRE0mlUlxNScGi0cFY+H2qZrlQX1j9ZerPrRwdsG7yYDwuvyf26RAREdkFBiHtRP/+/dH26lW8HhaIrSlyk/dX14pr5WBMNw6Z29WrVwWX+/v7i900skIVFRWQy+WoqanBjevXMKBTJ7w8dYhmfU1NDSQSCYqKipB7/RqcnJxQUVFh8SCkPk+UKmQVPsCVu8L1Zju2awN/z3bo4+uOD/y9kZ6ejpCQEFHaSrYnKysL3t7e+Fd2Ed5OPG01Ach5EX2w4pVBNjUDUu2XX34RXO7r6yt204g0ampqcCS7oPZnieHnV0OD8ADgSHYB/jw0XOxTIiIiIjPo378/fO8U4nCPTvjh2h2T9//bbwbBoeQ2evXrJ/apEBER2QUGIe1Iba24DmjlKMHmc8Z3eI7q6Yd/TgtHWel9i6Rq/Pnnn+Hq6orKykpIJBI4OzvD3d0dPj4+cHZ2FvtrE115eTnKysoE1wUEBIjdPLIi1dXVSE1NRYcu3XGqrDVuljzFE2U18Gs+cD5f736+UheM9a5BYeFltG7d2qIzDQ3NNNG3rri8EsXllUjJK8LRq/nIfGds832pZNPqpmC1tgDk6snPY+bXJ20uAFleXo78fOHrSVBQkNjNI9Jo3bo1rheXNf1AAO4/VsChjavYp0RERERm4OTkBKAGCdMHY+auFBy8ctuo/RwcHbD6lXC84K5Cjx69zd6u69evQ6lUoqKiAkqlEq1bt0b79u3h4+ODdu3aif21ERERWQyDkHaEteJs08mT+lPouru7i908siIXLlzAL1VSzPvke6gaCPbVn/Gx+MAveKGbD76cNgSpqano378/HB0dzd5GfTNNGpqFot7m9oPHqJQ4QVpdDQcHh2b4VslWqWdAWlsK1oWj+mHp+FCbDEACQF5ent51nTt3Frt5RBqOjo6ofKo02/HaStuLfUpERERkJp07d8atW7ew6eW++LbXM/jToQu4X69GZF1B3u3xxdTn4VFZhB49eqFVq1Zmb9OTJ09w36UjPsu4A39PN3Tzaoturi7Ak2o4tnqKe4V38ODBA1RWVsLBwQFt27aFl5cXfHx8IJEwaxkREdkuBiHtDGvF2R59QciwsDCLBInIdgX1eQ4Rf9xpMABpyE837mLgir1Y85tBaJ+TA09PT3h4eIh9WjpqamrT7BHpc/78eQQFBeGeAjianY+pA6xj1viAzl54a3gvvPL3o0i6cqvpBxTBd999J7g8KCiI2QvIqlRXV8O9bWuzHe/xgxJA2lbs0yIiIiIz6dy5MxQKBQa53EL2B9H4/sodnLh+B9eLyvD4qRIers4IkXlgQp/O6OfeCgUF+Qju39+ibSqueIJvL9bWX687UNdRIkEXD1cEeknh79mutm/MyRXdnjqhzZMq1DypQOG/B/C7urqiT58+Yn+9RERERmMQ0s6wVpxtkcvlelOxDho0SOzmkQhqamqQkZGBp0+fAgAkEgk6dOiAwMBAVCpr8FhRBTRhFOTjKhV+v+MsfhseiFXjvXHp0iU899xzYp82kdGqqqrg7++P6lZtAMUTLB5j2Y4CUwR2lGLO9tM2G4AsLi7Wm4rVnu69ZB/Ky8vRx9cdZ27cbfKxunq0w+OyhwA425eIiMhePHjwALm5uQCAm9ev4pUe/pj1fA/NenX/WG5uLn79tQDOzs5QKpX/TufavFQ1NcgrLkduySOt5epApbtLa/h7uiHIpz3mvxiAX375BQMGDBD3CyYiIjISg5B2grXibFNCQoLedb17m78GAVm/7OxsFLb2wvk7RahBDRwlDpgk80Rqaiq6BpkvWLj1/HX8cqsE238bgbS0NPTr10+Uly0iU7Vq1Qo3b97Ejw9b44M9yWI3R4vys1nIf1DR9AOJZM+ePXrXDRkyxPgDETWDdu3aYWzv9vj7mewmH2tsr2dQUWG7/3aJiIjoP548eYLLly+jVSd//PigNW4/qMJTlQrIuw5AuFyCRAL09m2N9vfLcDdPjqCgIEilUvM3rka7/6t+X5hQ35ikpgYPHitw4bECF24VY2/mr5Av/g0qKyvh4uIi6ndN1JyKi4v1rmvd2nwZUojI/NjjbCdYK872yOVyvTNOoqOjmYq1Bbp16xaeSn0w9v++R91/xWt+vIzcxS9DYeYMpZl3ShG2ah/++ko4vO/cgYODA2QymdhfAxGJoLi4GCkpKYLrwsLCmIqVrE6fPn3gXXIf/l5uyC0ub3B7fQPeHBwd8IcXeqFdVcPHICIiIusnl8vx/V0J/rz1e80yoX6n+sskNTVo3coR/x3RB+92U+HW5cvmT3sq+U/fmNDvN6aNj54qkVtagS6tlQxCUoty584dvev0ZZkjIutg+5EcAlBbK+69PSlNrhV34akbcnJycP/+fbFPSZC91IpTqVTYsGGD3vURERFiN5FEUFZWhpySctT/L7zksQKV1Za5XFdWqfDWzp8x/8h1tG7XARcuXBD7ayAiEXz99dd6140da19ZCMg+ODg4oOD2LSyfEIoaicTgHwB61y14sQ9UxbfRuTNTsRIREdm6srIytJf5Y/mRi43aX6Gsxv/9kIlRm05C4ilDamqq2KckqNr2u8WITHbz5s1GrSMi8XEmpA1hrTj7sXv3br2jdMLCwuDm5iZ2E0lEkgYC7Q2tb8w2313Mw7m8e1g35Xm0vnwZPj4+8PLyMmvbTWmTpAnXMiIyTXJyMrKzhVNaymQyzpAmq9W/f3+0vXoVr4cFYmuK3OT9hwX44P8ND0QrB95ziIiIbIlQ/5i3tzecnJxwV9kaNdU1TeofyygoRdjKvfh7zFC0v34dnp6e8PDwEPu0iVq069evN2odEYmPQUgbwlpx9iEzMxPHjx/Xu37SpEliN5FE1lB6YmPSFzdmm4KySvxm83G8HtYNn46VNWogQlPTLmtmrNjBjGdqXjvjIhEsM1/HwL7MX7Hwu3Nin5bFlZeXY/PmzXrXx8XFid1EIoO8vLzwSWQHtHKUYPM54zsfRvX0wz+nhaOs9D66detm9nb9/PPPcHV1RWVlJSQSCZydneHu7g4fHx+mNyYiImqi+v1jrR0dERvggYKcbMC7q1l+x+MqFV77+ie8NSwIH43iQH0iMeXn5+sdOAvUXhPy8/M5gJbISjGyZCNYK84+lJeXY926dXrXjxw5slGzz4jMaWvKDZzNK8K3M0cgJSUFoaGhdlGHlezbM+6uSLtVjAOXfm3ysV4L7w4fqf3XV1GpVFi9erXe9WFhYbz3k9Xz9PRESUkJPhzkh8iefvhgbypullbo376tMxZH9cPUHh54+qjMIgFIAKiursbOW0rcfvAU/p5uCPB0hb/SGY6VSkirqnC3sBDl5eVQKBRwdHSEm5sbvLy8+BxIRETUgPr9Y+rBrNvTcpA8fwwu3Xtkvl9WU4P1p7Px04272P7bCKSmpiI0NJSZe4iakUqlwpo1axrcbs2aNfjkk0/g6OgodpOJqB4GIW1EWVkZclTVemvFWSKLlLpW3G+Cn8WXkwfhwoUL6N+/v9hfhc0qLy/HRx99pHe9TCbD5MmTxW4m2akpIV3RytEBCWk5Rm0vLyrDkDUH8MXU5+F18ybatm0LHx8fsU+DyKD0WyVIaERKxvrCn/WGh6t9z1RSqVRYu3Yt8vPz9W4zbdo0sZtJZBRPT0+4u7vj/i+/IO2/R+P07TIcyrqNy3dKUfr4KVydndDLpwNG9fTD2B7euJ51BR4e3dCmTRuLtuti/n3sv3xLZ3kbJ0cEeLZDNy8p/D3d4O/ZFv5t2qLqqQPaKKrwpPwh7t69i0ePHsHDwwPdu3cX+ysmIiKyGvr6x24Ul/373m7GIOS/XbpTivBV+7Bh2hC0l8vh4eEBT09Psb8Kohbh0KFDekta1VVWVoZDhw5hwoQJYjeZiOphENLGsFacbdaKUwcgDd003377bY7WIYvxcXPBigkhmDmoO97e9TPk9x42uM9jRRVe33YKMwZ2w18n9kd6ejpCQkLEPhUio/Xp5A5X51YNbvew8imu3n0gdnObjToAaSidTVxcHOsTk82oqKiAXC5HTU0Nbly/hgGdOuHlqUM062tqaiCRSFBUVITc69fg5OSEiooKiwch9XmiVCGr8AGu3BW+F3ds1wb+nu3Qx9cdH/h78/5LREQkoG4/kqSmBjXQLutRv59JqN/JlG2ePFXit9tO4dWB3fDxGE/c/OUXDBgwwLRG1+i2u3FtZPkSsn/l5eXYtGmTwffW+vbt24fr169j1qxZfJ8lsiIMQtoY1oqzvVpxxgQg4+LimH6LLC41NRWerq44/dYIrDx9A6tOXEK1Ef+ctqXewM9595DwegQuXryInj17itZxS9ZJpVIBgNUNpNj46gsIf7Zjg9sdvnIbE744LHZzm4UxAciwsDCEh4eL3VSiBlVXVyM1NRUdunTHqbLWuFnyFE+U1cCv+cB5/bN8faUuGOtdg8LCy2jdurVFZxo2ZhBecXklissrkZJXhKNX85H5ztjm+1KJiIhshLqPSN1fJIH2oPW6/UxC/U71lxm7zbbUGzh2tQD/nDEcly9fRpcuXYwPdkh02924Ntre4HwiYygUCpSXlyMzMxOJiYmNOkZ2djbee+89xMTEoG/fvnBzc2NNdiKRMQhJJmGtONPI5XJs2LDBYACSnb3UXKqrq9G/f3+Ul5cj9tlWmLJgAt7c+TN+uV3S4L43issx7G8H8edxA+Dt8wCVjx8jICBA7FP89HwEAACAAElEQVQiK1FaWopFixZh5MiRCA0Nhb+/v1UEJIes/F7sJlgVY0aSymQyzJw5U+ymEhnlwoUL+KVKinmffA9VA8G++p16iw/8ghe6+eDLaUOQmpqK/v37W+S61dRBeLcfPEalxAnS6mo+cxMREVmJwvJKjPniCN4d+RziO5SjpKQEXbt2FbtZZMUUCgWKi4uRn5+PjIwMsZtjla5evWpU2lVjJSYmagKZUqkUPXv2FPsURRccHAyZTAYvLy8GZqlZMQhJrBVnASqVCocOHcK+ffsMbhcUFMTOXtJh6bTLbm5uCAkJwZUrV/CvaSE4VvAESw5ewJ0HFQaPo1Sq8D97U7D/si++mvY8Ll68iH79+qG6uhpt2rRB5w4OCPJp3+Tzd3KQID8/H9XV1ZplDg4O6NKli0W+bzKf48eP4/jx4wBgdQHJli4/Px9r1qwx+FInlUqxYMEC/n2RzQjq8xwi/rjTYADSkJ9u3MXAFXux5jeD0D4nB56envDw8BD7tHTU1NheJhAiIiJb9H8TB2LTz9dwrajhQEgNgJXHLyHl12J88+owpKWlITQ0VOxTICuSn5+PQ4cOmT24RqYrKytDSkqK2M0QXd3vQB2YHTt2LGQymdhNIzvHICSxVpyZFRcXY/369cjPzze4XVBQEOLj49nZSzqaI+0yAPTu3Rs1NTXody8NGe+Nx1+OZ+FvJy9D+e8crfqOczrnLkZvOIaU/x6NqqoqPH78GEF9+2GKtAhT+ndt8vlfLnwAZbUjgP/82xjZvZMFvmmyJDECktHBXSDr4Nrk47wQ6ItLd0qb7buyJJVKhd27d2v+LvSRSqVYsmQJ62aQ1ampqUFGRgaePn0KoDbNWocOHRAYGIhKZQ0eK6qAJtQLf1ylwu93nMVvwwOxarx3o0oOEBERkX0Y2aMTfh8egDWnr+EvxzLwtErV4D4/Xb+D0L/uxz9eHY6srCz4+fmhffumD84l22XsOxiRmNSB2ZSUFIwcORKTJ09mHzVZDIOQBIC14sxBoVBgz549Rj1kMABJ1kIikWDgwIEoLS3Fb7u1wWthE/HWzrP4Oa/I4H559x/hfH4ZujneQadOnfDr/UcYuU5/Tb3G1qNVq1jxGtq2Zho6W9UcAckjWbcR4CWFh2vTU4pculOKn3PuivZ9mYNKpUJaWhp27drV4KhbBiDJmmVnZ6OwtRfO3ylCDWrgKHHAJJknUlNT0TXIfMHCreev45dbJdj+2wikpaWhX79+cHLiqxIREVFLc7/4HiZ4V2P6+5MQt/0MThvxXnC3/AnGfXkUC0b0wQc+1bh69SpTP7ZQxmSgocYJCgrSW1rE0Dpq2PHjx5Gamor58+dzViRZBN+sCQBrxTVFcXExzp0712DqVTUGIMkaubu7w93dHVeuXMG3MaHYm1OG9/em4OGTKr37PFIooWytFLvpZGMsFZD83wNpYp+aVTAl+AgwAEnW7datW3gq9cHY//sedcfGrfnxMnIXvwyFmTOUZt4pRdiqffjrK+HwvnMHDg4OfAknIiJqYdq0aYPQ0FBcv34dCf/VD9/deIg/HvwFZQbejYHa9Kx/PXEZP14vROLrw5GamoqBAweKfTrUjHbs2MHZjxYSFxeH8PBwzJkzR3D9ggULkJycjM2bN4vdVJtVVlaGjz76CCNHjsS0adPEbg7ZGQYhbQxrxVlHrTiVSoXc3Fzs27fPpJE2MTExGDFiRLO2lcgUvXv3RlVVFQbcvo0L703A298m43CWbmrhtq2c8GJ3X7Spfip2k8mG1Q1IBgUFITIyEj169GCB9EZQKBS4ePGi0cFHgINiyPqVlZUhR1WN+k+uJY8VqKx2gEPjs7DqVVmlwls7f8Zvgp/Fl5MH4cKFC+jfv7/YXwURERHVU7dPSlJTgxpo11Cu3/cl1BcmuOzf2Xm6d++Op0+fYnBBPi4tjMbHxy9j48/XUK2qNnicC7eKMWj1QXw+5Xm0+nffGABUVVXBrW0rs/SNubRyxMOHJZp09YA4fWP0H8nJyQxAmpG6XmFwcDB69epl1KDZ8PBw9OrVC1lZWcjIyGAtzkY6fvw4/P39ER4eLnZTyI4wCGljWCtOvFpx6sBjdna20bMe1aRSKae0k81o1aoVwsLCkJeXhy/G9EDKoO54Z08ybj94DABo5+yEf746HLevXUFoaCgePmy4jqyl6RsNR7YjOztbM6iDAUnjKBQKXLt2DceOHTM59Ux0dDTGjh3LACTZBEsPwhPa5ruLeTiXdw/rpjyP1pcvw8fHB15eXmZtuyltkjSh7iUREZE9UvdJqfunJNC+X9btsxLqw6q/TH3PrRvIbN26NcLDw1FaWoo3e7rijfDx+N3207hS+MDgsR88ViB260kcnDMK1f8e0NSqVSt4ujpj/ZTnm3zuDyqfQunQHlDU1E7BlDRf3xjpKi8vN3oGXt3gGumSyWTw8vJqdD+Am5sbwsPDNQE0hUKB4uJi5OfnN+p49sSUwOzmzZuNDv4SGYNBSNKrpdeKU6lUKCwsxLVr15Cent7o3OIs7ku24sqVK1AoFFrLHB0dMbF3T7zcdzLO5N7DI0UVhvj7oL2zIy5deoALFy7AwcEBz/bohX+8OtzA0f/9ZmSQ/m1aOzrgwoULAMAZKS0AA5L6FRcXIycnB2fOnGnUfYmDYsgWNccgPKFtCsoq8ZvNx/F6WDd8OlaGS5cu4bnnTKtDqe/3mtqmGiMClkRERGQZ6vIlmZmZODnnRWxMu4U/J6WjskplcL8t56/j/WCp5vPbu35G8s1iAMJBUGMCpfq2sVTfGDVsx44dBter38F8fX3ZN9jMnJ2dIZPJ+P4LaAKz6v7uhmqX7tixA7NmzRK72WQnGISkBtl7rTiFQoHy8nI8ePAA9+/fR25uLgoKCppc0FgmkyEuLo43OjJZc834qO/+/fu42aYTDmfd1l5x8ZzWx50XcnV3zvjZot/Jsau1o9YCPN3AGGTLIhSQbAnU96Y7d+6gsrISGRkZSElJadIx4+LiEBoayhdfIhNtTbmBs3lF+HbmCKSkpCA0NBQODuzkIyIiamn69u2LiooKRHkqMe1/XsEfdp/Docu39G7/SFHFZ287l5mZafA9jRMTyNo4OjpCJpPhk08+we7du/WmEU5JScGgQYPQt29fsZtMdoBBSDKardaK27RpE4Da/PtAbarJgoICi03Fl8lkiI2NRWBgoNinTjaqudIuC0m9VYxtqTkmHaeps5lN2SasixeWjhvQqHMj21Z3RmRGRobYzWkUpxoVnq15oPl8PeMXtCrxQkVFBW7cuAEAFqlbER0djVGjRnEmKVEdU0K6opWjAxLScozaXl5UhiFrDuCLqc/D6+ZNtG3bFj4+PmKfBhERETUzV1dXDBgwADk5OVg/pgdO9vfHf//rPB5U6vaBjevTGU+flovdZLIQlUqFrVu36l0fFxfHunpktRwdHTFt2jT4+/vrTSe8detWfPLJJwyiU5MxCEkmscVacU2dOWKsoKAgREdHM/hIRGQmI0eORGhoKDp37mwXAbQ2UGKE6j8ziX8+nAtLziFm8JFIPx83F6yYEIKZg7rj7V0/Q36v4WfWx4oqvL7tFGYM7Ia/TuyP9PR0hISEiH0qREREJIKAgADU1NSg171UXP5/E/H+gQv4JvUGagBAIsFrA7thcg8PtJd2FbupZCGlpaV6B5AGBQUxAEk2ITw8XG+5l7KyMpSWlsLLy0vsZpKNYxCSjMJaccKkUikiIiIQERHBYr1ERGagDjz6+/tztF0jyGQyDB8+HEOGDGHwkagBqamp8HR1xem3RmDl6RtYdeISqo3IZr4t9QZ+zruHhNcjcPHiRfTs2RNt2rQR+3SIiIioGaSnp2vVanZyckJV+X18/doL+PP4AbhwuwT+nm4IkXng+vXruFNQAAB45plnsCSqA4or1H1r9fu5hPq9jN9GzL6xlionR39GDdbSI1sya9YsvPfee4LrcnJyGISkJmMQ0sawVpyu5q4Vpw48BgUFsZOcyEps2LBB7Ca0aMXFxVi0aFGj9m3sNdXfU4oxvTuLfeomUcIyNeTUgceBAwdyQAyRCaqrq9G/f3+Ul5cj9tlWmLJgAt7c+TN+uV3S4L43issx7G8H8edxA+Dt8wCVjx8jICBA7FMiIiJqMer2bUlqalADaAUH6/d9CfWFCS5roERIj97PYc6OM/WWlgHIM9zgS1cs+n00d98YAffu3RNcHhYWxvcysilubm4ICwsTzCao779zIlMwCGljWCtOP0vVipNKpRg4cCB69+6Nrl278kGCiKiJ1IHH/v37QyaTNeoY45/rjBE9Ool9KiZ5ImlltmOFhYUhODgYvXr14n2J7J6lB+G5ubkhJCQEV65cwb+mheBYwRMsOXgBdx5UGDyOUqnC/+xNwf7Lvvhq2vO4ePEi+vXrh+rqarRp0wadOzggyKd9k8/fyUGC/Px8VFdXa5Y5ODigS5cuFvm+iYiIbIG6j0jdXySBdgCxbh+SUJ9S/WXqe3xNA88VVapqTd+YKcdurm0s1TdGuq5fvy64vFu3bmI3jchk3bp1EwxC6vvvnMgUDEIS1REUFAQ3NzcEBwfDw8MDPj4+7NwluxEYGIjz58+jqqpK83JW93+9vb2BolKxm0l2SiaTYcCAAU0KPNa17uRlfLAnWezT0qL8zDIpd9Qjaf39/REQEMBUKNTiNNcgvN69e6Ompgb97qUh473x+MvxLPzt5GUo/52jVd9xTufcxegNx5Dy36NRVVWFx48fI6hvP0yRFmFK/65NPv/LhQ+grHYE8J+Z4iO729YgDCIiIiJ7I1RDDwA6d7atjD1EgP7/bvX9d05kCgYhye7FxcVpfq6qqkKrVq3g4uKCTp3+03nDDl2yJpaY8fGvjJvIvFP679GhgASS2v/994hRB4kECb8dAFwq1UlrY442m3Mbsh1ME6rrhsRD8/OLgT7w7dAOQO2oQ1dXV637E+9NRM1PIpFg4MCBKC0txW+7tcFrYRPx1s6z+DmvyOB+efcf4Xx+Gbo53kGnTp3w6/1HGLnusP7f08RMIBUrXkPb1pZJ8UxEREREjdehQwexm0BkMh8fH73riouL2T9BTcIgJNm98PBwsZtAZBJLzPgoePgYBQ8fG9zmqVIFSHTT2jSkOdMuk/Vj4NGwE07/qRm39JVoDO3mK3aTiEiAu7s73N3dceXKFXwbE4q9OWV4f28KHj6p0rvPI4USytZKsZtORERERERkEvbfkCUxCElERERN4uzsjHnz5rFuLhHZnd69e6OqqgoDbt/Ghfcm4O1vk3E4K19nu7atnPBid1+0qX4qdpOJiIiIiIiIrAaDkASAteKIiKjx3Nzc0LdvX7GbQURkEa1atUJYWBjy8vLwxZgeSBnUHe/sScbtB7UZBto5O+Gfrw7H7WtXEBoaiocPH4rdZCIiImqkhw8f4saNGwD+Xb6kTrYeiUSC3iGhYjeRiIjIpjAIaWNYK46IiIiIyPKuXLkChUKhtczR0RETe/fEy30n40zuPTxSVGGIvw/aOzvi0qUHuHDhAhwcHPBsj174x6vDDRy9BkBDKcj1b9Pa0QEXLlwAAPTv31/sr4qIiKjZ1e+fqgFQY6DPSqhPqf6y3yeehVubVv/uH5PAQQLNzxIJ8FIPP/Ru5LGbcxsiIiJrwiCkjWGtOCIiIiJqSSwxCM8Y9+/fx802nXA467b2iovntD7uvJCru3PGzxb9To5drU0JG+DpBsYgiYioJarfP6UOFtZfX3ebuuovk9TU4JfbJQa38W7XptHHbq5tiIiIrA2DkEREREREZLUsMQjPWKm3irEtNcek4zTnILywLl5YOm5Ao86NiIiIiIiIyNIYhCQisjLNNeNDcJsaMO0yERERERERERERETUZg5BERFamOWZ86N2GaZeJiIiIiIiIiIiIyAwcxG4AEREREREREREREREREdkXzoQkIrIRHdq2Rsb/vAIAUGctrUEN/v1///5cu1Lzue52Wp/rbQfAw7WN2KdIRERERERERERERHaCQUgbw1pxRC3T8et30MGltcWO38W9HVo7cnI8ERG1HIGBgTh//jyqqqogUacir/O/3t7eQFGp2M0kIiIiAfX7p2oA1BjosxLqU2rMNpY8tjnbSEREZC0YhLQxrBVH1DJN/+dJAJb7NyUBsPf3kZCA/86IiMi6WGIQ3r8ybiLzTikkACQSQAJJ7f9Kau+EDhIJEn47ALhUykF4REREVqh+/1TtPV2is77uNnXpvBMbsY0lj23uNhIREVkLBiGJiAg1AE7duIs2To5iN4WIiEiLJQbhFTx8jIKHjw1u81Sp4iA8IiIiIiIioiZgENJOsFYckf0QK+1yTU0N4CDhjA8iIiIiIiKySX06dajXP/bv/i2t/rF6/WU1evrGUKP12cvVWezTIyIisjkMQtoB1oojsg8ODg5oBQeDsx4sObuitZMDlNU1nPFBRERERERENkVVU4PDWbctdnwHiQQ9vduLfZpEREQ2h0FIO8BacUT2oUuXLvBW1WCIvzd+zr0nvJHEiH+Jjdimi0c7vBraDX//+arYXwMRERERERGRSRTKaoz98igAy9Vb7CfzwE/xY8U+VWpGCoUCFy9eFFwXEBAguPzy5ctwcXHRWhYeHi72qdic5OTkJm/br18/ODtzBrMQoe/MlP+mAX6/ZDwGIalBrBVH1DxcXV1x++r/Z+//o5u67zzx/wkobZRAqFBKvWJJKNwpSaCuKUa4rT0egonMeOoljVmrfNn9xtSOvsH55Bhif2CPnZPNRv5sOHYCh43To0ADux8+fOQNWVjv8WLFpozHno5RTKPxmKa0wuMsRct4qt7QMlE7Ucv3D/W+c690ryzZEvKP5+OEE1m6unrft35c6f16v1+vqzj95Ho8/PDDutvcuXMHC1Q/gu7cuYPfx6UwXYAFWLRwkvpZcfv55S9/CVn+x1x3AREREREREdGMNPKLMP7ACiLzzg9+8IO0th8bG9P8vWLFCgYhp6Cnpwc3btxIaVuj5+jo0aO5PowZK53+jX9NK9i/lCoGIWcZ1oojmtvWrl2b9HZ14PDjjz/G//4t8Nh/PKvZZtfG1Wj86gPYsGFDSvsBgAcffBA//elPAdyT6y4gIiIiIiIiSmqy8an46zK1De7cydq+M9ZGypjPf/7zeOSRR/44XjI1X//613N9GLPS17/+9ZSDZHoeeeQRrtJLgv1LdxML/c0SCxcuxD2LYrXijP4BSHr7dLb5nGkh/vDHNBSp7ifbbdLbhoiIiIjmlgV/HOxT/5vs9vhtp7INAOAO0trPdB5vqtsQERHNJ/HjYwAmHUPK2DYLFmDhwsnHq7L2+CluQ5n17W9/e1r3TzZBnIxNt9+m+7zNdexfupsYhJwlHnroIXxjpQXf/PJyLAB0/yk13pL9m8o2D/+xVtzvor/PdTcQERER0Twz2eSzbE14AwAsQFr74SQ8IiKi7IofH9Mb54q/LhPbLFywAM98cy04B2j++fKXvzyt++fl5eX6EGal6fbbdJ+3uY79S3cT07HOEqwVR0TxYu/TDK+EuDN5WhvdtjDtMhEREREREWVZ/PhY/BgWkDiu9Yc7d/CHuN+aCxcswMK4MbTJ9vN3f/d3uT58yoFFixbh8ccfxw9/+MO07/vII49g0aJFuT6EWWnRokVTToX7+OOPs98nwf6lu4lByFmEteKISO3OH39EZXQlxILP9rfgjymYJ71LCttlahsiIiLFF+77HEb+3ZMAgM+yp97BH//749+xG8Xf6u00f8dtB2DZ/ffm+hCJiIhIh3p8bIHOb0j1dT//+c8x9PEC/NtTA5ptjj61GVsfBB577LGU9gMAX/3qV3Er8s+5PnzKgY0bN04pCPmtb30r102f1b71rW9NKUi2cePGXDd9VmD/0t3CICQRERHRXVb05eXIX7Es180gmrV++PP/jS+YP5e1/T9kWYzPLWLlCiIiIiKaeurJRx99NNdNn9Wm2n9MFZoa9i/dLQxCEhEREd1FTzz6L/Ffv7cV18eCYuY1EaXnu/+5H0D2VuMvAND1TBlilaCIKJt++ctfTntbi8XCtGBERJQ1ixYtwre//W38j//xP1K+zwMPPIAlS5bkuumz2pIlS/DAAw/g17/+dcr3+fa3v83vBCli/9LdwiDkHMVacURENJc9V7oOe76xdvo7usu+WyjhxL8pxV8P/BX+7M/+LNfNISIDdwAMXPsH3GviD2yibDt06FDKg1/Nzc2617e3t3Ogl4iSyuSYUvy+9Pady20oOzZs2JBWELK0tDTXTZ4TSktL0+r3ZCXIKBH7l+4GBiHnKNaKIyKiuaznJ7/Af7n0s1w3Q+O/1W1Levv3vvkIvl/9LQwODjAASZSGyQbWsjXh7c6dO8DCBZyER5RlhYWFU6qzpVixYgUDkEQ0qUyOKWmyJ+iMVyVkWLiL21D2rFixIq1VY4888kiumzwnPPLIIykHyR544AGsWLEi102eVdi/dDcwCElERESzTvAfb6Fr5KNcNyNlTdu+hlf+fAN+9KO/5oxYohQtXLgQ92Bh0oG1bE54+5xpIaJ/uMNJeERZtnHjxmkFIZ988slcHwIREc0T6awaW7lyZa6bOyek04/8rZ0+9i/dDQtz3QAiIpqaBapBUfW/abkDzX7i9633L5XtMrkN0WzTWrkJ/96Rjw8++AAlJSW5bg7RrPHQQw/hGyst+OaXl2MBoPsPCxYY3jadbR5ethj/n41r8Lvo73PdDURz3nQHab/yla/k+hCIiGieSDUV5SOPPILPf/7zuW7unPD5z38+5VWlTBWaPvYv3Q1cCUlENEsx7TLRzLZwwQIc/dffxNOFX8ZPf/pT2O32XDeJaFa5//778YurV3H6yfV4+OGHdbe5c+eOmJSj/P37+NpJWIBFC5OfX+L388tf/hKy/I+57gKieUEZ/PrpT3+a9n05yEtERHdTqilZCwoKct3UOaWgoGDS7wlMFTp17F/KNgYhiYhmiN/+9rcYGRmByZTaR/OiRYvwuS/pD8p+8YtfxI9//OOU9vPpp5+yjg5Rht2zaCHe2lWCf/XIl/Czn/2MP0KJpmjt2rVJb1cHDj/++GP8798Cj/3Hs5ptdm1cjcavPpB05u6CuEkwDz744B9/iN+T6y4gmhdSGfzSU1ZWluumExHRPPPnf/7n8Hq9Sbf56le/mutmzilf/epXJ+3zP//zP891M2ct9i9lG4OQREQzxM2bN/G3v18K/9gvU77Pxz/+IOG6Sx/9I14eTP3j/XOLFuKZb+bhT6xW4B/Hc90NRLPekns/h9M1W7Bh2T34h3/4B3zta1/LdZOIiIhmtFQGv/QwFSsREd1thYWFSc9ZDzzwAB588MFcN3NOefDBByddgVpYWJjrZs5a7F/KNgYh56jYbO4M11D7Y6048Rgp7juV7TK1DdFs9sm9X8Az3rNJt0klZenYP/4a1375m7T2c/n6LzG0/9sAxnPdDUSz2pJ778F/dz2BNebf43e/+x0HR4mIiFIwlcHaxx9/nKlYiShlmRxTit+X3r5zuQ1l15IlS7BixQrcuHFD93YGa7KjsLAQP/zhD3VvW7FiBTN8TRP7l7JpYa4bQNmhrhWn/jctC6DZT/y+9f6lsl0mtyGazW5F/jlnj/1x5NNcHz7RnPDGv/4WViz4JyxcuBCrVq3KdXOI5pUFqprG6n/Tcgea/cTvW+9fKttlchuiueLxxx9Pa/uNGzfmuslENItkcgxpsvGqXG9D2VdSUmJ422OPPZbr5s1Jyfo12fNBqWH/UjZxJeQswVpxRJRN/KlCs83uTX+CP5X+Ra6bkeAfr/89vvSlL2HZsmW5bgrRvKOehJcxCz7bXyrZCFLdLlPbEM0ljz32mOEMfD1f/vKXc91kIsqBdMfHPve5zwG4V/e2RYsWpTw+pmQ5Md3HMTJKnpKV2XCyI1m/cvXp9LF/KZsYhJwlWCuOaO6TrPdj5Rfuxy/k20m3y3iK4wVA2VpbbPCWaZdpFvjDH/6AnwXez3UzEgTkG5AkiZN3iIiIpiCdQdvHH38cixYtynWTiSgH0h8fi+Dn/3g94dr/9/LfY+RffCHlx7U9YMbK332KJfflugdoJliyZAkeeeQR/PSnP9Vcv2LFCqYKz5LPf/7zumlwH3nkEf4GzwD2L2UTg5CzBGvFEc19X3zgfvyvl/91Tttw+Dubcfg7m3PdFURJbd7M1ygREdFcYzT4pae4uDjXzSWiHIkfH9MbC4u/bsGdO0DcNkN//w/4m/GJtPYjffEBVFqY8YRiysrKEoKQTFuZXSUlJQkrUMvKynLdrDmD/UvZwpqQswRrxREREREREdFclsrg7QMPPIAVK1bkuqlElCO5HB/79W85Pkaf0VvBz1Ss2cU+zy72L2ULg5A0KVaiISIiIiIiomxLZaCrtLQ0180kIiLC5z//eTzyyCOa6zhJJrvi+/eRRx5h+tsMYv9StjAIOUsoteIW3Llj+A9A0tuntA3uJNSKS3U/WWtTkm2IiIiIiIhodkpl8HbDhg25biYR5VD8+BiASceQMrGN+Z5F2PTQg1nZd6a3obtHnapy06ZNuW7OvKDuZ6YKzTz2L2UDa0LOEqwVR0RERERkbMGCBQAyPAD3x0l44jFS3Hcq22VqG6K55vHHH8cPf/hD3dtWrFjBVSZE89xMGB/7w9E9ue4GmiEee+wxcXnzZo6Z3g2bN2/G+++/D0Db/5QZ7F/KBq6EJCIiIiKiWe/OHwN2dxYs0PyblgXQ7Cd+33r/Utkuk9sQzTXJBrxSqRlJRER0tyxatAiPP/44AGDVqlW5bs68oPTz448/jkWLFuW6OXMO+5eygSshiYiIiIhoxvntb3+LkZERmEyp/WRZtGgRPvelh3Vv++IXv4gf//jHKe3n008/xZIlS3J9+ETzVrJB3MLCwlw3j4iISGPjxo24evUqvz/eJUuWLMGKFSuwcePGXDdlTmL/UjYwCElERERERDPOzZs38be/Xwr/2C9Tvs/HP/4g4bpLH/0jXh5M/WfP5xYtxDPfzMOfWK3AP47nuhuI5h1l8OvGjRua61esWMEBXiIiyiq/348NGzbgL4P/gMinv0/pPn/4wyLct2I1ukY+ykqbvvYvl+Ehy+I/lh6Ye6bS5/etWI3R24vwE/Z5UlPpWyC7/TtX+pbSwyAkERERERHNOJ/c+wU84z2bdJsFd+5MmpZ07B9/jWu//E1a+7l8/ZcY2v9tAOO57gaieenrX/96QhCyvLw8180iIqI5bHh4GPn5+Xjxf36Att6/TX8HH7yX8TY5HluJ/1ZXhvA//Q4PLr43112UcdPq8w/6stKmudLn0389Z75/50rfUvpYE5KIiIiIiGacW5F/ztljfxz5NNeHTzSvbdiwIeG6r33ta7luFhERzVGBQADr1q3DoR9emVrAJgvKH1uJd+vKcKj3b+H78Be5bk7Gsc+zh31LMw2DkEQZ0tnZiebmZjQ3N+e6KUSzXigUQigUgizLuW4KERHNQ0wORJRbeXl5mr8feeQRfP7zn891s4iIaA76u7/7O6xevRr/afBn+A//M7Ua4tnm+GPA5lVfYMa0KZPY59nDvqWZiOlYMywQCOCdd94Rf7e0tMBsNqd0X3XwaufOnSgoKMj14VAaRkZG4PP5AACtra25bg5lSCQSEYEws9kMi8WS0v1kWUYkEgEAWCyWlD8HZoJoNIqJiYm02q7up+XLl8Nkmt7ppbKyEgDgcDj4fpqmSCSC/v7+SbfLy8vD2rVrZ9VrdbYKBAK4efMmgFi/p3q+j38uS0tL+XzRnCZZ78fKL9yPX8i3k2634M6dSfeV1jYLgLK1Nty5cwe4o71vKvvJSpuI5plFixZh06ZNeP/99wEAZWVluW4SERHNQT/5yU/w0EMP4T//+Dr+3X/357o5AIDSP/kXYsWYu+eD6e9whmGfZw/7lmYqBiEz7ObNmyIQBQD5+fmorq6e9H6BQEBzv5KSklwfCnp6ejAwMIDGxsaUAy9Ec80999yDmpoahMNhAMDAwMCkg/6RSATbtm0DAFitVnR3d+f6MNIyMTEhgoButzul+jv9/f1oaWkBAHR1dcFms+X6MOiPZFkWz00qnE4nysrK5s1EmMHBQdy+ffuu1pl65513NOf8oaGhlAL3p06dgsfjEX93dXXlPAjZ09MDgHW6KDu++MD9+F8v/+uctuHwdzbj8Hc257oriOalzZs3iyDkV77ylVw3h4iI5phAIIDVq1fjVOAX2P/u3+S6OQCAb67+Ev676wn8p7+8MidXjLHPs4d9SzMZg5BZdvbs2ZSCkH192SmmOx1dXV3w+/2or69nEJLmLZPJhI6ODjidTgCxoNxkK/Pcbre43NHRMe1VgfNRV1cXAOQ8wDLX2O12w89zJSjm9Xrh9Xpht9vx5ptv5rrJWdfQ0AAgt0G0oaEhFBcXT7rdmTNnctZGPZFIRAS4GYQkIqJMW7VqFQBg06ZNTMVKREQZFQgE8JWvfAU/8P89Gs78KNfNAQDYVy1H97PlODn08xmzii2T2OfZw76lmY4j41kWDAYRCoWSrgqKRqPwer0AYqumlBVXueb38wOCCAAkSYLD4YDP54PP58P27dsNAwaDg4MimON0OiFJUq6bPytxJWV2tLS0GPbtyy+/jNHRURw4cADhcBh+vx+Dg4MpBcdmq1AolOsmAABOnz49aT8HAgGEw+EZ9T3hxo0buW4CERHNYUuWLMEDDzyAP/uzP8t1U4iIaA5Raub9wP/3M2rFWPez5ej88diMaVMmsc+zh31LswGDkFnkdDrh9XrR3d2Nuro6w+2GhoYAxAIda9as0aRo0xMKhTA2NoahoSHIsoz8/HysXbt20tR5oVAIIyMjAIBbt24BADZu3JgQJOnp6cH169fF393d3Vi5cqVu3apIJILLly/jxo0bGBkZwapVq/Doo49i3bp1uqtt1G0oLy8XtedGRkaQn5+fVuAhGo1ifHwcly9fxsjICCwWC9avX4/Nmzen9Njq6wYGBsT9y8rKDFeuKfW4RkdHAQBFRUWGx0pzS0tLC4aHhxEOh/HKK6+gu7s74XUSjUbxyiuvAIhNKKivr9fd12yuFzld6mPPRO1IhRJMSrVup1LDMpNtmO1MJhMKCgrw4osvitWB58+fNwyOKZ/fY2NjuH37NvLz85P2p/Lcq58j5RySl5eHVatWJdxXfXsqAX3leVU+6/Pz83VfE0rbBwYGxHXKa8joPRkKhTAxMYGbN29CkiSsWLFi2u9dl8sFj8cDv98PWZaTvnaVjAlVVVWalKxG1OdXpS9Seb2r36NjY2O65zhl3xcvXkyr/9SvlWSffXqvFeUx+Z4lIpq9/H4/NmzYgL8M/gMin/4+pft86ZGvYfT2Ivxk5KOstOlr/3IZHrIsxoIFC3LdPUREdBd8+OGHombeTFkx9vWHHkT3s+V454Mx7PUO4g9zrCY4+zx72Lc0W3AUJ4vKysrg9Xpx5syZpEHIN954AwDw5JNPisFCPaFQSNRpU1OClpIk4fvf/37CYKEsy2hvb08a3Ozt7RX3i68dpgx2OhwOTRBycHBQDFTr0aslNzIyIvafn5+vqbXndrtTDkK2t7eL1aN6mpqaEtLgxj+22+3WXe158uRJnDhxImFwNBgMor6+XrMCRWmDy+VCSUnJpAFkmr3MZrMIzoTDYRw5cgSNjY2abY4cOSJeHy+++KLmNRSNRvHuu++ira1Nd/9HjhxJCPao3/NGtRnV28zUWozRaBR9fX04fPhwwgouu92OZ555JmGCQ2FhIYDY5446/a1yvdvtxubNm3U/2xwOB15++WXdQEUgEMCrr76KYDCo2b6mpgb33XffjO/Lu6GoqEistrt27ZruNj09PYZ1Jp1OJxoaGhL6X3muHA4HGhsb8eyzz2qeB+Czz25ZlhNulyQJzz33HIqKinQnACR7f8W/JtR1TxVG77VAICBWh8az2+147bXXphyMXLlyJex2O/x+P9577z3D9O2RSEScbx599NGk+wwEAnjrrbd0z29WqxUvvviibmA52XcFq9WKPXv2iPal03/JvivY7XYcPXo06Wulvr5e811hPr83iYhms+HhYeTn5+PF//kB2nr/NuX7LbhzB3c+yE7pEsdjK/Hf6soQ/qff4cHF9+a6i4iIKMt+9rOfYfny5fivo/97xqzO+toKK87v3Y7OH8/NgA37PHvYtzSbLMx1A+aygoICMZAbCAR0t5FlWQyyPvHEE0n3p9SZs1qtcLlcOH78OJqammC1WgHEgmTNzc0J92tubhaDii6XC0eOHMHx48fhcrnEfdX3c7vdcDgc4m+XywW3242dO3eK63p6ejSDik1NTXC73Zr2tLS0oLOzU9MW9UqWjo4OzaBuXl5eSv0aCoXEYKzdbofb7cbx48c1bW5ra8Pg4KDhYysBSKvViqamJrhcLnFbMBjE5cuXNfeNRCJwOp2ivcr9lMf0eDyihh3NXcXFxeI593q9mlSOwWBQvC4dDodmkD8ajeL555/XBEgcDgfsdrv4u6GhAe3t7bk+xKyoqKhAS0uLeP84HA7xfvT7/aitrU07Leb169fhdDrFZ5vyuQPEJmacOHEi4T49PT2ora0Vn7lWqxVWqxU+nw/19fUYGxvLdVfNGMpzpQR91drb20UA0mq1wuFwwOFwiOfA6/Xi+eefF6vp4qkDjJIkaT6b29raEAwGxe1Wq1XcHgwG0dDQIFaiq6nfX5Ikwel0wuVyifeYz+dDRUWFaJPZbNa0GYA4DvW5qLOzE7W1tZrXbvzrd8eOHZBlecp9/cwzzwCI1ZA20t/fL/p79erVhttFo1EcOHBABCDtdrvmXB8Oh9HQ0JAQ/I1Go9i2bZt4Pyn3Uz7vwuGweG7S6b9jx46J7wrq14q6/3bv3m34WgESvysQEdHsEwgEsG7dOhz64ZW0ApAAcCdLKxTLH1uJd+vKcKj3b+H78Be57iIioowKhUIIhULT+p0y14yNjcFiseD8tV/NmODI1x96ED9sqEDPT67PmDZlEvs8e9i3NNtwJWSWKWnT+vr6dNOlnjlzBkBs0DRZGrZAICAGFfft2ydWGRQUFKC6uloEGv1+v6YGZSQSEfeLXx1YUFCALVu2wOl0wu/3o6enB+Xl5WLfymBkRUWFZtVBNBrF4cOHxd/Hjx/XHFtlZSVeeOEF+P1+tLW1obKyUqwSue+++8R2Pp8PLpcrYf+TUQdj1SsoCgoK0NjYiG3btgFITCOofmy/3w+3261JvVpTU4OKigqEw+GE+yoDwEAsKLt7926YzWZUV1ejvr7ecFUlzT3qtKz79+/HqVOnxPVA7HUZv0Ksr69PvD5cLpdmZbQSoPT7/fB6vdi1a9ecWuUTDAY1q53VK6QikQhqamoQDAZFX6aaZtHj8YjJAMpnTDAYREtLC4LBYMIK9EgkonleXC4XampqAECsoEu2sns+UVKEA7EV/WrqSSBWqxVer1eTLvPEiRMivWh/f7/u6l1lAoj69RAMBuF0OgHEVlIqtyuf0aFQSKyGiz+fqs+PyvOqfh0FAgERSDx16hTq6upgsVjQ2tqqmaSjXnELxF4z6okD8ec6ZTVoOBzGD37wg4SV0alav3696AMlMBvv5MmTAGLfKZI5ceKE7orBuro60Q8A8Prrr+PNN98U91MHduNXZbe2tmLv3r3w+/2or69Hd3d3Sv0XCoVEJgW914ryvgsGg+J5iad81jY1NWHt2rV4+OGHmf6ciGiWUeoU/afBn+E//M8f57o5AGIrIN+tK8N/9AXg7vkA/+X/uyXXTSKas5RyCUB6pUimer+ZQCkjkE7b1cebifIDSpaS+MxC89VPfvITWCwWhH63EJ7BD1H48Bdz3SQ8eP+9OPFvSvHOj/9+TgZs2OfZw76l2YhByCxTgpBerzchPV00GhVByKeffjrpfpYvXy6Cb/GDwgA0qUAnJibEwOONGzfENr/+9a8T7idJEnp7e3Hvvfem/KVuaGhIDHIeOXIkIbhqNpvR0tIivvQYDUQDSBgsnkw0GsWuXbtQWVkJSZIS7muxWMTq0+HhYcP9WK3WhDaZTCYUFhbC5/PB5/NpUvepg67xA6U2m01zvDS3qdOyBoNBvPvuuwAgVgjppWFVXj92uz3h9WMymXD06FEUFRUBiK36mUs/Es6dOycux392mc1mfP/738eZM2ewcuVKfPrpp2l9HnR0dGgCNpIk4emnnxaBIXWNPfXq5vhgUnV1NUpKSub9e1ipeav+vFMCZIqOjg4AiUElIPZarqurw/j4OHw+Hw4fPmz42R+fElRZEam8j/bs2aO5r81mE5/Pvb29moDfq6++KtqkF8gqKCgQKU89Hk/K5x1lggGQ+JoBYrWFb926hba2Nni9XtTX109pcMRkMonakBcvXkwIQoZCIdEvFRUVSfd169YtOBwOrFq1KmEyQ0FBgejj+EkzSr1Jq9UqPovUXnvtNfT396dUl1Nx+vRpcVnvtVJdXY1f//rX8Hg8hs9LOByG3W43TFNLREQz209+8hNRp+jf/feZMWGz9E/+hVgB6e75INfNIZrzfvvb34rfWVarFd3d3ZN+F49Go9ixY4cYd+rt7Z1VQUh16QKjsirx+vv7xaRZlh/IrLGxMSxbtgxf+tKXkAfgr/Z9O9dNEv7H3/2vORmwYZ9nD/uWZisGIbPMYrGIQb+hoSHNoOvo6Kj4UlVaWpp0PzabLemXkPz8fHH55s2b4rJ6YNfj8eCBBx5IGMxLd1WBOrC5ceNGw/YqBgYGdL90OZ3OtGd3mUwm3VpWaspAdbL0bUarSYyCuepUfHqWL1+e1nHQ7KakZfX5fAkpVuNfnxMTE+L1s2vXLt39mUwmOJ1OeL1e+Hy+ORWEVGrjArGUmfH13ywWS9KaucmsWrUq4Tp1kOTSpUvis+f8+fPi+ocffjjhfvPlR57b7Tb8zI+vBeh2uxM+o5VtCgsLDfejfI6Gw2HNyny1devWJVy3Zs0aEWzTO7fk5+eL/aoDzMp9kq0S3LVrlwi8qT/bkxkfHwcQGyzRy2QQ385kE24ms2XLFng8Hpw5cyYhGNfd3Q0g9tq22WxJUxdPthpT3cdqyvs0HA7rvk/NZnPax9bb2wsgNvnC6LWyadMmsVrS6Hkx+twkIqKZLRAIYPXq1TgV+MWMqVP0zdVfwn93PYH/9JdXZsyqTKK5zmKxwO12i4miJ06cmPT3nzq7R7LfL2RMKRc0m4K32fKlL30JV69exX/5u39AW99IrpsjeGsexwe/+OWcDNiwz7OHfUuzFYOQd8Fzzz2HhoYGnD59WhOgUFYeOByOlL8YBAIBXL16FSMjIyJN2WQOHjwoUrC1tbXh7bffxrZt21BUVISioqK0A4EjI599yCmrM/UoKxKN7NixY8p9qqzYGR0dxdjYWNqpUDdt2pTWYymMvvyaTCbNKh6a+1paWjRBG700rAA0dQaT1XJTrziLRqNTSr/yySef5LpbEsSvvnr++eexa9curFu3blo/Jh0Oh24fqdMuGzF6XCWwPJel8lmpTjmtFl+3r6enR/f+169fT7p/q9Wq+xyoJ4HoBZiXLl2qaYvFYtEE5FauXGn4mOr3XqrvE6UtFovF8Fhv3bqV0r4mI0mSOGeOjo6KoGc6GRPUQqEQxsbGcOPGDc05+9q1a7rbx79Pd+/eja1bt2LTpk1Yv379lD6PlPP/r371q5ReKyMjI7pBSL2VmURENLMFAgF85StfwQ/8f4+GMz/KdXMAAPZVy9H9bDlODv18xqzKJJovysvL0dXVJTKTJCvJo07pb7fbpzzJb76bL5NsU3H//ffj97//PSKf3sGv/um3uW6O8M+//0Oum5A17PPsYd/SbMUg5F2grJTw+/2IRCIwm82IRCJiddDOnTsn3Ycsy2hubp5S3cGCggIcOXIEb7zxhqjP5vV6xeO7XC5UVVVNKSCQyoC9USHsVIIFegYHB/HKK6+kFIA1ks7KRXX741MTqhmtMKG5yWw2o6mpSayE3LNnj+5kgtu3b6e971RXasUzqieXa263G/X19QiHw/D7/eJzzGq1Ys+ePZq6sakqKSlJa3vlsypZ/ygr7eYyl8uVEKxTUooC+imDFerPQiVt9WTGxsYSXsuFhYWT3m8qQa/FixentF267xOl1mi27dmzB21tbZqal+lkTABiwVm32z2l1/Hrr7+O/fv3i9qUSgYFIJa5YMeOHSn3mzo4PN3+m249HCIiuruUGpA/8P/9jFoB2f1sOTp/PDZj2kQ037S2tmLbtm0AgP379+PUqVMJ3/Oi0Sj279+vuY+RSCSCe+65h98VMyQajQLgd28iIsoOnl3uArPZLFbYdHV1obq6WtQns1qtSQNbCnUA0uFwoKamRjMYGAqFktYzKy4uRnFxMWRZxnvvvYf+/n6xP4/HgwsXLoigZDqUFA93SygUQkNDg+i7ffv2YfPmzZoAanNzc9YCCZla9UJzg3pllvrybKcOCE62qk0xOjqqe38gFvjr7u7G6Ogo+vr6xGdNOBxGW1sb2tradGvuZcOyZcsMb5tLz6GRZLOO29ra4Pf70dPTM+mMY4fDkVIgONnq30ybSsA/FUqt0cnk5eVN63GeeOKJhPqS6WRMiEajmufE4XBg+/btmuegu7tbBBbj2Ww2eL1eyLKMM2fO4MKFC2JijTJx6ciRI5OmRAe0nwGp9p86rTwREc1OH374oagBOVNWQH79oQfR/Ww53vlgjHWKiHJInZY1GAyir68v4TdHX1+f+P6pl4Y1EAjgnXfeSchIVFhYiPr6+oTfObIso729HUBs8r/e7031No2NjTM29WsgEMCrr76qmfguSRKefPJJlJSUJBx7c3MzgNh3bHVJJuX6nTt3Yv369Xj33Xc144MA0NTUZFiTPRQK4fTp0+jt7RX120tLS/HEE08AwKzoSyIiuvsYhLxLdu7cCZ/Ph7Nnz6K6ulrUJ6uqqkqpKLfyhcDpdE5a8ykZi8WC6upqVFdXIxqNoqKiAuFwGMFgEIFAIKUgQPwXibuZ5mFgYEBc7ujouCurvtTHNzIyYvhlzGjFJ81vqa7OUkvny3o2UrCqH/+DDz5I6T7Dw8NJ228ymVBQUICCggI0NjYiGAzi3LlzIiD56quvTmkiRKrsdrtmFaYe9efLfPPUU0/h7NmzYtVa/OQOIPF5zWVqJGU1+1RqnKR73pBl+a4cq8ViEa/Ty5cvo6ioKK2MCeqJAG63e8ptVuq01tXVIRKJ4NSpUyJw+cYbb6QUhFS/VpYtW8Y0WkRE88DPfvYzLF++HP919H/PmNWGX1thxfm929H5YwYgiWaC8vJynDx5Uvc3hyzLInuGJEkJ3x/b29t1fy+Gw2GRpSX+O3AkEhEBS6MJlOpt6uvrZ2TgbO/evbq/Y4PBoCi5dO7cOc1vI3WgVj2GpVyfn5+Pt956S3e/Spac+LGvQCAgSj0plN/Yb7/9Ng4dOjTj+1Lt+85i3P/5ezK2v//z7CXc/PXMK5Ezk7DPs4d9SzPdwlw3YL5Yv349rFarSHGmnJirqqomva96YNGoNlJ3d3fabTKZTPB6vbBarQBiQYBUj0WhrjV1N6gfT28gWf0FMhvUgZb4x51Kqlya+9SrkCYmJgy301tJqP4RYbQK9+LFi1lpt91uB/BZGulkQqGQmJHpcDhS2r8kSWhoaBCPEwwGNSkcM039A8joeIze3/OByWTS1PhVZsiqGf2ozVV7Ae3zqn4PxVPXZk01FbjyWg6Hw3dtksmuXbsAAKdPn8b4+DiA2OzuVCYIvf/+++KyUerWCxcupNUes9mMuro6OJ1OABATllKhfLfw+/0ivRMREc1NY2NjsFgsOH/tVzMm2Pf1hx7EDxsq0POT6zOmTUQUKwGgUP/mUF9WbwPESvIoAUi73Y7e3l4MDw9jeHhYM6bV0tIy5yaHKzXbgdiiBOXYh4aGxLGHw2HNb7lUKFlwHA4Hurq6MDAwgKamJtGXZ8+e1WwfjUY1AUi73Y6uri50dXXB4XAgHA7jwIEDue6utDy14cv40hIz/jn6+2n9A4BdhWuwOIMBoLmKfZ497Fua6bgS8i4xmUyoqqqCx+MRs7vsdntKM4MefvhhcfnGjRsJt6sLdwPaYIWSmtRut+PNN99MuO+SJUvE5a1bt+o+fnx9OvXgZldXF8rKyhJWc8qyjG3btsHpdGLXrl0ZWy25atUqcVmpr6mIRqPo6OjQbB+/zVQ5nU54vV6xalQdAI1Gozh16lRGjo/mHnX9UXWtt3jKjyr1a8tisYgfFf39/bqrcM+cOZOVdq9evVr82Ono6DBcgR2NRjU/eNTv0Wg0ir6+PoyOjuJ73/tewuedyWRCS0uLSCWtVz8wU9T1Hm/cuJEwiUGW5WnVmZ0LJEkSn3VGaVmV1OJA7Nyj93wFAgG8//772LRp011Jsau0yev1oqGhQTe7wOnTpwHEAmNGNYGj0ajmviUlJeJYr1y5orsCUElHVFZWhvXr10+7hooy0cjv94vBlz179mSknwYHBzXpm2RZhsViEasdx8fHddNYAcCOHTsmXakc33/Kdx4AGB8f1504FAgE0NfXl7H+I5qPlDq7Docjae0somz5yU9+AovFgtDvFsIz+CEKH/5irpuEB++/Fyf+TSne+fHfMwBJNMPYbDY0NTWJINjg4CAAiN+eTU1Nmu+j0WgUr7zyCoDY75WjR49qvjNKkgSv1yvqTZ45c8awxv1spJ50rP6tYzKZIEkSOjo6cOLECQDpj3/Fl1pQxhva2toQDAY1+0uWdaW1tRXbt28XpZNmk46/uoKukY+mtY9l99+LXYVrcn0oswb7PHvYtzSTcSXkXVRRUQEAYhBQWfGgpre6xGKxiMG7t99+W9w/EAjA6XSisrISdrtdbNPf3y9W+tTX1wOIfaFrb2/XrDSSZRlHjhwRA++7d+8Wt6lrM7366qsIhULivmazGS6XS+y3oqICPT09iEajiEQiCAaDYtXE8PCw4YDvVGzZskVc7ujoQCQSQSQSwbFjx1BRUQGv1yseW+mLTKzAKCsrE5edTieam5sRiUTQ09ODiooKwxpbRCaTSbxfvF4vmpubE1b8HTt2TFw+ePCg5jZltbTf79cEEEKhEJqbm5MGzgKBAJqbm9Hc3Jz2jND6+noxC1Jpd/w+QqEQnn/+efGDUZIk1NTUaLbp6uqC1+vFs88+q/teVCYOWK1Ww5XemaDUqABi72HlMysajaKnp0fzuTGfqZ/3w4cPJ6waVc4pAFBTUyP6UREMBlFbWwuPx4N33nnnrrVZoT4fKY4dOyZeo/v27dMMWqjPdUr9RUVZWZnoi4aGBhw7dkzTH7Iso6amBl6vF2+99VZGjsVkMonXotJm9Ws3GfX5UV2vWfmsaGhoEMcDxAKrQOycPj4+Dp/Ph5qaGt0VyUpAVJIkTWBZPekgfiWq+jtFfX09Ojs7Nf0XCoVw4MCBjPYf5VYoFEJhYSEKCwvhdDpT+v4VjUbhdDrF/bK5Ij7bx9zT05PSfXp6embt8RLFGxsbw7Jly5CXl4f8FcvwV/u+jR+9UJnzf13/vyfwo7F/YACSaIZ66qmnxPjVK6+8ogkyPvXUU5ptJyYmxG/eJ598UnfSmlLWAMCcG5tZuXKluKwEG9UkSUJraytaW1vTnoC/cePGhOvWrl0rLl++fFlcVv+206vlnkrJBiIimr845fwustlskCRJBBL0TvhGnnvuOTQ0NCAcDicMliuzwUZHR1FbWwu/34+SkhIxO0kp/u31eg1XMrhcLs0XFpvNJlZgBYNBsVJJSVdYU1MjBi3D4TBaWlrECk+F1WrF97///YyubJAkSfSh3vEoBbSHh4dFnYGWlpZpp1ksKCiAy+USX2iVmgMKpRi3kjufSG337t04c+aMpl6F0+nE0qVL8cEHH4hgg91uT1g5tmXLFvG6czqdkCQJy5Yt06RkMXpf37x5c8o1GcxmMzo6OsTnjfo1r9Sti/f6669r3u8mkwmtra1wOp0IBoMoKiqCw+FASUkJrl+/rjn2+OBQplksFs17uKWlBYcPHwYQS7dptVqT9uV8YTab8eKLL4rzjdvt1qysUc9cVj77Dx8+jMLCQgwPD4sBArvdjpdffvmutNlms4nndrI2qSeUANrzsHK+UFYTmUwmHDp0SKQd8ng88Hg8cDgcmv1arVaxfSaoVx2mmjEB0J4fldowFotFfOew2+04evQodu/ejWAwKNIht7a2ivNkOBxGZWUlrFarWF2lPtfFT5LYtGmTeE8p/aT0n9lsFt8/wuEw2tra0NbWptt/8TPaaXZSfz4Eg0G8++67hnW0Fe+++654jcavfKDUKNkI8vLyct0Umoe+9KUv4erVq/gvf/cPaOu7u2U6kvHWPI4PfvFLBiCJZiiTyYTXX38dlZWVmkm18b8nAW1JE6O6jgBQWVkpflvGZ+iYzcrKynD48GGEw2F4PB7cunUrI9nG7Ha7btBSvYjg9u3buvc1emyjcYLZZOLQv0lpu3/7n/8SPT+5nuvmzgns8+xh39JMMjfOyjNIXl5e0ppozz33HM6fP4/8/HzdE75y3/iBhOLiYni9Xly8eFEM+CmD+aWlpTCZTCgoKIDT6RSrlZR9lJeXIy8vD++//z4uXLggBnusViuqqqqwadMmTZ1HhdfrRXt7u+5xKMGFkpISDAwMaAYp1e2KP0az2SyOcappUk+cOIHLly/j9OnT8Pv9muNQAjhutzthllgqj61+/uK3qaurwwMPPID+/n5N0GjDhg2oqanB6OhoyvXwaH4xm83o7u7GSy+9JN4r8cGu+JQmCnWKTACa1ZBK0D1bgTNJktDb24v29nbNezz+h4XL5cLu3bt131cWiwWHDh3Cq6++KurhqvdltVqxbdu2hOBQNijvYWWygPKD1+FwoLGxEZcuXcp6G2aD4uJikeLU5/Nh+/btCWl6Nm7ciPr6eoTDYRFcB2Kvma1bt6Kqququ/vCvq6vDo48+KlIAqdsEfPZeiSdJkiY4Ha+goAC9vb149tlnxXtP2a/y2tVLNTwdkiSJSUB6GROSef3119Hd3S0CskqAvaqqCjU1NTCZTDh48KAIGCo1Xy0WC06cOIGOjg4RIIyfaFNZWZkwSWL9+vVJg/fl5eXIz89HTU2NeL/p9d9cGSSi2MqGs2fPimD4E088Yfj+kGVZfB7rrXyg1Oh9dyC6W+6//378/ve/R+TTO/jVP/02180R/vn3f8h1E4hoEuqJhEDsN6VecOvmzZtp7zu+pFCqRkZGZtyEKJPJhH379olJ/+rJ+E6nE2VlZVMqgWFUQ96IMrFfr8SCep+zPQhZ+//8VUrbBX4xv0u5ZBL7PHvYtzSTcNQnwwoKCpJ+ASguLk6apiBZLRdllYOS7lBv0M6obpvSrrq6OkSjUfzmN7+ZdNDUYrFMWlumvLwc5eXlaG1tTSn/fCr7nIzZbBb9aPSYSkqKdB97suevuroa1dXVIsWY+jmY7L4095SWloq0h5O9n5TAfWNjo1hhDMRSmVgslqTvncbGRuzatQsjI7EZ5spngcKoDaWlpZoaflOhvG8aGxsRiUREGxYvXozVq1dP2nYg9t7wer2IRCK4ceMGLl++jKVLl2Lz5s2G/aYcU/y+J+vv5cuXJ91GeQ/LsoxIJKL5kamup5vJNNK5ZrPZ0l4NrqT0MSJJEnw+HyKRCGRZxsTEBNauXZv0tTDZPpXzyVRvLy4uxvDwsHidAbFA12Tvzbq6uqR1YywWC7xeL6LRKCYmJjAxMYGHH354WoHHyfoi2Xs22fNps9lQV1cnshXoHX9BQYHu/W02m2iTLMu4cuUKFi9enLRWo8lkQmNjo+F3D2W/Pp9P03/Tfa3QzKVe2QDEapPr1SRXblPorXwgIiKiuU2dalR9eS5R/8ZMJr60gVp5eTk2b96M9957D2+//baY3KcEJK1WK06cOJFWAHXp0qVpHYfymGvWGNeKS3efM9F06+lR+tjn2cO+pZmEv/ZnoekO0phMpoyu2lBMdWXjbHtMYPrPAc0NZrM57degxWLR1HlNlc1mM/xRYXS92WzG8PAwrFbrtGd0Ku2ezn7MZnNCADXZ8aZzvcJkMiXdJhQKiWOJ/xxUAqx2u53v8RQp74GZNGNYeZ1lmvLamknHmqyt0+kDi8WS8bous6n/aHrUaVn9fj96enoSJhD09PSImfJ6aVhDoRA6Ojpw7do1TUrh1atX664+lmVZZO/YuXOn7qQw9TaNjY1Z+S6cCaFQCKdPn4Ysy2JlssPhwPbt27Fx48aE7x1KMDc/P1+z4lu5fufOnVi/fj2GhoZw/vx5TWr1Xbt2Gb7XZVnGe++9JzKAKG0oKirCb37zm1nRl0REND+l8xv9k08+yfjjq7/XjIyMTJqeHojV2NW7v8JisWgm1F66dAknT55EMBhEOBxGR0dHVifxKWUffD6f4eMkC6TOVI986QsIr/7dtPax5N57cn0Yswr7PHvYtzSTcZSViGiOCgQCCIfDcLlcuW5KzsmyjG3btgGI/YA6deqUJtCo/KAC0k9NQ0REWuq0rIcPH9ak6I9EIqImr14a1s7OTt0a236/H36/H729vTh06JAm0BiJRMRnuFG9KPU26dZJvluam5t1V0Ir6bGtViu6u7s15y/19upBTnV/vPPOOwn7VfpTLx28LMtwOp2aOl1KG+x2O/bv3z/j+5Jy6/vOYtz/+cwNYv2fZy/h5q8zHyggopkvPz9fXE4WMLx+/bN6ZnrnJaMViZcvX85Ku9VBu5aWlqSB0VAopCn5MxmLxYLy8nKUlZWhoqJClFLI5sSgNWvWiIlhRjU3e3t7s/LY2fR/VW7KdRPmHfZ59rBvaSZjEJKIaI66efMmHA4HKioqct2UnLNYLCI1bTAYxPPPPy/SBY6Ojoq6GlarlXXJiIimSZ2WNRwOw+12i1nzbrdbBLfi07AGAgERgFSCXatWrcKnn36KGzduiFq0tbW1GBgYyFlGjGyQZVkE9hwOB+rr67F8+XL85je/wZUrV/DKK68gHA7jyJEjSVMgxzt8+DDC4TAkScLBgwexfPlydHd348yZMwiHw+jq6tIEIaPRqCYAKUkS3G437rvvPuzfvx9+vx/19fW57i6a4Z7a8GV8cD2M6/Ltae3nc6ZF2FW4Bv/hf/4414dERDmiDqpdvHjRMNvHmTNnAGhrFtpsNlFr3WhF4tmzZ7PS7sLCQhG06+rqSroa8vTp0+Ly6tWrxWWlnMHIyAjKysoSAn8mkwknTpwQv2svXbqUtVrRq1atEpf1am5GIhHN5KXZYPmB/zvXTZh32OfZw76lmY5BSCKiOWqyGnrzTUtLC4DYag5lBYiaUkuDqViJiKbPZrPB6XTC6/XC5/Nh586dAD5boedyuRIGsF599VUAsQHEo0ePis9jJcWw1+sVq9pPnTqVtJ7rbPPee++Jy+oVE0p65BdffBGvvPIKZFmGLMspr3QIh8NoamrSDH7W1dXhgQceEClz1TXWR0dHxSBiU1MTnnrqKfE8eL1e9PT0iPMpUTIdf3Vl2rWIlt1/L3YVrpnWPohodjObzXC5XPB4PPB4PFi5cmVCQG5wcFCcuw4ePKi5/7Zt28R3EfX5NRqNoq+vTwQK9YRCIVGyQ53VIRXf+973xERXZYJVfCAyGo3iyJEjmgmx6ok+n376KWpqasSkIb06293d3eJyNjP6bNmyBR6PBwCwf/9+HDx4UGSlCIVC2L9/f9Yem4iIZj+OtBIR0bxgNpvR2tqK+vp6jIyM4Pr16xgfHwfwWc0sBiCJiDKnoaEBvb29CIfDOHDggLjearWipqZGs20oFBIDgU8++aTu57HFYoHdboff74fH45lTQchf//rX4nJ/f3/CJKLi4mLdVK2pUFZIqK1du1Zcvnz5sqgN2dfXJ64vKSlJeB7KysoYhCQioruqqqpKBMBaWlpw+PBh7Nu3D4sXL8bQ0JAI4kmSlFAXuqysTNxeUlICp9OJlStX4u2330Y4HBbfK/SMjIyIc15XV1daQUiLxQK32y3u39bWhra2NjgcDlgsFk0GBMWLL76oeQyz2YyOjg44nU74/X7s3bsXpaWl2LhxI4LBIK5fvy76xeVyZTVDhCRJoq+CwSBqa2vhcDgAQFNv2qgviYhofuNoKxERzSs2my1h9Q0REWWeyWQSg2fqFF0dHR0JwS11nSejuo5ALKA2Fwe4du/eLVKkKgOW6a660GO323X3sXz5cnH59u3PUmbKsiwu650rTSYTBxlpSiYO/ZuUtvu3//kv0fOT6yltS0Tzg8ViQW9vL5599lkEg0HNuVLhcDjw8ssvJ9x3/fr1mvOWEpAEYufIo0ePoqioKCvtLi8vR15eHl599VUx0UpvQpEkSXj99dd1z7uSJKGpqUlkL9A7/0qShN27d2fxGYg5evQonn/+edEG5VisVisOHTqEmzdv8vsBERHpYhCSiIiIiIiyQpIkkZYVAJxOp249p2Tp0IyEQqEpTSoZGxubcZNRzGYz9u3bJwZVlf9LkoStW7eioqJiSm1ONzXbtWvXAMQGFI1s2LCBg4yUttr/569S2i7wi9lVU4yIpi4/Px9ut1tcTsZiseDUqVMYHR3FzZs3MTAwAIvFgvXr1yM/P9/wHGkymXD06FEMDQ3hww8/xPj4OEpKSrB582aR2tyoDfn5+dOeeFNQUIBTp05hfHwcwWAQo6OjkGUZq1atwsqVKyFJkmGdS0V1dTWeeuopsQ/l2IuKirBx40bdyUbKMeXl5eleb9TfygpOvW1MJhPefPNNyLKMjz76CDdv3tT0Y09Pj2Y/RERECgYhiYiIiIgoa9avX697OVfUK/8y5datWyltd/268Qqv8vJySJKEixcvivRqwWAQwWAQHo8HkiTh+9//floDe0uXLk3rOJRgcGFhoeE2K1euzHj/0dw33fqQRDT3pJuhxmQyiXSr8WnLJ7tfcXGxSD0ez2hfNpsNv/rVrwBoMwikS6ltLUlSWu2ezj6MtpnsvmazedJtLBaL7neRgYEBALEJVNlMDUtERLMPg5BERERERDTr5HqASz0gOTIygurq6knv88EHH4jLRmnXJElCTU0NxsfHcfHiRVy4cEEEI3/wgx+gsbExa8ckSRKCwSCGh4cNtxkdHc3a49Pc8ciXvoDw6t9Nax9L7r0n14dBRPOYcu51uVy6tarnE1mW0dzcDL/fL9LYqvskEomI7w5bt27NdXOJiGiGmd9nUSIiIiIiyjl1yi91fch46hWH6awIVGbnZ5KyKkEJ2kWj0aSDlJFIRKR0myz1mnrFQ1VVlair6fV6UV9fn7UA7Jo1a0S9LaPjSRagJFL8X5Wbct0EIqJpuXnzJhwOByoqKnLdlJxTf+fy+/04ceKE6JeRkREcPnwY4XAYVqsVVVVVuW4uERHNMAxCEhERERFRTqmDahcvXjQM0p09exaAtmahekXiwMCAbhox5X6Zpg7a9fX1JU1hdurUKXE5Pt2pUl9p/fr1CYE/i8WCjo4OOJ1OAEB/f/+U07lNRj3IODExkbBaMxKJTKl+J80vyw/837luAhHRtCVL4ToftbS0oKamBuFwGB6PR6SOV3vxxRdZD5KIiBIwCEl3VWdnJ0ZGRgAAra2tuW4OERHNQYFAADdv3kReXp6oGzPXRSIR9Pf3AwBKS0tznqaSKF0WiwUOhwM+nw9nzpzBypUrEwJtgUBABMD27dsnrjeZTHA6nfB6vborEtX30xMKhcT303TfP/X19fD5fABig3OLFy/WHbA8duyYZrDue9/7nrgciUTESken06mbbvXy5cvicmlpadaehx07dsDr9QIAOjo6UF9fLwKRoVAIHR0dWXtsIiIimrlsNhu6u7vR19cnMkxcu3YNsiyjqqoKVVVVMzoA+b1vPoLyx2ZOXeu1y5fC/9FErpuRVezz7GHf0mzDIOQsEQgE8M477wAAampqkqZwCgaDOHHiBABg586dSQdgZVlGe3s7AKCkpCRrs6oVIyMjYqCGQUiimEgkAlmWE643m80z+ks80Uz1zjvvwOfzweFwTBqEjEaj6OvrA4CUgpY9PT0pbzs4OIjbt28DQNbPr7Iso6WlBQDQ1dXFICTNSkpALxwOo6WlBSdPnsTBgwexePFiXL58GW1tbQBiqyDLyso09y0rK4PX60U4HEZFRQWqqqrw6KOP4o033kAwGBRpU/WMjIxM+f1js9nQ1NQk2tbQ0ABJklBYWIj169djYGAA165d0zy22+3WnN/NZjMOHTqE2tpaeL1ejI2NYdeuXVi9ejU++eQTBINBsX+Xy5XV97ckSbBarQiHw/D5fPD5fHA6nVi6dKkIotrtdpFWloiIiOYPk8mE8vLyrP+2yYa/u/Er9Pzkeq6bIbiKH811E7KOfZ497FuabRiEnCUefvhhEbxbtWpV0iDkxYsXxbYWiyXpIOmlS5fEtjt37sz1YRLNS/39/WLwU83hcMzqYL0sy4hEIgmp3IhmEpPJpKlhopwT9agDfUDyumjRaBQNDQ0AYoP6s/GHOtHdZrPZRM3DcDiMYDCI2tpazTZ2ux2tra0JKUvXr18vAo1KmrD4+2zbti0r7a6ursbSpUvFZ0kwGNQNeFqtVhw6dEj3u3lBQQFcLhc8Hg/8fr9ukM9qtWL37t1Zfx68Xi+am5tFG5SVkUAsgAqAQUgiIiKaVfwfTeCN/iu5boYwk1axZQv7PHvYtzTbMAg5S1gsFjEr+cyZM6irqzPc9sKFC+Jyb2+vbkonhZJCAQDWrl2b68MkojlEGcBMFqghmgmqqqrg8XgQDocRCoUMA+dXrmi/5Curq/SMj4+Ly08++WSuD5Eop/Lz80XwKj8/P+m2kiTh3Llz6O/vx/Xr18V7KT8/HytWrDCszWQymXDq1Cm8++67IrXqqlWrsGXLFqxatQomk8mwDfn5+dNe3VdeXo6ysjL09fXh1q1bog1ALNvI4sWLUVRUlBA8Vaurq0NVVRU++ugjvP/++7hw4QKWLVuG0tJSlJSU6H42KceUl5ene71Rf1ssFsNtLBYLjh49iomJCYyMjODWrVvYuHGj6EdlRbiyLREREREREZERBiFnEfUgqSzLuj/6ZVnWzLxONqAajUbFig+73c7UbUQ5Ep/OpLCwMNdNmrZoNMpVEjRrbNmyRayaGhkZMQxCnj9/XvP35cuXDYOQFy9eFJdLSkpyfYhEOWWz2dJaFW82m6e0ethkMqG6uhrV1dW6txvt02az4Ve/+hUAYPny5VM+TiVFGQDDNkzGYrGITCbJJh1OdkyT9d9kfWwymQyfN2USoyRJ/P1ARERERERESTEIOYts2rRJDJJeuXJFdya4skpDkiSsWbMGPp/PcEBVvUqjsrIy4XZZlnHp0iUxC33VqlVYuXIlNm/erBsADYVCYtZ3eXk5IpEIbty4gWAwiPz8/JQGn5THBPTrbcW3KT8/H2vXrsXatWt1B0Ey0SaiuSwUCgGIDbomW52RromJ9ApSK+2Yah3MaDSKTz/9lIOhOaT+fM3Ly8Py5csNP2PVdVCVbaLRKMbHx8X9H3744UlfC8pnfKrbG1m1apW43NXVZTgwr0zccTgc8Pl86O/vNww0KFkJrFarbj/IsizSNi5evBirV6+GxWIxfA3rvVeVPkz1uJUUyfH7iX9eRkZGRJuMnsNoNCre59NpE9FMoEziczqdGT0XzkZKvfjh4WFUVVUlBEKj0ajIcLB169ZcN5eIiIiIiIhmuPn9K3uWWb9+vbh8/vx53SCkskrjySefxNKlS+Hz+QwHVC9fviwub968WVyORqN499130dbWZtiWpqamhIHXkZERUStLSRulcLvdkwb8IpEInE6nqMulrj8DAJ2dnQltUtfuOn78eELQcrptIppJmpub4fP5ktaKNNpGWV3pdDrxve99T1PrSeFwOPDyyy+LAdhjx46JiQ+9vb2GQQVZlkWdrWeeeQZvvfWW5nblsePbJMuybjv02qLo6ekR7+nh4WG0t7ejt7cX4XAYbrebdfdyoLOzE2fPntWtfyZJEl5//fWEz1p1HdTh4WHNa01N71wDxF47yvlCTe/ckQqTySQCi36/H9FoNOG1pz6++vr6pNtGIhGxfXwNukgkArfbbVh70uiYlclCSvpEpf9SrR0bCAREbT273Y4333xT3BaNRvHSSy8ZtunIkSMJ3zkmJiZEm7xeLy5fvizO0bO9ni3NP2fOnAEAlJWV5bopOWexWHDt2jVNXc2KigosX74c4+Pjol4nEMvSQkRERERERJTMwlw3gFKnDJICMBwoVK7fuHGjqO+iDJLGO3v2LIDYoK06uHDixAkxkChJEtxuN7xeL9xut0g719bWhmPHjhm29dSpU5q/4+vUxItGo3jhhRc0AUh1m44dOybaZLVa4Xa74Xa74XK5xDa1tbWaGjXTbRPRXDQ2NqYJ/FmtVnGbz+fD7t27xUqpiooKcZsyQKvnvffeE5dTHcBVVpyoA5BWq1V8xvh8PlRUVIhVVXoCgQC8Xm9CIIrunlAohLa2NhFwczgcms/lYDCImpoa8ZrSow5A2u12zWuyra0t4TWgF4B0Op2ibrLT6cS1a9fSPpbt27eLy+pMAQpl4o7D4YDNZhPtHB0dTdj26tWr4rL6PRGJRLBjxw5NKnSXywWn06k5v+7du9ewndevXxcByFTFByCPHj2qaVNFRYVokyRJcDgc4vsGADQ0NCQ951+8eDHpxCWima6urg7Dw8MJk9nmK7fbLT7jPB4PKisrUVRUpPnsdbvdXPFMREREREREk+JKyFlm+/btYqAwGAxqalGpV2msWrUKJpNJDMqOj49rtlWv0lDPYo5EIprB4KNHj4oVHpIkoaysDM8//zz8fj88Hg92796tmzrO4/HA7XYbpm5Vi0ajYp8AcOjQIc191G3SC1BWVVWJoMrJkycNV0Kl0yaiuUp5nzkcDtTX18Nms6GnpweHDx8WqSG7urpQXV0Nm80GSZIQDAZx5swZw9pUyoQGu92O1atXY3h4OGHFYryWlhYxkOlyucS+1Suxw+Ew2tvbDVdUHThwAHa7HaWlpSItM91d+/fvBxD7bO7u7hbni5qaGs3z2N/fn/Sz2eVyoaqqSnw2Dw4OoqGhAQBw6dIlzX3PnDkjXjvq13FDQwP6+vpw+PBh3VWZk9m4caO4fPHixYRaj8rrXFlRr9Rpfv/99xMCF319feKyOovBqVOnRNv1Vu8rAVm/349AIKAbEPF4PLBardi3bx8kSdKkktUjy3JCAFK9clPdJvV7EQAaGxvF+dXj8WieI6M25efnT6umHhHlniRJOHfuHE6dOoUPPvhAM2HI6XRix44dhvVwaX763jcfQfljK3PdDGHt8qXwf5ReaQAimr3UpR7Uplrqg4iIiDKLQchZZt26deLy5cuXNQMAyioNu90uBhi3bdsm0qSpt1Wv0tiyZYu43NXVJS7v378/IcWcyWTC/v374XQ6xWPqpYW1Wq0pp0V86aWXxOCG3qCsegXjiRMnEr5EWiwWPPPMM/D7/QgGg4YDt+m0iWgm0AveZUJ82tLy8nJNuuKzZ8+KdJDPPfccGhoaRIAyftAxGAyKgM8zzzyT0uMHAgFxn/igh8lkQnV1NZYuXYqWlhb4fD40Njbq/ngMh8M4d+4c60DmSCQSwZo1a7BmzRps375dc74wmUyorKwUq+MGBgYMP3/tdntCgLu4uFhMoolPKa6syrXb7ZoAtclkEtulu1IQiA1SKEH3CxcuaNqknrijZBlQ6jTHbwvE0hcrbVT6RT2hxul06p6nampqxDZvvfWWJmWq2osvvqh77o2nrBpV2hIfgIxvU/xxWCwWHD16FEVFRaLvjSYjHDp0iKvIiOYQs9ls+H4nivd3N36Fnp9cz3UzBFfxo7luAhHdRepSD2osEUBERDQzMAg5y1gsFjFI2t/fr6kbpazSKC0tFdcVFRXB6/VqggqAdpWGehXFyMgIAG1axHjq64eGhnQHQlOtEXPs2DGxslMvAAlo0+IZ1XBUr4C6efOm7jZ79uzJxFNAdNdkK82o+jNCYTabRU28YDAo6twpwQcAOHfuHBobGzX3u3jxIoDYZ4Z6xVcy6s+fmpoa3W3UdWrjV8IpnE4nA5A5ZDabk/6oT/W50Xs9ArFaokrdRUUoFBLvi9WrV+veTwkSTsWTTz4p0stGIhFxDOqJO8p5SDnvBINByLIsAuWyLIs27tq1S9xPPTvbKG2xyWSC0+mE1+vVrZWqUL8vjcTXWX7ttdcSJhbduHEjpTbZ7XaxGtIoKJHq+5+IiOYe/0cTeKP/Sq6bIcykVZlERFO1d+9e+P3+rE1OJiIiulsYhJyFlEFSv98vBknVqzTUKeWUlZPxA6rKKg2Hw6EZlFQGSQsLC1Nqi1G9NnUtOSPqOmBHjhwxXEGh1PayWq1obm6edL/Xr+vPwlVWeRHNZ5IkGQaH1KsNJyYmYLPZYDKZ4HK54PF44PV60dDQoPnMUFalVVVVJQQ4jCifG1arFRMTk6fKMnpPp1p/krIrGo1iYmICIyMjuH79umbiiLKaMRmjz+aSkhLD+seAcdBrOimX1OfPq1evivOSEjhX10lUr5y8cuWKmJBz6dIlsY06e4EyyQdA0nSl6uNSJgOoxZ+39XzyySdwu92aOst673t12tr333/fcBKPHvWkIJfLlfL7n4iIiIgok0pLSzVZvSorK3PdpIxINimRiIhoNuGI0SykN0iqpGIFtCsV1SsnlW3VqzS2b9+u2XeqX3KUFVPToQQgAeD06dOGqeWUQdJwOJzSY6oHwIlIa82aNYa3GQV1KioqxPt1dHRUBGaCwaD4LEl19TMA8T4Oh8Mp/UA0ek+z7lzuBYNBtLS0TKkGo8JohbseddA6Ly9Pdxuz2ZxS8FOPJEnivn19feK1rkzciT9nKpOC1FkBBgYGxL6MAqKprhJVJgOopbLSs76+XnP8S5Ys0d3u1q1b4rL6nJyulSu54oSIiIiIcsNsNucsQ040GgWAjE/IC4VCad9HnZ2FiIhoJmEQchZSBxnff/99FBQU4MMPPwSgXaWh2Lp1K4LBoBhQVa/SUAc0lX2nMpicqXQQSoo3v9+Pzs5OTcrYeFarFSdOnJh0n0zPSHOFUUrku81ms4nPBnWdOiUVq91un/KPHb3PrHjTSa9J2RMIBFBbWyv+drlc2LRpkyY47Ha7czKDdzqpjJVayr29vWhsbNSkgFWvbAQ+O4d6vV40NjYiGo2KIPvWrVuzcmxLly5N6fiVYGo4HMZLL72kmzpXvS+Xy5VSMFFvdSYRERER0UzX2dmJkZER5OfnG449GW2jZOUqKSlBWVkZ3n33XfT394vfOpIkYevWraipqRHflXt6esQExZaWFsOxqkgkArfbLfY/MDCgyTqmPHZ8m6LRKE6cOIEPPvhA85vL4XAYHmMgEMA777wDAGhtbcXg4CDOnz+Pa9eu4emnn9Ytg0JERDRdHEWapZSaURcuXEBdXR0uXLgAQD+t3aZNm+DxeMSAqnqVRvyXoDVr1oj6VslkoladUgNSyXPf1taGjRs3JgRelFWX4XAYFouFQUaaN5KtWjQy2QSBZO9t9aqoeM899xwaGho0aaCVVKzqunepUK+kTlZTkGa2999/X1zu6urSXdGopNPOFHWAM53UoekoKyuD1+tFOByGLMsYGxsDEJsIEx9sV9dUDoVC+OSTT8TfW7Zs0Wy7ePFicTkSiaQUuJ/qal+73Y7W1lacOXMGHo8HPp8PJSUlSQcVHn30UcOMBEREREREs93IyIj4HWoUhDTaRp2Va2BgICFLVzAYRDAYxAcffICjR4/CZDJBkiS0tLQAQNLv4pcvXxb7q6qqSti3+m+lTbIs49lnn9VdRODz+eDz+dDf3y/aorh586bYX01NDRoaGnL9tBAR0TywMNcNoKlRaqEpX3SULx56K4bWrl0LAGJAVfnC8eSTTyZsqwyoKoEGPeogxnTqLCpp7l577TVYrVYAsRRyRo8LxNLPEs1mkUgEzc3NcDqdGBwc1L1doQ5wqBmlJVanWjaSbFVaspp1RUVF4nJ/fz8CgYB4LPVt6ZpKmhmaGZQgtCRJugHISCSSkQkrRpQJNfEmm0QzGeWcCcTqOw4NDQGIrZCMZzKZYLfbRXuMUqMDwOrVq8VlJbCpZ3R0VLP/qWhpaYHFYkFNTY1oX0tLS8L7Td1G5TiJiIiIiEifEuCzWq1wu93o7e2F0+kUt/v9fvG9WpIk8X375MmThvt84403xPYbNmzA8PCwWBkJxCYaDw8Paybwtre3i3FAl8uFrq4uDA8PY2BgQGQb8vv9OHLkiOHjKgFSh8OBpqYmZiAiIqKsYRByllIPkr7++usAYqs09AaCzWazGIRU0jgAialYgVjtN8WpU6dEfnu19957T1zOxJcUs9mMjo4OALFA6QsvvKB53JqaGnFZvfJGLRAIwOFwoL29fdoD0ETZdM8992B4eBjBYFD82FBTBzEeffRRzW3q95te8E793kzGKOWysmpNkqSE4IfJZILL5QIQ+wHV19cHIPaDZ7JASfzEAvXkBXXgUy0ajaKnp2datQYpuyZbyad8rgOZWxFps9nEpBVZlnXPUUpwdKrU58yBgQFRD9Io2K7UNe3v78fZs2cBQDMQoVi+fLlo++nTp3X3FY1G4fV6AaSWqngyJpMJra2t4nFramo078cVK1aI25Tj1NPe3o7Ozk6eX4mIiIho1sh0VhaFy+VCd3c3ysvLYbFY0NjYiK6uLnG7+rv+008/DSD2G1zvN7wsy+I373PPPZfS44dCITEx2eVyoa6uTowFms1mtLa2it/uXq/XcKJ/MBhEb28vWltbUV1drTueSERElAkMQs5S6kFSZWWT3ioNRWlpqWZbq9WqW2/OZrOJgU+Px4Pdu3cjEAgAiAUSOjs70dbWBiA2QJqpLymSJKGpqUm0UV37UZIkTZucTicCgQCi0SgikQgCgQAOHDiAcDiMsbExLFmyJDdPClEKTCYT9u3bByD2pb+9vV38KAgEAprAZHzQ44knnhCXu7u7RQBGCdi9/fbbKbWhvr4ePT094v6yLKO5uVn8+NFbJQ18NkkhGAyKQIl64oKaOvXkqVOnNLeVlZWJwMfhw4c1bVE8//zzaGlpQX19PQMfM5TyOlGvxo9GowgEAiJluPI8B4NBwx+/yVa/66mqqgIQO1dUVFSIc1QoFMLevXvh8XimfWxKYFFJBQ7oT9wBPpsc4Pf7RT/oBSzV732/3y/OZYpoNIrnn39e/F1fXz/t4wBiweJDhw4B+Gyij8JsNos2hcNh3TYdO3YMXq8XbW1t+OijjzLSJqKp6unpQWFhYcI/9SQ7IiIiIgBZm9C6e/fuhIm4NpstYYwO+GwsDoj9ho+nnkicaoYhdZBz9+7dutuof6f39/frbmO321MqEUFERDRdrAk5i5WWlmq+3CT7whI/eJosYNnY2AhZlsWAam1tbcI2drsdjY2NGT2ep556ShT29ng82LRpk0jZmkqbJElKyHdPNBOVlZXh8OHDCIfD8Hq9IlijTl3Z1NSU8Fq2WCyQJAnBYBAej0cE5Xt7exEOh2G327FmzZqkKVclSYIsy2hpacHhw4exbds2EVAEYhMUlABMPJvNJh5f2ZfRRIR169aJyx6PB+Pj4wBiNSBNJhMOHTqE2tpahMNh0ZaqqiqMj49r0s0eOnSIP4xmqMrKSjEpxel0iteW8jp2uVzYvXu3WPlaUlICh8ORUAdUluW0av3u3r0bZ86cQTgcRjgcRm1treZ1qffjP12bN2/W/K1XQ1mh9x4wCliWlZWhq6tLcy6TJAlr1qzRvO5dLldGZyIXFBSIwLDf70dnZ6eoJ2PUpmXLlmn60OVyiXMyEWVWc3MzfD7fpHWdiYiIKLesVqvh74LVq1eL78+hUAg2mw1msxkOhwM+nw9nzpxBXV2d5j7qTCqpjmWpJ+nKsjzppN1bt27pXr9r165cdycREc0TXAk5iz3xxBNwOBzin3rQP96qVas02+7YscNwW4vFgqNHj8LlconBXIWSK/7NN99MCAzk5eWJ/Rt9KcvPzxfbxFPSxim39/X1idVRSpuampo0bbJarXA6nXC73Thx4kTCl7ZU2kR0t5lMJnR0dGhWI8cHIJUAQbyDBw+K1WVALL1KOByGJEl47bXXJg3YrVmzRqw0VoKgCqvVCq/Xm/S9ok4Ro6SW0WOxWEQKGOCz2hmKgoICdHV1iT4Ih8PweDxiG0mScOTIEQY9ZjCz2Yzjx4+Lz+RgMChei263G3V1dTCbzQmvg0w8rnqVpfLYQCwAefTo0WkHri0Wi2b/W7duTbq9Ov2q3W43fA+ZTCZxflW3XekXq9WK48ePJwxOZEJDQ4N4v7W1tYk+M5lMePPNN0U2AqVNygCK3W4XzydRrpWWlqKrq0v8mysy8dlIRERE2VdYWGh42/r163Wv37lzJ4DYb1511hF1KtZkY3Tx1JOWKisrDf8pjEqgqGvWExERZROXjM1iFoslYUWJESXAlyqTyaQZcJRledJB3YKCgkkDBtXV1YbBlcmOyWQyae4fiUQmDSym0iaiXJAkCV6vF6FQSPwokCQJK1asSPq6LigowLlz53D16lXcvHkTixcvxsaNG8V9GhsbUV9fn3QfNpsNw8PDCIVCGBsbAxBbuZhK4Ob27dvisjq1jJ66ujrDdK1KO5Q+mJiYwM2bN5GXl4e1a9catl8ZgAZiNfYotwoKCvDmm28iEongxo0buq/furq6hABWeXk5ysvLk+472TYWiwU+n088LhCbbKNMRGltbU3rnKcnnaBAY2NjytkBlPNrXV0dZFnGRx99hOXLl8NisSR93062Qkp5Xyd7XPWkg3jK+VW9mlXdp1NpE1Gmmc3mOTepjCnHiYiIskOvBFEuFBQUiMxHfX19YoxKScUqSVJabVVPYCYiIpoNGISklMzEdIhzbRCK5iebzZZ22kWz2WwYXLdYLCm/X9N97EgkgsOHDwOIrfxK5T2Yyv7TacdcHICeC8xmc05+5OfqcTMlnffrfG4TUbo6OzsxMjKC/Px8w8lvRtso9SVLSkpQVlaGvr4+DAwMiIkJDocD27dvR3FxsbhPT08PBgYGAAAtLS2G56lIJAK32y32PzAwoAlCKo+t127lMYaHh8Wq8zVr1iS0RREIBPDOO+8AiE3MGBwcxIcffojx8XGUlJRMOhGEiIhotluzZk3a97l27dqUH88o7SkA7NmzB21tbfB6vWhoaIDJZBKpWJNlGNJjt9tF1hJOCiQiotmAQUgiIppUNBpFR0eHmHXJ+hFERDRTjYyMiKChURDSaBv1Kujr16/D4/Fo7qekF3e5XGKVd15enrifUVAQAC5fviy2q6ioSFhxrf5bnfnjhRdeSKhzGwwGRTpnp9MpBjQVN2/eFPurr69HQ0ODuE2p1UtERDTbRCIR9Pf3Y3R0FDt27EiYkBiJRMRlo4l1Pp9PN2uKOj2qEaP7Atq0p/GPXVlZiba2NgDA0NAQ8vLyxGNNlmEonnrfSu1JIiKimYw1IYmIyFBPTw+am5tRVFQkUjm63W7+0CEiojnN5/OJAKTL5UJXV5emprnH4xF1nZQ0awDwxhtvGO7z9OnTAGJp1+x2O7q6ujQ1YpVal+r0zm63W1OjVdnG6/WKgVev1yvqPevp6OgQj+t0OpGfn5/r7iUiIpqSe+65B4cPH4bX68Xrr7+ecPvVq1fF5fgajerzn1469CtXrqTUBqNApbKK0mq1JmRFMJvN4nvE6dOncfHiRQCxDAuTZfqJRqOGx2FU7zEajSIQCGiCskRERLnCICQR0TygDI6mq6WlRbMyw+VyMYUbERHNKNmqq+hwODAwMIC6ujrYbDa0trbi+PHj4va33npLXN6zZw+A2MCkXnsikYgIJj799NMwmUyw2WxYuXKl2EZJT66scAiFQuIcbLfbcfToUbGNUlva6XQCiAVFjQYafT4fent74fV60djYyIlEREQ0a5lMJnHO9fv9GBwcFLdFIhGRihxIXGG4ceNGcTk+4BgKhZJOJFJ7/fXXEQqFxN/RaBSdnZ0iOFlVVaV7v507d4p2nzlzRnNdMn19fZq/KysrxeWuri4xKUrtxIkTqK2tRUlJiaatREREucB0rERE88CePXtE7at0KLM1LRYLysrKEmaTEhER5Vp8qtJMaWxsTFidUFBQIGoxqR9XnWbtvffeS0gD29/fLy6nmnatu7tbXH7ttdc06VYVO3bsEJkKLl++rJsKVpIk1nolIqI5Q33ObWhogNVqxZo1azTnZafTmXAOlyQJVqsV4XAYDQ0NkCQJTz/9NE6ePIlgMAir1QpJkpKmZLVarfD7/aisrITD4UBJSQkOHz4sypYAsZTrepTMCeFwGOFwGFarFQUFBbrbqn+3Hz58GLdu3cLIyAhaW1thNpvhdrvR0tIivo9IkoTnnnsOt2/fRldXl+gLZjGaO0wLF+S6CfMO+zx72LfzD1dCEhHNA9XV1WhtbTWsjWWktbUVra2taGxsREFBge4AKBER0VxjtVoNA3fxtZgAbZq1t99+O+E+J0+eBKA/KGpkfHxctMXoPupaWDdu3NDd5rnnnsthTxIREWWW2WzGkSNHxN/hcFgTgHQ4HJpayGr79u0Tl4PBIFpaWkTQ0ev1Ys2aNUkfu7CwUGRF8Pl8aGlpEQFIq9WK48ePJw36Kas44y/Hs9lssNvt4vja2to0GYrKy8s1fRAMBtHQ0CACkwCzGM0l3y2U8J2CL+e6GfMK+zx72LfzE0eTiYiIiIiIVAoLCw1vKykp0QwEKnbu3Amfz4dwOIxgMCgChLIsiwHOsrKylNswPDwMIDb4mKw9ipGREd3JRqtXr85tZxIREWVYcXExBgYG0N/fj+vXr2N8fBwlJSWQJEkzQSdeeXm5WO04MDCAVatWYcuWLVi1ahVMJhN27tyJkpIS5OXlGe6joKAAvb29uHLlCoaGhrB06VJs2rQJa9eunXSi0dq1a8XlJ554Ium2R48eTUjFqtcHly9fxo0bN0Tmo40bN4rjiZefnw+32w0A8y5LgvkeE5bdf2+umyF8blFq64L+7eavwPPdYvzNXw/iT//0T3Pd7LSwz7OHfUuzDYOQREREREQ0a0217nGmqdOsXbx4UQyCvvfee6KdRmnX9KhTuxEREZGW2Wye0ko/JVCpd99Uz9MWiwXFxcW6adCNRKNRHDhwAECs1vNkQUCTyTTp8ZnNZtGGVLIeKbWl56Omsnw0laVXnibbBsduJr295htr4XEW40c/+utZGbBhn2cP+5ZmGwYhiYiIiIho1kpllWC8a9euZaUtVVVV8Hg88Hg8qKmpgclkwtmzZwEkT7umR6k9abVadVdeEhER0ezR19cnJhg988wzuW7OvPODv7mKH/zoaq6bIbz+naKkt7uKH8WRpzbjb/7mRygpKcl1c6eEfZ497FuabRiEJCIiIiKiGSUajWJoaAg3btzAxo0bE1KrRaNRcdloJYGSzjReJBIR6VGN+Hw+tLa26t42MDBg+NhKEBIARkdH8fDDD4vHqqysTKsPlH2Hw2HIsjzv0qYRERHNdsFgEJcvX0Z/f7+mVmM6mREoM258/E/wj0/kuhnCx5F/NrztudJ1aN+xCX6/P63VtjMN+zx72Lc02zAISUREREREM8qnn36KhoYGAIDD4UgICI6Pj4vL69ev19y2atUqALHgXSQSSajPdPny5ZTaYBT4k2UZQCy9avy+LRaLWMH4zjvvID8/libJbrdPWicqGo1q6jcpxwEAV65cMfzRHgqF5m1qNSIiopnM6XRq/rbb7aipqcl1s2gGa9r2Nby8vQDDw8P41re+levmzAvs8+xh35IitaqhREREREREd4nZbIbL5QIQW5UYCATEbZFIBOfOnRN/l5aWau67ZcsWcfnqVW2aIlmW8cYbb6TUhvb2dkQiEc11PT09YiVDVVWV7v2UFGs+nw9vv/225rpkhoaGNH/v3r1bXD59+jRCoVDCfTo7O1FZWYnCwkIRHCUiIqLMcjgcU7qfksnBarWiqakJR48e1Uw4IlJzf3sTXvnzDfjbQADf+MY3ct2ceYF9nj3sW1LjmY+IiIiIiGac3bt3i9SmtbW1kCQJW7duFdcBsUHB+BWGkiTBarUiHA6jtrYWDocD27dvx/nz5+Hz+WC1WiFJUtKUrEodRp/PJ+7/xhtvaO5TUVGhe9/169eLxw+Hw7BarQmrNRXKSkkAeOONN3D79m0AQHl5uQjEejwe+P1+VFZWwuFwoKamBjdv3sTQ0BC8Xi+AWGo3pmslmhrTwgW5bgIRzXCtra2GadqTUc7TRMksXLAArz/1DdRuXo1AIAC73Z7rJs157PPsYd+SHgYhiYiIiIhoxjGbzXC73WhpaQEQq6ukDgLa7Xa8/PLLuvfds2cP2traAEAEExUdHR04ceJE0iBkYWEh8vPz0dbWlnB/ADh+/LhhClSTyaSpDVlVVWW46mH58uUiIBoMBsWxlpeXAwDq6urwwAMPGB4LEAvE1tXV5fKpIpq1vlso4TsFX851M4iIaJ5auGABOpzfQvV6G37+859j06ZNuW7SnMc+zx72LRlhEJKIiIiIiGak8vJy5OfnY2BgACMjIwBitRIfffRRFBUVGQb3qqursXbtWvT19YnajkVFRdi4cSPMZjN27tyJkpIS5OXlGT52dXU1SkpKMDIygoGBAQBASUkJNm/ePOmqw02bNmmCkEZMJhNOnTqFvr6+lNoxOjqqOZ5169bptiU/Px9utxsAuEKSss58jwnL7r83180QPrcotaoz/3bzV+D5bjH+5q8H8ad/+qe5bjYREc0zpoUL4fluCf7V2gfxi1/8QpMhg7KDfZ497FtKhkFIIiIiIiKasWw2G6qrq1FdXZ3W/QoKClBQUGB4W6qPbbPZxMrEVL366qsAYqlhJwsCmkymSfefbjuU7YnuhqayfDSVzayBpsGxm0lvr/nGWnicxfjRj/6aAUgiIsqJ/6N0HX53+xYmJiawbt26XDdnXmCfZw/7lpJhEJKIiIiIiChDenp6RKrX5557LtfNIcq6H/zNVfzgR1dz3Qzh9e8UJb3dVfwojjy1GX/zNz9CSUlJrptLRER3wfe++QjKH1uZ62YIa5cvxW9/8zE+/vhjPProo7luTlawz7OHfUuzDYOQRERERERE0yDLMq5cuYLz58+Lmo0OhwPFxcW5bhpR1t34+J/gH5/IdTOEjyP/bHjbc6Xr0L5jE/x+P9+fRETzxB/+8Adc+9vhXDdDI/jL+/HFL34RX/nKV3LdlKxgn2cP+5ZmIwYhiYiIiIiIpmHbtm2av+12O15++eVcN4uIVJq2fQ0vby/A8PAwvvWtb+W6OUREdJds3rw5102Yd9jn2cO+pdkotYrtREREREREc5zD4Zj2PlwuF1pbW2Eycb4n0Uzh/vYmvPLnG/C3gQC+8Y1v5Lo5RERERETzBn8ZExERERERAWhtbUVra2va9xsenlkpkYgoZuGCBXj9qW+gdvNqBAIB2O32XDeJiIiIiGheYRCSiIiIiIiIiOaUhQsWoMP5LVSvt+HnP/85Nm3alOsmERERERHNOwxCEhEREREREdGcYVq4EJ7vluBfrX0Qv/jFL5Cfn5/rJhERERERzUsMQhIRERERERHRnPF/lK7D727fwsTEBNatW5fr5hARERERzVsL7ty5cyfXjSAiIiIiIiKi2eX999/Hv/iTx3Dj43/KdVOEtcuX4p9v38LHH3+Mr3zlK7luDhERERHRvMYgJBERERERERGl7dKlS/jtb3+b62Zo3H///fjiF7+Ihx9+ONdNISIiIiKa9xiEJCIiIiIiIiIiIiIiIqKMWpjrBhARERERERERERERERHR3MIgJBERERERERERERERERFlFIOQRERERERERERERERERJRRDEISERERERERERERERERUUYxCElEREREREREREREREREGcUgJBERERERERERERERERFlFIOQRERERERERERERERERJRRDEISERERERERERERERERUUYxCElEREREREREREREREREGcUgJBERERERERERERERERFllCnXDSAiIiIiIiIiIkCWZUQiEQCAzWbLdXOIiIiIiKaFQUgiIiIiIiKiKQqFQhgbG8Pt27c110uShPvuu0/8bbFYYDabc93cOSsSiUCWZQCT93U0GsXExETa25rNZlgslqweR3t7O3w+HwBgeHj4rvYhEREREVGmMQhJRERERERENEWVlZUpb+t0OlFWVoaCgoJcN/uuUAKDy5cvh8mU3eGHGzduwOl0AgBcLhfq6uoMtx0aGkJDQ0NK246OjqK2thYA0NTUhOrq6rvci0RERDRbybKM9vZ2AMDOnTvnzXdAIjUGIYmIiIiIiIgyRJIkrFmzBsPDwwiHw5rbvF4vvF4vrFYrzp07N+dXRp46dQoejwddXV1ZTy0qSZK4fOHChaSBxfPnz6e87fvvvy8ul5SU3I1uIyKiHAoEAnjnnXcm3S4/Px9r165lUCmL2tvbRZaD1tbWpNseO3YM4+PjKW3b2dmJkZERAEBLS0tWv49FIhGR4YDfI2i+YhCSiIiIiIiIaJocDofhoFc0GsXQ0BBOnz4Nv9+PcDiMF154AW+++Waum51VH3zwwV19PKfTCa/Xi2AwiEgkYjioqAwGAkAwGIQsy4ZpVi9cuAAAsFqtrNFIRDQP3Lx5U3OeMKJsY7VasWfPHlRWVs75yUUA0NzcDGDyQF+mKP3c2NhoeK6ORqPweDzi7/r6+qTn7LfffhvhcBhWq3VePGdEucYgJBEREREREVEWmUwmFBcXY+PGjWIWvN/vRzQaTZqmNBQKictTCYDJsoxIJGJ438lun26b/H5/2m2d6rECQFFREbxeLwDg8uXLKC4uTtgmGAyKy3a7HX6/H1euXNHdNhKJiO23bduWkT7RE41G8emnn2Z0IFRp01TrWGajTUREs43L5cLKlSt1bzt58iSCwSDC4TDa2tpw9uxZnDp1Kuvpx3NJlmURFLwbQciysjJxXr906RLKy8t1txsdHdX8PTIykvS7j5Kpoqqq6q71HdF8Nnc/FYmIiIiIiIhmELPZLFbrAcDExETCIFkkEsELL7ygG8BzOBy6acN6enrQ0tICABgeHkZnZyfOnj2rCbg5nU40NDTAZDIl3C5JEp577jkUFRXpDp7Ksozm5mbdNtntdrS2tmoCXYWFhZpt1HUzh4eHxeVoNIojR46I/lCTJAnf//730wqgbdy4UVweGhrSDSxevnxZ9GV+fj78fv+k2wKxgdBU+8So7fHPU3t7O4aHhxEMBuF2uw0HV9WOHTsmVnvE17NM1qZUXzvt7e3o7e1FOBxOuU1ERHNVRUWFYTCrvLwcsizj2WefRTAYRDAYNDyfzBUfffTRXX28tWvXissDAwOG5yR16nQA6OrqMtz20qVL4vKmTZvu6vEQzVcMQhIRERERERHdJUuXLhWX4wNCoVAINTU1mlqSVqsVFosFwWAQPp8Pw8PD8Hq9hsG5zs5OtLW1ifsq+/J6vVi5ciVWrFghbpckSQycNjQ06KaUDQaDcDqdmvYUFhbi2rVrCAaD8Pv92LZtG7xer6Yu42QikQhqamo0gVLgs9WJwWAQ27Ztw/Hjx1Out2U2m8X9e3t70djYmLDN2bNnAcTqMint9Xq9utsODQ2Jy+vXr9f0STxPf9cAACtGSURBVH19vejb+D5Jpe2Dg4O6wddkOjs7DQOQ8W1S2pXOaycQCKTdJiKi+cxiseDgwYOora0FgKRBSOX8MDAwAOCz89CqVat0JwD19PQAiNWetNlsiEQiuHz5MoaGhrB+/fqE+8bfXlpamnQ1ezQaxejoKG7evKlpU15eHtavX69pUyQSQX9/v9hOr31qoVAIIyMjGB0dhSzLYr9r165Na4W9+rzu8/kMV18qqdObmprQ1taWNNuE+hjU5/Z0+8SoH0KhECYmJnDz5s2UJ/IMDg7i9u3bAIDNmzdrztPRaBTj4+PitWOxWHSf/6m2KRAI4ObNmwCA69evY+XKlQltIJouBiGJiIiIiIiI7oJoNIozZ84AiAXb4gd49u/fL4JI6iBTNBpFX18fWlpaEA6H8eyzzxoGi9ra2mC329HS0gKbzYZgMIiWlhYEg0FN8PHgwYMoKChAKBSC2+02HOBTVskBSAiqybIMp9OJcDiMlpYW0abh4WGEQiGxArKrqythgPLUqVMiAGm323H06FExkDY4OIhXXnkF4XAYBw4cQHd3d8rp7UpLS0Xdzfhaj+r0qvEDbKFQKKGNvb29on3qx1eeh8n65MCBA4Z1xRoaGiBJEp588kmsXbtWs9pDTyAQEM9ffAAyvk3xr513330XbW1tCIfDaG5uNqxF+uqrr8Jut6O0tDSlNhERkTaQJctywu1GGQ6U84NeRgHgs/Ovy+XCo48+ioaGhoR9O51ONDY2IhAIiEComsvlQk1NTcI51GjlvNKm+BX9sixrvg+o2+d2u8X50yjDgbp+5okTJ9JKXV5ZWSnaGQwGEyY8ybIszu2VlZWi3uP4+HjCttFoVLTF4XBo+iXdPtHrh5GREU0/pRKEHBwcFM+ty+XS3CdZhgMg8fuTXpsGBgbE9wd1m9TfD/VIkjTn0wvT3bMw1w0gIiIiIiIimutkWcaRI0dEoGjXrl2a2wOBgBgIig8ymUwmlJeX4/jx4wBiA0fqOoRqdrsdb775phjgkyQJTz/9tLjdarXC6/WKwJnNZsMzzzwjblfvV92mI0eOJKzqs1gs2Ldvn2hTIBBIqS8ikYhY0ac3gFZcXIwTJ04AAMLhsGZF4mSUmpuANuUa8Fl6VWWFIBAbhAS0KyOUflCeK3U6WXWfuN1u3T45dOiQaHuyPjlx4gSqq6tRUFCQdGWIenDZbrcnBCAne+1UV1fjyJEjAGJ1Oo1eO8FgEK+99lpKbSIiopiJiQlxOT8/X3NbNBrFjh07RBDJ6XTC7XbD7XaL84/f74fT6RR1keOdOXNGE6RyuVziNq/Xi2PHjolzhNPp1Nzu8XgS6iVGIhFs27ZNtMnlcuHIkSM4fvy4uK+yol9pk8Vigdvt1gT1lONQH/Pzzz8vApB2u11so2RUCIfDqKysNDwP6dm8ebO4rE6Trrhy5QqA2Pcds9ksajhfvHgxYdvx8XFxefv27dPqk3gDAwM4fPiw+DuV7BCBQEA8t/Hn90gkAqfTqfvasdvtAGKvnYqKCkSjUd39X79+XROAVNoUjUZRX1+PYDAIq9WKpqYmHD9+HEeOHBHPVTAYFN/FiKaLoWwiIiIiIiKiabp27ZpIf6U2MDAAWZY1s9itVqumfiEAXL16VVzevXu37mPE10aqrq5O2Ka0tDThury8PHFZGZxTW758ubg8MjIiAph9fX3i+qKiIt02qR/v/fffTyl1qnoQcf/+/bqz7G02m0gne/78+ZRrbKnvF18/SglmqvugpKQEPp8P/f39mv4cGRkRl9UDoOq6U3p9DWhXxfT19en2id1uTynIJ8uyJgB59OjRhG3Uz5PRa2fdunWaY9NbheJwOBh4JCJKU3d3t7j8xBNPaG7r6+vTXaUOxFakbd++HQ0NDQiHw+jq6tI9r4fDYdjtdrz22mviM7qqqkqcyzwejyYDAgDU1NSI83b8ufnUqVPicvxq/oKCAmzatEmcd06dOoW6ujqYzWaUl5djYGBATHrRS+upfNeJn2BUXl6OHTt2iLThHR0dhqlV41ksFnFejz9XA8D58+cBAFu3bgUQ+77i9Xpx4cKFhEk76u8f6vPiVPokns/ngyRJ6OjoMEyTGt9fyc7vp06dSvraUWo6h8Nh9PX16a669Hg8kCQJr7/+OpYvXy7aNDo6Kvbd0dGhCZgWFxdj/fr1aGlpgcfjwZYtW9JKt0+khyshiYiIiIiIiKZJSWsV/8/n84lBOavVCrfbje7u7oRgjzroJcsyQqFQwj9ZlmG1WhO2V4sPbgLaIKNeMNEoLZqSVi4+Hama+jjUKwySUeoeKZf1jjUUCmHNmjUAYgHedFRVVQGIDQiqVwco6VXVfaAEGJX6UYquri4AsVUD6tRryjFarVbDgJ3JZBLPk15qPgCa1adGlNSuynOgl3JN/RhWq9XwtaNeuRG/Kkaxc+fOtPqZiGi+ikajCAQC2Lt3r1jZH3++ACBWxumtYgdiAR9lReTbb79tuKKtpaVFc85RAnOKZ555RnMuN5lMYr9KvUSFOhOB3iSZgoICsdJO2TYV77zzjrisd76SJAl79uwBEDs/G60o1KOc1/1+v+Z+6vSqmzZtAvDZ96BgMJjwGEpd6PjnKlN98vTTT0OSpEkDkLIs48CBA+Ix9fpL3Sa91055eblo08mTJw0f67nnnoPNZtPsX6kBCWi/k6n33dXVhaGhIQYgKSO4EpKIiIiIiIhomqxWKwoLCxOuHx4eFrPNvV5vwgClQh1oU6f/TNd9992X9PbVq1envK/h4WEAMGyzwm63G9Yr0qNOfapXwyqeUb0iI5s2bRKDd0pNKHV6VfXqB/UKi9HRURQUFCAajYrjUVZWKJTnSe+5VissLITP5zMMoKoDw0aU2pJAbNWl0aCm8jwpae4mYxQYTaVNRETzSarnY0mS4Ha7NddFIhHNZ7gRZUV+OBzGxMSE7sQgveuU8wwA3Rq+q1atAqA9h6rToCY7NnUdRr2ayXqMai2qqSdK3bhxI+UA15YtW8R5/erVqyJQqJ78pPSB2WyGJEkIBoO4fPmyyKSgrgv95JNPZqVPkj3PCnXtaKMAZKptUupgB4NBRKNR3X7Xm5ymbmdtbW3C6k8AadXtJJoMg5BERERERERE01RYWKibWiwUCokBpPb29pTSjymrF5KJrzuVS0qQ0ii4lYzdbp80yJkudTrUy5cvQ5IksXJUXQ9SsW3bNni9XpGyTj2ouWXLlrvVjQmUwWsAaGtrw8aNGycdsJ1trx0iotlMkiQcPHhQd/Wc+px49uxZwwwGk507J/tcV2ohxlu5cuWk95vKbXrUKziHh4fR3Nw86bEGg8GUH0cJqALa9LJKetX4FOdbt25FMBjE0NCQCEKq097rBeYAbfr6dPsklTTrt27d0kwweu2113QDh5988om4fPLkyYS61Qr1RCe9ALZRmnWz2QyXyyUCu7W1tZAkCVu3bsWmTZuwfv36SVdzEqWDryYiIiIiIiKiLLHZbHA6nfB6vfD5fNi+fbtufcM1a9aIGfrxaddyRVllMdkAqbL6IdVgorLqQznWTM+2V9LQ+Xw+nD17FtXV1WIAT0npphZfP0pdM0o98Al89jwpqw+NKAODSkrZqbDb7WhtbRUDlvX19Th37lzCa0O9Gubll1/mwCERUYYcOXIkIYPAJ598IlJlA9qJL/HbKYLBYNqr+lPNMpDOeWZsbExcTpY5QX3b2NjYpOfpiYkJcTkcDotzUqaYTCbxXerMmTMiPamSXjV+BaKSEaG3txeNjY0AtDWd1QFFdZ8kywgwWZ+k8h2ora1N87d6Vaea+rUylddOKmpqavDAAw/g7bffRjgcFo/j8XhgtVpRVVWF3bt3z4jvozT78ZspERERERERURY1NDSgt7cX4XAYr7zyim4gSR3sSidFWTYpA2pKvUS94JZ69UN8wC4VIyMjWUn5tX37dvh8PlETKr5mlFp8/ShlUNPpdCYcs3KM4XA4aZ8oA4bTWeX55ptvAgA6OjpEIPKFF14Q1+tR0s8SEdH0rV69Wvcc5Xa70dLSgmAwiHfffRfV1dUJ26iDVi6XCxUVFZM+nvqckeksAUDylX7TuY+6rXa7HS0tLWndJxXKhKFwOAxZlnHvvfeKc238ykYlMKxsa7FYcObMGQDQBJCz2SdGlFqe4XAYBw4c0E3Vr95/qq+ddFOqm0wmVFdXo7q6WqSuPXv2LILBIMLhsFglqVePkihdC3PdACIiIiIiIqK5zGQy4cUXXwQQG3SKrxsFaINj6pV4atFoFD09PaL2T7YVFRWJy6Ojo7rbqK9/9NFHdbdRr5AAtOlAjVKMAcDg4CACgcCUjlVd9/HUqVPisl7dLKV+FAB0dXWJQU318SvUz1MqfaK3j3RJkoSmpiYAsYBwZ2en5vbt27eLy6m8doiIaHrKy8vFeaOtrU1Tw0/P+Pg4bDbbpP+yvepMHRg1Sg8bf9tktaYBaNp97dq1rByrOtB45coV3LhxQ/wdPwnKZDLBbrcDAC5dugRZlkUK1LKysrvSJ3rsdju6u7tx4sQJALHvhM3NzQnfc+IDiqn053SyIEiShOrqani9XvT29orrPR4PIpHIlPdLpGAQkoiIiIiIiCjLiouLRV0nn8+HwcFBze0FBQViQPPtt99GT09PwsDPSy+9hJaWFjidzoTAXjYUFRWJGfu1tbXo6enRDJTJsowDBw4AiM3sVwfc1IOLr776qma/NptN0xfHjh1LONbOzk40NDSgtrbWMNiXjMViEf2prH4wqpsFxOpHKX2v0KsZpX6eamtr0dnZmXKfTEd1dbUYUG1ra0MgENB9npTXTvyA5vPPPy9eO1Op3UlERFqvv/66uLx///6E29UrKDOdnnSq1MGtZOfW69evi8uprlhUzo3hcDgrgSv1hKGhoSFNPUi9AJySonVgYABXrlwR18dPRspmn8SrrKyEyWSCzWYTE9L8fr8ISurt/8KFCxnvy2QsFguOHz8u/lZP5CKaKgYhiYiIiIiIiO4CdXqyV155JWGQThmQCofDaGlpQUlJCY4dO4b29nZR4xAAjh8/rhncnE5asGRMJhMOHTqkaX9FRQU6OzvR3NwsUoQCsZSh6kFAi8UiAmPBYBB79+5Fc3OzCIA1NjaK2z0eD0pKStDe3i6OVamb5HK5dOslpeLJJ58U/Ql8FmjUo6xwVLZNFrA8ePCguNzW1mbYJy+++GJG6zO2traKPjtw4IDoS5PJhI6ODtH+lpYWFBUV4dixY2hubobD4RB1xY4fP56VFH9ERPONzWaDy+UCEDvP9fT0JGyjTLhRttGjnDviV7lng1IzGQC8Xq/uCs5oNCom7zgcDsNzYfx3mKefflpcNlqV39nZCYfDoTv5KBXKed3r9aK/vx9ALLCnR5lI5PP5cPr0aQCxgGX88WSyT9JRXl4uHtfj8WgmF5nNZnFbMBg0nDy0d+/etF87kUgETqcThYWFOHbsmO426sCsXhp7onQxCElERERERER0F5jNZk2gUQkcKSRJQm9vr6amn8fjETWQlLSc8UG5dOsApaOgoABer1dTw6itrQ0+n0+0qaurS7cOoTqA6ff74fP5xKCjxWLBuXPnNAO0Xq9XHKvVaoXL5ZpWLaL4lYxbtmwx3FapH6VQBjqN+qSrq8uwT6xWK7q6ulBcXKy5nzoN7VRYLBbRp/Ep3PSeB4/Ho3me3G73lAO6RESUqKamRpwLWlpaEoJF6slHTqcTzc3NIsgVCoXQ3t4u6hfrpQvPhvr6enG5srISzc3N4twcCoXw/PPPi8k06m0B7Xmsq6sLoVBIHHNZWZnoi4aGBuzdu1cE1mRZRk9PD9ra2sS+pxLIKykpEZeVyTVG51b1+VDZVlkdmck+mY6WlhbdyUXxj7Nt2za0t7cnvHb8fn/arx2z2SwCxh6PBz09PZrHDYVCYmWvJEn83kAZseDOnTt3ct0IIiIiIiIiotlIGRAym80przBTz7JXr2iM32ZiYgI3b95EXl4e1q5dazhgF41GRXrW5cuXJ6y+m+x2dZssFovh44RCIYyNjeH27dvIy8vD8uXLDduvkGVZs9pB7/GVWk3BYBCLFy/GunXrMrZaT93XRsc+lW2n0iepPA/q/kr22kjWznReO5FIRAw+pnrMRERzWU9PjwgednV1TXqeCwaDcDqdAGIr7d58803N7YFAAAcOHBBBLD16k26am5vh8/ngcDjQ2tqacJ/Jblcfx/DwsOFtRtxuN8rLyw2PVaF+/GAwiPr6+qTHqtdH6XA4HJr9xx+bXh8pent7Db9fTLVPnE4ngsGg4fMQCoXEas3J+lSSJJw6dUqci1NpU1NTE6qrqzXXFRYWJjw3k/WNnuPHjzMISRmx6N//+3//73PdCCIiIiIiIqLZaMmSJViyZElaM/qV+yxZsiTpNnl5eZAkCXl5ebjnnnsMt124cKHY38KFC9O+Xd2mZI+zZMkSPPTQQ6JNydqvMJvNmuPVe3yz2Yxly5ZBkiQ89NBDGUlzptfXRsc+lW2n0iepPA/q/ppqO9N57dxzzz1pHzMR0Vx2+/Zt/O53v4MkSSgtLZ30nLRs2TIsWLAADz74IMxmMx5++GEsW7ZM3J6Xl4e/+Iu/wKefforf/va3+NWvfgUgFnDauXMnnn32WVRUVCTs95e//CWWLFmC/Pz8hNX6qdyuPo74dOSSJOEv/uIv8Ktf/Qoff/yxmPxitVrxp3/6pzh8+DA2bNige6yPPfYY7ty5A0mSIEmS5vGXLVuG7373u7h9+zbuu+8+3LhxQzzeE088gdraWtTV1U3rfPO5z30OS5YsgSRJ+M53vqN77Aqr1Sr6QJIk3X6ebp/8/ve/T/o8KBOQJEnC5s2bE1LoL1u2DA899BDuueceLFu2DGazGQ899JDmNTIxMYEFCxaI147dbsdf/MVf4Nlnn0VZWVnCY3700UcJz0280tJSrF+/Hl/4whcSXpff+9738Pzzz+Oxxx6b8vNEpMaVkEREREREREREREREd0EkEsnohJvpUlJ7Z2M1/Ew71lRls09mYpuUoOtsfK5o5mMQkoiIiIiIiIiIiIiIiIgyirk2iIiIiIiIiIiIiIiIiCijGIQkIiIiIiIiIiIiIiIiooxiEJKIiIiIiIiIiIiIiIiIMopBSCIiIiIiIiIiIiIiIiLKKAYhiYiIiIiIiIiIiIiIiCijGIQkIiIiIiIiIiIiIiIiooxiEJKIiIiIiIiIiIiIiIiIMopBSCIiIiIiIiIiIiIiIiLKKFOuG0BERERERERENF2yLCMSicBsNsNiseS6OURERERE8x6DkEREREREREQ0o0QiEVy9ehU3b94EACxevBjr1q1LGlxsb2+Hz+eDw+FAa2trrg+BiIiIiGjeYxCSiIiIiIiIiHJOlmW89957OHv2LILBoO42kiTh6aefRnl5ea6bO+mxRCIR2Gy2XDeFiIhozuns7MTIyAgAcOIR0QzHICQRERERERER5ZQsy3A6nQiHw+I6SZKwZs0aDA8Pi+uDwSBaWlowMDCAl19+GSbTzBzW2LZtGwBgeHg4100hIiKasWRZxpUrVzA0NITe3l6Ew2E4HA5YLBbs2LEDkiTp3m9kZAQ+nw8Ag5BEM93M/LZORERERERERPNCfADS7XajrKxME2BUBilfeeUVhMPhGT3wKMtyrptAREQ0owUCARw4cEAz+UihnOO9Xi+sVisOHTqEgoKCXDfZUE9PDwYGBtDY2Mia1EQ6Fua6AURERERERERkLBQKiX9TEYlExP2j0WhG2iTLsthnJBKZ1n6UAKTVakVXVxfKy8sTVjhaLBYUFxejo6NDXOfz+abcJ9nsx48++ijlfUajUbHPqQYvI5FIxp5XIiKibAsEAqitrRUBSIfDAbfbDa/XC7fbDYfDIbYNh8Oora1FT09Prptt6OTJk/D5fNP6PkQ0l3ElJBEREREREdEMI8sympub4ff7E26z2+1obW1NmG3f09ODlpYWALE0oD09PTh58mRCfUW32z2lmorBYBDnzp0T6dLUHA7HlFYA/OAHPxD72rdv36Q1FCVJgtvtxsmTJ/Hkk0+m9HiFhYWTHrfRNtFoFH19fTh8+HDCMdvtdlRWVortQ6EQKisrU9pvKBTC/v37dWtfulwu1NTUJARim5ub4fP5YLfbcfToUbz00ksiVW1XVxfrTxIR0YynBCABwGq14sSJE5rzlyRJKC8vR2trK44dOwaPxwMAaGlpQWlpKcxmc64PQSMajRrWsSaiGAYhiYiIiIiIiGaQYDAIp9Mp/rZarSgsLMS1a9cQDAbh9/uxbds2eL1ew1pJgUBABCQlSdIMkLW0tGDz5s1pBQwjkQjq6+tFIM5qtWLNmjUiSOrz+TA8PIxz586lPEAYjUbh9XrF/srKylK6X3l5+ZSCqFOxe/duTd85HA7N8+D3+yFJkuHzoEc9AKuQJAmyLCMcDsPj8eCDDz7QDTQDgN/vR19fn0hXR0REs18kEsHly5dx48YNjIyMwGKxYP369YbnmEgkgv7+fgAQwTkldfn58+fF/ePTm6cjGo1iYmICIyMjGBgYAACUlJQgPz9/ShNfQqGQJgDZ3d2dtG11dXUYHx8X57uuri5UV1cnfQxlxWReXp5hCtfJtgmFQhgZGQEAXL9+HQ888ABKSkoSjrmnpwfXr18Xf3d3d2PlypW6+1Wemw8//BDj4+PIz8/HihUrsG7dOt1zvboN5eXliEQikGUZIyMjU+5/olxhEJKIiIiIiIhoBlGChwBw/PhxzUCWLMvYtm2b2E4J4sWrra2FJEk4ePAgCgoKxOBmQ0MDAOC9996bdCBPraOjQwQge3t7xYBZJBLBqVOn4PF4EA6HcerUKdTV1aW0z4mJCXG5qqpqyoOk2SLLsghANjU1aforEonghRdegN/vR319Pbq7u2Gz2TA8PCxWLAKxFalq0WgUBw4cEH+rn99oNIojR47A6/XC7/fjzJkzmr4sKSkR+21paYHdbkdpaSk2btyI5cuX57q7iIhoigYHB0XNYz1OpxMNDQ0JtZKV7wtdXV3iXBzv8OHDaU0QUqizK6gp5yGHw5F2Xebu7m5xed++fSmd919++WWUlJSkPHlKabPD4TAMQhptI8sy2tvbdSf5tLW1wWq1avoyvn+U/o/fr15fqh/jyJEjKC4u1tw+MjIi7lNWVoYdO3ZoamczCEmzCWtCEhEREREREc0Qg4ODIvAVH4AEYrUR3W43gNiKyUAgoLsfq9UKr9cr7m82m1FcXAyr1QoAOHv2bMptUmbfW61WuFwuzSCg2WxGTU2N+Ht8fDzl/Y6NjYnLK1euvOt9PZkzZ86Iy/FpVs1mM1577TW4XC7s27cPv/nNb1LaZ19fnxhEjH9+TSYTGhsb4XK5AMQGM43qS1mtVrz55puorq6GJEkzLoBLRESpCQQCaGhoELWRm5qaEmojer1evPTSS4b7cLvdIgDmcrngcrnE+V5J2Z2OSCSiyabQ1NSE48ePa7I0+Hy+tOs0Km1MJ/uByWRCeXl52unep0I9icjlcuHIkSM4fvy46M9wOIwXXnhB0+/q+pUulwtutxs7d+4U16kDkFarFW63G263G01NTWKbhoYGdHZ2GrbrpZde0gSo8/Lyst4XRJnEICQRERERERHRDDE0NCQur1+/Xneb0tJScfnq1au621RVVeler6yiDAaDhgGueGazGa2trfD5fLqrHE0mk0gVl06K0Nu3b4vL6aQzvVs2bdokLr/wwguIRqMJ/VJXV5fW4KiSzs5qtRqu0NiyZYu4fPnyZd1tjJ5fIiKaPaLRKF599VUAn00eUiaXKHURlYkpPp8PoVBIdz9+vx9NTU0YGBhAXV0d6urq0N3dDbvdDiC9iUcAxGQnADhx4gSqq6tRUFCAxsZGcR4DYqssUyXLsrhcWFg44ybPyLIsUsy73W7U1dWhuLgYBQUFqKurQ0dHh+hrJfhaXl6OkpISsY+KigqUl5drMhwofaQ8v0pK+erqagwMDIjn6O233074nqHw+XxoampCb28vhoeHDb8/EM1UDEISERERERERzRDKIJ3dbjccoFOnVFPqBcVTB9DU1IFN9YBgqiKRCEKhEHp6ejT/pkI9k18dkJwpCgoKRHDU7/dj9+7d6OnpmVK/KZQg7Zo1axAKhXT/qRn1C4OQRESz39DQkMh+8OKLL+pOaNm9e7e4fPr0acN9PfXUU5rvByaTCRs2bACQ3sQjANi+fTvcbjeOHz+ekMbVbDaL1X/hcNgwcBZP/firVq26W12cso8++khcvnXrVsLtkiSht7cXAwMDKdelHhoaEisYOzo6Ep5fs9mM/fv3A4j1pXoiWrynnnrqrqwGJcqGmTXlgIiIiIiIiGgeU2oITjbQZLfbxYx9PZmuERiJROB2u9Na6TgZdRtv3ryZ0fZmyuuvv46amhqEw2EEg0FNSrU9e/agsrIy7TpbQCyoGZ/iNR0ciCQimv3UE002btyou43ZbBbnfHUaczWHw6E7cenRRx8Vl2VZTvl8FV+fMJ46iDgxMZF2fcKZmIJdmXgUDAbR1taGtWvX6qbET4c6qGgUeFVfPzQ0pNv3Lpdrxq0cJUoHX71EREREREREM4S65k8qprMqL53HcDqdom2SJOHpp58GAOTn5wOIpS5LFhTVox60HB0dTXllwd1ks9ng8/kQCATQ19cHr9cLIPY8tbW1oa2tDW63O+22W61WFBYW5vrwiIgoh65fvy4uJwsQKsEvo/Ps9u3bda9fvXr1lNsWjUbR19eH0dFRjI2NpX2ONzqG+OOeSQ4ePIja2loAQG1tLaxWK7Zt24aioiIUFRWlHQhUf0dLVtNTqTdp9J1OnaadaDZiEJKIiIiIiIhohnA4HCmtNlQGA6ezIi7V1ZJXrlwRAUijgNtU26GsOujt7UVDQ0PKA3yDg4NYt25dRlYEGtXYUisoKBD1sEKhEE6fPi0CkidPnkw7CGmxWNDa2jrtthMR0ew1Pj6ekf1MJ9ioJxgMor6+Pu2JUcmog6yZOu5MKygowJEjR/DGG28gGAwiHA7D6/WK873L5UJVVVXK3z2U7BZAejWz491333257hqiaWEQkoiIiIiIiGiGUAa2fD4fXn75Zd2gnLr+0nTqKqUa8Dt//ry4XFZWptse9UBbOp5++mm0tLQgHA7jxIkTqKurm/Q+PT09Ii3qkSNHJk0bpzBabTkwMJBWm202GxobGyHLMnw+H4LBIAKBQELaNj1KSj2lPtdUUrkSERGpffLJJxnbVyQSgdPpFH+73W5s3rxZE3hTn4fToUy0Gh4eRjQanZEpRouLi1FcXAxZlvHee++hv79fTPzyeDy4cOGCCEpOprCwUAQfu7q6Jt2e3wlorlqY6wYQERERERERUUxRUZG4PDo6qruN+np1vadsuXbtGoBYujC9AcO+vr4pr5YoKyuDJEkAYoN7g4ODSbcPhUJi4FOSJE1/GbHb7QBgGCg9e/ZswnXRaBQ9PT04duyY4UpJ9QDs+++/r7uNOmAMABs2bBCXr169qnsfWZbR09OT0gpNIiKavUpKSsTl+POFHqvVqnt9MBjMWJvU56YjR46gvLw8YeXfrVu3prRvJYV7OBxGX19fyvfbu3cvmpubEYlEpn18qaaxt1gsqK6uxptvvone3l7R98FgcEr9bTabYbPZkv5jvWeaqxiEJCIiIiIiIpohioqKxEBXbW0tenp6NAOTsizjwIEDAFIPwk2XUv8xHA5rBt5CoRCOHTuWsBoinTqVJpMJBw8eFH83NDSgvb1dE4CLRqMIBAJob29HZWUlgNhA7Pe///2UVlGUlpYCSBw4jEQiOHbsmO5goslkQldXFzweD2pqanQHPjs6OsTl3bt3i8vKICuAhEFW9XavvvpqwvMbjUbx7LPPoqWlxfBxiYhobli8eLG4bDTxCPhsEs3dqCWsPm9t3Lgx4fZoNIq33357SvuurKwU33EOHz6cUuD12LFj8Pv98Pl8Ka0mVCYeGaU/vXLlStrttlgsmtWP586dS+l+6u8DU3lcormCQUgiIiIiIiKiGcJkMuHQoUPi75aWFlRUVKCzsxPNzc1wOp2a+ox3I5WZEsQDAKfTifb2djQ3N6OyshIejwd2ux29vb1im2effRbt7e0p71+pwaQMTHq9XlRWVqKwsBB79+5FUVERamtrNQOAHR0dKa8YeOKJJzTtdzqd2Lt3L0pKSuDxeNDU1KR7v9deew1WqxXhcBglJSXYu3cvOjs7cezYMezdu1e0x+12a1KoqQdtDx8+jObmZnR2dgKIrYRQHi8YDCY8v0VFRSIo6vV6mZqNiGgOU08keuutt3SDcoODg+K8r145mS3r168Xl2/cuKG5LRqN4sSJE1POfmA2m7Fv3z4AsYlNu3fvNpy4FI1GMTg4CI/HAyAWXHzqqacmfQxlshKQOCkqGo3i9OnTuvdrbm5GYWEhmpubdW+/9957xfeUpUuX6m4zMTGh+Vv9fJ0/f173+Q2FQigsLEyYgEU0lzAISURERERERDSDFBQUwOv1isGucDiMtrY2+Hw+hMNhSJKErq4ukcY028xmM9xut3g8r9crVhg4nU4cPXoUFosFLpcLQCy4lmq9JEVxcTHOnTsnVjAolDpMCofDkfaxq9umtE/Zb1NTE6qrqw2Pu6OjQzyW3+9HW1sbPB4P/H4/rFYrnE5nQp3MVatWieMIh8Pw+XwYGRkRt1dXVxs+v0BsoPX48eNMy0ZENMeZTCZxfvL7/aioqBAr5JUgXENDA4BY9gO9usaZpp54dOLECciyLFKUV1RUwOPxwOFwiG26u7tTWtGoKCsrE+fIYDCIbdu2ob29XaQhVzIfFBUViWO3Wq04evRoShOvNm/eLC43NzcjEAggEomI9sd/r1DU1NQAiK2gjA8IyrKMjo4OEXxVZzVQfx959dVXEQqFxH1tNpvoK5/Pp3l+I5EIAoGAeNyxsTEsX75c7Eu9ipJotltw586dO7luBBERERERERElCoVCGBsbw+3bt5GXl4fly5fDZrPpbhuJRMSs/+XLl+sO1qm3MdpPMrIs49KlS5AkCatWrUr6GFPZv/q4JyYmcPPmTQCxwTiz2Zw0MCfLMiKRiOF2sizjypUruH37dkL7lQFDi8Wiu/owGo1ifHwcwWAQt27dQklJyaTHpx7ANGqT+vlN1qeZeO6IiGjmiUajeOmllwzThwKxIJzX69WcR0KhkFj153a7dQOU6m26urpSPnfs3bvXMFjncrlQV1eH5uZmTZvT2T8AdHZ2oq2tbdLt9I4dgObx42s+O51Ow7qNx48fxzvvvAOfzweHw4HW1ta02hTf19FoVDc1vtKmaDSK559/3rA/jY5xqs8d0UzEICQRERERERERERERUY709PRgYGBAE9iz2+3YsGEDampqEiaoyLIsUp/v3LkTBQUFCftUb9PY2JjyCvtoNIrR0VG89dZbYuX/tm3bUFZWJh4nFAppaiOns39FKBTCwMAARkZGEoKwDocDO3fuxPr163Un53R2doosA+pAIhCbtON2uzX7dDqdKCoqQnFxsbhvfn5+QjaEwcFBfPjhh7hw4YIIZEqShK1bt2LTpk267VH3syK+TXrPr8PhQElJCUpLSxMmQE31uSOaiRiEJCIiIiIiIiIiIiKaAZRV/TPB3WxLJBLBPffck9F619NpfzQaxW9+85uMBwBn0vNLdDcwCElEREREREREREREREREGbUw1w0gIiIiIiIiIiIiIiIiormFQUgiIiIiIiIiIiIiIiIiyigGIYmIiIiIiIiIiIiIiIgooxiEJCIiIiIiIiIiIiIiIqKMYhCSiIiIiIiIiIiIiIiIiDKKQUgiIiIiIiIiIiIiIiIiyigGIYmIiIiIiIiIiIiIiIgooxiEJCIiIiIiIiIiIiIiIqKMYhCSiIiIiIiIiIiIiIiIiDKKQUgiIiIiIiIiIiIiIiIiyigGIYmIiIiIiIiIiIiIiIgooxiEJCIiIiIiIiIiIiIiIqKMYhCSiIiIiIiIiIiIiIiIiDKKQUgiIiIiIiIiIiIiIiIiyigGIYmIiIiIiIiIiIiIiIgooxiEJCIiIiIiIiIiIiIiIqKMYhCSiIiIiIiIiIiIiIiIiDKKQUgiIiIiIiIiIiIiIiIiyigGIYmIiIiIiIiIiIiIiIgooxiEJCIiIiIiIiIiIiIiIqKMYhCSiIiIiIiIiIiIiIiIiDKKQUgiIiIiIiIiIiIiIiIiyigGIYmIiIiIiIiIiIiIiIgooxiEJCIiIiIiIiIiIiIiIqKMYhCSiIiIiIiIiIiIiIiIiDKKQUgiIiIiIiIiIiIiIiIiyigGIYmIiIiIiIiIiIiIiIgooxiEJCIiIiIiIiIiIiIiIqKMYhCSiIiIiIiIiIiIiIiIiDKKQUgiIiIiIiIiIiIiIiIiyigGIYmIiIiIiIiIiIiIiIgooxiEJCIiIiIiIiIiIiIiIqKMYhCSiIiIiIiIiIiIiIiIiDKKQUgiIiIiIiIiIiIiIiIiyigGIYmIiIiIiIiIiIiIiIgooxiEJCIiIiIiIiIiIiIiIqKMYhCSiIiIiIiIiIiIiIiIiDKKQUgiIiIiIiIiIiIiIiIiyigGIYmIiIiIiIiIiIiIiIgooxiEJCIiIiIiIiIiIiIiIqKMYhCSiIiIiIiIiIiIiIiIiDKKQUj6/7dnxwIAAAAAg/ytJ7GzNAIAAAAAAICVhAQAAAAAAABWEhIAAAAAAABYSUgAAAAAAABgJSEBAAAAAACAlYQEAAAAAAAAVhISAAAAAAAAWAXyRxBXC6TNbAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0xMS0yNlQwMTowNjo0NSswMDowMOfA160AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMTEtMjZUMDE6MDY6NDUrMDA6MDCWnW8RAAAAAElFTkSuQmCC" + } + }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![WorkQueue%20Tutorial%20Diagram%20%282%29.png](attachment:WorkQueue%20Tutorial%20Diagram%20%282%29.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1. Local Master and Worker\n", + "\n", + "Our basic example we just completed used this method. We started up our Master on our local computer, then opened up a terminal also on our local computer, in order to submit a Worker that connected to our Master, all locally. But, wouldn't it be nice if we could submit the Worker from our Jupyter Notebook instead of needing to open up a terminal? We can do this, but it requires submitting our Worker before beginning the while loop that waits for the queue to be empty. The Worker has to be ready to go, so that it can immediately begin accepting tasks when the Master calls `q.wait()`.\n", + "\n", + "The reason? When a cell in a Jupyter Notebook is run, it is executed line-by-line, and it blocks out all other cells from executing until the first cell has completed its execution entirely. So, if you try to run a while loop waiting for the queue to be empty, but you don't yet have any Workers to do the tasks, then that cell will run forever, which prevents you from creating Workers in another cell.\n", + "\n", + "Alternatively, one could absolutely use a separate Jupyter Notebook to submit Workers, and this will work no matter what you are doing in your Master Notebook. It is highly encouraged to use this approach in your actual applications, so that you can have full autonomy over your Workers; you can create them on demand and kill them on demand no matter what is executing in your Master Notebook. In this tutorial, though, we will do everything here for the sake of keeping everything in one document.\n", + "\n", + "WorkQueue provides no actual function to submit a Worker, but we can open up a process (i.e. run something from the command line) within Python using the `popen` (stands for \"process open\") function in the `os` library, which we've already imported. So let's try it!\n", + "\n", + "We will use the `tr` utility for the remainder of the tutorial (instead of `rev`), which translates text in a way that the user defines. Our first application of it will be to make everything in the files uppercase.\n", + "\n", + "First, run the following code to find the path to `tr`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Find path to tr\n", + "import os\n", + "tr_path = \"/bin/tr\"\n", + "if not os.path.exists(tr_path):\n", + " rev_path = \"/usr/bin/tr\"\n", + " if not os.path.exists(tr_path):\n", + " print('Cannot find tr. Please modify tr_path \\\n", + " according to where it is installed in your system. \\\n", + " This can be determined by running \"which tr\".')\n", + "\n", + "print(tr_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's define our input and output files, then submit our tasks." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Identify infiles and outfiles\n", + "infiles = ['file0.txt', 'file1.txt', 'file2.txt']\n", + "outfiles = ['file0.txt.capitalized', 'file1.txt.capitalized', 'file2.txt.capitalized']\n", + "\n", + "# Submit tasks\n", + "for i in range(3):\n", + " infile = infiles[i]\n", + " outfile = outfiles[i]\n", + " \n", + " # Create a task by passing its constructor the command\n", + " cmd = './tr \"[a-z]\" \"[A-Z]\" < {} > {}'.format(infile, outfile)\n", + " t = wq.Task(cmd)\n", + " \n", + " # Specify input and output files for this task\n", + " t.specify_file(tr_path, \"tr\", wq.WORK_QUEUE_INPUT, cache=True)\n", + " t.specify_file(infile, infile, wq.WORK_QUEUE_INPUT, cache=False)\n", + " t.specify_file(outfile, outfile, wq.WORK_QUEUE_OUTPUT, cache=False)\n", + " \n", + " # Submit the task to the task queue\n", + " task_id = q.submit(t)\n", + " print(\"Submitted task {}: {}\".format(task_id, t.command))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before we begin the process of waiting for tasks to complete, we will submit a worker using `os.popen()`. Remeber, we *must* do this first to avoid the drawbacks outlined above." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "os.popen('work_queue_worker localhost {}'.format(port))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you obtain an output that looks something like ``, then your command was executed properly.\n", + "\n", + "Now that you've created a Worker on the local machine, let's begin waiting for our tasks to complete! This should execute immediately, since we have already submitted the Worker." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "while not q.empty():\n", + " t = q.wait(5)\n", + " if t:\n", + " print(\"task (id# {}) complete: {} (return code {})\".format(t.id, t.command, t.return_status))\n", + "\n", + "print(\"all tasks complete!\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And finally, let's observe our results." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "files = [open(\"file{}.txt.capitalized\".format(i)) for i in range(3)]\n", + "for f in files:\n", + " for line in f:\n", + " print(line)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Congrats! Now you know how to submit a Worker from the Jupyter Notebook itself. But, as you might have noticed, that Worker is still running in the background, waiting for more tasks to complete. WorkQueue Workers will automatically terminate after 15 minutes of being idle, and you can set this timeout to something else by passing the `-t [time]` option to `work_queue_worker` (for example, run `work_queue_worker -t 60` to set the timeout to 1 minute). However, you might want to kill these processes immediately. The simplest way to achieve this is by running `killall work_queue_worker` at the command line. You can use `os.popen()` to do this from the Jupyter Notebook. Try it out below." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "os.popen('killall work_queue_worker')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2. Master on a Remote Head Node, Worker on the Same Node\n", + "\n", + "Now that we're experts on running a Master and a Worker locally, let's look at doing this on a remote machine. For this part, you will need to have access to some other computer via SSH. Before continuing, make sure that you know your credentials for accessing your remote computer through SSH.\n", + "\n", + "In order to keep using Jupyter Notebook on your local computer while doing your processing on a remote machine, we need to set up an SSH tunnel. You don't really need to worry about what this means or how it works, but if you're curious, check this out. Otherwise, just follow these steps:\n", + "\n", + "
    \n", + " ☞ REMOTE NOTEBOOK STEPS
    \n", + "
      \n", + "
    1. Open up a terminal on your local computer.
    2. \n", + "
    3. Run this command: ssh -L 8001:localhost:8001 <REMOTE_USER>@<REMOTE_MACHINENAME> (replace <REMOTE_USER> with your username and <REMOTE_MACHINENAME> with the name of the remote machine).\n", + "
        \n", + "
      • Here, we are using port 8001 for the tunnel. If this port is already in use on either your local computer or remote machine, just use a different port. I recommend choosing something in the 8000s for this functionality.
      • \n", + "
      \n", + "
    4. \n", + "
    5. Once you've entered your credentials, your terminal should now have you in your remote machine. Navigate to the directory you want to use for WorkQueue applications.
    6. \n", + "
    7. Now it's install time (skip this step if you already have everything installed and downloaded). Either download this tutorial into your chosen directory, just like you did when you downloaded the tutorial locally, or use sftp to transfer the file you were working on locally into this remote folder. If you haven't installed WorkQueue yet on your remote machine, install it here, too. You will also need to make sure Jupyter is installed. That's three things you need to make sure are installed correctly, again, just on your remote machine this time.\n", + "
        \n", + "
      • If you need a refresher on how to install WorkQueue again with all the necessary components, please revisit the instructions you followed right before beginning this tutorial. If you need any additional help, click here.
      • \n", + "
      • Jupyter can usually be installed by running pip install jupyter, but it should already be available for you if you are using an Anaconda/miniconda environment. If it's not, then run conda install jupyterlab
      • \n", + "
      • Again, this tutorial notebook can be downloaded here, or you can run wgetLOCATION/OF/NOTEBOOK
      • \n", + "
      \n", + "
    8. \n", + "
    9. Run this command: jupyter notebook --no-browser --port=8001. If you used a different port in your first command, replace 8001 with your port.
    10. \n", + "
    11. Finally, copy and paste the URL produced into your browser (the one that looks like http://localhost:8001/?token=abcdef...). You should see your remote directory tree pop up. Open your tutorial, and scroll on back down to this cell. You might want to select this cell, then go to the \"Cell\" tab above, and click \"Run All Above\" to redefine your variables, reimport libraries, and recreate all the files you have already created. Alternatively, this would be a good time just to go back through the tutorial to refresh yourself, if you have any confusion so far.\n", + "
    \n", + "
    \n", + "\n", + "Once you're all set up to work in your Jupyter Notebook connected to the remote machine, we can continue.\n", + "\n", + "In this example, we will use `tr` to put each word on its own line. Again, begin by defining your input and output files, and submitting your tasks to the task queue." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Identify infiles and outfiles\n", + "infiles = ['file0.txt', 'file1.txt', 'file2.txt']\n", + "outfiles = ['file0.txt.newlines', 'file1.txt.newlines', 'file2.txt.newlines']\n", + "\n", + "# Submit tasks\n", + "for i in range(3):\n", + " infile = infiles[i]\n", + " outfile = outfiles[i]\n", + " \n", + " # Create a task by passing its constructor the command\n", + " cmd = './tr \" \" \"\\n\" < {} > {}'.format(infile, outfile)\n", + " t = wq.Task(cmd)\n", + " \n", + " # Specify input and output files for this task\n", + " t.specify_file(tr_path, \"tr\", wq.WORK_QUEUE_INPUT, cache=True)\n", + " t.specify_file(infile, infile, wq.WORK_QUEUE_INPUT, cache=False)\n", + " t.specify_file(outfile, outfile, wq.WORK_QUEUE_OUTPUT, cache=False)\n", + " \n", + " # Submit the task to the task queue\n", + " task_id = q.submit(t)\n", + " print(\"Submitted task {}: {}\".format(task_id, t.command))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now start a worker..." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "os.popen('work_queue_worker localhost {}'.format(port))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now wait for tasks to complete..." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "while not q.empty():\n", + " t = q.wait(5)\n", + " if t:\n", + " print(\"task (id# {}) complete: {} (return code {})\".format(t.id, t.command, t.return_status))\n", + "\n", + "print(\"all tasks complete!\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now observe your results..." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "files = [open(\"file{}.txt.newlines\".format(i)) for i in range(3)]\n", + "for f in files:\n", + " for line in f:\n", + " print(line)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now kill your Worker..." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "os.popen('killall work_queue_worker')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great work! Now, we will get our Worker to run on a machine that's different from the Master." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 3. Master on a Remote Head Node, One Worker on a Remote Machine\n", + "\n", + "Now that we have the hang of submitting a Worker to the same computer as your Master (whether that computer is your local computer or your remote computer), let's learn how to submit a Worker to a separate machine from your Master. There are two ways to go about this. The first way is to use `ssh` to log in to another computer that also has WorkQueue then execute `work_queue_worker 9123`, where `` is the node that is hosting the Master Notebook. The second way to do this is by submitting a Worker to a cluster. There are 6 common clusters that WorkQueue currently supports, and the command line utility to submit Workers to them are as follows:\n", + "\n", + "- HTCondor: `condor_submit_workers`\n", + "- SGE: `sge_submit_workers`\n", + "- PBS: `pbs_submit_workers`\n", + "- Torque: `torque_submit_workers`\n", + "- Slurm: `slurm_submit_workers`\n", + "- ec2: `ec2_submit_workers`\n", + "\n", + "
    \n", + " ☞ CLUSTER USAGE
    \n", + "

    You must have special access to a cluster in order to use it. Talk to your network administrator to find out which clusters are available to you.\n", + "

    \n", + "
    \n", + "\n", + "The way to invoke these cluster utilities is as follows:\n", + "\n", + "`_submit_workers `\n", + "\n", + "Let's try submitting one Worker to a cluster in order to remove the spaces from our file. But first, let's define variables for the `cluster` and `machine_name` that work for you." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Assign your cluster \"condor\", \"sge\", \"pbs\", \"torque\", \"slurm\", or \"ec2\"\n", + "cluster = \"condor\"\n", + "\n", + "# Assign your machine name\n", + "machine_name = \"REMOTE.MACHINE.NAME\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Identify infiles and outfiles\n", + "infiles = ['file0.txt', 'file1.txt', 'file2.txt']\n", + "outfiles = ['file0.txt.chained', 'file1.txt.chained', 'file2.txt.chained']\n", + "\n", + "# Submit tasks\n", + "for i in range(3):\n", + " infile = infiles[i]\n", + " outfile = outfiles[i]\n", + " \n", + " # Create a task by passing its constructor the command\n", + " cmd = './tr -d \" \" < {} > {}'.format(infile, outfile)\n", + " t = wq.Task(cmd)\n", + " \n", + " # Specify input and output files for this task\n", + " t.specify_file(tr_path, \"tr\", wq.WORK_QUEUE_INPUT, cache=True)\n", + " t.specify_file(infile, infile, wq.WORK_QUEUE_INPUT, cache=False)\n", + " t.specify_file(outfile, outfile, wq.WORK_QUEUE_OUTPUT, cache=False)\n", + " \n", + " # Submit the task to the task queue\n", + " task_id = q.submit(t)\n", + " print(\"Submitted task {}: {}\".format(task_id, t.command))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that, below, we are using your cluster to submit 1 worker to your machine on the port that you are using." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "os.popen('{}_submit_workers {} {} 1'.format(cluster, machine_name, port))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "while not q.empty():\n", + " t = q.wait(5)\n", + " if t:\n", + " print(\"task (id# {}) complete: {} (return code {})\".format(t.id, t.command, t.return_status))\n", + "\n", + "print(\"all tasks complete!\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "files = [open(\"file{}.txt.chained\".format(i)) for i in range(3)]\n", + "for f in files:\n", + " for line in f:\n", + " print(line)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Awesome! Cleaning up Workers on a cluster involves invoking the command specific to that cluster to remove its processes. For example, Slurm uses `scancel` and HTCondor uses `condor_rm`. You can use `os.popen()` to kill your Workers using these commands, too. In this tutorial, we will just let our cluster Workers time out (default is 15 minutes)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 4. Master on a Remote Head Node, Multiple Workers on a Cluster\n", + "\n", + "We have just seen how to submit one Worker to a cluster. Now, let's try submitting multiple Workers. We will use the same command, but we have to change the number of Workers we want to submit. This time, let's use `tr` to replace vowels with special characters in our files.\n", + "\n", + "We will submit 10 Workers to our cluster. We can observe the benefit of using a cluster by looking at how long it takes to execute the commands. Adding a `sleep 5` to our commands (before `tr`) forces the processes to take five seconds to complete.\n", + "\n", + "When we actually wait for our Workers to complete the tasks, we will use the `time` library to see how long it takes for all of our tasks to complete. If we were running all three tasks on one machine, it would take 15 seconds for them to complete. Let's see what happens on the cluster..." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Identify infiles and outfiles\n", + "infiles = ['file0.txt', 'file1.txt', 'file2.txt']\n", + "outfiles = ['file0.txt.special', 'file1.txt.special', 'file2.txt.special']\n", + "\n", + "# Submit tasks\n", + "for i in range(3):\n", + " infile = infiles[i]\n", + " outfile = outfiles[i]\n", + " \n", + " # Create a task by passing its constructor the command\n", + " cmd = 'sleep 5 && ./tr \"aeiou\" \"@310-\" < {} > {}'.format(infile, outfile)\n", + " t = wq.Task(cmd)\n", + " \n", + " # Specify input and output files for this task\n", + " t.specify_file(tr_path, \"tr\", wq.WORK_QUEUE_INPUT, cache=True)\n", + " t.specify_file(infile, infile, wq.WORK_QUEUE_INPUT, cache=False)\n", + " t.specify_file(outfile, outfile, wq.WORK_QUEUE_OUTPUT, cache=False)\n", + " \n", + " # Submit the task to the task queue\n", + " task_id = q.submit(t)\n", + " print(\"Submitted task {}: {}\".format(task_id, t.command))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "os.popen('{}_submit_workers {} {} 10'.format(cluster, machine_name, port))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "\n", + "start = time.time()\n", + "\n", + "while not q.empty():\n", + " t = q.wait(5)\n", + " if t:\n", + " print(\"task (id# {}) complete: {} (return code {})\".format(t.id, t.command, t.return_status))\n", + "\n", + "end = time.time()\n", + "elapsed = end - start\n", + "\n", + "print(\"all tasks complete in {:.2f} seconds!\".format(elapsed))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "files = [open(\"file{}.txt.special\".format(i)) for i in range(3)]\n", + "for f in files:\n", + " for line in f:\n", + " print(line)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If everything worked properly, you should see that all the tasks were completed in just over 5 seconds. This indicates that three separate Workers on the cluster must have picked up the three tasks that the Master submitted to its queue. If only one machine was running these tasks sequentially, it would have taken 15 seconds. This is the power of distributed computing! You can perform multiple tasks at the same time, dramatically reducing the time needed for your processing, and it's easy to implement with WorkQueue.\n", + "\n", + "With this milestone, you have officially earned the rank of Distributed Computing Magician. Good for you! Here is your certificate." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Parsl and Coffea\n", + "\n", + "If you like to use Parsl and Coffea, and you would like to know how to incorporate WorkQueue with these applications, read on!\n", + "\n", + "### Parsl\n", + "\n", + "Parsl is a Python library developed at the University of Chicago that enables users to easily write Python applications that run in parallel through a variety of computational backends, including Work Queue. Users write Python functions, called 'apps', which can be connected together to build large, parallel workflows for your application. Parsl handles all input and output data dependencies between the different tasks within the workflow, allowing the user to benefit from drastically increased throughput without having to worry the intricacies of transferring data. \n", + "\n", + "Currently, Using Parsl with Work Queue is only available on Linux host machines. To install Parsl, run the following command at the terminal: `pip3 install parsl`\n", + "\n", + "Creating a Parsl workflow with Work Queue as an execution backend is straightforward. First, we need to import the Parsl library and the appropriate configuration files for both Parsl and Work Queue:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import parsl\n", + "import os \n", + "from parsl.app.app import python_app\n", + "from parsl.configs.wqex_local import config" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And load the configuration file to let Parsl know we want to use Work Queue as the execution backend:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "parsl.load(config)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To specify what Python code is run within the Parsl program, we write a 'Python app', a 'pure' Python function that can be remotely executed. To write a Python app, we decorate the function with `@python_app`. Let's write an example Parsl workflow that returns the square of a number ten times, done in parallel. First, we create the Python app that will be executed by a Work Queue worker:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "@python_app\n", + "def square(a):\n", + " return a * a" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The easiest way to run Parsl apps in parallel is via looping. Within the loop, we first make a call to the Python app to submit the function to execute within Work Queue, and later call the Python app's `result()` method, which waits for execution to complete and returns its result. Here, we iterate through numbers 0 through 9 to find the square of each number, in parallel, and then wait for the result of the execution:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "squares = []\n", + "for i in range(10):\n", + " squares.append(square(i))\n", + " \n", + "outputs = [i.result() for i in squares]\n", + "print(outputs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we can use a cluster to submit 10 Work Queue workers to our Parsl application, which will execute the tasks and return the results:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "os.popen('{}_submit_workers {} {} 10'.format(cluster, machine_name, port))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice how the original for loop simply submits the function to be executed by Work Queue, but does not wait for it's result before submitting the next task. Thus, all 10 instances of the Parsl app are submitted in parallel to Work Queue, and we use the output list to obtain their results as they complete. Using Parsl, we can easily build large Python workflows that can run concurrently using the power of Work Queue's distributed framework, drastically increasing throughput for your application!\n", + "\n", + "This is merely an introduction to the Parsl library using Work Queue as its execution environment. To learn more about the power of Parsl, including how to specify input dependencies, run command line programs (`@bash_apps`), and link apps with each other, please refer to the [Parsl tutorial](https://parsl.readthedocs.io/en/stable/parsl-introduction.html)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## License\n", + "\n", + "Work Queue is Copyright (C) 2016- The University of Notre Dame. All rights reserved. This software is distributed under the GNU General Public License. See the file COPYING for details. " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff -Nru cctools-7.0.22/doc/network.html cctools-7.1.2/doc/network.html --- cctools-7.0.22/doc/network.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/network.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - -CCTools Network Options - - -
    -

    CCTools Network Options

    - -When working in a cloud or HPC environment, you may find complex -network conditions such as multiple network interfaces, firewalls, -and other conditions. The following environment variables can be -used to shape the network behavior of -Makeflow, Work Queue, Parrot, Chirp, and other tools, -so as to work correctly in these environments. - -

    IPV6 Support

    - -IPV6 is supported by all of the CCTools components, however it is not turned -on by default because IPV6 is not reliably deployed at all sites. You can -enable IPV6 support with the CCTOOLS_IP_MODE environment variable. -

    -To enable both IPV4 and IPV6 support according to the local system configuration: (recommended use) -

    -export CCTOOLS_IP_MODE=AUTO
    -
    - -To enable only IPV4 support: (the default) -
    -export CCTOOLS_IP_MODE=IPV4
    -
    - -To enable only IPV6 support: (not recommended; use only for testing IPV6) -
    -export CCTOOLS_IP_MODE=IPV6
    -
    - -Where it is necessary to combine an address and port together into a single string, an IPV4 combination looks like this: -
    -192.168.0.1:9094
    -
    - -But an IPV6 combination looks like this: -
    -[1234::abcd]:9094
    -
    - -

    TCP Port Ranges

    - -When creating a listening TCP port, the CCTools will, by default, pick any -port available on the machine. However, some computing sites set up firewall -rules that only permit connections within certain port ranges. To accommodate -this, set the TCP_LOW_PORT and TCP_HIGH_PORT environment variables, -and the CCTools will only use ports within that range. -

    -For example, if your site firewall only allows ports 8000-9000, do this: - -

    -export TCP_LOW_PORT=8000
    -export TCP_HIGH_PORT=9000
    -
    - -

    TCP Window Size

    - -The performance of TCP connections over wide area links can be significantly -affected by the "window size" used within the kernel. Ideally, the window size -is set to the product of the network bandwidth and latency, and is managed -automatically by the kernel. In certain cases, you may wish to set it manually -with the TCP_WINDOW_SIZE environment variable, which gives the window -size in bytes. -

    -For example, to se the window size to 1MB: -

    -export TCP_WINDOW_SIZE=1048576
    -
    - -

    HTTP Proxies

    - -if your computing site requires all HTTP requests to be routed through a proxy, -specify that proxy with the HTTP_PROXY environment variable. -The value should be a semi-colon separated list of proxy URLs, in order -of preference. The final entry may be DIRECT indicating that -a direct connection should be attempted if all proxy connections fail. -

    -For example: -

    -export HTTP_PROXY=http://proxy01.nd.edu:3128;http://proxy02.nd.edu:3129;DIRECT
    -
    - -
    - - diff -Nru cctools-7.0.22/doc/parrot.html cctools-7.1.2/doc/parrot.html --- cctools-7.0.22/doc/parrot.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/parrot.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,793 +0,0 @@ - - - - - - -Parrot User's Manual - - - - -
    -

    Parrot User's Manual

    - -

    Last edited: October 2011

    - -

    Parrot is Copyright (C) 2003-2004 Douglas Thain and Copyright (C) 2005- The University of Notre Dame.
    -All rights reserved.
    -This software is distributed under the GNU General Public License.
    -See the file COPYING for details.

    - - - -

    Overview

    - -

    -Parrot is a tool for attaching old programs to new storage systems. Parrot makes a remote storage system appear as a file system to a legacy application. Parrot does not require any special privileges, any recompiling, or any change whatsoever to existing programs. It can be used by normal users doing normal tasks. For example, an anonymous FTP service is made available to vi like so: -% parrot_run vi /anonftp/ftp.gnu.org/pub/README -

    -Parrot is particularly handy for distributed computing, because it allows -your application to access remote software and data, regardless of where -it is actually executing. For example, it is commonly used in the high -energy physics community to obtain remote access to the CVMFS distributed -software repository. -

    -

    -Almost any application - whether static or dynmically linked, -standard or commercial, command-line or GUI - should work with -Parrot. There are a few exceptions. Because Parrot relies on -the Linux ptrace interface -any program that relies on the ptrace interface cannot run under Parrot. -This means Parrot cannot run a debugger, nor can it run itself recursively. -In addition, Parrot cannot run setuid programs, as the operating system -system considers this a security risk. -

    -Parrot also provide a new experimental features called identity boxing. -This feature allows you to securely run a visiting application within -a protection domain without become root or creating a new account. -Read below for more information on identity boxing. -

    -Parrot currently runs on the Linux operating system with either -Intel compatible (i386) or AMD compatible (x86_64) processors. -It relies on some fairly low level details in order to implement -system call trapping. Ports to other platforms and processors -Linux may be possible in the future. -

    -Like any software, Parrot is bound to have some bugs. -Please post questions to our forum and bugs to our issue tracker. - -

    Installation

    - -

    -Parrot is distributed as part of the Cooperative Computing Tools. To -install, please read the cctools installation -instructions. - -

    Examples

    - -

    -To use Parrot, you simply use the parrot command followed by any other Unix program. For example, to run a Parrot-enabled vi, execute this command: -% parrot_run vi /anonftp/ftp.gnu.org/pub/README -Of course, it can be clumsy to put parrot_run before every command you run, so try starting a shell with Parrot already loaded: -% parrot_run bash -Now, you should be able to run any standard command using Parrot filenames. Here are some examples to get you thinking: -% cp /http/www.nd.edu/~dthain/papers/parrot-agm2003.pdf . -% grep Yahoo /http/www.yahoo.com -% set autolist -% cat /anonftp/ftp.gnu.org/pub[Press TAB here] - - -

    Interactive Use of Parrot

    - -

    You may find it useful to have some visual indication of when Parrot is -active, so we recommend that you modify your shell startup scripts to change -the prompt when Parrot is enabled. Scripts may execute parrot_run ---is-running to detect if Parrot is already running in the current -session.

    - -
      -
    • If you use tcsh, add to your .cshrc: - which parrot_run > /dev/null && parrot_run --is-running > /dev/null -if ($? == 0) then - set prompt = " (Parrot) %n@%m%~%# " -else - set prompt = " %n@%m%~%# " -endif -
    • -
    • If you use bash, add to your .bashrc: - if parrot_run --is-running > /dev/null 2> /dev/null; then - PS1="(Parrot) ${PS1}" -fi -
    • -
    - -

    Protocols

    - -

    We have limited the examples so far to HTTP and anonymous FTP, as they are -the only services we know that absolutely everyone is familiar with. There are -a number of other more powerful and secure remote services that you may be less -familiar with. Parrot supports them in the same form: The filename begins with -the service type, then the host name, then the file name. Here are all the -currently supported services:

    - -
    - -
    example pathremote servicemore info -
    /http/www.somewhere.com/index.htmlHypertext Transfer Protocolincluded -
    /grow/www.somewhere.com/index.htmlGROW - Global Read-Only Web Filesystem included -
    /ftp/ftp.cs.wisc.edu/RoadMapFile Transfer Protocolincluded -
    /anonftp/ftp.cs.wisc.edu/RoadMapAnonymous File Transfer Protocolincluded -
    /gsiftp/ftp.globus.org/pathGlobus Security + File Transfer Protocolmore info -
    /irods/host:port/zone/home/user/pathiRODSmore info -
    /hdfs/namenode:port/pathHadoop Distributed File System (HDFS)more info -
    /xrootd/host:port/pathXRootD/Scalla Distributed Storage System (xrootd)more info -
    /cvmfs/grid.cern.ch/pathCernVM-FSmore info -
    /chirp/target.cs.wisc.edu/pathChirp Storage Systemincluded + more info -
    -
    -

    -The following protocols have been supported in the past, but are not currently in active use. -

    -


    - -
    /nest/nest.cs.wisc.edu/pathNetwork Storage Technologymore info -
    /rfio/host.cern.ch/pathCastor Remote File I/Omore info -
    /dcap/dcap.cs.wisc.edu/pnfs/cs.wisc.edu/pathDCache Access Protocolmore info -
    /lfn/logical/pathLogical File Name - Grid File Access Librarymore info -
    /srm/server/pathSite File Name - Grid File Access Librarymore info -
    /guid/abc123Globally Unique File Name - Grid File Access Librarymore info -
    /gfal/protocol://host//pathGrid File Access Librarymore info -
    -
    -

    - -If a remote service is interfering with your system, -e.g. you already have CVMFS mounted at /cvmfs, -you can run Parrot as -% parrot_run --disable-service cvmfs sh -to disable Parrot's handling. -This option can be specified multiple times. -

    - -

    -You will notice quite quickly that not all remote I/O systems -provide all of the functionality common to an ordinary file system. -For example, HTTP is incapable of listing files. -If you attempt to perform a directory listing on an HTTP -server, Parrot will attempt to keep ls happy -by producing a bogus directory entry: -% parrot_run ls -la /http/www.yahoo.com/ --r--r--r-- 1 dthain dthain 0 Jul 16 11:50 /http/www.yahoo.com - - -

    -A less-drastic example is found in FTP. If you attempt -to perform a directory listing of an FTP server, Parrot -fills in the available information -- the file names and -their sizes -- but again inserts bogus information to fill the rest out: -% parrot_run ls -la /anonftp/ftp.gnu.org/pub --rwxrwxrwx 1 dthain dip 580 Oct 5 16:00 CRYPTO.README --rwxrwxrwx 1 dthain dip 166697 Oct 5 16:00 find.txt.gz -drwxrwxrwx 1 dthain dip 0 Oct 5 16:00 gnu -... - - -

    -If you would like to get a better idea of the underlying behavior -of Parrot, try running it with the -d remote option, -which will display all of the remote I/O operations that it performs -on a program's behalf: - -% parrot_run -d remote ls -la /anonftp/ftp.gnu.org -... -ftp.cs.wisc.edu <-- TYPE I -ftp.cs.wisc.edu --> 200 Type set to I. -ftp.cs.wisc.edu <-- PASV -ftp.cs.wisc.edu --> 227 Entering Passive Mode (128,105,2,28,194,103) -ftp.cs.wisc.edu <-- NLST / -ftp.cs.wisc.edu --> 150 Opening BINARY mode data connection for file list. -... - - -

    -If your program is upset by the unusual semantics of such -storage systems, then consider using the Chirp protocol and -server: - -

    The Chirp Protocol and Server

    - -

    -Although Parrot works with many different protocols, -is it limited by the capabilities provided by each underlying system. -(For example, HTTP does not have reliable directory listings.) -Thus, we have developed a custom protocol, Chirp, -which provides secure remote file access with all of the capabilities -needed for running arbitrary Unix programs. -Chirp is included with the distribution of Parrot, -and requires no extra steps to install. -

    -To start a Chirp server, simply do the following: -% chirp_server -d all -The -d all option turns on debugging, which helps you to understand -how it works initially. You may remove this option once everything -is working. -

    -Suppose the Chirp server is running on bird.cs.wisc.edu. -Using Parrot, you may access all of the Unix features of -that host from elsewhere: -% parrot_run tcsh -% cd /chirp/bird.cs.wisc.edu -% ls -la -% ... - -

    -In general, Parrot gives better performance and usability -with Chirp than with other protocols. -You can read extensively about the Chirp server and protocol -in the Chirp manual. -

    -In addition, Parrot provides several custom command line tools -(parrot_getacl, parrot_setacl, parrot_lsalloc, -and parrot_mkalloc) that can be used to manage the -access control and space allocation features of Chirp from the Unix command line. - -

    Name Resolution

    - -

    -In addition to accessing remote storage, Parrot allows you -to create a custom namespace for any program. All file name -activity passes through the Parrot name resolver, which -can transform any given filename according to a series of rules -that you specify. -

    -The simplest name resolver is the mountlist, given -by the -m mountfile option. This file corresponds closely -to /etc/fstab in Unix. A mountlist is simply a file with one -mount entry given per line. The first column is the path in Parrot's -namespace. The next column can be either an access control specifier or -a path in the host's filesystem. If two paths are given, then the third -column can contain an optional access control specifier. - -

    -For example, the GNU FTP server available at -/anonftp/ftp.cs.wisc.edu/db can be spliced into the -filesystem under /gnu with a mount list like this: -/gnu /anonftp/ftp.gnu.org -Instruct Parrot to use the mountlist as follows: -% parrot_run -m mountfile bash -% cd /gnu -% ls -la -% exit - - -

    An access control specifier restricts the operations allowed under -a given path. DENY blocks all operations, ENOENT makes -operations fail as if nothing was present at the path, and LOCAL only -allows operation on the local filesystem. For more fine-grained control, -an access specifier can also be a combination of the letters r, w, -and x to allow read, write, and execute/search, respectively. -For example, a mountlist could contain the following entries -/ RX -/home DENY -/tmp /tmp/sandbox -/opt /home/fred/project RX -

    - -Individual mount entries may be given on the command line -with the -M option as follows: -% parrot_run -M /gnu=/anonftp/ftp.gnu.org bash -

    -The mount list may also be changed at runtime via parrot_mount, -if parrot is run with the --dynamic-mounts option: -% parrot_run --dynamic-mounts bash -% parrot_mount /gnu /anonftp/ftp.gnu.org/gnu RWX -% ls /gnu -% parrot_mount --unmount /gnu -% exit - -A more sophisticated way to perform name binding is with -an external resolver. This is a program executed -whenever Parrot needs to locate a file or directory. -The program accepts a logical file name and then returns -the physical location where it can be found. -

    -Suppose that you have a database service that locates -the nearest copy of a file for you. If you run the -command locate_file, it will print out the nearest -copy of a file. For example: -% locate_file /1523.data -/chirp/server.nd.edu/mix/1523.data - - -

    -To connect the program locate_file to Parrot, -simply give a mount string that specifies the program -as a resolver: -% parrot_run -M /gnu=resolver:/path/to/locate_file bash -

    -Now, if you attempt to access files under /gnu, -Parrot will execute locate_file and access -the data stored there: -% cat /gnu/1523.data -(see contents of /chirp/server.nd.edu/mix/1523.data) - - -

    Mount Namespaces

    - -

    Mount entries in Parrot are organized into hierarchical, reference counted namespaces. -A fresh instance of Parrot puts all process into a single, global namespace. -This means that normally, all processes running under a Parrot instance see the same -view of the filesystem. More concretely, all processes share the same mount list specified -by the -m and -M options. The parrot_mount command allows programs to edit this -mount list.

    -

    Processes are also free to fork their mount namespaces with the Parrot-specific -parrot_fork_namespace syscall. Whenever a process forks its namespace, its child -will inherit a reference to its parent’s mount namespace. Mount namespace changes are -visible to processes subject to the following rules. Given a process P in namespace N,

    -
      -
    • P may add/remove mount entries in N.
    • -
    • any other process with a reference to N, will see changes by P.
    • -
    • suppose another process P’ forks N, so that P’ is in namespace N’, then -
        -
      • any changes to N’ are not visible in N.
      • -
      • any changes to N are visible in N’.
      • -
      -
    • -
    • when adding a mount entry to N, the redirect is resolved in the parent namespace of N.
    • -
    -

    A process' mount namespace forms -a closure over the set of visible mount entries. Forking another namespace will capture all -visible mount entries, and allow the process to make local changes independently from the -parent namespace. Names are lexically scoped, i.e. a new mount is resolved in its enclosing -scope. When Parrot starts, the global mount namespace has no parent, so mounts passed in are -resolved in the host filesystem. Unless the --dynamic-mounts flag is passed, -Parrot seals the global mount namespace before running the tracee by making a new -child namespace. Thus all processes are, by default, locked into the namespace set up by -the command line/environment variables. Any processes may add mount entries to its own -mount namespace via parrot_mount, but may not remove mount entries defined in parent -and sealed namespace(s). A process can make changes to its mount namespace, then seal it -with parrot_mount --disable to prevent the process or its children from undoing those -changes. If --dynamic-mounts is passed, the global namespace is left unsealed, -so mounts/unmounts are resolved in the host filesystem. This allows a setup script -to modify the command line mounts, then seal the global namespace so that it can no -longer be modified. Likewise, a process can fork its namespace, add mount entries, -then seal it so that all children will be locked into the current view of the system.

    -

    The parrot_namespace utility gives a more convenient way to create new mount namespaces -rather than using the parrot_fork_namespace syscall directly. This utility forks the -current mount namespace and performs any mounts specified on the command line. -parrot_namespace detects whether or not it is already running under Parrot. -If so, parrot_namespace uses Parrot-specific -syscalls to make the mount changes in a newly-forked mount namespace. If not running -under Parrot, parrot_namespace simply executes parrot_run.

    -

    For applications that want to nest Parrot sessions and only need to make changes to -mounts, parrot_namespace should work as a drop-in replacement for parrot_run. -parrot_namespace only supports a limited subset of the options available for -parrot_run. By always using parrot_namespace, the user need not be concerned -with whether Parrot is already running.

    - - -

    Record Accessed Files and Environment Variables

    - -

    To figure out the underlying file dependencies and execution environment, Parrot allows you to record the -names of all the accessed files during the execution process of one program, -which is implemented as the --name-list dependencylist option, and allows you to record the environment variables of your program, which is implemented as the --env-list envlist option. When one -filename is resolved by the Parrot name resolver, it is also recorded -into the dependencylist file. The system call type of a file is also -transferred to the name resolver and recorded into the dependencylist file. -For example, all the accessed file names will be recorded into list.txt, and the environment variables will be recorded into envlist, -if we run the following command:

    - -% parrot_run --name-list list.txt --env-list envlist ls ~ - -

    The format of list.txt is filename|system-call-type, such as -usr/bin/ls|stat, which means the file /usr/bin/ls is accessed -using the stat system call.

    - -

    Generate a Package based on the Accessed Files

    -

    After recording the accessed files of one program with the help of the --name-list parameter of parrot_run and the environment variables with the help of the --env-list parameter of parrot_run, parrot_package_create can generate a package containing all the accessed files and the environment variables. parrot_package_create shares the same --name-list and --env-list parameters with parrot_run. --package-path parameter is used to specify the location of package.

    -% parrot_package_create --name-list namelist --env-list envlist --package-path /tmp/package -

    After executing this command, one package with the path of /tmp/package will be generated. -The envlist file, envlist will be put under /tmp/package with the name of env_list.

    - -

    You can also add the dependencies recorded in a new namelist file into an existing package: -% parrot_package_create --name-list namelist1 --env-list envlist1 --new-env envlist1 --add /tmp/package -

    After executing this command, all the new dependencies mentioned in namelist1 will be added into /tmp/package, -the new envlist, envlist1, will also be added into /tmp/package with the name specified by the --new-env option.

    - -

    Repeat one Program within the Package

    -

    Once a package is generated with the help of parrot_package_create, we can use parrot_package_run to repeat the program within the package. parrot_package_run is based on the mountlist redirection mechanism of parrot_run. One mountlist wll be created so that the file access request of your program can be redirected into the package. --package-path parameter specifies the paht of the package. If no command is given, a /bin/sh shell will be returned.

    -% parrot_package_run --package-path /tmp/package /bin/bash -

    After the execution of this command, one shell will be returned, where you can repeat your original program. After everything is done, exit parrot_package_run:

    -% exit -

    You can also directly set your command as the arguments of parrot_package_run. In this case, parrot_package_run will exit automatically after the command is finished, and you do not need to use exit to exit. However, your command must belong to the original command set executed inside parrot_run and preserved by parrot_package_create.

    -% parrot_package_run --package-path /tmp/package ls -al - -

    You can also specify a different environment file to run programs inside a package with the --env-list option. -% parrot_package_run -env-list /tmp/package/envlist1 --package-path /tmp/package ls -al - -

    -

    -Parrot can take advantage of the reflink feature (added in coreutils 7.5) when using cp. -To use this feature, invoke cp as -% cp --reflink foo bar -This works by intercepting BTRFS_IOC_CLONE to trigger an in-Parrot copy with no further -interaction with cp, avoiding the overhead of moving data into the client's buffer and -then immediately back to Parrot. When run in Parrot, cp --reflink is not restricted to -files on the same BTRFS volume, and can be used for efficiently copying any regular file. -

    - -

    -As of coreutils 8.24, mv will automatically attempt a reflink copy when moving files -across mount points. Parrot's reflink feature allows e.g. mving a file into a tmpfs -like /tmp with minimal overhead. -

    - -

    More Efficient Copies with parrot_cp

    - -

    -If you are using Parrot to copy lots of files across the network, -you may see better performance using the parrot_cp tool. -This program looks like an ordinary cp, but it makes -use of an optimized Parrot system call that streams entire files -over the network, instead of copying them block by block. -

    -To use parrot_cp, simply use your shell to alias calls -to cp with calls to parrot_cp: -

    -% parrot_run tcsh -% alias cp parrot_cp -% cp /tmp/mydata /chirp/server.nd.edu/joe/data -% cp -rR /chirp/server.nd.edu/joe /tmp/joe - -

    -If run outside of Parrot, parrot_cp will operate as -an ordinary cp without any performance gain or loss. - -

    Notes on Protocols

    - -

    HTTP Proxy Servers

    - -

    -HTTP, CVMFS, and GROW can take advantage of standard HTTP proxy servers. -To route requests through a single proxy server, set the HTTP_PROXY -environment variable to the server name and port: -% setenv HTTP_PROXY "http://proxy.nd.edu:8080" - -

    Multiple proxy servers can be given, separated by a semicolon. -This will cause Parrot to try each proxy in order until one succeeds. -If DIRECT is given as the last name in the list, then -Parrot will fall back on a direct connection to the target web server. -For example: -% setenv HTTP_PROXY "http://proxy.nd.edu:8080;http://proxy.wisc.edu:1000;DIRECT" - - -

    GROW - Global Read Only Web Filesystem

    - -

    -Although the strict HTTP protocol does not allow for correct -structured directory listings, it is possible to emulate -directory listings with a little help from the underlying filesystem. -We call this technique GROW, a global filesystem based on the Web. -GROW requires the exporter of data to run a script (make_growfs) -that generates a complete directory listing of the data that you wish to -export. This directory listing is then used to produce reliable metadata. -Of course, if the data changes, the script must be run again, -so GROW is only useful for data that changes infrequently. -

    -To set up an GROW filesystem, you must run make_growfs -on the web server machine with the name of the local storage directory -as the argument. For example, suppose that the web server -my.server.com stores pages for the URL -http://my.server.com/~fred in the local directory /home/fred/www. -In this case, you should run the following command: -

    -% make_growfs /home/fred/www -Now, others may perceive the web server as a file server under the /grow -hierarchy. For example: -% parrot_run tcsh -% cd /grow/my.server.com/~fred -% ls -la - - -

    -In addition to providing precise directory metadata, GROW offers -two additional advantages over plain HTTP: -

    -
  • Aggressive Caching. GROW caches files in an on-disk -cache, but unlike plain HTTP, does not need to issue up-to-date -checks against the server. Using the cached directory metadata, -it can tell if a file is up-to-date without any network communication. -The directory is only checked for changes at the beginning of program -execution, so changes become visible only to newly executed programs. -
  • SHA-1 Integrity. -make_growfs generates SHA-1 checksums on the directory and each file so -that the integrity of the system can be verified at runtime. If a checksum -fails, GROW will attempt to reload the file or directory listing in order to -repair the error, trying until the master timeout (set by the -T option) -expires. This will also occur if the underlying files have been modified and -make_growfs has not yet been re-run. If necessary, checksums can be -disabled by giving the -k option to either Parrot or -make_growfs. -
  • - -

    iRODS

    - -To use Parrot with iRODS, you must first follow the special build instructions. -

    -Then, use the iinit command to log into the desired iRODS service, -and verify that you are connected with the ils command. If those -work, then you can use Parrot to access files under the scheme -/irods/server/zone/path. For example, to access the iPlant data service: - -

    -parrot_run bash
    -cd /irods/data.iplantcollaborative.org/iplant/home/username
    -cp /tmp/mydata .
    -
    - -

    CVMFS - CernVM-FS

    - -

    CVMFS is a read-only filesystem, which was initially based on GROW. -It is used within CernVM-FS to provide access to software -repositories. It may be used outside of CernVM-FS by mounting it as a -FUSE module. Parrot makes it possible to access CVMFS in cases where -mounting CVMFS via FUSE is not an option. Like GROW, CVMFS makes use -of web proxies and local disk caching for scalability. For security, -data integrity is verified with cryptographic checksums. For -increased reliability and performance, CVMFS repositories may also be -mirrored in multiple locations and accessed via groups of -load-balanced web proxies, with fail-over between groups. - -

    The CVMFS repositories hosted by the CernVM project and by -Open Science Grid (OASIS) are enabled by default. -To access a different repository, it is necessary to configure parrot -to know how to access the repository. This may be done with the --r option or with the PARROT_CVMFS_REPO environment -variable. The repository configuration syntax is - -repo_name:options repo_name2:option2 ... - -

    The repository with repo_name is used when the parrot user -attempts to access the matching path /cvmfs/repo_name/.... -The configured repository name may begin with *, which acts -as a wildcard, matching one or more characters in the requested -repository name. This is useful when multiple repositories are hosted -at the same site and all configuration details are the same except the -beginnings of the repository names, as in atlas.cern.ch and -cms.cern.ch. Any * appearing in the options is -replaced by the characters in the requested path that were matched by -the * in the configured repository name. If a cvmfs path -matches more than one configured repository, the last one appearing in -the configuration takes precedence. - -

    The format of the repository options is - -option1=value1,option2=value2,... - -

    Literal spaces, tabs, newlines, asterisks, equal signs, or commas -in the options must be proceeded by a backslash to avoid being -interpreted as delimiters. If the same option is specified more than -once, the last value takes precedence. The possible options are -listed in the table below. The url option is required and -has no default. The proxies option is required and defaults -to the proxy used by parrot, if any. - -

    - -
    url=URL The URL of the CernVM-FS server(s): 'url1;url2;...' -
    proxies=HTTP_PROXIES Set the HTTP proxy list, such as 'proxy1|proxy2'; default is given by -P option (HTTP_PROXY) -
    Proxies separated by '|' are randomly chosen for load balancing. - Groups of proxies separated by ';' may be specified for failover. - If the first group fails, the second group is used, and so on down the chain. -
    cachedir=DIR Where to store disk cache; default is within parrot temp directory (-t option) -
    timeout=SECONDS Timeout for network operations; default is given by -T option (PARROT_TIMEOUT) -
    timeout_direct=SECONDS Timeout in for network operations without proxy; default is given by -T option (PARROT_TIMEOUT) -
    max_ttl=MINUTES Maximum TTL for file catalogs; default: take from catalog -
    allow_unsigned Accept unsigned catalogs (allows man-in-the-middle attacks) -
    whitelist=URL HTTP location of trusted catalog certificates (defaults is /.cvmfswhitelist) -
    pubkey=PEMFILE Public RSA key that is used to verify the whitelist signature. -
    rebuild_cachedb Force rebuilding the quota cache db from cache directory -
    quota_limit=MB Limit size of cache. -1 (the default) means unlimited. -
    If not -1, files larger than quota_limit-quota_threshold will not be readable. -
    quota_threshold=MB Cleanup cache until size is <= threshold -
    deep_mount=prefix Path prefix if a repository is mounted on a nested catalog -
    repo_name=NAME Unique name of the mounted repository; default is the name used for this configuration entry -
    mountpoint=PATH Path to root of repository; default is /cvmfs/repo_name -
    blacklist=FILE Local blacklist for invalid certificates. Has precedence over the whitelist. -
    try_local_filesystem If this cvmfs repository is mounted on the local filesystem, use that instead of Parrot's CVMFS client. -
    - -

    Setting the CVMFS configuration overrides the default -configuration. If it is desired to configure additional repositories -but still retain the default repositories, the configuration entry -<default-repositories> may be put in the -configuration string. Example: - -parrot_run -r '<default-repositories> my.repo:url=http://cvmfs.server.edu/cvmfs/my.repo.edu' ... - -

    <default-repositories> should -come first, because it contains a catch-all clause -*:try_local_filesystem that matches anything that -isn't caught by later entries. This clause allows access to locally -mounted CVMFS repositories that Parrot is not configured to access -internally. - -

    The configuration of the default repositories may be modified by -specifying additional options using the syntax -<default-repositories>:option1=value1,option2=value2. - -

    The CVMFS library can only support one active repository open at a time. -If a program attempts to access more than one repository in a session, -Parrot will emit an error. If the optional argument --cvmfs-repo-switching -is given to parrot_run, then Parrot will switch repositories at -run-time by re-initializing the CVMFS library. This feature is experimental. -

    - -

    Parrot Cache

    - -

    If a service does not allow partial reads of a file (e.g. the HTTP protocol: -/http/foo.com/a.txt), then Parrot will cache an entire copy of the -file in its temporary directory (-t or $PARROT_TEMP_DIR or -$TMPDIR/parrot.<pid>, in order). Cached files are named based on -the hash of the canonical file name.

    - -

    You can also force Parrot to cache all non-local files using the --F/--with-snapshots option. This is not usually recommended because -Parrot will download the entire copy of the file when opened by the -application. This also means that updates to the file during run-time are -ignored (hence the name, "snapshot")!

    - -

    Some services have their own cache, like cvmfs. This is a cache -independent of the regular Parrot cache. It is important to note that some -versions of CVMFS may not correctly operate on the same cache. In that case, it -is essential to run concurrent instances of Parrot with different temporary -directories.

    - -

    Hadoop Distributed File System (HDFS)

    - -

    -HDFS is the primary distributed filesystem used in the Hadoop project. Parrot supports read -and write access to HDFS systems using the parrot_run_hdfs wrapper. This -script checks that the appropriate environmental variables are defined and -calls parrot. -

    -In particular, you must ensure that you define the following environmental -variables: - -JAVA_HOME Location of your Java installation. -HADOOP_HOME Location of your Hadoop installation. - - -

    -Based on these environmental variables, parrot_run_hdfs will attempt to -find the appropriate paths for libjvm.so and libhdfs.so. -These paths are stored in the environmental variables LIBJVM_PATH and -LIBHDFS_PATH, which are used by the HDFS Parrot module to load the -necessary shared libraries at run-time. To avoid the startup overhead of -searching for these libraries, you may set the paths manually in your -environment before calling parrot_run_hdfs, or you may edit the script -directly. - -

    -Note that while Parrot supports read access to HDFS, it only provides -write-once support on HDFS. This is because the current implementations of -HDFS do not provide reliable append operations. Likewise, files can only be -opened in either read (O_RDONLY) or write mode (O_WRONLY), -and not both (O_RDWR). - -

    Identity Boxing

    - -

    -Parot provides a unique feature known as identity boxing. -This feature allows you to run a (possibly) untrusted program -within a protection domain, as if it were run in a completely separate account. -Using an identity box, you do not need to become root or even -to manage account names: you can create any identity that you like on the fly. -

    -For example, suppose that you wish to allow a friend to log into your -private workstation. Instead of creating a new account, simply use a -script supplied with Parrot to create an identity box: -

    -% whoami -dthain -% parrot_identity_box MyFriend -% whoami -MyFriend -% touch ~dthain/private-data -touch: creating ~dthain/private-data': Permission denied - -

    -Note that the shell running within the identity box cannot change or -modify any of the supervising user's data. In fact, the contained -user can only access items that are world-readable or world-writable. -

    -You can give the contained user access to other parts of the filesystem -by creating access control lists. (ACLs) An ACL is a list of users -and the resources that they are allowed to access. Each directory -has it's own ACL in the file .__acl. This file does not -appear in a directory listing, but you can read and write it just the same. -

    -For example, MyFriend above can see his initial ACL as follows: -

    -% cat .__acl -MyFriend rwlxa - - -

    -This means that MyFriend can read, write, list, execute, and -administer items in the current directory. Now, suppose that MyFriend -wants to allow Freddy read access to the same directory. -Simply edit the ACL file to read: -MyFriend rwlxa -Freddy rl - - -Identity boxing and ACLs are particularly useful when using distributed -storage. You can read more about ACLs and identity boxing in the -Chirp manual. - -

    64-Bit Support

    - -

    -In all modes, Parrot supports applications that access large (>2GB) files -that require 64-bit seek pointers. However, we have found that many tools -and filesystems do not manipulate such large files properly. If possible, -we advise users to break up files into smaller pieces for processing. -

    -Parrot supports 64 bit programs and processors in the following combinations: -

    - - - - - -
    Program TypeCPU Type
    32-bit64-bit
    YES NO Parrot for 32-bit X86 CPU
    Pentium, Xeon, Athlon, Sempron
    YES YES Parrot for 64-bit X86_64 CPU
    Opteron, Athlon64, Turion64, Sempron64
    -
    - -

    parrot inside docker

    - -Docker by default blocks ptrace, the system call on which parrot relies. To -run parrot inside docker, the container needs to be started using the ---security-opt seccomp=unconfined command line argument. For -example: - - - docker run --security-opt seccomp=unconfined MY-DOCKER-IMAGE - - -

    For More Information

    - -

    -For the latest information on Parrot, visit the home page: - -

    -
  • Parrot Home Page -
  • - -

    -An exhaustive list of all options and commands can be found in the manual pages: - -

    -
  • parrot_run -
  • parrot_run_hdfs -
  • parrot_cp -
  • parrot_md5 -
  • parrot_getacl -
  • parrot_setacl -
  • parrot_mkalloc -
  • parrot_lsalloc -
  • parrot_locate -
  • parrot_timeout -
  • parrot_whoami -
  • parrot_mount -
  • - -
    - - diff -Nru cctools-7.0.22/doc/prune.html cctools-7.1.2/doc/prune.html --- cctools-7.0.22/doc/prune.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/prune.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,174 +0,0 @@ - - - - - - -Prune User's Manual - - - - - -
    -

    Prune User's Manual

    - -

    Last edited: September 2017

    - -

    Prune is Copyright (C) 2014- The University of Notre Dame.
    -All rights reserved.
    -This software is distributed under the GNU General Public License.
    -See the file COPYING for details.

    - - - -

    Overview

    - -

    Prune is a system for executing and precisely preserving scientific workflows. Every task to be executed in a workflow is wrapped in a functional interface and coupled with a strictly defined environment. The task is then executed by Prune rather than the user to ensure reproducibility. As a scientific workflow evolves in a Prune repository, a growing but immutable tree of derived data is created. The provenance of every item in the system can be precisely described, facilitating sharing and modification between collaborating researchers, along with efficient management of limited storage space. Collaborators can verifiy research results and easily extend them at a granularity that makes sense to users, since the granularity of each task was chosen by a scientist rather than captured at the level of system calls.

    - - - -

    Installing Prune

    -

    -Prune is part of the Cooperating Computing Tools. -The CCTools package can be downloaded from this web page. -Follow the installation instructions to setup CCTools -required for running Prune. -

    - -

    -You will also need to set PYTHONPATH so that Prune modules from cctools can be imported in a Python script:

    -export PYTHONPATH=${PYTHONPATH}:${HOME}/cctools/lib/python2.7/site-packages -

    - - - -

    Prune Example Workflow: Merge Sort

    - -

    Change your working directory to the Merge Sort example folder with a command like this: - cd ~/cctools.src/prune/examples/merge_sort/ -

    You will find two text files there (nouns.txt and verbs.txt) along with a Python script containing the Prune workflow called merge_sort.py which looks like this:

    - ###### Connect to a Prune repository ###### -###### (Default location: ~/.prune) ###### -from prune import client -from os.path import expanduser - -HOME = expanduser("~") -prune = client.Connect(base_dir = HOME+'/.prune') #Prune data is stored in base_dir - -###### Import sources stage ###### -E1 = prune.nil -D1 = prune.file_add( 'nouns.txt' ) -D2 = prune.file_add( 'verbs.txt' ) - -###### Sort stage ###### -D3, = prune.task_add( returns=['output.txt'], - env=E1, cmd='sort input.txt > output.txt', - args=[D1], params=['input.txt'] ) -D4, = prune.task_add( returns=['output.txt'], - env=E1, cmd='sort input.txt > output.txt', - args=[D2], params=['input.txt'] ) - -###### Merge stage ###### -D5, = prune.task_add( - returns=['merged_output.txt'], env=E1, - cmd='sort -m input*.txt > merged_output.txt', - args=[D3,D4], params=['input1.txt','input2.txt'] ) - -###### Execute the workflow ###### -prune.execute( worker_type='local', cores=8 ) - -###### Export final data ###### -prune.export( D5, 'merged_words.txt' ) - -###### Export publishable workflow ###### -prune.export( D5, 'merge_sort.prune', lineage=2 ) - - - -

    With CCTools libraries in your PYTHONPATH, you can execute the workflow with this command:

    -

    - -python merge_sort.py - -

    - The merged results can be found in a file called merged_words.txt and the file merge_sort.prune contains a sharable package that describes the full workflow. -

    - - - -

    Prune Example Workflow: High Energy Physics (HEP)

    - -

    The Merge Sort example above did not specify an environment. A different workflow (involving High Energy Physics) uses Umbrella to specify and create the appropriate environment for individual workflow tasks. It can be found in the following working directory.

    - - cd ~/cctools.src/prune/examples/hep/ - -

    The script command to specify an Umbrella environment looks like this:

    - - E1 = prune.envi_add( engine='umbrella', spec='cms.umbrella', - sandbox_mode='parrot', log='umbrella.log', - cms_siteconf='SITECONF.tar.gz', - cvmfs_http_proxy='http://eddie.crc.nd.edu:3128', - http_proxy='http://eddie.crc.nd.edu:3128' ) - -

    Execute the workflow with this command:

    -

    - -python hep.py - - -

    Prune Example Workflow: U.S. Census

    - -

    The U.S. Census workflow demonstrates the scalability of Prune by using Work Queue to execute the workflow in a distributed manner, rather than only executing with the local machine. The included census data is a small simulation of a real census, but could be applied to the real U.S. Censuses if available.

    - - cd ~/cctools.src/prune/examples/census/ - -

    This example workflow differs mainly in the way the execute command is used in the script:

    - - prune.execute( worker_type='work_queue', name='prune_census_example' ) - -

    Now, running the workflow script initiates a Work Queue master that will wait for workers to attach to it in order to execute the tasks.

    - - python match_people.py - -

    The following command line instruction is one way to assign 10 workers to the Work Queue master:

    - - condor_submit_workers -N prune_census_example 10 - -

    See the Work Queue Manual for more information on ways to assign workers to execute tasks in the workflow.

    - - (The hep.wq.py script, in the hep example folder, runs the HEP workflow using Work Queue after submitting workers to the Work Queue master with name 'prune_hep_example' instead of 'prune_census_example'.) - - - -

    For More Information

    - -

    -For the latest information about CCTools, please visit our web site and -subscribe to our mailing -list. -

    - -
    - - - diff -Nru cctools-7.0.22/doc/resource_monitor.html cctools-7.1.2/doc/resource_monitor.html --- cctools-7.0.22/doc/resource_monitor.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/resource_monitor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,286 +0,0 @@ - - - - - - -Resource Monitor User's Manual - - - - -
    -

    Resource Monitor User's Manual

    - -

    Last edited: July 2018

    - -

    resource_monitor is Copyright (C) 2013 The University of Notre Dame.
    -All rights reserved.
    -This software is distributed under the GNU General Public License.
    -See the file COPYING for details.

    - -

    Overview

    - - resource_monitor is a tool to monitor the computational - resources used by the process created by the command given as an - argument, and all its descendants. The monitor works - 'indirectly', that is, by observing how the environment changed - while a process was running, therefore all the information - reported should be considered just as an estimate (this is in - contrast with direct methods, such as ptrace). It works on - Linux, and can be used in stand-alone mode, or automatically with - makeflow and work queue applications. -

    - - resource_monitor generates up to three log files: a JSON encoded - summary file with the maximum values of resource used and the time they - occurred, a time-series that shows the resources used at given time - intervals, and a list of files that were opened during execution. -

    - - Additionally, resource_monitor may be set to produce measurement - snapshots according to events in some files (e.g., when a file is - created, deleted, or a regular expression pattern appears in the file.). - - Maximum resource limits can be specified in the form of a file, or a - string given at the command line. If one of the resources goes over the - limit specified, then the monitor terminates the task, and reports which - resource went over the respective limits. -

    - - - In systems that support it, resource_monitor wraps some - libc functions to obtain a better estimate of the resources used. -

    - -

    - -

    Installation

    - - The resource_monitor is included in the current development version of - CCTools. For installation, please follow these instructions. - -

    Running resource_monitor

    - - Simply type: - - % resource_monitor -O mymeasurements -- ls - - This will generate the file mymeasurements.summary, describing the resource usage of the command "ls". - - - % resource_monitor -O mymeasurements --with-time-series --with-inotify -O mymeasurements -- ls - - This will generate three files describing the resource usage of - the command "ls". These files are -mymeasurements.summary, -mymeasurements.series, and mymeasurements.files, in -which PID represents the -corresponding process id. - - By default, measurements are taken every second, and each time an event - such as a file is opened, or a process forks, or exits. We can specify the - output names, and the sampling intervals: - - % resource_monitor -O log-sleep -i 2 -- sleep 10 - - The previous command will monitor "sleep 10", at two second - intervals, and will generate the - files log-sleep.summary, log-sleep.series, - and log-sleep.files. - - - The monitor assumes that the application monitored is not interactive. To - change this behaviour use the -f switch: - - % resource_monitor -O mybash -f -- /bin/bash - - -

    Output Format

    - - The summary is JSON encoded and includes the following fields: - -command: the command line given as an argument -start: time at start of execution, since the epoch -end: time at end of execution, since the epoch -exit_type: one of "normal", "signal" or "limit" (a string) -signal: number of the signal that terminated the process - Only present if exit_type is signal -cores: maximum number of cores used -cores_avg: number of cores as cpu_time/wall_time -exit_status: final status of the parent process -max_concurrent_processes: the maximum number of processes running concurrently -total_processes: count of all of the processes created -wall_time: duration of execution, end - start -cpu_time: user+system time of the execution -virtual_memory: maximum virtual memory across all processes -memory: maximum resident size across all processes -swap_memory: maximum swap usage across all processes -bytes_read: amount of data read from disk -bytes_written: amount of data written to disk -bytes_received: amount of data read from network interfaces -bytes_sent: amount of data written to network interfaces -bandwidth: maximum bandwidth used -total_files: total maximum number of files and directories of - all the working directories in the tree -disk: size of all working directories in the tree -limits_exceeded: resources over the limit with -l, -L options (JSON object) -peak_times: seconds from start when a maximum occured (JSON object) -snapshots: List of intermediate measurements, identified by - snapshot_name (JSON object) - - - The time-series log has a row per time sample. For each row, the columns have the following meaning: - - -wall_clock the sample time, since the epoch, in microseconds -cpu_time accumulated user + kernel time, in microseconds -cores current number of cores used -max_concurrent_processes concurrent processes at the time of the sample -virtual_memory current virtual memory size, in MB -memory current resident memory size, in MB -swap_memory current swap usage, in MB -bytes_read accumulated number of bytes read, in bytes -bytes_written accumulated number of bytes written, in bytes -bytes_received accumulated number of bytes received, in bytes -bytes_sent accumulated number of bytes sent, in bytes -bandwidth current bandwidth, in bps -total_files current number of files and directories, across all - working directories in the tree -disk current size of working directories in the tree, in MB - - -

    Specifying Resource Limits

    - -Resource limits can be specified with a JSON object in a file in the same -format as the output format . Only resources -specified in the file are enforced. Thus, for example, to automatically kill a -process after one hour, or if it is using 5GB of swap, we can create the -following file limits.json: - -{ - "wall_time": [3600, "s"], - "swap_memory": [5, "GB"] -} - - - -resource_monitor -O output --monitor-limits=limits.json -- myapp - - -

    Snapshots

    - -The resource_monitor can be directed to take snapshots of the resources used -according to the files created by the processes monitored. The typical use of -monitoring snapshots is to set a watch on a log file, and generate a snapshot -when a line in the log matches a pattern. -
    -For example, assume that myapp goes through three stages during -execution: start, processing, and analysis, and that it indicates the current -stage by writing a line to my.log of the form # STAGE. We -can direct the resource_monitor to take a snapshot at the beginning of each -stage as follows: - - snapshots.json: -{ - "my.log": - { - "events":[ - { - "label":"file-created", - "on-creation":true - }, - { - "label":"started", - "on-pattern":"^# START" - }, - { - "label":"end-of-start", - "on-pattern":"^# PROCESSING" - } - { - "label":"end-of-processing", - "on-pattern":"^# ANALYSIS" - } - { - "label":"file-deleted", - "on-deletion":true - } - ] - } -} - - - - -resource_monitor -O output --snapshots-file=snapshots.json -- myapp - -Snapshots are included in the output summary file as an array of JSON objects under the key snapshots. Additionally, each snapshot is written to a file output.snapshot.N, where N is 0,1,2,... For other examples, please visit the man page resource_monitor.
    - - -

    Integration with other CCTools

    - -

    Makeflow mode

    - - If you already have a makeflow file, you can activate the - resource_monitor by giving the --monitor option to makeflow with a - desired output directory, for example: - - In this case, makeflow wraps every command line rule with the monitor, - and writes the resulting logs per rule in the directory - monitor_logs. - -

    Work-queue mode

    - - From Work Queue: - -q = work_queue_create(port); -work_queue_enable_monitoring(q, some-log-file, /* kill tasks on exhaustion */ 1); - - - wraps every task with the monitor, and appends all generated - summary files into the file some-log-file. Currently - only summary reports are generated from work queue. - -

    Monitoring with Condor

    - - Unlike the previous examples, when using - the resource_monitor directly with condor, you - have to specify the resource_monitor as an input file, - and the generated log files as output files. For example, - consider the following submission file: - - universe = vanilla -executable = matlab -arguments = -r "run script.m" -output = matlab.output -transfer_input_files=script.m -should_transfer_files = yes -when_to_transfer_output = on_exit -log = condor.matlab.logfile -queue - - - This can be rewritten, for example, as: - - universe = vanilla -executable = resource_monitor -arguments = -O matlab-resources --limits-file=limits.json -r "run script.m" -output = matlab.output -transfer_input_files=script.m,limits.json,/path/to/resource_monitor -transfer_output_files=matlab-resources.summary -should_transfer_files = yes -when_to_transfer_output = on_exit -log = condor.matlab.logfile -queue - - - -

    For More Information

    - -For a more detailed description, please visit the man page resource_monitor.
    - For the latest information about resource_monitor please subscribe to our mailing list. - -
    - - diff -Nru cctools-7.0.22/doc/sand.html cctools-7.1.2/doc/sand.html --- cctools-7.0.22/doc/sand.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/sand.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,210 +0,0 @@ - - - - - - -SAND User's Manual - - - - -
    -

    SAND User's Manual

    - -

    Last edited: January 2011

    - -

    SAND is Copyright (C) 2010- The University of Notre Dame.
    -All rights reserved.
    -This software is distributed under the GNU General Public License.
    -See the file COPYING for details.

    - - -

    Overview

    - -

    SAND is a set of modules for accelerating genome assembly and other -bioinformatics tasks. -Using the Work Queue -framework, SAND can distribute computational tasks to hundreds of nodes harnessed -from clusters, clouds, grids, or just the idle machines you have in your office. -SAND can be used as a drop-in replacement for the conventional overlapper in -the Celera Assembler, or can be used as a standalone tool by advanced users. - -

    SAND is part of the Cooperating Computing -Tools. You can download the CCTools from this web page, -follow the installation instructions, and you -are ready to go.

    - -

    Using SAND with the Celera Assembler

    - -If you are already using the Celera Assembler version 5.4, you can easily switch to using SAND -to accelerate assemblies by using our modified sand_runCA_5.4 script. If you are using the newer -Celera Assembler version 6.1, you can switch to SAND by using the sand_runCA_6.1 script. If you are using -Celera Assembler version 7.0, you can switch to SAND by using the sand_runCA_7.0 script. We assume that you have -installed SAND according to the instructions above and addeed it to your PATH. - -
      -
    1. Copy the script sand_runCA_X.X into the same directory where you have the normal runCA installed. -
    2. Set ovlOverlapper=sand to your spec file. -
    3. For Celera 7.0, add sandAlignFlags=-e "-o ovl_new" to your spec file. This tells the alignment program -to output new Celera 7.0 style overlaps. -
    4. Run sand_runCA_X.X just like you normally use runCA -
    - -You will see the assembly start as normal. When the overlapping stage begins, you will see output like this: - -Total | Workers | Tasks Avg | Candidates -Time | Idle Busy | Submit Idle Run Done Time | Found - 0 | 0 0 | 0 0 0 0 nan | 0 - 5 | 0 0 | 0 0 0 0 nan | 0 - 10 | 0 0 | 0 0 0 0 nan | 0 - 15 | 0 0 | 0 0 0 0 nan | 0 -... - - -SAND is now waiting for you to start work_queue_worker processes. -Each worker that you start will connect back to the master process -nd perform small pieces of the work at a time. -In general, the more machines that you can harness, the faster the work will go. -

    -For testing SAND, just open a new console window and start a single worker, -specifying the hostname where the master runs and the port number it is listening on. -(This can be changed with the sandPort option in the CA spec file.) -For example: - -% work_queue_worker master.somewhere.edu 9123 - -With one worker, you will see some change in the output, like this: -Total | Workers | Tasks Avg | Candidates -Time | Idle Busy | Submit Idle Run Done Time | Found - 0 | 0 0 | 0 0 0 0 nan | 0 - 5 | 0 1 | 100 83 1 16 0.32 | 1858 - 10 | 0 1 | 100 69 1 30 0.33 | 3649 - 15 | 0 1 | 100 55 1 44 0.34 | 5464 - - -For a very small assembly, a single worker might be sufficient. -However, to run a really large assembly at scale, you will need to -run as many workers as possible. A simple (but tiresome) way of doing -so is to ssh into lots of machines and manually run work_queue_worker -as above. But, if you have access to a batch system like -Condor or -SGE, you can use them -to start many workers with a single submit command. -

    -We have provided some simple scripts to make this easy. -For example, to submit 10 workers to your local Condor pool: -% condor_submit_workers master.somewhere.edu 9123 10 -Submitting job(s).......... -Logging submit event(s).......... -10 job(s) submitted to cluster 298. - - -Or, to submit 10 worker processes to your SGE cluster: -% sge_submit_workers master.somewhere.edu 9123 10 -Your job 1054781 ("worker.sh") has been submitted -Your job 1054782 ("worker.sh") has been submitted -Your job 1054783 ("worker.sh") has been submitted -... - - -Note that condor_submit_workers and sge_submit_workers -are simple shell scripts, so you can edit them directly if you would -like to change batch options or other details. -

    -Once the workers begin running, the SAND modules can dispatch tasks to -each one very quickly. It's ok if a machine running a worker crashes -or is turned off; the work will be silently sent elsewhere to run. -

    -When the SAND module's master process completes, your workers will -still be available, so you can either run another master with the -same workers, remove them from the batch system, or wait for them to -expire. If you do nothing for 15 minutes, they will automatically exit. - -

    SAND in More Detail

    - -This section explains the two SAND modules in more detail, -if you would like to tune the performance or use them independently -of Celera. We assume that you begin with a file of reads in FASTA format. -To use the SAND modules, you must first generate repeats and compress the data. (If you don't have data handy, download small.cfa and small.repeats data from the SAND Webpage.) - -To generate repeats from a FASTA file, use the meryl tool from the Celera Assembler: -% meryl -B -m 24 -C -L 100 -v -o small.meryl -s small.fa -% meryl -Dt -s small.meryl -n 100 > small.repeats - - -Then use sand_compress_reads to compress the sequence data into a compressed FASTA (.cfa) file: -% sand_compress_reads small.fa small.cfa - -The filtering step will read in the compressed sequence data (small.cfa) and quickly produce a list of candidate sequences (small.cand) for the following step to consider in detail. Start the filtering step as follows: -% sand_filter_master -r small.repeats small.cfa small.cand - -While the filtering step runs, it will print some statistics to the -console, showing the number of workers available, tasks running, and so forth: - -Total | Workers | Tasks Avg | Candidates -Time | Idle Busy | Submit Idle Run Done Time | Found - 0 | 0 0 | 0 0 0 0 nan | 0 - 5 | 0 14 | 158 14 14 130 0.39 | 16452 - 10 | 0 15 | 356 15 15 326 0.38 | 42382 - 15 | 0 15 | 549 15 15 519 0.38 | 69055 - 20 | 0 15 | 744 15 15 714 0.38 | 96298 - 25 | 0 15 | 942 15 15 912 0.38 | 124284 - - -The alignment step will take the list of candidates generated in the previous step (small.cand), -the compressed sequences (small.cfa) and produce a listing of how and where the sequences -overlap (small.ovl). For example: - -% sand_align_master sand_align_kernel -e "-q 0.04 -m 40" small.cand small.cfa small.ovl - -The options -q 0.04 -m 40 passed to sand_align_kernel indicate a minimum alignment quality of 0.04 and a minimum alignment length of 40 bases. -Again, a progress table will be printed to standard out: -Total | Workers | Tasks Avg | K-Cand K-Seqs | Total -Time | Idle Busy | Submit Idle Run Done Time | Loaded Loaded | Speedup - 0 | 0 0 | 0 0 0 0 0.00 | 0 0 | 0.00 - 8 | 0 48 | 100 52 48 0 0.00 | 1000 284 | 0.00 - 10 | 0 86 | 100 13 86 1 7.07 | 1000 284 | 0.71 - 36 | 1 83 | 181 14 83 2 19.47 | 1810 413 | 1.08 - 179 | 1 83 | 259 92 83 3 22.51 | 2590 1499 | 0.38 - 186 | 2 80 | 259 15 80 85 28.54 | 2590 1499 | 13.04 - 199 | 2 80 | 334 90 80 86 29.96 | 3340 1499 | 12.95 - 200 | 2 80 | 334 90 80 114 59.43 | 3340 1499 | 33.88 - 202 | 2 81 | 334 9 81 165 86.08 | 3340 1499 | 70.32 - - -After the sequence alignment step completes, you will have an overlap (.ovl) -file that can be fed into the final stages of your assembler to complete the consensus step. - -

    Tuning Suggestions

    - - -
  • As a rule of thumb, a single task should take a minute or two. If tasks are much longer than that, it becomes more difficult to measure progress and recover from failures. If tasks are much shorter than that, the overhead of managing the tasks becomes excessive. Use the -n parameter to increase or decrease the size of tasks. -
  • When using banded alignment (the default), the -q match quality parameter has a significant effect on speed. A higher quality threshhold will consider more alignments, but take longer and produce more output. -
  • -The columns of the output are as follows: - -
  • Total Time is the elapsed time the master has been running. -
  • Workers Idle is the number of workers that are connected, but do not have a task to run. -
  • Workers Busy is the number of workers that are currently running a task. -
  • Tasks Submitted is the cumulative number of tasks created by the master. -
  • Tasks Idle is the number of tasks waiting for a worker. -
  • Tasks Running is the number of tasks currently running on a worker. -
  • Tasks Done is the cumulative number of tasks completed. -
  • Avg Time is the average time a task takes to run. An average time of 60 seconds is a good goal. -
  • K-Cand Loaded indicates the number of candidates loaded into memory (in thousands). -
  • K-Seqs Loaded indicates the number of sequences loaded into memory (in thousands). -
  • Speedup is the approximate speed of the distributed framework, relative to one processor. -
  • - -
  • - -

    For More Information

    - -For the latest information about SAND, please visit our web site and subscribe to our mailing list. - -
    - - diff -Nru cctools-7.0.22/doc/umbrella.html cctools-7.1.2/doc/umbrella.html --- cctools-7.0.22/doc/umbrella.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/umbrella.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,1037 +0,0 @@ - - - - - - - Umbrella User's Manual - - - -
    -

    Umbrella User's Manual

    -

    Last edited: May 2015

    - - - -

    Please use the following citation for Umbrella in a scientific publication:

    - - - -

    Overview

    - -

    Umbrella is a tool for specifying and materializing - comprehensive execution environments, from the hardware all the way up to - software and data. A user simply invokes Umbrella with the desired task, and - Umbrella parses the specification, - determines the minimum mechanism necessary to run the task, - downloads missing dependencies, and executes the application through the available minimal - mechanism, which may be direct execution, a system container (Docker, chroot, Parrot), a local - virtual machine (i.e., VMware), or submission to a cloud environment (i.e., - Amazon EC2) or grid environment (i.e., Condor). The following figure shows - the overview of Umbrella.

    - - -

    The architecture of Umbrella is shown in the figure below.

    - - - -

    Umbrella contains five parts: user inputs, Umbrella, underlying - execution engines, remote archive and metadata database. User inputs include - the specification, the task command, the input files, and the output directory. - Umbrella connects the user's execution environment specification with the - underlying execution engines, which includes local resources, clusters, cloud - resources, and grid resources. The remote archive stores the OS images, - software dependencies and data dependencies. The metadata database maintains - the mapping relationship between the dependency name referred in the - specification and the actual storage location within the remote archive.

    - -

    Currently, Umbrella supports the following execution engines: parrot, - destructive, docker, ec2, local, and condor. Parrot execution engine can be - used without any special authority on the host machine; Docker execution engine - requires Docker is installed on the host machine and the user is given the - right authority to use Docker; destructive execution engine requires the user - to be the root user. Local execution engine first check whether Docker exists. - If yes, use docker execution engine; if not, use parrot execution engine.

    - -

    To get started using Umbrella, please begin by installing CCTools on your system. When you - are ready, proceed with the Have a Try - section below. If you are interested in running your CMS applications - through Umbrella, proceed with the Try CMS Applications with Umbrella.

    - -

    If you want to construct umbrella specification for your own application, - proceed with the Create Your Specification section - below.

    - -

    Note: The Docker execution engine of Umbrella can not work together with AFS. - If you try to use the Docker execution engine of Umbrella, - please do not install CCTools on your AFS directory.

    - -

    Have a Try

    - -

    The part uses a Ray-Tracing application as an example to illustrate - how to execute an application with Umbrella. - -

    The specification for the application is povray.umbrella: - { - "comment": "A ray-tracing application which creates video frames.", - "hardware": { - "cores": "2", - "disk": "3GB", - "arch": "x86_64", - "memory": "2GB" - }, - "kernel": { - "version": ">=2.6.18", - "name": "linux" - }, - "os": { - "name": "Redhat", - "format": "tgz", - "checksum": "62aa9bc37afe3f738052da5545832c80", - "source": [ - "http://ccl.cse.nd.edu/research/data/hep-case-study/62aa9bc37afe3f738052da5545832c80/redhat-5.10-x86_64.tar.gz" - ], - "version": "5.10", - "uncompressed_size": "1622159360", - "id": "62aa9bc37afe3f738052da5545832c80", - "size": "503195460" - }, - "software": { - "povray-3.6.1-redhat5-x86_64": { - "format": "tgz", - "checksum": "9b7f2362e6b927c8ef08c3f92599e47c", - "source": [ - "http://ccl.cse.nd.edu/research/data/hep-case-study/9b7f2362e6b927c8ef08c3f92599e47c/povray-3.6.1-redhat5-x86_64.tar.gz" - ], - "action": "unpack", - "mountpoint": "/software/povray-3.6.1-redhat5-x86_64", - "mount_env": "POVRAY_PATH", - "uncompressed_size": "3004423", - "id": "9b7f2362e6b927c8ef08c3f92599e47c", - "size": "1471457" - } - }, - "data": { - "4_cubes.pov": { - "format": "plain", - "checksum": "c65266cd2b672854b821ed93028a877a", - "source": [ - "http://ccl.cse.nd.edu/research/data/hep-case-study/c65266cd2b672854b821ed93028a877a/4_cubes.pov" - ], - "mountpoint": "/tmp/4_cubes.pov", - "id": "c65266cd2b672854b821ed93028a877a", - "size": "1757" - }, - "WRC_RubiksCube.inc": { - "format": "plain", - "checksum": "2f8afdd09fc3a6177c6f1977bb3bdae7", - "source": [ - "http://ccl.cse.nd.edu/research/data/hep-case-study/2f8afdd09fc3a6177c6f1977bb3bdae7/WRC_RubiksCube.inc" - ], - "mountpoint": "/tmp/WRC_RubiksCube.inc", - "id": "2f8afdd09fc3a6177c6f1977bb3bdae7", - "size": "28499" - } - }, - "environ": { - "PWD": "/tmp" - }, - "cmd": "povray +I/tmp/4_cubes.pov +O/tmp/frame000.png +K.0 -H50 -W50", - "output": { - "files": [ - "/tmp/frame000.png" - ], - "dirs": [ - ] - } -} - -

    The umbrella command for Parrot execution engine:

    - umbrella \ - --spec povray.umbrella \ - --localdir /tmp/umbrella_test/ \ - --output "/tmp/frame000.png=/tmp/umbrella_test/parrot_povray" \ - --sandbox_mode parrot \ - --log umbrella.log \ - run - -

    After this umbrella command is finished, you can find the output file, - frame000.png, at - /tmp/frame000.png. The output png file should - look like:

    - - - -

    You can check the help document of umbrella for the option settings by running the command: umbrella -h

    - -

    You can try other execution engines following the instructions - in the Different Execution Engines of Umbrella section.

    - -

    To construct umbrella specification for your own application, - proceed with the Create Your Specification section - below.

    - -

    To try other behaviors supported by Umbrella, process with the Behaviors of Umbrella section below.

    - -

    Try CMS Applications with Umbrella

    - -

    The part uses a CMS application as an example to illustrate - how to execute a CMS application with Umbrella. - -

    The specification for the application is cms_complex.umbrella: - { - "comment": "a CMS application whose software dependencies are all from CVMFS, and whose data dependencies are not from CVMFS.", - "hardware": { - "cores": "2", - "disk": "3GB", - "arch": "x86_64", - "memory": "2GB" - }, - "kernel": { - "version": ">=2.6.32", - "name": "linux" - }, - "os": { - "name": "Redhat", - "format": "tgz", - "checksum": "669ab5ef94af84d273f8f92a86b7907a", - "source": [ - "http://ccl.cse.nd.edu/research/data/hep-case-study/669ab5ef94af84d273f8f92a86b7907a/redhat-6.5-x86_64.tar.gz" - ], - "version": "6.5", - "uncompressed_size": "1743656960", - "id": "669ab5ef94af84d273f8f92a86b7907a", - "size": "633848940" - }, - "software": { - "cmssw-5.2.5-slc5-amd64": { - "mountpoint": "/cvmfs/cms.cern.ch", - "mount_env": "CMS_DIR", - "id": "cvmfs://cvmfs/cms.cern.ch", - "source": [ - "cvmfs://cvmfs/cms.cern.ch" - ] - } - }, - "data": { - "final_events_2381.lhe": { - "format": "plain", - "checksum": "cb9878132aad42e7db30eabd214be8e2", - "source": [ - "http://ccl.cse.nd.edu/research/data/hep-case-study/cb9878132aad42e7db30eabd214be8e2/final_events_2381.lhe" - ], - "action": "none", - "mountpoint": "/tmp/final_events_2381.lhe", - "mount_env": "INPUT_FILE", - "id": "cb9878132aad42e7db30eabd214be8e2", - "size": "17840176" - }, - "cms_complex.sh": { - "format": "plain", - "checksum": "9f8587e9ef90ab4f5de8b3c9ab5cf0cb", - "source": [ - "http://ccl.cse.nd.edu/research/data/hep-case-study/9f8587e9ef90ab4f5de8b3c9ab5cf0cb/cms_complex.sh" - ], - "mountpoint": "/tmp/cms_complex.sh", - "id": "9f8587e9ef90ab4f5de8b3c9ab5cf0cb", - "size": "399" - } - }, - "environ": { - "PWD": "/tmp", - "CMS_VERSION": "CMSSW_5_2_5", - "SCRAM_ARCH": "slc5_amd64_gcc462" - }, - "cmd": "/bin/sh /tmp/cms_complex.sh", - "output": { - "files": [], - "dirs": [ - "/tmp/sim_job" - ] - } -} - - The CMS analysis code is cms_complex.sh: - #!/bin/sh - -rm -rf sim_job -mkdir sim_job -cd sim_job - -. /cvmfs/cms.cern.ch/cmsset_default.sh -scramv1 project -f CMSSW ${CMS_VERSION} -cd ${CMS_VERSION} -eval `scram runtime -sh` -cd .. -cmsDriver.py Hadronizer_MgmMatchTuneZ2star_8TeV_madgraph_cff.py -s GEN \ ---eventcontent=RAWSIM --datatier GEN -n 10 \ ---filein=file:/tmp/final_events_2381.lhe \ ---filetype=LHE --conditions=START52_V9::All - - The analysis code will create a directory called sim_job and put the CMSSW software dependencies under it. - -

    The umbrella command for Parrot execution engine when the local machine has cvmfs installed:

    - umbrella \ - --sandbox_mode parrot \ - --log umbrella.log \ - --spec cms_complex.umbrella \ - --localdir /tmp/umbrella_test/ \ - --output "/tmp/sim_job=/tmp/umbrella_test/parrot_cms_complex_output" \ - --use_local_cvmfs \ - run - -

    The umbrella command for Parrot execution engine when the local machine does not have cvmfs installed:

    - umbrella \ - --sandbox_mode parrot \ - --log umbrella.log \ - --spec cms_complex.umbrella \ - --localdir /tmp/umbrella_test/ \ - --output "/tmp/sim_job=/tmp/umbrella_test/parrot_cms_complex_output" \ - --cvmfs_http_proxy http://cache01.hep.wisc.edu:3128 \ - run - -

    After umbrella finishes executing the CMS application, you can see the analysis result: - 21-May-2015 11:05:45 EDT Initiating request to open LHE file file:/tmp/final_events_2381.lhe -21-May-2015 11:05:45 EDT Successfully opened LHE file file:/tmp/final_events_2381.lhe -Begin processing the 1st record. Run 1, Event 1, LumiSection 1 at 21-May-2015 11:05:45.202 EDT -Begin processing the 2nd record. Run 1, Event 2, LumiSection 1 at 21-May-2015 11:05:45.204 EDT -Begin processing the 3rd record. Run 1, Event 3, LumiSection 1 at 21-May-2015 11:05:45.210 EDT -Begin processing the 4th record. Run 1, Event 4, LumiSection 1 at 21-May-2015 11:05:45.214 EDT -Begin processing the 5th record. Run 1, Event 5, LumiSection 1 at 21-May-2015 11:05:45.216 EDT -Begin processing the 6th record. Run 1, Event 6, LumiSection 1 at 21-May-2015 11:05:45.235 EDT -Begin processing the 7th record. Run 1, Event 7, LumiSection 1 at 21-May-2015 11:05:45.244 EDT -Begin processing the 8th record. Run 1, Event 8, LumiSection 1 at 21-May-2015 11:05:45.248 EDT -Begin processing the 9th record. Run 1, Event 9, LumiSection 1 at 21-May-2015 11:05:45.249 EDT -Begin processing the 10th record. Run 1, Event 10, LumiSection 1 at 21-May-2015 11:05:45.264 EDT - -============================================= - -MessageLogger Summary - - type category sev module subroutine count total - ---- -------------------- -- ---------------- ---------------- ----- ----- - 1 fileAction -s AfterSource 2 2 - - type category Examples: run/evt run/evt run/evt - ---- -------------------- ---------------- ---------------- ---------------- - 1 fileAction BeforeEvents BeforeEvents - -Severity # Occurrences Total Occurrences --------- ------------- ----------------- -System 2 2 - - - The analysis directory sim_job will be put in the output directory, - /tmp/umbrella_test/parrot_cms_complex_output. - -

    You can check the help document of umbrella for the option settings by running the command: umbrella -h

    - -

    For more information about the Umbrella support for CMS applications, please - check the Umbrella Support for CMS Application section. -

    - -

    You can check the help document of umbrella for the option settings by running the command: umbrella -h

    - -

    You can try other execution engines following the instructions in the - Different Execution Engines of Umbrella section.

    - -

    To construct umbrella specification for your own application, - proceed with the Create Your Specification section - below.

    - -

    To try other behaviors supported by Umbrella, process with the Behaviors of Umbrella section below.

    - -

    Create Your Specification

    - -

    The Umbrella specification - for an application is also a JSON file. Here is the specification file for a - Ray-Tracing application:

    - - { - "comment": "A ray-tracing application which creates video frames.", - "hardware": { - "cores": "2", - "disk": "3GB", - "arch": "x86_64", - "memory": "2GB" - }, - "kernel": { - "version": ">=2.6.18", - "name": "linux" - }, - "os": { - "name": "Redhat", - "format": "tgz", - "checksum": "62aa9bc37afe3f738052da5545832c80", - "source": [ - "http://ccl.cse.nd.edu/research/data/hep-case-study/62aa9bc37afe3f738052da5545832c80/redhat-5.10-x86_64.tar.gz" - ], - "version": "5.10", - "uncompressed_size": "1622159360", - "id": "62aa9bc37afe3f738052da5545832c80", - "size": "503195460" - }, - "software": { - "povray-3.6.1-redhat5-x86_64": { - "format": "tgz", - "checksum": "9b7f2362e6b927c8ef08c3f92599e47c", - "source": [ - "http://ccl.cse.nd.edu/research/data/hep-case-study/9b7f2362e6b927c8ef08c3f92599e47c/povray-3.6.1-redhat5-x86_64.tar.gz" - ], - "action": "unpack", - "mountpoint": "/software/povray-3.6.1-redhat5-x86_64", - "mount_env": "POVRAY_PATH", - "uncompressed_size": "3004423", - "id": "9b7f2362e6b927c8ef08c3f92599e47c", - "size": "1471457" - } - }, - "data": { - "4_cubes.pov": { - "format": "plain", - "checksum": "c65266cd2b672854b821ed93028a877a", - "source": [ - "http://ccl.cse.nd.edu/research/data/hep-case-study/c65266cd2b672854b821ed93028a877a/4_cubes.pov" - ], - "mountpoint": "/tmp/4_cubes.pov", - "id": "c65266cd2b672854b821ed93028a877a", - "mode": "0644", - "size": "1757" - }, - "WRC_RubiksCube.inc": { - "format": "plain", - "checksum": "2f8afdd09fc3a6177c6f1977bb3bdae7", - "source": [ - "http://ccl.cse.nd.edu/research/data/hep-case-study/2f8afdd09fc3a6177c6f1977bb3bdae7/WRC_RubiksCube.inc" - ], - "mountpoint": "/tmp/WRC_RubiksCube.inc", - "id": "2f8afdd09fc3a6177c6f1977bb3bdae7", - "mode": "0755", - "size": "28499" - } - }, - "environ": { - "PATH": "/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin", - "PWD": "/tmp" - }, - "cmd": "povray +I/tmp/4_cubes.pov +O/tmp/frame000.png +K.0 -H50 -W50", - "output": { - "files": [ - "/tmp/frame000.png" - ], - "dirs": [ - ] - } -} - -

    An Umbrella specification includes multiple parts: hardware, kernel, os, software, data, environ, cmd and output. You can have other sections for comments, such - as the comment section in the example.

    - -

    hardware Section (required):

    - -
      - -
    • arch (required): the hardware architecture the application needs to - run on. Options: x86_64, i386, i686. Current support options: x86_64. Not case - sensitive.
    • - -
    • cores (optional): the number of cores the applications needs. - Options: 1, 2, 3, 4, ... Default: 1.
    • - -
    • memory (optional): the memory space the application needs in the - unit of GB. Options: 1GB, 2GB, .... Default: 1GB. Not case sensitive.
    • - -
    • disk (optional): the disk space the application needs in the unit of - GB. Options: 1GB, 2GB, .... Default: 1GB. Not case sensitive.
    • - -
    - -

    kernel Section (required):

    - -
      - -
    • name (required): the kernel type the application requires. Options: - linux, windows. Current support options: linux. Not case sensitive.
    • - -
    • version (required): the kernel version in the format of - A.B.C (A: kernel version; B: major revision of the kernel; C: the - minor revision of the kernel). You can specify this attribute to a single value - like 2.6.18 or a range like >=2.6.18 or a range like - [2.6.18, 2.6.32].
    • - -
    - -

    os Section (required):

    - -
      - -
    • name (required): the OS name. Options: redhat, centos, arch, .... - Not case sensitive.
    • - -
    • version (required): the OS version in the format of A.B: A - is the main version number and B is the minor version number. Exmaples: 5.10, - 6.5.
    • - -
    • id (optional): the id of the OS image. There may exist multiple OS - images for redhat 5.10, the id attribute uniquely identifies an OS image.
    • - -
    • action (required): the action on the downloaded dependencies. - Options: none, unpack. none leaves the downloaded - dedendency as it is. unpack uncompresses the dependency. Default: unpack. Not case - sensitive.
    • - -
    - -

    software Section (optional):

    - -

    Each software dependency has a case-sensitive name. - The name of a software dependency is in the format of 'A-B-C-D', where A is - the software name, B is the software version, C is OS distro name (the OS name followed by - the main version number, e.g., redhat5), D is - hardware architecture. povray-3.6.1-redhat5-x86_64 is an example of - this category.

    - -
      - -
    • id (optional): the id of the software. There may exist multiple - versions of a software due to the - difference of complication settings. the id attribute uniquely identifies a - software.
    • - -
    • action (required): the action on the downloaded dependencies. - Options: none, unpack. none leaves the downloaded - dedendency as it is. unpack uncompresses the dependency. Default: unpack. Not case - sensitive.
    • - -
    • mode (optional): the file mode set as a string, such as "0644".
    • - -
    • mountpoint (optional): the mountpoint of the software. Case - sensitive.
    • - -
    • mount_env (optional): Replace hard-coded paths in the shell script - with environment variables to make it easy to redirect dependencies in the - future. Case sensitive. In the above example, POVRAY_PATH is used inside - the user's source code instead of the path /software/povray-3.6.1-redhat5-x86_64.
    • - -

      Note: Even if both mountpoint and mount_env are optional, at least one - of them must be provided.

      - -

      Relationship between mountpoint and mount_env (3 Cases):

      - -

      Case 1: If only mountpoint is set to A in a specification, the - dependency will be downloaded into the umbrella local cache with the file path - of D, and a new mountpoint will be added into mount_dict (mount_dict[A] = D). -

      - -

      Case 2: If only mount_env is set to B in a specification, the - dependency will not be downloaded, package_search will be executed to get one - remote storage location, C, of the dependency, a new environment variable will - be set (env_para_dict[B] = C).

      - -

      Case 3: If mountpoint is set to A and mount_env is set to B in a - specification, the dependency will be downloaded into the umbrella local cache - with the file path of D, and a new mountpoint will be added into mount_dict - (mount_dict[A] = D) and a new environment variable will also be set - (env_para_dict[B] = A).

      -
    - -

    data Section (optional):

    - -

    Each data dependency has a name. - There is no special limitation on the name of a data dependency. - WRC_RubiksCube.inc is an example of this category.

    - -
      - -
    • id (optional): the id of the data. There may exist multiple versions - of a data. the id attribute uniquely identifies a data.
    • - -
    • action (required): the action on the downloaded dependencies. - Options: none, unpack. none leaves the downloaded - dedendency as it is. unpack uncompresses the dependency. Default: unpack. Not case - sensitive.
    • - -
    • mode (optional): the file mode set as a string, such as "0644".
    • - -
    • mountpoint (optional): the mountpoint of the data dependency. The same as - the mountpoint attribute of the software section. Case sensitive.
    • - -
    • mount_env (optional): the same as the mount_env attribute of the software section. Case sensitive.
    • - -

      Note: Even if both mountpoint and mount_env are optional, at least one - of them must be provided.

      -
    - -

    environ Section (optional):

    - -

    A list of key-value pairs. For example, "HOME": "/home/hmeng", - which sets the HOME environment variable used by the sandbox to execute the - applicition. Case sensitive.

    - -

    cmd Section (optional):

    - -

    The command to execute in the format of a string.

    - -

    output Section (optional):

    - -

    This section allows the creator of an Umbrella spec to specify the output files and directories. Correspondingly, - there are two subsections: files (a list of strings representing the output files) and dirs (a list - of strings representing the output dirs).

    - -

    Common Attributes of OS, Software, Data Dependencies:

    -

    Each OS, software - and data dependency can have the following attributes: source, checksum, size, format, - uncompressed_size, and upload.

    - -

    These attributes are required in a self-contained umbrella specification, - but not required in an umbrella specification which is attached to a Metadata - Database.

    - -
      - -
    • source: a list of storage location of the dependency, which includes - one or more resource URL. Currently Umbrella supports the URLs identifying the resources - from the following remote services. For private resources from OSF, and S3, the corresponding - authentication information can be provided through the Umbrella options.
    • - -
      - -
      remote serviceexample path -
      Local/home/hmeng/data/input -
      Hypertext Transfer Protocolhttp://www.somewhere.com/index.html -
      HTTPShttps://ccl.cse.nd.edu/index.html -
      Amazon S3s3+https://s3.amazonaws.com/testhmeng/4_cubes.pov -
      Open Science Frameworkosf+https://files.osf.io/v1/...7559c3a -
      Gitgit+https://github.com/ayrodrig/OutreachExercise2010.git -
      CernVM File Systemcvmfs://cvmfs/cms.cern.ch -
      -
      - -
    • checksum: the checksum of the dependencies. Currently Umbrella only - supports md5 checksum. Not case sensitive.
    • - -
    • format: the perservation format of the dependency. Currently - Umbrella supports two formats: tgz (gzip compressed tarball) and - plain (plain text).
    • - -
    • size: the size of the dependency in bytes.
    • - -
    • uncompressed_size: the uncompressed size of the dependency in bytes, only meaningful - when the format attribute is not plain text.
    • - -
    • upload (optional): whether this dependency will be uploaded into the storage services - like OSF and S3 or not. The type of this field is boolean. This field can be set to be - false or true.
    • - -
    - -

    Relationship of id and checksum and source. The checksum of each package - can be used as the id of the package. - However, it is not necessary for them to be identical to each other. You can - implement your own mechanism once the id of each - package is unique for one dependency. - In case when the checksum of one dependency is not provided or - feasible, the first item of the source section can be used as the value of the - id attribute. For example, in - the CMS example, cmssw-4.2.8-slc5-amd64 is delivered through cvmfs - during runtime, and no checksum is provided, the url from the source section, - cvmfs://cvmfs/cms.cern.ch is used as the id of this package. -

    - -

    To create your own umbrella metadata database, please check Create Your Own Metadata Database. - -

    Behaviors of Umbrella

    - -

    Execute your Application through Umbrella

    - -

    For the following examples, cms_opendata_S.umbrella - is a self-contained umbrella specification, - cms_opendata.umbrella - is an umbrella specification which does not include any metadata information.

    - -

    The metadata information here includes: source, checksum, size, format, and uncompressed_size.

    - -

    An Example for Umbrella run behavior:

    - umbrella \ - --spec cms_opendata_S.umbrella \ - --localdir /tmp/umbrella_test/ \ - --output "/tmp/sim_job=/tmp/umbrella_test/parrot_cms_opendata_output" \ - --sandbox_mode parrot \ - --log umbrella.log \ - --cvmfs_http_proxy http://cache01.hep.wisc.edu:3128 \ - run - -

    cms_opendata_S.umbrella is self-contained, so no metadata database is needed.

    - -

    This example uses parrot execution engine, for other - execution engines, please check the Different Execution Engines - of Umbrella section.

    - -

    The cvmfs_http_proxy option is used to specify a http proxy for cvmfs - access. If your application does not need to access cvmfs, ignore this - option.

    - -

    You can check the help document of umbrella for the option settings by running the command: umbrella -h

    -

    You can check the help document of umbrella run behavior by running the command: umbrella run help

    - -

    Validate an Umbrella Spec File

    -

    Validate a self-contained Umbrella specificiation:

    - umbrella \ - --spec cms_opendata_S.umbrella \ - validate - -

    Validate an Umbrella specificiation with the help of a metadata db:

    - umbrella \ - --spec cms_opendata.umbrella \ - --meta http://ccl.cse.nd.edu/software/umbrella/database/packages.json \ - validate - -

    You can check the help document of umbrella for the option settings by running the command: umbrella -h

    -

    You can check the help document of umbrella validate behavior by running the command: umbrella validate help

    - -

    Split an Umbrella Spec File into Spec and Meta

    -

    Split an umbrella spec file into spec and meta:

    - umbrella \ - --spec cms_opendata_S.umbrella \ - --log umbrella.log \ - split f2 db2 - -

    After the command is done, f2 becomes an umbrella specification without any - metadata information, db2 only includes the metadata information of the - dependencies.

    - -

    You can check the help document of umbrella for the option settings by running the command: umbrella -h

    -

    You can check the help document of umbrella split behavior by running the command: umbrella split help

    - -

    Expand an Umbrella Spec File into a Self-Contained Spec

    -

    Expand an umbrella spec file into a self-contained spec:

    - umbrella \ - --spec cms_opendata.umbrella \ - --meta http://ccl.cse.nd.edu/software/umbrella/database/packages.json \ - --sandbox_mode parrot \ - --log umbrella.log \ - expand f1 - -

    After this command, f1 becomes self-contained including both the specification and metadata info of its dependencies. - The metadata info are abstract from the metadata db provided through the --meta option.

    - -

    You can check the help document of umbrella for the option settings by running the command: umbrella -h

    -

    You can check the help document of umbrella expand behavior by running the command: umbrella expand help

    - -

    Filter the Meta Info for an Umbrella Spec File from a Huge Metadata DB

    -

    Filter the meta information for an umbrella spec file from a huge metadata db:

    - umbrella \ - --spec cms_opendata.umbrella \ - --meta http://ccl.cse.nd.edu/software/umbrella/database/packages.json \ - --sandbox_mode parrot \ - --log umbrella.log \ - filter db1 - -

    After this command, db1 only includes the metadata information of the dependencies involved in cms_opendata.umbrella.

    - -

    You can check the help document of umbrella for the option settings by running the command: umbrella -h

    -

    You can check the help document of umbrella filter behavior by running the command: umbrella filter help

    - -

    Upload the Dependencies in an Umbrella Spec into the Amazon S3

    -

    Upload the Dependencies in an Umbrella Spec into the Amazon S3:

    - umbrella \ - --spec cms_complex_S.umbrella \ - --localdir /tmp/umbrella_test/ \ - --log umbrella.log \ - upload s3 test_bucket public s3.umbrella - -

    test_bucket is the Amazon S3 bucket name which will be created to hold the dependencies. public specifies the access permission of the created bucket and the new objects in it is public (Anyone with the s3 link can download the resource). s3.umbrella is the new umbrella spec which has all the dependencies from the Amazon S3.

    - -

    After this command, a new file called s3.umbrella will be created and all the dependencies in it are from the Amazon S3.

    - -

    You can check the help document of umbrella for the option settings by running the command: umbrella -h

    -

    You can check the help document of umbrella upload behavior by running the command: umbrella upload help

    - -

    Upload the Dependencies in an Umbrella Spec into OSF

    -

    Upload the Dependencies in an Umbrella Spec into OSF:

    - umbrella \ - --spec cms_complex_S.umbrella \ - --localdir /tmp/umbrella_test/ \ - --log umbrella.log \ - upload osf proj_cms public osf.umbrella - -

    proj_cms is the OSF project name which will be created to hold the dependencies. public specifies the access permission of the created project and the new objects in it is public (Anyone with the osf link can download the resource). osf.umbrella is the new umbrella spec which has all the dependencies from OSF.

    - -

    After this command, a new file called osf.umbrella will be created and all the dependencies in it are from OSF.

    - -

    You can check the help document of umbrella for the option settings by running the command: umbrella -h

    -

    You can check the help document of umbrella upload behavior by running the command: umbrella upload help

    - -

    Different Execution Engines of Umbrella

    - -

    At runtime, Umbrella evaluates the local execution environment to see if it - is compatible with the specification. Umbrella evaluates the hardware - resources available, the kernel and OS distribution, and the software and data - dependencies. It then selects the mechanism necessary to deliver the desired - environment. In the case where Umbrella can not construct the desired - environment on the local machine, the user will be notified.

    - -

    Local Cache and Mounting Mechanism. One cache directory will be set - on each execution node involved in the execution engine to avoid download the - same data from the remote archive repeatedly. Umbrella downloads and caches OS - images, software dependencies, and data dependencies in the host machine, and - then creates a sandbox to execute the application. To enable software - reusability by multiple users, Umbrella constructs the sandbox for each - application through mounting-based sandbox techniques.

    - -

    The following figure shows the relationship between the remote archive, the - local cache and the sandbox for each application. Sandbox 1 uses the - root filesystem of the host machine as the root filesystem and mounts the - needed software and data dependencies (A and G) into it. - Sandbox 2 needs to construct a separate root filesystem which groups - together the needed OS image (C), software dependency - (A).

    - - - -

    The following parts uses a Ray-Tracing application as an example to illustrate - how to use different execution engines of Umbrella to execute the application. - -

    The specification for the application is povray_S.umbrella. - There are two input files 4_cubes.pov - and WRC_RubiksCube.inc. - The command for this application is:povray +I4_cubes.pov +Oframe000.png +K.0 -H50 -W50 Suppose you do your umbrella test under - /tmp/umbrella. First download the specification into /tmp/umbrella.

    - - -

    Execute your Application through Umbrella - Parrot

    - -

    The umbrella command for Parrot execution engine:

    - umbrella \ - --spec povray_S.umbrella \ - --localdir /tmp/umbrella_test/ \ - --output "/tmp/frame000.png=/tmp/umbrella_test/parrot_povray" \ - --sandbox_mode parrot \ - --log umbrella.log \ - run - -

    Execute your Application through Umbrella - Docker

    - -

    The umbrella command for Docker execution engine:

    - umbrella \ - --spec povray_S.umbrella \ - --localdir /tmp/umbrella_test/ \ - --output "/tmp/frame000.png=/tmp/umbrella_test/docker_povray" \ - --sandbox_mode docker \ - --log umbrella.log \ - run - -

    Don't do the Docker execution engine test under your AFS, it will fail due to the AFS ACL.

    - -

    Execute your Application through Umbrella - EC2

    - -

    The umbrella command for ec2 execution engine:

    - umbrella \ - --spec povray_S.umbrella \ - --localdir /tmp/umbrella_test/ \ - --output "/tmp/frame000.png=/tmp/umbrella_test/ec2_povray/output.png" \ - --sandbox_mode ec2 \ - --ec2_log umbrella.log.ec2 \ - --ec2_sshkey ~/bin/feb272015.pem \ - --ec2_key feb272015 \ - --ec2_instance_type m3.medium \ - --log umbrella.log \ - run - -

    Using the ec2 execution engine requires the composer of an Umbrella specification to specify the AMIs, its region and - default user in the os section of the umbrella spec. For example,

    "ec2": { - "ami": "ami-2cf8901c", - "region": "us-west-2", - "user": "ec2-user" - } - -

    To repeat an experiment using Umbrella ec2 execution engine, you need to - provide your EC2 key pair, security group, ssh key and instance type through - the umbrella options.

    - -

    Note that the EC2 AMIs, the security groups, key pairs are all regional - resources ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resources.html - ). Therefore, please check the region setting of the desired AMI in the - umbrella spec file, and provide security group, key pairs, ssh keys in the same - region. The security group used should allow incoming ssh traffic.

    - -

    You can check the help document of umbrella for the option settings by running the command: umbrella -h

    -

    You can check the help document of umbrella run behavoir by running the command: umbrella run help

    - -

    Create Your Own Metadata Database

    - -

    - When your have multiple relavant applications which share lots of their dependencies, - instead of putting metadata information of each dependency into the Umbrella specification, - you can ceate a metadata database which includes all the metadata information. - Here is - one example of an Umbrella metadata database, which is a JSON file.

    - - - Here is an example of metadata database: - "povray-3.6.1-redhat5-x86_64": { - "9b7f2362e6b927c8ef08c3f92599e47c": { - "source":[ - "http://ccl.cse.nd.edu/research/data/hep-case-study/9b7f2362e6b927c8ef08c3f92599e47c/povray-3.6.1-redhat5-x86_64.tar.gz" - ], - "format": "tgz", - "checksum": "9b7f2362e6b927c8ef08c3f92599e47c", - "uncompressed_size": "3004423", - "size": "1471457" - }, - "c9da9e46b3ce0f7f9885ce60077c45c5": { - "source":[ - "http://ccl.cse.nd.edu/research/data/hep-case-study/c9da9e46b3ce0f7f9885ce60077c45c5/povray-3.6.1-redhat5-x86_64.tar.gz" - ], - "format": "tgz", - "checksum": "c9da9e46b3ce0f7f9885ce60077c45c5", - "uncompressed_size": "3004423", - "size": "1471457" - } -}, -"redhat-5.10-x86_64": { - "62aa9bc37afe3f738052da5545832c80": { - "source": [ - "http://ccl.cse.nd.edu/research/data/hep-case-study/62aa9bc37afe3f738052da5545832c80/redhat-5.10-x86_64.tar.gz" - ], - "format": "tgz", - "checksum": "62aa9bc37afe3f738052da5545832c80", - "uncompressed_size": "1622159360", - "size": "503195460" - } -}, -"cmssw-4.2.8-slc5-amd64": { - "cvmfs://cvmfs/cms.cern.ch": { - "source": [ - "cvmfs://cvmfs/cms.cern.ch" - ] - } -}, -"final_events_2381.lhe": { - "cb9878132aad42e7db30eabd214be8e2": { - "source": [ - "http://ccl.cse.nd.edu/research/data/hep-case-study/cb9878132aad42e7db30eabd214be8e2/final_events_2381.lhe" - ], - "format": "plain", - "checksum": "cb9878132aad42e7db30eabd214be8e2", - "size": "17840176" - } -} - -

    Naming Rules of Dependencies:

    - -

    The name of a software dependency is in the format of 'A-B-C-D', where A is - the software name, B is the software version, C is OS distro name, D is - hardware architecture. povray-3.6.1-redhat5-x86_64 is an example of - this category.

    - -

    The name of an OS image dependency is in the format of 'A-B-C', where A is - the OS name, B is the OS version, C is hardware architecture. - redhat-5.10-x86_64 is an example of this category.

    - -

    There is no special limitation on the name of a data dependency. - final_events_2381.lhe is an example of this category.

    - -

    Multiple Packages for One Dependency. According to the building and - compilation settings, there may be multiple packages for one dependency. In - this case, all the packages for one dependency will be organized together and - the `id` attribute of each package will be used as item key to differentiate - different packages. For example, for the software dependency - povray-3.6.1-redhat5-x86_64, there are two different packages: one - with the id of 9b7f2362e6b927c8ef08c3f92599e47c and one with the id of - c9da9e46b3ce0f7f9885ce60077c45c5.

    - -

    Each package may include the following attributes: source, checksum, size, format, and uncompressed_size.

    - -

    Relationship of id and checksum and source. The checksum of each package - in the archive can be used as the id of the package in our implementation of metadata database. - However, it is not necessary for them to be identical to each other. You can - implement your metadata database in a different semantics once the id of each - package is unique for one dependency. - In case when the checksum of one dependency is not provided or - feasible, the first item of the source section will be used. For example, in - the above example, cmssw-4.2.8-slc5-amd64 is delivered through cvmfs - during runtime, and no checksum is provided, the url from the source section, - cvmfs://cvmfs/cms.cern.ch is used as the id of this package. -

    - -

    Organization of the Local Cache. Within the local cache, the id of - each package dependency will be used to create a directory under the - <localdir>/cache, then the package will be put into - <localdir>/cache/<idgt;/<name>. Therefore, - <localdir>/cache/9b7f2362e6b927c8ef08c3f92599e47c/povray-3.6.1-redhat5-x86_64.tar.gz - will be the local location of the first povray package shown in the above - example. The uncompressed directory of the tarball will be - <localdir>/cache/9b7f2362e6b927c8ef08c3f92599e47c/povray-3.6.1-redhat5-x86_64.

    - -

    Organization of the Remote Archive. Within the remote archive, to - differentiate multiple packages for the same dependency and the different - dependencies, a directory with the name of the checksum of each package will be - created and functions as the direct parent directory of the package. Therefore, - in the remote archive, there is a directory named - 9b7f2362e6b927c8ef08c3f92599e47c, under which exists - povray-3.6.1-redhat5-x86_64.tar.gz However, the organization of the - remote archive can be in other format, once you have a way to differentiate the - packages.

    - -

    If you want to customize your own metadata database, please follow the - requirements above and then tell umbrella through --meta option to - use your own metadata database. For Example:

    - umbrella \ - --spec povray.umbrella \ - --meta http://ccl.cse.nd.edu/software/umbrella/database/packages.json \ - --localdir /tmp/umbrella_test/ \ - --output "/tmp/frame000.png=/tmp/umbrella_test/local_povray" \ - --sandbox_mode local \ - --log umbrella.log \ - run - -

    There are two ways to create an Umbrella metadata database: -(1) use umbrella --spec spec_filename split new_spec_filename db_filename to abstract all the metadata information from -a self-contained umbrella specification. -(2) Follow the format of the metadata database and create your own metadata database manually. -

    - -

    Umbrella Support for CMS Application

    - -

    As for CMS applications which need software from CVMFS, Umbrella first - checks whether the execution node has CVMFS installed or not. If CVMFS is - installed and its CMS repository is mounted as /cvmfs/cms.cern.ch, the - application can run directly without the help from sandboxing techniques. If - CVMFS is not installed or the mountpoint /cvmfs/cms.cern.ch is not - found, Parrot will be used - to help access software from CVMFS.

    - -

    Like other software dependencies, the dependency of CMSSW will be specified - inside the software section of the specification, however, you only - need to specify the mountpoint attribute. The id and - action attributes for the CMSSW dependency will be ignored even if - they are specified. In fact, the support for CMS applications are hardcoded - inside the source code of Umbrella, not inside the metadata database.

    - -

    If you want to run this CMS application through Umbrella, please check the Try CMS Applications with Umbrella.

    -
    - - - diff -Nru cctools-7.0.22/doc/watchdog.html cctools-7.1.2/doc/watchdog.html --- cctools-7.0.22/doc/watchdog.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/watchdog.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - - -Watchdog User's Manual - - - - -
    -

    Watchdog User's Manual

    - -

    Last edited: February 2006

    - -

    watchdog is Copyright (C) 2003-2004 Douglas Thain and Copyright (C) 2005- The University of Notre Dame.
    -All rights reserved.
    -This software is distributed under the GNU General Public License.
    -See the file COPYING for details.

    - - -

    Overview

    - -Keeping a collection of processes running in large distributed system -presents many practical challenges. Machines reboot, programs crash, -filesystems go up and down, and software must be upgraded. Ensuring -that a collection of services is always running and up-to-date can require -a large amount of manual activity in the face of these challenges. -

    -watchdog is a tool for keeping server processes running continuously. -The idea is simple: watchdog is responsible for starting a server. -If the server should crash or exit, watchdog restarts it. -If the program on disk is upgraded, watchdog will cleanly stop and -restart the server to take advantage of the new version. -To avoid storms of coordinated activity in a large cluster, -these actions are taken with an exponential backoff and a random factor. -

    -watchdog is recommended for running the -chirp and catalog servers found elsewhere in this package. - -

    Invocation

    - -To run a server under the eye of watchdog, simply place watchdog -in front of the server name. That is, if you normally run: - -/path/to/chirp_server -r /my/data -p 10101 - -Then run this instead: - -watchdog /path/to/chirp_server -r /my/data -p 10101 - -For most situations, this is all that is needed. -You may fine tune the behavior of watchdog in -the following ways: -

    -Logging. Watchdog keeps a log of all actions that it -performs on the watched process. Use the -d all option -to see them, and the -o file option to direct them -to a log file. -

    -Upgrading. To upgrade servers running on a large cluster, -simply install the new binary in the filesystem. By default, -each watchdog will check for an upgraded binary once per hour -and restart if necessary. Checks are randomly distributed around -the hour so that the network and/or filesystem will not be overloaded. -(To force a restart, send a SIGHUP to the watchdog.) -Use the -c option to change the upgrade check interval. -

    -Timing. Watchdog has several internal timers to ensure -that the system is not overloaded by cyclic errors. These can -be adjusted by various options (in parentheses.) A minimum time -of ten seconds (-m) must pass between a server stop and restart, -regardless of the cause of the restart. If the server exits within -the first minute (-s) of execution, it is considered to have failed. -For each such failure, the minimum restart time is doubled, up to -a maximum of one hour (-M). If the program must be stopped, it -is first sent an advisory SIGTERM signal. If it does not exit -voluntarily within one minute (-S), then it is killed outright -with a SIGKILL signal. - -

    - - diff -Nru cctools-7.0.22/doc/wavefront.html cctools-7.1.2/doc/wavefront.html --- cctools-7.0.22/doc/wavefront.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/wavefront.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,130 +0,0 @@ - - - - - - -Wavefront User's Manual - - - - -
    -

    Wavefront User's Manual

    - -

    Last edited: June 2013

    - -

    Wavefront is Copyright (C) 2010- The University of Notre Dame.
    -All rights reserved.
    -This software is distributed under the GNU General Public License.
    -See the file COPYING for details.

    - -

    Introduction

    - - - - - - -
    - - -
    -Wavefront( array R[x,0], array R[0,y], function F(x,y,d) )
    -returns matrix R where
    -R[i,j] = F( R[i-1,j], R[i,j-1], R[i-1,j-1] )
    -
    -
    - -The Wavefront abstraction computes a two dimensional recurrence relation. -You provide a function F that accepts the left (x), right (y), and diagonal (d). -The abstraction then runs each of the functions in the order of dependency, -handling load balancing, data movement, fault tolerance, and so on. -

    To use Wavefront, install the Cooperative Computing Tools and -run the program named wavefront_master. You need to set up an -input file with initial boundary values of R, and provide a function that -computes a new cell from adjacent cells. Each line of the input file has the format: - -row column arg1,arg2,... - -In which row and column describe the position of a cell, with zero-based -indices, and arg1,arg2,... is the list of arguments fed to F (that is, each -R[i,j] is actually a tuple). - - -To run wavefront, specifying the program that computes each cell, and the -number of cells in each dimension, for example: - -wavefront_master ./func.exe 10 10 input.data output.data - -in which input.data is the file with the initial boundary conditions, -and output.data are the results computed for a 10x10 matrix. - -The program func.exe may be written in any language that you like. -For each cell of the result, the program will be invoked like this: - -./func.exe x y x-file y-file d-file - -in which each of x-file, y-file and d-file are files -that contain the data from -the x, y, and diagonal neighbors, in the format: - -arg1,arg2,... - -These files are generated automatically by wavefront_master. Your -function is required to parse them, and to print the result of the current cell -to stdout, in the format: - -arg1,arg2,... - -wavefront_master is a Work Queue application, thus it does not perform -any work by itself, but it relies on workers connecting to it. To launch a -single worker: - -work_queue_worker mymachine.somewhere.edu 9123 - -in which 9123 is the default port for Work Queue applications. Work Queue -provides convenient alternatives to launch many workers simultaneously for -different batch systems (e.g. condor), which are explained in the section - Project names in the Work Queue manual . - -Wavefront will check for a few error conditions, and then start to run, -showing progress on the console like this: - -# elapsed time : waiting jobs / running jobs / complete jobs (percent complete) -0 : 0 / 1 / 0 (%0.00) -5 : 0 / 2 / 1 (%1.23) -10 : 0 / 3 / 3 (%3.70) -16 : 0 / 4 / 6 (%7.41) -21 : 0 / 4 / 8 (%9.88) -... - - -When complete, your outputs will be stored in the output file specified, with the same format as for the input data. - -Here is a graph of a 100 by 100 problem run on a 64-core machine, where each F takes about five seconds to execute: -

    - -

    -The -B option will write a bitmap progress image every second. -Each pixel represents the state of one cell in the matrix: green indicates complete, blue currently running, yellow ready to run, and red not ready. Here is an example of the progress of a small ten by ten job using five CPUs: -

    - - - -
    - - - -
    - -Note that at the broadest part of the workload, there are not enough CPUs to run all cells at once, so some must wait. Also note that the wave does not need to run synchronously: cells may begin to compute as soon as their dependencies are satisfied. - -

    For More Information

    - -For the latest information about Wavefront, please visit our web site and subscribe to our mailing list. - -
    - - diff -Nru cctools-7.0.22/doc/workqueue.html cctools-7.1.2/doc/workqueue.html --- cctools-7.0.22/doc/workqueue.html 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/doc/workqueue.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,820 +0,0 @@ - - - - - - -Work Queue User's Manual - - - - - -
    -

    Work Queue User's Manual

    - -

    Work Queue is Copyright (C) 2016- The University of Notre Dame. -All rights reserved. -This software is distributed under the GNU General Public License. -See the file COPYING for details. - -

    Overview

    - -

    -Work Queue is a framework for building large scale master-worker applications. -Using the Work Queue library, you create a custom master program that -defines and submits a large number of small tasks. Each task is distributed -to a remote worker process which executes it and returns the results. -As results are created, the master may generate more tasks to be executed. -It is not unusual to write programs that distribute millions of tasks -to thousands of remote workers. -

    -Each worker process is a common executable that can be deployed within -existing cluster and cloud systems, so it's easy to deploy a Work Queue -application to run on machines that you already have access to. -Whether you use a university batch system or a commercial cloud provider, -your Work Queue application will be able to run there. -

    -Work Queue is a production framework that has been used to create -highly scalable scientific applications in high energy physics, -bioinformatics, data mining, and other fields. -It can also be used as an execution system for the -Makeflow workflow engine. -To see some of the Work Queue applications running right now, -view the real time status page. - -

    - -

    Installing Work Queue

    -

    -Work Queue is part of the Cooperating Computing Tools. -The CCTools package can be downloaded from this web page. -Follow the installation instructions to setup CCTools -required for running Work Queue. The documentation for the full set of features -of the Work Queue API can be viewed from either within the CCTools package or -here -and here. - -

    Building a Work Queue Application

    - -

    -Let's begin by running a simple but complete example of a Work Queue -application. After trying it out, we will then show how to write a Work Queue -application from scratch. -

    -We assume that you have downloaded and installed the cctools package -in your home directory under $HOME/cctools. Next, download the example file for the language of your -choice: -

    - -If you are using the C example, compile it like this: -
    -gcc work_queue_example.c -o work_queue_example -I${HOME}/cctools/include/cctools -L${HOME}/cctools/lib -lwork_queue -ldttools -lm
    -
    -If you are using the Python example, set PYTHONPATH to include the Python modules in cctools: -
    -export PYTHONPATH=${PYTHONPATH}:${HOME}/cctools/lib/python2.6/site-packages
    -
    -If you are using the Perl example, set PERL5LIB to include the Perl modules in cctools: -
    -export PERL5LIB=${PERL5LIB}:${HOME}/cctools/lib/perl5/site_perl
    -
    - -

    Running a Work Queue Application

    -The example application simply compresses a bunch of files in parallel. The -files to be compressed must be listed on the command line. Each will be -transmitted to a remote worker, compressed, and then sent back to the Work Queue -master. - -To compress files a, b, and c with this example -application, run it as: -
    -./work_queue_example a b c
    -
    - -You will see this right away: -
    -
    -listening on port 9123...
    -submitted task: /usr/bin/gzip < a > a.gz
    -submitted task: /usr/bin/gzip < b > b.gz
    -submitted task: /usr/bin/gzip < c > c.gz
    -waiting for tasks to complete...
    -
    -
    - -The Work Queue master is now waiting for workers to connect and begin requesting -work. (Without any workers, it will wait forever.) You can start one worker on -the same machine by opening a new shell and running: - -
    -work_queue_worker MACHINENAME 9123
    -
    - -(Obviously, substitute the name of your machine for MACHINENAME.) If you have -access to other machines, you can ssh there and run workers as well. -In general, the more you start, the faster the work gets done. -If a worker should fail, the work queue infrastructure will retry the work -elsewhere, so it is safe to submit many workers to an unreliable -system. -

    -If you have access to a Condor pool, you can use this shortcut to submit -ten workers at once via Condor: -

    -% condor_submit_workers MACHINENAME 9123 10
    -Submitting job(s)..........
    -Logging submit event(s)..........
    -10 job(s) submitted to cluster 298.
    -
    - -Or, if you have access to an SGE cluster, do this: -
    -% sge_submit_workers MACHINENAME 9123 10
    -Your job 153083 ("worker.sh") has been submitted
    -Your job 153084 ("worker.sh") has been submitted
    -Your job 153085 ("worker.sh") has been submitted
    -...
    -
    - -Similar scripts are available for other common batch systems: - -
    -pbs_submit_workers
    -torque_submit_workers
    -slurm_submit_workers
    -ec2_submit_workers
    -
    - -

    -When the master completes, if the workers were not shut down in the -master, your workers will still be available, so you can either run -another master with the same workers, or you can remove the workers -with kill, condor_rm, or qdel as appropriate. -If you forget to remove them, they will exit automatically after fifteen minutes. -(This can be adjusted with the -t option to worker.) - -

    Writing a Work Queue Master Program

    - -To write your own program using Work Queue, begin with C example or Python example or Perl example as a starting point. Here is a basic outline for a Work Queue master: - -
    -q = work_queue_create(port);
    -
    -    for(all tasks) {
    -         t = work_queue_task_create(command);
    -         /* add to the task description */
    -         work_queue_submit(q,t);
    -    }
    -
    -    while(!work_queue_empty(q)) {
    -        t = work_queue_wait(q);
    -        work_queue_task_delete(t);
    -    }
    -
    -work_queue_delete(q);
    -
    - -First create a queue that is listening on a particular TCP port: -
    -

    C/Perl

    -
    - q = work_queue_create(port);
    -
    -

    Python

    -
    - q = WorkQueue(port)
    -
    -
    - -The master then creates tasks to submit to the queue. Each task consists of a -command line to run and a statement of what data is needed, and what data will -be produced by the command. Input data can be provided in the form of a file or -a local memory buffer. Output data can be provided in the form of a file or the -standard output of the program. It is also required to specify whether the -data, input or output, need to be cached at the worker site for later use. -

    -In the example, we specify a command that takes a single input file and produces -a single output file. We then create a task by providing the specified command -as an argument: -

    -

    C/Perl

    -
    - t = work_queue_task_create(command);
    -
    -

    Python

    -
    - t = Task(command)
    -
    -
    - -The input and output files associated with the execution of the task must be -explicitly specified. In the example, we also specify the executable in the -command invocation as an input file so that it is transferred and installed in -the working directory of the worker. We require this executable to be cached so -that it can be used by subsequent tasks that need it in their execution. On the -other hand, the input and output of the task are not required to be cached -since they are not used by subsequent tasks in this example. -
    -

    C/Perl

    -
    - work_queue_task_specify_file(t,"/usr/bin/gzip","gzip",WORK_QUEUE_INPUT,WORK_QUEUE_CACHE);
    - work_queue_task_specify_file(t,infile,infile,WORK_QUEUE_INPUT,WORK_QUEUE_NOCACHE);
    - work_queue_task_specify_file(t,outfile,outfile,WORK_QUEUE_OUTPUT,WORK_QUEUE_NOCACHE);
    -
    -

    Python

    -
    - t.specify_file("/usr/bin/gzip","gzip",WORK_QUEUE_INPUT,cache=True);
    - t.specify_file(infile,infile,WORK_QUEUE_INPUT,cache=False)
    - t.specify_file(outfile,outfile,WORK_QUEUE_OUTPUT,cache=False)
    -
    -
    - -Note that the specified input directories and files for each task are -transferred and setup in the sandbox directory of the worker (unless an absolute -path is specified for their location). This sandbox serves as the initial -working directory of each task executed by the worker. The task outputs are also -stored in the sandbox directory (unless an absolute path is specified for their -storage). The path of the sandbox directory is exported to the execution -environment of each worker through the WORK_QUEUE_SANDBOX shell environment -variable. This shell variable can be used in the execution environment of -the worker to describe and access the locations of files in the sandbox -directory. An example of its usage is given below: -
    -

    C/Perl

    -
    - t = work_queue_task_create("$WORK_QUEUE_SANDBOX/gzip < a > a.gz");
    -
    -

    Python

    -
    - t = Task("$WORK_QUEUE_SANDBOX/gzip < a > a.gz")
    -
    -
    - -

    -We can also run a program that is already installed at the remote site, where -the worker runs, by specifying its installed location in the command line of the -task (and removing the specification of the executable as an input file). For -example: -

    -

    C/Perl

    -
    - t = work_queue_task_create("/usr/bin/gzip < a > a.gz");
    -
    -

    Python

    -
    - t = Task("/usr/bin/gzip < a > a.gz")
    -
    -
    - -Once a task has been fully specified, it can be submitted to the queue where it -gets assigned a unique taskid: -
    -

    C/Perl

    -
    - taskid = work_queue_submit(q,t);
    -
    -

    Python

    -
    - taskid = q.submit(t)
    -
    -
    - -Next, wait for a task to complete, stating how long you are willing -to wait for a result, in seconds. (If no tasks have completed by the timeout, -work_queue_wait will return null.) -
    -

    C/Perl

    -
    - t = work_queue_wait(q,5);
    -
    -

    Python

    -
    - t = q.wait(5)
    -
    -
    - -A completed task will have its output files written to disk. -You may examine the standard output of the task in t->output -and the exit code in t->exit_status. When you are done -with the task, delete it: -
    -

    C/Perl

    -
    - work_queue_task_delete(t);
    -
    -

    Python

    -
    - Deleted automatically when task object goes out of scope
    -
    -
    - -Continue submitting and waiting for tasks until all work is complete. You may -check to make sure that the queue is empty with work_queue_empty. When -all is done, delete the queue: -
    -

    C/Perl

    -
    - work_queue_delete(q);
    -
    -

    Python

    -
    - Deleted automatically when work_queue object goes out of scope
    -
    -
    - -Full details of all of the Work Queue functions can be found in -the Work Queue API. - -

    Project Names and the Catalog Server

    -Keeping track of the master's hostname and port can get cumbersome, especially -if there are multiple masters. To help with difficulty, we provide the project -name feature to identify a Work Queue master with a more recognizable project -name. Work Queue workers can then be started for their masters by providing the -project names. - -

    The project name feature uses the catalog server to maintain and -track the project names of masters and their respective locations. It works as -follows: the master advertises its project name along with its hostname and port -to the catalog server. Work Queue workers that are provided with the master's -project name query the catalog server to find the hostname and port of the -master with the given project name. So, to utilize this feature, the master -must be specified to run in the WORK_QUEUE_MASTER_MODE_CATALOG. -See Catalog Servers for details on specifying catalog servers. - -

    For example, to have a Work Queue master advertise its project name as -myproject, add the following code snippet after creating the queue: -

    -

    C/Perl

    -
    - work_queue_specify_master_mode(q, WORK_QUEUE_MASTER_MODE_CATALOG)
    - work_queue_specify_name(q, "myproject");
    -
    -

    Python

    -
    - wq.specify_mode(WORK_QUEUE_MASTER_MODE_CATALOG)
    - wq.specify_name("myproject")
    -
    -
    - -To start a worker for this master, specify the project name (myproject) -to connect in the -N option: - -
    -work_queue_worker -N myproject
    -
    - -You can start ten workers for this master on Condor using -condor_submit_workers by providing the same option arguments.: -
    -% condor_submit_workers -N myproject 10
    -Submitting job(s)..........
    -Logging submit event(s)..........
    -10 job(s) submitted to cluster 298.
    -
    - -Or similarly on SGE using sge_submit_workers as: -
    -% sge_submit_workers -N myproject 10
    -Your job 153097 ("worker.sh") has been submitted
    -Your job 153098 ("worker.sh") has been submitted
    -Your job 153099 ("worker.sh") has been submitted
    -...
    -
    - -

    Running Multiple Tasks per Worker

    - -

    Unless otherwise specified, Work Queue assumes that a single -task runs on a single worker at a time, and a single worker -occupies an entire machine.

    - -

    However, if you have large multi-core -machines and multi-threaded tasks, you will want one worker to -manage multiple tasks running on a machine. For example, if you -have a 8-core machine, then you might want to run four 2-core -tasks on a single worker at once, being careful not to exceed -the available memory and disk.

    - -

    Two steps are needed to make this happen. First, adjust your -workers to manage multiple cores at once. You can specify the -exact number of cores to use like this: - -

    -% work_queue_worker --cores 8  MACHINENAME 9123
    -
    - -To limit cores, memory and disk, do this: - -
    -% work_queue_worker --cores 8 --memory 1000 --disk 8000  MACHINENAME 9123
    -
    - -

    Second, you must annotate every task in the worker with -resource requirements in terms of cores, memory, and disk.

    - -
    -

    C/Perl

    -
    - work_queue_task_specify_cores(t, 2); //needs 2 cores
    - work_queue_task_specify_memory(t, 100); //needs 100 MB memory
    - work_queue_task_specify_disk(t, 1000); //needs 1 GB disk
    -
    -
    -

    Python

    -
    - t.specify_cores(2) #needs 2 cores
    - t.specify_memory(100) #needs 100 MB memory
    - t.specify_disk(1000) #needs 1 GB disk
    -
    -
    - -

    Note that if no requirements are specified, a task consumes an entire -worker. All resource requirements must be specified in order to run multiple tasks -on a single worker. For example, if you annotate a task as using 1 core, but don't -specify its memory or disk requirments, Work Queue will only schedule one task -to a two-core worker. However, if you annotate the core, memory, and disc requirements -for a task, Work Queue can schedule two such tasks to a two-task worker, assuming it -has the available memory and disk requirements for each individual task. -

    - -

    You may also use the --cores, --memory, and --disk options when using batch -submission scripts such as condor_submit_workers or -slurm_submit_workers, and the script will correctly ask the batch -system for an appropiate node. - -

    The only caveat is when using sge_submit_workers, as there are many -differences across systems that the script cannot manage. For -sge_submit_workers you have to specify both the -resources used by the worker (i.e., with --cores, etc.) and the appropiate -computing node with the -p option. - -

    For example, say that your local SGE installation requires you to specify the -number of cores with the switch -pe smp , and you want workers with 4 -cores: - -

    -% sge_submit_workers --cores 4 -p "-pe smp 4" MACHINENAME 9123
    -
    - -

    If you find that there are options that are needed everytime, you can compile CCTools using the --sge-parameter . For example, at Notre Dame we automatically set the number of cores as follows: - -

    -% ./configure  --sge-parameter '-pe smp $cores'
    -
    - -

    So that we can simply call: - -

    -% sge_submit_workers --cores 4 MACHINENAME 9123
    -
    - -

    The variables $cores , $memory , and $disk , have -the values of the options passed to --cores, --memory, --disk. - -

    Scaling Up with Foremen

    -

    A Work Queue foreman allows Work Queue workers to be managed in an -hierarchical manner. Each foreman connects to the Work Queue master and accepts -tasks as though it were a worker. It then accepts connections from Work Queue -workers and dispatches tasks to them as if it were the master.

    - -

    A setup using foremen is beneficial when there are common files that need to -be transmitted to workers and cached for subsequent executions. In this case, -the foremen transfer the common files to their workers without requiring any -intervention from the master, thereby lowering the communication and transfer -overheads at the master.

    - -

    Foremen are also useful when harnessing resources from multiple clusters. A -foreman can be run on the head node of a cluster acting as a single -communications hub for the workers in that cluster. This reduces the network -connections leaving the cluster and minimizes the transfer costs for sending -data into the cluster over wide area networks.

    - -

    To start a Work Queue foreman, invoke work_queue_worker with the ---foreman option. The foreman can advertise a project name using the --f,--foreman-name option to enable workers to find and connect to it -without being given its hostname and port. On the other end, the foreman will -connect to the master with the same project name specified in -M -argument (alternatively, the hostname and port of the master can be provided -instead of its project name). - -

    For example, to run a foreman that works for a master with project name -myproject and advertises itself as foreman_myproject: -

    -% work_queue_worker -f foreman_myproject -M myproject
    -
    - -

    To run a worker that connects to a foreman, specify the foreman's project name -in the -N option. For example: -

    -% work_queue_worker -N foreman_myproject
    -
    - - - -

    Security

    - -

    -By default, Work Queue does not perform any authentication, -so any workers will be able to connect to your master, and -vice versa. This may be fine for a short running anonymous application, -but is not safe for a long running application with a public name. -

    -

    -We recommend that you enable a password for your applications. Create -a file (e.g. mypwfile) that contains any password (or other -long phrase) that you like (e.g. This is my password). The password -will be particular to your application and should not match any other -passwords that you own. Note that the contents of the file are taken -verbatim as the password; this means that any new line character at -the end of the phrase will be considered as part of the password. -

    -

    -Then, modify your master program to use the password: -

    -
    -

    C/Perl

    -
    - work_queue_specify_password_file(q,mypwfile);
    -
    -

    Python

    -
    - q.specify_password_file(mypwfile)
    -
    -
    -

    -And give the --password option to give the same password file to your -workers: -

    -
    -work_queue_worker --password mypwfile  MACHINENAME 9123
    -
    -

    -With this option enabled, both the master and the workers will -verify that the other has the matching password before proceeding. -The password is not sent in the clear, but is securely verified -through a SHA1-based challenge-response protocol. -

    - -

    Debugging

    -

    Work Queue can be set up to print debug messages at the master and worker to -help troubleshoot failures, -bugs, and errors. - -

    When using the C -API include the debug.h -header to enable the debug messages at the master: -

    -

    C

    -
    - #include <debug.h>
    - cctools_debug_flags_set("all");
    -
    -
    - -

    In Perl and Python, simply do: -

    -

    Perl

    -
    - cctools_debug_flags_set("all");
    -
    -
    -
    -

    Python

    -
    - cctools_debug_flags_set("all")
    -
    -
    - -

    The all flag causes debug messages from every subsystem called by -Work Queue to be printed. More information about the debug flags are here. - -

    You can also redirect the debug messages to a file: -

    -

    C/Perl

    -
    - cctools_debug_config_file("wq.debug");
    -
    -
    -
    -

    Python

    -
    - cctools_debug_config_file("wq.debug")
    -
    -
    - -

    To enable debugging at the worker, set the -d option: -

    -work_queue_worker -d all MACHINENAME 9123
    -
    - -

    To redirect the debug messages, specify the -o option: -

    -work_queue_worker -d all -o worker.debug MACHINENAME 9123
    -
    - -

    Logging and Plotting

    - -You can specify a log file to obtain a time series of work queue statistics. Usually this log file is specified just after the creation of the queue as follows: - -
    -

    C/Perl

    -
    - work_queue_specify_log(q, "mylogfile");
    -
    -
    - -

    Python

    -
    - q.specify_log("mylogfile")
    -
    -
    -
    - -The script work_queue_graph_log is a wrapper for gnuplot, and -with it you can plot some of the statistics, such as total time spent -transfering tasks, number of tasks running, and workers connected: - -
    -
    - % work_queue_graph_log -o myplots mylogfile
    - % ls
    - % ... myplots.tasks.png myplots.tasks-log.png myplots.time.png myplots.time-log.png ...
    -
    -
    -
    - -We find it very helpful to plot these statistics when diagnosing a problem with -work queue applications. - -

    Standard Output Limits

    - -

    The output printed by a task to stdout can be accessed in the -output buffer in work_queue_task struct. The -size of output is limited to 1 GB. Any output beyond 1 GB will be -truncated. So, please redirect the stdout of the task to a file and specify the -file as an output file of the task using work_queue_task_specify_file -(specify_file in Python) as described above. - -

    Advanced Topics

    - -A variety of advanced features are available for programs -with unusual needs or very large scales. Each feature is -described briefly here, and more details may be found in -the -Work Queue API. - -

    Pipelined Submission.

    -If you have a very large number of tasks to run, -it may not be possible to submit all of the tasks, and then wait for all of them. Instead, -submit a small number of tasks, then alternate waiting and submiting to keep a constant -number in the queue. work_queue_hungry will tell you if more submission are warranted. - -

    Watching Output Files

    - -If you would like to see the output of a task as it is produced, -add WORK_QUEUE_WATCH to the flags argument of work_queue_specify_file. -This will cause the worker to periodically send output appended to that file back to the master. -This is useful for a program that produces a log or progress bar as part of its output. - -

    Asynchronous transfer

    - -If you have tasks with a balanced or large -computation-to-data ratio, this feature can help improve the CPU utilization and -lower the runtime overheads incurred due to data transfer. This feature -asynchronously streams the data inputs and outputs to and from the workers when -they are executing tasks. See work_queue_specify_asynchrony. - -

    Fast Abort

    - -A large computation can often be slowed down by stragglers. If you have -a large number of small tasks that take a short amount of time, then Fast Abort can help. -The Fast Abort feature keeps statistics on tasks execution times and proactively aborts tasks -that are statistical outliers. See work_queue_activate_fast_abort. - -

    Immediate Data

    - -For a large number of tasks or workers, it may be impractical -to create local input files for each one. If the master already has the necessary input -data in memory, it can pass the data directly to the remote task with -work_queue_task_specify_buffer. - -

    String Interpolation

    - -If you have workers distributed across -multiple operating systems (such as Linux, Cygwin, Solaris) and/or architectures (such -as i686, x86_64) and have files specific to each of these systems, this feature -will help. The strings $OS and $ARCH are available for use in the specification of input -file names. Work Queue will automatically resolve these strings to the operating system -and architecture of each connected worker and transfer the input file corresponding -to the resolved file name. For example: -
    -

    C/Perl

    -
    - work_queue_task_specify_file(t,"a.$OS.$ARCH","a",WORK_QUEUE_INPUT,WORK_QUEUE_CACHE);
    -
    -

    Python

    -
    - t.specify_file("a.$OS.$ARCH","a",WORK_QUEUE_INPUT,cache=True)
    -
    -
    -This will transfer a.Linux.x86_64 to workers running on a Linux system -with an x86_64 architecture and a.Cygwin.i686 to workers on Cygwin with -an i686 architecture. -

    -Note this feature is specifically designed for specifying and distingushing -input file names for different platforms and architectures. Also, this is -different from the $WORK_QUEUE_SANDBOX shell environment variable that exports -the location of the working directory of the worker to its execution -environment. - -

    Task Cancellations

    - -This feature is useful in workflows where there are redundant tasks -or tasks that become obsolete as other tasks finish. Tasks that have been submitted can be -cancelled and immediately retrieved without waiting for Work Queue to return them in -work_queue_wait. The tasks to cancel can be identified by either their -taskid or tag. For example: -
    -

    C/Perl

    -
    - t = work_queue_cancel_by_tasktag(q,"task3");
    -
    -

    Python

    -
    - t = q.cancel_by_tasktag("task3")
    -
    -
    -This cancels a task with tag named 'task3'. Note that in the presence of tasks with -the same tag, work_queue_cancel_by_tasktag will cancel and retrieve only one of the -matching tasks. - -

    Worker Blacklist

    - -You may find that certain hosts are not correctly -configured to run your tasks. The master can be directed to ignore certain -workers with the blacklist feature. For example: - -
    -

    C

    -
    - t = work_queue_wait(q, SECONDS);
    - //if t fails given a worker misconfiguration:
    - work_queue_blacklist_add(q, t->hostname);
    -
    - -

    Python

    -
    - t = q.wait(SECONDS)
    - # if t fails given a worker misconfiguration:
    - q.blacklist(t.hostname)
    -
    - -

    Perl

    -
    - t = work_queue_wait(q, SECONDS);
    - # if t fails given a worker misconfiguration:
    - work_queue_blacklist_add(q, t->{hostname});
    -
    -
    - -

    Performance Statistics

    - -The queue tracks a fair number of statistics that count the number -of tasks, number of workers, number of failures, and so forth. Obtain this data with work_queue_get_stats -in order to make a progress bar or other user-visible information. - -

    For More Information

    - -For the latest information about Work Queue, please visit our web site and -subscribe to our mailing -list. - -
    - - diff -Nru cctools-7.0.22/dttools/src/address.h cctools-7.1.2/dttools/src/address.h --- cctools-7.0.22/dttools/src/address.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/address.h 2020-05-05 15:31:15.000000000 +0000 @@ -7,7 +7,7 @@ #include #ifndef SOCKLEN_T -#if defined(__GLIBC__) || defined(CCTOOLS_OPSYS_DARWIN) || defined(CCTOOLS_OPSYS_AIX) || defined(__MUSL__) +#if defined(__GLIBC__) || defined(CCTOOLS_OPSYS_DARWIN) || defined(__MUSL__) #define SOCKLEN_T socklen_t #else #define SOCKLEN_T int diff -Nru cctools-7.0.22/dttools/src/auth_kerberos.c cctools-7.1.2/dttools/src/auth_kerberos.c --- cctools-7.0.22/dttools/src/auth_kerberos.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/auth_kerberos.c 2020-05-05 15:31:15.000000000 +0000 @@ -5,7 +5,7 @@ See the file COPYING for details. */ -#if defined(HAS_KRB5) && !defined(CCTOOLS_OPSYS_FREEBSD) +#if defined(HAS_KRB5) #include "krb5.h" diff -Nru cctools-7.0.22/dttools/src/auth_unix.c cctools-7.1.2/dttools/src/auth_unix.c --- cctools-7.0.22/dttools/src/auth_unix.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/auth_unix.c 2020-05-05 15:31:15.000000000 +0000 @@ -96,7 +96,7 @@ debug(D_AUTH, "unix: challenge path is %s", path); } -#if CCTOOLS_OPSYS_DARWIN || CCTOOLS_OPSYS_FREEBSD || CCTOOLS_OPSYS_CYGWIN +#ifdef CCTOOLS_OPSYS_DARWIN /* Darwin does not have fgetpwent in libc, @@ -131,10 +131,6 @@ static struct passwd *auth_get_passwd_from_uid(uid_t uid) { if(alternate_passwd_file[0]) { -#ifdef CCTOOLS_OPSYS_DRAGONFLY - debug(D_AUTH, "unix: couldn't open %s: %s", alternate_passwd_file, strerror(errno)); - return 0; -#else struct passwd *p; FILE *file; @@ -156,7 +152,6 @@ debug(D_AUTH, "unix: couldn't open %s: %s", alternate_passwd_file, strerror(errno)); return 0; } -#endif } else { return getpwuid(uid); } diff -Nru cctools-7.0.22/dttools/src/catalog_query.c cctools-7.1.2/dttools/src/catalog_query.c --- cctools-7.0.22/dttools/src/catalog_query.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/catalog_query.c 2020-05-05 15:31:15.000000000 +0000 @@ -23,6 +23,7 @@ #include "list.h" #include "address.h" #include "zlib.h" +#include "macros.h" struct catalog_query { struct jx *data; @@ -136,10 +137,17 @@ struct catalog_host *h; struct list *sorted_hosts = catalog_query_sort_hostlist(hosts); + int backoff_interval = 1; + list_first_item(sorted_hosts); while(time(NULL) < stoptime) { if(!(h = list_next_item(sorted_hosts))) { list_first_item(sorted_hosts); + sleep(backoff_interval); + + int max_backoff_interval = MAX(0, stoptime - time(NULL)); + backoff_interval = MIN(backoff_interval * 2, max_backoff_interval); + continue; } struct jx *j = catalog_query_send_query(h->url, time(NULL) + 5); @@ -255,7 +263,7 @@ } else if(!strcmp(protocol,"tcp")) { return 0; } else { - debug(D_NOTICE,"CATALOG_UPDATE_PROTOCOL=%s but should be 'udp' or 'tcp' intead.",protocol); + debug(D_NOTICE,"CATALOG_UPDATE_PROTOCOL=%s but should be 'udp' or 'tcp' instead.",protocol); return 1; } } diff -Nru cctools-7.0.22/dttools/src/catalog_server.c cctools-7.1.2/dttools/src/catalog_server.c --- cctools-7.0.22/dttools/src/catalog_server.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/catalog_server.c 2020-05-05 15:31:15.000000000 +0000 @@ -209,7 +209,7 @@ static void make_hash_key(struct jx *j, char *key) { - const char *name, *addr; + const char *name, *addr, *uuid; int port; addr = jx_lookup_string(j, "address"); @@ -222,7 +222,13 @@ if(!name) name = "unknown"; - sprintf(key, "%s:%d:%s", addr, port, name); + uuid = jx_lookup_string(j, "uuid"); + sprintf(key, "%s:%d:%s%s%.128s", + addr, + port, + name, + uuid ? ":" : "", + uuid ? uuid : ""); } static void handle_update( const char *addr, int port, const char *raw_data, int raw_data_length, const char *protocol ) diff -Nru cctools-7.0.22/dttools/src/cctools_python cctools-7.1.2/dttools/src/cctools_python --- cctools-7.0.22/dttools/src/cctools_python 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/cctools_python 1970-01-01 00:00:00.000000000 +0000 @@ -1,116 +0,0 @@ -#!/bin/sh - -pythons="$PYTHON2 $PYTHON python2.7 python2.6 python2.4 python2 python3 python" - -major_version () { - _version=$1 - echo ${_version%%.*} -} - -minor_version () { - _version=$1 - _major=$(major_version $_version) - echo ${_version#${_major}} | cut -d . -f 2 -} - -match_versions () { - _required=$1 - _available=$2 - _major_r=$(major_version $_required) - _minor_r=$(minor_version $_required) - _major_a=$(major_version $_available) - _minor_a=$(minor_version $_available) - - # majors do not match - if [ "$_major_r" != "$_major_a" ] - then - echo 0 - return - fi - - # minors do not match - if [ -n "$_minor_r" -a "$_minor_r" != "$_minor_a" ] - then - echo 0 - return - fi - - # versions did match - echo 1 -} - -find_python_path () { - _script=$1 - _version=$2 - _dirname="$(dirname $_script)/../lib" - - for dir in $_dirname/python{$_version,}/site-packages; do - if [ -d "$dir" ]; then - echo "$dir" - return - fi - done - - echo "Could not find the python libraries at the expected location. Execution" 1>&2 - echo "will continue, but if errors are found please set PYTHONPATH to include" 1>&2 - echo "the CCTOOLs modules for the python interpreter version $_version." 1>&2 -} - -if [ -z "$1" ] -then - echo 'Missing script name or option.' 1>&2 - echo " To execute a python script: $0 script-name [script options]." 1>&2 - echo "To print the python interpreter path: $0 -n [python versions]." 1>&2 - exit 1 -fi - -if [ "$1" = "-n" ] -then - shift - print_path=1 - required_alternatives="$@" -else - print_path=0 - script=$(which "$1") - required_alternatives=$(sed -n '2{s/^#[\t ]*CCTOOLS_PYTHON_VERSION//p;q;}' < $script) -fi - -if [ -z "$required_alternatives" ] -then - echo "No version of python was specified." 1>&2 - exit 1 -fi - -python=0 -version= -for alt in $required_alternatives -do - for candidate in $pythons - do - candidate_full=$(which $candidate 2> /dev/null) - [ -x $candidate_full ] || continue - candidate_version=$(${candidate_full} -V 2>&1 | cut -d " " -f 2) - - match=$(match_versions $alt $candidate_version) - if [ "$match" = 1 ] - then - python=$candidate_full - version=$(major_version $candidate_version).$(minor_version $candidate_version) - break 2 - fi - done -done - -if [ $python = 0 ] -then - echo "Could not find a valid python version ($required_alternatives )." 1>&2 - echo 'Please set the environment variables PYTHON or PYTHON2 appropriately.' 1>&2 - exit 1 -elif [ $print_path = 1 ] -then - echo $python -else - export PYTHONPATH=$(find_python_path $script $version):$PYTHONPATH - shift - exec "$python" "$script" "$@" -fi diff -Nru cctools-7.0.22/dttools/src/copy_tree.h cctools-7.1.2/dttools/src/copy_tree.h --- cctools-7.0.22/dttools/src/copy_tree.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/copy_tree.h 2020-05-05 15:31:15.000000000 +0000 @@ -23,6 +23,15 @@ */ int copy_symlink(const char *source, const char *target); +/* copy_direntry copies the source dir or file into target. Like 'cp -r source target'. + * @param source: the source directory/file, which must be an existing directory/file. + * @param target: the target directory/file + * @return zero on success, non-zero on failure. + * If target does not exist, create the dir target and copy all the entries under the source dir into the target dir; + * If target exists, create a sub-dir basename(source) under target, and copy all the entries under the source dir into target/basename(source). + */ +int copy_direntry(const char *source, const char *target); + /* Only copy regular files, directories, and symlinks. */ typedef enum { FILE_TYPE_REG, diff -Nru cctools-7.0.22/dttools/src/debug.c cctools-7.1.2/dttools/src/debug.c --- cctools-7.0.22/dttools/src/debug.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/debug.c 2020-05-05 15:31:15.000000000 +0000 @@ -23,29 +23,29 @@ #include -extern void debug_stderr_write (INT64_T flags, const char *str); -extern void debug_stdout_write (INT64_T flags, const char *str); +extern void debug_stderr_write (int64_t flags, const char *str); +extern void debug_stdout_write (int64_t flags, const char *str); -extern void debug_file_write (INT64_T flags, const char *str); +extern void debug_file_write (int64_t flags, const char *str); extern void debug_file_size (off_t size); extern int debug_file_path (const char *path); extern void debug_file_rename (const char *suffix); extern int debug_file_reopen (void); #ifdef HAS_SYSLOG_H -extern void debug_syslog_write (INT64_T flags, const char *str); +extern void debug_syslog_write (int64_t flags, const char *str); extern void debug_syslog_config (const char *name); #endif #ifdef HAS_SYSTEMD_JOURNAL_H -extern void debug_journal_write (INT64_T flags, const char *str); +extern void debug_journal_write (int64_t flags, const char *str); #endif -static void (*debug_write) (INT64_T flags, const char *str) = debug_stderr_write; +static void (*debug_write) (int64_t flags, const char *str) = debug_stderr_write; static pid_t (*debug_getpid) (void) = getpid; static char debug_program_name[PATH_MAX]; -static INT64_T debug_flags = D_NOTICE|D_ERROR|D_FATAL; +static int64_t debug_flags = D_NOTICE|D_ERROR|D_FATAL; static char *terminal_path = "/dev/tty"; static FILE *terminal_f = NULL; @@ -53,7 +53,7 @@ struct flag_info { const char *name; - INT64_T flag; + int64_t flag; }; static struct flag_info table[] = { @@ -106,6 +106,7 @@ {"makeflow_lexer", D_MAKEFLOW_LEXER}, {"makeflow_parser", D_MAKEFLOW_PARSER}, {"makeflow_hook", D_MAKEFLOW_HOOK}, + {"ext", D_EXT}, {"rmonitor", D_RMON}, {"confuga", D_CONFUGA}, {"jx", D_JX}, @@ -152,7 +153,7 @@ } } -void debug_set_flag_name(INT64_T flag, const char *name) +void debug_set_flag_name(int64_t flag, const char *name) { struct flag_info *i; @@ -164,7 +165,7 @@ } } -static const char *debug_flags_to_name(INT64_T flags) +static const char *debug_flags_to_name(int64_t flags) { struct flag_info *i; @@ -176,7 +177,7 @@ return "debug"; } -static void do_debug(INT64_T flags, const char *fmt, va_list args) +static void do_debug(int64_t flags, const char *fmt, va_list args) { buffer_t B; char ubuf[1<<16]; @@ -224,7 +225,7 @@ buffer_free(&B); } -void debug(INT64_T flags, const char *fmt, ...) +void debug(int64_t flags, const char *fmt, ...) { if(flags & debug_flags) { va_list args; @@ -236,7 +237,7 @@ } } -void vdebug(INT64_T flags, const char *fmt, va_list args) +void vdebug(int64_t flags, const char *fmt, va_list args) { if(flags & debug_flags) { int save_errno = errno; @@ -245,7 +246,7 @@ } } -void warn(INT64_T flags, const char *fmt, ...) +void warn(int64_t flags, const char *fmt, ...) { va_list args; @@ -256,7 +257,7 @@ errno = save_errno; } -void notice(INT64_T flags, const char *fmt, ...) +void notice(int64_t flags, const char *fmt, ...) { va_list args; @@ -347,14 +348,14 @@ debug_getpid = getpidf; } -INT64_T debug_flags_clear() +int64_t debug_flags_clear() { - INT64_T result = debug_flags; + int64_t result = debug_flags; debug_flags = 0; return result; } -void debug_flags_restore(INT64_T fl) +void debug_flags_restore(int64_t fl) { debug_flags = fl; } diff -Nru cctools-7.0.22/dttools/src/debug.h cctools-7.1.2/dttools/src/debug.h --- cctools-7.0.22/dttools/src/debug.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/debug.h 2020-05-05 15:31:15.000000000 +0000 @@ -92,6 +92,7 @@ #define D_CONFUGA (1LL<<44) /**< Debug Confuga Storage Cluster */ #define D_JX (1LL<<45) /**< Debug JX */ #define D_MAKEFLOW_HOOK (1LL<<46) /**< Debug makeflow's hook system */ +#define D_EXT (1LL<<47) /**< Debug the ext module in Parrot */ /** Debug all remote I/O operations. */ #define D_REMOTE (D_HTTP|D_FTP|D_NEST|D_CHIRP|D_DCAP|D_RFIO|D_LFC|D_GFAL|D_MULTI|D_GROW|D_IRODS|D_HDFS|D_BXGRID|D_XROOTD|D_CVMFS) @@ -131,7 +132,7 @@ @param fmt A printf-style formatting string, followed by the necessary arguments. */ -void debug(INT64_T flags, const char *fmt, ...) +void debug(int64_t flags, const char *fmt, ...) #ifndef SWIG __attribute__ (( format(printf,2,3) )) #endif @@ -144,7 +145,7 @@ @param args A va_list containing the arguments. */ -void vdebug(INT64_T flags, const char *fmt, va_list args); +void vdebug(int64_t flags, const char *fmt, va_list args); /** Emit a warning message. Logs a warning message, regardless of if given flags are active. @@ -152,7 +153,7 @@ @param fmt A printf-style formatting string, followed by the necessary arguments. */ -void warn(INT64_T flags, const char *fmt, ...); +void warn(int64_t flags, const char *fmt, ...); /** Emit a fatal debugging message and terminate with SIGTERM. Displays a printf-style message, and then forcibly exits the program. @@ -167,7 +168,7 @@ @param flags Any of the standard debugging flags OR-ed together. @param fmt A printf-style formatting string, followed by the necessary arguments. */ -void notice(INT64_T flags, const char *fmt, ...); +void notice(int64_t flags, const char *fmt, ...); /** Initialize the debugging system. Must be called before any other calls take place. @@ -222,7 +223,7 @@ @see debug_flags_set */ -INT64_T debug_flags_clear(void); +int64_t debug_flags_clear(void); /** Set name of flag combination Sets the string value associated with flag. This is normally used to set the D_USER user flag as so: debug_set_flag_name(D_USER, "my-application");. @@ -230,12 +231,12 @@ @param name New name to associate with flag. */ -void debug_set_flag_name(INT64_T flag, const char *name); +void debug_set_flag_name(int64_t flag, const char *name); /** Restore debug flags. @param flags flags to set */ -void debug_flags_restore(INT64_T flags); +void debug_flags_restore(int64_t flags); /** Rename debug file with given suffix. @param suffix Suffix of saved log. diff -Nru cctools-7.0.22/dttools/src/env_replace.c cctools-7.1.2/dttools/src/env_replace.c --- cctools-7.0.22/dttools/src/env_replace.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/dttools/src/env_replace.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,57 @@ +/* + Copyright (C) 2019- The University of Notre Dame This software is + distributed under the GNU General Public License. See the file + COPYING for details. + + + Given a file, replace environment variable with actual values + into new file. If no output-file is specified the original will + be replaced. + +*/ + +#include +#include +#include +#include +#include + +#include "debug.h" +#include "envtools.h" +#include "stringtools.h" +#include "xxmalloc.h" + +void show_help(const char *exe) { + fprintf(stderr, "Usage:\n%s input-file [output-file]\n", exe); +} + +int main(int argc, char **argv) { + + if(argc < 2 || argc > 3) { + show_help(argv[0]); + fatal("ARGC %d: %s", argc, argv[1]); + //exit(1); + } + + const char *input = argv[1]; + + char *output = NULL; + if(argc > 2) { + output = xxstrdup(argv[2]); + } else { + output = string_format("%s.XXXXXX",input); + int output_fd = mkstemp(output); + if (output_fd == -1){ + fatal("could not create `%s': %s", output, strerror(errno)); + } + close(output_fd); + } + + if (env_replace(input, output)){ + fatal("unable to write replaced variables from %s to %s", input, output); + } + + return 0; +} + +/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/dttools/src/envtools.c cctools-7.1.2/dttools/src/envtools.c --- cctools-7.0.22/dttools/src/envtools.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/envtools.c 2020-05-05 15:31:15.000000000 +0000 @@ -4,8 +4,12 @@ See the file COPYING for details. */ +#include "debug.h" +#include "stringtools.h" #include "xxmalloc.h" +#include +#include #include #include #include @@ -14,6 +18,7 @@ #include #include + int find_executable(const char *exe_name, const char *env_path_var, char *exe_path, int max_length) { char *env_paths; @@ -41,4 +46,58 @@ return cur_path != NULL; } +int env_replace( const char *infile, const char *outfile ){ + FILE *INPUT = fopen(infile, "r"); + if (INPUT == NULL) { + debug(D_ERROR, "unable to open %s: %s", infile, strerror(errno)); + return 1; + } + + FILE *OUTPUT = fopen(outfile, "w"); + if (OUTPUT == NULL) { + debug(D_ERROR, "unable to open %s: %s", outfile, strerror(errno)); + return 1; + } + + char variable[1024]; + int var_index = 0; + int valid_var = 0; + + char c = fgetc(INPUT); + while (c != EOF) + { + if (c == '$') { + valid_var = 1; + } else if (valid_var && (isalpha(c) || (c == '_') || (var_index > 1 && isdigit(c)))) { + variable[var_index] = c; + var_index++; + } else if (valid_var && var_index > 0) { + variable[var_index] = '\0'; + const char *var = getenv(variable); + if (var) { + fprintf(OUTPUT, "%s", var); + } else { + debug(D_NOTICE, "failed to resolve %s environment variable, restoring string", variable); + } + valid_var = 0; + var_index = 0; + } else { + if (valid_var) { + fprintf(OUTPUT, "$"); + } + valid_var = 0; + var_index = 0; + } + + if (!valid_var) { + fprintf(OUTPUT, "%c", c); + } + c = fgetc(INPUT); + } + fclose(OUTPUT); + fclose(INPUT); + + return 0; +} + /* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/dttools/src/envtools.h cctools-7.1.2/dttools/src/envtools.h --- cctools-7.0.22/dttools/src/envtools.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/envtools.h 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,5 @@ /* -Copyright (C) 2010- The University of Notre Dame +Copyright (C) 2019- The University of Notre Dame This software is distributed under the GNU General Public License. See the file COPYING for details. */ @@ -9,4 +9,14 @@ int find_executable(const char *exe_name, const char *env_path_var, char *exe_path, int max_length); +/** Takes an infile and replaces all environment variables of the form + $[A-Za-z_]+[0-9A-Za-z_]* with the resolved environment using getenv. + This updated information is written to outfile. + @param infile Input file name that is opens and scanned for variables + @param outfile Output file name where resolved contents will be written + @return Result value 1 is failure and 0 is success. + */ + +int env_replace( const char *infile, const char *outfile ); + #endif diff -Nru cctools-7.0.22/dttools/src/file_cache.c cctools-7.1.2/dttools/src/file_cache.c --- cctools-7.0.22/dttools/src/file_cache.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/file_cache.c 2020-05-05 15:31:15.000000000 +0000 @@ -26,7 +26,7 @@ /* Cygwin does not have 64-bit I/O, while Darwin has it by default. */ -#if CCTOOLS_OPSYS_CYGWIN || CCTOOLS_OPSYS_DARWIN || CCTOOLS_OPSYS_FREEBSD || CCTOOLS_OPSYS_DRAGONFLY +#ifdef CCTOOLS_OPSYS_DARWIN #define fstat64 fstat #define stat64 stat #define open64 open diff -Nru cctools-7.0.22/dttools/src/full_io.c cctools-7.1.2/dttools/src/full_io.c --- cctools-7.0.22/dttools/src/full_io.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/full_io.c 2020-05-05 15:31:15.000000000 +0000 @@ -61,7 +61,7 @@ ssize_t full_pread64(int fd, void *buf, size_t count, int64_t offset) { -#if CCTOOLS_OPSYS_CYGWIN || CCTOOLS_OPSYS_DARWIN || CCTOOLS_OPSYS_FREEBSD || CCTOOLS_OPSYS_DRAGONFLY +#ifdef CCTOOLS_OPSYS_DARWIN FULL_PIO(pread(fd, buf, count, offset)); #else FULL_PIO(pread64(fd, buf, count, offset)); @@ -70,7 +70,7 @@ ssize_t full_pwrite64(int fd, const void *buf, size_t count, int64_t offset) { -#if CCTOOLS_OPSYS_CYGWIN || CCTOOLS_OPSYS_DARWIN || CCTOOLS_OPSYS_FREEBSD || CCTOOLS_OPSYS_DRAGONFLY +#ifdef CCTOOLS_OPSYS_DARWIN FULL_PIO(pwrite(fd, buf, count, offset)); #else FULL_PIO(pwrite64(fd, buf, count, offset)); diff -Nru cctools-7.0.22/dttools/src/.gitignore cctools-7.1.2/dttools/src/.gitignore --- cctools-7.0.22/dttools/src/.gitignore 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/.gitignore 2020-05-05 15:31:15.000000000 +0000 @@ -7,6 +7,7 @@ chunk_test disk_alloc_test disk_allocator +env_replace hmac_test histogram_test int_sizes.h @@ -29,3 +30,4 @@ libforce_halt_enospc.so jx_count_obj_test jx2env +jx_binary_test diff -Nru cctools-7.0.22/dttools/src/host_disk_info.c cctools-7.1.2/dttools/src/host_disk_info.c --- cctools-7.0.22/dttools/src/host_disk_info.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/host_disk_info.c 2020-05-05 15:31:15.000000000 +0000 @@ -18,19 +18,6 @@ int host_disk_info_get(const char *path, UINT64_T * avail, UINT64_T * total) { -#ifdef CCTOOLS_OPSYS_SUNOS - int result; - struct statvfs s; - - result = statvfs(path, &s); - if(result < 0) - return result; - - *total = ((UINT64_T) s.f_bsize) * s.f_blocks; - *avail = ((UINT64_T) s.f_bsize) * s.f_bfree; - - return 0; -#else int result; struct statfs s; @@ -42,7 +29,6 @@ *avail = ((UINT64_T) s.f_bsize) * s.f_bavail; return 0; -#endif } int check_disk_space_for_filesize(char *path, int64_t file_size, uint64_t disk_avail_threshold) { diff -Nru cctools-7.0.22/dttools/src/host_memory_info.c cctools-7.1.2/dttools/src/host_memory_info.c --- cctools-7.0.22/dttools/src/host_memory_info.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/host_memory_info.c 2020-05-05 15:31:15.000000000 +0000 @@ -6,7 +6,7 @@ #include "host_memory_info.h" -#if defined(CCTOOLS_OPSYS_LINUX) || defined(CCTOOLS_OPSYS_SUNOS) +#if defined(CCTOOLS_OPSYS_LINUX) #include diff -Nru cctools-7.0.22/dttools/src/json_aux.c cctools-7.1.2/dttools/src/json_aux.c --- cctools-7.0.22/dttools/src/json_aux.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/json_aux.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ -#include "buffer.h" -#include "copy_stream.h" -#include "json.h" -#include "json_aux.h" - -#include -#include - -const char json_type_str[][10] = { - "NONE", - "OBJECT", - "ARRAY", - "INTEGER", - "DOUBLE", - "STRING", - "BOOLEAN", - "NULL", -}; - -json_value *jsonA_getname (json_value *object, const char *name, json_type t) -{ - json_value *val = jsonA_getname_raw(object, name); - - if(!val || !jistype(val, t)) { - return NULL; - } else { - return val; - } -} - -json_value *jsonA_getname_raw (json_value *object, const char *name) -{ - unsigned int i; - assert(object->type == json_object); - for (i = 0; i < object->u.object.length; i++) { - if (strcmp(name, object->u.object.values[i].name) == 0) { - return object->u.object.values[i].value; - } - } - return NULL; -} - -int jsonA_escapestring(buffer_t *B, const char *str) -{ - for (; *str; str++) {\ - switch (*str) {\ - case '/': - if (buffer_putliteral(B, "\\/") == -1) return -1; - break; - case '\\': - if (buffer_putliteral(B, "\\\\") == -1) return -1; - break; - case '\"': - if (buffer_putliteral(B, "\\\"") == -1) return -1; - break; - case '\b': - if (buffer_putliteral(B, "\\b") == -1) return -1; - break; - case '\f': - if (buffer_putliteral(B, "\\f") == -1) return -1; - break; - case '\n': - if (buffer_putliteral(B, "\\n") == -1) return -1; - break; - case '\r': - if (buffer_putliteral(B, "\\r") == -1) return -1; - break; - case '\t': - if (buffer_putliteral(B, "\\t") == -1) return -1; - break; - default: - if (buffer_putfstring(B, "%c", (int)*str) == -1) return -1; - break; - } - } - return 0; -} - -json_value *jsonA_parse_file(const char *path) { - size_t size; - char *buffer; - - if(copy_file_to_buffer(path, &buffer, &size) < 1) - return NULL; - - json_value *J = json_parse(buffer, size); - free(buffer); - - return J; -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/dttools/src/json_aux.h cctools-7.1.2/dttools/src/json_aux.h --- cctools-7.0.22/dttools/src/json_aux.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/json_aux.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -#ifndef JSON_AUX_H -#define JSON_AUX_H - -#include "buffer.h" -#include "json.h" - -#define jistype(o,t) ((o)->type == (t)) - -json_value *jsonA_getname (json_value *object, const char *name, json_type t); -json_value *jsonA_getname_raw (json_value *object, const char *name); -int jsonA_escapestring(buffer_t *B, const char *str); -json_value *jsonA_parse_file(const char *path); - -extern const char json_type_str[][10]; - -#endif diff -Nru cctools-7.0.22/dttools/src/json.c cctools-7.1.2/dttools/src/json.c --- cctools-7.0.22/dttools/src/json.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/json.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,877 +0,0 @@ -/* vim: set et ts=3 sw=3 ft=c: - * - * Copyright (C) 2012 James McLaughlin et al. All rights reserved. - * https://github.com/udp/json-parser - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "json.h" - -#ifdef _MSC_VER - #ifndef _CRT_SECURE_NO_WARNINGS - #define _CRT_SECURE_NO_WARNINGS - #endif -#endif - -#ifdef __cplusplus - const struct _json_value json_value_none; /* zero-d by ctor */ -#else - const struct _json_value json_value_none; -#endif - -#include -#include -#include -#include - -typedef unsigned short json_uchar; - -static unsigned char hex_value (json_char c) -{ - if (isdigit(c)) - return c - '0'; - - switch (c) { - case 'a': case 'A': return 0x0A; - case 'b': case 'B': return 0x0B; - case 'c': case 'C': return 0x0C; - case 'd': case 'D': return 0x0D; - case 'e': case 'E': return 0x0E; - case 'f': case 'F': return 0x0F; - default: return 0xFF; - } -} - -typedef struct -{ - unsigned long used_memory; - - unsigned int uint_max; - unsigned long ulong_max; - - json_settings settings; - int first_pass; - -} json_state; - -static void * default_alloc (size_t size, int zero, void * user_data) -{ - return zero ? calloc (size, 1) : malloc (size); -} - -static void default_free (void * ptr, void * user_data) -{ - free (ptr); -} - -static void * json_alloc (json_state * state, unsigned long size, int zero) -{ - if ((state->ulong_max - state->used_memory) < size) - return 0; - - if (state->settings.max_memory - && (state->used_memory += size) > state->settings.max_memory) - { - return 0; - } - - return state->settings.mem_alloc (size, zero, state->settings.user_data); -} - -static int new_value - (json_state * state, json_value ** top, json_value ** root, json_value ** alloc, json_type type) -{ - json_value * value; - int values_size; - - if (!state->first_pass) - { - value = *top = *alloc; - *alloc = (*alloc)->_reserved.next_alloc; - - if (!*root) - *root = value; - - switch (value->type) - { - case json_array: - - if (! (value->u.array.values = (json_value **) json_alloc - (state, value->u.array.length * sizeof (json_value *), 0)) ) - { - return 0; - } - - value->u.array.length = 0; - break; - - case json_object: - - values_size = sizeof (*value->u.object.values) * value->u.object.length; - - if (! ((*(void **) &value->u.object.values) = json_alloc - (state, values_size + ((unsigned long) value->u.object.values), 0)) ) - { - return 0; - } - - value->_reserved.object_mem = (*(char **) &value->u.object.values) + values_size; - - value->u.object.length = 0; - break; - - case json_string: - - if (! (value->u.string.ptr = (json_char *) json_alloc - (state, (value->u.string.length + 1) * sizeof (json_char), 0)) ) - { - return 0; - } - - value->u.string.length = 0; - break; - - default: - break; - }; - - return 1; - } - - value = (json_value *) json_alloc (state, sizeof (json_value), 1); - - if (!value) - return 0; - - if (!*root) - *root = value; - - value->type = type; - value->parent = *top; - - if (*alloc) - (*alloc)->_reserved.next_alloc = value; - - *alloc = *top = value; - - return 1; -} - -#define e_off \ - ((int) (i - cur_line_begin)) - -#define whitespace \ - case '\n': ++ cur_line; cur_line_begin = i; \ - case ' ': case '\t': case '\r' - -#define string_add(b) \ - do { if (!state.first_pass) string [string_length] = b; ++ string_length; } while (0); - -static const long - flag_next = 1 << 0, - flag_reproc = 1 << 1, - flag_need_comma = 1 << 2, - flag_seek_value = 1 << 3, - flag_escaped = 1 << 4, - flag_string = 1 << 5, - flag_need_colon = 1 << 6, - flag_done = 1 << 7, - flag_num_negative = 1 << 8, - flag_num_zero = 1 << 9, - flag_num_e = 1 << 10, - flag_num_e_got_sign = 1 << 11, - flag_num_e_negative = 1 << 12; - -json_value * json_parse_ex (json_settings * settings, - const json_char * json, - size_t length, - char * error_buf) -{ - json_char error [128]; - unsigned int cur_line; - const json_char * cur_line_begin, * i, * end; - json_value * top, * root, * alloc = 0; - static const json_state _state; - json_state state = _state; - long flags; - long num_digits, num_e; - json_int_t num_fraction; - - error[0] = '\0'; - end = (json + length); - - memcpy (&state.settings, settings, sizeof (json_settings)); - - if (!state.settings.mem_alloc) - state.settings.mem_alloc = default_alloc; - - if (!state.settings.mem_free) - state.settings.mem_free = default_free; - - memset (&state.uint_max, 0xFF, sizeof (state.uint_max)); - memset (&state.ulong_max, 0xFF, sizeof (state.ulong_max)); - - state.uint_max -= 8; /* limit of how much can be added before next check */ - state.ulong_max -= 8; - - for (state.first_pass = 1; state.first_pass >= 0; -- state.first_pass) - { - json_uchar uchar; - unsigned char uc_b1, uc_b2, uc_b3, uc_b4; - json_char * string; - unsigned int string_length; - - top = root = 0; - flags = flag_seek_value; - - cur_line = 1; - cur_line_begin = json; - - for (i = json ;; ++ i) - { - json_char b = (i == end ? 0 : *i); - - if (flags & flag_done) - { - if (!b) - break; - - switch (b) - { - whitespace: - continue; - - default: - sprintf (error, "%d:%d: Trailing garbage: `%c`", cur_line, e_off, b); - goto e_failed; - }; - } - - if (flags & flag_string) - { - if (!b) - { sprintf (error, "Unexpected EOF in string (at %d:%d)", cur_line, e_off); - goto e_failed; - } - - if (string_length > state.uint_max) - goto e_overflow; - - if (flags & flag_escaped) - { - flags &= ~ flag_escaped; - - switch (b) - { - case 'b': string_add ('\b'); break; - case 'f': string_add ('\f'); break; - case 'n': string_add ('\n'); break; - case 'r': string_add ('\r'); break; - case 't': string_add ('\t'); break; - case 'u': - - if ((uc_b1 = hex_value (*++ i)) == 0xFF || (uc_b2 = hex_value (*++ i)) == 0xFF - || (uc_b3 = hex_value (*++ i)) == 0xFF || (uc_b4 = hex_value (*++ i)) == 0xFF) - { - sprintf (error, "Invalid character value `%c` (at %d:%d)", b, cur_line, e_off); - goto e_failed; - } - - uc_b1 = uc_b1 * 16 + uc_b2; - uc_b2 = uc_b3 * 16 + uc_b4; - - uchar = ((json_char) uc_b1) * 256 + uc_b2; - - if (sizeof (json_char) >= sizeof (json_uchar) || (uc_b1 == 0 && uc_b2 <= 0x7F)) - { - string_add ((json_char) uchar); - break; - } - - if (uchar <= 0x7FF) - { - if (state.first_pass) - string_length += 2; - else - { string [string_length ++] = 0xC0 | ((uc_b2 & 0xC0) >> 6) | ((uc_b1 & 0x7) << 2); - string [string_length ++] = 0x80 | (uc_b2 & 0x3F); - } - - break; - } - - if (state.first_pass) - string_length += 3; - else - { string [string_length ++] = 0xE0 | ((uc_b1 & 0xF0) >> 4); - string [string_length ++] = 0x80 | ((uc_b1 & 0xF) << 2) | ((uc_b2 & 0xC0) >> 6); - string [string_length ++] = 0x80 | (uc_b2 & 0x3F); - } - - break; - - default: - string_add (b); - }; - - continue; - } - - if (b == '\\') - { - flags |= flag_escaped; - continue; - } - - if (b == '"') - { - if (!state.first_pass) - string [string_length] = 0; - - flags &= ~ flag_string; - string = 0; - - switch (top->type) - { - case json_string: - - top->u.string.length = string_length; - flags |= flag_next; - - break; - - case json_object: - - if (state.first_pass) - (*(json_char **) &top->u.object.values) += string_length + 1; - else - { - top->u.object.values [top->u.object.length].name - = (json_char *) top->_reserved.object_mem; - - (*(json_char **) &top->_reserved.object_mem) += string_length + 1; - } - - flags |= flag_seek_value | flag_need_colon; - continue; - - default: - break; - }; - } - else - { - string_add (b); - continue; - } - } - - if (flags & flag_seek_value) - { - switch (b) - { - whitespace: - continue; - - case ']': - - if (top->type == json_array) - flags = (flags & ~ (flag_need_comma | flag_seek_value)) | flag_next; - else if (!(state.settings.settings & json_relaxed_commas)) - { sprintf (error, "%d:%d: Unexpected ]", cur_line, e_off); - goto e_failed; - } - - break; - - default: - - if (flags & flag_need_comma) - { - if (b == ',') - { flags &= ~ flag_need_comma; - continue; - } - else - { sprintf (error, "%d:%d: Expected , before %c", cur_line, e_off, b); - goto e_failed; - } - } - - if (flags & flag_need_colon) - { - if (b == ':') - { flags &= ~ flag_need_colon; - continue; - } - else - { sprintf (error, "%d:%d: Expected : before %c", cur_line, e_off, b); - goto e_failed; - } - } - - flags &= ~ flag_seek_value; - - switch (b) - { - case '{': - - if (!new_value (&state, &top, &root, &alloc, json_object)) - goto e_alloc_failure; - - continue; - - case '[': - - if (!new_value (&state, &top, &root, &alloc, json_array)) - goto e_alloc_failure; - - flags |= flag_seek_value; - continue; - - case '"': - - if (!new_value (&state, &top, &root, &alloc, json_string)) - goto e_alloc_failure; - - flags |= flag_string; - - string = top->u.string.ptr; - string_length = 0; - - continue; - - case 't': - - if ((end - i) < 3 || *(++ i) != 'r' || *(++ i) != 'u' || *(++ i) != 'e') - goto e_unknown_value; - - if (!new_value (&state, &top, &root, &alloc, json_boolean)) - goto e_alloc_failure; - - top->u.boolean = 1; - - flags |= flag_next; - break; - - case 'f': - - if ((end - i) < 4 || *(++ i) != 'a' || *(++ i) != 'l' || *(++ i) != 's' || *(++ i) != 'e') - goto e_unknown_value; - - if (!new_value (&state, &top, &root, &alloc, json_boolean)) - goto e_alloc_failure; - - flags |= flag_next; - break; - - case 'n': - - if ((end - i) < 3 || *(++ i) != 'u' || *(++ i) != 'l' || *(++ i) != 'l') - goto e_unknown_value; - - if (!new_value (&state, &top, &root, &alloc, json_null)) - goto e_alloc_failure; - - flags |= flag_next; - break; - - default: - - if (isdigit (b) || b == '-') - { - if (!new_value (&state, &top, &root, &alloc, json_integer)) - goto e_alloc_failure; - - if (!state.first_pass) - { - while (isdigit (b) || b == '+' || b == '-' - || b == 'e' || b == 'E' || b == '.') - { - if ( (++ i) == end) - { - b = 0; - break; - } - - b = *i; - } - - flags |= flag_next | flag_reproc; - break; - } - - flags &= ~ (flag_num_negative | flag_num_e | - flag_num_e_got_sign | flag_num_e_negative | - flag_num_zero); - - num_digits = 0; - num_fraction = 0; - num_e = 0; - - if (b != '-') - { - flags |= flag_reproc; - break; - } - - flags |= flag_num_negative; - continue; - } - else - { sprintf (error, "%d:%d: Unexpected %c when seeking value", cur_line, e_off, b); - goto e_failed; - } - }; - }; - } - else - { - switch (top->type) - { - case json_object: - - switch (b) - { - whitespace: - continue; - - case '"': - - if (flags & flag_need_comma && !(state.settings.settings & json_relaxed_commas)) - { - sprintf (error, "%d:%d: Expected , before \"", cur_line, e_off); - goto e_failed; - } - - flags |= flag_string; - - string = (json_char *) top->_reserved.object_mem; - string_length = 0; - - break; - - case '}': - - flags = (flags & ~ flag_need_comma) | flag_next; - break; - - case ',': - - if (flags & flag_need_comma) - { - flags &= ~ flag_need_comma; - break; - } - /* falls through */ - - default: - - sprintf (error, "%d:%d: Unexpected `%c` in object", cur_line, e_off, b); - goto e_failed; - }; - - break; - - case json_integer: - case json_double: - - if (isdigit (b)) - { - ++ num_digits; - - if (top->type == json_integer || flags & flag_num_e) - { - if (! (flags & flag_num_e)) - { - if (flags & flag_num_zero) - { sprintf (error, "%d:%d: Unexpected `0` before `%c`", cur_line, e_off, b); - goto e_failed; - } - - if (num_digits == 1 && b == '0') - flags |= flag_num_zero; - } - else - { - flags |= flag_num_e_got_sign; - num_e = (num_e * 10) + (b - '0'); - continue; - } - - top->u.integer = (top->u.integer * 10) + (b - '0'); - continue; - } - - num_fraction = (num_fraction * 10) + (b - '0'); - continue; - } - - if (b == '+' || b == '-') - { - if ( (flags & flag_num_e) && !(flags & flag_num_e_got_sign)) - { - flags |= flag_num_e_got_sign; - - if (b == '-') - flags |= flag_num_e_negative; - - continue; - } - } - else if (b == '.' && top->type == json_integer) - { - if (!num_digits) - { sprintf (error, "%d:%d: Expected digit before `.`", cur_line, e_off); - goto e_failed; - } - - top->type = json_double; - top->u.dbl = (double) top->u.integer; - - num_digits = 0; - continue; - } - - if (! (flags & flag_num_e)) - { - if (top->type == json_double) - { - if (!num_digits) - { sprintf (error, "%d:%d: Expected digit after `.`", cur_line, e_off); - goto e_failed; - } - - top->u.dbl += ((double) num_fraction) / (pow (10, (double) num_digits)); - } - - if (b == 'e' || b == 'E') - { - flags |= flag_num_e; - - if (top->type == json_integer) - { - top->type = json_double; - top->u.dbl = (double) top->u.integer; - } - - num_digits = 0; - flags &= ~ flag_num_zero; - - continue; - } - } - else - { - if (!num_digits) - { sprintf (error, "%d:%d: Expected digit after `e`", cur_line, e_off); - goto e_failed; - } - - top->u.dbl *= pow (10, (double) (flags & flag_num_e_negative ? - num_e : num_e)); - } - - if (flags & flag_num_negative) - { - if (top->type == json_integer) - top->u.integer = - top->u.integer; - else - top->u.dbl = - top->u.dbl; - } - - flags |= flag_next | flag_reproc; - break; - - default: - break; - }; - } - - if (flags & flag_reproc) - { - flags &= ~ flag_reproc; - -- i; - } - - if (flags & flag_next) - { - flags = (flags & ~ flag_next) | flag_need_comma; - - if (!top->parent) - { - /* root value done */ - - flags |= flag_done; - continue; - } - - if (top->parent->type == json_array) - flags |= flag_seek_value; - - if (!state.first_pass) - { - json_value * parent = top->parent; - - switch (parent->type) - { - case json_object: - - parent->u.object.values - [parent->u.object.length].value = top; - - break; - - case json_array: - - parent->u.array.values - [parent->u.array.length] = top; - - break; - - default: - break; - }; - } - - if ( (++ top->parent->u.array.length) > state.uint_max) - goto e_overflow; - - top = top->parent; - - continue; - } - } - - alloc = root; - } - - return root; - -e_unknown_value: - - sprintf (error, "%d:%d: Unknown value", cur_line, e_off); - goto e_failed; - -e_alloc_failure: - - strcpy (error, "Memory allocation failure"); - goto e_failed; - -e_overflow: - - sprintf (error, "%d:%d: Too long (caught overflow)", cur_line, e_off); - goto e_failed; - -e_failed: - - if (error_buf) - { - if (*error) - strcpy (error_buf, error); - else - strcpy (error_buf, "Unknown error"); - } - - if (state.first_pass) - alloc = root; - - while (alloc) - { - top = alloc->_reserved.next_alloc; - state.settings.mem_free (alloc, state.settings.user_data); - alloc = top; - } - - if (!state.first_pass) - json_value_free_ex (&state.settings, root); - - return 0; -} - -json_value * json_parse (const json_char * json, size_t length) -{ - static const json_settings _settings; - json_settings settings = _settings; - return json_parse_ex (&settings, json, length, 0); -} - -void json_value_free_ex (json_settings * settings, json_value * value) -{ - json_value * cur_value; - - if (!value) - return; - - value->parent = 0; - - while (value) - { - switch (value->type) - { - case json_array: - - if (!value->u.array.length) - { - settings->mem_free (value->u.array.values, settings->user_data); - break; - } - - value = value->u.array.values [-- value->u.array.length]; - continue; - - case json_object: - - if (!value->u.object.length) - { - settings->mem_free (value->u.object.values, settings->user_data); - break; - } - - value = value->u.object.values [-- value->u.object.length].value; - continue; - - case json_string: - - settings->mem_free (value->u.string.ptr, settings->user_data); - break; - - default: - break; - }; - - cur_value = value; - value = value->parent; - settings->mem_free (cur_value, settings->user_data); - } -} - -void json_value_free (json_value * value) -{ - static const json_settings _settings; - json_settings settings = _settings; - settings.mem_free = default_free; - json_value_free_ex (&settings, value); -} - diff -Nru cctools-7.0.22/dttools/src/json.h cctools-7.1.2/dttools/src/json.h --- cctools-7.0.22/dttools/src/json.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/json.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,268 +0,0 @@ - -/* vim: set et ts=3 sw=3 ft=c: - * - * Copyright (C) 2012 James McLaughlin et al. All rights reserved. - * https://github.com/udp/json-parser - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _JSON_H -#define _JSON_H - -#ifndef json_char - #define json_char char -#endif - -#ifndef json_int_t - #ifndef _MSC_VER - #include - #define json_int_t int64_t - #else - #define json_int_t __int64 - #endif -#endif - -#include - -#ifdef __cplusplus - - #include - - extern "C" - { - -#endif - -typedef struct -{ - unsigned long max_memory; - int settings; - - /* Custom allocator support (leave null to use malloc/free) - */ - - void * (* mem_alloc) (size_t, int zero, void * user_data); - void (* mem_free) (void *, void * user_data); - - void * user_data; /* will be passed to mem_alloc and mem_free */ - -} json_settings; - -#define json_relaxed_commas 1 - -typedef enum -{ - json_none, - json_object, - json_array, - json_integer, - json_double, - json_string, - json_boolean, - json_null - -} json_type; - -extern const struct _json_value json_value_none; - -typedef struct _json_value -{ - struct _json_value * parent; - - json_type type; - - union - { - int boolean; - json_int_t integer; - double dbl; - - struct - { - unsigned int length; - json_char * ptr; /* null terminated */ - - } string; - - struct - { - unsigned int length; - - struct - { - json_char * name; - struct _json_value * value; - - } * values; - - #if defined(__cplusplus) && __cplusplus >= 201103L - decltype(values) begin () const - { return values; - } - decltype(values) end () const - { return values + length; - } - #endif - - } object; - - struct - { - unsigned int length; - struct _json_value ** values; - - #if defined(__cplusplus) && __cplusplus >= 201103L - decltype(values) begin () const - { return values; - } - decltype(values) end () const - { return values + length; - } - #endif - - } array; - - } u; - - union - { - struct _json_value * next_alloc; - void * object_mem; - - } _reserved; - - - /* Some C++ operator sugar */ - - #ifdef __cplusplus - - public: - - inline _json_value () - { memset (this, 0, sizeof (_json_value)); - } - - inline const struct _json_value &operator [] (int index) const - { - if (type != json_array || index < 0 - || ((unsigned int) index) >= u.array.length) - { - return json_value_none; - } - - return *u.array.values [index]; - } - - inline const struct _json_value &operator [] (const char * index) const - { - if (type != json_object) - return json_value_none; - - for (unsigned int i = 0; i < u.object.length; ++ i) - if (!strcmp (u.object.values [i].name, index)) - return *u.object.values [i].value; - - return json_value_none; - } - - inline operator const char * () const - { - switch (type) - { - case json_string: - return u.string.ptr; - - default: - return ""; - }; - } - - inline operator json_int_t () const - { - switch (type) - { - case json_integer: - return u.integer; - - case json_double: - return (json_int_t) u.dbl; - - default: - return 0; - }; - } - - inline operator bool () const - { - if (type != json_boolean) - return false; - - return u.boolean != 0; - } - - inline operator double () const - { - switch (type) - { - case json_integer: - return (double) u.integer; - - case json_double: - return u.dbl; - - default: - return 0; - }; - } - - #endif - -} json_value; - -json_value * json_parse (const json_char * json, - size_t length); - -json_value * json_parse_ex (json_settings * settings, - const json_char * json, - size_t length, - char * error); - -void json_value_free (json_value *); - - -/* Not usually necessary, unless you used a custom mem_alloc and now want to - * use a custom mem_free. - */ -void json_value_free_ex (json_settings * settings, - json_value *); - - -#ifdef __cplusplus - } /* extern "C" */ -#endif - -#endif - - diff -Nru cctools-7.0.22/dttools/src/jx_binary.c cctools-7.1.2/dttools/src/jx_binary.c --- cctools-7.0.22/dttools/src/jx_binary.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/dttools/src/jx_binary.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,327 @@ +/* +Copyright (C) 2019- The University of Notre Dame +This software is distributed under the GNU General Public License. +See the file COPYING for details. +*/ + +#include "jx_binary.h" +#include "jx.h" +#include "debug.h" + +#include +#include +#include + +/* +Rather than relying on the enumeration in jx.h, we rely +on a distinct set of values for binary representations, +since it differs slightly (note TRUE/FALSE/END) and must +not change, unlike the in-memory enumeration of jx.h +*/ + +#define JX_BINARY_NULL 11 +#define JX_BINARY_TRUE 12 +#define JX_BINARY_FALSE 13 +#define JX_BINARY_INTEGER0 14 +#define JX_BINARY_INTEGER8 15 +#define JX_BINARY_INTEGER16 16 +#define JX_BINARY_INTEGER32 17 +#define JX_BINARY_INTEGER64 18 +#define JX_BINARY_STRING8 19 +#define JX_BINARY_STRING16 20 +#define JX_BINARY_STRING32 21 +#define JX_BINARY_DOUBLE 22 +#define JX_BINARY_ARRAY 23 +#define JX_BINARY_OBJECT 24 +#define JX_BINARY_END 25 + +static int jx_binary_write_data( FILE *stream, void *data, unsigned length ) +{ + return fwrite(data,length,1,stream); +} + +static int jx_binary_write_uint8( FILE *stream, uint8_t i ) +{ + return jx_binary_write_data(stream,&i,sizeof(i)); +} + +static int jx_binary_write_uint16( FILE *stream, uint16_t i ) +{ + return jx_binary_write_data(stream,&i,sizeof(i)); +} + +static int jx_binary_write_uint32( FILE *stream, uint32_t i ) +{ + return jx_binary_write_data(stream,&i,sizeof(i)); +} + +static int jx_binary_write_int8( FILE *stream, int8_t i ) +{ + return jx_binary_write_data(stream,&i,sizeof(i)); +} + +static int jx_binary_write_int16( FILE *stream, int16_t i ) +{ + return jx_binary_write_data(stream,&i,sizeof(i)); +} + +static int jx_binary_write_int32( FILE *stream, int32_t i ) +{ + return jx_binary_write_data(stream,&i,sizeof(i)); +} + +static int jx_binary_write_int64( FILE *stream, int64_t i ) +{ + return jx_binary_write_data(stream,&i,sizeof(i)); +} + +static int jx_binary_write_double( FILE *stream, double d ) +{ + return jx_binary_write_data(stream,&d,sizeof(d)); +} + +int jx_binary_write( FILE *stream, struct jx *j ) +{ + struct jx_pair *pair; + struct jx_item *item; + uint32_t length; + int64_t i; + + switch(j->type) { + case JX_NULL: + jx_binary_write_uint8(stream,JX_BINARY_NULL); + break; + case JX_BOOLEAN: + if(j->u.boolean_value) { + jx_binary_write_uint8(stream,JX_BINARY_TRUE); + } else { + jx_binary_write_uint8(stream,JX_BINARY_FALSE); + } + break; + case JX_INTEGER: + i = j->u.integer_value; + if(i==0) { + jx_binary_write_uint8(stream,JX_BINARY_INTEGER0); + } else if(i>=-128 && i<128) { + jx_binary_write_uint8(stream,JX_BINARY_INTEGER8); + jx_binary_write_int8(stream,i); + } else if(i>=-32768 && i<32768) { + jx_binary_write_uint8(stream,JX_BINARY_INTEGER16); + jx_binary_write_int16(stream,i); + } else if(i>=-2147483648 && i<2147483648) { + jx_binary_write_uint8(stream,JX_BINARY_INTEGER32); + jx_binary_write_int32(stream,i); + } else { + jx_binary_write_uint8(stream,JX_BINARY_INTEGER64); + jx_binary_write_int64(stream,i); + } + break; + case JX_DOUBLE: + jx_binary_write_uint8(stream,JX_BINARY_DOUBLE); + jx_binary_write_double(stream,j->u.double_value); + break; + case JX_STRING: + length = strlen(j->u.string_value); + if(length<256) { + jx_binary_write_uint8(stream,JX_BINARY_STRING8); + jx_binary_write_uint8(stream,length); + } else if(length<65536) { + jx_binary_write_uint8(stream,JX_BINARY_STRING16); + jx_binary_write_uint16(stream,length); + } else { + jx_binary_write_uint8(stream,JX_BINARY_STRING32); + jx_binary_write_uint32(stream,length); + } + jx_binary_write_data(stream,j->u.string_value,length); + break; + case JX_ARRAY: + jx_binary_write_uint8(stream,JX_BINARY_ARRAY); + for(item=j->u.items;item;item=item->next) { + jx_binary_write(stream,item->value); + } + jx_binary_write_uint8(stream,JX_BINARY_END); + break; + case JX_OBJECT: + jx_binary_write_uint8(stream,JX_BINARY_OBJECT); + for(pair=j->u.pairs;pair;pair=pair->next) { + jx_binary_write(stream,pair->key); + jx_binary_write(stream,pair->value); + } + jx_binary_write_uint8(stream,JX_BINARY_END); + break; + case JX_OPERATOR: + case JX_SYMBOL: + case JX_ERROR: + debug(D_NOTICE,"cannot write out non-constant JX data!"); + return 0; + break; + } + + return 1; +} + +static int jx_binary_read_data( FILE *stream, void *data, unsigned length ) +{ + return fread(data,length,1,stream); +} + +static int jx_binary_read_uint8( FILE *stream, uint8_t *i ) +{ + return jx_binary_read_data(stream,i,sizeof(*i)); +} + +static int jx_binary_read_uint16( FILE *stream, uint16_t *i ) +{ + return jx_binary_read_data(stream,i,sizeof(*i)); +} + +static int jx_binary_read_uint32( FILE *stream, uint32_t *i ) +{ + return jx_binary_read_data(stream,i,sizeof(*i)); +} + +static int jx_binary_read_int8( FILE *stream, int8_t *i ) +{ + return jx_binary_read_data(stream,i,sizeof(*i)); +} + +static int jx_binary_read_int16( FILE *stream, int16_t *i ) +{ + return jx_binary_read_data(stream,i,sizeof(*i)); +} + +static int jx_binary_read_int32( FILE *stream, int32_t *i ) +{ + return jx_binary_read_data(stream,i,sizeof(*i)); +} + +static int jx_binary_read_int64( FILE *stream, int64_t *i ) +{ + return jx_binary_read_data(stream,i,sizeof(*i)); +} + +static int jx_binary_read_double( FILE *stream, double *d ) +{ + return jx_binary_read_data(stream,d,sizeof(*d)); +} + +static struct jx_pair * jx_binary_read_pair( FILE *stream ) +{ + struct jx *a = jx_binary_read(stream); + if(!a) return 0; + + struct jx *b = jx_binary_read(stream); + if(!b) { + jx_delete(a); + return 0; + } + + return jx_pair(a,b,0); +} + +static struct jx_item * jx_binary_read_item( FILE *stream ) +{ + struct jx *a = jx_binary_read(stream); + if(!a) return 0; + + return jx_item(a,0); +} + +static struct jx * jx_binary_read_string( FILE *stream, uint32_t length ) +{ + char *s = malloc(length+1); + jx_binary_read_data(stream,s,length); + s[length] = 0; + return jx_string_nocopy(s); +} + +struct jx * jx_binary_read( FILE *stream ) +{ + uint8_t type; + int8_t i8; + int16_t i16; + int32_t i32; + int64_t i64; + uint8_t u8; + uint16_t u16; + uint32_t u32; + double d; + struct jx *arr; + struct jx *obj; + struct jx_pair **pair; + struct jx_item **item; + + int result = jx_binary_read_uint8(stream,&type); + if(!result) return 0; + + switch(type) { + case JX_BINARY_NULL: + return jx_null(); + case JX_BINARY_TRUE: + return jx_boolean(1); + case JX_BINARY_FALSE: + return jx_boolean(0); + case JX_BINARY_INTEGER0: + return jx_integer(0); + case JX_BINARY_INTEGER8: + jx_binary_read_int8(stream,&i8); + return jx_integer(i8); + case JX_BINARY_INTEGER16: + jx_binary_read_int16(stream,&i16); + return jx_integer(i16); + case JX_BINARY_INTEGER32: + jx_binary_read_int32(stream,&i32); + return jx_integer(i32); + case JX_BINARY_INTEGER64: + jx_binary_read_int64(stream,&i64); + return jx_integer(i64); + case JX_BINARY_DOUBLE: + jx_binary_read_double(stream,&d); + return jx_double(d); + case JX_BINARY_STRING8: + jx_binary_read_uint8(stream,&u8); + return jx_binary_read_string(stream,u8); + case JX_BINARY_STRING16: + jx_binary_read_uint16(stream,&u16); + return jx_binary_read_string(stream,u16); + case JX_BINARY_STRING32: + jx_binary_read_uint32(stream,&u32); + return jx_binary_read_string(stream,u32); + case JX_BINARY_ARRAY: + arr = jx_array(0); + item = &arr->u.items; + while(1) { + *item = jx_binary_read_item(stream); + if(*item) { + item = &(*item)->next; + } else { + break; + } + } + return arr; + break; + case JX_BINARY_OBJECT: + obj = jx_object(0); + pair = &obj->u.pairs; + while(1) { + *pair = jx_binary_read_pair(stream); + if(*pair) { + pair = &(*pair)->next; + } else { + break; + } + } + return obj; + break; + case JX_BINARY_END: + return 0; + default: + debug(D_NOTICE,"unexpected type %d in binary JX data",type); + return 0; + break; + } + + return 0; +} + + diff -Nru cctools-7.0.22/dttools/src/jx_binary.h cctools-7.1.2/dttools/src/jx_binary.h --- cctools-7.0.22/dttools/src/jx_binary.h 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/dttools/src/jx_binary.h 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,35 @@ +/* +Copyright (C) 2019- The University of Notre Dame +This software is distributed under the GNU General Public License. +See the file COPYING for details. +*/ + +#ifndef JX_BINARY_H +#define JX_BINARY_H + +/** @file jx_binary.h Binary format encode/decode for JX expressions. +These routines allow for JX expressions to be read/written from disk +in a custom binary format that is more efficient than traditional +parsing of ASCII data. It does not conform to an external standard, +and so should only be used for efficient internal storage. +**/ + +#include +#include "jx.h" + +/** Write a JX expression to a file in binary form. +@param stream The stdio stream to write to. +@param j The expression to write. +@return True on success, false on failure. +*/ + +int jx_binary_write( FILE *stream, struct jx *j ); + +/** Read a JX expression from a file in binary form. +@param stream The stdio stream to read from. +@return A JX expression, or null on failure. +*/ + +struct jx * jx_binary_read( FILE *stream ); + +#endif diff -Nru cctools-7.0.22/dttools/src/jx_binary_test.c cctools-7.1.2/dttools/src/jx_binary_test.c --- cctools-7.0.22/dttools/src/jx_binary_test.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/dttools/src/jx_binary_test.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,69 @@ +/* +Copyright (C) 2019- The University of Notre Dame +This software is distributed under the GNU General Public License. +See the file COPYING for details. +*/ + +#include "jx_binary.h" +#include "jx_parse.h" +#include "jx_print.h" + +#include "timestamp.h" + +#include +#include +#include + +#define TIMEIT( name, xxx )\ +{ \ +timestamp_t start = timestamp_get(); \ +xxx \ +timestamp_t end = timestamp_get(); \ +printf( "%s %lu us\n",name,(unsigned long)(end-start)); \ +} + + +int main( int argc, char *argv[] ) +{ + if(argc!=4) { + fprintf(stderr,"use: %s \n",argv[0]); + return 1; + } + + FILE *textfile = fopen(argv[1],"r"); + if(!textfile) { + fprintf(stderr,"couldn't open %s: %s\n",argv[1],strerror(errno)); + return 1; + } + + FILE *binaryfile = fopen(argv[2],"w"); + if(!binaryfile) { + fprintf(stderr,"couldn't open %s: %s\n",argv[2],strerror(errno)); + return 1; + } + + FILE *textout = fopen(argv[3],"w"); + if(!textout) { + fprintf(stderr,"couldn't open %s: %s\n",argv[3],strerror(errno)); + return 1; + } + + + struct jx *j; + TIMEIT( "text read", j = jx_parse_stream(textfile); fclose(textfile); ) + + TIMEIT( "binary write", jx_binary_write(binaryfile,j); fclose(binaryfile); ) + + jx_delete(j); + + binaryfile = fopen(argv[2],"r"); + if(!binaryfile) { + fprintf(stderr,"couldn't open %s: %s\n",argv[2],strerror(errno)); + return 1; + } + + TIMEIT( "binary read", j = jx_binary_read(binaryfile); fclose(binaryfile); ) + + TIMEIT( "text write", jx_print_stream(j,textout); fclose(textout); ) + return 0; +} diff -Nru cctools-7.0.22/dttools/src/jx.c cctools-7.1.2/dttools/src/jx.c --- cctools-7.0.22/dttools/src/jx.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/jx.c 2020-05-05 15:31:15.000000000 +0000 @@ -65,8 +65,13 @@ struct jx * jx_string( const char *string_value ) { assert(string_value); + return jx_string_nocopy(strdup(string_value)); +} + +struct jx * jx_string_nocopy( char *string_value ) +{ struct jx *j = jx_create(JX_STRING); - j->u.string_value = strdup(string_value); + j->u.string_value = string_value; return j; } @@ -143,17 +148,6 @@ return j; } -struct jx *jx_function(const char *name, jx_builtin_t op, - struct jx_item *params, struct jx *body) { - assert(name); - struct jx *j = jx_create(JX_FUNCTION); - j->u.func.name = strdup(name); - j->u.func.params = params; - j->u.func.body = body; - j->u.func.builtin = op; - return j; -} - struct jx * jx_arrayv( struct jx *value, ... ) { va_list args; @@ -420,11 +414,6 @@ jx_delete(j->u.oper.left); jx_delete(j->u.oper.right); break; - case JX_FUNCTION: - free(j->u.func.name); - jx_item_delete(j->u.func.params); - jx_delete(j->u.func.body); - break; case JX_ERROR: jx_delete(j->u.err); break; @@ -507,11 +496,6 @@ return j->u.oper.type == k->u.oper.type && jx_equals(j->u.oper.left,k->u.oper.right) && jx_equals(j->u.oper.right,j->u.oper.right); - case JX_FUNCTION: - return !strcmp(j->u.func.name, k->u.func.name) - && jx_item_equals( - j->u.func.params, k->u.func.params) - && jx_equals(j->u.func.body, k->u.func.body); case JX_ERROR: return jx_equals(j->u.err, k->u.err); } @@ -556,7 +540,7 @@ struct jx *jx_copy( struct jx *j ) { if(!j) return 0; - struct jx *c; + struct jx *c = 0; switch(j->type) { case JX_NULL: @@ -586,17 +570,15 @@ case JX_OPERATOR: c = jx_operator(j->u.oper.type, jx_copy(j->u.oper.left), jx_copy(j->u.oper.right)); break; - case JX_FUNCTION: - c = jx_function(j->u.func.name, j->u.func.builtin, - jx_item_copy(j->u.func.params), - jx_copy(j->u.func.body)); - break; case JX_ERROR: c = jx_error(jx_copy(j->u.err)); break; } - c->line = j->line; + if(c) { + c->line = j->line; + } + return c; } @@ -644,7 +626,6 @@ case JX_OBJECT: return jx_pair_is_constant(j->u.pairs); case JX_ERROR: - case JX_FUNCTION: case JX_OPERATOR: return 0; } diff -Nru cctools-7.0.22/dttools/src/jx_eval.c cctools-7.1.2/dttools/src/jx_eval.c --- cctools-7.0.22/dttools/src/jx_eval.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/jx_eval.c 2020-05-05 15:31:15.000000000 +0000 @@ -183,56 +183,48 @@ } } -static struct jx *jx_eval_call( - struct jx *func, struct jx *args, struct jx *ctx) { +static struct jx *jx_eval_call(struct jx *func, struct jx *args, struct jx *ctx) { assert(func); - assert(func->type == JX_FUNCTION); assert(args); assert(args->type == JX_ARRAY); - switch (func->u.func.builtin) { - case JX_BUILTIN_RANGE: return jx_function_range(args); - case JX_BUILTIN_FORMAT: return jx_function_format(args); - case JX_BUILTIN_JOIN: return jx_function_join(args); - case JX_BUILTIN_CEIL: return jx_function_ceil(args); - case JX_BUILTIN_FLOOR: return jx_function_floor(args); - case JX_BUILTIN_BASENAME: return jx_function_basename(args); - case JX_BUILTIN_DIRNAME: return jx_function_dirname(args); - case JX_BUILTIN_LISTDIR: return jx_function_listdir(args); - case JX_BUILTIN_ESCAPE: return jx_function_escape(args); - case JX_BUILTIN_LAMBDA: { - assert(func->u.func.params); - - ctx = jx_copy(ctx); - if (!ctx) ctx = jx_object(NULL); - assert(ctx->type == JX_OBJECT); - - struct jx_item *p = func->u.func.params; - struct jx_item *a = args->u.items; - while (p->value) { - assert(p->value->type == JX_SYMBOL); - if (a) { - jx_insert(ctx, - jx_string(p->value->u - .symbol_name), - jx_copy(a->value)); - a = a->next; - } else { - jx_insert(ctx, - jx_string(p->value->u - .symbol_name), - jx_null()); - } - p = p->next; - } + if (!jx_istype(func, JX_SYMBOL)) { + jx_error(jx_format( + "on line %d, unknown function: %s", + func->line, + func->u.symbol_name + )); + } - struct jx *j = jx_eval(func->u.func.body, ctx); - jx_delete(ctx); - return j; - } + if (!strcmp(func->u.symbol_name, "range")) { + return jx_function_range(args); + } else if (!strcmp(func->u.symbol_name, "format")) { + return jx_function_format(args); + } else if (!strcmp(func->u.symbol_name, "join")) { + return jx_function_join(args); + } else if (!strcmp(func->u.symbol_name, "ceil")) { + return jx_function_ceil(args); + } else if (!strcmp(func->u.symbol_name, "floor")) { + return jx_function_floor(args); + } else if (!strcmp(func->u.symbol_name, "basename")) { + return jx_function_basename(args); + } else if (!strcmp(func->u.symbol_name, "dirname")) { + return jx_function_dirname(args); + } else if (!strcmp(func->u.symbol_name, "listdir")) { + return jx_function_listdir(args); + } else if (!strcmp(func->u.symbol_name, "escape")) { + return jx_function_escape(args); + } else if (!strcmp(func->u.symbol_name, "template")) { + return jx_function_template(args, ctx); + } else if (!strcmp(func->u.symbol_name, "len")) { + return jx_function_len(args); + } else { + return jx_error(jx_format( + "on line %d, unknown function: %s", + func->line, + func->u.symbol_name + )); } - // invalid function, so bail out - abort(); } static struct jx *jx_eval_slice(struct jx *array, struct jx *slice) { @@ -337,21 +329,26 @@ { if(!o) return 0; - struct jx *left = jx_eval(o->left,context); - struct jx *right = jx_eval(o->right,context); - struct jx *result; + struct jx *left = NULL; + struct jx *right = NULL; + struct jx *result = NULL; - if (jx_istype(left, JX_ERROR)) { - result = left; - left = NULL; - goto DONE; - } + right = jx_eval(o->right,context); if (jx_istype(right, JX_ERROR)) { result = right; right = NULL; goto DONE; } + if (o->type == JX_OP_CALL) return jx_eval_call(o->left, right, context); + + left = jx_eval(o->left,context); + if (jx_istype(left, JX_ERROR)) { + result = left; + left = NULL; + goto DONE; + } + if (o->type == JX_OP_SLICE) return jx_operator(JX_OP_SLICE, left, right); if((left && right) && (left->type!=right->type) ) { @@ -381,11 +378,6 @@ jx_delete(left); jx_delete(right); return r; - } else if (o->type == JX_OP_CALL) { - struct jx *r = jx_eval_call(left, right, context); - jx_delete(left); - jx_delete(right); - return r; } else if(o->type==JX_OP_ADD && jx_istype(left,JX_STRING) && jx_isatomic(right) ) { char *str = jx_print_string(right); @@ -574,35 +566,14 @@ } } -static void jx_eval_add_builtin( - struct jx *ctx, const char *name, jx_builtin_t b) { - if (!jx_lookup(ctx, name)) { - jx_insert( - ctx, jx_string(name), jx_function(name, b, NULL, NULL)); - } -} - struct jx * jx_eval( struct jx *j, struct jx *context ) { struct jx *result = NULL; if (!j) return NULL; - if (context) { - context = jx_copy(context); - } else { - context = jx_object(NULL); - } - if (!jx_istype(context, JX_OBJECT)) { + + if (context && !jx_istype(context, JX_OBJECT)) { return jx_error(jx_string("context must be an object")); } - jx_eval_add_builtin(context, "range", JX_BUILTIN_RANGE); - jx_eval_add_builtin(context, "format", JX_BUILTIN_FORMAT); - jx_eval_add_builtin(context, "join", JX_BUILTIN_JOIN); - jx_eval_add_builtin(context, "ceil", JX_BUILTIN_CEIL); - jx_eval_add_builtin(context, "floor", JX_BUILTIN_FLOOR); - jx_eval_add_builtin(context, "basename", JX_BUILTIN_BASENAME); - jx_eval_add_builtin(context, "dirname", JX_BUILTIN_DIRNAME); - jx_eval_add_builtin(context, "listdir", JX_BUILTIN_LISTDIR); - jx_eval_add_builtin(context, "escape", JX_BUILTIN_ESCAPE); switch(j->type) { case JX_SYMBOL: { @@ -622,7 +593,6 @@ case JX_BOOLEAN: case JX_INTEGER: case JX_STRING: - case JX_FUNCTION: case JX_ERROR: case JX_NULL: result = jx_copy(j); @@ -638,7 +608,6 @@ break; } - jx_delete(context); return result; } @@ -659,3 +628,4 @@ return result; } +/*vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/dttools/src/jx_export.c cctools-7.1.2/dttools/src/jx_export.c --- cctools-7.0.22/dttools/src/jx_export.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/jx_export.c 2020-05-05 15:31:15.000000000 +0000 @@ -125,21 +125,6 @@ jx_print_stream(j,stream); fprintf(stream,"\n"); break; - case JX_FUNCTION: - fprintf(stream, ""); - fprintf(stream, ""); - fprintf(stream, "%s", j->u.func.name); - fprintf(stream, ""); - for (struct jx_item *i = j->u.func.params; i; i = i->next) { - fprintf(stream, ""); - jx_export_xml(i->value, stream); - fprintf(stream, ""); - } - fprintf(stream, ""); - jx_export_xml(j->u.func.body, stream); - fprintf(stream, ""); - fprintf(stream, ""); - break; case JX_ERROR: fprintf(stream,"\n"); jx_print_stream(j,stream); diff -Nru cctools-7.0.22/dttools/src/jx_function.c cctools-7.1.2/dttools/src/jx_function.c --- cctools-7.0.22/dttools/src/jx_function.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/jx_function.c 2020-05-05 15:31:15.000000000 +0000 @@ -15,6 +15,7 @@ #include #include #include +#include #include "jx.h" #include "jx_match.h" @@ -460,3 +461,147 @@ FAILURE: FAIL(funcname, args, err); } + +static struct jx *expand_template(struct jx *template, struct jx *ctx, struct jx *overrides) { + const char *funcname = "template"; + + assert(template); + assert(jx_istype(template, JX_STRING)); + assert(!ctx || jx_istype(ctx, JX_OBJECT)); + assert(!overrides || jx_istype(overrides, JX_OBJECT)); + + const char *message = NULL; + char *s = template->u.string_value; + + buffer_t buf; + buffer_t var; + buffer_init(&buf); + buffer_init(&var); + + while (*s) { + // regular character + if (*s != '{' && *s != '}') { + buffer_putlstring(&buf, s, 1); + s++; + continue; + } + // quoted { + if (*s == '{' && *(s+1) == '{') { + buffer_putliteral(&buf, "{"); + s += 2; + continue; + } + // quoted } + if (*s == '}' && *(s+1) == '}') { + buffer_putliteral(&buf, "}"); + s += 2; + continue; + } + + // got to here, so must be an expression + if (*s != '{') { + message = "unmatched } in template"; + goto FAIL; + } + s++; + while (isspace(*s)) s++; // eat leading whitespace + + if (*s == 0) { + message = "unterminated template expression"; + goto FAIL; + } + if (!isalpha(*s) && *s != '_') { + message = "invalid template; each expression must be a single identifier"; + goto FAIL; + } + buffer_putlstring(&var, s, 1); // copy identifier to buffer + s++; + while (isalnum(*s) || *s == '_') { + buffer_putlstring(&var, s, 1); + s++; + } + while (isspace(*s)) s++; // eat trailing whitespace + + if (*s == 0) { + message = "unterminated template expression"; + goto FAIL; + } + if (*s != '}') { + message = "invalid template; each expression must be a single identifier"; + goto FAIL; + } + s++; + struct jx *k = jx_lookup(overrides, buffer_tostring(&var)); + if (!k) { + k = jx_lookup(ctx, buffer_tostring(&var)); + } + if (!k) { + message = "undefined symbol in template"; + goto FAIL; + } + switch (k->type) { + case JX_INTEGER: + case JX_DOUBLE: + jx_print_buffer(k, &buf); + break; + case JX_STRING: + buffer_putstring(&buf, k->u.string_value); + break; + default: + message = "cannot format expression in template"; + goto FAIL; + } + buffer_rewind(&var, 0); + } + +FAIL: + buffer_free(&buf); + buffer_free(&var); + if (message) { + FAIL(funcname, template, message); + } + return jx_string(buffer_tostring(&buf)); +} + +struct jx *jx_function_template(struct jx *args, struct jx *ctx) { + assert(args); + assert(jx_istype(args, JX_ARRAY)); + assert(!ctx || jx_istype(ctx, JX_OBJECT)); + + const char *funcname = "template"; + struct jx *template = jx_array_index(args, 0); + struct jx *overrides = jx_array_index(args, 1); + + switch (jx_array_length(args)) { + case 0: + FAIL(funcname, args, "template string is required"); + case 2: + if (!jx_istype(overrides, JX_OBJECT)) { + FAIL(funcname, args, "overrides must be an object"); + } + /* Else falls through. */ + case 1: + if (!jx_istype(template, JX_STRING)) { + FAIL(funcname, args, "template must be a string"); + } + return expand_template(template, ctx, overrides); + default: + FAIL(funcname, args, "at most two arguments are allowed"); + } +} + +struct jx *jx_function_len(struct jx *args){ + + assert(args); + assert(jx_istype(args, JX_ARRAY)); + + struct jx* item = jx_array_index(args, 0); + assert(jx_istype(item, JX_ARRAY)); + + int length = jx_array_length(item); + + return jx_integer(length); + +} + +/*vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/dttools/src/jx_function.h cctools-7.1.2/dttools/src/jx_function.h --- cctools-7.0.22/dttools/src/jx_function.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/jx_function.h 2020-05-05 15:31:15.000000000 +0000 @@ -18,5 +18,7 @@ struct jx *jx_function_dirname(struct jx *args); struct jx *jx_function_listdir(struct jx *args); struct jx *jx_function_escape(struct jx *args); +struct jx *jx_function_template(struct jx *args, struct jx *ctx); +struct jx *jx_function_len(struct jx *args); #endif diff -Nru cctools-7.0.22/dttools/src/jx.h cctools-7.1.2/dttools/src/jx.h --- cctools-7.0.22/dttools/src/jx.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/jx.h 2020-05-05 15:31:15.000000000 +0000 @@ -49,7 +49,6 @@ JX_ARRAY, /**< array containing values */ JX_OBJECT, /**< object containing key-value pairs */ JX_OPERATOR, /**< operator on multiple values. */ - JX_FUNCTION, /**< function definition */ JX_ERROR, /**< indicates failed evaluation */ } jx_type_t; @@ -109,27 +108,6 @@ struct jx *right; }; -typedef enum { - JX_BUILTIN_LAMBDA, - JX_BUILTIN_RANGE, - JX_BUILTIN_FORMAT, - JX_BUILTIN_JOIN, - JX_BUILTIN_CEIL, - JX_BUILTIN_FLOOR, - JX_BUILTIN_BASENAME, - JX_BUILTIN_DIRNAME, - JX_BUILTIN_LISTDIR, - JX_BUILTIN_ESCAPE, -} jx_builtin_t; - -struct jx_function { - char *name; - unsigned line; - struct jx_item *params; - struct jx *body; - jx_builtin_t builtin; -}; - /** JX value representing any expression type. */ struct jx { @@ -144,7 +122,6 @@ struct jx_item *items; /**< value of @ref JX_ARRAY */ struct jx_pair *pairs; /**< value of @ref JX_OBJECT */ struct jx_operator oper; /**< value of @ref JX_OPERATOR */ - struct jx_function func; /**< value of @ref JX_FUNCTION */ struct jx *err; /**< error value of @ref JX_ERROR */ } u; }; @@ -161,9 +138,12 @@ /** Create a JX floating point value. @param double_value A C double precision floating point. @return a JX double value. */ struct jx * jx_double( double double_value ); -/** Create a JX string value. @param string_value A C string, which will be duplciated via strdup(). @return A JX string value. */ +/** Create a JX string value. @param string_value A C string, which will be duplicated via strdup(). @return A JX string value. */ struct jx * jx_string( const char *string_value ); +/** Create a JX string value without copying (uncommon). @param string_value A C string, which will be *not* be duplicated, but will be freed at object deletion. @return A JX string value. */ +struct jx * jx_string_nocopy( char *string_value ); + /** Create a JX string value using prinf style formatting. @param fmt A printf-style format string, followed by matching arguments. @return A JX string value. */ struct jx * jx_format( const char *fmt, ... ); @@ -174,12 +154,6 @@ /** Create a JX_ERROR. @param err The associated data for the error. This should be a string description of the error. @return A JX error value. */ struct jx * jx_error( struct jx *err ); -/** Create a JX_FUNCTION. @param params The list of JX_STRING parameter names. - * @param body The function body to evaluate. @returns A JX function definition. - */ -struct jx *jx_function(const char *name, jx_builtin_t op, - struct jx_item *params, struct jx *body); - /** Create a JX array. @param items A linked list of @ref jx_item values. @return A JX array. */ struct jx * jx_array( struct jx_item *items ); @@ -386,3 +360,5 @@ struct jx *jx_merge(struct jx *j, ...); #endif + +/*vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/dttools/src/jx_print.c cctools-7.1.2/dttools/src/jx_print.c --- cctools-7.0.22/dttools/src/jx_print.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/jx_print.c 2020-05-05 15:31:15.000000000 +0000 @@ -153,7 +153,7 @@ buffer_putstring(b,"null"); break; case JX_DOUBLE: - buffer_printf(b,"%g",j->u.double_value); + buffer_printf(b,"%.16g",j->u.double_value); break; case JX_BOOLEAN: buffer_printf(b,"%s",j->u.boolean_value ? "true" : "false"); @@ -189,7 +189,6 @@ } if(j->u.oper.type==JX_OP_LOOKUP) buffer_putstring(b,"]"); break; - case JX_FUNCTION: buffer_putstring(b, j->u.func.name); break; case JX_ERROR: buffer_putstring(b, "error("); jx_print_buffer(j->u.err, b); diff -Nru cctools-7.0.22/dttools/src/link.c cctools-7.1.2/dttools/src/link.c --- cctools-7.0.22/dttools/src/link.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/link.c 2020-05-05 15:31:15.000000000 +0000 @@ -491,14 +491,9 @@ link_window_configure(link); - /* sadly, cygwin does not do non-blocking connect correctly */ -#ifdef CCTOOLS_OPSYS_CYGWIN - if(!link_nonblocking(link, 0)) + if(!link_nonblocking(link, 1)) { goto failure; -#else - if(!link_nonblocking(link, 1)) - goto failure; -#endif + } debug(D_TCP, "connecting to %s port %d", addr, port); @@ -521,9 +516,6 @@ // If the remote address is valid, we are connected no matter what. if(link_address_remote(link, link->raddr, &link->rport)) { debug(D_TCP, "made connection to %s port %d", link->raddr, link->rport); -#ifdef CCTOOLS_OPSYS_CYGWIN - link_nonblocking(link, 1); -#endif return link; } diff -Nru cctools-7.0.22/dttools/src/load_average.c cctools-7.1.2/dttools/src/load_average.c --- cctools-7.0.22/dttools/src/load_average.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/load_average.c 2020-05-05 15:31:15.000000000 +0000 @@ -4,28 +4,7 @@ See the file COPYING for details. */ -#if defined(CCTOOLS_OPSYS_SUNOS) - -#include -#include - -void load_average_get(double *avg) -{ - avg[0] = avg[1] = avg[2] = 0; - getloadavg(avg, 3); -} - -int load_average_get_cpus() -{ - long n = sysconf(_SC_NPROCESSORS_ONLN); - if(n >= 1) { - return n; - } else { - return 1; - } -} - -#elif defined(CCTOOLS_OPSYS_DARWIN) +#if defined(CCTOOLS_OPSYS_DARWIN) #include #include diff -Nru cctools-7.0.22/dttools/src/Makefile cctools-7.1.2/dttools/src/Makefile --- cctools-7.0.22/dttools/src/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -38,6 +38,7 @@ dpopen.c \ elfheader.c \ envtools.c \ + env_replace.c \ fast_popen.c \ fd.c \ file_cache.c \ @@ -57,9 +58,8 @@ http_query.c \ interfaces_address.c \ itable.c \ - json.c \ - json_aux.c \ jx.c \ + jx_binary.c\ jx_database.c \ jx_getopt.c \ jx_match.c \ @@ -112,7 +112,7 @@ url_encode.c \ username.c \ uuid.c \ - xxmalloc.c + xxmalloc.c \ HEADERS_PUBLIC = \ auth.h \ @@ -123,33 +123,63 @@ auth_kerberos.h \ auth_ticket.h \ auth_unix.h \ + bitmap.h \ buffer.h \ category.h \ + cctools.h \ copy_tree.h \ + compat-at.h \ debug.h \ + delete_dir.h \ + envtools.h \ + fast_popen.h \ + full_io.h \ + getopt.h \ + getopt_aux.h \ hash_table.h \ histogram.h \ + host_memory_info.h \ http_query.h \ int_sizes.h \ + itable.h \ jx.h \ jx_match.h \ link.h \ + list.h \ + load_average.h \ md5.h \ + macros.h \ + path.h \ rmonitor_poll.h \ rmsummary.h \ - timestamp.h + stringtools.h \ + text_array.h \ + text_list.h \ + timestamp.h \ + unlink_recursive.h \ + xxmalloc.h \ LIBRARIES = libdttools.a + +ifneq ($(CCTOOLS_STATIC),1) PRELOAD_LIBRARIES = libforce_halt_enospc.so +endif + +ifeq ($(CCTOOLS_CURL_AVAILABLE),yes) +CCTOOLS_EXTERNAL_LINKAGE += $(CCTOOLS_CURL_LDFLAGS) -lssl -lcrypto +SOURCES += s3_file_io.c +HEADERS_PUBLIC += s3_file_io.h +endif + OBJECTS = $(SOURCES:%.c=%.o) #separate, because catalog_query has a slightly different order of linking. -MOST_PROGRAMS = catalog_update catalog_server watchdog disk_allocator jx2json jx2env +MOST_PROGRAMS = catalog_update catalog_server watchdog disk_allocator jx2json jx2env env_replace PROGRAMS = $(MOST_PROGRAMS) catalog_query -SCRIPTS = cctools_gpu_autodetect cctools_python +SCRIPTS = cctools_gpu_autodetect TARGETS = $(LIBRARIES) $(PRELOAD_LIBRARIES) $(PROGRAMS) $(TEST_PROGRAMS) -TEST_PROGRAMS = auth_test disk_alloc_test jx_test microbench multirun jx_count_obj_test histogram_test category_test +TEST_PROGRAMS = auth_test disk_alloc_test jx_test microbench multirun jx_count_obj_test histogram_test category_test jx_binary_test all: $(TARGETS) catalog_query diff -Nru cctools-7.0.22/dttools/src/md5.c cctools-7.1.2/dttools/src/md5.c --- cctools-7.0.22/dttools/src/md5.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/md5.c 2020-05-05 15:31:15.000000000 +0000 @@ -315,7 +315,7 @@ md5_final(digest, &context); } -#if defined(CCTOOLS_OPSYS_DARWIN) || defined(CCTOOLS_OPSYS_CYGWIN) || defined (CCTOOLS_OPSYS_FREEBSD) +#if defined(CCTOOLS_OPSYS_DARWIN) #define stat64 stat #endif diff -Nru cctools-7.0.22/dttools/src/path.c cctools-7.1.2/dttools/src/path.c --- cctools-7.0.22/dttools/src/path.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/path.c 2020-05-05 15:31:15.000000000 +0000 @@ -588,4 +588,17 @@ return r; } +/* Return if the name of a file is a directory */ +int path_is_dir(char *file_name){ + //Grabbed from https://stackoverflow.com/questions/4553012/checking-if-a-file-is-a-directory-or-just-a-file + DIR* directory = opendir(file_name); + + if(directory != NULL){ + closedir(directory); + debug(D_MAKEFLOW_HOOK, "%s is a DIRECTORY",file_name); + return 1; + } + + return 0; +} /* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/dttools/src/path.h cctools-7.1.2/dttools/src/path.h --- cctools-7.0.22/dttools/src/path.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/path.h 2020-05-05 15:31:15.000000000 +0000 @@ -74,4 +74,11 @@ */ int path_depth(const char *s); +/** Finds if the name of some file is a directory +@param file_name The directory that will be checked +@return 1 if readable directory, 0 otherwise + */ +int path_is_dir(char *file_name); + + #endif diff -Nru cctools-7.0.22/dttools/src/pynwheel.py cctools-7.1.2/dttools/src/pynwheel.py --- cctools-7.0.22/dttools/src/pynwheel.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/dttools/src/pynwheel.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,281 @@ +#! /usr/bin/env python3 + +# Francis Schickel +# Research for CCL at the University of Notre Dame +# Fall 2019 + +# Server Addr: /tmp/accelerator_socket + +import socket +import sys +import os +import time +import array +import struct +import json +import argparse + +########################################################## +# # +# Function: send_fds() # +# Purpose: Client side function. Sends stdin, stdout, # +# and stderr FDs to server to dup2() # +# # +########################################################## +def send_fds(sock, msg): + client_in = os.fdopen(os.dup(sys.stdin.fileno()), 'r') + client_out = os.fdopen(os.dup(sys.stdout.fileno()), 'w') + client_err = os.fdopen(os.dup(sys.stderr.fileno()), 'w') + fds = [client_in.fileno(), client_out.fileno(), client_err.fileno()] + sock.sendmsg([msg], [(socket.SOL_SOCKET, socket.SCM_RIGHTS, array.array("i", fds))]) + +########################################################## +# # +# Function: recv_fds() # +# Purpose: Server side function. Recvs stdin, stdout, # +# and stderr FDs from client to dup2() # +# # +########################################################## +def recv_fds(sock, msglen, maxfds): + fds = array.array("i") # Array of ints + msg, ancdata, flags, addr = sock.recvmsg(msglen, socket.CMSG_LEN(maxfds * fds.itemsize)) + for cmsg_level, cmsg_type, cmsg_data in ancdata: + if (cmsg_level == socket.SOL_SOCKET and cmsg_type == socket.SCM_RIGHTS): + # Append data, ignoring any truncated integers at the end. + fds.fromstring(cmsg_data[:len(cmsg_data) - (len(cmsg_data) % fds.itemsize)]) + return msg, list(fds) + +########################################################## +# # +# Function: copy_fds(msg, fds) # +# Purpose: Server side function. # +# The recv'ed fds and close all other FDs so # +# the client cannot access them # +# # +########################################################## +def copy_fds(msg, fds): + new_stdin = os.fdopen(fds[0], 'r') + new_stdout = os.fdopen(fds[1], 'w') + new_stderr = os.fdopen(fds[2], 'w') + os.dup2(fds[0], sys.stdin.fileno()) + os.dup2(fds[1], sys.stdout.fileno()) + os.dup2(fds[2], sys.stderr.fileno()) + for i in range(3, 21): + try: + os.close(i) + except: + continue + + +########################################################## +# # +# Function: read_imports(FILE_NAME) # +# Purpose: Server side function. Cycle through top of # +# file and exec all imports. Ignore comments # +# and whitespace. When non-import/comment/ # +# whitespace is encountered, end loop # +# # +########################################################## +def read_imports(file_name): + source = open(file_name, "r") + for line in source.readlines(): + line = line.rstrip() + if line == "": + continue + words = line.split() + if words[0][0] == '#': + continue + if words[0] != "from" and words[0] != "import": + break + exec(line) + source.close() + + +########################################################## +# # +# Function: recv_msg_from_client(sock_temp, sz) # +# Purpose: Receives msg of set size from set socket. # +# # +########################################################## +def recv_msg_from_client(sock_temp, sz): + amount_recved = 0 + amount_expected = sz + message = b'' + while amount_recved < amount_expected: + data = sock_temp.recv(4096) + amount_recved += sys.getsizeof(data) + message = b''.join([message, data]) + return message + +########################################################## +# # +# Function: daemon_server() # +# Purpose: Creates a server with a Unix Domain Socket # +# and will continually accept new procs # +# # +# TODO: Create timeout system # +# # +########################################################## +def daemon_server(): + server_address = '/tmp/accelerator_socket' + sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + sock.bind(server_address) + sock.listen(1) + while True: + connection, client_address = sock.accept() + check_value = 0 + try: + # 1) Connect to proper FDs + msg, fds = recv_fds(connection, 100, 4) + check_value = 1 + # 2) Recv the expected message size through a packet + message_size = recv_msg_from_client(connection, sys.getsizeof(struct.pack('!i', 1))) + check_value = 2 + message_size = struct.unpack('!i', message_size)[0] + check_value = 3 + # 3) Send ACK for receiving message size + connection.send(struct.pack('!i', 8)) + check_value = 4 + # 4) Recv message from client + message_from_client = recv_msg_from_client(connection, message_size) + check_value = 5 + message_from_client = json.loads(message_from_client.decode()) + check_value = 6 + read_imports(message_from_client['file']) + check_value = 7 + except: + connection.send(struct.pack('!i', check_value)) + connection.close() + continue + connection.send(struct.pack('!i', check_value)) + + # Fork child process to eval file + pid = os.fork() + childProcExit = 0 + if pid == 0: + copy_fds(msg, fds) + sys.argv = [message_from_client["file"]] + if message_from_client["args"]: + sys.argv += message_from_client["args"] + source = open(message_from_client['file']) + read_source = source.read() + # Convert file into an AST to eval + compiled_source = compile(read_source, message_from_client['file'], 'exec') + eval(compiled_source, globals(), locals()) + source.close() + exit(0) + else: + holder, childProcExit = os.waitpid(pid, 0) + if os.WIFEXITED(childProcExit): + childProcExit = os.WEXITSTATUS(childProcExit) + final_return_msg = struct.pack('!i', childProcExit) + + connection.send(final_return_msg) + connection.close() + +########################################################## +# # +# Function: fork_creation() # +# Purpose: When first python proc is called, will need # +# to spin up daemon server. This will fork # +# twice in order to daemonize the child proc # +# which will call the function: daemon_server # +# # +########################################################## +def fork_creation(): + pid = os.fork() + if pid == 0: + os.setsid() + pid1 = os.fork() + if pid1 == 0: + daemon_server() + else: exit(0) + else: + #TODO: change sleep time to smaller + #atime.sleep(5) + return + +if __name__ == "__main__": + # Parse args + parser = argparse.ArgumentParser(description="Use this program to run multiple python processes and allow the modules to persist") + parser.add_argument('--file', type=str, required=True, help="The file to be processed") + parser.add_argument('--args', nargs="*", type=str, help="List of additional args") + args = parser.parse_args() + args_json = json.dumps(vars(args)) + + # Create initial socket + sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + server_address = '/tmp/accelerator_socket' + + # Logic to check if server exists or not + if os.path.exists(server_address): + try: + sock.connect(server_address) + except: # Exception: + sock.close() + os.unlink(server_address) + fork_creation() + h = False + #sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + #sock.connect(server_address) + while not h: + try: + sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + sock.connect(server_address) + h = True + except: + sock.close() + else: + sock.close() + fork_creation() + h = False + while not h: + try: + sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + sock.connect(server_address) + h = True + except: + sock.close() + # Server now exists and is connected to + final_exit_value = 0 + try: + #send FDs to be copied by server + send_fds(sock, str.encode("stdin, stdout, stderr")) + # Send args + message = str.encode(args_json) + msg_sz = struct.pack('!i', sys.getsizeof(message)) + sock.send(msg_sz) + first_ack = recv_msg_from_client(sock, sys.getsizeof(msg_sz)) + first_ack = struct.unpack('!i', first_ack)[0] + if first_ack != 8: + if first_ack == 0: + print("Server: Failed to receive FDs from client", file=sys.stderr) + elif first_ack == 1: + print("Server: Failed to receive message size from client", file=sys.stderr) + elif first_ack == 2: + print("Server: Failed to unpack message size", file=sys.stderr) + elif first_ack == 3: + print("Server: Failed to pack ACK message for client", file=sys.stderr) + sock.close() + final_exit_value = 1 + exit(1) + sock.sendall(message) + second_ack = recv_msg_from_client(sock, sys.getsizeof(msg_sz)) + second_ack = struct.unpack('!i', second_ack)[0] + if second_ack != 7: + if second_ack == 4: + print("Server: Failed to receive JSON message from client", file=sys.stderr) + elif second_ack == 5: + print("Server: Failed to load JSON from client", file=sys.stderr) + elif second_ack == 6: + print("Server: Failed to open client file and/or import imports", file=sys.stderr) + sock.close() + final_exit_value = 1 + exit(1) + sock.sendall(message) + + third_ack = recv_msg_from_client(sock, sys.getsizeof(msg_sz)) + final_exit_value = struct.unpack('!i', third_ack)[0] + finally: + sock.close() + exit(final_exit_value) diff -Nru cctools-7.0.22/dttools/src/rmonitor_poll.c cctools-7.1.2/dttools/src/rmonitor_poll.c --- cctools-7.0.22/dttools/src/rmonitor_poll.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/rmonitor_poll.c 2020-05-05 15:31:15.000000000 +0000 @@ -18,6 +18,8 @@ #include "macros.h" #include "stringtools.h" #include "xxmalloc.h" +#include "load_average.h" + #include "rmonitor_poll_internal.h" #include "host_memory_info.h" @@ -73,7 +75,7 @@ acc_sys_io_usage(&acc->io, &p->io); acc_map_io_usage(&acc->io, &p->io); } - + rmonitor_get_loadavg(&acc->load); } @@ -919,4 +921,139 @@ return tr; } +struct rmsummary *rmonitor_collate_minimonitor(uint64_t start_time, int current_ps, int total_processes, struct rmonitor_process_info *p, struct rmonitor_mem_info *m, struct rmonitor_wdir_info *d) { + struct rmsummary *tr = rmsummary_create(-1); + + tr->wall_time = usecs_since_epoch() - start_time; + tr->cpu_time = p->cpu.accumulated; + + tr->start = start_time; + tr->end = usecs_since_epoch(); + + tr->cores = 0; + + if(tr->wall_time > 0) { + tr->cores = DIV_INT_ROUND_UP(tr->cpu_time, tr->wall_time); + } + + tr->max_concurrent_processes = (int64_t) current_ps; + tr->total_processes = (int64_t) total_processes; + + /* we use max here, as /proc/pid/smaps that fills *m is not always + * available. This causes /proc/pid/status to become a conservative + * fallback. */ + if(m->resident > 0) { + tr->virtual_memory = (int64_t) m->virtual; + tr->memory = (int64_t) m->resident; + tr->swap_memory = (int64_t) m->swap; + } + else { + tr->virtual_memory = (int64_t) p->mem.virtual; + tr->memory = (int64_t) p->mem.resident; + tr->swap_memory = (int64_t) p->mem.swap; + } + + tr->bytes_read = (int64_t) p->io.chars_read; + tr->bytes_read += (int64_t) p->io.bytes_faulted; + tr->bytes_written = (int64_t) p->io.chars_written; + + // set in resource_monitor.c from messages of the helper + // tr->bytes_received = total_bytes_rx; + // tr->bytes_sent = total_bytes_tx; + // tr->bandwidth = average_bandwidth(1); + + tr->total_files = (int64_t) d->files; + tr->disk = (int64_t) DIV_INT_ROUND_UP(d->byte_count, ONE_MEGABYTE); + + tr->machine_load = p->load.last_minute; + tr->machine_cpus = p->load.cpus; + + return tr; +} + +struct rmsummary *rmonitor_minimonitor(minimonitor_op op, uint64_t pid) { + static struct itable *processes = NULL; + static struct rmonitor_process_info *p_acc = NULL; + static struct rmonitor_mem_info *m_acc = NULL; + static struct rmonitor_wdir_info *d_acc = NULL; + + static uint64_t first_pid = 0; + static uint64_t start_time = 0; + static uint64_t total_processes = 0; + + struct rmsummary *result = NULL; + + if(!processes) { + processes = itable_create(0); + p_acc = calloc(1, sizeof(*p_acc)); //Automatic zeroed. + m_acc = calloc(1, sizeof(*m_acc)); + d_acc = calloc(1, sizeof(*d_acc)); + } + + char cwd_link[PATH_MAX]; + char cwd_org[PATH_MAX]; + + struct rmonitor_process_info *p; + switch(op) { + case MINIMONITOR_RESET: + if(processes) { + itable_firstkey(processes); + while(itable_nextkey(processes, &pid, (void **) &p)) { + itable_remove(processes, pid); + free(p); + } + first_pid = 0; + total_processes = 0; + memset(p_acc, 0, sizeof(*p_acc)); + memset(m_acc, 0, sizeof(*m_acc)); + path_disk_size_info_delete_state(d_acc->state); + } + break; + case MINIMONITOR_ADD_PID: + p = itable_lookup(processes, pid); + if(!p) { + p = calloc(1, sizeof(struct rmonitor_process_info)); + p->pid = pid; + itable_insert(processes, p->pid, (void *) p); + total_processes++; + if(first_pid == 0) { + first_pid = pid; + if(start_time < 1) { + rmonitor_get_start_time(pid, &start_time); + } + + snprintf(cwd_link, PATH_MAX, "/proc/%" PRIu64 "/cwd", pid); + size_t n = readlink(cwd_link, cwd_org, PATH_MAX - 1); + if(n > 0) { + cwd_org[n] = '\0'; + d_acc->path = cwd_org; + d_acc->state = NULL; + } + } + } + break; + case MINIMONITOR_REMOVE_PID: + p = itable_lookup(processes, pid); + if(p) { + itable_remove(processes, pid); + free(p); + if(pid == first_pid) { + first_pid = 0; + } + } + break; + case MINIMONITOR_MEASURE: + if(itable_size(processes) > 0) { + rmonitor_poll_all_processes_once(processes, p_acc); + rmonitor_poll_maps_once(processes, m_acc); + rmonitor_poll_wd_once(d_acc, 1); + + result = rmonitor_collate_minimonitor(start_time, itable_size(processes), total_processes, p_acc, m_acc, d_acc); + } + break; + } + + return result; +} + /* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/dttools/src/rmonitor_poll.h cctools-7.1.2/dttools/src/rmonitor_poll.h --- cctools-7.0.22/dttools/src/rmonitor_poll.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/rmonitor_poll.h 2020-05-05 15:31:15.000000000 +0000 @@ -15,4 +15,14 @@ int rmonitor_get_children(pid_t pid, uint64_t **children); + +typedef enum { + MINIMONITOR_RESET = 0, + MINIMONITOR_ADD_PID, + MINIMONITOR_REMOVE_PID, + MINIMONITOR_MEASURE +} minimonitor_op; + +struct rmsummary *rmonitor_minimonitor(minimonitor_op op, uint64_t pid); + #endif diff -Nru cctools-7.0.22/dttools/src/rmonitor_poll_internal.h cctools-7.1.2/dttools/src/rmonitor_poll_internal.h --- cctools-7.0.22/dttools/src/rmonitor_poll_internal.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/rmonitor_poll_internal.h 2020-05-05 15:31:15.000000000 +0000 @@ -11,7 +11,7 @@ #include "hash_table.h" #include "rmonitor_types.h" -#if defined(CCTOOLS_OPSYS_DARWIN) || defined(CCTOOLS_OPSYS_FREEBSD) +#if defined(CCTOOLS_OPSYS_DARWIN) #include #include #include diff -Nru cctools-7.0.22/dttools/src/rmonitor_types.h cctools-7.1.2/dttools/src/rmonitor_types.h --- cctools-7.0.22/dttools/src/rmonitor_types.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/rmonitor_types.h 2020-05-05 15:31:15.000000000 +0000 @@ -1,4 +1,4 @@ -#if defined(CCTOOLS_OPSYS_DARWIN) || defined(CCTOOLS_OPSYS_FREEBSD) +#if defined(CCTOOLS_OPSYS_DARWIN) #include #include #include diff -Nru cctools-7.0.22/dttools/src/rmsummary.c cctools-7.1.2/dttools/src/rmsummary.c --- cctools-7.0.22/dttools/src/rmsummary.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/rmsummary.c 2020-05-05 15:31:15.000000000 +0000 @@ -1059,18 +1059,24 @@ if(d->limits_exceeded) { dl = d->limits_exceeded->field; }\ if(s->limits_exceeded) { sl = s->limits_exceeded->field; }\ if(sf >= df) {\ - if(sf > -1 && !d->limits_exceeded) { d->limits_exceeded = rmsummary_create(-1);}\ - d->limits_exceeded->field = sl < 0 ? -1 : MAX(sl, dl);\ + if(sf > -1) {\ + if(!d->limits_exceeded) {\ + d->limits_exceeded = rmsummary_create(-1);\ + }\ + d->limits_exceeded->field = sl < 0 ? -1 : MAX(sl, dl);\ + }\ }\ } static void merge_limits(struct rmsummary *dest, const struct rmsummary *src) { - if(!dest || !src) + if(!dest || !src) { return; + } - if(!dest->limits_exceeded && !src->limits_exceeded) + if(!dest->limits_exceeded && !src->limits_exceeded) { return; + } merge_limit(dest, src, max_concurrent_processes); merge_limit(dest, src, total_processes); @@ -1100,6 +1106,17 @@ return (d > s) ? d : s; } +/* Select the min of the fields, ignoring negative numbers */ +static int64_t min_field(int64_t d, int64_t s) +{ + if(d < 0 || s < 0) { + return MAX(-1, MAX(s, d)); /* return at least -1. treat -1 as undefined.*/ + } else { + return MIN(s, d); + } +} + + void rmsummary_merge_max(struct rmsummary *dest, const struct rmsummary *src) { if(!dest || !src) @@ -1118,8 +1135,12 @@ #define max_op_w_time(dest, src, field)\ if((dest)->field < (src)->field) {\ + printf("%s, %" PRId64 " %" PRId64 "\n", #field, (dest)->field, (src)->field);\ (dest)->field = (src)->field;\ (dest)->peak_times->field = (dest)->wall_time;\ + }\ + if((dest)->field > -1 && (dest)->peak_times->field < 0) {\ + (dest)->peak_times->field = 0;\ } void rmsummary_merge_max_w_time(struct rmsummary *dest, const struct rmsummary *src) @@ -1130,10 +1151,13 @@ if(!dest->peak_times) dest->peak_times = rmsummary_create(-1); - rmsummary_apply_op(dest, src, max_field, start); + rmsummary_apply_op(dest, src, min_field, start); + dest->peak_times->start = dest->start; + rmsummary_apply_op(dest, src, max_field, end); - rmsummary_apply_op(dest, src, max_field, wall_time); + dest->peak_times->end = dest->end; + max_op_w_time(dest, src, wall_time); max_op_w_time(dest, src, max_concurrent_processes); max_op_w_time(dest, src, total_processes); max_op_w_time(dest, src, cpu_time); @@ -1153,16 +1177,6 @@ max_op_w_time(dest, src, fs_nodes); } -/* Select the min of the fields, ignoring negative numbers */ -static int64_t min_field(int64_t d, int64_t s) -{ - if(d < 0 || s < 0) { - return MAX(-1, MAX(s, d)); /* return at least -1. treat -1 as undefined.*/ - } else { - return MIN(s, d); - } -} - void rmsummary_merge_min(struct rmsummary *dest, const struct rmsummary *src) { if(!dest || !src) @@ -1336,6 +1350,54 @@ return s->snapshots[i]; } +#define over_limit_check(measured, limits, fld)\ + if((limits)->fld > -1 && (measured)->fld > 0 && (limits)->fld - (measured)->fld < 0)\ + {\ + debug(D_DEBUG, "Limit " #fld " broken: %" PRId64 " > %" PRId64 "\n", (measured)->fld, (limits)->fld);\ + if(!(measured)->limits_exceeded) { (measured)->limits_exceeded = rmsummary_create(-1); }\ + (measured)->limits_exceeded->fld = limits->fld;\ + } + +/* return 0 means above limit, 1 means limist ok */ +int rmsummary_check_limits(struct rmsummary *measured, struct rmsummary *limits) +{ + measured->limits_exceeded = NULL; + + /* Consider errors as resources exhausted. Used for ENOSPC, ENFILE, etc. */ + if(measured->last_error) { + return 0; + } + + if(!limits) { + return 1; + } + + over_limit_check(measured, limits, start); + over_limit_check(measured, limits, end); + over_limit_check(measured, limits, cores); + over_limit_check(measured, limits, wall_time); + over_limit_check(measured, limits, cpu_time); + over_limit_check(measured, limits, max_concurrent_processes); + over_limit_check(measured, limits, total_processes); + over_limit_check(measured, limits, virtual_memory); + over_limit_check(measured, limits, memory); + over_limit_check(measured, limits, swap_memory); + over_limit_check(measured, limits, bytes_read); + over_limit_check(measured, limits, bytes_written); + over_limit_check(measured, limits, bytes_received); + over_limit_check(measured, limits, bytes_sent); + over_limit_check(measured, limits, total_files); + over_limit_check(measured, limits, disk); + + if(measured->limits_exceeded) { + return 0; + } + else { + return 1; + } +} + + /* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/dttools/src/rmsummary.h cctools-7.1.2/dttools/src/rmsummary.h --- cctools-7.0.22/dttools/src/rmsummary.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/rmsummary.h 2020-05-05 15:31:15.000000000 +0000 @@ -15,11 +15,11 @@ #include "buffer.h" /* Environment variables names */ -#define RESOURCES_CORES "CORES" -#define RESOURCES_MEMORY "MEMORY" -#define RESOURCES_DISK "DISK" +#define RESOURCES_CORES "CORES" +#define RESOURCES_MEMORY "MEMORY" +#define RESOURCES_DISK "DISK" #define RESOURCES_WALL_TIME "WALL_TIME" -#define RESOURCES_GPUS "GPUS" +#define RESOURCES_GPUS "GPUS" // These fields are defined as signed integers, even though they // will only contain positive numbers. This is to conversion to @@ -135,4 +135,6 @@ struct rmsummary *rmsummary_get_snapshot(const struct rmsummary *s, int i); +int rmsummary_check_limits(struct rmsummary *measured, struct rmsummary *limits); + #endif diff -Nru cctools-7.0.22/dttools/src/s3_file_io.c cctools-7.1.2/dttools/src/s3_file_io.c --- cctools-7.0.22/dttools/src/s3_file_io.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/dttools/src/s3_file_io.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,444 @@ +/* + * + * Author: Vlad Korolev, + * Modified s3_get and s3_put. Also added s3_check: Nicholas Potteiger + * +*/ + +/*! + \mainpage + + This is a small library that provides Amazon Web Services binding + for C programs. + + The s3_file_io leverages CURL and OPENSSL libraries for HTTP transfer and + cryptographic functions. + + The \ref todo list is here. + + The \ref bug list is here. + +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "s3_file_io.h" + + +/*! + \defgroup internal Internal Functions + \{ +*/ + +static int debug = 0; /// length); + memcpy(buff, bptr->data, bptr->length-1); + buff[bptr->length-1] = 0; + + BIO_free_all(b64); + + return buff; +} + +/// Handles reception of the data +/// \param ptr pointer to the incoming data +/// \param size size of the data member +/// \param nmemb number of data memebers +/// \param stream pointer to I/O buffer +/// \return number of bytes processed +static size_t writefunc ( void * ptr, size_t size, size_t nmemb, void * stream ) +{ + size_t written = fwrite(ptr, size, nmemb, stream); + return written; +} + +/// Print debug output +/// \internal +/// \param fmt printf like formating string +static void __debug ( char *fmt, ... ) { + /// If debug flag is not set we won't print anything + if ( ! debug ) return ; + /// Otherwise process the arguments and print the result + va_list args; + va_start( args, fmt ); + fprintf( stderr, "DBG: " ); + vfprintf( stderr, fmt, args ); + fprintf( stderr, "\n" ); + va_end( args ); +} + + +/// Get Request Date +/// \internal +/// \return date in HTTP format +static char * __aws_get_httpdate () +{ + static char dTa[256]; + time_t t = time(NULL); + struct tm * gTime = gmtime ( & t ); + memset ( dTa, 0 , sizeof(dTa)); + strftime ( dTa, sizeof(dTa), "%a, %d %b %Y %H:%M:%S +0000", gTime ); + __debug ( "Request Time: %s", dTa ); + return dTa; +} + +/// Get S3 Request signature +/// \internal +/// \param resource -- URI of the object +/// \param resSize -- size of the resoruce buffer +/// \param date -- HTTP date +/// \param method -- HTTP method +/// \param bucket -- bucket +/// \param file -- file +/// \return fills up resource and date parameters, also +/// returns request signature to be used with Authorization header +static char * GetStringToSign ( char * resource, int resSize, + char ** date, + char * const method, + char * const bucket, + char * const file ) +{ + char reqToSign[2048]; + char acl[32]; + char rrs[64]; + + /// \todo Change the way RRS is handled. Need to pass it in + + * date = __aws_get_httpdate(); + + memset ( resource,0,resSize); + if ( bucket != NULL ) + snprintf ( resource, resSize,"%s/%s", bucket, file ); + else + snprintf ( resource, resSize,"%s", file ); + + if (AccessControl) + snprintf( acl, sizeof(acl), "x-amz-acl:%s\n", AccessControl); + else + acl[0] = 0; + + if (useRrs) + strncpy( rrs, "x-amz-storage-class:REDUCED_REDUNDANCY\n", sizeof(rrs)); + else + rrs[0] = 0; + + + snprintf ( reqToSign, sizeof(reqToSign),"%s\n\n%s\n%s\n%s%s/%s", + method, + MimeType ? MimeType : "", + *date, + acl, + rrs, + resource ); + + // EU: If bucket is in virtual host name, remove bucket from path + if (bucket && strncmp(S3Host, bucket, strlen(bucket)) == 0) + snprintf ( resource, resSize,"%s", file ); + + return __aws_sign(reqToSign); +} + +/*! + \defgroup conf Configuration Functions + \{ +*/ + +/// Initialize the library +void aws_init () { curl_global_init (CURL_GLOBAL_ALL); } + +/// Set debuging output +/// \param d when non-zero causes debugging output to be printed +void aws_set_debug (int d) +{ + debug = d; +} + +/// Set AWS account access key +/// \param key new AWS authentication key +void aws_set_key ( char * const key ) +{ awsKey = key == NULL ? NULL : strdup(key); } + +/// Set AWS account access key ID +/// \param keyid new AWS key ID +void aws_set_keyid ( char * const keyid ) +{ awsKeyID = keyid == NULL ? NULL : strdup(keyid);} + +/*! + \defgroup s3 S3 Interface Functions + \{ +*/ + + +/// Select current S3 bucket +/// \param str bucket ID +void s3_set_bucket ( char * const str ) +{ Bucket = str == NULL ? NULL : strdup(str); } + +/// Set S3 host +void s3_set_host ( char * const str ) +{ S3Host = str == NULL ? NULL : strdup(str); } + +/// Set S3 MimeType +void s3_set_mime ( char * const str ) +{ MimeType = str ? strdup(str) : NULL; } + +/// Set S3 AccessControl +void s3_set_acl ( char * const str ) +{ AccessControl = str ? strdup(str) : NULL; } + + +/// Upload the file into currently selected bucket +/// \param FILE b +/// \param file filename (can be renamed to a different name in s3 bucket this way) +// file needs to be open before using fopen with param 'rb' +// Ex. FILE *fp = fopen("test.txt","rb"); +// s3_put(fp,"test.txt"); +int s3_put ( FILE * b, char * const file ) +{ + char * const method = "PUT"; + char resource [1024]; + char * date = NULL; + + char * signature = GetStringToSign ( resource, sizeof(resource), + &date, method, Bucket, file ); + int sc = s3_do_put( b, signature, date, resource ); + free ( signature ); + return sc; + +} + + +/// Download the file from the current bucket +/// \param FILE b +/// \param file filename +// file (can be any file name of choice) needs to be open before using fopen with param 'wb' +// Ex. FILE *fp = fopen("test.txt","wb"); +// s3_get(fp,"test.txt); +int s3_get ( FILE * b, char * const file ) +{ + char * const method = "GET"; + + char resource [1024]; + char * date = NULL; + + + char * signature = GetStringToSign ( resource, sizeof(resource), + &date, method, Bucket, file ); + int sc = s3_do_get( b, signature, date, resource ); + free ( signature ); + return sc; +} + +///Checks to see if file exists in S3 bucket +/// \param file filename +int s3_check ( char * const file ) +{ + char * const method = "HEAD"; + + char resource [1024]; + char * date = NULL; + char * signature = GetStringToSign ( resource, sizeof(resource), + &date, method, Bucket, file ); + int sc = s3_do_check( signature, date, resource ); + free ( signature ); + + return sc; + +} + + + +static int s3_do_put ( FILE *b, char * const signature, + char * const date, char * const resource ) +{ + char Buf[1024]; + struct stat file_info; + CURL* ch = curl_easy_init( ); + struct curl_slist *slist=NULL; + + if(fstat(fileno(b), &file_info) != 0) + return 1; /* can't continue */ + + if (MimeType) { + snprintf ( Buf, sizeof(Buf), "Content-Type: %s", MimeType ); + slist = curl_slist_append(slist, Buf ); + } + + if (AccessControl) { + snprintf ( Buf, sizeof(Buf), "x-amz-acl: %s", AccessControl ); + slist = curl_slist_append(slist, Buf ); + } + + if (useRrs) { + strncpy ( Buf, "x-amz-storage-class: REDUCED_REDUNDANCY", sizeof(Buf) ); + slist = curl_slist_append(slist, Buf ); } + + + + snprintf ( Buf, sizeof(Buf), "Date: %s", date ); + slist = curl_slist_append(slist, Buf ); + snprintf ( Buf, sizeof(Buf), "Authorization: AWS %s:%s", awsKeyID, signature ); + slist = curl_slist_append(slist, Buf ); + + snprintf ( Buf, sizeof(Buf), "http://%s/%s", S3Host , resource ); + curl_easy_setopt ( ch, CURLOPT_HTTPHEADER, slist); + curl_easy_setopt ( ch, CURLOPT_URL, Buf ); + curl_easy_setopt ( ch, CURLOPT_READDATA, b ); + curl_easy_setopt ( ch, CURLOPT_UPLOAD, 1L ); + curl_easy_setopt ( ch, CURLOPT_INFILESIZE,(curl_off_t)file_info.st_size); + //curl_easy_setopt ( ch, CURLOPT_VERBOSE, 1L ); + //curl_easy_setopt ( ch, CURLOPT_FOLLOWLOCATION, 1 ); + + int sc = curl_easy_perform(ch); + /** \todo check the return code */ + __debug ( "Return Code: %d ", sc ); + + curl_slist_free_all(slist); + curl_easy_cleanup(ch); + + return sc; + +} + + +static int s3_do_get ( FILE *b, char * const signature, + char * const date, char * const resource ) +{ + char Buf[1024]; + + CURL* ch = curl_easy_init( ); + struct curl_slist *slist=NULL; + snprintf ( Buf, sizeof(Buf), "Date: %s", date ); + slist = curl_slist_append(slist, Buf ); + snprintf ( Buf, sizeof(Buf), "Authorization: AWS %s:%s", awsKeyID, signature ); + slist = curl_slist_append(slist, Buf ); + + snprintf ( Buf, sizeof(Buf), "http://%s/%s", S3Host, resource ); + curl_easy_setopt ( ch, CURLOPT_HTTPHEADER, slist); + curl_easy_setopt ( ch, CURLOPT_URL, Buf ); + curl_easy_setopt ( ch, CURLOPT_WRITEFUNCTION, writefunc ); + curl_easy_setopt ( ch, CURLOPT_WRITEDATA, b ); + + int sc = curl_easy_perform(ch); + long response_code; + curl_easy_getinfo(ch, CURLINFO_RESPONSE_CODE, &response_code); + /** \todo check the return code */ + __debug ( "Return Code: %d ", sc ); + + curl_slist_free_all(slist); + curl_easy_cleanup(ch); + + if(response_code == 200){ + printf("FILE EXISTS\n"); + return 0; + } + else{ + printf("FILE DOES NOT EXIST\n"); + return 1; + } + +} + +static int s3_do_check ( char * const signature, + char * const date, char * const resource ) +{ + char Buf[1024]; + + CURL* ch = curl_easy_init( ); + struct curl_slist *slist=NULL; + + snprintf ( Buf, sizeof(Buf), "Date: %s", date ); + slist = curl_slist_append(slist, Buf ); + snprintf ( Buf, sizeof(Buf), "Authorization: AWS %s:%s", awsKeyID, signature ); + slist = curl_slist_append(slist, Buf ); + + snprintf ( Buf, sizeof(Buf), "http://%s/%s", S3Host, resource ); + curl_easy_setopt ( ch, CURLOPT_HTTPHEADER, slist); + curl_easy_setopt ( ch, CURLOPT_URL, Buf ); + curl_easy_setopt(ch, CURLOPT_NOBODY, 1); + + CURLcode sc = curl_easy_perform(ch); + /** \todo check the return code */ + __debug ( "Return Code: %d ", sc ); + long response_code; + curl_easy_getinfo(ch, CURLINFO_RESPONSE_CODE, &response_code); + curl_slist_free_all(slist); + curl_easy_cleanup(ch); + if(response_code == 200){ + printf("FILE EXISTS\n"); + return 1; + } + else{ + printf("FILE DOES NOT EXIST\n"); + return 0; + } +} + +static char* __aws_sign ( char * const str ) +{ + HMAC_CTX ctx; + unsigned char MD[256]; + unsigned len; + + __debug("StrToSign:%s", str ); + + HMAC_CTX_init(&ctx); + HMAC_Init(&ctx, awsKey, strlen(awsKey), EVP_sha1()); + HMAC_Update(&ctx,(unsigned char*)str, strlen(str)); + HMAC_Final(&ctx,(unsigned char*)MD,&len); + HMAC_CTX_cleanup(&ctx); + + char * b64 = __b64_encode (MD,len); + __debug("Signature: %s", b64 ); + + return b64; +} + + + diff -Nru cctools-7.0.22/dttools/src/s3_file_io.h cctools-7.1.2/dttools/src/s3_file_io.h --- cctools-7.0.22/dttools/src/s3_file_io.h 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/dttools/src/s3_file_io.h 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,22 @@ + +/* + * + * Author: Vlad Korolev, + * Modified s3_get and s3_put. Also added s3_check: Nicholas Potteiger + * + */ + + +void aws_init (); +void aws_set_key ( char * const str ); +void aws_set_keyid ( char * const str ); +void aws_set_debug (int d); + + +void s3_set_bucket ( char * const str ); +int s3_get ( FILE * b, char * const file ); +int s3_put ( FILE * b, char * const file ); +int s3_check ( char * const file ); +void s3_set_host ( char * const str ); +void s3_set_mime ( char * const str ); +void s3_set_acl ( char * const str ); diff -Nru cctools-7.0.22/dttools/src/uptime.c cctools-7.1.2/dttools/src/uptime.c --- cctools-7.0.22/dttools/src/uptime.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/src/uptime.c 2020-05-05 15:31:15.000000000 +0000 @@ -7,7 +7,7 @@ #include "uptime.h" #include "debug.h" -#if defined(CCTOOLS_OPSYS_DARWIN) || defined(CCTOOLS_OPSYS_FREEBSD) +#if defined(CCTOOLS_OPSYS_DARWIN) #include #include #elif defined(CCTOOLS_OPSYS_LINUX) @@ -18,7 +18,7 @@ { int uptime; -#if defined(CCTOOLS_OPSYS_DARWIN) || defined(CCTOOLS_OPSYS_FREEBSD) +#if defined(CCTOOLS_OPSYS_DARWIN) struct timeval boottime; size_t len = sizeof(boottime); int mib[2] = { CTL_KERN, KERN_BOOTTIME }; diff -Nru cctools-7.0.22/dttools/test/jx.expected cctools-7.1.2/dttools/test/jx.expected --- cctools-7.0.22/dttools/test/jx.expected 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/test/jx.expected 2020-05-05 15:31:15.000000000 +0000 @@ -3,8 +3,8 @@ expression: 10 value: 10 -expression: 3847.58 -value: 3847.58 +expression: 3847.576 +value: 3847.576 expression: 0.5 value: 0.5 @@ -241,16 +241,16 @@ value: error("on line 105, true%false: unsupported operator on boolean") expression: f+g -value: 3.64159 +value: 3.641592654 expression: f-g -value: -2.64159 +value: -2.641592654 expression: f*g -value: 1.5708 +value: 1.570796327 expression: f/g -value: 0.159155 +value: 0.159154943071114 expression: f%g value: 0 @@ -283,7 +283,7 @@ value: error("on line 121, 10 or 20: unsupported operator on integer") expression: (x+y)*(f+g) -value: 109.248 +value: 109.24777962 expression: 10+20*30 value: 610 @@ -444,7 +444,7 @@ expression: format("%F",3.14) value: "3.140000" -expression: format("%g",9.9e+09) +expression: format("%g",9900000000) value: "9.9e+09" expression: format("%G",2.11111e-12) @@ -630,9 +630,84 @@ expression: true+" maybe "+false value: "true maybe false" -expression: "pi is "+3.14159 -value: "pi is 3.14159" +expression: "pi is "+3.141592654 +value: "pi is 3.141592654" expression: error({"source":"jx_eval","op":10+[1],"line":409,"file":"jx_eval.c","message":"mismatched types for operator","name":"TypeError"}) value: error({"source":"jx_eval","op":10+[1],"line":409,"file":"jx_eval.c","message":"mismatched types for operator","name":"TypeError"}) +expression: template() +value: error("function template on line 0: template string is required") + +expression: template(2) +value: error("function template on line 0: template must be a string") + +expression: template(2,{}) +value: error("function template on line 0: template must be a string") + +expression: template("str",2) +value: error("function template on line 0: overrides must be an object") + +expression: template("str",{},0) +value: error("function template on line 0: at most two arguments are allowed") + +expression: template("str") +value: "str" + +expression: template("") +value: "" + +expression: template("{infile}") +value: "mydata" + +expression: template(" {x}") +value: " 10" + +expression: template("{f}") +value: "0.5" + +expression: template("test { g} and {y\t} ") +value: "test 3.141592654 and 20 " + +expression: template("{{{f}}}") +value: "{0.5}" + +expression: template("{zzzzzzzzzzzzzzzzzzzzzz}") +value: error("function template on line 278: undefined symbol in template") + +expression: template("{") +value: error("function template on line 279: unterminated template expression") + +expression: template("}") +value: error("function template on line 280: unmatched } in template") + +expression: template("{}") +value: error("function template on line 281: invalid template; each expression must be a single identifier") + +expression: template("{x y}") +value: error("function template on line 282: invalid template; each expression must be a single identifier") + +expression: template("{x+y}") +value: error("function template on line 283: invalid template; each expression must be a single identifier") + +expression: template("{12}") +value: error("function template on line 284: invalid template; each expression must be a single identifier") + +expression: template("f}") +value: error("function template on line 285: unmatched } in template") + +expression: template("{f") +value: error("function template on line 286: unterminated template expression") + +expression: template("{f}",{"f":"ok"}) +value: "ok" + +expression: template("{f} {q}",{"q":"ok"}) +value: "0.5 ok" + +expression: template("{q}",{"f":"ok"}) +value: error("function template on line 289: undefined symbol in template") + +expression: template("bad {object}") +value: error("function template on line 290: cannot format expression in template") + diff -Nru cctools-7.0.22/dttools/test/jx.input cctools-7.1.2/dttools/test/jx.input --- cctools-7.0.22/dttools/test/jx.input 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/dttools/test/jx.input 2020-05-05 15:31:15.000000000 +0000 @@ -263,4 +263,30 @@ error({"source":"jx_eval","op":10+[1],"line":409,"file":"jx_eval.c","message":"mismatched types for operator","name":"TypeError"}); +template(); +template(2); +template(2, {}); +template("str", 2); +template("str", {}, 0); +template("str"); +template(""); +template("{infile}"); +template(" {x}"); +template("{f}"); +template("test { g} and {y } "); +template("{{{f}}}"); +template("{zzzzzzzzzzzzzzzzzzzzzz}"); +template("{"); +template("}"); +template("{}"); +template("{x y}"); +template("{x+y}"); +template("{12}"); +template("f}"); +template("{f"); +template("{f}", {"f": "ok"}); +template("{f} {q}", {"q": "ok"}); +template("{q}", {"f": "ok"}); +template("bad {object}"); + #end diff -Nru cctools-7.0.22/ftsh/Makefile cctools-7.1.2/ftsh/Makefile --- cctools-7.0.22/ftsh/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -include ../config.mk -include ../rules.mk - -PHONY_TARGETS ?= src -TARGETS ?= $(PHONY_TARGETS) - -all: $(TARGETS) - -$(TARGETS): - @$(MAKE) -C $@ - -CLEAN_TARGETS = $(TARGETS:%=clean-%) -$(CLEAN_TARGETS): - @$(MAKE) -C $(@:clean-%=%) clean -clean: $(CLEAN_TARGETS) - -INSTALL_TARGETS = $(TARGETS:%=install-%) -$(INSTALL_TARGETS): - @$(MAKE) -C $(@:install-%=%) install -install: $(INSTALL_TARGETS) - -TEST_TARGETS = $(TARGETS:%=test-%) -$(TEST_TARGETS): - @$(MAKE) -C $(@:test-%=%) test -test: $(TEST_TARGETS) - -.PHONY: $(PHONY_TARGETS) $(CLEAN_TARGETS) $(INSTALL_TARGETS) $(TEST_TARGETS) all clean install test diff -Nru cctools-7.0.22/ftsh/src/ast.c cctools-7.1.2/ftsh/src/ast.c --- cctools-7.0.22/ftsh/src/ast.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/ast.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,213 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include "ast.h" -#include "xxmalloc.h" - -#include -#include -#include - -#define ALLOC(x) \ - x = xxmalloc( sizeof ( * x ) ); \ - memset(x,0,sizeof( * x ) ); - -struct ast_group * ast_group_create( struct ast_command *command, struct ast_group *next ) -{ - struct ast_group *g; - - ALLOC(g); - - g->command = command; - g->next = next; - - return g; -} - -struct ast_function * ast_function_create( int function_line, int end_line, struct ast_word *name, struct ast_group *body ) -{ - struct ast_function *f; - - ALLOC(f); - - f->function_line = function_line; - f->end_line = end_line; - f->name = name; - f->body = body; - - return f; -} - -struct ast_command * ast_command_create( int type, void *data ) -{ - struct ast_command *s; - - ALLOC(s); - - s->type = type; - s->u.data = data; - - return s; -} - -struct ast_conditional * ast_conditional_create( int iline, int tline, int eline, int end_line, struct expr *expr, struct ast_group *positive, struct ast_group *negative ) -{ - struct ast_conditional *c; - - ALLOC(c); - - c->if_line = iline; - c->then_line = tline; - c->else_line = eline; - c->end_line = end_line; - c->expr = expr; - c->positive = positive; - c->negative = negative; - - return c; -} - -struct ast_try * ast_try_create( int try_line, int catch_line, int end_line, struct ast_try_limit *time_limit, struct ast_try_limit *loop_limit, struct ast_try_limit *every_limit, struct ast_group *body, struct ast_group *catch_block ) -{ - struct ast_try *t; - - ALLOC(t); - - t->try_line = try_line; - t->catch_line = catch_line; - t->end_line = end_line; - t->time_limit = time_limit; - t->loop_limit = loop_limit; - t->every_limit = every_limit; - t->body = body; - t->catch_block = catch_block; - - return t; -} - -struct ast_try_limit * ast_try_limit_create( struct expr *expr, int units ) -{ - struct ast_try_limit *l; - - ALLOC(l); - - l->expr = expr; - l->units = units; - - return l; -} - -struct ast_whileloop * ast_whileloop_create( int while_line, int do_line, int end_line, struct expr *expr, struct ast_group *body ) -{ - struct ast_whileloop *f; - - ALLOC(f); - - f->while_line = while_line; - f->end_line = end_line; - f->expr = expr; - f->body = body; - - return f; -} - -struct ast_forloop * ast_forloop_create( int type, int for_line, int end_line, struct ast_word *name, struct expr *list, struct ast_group *body ) -{ - struct ast_forloop *f; - - ALLOC(f); - - f->type = type; - f->for_line = for_line; - f->end_line = end_line; - f->name = name; - f->list = list; - f->body = body; - - return f; -} - -struct ast_shift * ast_shift_create( int line, struct expr *expr ) -{ - struct ast_shift *r; - - ALLOC(r); - - r->line = line; - r->expr = expr; - - return r; -} - -struct ast_return * ast_return_create( int line, struct expr *expr ) -{ - struct ast_return *r; - - ALLOC(r); - - r->line = line; - r->expr = expr; - - return r; -} - -struct ast_assign * ast_assign_create( int line, struct ast_word *name, struct expr *expr ) -{ - struct ast_assign *r; - - ALLOC(r); - - r->line = line; - r->name = name; - r->expr = expr; - - return r; -} - -struct ast_simple * ast_simple_create( int line, struct ast_word *words, struct ast_redirect *redirects ) -{ - struct ast_simple *s; - - ALLOC(s); - - s->line = line; - s->words = words; - s->redirects = redirects; - - return s; -} - -struct ast_redirect * ast_redirect_create( int kind, int source, struct ast_word *target, int mode ) -{ - struct ast_redirect *r; - - ALLOC(r); - - r->kind = kind; - r->source = source; - r->target = target; - r->mode = mode; - r->actual = -1; - - return r; -} - -struct ast_word * ast_word_create( int line, const char *text ) -{ - struct ast_word *w; - - ALLOC(w); - - w->line = line; - w->text = xxstrdup(text); - w->next = 0; - - return w; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/ftsh/src/ast_execute.c cctools-7.1.2/ftsh/src/ast_execute.c --- cctools-7.0.22/ftsh/src/ast_execute.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/ast_execute.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,909 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include "ast.h" -#include "ast_execute.h" -#include "buffer.h" -#include "ftsh_error.h" -#include "expr.h" -#include "timed_exec.h" -#include "multi_fork.h" -#include "glob.h" -#include "builtin.h" - -#include "macros.h" -#include "sleeptools.h" -#include "xxmalloc.h" -#include "variable.h" -#include "stringtools.h" -#include "hash_table.h" -#include "random.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef LINE_MAX -#define LINE_MAX 4096 -#endif - -static char * ast_expr_list_execute( int linenum, struct expr *e, time_t stoptime ); -static char * ast_bareword_execute( int linenum, char *line ); -static int ast_do_simple( int line, int argc, char **argv, int fds[3], time_t stoptime ); -static int process_status( const char *name, pid_t pid, int status, int line ); - -extern int ftsh_expmin, ftsh_expmax, ftsh_expfactor, ftsh_exprand; - -/* -ftable maps function names to the ast_group that implements it. -*/ - -static struct hash_table *ftable = 0; - -int ast_program_execute( struct ast_group *program, time_t stoptime ) -{ - struct ast_group *g; - struct ast_function *f, *old; - - /* - First, fill up the function table with all of the functions - in this entire syntax tree. - */ - - ftable = hash_table_create(127,hash_string); - if(!ftable) ftsh_fatal(0,"out of memory"); - - for( g=program; g; g=g->next ) { - if(g->command->type==AST_COMMAND_FUNCTION) { - f = g->command->u.function; - old = hash_table_remove(ftable,f->name->text); - if(old) { - ftsh_error(FTSH_ERROR_SYNTAX,f->function_line,"function %s is defined twice (first at line %d)",f->name->text,old->function_line); - return 0; - } - if(!hash_table_insert(ftable,f->name->text,f)) { - ftsh_fatal(f->function_line,"out of memory"); - } - } - } - - return ast_group_execute(program,stoptime); -} - -/* -ast_function_execute runs a function in an expression context, -while ast_group_execute runs the same code in a procedural context. -*/ - -char * ast_function_execute( int line, int argc, char **argv, time_t stoptime ) -{ - struct ast_function *f; - char *rval = 0; - - if(variable_frame_push(line,argc,argv)) { - f = hash_table_lookup(ftable,argv[0]); - if(f) { - if(ast_group_execute(f->body,stoptime)) { - if(variable_rval_get()) { - rval = xxstrdup(variable_rval_get()); - ftsh_error(FTSH_ERROR_STRUCTURE,line,"function %s returns %s",argv[0],rval); - } else { - ftsh_error(FTSH_ERROR_FAILURE,line,"function %s did not return a value",argv[0]); - } - } - } else { - ftsh_error(FTSH_ERROR_FAILURE,line,"function %s is not defined",argv[0]); - } - variable_frame_pop(); - } - - return rval; -} - - -int ast_group_execute( struct ast_group *g, time_t stoptime ) -{ - int result; - - while(g && !variable_rval_get() ) { - result = ast_command_execute(g->command,stoptime); - if(!result) return 0; - g = g->next; - } - return 1; -} - -int ast_command_execute( struct ast_command *s, time_t stoptime ) -{ - if( stoptime && time(0)>stoptime ) return 0; - - switch(s->type) { - case AST_COMMAND_FUNCTION: - return 1; - case AST_COMMAND_CONDITIONAL: - return ast_conditional_execute(s->u.conditional,stoptime); - case AST_COMMAND_TRY: - return ast_try_execute(s->u.try,stoptime); - case AST_COMMAND_FORLOOP: - return ast_forloop_execute(s->u.forloop,stoptime); - case AST_COMMAND_WHILELOOP: - return ast_whileloop_execute(s->u.whileloop,stoptime); - case AST_COMMAND_SHIFT: - return ast_shift_execute(s->u.shift,stoptime); - case AST_COMMAND_RETURN: - return ast_return_execute(s->u.rtn,stoptime); - case AST_COMMAND_ASSIGN: - return ast_assign_execute(s->u.assign,stoptime); - case AST_COMMAND_SIMPLE: - return ast_simple_execute(s->u.simple,stoptime); - case AST_COMMAND_EMPTY: - return 1; - default: - return 0; - } -} - -int ast_conditional_execute( struct ast_conditional *c, time_t stoptime ) -{ - int result; - ftsh_boolean_t b; - - ftsh_error(FTSH_ERROR_STRUCTURE,c->if_line,"IF"); - - if(expr_to_boolean(c->expr,&b,stoptime)) { - if(b) { - result = ast_group_execute(c->positive,stoptime); - } else { - result = ast_group_execute(c->negative,stoptime); - } - } else { - result = 0; - } - - ftsh_error(FTSH_ERROR_STRUCTURE,c->end_line,"END"); - - return result; -} - -static int ast_try_body_execute( struct ast_try *t, time_t stoptime ) -{ - int i=0; - int result=0; - ftsh_integer_t loops=0; - int interval = ftsh_expmin; - int sleeptime; - time_t starttime, every; - - if(t->time_limit) { - ftsh_integer_t timeout; - if(expr_to_integer(t->time_limit->expr,&timeout,stoptime)) { - timeout *= t->time_limit->units; - if(stoptime==0) { - stoptime = timeout+time(0); - } else { - stoptime = MIN(stoptime,timeout+time(0)); - } - } else { - return 0; - } - } - - if(t->every_limit) { - ftsh_integer_t i; - if(expr_to_integer(t->every_limit->expr,&i,stoptime)) { - every = i*t->every_limit->units; - } else { - return 0; - } - } else { - every = 0; - } - - if(t->loop_limit) { - if(expr_to_integer(t->loop_limit->expr,&loops,stoptime)) { - /* no problem */ - } else { - return 0; - } - } - - if(!t->time_limit && ! t->loop_limit) { - loops = 1; - } - - while(1) { - ftsh_error(FTSH_ERROR_STRUCTURE,t->try_line,"TRY attempt %d",i); - - starttime = time(0); - - if(ast_group_execute(t->body,stoptime)) { - result = 1; - break; - } - - i++; - - if( stoptime && (time(0) > stoptime) ) { - ftsh_error(FTSH_ERROR_FAILURE,t->try_line,"TRY time expired"); - result = 0; - break; - } - - if(loops && (i>=loops)) { - ftsh_error(FTSH_ERROR_FAILURE,t->try_line,"TRY loop limit reached"); - result = 0; - break; - } - - if(every) { - ftsh_error(FTSH_ERROR_STRUCTURE,t->end_line,"TRY restricted to EVERY %s seconds",every); - sleeptime = starttime+every-time(0); - if(sleeptime<0) sleeptime = 0; - ftsh_error(FTSH_ERROR_STRUCTURE,t->end_line,"TRY sleeping for %d seconds",sleeptime); - } else { - if(ftsh_exprand) { - sleeptime = interval*(1 + 1.0*rand()/RAND_MAX); - } else { - sleeptime = interval; - } - ftsh_error(FTSH_ERROR_STRUCTURE,t->end_line,"TRY sleeping for %d seconds (base %d)",sleeptime,interval); - interval = MIN(interval*ftsh_expfactor,ftsh_expmax); - } - - sleep_for(sleeptime); - } - - - return result; -} - -int ast_try_execute( struct ast_try *t, time_t stoptime ) -{ - int result = ast_try_body_execute(t,stoptime); - if(!result && t->catch_block ) { - ftsh_error(FTSH_ERROR_STRUCTURE,t->catch_line,"CATCH"); - result = ast_group_execute(t->catch_block,stoptime); - } - - ftsh_error(FTSH_ERROR_STRUCTURE,t->end_line,"END"); - - return result; -} - -int ast_whileloop_execute( struct ast_whileloop *w, time_t stoptime ) -{ - int result=1; - ftsh_boolean_t b; - - while(1) { - ftsh_error(FTSH_ERROR_STRUCTURE,w->while_line,"WHILE"); - - if(expr_to_boolean(w->expr,&b,stoptime)) { - if(b) { - ftsh_error(FTSH_ERROR_STRUCTURE,w->while_line,"WHILE expression is true"); - - if(ast_group_execute(w->body,stoptime)) { - continue; - } else { - result = 0; - break; - } - } else { - ftsh_error(FTSH_ERROR_STRUCTURE,w->while_line,"WHILE expression is false"); - result = 1; - break; - } - } else { - ftsh_error(FTSH_ERROR_STRUCTURE,w->while_line,"WHILE expression failed"); - result = 0; - break; - } - } - - ftsh_error(FTSH_ERROR_STRUCTURE,w->end_line,"END"); - - return result; -} - -static int ast_for_execute( struct ast_forloop *f, time_t stoptime, const char *name, int argc, char **argv ) -{ - int i=0; - int result=0; - for(i=0;ifor_line,"%s=%s",name,argv[i]); - result = buffer_save(name,argv[i]); - if(!result) break; - result = ast_group_execute(f->body,stoptime); - if(!result) break; - } - - return result; -} - -static int ast_forany_execute( struct ast_forloop *f, time_t stoptime, const char *name, int argc, char **argv ) -{ - int result=0; - int start = rand()%argc; - int i = start; - - while(1) { - ftsh_error(FTSH_ERROR_STRUCTURE,f->for_line,"%s=%s",name,argv[i]); - result = buffer_save(name,argv[i]); - if(result) { - result = ast_group_execute(f->body,stoptime); - if(result) break; - } - i++; - if(i>=argc) i=0; - if(i==start) { - result = 0; - break; - } - } - - return result; -} - -static int ast_forall_execute( struct ast_forloop *f, time_t stoptime, const char *name, int argc, char **argv ) -{ - int i; - int pid; - int result; - struct multi_fork_status *s; - - s = xxmalloc(sizeof(*s)*argc); - - pid = multi_fork(argc,s,stoptime,f->for_line); - if(pid>=0) { - random_init(); - if(stoptime && (time(0)>stoptime)) _exit(1); - - ftsh_error(FTSH_ERROR_STRUCTURE,f->for_line,"%s=%s starting",name,argv[pid]); - result = buffer_save(name,argv[pid]); - if(!result) _exit(1); - - result = ast_group_execute(f->body,stoptime); - if(result) { - _exit(0); - } else { - _exit(1); - } - } else { - for(i=0;ifor_line); - } - } - - free(s); - - if(pid==MULTI_FORK_SUCCESS) { - return 1; - } else { - return 0; - } - } -} - -int ast_forloop_execute( struct ast_forloop *f, time_t stoptime ) -{ - char *loopname; - char *name; - char *line; - int result=1; - - switch(f->type) { - case AST_FOR: - loopname = "FOR"; - break; - case AST_FORALL: - loopname = "FORALL"; - break; - case AST_FORANY: - loopname = "FORANY"; - break; - } - - ftsh_error(FTSH_ERROR_STRUCTURE,f->for_line,"%s %s",loopname,f->name->text); - - name = ast_word_execute(f->for_line,f->name); - if(name) { - line = ast_expr_list_execute(f->for_line,f->list,stoptime); - if(line) { - int argc; - char **argv; - if(string_split_quotes( line, &argc, &argv )) { - switch(f->type) { - case AST_FOR: - result = ast_for_execute(f,stoptime,name,argc,argv); - break; - case AST_FORANY: - result = ast_forany_execute(f,stoptime,name,argc,argv); - break; - case AST_FORALL: - result = ast_forall_execute(f,stoptime,name,argc,argv); - break; - } - free(argv); - } else { - ftsh_error(FTSH_ERROR_FAILURE,f->for_line,"out of memory!"); - result = 0; - } - free(line); - } - free(name); - } else { - result = 0; - } - - ftsh_error(FTSH_ERROR_STRUCTURE,f->end_line,"END"); - return result; -} - -int ast_assign_execute( struct ast_assign *a, time_t stoptime ) -{ - int result; - - if(a->expr) { - char *value; - char *word; - - value = expr_eval(a->expr,stoptime); - if(value) { - word = ast_bareword_execute(a->line,value); - if(word) { - ftsh_error(FTSH_ERROR_COMMAND,a->line,"%s=%s",a->name->text,word); - if(buffer_save(a->name->text,word)) { - result=1; - } else { - ftsh_error(FTSH_ERROR_FAILURE,a->line,"couldn't store variable '%s': %s",a->name->text,strerror(errno)); - result=0; - } - free(word); - } else { - result = 0; - } - free(value); - } else { - result=0; - } - } else { - ftsh_error(FTSH_ERROR_COMMAND,a->line,"%s=",a->name->text); - buffer_delete(a->name->text); - result = 1; - } - - return result; -} - -int ast_shift_execute( struct ast_shift *s, time_t stoptime ) -{ - ftsh_integer_t value; - - if(s->expr) { - if(!expr_to_integer(s->expr,&value,stoptime)) { - return 0; - } - } else { - value = 1; - } - - return variable_shift(value,s->line); -} - -int ast_return_execute( struct ast_return *s, time_t stoptime ) -{ - char *value; - - value = expr_eval(s->expr,stoptime); - if(value) { - ftsh_error(FTSH_ERROR_STRUCTURE,s->line,"return value is %s",value); - variable_rval_set(value); - return 1; - } else { - ftsh_error(FTSH_ERROR_FAILURE,s->line,"couldn't compute return value"); - return 0; - } -} - -static int ast_redirect_open( struct ast_redirect *r, int line, int fds[3] ) -{ - int fd; - char *target; - - if(!r) return 1; - - target = ast_word_execute( line, r->target ); - if(!target) return 0; - - switch(r->kind) { - case AST_REDIRECT_FILE: - switch(r->mode) { - case AST_REDIRECT_INPUT: - fd = open(target,O_RDONLY); - break; - case AST_REDIRECT_OUTPUT: - fd = open(target,O_WRONLY|O_CREAT|O_TRUNC,0777); - break; - case AST_REDIRECT_APPEND: - fd = open(target,O_WRONLY|O_CREAT|O_APPEND,0777); - break; - } - break; - case AST_REDIRECT_BUFFER: - switch(r->mode) { - case AST_REDIRECT_INPUT: - fd = buffer_open_input(target); - break; - case AST_REDIRECT_OUTPUT: - fd = buffer_open_output(target); - break; - case AST_REDIRECT_APPEND: - fd = buffer_open_append(target); - break; - } - break; - case AST_REDIRECT_FD: - fd = fds[atoi(target)]; - break; - } - - if(fd<0) { - ftsh_error(FTSH_ERROR_FAILURE,line,"couldn't redirect fd %d to %s: %s",r->source,target,strerror(errno)); - free(target); - return 0; - } else { - r->actual = fd; - fds[r->source] = fd; - if(r->next) { - return ast_redirect_open(r->next,line,fds); - } else { - return 1; - } - } -} - -static void ast_redirect_close( struct ast_redirect *r ) -{ - if(r) { - switch(r->kind) { - case AST_REDIRECT_FILE: - if(r->actual>=0) { - close(r->actual); - r->actual = -1; - } - break; - case AST_REDIRECT_FD: - case AST_REDIRECT_BUFFER: - /* Don't close buffers! */ - break; - } - ast_redirect_close(r->next); - } -} - -int ast_simple_execute( struct ast_simple *s, time_t stoptime ) -{ - int result=0; - int fds[3]; - int argc; - char **argv; - char *line; - - fds[0] = 0; - fds[1] = 1; - fds[2] = 2; - - if( stoptime && (time(0)>stoptime) ) return 0; - - if(ast_redirect_open(s->redirects,s->line,fds)) { - line = ast_word_list_execute(s->line,s->words); - if(line) { - if(string_split_quotes(line,&argc,&argv)) { - result = ast_do_simple(s->line,argc,argv,fds,stoptime); - free(argv); - } - free(line); - } - ast_redirect_close(s->redirects); - } - - return result; -} - -/* -To evaluate an expression list, eval each of the sub expressions -and concat the results into one big string. -XXX hack: for list expressions, remove the quotes. -*/ - -static char * ast_expr_list_execute( int linenum, struct expr *e, time_t stoptime ) -{ - char *line=0; - char *v; - - while(e) { - v = expr_eval(e,stoptime); - if(v) { - if(expr_is_list(e)) { - int length = strlen(v); - memcpy(v,&v[1],length-2); - v[length-2] = 0; - } - if(line) { - line = string_combine_multi(line," ",v,0); - } else { - line = v; - } - e=e->next; - continue; - } else { - if(line) { - free(line); - line = 0; - } - break; - } - } - - return line; -} - -/* -To build a word list, first glob each of the individual elements, -concat together all of the raw text with spaces in between, -then substitute variables and pass the line back. -It must then be re-split with string_split_quotes. -*/ -#ifdef GLOB_NOMAGIC -# define GLOB_FLAGS GLOB_NOMAGIC -#else -# define GLOB_FLAGS GLOB_NOCHECK -#endif - -char * ast_word_list_execute( int linenum, struct ast_word *w ) -{ - char *t, *line = 0; - int i, len; - glob_t g; - - while( w ) { -/* - This isn't correct. - We need more thought on how to handle wildcards. - if(strpbrk(w->text,"*[")) { -*/ - if(0) { - if(glob(w->text,GLOB_FLAGS,0,&g)==0) { - len=1; - for(i=0;itext); - if(line) free(line); - return 0; - } - } else { - t=xxstrdup(w->text); - } - - if(line) { - line = string_combine_multi( line, " ", t, 0 ); - } else { - line = t; - } - - w = w->next; - } - - return variable_subst(line,linenum); -} - -/* -When a single word is required, build a word list, -split it, and then assert that only one argument -be in the result. -*/ - -char * ast_word_execute( int linenum, struct ast_word *w ) -{ - char *line; - char *result=0; - - line = ast_word_list_execute( linenum, w ); - if(line) { - result = ast_bareword_execute(linenum,line); - free(line); - } - - return result; -} - -/* -Given a line, possibly containing multiple words and quotes, -determine if it is really and single word. If so, return that. -*/ - -static char * ast_bareword_execute( int linenum, char *line ) -{ - int argc; - char **argv; - char *result=0; - - if(string_split_quotes(line,&argc,&argv)) { - if(argc==1) { - result = xxstrdup(argv[0]); - } else if(argc>1) { - ftsh_error(FTSH_ERROR_SYNTAX,linenum,"expected only one word here, but got garbage following '%s'",argv[0]); - } else { - ftsh_error(FTSH_ERROR_SYNTAX,linenum,"expected a word here, but found nothing"); - } - free(argv); - } - - return result; -} - -static int ast_do_internal( int line, int argc, char **argv, int fds[3], time_t stoptime ) -{ - struct ast_function *f; - builtin_func_t b; - int oldfds[3]; - int result=0; - - f = hash_table_lookup(ftable,argv[0]); - b = builtin_lookup(argv[0]); - - if(f) ftsh_error(FTSH_ERROR_STRUCTURE,f->function_line,"FUNCTION %s",f->name->text); - - if(b || variable_frame_push(f->function_line,argc,argv)) { - - if(fds[0]!=0) { - oldfds[0] = dup(0); - if(oldfds[0]<0) ftsh_fatal(line,"out of file descriptors"); - dup2(fds[0],0); - } - - if(fds[1]!=1) { - oldfds[1] = dup(1); - if(oldfds[1]<0) ftsh_fatal(line,"out of file descriptors"); - dup2(fds[1],1); - } - - if(fds[2]!=2) { - oldfds[2] = dup(2); - if(oldfds[2]<0) ftsh_fatal(line,"out of file descriptors"); - dup2(fds[2],2); - } - - if(f) { - result = ast_group_execute(f->body,stoptime); - } else { - result = b(line,argc,argv,stoptime); - } - - if(fds[2]!=2) { - dup2(oldfds[2],2); - close(oldfds[2]); - } - - if(fds[1]!=1) { - dup2(oldfds[1],1); - close(oldfds[1]); - } - - if(fds[0]!=0) { - dup2(oldfds[0],0); - close(oldfds[0]); - } - - if(f) variable_frame_pop(); - } - - if(f) ftsh_error(FTSH_ERROR_STRUCTURE,f->end_line,"END"); - - return result; -} - -static int ast_do_external( int line, int argc, char **argv, int fds[3], time_t stoptime ) -{ - timed_exec_t tresult; - int status; - int result; - pid_t pid; - - tresult = timed_exec(line,argv[0],argv,fds,&pid,&status,stoptime); - if(tresult==TIMED_EXEC_TIMEOUT) { - ftsh_error(FTSH_ERROR_FAILURE,line,"%s [%d] ran out of time",argv[0],pid); - result = 0; - } else if(tresult==TIMED_EXEC_NOEXEC) { - ftsh_error(FTSH_ERROR_FAILURE,line,"%s [%d] couldn't be executed: %s",argv[0],pid,strerror(errno)); - result = 0; - } else { - result = process_status(argv[0],pid,status,line); - } - - return result; -} - -static int ast_do_simple( int line, int argc, char **argv, int fds[3], time_t stoptime ) -{ - char *cmd; - int length=0; - int i; - - for( i=0; i - -char * ast_function_execute( int line, int argc, char **argv, time_t stoptime ); - -int ast_program_execute( struct ast_group *g, time_t stoptime ); -int ast_group_execute( struct ast_group *g, time_t stoptime ); -int ast_command_execute( struct ast_command *s, time_t stoptime ); -int ast_conditional_execute( struct ast_conditional *c, time_t stoptime ); -int ast_try_execute( struct ast_try *t, time_t stoptime ); -int ast_whileloop_execute( struct ast_whileloop *f, time_t stoptime ); -int ast_forloop_execute( struct ast_forloop *f, time_t stoptime ); -int ast_shift_execute( struct ast_shift *s, time_t stoptime ); -int ast_return_execute( struct ast_return *s, time_t stoptime ); -int ast_assign_execute( struct ast_assign *s, time_t stoptime ); -int ast_simple_execute( struct ast_simple *s, time_t stoptime ); -char * ast_word_execute( int line, struct ast_word *w ); -char * ast_word_list_execute( int line, struct ast_word *w ); -int ast_number_execute( int line, struct ast_word *w, int *value ); - -#endif diff -Nru cctools-7.0.22/ftsh/src/ast.h cctools-7.1.2/ftsh/src/ast.h --- cctools-7.0.22/ftsh/src/ast.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/ast.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,156 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef AST_H -#define AST_H - -#include "expr.h" - -struct ast_group { - struct ast_command *command; - struct ast_group *next; -}; - -struct ast_command { - int type; - union { - struct ast_function *function; - struct ast_conditional *conditional; - struct ast_try *try; - struct ast_forloop *forloop; - struct ast_whileloop *whileloop; - struct ast_simple *simple; - struct ast_assign *assign; - struct ast_shift *shift; - struct ast_return *rtn; - void *data; - } u; -}; - -#define AST_COMMAND_FUNCTION 0 -#define AST_COMMAND_CONDITIONAL 1 -#define AST_COMMAND_TRY 2 -#define AST_COMMAND_FORLOOP 3 -#define AST_COMMAND_WHILELOOP 4 -#define AST_COMMAND_SIMPLE 5 -#define AST_COMMAND_SHIFT 6 -#define AST_COMMAND_ASSIGN 7 -#define AST_COMMAND_EMPTY 8 -#define AST_COMMAND_RETURN 9 - -#define AST_FOR 0 -#define AST_FORANY 1 -#define AST_FORALL 2 - -struct ast_function { - int function_line, end_line; - struct ast_word *name; - struct ast_group *body; -}; - -struct ast_conditional { - int if_line, then_line, else_line, end_line; - struct expr *expr; - struct ast_group *positive; - struct ast_group *negative; -}; - -struct ast_try { - int try_line, catch_line, end_line; - struct ast_try_limit *loop_limit; - struct ast_try_limit *time_limit; - struct ast_try_limit *every_limit; - struct ast_group *body; - struct ast_group *catch_block; -}; - -struct ast_try_limit { - struct expr *expr; - int units; -}; - -struct ast_whileloop { - int while_line, do_line, end_line; - struct expr *expr; - struct ast_group *body; -}; - -struct ast_forloop { - int type; - int for_line, end_line; - struct ast_word *name; - struct expr *list; - struct ast_group *body; -}; - -struct ast_shift { - int line; - struct expr *expr; -}; - -struct ast_return { - int line; - struct expr *expr; -}; - -struct ast_simple { - int line; - struct ast_word *words; - struct ast_redirect *redirects; -}; - -struct ast_assign { - int line; - struct ast_word *name; - struct expr *expr; -}; - -struct ast_redirect { - int kind; - int mode; - int source; - int actual; - struct ast_word *target; - struct ast_redirect *next; -}; - -#define AST_REDIRECT_FILE 0 -#define AST_REDIRECT_BUFFER 1 -#define AST_REDIRECT_FD 2 - -#define AST_REDIRECT_INPUT 0 -#define AST_REDIRECT_OUTPUT 1 -#define AST_REDIRECT_APPEND 2 - -struct ast_word { - int line; - char *text; - struct ast_word *next; -}; - -struct ast_token { - int line; - int type; - int firstint; -}; - -struct ast_group * ast_group_create( struct ast_command *s, struct ast_group *next ); -struct ast_command * ast_command_create( int type, void *data ); -struct ast_function * ast_function_create( int fline, int eline, struct ast_word *name, struct ast_group *body ); -struct ast_conditional * ast_conditional_create( int iline, int tline, int eline, int end_line, struct expr *expr, struct ast_group *positive, struct ast_group *negative ); -struct ast_try * ast_try_create( int try_line, int catch_line, int end_line, struct ast_try_limit *time_limit, struct ast_try_limit *loop_limit, struct ast_try_limit *every_limit, struct ast_group *body, struct ast_group *catch_block ); -struct ast_try_limit * ast_try_limit_create( struct expr *expr, int units ); -struct ast_whileloop * ast_whileloop_create( int while_line, int do_line, int end_line, struct expr *expr, struct ast_group *body ); -struct ast_forloop * ast_forloop_create( int type, int for_line, int end_line, struct ast_word *name, struct expr *list, struct ast_group *body ); -struct ast_shift * ast_shift_create( int line, struct expr *expr ); -struct ast_return * ast_return_create( int line, struct expr *expr ); -struct ast_assign * ast_assign_create( int line, struct ast_word *name, struct expr *expr ); -struct ast_simple * ast_simple_create( int line, struct ast_word *words, struct ast_redirect *redirects ); -struct ast_redirect * ast_redirect_create( int kind, int source, struct ast_word *target, int mode ); -struct ast_word * ast_word_create( int line, const char *text ); - -#endif diff -Nru cctools-7.0.22/ftsh/src/ast_parse.c cctools-7.1.2/ftsh/src/ast_parse.c --- cctools-7.0.22/ftsh/src/ast_parse.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/ast_parse.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -/* -The Fault-Tolerant Shell is Copyright (C) 2002 by Douglas Thain -This file is released under the GNU General Public License. -See the file COPYING for details. -*/ - -# - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/ftsh/src/ast_parse.h cctools-7.1.2/ftsh/src/ast_parse.h --- cctools-7.0.22/ftsh/src/ast_parse.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/ast_parse.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef AST_PARSE_H -#define AST_PARSE_H - -#include "ast.h" - -struct ast_group * ast_parse_group( struct scanner *s ); - -#endif diff -Nru cctools-7.0.22/ftsh/src/ast_print.c cctools-7.1.2/ftsh/src/ast_print.c --- cctools-7.0.22/ftsh/src/ast_print.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/ast_print.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,277 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include "ast.h" -#include "ast_print.h" - -#include -#include - -static void indent( FILE *file, int level ) -{ - int i; - for(i=0;icommand,level+1); - g = g->next; - } -} - -void ast_command_print( FILE *file, struct ast_command *s, int level ) -{ - if(s) switch(s->type) { - case AST_COMMAND_FUNCTION: - ast_function_print(file,s->u.function,level); - break; - case AST_COMMAND_CONDITIONAL: - ast_conditional_print(file,s->u.conditional,level); - break; - case AST_COMMAND_TRY: - ast_try_print(file,s->u.try,level); - break; - case AST_COMMAND_WHILELOOP: - ast_whileloop_print(file,s->u.whileloop,level); - break; - case AST_COMMAND_FORLOOP: - ast_forloop_print(file,s->u.forloop,level); - break; - case AST_COMMAND_SIMPLE: - ast_simple_print(file,s->u.simple,level); - break; - case AST_COMMAND_SHIFT: - ast_shift_print(file,s->u.shift,level); - break; - case AST_COMMAND_RETURN: - ast_return_print(file,s->u.rtn,level); - break; - case AST_COMMAND_ASSIGN: - ast_assign_print(file,s->u.assign,level); - break; - case AST_COMMAND_EMPTY: - break; - } -} - -void ast_function_print( FILE *file, struct ast_function *f, int level ) -{ - if(f) { - indent(file,level); - fprintf(file,"function "); - ast_word_print(file,f->name); - fprintf(file,"\n"); - ast_group_print(file,f->body,level); - indent(file,level); - fprintf(file,"end\n"); - } -} - -void ast_conditional_print( FILE *file, struct ast_conditional *c, int level ) -{ - if(c) { - indent(file,level); - fprintf(file,"if "); - expr_print(file,c->expr); - fprintf(file,"\n"); - if(c->positive) { - ast_group_print(file,c->positive,level); - } - if(c->negative) { - indent(file,level); - fprintf(file,"else\n"); - ast_group_print(file,c->negative,level); - } - indent(file,level); - fprintf(file,"end\n"); - } -} - -void ast_try_print( FILE *file, struct ast_try *t, int level ) -{ - if(t) { - indent(file,level); - fprintf(file,"try "); - ast_try_limit_print(file,t->time_limit,0); - ast_try_limit_print(file,t->loop_limit,0); - ast_try_limit_print(file,t->every_limit,"every"); - fprintf(file,"\n"); - ast_group_print(file,t->body,level); - if(t->catch_block) { - indent(file,level); - fprintf(file,"catch\n"); - ast_group_print(file,t->catch_block,level); - } - indent(file,level); - fprintf(file,"end\n"); - } -} - -char * units_name( int units ) -{ - switch(units) { - case 0: return "times"; - case 1: return "seconds"; - case 60: return "minutes"; - case 3600: return "hours"; - case 86400: return "days"; - default: return "???"; - } -} - -void ast_try_limit_print( FILE *file, struct ast_try_limit *l, const char *prefix ) -{ - if(l) { - if(prefix) fprintf(file,"%s ",prefix); - expr_print(file,l->expr); - fprintf(file,"%s ",units_name(l->units)); - } -} - -void ast_whileloop_print( FILE *file, struct ast_whileloop *l, int level ) -{ - if(l) { - indent(file,level); - fprintf(file,"while "); - expr_print(file,l->expr); - fprintf(file,"\n"); - ast_group_print(file,l->body,level); - indent(file,level); - fprintf(file,"end\n"); - } -} - -void ast_forloop_print( FILE *file, struct ast_forloop *f, int level ) -{ - if(f) { - indent(file,level); - switch(f->type) { - case AST_FOR: - fprintf(file,"for "); - break; - case AST_FORANY: - fprintf(file,"forany "); - break; - case AST_FORALL: - fprintf(file,"forall "); - break; - } - ast_word_print(file,f->name); - fprintf(file,"in "); - expr_print(file,f->list); - fprintf(file,"\n"); - ast_group_print(file,f->body,level); - indent(file,level); - fprintf(file,"end\n"); - } -} - -void ast_shift_print( FILE *file, struct ast_shift *s, int level ) -{ - if(s) { - indent(file,level); - fprintf(file,"shift "); - if(s->expr) expr_print(file,s->expr); - fprintf(file,"\n"); - } -} - -void ast_return_print( FILE *file, struct ast_return *s, int level ) -{ - if(s) { - indent(file,level); - fprintf(file,"return "); - if(s->expr) expr_print(file,s->expr); - fprintf(file,"\n"); - } -} - -void ast_assign_print( FILE *file, struct ast_assign *s, int level ) -{ - if(s) { - indent(file,level); - fprintf(file,"%s=",s->name->text); - if(s->expr) expr_print(file,s->expr); - fprintf(file,"\n"); - } -} - -void ast_simple_print( FILE *file, struct ast_simple *s, int level ) -{ - if(s) { - indent(file,level); - ast_word_print(file,s->words); - ast_redirect_print(file,s->redirects); - fprintf(file,"\n"); - } -} - -void ast_word_print( FILE *file, struct ast_word *w ) -{ - while(w) { - fprintf(file,"%s ",w->text); - w = w->next; - } -} - -void ast_redirect_print( FILE *file, struct ast_redirect *r ) -{ - if(r) { - char *s; - switch(r->kind) { - case AST_REDIRECT_FILE: - switch(r->mode) { - case AST_REDIRECT_INPUT: - s = "<"; - break; - case AST_REDIRECT_OUTPUT: - s = ">"; - break; - case AST_REDIRECT_APPEND: - s = ">>"; - break; - } - break; - case AST_REDIRECT_BUFFER: - switch(r->mode) { - case AST_REDIRECT_INPUT: - s = "<-"; - break; - case AST_REDIRECT_OUTPUT: - s = "->"; - break; - case AST_REDIRECT_APPEND: - s = "->>"; - break; - } - break; - case AST_REDIRECT_FD: - switch(r->mode) { - case AST_REDIRECT_INPUT: - s = "<&"; - break; - case AST_REDIRECT_OUTPUT: - s = ">&"; - break; - case AST_REDIRECT_APPEND: - s = ">>&"; - break; - } - break; - break; - } - fprintf(file,"%d%s %s ",r->source,s,r->target->text); - ast_redirect_print(file,r->next); - } -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/ftsh/src/ast_print.h cctools-7.1.2/ftsh/src/ast_print.h --- cctools-7.0.22/ftsh/src/ast_print.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/ast_print.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef AST_PRINT_H -#define AST_PRINT_H - -#include "ast.h" -#include - -void ast_group_print( FILE *file, struct ast_group *g, int level ); -void ast_command_print( FILE *file, struct ast_command *c, int level ); -void ast_function_print( FILE *file, struct ast_function *f, int level ); -void ast_conditional_print( FILE *file, struct ast_conditional *c, int level ); -void ast_try_print( FILE *file, struct ast_try *t, int level ); -void ast_try_limit_print( FILE *file, struct ast_try_limit *l, const char *prefix ); -void ast_whileloop_print( FILE *file, struct ast_whileloop *l, int level ); -void ast_forloop_print( FILE *file, struct ast_forloop *f, int level ); -void ast_shift_print( FILE *file, struct ast_shift *s, int level ); -void ast_return_print( FILE *file, struct ast_return *s, int level ); -void ast_assign_print( FILE *file, struct ast_assign *s, int level ); -void ast_simple_print( FILE *file, struct ast_simple *s, int level ); -void ast_redirect_print( FILE *file, struct ast_redirect *r ); -void ast_word_print( FILE *file, struct ast_word *w ); - -#endif diff -Nru cctools-7.0.22/ftsh/src/buffer.c cctools-7.1.2/ftsh/src/buffer.c --- cctools-7.0.22/ftsh/src/buffer.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/buffer.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,153 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include "hash_table.h" -#include "copy_stream.h" -#include "ftsh_error.h" -#include "full_io.h" - -#include -#include -#include -#include -#include -#include -#include - -static struct hash_table *table=0; - -static int buffer_init() -{ - if(!table) { - table = hash_table_create( 127, hash_string ); - if(!table) return 0; - } - return 1; -} - -int buffer_open_input( const char *tag ) -{ - int fd; - - if(!buffer_init()) return 0; - - fd = (PTRINT_T) hash_table_lookup(table,tag); - if(fd==0) { - errno = ENOENT; - return -1; - } - - lseek(fd,0,SEEK_SET); - - return fd; -} - -static int buffer_open( const char *tag, int do_truncate ) -{ - char path[PATH_MAX]; - long fd; - int old=0; - - if(!buffer_init()) return 0; - - if(!do_truncate) { - fd = (long) hash_table_lookup(table,tag); - if(fd!=0) { - lseek(fd,0,SEEK_END); - return fd; - } - } - - strcpy(path,"/tmp/ftsh.XXXXXX"); - - fd = mkstemp(path); - if(fd<0) return -1; - - unlink(path); - - old = (PTRINT_T) hash_table_remove(table,tag); - if(old) close(old); - - if(!hash_table_insert(table,tag,(void*)fd)) { - ftsh_fatal(0,"out of memory"); - } - - - return fd; -} - - -int buffer_open_output( const char *tag ) -{ - return buffer_open(tag,1); -} - -int buffer_open_append( const char *tag ) -{ - return buffer_open(tag,0); -} - -char * buffer_load( const char *tag ) -{ - FILE *stream=0; - char *buffer; - int nfd=-1, fd=-1; - int save_errno; - - fd = buffer_open_input(tag); - if(fd<0) goto failure; - - nfd = dup(fd); - if(nfd<0) goto failure; - - stream = fdopen(nfd,"r"); - if(!stream) goto failure; - if(!copy_stream_to_buffer(stream,&buffer,NULL)) goto failure; - fclose(stream); - - return buffer; - - failure: - save_errno = errno; - if(stream) { - fclose(stream); - } else { - if(nfd>=0) close(nfd); - } - errno = save_errno; - return 0; -} - -int buffer_save( const char *tag, const char *data ) -{ - int fd; - - fd = buffer_open_output(tag); - if(fd<0) return 0; - - if(full_write(fd,data,strlen(data))==strlen(data)) { - return 1; - } else { - return 0; - } -} - -int buffer_delete( const char *tag ) -{ - long fd; - - if(!buffer_init()) return 0; - - fd = (long) hash_table_remove(table,tag); - if(fd!=0) close(fd); - - return 1; -} - - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/ftsh/src/buffer.h cctools-7.1.2/ftsh/src/buffer.h --- cctools-7.0.22/ftsh/src/buffer.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/buffer.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef BUFFER_H -#define BUFFER_H - -int buffer_open_input( const char *name ); -int buffer_open_output( const char *name ); -int buffer_open_append( const char *name ); - -char * buffer_load( const char *name ); -int buffer_save( const char *name, const char *data ); -int buffer_delete( const char *name ); - -#endif diff -Nru cctools-7.0.22/ftsh/src/builtin.c cctools-7.1.2/ftsh/src/builtin.c --- cctools-7.0.22/ftsh/src/builtin.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/builtin.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,182 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include "builtin.h" -#include "ftsh_error.h" -#include "buffer.h" -#include "xxmalloc.h" - -#include -#include -#include -#include -#include -#include - -static int builtin_cd( int line, int argc, char **argv, time_t stoptime ) -{ - int result; - char *dirname; - - if(argc==2) { - dirname = argv[1]; - } else if(argc==1) { - struct passwd *p; - p = getpwuid(getuid()); - if(p) { - dirname = p->pw_dir; - } else { - ftsh_error(FTSH_ERROR_FAILURE,line,"cd: couldn't determine your home directory"); - dirname = 0; - } - } else { - ftsh_error(FTSH_ERROR_SYNTAX,line,"cd: too many arguments"); - result = 0; - } - - if(dirname) { - ftsh_error(FTSH_ERROR_COMMAND,line,"CD %s",dirname); - if(chdir(dirname)==0) { - result = 1; - } else { - ftsh_error(FTSH_ERROR_FAILURE,line,"cd: couldn't move to %s: %s",dirname,strerror(errno)); - result = 0; - } - } else { - result = 0; - } - - return result; -} - -static int builtin_export( int line, int argc, char **argv, time_t stoptime ) -{ - char *expr; - char *name; - char *value; - - if(argc<2) { - ftsh_error(FTSH_ERROR_SYNTAX,line,"export: exactly one argument needed"); - return 0; - } else if(argc>2) { - ftsh_error(FTSH_ERROR_SYNTAX,line,"export: too many arguments"); - return 0; - } - - name = argv[1]; - - value = buffer_load(name); - if(!value) value = xxstrdup(""); - - expr = malloc(strlen(name)+strlen(value)+3); - if(!expr) { - free(name); - free(value); - return 0; - } - - ftsh_error(FTSH_ERROR_COMMAND,line,"EXPORT %s (%s)",name,value); - - sprintf(expr,"%s=%s",name,value); - - /* Depending on the libc, this call may leak memory */ - /* by leaving multiple exprs allocated. No solution */ - /* except to leak. Don't export in an infinite loop. */ - - putenv(expr); - - free(name); - free(value); - - return 1; -} - -static int builtin_echo( int line, int argc, char **argv, time_t stoptime ) -{ - int i; - int do_newline = 1; - - for(i=1;i - -typedef int (*builtin_func_t) ( int line, int argc, char **argv, time_t stoptime ); - -builtin_func_t builtin_lookup( const char *name ); - -#endif diff -Nru cctools-7.0.22/ftsh/src/cancel.c cctools-7.1.2/ftsh/src/cancel.c --- cctools-7.0.22/ftsh/src/cancel.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/cancel.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include - -#include "ftsh_error.h" -#include "stringtools.h" - -struct sigaction old_int_handler; -struct sigaction old_hup_handler; -struct sigaction old_quit_handler; -struct sigaction old_term_handler; - -static int cancel_signal = 0; - -static void cancel_handler( int sig ) -{ - ftsh_error(FTSH_ERROR_PROCESS,0,"received signal %d",sig); - cancel_signal = sig; -} - -void cancel_hold() -{ - struct sigaction sa; - sigset_t ss; - - sigemptyset(&ss); - sa.sa_handler = cancel_handler; - sa.sa_mask = ss; - sa.sa_flags = 0; - - sigaction(SIGINT,&sa,&old_int_handler); - sigaction(SIGHUP,&sa,&old_hup_handler); - sigaction(SIGQUIT,&sa,&old_quit_handler); - sigaction(SIGTERM,&sa,&old_term_handler); -} - -void cancel_release() -{ - sigaction(SIGINT,&old_int_handler,0); - sigaction(SIGHUP,&old_int_handler,0); - sigaction(SIGQUIT,&old_int_handler,0); - sigaction(SIGTERM,&old_int_handler,0); - if(cancel_signal!=0) kill(getpid(),cancel_signal); -} - -int cancel_pending() -{ - return cancel_signal!=0; -} - -void cancel_reset() -{ - cancel_signal = 0; -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/ftsh/src/cancel.h cctools-7.1.2/ftsh/src/cancel.h --- cctools-7.0.22/ftsh/src/cancel.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/cancel.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef CANCEL_H -#define CANCEL_H - -/* -These are critical section handlers for termination -signals such as SIGTERM, SIGHUP, and so on. Between -cancel_hold and cancel_release, these signals are -trapped and will not take effect. After cancel_release, -the signal will be re-sent to the receiver unless -cancel_reset has been called. -*/ - -void cancel_hold(); -void cancel_release(); -int cancel_pending(); -void cancel_reset(); - -#endif diff -Nru cctools-7.0.22/ftsh/src/expr.c cctools-7.1.2/ftsh/src/expr.c --- cctools-7.0.22/ftsh/src/expr.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/expr.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,673 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include "expr.h" -#include "ftsh_error.h" -#include "ast_execute.h" -#include "ast_print.h" - -#include "xxmalloc.h" -#include "macros.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -static void expr_print_list( FILE *file, struct expr *e, int with_commas ); - -struct expr_table { - const char *string; - enum expr_type_t type; -}; - -static struct expr_table table[] = { - {".add.",EXPR_ADD}, - {".sub.",EXPR_SUB}, - {".mul.",EXPR_MUL}, - {".div.",EXPR_DIV}, - {".mod.",EXPR_MOD}, - {".pow.",EXPR_POW}, - {".eq.",EXPR_EQ}, - {".ne.",EXPR_NE}, - {".eql.",EXPR_EQL}, - {".neql.",EXPR_NEQL}, - {".lt.",EXPR_LT}, - {".le.",EXPR_LE}, - {".gt.",EXPR_GT}, - {".ge.",EXPR_GE}, - {".and.",EXPR_AND}, - {".or.",EXPR_OR}, - {".not.",EXPR_NOT}, - {".exists.",EXPR_EXISTS}, - {".isr.",EXPR_ISR}, - {".isw.",EXPR_ISW}, - {".isx.",EXPR_ISX}, - {".isblock.",EXPR_ISBLOCK}, - {".ischar.",EXPR_ISCHAR}, - {".isdir.",EXPR_ISDIR}, - {".isfile.",EXPR_ISFILE}, - {".islink.",EXPR_ISLINK}, - {".ispipe.",EXPR_ISPIPE}, - {".issock.",EXPR_ISSOCK}, - {0,0} -}; - -const char *expr_type_to_string( enum expr_type_t type ) -{ - struct expr_table *t; - - for(t=table;t->string;t++) { - if(t->type==type) return t->string; - } - - return 0; -} - -static int digits_in_int( int i ) -{ - int digits=0; - do { - digits++; - i/=10; - } while(i>0); - return digits; -} - -struct expr * expr_create( int line, enum expr_type_t type, struct ast_word *literal, struct expr *a, struct expr *b, struct expr *c ) -{ - struct expr *e = xxmalloc(sizeof(*e)); - e->line = line; - e->literal = literal; - e->type = type; - e->a = a; - e->b = b; - e->c = c; - e->next = 0; - return e; -} - -int expr_to_integer( struct expr *e, ftsh_integer_t *ival, time_t stoptime ) -{ - char *value; - char *end; - - value = expr_eval(e,stoptime); - if(!value) return 0; - - *ival = strtol(value,&end,10); - if(!*end) { - /* good conversion */ - free(value); - return 1; - } else { - ftsh_error(FTSH_ERROR_FAILURE,e->line,"expected integer but got '%s' instead",value); - free(value); - return 0; - } -} - -int expr_to_boolean( struct expr *e, ftsh_boolean_t *bval, time_t stoptime ) -{ - char *value; - - value = expr_eval(e,stoptime); - if(!value) return 0; - - if(!strcmp(value,"true")) { - free(value); - *bval = 1; - return 1; - } else if(!strcmp(value,"false")) { - free(value); - *bval = 0; - return 1; - } else { - ftsh_error(FTSH_ERROR_FAILURE,e->line,"expected 'true' or 'false' but got %s instead",value); - free(value); - return 0; - } -} - -static char * integer_to_string( int line, ftsh_integer_t i ) -{ - char istr[256]; - char *s; - - sprintf(istr,"%ld",i); - s = strdup(istr); - - if(!s) { - ftsh_error(FTSH_ERROR_FAILURE,line,"out of memory"); - } - - return s; -} - -static char * boolean_to_string( int line, ftsh_boolean_t b ) -{ - char *s; - - if(b) { - s = strdup("true"); - } else { - s = strdup("false"); - } - - if(!s) { - ftsh_error(FTSH_ERROR_FAILURE,line,"out of memory"); - } - - return s; -} - -static char * expr_eval_access( struct expr *e, time_t stoptime ) -{ - char *path; - char *result; - int ival; - int mode; - - path = expr_eval(e->a,stoptime); - if(!path) return 0; - - switch(e->type) { - case EXPR_EXISTS: - mode = F_OK; - break; - case EXPR_ISR: - mode = R_OK; - break; - case EXPR_ISW: - mode = W_OK; - break; - case EXPR_ISX: - mode = X_OK; - break; - default: - ftsh_fatal(e->line,"unexpected expression type %d",e->type); - break; - } - - ival = access(path,mode); - if(ival!=0) { - switch(errno) { - #ifdef EACCES - case EACCES: - #endif - - #ifdef EROFS - case EROFS: - #endif - - #ifdef ENOENT - case ENOENT: - #endif - - #ifdef ENOTDIR - case ENOTDIR: - #endif - - #ifdef ELOOP - case ELOOP: - #endif - result = xxstrdup("false"); - break; - default: - result = 0; - break; - } - } else { - result = xxstrdup("true"); - } - - if(result) { - ftsh_error(FTSH_ERROR_COMMAND,e->line,"%s %s is %s",expr_type_to_string(e->type),path,result); - } else { - ftsh_error(FTSH_ERROR_FAILURE,e->line,"%s %s failed: %s",expr_type_to_string(e->type),path,strerror(errno)); - } - free(path); - return result; -} - -static char * expr_eval_islink( struct expr *e, time_t stoptime ) -{ - char buf[PATH_MAX]; - char *path; - char *r; - int result; - - path = expr_eval(e->a,stoptime); - if(!path) return 0; - - result = readlink(path,buf,sizeof(buf)); - if(result>=0) { - r = xxstrdup("true"); - } else switch(errno) { - case EINVAL: - case ENOENT: - case ENOTDIR: - case EISDIR: - case EACCES: - case ENAMETOOLONG: - r = xxstrdup("false"); - break; - default: - r = 0; - break; - } - - free(path); - return r; -} - -static char * expr_eval_filetype( struct expr *e, time_t stoptime ) -{ - char *path; - char *result; - struct stat buf; - int ival; - - path = expr_eval(e->a,stoptime); - if(!path) return 0; - - ival = stat(path,&buf); - if(ival!=0) { - switch(errno) { - #ifdef ENOENT - case ENOENT: - #endif - - #ifdef ENOTDIR - case ENOTDIR: - #endif - - #ifdef ELOOP - case ELOOP: - #endif - - #ifdef EACCES - case EACCES: - #endif - result = xxstrdup("false"); - break; - - default: - result = 0; - break; - } - } else { - switch(e->type) { - case EXPR_ISBLOCK: - ival = S_ISBLK(buf.st_mode); - break; - case EXPR_ISCHAR: - ival = S_ISCHR(buf.st_mode); - break; - case EXPR_ISDIR: - ival = S_ISDIR(buf.st_mode); - break; - case EXPR_ISFILE: - ival = S_ISREG(buf.st_mode); - break; - case EXPR_ISLINK: - /* We should not get here because of shortcut earlier to avoid the broken S_ISLNK macro. */ - abort(); - ival = S_ISLNK(buf.st_mode); - break; - case EXPR_ISPIPE: - ival = S_ISFIFO(buf.st_mode); - break; - case EXPR_ISSOCK: - ival = S_ISSOCK(buf.st_mode); - break; - default: - ftsh_fatal(e->line,"unexpected expression type %d",e->type); - break; - } - - if(ival) { - result = xxstrdup("true"); - } else { - result = xxstrdup("false"); - } - } - - if(result) { - ftsh_error(FTSH_ERROR_COMMAND,e->line,"%s %s is %s",expr_type_to_string(e->type),path,result); - } else { - ftsh_error(FTSH_ERROR_FAILURE,e->line,"%s %s failed: %s",expr_type_to_string(e->type),path,strerror(errno)); - } - free(path); - return result; -} - -static char * expr_eval_range( struct expr *e, time_t stoptime ) -{ - ftsh_integer_t i, ia, ib; - char *r=0; - - if( expr_to_integer(e->a,&ia,stoptime) && expr_to_integer(e->b,&ib,stoptime) ) { - - ftsh_integer_t step; - int digits; - - /* use the step if we have it */ - - if(e->c) { - if(!expr_to_integer(e->c,&step,stoptime)) return 0; - } else { - step = 1; - } - - digits = MAX(digits_in_int(ia),digits_in_int(ib)); - /* add one for a unary - and for a space */ - digits+=2; - - /* allocate enough space for the set */ - r = xxmalloc((ABS((ib-ia)/step)+1)*digits+4); - - strcpy(r,"\""); - - /* fill up the text */ - if(ia<=ib) { - for( i=ia; i<=ib; i+=ABS(step) ) { - sprintf(&r[strlen(r)],"%ld ",i); - } - } else { - for( i=ib; i<=ia; i+=ABS(step) ) { - sprintf(&r[strlen(r)],"%ld ",i); - } - } - strcat(r,"\""); - } - - return r; -} - -static char * expr_eval_fcall( struct expr *e, time_t stoptime ) -{ - struct expr *f; - char *name; - char *rval=0; - int i, argc=0; - char **argv; - - name = ast_word_execute(e->line,e->literal); - if(name) { - argc = 1; - for(f=e->a;f;f=f->next) argc++; - argv = xxmalloc( sizeof(char*)*argc ); - for(i=0;ia; - for(i=1;inext; - } - if(i==argc) { - rval = ast_function_execute(e->line,argc,argv,stoptime); - } - for(i=i-1;i>=0;i--) free(argv[i]); - free(argv); - free(name); - } - - return rval; -} - -char * expr_eval( struct expr *e, time_t stoptime ) -{ - ftsh_integer_t i, ia, ib; - ftsh_boolean_t b, ba, bb; - char *r=0, *ra, *rb; - - switch(e->type) { - case EXPR_ADD: - if( expr_to_integer(e->a,&ia,stoptime) && expr_to_integer(e->b,&ib,stoptime) ){ - i = ia + ib; - r = integer_to_string(e->line,i); - } - break; - case EXPR_SUB: - if( expr_to_integer(e->a,&ia,stoptime) && expr_to_integer(e->b,&ib,stoptime) ){ - i = ia - ib; - r = integer_to_string(e->line,i); - } - break; - case EXPR_MUL: - if( expr_to_integer(e->a,&ia,stoptime) && expr_to_integer(e->b,&ib,stoptime) ){ - i = ia * ib; - r = integer_to_string(e->line,i); - } - break; - case EXPR_DIV: - if( expr_to_integer(e->a,&ia,stoptime) && expr_to_integer(e->b,&ib,stoptime) ){ - i = ia / ib; - r = integer_to_string(e->line,i); - } - break; - case EXPR_MOD: - if( expr_to_integer(e->a,&ia,stoptime) && expr_to_integer(e->b,&ib,stoptime) ){ - i = ia % ib; - r = integer_to_string(e->line,i); - } - break; - case EXPR_POW: - if( expr_to_integer(e->a,&ia,stoptime) && expr_to_integer(e->b,&ib,stoptime) ){ - i=1; - while( ib>0 ) { - i = i*ia; - ib--; - } - r = integer_to_string(e->line,i); - } - break; - case EXPR_EQ: - ra = expr_eval(e->a,stoptime); - rb = expr_eval(e->b,stoptime); - b = !strcmp(ra,rb); - free(ra); - free(rb); - r = boolean_to_string(e->line,b); - break; - case EXPR_NE: - ra = expr_eval(e->a,stoptime); - rb = expr_eval(e->b,stoptime); - b = strcmp(ra,rb); - free(ra); - free(rb); - r = boolean_to_string(e->line,b); - break; - case EXPR_EQL: - if( expr_to_integer(e->a,&ia,stoptime) && expr_to_integer(e->b,&ib,stoptime) ){ - b = (ia==ib); - r = boolean_to_string(e->line,b); - } - break; - case EXPR_NEQL: - if( expr_to_integer(e->a,&ia,stoptime) && expr_to_integer(e->b,&ib,stoptime) ){ - b = (ia!=ib); - r = boolean_to_string(e->line,b); - } - break; - case EXPR_LT: - if( expr_to_integer(e->a,&ia,stoptime) && expr_to_integer(e->b,&ib,stoptime) ){ - b = ia < ib; - r = boolean_to_string(e->line,b); - } - break; - case EXPR_LE: - if( expr_to_integer(e->a,&ia,stoptime) && expr_to_integer(e->b,&ib,stoptime) ){ - b = ia <= ib; - r = boolean_to_string(e->line,b); - } - break; - case EXPR_GT: - if( expr_to_integer(e->a,&ia,stoptime) && expr_to_integer(e->b,&ib,stoptime) ){ - b = ia > ib; - r = boolean_to_string(e->line,b); - } - break; - case EXPR_GE: - if( expr_to_integer(e->a,&ia,stoptime) && expr_to_integer(e->b,&ib,stoptime) ){ - b = ia >= ib; - r = boolean_to_string(e->line,b); - } - break; - case EXPR_AND: - if( expr_to_boolean(e->a,&ba,stoptime) && expr_to_boolean(e->b,&bb,stoptime) ){ - b = ba && bb; - r = boolean_to_string(e->line,b); - } - break; - case EXPR_OR: - if( expr_to_boolean(e->a,&ba,stoptime) && expr_to_boolean(e->b,&bb,stoptime) ){ - b = ba || bb; - r = boolean_to_string(e->line,b); - } - break; - case EXPR_NOT: - if(expr_to_boolean(e->a,&b,stoptime)) { - r = boolean_to_string(e->line,!b); - } - break; - case EXPR_EXISTS: - case EXPR_ISR: - case EXPR_ISW: - case EXPR_ISX: - r = expr_eval_access(e,stoptime); - break; - case EXPR_ISBLOCK: - case EXPR_ISCHAR: - case EXPR_ISDIR: - case EXPR_ISFILE: - case EXPR_ISPIPE: - case EXPR_ISSOCK: - r = expr_eval_filetype(e,stoptime); - break; - case EXPR_ISLINK: - r = expr_eval_islink(e,stoptime); - break; - case EXPR_EXPR: - r = expr_eval(e->a,stoptime); - break; - case EXPR_TO: - r = expr_eval_range(e,stoptime); - break; - case EXPR_FCALL: - r = expr_eval_fcall(e,stoptime); - break; - case EXPR_LITERAL: - return ast_word_list_execute(e->line,e->literal); - break; - } - - return r; -} - -void expr_print( FILE *file, struct expr *e ) -{ - expr_print_list(file,e,0); -} - -static void expr_print_list( FILE *file, struct expr *e, int with_commas ) -{ - if(!e) return; - - switch(e->type) { - case EXPR_ADD: - case EXPR_SUB: - case EXPR_MUL: - case EXPR_DIV: - case EXPR_MOD: - case EXPR_POW: - case EXPR_EQ: - case EXPR_NE: - case EXPR_EQL: - case EXPR_NEQL: - case EXPR_LT: - case EXPR_LE: - case EXPR_GT: - case EXPR_GE: - case EXPR_AND: - case EXPR_OR: - expr_print(file,e->a); - fprintf(file," %s ",expr_type_to_string(e->type)); - expr_print(file,e->b); - break; - case EXPR_NOT: - case EXPR_EXISTS: - case EXPR_ISR: - case EXPR_ISW: - case EXPR_ISX: - case EXPR_ISBLOCK: - case EXPR_ISCHAR: - case EXPR_ISDIR: - case EXPR_ISFILE: - case EXPR_ISLINK: - case EXPR_ISPIPE: - case EXPR_ISSOCK: - fprintf(file,"%s ",expr_type_to_string(e->type)); - expr_print(file,e->a); - break; - case EXPR_TO: - expr_print(file,e->a); - fprintf(file," .to. "); - expr_print(file,e->b); - if(e->c) { - fprintf(file," .step. "); - expr_print(file,e->c); - } - fprintf(file," "); - break; - case EXPR_EXPR: - fprintf(file,"("); - expr_print(file,e->a); - fprintf(file,")"); - break; - case EXPR_FCALL: - ast_word_print(file,e->literal); - fprintf(file,"("); - expr_print_list(file,e->a,1); - fprintf(file,")"); - break; - case EXPR_LITERAL: - ast_word_print(file,e->literal); - break; - default: - ftsh_fatal(e->line,"unknown expression type %d",e->type); - break; - } - - if(e->next) { - if(with_commas) { - fprintf(file,","); - } else { - fprintf(file," "); - } - expr_print(file,e->next); - } -} - -int expr_is_list( struct expr *e ) -{ - if(e->type==EXPR_TO) { - return 1; - } else if(e->type==EXPR_EXPR) { - return expr_is_list(e->a); - } else { - return 0; - } -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/ftsh/src/expr.h cctools-7.1.2/ftsh/src/expr.h --- cctools-7.0.22/ftsh/src/expr.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/expr.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef EXPR_H -#define EXPR_H - -#include "ast.h" -#include -#include - -struct ast_word; - -enum expr_type_t { - EXPR_ADD, - EXPR_SUB, - EXPR_MUL, - EXPR_DIV, - EXPR_MOD, - EXPR_POW, - - EXPR_TO, - - EXPR_EQ, - EXPR_NE, - EXPR_EQL, - EXPR_NEQL, - EXPR_LT, - EXPR_LE, - EXPR_GT, - EXPR_GE, - EXPR_AND, - EXPR_OR, - EXPR_NOT, - - EXPR_EXISTS, - EXPR_ISR, - EXPR_ISW, - EXPR_ISX, - - EXPR_ISBLOCK, - EXPR_ISCHAR, - EXPR_ISDIR, - EXPR_ISFILE, - EXPR_ISLINK, - EXPR_ISPIPE, - EXPR_ISSOCK, - - EXPR_LITERAL, - EXPR_FCALL, - EXPR_EXPR -}; - -typedef long ftsh_integer_t; -typedef int ftsh_boolean_t; - -struct expr { - int line; - enum expr_type_t type; - struct expr *a, *b, *c; - struct ast_word *literal; - struct expr *next; -}; - -struct expr * expr_create( int line, enum expr_type_t type, struct ast_word *literal, struct expr *a, struct expr *b, struct expr *c ); - -char * expr_eval( struct expr *e, time_t stoptime ); -int expr_to_boolean( struct expr *e, ftsh_boolean_t *b, time_t stoptime ); -int expr_to_integer( struct expr *e, ftsh_integer_t *i, time_t stoptime ); -int expr_is_list( struct expr *e ); - -void expr_print( FILE *file, struct expr *e ); - -#endif diff -Nru cctools-7.0.22/ftsh/src/ftsh.c cctools-7.1.2/ftsh/src/ftsh.c --- cctools-7.0.22/ftsh/src/ftsh.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/ftsh.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,303 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include "ast.h" -#include "ast_print.h" -#include "ast_execute.h" -#include "parser.h" -#include "variable.h" -#include "ftsh_error.h" -#include "multi_fork.h" - -#include "cctools.h" -#include "debug.h" -#include "xxmalloc.h" -#include "stringtools.h" -#include "macros.h" - -#include -#include -#include -#include -#include -#include - -int ftsh_expmin=1; -int ftsh_expmax=3600; -int ftsh_expfactor=2; -int ftsh_exprand=1; - -static void null_handler( int sig ) -{ -} - -static void show_help( char *cmd ) -{ - cctools_version_print(stderr, cmd); - fprintf(stderr,"\ -Use: ftsh [options] [arg1] [arg2]\n\ -Where options are:\n\ - -f Log file.\n\ - Default is the standard error.\n\ - Overrides environment variable FTSH_LOG_FILE.\n\ - -l Log level. Default is '10'.\n\ - 0 = log nothing\n\ - 10 = log failed commands\n\ - 20 = log all commands\n\ - 30 = log program structures\n\ - 40 = log process and signal activity\n\ - Overrides environment variable FTSH_LOG_LEVEL.\n\ - -D Log time values in decimal format.\n\ - Overrides environment variable FTSH_LOG_DECIMAL.\n\ - -t Kill timeout. Default is '30'.\n\ - Number of seconds between soft kill and hard kill.\n\ - Overrides environment variable FTSH_KILL_TIMEOUT.\n\ - -k Kill mode. Default is 'strong'.\n\ - May be 'weak' or 'strong'.\n\ - Overrides environment variable FTSH_KILL_MODE.\n\ - -p or -n Parse and print program, but do not execute.\n\ - -P Parse and print program, including parser debug log.\n\ - -v Show version string.\n\ - -h Show this help screen.\n\ -"); - -} - -static int ftsh_main( int argc, char *argv[] ) -{ - struct ast_group *g; - int parse_mode = 0; - int parse_debug_mode = 0; - char *log_file = 0; - int log_level = 10; - int log_decimal = 0; - int kill_timeout = 30; - char *kill_mode = "strong"; - FILE *stream; - char *s; - signed char c; - char env[1024]; - int result; - struct sigaction sa; - sigset_t ss; - - /* We want to be woken, not aborted, on these signals. */ - sigemptyset(&ss); - sa.sa_handler = null_handler; - sa.sa_mask = ss; - sa.sa_flags = 0; - sigaction(SIGCHLD,&sa,0); - sigaction(SIGALRM,&sa,0); - - random_init(); - - /* First, get settings from the environment */ - - log_file = getenv("FTSH_LOG_FILE"); - - s = getenv("FTSH_LOG_LEVEL"); - if(s) log_level = atoi(s); - - s = getenv("FTSH_LOG_DECIMAL"); - if(s) log_decimal = 1; - - s = getenv("FTSH_KILL_TIMEOUT"); - if(s) kill_timeout = atoi(s); - - s = getenv("FTSH_KILL_MODE"); - if(s) kill_mode = s; - - s = getenv("FTSH_EXPMIN"); - if(s) ftsh_expmin=atoi(s); - - s = getenv("FTSH_EXPMAX"); - if(s) ftsh_expmax=atoi(s); - - s = getenv("FTSH_EXPFACTOR"); - if(s) ftsh_expfactor=atoi(s); - - s = getenv("FTSH_EXPRAND"); - if(s) ftsh_exprand=atoi(s); - - - /* Now, process the arguments and let them override the environment settings */ - - while( (c=getopt(argc,argv,"+f:l:t:Dk:npPvh")) > -1 ) { - switch(c) { - case 'f': - log_file = optarg; - break; - case 'l': - log_level = atoi(optarg); - break; - case 't': - if(getenv("FTSH_KILL_TIMEOUT")) { - kill_timeout = MIN(kill_timeout,atoi(optarg)); - } else { - kill_timeout = atoi(optarg); - } - break; - case 'D': - log_decimal = 1; - break; - case 'k': - kill_mode = optarg; - break; - case 'n': - case 'p': - parse_mode = 1; - break; - case 'P': - parse_mode = 1; - parse_debug_mode = 1; - break; - case 'v': - cctools_version_print(stderr, argv[0]); - return 1; - break; - case 'h': - default: - show_help(argv[0]); - return 1; - break; - } - } - - cctools_version_debug(D_DEBUG, argv[0]); - - if(optind>=argc) { - show_help(argv[0]); - return 1; - } - - /* Reset the environment for my children */ - - sprintf(env,"FTSH_VERSION=%d.%d.%d",CCTOOLS_VERSION_MAJOR,CCTOOLS_VERSION_MINOR,CCTOOLS_VERSION_MICRO); - putenv(xxstrdup(env)); - - if(log_file) { - sprintf(env,"FTSH_LOG_FILE=%s",log_file); - putenv(xxstrdup(env)); - } - - sprintf(env,"FTSH_LOG_LEVEL=%d",log_level); - putenv(xxstrdup(env)); - - if(log_decimal) { - sprintf(env,"FTSH_LOG_DECIMAL="); - putenv(xxstrdup(env)); - } - - sprintf(env,"FTSH_KILL_TIMEOUT=%d",MAX(kill_timeout-5,0)); - putenv(xxstrdup(env)); - - sprintf(env,"FTSH_KILL_MODE=%s",kill_mode); - putenv(xxstrdup(env)); - - sprintf(env,"FTSH_VERSION_MAJOR=%d",CCTOOLS_VERSION_MAJOR); - putenv(xxstrdup(env)); - - sprintf(env,"FTSH_VERSION_MINOR=%d",CCTOOLS_VERSION_MINOR); - putenv(xxstrdup(env)); - - sprintf(env,"FTSH_VERSION_MICRO=%s",CCTOOLS_VERSION_MICRO); - putenv(xxstrdup(env)); - - /* Now, initialize my systems */ - - if(log_file) { - stream = fopen(log_file,"a"); - if(!stream) ftsh_fatal(0,"couldn't open log file %s: %s",log_file,strerror(errno)); - ftsh_error_stream(stream); - } - - ftsh_error_name(argv[optind]); - ftsh_error_level(log_level); - ftsh_error_decimal_time(log_decimal); - multi_fork_kill_timeout = kill_timeout; - - if(!strcmp(kill_mode,"weak")) { - multi_fork_kill_mode = MULTI_FORK_KILL_MODE_WEAK; - } else if(!strcmp(kill_mode,"strong")) { - multi_fork_kill_mode = MULTI_FORK_KILL_MODE_STRONG; - } else { - ftsh_fatal(0,"The kill mode must be either 'weak' or 'strong'"); - } - - stream = fopen(argv[optind],"r"); - if(!stream) ftsh_fatal(0,"couldn't open program %s: %s",argv[optind],strerror(errno)); - - result = variable_frame_push(0,argc-optind,&argv[optind]); - if(!result) ftsh_fatal(0,"couldn't set up arguments: %s",strerror(errno)); - - /* Finally, parse and execute the program. */ - - g = parse_file(stream,parse_debug_mode); - if(!g) return 1; - - if(parse_mode) { - ast_group_print(stdout,g,-1); - return 0; - } else { - if(ast_program_execute(g,0)) { - ftsh_error(FTSH_ERROR_STRUCTURE,0,"script succeeded"); - return 0; - } else { - ftsh_error(FTSH_ERROR_FAILURE,0,"script failed"); - return 1; - } - } -} - -int main( int argc, char *argv[] ) -{ - /* - If we are started from the shell, argv is as usual. - If we get started as a #! hack, then all of the args - are in argv[1], and the rest of the args go in argv[2..n]. - */ - - if( argc>1 && argv[1][0]=='-' && strchr(argv[1],' ') ) { - int tmp_argc, new_argc; - char **tmp_argv, **new_argv; - int i; - - /* Split the first argument into pieces */ - string_split_quotes(xxstrdup(argv[1]),&tmp_argc,&tmp_argv); - - /* Allocate a new argument array */ - new_argc = tmp_argc + argc; - new_argv = xxmalloc( sizeof(char*) * (new_argc+1) ); - - /* Copy all of the pieces into the new arg array */ - new_argv[0] = argv[0]; - - - for( i=0; i -#include -#include -#include -#include -#include -#include - -static FILE * error_stream = 0; -static int error_level = FTSH_ERROR_FAILURE; -static const char * error_name = "unknown"; -static int decimal_time = 0; - -void ftsh_error_name( const char *name ) -{ - error_name = name; -} - -void ftsh_error_level( int level ) -{ - error_level = level; -} - -void ftsh_error_stream( FILE *stream ) -{ - error_stream = stream; -} - -void ftsh_error_decimal_time( int onoff ) -{ - decimal_time = onoff; -} - -static char * make_prefix( int line ) -{ - static char txt[1024]; - struct timeval tv; - char *c; - - gettimeofday(&tv,0); - - if(decimal_time) { - sprintf(txt,"%d.%06d [%d] %s:%d",(int)tv.tv_sec,(int)tv.tv_usec,(int)getpid(),error_name,line); - } else { - time_t t = tv.tv_sec; - sprintf(txt,"%s[%d] %s:%d",ctime(&t),(int)getpid(),error_name,line); - c = strchr(txt,'\n'); - if(c) *c = ' '; - } - - return txt; -} - -static void do_error( int level, int line, const char *fmt, va_list args ) -{ - if(!error_stream) { - error_stream = stderr; - } - if(error_level>=level) { - fprintf(error_stream,"%s ",make_prefix(line)); - vfprintf(error_stream,fmt,args); - fprintf(error_stream,"\n"); - fflush(error_stream); - } -} - -void ftsh_error( int level, int line, const char *fmt, ... ) -{ - va_list args; - va_start(args,fmt); - do_error(level,line,fmt,args); - va_end(args); -} - -void ftsh_fatal( int line, const char *fmt, ... ) -{ - va_list args; - va_start(args,fmt); - do_error(error_level,line,fmt,args); - exit(1); - va_end(args); -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/ftsh/src/ftsh_error.h cctools-7.1.2/ftsh/src/ftsh_error.h --- cctools-7.0.22/ftsh/src/ftsh_error.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/ftsh_error.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef FTSH_ERROR_H -#define FTSH_ERROR_H - -#include -#include - -#define FTSH_ERROR_SYNTAX 0 -#define FTSH_ERROR_FAILURE 10 -#define FTSH_ERROR_COMMAND 20 -#define FTSH_ERROR_STRUCTURE 30 -#define FTSH_ERROR_PROCESS 40 - -void ftsh_error( int level, int line, const char *fmt, ... ); -void ftsh_fatal( int line, const char *fmt, ... ); - -void ftsh_error_name( const char *name ); -void ftsh_error_stream( FILE *stream ); -void ftsh_error_level( int level ); -void ftsh_error_decimal_time( int onoff ); - -#endif diff -Nru cctools-7.0.22/ftsh/src/Makefile cctools-7.1.2/ftsh/src/Makefile --- cctools-7.0.22/ftsh/src/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -include ../../config.mk -include ../../rules.mk - -EXTERNAL_DEPENDENCIES = ../../dttools/src/libdttools.a -LIBRARIES = libftsh.a -OBJECTS = $(SOURCES:%.c=%.o) -PROGRAMS = ftsh -SOURCES = ast.c ast_execute.c ast_print.c buffer.c builtin.c cancel.c expr.c ftsh.c ftsh_error.c multi_fork.c parser.tab.c scanner.c timed_exec.c variable.c -TARGETS = $(PROGRAMS) $(LIBRARIES) - -all: $(TARGETS) - -libftsh.a: $(OBJECTS) -$(PROGRAMS): libftsh.a - -parser.tab.c parser.tab.h: parser.y - bison -d parser.y - -scanner.c: scanner.l parser.tab.h - flex -t scanner.l > scanner.c - -install: all - mkdir -p $(CCTOOLS_INSTALL_DIR)/bin - cp $(PROGRAMS) $(CCTOOLS_INSTALL_DIR)/bin/ - -clean: - rm -f $(OBJECTS) $(TARGETS) parser.tab.c parser.tab.h scanner.c - -test: all - -.PHONY: all clean install test diff -Nru cctools-7.0.22/ftsh/src/multi_fork.c cctools-7.1.2/ftsh/src/multi_fork.c --- cctools-7.0.22/ftsh/src/multi_fork.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/multi_fork.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,175 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include "multi_fork.h" -#include "ftsh_error.h" -#include "stringtools.h" -#include "cancel.h" -#include "macros.h" - -#include -#include -#include -#include -#include -#include -#include - -int multi_fork_kill_timeout = 30; -int multi_fork_kill_mode = MULTI_FORK_KILL_MODE_STRONG; - -/* -Fork off n processes without any fault-tolerance. -*/ - -static int multi_start( int n, struct multi_fork_status *p, time_t stoptime, int line ) -{ - int i; - pid_t pid; - - for(i=0;istoptime)) return MULTI_FORK_TIMEOUT; - pid = fork(); - if(pid==0) { - return i; - } else if(pid>0) { - ftsh_error(FTSH_ERROR_PROCESS,line,"started new process %d",pid); - p[i].pid = pid; - p[i].state = MULTI_FORK_STATE_RUNNING; - } else { - ftsh_error(FTSH_ERROR_FAILURE,line,"couldn't create new process: %s\n",strerror(errno)); - return MULTI_FORK_FAILURE; - } - } - - return MULTI_FORK_SUCCESS; -} - -/* -Wait for these n processes to complete, -allowing for a timeout or an incoming cancel signal, if requested. -*/ - -static int multi_wait( int n, struct multi_fork_status *p, time_t stoptime, int line, int stop_on_failure ) -{ - int status; - int interval; - int i; - pid_t pid; - int total; - - while(1) { - total=0; - - for(i=0;i=n) return MULTI_FORK_SUCCESS; - if(stop_on_failure && cancel_pending()) return MULTI_FORK_FAILURE; - - if(stoptime) { - interval = stoptime-time(0); - if(interval<=0) { - return MULTI_FORK_TIMEOUT; - } else { - alarm(interval); - } - } else { - /* Although we hope that this algorithm is correct, there are many ways to get it wrong, so regardless, bail out every 10 seconds and reconsider. */ - alarm(10); - } - - pid = waitpid(-1,&status,0); - if(pid>0) { - ftsh_error(FTSH_ERROR_PROCESS,line,"process %d has completed",pid); - for(i=0;i -#include -#include - -struct multi_fork_status { - pid_t pid; - int status; - enum { - MULTI_FORK_STATE_CRADLE, - MULTI_FORK_STATE_RUNNING, - MULTI_FORK_STATE_GRAVE - } state; -}; - -int multi_fork( int n, struct multi_fork_status *s, time_t stoptime, int line ); - -#define MULTI_FORK_SUCCESS -1 -#define MULTI_FORK_FAILURE -2 -#define MULTI_FORK_TIMEOUT -3 - -extern int multi_fork_kill_timeout; -extern int multi_fork_kill_mode; - -#define MULTI_FORK_KILL_MODE_WEAK 0 -#define MULTI_FORK_KILL_MODE_STRONG 1 - -#endif diff -Nru cctools-7.0.22/ftsh/src/parser.h cctools-7.1.2/ftsh/src/parser.h --- cctools-7.0.22/ftsh/src/parser.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/parser.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef PARSER_H -#define PARSER_H - -#include "ast.h" -#include - -union yystype { - struct ast_group *group; - struct ast_command *command; - struct ast_function *function; - struct ast_conditional *conditional; - struct ast_try *try; - struct ast_try_limit *try_limit; - struct ast_whileloop *whileloop; - struct ast_forloop *forloop; - struct ast_shift *shift; - struct ast_return *rtn; - struct ast_assign *assign; - struct ast_simple *simple; - struct ast_redirect *redirect; - struct ast_word *word; - struct ast_token token; - struct expr *expr; - int number; -}; - -#define YYSTYPE union yystype - -struct ast_group * parse_file( FILE *file, int do_debug ); - -#endif diff -Nru cctools-7.0.22/ftsh/src/parser.y cctools-7.1.2/ftsh/src/parser.y --- cctools-7.0.22/ftsh/src/parser.y 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/parser.y 1970-01-01 00:00:00.000000000 +0000 @@ -1,515 +0,0 @@ - -%expect 1 - -/* -The "expect" directive indicates that this grammar has -a known ambiguity which is resolved by the default -precedence in bison. - -The ambiguity is as follows: A single function call can -be confused with two expressions separated by a space. -This conflict does not apear in singleton expressions, -but only in space-separated lists, used by forany and forall. -For example, "foo ( baz )" could be interpreted as a -call to function foo, or the literal expression -foo followed by baz. - -I belive this is an acceptable ambiguity, because the -default is the common case and can be overridden when -necessary. For example, - - forany x in foo(baz) - ... - end - -...indicates that the function foo should be called and the -resulting list be used for the branches of the forany. -To force the expression-list interpretation, use this instead: - - forany x in (foo) (baz) - ... - end -*/ - -%token TOKEN_DELIMITER -%token TOKEN_LEFT_ARROW -%token TOKEN_DOUBLE_LEFT_ARROW -%token TOKEN_LONG_LEFT_ARROW -%token TOKEN_LONG_DOUBLE_LEFT_ARROW -%token TOKEN_RIGHT_ARROW -%token TOKEN_DOUBLE_RIGHT_ARROW -%token TOKEN_SQUIGGLY_RIGHT_ARROW -%token TOKEN_NUMBERED_SQUIGGLY_RIGHT_ARROW -%token TOKEN_DOUBLE_SQUIGGLY_RIGHT_ARROW -%token TOKEN_NUMBERED_DOUBLE_SQUIGGLY_RIGHT_ARROW -%token TOKEN_LONG_RIGHT_ARROW -%token TOKEN_LONG_DOUBLE_RIGHT_ARROW -%token TOKEN_LONG_SQUIGGLY_RIGHT_ARROW -%token TOKEN_LONG_DOUBLE_SQUIGGLY_RIGHT_ARROW -%token TOKEN_FUNCTION -%token TOKEN_ASSIGN -%token TOKEN_IF -%token TOKEN_ELSE -%token TOKEN_END -%token TOKEN_TRY -%token TOKEN_EVERY -%token TOKEN_CATCH -%token TOKEN_IN -%token TOKEN_FOR -%token TOKEN_FORANY -%token TOKEN_FORALL -%token TOKEN_TIMES -%token TOKEN_SECONDS -%token TOKEN_MINUTES -%token TOKEN_HOURS -%token TOKEN_DAYS -%token TOKEN_ATOM -%token TOKEN_SHIFT -%token TOKEN_WHILE -%token TOKEN_VAR -%token TOKEN_RETURN -%token TOKEN_COMMA - -%token TOKEN_ADD -%token TOKEN_SUB -%token TOKEN_MUL -%token TOKEN_DIV -%token TOKEN_MOD -%token TOKEN_POW -%token TOKEN_EQ -%token TOKEN_NE -%token TOKEN_EQL -%token TOKEN_NEQL -%token TOKEN_LT -%token TOKEN_GT -%token TOKEN_LE -%token TOKEN_GE -%token TOKEN_AND -%token TOKEN_OR -%token TOKEN_QUESTION -%token TOKEN_COLON -%token TOKEN_LPAREN -%token TOKEN_RPAREN -%token TOKEN_NOT -%token TOKEN_TO -%token TOKEN_STEP - -%token TOKEN_EXISTS -%token TOKEN_ISR -%token TOKEN_ISW -%token TOKEN_ISX - -%token TOKEN_ISBLOCK -%token TOKEN_ISCHAR -%token TOKEN_ISDIR -%token TOKEN_ISFILE -%token TOKEN_ISLINK -%token TOKEN_ISPIPE -%token TOKEN_ISSOCK - -%type program group -%type command -%type function -%type try try_limit -%type time_limit loop_limit opt_every_limit -%type forloop -%type whileloop -%type conditional -%type shift_line -%type return_line -%type assign_line -%type simple_line simple -%type redirect -%type time_units fortype -%type word wordequals -%type expr expr_list opt_expr_comma_list expr_comma_list -%type TOKEN_FUNCTION TOKEN_END TOKEN_DELIMITER TOKEN_WHILE TOKEN_FOR TOKEN_IN TOKEN_IF TOKEN_ELSE TOKEN_TRY TOKEN_CATCH TOKEN_ASSIGN TOKEN_ATOM TOKEN_OR TOKEN_AND TOKEN_EQ TOKEN_NE TOKEN_EQL TOKEN_NEQL TOKEN_LT TOKEN_LE TOKEN_GT TOKEN_GE TOKEN_ADD TOKEN_SUB TOKEN_MUL TOKEN_DIV TOKEN_MOD TOKEN_NOT TOKEN_EXISTS TOKEN_ISR TOKEN_ISW TOKEN_ISX TOKEN_ISBLOCK TOKEN_ISCHAR TOKEN_ISDIR TOKEN_ISFILE TOKEN_ISLINK TOKEN_ISPIPE TOKEN_ISSOCK TOKEN_POW TOKEN_LPAREN TOKEN_RPAREN TOKEN_TO TOKEN_SHIFT TOKEN_LEFT_ARROW TOKEN_RIGHT_ARROW TOKEN_DOUBLE_RIGHT_ARROW TOKEN_NUMBERED_SQUIGGLY_RIGHT_ARROW TOKEN_NUMBERED_DOUBLE_SQUIGGLY_RIGHT_ARROW TOKEN_SQUIGGLY_RIGHT_ARROW TOKEN_LONG_LEFT_ARROW TOKEN_LONG_RIGHT_ARROW TOKEN_LONG_DOUBLE_RIGHT_ARROW TOKEN_LONG_SQUIGGLY_RIGHT_ARROW TOKEN_LONG_DOUBLE_SQUIGGLY_RIGHT_ARROW TOKEN_DOUBLE_SQUIGGLY_RIGHT_ARROW - -%nonassoc TOKEN_TO -%nonassoc TOKEN_STEP -%left TOKEN_OR -%left TOKEN_AND -%nonassoc TOKEN_EQ TOKEN_NE TOKEN_EQL TOKEN_NEQL TOKEN_LT TOKEN_LE TOKEN_GT TOKEN_GE -%left TOKEN_ADD TOKEN_SUB -%left TOKEN_MUL TOKEN_DIV TOKEN_MOD -%right TOKEN_NOT TOKEN_EXISTS TOKEN_ISR TOKEN_ISW TOKEN_ISX TOKEN_ISBLOCK TOKEN_ISCHAR TOKEN_ISDIR TOKEN_ISFILE TOKEN_ISLINK TOKEN_ISPIPE TOKEN_ISSOCK -%left TOKEN_POW -%nonassoc PREC_EXPR -%nonassoc PREC_LITERAL -%nonassoc PREC_FCALL - -%{ - -#include "ast.h" -#include "parser.h" -#include "ftsh_error.h" -#include "xxmalloc.h" - -#include -#include -#include - -#define YYDEBUG 1 - -extern char * yytext; -extern FILE * yyin; - -extern int yyerror( char *str ); -extern int yylex(); - -static struct ast_group * parser_result=0; - -%} - -%% - -program - : group - { parser_result = $1; } - ; - -group - : command group - { $$ = ast_group_create( $1, $2 ); } - | command - { $$ = ast_group_create( $1, 0 ); } - ; - -command - : function - { $$ = ast_command_create( AST_COMMAND_FUNCTION, $1 ); } - | try - { $$ = ast_command_create( AST_COMMAND_TRY, $1 ); } - | forloop - { $$ = ast_command_create( AST_COMMAND_FORLOOP, $1 ); } - | whileloop - { $$ = ast_command_create( AST_COMMAND_WHILELOOP, $1 ); } - | conditional - { $$ = ast_command_create( AST_COMMAND_CONDITIONAL, $1 ); } - | shift_line - { $$ = ast_command_create( AST_COMMAND_SHIFT, $1 ); } - | assign_line - { $$ = ast_command_create( AST_COMMAND_ASSIGN, $1 ); } - | return_line - { $$ = ast_command_create( AST_COMMAND_RETURN, $1 ); } - | simple_line - { $$ = ast_command_create( AST_COMMAND_SIMPLE, $1 ); } - | TOKEN_DELIMITER - { $$ = ast_command_create( AST_COMMAND_EMPTY, 0 ); } - ; - -function - : TOKEN_FUNCTION word TOKEN_DELIMITER group TOKEN_END TOKEN_DELIMITER - { $$ = ast_function_create( $1.line, $5.line, $2, $4 ); } - ; - -/* -Ok, this is ugly, but the only way to get around the reality of LALR(1). -*/ - -try - : TOKEN_TRY try_limit TOKEN_DELIMITER group TOKEN_END TOKEN_DELIMITER - { - $$ = $2; - $$->try_line=$1.line; - $$->catch_line=$5.line; - $$->end_line=$5.line; - $$->body=$4; - } - | TOKEN_TRY try_limit TOKEN_DELIMITER group TOKEN_CATCH TOKEN_DELIMITER group TOKEN_END TOKEN_DELIMITER - { - $$ = $2; - $$->try_line=$1.line; - $$->catch_line=$5.line; - $$->end_line=$8.line; - $$->body=$4; - $$->catch_block=$7; - } - ; - -try_limit - : opt_every_limit - { $$ = ast_try_create(0,0,0,0,0,$1,0,0); } - | opt_conj time_limit opt_every_limit - { $$ = ast_try_create(0,0,0,$2,0,$3,0,0); } - | opt_conj loop_limit opt_every_limit - { $$ = ast_try_create(0,0,0,0,$2,$3,0,0); } - | opt_conj time_limit opt_conj loop_limit opt_every_limit - { $$ = ast_try_create(0,0,0,$2,$4,$5,0,0); } - | opt_conj loop_limit opt_conj time_limit opt_every_limit - { $$ = ast_try_create(0,0,0,$4,$2,$5,0,0); } - ; - -opt_conj - : TOKEN_FOR - { } - | TOKEN_OR - { } - | - { } - ; - -time_limit - : expr time_units - { $$ = ast_try_limit_create( $1, $2 ); } - ; - -loop_limit - : expr TOKEN_TIMES - { $$ = ast_try_limit_create( $1, 0 ); } - ; - -opt_every_limit - : /* nothing */ - { $$ = 0; } - | TOKEN_EVERY expr time_units - { $$ = ast_try_limit_create( $2, $3 ); } - ; - -time_units - : TOKEN_SECONDS - { $$ = 1; } - | TOKEN_MINUTES - { $$ = 60; } - | TOKEN_HOURS - { $$ = 60*60; } - | TOKEN_DAYS - { $$ = 24*60*60; } - ; - -forloop - : fortype word TOKEN_IN expr_list TOKEN_DELIMITER group TOKEN_END TOKEN_DELIMITER - { $$ = ast_forloop_create( $1, $3.line, $7.line, $2, $4, $6 ); } - ; - -fortype - : TOKEN_FOR - { $$ = AST_FOR; } - | TOKEN_FORANY - { $$ = AST_FORANY; } - | TOKEN_FORALL - { $$ = AST_FORALL; } - ; - -whileloop - : TOKEN_WHILE expr TOKEN_DELIMITER group TOKEN_END TOKEN_DELIMITER - { $$ = ast_whileloop_create( $1.line, $3.line, $5.line, $2, $4 ); } - ; - -conditional - : TOKEN_IF expr TOKEN_DELIMITER group TOKEN_END TOKEN_DELIMITER - { $$ = ast_conditional_create( $1.line, $3.line, $5.line, $5.line, $2, $4, 0 ); } - | TOKEN_IF expr TOKEN_DELIMITER group TOKEN_ELSE TOKEN_DELIMITER group TOKEN_END TOKEN_DELIMITER - { $$ = ast_conditional_create( $1.line, $3.line, $8.line, $8.line, $2, $4, $7 ); } - | TOKEN_IF expr TOKEN_DELIMITER group TOKEN_ELSE conditional - { - struct ast_group *g = ast_group_create( ast_command_create( AST_COMMAND_CONDITIONAL, $6 ), 0 ); - $$ = ast_conditional_create( $1.line, $3.line, $5.line, $5.line, $2, $4, g ); - } - ; - -shift_line - : TOKEN_SHIFT expr TOKEN_DELIMITER - { $$ = ast_shift_create($1.line,$2); } - | TOKEN_SHIFT TOKEN_DELIMITER - { $$ = ast_shift_create($1.line,0); } - ; - -assign_line - : wordequals expr TOKEN_DELIMITER - { $$ = ast_assign_create( $3.line, $1, $2 ); } - | wordequals TOKEN_DELIMITER - { $$ = ast_assign_create( $2.line, $1, 0 ); } - ; - -return_line - : TOKEN_RETURN expr TOKEN_DELIMITER - { $$ = ast_return_create( $3.line, $2 ); } - ; - -simple_line - : simple TOKEN_DELIMITER - { $$ = $1; $1->line = $2.line; } - ; - -simple - : simple word - { - struct ast_word *w; - for( w=$1->words; w->next; w=w->next ) {} - w->next = $2; - $$ = $1; - } - | simple redirect - { - struct ast_redirect *r; - if( $1->redirects ) { - for( r=$1->redirects; r->next; r=r->next ) {} - r->next = $2; - } else { - $1->redirects = $2; - } - $$ = $1; - } - | word - { $$ = ast_simple_create( 0, $1, 0 ); } - ; - -redirect - : TOKEN_LEFT_ARROW word - { $$ = ast_redirect_create( AST_REDIRECT_FILE, $1.firstint, $2, AST_REDIRECT_INPUT ); } - | TOKEN_RIGHT_ARROW word - { $$ = ast_redirect_create( AST_REDIRECT_FILE, $1.firstint, $2, AST_REDIRECT_OUTPUT ); } - | TOKEN_DOUBLE_RIGHT_ARROW word - { $$ = ast_redirect_create( AST_REDIRECT_FILE, $1.firstint, $2, AST_REDIRECT_APPEND ); } - | TOKEN_NUMBERED_SQUIGGLY_RIGHT_ARROW word - { $$ = ast_redirect_create( AST_REDIRECT_FD, $1.firstint, $2, AST_REDIRECT_OUTPUT ); } - | TOKEN_NUMBERED_DOUBLE_SQUIGGLY_RIGHT_ARROW word - { $$ = ast_redirect_create( AST_REDIRECT_FD, $1.firstint, $2, AST_REDIRECT_APPEND ); } - | TOKEN_SQUIGGLY_RIGHT_ARROW word - { - $$ = ast_redirect_create( AST_REDIRECT_FILE, 1, $2, AST_REDIRECT_OUTPUT ); - $$->next = ast_redirect_create( AST_REDIRECT_FD, 2, ast_word_create($1.line,"1"), AST_REDIRECT_APPEND ); - } - | TOKEN_DOUBLE_SQUIGGLY_RIGHT_ARROW word - { - $$ = ast_redirect_create( AST_REDIRECT_FILE, 1, $2, AST_REDIRECT_APPEND ); - $$->next = ast_redirect_create( AST_REDIRECT_FD, 2, ast_word_create($1.line,"1"), AST_REDIRECT_APPEND ); - } - | TOKEN_LONG_LEFT_ARROW word - { $$ = ast_redirect_create( AST_REDIRECT_BUFFER, $1.firstint, $2, AST_REDIRECT_INPUT ); } - | TOKEN_LONG_RIGHT_ARROW word - { $$ = ast_redirect_create( AST_REDIRECT_BUFFER, $1.firstint, $2, AST_REDIRECT_OUTPUT ); } - | TOKEN_LONG_DOUBLE_RIGHT_ARROW word - { $$ = ast_redirect_create( AST_REDIRECT_BUFFER, $1.firstint, $2, AST_REDIRECT_APPEND ); } - | TOKEN_LONG_SQUIGGLY_RIGHT_ARROW word - { - $$ = ast_redirect_create( AST_REDIRECT_BUFFER, 1, $2, AST_REDIRECT_OUTPUT ); - $$->next = ast_redirect_create( AST_REDIRECT_FD, 2, ast_word_create($1.line,"1"), AST_REDIRECT_APPEND ); - } - | TOKEN_LONG_DOUBLE_SQUIGGLY_RIGHT_ARROW word - { - $$ = ast_redirect_create( AST_REDIRECT_BUFFER, 1, $2, AST_REDIRECT_APPEND ); - $$->next = ast_redirect_create( AST_REDIRECT_FD, 2, ast_word_create($1.line,"1"), AST_REDIRECT_APPEND ); - } - ; - -opt_expr_comma_list - : /* nothing */ - { $$ = 0; } - | expr_comma_list - { $$ = $1; } - ; - -expr_comma_list - : expr - { $$ = $1; } - | expr TOKEN_COMMA expr_comma_list - { $$ = $1; $1->next=$3; } - ; - -expr_list - : expr - { $$ = $1; } - | expr expr_list - { $$ = $1; $1->next=$2; } - ; - -expr - : expr TOKEN_TO expr %prec TOKEN_TO - { $$ = expr_create($2.line,EXPR_TO,0,$1,$3,0); } - | expr TOKEN_TO expr TOKEN_STEP expr %prec TOKEN_STEP - { $$ = expr_create($2.line,EXPR_TO,0,$1,$3,$5); } - | expr TOKEN_OR expr - { $$ = expr_create($2.line,EXPR_OR,0,$1,$3,0); } - | expr TOKEN_AND expr - { $$ = expr_create($2.line,EXPR_AND,0,$1,$3,0); } - | expr TOKEN_EQ expr - { $$ = expr_create($2.line,EXPR_EQ,0,$1,$3,0); } - | expr TOKEN_NE expr - { $$ = expr_create($2.line,EXPR_NE,0,$1,$3,0); } - | expr TOKEN_EQL expr - { $$ = expr_create($2.line,EXPR_EQL,0,$1,$3,0); } - | expr TOKEN_NEQL expr - { $$ = expr_create($2.line,EXPR_NEQL,0,$1,$3,0); } - | expr TOKEN_LT expr - { $$ = expr_create($2.line,EXPR_LT,0,$1,$3,0); } - | expr TOKEN_LE expr - { $$ = expr_create($2.line,EXPR_LE,0,$1,$3,0); } - | expr TOKEN_GT expr - { $$ = expr_create($2.line,EXPR_GT,0,$1,$3,0); } - | expr TOKEN_GE expr - { $$ = expr_create($2.line,EXPR_GE,0,$1,$3,0); } - | expr TOKEN_ADD expr - { $$ = expr_create($2.line,EXPR_ADD,0,$1,$3,0); } - | expr TOKEN_SUB expr - { $$ = expr_create($2.line,EXPR_SUB,0,$1,$3,0); } - | expr TOKEN_MUL expr - { $$ = expr_create($2.line,EXPR_MUL,0,$1,$3,0); } - | expr TOKEN_DIV expr - { $$ = expr_create($2.line,EXPR_DIV,0,$1,$3,0); } - | expr TOKEN_MOD expr - { $$ = expr_create($2.line,EXPR_MOD,0,$1,$3,0); } - | TOKEN_NOT expr - { $$ = expr_create( $1.line, EXPR_NOT, 0, $2, 0, 0); } - | TOKEN_EXISTS expr - { $$ = expr_create( $1.line, EXPR_EXISTS, 0, $2, 0, 0); } - | TOKEN_ISR expr - { $$ = expr_create( $1.line, EXPR_ISR, 0, $2, 0, 0); } - | TOKEN_ISW expr - { $$ = expr_create( $1.line, EXPR_ISW, 0, $2, 0, 0); } - | TOKEN_ISX expr - { $$ = expr_create( $1.line, EXPR_ISX, 0, $2, 0, 0); } - | TOKEN_ISBLOCK expr - { $$ = expr_create( $1.line, EXPR_ISBLOCK, 0, $2, 0, 0); } - | TOKEN_ISCHAR expr - { $$ = expr_create( $1.line, EXPR_ISCHAR, 0, $2, 0, 0); } - | TOKEN_ISDIR expr - { $$ = expr_create( $1.line, EXPR_ISDIR, 0, $2, 0, 0); } - | TOKEN_ISFILE expr - { $$ = expr_create( $1.line, EXPR_ISFILE, 0, $2, 0, 0); } - | TOKEN_ISLINK expr - { $$ = expr_create( $1.line, EXPR_ISLINK, 0, $2, 0, 0); } - | TOKEN_ISPIPE expr - { $$ = expr_create( $1.line, EXPR_ISPIPE, 0, $2, 0, 0); } - | TOKEN_ISSOCK expr - { $$ = expr_create( $1.line, EXPR_ISSOCK, 0, $2, 0, 0); } - | expr TOKEN_POW expr - { $$ = expr_create( $2.line, EXPR_POW, 0, $1, $3, 0 ); } - | TOKEN_LPAREN expr TOKEN_RPAREN %prec PREC_EXPR - { $$ = expr_create($1.line,EXPR_EXPR,0,$2,0,0); } - | word %prec PREC_LITERAL - { $$ = expr_create($1->line,EXPR_LITERAL,$1,0,0,0); } - | word TOKEN_LPAREN opt_expr_comma_list TOKEN_RPAREN %prec PREC_FCALL - { $$ = expr_create($2.line,EXPR_FCALL,$1,$3,0,0); } - ; - -wordequals - : TOKEN_ASSIGN - { $$ = ast_word_create( $1.line, yytext ); } - ; - -word - : TOKEN_ATOM - { $$ = ast_word_create( $1.line, yytext ); } - ; - -%% - - -struct ast_group * parse_file( FILE *f, int do_debug ) -{ - yydebug = do_debug; - yyin = f; - parser_result = 0; - yyparse(); - return parser_result; -} - -extern int current_line; - -int yyerror( char *string ) -{ - ftsh_fatal(current_line,"parse error near here",current_line); - return 0; -} diff -Nru cctools-7.0.22/ftsh/src/scanner.l cctools-7.1.2/ftsh/src/scanner.l --- cctools-7.0.22/ftsh/src/scanner.l 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/scanner.l 1970-01-01 00:00:00.000000000 +0000 @@ -1,152 +0,0 @@ - -%option noinput -%option nounput - -%{ -#include "parser.h" -#include "parser.tab.h" -#include "ftsh_error.h" - -#include -#include -#include - -static int grab( int type, int firstint ); -static int grab_int( int type ); - -int current_line=1; - -%} - -DQUOTE ["] -NOTDQUOTE [^"] -SQUOTE ['] -NOTSQUOTE [^'] -BQUOTE [`] -ESCAPED \\. -NOTSPECIAL [^;,><&|\\'"` \t\n=()] -VARCHAR [a-zA-Z0-9_] - -STRING ({NOTSPECIAL}|{ESCAPED})+ -DQSTRING {DQUOTE}({NOTDQUOTE}|{ESCAPED})*{DQUOTE} -SQSTRING {SQUOTE}({NOTSQUOTE}|{ESCAPED})*{SQUOTE} - -%% -#[^\n]*\n current_line++; -[\t ]+ ; -\\\n current_line++; -\r?\n { grab(TOKEN_DELIMITER,0); current_line++; return TOKEN_DELIMITER; } -; return grab(TOKEN_DELIMITER,0); - -\> return grab(TOKEN_RIGHT_ARROW,1); -[0-2]\> return grab_int(TOKEN_RIGHT_ARROW); -\< return grab(TOKEN_LEFT_ARROW,0); -[0-2]\< return grab_int(TOKEN_LEFT_ARROW); -\>\> return grab(TOKEN_DOUBLE_RIGHT_ARROW,1); -[0-2]\>\> return grab_int(TOKEN_DOUBLE_RIGHT_ARROW); -[0-2]\>\& return grab_int(TOKEN_NUMBERED_SQUIGGLY_RIGHT_ARROW); -[0-2]\>\>\& return grab_int(TOKEN_NUMBERED_DOUBLE_SQUIGGLY_RIGHT_ARROW); -\>\& return grab(TOKEN_SQUIGGLY_RIGHT_ARROW,0); -\&\> return grab(TOKEN_SQUIGGLY_RIGHT_ARROW,0); -\>\>\& return grab(TOKEN_DOUBLE_SQUIGGLY_RIGHT_ARROW,0); -\&\>\> return grab(TOKEN_DOUBLE_SQUIGGLY_RIGHT_ARROW,0); -\-\> return grab(TOKEN_LONG_RIGHT_ARROW,1); -[0-2]\-\> return grab_int(TOKEN_LONG_RIGHT_ARROW); -\-\< return grab(TOKEN_LONG_LEFT_ARROW,0); -[0-2]\-\< return grab_int(TOKEN_LONG_LEFT_ARROW); -\-\>\> return grab(TOKEN_LONG_DOUBLE_RIGHT_ARROW,1); -[0-2]\-\>\> return grab_int(TOKEN_LONG_DOUBLE_RIGHT_ARROW); -\-\>\& return grab_int(TOKEN_LONG_SQUIGGLY_RIGHT_ARROW); -\-\>\>\& return grab_int(TOKEN_LONG_DOUBLE_SQUIGGLY_RIGHT_ARROW); -\<\< ftsh_fatal(current_line," I don't support << 'here-file' (yet)\n"); -[0-2]\<\< ftsh_fatal(current_line," I don't support [n]<< 'here-file' (yet)\n"); -\-\<\< ftsh_fatal(current_line," I don't support -<< 'here-file' (yet)\n"); -[0-2]\-\<\< ftsh_fatal(current_line," I don't support [n]-<< 'here-file' (yet)\n"); -\| ftsh_fatal(current_line," I don't support | pipes (yet)\n"); -\|\& ftsh_fatal(current_line," I don't support |& pipes (yet)\n"); -function return grab(TOKEN_FUNCTION,0); -if return grab(TOKEN_IF,0); -in return grab(TOKEN_IN,0); -else return grab(TOKEN_ELSE,0); -end return grab(TOKEN_END,0); -try return grab(TOKEN_TRY,0); -every return grab(TOKEN_EVERY,0); -catch return grab(TOKEN_CATCH,0); -for return grab(TOKEN_FOR,0); -forany return grab(TOKEN_FORANY,0); -forall return grab(TOKEN_FORALL,0); -or return grab(TOKEN_OR,0); -time return grab(TOKEN_TIMES,0); -times return grab(TOKEN_TIMES,0); -second return grab(TOKEN_SECONDS,0); -seconds return grab(TOKEN_SECONDS,0); -minute return grab(TOKEN_MINUTES,0); -minutes return grab(TOKEN_MINUTES,0); -hour return grab(TOKEN_HOURS,0); -hours return grab(TOKEN_HOURS,0); -day return grab(TOKEN_DAYS,0); -days return grab(TOKEN_DAYS,0); -shift return grab(TOKEN_SHIFT,0); -while return grab(TOKEN_WHILE,0); -return return grab(TOKEN_RETURN,0); -\.add\. return grab(TOKEN_ADD,0); -\.sub\. return grab(TOKEN_SUB,0); -\.mul\. return grab(TOKEN_MUL,0); -\.div\. return grab(TOKEN_DIV,0); -\.mod\. return grab(TOKEN_MOD,0); -\.pow\. return grab(TOKEN_POW,0); -\.eq\. return grab(TOKEN_EQ,0); -\.ne\. return grab(TOKEN_NE,0); -\.eql\. return grab(TOKEN_EQL,0); -\.neql\. return grab(TOKEN_NEQL,0); -\.lt\. return grab(TOKEN_LT,0); -\.gt\. return grab(TOKEN_GT,0); -\.le\. return grab(TOKEN_LE,0); -\.ge\. return grab(TOKEN_GE,0); -\.and\. return grab(TOKEN_AND,0); -\.or\. return grab(TOKEN_OR,0); -\.not\. return grab(TOKEN_NOT,0); -\.to\. return grab(TOKEN_TO,0); -\.step\. return grab(TOKEN_STEP,0); -\( return grab(TOKEN_LPAREN,0); -\) return grab(TOKEN_RPAREN,0); -\, return grab(TOKEN_COMMA,0); -\.exists\. return grab(TOKEN_EXISTS,0); -\.isr\. return grab(TOKEN_ISR,0); -\.isw\. return grab(TOKEN_ISW,0); -\.isx\. return grab(TOKEN_ISX,0); -\.isblock\. return grab(TOKEN_ISBLOCK,0); -\.ischar\. return grab(TOKEN_ISCHAR,0); -\.isdir\. return grab(TOKEN_ISDIR,0); -\.isfile\. return grab(TOKEN_ISFILE,0); -\.islink\. return grab(TOKEN_ISLINK,0); -\.ispipe\. return grab(TOKEN_ISPIPE,0); -\.issock\. return grab(TOKEN_ISSOCK,0); -{BQUOTE} ftsh_fatal(current_line,"I don't support backticks (``). Try variable redirection instead."); -{VARCHAR}+= { yytext[strlen(yytext)-1]=0; return grab(TOKEN_ASSIGN,0); } -{STRING} return grab(TOKEN_ATOM,0); -{SQSTRING} return grab(TOKEN_ATOM,0); -{DQSTRING} return grab(TOKEN_ATOM,0); -. ftsh_fatal(current_line,"scan error near %s",yytext); -%% - -static int grab_int( int type ) -{ - yylval.token.line = current_line; - yylval.token.type = type; - yylval.token.firstint = yytext[0]-'0'; - return type; -} - -static int grab( int type, int firstint ) -{ - yylval.token.line = current_line; - yylval.token.type = type; - yylval.token.firstint = firstint; - return type; -} - -int yywrap() -{ - return 1; -} diff -Nru cctools-7.0.22/ftsh/src/timed_exec.c cctools-7.1.2/ftsh/src/timed_exec.c --- cctools-7.0.22/ftsh/src/timed_exec.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/timed_exec.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include "timed_exec.h" -#include "ftsh_error.h" -#include "stringtools.h" -#include "full_io.h" -#include "multi_fork.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -timed_exec_t timed_exec( int line, const char *path, char **argv, int fds[3], pid_t *pid, int *status, time_t stoptime ) -{ - int fresult; - int pfds[2]; - int child_errno; - int actual; - struct multi_fork_status s; - - actual = pipe(pfds); - if(actual!=0) return TIMED_EXEC_NOEXEC; - - fresult = multi_fork(1,&s,stoptime,line); - if(fresult>=0) { - /* Move our standard I/O streams into the expected places. */ - /* It seems that cygwin doesn't like dup2 on the same fd. */ - - int i, maxfd; - - for( i=0; i<=2; i++ ) { - if( fds[i]!=i ) { - if( dup2(fds[i],i) != i ) { - ftsh_error(FTSH_ERROR_PROCESS,line,"failure to dup2(%d,%d): %s\n",fds[i],i,strerror(errno)); - goto done; - } - } - } - - /* Close all of the file descriptors that we don't need. */ - - maxfd = sysconf( _SC_OPEN_MAX ); - if(maxfd<=0) maxfd = 255; - for(i=3;i -#include - -typedef enum { - TIMED_EXEC_SUCCESS, - TIMED_EXEC_FAILURE, - TIMED_EXEC_TIMEOUT, - TIMED_EXEC_NOEXEC -} timed_exec_t; - -timed_exec_t timed_exec( int line, const char *path, char **argv, int fds[3], pid_t *pid, int *status, time_t stoptime ); - -#endif diff -Nru cctools-7.0.22/ftsh/src/variable.c cctools-7.1.2/ftsh/src/variable.c --- cctools-7.0.22/ftsh/src/variable.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/variable.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,271 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include "xxmalloc.h" -#include "buffer.h" -#include "ftsh_error.h" -#include "list.h" -#include "stringtools.h" - -#include -#include -#include -#include -#include - -struct vstack { - int argc; - char **argv; - char *rval; - struct vstack *next; -}; - -static struct vstack *head=0; -static int vstackdepth=0; - -#define ISVALID(x) (isalpha(x) || isdigit(x) || (x=='_') || (x=='$') || (x=='#') || (x=='@') || (x=='*') ) - -static int isvalid( const char *n ) -{ - while(*n) { - if(!ISVALID((int)(*n))) return 0; - n++; - } - return 1; -} - -int variable_frame_push( int line, int argc, char **argv ) -{ - struct vstack *v; - int i; - - if(vstackdepth>1000) { - ftsh_error(FTSH_ERROR_FAILURE,line,"aborting: you have recursed %d times",vstackdepth); - return 0; - } - - v = malloc(sizeof(*v)); - if(!v) { - ftsh_error(FTSH_ERROR_FAILURE,line,"out of memory"); - return 0; - } - - v->argc = argc; - v->argv = argv; - v->rval = 0; - v->next = head; - - for( i=0; inext ) { - ftsh_fatal(0,"stack underflow"); - } - - head = v->next; - free(v); - vstackdepth--; -} - -void variable_rval_set( char *rval ) -{ - head->rval = rval; -} - -char * variable_rval_get() -{ - return head->rval; -} - -int variable_shift( int n, int line ) -{ - int i; - - if(head->argc>=n) { - head->argc-=n; - for(i=0;iargc;i++) { - head->argv[i] = head->argv[i+n]; - } - return 1; - } else { - ftsh_error(FTSH_ERROR_SYNTAX,line,"cannot shift %d arguments; there are only %d",n,head->argc); - return 0; - } -} - -static char * variable_print_argv( int withquotes ) -{ - char *result=0; - int i; - - result = xxstrdup(""); - - for(i=1;iargc;i++) { - result = string_combine(result,head->argv[i]); - if(i!=(head->argc-1)) { - if(withquotes) { - result = string_combine(result,"\" \""); - } else { - result = string_combine(result," "); - } - } - } - - return result; -} - -static char * variable_get( const char *name, int line, int withquotes ) -{ - char buffer[100]; - int arg; - - if(!strcmp(name,"$")) { - sprintf(buffer,"%d",(int)getpid()); - return xxstrdup(buffer); - } else if(!strcmp(name,"#")) { - sprintf(buffer,"%d",head->argc-1); - return xxstrdup(buffer); - } else if(!strcmp(name,"@")) { - return variable_print_argv(withquotes); - } else if(!strcmp(name,"*")) { - return variable_print_argv(0); - } else if( sscanf(name,"%d",&arg)==1 ) { - if(arg>=head->argc) { - return xxstrdup(""); - } else { - return xxstrdup(head->argv[arg]); - } - } else if( isvalid(name) ) { - char *result = getenv(name); - if(result) return xxstrdup(result); - result = buffer_load(name); - if(result) string_chomp(result); - return result; - } else { - ftsh_fatal(line,"${%s} is an invalid variable name!",name); - return 0; - } -} - -char * variable_subst( char *value, int line ) -{ - char *subvalue, *newvalue; - char *dollar, *start, *end; - char terminator, oldend; - int length; - int withquotes = 0; - int escape = 0; - - while(1) { - - /* Find a non-escaped dollar */ - - for( dollar=value; *dollar; dollar++ ) { - if(escape) { - escape = 0; - } else { - if(*dollar=='\\') { - escape = 1; - } else if(*dollar=='$') { - break; - } - } - } - - /* If we didn't find it, stop. */ - - if(!*dollar) return value; - - /* Is the variable name bracketed? */ - - if( *(dollar+1)=='{' ) { - start = dollar+2; - terminator = '}'; - } else if( *(dollar+1)=='(' ) { - start = dollar+2; - terminator = ')'; - } else { - start = dollar+1; - terminator = 0; - } - - if(terminator) { - end = strchr(start,terminator); - } else { - for(end=start;ISVALID(*end);end++) { - /* nothing */ - } - } - - if(terminator && !end) { - ftsh_error(FTSH_ERROR_FAILURE,line,"variable reference began with %c but didn't end",*(dollar+1)); - return 0; - } - - if((end-start)<1) { - ftsh_error(FTSH_ERROR_FAILURE,line,"empty variable reference"); - return 0; - } - - withquotes = - (dollar>value && *(dollar-1)=='\"') && - (*end) && - (terminator - ? *(end+1)=='\"' - : *end=='\"' - ); - - oldend = *end; - *end = 0; - - subvalue = variable_get(start,line,withquotes); - *end = oldend; - - if(!subvalue) { - subvalue = xxstrdup(""); - } - - length = strlen(value) - (end-dollar) + strlen(subvalue) + 1; - - newvalue = malloc(length); - if(!newvalue) { - free(subvalue); - free(value); - return 0; - } - - *dollar = 0; - - strcpy(newvalue,value); - strcat(newvalue,subvalue); - if(terminator && *end) { - strcat(newvalue,end+1); - } else { - strcat(newvalue,end); - } - free(subvalue); - free(value); - - value = newvalue; - } -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/ftsh/src/variable.h cctools-7.1.2/ftsh/src/variable.h --- cctools-7.0.22/ftsh/src/variable.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/src/variable.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef VARIABLE_H -#define VARIABLE_H - -int variable_frame_push( int line, int argc, char **argv ); -void variable_frame_pop(); - -void variable_rval_set( char *rval ); -char * variable_rval_get(); - -int variable_shift( int n, int line ); -char * variable_subst( char *value, int line ); - -#endif diff -Nru cctools-7.0.22/ftsh/test/args.expect cctools-7.1.2/ftsh/test/args.expect --- cctools-7.0.22/ftsh/test/args.expect 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/args.expect 1970-01-01 00:00:00.000000000 +0000 @@ -1,112 +0,0 @@ -9 the -8 quick -7 brown -6 fox -5 jumps -4 over -3 the -2 lazy -1 dog -9 the -8 quick -7 brown -6 fox -5 jumps -4 over -3 the -2 lazy -1 dog -9 the -8 quick -7 brown -6 fox -5 jumps -4 over -3 the -2 lazy -1 dog -9 the -8 quick -7 brown -6 fox -5 jumps -4 over -3 the -2 lazy -1 dog -9 the -8 quick -7 brown -6 fox -5 jumps -4 over -3 the -2 lazy -1 dog -1 the quick brown fox jumps over the lazy dog -9 the -8 quick -7 brown -6 fox -5 jumps -4 over -3 the -2 lazy -1 dog -1 the quick brown fox jumps over the lazy dog -9 the -8 quick -7 brown -6 fox -5 jumps -4 over -3 the -2 lazy -1 dog -9 the -8 quick -7 brown -6 fox -5 jumps -4 over -3 the -2 lazy -1 dog -9 the -8 quick -7 brown -6 fox -5 jumps -4 over -3 the -2 lazy -1 dog -9 the -8 quick -7 brown -6 fox -5 jumps -4 over -3 the -2 lazy -1 dog -9 the -8 quick -7 brown -6 fox -5 jumps -4 over -3 the -2 lazy -1 dog -1 the quick brown fox jumps over the lazy dog -9 the -8 quick -7 brown -6 fox -5 jumps -4 over -3 the -2 lazy -1 dog -1 the quick brown fox jumps over the lazy dog diff -Nru cctools-7.0.22/ftsh/test/args.ftsh cctools-7.1.2/ftsh/test/args.ftsh --- cctools-7.0.22/ftsh/test/args.ftsh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/args.ftsh 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ - -function consume - while $# .gt. 0 - echo "$# $1" - shift - end -end - -function printit - consume $@ - consume "$@" - consume ${@} - consume "${@}" -end - -args="the quick brown fox jumps over the lazy dog" - -printit $args -printit "$args" -printit ${args} -printit "${args}" diff -Nru cctools-7.0.22/ftsh/test/expr.expect cctools-7.1.2/ftsh/test/expr.expect --- cctools-7.0.22/ftsh/test/expr.expect 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/expr.expect 1970-01-01 00:00:00.000000000 +0000 @@ -1,129 +0,0 @@ -ok -ok -ok -not a number --10 -39 -10 ok --9 -18 -9 ok --8 3 -8 ok --7 24 -7 ok --6 45 -6 ok --5 66 -5 ok --4 87 -4 ok --3 108 -3 ok --2 129 -2 ok --1 150 -1 ok -0 171 0 ok -1 192 1 ok -2 213 2 ok -3 234 3 ok -4 255 4 ok -5 276 5 ok -6 297 6 ok -7 318 7 ok -8 339 8 ok -9 360 9 ok -10 381 10 ok -1 1 ok -2 2 ok -3 3 ok -4 4 ok -5 5 ok -6 6 ok -7 7 ok -8 8 ok -9 9 ok -10 0 ok -11 1 ok -12 2 ok -13 3 ok -14 4 ok -15 5 ok -16 6 ok -17 7 ok -18 8 ok -19 9 ok --10 -9 -11 ok -not -10 -9 -10 ok --9 -8 -10 ok -not -9 -8 -9 ok --8 -7 -9 ok -not -8 -7 -8 ok --7 -6 -8 ok -not -7 -6 -7 ok --6 -5 -7 ok -not -6 -5 -6 ok --5 -4 -6 ok -not -5 -4 -5 ok --4 -3 -5 ok -not -4 -3 -4 ok --3 -2 -4 ok -not -3 -2 -3 ok --2 -1 -3 ok -not -2 -1 -2 ok --1 0 -2 ok -not -1 0 -1 ok -0 1 -1 ok -not 0 1 0 ok -1 2 0 ok -not 1 2 1 ok -2 3 1 ok -not 2 3 2 ok -3 4 2 ok -not 3 4 3 ok -4 5 3 ok -not 4 5 4 ok -5 6 4 ok -not 5 6 5 ok -6 7 5 ok -not 6 7 6 ok -7 8 6 ok -not 7 8 7 ok -8 9 7 ok -not 8 9 8 ok -9 10 8 ok -not 9 10 9 ok -10 11 9 ok -not 10 11 10 ok -true and true = true -true or true = true -not true = false -not true = false -true and false = false -true or false = true -not true = false -not false = true -false and true = false -false or true = true -not false = true -not true = false -false and false = false -false or false = false -not false = true -not false = true -a is unknown type -a exists -a is a file -a exists -a readable -a is a file -a exists -a writeable -a is a file -a exists -a executable -a is a file -g exists -g readable -g writeable -g executable -g is a dir -h exists -h readable -h writeable -h executable -h is a file -i exists -i readable -i writeable -i executable -i is a link diff -Nru cctools-7.0.22/ftsh/test/expr.ftsh cctools-7.1.2/ftsh/test/expr.ftsh --- cctools-7.0.22/ftsh/test/expr.ftsh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/expr.ftsh 1970-01-01 00:00:00.000000000 +0000 @@ -1,178 +0,0 @@ - -a=10 -b=21 -c=171 - -# -# string comparison -# - -if foo .eq. foo - echo "ok" -else - failure -end - -if foo .ne. baz - echo "ok" -else - failure -end - -# -# integer comparison -# - -if $a .eql. 10 - echo "ok" -else - failure -end - -try - if $a .eql. crap - echo "shouldn't return true" - else - echo "shouldn't return false" - end -catch - echo "not a number" -end - -# -# -# add sub mul div to eq -# - -for x in (0 .sub. $a) .to. $a - y=$x .mul. $b .add. $c - z=( $y .sub. $c ) .div. $b - if $x .eq. $z - echo $x $y $z ok - else - failure - end -end - -# -# mod lt eq to -# - -for x in 1 .to. 19 - y=$x .mod. 10 - if $x .lt. 10 - if $y .eq. $x - echo $x $y ok - else - failure - end - else - if $y .eq. ( $x .sub. 10 ) - echo $x $y ok - else - failure - end - end -end - -# gt lt and not - -for x in -10 .to. 10 - y=$x .add. 1 - z=$x .sub. 1 - if ( $y .gt. $x ) .and. ( $z .lt. $x ) - echo $x $y $z ok - else - failure - end - if .not. (( $y .gt. $x ) .and. ( $z .lt. $x )) - failure - else - echo not $x $y $x ok - end -end - -for a in true false - for b in true false - x=($a .and. $b) - y=($a .or. $b) - z=(.not. $a) - w=(.not. $b) - - echo "$a and $b = $x" - echo "$a or $b = $y" - echo "not $a = $z" - echo "not $b = $w" - end -end - -function testall - if .exists. $1 - echo "$1 exists" - end - if .isr. $1 - echo "$1 readable" - end - if .isw. $1 - echo "$1 writeable" - end - if .isx. $1 - echo "$1 executable" - end - - if .islink. $1 - echo "$1 is a link" - else if .isdir. $1 - echo "$1 is a dir" - else if .issock. $1 - echo "$1 is a socket" - else if .ispipe. $1 - echo "$1 is a pipe" - else if .isfile. $1 - echo "$1 is a file" - else if .isblock. $1 - echo "$1 is a block device" - else if .ischar. $1 - echo "$1 is a char device" - else - echo "$1 is unknown type" - end -end - -rm -rf a -testall a -touch a - -chmod 000 a -testall a - -chmod 400 a -testall a - -chmod 200 a -testall a - -chmod 100 a -testall a - -rm -rf g -mkdir g -chmod 700 g -testall g - -rm -rf h -touch h -chmod 700 h -testall h - -rm -rf i -ln -s h i -testall i - -# -# Skip fifos because they can't be tested everywhere. -# - -#rm -rf /tmp/k -#mkfifo /tmp/k -#testall /tmp/k diff -Nru cctools-7.0.22/ftsh/test/forall.expect cctools-7.1.2/ftsh/test/forall.expect --- cctools-7.0.22/ftsh/test/forall.expect 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/forall.expect 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -creating -creating -creating -compressing -compressing -compressing -deleting files -deleting files -deleting files -correct success diff -Nru cctools-7.0.22/ftsh/test/forall.ftsh cctools-7.1.2/ftsh/test/forall.ftsh --- cctools-7.0.22/ftsh/test/forall.ftsh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/forall.ftsh 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ - -# -# We'd like to do something really interesting like -# pinging a remote hosts, but that isn't likely to work -# in many private build situations. -# -# Instead, just pack and unpack some files. -# - -FILES="t1 t2 t3" -try - try for 30 seconds - forall file in ${FILES} - echo "creating" - cat $0 > ${file} - end - forall file in ${FILES} - echo "compressing" - gzip -f ${file} - end - forall file in ${FILES} - echo "deleting files" - rm -f ${file} ${file}.gz - end - end - echo "correct success" -catch - echo "incorrect failure" - failure -end diff -Nru cctools-7.0.22/ftsh/test/forany.expect cctools-7.1.2/ftsh/test/forany.expect --- cctools-7.0.22/ftsh/test/forany.expect 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/forany.expect 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -15 -correct success -correct failure diff -Nru cctools-7.0.22/ftsh/test/forany.ftsh cctools-7.1.2/ftsh/test/forany.ftsh --- cctools-7.0.22/ftsh/test/forany.ftsh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/forany.ftsh 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -# -# Figure out that 3*5 = 15 -# - -try - forany i in 1 2 3 4 5 - j=$i .mul. 5 - if $j .eq. 15 - echo "$j" - else - failure - end - end - echo "correct success" -catch - echo "incorrect failure" - failure -end - -# -# Without it, you can't find it. -# - -try - try for 5 seconds - forany i in 1 2 4 5 - j=$i .mul. 5 - if $j .eq. 15 - echo "$j" - else - failure - end - end - end - echo "incorrect success" -catch - echo "correct failure" -end diff -Nru cctools-7.0.22/ftsh/test/functions.expect cctools-7.1.2/ftsh/test/functions.expect --- cctools-7.0.22/ftsh/test/functions.expect 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/functions.expect 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -Removing /tmp/hosts.gz... -Copying /etc/hosts to /tmp/hosts... -Compressing /etc/hosts... -Removing /tmp/passwd.gz... -Copying /etc/passwd to /tmp/passwd... -Compressing /etc/passwd... -foo -bar -baz -foo bar baz - - -foo bar baz -three blind mice -monkey shines -Endless recursion was stopped correctly. diff -Nru cctools-7.0.22/ftsh/test/functions.ftsh cctools-7.1.2/ftsh/test/functions.ftsh --- cctools-7.0.22/ftsh/test/functions.ftsh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/functions.ftsh 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ - -# -# Test a simple function to copy some files around. -# - -function copy_and_compress - echo "Removing ${2}.gz..." - rm -f ${2}.gz - echo "Copying ${1} to ${2}..." - cp ${1} ${2} - echo "Compressing ${1}..." - gzip ${2} -end - -for name in /etc/hosts /etc/passwd - basename ${name} -> bname - copy_and_compress ${name} /tmp/${bname} -end - -# -# Check that argument passing respects quotation. -# - -function print_args - echo ${1} - echo ${2} - echo ${3} -end - -print_args foo bar baz -print_args "foo bar baz" -print_args 'foo bar baz' "three blind mice" monkey\ shines - -# -# Make sure that recursion is stopped at a respectable limit. -# - -function endless_recursion - endless_recursion -end - -try - endless_recursion - echo "Zoiks, endless recursion should have failed..." -catch - echo "Endless recursion was stopped correctly." -end diff -Nru cctools-7.0.22/ftsh/test/lists.expect cctools-7.1.2/ftsh/test/lists.expect --- cctools-7.0.22/ftsh/test/lists.expect 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/lists.expect 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -Assignment failed, as expected -Assignment succeeded, as expected -5 -10 -15 -20 -25 -30 -35 -40 -45 -50 -55 -60 -65 -70 -75 -80 -85 -90 -95 -100 -5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 diff -Nru cctools-7.0.22/ftsh/test/lists.ftsh cctools-7.1.2/ftsh/test/lists.ftsh --- cctools-7.0.22/ftsh/test/lists.ftsh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/lists.ftsh 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - -a="a b c" - -try - b=$a -catch - echo "Assignment failed, as expected" -end - -try - b="$a" - echo "Assignment succeeded, as expected" -end - -c=5 .to. 100 .step. 5 - -for x in $c - echo $x -end - -for x in "$c" - echo $x -end - -for n in 1 .to. 10 - echo $n -end - -for n in 10 .to. 1 - echo $n -end diff -Nru cctools-7.0.22/ftsh/test/loops.expect cctools-7.1.2/ftsh/test/loops.expect --- cctools-7.0.22/ftsh/test/loops.expect 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/loops.expect 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -three -blind -mice -four -fat -cats -four fat cats -01 02 03 04 05 06 07 08 09 -02 04 06 08 10 12 14 16 18 -03 06 09 12 15 18 21 24 27 -04 08 12 16 20 24 28 32 36 -05 10 15 20 25 30 35 40 45 -06 12 18 24 30 36 42 48 54 -08 16 24 32 40 48 56 64 72 -09 18 27 36 45 54 63 72 81 diff -Nru cctools-7.0.22/ftsh/test/loops.ftsh cctools-7.1.2/ftsh/test/loops.ftsh --- cctools-7.0.22/ftsh/test/loops.ftsh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/loops.ftsh 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ - -# -# Print three words separately -# - -for name in three blind mice - echo ${name} -end - -# -# Treat each word in the variable separately -# - -WORDS="four fat cats" -for name in ${WORDS} - echo ${name} -end - -# -# Treat the variable as one word -# - -for name in "${WORDS}" - echo ${name} -end - -# -# Build a multiplication table. -# - -for i in 1 2 3 4 5 6 8 9 - for j in 1 2 3 4 5 6 7 8 9 - k=${i} .mul. ${j} - printf "%02d " ${k} - end - echo "" -end diff -Nru cctools-7.0.22/ftsh/test/Makefile cctools-7.1.2/ftsh/test/Makefile --- cctools-7.0.22/ftsh/test/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -include ../../Makefile.config -include ../../Makefile.rules - -TESTS = quotes variables loops recurse functions args try forany forall lists expr - -all: - -test: $(TESTS) - -$(TESTS): ../src/ftsh - @echo "Parsing $@..." - @../src/ftsh -p $@.ftsh 2>$@.parsed.err > $@.parsed - @echo "Reparsing $@..." - @../src/ftsh -p $@.parsed 2>$@.reparsed.err > $@.reparsed - @echo "Running test $@..." - @../src/ftsh -l 100 -f $@.log $@.ftsh > $@.out 2> $@.err - @echo "Checking output of test $@..." - @diff $@.out $@.expect - @touch $@ - @echo "Passed." - -install: - -clean: - rm -rf *.out *.err *.log *.parsed *.reparsed a g h i $(TESTS) diff -Nru cctools-7.0.22/ftsh/test/quotes.expect cctools-7.1.2/ftsh/test/quotes.expect --- cctools-7.0.22/ftsh/test/quotes.expect 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/quotes.expect 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -three unquoted args - - -these are double quoted -these are single quoted -spaces betweeen args -'single in double' -"double in single" -"backwhacked doubles" in doubles -'backwhacked singles' in doubles -"backwhacked doubles" in singles -'backwhacked singles' in singles -backwhacked spaces between args -backwhacked weird stuff like pipe | semicolon ; arrow > < ampersand & diff -Nru cctools-7.0.22/ftsh/test/quotes.ftsh cctools-7.1.2/ftsh/test/quotes.ftsh --- cctools-7.0.22/ftsh/test/quotes.ftsh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/quotes.ftsh 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ - -# -# Try all of the variations on quotation. -# - -echo three unquoted args -echo "" -echo '' -echo "these" "are" "double" "quoted" -echo 'these' 'are' 'single' 'quoted' -echo "spaces" "betweeen" "args" -echo "'single in double'" -echo '"double in single"' -echo "\"backwhacked doubles\" in doubles" -echo "\'backwhacked singles\' in doubles" -echo '\"backwhacked doubles\" in singles' -echo '\'backwhacked singles\' in singles' -echo backwhacked\ spaces\ between\ args -echo backwhacked weird stuff like pipe \| semicolon \; arrow \> \< ampersand \& diff -Nru cctools-7.0.22/ftsh/test/recurse.expect cctools-7.1.2/ftsh/test/recurse.expect --- cctools-7.0.22/ftsh/test/recurse.expect 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/recurse.expect 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Script terminated, success! diff -Nru cctools-7.0.22/ftsh/test/recurse.ftsh cctools-7.1.2/ftsh/test/recurse.ftsh --- cctools-7.0.22/ftsh/test/recurse.ftsh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/recurse.ftsh 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!../src/ftsh - -# -# This script recurses on itself until the -# outermost time limit is reached, whereupon it -# will start to kill itself. -# - -try - try for 5 seconds - # - # Sleep a little bit so as not to create - # thousands of sub-processes. - # - sleep 1 - ./recurse.ftsh - end - echo "Zoiks, it accidentally succeeded!" -catch - echo "Script terminated, success!" -end diff -Nru cctools-7.0.22/ftsh/test/try.expect cctools-7.1.2/ftsh/test/try.expect --- cctools-7.0.22/ftsh/test/try.expect 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/try.expect 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -Not too hard. -Try did not expire, as expected. -Try failed as expected. -Try eventually succeeded, as expected -Testing -Testing -Testing -Testing -Testing -Testing -Testing -Testing -Testing -Testing -Testing -Testing diff -Nru cctools-7.0.22/ftsh/test/try.ftsh cctools-7.1.2/ftsh/test/try.ftsh --- cctools-7.0.22/ftsh/test/try.ftsh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/try.ftsh 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ - -# -# A really trivial try block -# - -try for 10 seconds - echo "Not too hard." -end - -# -# This try should always succeed -# - -try - try for 10 seconds - sleep 1 - end - echo "Try did not expire, as expected." -catch - echo "Try expired incorrectly!" - failure -end - -# -# This try should always fail -# - -try - try for 1 second - sleep 10 - end - echo "Try should not have succeeded!." -catch - echo "Try failed as expected." -end - -# -# This try should succeed after several times through -# - -try - tm=6 - - try for 10 times - newtm=${tm} .sub. 1 - tm=${newtm} - try for 3 seconds - sleep ${tm} - end - end - echo "Try eventually succeeded, as expected" -catch - echo "Try failed unexpectedly." - failure -end - -# -# Test lots of variations on syntax -# - -try 1 time 10 seconds - echo "Testing" -end - -try for 1 time 10 seconds - echo "Testing" -end - -try 1 time or 10 seconds - echo "Testing" -end - -try for 1 time or 10 seconds - echo "Testing" -end - -try 10 seconds 1 time - echo "Testing" -end - -try for 10 seconds 1 time - echo "Testing" -end - -try 10 seconds or 1 time - echo "Testing" -end - -try for 10 seconds or 1 time - echo "Testing" -end - -try for 10 seconds or 1 time - echo "Testing" -end - -try for 10 seconds or 1 time - echo "Testing" -end - -try 10 seconds or 1 time every 10 seconds - echo "Testing" -end - -try 1 time or 10 seconds every 10 seconds - echo "Testing" -end diff -Nru cctools-7.0.22/ftsh/test/variables.expect cctools-7.1.2/ftsh/test/variables.expect --- cctools-7.0.22/ftsh/test/variables.expect 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/variables.expect 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is value -name is quoted -name is quoted -name is quoted -name is quoted -name is quoted -name is quoted -name is quoted value -name is quoted value -name is quoted value -name is quoted value -name is quoted value -name is quoted value -name is quoted -name is quoted -name is quoted -name is quoted -name is quoted -name is quoted -name is quoted value -name is quoted value -name is quoted value -name is quoted value -name is quoted value -name is quoted value -name is hello -name is hello -name is hello -name is hello -name is hello -name is hello -name is hello dolly -name is hello dolly -name is hello dolly -name is hello dolly -name is hello dolly -name is hello dolly -name is hello -name is hello -name is hello -name is hello -name is hello -name is hello -name is hello dolly -name is hello dolly -name is hello dolly -name is hello dolly -name is hello dolly -name is hello dolly diff -Nru cctools-7.0.22/ftsh/test/variables.ftsh cctools-7.1.2/ftsh/test/variables.ftsh --- cctools-7.0.22/ftsh/test/variables.ftsh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/ftsh/test/variables.ftsh 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ - -# -# Check that variables can be set, examined, -# and redirected as files. -# - -function printit - echo "name is ${1}" - echo name is ${1} - echo "name" "is" "$1" - echo "name is $1" - echo name is $1 - echo "name" "is" "$1" -end - -name=value -printit ${name} -printit "${name}" -printit $name -printit "$name" - -name="quoted value" -printit ${name} -printit "${name}" -printit $name -printit "$name" - -echo hello dolly -> v -sort -< v -> sv - -printit ${v} -printit "${v}" -printit $v -printit "$v" diff -Nru cctools-7.0.22/galaxy/cctools.py cctools-7.1.2/galaxy/cctools.py --- cctools-7.0.22/galaxy/cctools.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/galaxy/cctools.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,562 +0,0 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 -CCTools datatypes - -""" -import pkg_resources -pkg_resources.require( "bx-python" ) -import gzip -import logging -import os -from cgi import escape -from galaxy import util -from galaxy.datatypes import data -from galaxy.datatypes import metadata -from galaxy.datatypes.checkers import is_gzip -from galaxy.datatypes.metadata import MetadataElement -from galaxy.datatypes.sniff import get_headers, get_test_fname -from galaxy.util.json import to_json_string -import dataproviders - -log = logging.getLogger(__name__) - -@dataproviders.decorators.has_dataproviders -class cctools( data.Text ): - """CCTools Log Data""" - - # All tabular data is chunkable. - CHUNKABLE = True - CHUNK_SIZE = 50000 - - """Add metadata elements""" - MetadataElement( name="comment_lines", default=0, desc="Number of comment lines", readonly=False, optional=True, no_value=0 ) - MetadataElement( name="columns", default=0, desc="Number of columns", readonly=True, visible=False, no_value=0 ) - MetadataElement( name="column_types", default=[], desc="Column types", param=metadata.ColumnTypesParameter, readonly=True, visible=False, no_value=[] ) - MetadataElement( name="column_names", default=[], desc="Column names", readonly=True, visible=False, optional=True, no_value=[] ) - - def init_meta( self, dataset, copy_from=None ): - data.Text.init_meta( self, dataset, copy_from=copy_from ) - def set_meta( self, dataset, overwrite = True, skip = None, max_data_lines = 100000, max_guess_type_data_lines = None, **kwd ): - """ - Tries to determine the number of columns as well as those columns that - contain numerical values in the dataset. A skip parameter is used - because various tabular data types reuse this function, and their data - type classes are responsible to determine how many invalid comment - lines should be skipped. Using None for skip will cause skip to be - zero, but the first line will be processed as a header. A - max_data_lines parameter is used because various tabular data types - reuse this function, and their data type classes are responsible to - determine how many data lines should be processed to ensure that the - non-optional metadata parameters are properly set; if used, optional - metadata parameters will be set to None, unless the entire file has - already been read. Using None for max_data_lines will process all data - lines. - - Items of interest: - - 1. We treat 'overwrite' as always True (we always want to set tabular metadata when called). - 2. If a tabular file has no data, it will have one column of type 'str'. - 3. We used to check only the first 100 lines when setting metadata and this class's - set_peek() method read the entire file to determine the number of lines in the file. - Since metadata can now be processed on cluster nodes, we've merged the line count portion - of the set_peek() processing here, and we now check the entire contents of the file. - """ - # Store original skip value to check with later - requested_skip = skip - if skip is None: - skip = 0 - column_type_set_order = [ 'int', 'float', 'list', 'str' ] #Order to set column types in - default_column_type = column_type_set_order[-1] # Default column type is lowest in list - column_type_compare_order = list( column_type_set_order ) #Order to compare column types - column_type_compare_order.reverse() - def type_overrules_type( column_type1, column_type2 ): - if column_type1 is None or column_type1 == column_type2: - return False - if column_type2 is None: - return True - for column_type in column_type_compare_order: - if column_type1 == column_type: - return True - if column_type2 == column_type: - return False - #neither column type was found in our ordered list, this cannot happen - raise "Tried to compare unknown column types" - def is_int( column_text ): - try: - int( column_text ) - return True - except: - return False - def is_float( column_text ): - try: - float( column_text ) - return True - except: - if column_text.strip().lower() == 'na': - return True #na is special cased to be a float - return False - def is_list( column_text ): - return "," in column_text - def is_str( column_text ): - #anything, except an empty string, is True - if column_text == "": - return False - return True - is_column_type = {} #Dict to store column type string to checking function - for column_type in column_type_set_order: - is_column_type[column_type] = locals()[ "is_%s" % ( column_type ) ] - def guess_column_type( column_text ): - for column_type in column_type_set_order: - if is_column_type[column_type]( column_text ): - return column_type - return None - data_lines = 0 - comment_lines = 0 - column_types = [] - first_line_column_types = [default_column_type] # default value is one column of type str - if dataset.has_data(): - #NOTE: if skip > num_check_lines, we won't detect any metadata, and will use default - dataset_fh = open( dataset.file_name ) - i = 0 - while True: - line = dataset_fh.readline() - if not line: break - line = line.rstrip( '\r\n' ) - if i < skip or not line or line.startswith( '#' ): - # We'll call blank lines comments - comment_lines += 1 - else: - data_lines += 1 - if max_guess_type_data_lines is None or data_lines <= max_guess_type_data_lines: - fields = line.split() - for field_count, field in enumerate( fields ): - if field_count >= len( column_types ): #found a previously unknown column, we append None - column_types.append( None ) - column_type = guess_column_type( field ) - if type_overrules_type( column_type, column_types[field_count] ): - column_types[field_count] = column_type - if i == 0 and requested_skip is None: -# This is our first line, people seem to like to upload files that have a header line, but do not -# start with '#' (i.e. all column types would then most likely be detected as str). We will assume -# that the first line is always a header (this was previous behavior - it was always skipped). When -# the requested skip is None, we only use the data from the first line if we have no other data for -# a column. This is far from perfect, as -# 1,2,3 1.1 2.2 qwerty -# 0 0 1,2,3 -# will be detected as -# "column_types": ["int", "int", "float", "list"] -# instead of -# "column_types": ["list", "float", "float", "str"] *** would seem to be the 'Truth' by manual -# observation that the first line should be included as data. The old method would have detected as -# "column_types": ["int", "int", "str", "list"] - first_line_column_types = column_types - column_types = [ None for col in first_line_column_types ] - if max_data_lines is not None and data_lines >= max_data_lines: - if dataset_fh.tell() != dataset.get_size(): - data_lines = None #Clear optional data_lines metadata value - comment_lines = None #Clear optional comment_lines metadata value; additional comment lines could appear below this point - break - i += 1 - dataset_fh.close() - - #we error on the larger number of columns - #first we pad our column_types by using data from first line - if len( first_line_column_types ) > len( column_types ): - for column_type in first_line_column_types[len( column_types ):]: - column_types.append( column_type ) - #Now we fill any unknown (None) column_types with data from first line - for i in range( len( column_types ) ): - if column_types[i] is None: - if len( first_line_column_types ) <= i or first_line_column_types[i] is None: - column_types[i] = default_column_type - else: - column_types[i] = first_line_column_types[i] - # Set the discovered metadata values for the dataset - dataset.metadata.data_lines = data_lines - dataset.metadata.comment_lines = comment_lines - dataset.metadata.column_types = column_types - dataset.metadata.columns = len( column_types ) - def make_html_table( self, dataset, **kwargs ): - """Create HTML table, used for displaying peek""" - out = [''] - try: - out.append( self.make_html_peek_header( dataset, **kwargs ) ) - out.append( self.make_html_peek_rows( dataset, **kwargs ) ) - out.append( '
    ' ) - out = "".join( out ) - except Exception, exc: - out = "Can't create peek %s" % str( exc ) - return out - - def make_html_peek_header( self, dataset, skipchars=None, column_names=None, column_number_format='%s', column_parameter_alias=None, **kwargs ): - if skipchars is None: - skipchars = [] - if column_names is None: - column_names = [] - if column_parameter_alias is None: - column_parameter_alias = {} - out = [] - try: - if not column_names and dataset.metadata.column_names: - column_names = dataset.metadata.column_names - - column_headers = [None] * dataset.metadata.columns - - # fill in empty headers with data from column_names - for i in range( min( dataset.metadata.columns, len( column_names ) ) ): - if column_headers[i] is None and column_names[i] is not None: - column_headers[i] = column_names[i] - - # fill in empty headers from ColumnParameters set in the metadata - for name, spec in dataset.metadata.spec.items(): - if isinstance( spec.param, metadata.ColumnParameter ): - try: - i = int( getattr( dataset.metadata, name ) ) - 1 - except: - i = -1 - if 0 <= i < dataset.metadata.columns and column_headers[i] is None: - column_headers[i] = column_parameter_alias.get(name, name) - - out.append( '' ) - for i, header in enumerate( column_headers ): - out.append( '' ) - if header is None: - out.append( column_number_format % str( i + 1 ) ) - else: - out.append( '%s.%s' % ( str( i + 1 ), escape( header ) ) ) - out.append( '' ) - out.append( '' ) - except Exception, exc: - raise Exception, "Can't create peek header %s" % str( exc ) - return "".join( out ) - - def make_html_peek_rows( self, dataset, skipchars=None, **kwargs ): - if skipchars is None: - skipchars = [] - out = [] - try: - if not dataset.peek: - dataset.set_peek() - for line in dataset.peek.splitlines(): - if line.startswith( tuple( skipchars ) ): - #out.append( '%s' % escape( line ) ) - test = "test" - elif line: - elems = line.split( '\t' ) - # we may have an invalid comment line or invalid data - if len( elems ) != dataset.metadata.columns: - # out.append( '%s' % escape( line ) ) - test = "test" - else: - out.append( '' ) - for elem in elems: - out.append( '%s' % escape( elem ) ) - out.append( '' ) - except Exception, exc: - raise Exception, "Can't create peek rows %s" % str( exc ) - return "".join( out ) - - def get_chunk(self, trans, dataset, chunk): - ck_index = int(chunk) - f = open(dataset.file_name) - f.seek(ck_index * self.CHUNK_SIZE) - # If we aren't at the start of the file, seek to next newline. Do this better eventually. - if f.tell() != 0: - cursor = f.read(1) - while cursor and cursor != '\n': - cursor = f.read(1) - ck_data = f.read(self.CHUNK_SIZE) - cursor = f.read(1) - while cursor and ck_data[-1] != '\n': - ck_data += cursor - cursor = f.read(1) - return to_json_string( { 'ck_data': util.unicodify( ck_data ), 'ck_index': ck_index + 1 } ) - - def display_data(self, trans, dataset, preview=False, filename=None, to_ext=None, chunk=None): - preview = util.string_as_bool( preview ) - if chunk: - return self.get_chunk(trans, dataset, chunk) - elif to_ext or not preview: - return self._serve_raw(trans, dataset, to_ext) - elif dataset.metadata.columns > 50: - #Fancy tabular display is only suitable for datasets without an incredibly large number of columns. - #We should add a new datatype 'matrix', with it's own draw method, suitable for this kind of data. - #For now, default to the old behavior, ugly as it is. Remove this after adding 'matrix'. - max_peek_size = 1000000 # 1 MB - if os.stat( dataset.file_name ).st_size < max_peek_size: - return open( dataset.file_name ) - else: - trans.response.set_content_type( "text/html" ) - return trans.stream_template_mako( "/dataset/large_file.mako", - truncated_data = open( dataset.file_name ).read(max_peek_size), - data = dataset) - else: - column_names = 'null' - if dataset.metadata.column_names: - column_names = dataset.metadata.column_names - elif hasattr(dataset.datatype, 'column_names'): - column_names = dataset.datatype.column_names - column_types = dataset.metadata.column_types - if not column_types: - column_types = [] - column_number = dataset.metadata.columns - if column_number is None: - column_number = 'null' - return trans.fill_template( "/dataset/tabular_chunked.mako", - dataset = dataset, - chunk = self.get_chunk(trans, dataset, 0), - column_number = column_number, - column_names = column_names, - column_types = column_types ) - - def set_peek( self, dataset, line_count=None, is_multi_byte=False): - super(cctools, self).set_peek( dataset, line_count=line_count, is_multi_byte=is_multi_byte) - if dataset.metadata.comment_lines: - dataset.blurb = "%s, %s comments" % ( dataset.blurb, util.commaify( str( dataset.metadata.comment_lines ) ) ) - def display_peek( self, dataset ): - """Returns formatted html of peek""" - return self.make_html_table( dataset ) - def displayable( self, dataset ): - try: - return dataset.has_data() \ - and dataset.state == dataset.states.OK \ - and dataset.metadata.columns > 0 \ - and dataset.metadata.data_lines != 0 - except: - return False - def as_gbrowse_display_file( self, dataset, **kwd ): - return open( dataset.file_name ) - def as_ucsc_display_file( self, dataset, **kwd ): - return open( dataset.file_name ) - - def get_visualizations( self, dataset ): - """ - Returns a list of visualizations for datatype. - """ - # Can visualize tabular data as scatterplot if there are 2+ numerical - # columns. - num_numerical_cols = 0 - if dataset.metadata.column_types: - for col_type in dataset.metadata.column_types: - if col_type in [ 'int', 'float' ]: - num_numerical_cols += 1 - - vizs = super( cctools, self ).get_visualizations( dataset ) - if num_numerical_cols >= 2: - vizs.append( 'scatterplot' ) - - return vizs - - # ------------- Dataproviders - @dataproviders.decorators.dataprovider_factory( 'column', dataproviders.column.ColumnarDataProvider.settings ) - def column_dataprovider( self, dataset, **settings ): - """Uses column settings that are passed in""" - dataset_source = dataproviders.dataset.DatasetDataProvider( dataset ) - return dataproviders.column.ColumnarDataProvider( dataset_source, **settings ) - - @dataproviders.decorators.dataprovider_factory( 'dataset-column', - dataproviders.column.ColumnarDataProvider.settings ) - def dataset_column_dataprovider( self, dataset, **settings ): - """Attempts to get column settings from dataset.metadata""" - return dataproviders.dataset.DatasetColumnarDataProvider( dataset, **settings ) - - @dataproviders.decorators.dataprovider_factory( 'dict', dataproviders.column.DictDataProvider.settings ) - def dict_dataprovider( self, dataset, **settings ): - """Uses column settings that are passed in""" - dataset_source = dataproviders.dataset.DatasetDataProvider( dataset ) - return dataproviders.column.DictDataProvider( dataset_source, **settings ) - - @dataproviders.decorators.dataprovider_factory( 'dataset-dict', dataproviders.column.DictDataProvider.settings ) - def dataset_dict_dataprovider( self, dataset, **settings ): - """Attempts to get column settings from dataset.metadata""" - return dataproviders.dataset.DatasetDictDataProvider( dataset, **settings ) - - -@dataproviders.decorators.has_dataproviders -class MakeflowLog( cctools ): - file_ext = 'makeflowlog' - skipchars = ['#'] - - def __init__(self, **kwd): - """Initialize taxonomy datatype""" - cctools.__init__( self, **kwd ) - self.column_names = ['Timestamp', 'NodeId', 'NewState', 'JobId', - 'NodesWaiting', 'NodesRunning', 'NodesComplete', - 'NodesFailed', 'NodesAborted', 'NodeIdCounter' - ] - def display_peek( self, dataset ): - """Returns formated html of peek""" - return cctools.make_html_table( self, dataset, column_names=self.column_names ) - - def sniff( self, filename ): - """ - Determines whether the file is in MakeflowLog format - - >>> fname = get_test_fname( 'sequence.maf' ) - >>> MakeflowLog().sniff( fname ) - False - >>> fname = get_test_fname( '1.makeflowlog' ) - >>> MakeflowLog().sniff( fname ) - True - """ - try: - fh = open( filename ) - count = 0 - started = False - while True: - line = fh.readline() - line = line.strip() - if not line: - break #EOF - if line: - linePieces = line.split('\t') - if line[0] == '#': - if linePieces[1] == 'STARTED': - started = True - elif linePieces[1] == 'COMPLETED': - started = False - elif started: - if len(linePieces) < 10: - return False - try: - check = int(linePieces[1]) - check = int(linePieces[2]) - check = int(linePieces[3]) - check = int(linePieces[4]) - check = int(linePieces[5]) - check = int(linePieces[6]) - check = int(linePieces[7]) - check = int(linePieces[8]) - except ValueError: - return False - count += 1 - if count == 5: - return True - fh.close() - if count < 5 and count > 0: - return True - except: - pass - return False - - def set_meta( self, dataset, overwrite = True, skip = None, max_data_lines = 5, **kwd ): - if dataset.has_data(): - dataset_fh = open( dataset.file_name ) - comment_lines = 0 - if self.max_optional_metadata_filesize >= 0 and dataset.get_size() > self.max_optional_metadata_filesize: - # If the dataset is larger than optional_metadata, just count comment lines. - for i, l in enumerate(dataset_fh): - if l.startswith('#'): - comment_lines += 1 - else: - # No more comments, and the file is too big to look at the whole thing. Give up. - dataset.metadata.data_lines = None - break - else: - # Otherwise, read the whole thing and set num data lines. - for i, l in enumerate(dataset_fh): - if l.startswith('#'): - comment_lines += 1 - dataset.metadata.data_lines = i + 1 - comment_lines - dataset_fh.close() - dataset.metadata.comment_lines = comment_lines - dataset.metadata.columns = 10 - dataset.metadata.column_types = ['str', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'] - - - - -@dataproviders.decorators.has_dataproviders -class WorkQueueLog( cctools ): - file_ext = 'wqlog' - skipchars = ['#'] - - def __init__(self, **kwd): - """Initialize taxonomy datatype""" - cctools.__init__( self, **kwd ) - self.column_names = ['Timestamp', 'TotalWorkersConnected', 'WorkersInit', - 'WorkersIdle', 'WorkersBusy', 'TotalWorkersJoined', - 'TotalWorkersRemoved', 'TasksWaiting', 'TasksRunning', - 'TasksComplete', 'TotalTasksDispatched', 'TotalTasksComplete', - 'TotalTasksCancelled', 'StartTime', 'TotalSendTime', - 'TotalReceiveTime', 'TotalBytesSent', 'TotalBytesReceived', - 'Efficiency', 'IdlePercentage', 'Capacity', 'Bandwidth', - 'TotalCores', 'TotalMemory', 'TotalDisk', 'TotalGPUs', - 'MinCores', 'MaxCores', 'MinMemory', 'MaxMemory', - 'MinDisk', 'MaxDisk', 'MinGPUs', 'MaxGPUs' - ] - def display_peek( self, dataset ): - """Returns formated html of peek""" - return cctools.make_html_table( self, dataset, column_names=self.column_names ) - - def sniff( self, filename ): - """ - Determines whether the file is in WorkQueue log format - - >>> fname = get_test_fname( 'sequence.wq' ) - >>> WorkQueueLog().sniff( fname ) - False - >>> fname = get_test_fname( '1.wqlog' ) - >>> WorkQueueLog().sniff( fname ) - True - """ - try: - fh = open( filename ) - count = 0 - while True: - line = fh.readline() - line = line.strip() - if not line: - break #EOF - if line: - if line[0] != '#': - linePieces = line.split('\t') - if len(linePieces) < 34: - return False - try: - check = str(linePieces[1]) - check = int(linePieces[3]) - check = int(linePieces[4]) - check = int(linePieces[7]) - check = int(linePieces[8]) - except ValueError: - return False - count += 1 - if count == 5: - return True - fh.close() - if count < 5 and count > 0: - return True - except: - pass - return False - - def set_meta( self, dataset, overwrite = True, skip = None, max_data_lines = 5, **kwd ): - if dataset.has_data(): - dataset_fh = open( dataset.file_name ) - comment_lines = 0 - if self.max_optional_metadata_filesize >= 0 and dataset.get_size() > self.max_optional_metadata_filesize: - # If the dataset is larger than optional_metadata, just count comment lines. - for i, l in enumerate(dataset_fh): - if l.startswith('#'): - comment_lines += 1 - else: - # No more comments, and the file is too big to look at the whole thing. Give up. - dataset.metadata.data_lines = None - break - else: - # Otherwise, read the whole thing and set num data lines. - for i, l in enumerate(dataset_fh): - if l.startswith('#'): - comment_lines += 1 - dataset.metadata.data_lines = i + 1 - comment_lines - dataset_fh.close() - dataset.metadata.comment_lines = comment_lines - dataset.metadata.columns = 34 - dataset.metadata.column_types = ['str', 'int', 'int', 'int', 'int', - 'int', 'int', 'int', 'int', 'int', - 'int', 'int', 'int', 'int', 'int', - 'int', 'int', 'int', 'int', 'int', - 'int', 'int', 'int', 'int', 'int', - 'int', 'int', 'int', 'int', 'int', - 'int', 'int', 'int', 'int', 'int', 'int'] diff -Nru cctools-7.0.22/galaxy/INSTALL cctools-7.1.2/galaxy/INSTALL --- cctools-7.0.22/galaxy/INSTALL 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/galaxy/INSTALL 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ -This install file goes through the steps needed to include makeflow_bwa and makeflow_gatk as -tools in a Galaxy instance. The tools currently rely on dependencies in specific locations, -which is described in the file below. Following the INSTALL instruction from the top provides -the correct install, and lines can be copied and pasted onto the commandline for easier -install. Once the installation is successful and the Galaxy instance is restarted the tools are ready. - -When running a tool, workers are required in order for the jobs to be completed. The last -section of this INSTALL show two different methods of creating workers, though the pool is -recommended to have/create workers for users that are not familiar with Work Queue. To -understand this better, view Work Queue at http://ccl.cse.nd.edu/software/workqueue/. - -# Within galaxy-dist -cd tool-data/shared/ -# Get recent cctools distribution: -wget https://github.com/cooperative-computing-lab/cctools/archive/master.zip -unzip master.zip -mkdir cctools -mv cctools-*/* cctools-*/.[^.]* cctools -cd cctools -./configure --prefix $PWD -make install -# Verify that no errors occurred. -# Move to galaxy_dist directory -cd ../../.. -cp ./tool-data/shared/cctools/galaxy/cctools.py ./lib/galaxy/datatypes/ - -perl ./tool-data/shared/cctools/galaxy/modify_registry.pl ./lib/galaxy/datatypes/registry.py -mv tmp_registry ./lib/galaxy/datatypes/registry.py - -mkdir tools/ndBioapps -cp ./tool-data/shared/cctools/galaxy/makeflow* ./tools/ndBioapps - -perl ./tool-data/shared/cctools/galaxy/modify_tool_conf.pl ./config/tool_conf.xml.sample -mv tmp_tool_conf ./config/tool_conf.xml.sample - -# Change galaxy_pass to your preferred password. -echo "galaxy_pass" > tool-data/mypwfile - - -# Get GATK from https://www.broadinstitute.org/gatk/download -# Move to tool-data/shared/jars/gatk/GenomeAnalysisTK.jar - -# INSTALL Picard -cd tool-data/shared -wget https://github.com/broadinstitute/picard/zipball/master -unzip master -mkdir picard -mv broadinstitute-picard-*/* broadinstitute-picard-*/.[^.]* picard -cd picard -git clone https://github.com/samtools/htsjdk.git - -# $JAVA_HOME must be pointing to a JDK, preferrably for 1.6, but it is compatible with 1.7 -ant - -# Clean -cd .. -rm master -rmdir broadinstitute-picard-*/ -cd ../.. - -#INSTALL samtools -cd tool-data/shared -wget http://sourceforge.net/projects/samtools/files/latest/download -tar jxf download -mkdir samtools -mv samtools-*/* samtools -cd samtools -make -cd .. -rm download -rmdir samtools-*/ -cd ../.. - -# INSTALL VCFTools -cd tool-data/shared -wget http://sourceforge.net/projects/vcftools/files/latest/download -tar zxf download -mkdir vcftools -mv vcftools_*/* vcftools -cd vcftools -make -# Should be added to path at startup -export PERL5LIB=$PWD/perl/ -cd .. -rm download -rmdir vcftools_*/ -cd ../.. - -# INSTALL Java 1.7 -cd tool-data/shared -mkdir java -cd java -wget http://javadl.sun.com/webapps/download/AutoDL?BundleId=97800 -tar zxf AutoDL* -mkdir jre -mv jre1*/* jre -rmdir jre1* -zip -r jre.zip jre/* -cd ../../.. - -Note: You must create workers using the batch utility of your choice for the tools to run. Work Queue commands are located in the cctools bin directory at tool-data/shared/cctools/bin - -Submit workers for a particular job: -*_submit_workers -N galaxy_\.\* #_of_workers --password path/to/mypwfile - -Create worker pool -work_queue_factory -T batch_system -N galaxy_\.\* --password path/to/mypwfile –w -W diff -Nru cctools-7.0.22/galaxy/makeflow_bwa_wrapper.py cctools-7.1.2/galaxy/makeflow_bwa_wrapper.py --- cctools-7.0.22/galaxy/makeflow_bwa_wrapper.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/galaxy/makeflow_bwa_wrapper.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - -# This program implements a distributed version of BWA, using Makeflow and WorkQueue - -# Author: Olivia Choudhury -# Date: 09/03/2013 - - -import optparse, os, sys, tempfile, shutil, stat - -class PassThroughParser(optparse.OptionParser): - def _process_args(self, largs, rargs, values): - while rargs: - try: - optparse.OptionParser._process_args(self,largs,rargs,values) - except (optparse.BadOptionError,optparse.AmbiguousOptionError), e: - largs.append(e.opt_str) - - -#Parse Command Line -parser = PassThroughParser() -parser.add_option('', '--ref', dest="ref", type="string") - -parser.add_option('', '--fastq', dest="fastq", type="string") -parser.add_option('', '--rfastq', dest="rfastq", type="string") - -parser.add_option('', '--output_SAM', dest="outsam", type="string") - -parser.add_option('', '--output_log', dest="outlog", type="string") -parser.add_option('', '--wq_log', dest="wqlog", type="string") -parser.add_option('', '--output_dblog', dest="dblog", type="string") -parser.add_option('', '--output_err', dest="outerr", type="string") - -parser.add_option('', '--pwfile', dest="pwfile", type="string") - -parser.add_option('', '--user_id', dest="uid", type="string") -parser.add_option('', '--user_job', dest="ujob", type="string") - -(options, args) = parser.parse_args() - -# SETUP ENVIRONMENT VARIABLES - -cur_dir = os.getcwd() -job_num = os.path.basename(cur_dir); - -cctools_dir = options.cctools - -makeflow='Makeflow' -wq_project_name="galaxy_bwa_"+options.uid+"_"+job_num -wq_password=options.pwfile - -output_sam = "output_SAM" - -makeflow_log = "makeflow_log" -wq_log = "wq_log" -debug_log = "debug_log" -output_err = "output_err" - -# CREATE TMP AND MOVE FILES IN - -if options.ref: - os.symlink(options.ref, "./reference.fa") -else: - print "No reference provided" - sys.exit(1) - -inputs = "--ref reference.fa " - -os.symlink(options.fastq, "./fastq.fq") -inputs += "--fastq fastq.fq " - -if options.rfastq: - os.symlink(options.rfastq, "./rfastq.fq") - inputs += "--rfastq rfastq.fq " - -os.system("makeflow_bwa --algoalign {0} {1} --makeflow {2} --output_SAM {3} {4}".format( - "bwa_backtrack", inputs, makeflow, output_sam, ' '.join(args))) - -os.system("makeflow {0} -T wq -N {1} -J 50 -p 0 -l {2} -L {3} -dall -o {4} --password {5} >&1 2>&1".format( - makeflow, wq_project_name, makeflow_log, wq_log, debug_log, options.pwfile)) - -if options.dblog: - shutil.copyfile(debug_log, options.dblog) - -if options.outlog: - shutil.copyfile(makeflow_log, options.outlog) - -if options.wqlog: - shutil.copyfile(wq_log, options.wqlog) - -shutil.copyfile(output_sam, options.outsam) - -os.system(cctools_dir+'/bin/makeflow -c') -os.remove("./reference.fa") -os.remove("./fastq.fq") -os.remove("./makeflow_bwa") -os.remove("./bwa") -if options.rfastq: - os.remove("./rfastq.fq") diff -Nru cctools-7.0.22/galaxy/makeflow_bwa_wrapper.xml cctools-7.1.2/galaxy/makeflow_bwa_wrapper.xml --- cctools-7.0.22/galaxy/makeflow_bwa_wrapper.xml 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/galaxy/makeflow_bwa_wrapper.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,336 +0,0 @@ - - A Distributed version of BWA using Makeflow - - makeflow_bwa_wrapper.py - - --user_id=$__user_id__ - --pwfile=${GALAXY_DATA_INDEX_DIR}/mypwfile - --ref=$reference - --num_seq=$num_seq - - --fastq=$paired.input1 - #if $paired.sPaired == "paired": - --rfastq=$paired.input2 - #end if - - --output_SAM=$SAM_File - #if $Makeflow_Log: - --output_log=$Makeflow_Log - #end if - #if $Work_Queue_Log: - --wq_log=$Work_Queue_Log - #end if - #if $Debug_Log: - --output_dblog=$Debug_Log - #end if - --algoalign=$check_alignalgo.alignalgo - --index-a=$algorithm - - #if $check_alignalgo.alignalgo=="bwa_backtrack": - --aln-k=$check_alignalgo.maxEditDistSeed - #if $check_alignalgo.params.source_select != "pre_set": - --aln-t=$check_alignalgo.params.numThreads - --aln-m=$check_alignalgo.params.maxEditDistSeed - --aln-n=$check_alignalgo.params.maxEditDist - --aln-o=$check_alignalgo.params.maxGapOpens - --aln-e=$check_alignalgo.params.maxGapExtens - --aln-d=$check_alignalgo.params.disallowLongDel - --aln-i=$check_alignalgo.params.disallowIndel - --aln-l=$check_alignalgo.params.seed - --aln-M=$check_alignalgo.params.mismatchPenalty - --aln-O=$check_alignalgo.params.gapOpenPenalty - --aln-E=$check_alignalgo.params.gapExtensPenalty - --aln-R=$check_alignalgo.params.suboptAlign - --aln-N=$check_alignalgo.params.noIterSearch - --samse-n=$check_alignalgo.params.outputTopN - --sampe-n=$check_alignalgo.params.outputTopN - --sampe-a=$check_alignalgo.params.maxInsertSize - --sampe-o=$check_alignalgo.params.maxOccurPairing - #end if - #end if - - #if $check_alignalgo.alignalgo=="bwa_sw": - #if $check_alignalgo.checkparams_bwasw.useparam=="full": - --bwasw-t=$check_alignalgo.checkparams_bwasw.threads - --bwasw-a=$check_alignalgo.checkparams_bwasw.matchscore - --bwasw-b=$check_alignalgo.checkparams_bwasw.mismatchpenalty - --bwasw-q=$check_alignalgo.checkparams_bwasw.gapopen - --bwasw-r=$check_alignalgo.checkparams_bwasw.gapextension - --bwasw-w=$check_alignalgo.checkparams_bwasw.bandwidth - --bwasw-m=$check_alignalgo.checkparams_bwasw.minthreshold - --bwasw-c=$check_alignalgo.checkparams_bwasw.coeff - --bwasw-z=$check_alignalgo.checkparams_bwasw.heuristics - --bwasw-s=$check_alignalgo.checkparams_bwasw.interval - --bwasw-N=$check_alignalgo.checkparams_bwasw.minseed - #end if - #end if - - #if $check_alignalgo.alignalgo=="bwa_mem": - #if $check_alignalgo.checkparams_bwamem.param_bwamem=="full": - --mem-t=$check_alignalgo.checkparams_bwamem.numthread - --mem-k=$check_alignalgo.checkparams_bwamem.minseedlen - --mem-w=$check_alignalgo.checkparams_bwamem.bwidth - --mem-d=$check_alignalgo.checkparams_bwamem.offdiagonal - --mem-r=$check_alignalgo.checkparams_bwamem.reseed - --mem-c=$check_alignalgo.checkparams_bwamem.discardmem - --mem-A=$check_alignalgo.checkparams_bwamem.matchingscore - --mem-B=$check_alignalgo.checkparams_bwamem.mismatch_penalty - --mem-O=$check_alignalgo.checkparams_bwamem.gopenalty - --mem-E=$check_alignalgo.checkparams_bwamem.gepenalty - --mem-L=$check_alignalgo.checkparams_bwamem.cpenalty - --mem-U=$check_alignalgo.checkparams_bwamem.upreadpenalty - --mem-T=$check_alignalgo.checkparams_bwamem.dontop - #end if - #end if - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ptions.numthread - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "mklog" in log_outputs - - - "wqlog" in log_outputs - - - "dblog" in log_outputs - - - - -**What it does** - -**BWA** is a high performance sequence aligner that succeeds MAQ. It is based on BWT-SW but uses a completely different algorithm, and it is aimed toward short read alignments. It is fast--it can map the human genome in only 15-25 minutes. Heng Li of the Sanger Institute wrote the majority of the code, with contributions by Chi-Kwong Wong at the University of Hong Kong, Nong Ge at Sun Yat-Sen University, and Yuta Mori. - ------- - -**Input formats** - -BWA accepts files in FASTQ format. - ------- - -**Outputs** - -The output is in SAM format, and has the following columns:: - - 1 QNAME - Query (pair) NAME - 2 FLAG - bitwise FLAG - 3 RNAME - Reference sequence NAME - 4 POS - 1-based leftmost POSition/coordinate of clipped sequence - 5 MAPQ - MAPping Quality (Phred-scaled) - 6 CIGAR - extended CIGAR string - 7 MRNM - Mate Reference sequence NaMe ('=' if same as RNAME) - 8 MPOS - 1-based Mate POSition - 9 ISIZE - Inferred insert SIZE - 10 SEQ - query SEQuence on the same strand as the reference - 11 QUAL - query QUALity (ASCII-33 gives the Phred base quality) - 12 OPT - variable OPTional fields in the format TAG:VTYPE:VALU - -The flags are as follows:: - - Flag - Description - 0x0001 - the read is paired in sequencing - 0x0002 - the read is mapped in a proper pair - 0x0004 - the query sequence itself is unmapped - 0x0008 - the mate is unmapped - 0x0010 - strand of the query (1 for reverse) - 0x0020 - strand of the mate - 0x0040 - the read is the first read in a pair - 0x0080 - the read is the second read in a pair - 0x0100 - the alignment is not primary - -It looks like this (scroll sideways to see the entire example):: - - QNAME FLAG RNAME POS MAPQ CIAGR MRNM MPOS ISIZE SEQ QUAL OPT - HWI-EAS91_1_30788AAXX:1:1:1761:343 4 * 0 0 * * 0 0 AAAAAAANNAAAAAAAAAAAAAAAAAAAAAAAAAAACNNANNGAGTNGNNNNNNNGCTTCCCACAGNNCTGG hhhhhhh;;hhhhhhhhhhh^hOhhhhghhhfhhhgh;;h;;hhhh;h;;;;;;;hhhhhhghhhh;;Phhh - HWI-EAS91_1_30788AAXX:1:1:1578:331 4 * 0 0 * * 0 0 GTATAGANNAATAAGAAAAAAAAAAATGAAGACTTTCNNANNTCTGNANNNNNNNTCTTTTTTCAGNNGTAG hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhhhh;;h;;hhhh;h;;;;;;;hhhhhhhhhhh;;hhVh - -------- - -**BWA Settings** - -All of the options have a default value. You can change any of them. All of the options in BWA have been implemented here. - ------- - -**BWA parameter list** - -This is an exhaustive list of BWA options: - -For **aln**:: - - -n NUM Maximum edit distance if the value is INT, or the fraction of missing - alignments given 2% uniform base error rate if FLOAT. In the latter - case, the maximum edit distance is automatically chosen for different - read lengths. [0.04] - -o INT Maximum number of gap opens [1] - -e INT Maximum number of gap extensions, -1 for k-difference mode - (disallowing long gaps) [-1] - -d INT Disallow a long deletion within INT bp towards the 3'-end [16] - -i INT Disallow an indel within INT bp towards the ends [5] - -l INT Take the first INT subsequence as seed. If INT is larger than the - query sequence, seeding will be disabled. For long reads, this option - is typically ranged from 25 to 35 for '-k 2'. [inf] - -k INT Maximum edit distance in the seed [2] - -t INT Number of threads (multi-threading mode) [1] - -M INT Mismatch penalty. BWA will not search for suboptimal hits with a score - lower than (bestScore-misMsc). [3] - -O INT Gap open penalty [11] - -E INT Gap extension penalty [4] - -c Reverse query but not complement it, which is required for alignment - in the color space. - -R Proceed with suboptimal alignments even if the top hit is a repeat. By - default, BWA only searches for suboptimal alignments if the top hit is - unique. Using this option has no effect on accuracy for single-end - reads. It is mainly designed for improving the alignment accuracy of - paired-end reads. However, the pairing procedure will be slowed down, - especially for very short reads (~32bp). - -N Disable iterative search. All hits with no more than maxDiff - differences will be found. This mode is much slower than the default. - -For **samse**:: - - -n INT Output up to INT top hits. Value -1 to disable outputting multiple - hits. [-1] - -For **sampe**:: - - -a INT Maximum insert size for a read pair to be considered as being mapped - properly. Since 0.4.5, this option is only used when there are not - enough good alignment to infer the distribution of insert sizes. [500] - -o INT Maximum occurrences of a read for pairing. A read with more - occurrences will be treated as a single-end read. Reducing this - parameter helps faster pairing. [100000] - - - - diff -Nru cctools-7.0.22/galaxy/makeflow_gatk_wrapper.py cctools-7.1.2/galaxy/makeflow_gatk_wrapper.py --- cctools-7.0.22/galaxy/makeflow_gatk_wrapper.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/galaxy/makeflow_gatk_wrapper.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 -# -#Copyright (C) 2013- The University of Notre Dame -#This software is distributed under the GNU General Public License. -#See the file COPYING for details. -# -# This program implements a way to organize and manage a large number of -# concurrently running GATK instances -# Author: Nick Hazekamp -# Date: 09/03/2013 - -import optparse, os, sys, tempfile, shutil, stat - -class PassThroughParser(optparse.OptionParser): - def _process_args(self, largs, rargs, values): - while rargs: - try: - optparse.OptionParser._process_args(self,largs,rargs,values) - except (optparse.BadOptionError,optparse.AmbiguousOptionError), e: - largs.append(e.opt_str) - -#Parse Command Line -parser = PassThroughParser() -parser.add_option('-T',dest='type',type="string") -parser.add_option('--input_file',dest='input',type="string") -parser.add_option('--reference_sequence',dest='ref',type="string") - -parser.add_option('--log_to_file',dest='log',type="string") -parser.add_option('--out',dest='output',type="string") - -parser.add_option('--mf_log',dest='mflog',type="string",help="Makeflow Log Location") -parser.add_option('--output_dblog',dest='dblog',type="string",help="Makeflow Debug Log Location") -parser.add_option('--wq_log',dest='wqlog',type="string",help="Work Queue Log Location") - -parser.add_option('--pwfile',dest='pwfile',type='string') - -parser.add_option('--user_id',dest='uid',type='string') -parser.add_option('--user_job',dest='ujob',type='string') - -(options, args) = parser.parse_args() - -# SETUP ENVIRONMENT VARIABLES - -cur_dir = os.getcwd() -job_num = os.path.basename(cur_dir) - -cctools_dir = options.cctools - -makeflow='Makeflow' -wq_project_name="galaxy_gatk_"+options.uid+"_"+job_num -wq_password=options.pwfile - -output_vcf = "output_VCF" -output_log = "output_log" - -makeflow_log = "makeflow_log" -makeflow_graph = "makeflow_graph.eps" - -wq_log = "wq_log" -wq_graph = "wq_graph.eps" - -debug_log = "debug_log" -output_err = "output_err" - -# MOVE FILES TO ENV - -os.symlink(options.ref, cur_dir+"/reference.fa") - -inputs = "--reference_sequence reference.fa --reference_index reference.fa.fai --reference_dict reference.dict " - -os.symlink(options.input, cur_dir+"/cur_bam.bam") -inputs += "--input_file cur_bam.bam " - -os.system("makeflow_gatk -T {0} {1} --makeflow {2} --out {3} {4} {5}".format( - options.type, inputs, makeflow, output_vcf, ' '.join(args), debug_log)) - -os.system("makeflow -T wq -N {0} -p 0 -l {1} -L {2} -d all -o {3} --password {4} &> {5}".format( - wq_project_name, makeflow_log, wq_log, debug_log, options.pwfile, debug_log) - -if options.dblog: - shutil.copyfile(debug_log, options.dblog) -if options.mflog: - shutil.copyfile(makeflow_log, options.mflog) -if options.wqlog: - shutil.copyfile(wq_log, options.wqlog) -shutil.copyfile(output_vcf, options.output) - -os.system(cctools_dir+'/bin/makeflow -c') -os.remove("./reference.*") -os.remove("./cur_bam.bam") -os.remove("./samtools") -os.remove("./GenomeAnalysisTK.jar") -os.remove("./picard.jar") -os.remove("./jre") diff -Nru cctools-7.0.22/galaxy/makeflow_gatk_wrapper.xml cctools-7.1.2/galaxy/makeflow_gatk_wrapper.xml --- cctools-7.0.22/galaxy/makeflow_gatk_wrapper.xml 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/galaxy/makeflow_gatk_wrapper.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,474 +0,0 @@ - - A Distributed version of GATK using Makeflow - - gatk - samtools - picard - - - makeflow_gatk_wrapper.py - - -T $algo - - --input_file=$INPUT - - --reference_sequence=$REFERENCE - - --user_id=$__user_id__ - --pwfile=${GALAXY_DATA_INDEX_DIR}/mypwfile - - --num-seq-part=$numreads - - --out=$VCF_File - #if $Makeflow_Log: - --mf_log=$Makeflow_Log - #end if - #if $Work_Queue_Log: - --wq_log=$Work_Queue_Log - #end if - #if $Debug_Log: - --output_dblog=$Debug_Log - #end if - - #if $checkparams.useparam=="full": - #if $BQSR: - --BQSR=$BQSR - #end if - #if $EXCLUDE_INTERVALS: - --excludeIntervals=$EXCLUDE_INTERVALS - #end if - #if $INTERVALS: - --intervals=$$INTERVALS - #end if - #if $RG_BLACK_LIST: - --read_group_black_list=$RG_BLACK_LIST - #end if - - - #if $BAQ: - --baq=$BAQ - #end if - #if $BAQ_GOP: - --baqGapOpenPenalty=$BAQ_GOP - #end if - #if $DEF_BASE_QUALITY: - --defaultBaseQualities=$DEF_BASE_QUALITY - #end if - #if $DOWNSAMPLE_COVERAGE: - --downsample_to_coverage=$DOWNSAMPLE_COVERAGE - #end if - #if $DOWNSAMPLE_FRACTION: - --downsample_to_fraction=$DOWNSAMPLE_FRACTION - #end if - #if $DOWNSAMPLE_TYPE: - --downsampling_type=$DOWNSAMPLE_TYPE - #end if - #if $GATK_KEY: - --gatk_key=$GATK_KEY - #end if - #if $QSCORE_PRIOR: - --globalQScorePrior=$QSCORE_PRIOR - #end if - #if $INTERVAL_MERGING: - --interval_merging=$INTERVAL_MERGING - #end if - #if $INTERVAL_PADDING: - --interval_padding=$INTERVAL_PADDING - #end if - #if $INTERVAL_RULE: - --interval_set_rule=$INTERVAL_RULE - #end if - #if $LOG_LEVEL: - --logging_level=$LOG_LEVEL - #end if - #if $MAX_RUN: - --maxRuntime=$MAX_RUN - #end if - #if $MAX_RUN_UNIT: - --maxRuntimeUnits=$MAX_RUN_UNIT - #end if - #if $CTHREADS_PER_DTHREADS: - --num_cpu_threads_per_data_thread=$CTHREADS_PER_DTHREADS - #end if - #if $NUM_THREADS: - --num_threads=$NUM_THREADS - #end if - #if $PEDIGREE: - --pedigree=$PEDIGREE - #end if - #if $PEDI_STR: - --pedigreeString=$PEDI_STR - #end if - #if $PEDI_VALID: - --pedigreeValidationType=$PEDI_VALID - #end if - #if $ET: - --phone_home=$ET - #end if - #if $PRES_LOW_QSCORE: - --preserve_qscores_less_than=$PRES_LOW_QSCORE - #end if - #if $BUFF_SIZE: - --read_buffer_size=$BUFF_SIZE - #end if - #if $BUFF_FILT: - --read_filter=$BUFF_FILT - #end if - #if $TAG: - --tag=$TAG - #end if - #if $UNSAFE: - --unsafe=$UNSAFE - #end if - #if $VALID_STRICT - --validation_strictness=$VALID_STRICT - #end if - #if $HETER - --heterozygosity=$HETER - #end if - #if $INDEL_HETER - --indel_heterozygosity=$INDEL_HETER - #end if - - - #if $ALLOW_MISENCOD: - --allow_potentially_misencoded_quality_scores - #end if - #if $DISABLE_INDEL_Q: - --disable_indel_quals - #end if - #if $EMIT_ORIG: - --emit_original_quals - #end if - #if $FIX_MISENCOD: - --fix_misencoded_quality_scores - #end if - #if $KEEP_RECORDS: - --keep_program_records - #end if - #if $MON_THREADS: - --monitorThreadEfficiency - #end if - #if $RAND_SEED: - --nonDeterministicRandomSeed - #end if - #if $REMOVE_RECORDS: - --remove_program_records - #end if - #if $ORIG_QUALS: - --useOriginalQualities - #end if - #if $VERSION: - --version - #end if - - - #if $MAPPING: - --sample_rename_mapping_file=$MAPPING - #end if - - #if $ALLOW_BQSR: - --allow_bqsr_on_reduced_bams_despite_repeated_warnings - #end if - - #end if - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "OUTPUT_MFLOG" in log_outputs - - - "OUTPUT_WQLOG" in log_outputs - - - "OUTPUT_DBLOG" in log_outputs - - - - - Required Parameters: - -T TYPE, --analysis_type=TYPE - Type of analysis to run - - Optional Inputs: - --BQSR=BQSR The input covariates table file which enables on-the- - fly base quality score recalibration (intended for use - with BaseRecalibrator and PrintReads) - --excludeIntervals=EXCLUDEINTERVALS - One or more genomic intervals to exclude from - processing. Can be explicitly specified on the command - line or in a file (including a rod file) - --input_file=INPUT SAM or BAM file(s) - --intervals=INTERVALS - One or more genomic intervals over which to operate. - Can be explicitly specified on the command line or in - a file (including a rod file) - --read_group_black_list=READ_GROUP_BLACK_LIST - Filters out read groups matching : or a .txt file - containing the filter strings one per line. - --reference_sequence=REF - Reference sequence file - --reference_index=REF_INDEX - Reference sequence file - --reference_dict=REF_DICT - Reference sequence file - - Optional Outputs: - --log_to_file=LOG Set the logging location - --out=OUTPUT Output name - - Optional Parameters: - --baq=BAQ Type of BAQ calculation to apply in the engine - --baqGapOpenPenalty=BAQGAPOPENPENALTY - BAQ gap open penalty (Phred Scaled). Default value is - 40. 30 is perhaps better for whole genome call sets - --defaultBaseQualities=DEFAULTBASEQUALITIES - If reads are missing some or all base quality scores, - this value will be used for all base quality scores - --downsample_to_coverage=DOWNSAMPLE_TO_COVERAGE - Coverage [integer] to downsample to. For locus-based - traversals (eg., LocusWalkers and - ActiveRegionWalkers),this controls the maximum depth - of coverage at each locus. For non-locus-based - traversals (eg., ReadWalkers), this controls the - maximum number of reads sharing the same alignment - start position. Note that this downsampling option - does NOT produce an unbiased random sampling from all - available reads at each locus: instead, the primary - goal of the to-coverage downsampler is to maintain an - even representation of reads from all alignment start - positions when removing excess coverage. For a true - across-the-board unbiased random sampling of reads, - use -dfrac instead. Also note that the coverage target - is an approximate goal that is not guaranteed to be - met exactly: the downsampling algorithm will under - some circumstances retain slightly more coverage than - requested. - --downsample_to_fraction=DOWNSAMPLE_TO_FRACTION - Fraction [0.0-1.0] of reads to downsample to - --downsampling_type=DOWNSAMPLING_TYPE - Type of reads downsampling to employ at a given locus. - Reads will be selected randomly to be removed from the - pile based on the method described here - --gatk_key=GATK_KEY - GATK Key file. Required if running with -et NO_ET. - Please see - http://gatkforums.broadinstitute.org/discussion/1250 - /what-is-phone-home-and-how-does-it-affect-me#latest - for details. - --globalQScorePrior=GLOBALQSCOREPRIOR - The global Qscore Bayesian prior to use in the BQSR. - If specified, this value will be used as the prior for - all mismatch quality scores instead of the actual - reported quality score - --interval_merging=INTERVAL_MERGING - Indicates the interval merging rule we should use for - abutting intervals - --interval_padding=INTERVAL_PADDING - Indicates how many basepairs of padding to include - around each of the intervals specified with the - -L/--intervals argument - --interval_set_rule=INTERVAL_SET_RULE - Indicates the set merging approach the interval parser - should use to combine the various -L or -XL inputs - --logging_level=LOGGING_LEVEL - Set the minimum level of logging, i.e. setting INFO - get's you INFO up to FATAL, setting ERROR gets you - ERROR and FATAL level logging. - --maxRuntime=MAXRUNTIME - If provided, that GATK will stop execution cleanly as - soon after maxRuntime has been exceeded, truncating - the run but not exiting with a failure. By default the - value is interpreted in minutes, but this can be - changed by maxRuntimeUnits - --maxRuntimeUnits=MAXRUNTIMEUNITS - The TimeUnit for maxRuntime [MINUTES] - --num_cpu_threads_per_data_thread=NUM_CPU_THREADS_PER_DATA_THREAD - How many CPU threads should be allocated per data - thread to running this analysis? - --num_bam_file_handles=NUM_BAM_FILE_HANDLES - The total number of BAM file handles to keep open - simultaneously - --num_threads=NUM_THREADS - How many data threads should be allocated to running - this analysis. - --pedigree=PEDIGREE - Pedigree files for samples - --pedigreeString=PEDIGREESTRING - Pedigree string for samples - --pedigreeValidationType=PEDIGREEVALIDATIONTYPE - How strict should we be in validating the pedigree - information? - --performanceLog=PLOG - If provided, a GATK runtime performance log will be - written to this file - --phone_home=PHONE_HOME - What kind of GATK run report should we generate? AWS - is the default, can be NO_ET so nothing is posted to - the run repository. Please see - http://gatkforums.broadinstitute.org/discussion/1250 - /what-is-phone-home-and-how-does-it-affect-me#latest - for details. - --preserve_qscores_less_than=PRESERVE_QSCORES_LESS_THAN - Bases with quality scores less than this threshold - won't be recalibrated (with -BQSR) - --read_buffer_size=READ_BUFFER_SIZE - Number of reads per SAM file to buffer in memory - --read_filter=READ_FILTER - Specify filtration criteria to apply to each read - individually - --tag=TAG Arbitrary tag string to identify this GATK run as part - of a group of runs, for later analysis - --unsafe=UNSAFE If set, enables unsafe operations: nothing will be - checked at runtime. For expert users only who know - what they are doing. We do not support usage of this - argument. - --validation_strictness=VALIDATION_STRICTNESS - How strict should we be with validation - --heterozygosity=HETEROZYGOSITY - Heterozygosity value used to compute prior likelihoods - for any locus. See the GATKDocs for full details on - the meaning of this population genetics concept - --indel_heterozygosity=INDEL_HETEROZYGOSITY - Heterozygosity for indel calling. See the GATKDocs for - heterozygosity for full details on the meaning of this - population genetics concept - - Optional Flags: - --allow_potentially_misencoded_quality_scores - Do not fail when encountering base qualities that are - too high and that seemingly indicate a problem with - the base quality encoding of the BAM file - --disable_indel_quals - If true, disables printing of base insertion and base - deletion tags (with -BQSR) - --emit_original_quals - If true, enables printing of the OQ tag with the - original base qualities (with -BQSR) - --fix_misencoded_quality_scores - Fix mis-encoded base quality scores - --keep_program_records - Should we override the Walker's default and keep - program records from the SAM header - --monitorThreadEfficiency - Enable GATK threading efficiency monitoring - --nonDeterministicRandomSeed - Makes the GATK behave non deterministically, that is, - the random numbers generated will be different in - every run - --remove_program_records - Should we override the Walker's default and remove - program records from the SAM header - --useOriginalQualities - If set, use the original base quality scores from the - OQ tag when present instead of the standard scores - --version Output version information - - Advanced Parameters: - --sample_rename_mapping_file=SAMPLE_RENAME_MAPPING_FILE - Rename sample IDs on-the-fly at runtime using the - provided mapping file. This option requires that each - BAM file listed in the mapping file have only a single - sample specified in its header (though there may be - multiple read groups for that sample). Each line of - the mapping file must contain the absolute path to a - BAM file, followed by whitespace, followed by the new - sample name for that BAM file. - - Advanced Flags: - --allow_bqsr_on_reduced_bams_despite_repeated_warnings - Do not fail when running base quality score - recalibration on a reduced BAM file even though we - highly recommend against it - - - - diff -Nru cctools-7.0.22/galaxy/modify_registry.pl cctools-7.1.2/galaxy/modify_registry.pl --- cctools-7.0.22/galaxy/modify_registry.pl 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/galaxy/modify_registry.pl 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ -#!/usr/bin/perl -# -#Copyright (C) 2013- The University of Notre Dame -#This software is distributed under the GNU General Public License. -#See the file COPYING for details. -# - -use strict; - -if ($#ARGV != 0) { - print "Usage: perl modify_registry.pl \n"; - exit 1; -} - -my $in = shift; -my $out = "tmp_registry"; - -my $import = 0; -my $datatypes = 0; -my $mime = 0; -my $sniff = 0; - -#Open input file -open(INPUT, $in); -open (OUTPUT,">$out"); -while (my $line = ) { - chomp $line; - if ($line =~ /^import/) - { - $import = 1; - } - elsif ($import == 1) - { - $import = 0; - print OUTPUT "import cctools\n"; - } - - if ($line =~ /self.datatypes_by_extension = {$/) - { - $datatypes = 1 - } - elsif ($datatypes == 1){ - if ($line =~ /}/){ - $datatypes = 0; - print OUTPUT "\t\t\t\t'makeflowlog' : cctools.MakeflowLog(),\n"; - print OUTPUT "\t\t\t\t'wqlog' : cctools.WorkQueueLog(),\n"; - } - } - - if ($line =~ /self.mimetypes_by_extension = {$/) - { - $mime = 1 - } - elsif ($mime == 1){ - if ($line =~ /}/){ - $mime = 0; - print OUTPUT "\t\t\t\t'makeflowlog' : 'text/plain',\n"; - print OUTPUT "\t\t\t\t'wqlog' : 'text/plain',\n"; - } - } - - if ($line =~ /self.sniff_order = \[$/) - { - $sniff = 1 - } - elsif ($sniff == 1){ - if ($line =~ /\]/){ - $sniff = 0; - print OUTPUT "\t\t\t\tcctools.MakeflowLog(),\n"; - print OUTPUT "\t\t\t\tcctools.WorkQueueLog(),\n"; - } - elsif (not $line =~ /\(\),/){ - $line = $line + ","; - } - } - - print OUTPUT "$line\n"; -} -close(OUTPUT); -close(INPUT); diff -Nru cctools-7.0.22/galaxy/modify_tool_conf.pl cctools-7.1.2/galaxy/modify_tool_conf.pl --- cctools-7.0.22/galaxy/modify_tool_conf.pl 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/galaxy/modify_tool_conf.pl 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -#!/usr/bin/perl -# -#Copyright (C) 2013- The University of Notre Dame -#This software is distributed under the GNU General Public License. -#See the file COPYING for details. -# - -use strict; - -if ($#ARGV != 0) { - print "Usage: perl modify_registry.pl \n"; - exit 1; -} - -my $in = shift; -my $out = "tmp_tool_conf"; - -#Open input file -open(INPUT, $in); -open (OUTPUT,">$out"); -while (my $line = ) { - chomp $line; - if ($line =~ /^<\/toolbox>/) - { - print OUTPUT "\t
    \n"; - print OUTPUT "\t\t\n"; - print OUTPUT "\t\t\n"; - print OUTPUT "\t<\/section>\n"; - } - print OUTPUT "$line\n"; -} -close(OUTPUT); -close(INPUT); diff -Nru cctools-7.0.22/.gitattributes cctools-7.1.2/.gitattributes --- cctools-7.0.22/.gitattributes 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/.gitattributes 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,14 @@ +* whitespace=space-before-tab,indent-with-non-tab,trailing-space,tabwidth=4 + +*.gif -whitespace binary +*.gz -whitespace binary +*.html whitespace=-indent-with-non-tab +*.jpg -whitespace binary +*.m4 whitespace=-indent-with-non-tab +*.png -whitespace binary +*.py whitespace=-indent-with-non-tab +*.xml whitespace=-indent-with-non-tab,cr-at-eol + +COPYING -whitespace + +configure export-subst diff -Nru cctools-7.0.22/.gitignore cctools-7.1.2/.gitignore --- cctools-7.0.22/.gitignore 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/.gitignore 2020-05-05 15:31:15.000000000 +0000 @@ -10,3 +10,4 @@ configure.rerun config.mk *.pyc +site/ diff -Nru cctools-7.0.22/make_call_graph cctools-7.1.2/make_call_graph --- cctools-7.0.22/make_call_graph 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/make_call_graph 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,64 @@ +#!/usr/bin/python + +# +# This program scans a set of object (.o) files and produces +# a call graph showing the relationships between each modules. +# The command line arguments are just the files to scan, +# and the output is the graph, in the DOT graphviz language. +# +# Example use: +# ./make_call_graph.py makeflow/src/*.o | dot -T pdf > makeflow.pdf +# + +import subprocess +import sys +import os +import collections + +# fileof[symbol] -> filename +fileof = {} +# uses[filename][symbol] -> True if filename uses but does not define symbol +uses = collections.defaultdict(lambda: collections.defaultdict(lambda: False)) +# links[source][target] -> True if module source calls module target +links = collections.defaultdict(lambda: collections.defaultdict(lambda: False)) + +print "digraph \"G\" {" +print "node [shape=box]" + +# Pass 1: Run nm on each of the input files. +# Scrape out the T records, which indicate a symbol definition. +# Scrape out the U records, which indicate a symbol reference. + +for file in sys.argv[1:]: + filename = os.path.basename(file) + p = subprocess.Popen(["/usr/bin/nm","-f","posix",file],stdout=subprocess.PIPE) + for line in iter(p.stdout.readline,''): + words = line.split(" ") + symbol = words[0] + symtype = words[1] + + if symtype=='T': + fileof[symbol] = filename + elif symtype=='U': + uses[filename][symbol] = True + +# Pass 2: Match up each undefined reference with its definition, +# and mark it in the links[source][target] dictionary. (Could be +# more than one instance of a link.) + +for file in uses.keys(): + for symbol in uses[file].keys(): + if symbol in fileof: + source = file + target = fileof[symbol] + if not links[source][target]: + links[source][target] = True + +# Pass 3: Print out each of the module-module links. + +for source in links.keys(): + for target in links[source].keys(): + print "\"%s\" -> \"%s\"" % (source,target) + +print "}" + diff -Nru cctools-7.0.22/Makefile cctools-7.1.2/Makefile --- cctools-7.0.22/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -15,10 +15,9 @@ makeflow wavefront: batch_job batch_job parrot: chirp -allpairs batch_job chirp deltadb ftp_lite makeflow makeflow_linker parrot resource_monitor sand wavefront work_queue grow: dttools +batch_job chirp deltadb ftp_lite makeflow makeflow_linker parrot resource_monitor work_queue grow: dttools parrot: ftp_lite grow -allpairs: sand -allpairs batch_job makeflow sand wavefront: work_queue +batch_job makeflow: work_queue $(CCTOOLS_PACKAGES): config.mk @$(MAKE) -C $@ diff -Nru cctools-7.0.22/makeflow/example/makeflow_umbrella/README cctools-7.1.2/makeflow/example/makeflow_umbrella/README --- cctools-7.0.22/makeflow/example/makeflow_umbrella/README 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/example/makeflow_umbrella/README 2020-05-05 15:31:15.000000000 +0000 @@ -21,10 +21,6 @@ To test makeflow with umbrella using wq execution engine: $ makeflow -T wq --umbrella-binary $(which umbrella) --umbrella-spec convert_S.umbrella example.makeflow -To test the case when `--wrapper` and `--umbrella-spec|binary` are used at the same time: -$ makeflow --wrapper 'time -p /bin/sh -c []' --umbrella-binary $(which umbrella) --umbrella-spec convert_S.umbrella example.makeflow -$ makeflow -T wq --wrapper 'time -p /bin/sh -c []' --umbrella-binary $(which umbrella) --umbrella-spec convert_S.umbrella example.makeflow - To test makefile with umbrella (without a default umbrella spec): $ makeflow example_in_makefile.makeflow diff -Nru cctools-7.0.22/makeflow/src/condor_submit_makeflow cctools-7.1.2/makeflow/src/condor_submit_makeflow --- cctools-7.0.22/makeflow/src/condor_submit_makeflow 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/condor_submit_makeflow 2020-05-05 15:31:15.000000000 +0000 @@ -13,7 +13,18 @@ exit 1 fi -condor_submit << EOF +submit=`which condor_submit` +if [ $? != 0 ] +then + echo "$0: Sorry, I cannot find condor_submit in your PATH." + exit 1 +fi + +echo "Submitting $@ as a background job to HTCondor..." + +tempfile=`mktemp` + +condor_submit << EOF > $tempfile universe = scheduler cmd = $makeflow arguments = -T condor -l makeflow.\$(CLUSTER).makeflowlog -L makeflow.\$(CLUSTER).condorlog $@ @@ -23,3 +34,19 @@ getenv = true queue EOF + +cat $tempfile + +if [ $? = 0 ] +then + jobid=`cat $tempfile | grep -o 'cluster [0-9]\+' | cut -c 9-` + echo "Makeflow Output : makeflow.$jobid.output" + echo "Makeflow Error : makeflow.$jobid.error" + echo "Condor Log : makeflow.$jobid.condorlog" + rm $tempfile + exit 0 +else + echo "Job submission failed!" + exit 1 +fi + diff -Nru cctools-7.0.22/makeflow/src/dag.c cctools-7.1.2/makeflow/src/dag.c --- cctools-7.0.22/makeflow/src/dag.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/dag.c 2020-05-05 15:31:15.000000000 +0000 @@ -58,6 +58,7 @@ string_set_insert(d->special_vars, RESOURCES_MEMORY); string_set_insert(d->special_vars, RESOURCES_DISK); string_set_insert(d->special_vars, RESOURCES_GPUS); + string_set_insert(d->special_vars, RESOURCES_WALL_TIME); /* export all variables related to resources */ string_set_insert(d->export_vars, "CATEGORY"); @@ -65,6 +66,7 @@ string_set_insert(d->export_vars, RESOURCES_MEMORY); string_set_insert(d->export_vars, RESOURCES_DISK); string_set_insert(d->export_vars, RESOURCES_GPUS); + string_set_insert(d->export_vars, RESOURCES_WALL_TIME); memset(d->node_states, 0, sizeof(int) * DAG_NODE_STATE_MAX); return d; @@ -326,7 +328,7 @@ /** * Computes the width of the graph */ -int dag_width(struct dag *d, int nested_jobs) +int dag_width(struct dag *d ) { struct dag_node *n, *parent; struct dag_file *f; @@ -393,8 +395,6 @@ memset(level_count, 0, level_count_size); for(n = d->nodes; n != NULL; n = n->next) { - if(nested_jobs && !n->nested_job) - continue; level_count[n->level]++; } diff -Nru cctools-7.0.22/makeflow/src/dag.h cctools-7.1.2/makeflow/src/dag.h --- cctools-7.0.22/makeflow/src/dag.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/dag.h 2020-05-05 15:31:15.000000000 +0000 @@ -61,7 +61,7 @@ struct dag_file *dag_file_lookup_or_create(struct dag *d, const char *filename); struct dag_file *dag_file_from_name(struct dag *d, const char *filename); -int dag_width( struct dag *d, int nested ); +int dag_width( struct dag *d ); int dag_depth( struct dag *d ); int dag_width_guaranteed_max( struct dag *d ); int dag_width_uniform_task( struct dag *d ); diff -Nru cctools-7.0.22/makeflow/src/dag_node.c cctools-7.1.2/makeflow/src/dag_node.c --- cctools-7.0.22/makeflow/src/dag_node.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/dag_node.c 2020-05-05 15:31:15.000000000 +0000 @@ -15,6 +15,7 @@ #include "stringtools.h" #include "xxmalloc.h" #include "jx.h" +#include "jx_print.h" #include #include @@ -34,6 +35,7 @@ n->nodeid = d->nodeid_counter++; n->variables = hash_table_create(0, 0); + n->type = DAG_NODE_TYPE_COMMAND; n->source_files = list_create(); n->target_files = list_create(); @@ -58,6 +60,10 @@ n->resource_request = CATEGORY_ALLOCATION_FIRST; + // arguments for subworkflow nodes + n->workflow_args = NULL; + n->workflow_args_file = NULL; + return n; } @@ -81,6 +87,10 @@ if(n->resources_measured) rmsummary_delete(n->resources_measured); + + jx_delete(n->workflow_args); + free(n->workflow_args_file); + free(n); } @@ -88,29 +98,35 @@ assert(n); assert(cmd); assert(!n->command); - assert(!n->nested_job); - assert(!n->makeflow_dag); - assert(!n->makeflow_cwd); + assert(!n->workflow_file); + n->type = DAG_NODE_TYPE_COMMAND; n->command = xxstrdup(cmd); } -void dag_node_set_submakeflow(struct dag_node *n, const char *dag, const char *cwd) { +void dag_node_set_workflow(struct dag_node *n, const char *dag, struct jx * args, int is_jx ) +{ assert(n); assert(dag); - assert(!n->command); - assert(!n->nested_job); - assert(!n->makeflow_dag); - assert(!n->makeflow_cwd); - - n->nested_job = 1; - n->makeflow_dag = xxstrdup(dag); - n->makeflow_cwd = xxstrdup(cwd ? cwd : "."); - n->command = string_format( - "cd %s && makeflow %s", - string_escape_shell(n->makeflow_cwd), - string_escape_shell(n->makeflow_dag) - ); + assert(!n->workflow_file); + + n->type = DAG_NODE_TYPE_WORKFLOW; + n->workflow_file = xxstrdup(dag); + n->workflow_is_jx = is_jx; + + n->workflow_args = jx_copy(args); + if(n->workflow_args) { + n->workflow_args_file = string_format("makeflow.jx.args.XXXXXX"); + int fd = mkstemp(n->workflow_args_file); + FILE *argsfile = fdopen(fd,"w"); + jx_print_stream(n->workflow_args,argsfile); + fclose(argsfile); + } + + /* Record a placeholder in the command field */ + /* A usable command will be created at submit time. */ + + n->command = xxstrdup(n->workflow_file); } void dag_node_insert(struct dag_node *n) { @@ -405,30 +421,6 @@ return category_dynamic_task_max_resources(n->category, n->resources_requested, n->resource_request); } -struct batch_task *dag_node_to_batch_task(struct dag_node *n, struct batch_queue *queue, int full_env_list) -{ - struct batch_task *task = batch_task_create(queue); - task->taskid = n->nodeid; - batch_task_set_command(task, n->command); - - struct dag_file *f; - list_first_item(n->source_files); - while((f = list_next_item(n->source_files))){ - batch_task_add_input_file(task, f->filename, dag_node_get_remote_name(n, f->filename)); - } - - list_first_item(n->target_files); - while((f = list_next_item(n->target_files))){ - batch_task_add_output_file(task, f->filename, dag_node_get_remote_name(n, f->filename)); - } - - batch_task_set_resources(task, dag_node_dynamic_label(n)); - - batch_task_set_envlist(task, dag_node_env_create(n->d, n, full_env_list)); - - return task; -} - /* Return JX object containing cmd, inputs, outputs, env, and resources. */ struct jx * dag_node_to_jx( struct dag *d, struct dag_node *n, int send_all_local_env) diff -Nru cctools-7.0.22/makeflow/src/dag_node.h cctools-7.1.2/makeflow/src/dag_node.h --- cctools-7.0.22/makeflow/src/dag_node.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/dag_node.h 2020-05-05 15:31:15.000000000 +0000 @@ -23,6 +23,11 @@ DAG_NODE_STATE_MAX } dag_node_state_t; +typedef enum { + DAG_NODE_TYPE_COMMAND, + DAG_NODE_TYPE_WORKFLOW, +} dag_node_type_t; + /* struct dag_node implements a linked list of nodes. A dag_node * represents a production rule from source files to target * files. The actual dag structure is given implicitly by the @@ -35,6 +40,7 @@ struct dag_node { struct dag *d; /* Dag this node belongs too. */ + dag_node_type_t type; /* Is the job a Unix command, a workflow, etc. */ const char *command; /* The command line to execute. */ int nodeid; /* The ordinal number as the rule appears in the makeflow file */ @@ -45,9 +51,10 @@ struct set *ancestors; /* The nodes of which this node is an immediate descendant */ int ancestor_depth; /* The depth of the ancestor tree for this node */ - int nested_job; /* Flag: Is this a recursive call to makeflow? */ - const char *makeflow_dag; /* Name of the sub-makeflow to run, if nested_job is true. */ - const char *makeflow_cwd; /* Working dir of the sub-makeflow to run, if nested_job is true. */ + const char *workflow_file; /* Name of the sub-makeflow to run, if type is WORKFLOW */ + struct jx *workflow_args; /* Arguments to pass to the workflow. */ + char *workflow_args_file; /* Automatically generated temporary file to write workflow_args to disc. */ + int workflow_is_jx; /* True is sub-workflow is jx, false otherwise. */ struct itable *remote_names; /* Mapping from struct *dag_files to remotenames (char *) */ struct hash_table *remote_names_inv;/* Mapping from remote filenames to dag_file representing the local file. */ @@ -100,7 +107,7 @@ void dag_node_add_target_file(struct dag_node *n, const char *filename, const char *remotename); void dag_node_set_command(struct dag_node *n, const char *cmd); -void dag_node_set_submakeflow(struct dag_node *n, const char *dag, const char *cwd); +void dag_node_set_workflow(struct dag_node *n, const char *dag, struct jx *args, int is_jx ); void dag_node_insert(struct dag_node *n); uint64_t dag_node_file_list_size(struct list *s); @@ -125,6 +132,4 @@ void dag_node_set_umbrella_spec(struct dag_node *n, const char *umbrella_spec); -struct batch_task *dag_node_to_batch_task(struct dag_node *n, struct batch_queue *queue, int full_env_list); - #endif diff -Nru cctools-7.0.22/makeflow/src/dag_visitors.c cctools-7.1.2/makeflow/src/dag_visitors.c --- cctools-7.0.22/makeflow/src/dag_visitors.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/dag_visitors.c 2020-05-05 15:31:15.000000000 +0000 @@ -1236,7 +1236,6 @@ struct jx *result = jx_array(NULL); struct dag_node *n = node; struct jx *rule; - struct jx *submakeflow; while(n) { rule = jx_object(NULL); @@ -1253,11 +1252,9 @@ if(n->local_job) { jx_insert(rule, jx_string("local_job"), jx_boolean(n->local_job)); } - if(n->nested_job) { - submakeflow = jx_object(NULL); - jx_insert(submakeflow, jx_string("path"), jx_string(n->makeflow_dag)); - jx_insert(submakeflow, jx_string("cwd"), jx_string(n->makeflow_cwd)); - jx_insert(rule, jx_string("makeflow"), submakeflow); + if(n->type==DAG_NODE_TYPE_WORKFLOW) { + jx_insert(rule, jx_string("workflow"), jx_string(n->workflow_file)); + jx_insert(rule, jx_string("args"), jx_copy(n->workflow_args)); } else { jx_insert(rule, jx_string("command"), jx_string(n->command)); } diff -Nru cctools-7.0.22/makeflow/src/Makefile cctools-7.1.2/makeflow/src/Makefile --- cctools-7.0.22/makeflow/src/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -7,21 +7,32 @@ EXTERNAL_DEPENDENCIES = ../../batch_job/src/libbatch_job.a ../../work_queue/src/libwork_queue.a ../../chirp/src/libchirp.a ../../dttools/src/libdttools.a OBJECTS = dag.o dag_node_footprint.o dag_node.o dag_file.o dag_variable.o dag_visitors.o dag_resources.o lexer.o parser.o parser_make.o parser_jx.o -PROGRAMS = makeflow makeflow_viz makeflow_analyze makeflow_linker makeflow_status -MAKEFLOW_WRAPPERS = makeflow_wrapper_enforcement.o makeflow_wrapper_umbrella.o makeflow_mounts.o +PROGRAMS = makeflow makeflow_viz makeflow_analyze makeflow_linker makeflow_status makeflow_mpi_submitter makeflow_mpi_starter +SCRIPTS = condor_submit_makeflow makeflow_graph_log makeflow_monitor starch makeflow_linker_perl_driver makeflow_linker_python_driver makeflow_archive_query mf_mesos_scheduler mf_mesos_executor mf_mesos_setting makeflow_ec2_setup makeflow_ec2_cleanup makeflow_lambda_setup makeflow_lambda_cleanup + SCRIPTS = condor_submit_makeflow makeflow_graph_log makeflow_monitor starch makeflow_linker_perl_driver makeflow_linker_python_driver makeflow_archive_query mf_mesos_scheduler mf_mesos_executor mf_mesos_setting makeflow_ec2_setup makeflow_ec2_cleanup makeflow_amazon_batch_setup makeflow_amazon_batch_cleanup makeflow_lambda_setup makeflow_lambda_cleanup + +MAKEFLOW_WRAPPERS = makeflow_mounts.o MAKEFLOW_HOOKS = makeflow_hook_example.o MAKEFLOW_MODULES = \ - makeflow_module_archive.o\ + makeflow_module_basic_wrapper.o\ makeflow_module_docker.o\ + makeflow_module_enforcement.o\ makeflow_module_fail_dir.o\ makeflow_module_resource_monitor.o\ makeflow_module_sandbox.o\ makeflow_module_shared_fs.o\ makeflow_module_singularity.o\ makeflow_module_storage_allocation.o\ + makeflow_module_umbrella.o\ makeflow_module_vc3_builder.o\ +ifeq ($(CCTOOLS_CURL_AVAILABLE),yes) +CCTOOLS_EXTERNAL_LINKAGE += $(CCTOOLS_CURL_LDFLAGS) -lssl -lcrypto +MAKEFLOW_MODULES += makeflow_module_archive.o +endif + + TARGETS = $(PROGRAMS) all: $(TARGETS) @@ -30,7 +41,8 @@ makeflow_status: makeflow_status.o -makeflow: makeflow_alloc.o makeflow_summary.o makeflow_gc.o makeflow_log.o makeflow_wrapper.o makeflow_catalog_reporter.o makeflow_local_resources.o $(MAKEFLOW_WRAPPERS) makeflow_hook.o $(MAKEFLOW_HOOKS) $(MAKEFLOW_MODULES) +makeflow: makeflow_alloc.o makeflow_summary.o makeflow_gc.o makeflow_log.o makeflow_catalog_reporter.o makeflow_local_resources.o $(MAKEFLOW_WRAPPERS) makeflow_hook.o $(MAKEFLOW_HOOKS) $(MAKEFLOW_MODULES) + $(PROGRAMS): $(EXTERNAL_DEPENDENCIES) diff -Nru cctools-7.0.22/makeflow/src/makeflow_analyze.c cctools-7.1.2/makeflow/src/makeflow_analyze.c --- cctools-7.0.22/makeflow/src/makeflow_analyze.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_analyze.c 2020-05-05 15:31:15.000000000 +0000 @@ -285,7 +285,8 @@ break; case LONG_OPT_JX_ARGS: dag_syntax = DAG_SYNTAX_JX; - if(!jx_parse_cmd_args(jx_args, optarg)) + jx_args = jx_parse_cmd_args(jx_args, optarg); + if(!jx_args) fatal("Failed to parse in JX Args File.\n"); break; case LONG_OPT_JX_DEFINE: diff -Nru cctools-7.0.22/makeflow/src/makeflow.c cctools-7.1.2/makeflow/src/makeflow.c --- cctools-7.0.22/makeflow/src/makeflow.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow.c 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,5 @@ /* -Copyright (C) 2008- The University of Notre Dame +Copyright (C) 2019- The University of Notre Dame This software is distributed under the GNU General Public License. See the file COPYING for details. */ @@ -30,6 +30,7 @@ #include "jx_match.h" #include "jx_parse.h" #include "jx_getopt.h" +#include "jx_print.h" #include "create_dir.h" #include "sha1.h" @@ -40,13 +41,14 @@ #include "parser.h" #include "parser_jx.h" +#ifdef CCTOOLS_WITH_MPI +#include +#endif + #include "makeflow_summary.h" #include "makeflow_gc.h" #include "makeflow_log.h" -#include "makeflow_wrapper.h" -#include "makeflow_wrapper_umbrella.h" #include "makeflow_mounts.h" -#include "makeflow_wrapper_enforcement.h" #include "makeflow_catalog_reporter.h" #include "makeflow_local_resources.h" #include "makeflow_hook.h" @@ -94,14 +96,28 @@ #define MAX_REMOTE_JOBS_DEFAULT 100 -extern int batch_job_verbose_jobnames; +/* +Flags to control the basic behavior of the Makeflow main loop. +*/ +enum job_submit_status { + JOB_SUBMISSION_HOOK_FAILURE = -1, + JOB_SUBMISSION_SKIPPED, + JOB_SUBMISSION_SUBMITTED, + JOB_SUBMISSION_ABORTED, + JOB_SUBMISSION_TIMEOUT +}; static sig_atomic_t makeflow_abort_flag = 0; static int makeflow_failed_flag = 1; // Makeflow fails by default. This is changed at dag start to indicate correct start. -static int makeflow_submit_timeout = 3600; +static int makeflow_submit_timeout = 32; // in seconds static int makeflow_retry_flag = 0; static int makeflow_retry_max = 5; +/* +Garbage Collection (GC) controls when and where intermediate +files are cleaned up, so as to minimize disk space consumption. +*/ + /* makeflow_gc_method indicates the type of garbage collection * indicated by the user. Refer to makeflow_gc.h for specifics */ static makeflow_gc_method_t makeflow_gc_method = MAKEFLOW_GC_NONE; @@ -114,39 +130,72 @@ /* Determines next gc_barrier to make checks less frequent with large number of tasks */ static double makeflow_gc_task_ratio = 0.05; +/* +Makeflow manages two queues of jobs. +The remote_queue represents the cluster or distributed system +in which jobs are run in parallel. The local_queue represents +local execution via Unix processes. +*/ + static batch_queue_type_t batch_queue_type = BATCH_QUEUE_TYPE_LOCAL; static struct batch_queue *local_queue = 0; static struct batch_queue *remote_queue = 0; -struct batch_queue * makeflow_get_remote_queue(){ - return remote_queue; -} - -struct batch_queue * makeflow_get_local_queue(){ - return local_queue; -} - -struct batch_queue * makeflow_get_queue(struct dag_node *n){ - if(n->local_job && local_queue) { - return local_queue; - } else { - return remote_queue; - } -} +/* +The local_resources describes the total CPU, RAM, DISK +available to run local jobs, so that the machine is not +over-subscribed. +*/ static struct rmsummary *local_resources = 0; +/* +local_jobs_max and remote_jobs_max describe manual limits +set on the number of jobs, so that a million-node workflow +doesn't instantly become a million jobs on the queue unless +the user takes some positive steps to that effect. +*/ + static int local_jobs_max = 1; static int remote_jobs_max = MAX_REMOTE_JOBS_DEFAULT; +/* +The project name and manual port number chosen for the +Work Queue configuration. A port number of zero indicates +any available port. +*/ + + static char *project = NULL; static int port = 0; + +/* +Check the size of files after creation. +This option doesn't seem to do much. +*/ + static int output_len_check = 0; + +/* +If enabled, do not check the filesystem for expected files +before starting the dag, instead proceed under optimistic assumptions. +*/ + static int skip_file_check = 0; +/* +Enable caching within the underlying batch system. +In the case of Work Queue, this caches immutable files on the workers. +*/ + static int cache_mode = 1; -static char *parrot_path = "./parrot_run"; +/* +Hack: Enable batch job feature to pass detailed name to batch system. +Would be better implemented as a batch system feature. +*/ + +extern int batch_job_verbose_jobnames; /* Wait upto this many seconds for an output file of a succesfull task @@ -162,18 +211,50 @@ */ static int log_verbose_mode = 0; -static struct makeflow_wrapper *wrapper = 0; -static struct makeflow_wrapper *enforcer = 0; -static struct makeflow_wrapper_umbrella *umbrella = 0; +/* +Send periodic reports of type "makeflow" to the catalog +server, viewable by the makeflow_status command. +*/ static int catalog_reporting_on = 0; +/* +Options related to the "mounting" of external data +files at the DAG level. +*/ + static char *mountfile = NULL; static char *mount_cache = NULL; static int use_mountfile = 0; +/* +If enabled, then all environment variables are sent +from the submission site to the job execution site. +*/ + static int should_send_all_local_environment = 0; +struct batch_queue * makeflow_get_remote_queue(){ + return remote_queue; +} + +struct batch_queue * makeflow_get_local_queue(){ + return local_queue; +} + +/* +Gives the queue associated with a job, taking into +account the LOCAL flag in the node. +*/ + +struct batch_queue * makeflow_get_queue(struct dag_node *n){ + if(n->local_job && local_queue) { + return local_queue; + } else { + return remote_queue; + } +} + /* Determines if this is a local job that will consume local resources, regardless of the batch queue type. @@ -185,67 +266,107 @@ } /* -Generates file list for node based on node files, wrapper -input files, and monitor input files. Relies on %% nodeid -replacement for monitor file names. +Consider a node in the dag and convert it into a batch task ready to execute, +with resources environments, and everything prior to calling hooks. */ -void makeflow_generate_files( struct dag_node *n, struct batch_task *task ) +struct batch_task *makeflow_node_to_task(struct dag_node *n, struct batch_queue *queue ) { - if(wrapper) makeflow_wrapper_generate_files(task, wrapper->input_files, wrapper->output_files, n, wrapper); - if(enforcer) makeflow_wrapper_generate_files(task, enforcer->input_files, enforcer->output_files, n, enforcer); - if(umbrella) makeflow_wrapper_generate_files(task, umbrella->wrapper->input_files, umbrella->wrapper->output_files, n, umbrella->wrapper); -} + struct batch_task *task = batch_task_create(queue); + task->taskid = n->nodeid; -/* -Expand a dag_node into a text list of input files, -output files, and a command, by applying all wrappers -and settings. Used at both job submission and completion -to obtain identical strings. -*/ + if(n->type==DAG_NODE_TYPE_COMMAND) { -static void makeflow_node_expand( struct dag_node *n, struct batch_queue *queue, struct batch_task *task ) -{ - makeflow_generate_files(n, task); + /* A plain command just gets a command string. */ + batch_task_set_command(task, n->command); - /* Expand the command according to each of the wrappers */ - makeflow_wrap_wrapper(task, n, wrapper); - makeflow_wrap_enforcer(task, n, enforcer); - makeflow_wrap_umbrella(task, n, umbrella, queue); + } else if(n->type==DAG_NODE_TYPE_WORKFLOW) { + + /* A sub-workflow must be expanded into a makeflow invocation */ + + char *cmd = string_format("makeflow -T local %s",n->workflow_file); + char *oldcmd = 0; + + /* Select the workflow language */ + + if(n->workflow_is_jx) { + oldcmd = cmd; + cmd = string_format("%s --jx",cmd); + free(oldcmd); + } + + /* Generate the workflow arguments file */ + + if(n->workflow_args) { + oldcmd = cmd; + cmd = string_format("%s --jx-args %s",cmd,n->workflow_args_file); + free(oldcmd); + + /* Define this file as a temp so it is removed on completion. */ + makeflow_hook_add_input_file(n->d,task,n->workflow_args_file,n->workflow_args_file,DAG_FILE_TYPE_TEMP); + } + + /* Add resource controls to the sub-workflow, if known. */ + + if(n->resources_requested->cores>0) { + oldcmd = cmd; + cmd = string_format("%s --local-cores %d",cmd,(int)n->resources_requested->cores); + free(oldcmd); + } + + if(n->resources_requested->memory>0) { + oldcmd = cmd; + cmd = string_format("%s --local-memory %d",cmd,(int)n->resources_requested->cores); + free(oldcmd); + } + + if(n->resources_requested->disk>0) { + oldcmd = cmd; + cmd = string_format("%s --local-disk %d",cmd,(int)n->resources_requested->cores); + free(oldcmd); + } + + batch_task_set_command(task, cmd); + batch_task_add_input_file(task,n->workflow_file,n->workflow_file); + free(cmd); + } else { + fatal("invalid job type %d in dag node (%s)",n->type,n->command); + } + + /* Add all input and output files to the task */ + + struct dag_file *f; + list_first_item(n->source_files); + while((f = list_next_item(n->source_files))){ + batch_task_add_input_file(task, f->filename, dag_node_get_remote_name(n, f->filename)); + } + + list_first_item(n->target_files); + while((f = list_next_item(n->target_files))){ + batch_task_add_output_file(task, f->filename, dag_node_get_remote_name(n, f->filename)); + } + + batch_task_set_resources(task, dag_node_dynamic_label(n)); + + struct jx *env = dag_node_env_create(n->d, n, should_send_all_local_environment); + batch_task_set_envlist(task, env); + jx_delete(env); + + return task; } /* Abort one job in a given batch queue. */ -static void makeflow_abort_job( struct dag *d, struct dag_node *n, struct batch_queue *q, UINT64_T jobid, const char *name ) +static void makeflow_abort_job( struct dag *d, struct dag_node *n, struct batch_queue *q, uint64_t jobid, const char *name ) { printf("aborting %s job %" PRIu64 "\n", name, jobid); batch_job_remove(q, jobid); - makeflow_hook_node_abort(n); makeflow_log_state_change(d, n, DAG_NODE_STATE_ABORTED); - - struct batch_file *bf; - struct dag_file *df; - - /* Create generic task if one does not exist. This occurs in log recovery. */ - if(!n->task){ - n->task = dag_node_to_batch_task(n, makeflow_get_queue(n), should_send_all_local_environment); - - /* This augments the task struct, should be replaced with hook in future. */ - makeflow_node_expand(n, q, n->task); - } - - /* Clean all files associated with task, includes node and hook files. */ - list_first_item(n->task->output_files); - while((bf = list_next_item(n->task->output_files))){ - df = dag_file_lookup_or_create(d, bf->outer_name); - makeflow_clean_file(d, q, df); - } - - makeflow_clean_node(d, q, n); + makeflow_clean_node(d,q,n); } /* @@ -254,7 +375,7 @@ static void makeflow_abort_all(struct dag *d) { - UINT64_T jobid; + uint64_t jobid; struct dag_node *n; printf("got abort signal...\n"); @@ -270,91 +391,23 @@ } } -static void makeflow_node_force_rerun(struct itable *rerun_table, struct dag *d, struct dag_node *n); -static void makeflow_node_complete(struct dag *d, struct dag_node *n, struct batch_queue *queue, struct batch_task *task); +/* A few forward prototypes to handle mutually-recursive definitions. */ -/* -Decide whether to rerun a node based on batch and file system status. The silent -option was added for to prevent confusing debug output when in clean mode. When -clean_mode is not NONE we silence the node reseting output. -*/ - -void makeflow_node_decide_rerun(struct itable *rerun_table, struct dag *d, struct dag_node *n, int silent) -{ - struct dag_file *f; - - if(itable_lookup(rerun_table, n->nodeid)) - return; - - // Below are a bunch of situations when a node has to be rerun. - - // If a job was submitted to Condor, then just reconnect to it. - if(n->state == DAG_NODE_STATE_RUNNING && !(n->local_job && local_queue) && batch_queue_type == BATCH_QUEUE_TYPE_CONDOR) { - // Reconnect the Condor jobs - if(!silent) fprintf(stderr, "rule still running: %s\n", n->command); - itable_insert(d->remote_job_table, n->jobid, n); - - // Otherwise, we cannot reconnect to the job, so rerun it - } else if(n->state == DAG_NODE_STATE_RUNNING || n->state == DAG_NODE_STATE_FAILED || n->state == DAG_NODE_STATE_ABORTED) { - if(!silent) fprintf(stderr, "will retry failed rule: %s\n", n->command); - goto rerun; - } - // Rerun if an input file has been updated since the last execution. - list_first_item(n->source_files); - while((f = list_next_item(n->source_files))) { - if(dag_file_should_exist(f)) { - continue; - } else { - if(!f->created_by) { - if(!silent) fprintf(stderr, "makeflow: input file %s does not exist and is not created by any rule.\n", f->filename); - exit(1); - } else { - /* If input file is missing, but node completed and file was garbage, then avoid rerunning. */ - if(n->state == DAG_NODE_STATE_COMPLETE && f->state == DAG_FILE_STATE_DELETE) { - continue; - } - goto rerun; - } - } - } - - // Rerun if an output file is missing. - list_first_item(n->target_files); - while((f = list_next_item(n->target_files))) { - if(dag_file_should_exist(f)) - continue; - /* If output file is missing, but node completed and file was gc'ed, then avoid rerunning. */ - if(n->state == DAG_NODE_STATE_COMPLETE && f->state == DAG_FILE_STATE_DELETE) - continue; - goto rerun; - } - - // Do not rerun this node - return; - - rerun: - makeflow_node_force_rerun(rerun_table, d, n); -} +static void makeflow_node_complete(struct dag *d, struct dag_node *n, struct batch_queue *queue, struct batch_task *task); +static void makeflow_node_reset_by_file( struct dag *d, struct dag_file *f ); /* Reset all state to cause a node to be re-run. */ -void makeflow_node_force_rerun(struct itable *rerun_table, struct dag *d, struct dag_node *n) +void makeflow_node_reset( struct dag *d, struct dag_node *n ) { - struct dag_node *p; - struct batch_file *bf; - struct dag_file *f1; - struct dag_file *f2; - int child_node_found; + /* Nothing to do if the node is still waiting. */ - if(itable_lookup(rerun_table, n->nodeid)) - return; + if(n->state==DAG_NODE_STATE_WAITING) return; - // Mark this node as having been rerun already - itable_insert(rerun_table, n->nodeid, n); + /* If the node is running, remove the corresponding job. */ - // Remove running batch jobs if(n->state == DAG_NODE_STATE_RUNNING) { if(n->local_job && local_queue) { batch_job_remove(local_queue, n->jobid); @@ -365,80 +418,66 @@ } } - if(!n->task){ - n->task = dag_node_to_batch_task(n, makeflow_get_queue(n), should_send_all_local_environment); + /* Reset the state associated with the node */ - /* This augments the task struct, should be replaced with hook in future. */ - makeflow_node_expand(n, makeflow_get_queue(n), n->task); - } + makeflow_clean_node(d,remote_queue,n); - // Clean up things associated with this node - list_first_item(n->task->output_files); - while((bf = list_next_item(n->task->output_files))) { - f1 = dag_file_lookup_or_create(d, bf->outer_name); - makeflow_clean_file(d, remote_queue, f1); - } + /* Put the node back to the waiting state. */ - makeflow_clean_node(d, remote_queue, n); makeflow_log_state_change(d, n, DAG_NODE_STATE_WAITING); - // For each parent node, rerun it if input file was garbage collected - list_first_item(n->source_files); - while((f1 = list_next_item(n->source_files))) { - if(dag_file_should_exist(f1)) - continue; - - p = f1->created_by; - if(p) { - makeflow_node_force_rerun(rerun_table, d, p); - f1->reference_count += 1; - } - } + /* + Reset each descendant of this node as well. + Note that the recursive behavior is self-limiting b/c each + reset node is put into the WAITING state, and WAITING + nodes are not reset. + */ - // For each child node, rerun it + /* For each of my output files... */ + struct dag_file *f; list_first_item(n->target_files); - while((f1 = list_next_item(n->target_files))) { - for(p = d->nodes; p; p = p->next) { - child_node_found = 0; - - list_first_item(p->source_files); - while((f2 = list_next_item(n->source_files))) { - if(!strcmp(f1->filename, f2->filename)) { - child_node_found = 1; - break; - } - } - if(child_node_found) { - makeflow_node_force_rerun(rerun_table, d, p); - } - } + while((f = list_next_item(n->target_files))) { + /* Reset all nodes that consume that file. */ + makeflow_node_reset_by_file(d,f); } } /* -Update nested jobs with appropriate number of local jobs -(total local jobs max / maximum number of concurrent nests). +Reset all nodes that consume file f. */ -static void makeflow_prepare_nested_jobs(struct dag *d) +static void makeflow_node_reset_by_file( struct dag *d, struct dag_file *f ) { - int dag_nested_width = dag_width(d, 1); - int update_dag_nests = 1; - char *s = getenv("MAKEFLOW_UPDATE_NESTED_JOBS"); - if(s) - update_dag_nests = atoi(s); + /* For each node that consumes the file... */ + struct dag_node *n; + list_first_item(f->needed_by); + while((n = list_next_item(f->needed_by))) { + /* Reset that node and its descendants */ + makeflow_node_reset(d,n); + } +} - if(dag_nested_width > 0 && update_dag_nests) { - dag_nested_width = MIN(dag_nested_width, local_jobs_max); - struct dag_node *n; - for(n = d->nodes; n; n = n->next) { - if(n->nested_job && ((n->local_job && local_queue) || batch_queue_type == BATCH_QUEUE_TYPE_LOCAL)) { - char *command = xxmalloc(strlen(n->command) + 20); - sprintf(command, "%s -j %d", n->command, local_jobs_max / dag_nested_width); - free((char *) n->command); - n->command = command; - } - } + +/* +Decide whether to reset a node based on batch and file system status. The silent +option was added for to prevent confusing debug output when in clean mode. When +clean_mode is not NONE we silence the node reseting output. +*/ + +void makeflow_node_decide_reset( struct dag *d, struct dag_node *n, int silent ) +{ + if(n->state == DAG_NODE_STATE_WAITING) { + // The job hasn't run yet, nothing to do. + } else if(n->state == DAG_NODE_STATE_RUNNING && !(n->local_job && local_queue) && batch_queue_type == BATCH_QUEUE_TYPE_CONDOR) { + // It's a Condor job and still out there in the batch system, so note that and keep going. + if(!silent) fprintf(stderr, "rule still running: %s\n", n->command); + itable_insert(d->remote_job_table, n->jobid, n); + } else if(n->state == DAG_NODE_STATE_RUNNING || n->state == DAG_NODE_STATE_FAILED || n->state == DAG_NODE_STATE_ABORTED) { + // Otherwise, we cannot reconnect to the job, so rerun it + if(!silent) fprintf(stderr, "will retry failed rule: %s\n", n->command); + makeflow_node_reset(d,n); + } else if(n->state==DAG_NODE_STATE_COMPLETE) { + // The job succeeded, so nothing more to do. } } @@ -447,7 +486,7 @@ This is necessary because busy batch systems occasionally do not accept a job submission. */ -static int makeflow_node_submit_retry( struct batch_queue *queue, struct batch_task *task) +static enum job_submit_status makeflow_node_submit_retry( struct batch_queue *queue, struct batch_task *task) { time_t stoptime = time(0) + makeflow_submit_timeout; int waittime = 1; @@ -463,13 +502,15 @@ * MAKEFLOW_HOOK_SUCCESS : Hook was successful and should submit */ int rc = makeflow_hook_batch_submit(task); if(rc == MAKEFLOW_HOOK_SKIP){ - return 0; + return JOB_SUBMISSION_SKIPPED; } else if(rc != MAKEFLOW_HOOK_SUCCESS){ - return -1; + return JOB_SUBMISSION_HOOK_FAILURE; } while(1) { - if(makeflow_abort_flag) break; + if(makeflow_abort_flag) { + break; + } /* This will eventually be replaced by submit (queue, task )... */ char *input_files = batch_files_to_string(queue, task->input_files); @@ -486,7 +527,7 @@ if(jobid > 0) { printf("submitted job %"PRIbjid"\n", jobid); task->jobid = jobid; - return 1; + return JOB_SUBMISSION_SUBMITTED; } else if(jobid<0) { fprintf(stderr, "couldn't submit batch job, still trying...\n"); } else if(jobid==0) { @@ -494,29 +535,29 @@ batch_queue_type_to_string(batch_queue_get_type(queue))); } - if(makeflow_abort_flag) break; + if(makeflow_abort_flag) { + break; + } if(time(0) > stoptime) { fprintf(stderr, "unable to submit job after %d seconds!\n", makeflow_submit_timeout); - break; + return JOB_SUBMISSION_TIMEOUT; } sleep(waittime); - waittime *= 2; - if(waittime > 60) waittime = 60; + waittime = MIN(makeflow_submit_timeout, waittime * 2); } - return 0; + return JOB_SUBMISSION_ABORTED; } /* Submit a node to the appropriate batch system, after materializing -the necessary list of input and output files, and applying all -wrappers and options. +the necessary list of input and output files, and applying all options. */ -static void makeflow_node_submit(struct dag *d, struct dag_node *n, const struct rmsummary *resources) +static enum job_submit_status makeflow_node_submit(struct dag *d, struct dag_node *n, const struct rmsummary *resources) { struct batch_queue *queue = makeflow_get_queue(n); @@ -537,51 +578,62 @@ } /* Create task from node information */ - struct batch_task *task = dag_node_to_batch_task(n, queue, should_send_all_local_environment); + struct batch_task *task = makeflow_node_to_task(n, queue ); batch_queue_set_int_option(queue, "task-id", task->taskid); - - /* This augments the task struct, should be replaced with node_submit in future. */ - makeflow_node_expand(n, queue, task); n->task = task; int hook_return = makeflow_hook_node_submit(n, task); if (hook_return != MAKEFLOW_HOOK_SUCCESS){ makeflow_failed_flag = 1; - return; + return JOB_SUBMISSION_HOOK_FAILURE; } /* Logs the expectation of output files. */ makeflow_log_batch_file_list_state_change(d,task->output_files,DAG_FILE_STATE_EXPECT); - int submitted = makeflow_node_submit_retry(queue, task); + enum job_submit_status submitted = makeflow_node_submit_retry(queue, task); /* Update all of the necessary data structures. */ - if(submitted == 1) { - n->jobid = task->jobid; - /* Not sure if this is necessary/what it does. */ - memcpy(n->resources_allocated, task->resources, sizeof(struct rmsummary)); - makeflow_log_state_change(d, n, DAG_NODE_STATE_RUNNING); + switch(submitted) { + case JOB_SUBMISSION_HOOK_FAILURE: + debug(D_MAKEFLOW_RUN, "node %d could not be submitted because of a hook failure.", n->nodeid); + makeflow_log_state_change(d, n, DAG_NODE_STATE_FAILED); + n->task = NULL; + batch_task_delete(task); + makeflow_failed_flag = 1; + break; + case JOB_SUBMISSION_SKIPPED: + debug(D_MAKEFLOW_RUN, "node %d was not submitted because it was already handled.", n->nodeid); + /* Exited Normally was updated and may have been handled elsewhere (e.g. Archive) */ + if (task->info->exited_normally) { + makeflow_node_complete(d, n, queue, task); + } + break; + case JOB_SUBMISSION_SUBMITTED: + debug(D_MAKEFLOW_RUN, "node %d was successfully submitted.", n->nodeid); + n->jobid = task->jobid; + /* Not sure if this is necessary/what it does. */ + memcpy(n->resources_allocated, task->resources, sizeof(struct rmsummary)); + makeflow_log_state_change(d, n, DAG_NODE_STATE_RUNNING); - if(is_local_job(n)) { - makeflow_local_resources_subtract(local_resources,n); - } + if(is_local_job(n)) { + makeflow_local_resources_subtract(local_resources,n); + } - if(n->local_job && local_queue) { - itable_insert(d->local_job_table, n->jobid, n); - } else { - itable_insert(d->remote_job_table, n->jobid, n); - } - } else if (submitted == 0) { - /* Exited Normally was updated and may have been handled elsewhere (e.g. Archive) */ - if (task->info->exited_normally) { - makeflow_node_complete(d, n, queue, task); - } - } else { - /* Negative submitted results from a failed submit */ - makeflow_log_state_change(d, n, DAG_NODE_STATE_FAILED); - n->task = NULL; - batch_task_delete(task); - makeflow_failed_flag = 1; + if(n->local_job && local_queue) { + itable_insert(d->local_job_table, n->jobid, n); + } else { + itable_insert(d->remote_job_table, n->jobid, n); + } + break; + case JOB_SUBMISSION_ABORTED: + /* do nothing, as node was aborted before it was submitted. */ + debug(D_MAKEFLOW_RUN, "node %d was not submitted because workflow was aborted.", n->nodeid); + break; + case JOB_SUBMISSION_TIMEOUT: + debug(D_MAKEFLOW_RUN, "node %d submission timed-out, retrying later.", n->nodeid); + /* do nothing, and let other rules to be waited/submitted. */ + break; } /* Restore old batch job options. */ @@ -589,6 +641,8 @@ batch_queue_set_option(queue, "batch-options", previous_batch_options); free(previous_batch_options); } + + return submitted; } static int makeflow_node_ready(struct dag *d, struct dag_node *n, const struct rmsummary *resources) @@ -643,6 +697,18 @@ return count; } +int makeflow_nodes_remote_waiting_count(const struct dag *d) { + int count = 0; + + struct dag_node *n; + for(n = d->nodes; n; n = n->next) { + if(n->state == DAG_NODE_STATE_WAITING && !is_local_job(n)) + count++; + } + + return count; +} + /* Find all jobs ready to be run, then submit them. */ @@ -651,14 +717,34 @@ { struct dag_node *n; + /* When submitting to an external queue if there are no resources + * available, such as vms in amazon, then the submission fails with a + * timeout. When this occurs, submission_timeout is set to 1, and only + * local jobs are tried for submission. Batch jobs are tried again the next + * time makeflow_dispatch_ready_jobs is called. This allows batch_job_wait + * to be called in-between, which may free some batch resources and allow + * job submissions that do not timeout. + */ + int submission_timeout = 0; + for(n = d->nodes; n; n = n->next) { if(dag_remote_jobs_running(d) >= remote_jobs_max && dag_local_jobs_running(d) >= local_jobs_max) { break; } const struct rmsummary *resources = dag_node_dynamic_label(n); + if(makeflow_node_ready(d, n, resources)) { - makeflow_node_submit(d, n, resources); + if(is_local_job(n) || !submission_timeout) { + enum job_submit_status status = makeflow_node_submit(d, n, resources); + + if(status == JOB_SUBMISSION_ABORTED) { + break; + } else if(status == JOB_SUBMISSION_TIMEOUT) { + debug(D_MAKEFLOW_RUN, "batch submissions are timing-out. Only submitting local jobs for the rest of this cycle."); + submission_timeout = 1; + } + } } } } @@ -831,40 +917,61 @@ } /* -Check the dag for consistency, and emit errors if input dependencies, etc are missing. +Check the dag for all files that should exist, +whether provided by the user, or created by +a prior run that was logged. */ -static int makeflow_check(struct dag *d) +static int makeflow_check_files(struct dag *d) { struct stat buf; - struct dag_node *n; struct dag_file *f; - int error = 0; + char *name; + int errors = 0; + int warnings = 0; - debug(D_MAKEFLOW_RUN, "checking rules for consistency...\n"); + printf("checking files for unexpected changes... (use --skip-file-check to skip this step)\n"); - for(n = d->nodes; n; n = n->next) { - list_first_item(n->source_files); - while((f = list_next_item(n->source_files))) { - if(f->created_by) { - continue; - } + hash_table_firstkey(d->files); + while(hash_table_nextkey(d->files, &name, (void **) &f)) { - if(skip_file_check || batch_fs_stat(remote_queue, f->filename, &buf) >= 0) { - continue; - } + /* Skip special files that are not connected to the DAG nodes. */ + if(!f->created_by && !list_size(f->needed_by)) continue; - if(f->source) { - continue; - } + /* Skip any file that should not exist yet. */ + if(!dag_file_should_exist(f)) continue; + + /* Check for the presence of the file. */ + int result = batch_fs_stat(remote_queue, f->filename, &buf ); - fprintf(stderr, "makeflow: %s does not exist, and is not created by any rule.\n", f->filename); - error++; + if(dag_file_is_source(f)) { + /* Source files must exist before running */ + if(result<0) { + printf("error: %s does not exist, and is not created by any rule.\n", f->filename); + errors++; + } + } else { + /* Intermediate files can be re-created as needed. */ + if(result<0) { + /* Recreate the file by running its parent. */ + printf("warning: %s was previously created by makeflow, but someone else deleted it!\n", f->filename); + makeflow_log_file_state_change(d, f, DAG_FILE_STATE_UNKNOWN); + makeflow_node_reset(d,f->created_by); + warnings++; + } else if(!S_ISDIR(buf.st_mode) && difftime(buf.st_mtime, f->creation_logged) > 0) { + /* Recreate descendants by resetting all nodes that consume this file. */ + printf("warning: %s was previously created by makeflow, but someone else modified it!\n",f->filename); + makeflow_node_reset_by_file(d,f); + warnings++; + } } } - if(error) { - fprintf(stderr, "makeflow: found %d errors during consistency check.\n", error); + if(errors>0 || warnings>0) { + printf("found %d errors and %d warnings during consistency check.\n", errors,warnings); + } + + if(errors) { return 0; } else { return 1; @@ -886,7 +993,7 @@ for(n = d->nodes; n; n = n->next) { - if(itable_size(n->remote_names) > 0 || (wrapper && wrapper->uses_remote_rename)){ + if(itable_size(n->remote_names) > 0){ if(n->local_job) { debug(D_ERROR, "Remote renaming is not supported with -Tlocal or LOCAL execution. Rule %d (line %d).\n", n->nodeid, n->linenum); error = 1; @@ -936,8 +1043,10 @@ */ if(dag_local_jobs_running(d)==0 && dag_remote_jobs_running(d)==0 && - (makeflow_hook_dag_loop(d) == MAKEFLOW_HOOK_END)) + (makeflow_hook_dag_loop(d) == MAKEFLOW_HOOK_END) && + makeflow_nodes_remote_waiting_count(d) == 0) { break; + } if(dag_remote_jobs_running(d)) { int tmp_timeout = 5; @@ -1062,7 +1171,12 @@ printf(" -f,--summary-log= Write summary of workflow to this file at end.\n"); /********************************************************************************/ printf("\nData Handling:\n"); - printf(" --archive Read jobs from and write completed jobs into archive.\n"); + printf(" --archive Archive and retrieve archived jobs from archive.\n"); + printf(" --archive-s3= Base s3 bucket name (DEFAULT:makeflows3archive).\n"); + printf(" --archive-s3-no-check= Blind upload files to s3 (No existence check).\n"); + printf(" --s3-hostname= Base s3 hostname. Used for AWS S3.\n"); + printf(" --s3-keyid= Access Key for cloud server. Used for AWS S3.\n"); + printf(" --s3-secretkey= Secret Key for cloud server. Used for AWS S3.\n"); printf(" --archive-dir= Archive directory(/tmp/makeflow.archive.USERID).\n"); printf(" --archive-read Read jobs from archive.\n"); printf(" --archive-write Write jobs into archive.\n"); @@ -1079,12 +1193,10 @@ printf(" --storage-limit= Set storage limit for Makeflow.(default is off)\n"); printf(" --storage-type= Storage limit type(0:MAX|1:MIN|2:OUTPUT|3:OFF)\n"); printf(" --storage-print= Print storage limit calculated by Makeflow.\n"); - printf(" --tickets= Specify Chirp tickets.\n"); printf(" --wait-for-files-upto= Wait up to seconds for files to be created.\n"); printf(" -z,--zero-length-error Consider zero-length files to be erroneous.\n"); /********************************************************************************/ printf("\nWork Queue Options:\n"); - printf(" --allocation Specify allocation mode (see manual).\n"); printf(" -C,--catalog-server= Select alternate catalog server.\n"); printf(" --password Password file for authenticating workers.\n"); printf(" -p,--port= Port number to use with Work Queue.\n"); @@ -1098,10 +1210,10 @@ printf(" --work-queue-preferred-connection Preferred connection: by_ip | by_hostname\n"); /********************************************************************************/ printf("\nBatch System Options:\n"); - printf(" --amazon-config Amazon EC2 config from makeflow_ec2_setup.\n"); - printf(" --lambda-config Lambda config from makeflow_lambda_setup.\n"); - printf(" --amazon-batch-config Batch config from makeflow_amazon_batch_setup.\n"); - printf(" --amazon-batch-img Specify Amazon ECS Image(Used for amazon-batch)\n"); + printf(" --amazon-config= Amazon EC2 config from makeflow_ec2_setup.\n"); + printf(" --lambda-config= Lambda config from makeflow_lambda_setup.\n"); + printf(" --amazon-batch-config=Batch config from makeflow_amazon_batch_setup.\n"); + printf(" --amazon-batch-img= Specify Amazon ECS Image(Used for amazon-batch)\n"); printf(" -B,--batch-options= Add these options to all batch submit files.\n"); printf(" --disable-cache Disable batch system caching.\n"); printf(" --local-cores=# Max number of local cores to use.\n"); @@ -1111,8 +1223,10 @@ printf(" (SLURM, TORQUE, and PBS)\n"); printf(" --verbose-jobnames Set the job name based on the command.\n"); printf(" --ignore-memory-spec Excludes memory at submission (SLURM).\n"); - printf(" --batch-mem-type Specify memory resource type (SGE).\n"); + printf(" --batch-mem-type= Specify memory resource type (SGE).\n"); printf(" --working-dir= Working directory for the batch system.\n"); + printf(" --mpi-cores=# Manually set number of cores on each MPI worker. (-T mpi)\n"); + printf(" --mpi-memory=# Manually set memory (MB) on each MPI worker. (-T mpi)\n"); /********************************************************************************/ printf("\nContainers and Wrappers:\n"); printf(" --docker= Run each task using the named Docker image.\n"); @@ -1129,6 +1243,7 @@ printf(" --wrapper-output= Wrapper command produces this output file.\n"); printf(" --enforcement Enforce access to only named inputs/outputs.\n"); printf(" --parrot-path= Path to parrot_run for --enforcement.\n"); + printf(" --env-replace-path= Path to env_replace for --enforcement.\n"); printf(" --mesos-master= Mesos master address and port\n"); printf(" --mesos-path= Path to mesos python2 site-packages.\n"); printf(" --mesos-preload= Path to libraries needed by Mesos.\n"); @@ -1146,7 +1261,8 @@ printf(" --monitor-interval=<#> Set monitor interval, in seconds. (default: 1s)\n"); printf(" --monitor-with-time-series Enable monitor time series.\n"); printf(" --monitor-with-opened-files Enable monitoring of opened files.\n"); - printf(" --monitor-log-fmt= Format for monitor logs. (def: resource-rule-%%)\n"); + printf(" --monitor-log-fmt= Format for monitor logs.(def: resource-rule-%%)\n"); + printf(" --allocation= Specify allocation mode (see manual).\n"); } int main(int argc, char *argv[]) @@ -1193,18 +1309,24 @@ char *s; int safe_submit = 0; int ignore_mem_spec = 0; + char *debug_file_name = 0; char *batch_mem_type = NULL; category_mode_t allocation_mode = CATEGORY_ALLOCATION_MODE_FIXED; char *mesos_master = "127.0.0.1:5050/"; char *mesos_path = NULL; char *mesos_preload = NULL; + + int mpi_cores = 0; + int mpi_memory = 0; + dag_syntax_type dag_syntax = DAG_SYNTAX_MAKE; struct jx *jx_args = jx_object(NULL); struct jx *hook_args = jx_object(NULL); char *k8s_image = NULL; - extern struct makeflow_hook makeflow_hook_archive; + extern struct makeflow_hook makeflow_hook_basic_wrapper; extern struct makeflow_hook makeflow_hook_docker; + extern struct makeflow_hook makeflow_hook_enforcement; extern struct makeflow_hook makeflow_hook_example; extern struct makeflow_hook makeflow_hook_fail_dir; /* Using fail directories is on by default */ @@ -1214,8 +1336,17 @@ extern struct makeflow_hook makeflow_hook_shared_fs; extern struct makeflow_hook makeflow_hook_singularity; extern struct makeflow_hook makeflow_hook_storage_allocation; + extern struct makeflow_hook makeflow_hook_umbrella; extern struct makeflow_hook makeflow_hook_vc3_builder; +#ifdef HAS_CURL + extern struct makeflow_hook makeflow_hook_archive; +#endif + +#ifdef CCTOOLS_WITH_MPI + MPI_Init(&argc,&argv); +#endif + random_init(); debug_config(argv[0]); debug_config_file_size(0);//to set debug file size to "don't delete anything" @@ -1305,10 +1436,16 @@ LONG_OPT_ALLOCATION_MODE, LONG_OPT_ENFORCEMENT, LONG_OPT_PARROT_PATH, + LONG_OPT_ENVREPLACE, LONG_OPT_SINGULARITY, LONG_OPT_SINGULARITY_OPT, LONG_OPT_SHARED_FS, LONG_OPT_ARCHIVE, + LONG_OPT_ARCHIVE_S3, + LONG_OPT_ARCHIVE_S3_NO_CHECK, + LONG_OPT_S3_HOSTNAME, + LONG_OPT_S3_KEYID, + LONG_OPT_S3_SECRETKEY, LONG_OPT_ARCHIVE_DIR, LONG_OPT_ARCHIVE_READ, LONG_OPT_ARCHIVE_WRITE, @@ -1318,6 +1455,8 @@ LONG_OPT_SEND_ENVIRONMENT, LONG_OPT_K8S_IMG, LONG_OPT_VERBOSE_JOBNAMES, + LONG_OPT_MPI_CORES, + LONG_OPT_MPI_MEMORY, }; static const struct option long_options_run[] = { @@ -1378,7 +1517,7 @@ {"storage-print", required_argument, 0, LONG_OPT_STORAGE_PRINT}, {"submission-timeout", required_argument, 0, 'S'}, {"summary-log", required_argument, 0, 'f'}, - {"tickets", required_argument, 0, LONG_OPT_TICKETS}, + {"tickets", required_argument, 0, LONG_OPT_TICKETS}, // Deprecated ? {"vc3-builder", no_argument, 0, LONG_OPT_VC3}, {"vc3-exe", required_argument, 0, LONG_OPT_VC3_EXE}, {"vc3-log", required_argument, 0, LONG_OPT_VC3_LOG}, @@ -1417,9 +1556,15 @@ {"jx-define", required_argument, 0, LONG_OPT_JX_DEFINE}, {"enforcement", no_argument, 0, LONG_OPT_ENFORCEMENT}, {"parrot-path", required_argument, 0, LONG_OPT_PARROT_PATH}, + {"env-replace-path", required_argument, 0, LONG_OPT_ENVREPLACE}, {"singularity", required_argument, 0, LONG_OPT_SINGULARITY}, {"singularity-opt", required_argument, 0, LONG_OPT_SINGULARITY_OPT}, {"archive", no_argument, 0, LONG_OPT_ARCHIVE}, + {"archive-s3", optional_argument, 0, LONG_OPT_ARCHIVE_S3}, + {"archive-s3-no-check", optional_argument, 0, LONG_OPT_ARCHIVE_S3_NO_CHECK}, + {"s3-hostname",required_argument,0,LONG_OPT_S3_HOSTNAME}, + {"s3-keyid",required_argument,0,LONG_OPT_S3_KEYID}, + {"s3-secretkey",required_argument,0,LONG_OPT_S3_SECRETKEY}, {"archive-dir", required_argument, 0, LONG_OPT_ARCHIVE_DIR}, {"archive-read", no_argument, 0, LONG_OPT_ARCHIVE_READ}, {"archive-write", no_argument, 0, LONG_OPT_ARCHIVE_WRITE}, @@ -1428,6 +1573,8 @@ {"mesos-preload", required_argument, 0, LONG_OPT_MESOS_PRELOAD}, {"k8s-image", required_argument, 0, LONG_OPT_K8S_IMG}, {"verbose-jobnames", no_argument, 0, LONG_OPT_VERBOSE_JOBNAMES}, + {"mpi-cores", required_argument,0, LONG_OPT_MPI_CORES}, + {"mpi-memory", required_argument,0, LONG_OPT_MPI_MEMORY}, {0, 0, 0, 0} }; @@ -1599,7 +1746,8 @@ catalog_reporting_on = 1; //set to true break; case 'o': - debug_config_file(optarg); + debug_file_name = optarg; + debug_config_file(debug_file_name); break; case 'p': port_set = 1; @@ -1688,16 +1836,25 @@ log_verbose_mode = 1; break; case LONG_OPT_WRAPPER: - if(!wrapper) wrapper = makeflow_wrapper_create(); - makeflow_wrapper_add_command(wrapper, optarg); + if (makeflow_hook_register(&makeflow_hook_basic_wrapper, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + if(!jx_lookup(hook_args, "wrapper_command")) + jx_insert(hook_args, jx_string("wrapper_command"),jx_array(NULL)); + jx_array_append(jx_lookup(hook_args, "wrapper_command"), jx_string(optarg)); break; case LONG_OPT_WRAPPER_INPUT: - if(!wrapper) wrapper = makeflow_wrapper_create(); - makeflow_wrapper_add_input_file(wrapper, optarg); + if (makeflow_hook_register(&makeflow_hook_basic_wrapper, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + if(!jx_lookup(hook_args, "wrapper_input")) + jx_insert(hook_args, jx_string("wrapper_input"),jx_array(NULL)); + jx_array_append(jx_lookup(hook_args, "wrapper_input"), jx_string(optarg)); break; case LONG_OPT_WRAPPER_OUTPUT: - if(!wrapper) wrapper = makeflow_wrapper_create(); - makeflow_wrapper_add_output_file(wrapper, optarg); + if (makeflow_hook_register(&makeflow_hook_basic_wrapper, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + if(!jx_lookup(hook_args, "wrapper_output")) + jx_insert(hook_args, jx_string("wrapper_output"),jx_array(NULL)); + jx_array_append(jx_lookup(hook_args, "wrapper_output"), jx_string(optarg)); break; case LONG_OPT_SHARED_FS: if (optarg[0] != '/') fatal("Shared fs must be specified as an absolute path"); @@ -1779,20 +1936,24 @@ } break; case LONG_OPT_UMBRELLA_BINARY: - if(!umbrella) umbrella = makeflow_wrapper_umbrella_create(); - makeflow_wrapper_umbrella_set_binary(umbrella, (const char *)xxstrdup(optarg)); + if (makeflow_hook_register(&makeflow_hook_umbrella, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + jx_insert(hook_args, jx_string("umbrella_binary"), jx_string(optarg)); break; case LONG_OPT_UMBRELLA_LOG_PREFIX: - if(!umbrella) umbrella = makeflow_wrapper_umbrella_create(); - makeflow_wrapper_umbrella_set_log_prefix(umbrella, (const char *)xxstrdup(optarg)); + if (makeflow_hook_register(&makeflow_hook_umbrella, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + jx_insert(hook_args, jx_string("umbrella_log_prefix"), jx_string(optarg)); break; case LONG_OPT_UMBRELLA_MODE: - if(!umbrella) umbrella = makeflow_wrapper_umbrella_create(); - makeflow_wrapper_umbrella_set_mode(umbrella, (const char *)xxstrdup(optarg)); + if (makeflow_hook_register(&makeflow_hook_umbrella, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + jx_insert(hook_args, jx_string("umbrella_mode"), jx_string(optarg)); break; case LONG_OPT_UMBRELLA_SPEC: - if(!umbrella) umbrella = makeflow_wrapper_umbrella_create(); - makeflow_wrapper_umbrella_set_spec(umbrella, (const char *)xxstrdup(optarg)); + if (makeflow_hook_register(&makeflow_hook_umbrella, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + jx_insert(hook_args, jx_string("umbrella_spec"), jx_string(optarg)); break; case LONG_OPT_MESOS_MASTER: mesos_master = xxstrdup(optarg); @@ -1806,6 +1967,35 @@ case LONG_OPT_K8S_IMG: k8s_image = xxstrdup(optarg); break; +#ifdef HAS_CURL + case LONG_OPT_S3_HOSTNAME: + if (makeflow_hook_register(&makeflow_hook_archive, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + jx_insert(hook_args, jx_string("s3_hostname"), jx_string(xxstrdup(optarg))); + break; + case LONG_OPT_S3_KEYID: + if (makeflow_hook_register(&makeflow_hook_archive, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + jx_insert(hook_args, jx_string("s3_keyid"), jx_string(xxstrdup(optarg))); + break; + case LONG_OPT_S3_SECRETKEY: + if (makeflow_hook_register(&makeflow_hook_archive, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + jx_insert(hook_args, jx_string("s3_secretkey"), jx_string(xxstrdup(optarg))); + break; + case LONG_OPT_ARCHIVE_S3_NO_CHECK: + if (makeflow_hook_register(&makeflow_hook_archive, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + jx_insert(hook_args, jx_string("archive_s3_no_check"), jx_boolean(1)); + case LONG_OPT_ARCHIVE_S3: + if (makeflow_hook_register(&makeflow_hook_archive, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + if(optarg){ + jx_insert(hook_args, jx_string("archive_s3_arg"), jx_string(xxstrdup(optarg))); + } + else{ + jx_insert(hook_args, jx_string("archive_s3_no_arg"), jx_string("")); + } case LONG_OPT_ARCHIVE: if (makeflow_hook_register(&makeflow_hook_archive, &hook_args) == MAKEFLOW_HOOK_FAILURE) goto EXIT_WITH_FAILURE; @@ -1827,14 +2017,23 @@ goto EXIT_WITH_FAILURE; jx_insert(hook_args, jx_string("archive_write"), jx_boolean(1)); break; +#endif case LONG_OPT_SEND_ENVIRONMENT: should_send_all_local_environment = 1; break; case LONG_OPT_ENFORCEMENT: - if(!enforcer) enforcer = makeflow_wrapper_create(); + if (makeflow_hook_register(&makeflow_hook_enforcement, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; break; case LONG_OPT_PARROT_PATH: - parrot_path = xxstrdup(optarg); + if (makeflow_hook_register(&makeflow_hook_enforcement, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + jx_insert(hook_args, jx_string("parrot_path"), jx_string(optarg)); + break; + case LONG_OPT_ENVREPLACE: + if (makeflow_hook_register(&makeflow_hook_enforcement, &hook_args) == MAKEFLOW_HOOK_FAILURE) + goto EXIT_WITH_FAILURE; + jx_insert(hook_args, jx_string("env_replace_path"), jx_string(optarg)); break; case LONG_OPT_FAIL_DIR: save_failure = 0; @@ -1898,6 +2097,12 @@ case LONG_OPT_VERBOSE_JOBNAMES: batch_job_verbose_jobnames = 1; break; + case LONG_OPT_MPI_CORES: + mpi_cores = atoi(optarg); + break; + case LONG_OPT_MPI_MEMORY: + mpi_memory = atoi(optarg); + break; default: show_help_run(argv[0]); return 1; @@ -1906,6 +2111,11 @@ cctools_version_debug(D_MAKEFLOW_RUN, argv[0]); + /* Perform initial MPI setup prior to creating the batch queue object. */ + if(batch_queue_type==BATCH_QUEUE_TYPE_MPI) { + batch_job_mpi_setup(debug_file_name ? debug_file_name : "debug", mpi_cores,mpi_memory); + } + if(!did_explicit_auth) auth_register_all(); if(chirp_tickets) { @@ -1916,13 +2126,7 @@ } // REGISTER HOOKS HERE - if (enforcer && umbrella) { - fatal("enforcement and Umbrella are mutually exclusive\n"); - } - - if (makeflow_hook_register(&makeflow_hook_shared_fs, &hook_args) == MAKEFLOW_HOOK_FAILURE) - goto EXIT_WITH_FAILURE; - + /* This is intended for hooks that are on by default. */ if(save_failure){ if (makeflow_hook_register(&makeflow_hook_fail_dir, &hook_args) == MAKEFLOW_HOOK_FAILURE) goto EXIT_WITH_FAILURE; @@ -2130,41 +2334,8 @@ makeflow_gc_method = MAKEFLOW_GC_ALL; } - /* Set dag_node->umbrella_spec */ - if(!clean_mode) { - struct dag_node *cur; - cur = d->nodes; - while(cur) { - struct dag_variable_lookup_set s = {d, cur->category, cur, NULL}; - char *spec = NULL; - spec = dag_variable_lookup_string("SPEC", &s); - if(spec) { - debug(D_MAKEFLOW_RUN, "setting dag_node->umbrella_spec (rule %d) from the makefile ...\n", cur->nodeid); - dag_node_set_umbrella_spec(cur, xxstrdup(spec)); - } else if(umbrella && umbrella->spec) { - debug(D_MAKEFLOW_RUN, "setting dag_node->umbrella_spec (rule %d) from the --umbrella_spec option ...\n", cur->nodeid); - dag_node_set_umbrella_spec(cur, umbrella->spec); - } - free(spec); - cur = cur->next; - } - - debug(D_MAKEFLOW_RUN, "makeflow_wrapper_umbrella_preparation...\n"); - // When the user specifies umbrella specs in a makefile, but does not use any `--umbrella...` option, - // an umbrella wrapper was created to hold the default values for umbrella-related setttings such as - // log_prefix and default umbrella execution engine. - if(!umbrella) umbrella = makeflow_wrapper_umbrella_create(); - makeflow_wrapper_umbrella_preparation(umbrella, d); - } - - if(enforcer) { - makeflow_wrapper_enforcer_init(enforcer, parrot_path); - } - makeflow_parse_input_outputs(d); - makeflow_prepare_nested_jobs(d); - if (change_dir) chdir(change_dir); @@ -2195,9 +2366,6 @@ } printf("checking %s for consistency...\n",dagfile); - if(!makeflow_check(d)) { - goto EXIT_WITH_FAILURE; - } if(!makeflow_check_batch_consistency(d) && clean_mode == MAKEFLOW_CLEAN_NONE) { goto EXIT_WITH_FAILURE; @@ -2219,10 +2387,18 @@ /* In case when the user uses --cache option to specify the mount cache dir and the log file also has * a cache dir logged, these two dirs must be the same. Otherwise exit. */ - if(makeflow_log_recover(d, logfilename, log_verbose_mode, remote_queue, clean_mode, skip_file_check )) { + if(makeflow_log_recover(d, logfilename, log_verbose_mode, remote_queue, clean_mode )) { goto EXIT_WITH_FAILURE; } + if(skip_file_check) { + printf("skipping file checks."); + } else { + if(!makeflow_check_files(d)) { + goto EXIT_WITH_FAILURE; + } + } + /* This check must happen after makeflow_log_recover which may load the cache_dir info into d->cache_dir. * This check must happen before makeflow_mount_install to guarantee that the program ends before any mount is copied if any target is invliad. */ @@ -2262,6 +2438,7 @@ if(clean_mode == MAKEFLOW_CLEAN_ALL) { unlink(logfilename); + unlink(batchlogfilename); } goto EXIT_WITH_SUCCESS; @@ -2325,10 +2502,6 @@ if(write_summary_to || email_summary_to) makeflow_summary_create(d, write_summary_to, email_summary_to, runtime, time_completed, argc, argv, dagfile, remote_queue, makeflow_abort_flag, makeflow_failed_flag ); - if(wrapper){ - makeflow_wrapper_delete(wrapper); - } - int exit_value; if(makeflow_abort_flag) { makeflow_hook_dag_abort(d); @@ -2347,6 +2520,19 @@ exit_value = EXIT_SUCCESS; } + /* delete all jx args files. We do this here are some of these files may be created in clean mode. */ + { + struct dag_node *n; + uint64_t key; + itable_firstkey(d->node_table); + while(itable_nextkey(d->node_table, &key, (void **) &n)) { + if(n->workflow_args_file) { + debug(D_MAKEFLOW_RUN, "deleting tmp file: %s\n", n->workflow_args_file); + unlink(n->workflow_args_file); + } + } + } + makeflow_hook_destroy(d); /* Batch queues are removed after hooks are destroyed to allow for file clean up on related files. */ @@ -2355,9 +2541,9 @@ batch_queue_delete(local_queue); makeflow_log_close(d); - + exit(exit_value); - + return 0; } diff -Nru cctools-7.0.22/makeflow/src/makeflow_ec2_cleanup cctools-7.1.2/makeflow/src/makeflow_ec2_cleanup --- cctools-7.0.22/makeflow/src/makeflow_ec2_cleanup 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_ec2_cleanup 2020-05-05 15:31:15.000000000 +0000 @@ -1,56 +1,97 @@ -#!/bin/sh +#!/usr/bin/env python -if [ "$#" -ne 1 ]; then - echo "use: $0 " - exit 1 -fi - -CONFIG_FILE=$1 - -echo "Loading config file $config..." -if [ ! -f $CONFIG_FILE ] -then - echo "$0: config file $CONFIG_FILE not found" - exit 1 -fi - -fetch_field() -{ - grep $1 $CONFIG_FILE | cut -d " " -f 2 -} - -KEYPAIR_NAME=`fetch_field keypair_name` -SECURITY_GROUP_ID=`fetch_field security_group` -SUBNET=`fetch_field subnet` -ROUTE_TABLE=`fetch_field route_table` -GATEWAY=`fetch_field gateway` -VPC=`fetch_field vpc` - -echo -n "Checking for aws command in PATH..." -if which aws >/dev/null 2>&1 -then - echo "ok" -else - echo "failed" - echo "$0: \"aws\" command must be in your path to use this script." - exit 1 -fi - -echo "Deleting keypair $KEYPAIR_NAME..." -aws ec2 delete-key-pair --key-name $KEYPAIR_NAME && rm -f ${KEYPAIR_NAME}.pem - -#echo "Deleting security group $SECURITY_GROUP_ID" -#aws ec2 delete-security-group --group-id $SECURITY_GROUP_ID - -echo "Deleting internet gateway $GATEWAY..." -aws ec2 detach-internet-gateway --internet-gateway-id $GATEWAY --vpc-id $VPC -aws ec2 delete-internet-gateway --internet-gateway-id $GATEWAY +import json +import sys +import os +import uuid +import subprocess +import time + +set_of_instances = set() +instance_state_code_terminate = 48 + +if __name__ == "__main__": + + if len(sys.argv) != 2: + print("use: {} ".format(sys.argv[0])) + exit(1) + + CONFIG_FILE=sys.argv[1].rstrip() + print("Loading config file {}...".format(CONFIG_FILE)) + + if not os.path.isfile(CONFIG_FILE): + print("{}: config file {} not found".format(sys.argv[0], CONFIG_FILE)) + exit(1) + + f = open(CONFIG_FILE,'r') + for line in f.readlines(): + words = line.split() + if words[0] == 'vpc': + VPC = words[1] + if words[0] == 'subnet': + SUBNET = words[1] + if words[0] == 'gateway': + GATEWAY = words[1] + if words[0] == 'security_group_id': + SECURITY_GROUP_ID = words[1] + if words[0] == 'keypair_name': + KEYPAIR_NAME = words[1] + if words[0] == 'CREATE': + set_of_instances.add(words[1]) + if words[0] == 'TERMINATE': + set_of_instances.discard(words[1]) + + # assign values + print("Checking for aws command in PATH...") + if not os.system("which aws >/dev/null 2>&1"): + print("okay") + else: + print("failed") + print("{}: The \"aws\" command must be in your path to use this script.".format(sys.argv[0])) + exit(1) + + #remove idle instances + for INSTANCE_ID in set_of_instances: + if(os.system("aws ec2 terminate-instances --instance-ids {}".format(INSTANCE_ID))): + print("deleted virtual machine instance {}".format(INSTANCE_ID)) + # record deleted + + # remain in a loop to check if instances are deleted or no longer exist + while set_of_instances: + non_terminated_instances = set() + + describe_instance_cmd = "aws ec2 describe-instance-status --query \"InstanceStatuses[*].{InstanceId:InstanceId,InstanceState:InstanceState.Code}\" --output json" + describe_instance_proc = subprocess.Popen(describe_instance_cmd, stdout=subprocess.PIPE, shell=True) + describe_instance_json = describe_instance_proc.stdout.read() + describe_instance_array = json.loads(describe_instance_json.rstrip()) + + if len(describe_instance_array) > 0: + for instances in describe_instance_array: + if instances['InstanceStateCode'] != instance_state_code_terminate: + non_terminated_instances.add(instances['InstanceId']) + + set_of_instances = set_of_instances.intersection(non_terminated_instances) + + time.sleep(10) + + print("Deleting keypair {}...".format(KEYPAIR_NAME)) + os.system("aws ec2 delete-key-pair --key-name {}".format(KEYPAIR_NAME)) + os.system("rm {}.pem".format(KEYPAIR_NAME)) + + # print("Deleting security group {}").format(SECURITY_GROUP_ID) + # os.system("aws ec2 delete-security-group --group-id {}").format(SECURITY_GROUP_ID) + + # Detaching internet gateway before deleting VPC. + print("Detaching internet gateway {}...".format(GATEWAY)) + os.system("aws ec2 detach-internet-gateway --internet-gateway-id {} --vpc-id {}".format(GATEWAY, VPC)) + + print("Deleting internet gateway {}...".format(GATEWAY)) + os.system("aws ec2 delete-internet-gateway --internet-gateway-id {}".format(GATEWAY)) -echo "Deleting subnet $SUBNET..." -aws ec2 delete-subnet --subnet-id $SUBNET + print("Deleting subnet {}...".format(SUBNET)) + os.system("aws ec2 delete-subnet --subnet-id {}".format(SUBNET)) -echo "Deleting virtual private cluster $VPC..." -aws ec2 delete-vpc --vpc-id $VPC - -echo "Done!" + print("Deleting virtual private cluster {}...".format(VPC)) + os.system("aws ec2 delete-vpc --vpc-id {}".format(VPC)) + print("Done!") diff -Nru cctools-7.0.22/makeflow/src/makeflow_ec2_setup cctools-7.1.2/makeflow/src/makeflow_ec2_setup --- cctools-7.0.22/makeflow/src/makeflow_ec2_setup 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_ec2_setup 2020-05-05 15:31:15.000000000 +0000 @@ -1,94 +1,131 @@ -#!/bin/sh +#!/usr/bin/env python -if [ $# -ne 2 ] -then - echo "use: $0: " - exit 1 -fi - -configFile=$1 -imageName=$2 - -echo -n "Checking for aws command in PATH..." -if which aws >/dev/null 2>&1 -then - echo "ok" -else - echo "failed" - echo "$0: The \"aws\" command must be in your path to use this script." - exit 1 -fi - -echo -n "Checking for aws configuration..." -if [ -f ~/.aws/config ] -then - echo "ok" -else - echo "failed" - echo "$0 You must run \"aws configure\" before using this script." - exit 1 -fi - -echo -n "Checking for correct credentials..." -if aws ec2 describe-instances > /dev/null 2>&1 -then - echo "ok" -else - echo "failed" - echo "$0: Your Amazon credentials are not set up correctly. Try \"aws ec2 describe-instances\" to troubleshoot." - exit 1 -fi - -CIDR_BLOCK=10.0.0.0/16 -SUBNET_CIDR_BLOCK=10.0.1.0/24 -UUID="$(uuidgen)" -KEYPAIR_NAME=kp.${UUID} -SECURITY_GROUP_NAME=sg.${UUID} - -echo "Creating virtual private cluster..." -VPC=`aws ec2 create-vpc --cidr-block $CIDR_BLOCK --output text | cut -f 7` - -echo "Creating subnet..." -SUBNET=`aws ec2 create-subnet --cidr-block $SUBNET_CIDR_BLOCK --vpc-id $VPC --output text | cut -f 9` -aws ec2 modify-subnet-attribute --subnet-id $SUBNET --map-public-ip-on-launch - -echo "Getting default security group of VPC $VPC..." -SECURITY_GROUP=`aws ec2 describe-security-groups --filters Name=vpc-id,Values=$VPC --query 'SecurityGroups[0].GroupId' --output text` - -echo "Configuring security group $SECURITY_GROUP..." -# Allow for ssh incoming traffic -aws ec2 authorize-security-group-ingress --group-id $SECURITY_GROUP --port 22 --cidr 0.0.0.0/0 --protocol tcp - -echo "Creating internet gateway..." -GATEWAY=`aws ec2 create-internet-gateway --output text | cut -f 2` - -echo "Attaching internet gateway..." -aws ec2 attach-internet-gateway --internet-gateway-id $GATEWAY --vpc-id $VPC - -echo "Looking up route table..." -ROUTE_TABLE=$(aws ec2 describe-route-tables --filters Name=vpc-id,Values=$VPC --query 'RouteTables[0].RouteTableId' --output text) - -echo "Creating route..." -aws ec2 create-route --route-table-id $ROUTE_TABLE --gateway-id $GATEWAY --destination-cidr-block 0.0.0.0/0 - -echo "Creating keypair $KEYPAIR_NAME..." -# Remove junk from around keypair that confuses ssh. -aws ec2 create-key-pair --key-name $KEYPAIR_NAME --output text | sed 's/^.*\t-----/-----/' | sed 's/KEY-----.*$/KEY-----/'i > $KEYPAIR_NAME.pem - -# Permissions must be just so for ssh to be happy. -chmod 600 $KEYPAIR_NAME.pem - -echo "Creating $configFile with all the details..." - -cat > $configFile < ").format(sys.argv[0]) + exit(1) + + CONFIG_FILE=sys.argv[1] + IMAGE_NAME=sys.argv[2] + + sys.stdout.write("Checking for aws command in PATH...") + + # if os.system("which aws >/dev/null 2>&1"): + if not os.system("which aws >/dev/null 2>&1"): + print("okay") + else: + print("failed") + print("{}: The \"aws\" command must be in your path to use this script.").format(sys.argv[0]) + exit(1) + + sys.stdout.write("Checking for aws configuration...") + + if os.path.isfile(os.path.expanduser("~/.aws/config")): + print("okay") + else: + print("failed") + print("{}: You must run \"aws configure\" before using this script.").format(sys.argv[0]) + # os.echo() + exit(1) + + print("Checking for correct credentials...") + if not os.system("aws ec2 describe-instances >/dev/null 2>&1"): + print("okay") + else: + print("failed") + print("{}: Your Amazon credentials are not set up correctly. Try \"aws ec2 describe-instances\" to troubleshoot.").format(sys.argv[0]) + exit(1) + + print("Creating virtual private cluster...") + vpc_cmd = "aws ec2 create-vpc --cidr-block {} --output json".format(CIDR_BLOCK) + vpc_proc = subprocess.Popen(vpc_cmd, stdout=subprocess.PIPE, shell=True) + vpc_json = vpc_proc.stdout.read() + vpc_array = json.loads(vpc_json.rstrip()) + vpc_id = vpc_array["Vpc"]["VpcId"] + + print("Creating subnet...") + subnet_cmd = "aws ec2 create-subnet --cidr-block {} --vpc-id {} --output json".format(SUBNET_CIDR_BLOCK, vpc_id) + subnet_proc = subprocess.Popen(subnet_cmd, stdout=subprocess.PIPE, shell=True) + subnet_json = subnet_proc.stdout.read() + subnet_array = json.loads(subnet_json.rstrip()) + subnet_id = subnet_array["Subnet"]["SubnetId"] + + modify_subnet_cmd = "aws ec2 modify-subnet-attribute --subnet-id {} --map-public-ip-on-launch".format(subnet_id) + os.system(modify_subnet_cmd) + print("modify attribute of subnet {}".format(subnet_id)) + + print("Getting default security group of VPC {}...".format(vpc_id)) + security_group_cmd = "aws ec2 describe-security-groups --filters Name=vpc-id,Values={} --query 'SecurityGroups[0].GroupId' --output json".format(vpc_id) + security_group_proc = subprocess.Popen(security_group_cmd, stdout=subprocess.PIPE, shell=True) + security_group_json = security_group_proc.stdout.read() + security_group_id = json.loads(security_group_json.rstrip()) + + print("Configuring security group {}...".format(security_group_id)) + # Allow for ssh incoming traffic + os.system("aws ec2 authorize-security-group-ingress --group-id {} --port 22 --cidr 0.0.0.0/0 --protocol tcp".format(security_group_id)) + + print("Creating internet gateway...") + gateway_proc = subprocess.Popen("aws ec2 create-internet-gateway --output json", stdout=subprocess.PIPE, shell=True) + gateway_json = gateway_proc.stdout.read() + gateway_array = json.loads(gateway_json.rstrip()) + gateway_id = gateway_array["InternetGateway"]["InternetGatewayId"] + + print("Attaching internet gateway...") + os.system("aws ec2 attach-internet-gateway --internet-gateway-id {} --vpc-id {}".format(gateway_id, vpc_id)) + + print("Looking up route table...") + route_table_cmd = "aws ec2 describe-route-tables --filters Name=vpc-id,Values={} --query 'RouteTables[0].RouteTableId' --output json".format(vpc_id) + route_table_proc = subprocess.Popen(route_table_cmd, stdout=subprocess.PIPE, shell=True) + route_table_json = route_table_proc.stdout.read() + route_table_id = json.loads(route_table_json.rstrip()) + + print("Creating route...") + os.system("aws ec2 create-route --route-table-id {} --gateway-id {} --destination-cidr-block 0.0.0.0/0".format(route_table_id, gateway_id)) + + print(("Creating keypair {}...").format(KEYPAIR_NAME)) + # Remove junk from around keypair that confuses ssh. + key_pair_cmd = "aws ec2 create-key-pair --key-name {} --output json".format(KEYPAIR_NAME) + key_pair_proc = subprocess.Popen(key_pair_cmd, stdout=subprocess.PIPE, shell=True) + key_pair_json = key_pair_proc.stdout.read() + key_pair_array = json.loads(key_pair_json.rstrip()) + key_pair_material = key_pair_array["KeyMaterial"] + + f = open(KEYPAIR_FILE,"w") + f.write(key_pair_material) + f.close() + + # Permissions must be just so for ssh to be happy. + os.system("chmod 600 {}".format(KEYPAIR_FILE)) + + # Assigning absolute path to the keypair_file to enable work queue functions + KEYPAIR_PATH = os.path.abspath(KEYPAIR_FILE) + + + print("Creating {} with all the details...".format(CONFIG_FILE)) + #print("WARNING: the absolute path of your keypair is assigned to this config file: {}".format(KEYPAIR_PATH)) + config_f = open(CONFIG_FILE,"w") + config_f.write("vpc {}\n".format(vpc_id)) + config_f.write("subnet {}\n".format(subnet_id)) + config_f.write("gateway {}\n".format(gateway_id)) + config_f.write("route_table {}\n".format(route_table_id)) + config_f.write("security_group_id {}\n".format(security_group_id)) + config_f.write("security_group_name {}\n".format(SECURITY_GROUP_NAME)) + config_f.write("keypair_name {}\n".format(KEYPAIR_NAME)) + config_f.write("ami {}\n".format(IMAGE_NAME)) + config_f.close() -echo "Done!" + print("Done!") diff -Nru cctools-7.0.22/makeflow/src/makeflow_gc.c cctools-7.1.2/makeflow/src/makeflow_gc.c --- cctools-7.0.22/makeflow/src/makeflow_gc.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_gc.c 2020-05-05 15:31:15.000000000 +0000 @@ -16,7 +16,6 @@ #include "dag.h" #include "makeflow_log.h" -#include "makeflow_wrapper.h" #include "makeflow_gc.h" #include @@ -57,21 +56,6 @@ return 0; } -/* -For a given dag node, export all variables into the environment. -This is currently only used when cleaning a makeflow recurisvely, -and would be better handled by invoking batch_job_local. -*/ - -static void makeflow_node_export_variables( struct dag *d, struct dag_node *n ) -{ - struct jx *j = dag_node_env_create(d,n,0); - if(j) { - jx_export(j); - jx_delete(j); - } -} - /* Prepare the dag for garbage collection by identifying which files may or may not be gcd. */ void makeflow_parse_input_outputs( struct dag *d ) @@ -99,6 +83,8 @@ /* add collect_list, for sink_files that should be removed */ string_split_quotes(input_list, &argc, &argv); for(i = 0; i < argc; i++) { + // skip empty strings + if(!argv[i][0]) continue; d->completed_files += 1; f = dag_file_lookup_or_create(d, argv[i]); set_insert(d->inputs, f); @@ -154,7 +140,7 @@ makeflow_hook_file_clean(f); if(batch_fs_unlink(queue, f->filename) == 0) { - debug(D_MAKEFLOW_RUN, "File deleted %s\n", f->filename); + printf("deleted %s\n",f->filename); d->total_file_size -= f->actual_size; makeflow_log_file_state_change(d, f, DAG_FILE_STATE_DELETE); makeflow_hook_file_deleted(f); @@ -169,17 +155,60 @@ return 0; } -void makeflow_clean_node(struct dag *d, struct batch_queue *queue, struct dag_node *n) +/* +Clean up all the files generated by this task. +Note that a task is generated from a node by applying +a variety of wrappers and options, and so may have +more output files than the abstract dag node. +*/ + +void makeflow_clean_task( struct dag *dag, struct batch_queue *queue, struct batch_task *task ) { - if(n->nested_job){ - char *command = xxmalloc(sizeof(char) * (strlen(n->command) + 4)); - sprintf(command, "%s -c", n->command); + struct batch_file *bf; + struct dag_file *df; - /* XXX this should use the batch job interface for consistency */ - makeflow_node_export_variables(d, n); + list_first_item(task->output_files); + while((bf = list_next_item(task->output_files))) { + df = dag_file_lookup_or_create(dag, bf->outer_name); + makeflow_clean_file(dag, queue, df); + } +} + + +extern struct batch_task * makeflow_node_to_task( struct dag_node *node, struct batch_queue *queue ); + +/* +Clean an individual node in the dag. +Generate the task from the node, if needed. +If it is a plain command, clean up the stated output files. +If a workflow, pass --clean to the workflow command. +*/ + +void makeflow_clean_node(struct dag *d, struct batch_queue *queue, struct dag_node *n) +{ + /* + If we are doing log recovery, the full task may not exist yet. + Create one so that we have a complete description to clean. + */ + + if(!n->task){ + n->task = makeflow_node_to_task(n, makeflow_get_queue(n) ); + } + + if(n->type==DAG_NODE_TYPE_COMMAND) { + makeflow_clean_task(d,queue,n->task); + } else if(n->type==DAG_NODE_TYPE_WORKFLOW) { + printf("cleaning sub-workflow %s\n",n->workflow_file); + char *command = string_format("%s --clean",n->task->command); + printf("%s\n",command); + jx_export(n->task->envlist); system(command); + printf("done cleaning sub-workflow %s\n",n->workflow_file); free(command); } + + batch_task_delete(n->task); + n->task = 0; } /* Clean the entire dag by cleaning all nodes. */ @@ -226,18 +255,15 @@ dag_mount_clean(d); } + /* + Clean the node-specific state for workflow nodes. + Plain files have already been cleaned up at this point. + */ + struct dag_node *n; for(n = d->nodes; n; n = n->next) { - /* If the node is a Makeflow job, then we should recursively call the * - * clean operation on it. */ - if(n->nested_job) { - char *command = xxmalloc(sizeof(char) * (strlen(n->command) + 4)); - sprintf(command, "%s -c", n->command); - - /* XXX this should use the batch job interface for consistency */ - makeflow_node_export_variables(d, n); - system(command); - free(command); + if(n->type==DAG_NODE_TYPE_WORKFLOW) { + makeflow_clean_node(d,queue,n); } } diff -Nru cctools-7.0.22/makeflow/src/makeflow_linker.c cctools-7.1.2/makeflow/src/makeflow_linker.c --- cctools-7.0.22/makeflow/src/makeflow_linker.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_linker.c 2020-05-05 15:31:15.000000000 +0000 @@ -216,7 +216,7 @@ close(pipefd[1]); char next; char *buffer = (char *) malloc(sizeof(char)); - char *original_name; + char *original_name = NULL; int size = 0; int depth = dep->depth + 1; struct list *new_deps = list_create(); diff -Nru cctools-7.0.22/makeflow/src/makeflow_linker_python_driver cctools-7.1.2/makeflow/src/makeflow_linker_python_driver --- cctools-7.0.22/makeflow/src/makeflow_linker_python_driver 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_linker_python_driver 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 2.5 2.4 +#!/usr/bin/env python # Copyright (C) 2013- The University of Notre Dame # This software is distributed under the GNU General Public License. @@ -10,9 +9,16 @@ import sys import os -import imp import errno import re +import warnings + +# ignoring warnings here as we are working on a more comprenhensive solution +# for python linking, and there is no direct replacement of the functions we +# use of imp in importlib. +with warnings.catch_warnings(): + warnings.filterwarnings("ignore",category=DeprecationWarning) + import imp def usage(name): a = "USAGE: %s [options] file_to_link\n" %name @@ -33,7 +39,7 @@ module_names = [] try: f = open(filename) - except IOError, e: + except IOError as e: if e.errno == errno.EISDIR: return [] @@ -53,7 +59,7 @@ return module_names if len(sys.argv) < 2: - print usage(sys.argv[0]); + print(usage(sys.argv[0])); exit(1) file_to_link = sys.argv[-1] @@ -63,7 +69,7 @@ if len(sys.argv) > 2 and sys.argv[1] == '--use-named': use_named = True -print "*Python", sys.version.split(' ')[0] +print("*Python", sys.version.split(' ')[0]) modules = find_module_names(file_to_link) for m in modules: m_split = m.split('.') @@ -71,4 +77,4 @@ continue m_path = imp.find_module(m_split[0])[1] if m_path != file_to_link: - print m_path, m + print(m_path, m) diff -Nru cctools-7.0.22/makeflow/src/makeflow_log.c cctools-7.1.2/makeflow/src/makeflow_log.c --- cctools-7.0.22/makeflow/src/makeflow_log.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_log.c 2020-05-05 15:31:15.000000000 +0000 @@ -105,7 +105,7 @@ These event types indicate that the workflow as a whole has started or completed in the indicated manner. */ -void makeflow_node_decide_rerun(struct itable *rerun_table, struct dag *d, struct dag_node *n, int silent ); +void makeflow_node_decide_reset( struct dag *d, struct dag_node *n, int silent ); /* To balance between performance and consistency, we sync the log every 60 seconds @@ -262,17 +262,68 @@ makeflow_log_sync(d,0); } -/** The clean_mode variable was added so that we could better print out error messages - * apply in the situation. Currently only used to silence node rerun checking. - */ -int makeflow_log_recover(struct dag *d, const char *filename, int verbose_mode, struct batch_queue *queue, makeflow_clean_depth clean_mode, int skip_file_check) +/* +Dump the dag structure into the log file in comment formats. +This is used by some tools (such as Weaver) for debugging +assistance. +*/ + +void makeflow_log_dag_structure( struct dag *d ) +{ + struct dag_file *f; + struct dag_node *n, *p; + + for(n = d->nodes; n; n = n->next) { + /* Record node information to log */ + fprintf(d->logfile, "# NODE\t%d\t%s\n", n->nodeid, n->command); + + /* Record the node category to the log */ + fprintf(d->logfile, "# CATEGORY\t%d\t%s\n", n->nodeid, n->category->name); + fprintf(d->logfile, "# SYMBOL\t%d\t%s\n", n->nodeid, n->category->name); /* also write the SYMBOL as alias of CATEGORY, deprecated. */ + + /* Record node parents to log */ + fprintf(d->logfile, "# PARENTS\t%d", n->nodeid); + list_first_item(n->source_files); + while( (f = list_next_item(n->source_files)) ) { + p = f->created_by; + if(p) + fprintf(d->logfile, "\t%d", p->nodeid); + } + fputc('\n', d->logfile); + + /* Record node inputs to log */ + fprintf(d->logfile, "# SOURCES\t%d", n->nodeid); + list_first_item(n->source_files); + while( (f = list_next_item(n->source_files)) ) { + fprintf(d->logfile, "\t%s", f->filename); + } + fputc('\n', d->logfile); + + /* Record node outputs to log */ + fprintf(d->logfile, "# TARGETS\t%d", n->nodeid); + list_first_item(n->target_files); + while( (f = list_next_item(n->target_files)) ) { + fprintf(d->logfile, "\t%s", f->filename); + } + fputc('\n', d->logfile); + + /* Record translated command to log */ + fprintf(d->logfile, "# COMMAND\t%d\t%s\n", n->nodeid, n->command); + } +} + +/* +Recover the state of the workflow so far by reading back the state +from the log file, if it exists. (If not, create a new log.) +*/ + +int makeflow_log_recover(struct dag *d, const char *filename, int verbose_mode, struct batch_queue *queue, makeflow_clean_depth clean_mode ) { - char *line, *name, file[MAX_BUFFER_SIZE]; + char *line, file[MAX_BUFFER_SIZE]; int nodeid, state, jobid, file_state; int first_run = 1; struct dag_node *n; struct dag_file *f; - struct stat buf; timestamp_t previous_completion_time; uint64_t size; @@ -297,10 +348,7 @@ } else if(file_state == DAG_FILE_STATE_DELETE){ d->deleted_files += 1; } - free(line); - continue; - } - if(sscanf(line, "# CACHE %" SCNu64 " %s", &previous_completion_time, cache_dir) == 2) { + } else if(sscanf(line, "# CACHE %" SCNu64 " %s", &previous_completion_time, cache_dir) == 2) { /* if the user specifies a cache dir using --cache dir, ignore the info from the log file */ if(!d->cache_dir) { d->cache_dir = xxstrdup(cache_dir); @@ -315,10 +363,7 @@ return -1; } } - free(line); - continue; - } - if(sscanf(line, "# MOUNT %" SCNu64 " %s %s %s %d", &previous_completion_time, file, source, cache_name, &type) == 5) { + } else if(sscanf(line, "# MOUNT %" SCNu64 " %s %s %s %d", &previous_completion_time, file, source, cache_name, &type) == 5) { f = dag_file_lookup_or_create(d, file); if(!f->source) { @@ -333,30 +378,25 @@ return -1; } } - free(line); - continue; - } - if(line[0] == '#') { - free(line); - continue; - } - if(sscanf(line, "%" SCNu64 " %d %d %d", &previous_completion_time, &nodeid, &state, &jobid) == 4) { + } else if(line[0] == '#') { + /* Ignore any other comment lines */ + } else if(sscanf(line, "%" SCNu64 " %d %d %d", &previous_completion_time, &nodeid, &state, &jobid) == 4) { n = itable_lookup(d->node_table, nodeid); if(n) { n->state = state; n->jobid = jobid; /* Log timestamp is in microseconds, we need seconds for diff. */ n->previous_completion = (time_t) (previous_completion_time / 1000000); - free(line); - continue; } + } else { + fprintf(stderr, "makeflow: %s appears to be corrupted on line %d\n", filename, linenum); + exit(1); } - - fprintf(stderr, "makeflow: %s appears to be corrupted on line %d\n", filename, linenum); free(line); - exit(1); } fclose(d->logfile); + } else { + printf("creating new log file %s...\n",filename); } d->logfile = fopen(filename, "a"); @@ -370,89 +410,42 @@ } if(first_run && verbose_mode) { - struct dag_file *f; - struct dag_node *p; - for(n = d->nodes; n; n = n->next) { - /* Record node information to log */ - fprintf(d->logfile, "# NODE\t%d\t%s\n", n->nodeid, n->command); - - /* Record the node category to the log */ - fprintf(d->logfile, "# CATEGORY\t%d\t%s\n", n->nodeid, n->category->name); - fprintf(d->logfile, "# SYMBOL\t%d\t%s\n", n->nodeid, n->category->name); /* also write the SYMBOL as alias of CATEGORY, deprecated. */ - - /* Record node parents to log */ - fprintf(d->logfile, "# PARENTS\t%d", n->nodeid); - list_first_item(n->source_files); - while( (f = list_next_item(n->source_files)) ) { - p = f->created_by; - if(p) - fprintf(d->logfile, "\t%d", p->nodeid); - } - fputc('\n', d->logfile); - - /* Record node inputs to log */ - fprintf(d->logfile, "# SOURCES\t%d", n->nodeid); - list_first_item(n->source_files); - while( (f = list_next_item(n->source_files)) ) { - fprintf(d->logfile, "\t%s", f->filename); - } - fputc('\n', d->logfile); - - /* Record node outputs to log */ - fprintf(d->logfile, "# TARGETS\t%d", n->nodeid); - list_first_item(n->target_files); - while( (f = list_next_item(n->target_files)) ) { - fprintf(d->logfile, "\t%s", f->filename); - } - fputc('\n', d->logfile); - - /* Record translated command to log */ - fprintf(d->logfile, "# COMMAND\t%d\t%s\n", n->nodeid, n->command); - } + makeflow_log_dag_structure(d); } + /* + Count up the current number of nodes in the WAITING, COMPLETED, etc, states. + */ dag_count_states(d); - // Check for log consistency - if(!first_run && !skip_file_check) { - hash_table_firstkey(d->files); - while(hash_table_nextkey(d->files, &name, (void **) &f)) { - if(dag_file_should_exist(f) && !dag_file_is_source(f) && !(batch_fs_stat(queue, f->filename, &buf) >= 0)){ - fprintf(stderr, "makeflow: %s is reported as existing, but does not exist.\n", f->filename); - makeflow_log_file_state_change(d, f, DAG_FILE_STATE_UNKNOWN); - continue; - } - if(S_ISDIR(buf.st_mode)) - continue; - if(dag_file_should_exist(f) && !dag_file_is_source(f) && difftime(buf.st_mtime, f->creation_logged) > 0) { - fprintf(stderr, "makeflow: %s is reported as existing, but has been modified (%" SCNu64 " ,%" SCNu64 ").\n", f->filename, (uint64_t)buf.st_mtime, (uint64_t)f->creation_logged); - makeflow_clean_file(d, queue, f); - makeflow_log_file_state_change(d, f, DAG_FILE_STATE_UNKNOWN); - } - } - } - int silent = 0; - if(clean_mode != MAKEFLOW_CLEAN_NONE) - silent = 1; - // Decide rerun tasks + /* + If this is not the first attempt at running, then + scan for nodes that are running, failed, or aborted, + and reset them to a waiting state to be retried. + */ + if(!first_run) { - struct itable *rerun_table = itable_create(0); + printf("checking for old running or failed jobs...\n"); + int silent = clean_mode != MAKEFLOW_CLEAN_NONE; for(n = d->nodes; n; n = n->next) { - makeflow_node_decide_rerun(rerun_table, d, n, silent); + makeflow_node_decide_reset(d, n, silent); } - itable_delete(rerun_table); } - //Update file reference counts from nodes in log + /* + To bring garbage collection up to date, decrement + file reference counts for every node that is complete. + */ + for(n = d->nodes; n; n = n->next) { if(n->state == DAG_NODE_STATE_COMPLETE) { struct dag_file *f; list_first_item(n->source_files); while((f = list_next_item(n->source_files))) - f->reference_count += -1; + f->reference_count--; } } diff -Nru cctools-7.0.22/makeflow/src/makeflow_log.h cctools-7.1.2/makeflow/src/makeflow_log.h --- cctools-7.0.22/makeflow/src/makeflow_log.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_log.h 2020-05-05 15:31:15.000000000 +0000 @@ -36,7 +36,7 @@ void makeflow_log_close(struct dag *d ); /* return 0 on success, return non-zero on failure. */ -int makeflow_log_recover( struct dag *d, const char *filename, int verbose_mode, struct batch_queue *queue, makeflow_clean_depth clean_mode, int skip_file_check ); +int makeflow_log_recover( struct dag *d, const char *filename, int verbose_mode, struct batch_queue *queue, makeflow_clean_depth clean_mode ); /* write the info of a dependency specified in the mountfile into the logging system * @param d: a dag structure diff -Nru cctools-7.0.22/makeflow/src/makeflow_module_archive.c cctools-7.1.2/makeflow/src/makeflow_module_archive.c --- cctools-7.0.22/makeflow/src/makeflow_module_archive.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_module_archive.c 2020-05-05 15:31:15.000000000 +0000 @@ -5,20 +5,26 @@ Authorship : Pierce Cunneen Update/Migrated to hook: Nick Hazekamp +Updated for S3 bucket handling and directory handling for input and output files: Nicholas Potteiger */ - #include #include #include #include #include +#include +#include +#include +#include +#include #include "copy_stream.h" #include "create_dir.h" #include "debug.h" #include "list.h" #include "jx.h" +#include "jx_parse.h" #include "jx_pretty_print.h" #include "path.h" #include "set.h" @@ -27,6 +33,9 @@ #include "timestamp.h" #include "unlink_recursive.h" #include "xxmalloc.h" +#include "hash_table.h" +#include "copy_tree.h" +#include "s3_file_io.h" #include "batch_job.h" #include "batch_wrapper.h" @@ -39,13 +48,22 @@ #include "makeflow_hook.h" #define MAKEFLOW_ARCHIVE_DEFAULT_DIRECTORY "/tmp/makeflow.archive." +#define MAKEFLOW_ARCHIVE_DEFAULT_S3_BUCKET "makeflows3archive" + +float total_up_time = 0.0; +float total_down_time = 0.0; +float total_s3_check_time = 0.0; +struct hash_table *s3_files_in_archive = NULL; struct archive_instance { /* User defined values */ int read; int write; int found_archived_job; + int s3; + int s3_check; char *dir; + char *s3_dir; /* Runtime data struct */ char *source_makeflow; @@ -62,7 +80,15 @@ } static int create( void ** instance_struct, struct jx *hook_args ) -{ +{ + aws_init (); + aws_set_debug (0); + char line[256]; + + if(s3_files_in_archive == NULL){ + s3_files_in_archive = hash_table_create(0,0); + } + struct archive_instance *a = archive_instance_create(); *instance_struct = a; @@ -72,6 +98,51 @@ a->dir = string_format("%s%d", MAKEFLOW_ARCHIVE_DEFAULT_DIRECTORY, getuid()); } + if(jx_lookup_boolean(hook_args, "archive_s3_no_check")){ + a->s3_check = 0; + } + else{ + a->s3_check = 1; + } + + if(jx_lookup_string(hook_args, "archive_s3_arg")){ + a->s3 = 1; + a->s3_dir = xxstrdup(jx_lookup_string(hook_args, "archive_s3_arg")); + } + else if(jx_lookup_string(hook_args, "archive_s3_no_arg")) { + a->s3 = 1; + a->s3_dir = string_format("%s",MAKEFLOW_ARCHIVE_DEFAULT_S3_BUCKET); + } + else{ + a->s3 = 0; + } + + if(jx_lookup_string(hook_args, "s3_hostname")){ + s3_set_host(xxstrdup(jx_lookup_string(hook_args, "s3_hostname"))); + } + + if(jx_lookup_string(hook_args, "s3_keyid")){ + aws_set_keyid(xxstrdup(jx_lookup_string(hook_args, "s3_keyid"))); + } + else{ + FILE *fp = popen("grep aws_access_key_id ~/.aws/credentials | cut -d ""="" -f 2 | tr -d ' '","r"); + fgets(line, 255, fp); + line[strlen(line)-1] = '\0'; + aws_set_keyid(line); + pclose(fp); + } + + if(jx_lookup_string(hook_args, "s3_secretkey")){ + aws_set_key(xxstrdup(jx_lookup_string(hook_args, "s3_secretkey"))); + } + else{ + FILE *ft = popen("grep aws_secret_access_key ~/.aws/credentials | cut -d ""="" -f 2 | tr -d ' '","r"); + fgets(line, 255, ft); + line[strlen(line)-1] = '\0'; + aws_set_key(line); + pclose(ft); + } + if(jx_lookup_boolean(hook_args, "archive_read")){ a->read = 1; } @@ -90,15 +161,21 @@ if (!create_dir(files_dir, 0777) && errno != EEXIST){ debug(D_ERROR|D_MAKEFLOW_HOOK, "could not create files archiving directory %s: %d %s\n", files_dir, errno, strerror(errno)); + free(files_dir); return MAKEFLOW_HOOK_FAILURE; } + free(files_dir); char *tasks_dir = string_format("%s/tasks", a->dir); if (!create_dir(tasks_dir, 0777) && errno != EEXIST){ debug(D_ERROR|D_MAKEFLOW_HOOK, "could not create tasks archiving directory %s: %d %s\n", tasks_dir, errno, strerror(errno)); + free(tasks_dir); return MAKEFLOW_HOOK_FAILURE; } + free(tasks_dir); + + s3_set_bucket (a->s3_dir); return MAKEFLOW_HOOK_SUCCESS; } @@ -117,25 +194,35 @@ struct archive_instance *a = (struct archive_instance*)instance_struct; unsigned char digest[SHA1_DIGEST_LENGTH]; + // Takes hash of filename and stores it in digest sha1_file(d->filename, digest); + // Makes a c string copy of your hash address a->source_makeflow = xxstrdup(sha1_string(digest)); - + // If a is in write mode using the -w flag if (a->write) { + // Formats archive file directory char *source_makeflow_file_dir = string_format("%s/files/%.2s", a->dir, a->source_makeflow); + // If the directory was not able to be created and directory already exists if (!create_dir(source_makeflow_file_dir, 0777) && errno != EEXIST){ + // Prints out a debug error debug(D_ERROR|D_MAKEFLOW_HOOK, "could not create makeflow archiving directory %s: %d %s\n", source_makeflow_file_dir, errno, strerror(errno)); + // Frees memory for source_makeflow_file_dir free(source_makeflow_file_dir); return MAKEFLOW_HOOK_FAILURE; } - + // Gets the path of the archive file char *source_makeflow_file_path = string_format("%s/%s", source_makeflow_file_dir, a->source_makeflow); + // Frees memory free(source_makeflow_file_dir); + // If the file was unable to be copied to the new path if (!copy_file_to_file(d->filename, source_makeflow_file_path)){ + // Prints out debug error debug(D_ERROR|D_MAKEFLOW_HOOK, "Could not archive source makeflow file %s\n", source_makeflow_file_path); free(source_makeflow_file_path); return MAKEFLOW_HOOK_FAILURE; } else { + // Print out where it is stored at debug(D_MAKEFLOW_HOOK, "Source makeflow %s stored at %s\n", d->filename, source_makeflow_file_path); } free(source_makeflow_file_path); @@ -161,26 +248,34 @@ int rc = 0; struct batch_file *f; struct list_cursor *cur = list_cursor_create(t->input_files); + // Iterate through input files for(list_seek(cur, 0); list_get(cur, (void**)&f); list_next(cur)) { + // If your using an absolute path or trying to get our of a directory using the (..) if(path_has_doubledots(f->inner_name) || f->inner_name[0] == '/'){ + // Print out a debug error debug(D_MAKEFLOW_HOOK, "task %d will not be archived as input file %s->%s does not adhere to the sandbox model of execution", t->taskid, f->outer_name, f->inner_name); rc = 1; } } + // Frees memory of list cursor list_cursor_destroy(cur); cur = list_cursor_create(t->output_files); + // Iterates through output files for(list_seek(cur, 0); list_get(cur, (void**)&f); list_next(cur)) { + // Same check as input files if(path_has_doubledots(f->inner_name) || f->inner_name[0] == '/'){ + // Prints out a debug error debug(D_MAKEFLOW_HOOK, "task %d will not be archived as output file %s->%s does not adhere to the sandbox model of execution", t->taskid, f->outer_name, f->inner_name); rc = 1; } } + // Frees memory of list cursor list_cursor_destroy(cur); return rc; @@ -215,7 +310,15 @@ struct jx * input_files = jx_object(NULL); struct list_cursor *cur = list_cursor_create(t->input_files); for(list_seek(cur, 0); list_get(cur, (void**)&f); list_next(cur)) { - char *id = batch_file_generate_id(f); + /* Generate the file archive id (content based) if does not exist. */ + char * id; + if(path_is_dir(f->inner_name) == 1){ + f->hash = batch_file_generate_id_dir(f->inner_name); + id = xxstrdup(f->hash); + } + else{ + id = batch_file_generate_id(f); + } jx_insert(input_files, jx_string(f->inner_name), jx_string(id)); free(id); } @@ -225,7 +328,15 @@ struct jx * output_files = jx_object(NULL); cur = list_cursor_create(t->output_files); for(list_seek(cur, 0); list_get(cur, (void**)&f); list_next(cur)) { - char *id = batch_file_generate_id(f); + /* Generate the file archive id (content based) if does not exist. */ + char * id; + if(path_is_dir(f->inner_name) == 1){ + f->hash = batch_file_generate_id_dir(f->inner_name); + id = xxstrdup(f->hash); + } + else{ + id = batch_file_generate_id(f); + } jx_insert(output_files, jx_string(f->inner_name), jx_string(id)); free(id); } @@ -278,6 +389,81 @@ return 1; } + + + +/* Check to see if a file is already in the s3 bucket */ +static int in_s3_archive(struct archive_instance *a, char *file_name){ + char *check_sum_value = hash_table_lookup(s3_files_in_archive, file_name); + // Check to see if file is already in the hash table before checking s3 + if(check_sum_value == NULL){ + struct timeval start_time; + struct timeval end_time; + gettimeofday(&start_time, NULL); + if(s3_check(file_name) == 0){ + debug(D_MAKEFLOW_HOOK, "file/task %s does not exist in the S3 bucket: %s", file_name, a->s3_dir); + gettimeofday(&end_time,NULL); + float run_time = ((end_time.tv_sec*1000000 + end_time.tv_usec) - (start_time.tv_sec*1000000 + start_time.tv_usec)) / 1000000.0; + total_s3_check_time += run_time; + debug(D_MAKEFLOW_HOOK," It took %f seconds to check if %s is in %s",run_time, file_name, a->s3_dir); + debug(D_MAKEFLOW_HOOK," The total s3 check time is %f second(s)",total_s3_check_time); + return 0; + } + debug(D_MAKEFLOW_HOOK, "file/task %s already exists in the S3 bucket: %s", file_name, a->s3_dir); + gettimeofday(&end_time,NULL); + float run_time = ((end_time.tv_sec*1000000 + end_time.tv_usec) - (start_time.tv_sec*1000000 + start_time.tv_usec)) / 1000000.0; + total_s3_check_time += run_time; + debug(D_MAKEFLOW_HOOK," It took %f seconds to check if %s is in %s",run_time, file_name, a->s3_dir); + debug(D_MAKEFLOW_HOOK," The total s3 check time is %f second(s)",total_s3_check_time); + return 1; + } + debug(D_MAKEFLOW_HOOK, "file/task %s already cached and exists in the S3 bucket: %s",file_name, a->s3_dir); + return 1; +} + +/* Copy a file to the s3 bucket*/ +static int makeflow_archive_s3_file(struct archive_instance *a, char *batchID, char *file_path){ + // Copy to s3 archive + struct timeval start_time; + struct timeval end_time; + char *fileCopy; + FILE *fp; + //Tar directories before submitting them to s3 bucket + if(path_is_dir(file_path) != 1){ + fp = fopen(file_path,"rb"); + } + else{ + char *tarDir = string_format("tar -czvf %s.tar.gz -C %s .",file_path,file_path); + if(system(tarDir) != 0){ + free(tarDir); + return 0; + } + free(tarDir); + fileCopy = string_format("%s.tar.gz",file_path); + fp = fopen(fileCopy,"rb"); + free(fileCopy); + } + gettimeofday(&start_time, NULL); + if(s3_put(fp,batchID) != 0){ + gettimeofday(&end_time,NULL); + float run_time = ((end_time.tv_sec*1000000 + end_time.tv_usec) - (start_time.tv_sec*1000000 + start_time.tv_usec)) / 1000000.0; + total_up_time += run_time; + debug(D_MAKEFLOW_HOOK," It took %f seconds for %s to fail uploading to %s",run_time, batchID, a->s3_dir); + debug(D_MAKEFLOW_HOOK," The total upload time is %f second(s)",total_up_time); + return 0; + } + gettimeofday(&end_time,NULL); + float run_time = ((end_time.tv_sec*1000000 + end_time.tv_usec) - (start_time.tv_sec*1000000 + start_time.tv_usec)) / 1000000.0; + total_up_time += run_time; + hash_table_insert(s3_files_in_archive, batchID, batchID); + fclose(fp); + printf("Upload %s to %s/%s\n",file_path, a->s3_dir, batchID); + debug(D_MAKEFLOW_HOOK," It took %f second(s) for %s to upload to %s\n",run_time, batchID, a->s3_dir); + debug(D_MAKEFLOW_HOOK," The total upload time is %f second(s)",total_up_time); + + return 1; +} + /* Archive the specified file. * This includes several steps: * 1. Generate the id @@ -288,7 +474,15 @@ */ static int makeflow_archive_file(struct archive_instance *a, struct batch_file *f, char *job_file_archive_path) { /* Generate the file archive id (content based) if does not exist. */ - char * id = batch_file_generate_id(f); + char * id; + if(path_is_dir(f->inner_name) == 1){ + f->hash = batch_file_generate_id_dir(f->inner_name); + id = xxstrdup(f->hash); + } + else{ + id = batch_file_generate_id(f); + } + struct stat buf; int rv = 0; @@ -308,11 +502,24 @@ if(stat(file_archive_path, &buf) >= 0) { debug(D_MAKEFLOW_HOOK, "file %s already archived at %s", f->outer_name, file_archive_path); /* File did not already exist, store in general file area */ - } else if (!copy_file_to_file(f->outer_name, file_archive_path)){ - debug(D_ERROR|D_MAKEFLOW_HOOK, "could not archive output file %s at %s: %d %s\n", - f->outer_name, file_archive_path, errno, strerror(errno)); - rv = 1; - goto FAIL; + } else { + if(path_is_dir(f->outer_name) != 1){ + if (!copy_file_to_file(f->outer_name, file_archive_path)){ + debug(D_ERROR|D_MAKEFLOW_HOOK, "could not archive output file %s at %s: %d %s\n", + f->outer_name, file_archive_path, errno, strerror(errno)); + rv = 1; + goto FAIL; + } + } + else{ + debug(D_MAKEFLOW,"COPYING %s to the archive",f->outer_name); + if(copy_dir(f->outer_name,file_archive_path) != 0){ + debug(D_ERROR|D_MAKEFLOW_HOOK, "could not archive output file %s at %s: %d %s\n", + f->outer_name, file_archive_path, errno, strerror(errno)); + rv = 1; + goto FAIL; + } + } } /* Create the directory structure for job_file_archive. */ @@ -325,6 +532,23 @@ goto FAIL; } + if(a->s3){ + int result = 1; + // Check to see if file already exists in the s3 bucket + if(a->s3_check){ + if(!in_s3_archive(a,id)){ + result = makeflow_archive_s3_file(a,id,file_archive_path); + } + } + else + result = makeflow_archive_s3_file(a,id,file_archive_path); + /* Copy file to the s3 bucket*/ + if(!result){ + debug(D_ERROR|D_MAKEFLOW_HOOK, "could not copy file %s to s3 bucket: %d %s\n", id, errno, strerror(errno)); + rv = 1; + goto FAIL; + } + } free(file_archive_path); file_archive_path = string_format("../../../../files/%.2s/%s", id, id); @@ -350,10 +574,13 @@ struct batch_file *f; struct list_cursor *cur = list_cursor_create(t->input_files); + // Iterate through input files for(list_seek(cur, 0); list_get(cur, (void**)&f); list_next(cur)) { - char *input_file_path = string_format("%s/input_files/%s", archive_directory_path, f->inner_name); + char *input_file_path = string_format("%s/input_files/%s", archive_directory_path,basename(f->inner_name)); + // Archive each file for inputs int failed_checksum = makeflow_archive_file(a, f, input_file_path); free(input_file_path); + // Check to see it was archived correctly if(failed_checksum){ list_cursor_destroy(cur); return 0; @@ -368,8 +595,10 @@ struct batch_file *f; struct list_cursor *cur = list_cursor_create(t->output_files); + // Iterate through output files for(list_seek(cur, 0); list_get(cur, (void**)&f); list_next(cur)) { - char *output_file_path = string_format("%s/output_files/%s", archive_directory_path, f->inner_name); + char *output_file_path = string_format("%s/output_files/%s", archive_directory_path,basename(f->inner_name)); + // Archive each file for outputs int failed_checksum = makeflow_archive_file(a, f, output_file_path); free(output_file_path); if(failed_checksum){ @@ -383,9 +612,12 @@ /* Using the task prefix, creates the specified directory and checks for failure. */ static int makeflow_archive_create_dir(char * prefix, char * name){ + // Creates directory path to be used as string char *tmp_directory_path = string_format("%s%s", prefix, name); + // Actually creates directory int created = create_dir(tmp_directory_path, 0777); free(tmp_directory_path); + // If new directory is not created if (!created){ debug(D_ERROR|D_MAKEFLOW_HOOK,"Could not create archiving directory %s\n", tmp_directory_path); return 1; @@ -403,7 +635,7 @@ @return 1 if archive was successful, 0 if archive failed. */ static int makeflow_archive_task(struct archive_instance *a, struct dag_node *n, struct batch_task *t) { - /* Generate the task id */ + // Generates a hash id for the task char *id = batch_task_generate_id(t); int result = 1; @@ -416,6 +648,7 @@ dir_create_error = makeflow_archive_create_dir(archive_directory_path, "/output_files/"); dir_create_error += makeflow_archive_create_dir(archive_directory_path, "/input_files/"); + // Checks to see if there was an error creating the directories if(dir_create_error){ result = 0; goto FAIL; @@ -427,11 +660,12 @@ goto FAIL; } - + // Create the input files if(!makeflow_archive_write_input_files(a, t, archive_directory_path)){ result = 0; goto FAIL; } + // Create the output files if(!makeflow_archive_write_output_files(a, t, archive_directory_path)){ result = 0; goto FAIL; @@ -440,6 +674,7 @@ printf("task %d successfully archived\n", t->taskid); FAIL: + // Free all of the memory free(archive_directory_path); free(id); return result; @@ -472,18 +707,62 @@ int makeflow_archive_copy_preserved_files(struct archive_instance *a, struct batch_task *t, char *task_path ) { struct batch_file *f; - + struct stat buf; struct list_cursor *cur = list_cursor_create(t->output_files); + // Iterate through output files for(list_seek(cur, 0); list_get(cur, (void**)&f); list_next(cur)) { - char *output_file_path = string_format("%s/output_files/%s",task_path, f->inner_name); - int success = copy_file_to_file(output_file_path, f->outer_name); - free(output_file_path); - if (!success) { - list_cursor_destroy(cur); - debug(D_ERROR|D_MAKEFLOW_HOOK,"Failed to copy output file %s to %s\n", output_file_path, f->outer_name); - return 1; + char *file_name = xxstrdup(f->outer_name); + debug(D_MAKEFLOW_HOOK,"Trying to copy file to %s",file_name); + char *file_to_check = xxstrdup(file_name); + //Check to see if the directory was copied as an empty file/incorrectly + stat(dirname(file_to_check),&buf); + if(S_ISREG(buf.st_mode)){ + debug(D_MAKEFLOW,"Removing empty file in the place of directory name %s",file_to_check); + char *dirEmpty = string_format("rm -rf %s",file_to_check); + system(dirEmpty); + free(dirEmpty); } - } + free(file_to_check); + // Gets path of output file + char *output_file_path = string_format("%s/output_files/%s",task_path,basename(file_name)); + char *directory_name = xxstrdup(file_name); + debug(D_MAKEFLOW_HOOK,"Creating directory %s",dirname(directory_name)); + if(strcmp(directory_name,file_name) != 0){ + //Create the upper level directory to copy the output files into if necessary + if (!create_dir(directory_name, 0777) && errno != EEXIST){ + debug(D_ERROR|D_MAKEFLOW_HOOK,"Failed to create directory %s",directory_name); + free(directory_name); + free(output_file_path); + free(file_name); + return 1; + } + } + free(directory_name); + // Copy output file or directory over to specified location + if(path_is_dir(output_file_path) != 1){ + int success = copy_file_to_file(output_file_path, file_name); + free(output_file_path); + free(file_name); + if (!success) { + list_cursor_destroy(cur); + debug(D_ERROR|D_MAKEFLOW_HOOK,"Failed to copy output file %s to %s\n", output_file_path, file_name); + return 1; + } + } + else{ + if(copy_dir(output_file_path, file_name) != 0){ + list_cursor_destroy(cur); + debug(D_ERROR|D_MAKEFLOW_HOOK,"Failed to copy output file %s to %s\n", output_file_path, file_name); + free(output_file_path); + free(file_name); + return 1; + } + free(output_file_path); + free(file_name); + } + } + + list_cursor_destroy(cur); return 0; @@ -492,7 +771,7 @@ int makeflow_archive_is_preserved(struct archive_instance *a, struct batch_task *t, char *task_path) { struct batch_file *f; struct stat buf; - + // If the task does NOT adhere to the sandbox or there is a failure with getting the stat if(makeflow_archive_task_adheres_to_sandbox(t) || (stat(task_path, &buf) < 0)){ /* Not helpful unless you know the task number. */ debug(D_MAKEFLOW_HOOK, "task %d has not been previously archived at %s", t->taskid, task_path); @@ -500,11 +779,16 @@ } struct list_cursor *cur = list_cursor_create(t->output_files); + // Iterate through output files making sure they all exist for(list_seek(cur, 0); list_get(cur, (void**)&f); list_next(cur)) { - char *filename = string_format("%s/output_files/%s", task_path, f->inner_name); + // Get path of the output file + char *filename = string_format("%s/output_files/%s", task_path, basename(f->inner_name)); + // Check the statistics of the output file at the location int file_exists = stat(filename, &buf); + // If there is a failure with running stat delete the cursor and free memory if (file_exists < 0) { list_cursor_destroy(cur); + // Print debug error debug(D_MAKEFLOW_HOOK, "output file %s not found in archive at %s: %d %s", f->outer_name, filename, errno, strerror(errno)); free(filename); @@ -512,18 +796,135 @@ } free(filename); } + // Free list cursor memory list_cursor_destroy(cur); return 1; } +static int makeflow_s3_archive_copy_task_files(struct archive_instance *a, char *id, char *task_path, struct batch_task *t){ + char *taskTarFile = string_format("%s/%s",task_path,id); + // Check to see if the task is already in the local archive so it is not downloaded twice + if(access(taskTarFile,R_OK) != 0){ + // Copy tar file from the s3 bucket + struct timeval start_time; + struct timeval end_time; + char *copyTar = string_format("%s/%s",task_path,id); + FILE *taskFile = fopen(copyTar,"wb"); + gettimeofday(&start_time,NULL); + if(s3_get(taskFile,id) != 0){ + gettimeofday(&end_time,NULL); + float run_time = ((end_time.tv_sec*1000000 + end_time.tv_usec) - (start_time.tv_sec*1000000 + start_time.tv_usec)) / 1000000.0; + total_down_time += run_time; + debug(D_MAKEFLOW_HOOK," It took %f seconds for %s to fail downloading to %s",run_time, id, a->s3_dir); + debug(D_MAKEFLOW_HOOK," The total download time is %f second(s)",total_down_time); + free(copyTar); + return 0; + } + gettimeofday(&end_time,NULL); + float run_time = ((end_time.tv_sec*1000000 + end_time.tv_usec) - (start_time.tv_sec*1000000 + start_time.tv_usec)) / 1000000.0; + total_down_time += run_time; + printf("Download %s from %s/%s\n",id,a->s3_dir,id); + debug(D_MAKEFLOW_HOOK," It took %f seconds for %s to download from %s",run_time, id, a->s3_dir); + debug(D_MAKEFLOW_HOOK," The total download time is %f second(s)",total_down_time); + free(copyTar); + fclose(taskFile); + + char *extractTar = string_format("tar -xzvf %s/%s -C %s",task_path,id,task_path); + if(system(extractTar) == -1){ + free(extractTar); + return 0; + } + free(extractTar); + + struct batch_file *f; + struct list_cursor *cur = list_cursor_create(t->output_files); + // Iterate through output files + for(list_seek(cur, 0); list_get(cur, (void**)&f); list_next(cur)) { + char *output_file_path = string_format("%s/output_files/%s", task_path, basename(f->inner_name)); + char buf[1024]; + ssize_t len; + // Read what the symlink is actually pointing to + if((len = readlink(output_file_path, buf, sizeof(buf)-1)) != -1) + buf[len] = '\0'; + free(output_file_path); + // Grabs the actual name of the file from the buffer + char *file_name = basename(buf); + debug(D_MAKEFLOW_HOOK,"The FILE_NAME is %s",file_name); + // Check to see if the file was already copied to the /files/ directory + char *filePath = string_format("%s/files/%.2s/%s",a->dir,file_name,file_name); + char *fileDir = string_format("%s/files/%.2s",a->dir,file_name); + if(access(filePath,R_OK) != 0){ + debug(D_MAKEFLOW_HOOK,"COPYING %s to /files/ from the s3 bucket",file_name); + // Copy the file to the local archive /files/ directory + gettimeofday(&start_time,NULL); + create_dir(fileDir,0777); + FILE *fileLocal = fopen(filePath, "wb"); + if(s3_get(fileLocal, file_name) != 0){ + gettimeofday(&end_time,NULL); + run_time = ((end_time.tv_sec*1000000 + end_time.tv_usec) - (start_time.tv_sec*1000000 + start_time.tv_usec)) / 1000000.0; + total_down_time += run_time; + debug(D_MAKEFLOW_HOOK," It took %f seconds for %s to fail downloading from %s",run_time, id, a->s3_dir); + debug(D_MAKEFLOW_HOOK," The total download time is %f second(s)",total_down_time); + return 0; + } + gettimeofday(&end_time,NULL); + run_time = ((end_time.tv_sec*1000000 + end_time.tv_usec) - (start_time.tv_sec*1000000 + start_time.tv_usec)) / 1000000.0; + total_down_time += run_time; + printf("Download %s from %s/%s\n",file_name,a->s3_dir, file_name); + debug(D_MAKEFLOW_HOOK," It took %f seconds for %s to download from %s",run_time, id, a->s3_dir); + debug(D_MAKEFLOW_HOOK," The total download time is %f second(s)",total_down_time); + fclose(fileLocal); + //Extract the tar file of a directory (always run even if it isnt a tar file) + char *extractDirTar = string_format("tar -xzvf %s -C %s/foo >&/dev/null",filePath,fileDir); + char *makeDir = string_format("mkdir %s/foo",fileDir); + system(makeDir); + free(makeDir); + if(system(extractDirTar) != 0){ + debug(D_MAKEFLOW_HOOK,"%s is either a file or the tar file could not be extracted",file_name); + free(extractDirTar); + char *removeFooDir = string_format("rm -rf %s/foo",fileDir); + system(removeFooDir); + continue; + } + char *removeTar = string_format("rm %s",filePath); + system(removeTar); + free(removeTar); + char *renameFile = string_format("mv %s/foo %s", fileDir, filePath); + system(renameFile); + free(renameFile); + free(extractDirTar); + + } + free(fileDir); + free(filePath); + } + free(taskTarFile); + return 1; + } + debug(D_MAKEFLOW_HOOK,"TASK already exist in local archive, not downloading from s3 bucket"); + free(taskTarFile); + return 1; +} + static int batch_submit( void * instance_struct, struct batch_task *t){ struct archive_instance *a = (struct archive_instance*)instance_struct; int rc = MAKEFLOW_HOOK_SUCCESS; + // Generates a hash id for the task char *id = batch_task_generate_id(t); char *task_path = string_format("%s/tasks/%.2s/%s",a->dir, id, id); + create_dir(task_path,0777); debug(D_MAKEFLOW_HOOK, "Checking archive for task %d at %.5s\n", t->taskid, id); + if(a->s3){ + int result = 1; + result = makeflow_s3_archive_copy_task_files(a, id, task_path, t); + if(!result){ + debug(D_MAKEFLOW_HOOK, "unable to copy task files for task %s from S3 bucket",id); + } + } + + // If a is in read mode and the archive is preserved (all the output files exist) if(a->read && makeflow_archive_is_preserved(a, t, task_path)){ debug(D_MAKEFLOW_HOOK, "Task %d already exists in archive, replicating output files\n", t->taskid); @@ -543,39 +944,91 @@ static int batch_retrieve( void * instance_struct, struct batch_task *t){ struct archive_instance *a = (struct archive_instance*)instance_struct; int rc = MAKEFLOW_HOOK_SUCCESS; - + // Generates a hash id for the task char *id = batch_task_generate_id(t); char *task_path = string_format("%s/tasks/%.2s/%s",a->dir, id, id); + + // If a is in read mode and the archive is preserved (all the output files exist) if(a->read && makeflow_archive_is_preserved(a, t, task_path)){ + // Print out debug statement debug(D_MAKEFLOW_HOOK, "Task %d run was bypassed using archive\n", t->taskid); + // Bypass task run rc = MAKEFLOW_HOOK_RUN; } - + // Free excess memory free(id); free(task_path); return rc; } +/*Compress the task file and copy it to the S3 bucket*/ +static int makeflow_archive_s3_task(struct archive_instance *a, char *taskID, char *task_path){ + // Convert directory to a tar.gz file + struct timeval start_time; + struct timeval end_time; + char *tarConvert = string_format("tar -czvf %s.tar.gz -C %s .",taskID,task_path); + if(system(tarConvert) == -1){ + free(tarConvert); + return 0; + } + free(tarConvert); + + // Add file to the s3 bucket + char *tarFile = string_format("%s.tar.gz",taskID); + FILE *fp = fopen(tarFile,"rb"); + gettimeofday(&start_time, NULL); + if(s3_put(fp,taskID) != 0){ + gettimeofday(&end_time,NULL); + float run_time = ((end_time.tv_sec*1000000 + end_time.tv_usec) - (start_time.tv_sec*1000000 + start_time.tv_usec)) / 1000000.0; + total_up_time += run_time; + debug(D_MAKEFLOW_HOOK," It took %f seconds for %s to fail uploading to %s",run_time, taskID, a->s3_dir); + debug(D_MAKEFLOW_HOOK," The total upload time is %f second(s)",total_up_time); + free(tarFile); + return 0; + } + gettimeofday(&end_time,NULL); + float run_time = ((end_time.tv_sec*1000000 + end_time.tv_usec) - (start_time.tv_sec*1000000 + start_time.tv_usec)) / 1000000.0; + total_up_time += run_time; + printf("Upload %s to %s/%s\n",tarFile,a->s3_dir,taskID); + debug(D_MAKEFLOW_HOOK," It took %f seconds for %s to upload to %s",run_time, taskID, a->s3_dir); + debug(D_MAKEFLOW_HOOK," The total upload time is %f second(s)",total_up_time); + fclose(fp); + // Remove extra tar files on local directory + char *removeTar = string_format("rm %s",tarFile); + if(system(removeTar) == -1){ + free(removeTar); + return 0; + } + free(tarFile); + free(removeTar); + + return 1; +} static int node_success( void * instance_struct, struct dag_node *n, struct batch_task *t){ struct archive_instance *a = (struct archive_instance*)instance_struct; /* store node into archiving directory */ + // If a is in write mode if (a->write) { + // If the task does NOT adhere to the sandbox if(makeflow_archive_task_adheres_to_sandbox(t)){ + // Print debug error message debug(D_ERROR|D_MAKEFLOW_HOOK, "task %d will not be archived", t->taskid); return MAKEFLOW_HOOK_SUCCESS; } + // Generates a hash id for the task char *id = batch_task_generate_id(t); char *task_path = string_format("%s/tasks/%.2s/%s",a->dir, id, id); + // If the archive is preserved (all the output files exist) if(makeflow_archive_is_preserved(a, t, task_path)){ + // Free excess memory free(id); free(task_path); debug(D_MAKEFLOW_HOOK, "Task %d already exists in archive", t->taskid); return MAKEFLOW_HOOK_SUCCESS; } - free(id); - free(task_path); + // Otherwise archive the task debug(D_MAKEFLOW_HOOK, "archiving task %d in directory: %s\n",t->taskid, a->dir); int archived = makeflow_archive_task(a, n, t); if(!archived){ @@ -583,6 +1036,24 @@ makeflow_archive_remove_task(a, n, t); return MAKEFLOW_HOOK_FAILURE; } + debug(D_MAKEFLOW_HOOK,"The task ID in node_success is %s",id); + if(a->s3){ + int s3Archived = 1; + // Check to see if the task is already in the s3 bucket + if(a->s3_check){ + if(!in_s3_archive(a,id)) + s3Archived = makeflow_archive_s3_task(a,id, task_path); + } + else + s3Archived = makeflow_archive_s3_task(a,id, task_path); + if(!s3Archived){ + debug(D_MAKEFLOW_HOOK, "unable to archive task %s in S3 archive",id); + return MAKEFLOW_HOOK_FAILURE; + } + } + + free(id); + free(task_path); } return MAKEFLOW_HOOK_SUCCESS; diff -Nru cctools-7.0.22/makeflow/src/makeflow_module_basic_wrapper.c cctools-7.1.2/makeflow/src/makeflow_module_basic_wrapper.c --- cctools-7.0.22/makeflow/src/makeflow_module_basic_wrapper.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_module_basic_wrapper.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,250 @@ +/* + * Copyright (C) 2015- The University of Notre Dame + * This software is distributed under the GNU General Public License. + * See the file COPYING for details. + * */ + +#include "rmonitor.h" +#include "stringtools.h" +#include "list.h" +#include "xxmalloc.h" + +#include "batch_task.h" + +#include "dag.h" +#include "makeflow_hook.h" + +#include +#include + + +struct wrapper_instance { + char *command; + struct list *input_files; + struct list *output_files; + + struct itable *remote_names; + + int uses_remote_rename; +}; + +struct wrapper_instance *wrapper_instance_create() +{ + struct wrapper_instance *w = malloc(sizeof(*w)); + w->command = NULL; + + w->input_files = list_create(); + w->output_files = list_create(); + + w->remote_names = itable_create(0); + + w->uses_remote_rename = 0; + + return w; +} + + +void wrapper_add_input_file( struct wrapper_instance *w, const char *file ) +{ + char *f = xxstrdup(file); + char *p = strchr(f, '='); + if(p) w->uses_remote_rename = 1; + list_push_tail(w->input_files, f); +} + +void wrapper_add_output_file( struct wrapper_instance *w, const char *file ) +{ + char *f = xxstrdup(file); + char *p = strchr(f, '='); + if(p) w->uses_remote_rename = 1; + list_push_tail(w->output_files, f); +} + + +static int create( void ** instance_struct, struct jx *hook_args ){ + struct wrapper_instance *w = wrapper_instance_create(); + *instance_struct = w; + + struct jx *array = jx_lookup(hook_args, "wrapper_command"); + if (array && array->type == JX_ARRAY) { + struct jx *item = NULL; + while((item = jx_array_shift(array))) { + if(item->type == JX_STRING){ + if(!w->command) { + w->command = xxstrdup(item->u.string_value); + } else { + char *command = string_wrap_command(w->command,item->u.string_value); + free(w->command); + w->command = command; + } + debug(D_MAKEFLOW_HOOK, "Wrapper input file added : %s", item->u.string_value); + } else { + debug(D_ERROR|D_MAKEFLOW_HOOK, "Non-string argument passed to Wrapper hook as command"); + return MAKEFLOW_HOOK_FAILURE; + } + jx_delete(item); + } + } + + + array = jx_lookup(hook_args, "wrapper_input"); + if (array && array->type == JX_ARRAY) { + struct jx *item = NULL; + while((item = jx_array_shift(array))) { + if(item->type == JX_STRING){ + wrapper_add_input_file(w, item->u.string_value); + debug(D_MAKEFLOW_HOOK, "Wrapper input file added : %s", item->u.string_value); + } else { + debug(D_ERROR|D_MAKEFLOW_HOOK, "Non-string argument passed to Wrapper hook as input file"); + return MAKEFLOW_HOOK_FAILURE; + } + jx_delete(item); + } + } + + array = jx_lookup(hook_args, "wrapper_output"); + if (array && array->type == JX_ARRAY) { + struct jx *item = NULL; + while((item = jx_array_shift(array))) { + if(item->type == JX_STRING){ + wrapper_add_output_file(w, item->u.string_value); + debug(D_MAKEFLOW_HOOK, "Wrapper output file added : %s", item->u.string_value); + } else { + debug(D_ERROR|D_MAKEFLOW_HOOK, "Non-string argument passed to Wrapper hook as output file"); + return MAKEFLOW_HOOK_FAILURE; + } + jx_delete(item); + } + } + + return MAKEFLOW_HOOK_SUCCESS; +} + +void wrapper_instance_delete(struct wrapper_instance *w) +{ + if(w->command) + free(w->command); + + list_free(w->input_files); + list_delete(w->input_files); + + list_free(w->output_files); + list_delete(w->output_files); + + if(w->uses_remote_rename){ + uint64_t f; + char *remote; + itable_firstkey(w->remote_names); + while(itable_nextkey(w->remote_names, &f, (void **) &remote)){ + free(remote); + } + } + itable_delete(w->remote_names); + + free(w); +} + +static int destroy( void * instance_struct, struct dag *d ){ + struct wrapper_instance *w = (struct wrapper_instance*)instance_struct; + if (w){ + wrapper_instance_delete(w); + } + return MAKEFLOW_HOOK_SUCCESS; +} + +void wrapper_generate_files( struct batch_task *task, struct dag_node *n, struct wrapper_instance *w) +{ + char *f; + char *nodeid = string_format("%d",n->nodeid); + + list_first_item(w->input_files); + while((f = list_next_item(w->input_files))) + { + char *filename = string_replace_percents(f, nodeid); + char *f = xxstrdup(filename); + free(filename); + + char *remote, *p; + struct dag_file *file; + p = strchr(f, '='); + if(p) { + *p = 0; + file = dag_file_lookup_or_create(n->d, f); + if(!n->local_job && !itable_lookup(w->remote_names, (uintptr_t) file)){ + remote = xxstrdup(p+1); + itable_insert(w->remote_names, (uintptr_t) file, (void *)remote); + makeflow_hook_add_input_file(n->d, task, f, remote, file->type); + } else { + makeflow_hook_add_output_file(n->d, task, f, NULL, file->type); + } + *p = '='; + } else { + file = dag_file_lookup_or_create(n->d, f); + makeflow_hook_add_input_file(n->d, task, f, NULL, file->type); + } + free(f); + } + + list_first_item(w->output_files); + while((f = list_next_item(w->output_files))) + { + char *filename = string_replace_percents(f, nodeid); + char *f = xxstrdup(filename); + free(filename); + + char *remote, *p; + struct dag_file *file; + p = strchr(f, '='); + if(p) { + *p = 0; + file = dag_file_lookup_or_create(n->d, f); + if(!n->local_job && !itable_lookup(w->remote_names, (uintptr_t) file)){ + remote = xxstrdup(p+1); + itable_insert(w->remote_names, (uintptr_t) file, (void *)remote); + makeflow_hook_add_output_file(n->d, task, f, remote, file->type); + } else { + makeflow_hook_add_output_file(n->d, task, f, NULL, file->type); + } + *p = '='; + } else { + file = dag_file_lookup_or_create(n->d, f); + makeflow_hook_add_output_file(n->d, task, f, NULL, file->type); + } + free(f); + } + free(nodeid); + +} + +static int node_submit( void * instance_struct, struct dag_node *n, struct batch_task *t) +{ + struct wrapper_instance *w = (struct wrapper_instance*)instance_struct; + + wrapper_generate_files(t, n, w); + + char *nodeid = string_format("%d",n->nodeid); + char *wrap_tmp = string_replace_percents(w->command, nodeid); + + batch_task_wrap_command(t, wrap_tmp); + + free(nodeid); + free(wrap_tmp); + + return MAKEFLOW_HOOK_SUCCESS; +} + + + + +struct makeflow_hook makeflow_hook_basic_wrapper = { + .module_name = "Basic Wrapper", + + .create = create, + .destroy = destroy, + + .node_submit = node_submit, + +}; + + + diff -Nru cctools-7.0.22/makeflow/src/makeflow_module_docker.c cctools-7.1.2/makeflow/src/makeflow_module_docker.c --- cctools-7.0.22/makeflow/src/makeflow_module_docker.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_module_docker.c 2020-05-05 15:31:15.000000000 +0000 @@ -49,7 +49,7 @@ if(jx_lookup_string(hook_args, "docker_container_image")){ d->image = xxstrdup(jx_lookup_string(hook_args, "docker_container_image")); } else { - debug(D_NOTICE|D_MAKEFLOW_HOOK, "Docker hook requires container image name to be specified"); + debug(D_ERROR|D_MAKEFLOW_HOOK, "Docker hook requires container image name to be specified"); return MAKEFLOW_HOOK_FAILURE; } diff -Nru cctools-7.0.22/makeflow/src/makeflow_module_enforcement.c cctools-7.1.2/makeflow/src/makeflow_module_enforcement.c --- cctools-7.0.22/makeflow/src/makeflow_module_enforcement.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_module_enforcement.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,282 @@ +/* + * Copyright (C) 2015- The University of Notre Dame + * This software is distributed under the GNU General Public License. + * See the file COPYING for details. + * */ + +#include "stringtools.h" +#include "xxmalloc.h" +#include "copy_stream.h" +#include "debug.h" +#include "envtools.h" + +#include "list.h" +#include "dag.h" +#include "makeflow_hook.h" +#include "makeflow_log.h" + +#include "batch_job.h" +#include "batch_file.h" +#include "batch_task.h" +#include "batch_wrapper.h" + +#include +#include +#include +#include +#include +#include + +struct parrot_enforce_instance { + char *parrot_path; + char *local_parrot_path; + char *env_replace; + char *local_env_replace; + char *enforce_prefix; + char *mountlist_prefix; + char *tmp_prefix; +}; + +struct parrot_enforce_instance *parrot_enforce_instance_create() +{ + struct parrot_enforce_instance *p = malloc(sizeof(*p)); + p->parrot_path = NULL; + p->local_parrot_path = NULL; + p->env_replace = NULL; + p->local_env_replace = NULL; + p->enforce_prefix = NULL; + p->mountlist_prefix = NULL; + p->tmp_prefix = NULL; + + return p; +} + +static int register_hook(struct makeflow_hook *h, struct list *hooks, struct jx **args) +{ + struct makeflow_hook *hook; + list_first_item(hooks); + while((hook = list_next_item(hooks))){ + if(hook->module_name){ + if(!strcmp(hook->module_name, h->module_name)){ + return MAKEFLOW_HOOK_SKIP; + } else if(!strcmp(hook->module_name, "Umbrella")){ + debug(D_MAKEFLOW_HOOK, "Module %s is incompatible with Umbrella.\n", h->module_name); + return MAKEFLOW_HOOK_FAILURE; + } + } + } + return MAKEFLOW_HOOK_SUCCESS; +} + +static int create( void ** instance_struct, struct jx *hook_args ){ + struct parrot_enforce_instance *p = parrot_enforce_instance_create(); + *instance_struct = p; + + if(jx_lookup_string(hook_args, "parrot_path")){ + p->parrot_path = xxstrdup(jx_lookup_string(hook_args, "parrot_path")); + } else { + char parrot_path[1024]; + if(!find_executable("parrot_run", "PATH", parrot_path, 1024)) { + debug(D_NOTICE, "parrot_path must be set for parrot enforcement"); + return MAKEFLOW_HOOK_FAILURE; + } else { + p->parrot_path = xxstrdup(parrot_path); + } + } + debug(D_MAKEFLOW_HOOK, "setting Parrot binary path to %s\n", p->parrot_path); + + if(jx_lookup_string(hook_args, "env_replace_path")){ + p->env_replace = xxstrdup(jx_lookup_string(hook_args, "env_replace_path")); + } else { + char env_replace[1024]; + if(!find_executable("env_replace", "PATH", env_replace, 1024)) { + debug(D_NOTICE, "env_replace must be set for parrot enforcement"); + return MAKEFLOW_HOOK_FAILURE; + } else { + p->env_replace = xxstrdup(env_replace); + } + } + debug(D_MAKEFLOW_HOOK, "setting env_replace binary path to %s\n", p->env_replace); + + p->local_parrot_path = xxstrdup("parrot_run"); + p->local_env_replace = xxstrdup("env_replace"); + p->enforce_prefix = xxstrdup("./enforce"); + p->mountlist_prefix = xxstrdup("mount_"); + p->tmp_prefix = xxstrdup("tmp_"); + + return MAKEFLOW_HOOK_SUCCESS; +} + +static int destroy( void * instance_struct, struct dag *d ){ + struct parrot_enforce_instance *p = (struct parrot_enforce_instance*)instance_struct; + if(p) { + free(p->parrot_path); + free(p->local_parrot_path); + free(p->env_replace); + free(p->local_env_replace); + free(p->enforce_prefix); + free(p->mountlist_prefix); + free(p->tmp_prefix); + free(p); + } + return MAKEFLOW_HOOK_SUCCESS; +} + +static int dag_check( void * instance_struct, struct dag *d ){ + struct parrot_enforce_instance *p = (struct parrot_enforce_instance*)instance_struct; + + struct stat st; + int host_parrot = open(p->parrot_path, O_RDONLY); + if (host_parrot == -1) { + debug(D_NOTICE, "could not open parrot at `%s': %s", p->parrot_path, strerror(errno)); + return MAKEFLOW_HOOK_FAILURE; + } + fstat(host_parrot, &st); + if (!(st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH))) { + debug(D_NOTICE, "%s is not executable", p->parrot_path); + return MAKEFLOW_HOOK_FAILURE; + } + int local_parrot = open(p->local_parrot_path, O_WRONLY|O_CREAT, S_IRWXU); + if (local_parrot == -1) { + debug(D_NOTICE, "could not create local copy of parrot: %s", strerror(errno)); + return MAKEFLOW_HOOK_FAILURE; + } else { + fchmod(local_parrot, 0755); + if (copy_fd_to_fd(host_parrot, local_parrot) != st.st_size) { + debug(D_NOTICE, "could not copy parrot: %s -> %s", p->parrot_path, p->local_parrot_path ); + return MAKEFLOW_HOOK_FAILURE; + } + dag_file_lookup_or_create(d, p->local_parrot_path); + } + close(local_parrot); + close(host_parrot); + + int host_env_replace = open(p->env_replace, O_RDONLY); + if (host_env_replace == -1) { + debug(D_NOTICE, "could not open env_replace at `%s': %s", p->env_replace, strerror(errno)); + return MAKEFLOW_HOOK_FAILURE; + } + fstat(host_env_replace, &st); + if (!(st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH))) { + debug(D_NOTICE, "%s is not executable", p->env_replace); + return MAKEFLOW_HOOK_FAILURE; + } + int local_env_replace = open(p->local_env_replace, O_WRONLY|O_CREAT, S_IRWXU); + if (local_env_replace == -1) { + debug(D_NOTICE, "could not create local copy of env_replace: %s", strerror(errno)); + return MAKEFLOW_HOOK_FAILURE; + } else { + fchmod(local_env_replace, 0755); + if (copy_fd_to_fd(host_env_replace, local_env_replace) != st.st_size) { + debug(D_NOTICE, "could not copy env_replace: %s -> %s", p->env_replace, p->local_env_replace ); + return MAKEFLOW_HOOK_FAILURE; + } + dag_file_lookup_or_create(d, p->local_env_replace); + } + close(local_env_replace); + close(host_env_replace); + return MAKEFLOW_HOOK_SUCCESS; +} + +static int node_submit( void * instance_struct, struct dag_node *n, struct batch_task *t) +{ + struct parrot_enforce_instance *p = (struct parrot_enforce_instance*)instance_struct; + struct batch_wrapper *enforce = batch_wrapper_create(); + batch_wrapper_prefix(enforce, p->enforce_prefix); + + struct dag_file *df = NULL; + makeflow_hook_add_input_file(n->d, t, p->local_parrot_path, p->local_parrot_path, DAG_FILE_TYPE_GLOBAL); + makeflow_hook_add_input_file(n->d, t, p->local_env_replace, p->local_env_replace, DAG_FILE_TYPE_GLOBAL); + + char *mountlist_path = string_format("%s%d", p->mountlist_prefix, n->nodeid); + char *tmp_path = string_format("%s%d", p->tmp_prefix, n->nodeid); + + /* make an invalid mountfile to send */ + FILE *mountlist = fopen(mountlist_path, "w"); + if (mountlist == NULL) { + fatal("could not create `%s': %s", mountlist_path, strerror(errno)); + } + + fprintf(mountlist, "/\t\trx\n"); + fprintf(mountlist, "/dev/null\trwx\n"); + fprintf(mountlist, "/dev/zero\trwx\n"); + fprintf(mountlist, "/dev/full\trwx\n"); + fprintf(mountlist, "/dev/random\trwx\n"); + fprintf(mountlist, "/dev/urandom\trwx\n"); + fprintf(mountlist, "/home\t\tDENY\n"); + + /* We have some X related exceptions in case someone needs to + * do some troubleshooting/configuration graphically + */ + fprintf(mountlist, "$HOME/.Xauthority\trwx\n"); + fprintf(mountlist, "/tmp/.X11-unix\trwx\n"); + + struct batch_file *f = NULL; + + list_first_item(t->input_files); + while((f=list_next_item(t->input_files))) { + fprintf(mountlist, "$PWD/%s\trwx\n", f->inner_name); + } + list_first_item(t->output_files); + while((f=list_next_item(t->output_files))) { + fprintf(mountlist, "$PWD/%s\trwx\n", f->inner_name); + } + fclose(mountlist); + + df = makeflow_hook_add_input_file(n->d, t, mountlist_path, mountlist_path, DAG_FILE_TYPE_TEMP); + makeflow_log_file_state_change(n->d, df, DAG_FILE_STATE_EXISTS); + + /* and generate a wrapper script with the current nodeid */ + char *prefix = string_format("export MOUNTFILE='%s'", mountlist_path); + batch_wrapper_pre(enforce, prefix); + free(prefix); + + char *env_replace_cmd = string_format("./%s $PWD/$MOUNTFILE $PWD/mount_tmp_file", p->local_env_replace); + batch_wrapper_pre(enforce, env_replace_cmd); + free(env_replace_cmd); + batch_wrapper_pre(enforce, "mv $PWD/mount_tmp_file $PWD/$MOUNTFILE"); + + char *tmp_create = string_format("mkdir -p \"$PWD/%s\"", tmp_path); + batch_wrapper_pre(enforce, tmp_create); + free(tmp_create); + + char *tmp_set = string_format("export \"TMPDIR=$PWD/%s\"", tmp_path); + batch_wrapper_pre(enforce, tmp_set); + free(tmp_set); + + char *cmd = string_format("./%s -m \"$PWD/$MOUNTFILE\" -- %s", p->local_parrot_path, t->command); + batch_wrapper_cmd(enforce, cmd); + free(cmd); + + char *tmp_delete = string_format("rm -rf \"$PWD/%s\"", tmp_path); + batch_wrapper_post(enforce, tmp_delete); + free(tmp_delete); + + free(mountlist_path); + free(tmp_path); + + cmd = batch_wrapper_write(enforce, t); + if(cmd){ + batch_task_set_command(t, cmd); + df = makeflow_hook_add_input_file(n->d, t, cmd, cmd, DAG_FILE_TYPE_TEMP); + debug(D_MAKEFLOW_HOOK, "Wrapper written to %s", df->filename); + makeflow_log_file_state_change(n->d, df, DAG_FILE_STATE_EXISTS); + } else { + debug(D_MAKEFLOW_HOOK, "Failed to create wrapper: errno %d, %s", errno, strerror(errno)); + return MAKEFLOW_HOOK_FAILURE; + } + free(cmd); + + return MAKEFLOW_HOOK_SUCCESS; +} + +struct makeflow_hook makeflow_hook_enforcement = { + .module_name = "Parrot Enforcement", + .register_hook = register_hook, + .create = create, + .destroy = destroy, + + .dag_check = dag_check, + + .node_submit = node_submit, +}; diff -Nru cctools-7.0.22/makeflow/src/makeflow_module_fail_dir.c cctools-7.1.2/makeflow/src/makeflow_module_fail_dir.c --- cctools-7.0.22/makeflow/src/makeflow_module_fail_dir.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_module_fail_dir.c 2020-05-05 15:31:15.000000000 +0000 @@ -77,6 +77,36 @@ return MAKEFLOW_HOOK_FAILURE; } +/* Attempt to link input files into fail dir. Do not fail on failed link. */ +int makeflow_module_link_fail_file(struct dag *d, struct dag_node *n, struct batch_queue *q, struct dag_file *f) { + assert(d); + assert(n); + assert(q); + assert(f); + + char *failout = string_format( FAIL_DIR "/%s", n->nodeid, f->filename); + struct dag_file *o = makeflow_module_lookup_fail_dir(d, q, failout); + if (o) { + if(f->state == DAG_FILE_STATE_DELETE){ + debug(D_MAKEFLOW_HOOK, "File %s has already been deleted by another hook",f->filename); + return MAKEFLOW_HOOK_SUCCESS; + } + + if (symlink(f->filename, o->filename) < 0) { + debug(D_MAKEFLOW_HOOK, "Failed to link %s -> %s: %s", + f->filename, o->filename, strerror(errno)); + } else { + debug(D_MAKEFLOW_HOOK, "Linked %s -> %s", + f->filename, o->filename); + return MAKEFLOW_HOOK_SUCCESS; + } + } else { + fprintf(stderr, "Skipping link %s -> %s", f->filename, failout); + } + free(failout); + return MAKEFLOW_HOOK_SUCCESS; +} + int makeflow_module_prep_fail_dir(struct dag *d, struct dag_node *n, struct batch_queue *q) { assert(d); assert(n); @@ -159,6 +189,8 @@ df = dag_file_lookup_or_create(n->d, bf->outer_name); if(df->type == DAG_FILE_TYPE_TEMP) { makeflow_module_move_fail_file(n->d, n, makeflow_get_queue(n), df); + } else { + makeflow_module_link_fail_file(n->d, n, makeflow_get_queue(n), df); } } diff -Nru cctools-7.0.22/makeflow/src/makeflow_module_umbrella.c cctools-7.1.2/makeflow/src/makeflow_module_umbrella.c --- cctools-7.0.22/makeflow/src/makeflow_module_umbrella.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_module_umbrella.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,293 @@ +/* + Copyright (C) 2018- The University of Notre Dame + This software is distributed under the GNU General Public License. + See the file COPYING for details. + */ + + +#include +#include +#include +#include +#include +#include +#include + +#include "debug.h" +#include "list.h" +#include "xxmalloc.h" +#include "path.h" +#include "stringtools.h" + +#include "batch_job.h" +#include "batch_task.h" +#include "batch_wrapper.h" + +#include "dag.h" +#include "dag_node.h" + +#include "makeflow_hook.h" +#include "makeflow_log.h" + +struct umbrella_instance { + char *spec; + char *binary; + char *log_prefix; + char *mode; +}; + +struct umbrella_instance *umbrella_instance_create() +{ + struct umbrella_instance *u = malloc(sizeof(*u)); + u->spec = NULL; + u->binary = NULL; + u->log_prefix = NULL; + u->mode = NULL; + + return u; +} + +/* Umbrella could feasibly have multiple invocations at + * different levels, but this is not currently implemented. + * The complexity of having passing multiple umbrella + * instances, how they interact, and how we specify specs + * properly is not being solved here. Only one instance + * is currently allowed. + * + * Additionally, it was previously decided it was + * incompatible with Parrot Enforcement. This should be + * re-assessed at a later time. + */ + +static int register_hook(struct makeflow_hook *h, struct list *hooks, struct jx **args) +{ + struct makeflow_hook *hook; + list_first_item(hooks); + while((hook = list_next_item(hooks))){ + if(hook->module_name){ + if(!strcmp(hook->module_name, h->module_name)){ + return MAKEFLOW_HOOK_SKIP; + } else if(!strcmp(hook->module_name, "Parrot Enforcement")){ + debug(D_MAKEFLOW_HOOK, "Module %s is incompatible with Parrot Enforcement.\n", h->module_name); + return MAKEFLOW_HOOK_FAILURE; + } + } + } + return MAKEFLOW_HOOK_SUCCESS; +} + +static int create( void ** instance_struct, struct jx *hook_args ){ + struct umbrella_instance *u = umbrella_instance_create(); + *instance_struct = u; + + if(jx_lookup_string(hook_args, "umbrella_spec")){ + u->spec = xxstrdup(jx_lookup_string(hook_args, "umbrella_spec")); + debug(D_MAKEFLOW_HOOK, "setting umbrella spec to %s\n", u->spec); + } + + if(jx_lookup_string(hook_args, "umbrella_binary")){ + u->binary = xxstrdup(jx_lookup_string(hook_args, "umbrella_binary")); + debug(D_MAKEFLOW_HOOK, "setting umbrella binary to %s\n", u->binary); + } + + if(jx_lookup_string(hook_args, "umbrella_log_prefix")) { + u->log_prefix = string_format("%s.%%", (jx_lookup_string(hook_args, "umbrella_log_prefix"))); + debug(D_MAKEFLOW_HOOK, "setting umbrella log_prefix to %s\n", u->log_prefix); + } + + if(jx_lookup_string(hook_args, "umbrella_mode")) { + u->mode = xxstrdup(jx_lookup_string(hook_args, "umbrella_mode")); + } else { + u->mode = xxstrdup("local"); + } + debug(D_MAKEFLOW_HOOK, "setting umbrella mode to %s\n", u->mode); + + return MAKEFLOW_HOOK_SUCCESS; +} + +static int destroy( void * instance_struct, struct dag *d ){ + struct umbrella_instance *u = (struct umbrella_instance*)instance_struct; + if(u) { + free(u->spec); + free(u->binary); + free(u->log_prefix); + free(u->mode); + free(u); + } + return MAKEFLOW_HOOK_SUCCESS; +} + +static int dag_check( void * instance_struct, struct dag *d ){ + struct umbrella_instance *u = (struct umbrella_instance*)instance_struct; + struct stat st; + if(u->spec){ + if(batch_fs_stat(makeflow_get_remote_queue(), u->spec, &st) == -1) { + debug(D_NOTICE, "stat on %s failed: %s\n", u->spec, strerror(errno)); + return MAKEFLOW_HOOK_FAILURE; + } + if((st.st_mode & S_IFMT) != S_IFREG) { + debug(D_NOTICE, "umbrella spec should specify a regular file\n"); + return MAKEFLOW_HOOK_FAILURE; + } + } else { + debug(D_NOTICE, "no general umbrella spec specified.\n"); + return MAKEFLOW_HOOK_FAILURE; + } + + if(u->binary){ + if(batch_fs_stat(makeflow_get_remote_queue(), u->binary, &st) == -1) { + debug(D_NOTICE, "stat on %s failed: %s\n", u->binary, strerror(errno)); + return MAKEFLOW_HOOK_FAILURE; + } + if((st.st_mode & S_IFMT) != S_IFREG) { + debug(D_NOTICE, "Umbrella binary should specify a regular file\n"); + return MAKEFLOW_HOOK_FAILURE; + } + } else { + debug(D_MAKEFLOW_HOOK, "umbrella binary is not set, therefore an umbrella binary should be available on an execution node if umbrella is used to deliver the execution environment.\n"); + } + return MAKEFLOW_HOOK_SUCCESS; +} + +static int dag_start( void * instance_struct, struct dag *d ){ + struct umbrella_instance *u = (struct umbrella_instance*)instance_struct; + /* If no log_prefix is set use the makeflow name as a starter. */ + if(!u->log_prefix){ + u->log_prefix = string_format("%s.umbrella.log.", d->filename); + debug(D_MAKEFLOW_HOOK, "setting wrapper_umbrella->log_prefix to %s\n", u->log_prefix); + } + + /* This loop exists to pull specs that are specific to each node. */ + struct dag_node *cur; + cur = d->nodes; + while(cur) { + struct dag_variable_lookup_set s = {d, cur->category, cur, NULL}; + char *spec = NULL; + spec = dag_variable_lookup_string("SPEC", &s); + if(spec) { + debug(D_MAKEFLOW_RUN, "setting dag_node->umbrella_spec (rule %d) from the makefile ...\n", cur->nodeid); + dag_node_set_umbrella_spec(cur, xxstrdup(spec)); + } + free(spec); + cur = cur->next; + } + + return MAKEFLOW_HOOK_SUCCESS; +} + +// the caller should free the result. +char *makeflow_umbrella_print_files(struct list *files, bool is_output) { + struct batch_file *f; + char *result = xxstrdup(""); + + // construct the --output or --inputs option of umbrella based on files + list_first_item(files); + while((f = list_next_item(files))){ + result = string_combine(result, f->outer_name); + result = string_combine(result, "="); + result = string_combine(result, f->inner_name); + + if(is_output) result = string_combine(result, ":f,"); + else result = string_combine(result, ","); + } + + return result; +} + +static int node_submit( void * instance_struct, struct dag_node *n, struct batch_task *t) +{ + struct umbrella_instance *u = (struct umbrella_instance*)instance_struct; + struct batch_wrapper *wrapper = batch_wrapper_create(); + batch_wrapper_prefix(wrapper, "./umbrella"); + + if(n->umbrella_spec){ + makeflow_hook_add_input_file(n->d, t, n->umbrella_spec, path_basename(n->umbrella_spec), DAG_FILE_TYPE_GLOBAL); + } else { + makeflow_hook_add_input_file(n->d, t, u->spec, path_basename(u->spec), DAG_FILE_TYPE_GLOBAL); + } + + debug(D_MAKEFLOW_HOOK, "input_files: %s\n", batch_files_to_string(makeflow_get_queue(n), t->input_files)); + char *umbrella_input_opt = makeflow_umbrella_print_files(t->input_files, false); + debug(D_MAKEFLOW_HOOK, "umbrella input opt: %s\n", umbrella_input_opt); + + debug(D_MAKEFLOW_HOOK, "output_files: %s\n", batch_files_to_string(makeflow_get_queue(n), t->output_files)); + char *umbrella_output_opt = makeflow_umbrella_print_files(t->output_files, true); + debug(D_MAKEFLOW_HOOK, "umbrella output opt: %s\n", umbrella_output_opt); + + // Binary is added after inputs are specified to prevent umbrella being passed into itself + // Not always breaking, but allows umbrella executable to be located at absolute path outside of docker + if(u->binary) makeflow_hook_add_input_file(n->d, t, u->binary, path_basename(u->binary), DAG_FILE_TYPE_GLOBAL); + + char *log = string_format("%s%d", u->log_prefix, n->nodeid); + struct dag_file *log_file = makeflow_hook_add_output_file(n->d, t, log, NULL, DAG_FILE_TYPE_INTERMEDIATE); + free(log); + + char *local_binary = NULL; + /* If no binary is specified always assume umbrella is in path. */ + if (!u->binary) { + local_binary = xxstrdup("umbrella"); + /* If remote rename isn't allowed pass binary as specified locally. */ + } else if (!batch_queue_supports_feature(makeflow_get_queue(n), "remote_rename")) { + local_binary = xxstrdup(u->binary); + /* If we have the binary and can remotely rename, use ./binary (usually umbrella). */ + } else { + local_binary = string_format("./%s",path_basename(u->binary)); + } + + char *local_spec = NULL; + /* If the node has a specific spec listed use this. */ + if(n->umbrella_spec){ + /* Use the basename if we can remote rename. */ + if (!batch_queue_supports_feature(makeflow_get_queue(n), "remote_rename")) { + local_spec = xxstrdup(n->umbrella_spec); + } else { + local_spec = xxstrdup(path_basename(n->umbrella_spec)); + } + /* If no specific spec use generic. */ + } else { + /* Use the basename if we can remote rename. */ + if (!batch_queue_supports_feature(makeflow_get_queue(n), "remote_rename")) { + local_spec = xxstrdup(u->spec); + } else { + local_spec = xxstrdup(path_basename(u->spec)); + } + } + + char *cmd = string_format("%s --spec \"%s\" --localdir ./umbrella_test --inputs \"%s\" --output \"%s\" --sandbox_mode \"%s\" --log \"%s\" run \"%s\"", + local_binary, local_spec, umbrella_input_opt, umbrella_output_opt, u->mode, log_file->filename, t->command); + batch_wrapper_cmd(wrapper, cmd); + free(cmd); + + cmd = batch_wrapper_write(wrapper, t); + if(cmd){ + batch_task_set_command(t, cmd); + struct dag_file *df = makeflow_hook_add_input_file(n->d, t, cmd, cmd, DAG_FILE_TYPE_TEMP); + debug(D_MAKEFLOW_HOOK, "Wrapper written to %s", df->filename); + makeflow_log_file_state_change(n->d, df, DAG_FILE_STATE_EXISTS); + } else { + debug(D_MAKEFLOW_HOOK, "Failed to create wrapper: errno %d, %s", errno, strerror(errno)); + return MAKEFLOW_HOOK_FAILURE; + } + free(cmd); + + free(local_binary); + free(local_spec); + free(umbrella_input_opt); + free(umbrella_output_opt); + return MAKEFLOW_HOOK_SUCCESS; +} + +struct makeflow_hook makeflow_hook_umbrella = { + .module_name = "Umbrella", + .register_hook = register_hook, + .create = create, + .destroy = destroy, + + .dag_check = dag_check, + .dag_start = dag_start, + + .node_submit = node_submit, +}; + + + diff -Nru cctools-7.0.22/makeflow/src/makeflow_monitor cctools-7.1.2/makeflow/src/makeflow_monitor --- cctools-7.0.22/makeflow/src/makeflow_monitor 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_monitor 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/makeflow/src/makeflow_mpi_starter.c cctools-7.1.2/makeflow/src/makeflow_mpi_starter.c --- cctools-7.0.22/makeflow/src/makeflow_mpi_starter.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_mpi_starter.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,321 @@ +/* +Copyright (C) 2018- The University of Notre Dame +This software is distributed under the GNU General Public License. +See the file COPYING for details. +*/ + +#ifdef CCTOOLS_WITH_MPI + +#include +#include +#include "hash_table.h" +#include "jx.h" +#include "jx_parse.h" +#include +#include "getopt.h" +#include "getopt_aux.h" +#include "stringtools.h" +#include "load_average.h" +#include +#include "host_memory_info.h" +#include "int_sizes.h" +#include +#include "xxmalloc.h" +#include +#include +#include + +int workqueue_pid; + +void wq_handle(int sig) { + kill(workqueue_pid, SIGTERM); + _exit(0); +} + + + +static const struct option long_options[] = { + {"makeflow-arguments", required_argument, 0, 'm'}, + {"workqueue-arguments", required_argument, 0, 'q'}, + {"makeflow-port", required_argument, 0, 'p'}, + {"copy-out", required_argument, 0, 'c'}, + {"help", no_argument, 0, 'h'}, + {"debug", required_argument, 0, 'd'}, + {0, 0, 0, 0} +}; + +void print_help() { + printf("Use: makeflow_mpi_starter [options]\n"); + printf("Basic Options:\n"); + printf(" -m,--makeflow-arguments Options to pass to makeflow, such as dagfile, etc\n"); + printf(" -p,--makeflow-port The port for Makeflow to use when communicating with workers\n"); + printf(" -q,--workqueue-arguments Options to pass to work_queue_worker\n"); + printf(" -c,--copy-out Where to copy out all files produced\n"); + printf(" -d,--debug Base Debug file name\n"); + printf(" -h,--help Print out this help\n"); +} + +static char* get_ipaddr() { + FILE* ipstream = popen("hostname -i", "r"); + + int one, two, three, four; + fscanf(ipstream, "%i.%i.%i.%i", &one, &two, &three, &four); + + pclose(ipstream); + + return string_format("%i.%i.%i.%i", one, two, three, four); +} + +int main(int argc, char** argv) { + + + //show help? + int c; + for (c = 0; c < argc; c++) { + if (strstr(argv[c], "-h") || strstr(argv[c], "--help")) { + print_help(); + return 0; + } + } + c = 0; + + //mpi boilerplate code modified from tutorial at www.mpitutorial.com + MPI_Init(NULL, NULL); + int mpi_world_size; + MPI_Comm_size(MPI_COMM_WORLD, &mpi_world_size); + int mpi_rank; + MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); + char procname[MPI_MAX_PROCESSOR_NAME]; + int procnamelen; + MPI_Get_processor_name(procname, &procnamelen); + int rank_0_cores = 1; + + struct hash_table* comps = hash_table_create(0, 0); + struct hash_table* sizes = hash_table_create(0, 0); + + if (mpi_rank == 0) { //Master to decide who stays and who doesn't + int i; + + for (i = 1; i < mpi_world_size; i++) { + unsigned len = 0; + MPI_Recv(&len, 1, MPI_UNSIGNED, i, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); + char* str = malloc(sizeof (char*)*len + 1); + memset(str, '\0', sizeof (char)*len + 1); + MPI_Recv(str, len, MPI_CHAR, i, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); + + struct jx* recobj = jx_parse_string(str); + char* name = (char*) jx_lookup_string(recobj, "name"); + int rank = jx_lookup_integer(recobj, "rank"); + + + if (hash_table_lookup(comps, name) == NULL) { + long long p = rank; + hash_table_insert(comps, name, (void*) p); + } + //for partition sizing + if (hash_table_lookup(sizes, name) == NULL) { + long long p = 1; + hash_table_insert(sizes, name, (void*) p); + } else { + long long val = (long long) hash_table_lookup(sizes, name); + hash_table_remove(sizes, name); + long long p = val + 1; + hash_table_insert(sizes, name, (void*) p); + + } + + jx_delete(recobj); + + } + for (i = 1; i < mpi_world_size; i++) { + hash_table_firstkey(comps); + char* key; + long long value; + int sent = 0; + while (hash_table_nextkey(comps, &key, (void**) &value)) { + if (value == i) { + MPI_Send("LIVE", 4, MPI_CHAR, i, 0, MPI_COMM_WORLD); + sent = 1; + } + } + if (sent == 0) { + MPI_Send("DIE ", 4, MPI_CHAR, i, 0, MPI_COMM_WORLD); + } + } + + } else { //send proc name and num + hash_table_delete(comps); + char* sendstr = string_format("{\"name\":\"%s\",\"rank\":%i}", procname, mpi_rank); + unsigned len = strlen(sendstr); + MPI_Send(&len, 1, MPI_UNSIGNED, 0, 0, MPI_COMM_WORLD); + MPI_Send(sendstr, len, MPI_CHAR, 0, 0, MPI_COMM_WORLD); + + free(sendstr); + //get if live or die + char livedie[10]; + MPI_Recv(livedie, 4, MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); + if (strstr(livedie, "DIE")) { + MPI_Finalize(); + return 0; + } else if (strstr(livedie, "LIVE")) { + //do nothing, continue + } else { + MPI_Finalize(); + return 1; + }//corrupted string or something + } + + //end major + + char* makeflow_args = ""; + char* workqueue_args = ""; + char* port = "9000"; + char* cpout = NULL; + char* debug_base = NULL; + while ((c = getopt_long(argc, argv, "m:q:p:c:d:h", long_options, 0)) != -1) { + switch (c) { + case 'm': //makeflow-options + makeflow_args = xxstrdup(optarg); + break; + case 'q': //workqueue-options + workqueue_args = xxstrdup(optarg); + break; + case 'p': + port = xxstrdup(optarg); + break; + case 'h': + print_help(); + break; + case 'c': + cpout = xxstrdup(optarg); + break; + case 'd': + debug_base = xxstrdup(optarg); + break; + default: //ignore anything not wanted + break; + } + } + + if (mpi_rank == 0) { //we're makeflow + char* master_ipaddr = get_ipaddr(); + unsigned mia_len = strlen(master_ipaddr); + long long value; + char* key; + hash_table_firstkey(comps); + while (hash_table_nextkey(comps, &key, (void**) &value)) { + MPI_Send(&mia_len, 1, MPI_UNSIGNED, value, 0, MPI_COMM_WORLD); + MPI_Send(master_ipaddr, mia_len, MPI_CHAR, value, 0, MPI_COMM_WORLD); + } + //tell the remaining how big to make themselves + hash_table_firstkey(sizes); + char* sizes_key; + long long sizes_cor; + while (hash_table_nextkey(sizes, &sizes_key, (void**) &sizes_cor)) { + hash_table_firstkey(comps); + while (hash_table_nextkey(comps, &key, (void**) &value)) { + if (strstr(key, sizes_key) != NULL) { + if (getenv("MPI_WORKER_CORES_PER") != NULL) { //check to see if we're passing this via env-var + sizes_cor = atoi(getenv("MPI_WORKER_CORES_PER")); + } + int sizes_cor_int = sizes_cor; + MPI_Send(&sizes_cor_int, 1, MPI_INT, value, 0, MPI_COMM_WORLD); + } + } + } + + int cores = rank_0_cores; + int cores_total = load_average_get_cpus(); + UINT64_T memtotal; + UINT64_T memavail; + host_memory_info_get(&memavail, &memtotal); + int mem = ((memtotal / (1024 * 1024)) / cores_total) * cores; //MB + + char* sys_str = string_format("makeflow -T wq --port=%s --local-cores=%i --local-memory=%i %s", port, 1, mem, makeflow_args); + if (debug_base != NULL) { + sys_str = string_format("makeflow -T wq --port=%s -dall --debug-file=%s.makeflow --local-cores=%i --local-memory=%i %s", port, debug_base, 1, mem, makeflow_args); + } + + int k = 0; + k = system(sys_str); + hash_table_firstkey(comps); + //char* key1; + //long long value1; + while (hash_table_nextkey(comps, &key, (void**) &value)) { + unsigned die = 10; + MPI_Send(&die, 1, MPI_UNSIGNED, value, 0, MPI_COMM_WORLD); + } + + if (cpout != NULL) { + sys_str = string_format("cp -r `pwd`/* %s", cpout); + system(sys_str); + } + + hash_table_delete(comps); + hash_table_delete(sizes); + + MPI_Finalize(); + return k; + + } else { //we're a work_queue_worker + + unsigned len = 0; + MPI_Recv(&len, 1, MPI_UNSIGNED, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); + char* master_ip = malloc(sizeof (char*)*len + 1); + memset(master_ip, '\0', sizeof (char)*len + 1); + MPI_Recv(master_ip, len, MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); + + int cores; + MPI_Recv(&cores, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); + + //get a fair amount of memory, for now + int cores_total = load_average_get_cpus(); + UINT64_T memtotal; + UINT64_T memavail; + host_memory_info_get(&memavail, &memtotal); + int mem = ((memtotal / (1024 * 1024)) / cores_total) * cores; //gigabytes + + char* sys_str = string_format("work_queue_worker --timeout=86400 --cores=%i --memory=%i %s %s %s", cores, mem, master_ip, port, workqueue_args); + if (debug_base != NULL) { + sys_str = string_format("work_queue_worker --timeout=86400 -d all -o %s.workqueue.%i --cores=%i --memory=%i %s %s %s", debug_base, mpi_rank, cores, mem, master_ip, port, workqueue_args); + } + int pid = fork(); + int k = 0; + if (pid == 0) { + signal(SIGTERM, wq_handle); + for (;;) { + workqueue_pid = fork(); + if (workqueue_pid == 0) { + int argc; + char **argv; + string_split_quotes(sys_str, &argc, &argv); + execvp(argv[0], argv); + fprintf(stderr, "Oh no, workqueue execvp didn't work..."); + exit(1); + } + int status_wq; + waitpid(workqueue_pid, &status_wq, 0); + } + } else { + unsigned die; + MPI_Recv(&die, 1, MPI_UNSIGNED, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); + kill(pid, SIGTERM); + } + + MPI_Finalize(); + return k; + + } + + return 0; +} +#else +#include +int main(int argc, char** argv){ + fprintf(stdout,"To use this Program, please configure and compile cctools with MPI.\n"); +} + +#endif + + +/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/makeflow/src/makeflow_mpi_submitter.c cctools-7.1.2/makeflow/src/makeflow_mpi_submitter.c --- cctools-7.0.22/makeflow/src/makeflow_mpi_submitter.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_mpi_submitter.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,530 @@ +/* + * Copyright (C) 2018- The University of Notre Dame + * This software is distributed under the GNU General Public License. + * See the file COPYING for details. + * */ + +#include +#include +#include +#include "hash_table.h" +#include "jx.h" +#include "jx_parse.h" +#include "getopt.h" +#include "getopt_aux.h" +#include "stringtools.h" +#include "list.h" +#include "xxmalloc.h" +#include + +static const struct option long_options[] = { + {"makeflow-arguments", required_argument, 0, 'm'}, + {"workqueue-arguments", required_argument, 0, 'q'}, + {"makeflow-port", required_argument, 0, 'p'}, + {"slots", required_argument, 0, 'w'}, + {"max-submits", required_argument, 0, 'W'}, + {"email", required_argument, 0, 'e'}, + {"queue", required_argument, 0, 'u'}, + {"help", no_argument, 0, 'h'}, + {"mpi-name", required_argument, 0, 'n'}, + {"config-file", required_argument, 0, 'C'}, + {"mpi-module", required_argument, 0, 'o'}, + {"type", required_argument, 0, 'T'}, + {"cores-per-worker", required_argument, 0, 'c'}, + {"memory", required_argument, 0, 'M'}, + {"disk", required_argument,0,'D'}, + {"disk-location",required_argument,0,'S'}, + {"time-limit",required_argument,0,'t'}, + {"copy-out",required_argument,0,'O'}, + {"makeflow", no_argument, 0, 'K'}, + {0, 0, 0, 0} +}; + +void print_help() { + printf("usage: mpi_submitter [options]\n"); + printf(" -K,--makeflow Use Makeflow -T mpi instead of mpi_starter or mpi_worker\n"); + printf(" -m,--makeflow-arguments Options to pass to makeflow master\n"); + printf(" -q,--workqueue-arguments Options to pass to work_queue_workers\n"); + printf(" -p,--makeflow-port The port to set the makeflow master to use\n"); + printf(" -w,--slots How many Slots per-submission\n"); + printf(" -W,--max-submits Maximum number of submissions to do\n"); + printf(" -c,--cores-per-worker How many cores per worker on each node submitted\n"); + printf(" -M,--memory How much memory per worker on each node submitted\n"); + printf(" -D,--disk How much disk space to use on each node submitted\n"); + printf(" -S,--disk-location Root location for scratch space\n"); + printf(" -e,--email Email for submitting to TORQUE or SGE\n"); + printf(" -u,--queue Queue name being submitted to on SGE\n"); + printf(" -n,--mpi-name The MPI queue being submitted to\n"); + printf(" -C,--config-file A JSON representation of the configurations needed, instead of needing to pass in command line options\n"); + printf(" -o,--mpi-module MPI module name to load before running `mpirun`\n"); + printf(" -T,--type sge, torque, or slurm \n"); + printf(" -t,--time-limit Sets a time limit for the job in the queue\n"); + printf(" -O,--copy-out Location for makeflow to copy out created files"); + + + printf("\n\n"); + printf(" -h,--help Prints out this list\n"); +} + +union mpi_submitter_ccl_guid { + char c[8]; + unsigned int ul; +}; + +static unsigned gen_guid() { + FILE* ran = fopen("/dev/urandom", "r"); + if (!ran) { + fprintf(stderr, "Cannot open /dev/urandom"); + exit(1); + } + union mpi_submitter_ccl_guid guid; + size_t k = fread(guid.c, sizeof (char), 8, ran); + if (k < 8) { + fprintf(stderr, "couldn't read 8 bytes from /dev/urandom/"); + exit(1); + } + fclose(ran); + return guid.ul; +} + +char* generate_job_name() { + char* guid_s = string_format("%u",gen_guid()); + size_t i=0, k=0; + char temp[256]; + memset(temp,'\0',256); + for(i=0; i= '0' && out[i] <= '9') { + big[k++] = out[i]; + } + } + return atoi(big); + +} + +void create_sge_file(char* fileout, struct jx* options) { + FILE* fout = fopen(fileout, "w+"); + if (!fout) { + fprintf(stderr, "cannot open given file: %s", fileout); + exit(1); + } + + char* binary = ""; + char* makeflow_options = ""; + char* workqueue_options = ""; + + if (jx_lookup_string(options, "makeflow-arguments") != NULL) { + makeflow_options = string_format("%s", jx_lookup_string(options, "makeflow-arguments")); + binary = "mpi_starter"; + if (jx_lookup_integer(options, "use-makeflow-mpi")) { + binary = "makeflow -T mpi"; + } + if (jx_lookup_string(options, "workqueue-arguments") != NULL) { + workqueue_options = string_format("%s", jx_lookup_string(options, "workqueue-arguments")); + } + } else { + binary = "mpi_worker"; + if (jx_lookup_string(options, "workqueue-arguments") != NULL) { + workqueue_options = (char*) jx_lookup_string(options, "workqueue-arguments"); + } + } + + if(jx_lookup_integer(options,"memory") != 0) { + workqueue_options = string_format("--memory=%i %s", (int) jx_lookup_integer(options, "memory"), workqueue_options); + if (strstr("makeflow -T mpi", binary)) { + makeflow_options = string_format("--mpi-memory=%i %s", (int) jx_lookup_integer(options, "memory"), makeflow_options); + } + } + if (jx_lookup_string(options, "disk") != NULL) { + workqueue_options = string_format("--disk=%s %s", jx_lookup_string(options, "disk"), workqueue_options); + } + if(jx_lookup_string(options,"disk-location")!=NULL){ + workqueue_options = string_format("--workdir=%s %s",jx_lookup_string(options,"disk-location"),workqueue_options); + } + if(jx_lookup_integer(options, "cores-per-worker") != 0){ + if (strstr("makeflow -T mpi", binary)) { + makeflow_options = string_format("--mpi-cores=%i %s", (int) jx_lookup_integer(options, "cores-per-worker"), makeflow_options); + } + } + + fprintf(fout, "#!/bin/csh\n\n"); + if (jx_lookup_string(options, "email") != NULL) { + fprintf(fout, "#$ -M %s\n", jx_lookup_string(options, "email")); //email + fprintf(fout, "#$ -m abe\n"); + } + + fprintf(fout, "#$ -pe %s %i\n", jx_lookup_string(options, "mpi-name"), (int) jx_lookup_integer(options, "slots")); //number of processes, and assume I can do this line, basically Xp + fprintf(fout, "#$ -q %s\n", jx_lookup_string(options, "queue")); //queuename + fprintf(fout, "#$ -N %s\n", generate_job_name()); //job name + + if (jx_lookup_string(options, "mpi-module") != NULL) { + fprintf(fout, "module load %s\n", jx_lookup_string(options, "mpi-module")); //assume this works + } + + if(strlen(workqueue_options)>0 && !strstr("mpi_worker",binary)){ + workqueue_options = string_format("-q \"%s\"",workqueue_options); + } + if(strlen(makeflow_options)>0 && !(strstr("mpi_worker",binary) || strstr("makeflow -T mpi",binary))){ + makeflow_options = string_format("-m \"%s\"",makeflow_options); + } + + if(strstr("makeflow -T mpi",binary)){ + workqueue_options = ""; + } + + fprintf(stderr,"makeflow options: %s\nworkqueue options: %s\n",makeflow_options,workqueue_options); + + if (jx_lookup_integer(options, "cores-per-worker") != 0) { + fprintf(fout, "setenv MPI_WORKER_CORES_PER %i\n", (int)jx_lookup_integer(options, "cores-per-worker")); + fprintf(fout, "mpirun -npernode 1 %s %s %s\n", binary, makeflow_options, workqueue_options); + } else { + fprintf(fout, "mpirun -np $NSLOTS %s %s %s\n", binary, makeflow_options, workqueue_options); + } + + fclose(fout); +} + +void create_slurm_file(char* fileout, struct jx* options) { + FILE* fout = fopen(fileout, "w+"); + + char* binary = ""; + char* makeflow_options = ""; + char* workqueue_options = ""; + char* cpout = (char*)jx_lookup_string(options,"copy-out"); + + if (jx_lookup_string(options, "makeflow-arguments") != NULL) { + makeflow_options = string_format("%s", jx_lookup_string(options, "makeflow-arguments")); + binary = "mpi_starter"; + if (jx_lookup_integer(options, "use-makeflow-mpi")) { + binary = "makeflow -T mpi"; + } + if (jx_lookup_string(options, "workqueue-arguments") != NULL) { + workqueue_options = string_format("%s", jx_lookup_string(options, "workqueue-arguments")); + } + } else { + binary = "mpi_worker"; + if (jx_lookup_string(options, "workqueue-arguments") != NULL) { + workqueue_options = (char*) jx_lookup_string(options, "workqueue-arguments"); + } + } + + if(jx_lookup_integer(options,"memory") != 0){ + workqueue_options = string_format("--memory=%i %s",(int)jx_lookup_integer(options,"memory"),workqueue_options); + if (strstr("makeflow -T mpi", binary)) { + makeflow_options = string_format("--mpi-memory=%i %s", (int) jx_lookup_integer(options, "memory"), makeflow_options); + } + } + if(jx_lookup_string(options,"disk")!=NULL){ + workqueue_options = string_format("--disk=%s %s",jx_lookup_string(options,"disk"),workqueue_options); + } + if(jx_lookup_string(options,"disk-location")!=NULL){ + workqueue_options = string_format("--workdir=%s %s",jx_lookup_string(options,"disk-location"),workqueue_options); + } + + fprintf(fout, "#!/bin/sh\n\n"); + + fprintf(fout,"#SBATCH --job-name=%s\n",generate_job_name()); + fprintf(fout,"#SBATCH --partition=%s\n",jx_lookup_string(options,"mpi-name")); + + if (jx_lookup_integer(options, "cores-per-worker") != 0) { + fprintf(fout,"#SBATCH --cpus-per-task=%i\n",(int)jx_lookup_integer(options, "cores-per-worker")); + workqueue_options = string_format("--cores=%i %s",(int)jx_lookup_integer(options,"cores-per-worker"),workqueue_options); + if (strstr("makeflow -T mpi", binary)) { + makeflow_options = string_format("--mpi-cores=%i %s", (int) jx_lookup_integer(options, "cores-per-worker"), makeflow_options); + } + } + + fprintf(fout,"#SBATCH --ntasks=%i\n",(int)jx_lookup_integer(options, "slots")); + + if(jx_lookup_integer(options,"memory") != 0 && jx_lookup_integer(options, "cores-per-worker") != 0){ + int mem = (int)jx_lookup_integer(options,"memory")/(int)jx_lookup_integer(options, "cores-per-worker"); + fprintf(fout,"#SBATCH --mem-per-cpu=%i\n",mem); + } + + if(jx_lookup_string(options,"time-limit") != NULL){ + fprintf(fout,"#SBATCH -t %s\n",jx_lookup_string(options,"time-limit")); + } + + + if (jx_lookup_string(options, "mpi-module") != NULL) { + fprintf(fout, "module load %s\n", jx_lookup_string(options, "mpi-module")); //assume this works + } + + if(strlen(workqueue_options)>0 && !strstr("mpi_worker",binary)){ + workqueue_options = string_format("-q \"%s\"",workqueue_options); + } + if(strlen(makeflow_options)>0 && !(strstr("mpi_worker",binary) || strstr("makeflow -T mpi",binary))){ + makeflow_options = string_format("-m \"%s\"",makeflow_options); + } + if(strstr("makeflow -T mpi",binary)){ + workqueue_options = ""; + } + + + if(cpout != NULL){ + fprintf(fout, "mpirun %s %s %s -c \"%s\"\n", binary, makeflow_options, workqueue_options,cpout); + }else{ + fprintf(fout, "mpirun %s %s %s\n", binary, makeflow_options, workqueue_options); + } + + fclose(fout); +} + +void create_torque_file(char* fileout, struct jx* options) { + FILE* fout = fopen(fileout, "w+"); + + char* binary = ""; + char* makeflow_options = ""; + char* workqueue_options = ""; + + if (jx_lookup_string(options, "makeflow-arguments") != NULL) { + makeflow_options = string_format("%s", jx_lookup_string(options, "makeflow-arguments")); + binary = "mpi_starter"; + if (jx_lookup_integer(options, "use-makeflow-mpi")) { + binary = "makeflow -T mpi"; + } + if (jx_lookup_string(options, "workqueue-arguments") != NULL) { + workqueue_options = string_format("%s", jx_lookup_string(options, "workqueue-arguments")); + } + } else { + binary = "mpi_worker"; + if (jx_lookup_string(options, "workqueue-arguments") != NULL) { + workqueue_options = (char*) jx_lookup_string(options, "workqueue-arguments"); + } + } + + if(jx_lookup_integer(options,"memory") != 0){ + workqueue_options = string_format("--memory=%i %s",(int)jx_lookup_integer(options,"memory"),workqueue_options); + } + if(jx_lookup_string(options,"disk")!=NULL){ + workqueue_options = string_format("--disk=%s %s",jx_lookup_string(options,"disk"),workqueue_options); + } + if(jx_lookup_string(options,"disk-location")!=NULL){ + workqueue_options = string_format("--workdir=%s %s",jx_lookup_string(options,"disk-location"),workqueue_options); + } + + fprintf(fout, "#!/bin/sh\n\n"); + + if (jx_lookup_string(options, "email") != NULL) { + fprintf(fout, "#PBS -M %s\n", jx_lookup_string(options, "email")); //email + fprintf(fout, "#PBS -m abe\n"); + } + fprintf(fout, "#PBS -N %s\n", generate_job_name()); //job name + fprintf(fout, "#PBS -j oe\n"); //join stdout and stderr + fprintf(fout, "#PBS -k o\n"); //keeps output + fprintf(fout, "#PBS -V\n"); //pass on submitter's environment + + //do all the fun nodes and processes and stuff.... + fprintf(fout, "#PBS -l nodes=%i\n",(int)jx_lookup_integer(options,"slots")); + fprintf(fout, "#PBS -l ppn=1\n"); //we're going to have to say 1, and if cores-per-worker is set, then we can send it, otherwise, set --cores=0 in the worker settings + if(jx_lookup_integer(options,"cores-per-worker") != 0){ + workqueue_options = string_format("--cores=%i %s",(int)jx_lookup_integer(options,"cores-per-worker"),workqueue_options); + if (strstr("makeflow -T mpi", binary)) { + makeflow_options = string_format("--mpi-cores=%i %s", (int) jx_lookup_integer(options, "cores-per-worker"), makeflow_options); + } + }else{ + workqueue_options = string_format("--cores=0 %s",workqueue_options); + } + //if(jx_lookup_integer(options,"memory")!=0){ + // fprintf(fout,"#PBS -l pmem=%imb\n",jx_lookup_integer(options,"memory")); + //} + + if (jx_lookup_string(options, "mpi-module") != NULL) { + fprintf(fout, "module load %s\n", jx_lookup_string(options, "mpi-module")); //assume this works + } + + if(strlen(workqueue_options)>0 && !strstr("mpi_worker",binary)){ + workqueue_options = string_format("-q \"%s\"",workqueue_options); + } + if(strlen(makeflow_options)>0 && !(strstr("mpi_worker",binary) || strstr("makeflow -T mpi",binary))){ + makeflow_options = string_format("-m \"%s\"",makeflow_options); + } + if(strstr("makeflow -T mpi",binary)){ + workqueue_options = ""; + } + fprintf(fout, "mpirun -npernode 1 -machinefile $PBS_NODEFILE %s %s %s\n", binary, makeflow_options, workqueue_options); + + + + fclose(fout); +} + +enum submitter_types { + slurm, + sge, + torque +}; + +int main(int argc, char** argv) { + + enum submitter_types type = 0; + int c; + struct jx* config = jx_object(NULL); + //char* username = getlogin(); + int max_submits = 1; + int cur_submits = 0; + struct list* ids = list_create(); + + //parse inputs for workers + //check if makeflow options -> mpi_starter, else -> mpi_worker + //submit with SGE or SLURM + + while ((c = getopt_long(argc, argv, "m:q:p:w:W:e:u:n:C:c:T:o:t:O:M:hK", long_options, 0)) != -1) { + switch (c) { + case 'm': //makeflow-options + jx_insert_string(config, "makeflow-arguments", xxstrdup(optarg)); + break; + case 'q': //workqueue-options + jx_insert_string(config, "workqueue-arguments", xxstrdup(optarg)); + break; + case 'p': //makeflow-port + jx_insert_integer(config, "makeflow-port", atoi(optarg)); + break; + case 'h': + print_help(); + return 0; + break; + case 'w': + jx_insert_integer(config, "slots", atoi(optarg)); + break; + case 'W': + max_submits = atoi(optarg); + break; + case 'c': + jx_insert_integer(config, "cores-per-worker", atoi(optarg)); + break; + case 'M': + jx_insert_integer(config, "memory", atoi(optarg)); + break; + case 'D': + jx_insert_integer(config, "disk", atoi(optarg)); + break; + case 'S': + jx_insert_string(config, "disk-location", xxstrdup(optarg)); + break; + case 'e': + jx_insert_string(config, "email", xxstrdup(optarg)); + break; + case 'u': + jx_insert_string(config, "queue", xxstrdup(optarg)); + break; + case 't': + jx_insert_string(config,"time-limit",xxstrdup(optarg)); + break; + case 'n': + jx_insert_string(config, "mpi-name", xxstrdup(optarg)); + break; + case 'C': + config = jx_parse_file(optarg); + break; + case 'T': + if (strstr(optarg, "slurm")) type = slurm; + else if (strstr(optarg, "torque")) type = torque; + else if (strstr(optarg, "sge")) type = sge; + else{ + fprintf(stderr, "Unknown submit type: %s\n", optarg); + exit(1); + } + break; + case 'o': + jx_insert_string(config, "mpi-module", xxstrdup(optarg)); + break; + case 'O': + jx_insert_string(config,"copy-out",xxstrdup(optarg)); + break; + case 'K': + jx_insert_integer(config,"use-makeflow-mpi",1); + default: //ignore anything not wanted + break; + } + } + + while (1) { + if (cur_submits < max_submits) { + cur_submits += 1; + fprintf(stderr, "Submitting a new job\n"); + char* filename = random_filename(); + char* tmp = ""; + string_format("qsub %s", filename); + switch (type) { + case slurm: + tmp = string_format("sbatch %s", filename); + create_slurm_file(filename, config); + break; + case torque: + tmp = string_format("qsub %s", filename); + create_torque_file(filename, config); + break; + case sge: + tmp = string_format("qsub %s", filename); + create_sge_file(filename, config); + break; + default: + fprintf(stderr, "You must specify a submission type\n"); + exit(1); + break; + } + + //submit job + FILE* submitret = popen(tmp, "r"); + char outs[1024]; + fgets(outs, 1024, submitret); + int id = getnum(outs); + int* idp = malloc(sizeof (int)*1); + *idp = id; + fprintf(stderr, "Submitted job: %i\n outs: %s\n", id, outs); + list_push_tail(ids, (void*) idp); + free(tmp); + + //tmp = string_format("rm %s", filename); + //system(tmp); + //free(tmp); + + } + //check on jobs + list_first_item(ids); + int* idp; + while((idp = (int*)list_next_item(ids)) != NULL){ + fprintf(stderr,"Checking on job: %i\n",*idp); + char* tmp; + switch(type){ + case slurm: + tmp = string_format("qstat -j %i",*idp); + break; + case torque: + tmp = string_format("qstat %i",*idp); + break; + case sge: + tmp = string_format("qstat -j %i",*idp); + break; + default: + tmp = string_format(" "); + break; + } + system(tmp); + free(tmp); + } + + + sleep(45); + } + + return 0; +} + + +/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/makeflow/src/makeflow_summary.c cctools-7.1.2/makeflow/src/makeflow_summary.c --- cctools-7.0.22/makeflow/src/makeflow_summary.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_summary.c 2020-05-05 15:31:15.000000000 +0000 @@ -71,7 +71,7 @@ struct dag_node *n; struct dag_file *f; - const char *fn; + const char *fn = NULL; dag_node_state_t state; struct list *output_files; output_files = list_create(); diff -Nru cctools-7.0.22/makeflow/src/makeflow_viz.c cctools-7.1.2/makeflow/src/makeflow_viz.c --- cctools-7.0.22/makeflow/src/makeflow_viz.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_viz.c 2020-05-05 15:31:15.000000000 +0000 @@ -238,7 +238,8 @@ break; case LONG_OPT_JX_ARGS: dag_syntax = DAG_SYNTAX_JX; - if(!jx_parse_cmd_args(jx_args, optarg)) + jx_args = jx_parse_cmd_args(jx_args, optarg); + if(!jx_args) fatal("Failed to parse in JX Args File.\n"); break; case LONG_OPT_JX_DEFINE: diff -Nru cctools-7.0.22/makeflow/src/makeflow_wrapper.c cctools-7.1.2/makeflow/src/makeflow_wrapper.c --- cctools-7.0.22/makeflow/src/makeflow_wrapper.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_wrapper.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,181 +0,0 @@ -/* - * Copyright (C) 2015- The University of Notre Dame - * This software is distributed under the GNU General Public License. - * See the file COPYING for details. - * */ - -#include "rmonitor.h" -#include "stringtools.h" -#include "list.h" -#include "xxmalloc.h" - -#include "batch_task.h" - -#include "dag.h" -#include "makeflow_hook.h" -#include "makeflow_wrapper.h" - -#include -#include - -struct makeflow_wrapper * makeflow_wrapper_create() -{ - struct makeflow_wrapper *w = malloc(sizeof(*w)); - w->command = NULL; - - w->input_files = list_create(); - w->output_files = list_create(); - - w->remote_names = itable_create(0); - w->remote_names_inv = hash_table_create(0, 0); - - w->uses_remote_rename = 0; - - return w; -} - -void makeflow_wrapper_delete(struct makeflow_wrapper *w) -{ - if(w->command) - free(w->command); - - list_free(w->input_files); - list_delete(w->input_files); - - list_free(w->output_files); - list_delete(w->output_files); - - if(w->uses_remote_rename){ - uint64_t f; - char *remote; - itable_firstkey(w->remote_names); - while(itable_nextkey(w->remote_names, &f, (void **) &remote)){ - free(remote); - } - } - itable_delete(w->remote_names); - - hash_table_delete(w->remote_names_inv); - - free(w); -} - -void makeflow_wrapper_add_command( struct makeflow_wrapper *w, const char *cmd ) -{ - if(!w->command) { - w->command = xxstrdup(cmd); - } else { - char *command = string_wrap_command(w->command,cmd); - free(w->command); - w->command = command; - } -} - -void makeflow_wrapper_add_input_file( struct makeflow_wrapper *w, const char *file ) -{ - char *f = xxstrdup(file); - char *p = strchr(f, '='); - if(p) w->uses_remote_rename = 1; - list_push_tail(w->input_files, f); -} - -void makeflow_wrapper_add_output_file( struct makeflow_wrapper *w, const char *file ) -{ - char *f = xxstrdup(file); - char *p = strchr(f, '='); - if(p) w->uses_remote_rename = 1; - list_push_tail(w->output_files, f); -} - -void makeflow_wrapper_generate_files( struct batch_task *task, struct list *input, struct list *output, struct dag_node *n, struct makeflow_wrapper *w) -{ - char *f; - char *nodeid = string_format("%d",n->nodeid); - - list_first_item(input); - while((f = list_next_item(input))) - { - char *filename = string_replace_percents(f, nodeid); - char *f = xxstrdup(filename); - free(filename); - - char *remote, *p; - struct dag_file *file; - p = strchr(f, '='); - if(p) { - *p = 0; - file = dag_file_lookup_or_create(n->d, f); - if(!n->local_job && !itable_lookup(w->remote_names, (uintptr_t) file)){ - remote = xxstrdup(p+1); - itable_insert(w->remote_names, (uintptr_t) file, (void *)remote); - hash_table_insert(w->remote_names_inv, remote, (void *)file); - makeflow_hook_add_input_file(n->d, task, f, remote, file->type); - } else { - makeflow_hook_add_output_file(n->d, task, f, NULL, file->type); - } - *p = '='; - } else { - file = dag_file_lookup_or_create(n->d, f); - makeflow_hook_add_input_file(n->d, task, f, NULL, file->type); - } - free(f); - } - - list_first_item(output); - while((f = list_next_item(output))) - { - char *filename = string_replace_percents(f, nodeid); - char *f = xxstrdup(filename); - free(filename); - - char *remote, *p; - struct dag_file *file; - p = strchr(f, '='); - if(p) { - *p = 0; - file = dag_file_lookup_or_create(n->d, f); - if(!n->local_job && !itable_lookup(w->remote_names, (uintptr_t) file)){ - remote = xxstrdup(p+1); - itable_insert(w->remote_names, (uintptr_t) file, (void *)remote); - hash_table_insert(w->remote_names_inv, remote, (void *)file); - makeflow_hook_add_output_file(n->d, task, f, remote, file->type); - } else { - makeflow_hook_add_output_file(n->d, task, f, NULL, file->type); - } - *p = '='; - } else { - file = dag_file_lookup_or_create(n->d, f); - makeflow_hook_add_output_file(n->d, task, f, NULL, file->type); - } - free(f); - } - free(nodeid); - -} - -/* Returns the remotename used in wrapper for local name filename */ -const char *makeflow_wrapper_get_remote_name(struct makeflow_wrapper *w, struct dag *d, const char *filename) -{ - struct dag_file *f; - char *name; - - f = dag_file_from_name(d, filename); - name = (char *) itable_lookup(w->remote_names, (uintptr_t) f); - - return name; -} - -/* Takes node->command and wraps it in wrapper_command. Then, if in monitor - * * mode, wraps the wrapped command in the monitor command. */ -void makeflow_wrap_wrapper( struct batch_task *task, struct dag_node *n, struct makeflow_wrapper *w ) -{ - if(!w) return ; - - char *nodeid = string_format("%d",n->nodeid); - char *wrap_tmp = string_replace_percents(w->command, nodeid); - - free(nodeid); - - batch_task_wrap_command(task, wrap_tmp); - free(wrap_tmp); -} diff -Nru cctools-7.0.22/makeflow/src/makeflow_wrapper_enforcement.c cctools-7.1.2/makeflow/src/makeflow_wrapper_enforcement.c --- cctools-7.0.22/makeflow/src/makeflow_wrapper_enforcement.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_wrapper_enforcement.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,129 +0,0 @@ -/* - * Copyright (C) 2015- The University of Notre Dame - * This software is distributed under the GNU General Public License. - * See the file COPYING for details. - * */ - -#include "stringtools.h" -#include "xxmalloc.h" -#include "copy_stream.h" -#include "debug.h" - -#include "list.h" -#include "dag.h" -#include "makeflow_wrapper.h" -#include "makeflow_wrapper_enforcement.h" -#include "makeflow_log.h" - -#include -#include -#include -#include -#include -#include - -#define enforcer_pattern "enforcer_" -#define mountlist_pattern "mount_" -#define tmp_pattern "tmp_" -#define local_parrot_path "parrot_run" - -void makeflow_wrapper_enforcer_init(struct makeflow_wrapper *w, char *parrot_path) { - struct stat stat_buf; - int host_parrot = open(parrot_path, O_RDONLY); - if (host_parrot == -1) { - fatal("could not open parrot at `%s': %s", parrot_path, strerror(errno)); - } - fstat(host_parrot, &stat_buf); - if (!(stat_buf.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH))) { - fatal("%s is not executable", parrot_path); - } - int local_parrot = open(local_parrot_path, O_WRONLY|O_CREAT, S_IRWXU); - if (local_parrot == -1) { - fatal("could not create local copy of parrot: %s", strerror(errno)); - } else { - fchmod(local_parrot, 0755); - if (copy_fd_to_fd(host_parrot, local_parrot) != stat_buf.st_size) { - fatal("could not copy parrot: %s"); - } - } - close(local_parrot); - close(host_parrot); - - makeflow_wrapper_add_input_file(w, local_parrot_path); - makeflow_wrapper_add_input_file(w, xxstrdup(enforcer_pattern "%%")); - makeflow_wrapper_add_input_file(w, xxstrdup(mountlist_pattern "%%")); - w->command = xxstrdup("./" enforcer_pattern "%%"); -} - -void makeflow_wrap_enforcer( struct batch_task *task, struct dag_node *n, struct makeflow_wrapper *w) -{ - if(!w) return ; - - struct batch_file *f; - FILE *enforcer = NULL; - char *enforcer_path = string_format(enforcer_pattern "%d", n->nodeid); - char *mountlist_path = string_format(mountlist_pattern "%d", n->nodeid); - char *tmp_path = string_format(tmp_pattern "%d", n->nodeid); - - makeflow_log_file_state_change(n->d, dag_file_lookup_or_create(n->d, mountlist_path), DAG_FILE_STATE_EXPECT); - - /* make an invalid mountfile to send */ - int mountlist_fd = open(mountlist_path, O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR); - if (mountlist_fd == -1) { - fatal("could not create `%s': %s", mountlist_path, strerror(errno)); - } - write(mountlist_fd, "mountlist\n", 10); - close(mountlist_fd); - - makeflow_log_file_state_change(n->d, dag_file_lookup_or_create(n->d, mountlist_path), DAG_FILE_STATE_EXISTS); - - makeflow_log_file_state_change(n->d, dag_file_lookup_or_create(n->d, enforcer_path), DAG_FILE_STATE_EXPECT); - - /* and generate a wrapper script with the current nodeid */ - int enforcer_fd = open(enforcer_path, O_WRONLY|O_CREAT, S_IRWXU); - if (enforcer_fd == -1 || (enforcer = fdopen(enforcer_fd, "w")) == NULL) { - fatal("could not create `%s': %s", enforcer_path, strerror(errno)); - } - fchmod(enforcer_fd, 0755); - fprintf(enforcer, "#!/bin/sh\n\n"); - fprintf(enforcer, "MOUNTFILE='%s'\n", mountlist_path); - fprintf(enforcer, "cat > \"$PWD/$MOUNTFILE\" <input_files); - while((f=list_next_item(task->input_files))) { - fprintf(enforcer, "$PWD/%s\trwx\n", f->inner_name); - } - list_first_item(task->output_files); - while((f=list_next_item(task->output_files))) { - fprintf(enforcer, "$PWD/%s\trwx\n", f->inner_name); - } - fprintf(enforcer, "EOF\n\n"); - fprintf(enforcer, "mkdir -p \"$PWD/%s\"\n", tmp_path); - fprintf(enforcer, "export \"TMPDIR=$PWD/%s\"\n", tmp_path); - fprintf(enforcer, "./parrot_run -m \"$PWD/$MOUNTFILE\" -- \"$@\"\n"); - fprintf(enforcer, "RC=$?\n"); - fprintf(enforcer, "rm -rf \"$PWD/%s\"\n", tmp_path); - fprintf(enforcer, "exit $RC\n"); - fclose(enforcer); - - makeflow_log_file_state_change(n->d, dag_file_lookup_or_create(n->d, enforcer_path), DAG_FILE_STATE_EXISTS); - - free(enforcer_path); - free(mountlist_path); - free(tmp_path); - - makeflow_wrap_wrapper(task, n, w); -} diff -Nru cctools-7.0.22/makeflow/src/makeflow_wrapper_enforcement.h cctools-7.1.2/makeflow/src/makeflow_wrapper_enforcement.h --- cctools-7.0.22/makeflow/src/makeflow_wrapper_enforcement.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_wrapper_enforcement.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ - -/* -Copyright (C) 2015- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef MAKEFLOW_WRAPPER_ENFORCEMENT_H -#define MAKEFLOW_WRAPPER_ENFORCEMENT_H - -void makeflow_wrapper_enforcer_init( struct makeflow_wrapper *w, char *parrot_path ); -void makeflow_wrap_enforcer( struct batch_task *task, struct dag_node *n, struct makeflow_wrapper *w); - -#endif diff -Nru cctools-7.0.22/makeflow/src/makeflow_wrapper.h cctools-7.1.2/makeflow/src/makeflow_wrapper.h --- cctools-7.0.22/makeflow/src/makeflow_wrapper.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_wrapper.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ - -/* -Copyright (C) 2015- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. - */ - -#ifndef MAKEFLOW_WRAPPER_H -#define MAKEFLOW_WRAPPER_H - -#define DEFAULT_MONITOR_LOG_FORMAT "resource-rule-%%" - -typedef enum { - CONTAINER_MODE_NONE, - CONTAINER_MODE_DOCKER, - CONTAINER_MODE_SINGULARITY, - // CONTAINER_MODE_ROCKET etc -} container_mode_t; - -struct makeflow_wrapper { - char *command; - struct list *input_files; - struct list *output_files; - - struct itable *remote_names; - struct hash_table *remote_names_inv; - - int uses_remote_rename; -}; - -struct makeflow_wrapper * makeflow_wrapper_create(); - -void makeflow_wrapper_delete(struct makeflow_wrapper *w); - -void makeflow_wrapper_add_command(struct makeflow_wrapper *w, const char *cmd); -void makeflow_wrapper_add_input_file(struct makeflow_wrapper *w, const char *file); -void makeflow_wrapper_add_output_file(struct makeflow_wrapper *w, const char *file); -void makeflow_wrapper_generate_files(struct batch_task *task, struct list *input, struct list *output, struct dag_node *n, struct makeflow_wrapper *w); -void makeflow_wrap_wrapper(struct batch_task *task, struct dag_node *n, struct makeflow_wrapper *w); - -const char *makeflow_wrapper_get_remote_name(struct makeflow_wrapper *w, struct dag *d, const char *filename); - -#endif diff -Nru cctools-7.0.22/makeflow/src/makeflow_wrapper_monitor.c cctools-7.1.2/makeflow/src/makeflow_wrapper_monitor.c --- cctools-7.0.22/makeflow/src/makeflow_wrapper_monitor.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_wrapper_monitor.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,216 +0,0 @@ -/* - * Copyright (C) 2015- The University of Notre Dame - * This software is distributed under the GNU General Public License. - * See the file COPYING for details. - * */ - -#include "create_dir.h" -#include "debug.h" -#include "path.h" -#include "rmonitor.h" -#include "stringtools.h" -#include "xxmalloc.h" - -#include "dag.h" -#include "dag_file.h" -#include "makeflow_log.h" -#include "makeflow_wrapper.h" -#include "makeflow_wrapper_monitor.h" - -#include -#include -#include -#include - -struct makeflow_monitor * makeflow_monitor_create() -{ - struct makeflow_monitor *m = malloc(sizeof(*m)); - m->wrapper = makeflow_wrapper_create(); - m->enable_debug = 0; - m->enable_time_series = 0; - m->enable_list_files = 0; - - m->interval = 1; // in seconds - m->log_prefix = NULL; - m->exe = NULL; - m->exe_remote = NULL; - - return m; -} - -void makeflow_monitor_delete(struct makeflow_monitor *m) -{ - makeflow_wrapper_delete(m->wrapper); - if(m->log_prefix) - free(m->log_prefix); - - if(m->exe) - free(m->exe); - - free(m); -} - -/* - * Prepare for monitoring by creating wrapper command and attaching the - * appropriate input and output dependencies. - * */ -void makeflow_prepare_for_monitoring( struct dag *d, struct makeflow_monitor *m, struct batch_queue *queue, char *log_dir, char *log_format) -{ - m->exe = resource_monitor_locate(NULL); - if(!m->exe) { - fatal("Monitor mode was enabled, but could not find resource_monitor in PATH."); - } - - if(batch_queue_supports_feature(queue, "remote_rename")) { - m->exe_remote = path_basename(m->exe); - } else { - m->exe_remote = NULL; - } - - int result = mkdir(log_dir, 0777); - if(result == -1){ - if(errno == ENOENT){ - result = !create_dir(log_dir, 0777); - } else if(errno != EEXIST){ - fatal("Monitor mode was enabled, but could not created output directory. %s", strerror(errno)); - } - } - if(result == 0){ // Either the mkdir was successful, or create_dir was successful. aka created in Makeflow - struct dag_file *f = dag_file_lookup_or_create(d, log_dir); - makeflow_log_file_state_change(d, f, DAG_FILE_STATE_EXISTS); - } - - m->log_prefix = string_format("%s/%s", log_dir, log_format); - char *log_name; - - if(m->exe_remote){ - log_name = string_format("%s=%s", m->exe, m->exe_remote); - makeflow_wrapper_add_input_file(m->wrapper, log_name); - free(log_name); - } else { - makeflow_wrapper_add_input_file(m->wrapper, m->exe); - } - - log_name = string_format("%s.summary", m->log_prefix); - makeflow_wrapper_add_output_file(m->wrapper, log_name); - free(log_name); - - if(m->enable_time_series) - { - log_name = string_format("%s.series", m->log_prefix); - makeflow_wrapper_add_output_file(m->wrapper, log_name); - free(log_name); - } - - if(m->enable_list_files) - { - log_name = string_format("%s.files", m->log_prefix); - makeflow_wrapper_add_output_file(m->wrapper, log_name); - free(log_name); - } -} - -/* - * Creates a wrapper command with the appropriate resource monitor string for a given node. - * Returns a newly allocated string that must be freed. - * */ - -char *makeflow_rmonitor_wrapper_command( struct makeflow_monitor *m, struct batch_queue *queue, struct dag_node *n ) -{ - char *executable; - if(m->exe_remote && !n->local_job){ - executable = string_format("./%s", m->exe_remote); - } else { - executable = string_format("%s", m->exe); - } - char *extra_options = string_format("-V '%s%s'", "category:", n->category->name); - - char *output_prefix = NULL; - if(batch_queue_supports_feature(queue, "output_directories")) { - output_prefix = xxstrdup(m->log_prefix); - } else { - output_prefix = xxstrdup(path_basename(m->log_prefix)); - } - - char * command = resource_monitor_write_command(executable, - output_prefix, - dag_node_dynamic_label(n), - extra_options, - m->enable_debug, - m->enable_time_series, - m->enable_list_files); - - char *nodeid = string_format("%d",n->nodeid); - char *result = string_replace_percents(command, nodeid); - - free(executable); - free(extra_options); - free(nodeid); - free(output_prefix); - free(command); - - return result; -} - -/* Takes node->command and wraps it in wrapper_command. Then, if in monitor - * * mode, wraps the wrapped command in the monitor command. */ -void makeflow_wrap_monitor( struct batch_task *task, struct dag_node *n, struct batch_queue *queue, struct makeflow_monitor *m ) -{ - if(!m) return ; - - char *monitor_command = makeflow_rmonitor_wrapper_command(m, queue, n); - batch_task_wrap_command(task, monitor_command); - free(monitor_command); -} - -int makeflow_monitor_move_output_if_needed(struct dag_node *n, struct batch_queue *queue, struct makeflow_monitor *m) -{ - if(!batch_queue_supports_feature(queue, "output_directories")) { - - char *nodeid = string_format("%d",n->nodeid); - char *log_prefix = string_replace_percents(m->log_prefix, nodeid); - - - char *output_prefix = xxstrdup(path_basename(log_prefix)); - - if(!strcmp(log_prefix, output_prefix)) // They are in the same location so no move - return 0; - - char *old_path = string_format("%s.summary", output_prefix); - char *new_path = string_format("%s.summary", log_prefix); - if(rename(old_path, new_path)==-1){ - debug(D_MAKEFLOW_RUN, "Error moving Resource Monitor output %s:%s. %s\n",old_path, new_path, strerror(errno)); - return 1; - } - free(old_path); - free(new_path); - - if(m->enable_time_series) - { - char *old_path = string_format("%s.series", output_prefix); - char *new_path = string_format("%s.series", log_prefix); - if(rename(old_path, new_path)==-1){ - debug(D_MAKEFLOW_RUN, "Error moving Resource Monitor output %s:%s. %s\n",old_path, new_path, strerror(errno)); - return 1; - } - free(old_path); - free(new_path); - } - - if(m->enable_list_files) - { - char *old_path = string_format("%s.files", output_prefix); - char *new_path = string_format("%s.files", log_prefix); - if(rename(old_path, new_path)==-1){ - debug(D_MAKEFLOW_RUN, "Error moving Resource Monitor output %s:%s. %s\n",old_path, new_path, strerror(errno)); - return 1; - } - free(old_path); - free(new_path); - } - - free(log_prefix); - free(output_prefix); - } - return 0; -} diff -Nru cctools-7.0.22/makeflow/src/makeflow_wrapper_monitor.h cctools-7.1.2/makeflow/src/makeflow_wrapper_monitor.h --- cctools-7.0.22/makeflow/src/makeflow_wrapper_monitor.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_wrapper_monitor.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ - -/* -Copyright (C) 2015- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef MAKEFLOW_WRAPPER_MONITOR_H -#define MAKEFLOW_WRAPPER_MONITOR_H - -/* -This module implements garbage collection on the dag. -Files that are no longer needed as inputs to any rules -may be removed, according to a variety of criteria. -*/ - -struct makeflow_monitor { - struct makeflow_wrapper *wrapper; - int enable_debug; - int enable_time_series; - int enable_list_files; - - int interval; - char *log_prefix; - char *exe; - const char *exe_remote; -}; - -struct makeflow_monitor * makeflow_monitor_create(); -void makeflow_monitor_delete(struct makeflow_monitor *m); - -void makeflow_prepare_for_monitoring( struct dag *d, struct makeflow_monitor *m, struct batch_queue *queue, char *log_dir, char *log_format); - -void makeflow_wrap_monitor(struct batch_task *task, struct dag_node *n, struct batch_queue *queue, struct makeflow_monitor *m ); - -int makeflow_monitor_move_output_if_needed(struct dag_node *n, struct batch_queue *queue, struct makeflow_monitor *m); - -#endif diff -Nru cctools-7.0.22/makeflow/src/makeflow_wrapper_sandbox.c cctools-7.1.2/makeflow/src/makeflow_wrapper_sandbox.c --- cctools-7.0.22/makeflow/src/makeflow_wrapper_sandbox.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_wrapper_sandbox.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ -/* - * Copyright (C) 2015- The University of Notre Dame - * This software is distributed under the GNU General Public License. - * See the file COPYING for details. - * */ - -#include "stringtools.h" -#include "xxmalloc.h" -#include "copy_stream.h" -#include "debug.h" - -#include "list.h" -#include "dag.h" -#include "makeflow_wrapper.h" -#include "makeflow_wrapper_sandbox.h" - -#include -#include -#include -#include -#include -#include - -void makeflow_wrapper_sandbox_init(struct makeflow_wrapper *sandbox, char *parrot_path) { - struct stat stat_buf; - const char *local_parrot_path = "./parrot_run"; - int local_parrot = open(local_parrot_path, O_WRONLY|O_CREAT|O_EXCL); - int host_parrot = open(parrot_path, O_RDONLY); - if (host_parrot == -1) { - fatal("could not open parrot at `%s': %s", parrot_path, strerror(errno)); - } - fstat(host_parrot, &stat_buf); - if (!(stat_buf.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH))) { - fatal("%s is not executable", parrot_path); - } - if (local_parrot == -1) { - if (errno != EEXIST) fatal("could not create local copy of parrot: %s", strerror(errno)); - /* parrot_run is already in the current directory, so we'll just use that */ - } else { - fchmod(local_parrot, 0755); - if (copy_fd_to_fd(host_parrot, local_parrot) != stat_buf.st_size) { - fatal("could not copy parrot: %s"); - } - } - close(local_parrot); - close(host_parrot); - - makeflow_wrapper_add_input_file(sandbox, local_parrot_path); -} - -char *makeflow_wrap_sandbox( char *result, struct dag_node *n, struct makeflow_wrapper *w, struct list *input_list, struct list *output_list ) -{ - if(!w) return result; - - struct dag_file *f; - FILE *sandbox_script; - char *sandbox_script_path = xxstrdup("./sandbox_XXXXXX"); - int sandbox_script_fd = mkstemp(sandbox_script_path); - if (sandbox_script_fd == -1 || (sandbox_script = fdopen(sandbox_script_fd, "w")) == NULL) { - fatal("could not create `%s': %s", sandbox_script_path, strerror(errno)); - } - fchmod(sandbox_script_fd, 0755); - fprintf(sandbox_script, "#!/bin/sh\n\n"); - fprintf(sandbox_script, "MOUNTFILE=`mktemp mount_XXXXXX`\n"); - fprintf(sandbox_script, "cat > $MOUNTFILE <filename); - } - list_first_item(output_list); - while((f=list_next_item(output_list))) { - fprintf(sandbox_script, "$PWD/%s\trwx\n", f->filename); - } - fprintf(sandbox_script, "EOF\n\n"); - fprintf(sandbox_script, "./parrot_run -m $MOUNTFILE -- \"$@\"\n"); - fprintf(sandbox_script, "RC=$?\n"); - fprintf(sandbox_script, "rm -f $MOUNTFILE\n"); - fprintf(sandbox_script, "exit $RC\n"); - fclose(sandbox_script); - - list_push_tail(input_list, sandbox_script_path); - - w->command = sandbox_script_path; - - return makeflow_wrap_wrapper(result, n, w); -} diff -Nru cctools-7.0.22/makeflow/src/makeflow_wrapper_umbrella.c cctools-7.1.2/makeflow/src/makeflow_wrapper_umbrella.c --- cctools-7.0.22/makeflow/src/makeflow_wrapper_umbrella.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_wrapper_umbrella.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,186 +0,0 @@ -/* - * Copyright (C) 2016- The University of Notre Dame - * This software is distributed under the GNU General Public License. - * See the file COPYING for details. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "batch_job.h" -#include "debug.h" -#include "dag.h" -#include "xxmalloc.h" -#include "makeflow_hook.h" -#include "makeflow_wrapper.h" -#include "makeflow_wrapper_umbrella.h" -#include "path.h" -#include "stringtools.h" - -struct makeflow_wrapper_umbrella *makeflow_wrapper_umbrella_create() { - struct makeflow_wrapper_umbrella *w = malloc(sizeof(struct makeflow_wrapper_umbrella)); - if(!w) { - fatal("malloc failed: %s\n", strerror(errno)); - } - - w->wrapper = makeflow_wrapper_create(); - w->spec = NULL; - w->binary = NULL; - w->log_prefix = NULL; - w->mode = NULL; - return w; -} - -void makeflow_wrapper_umbrella_set_spec(struct makeflow_wrapper_umbrella *w, const char *spec) { - struct stat st; - if(lstat(spec, &st) == -1) { - fatal("lstat(`%s`) failed: %s\n", spec, strerror(errno)); - } - if((st.st_mode & S_IFMT) != S_IFREG) { - fatal("the --umbrella-spec option of makeflow should specify a regular file\n"); - } - w->spec = spec; - debug(D_MAKEFLOW_RUN, "setting wrapper_umbrella->spec to %s\n", spec); -} - -void makeflow_wrapper_umbrella_set_binary(struct makeflow_wrapper_umbrella *w, const char *binary) { - struct stat st; - if(lstat(binary, &st) == -1) { - fatal("lstat(`%s`) failed: %s\n", binary, strerror(errno)); - } - if((st.st_mode & S_IFMT) != S_IFREG) { - fatal("the --umbrella-binary option of makeflow should binaryify a regular file\n"); - } - w->binary = binary; - debug(D_MAKEFLOW_RUN, "setting wrapper_umbrella->binary to %s\n", binary); -} - -void makeflow_wrapper_umbrella_set_log_prefix(struct makeflow_wrapper_umbrella *w, const char *log_prefix) { - if(log_prefix && *log_prefix) { - w->log_prefix = log_prefix; - debug(D_MAKEFLOW_RUN, "setting wrapper_umbrella->log_prefix to %s\n", w->log_prefix); - } -} - -void makeflow_wrapper_umbrella_set_mode(struct makeflow_wrapper_umbrella *w, const char *mode) { - if(mode && *mode) { - w->mode = mode; - debug(D_MAKEFLOW_RUN, "setting wrapper_umbrella->mode to %s\n", w->mode); - } -} - -void makeflow_wrapper_umbrella_preparation(struct makeflow_wrapper_umbrella *w, struct dag *d) { - if(!w->binary) { - debug(D_MAKEFLOW_RUN, "the --umbrella-binary option is not set, therefore an umbrella binary should be available on an execution node if umbrella is used to deliver the execution environment.\n"); - } - - // set wrapper_umbrella->log_prefix to the default value - if(!w->log_prefix) { - w->log_prefix = string_format("%s.umbrella.log", d->filename); - debug(D_MAKEFLOW_RUN, "setting wrapper_umbrella->log_prefix to %s\n", w->log_prefix); - } - - if(!w->mode) { - w->mode = "local"; - debug(D_MAKEFLOW_RUN, "setting wrapper_umbrella->mode to %s\n", w->mode); - } -} - -// the caller should free the result. -char *makeflow_umbrella_print_files(struct list *files, bool is_output) { - struct batch_file *f; - char *result = ""; - - // construct the --output or --inputs option of umbrella based on files - list_first_item(files); - while((f = list_next_item(files))){ - result = string_combine(result, f->inner_name); - result = string_combine(result, "="); - result = string_combine(result, f->inner_name); - - if(is_output) result = string_combine(result, ":f,"); - else result = string_combine(result, ","); - } - - return result; -} - -void makeflow_wrap_umbrella(struct batch_task *task, struct dag_node *n, struct makeflow_wrapper_umbrella *w, struct batch_queue *queue) -{ - if(!w) return; - - if(n->umbrella_spec){ - makeflow_hook_add_input_file(n->d, task, n->umbrella_spec, path_basename(n->umbrella_spec), DAG_FILE_TYPE_GLOBAL); - } else { - return; - } - - if(w->binary) makeflow_hook_add_input_file(n->d, task, w->binary, path_basename(w->binary), DAG_FILE_TYPE_GLOBAL); - - debug(D_MAKEFLOW_HOOK, "input_files: %s\n", batch_files_to_string(queue, task->input_files)); - char *umbrella_input_opt = makeflow_umbrella_print_files(task->input_files, false); - debug(D_MAKEFLOW_HOOK, "umbrella input opt: %s\n", umbrella_input_opt); - - debug(D_MAKEFLOW_HOOK, "output_files: %s\n", batch_files_to_string(queue, task->output_files)); - char *umbrella_output_opt = makeflow_umbrella_print_files(task->output_files, true); - debug(D_MAKEFLOW_HOOK, "umbrella output opt: %s\n", umbrella_output_opt); - - struct dag_file *log_file = makeflow_hook_add_output_file(n->d, task, w->log_prefix, NULL, DAG_FILE_TYPE_INTERMEDIATE); - - char *local_binary = NULL; - /* If no binary is specified always assume umbrella is in path. */ - if (!w->binary) { - local_binary = xxstrdup("umbrella"); - /* If remote rename isn't allowed pass binary as specified locally. */ - } else if (!batch_queue_supports_feature(queue, "remote_rename")) { - local_binary = xxstrdup(w->binary); - /* If we have the binary and can remotely rename, use ./binary (usually umbrella). */ - } else { - local_binary = string_format("./%s",path_basename(w->binary)); - } - - char *local_spec = NULL; - /* If the node has a specific spec listed use this. */ - if(n->umbrella_spec){ - /* Use the basename if we can remote rename. */ - if (!batch_queue_supports_feature(queue, "remote_rename")) { - local_spec = xxstrdup(n->umbrella_spec); - } else { - local_spec = xxstrdup(path_basename(n->umbrella_spec)); - } - /* If no specific spec use generic. */ - } else { - /* Use the basename if we can remote rename. */ - if (!batch_queue_supports_feature(queue, "remote_rename")) { - local_spec = xxstrdup(w->spec); - } else { - local_spec = xxstrdup(path_basename(w->spec)); - } - } - - char *umbrella_command = NULL; - - umbrella_command = string_format("%s --spec \"%s\" \ - --localdir ./umbrella_test \ - --inputs \"%s\" \ - --output \"%s\" \ - --sandbox_mode \"%s\" \ - --log \"%s\" \ - run \'{}\'", local_binary, local_spec, umbrella_input_opt, umbrella_output_opt, w->mode, log_file->filename); - - debug(D_MAKEFLOW_HOOK, "umbrella wrapper command: %s\n", umbrella_command); - - batch_task_wrap_command(task, umbrella_command); - debug(D_MAKEFLOW_HOOK, "umbrella command: %s\n", task->command); - - free(local_binary); - free(local_spec); - free(umbrella_command); - free(umbrella_input_opt); - free(umbrella_output_opt); -} diff -Nru cctools-7.0.22/makeflow/src/makeflow_wrapper_umbrella.h cctools-7.1.2/makeflow/src/makeflow_wrapper_umbrella.h --- cctools-7.0.22/makeflow/src/makeflow_wrapper_umbrella.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/makeflow_wrapper_umbrella.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2016- The University of Notre Dame - * This software is distributed under the GNU General Public License. - * See the file COPYING for details. - */ - -#ifndef MAKEFLOW_WRAPPER_UMBRELLA_H -#define MAKEFLOW_WRAPPER_UMBRELLA_H - -struct makeflow_wrapper_umbrella { - struct makeflow_wrapper *wrapper; - const char *spec; - const char *binary; - const char *log_prefix; - const char *mode; -}; - -struct makeflow_wrapper_umbrella *makeflow_wrapper_umbrella_create(); - -void makeflow_wrapper_umbrella_set_spec(struct makeflow_wrapper_umbrella *w, const char *spec); - -void makeflow_wrapper_umbrella_set_binary(struct makeflow_wrapper_umbrella *w, const char *binary); - -void makeflow_wrapper_umbrella_set_log_prefix(struct makeflow_wrapper_umbrella *w, const char *log_prefix); - -void makeflow_wrapper_umbrella_set_mode(struct makeflow_wrapper_umbrella *w, const char *mode); - -void makeflow_wrapper_umbrella_preparation(struct makeflow_wrapper_umbrella *w, struct dag *d); - -void makeflow_wrap_umbrella(struct batch_task *task, struct dag_node *n, struct makeflow_wrapper_umbrella *w, struct batch_queue *queue); - -#endif diff -Nru cctools-7.0.22/makeflow/src/parser.c cctools-7.1.2/makeflow/src/parser.c --- cctools-7.0.22/makeflow/src/parser.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/parser.c 2020-05-05 15:31:15.000000000 +0000 @@ -55,7 +55,6 @@ #include "parser_jx.h" #include "parser.h" - /* Returns a pointer to a new struct dag described by filename. Return NULL on * failure. */ struct dag *dag_from_file(const char *filename, dag_syntax_type format, struct jx *args) @@ -185,6 +184,11 @@ if(val) { rs->gpus = atoll(val->value); } + + val = dag_variable_lookup(RESOURCES_WALL_TIME, &s); + if(val) { + rs->wall_time = atoll(val->value); + } } void dag_close_over_nodes(struct dag *d) diff -Nru cctools-7.0.22/makeflow/src/parser_jx.c cctools-7.1.2/makeflow/src/parser_jx.c --- cctools-7.0.22/makeflow/src/parser_jx.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/parser_jx.c 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,5 @@ /* -Copyright (C) 2016- The University of Notre Dame +Copyright (C) 2019- The University of Notre Dame This software is distributed under the GNU General Public License. See the file COPYING for details. */ @@ -25,59 +25,62 @@ #include /* Print error to stderr for the user, and with D_NOTICE, for logs. */ -void report_error(int64_t line, const char *message, struct jx *actual) { - char *fmt; - - if(actual) { - char *str = jx_print_string(actual); - fmt = string_format("makeflow: line %" PRId64 ": expected %s but got %s instead\n", line, message, str); - free(str); - } else { - fmt = string_format("makeflow: line %" PRId64 ": %s", line, message); - } +void report_error(int64_t line, const char *message, struct jx *actual) +{ + char *fmt; + + if(actual) { + char *str = jx_print_string(actual); + fmt = string_format("makeflow: line %" PRId64 ": expected %s but got %s instead\n", line, message, str); + free(str); + } else { + fmt = string_format("makeflow: line %" PRId64 ": %s", line, message); + } - debug(D_MAKEFLOW_PARSER, "%s", fmt); - fprintf(stderr, "%s", fmt); + debug(D_MAKEFLOW_PARSER, "%s", fmt); + fprintf(stderr, "%s", fmt); - free(fmt); + free(fmt); } -static int environment_from_jx(struct dag *d, struct dag_node *n, struct hash_table *h, struct jx *env) { +static int environment_from_jx(struct dag *d, struct dag_node *n, struct hash_table *h, struct jx *env) +{ int nodeid; - if (!env) { + if(!env) { debug(D_MAKEFLOW_PARSER, "No \"environment\" specified"); return 1; } debug(D_MAKEFLOW_PARSER, "Line %u: Parsing \"environment\"", env->line); - if (n) { + if(n) { nodeid = n->nodeid; } else { nodeid = 0; } - if (jx_istype(env, JX_OBJECT)) { + if(jx_istype(env, JX_OBJECT)) { const char *key; void *i = NULL; - while ((key = jx_iterate_keys(env, &i))) { + while((key = jx_iterate_keys(env, &i))) { const char *value; debug(D_MAKEFLOW_PARSER, "export %s", key); - if ((value = jx_lookup_string(env, key))) { + if((value = jx_lookup_string(env, key))) { debug(D_MAKEFLOW_PARSER, "env %s=%s", key, value); dag_variable_add_value(key, h, nodeid, value); } string_set_insert(d->export_vars, key); } } else { - report_error(env->line, "a JSON object", env); + report_error(env->line, "a JSON object", env); return 0; } return 1; } -static int resources_from_jx(struct hash_table *h, struct jx *j, int nodeid) { - if (!j) { +static int resources_from_jx(struct hash_table *h, struct jx *j, int nodeid) +{ + if(!j) { debug(D_MAKEFLOW_PARSER, "No \"resources\" specified"); return 1; } @@ -85,34 +88,34 @@ const char *key; void *i = NULL; - while ((key = jx_iterate_keys(j, &i))) { - if(!strcmp(key, "cores")){ + while((key = jx_iterate_keys(j, &i))) { + if(!strcmp(key, "cores")) { int cores = jx_lookup_integer(j, "cores"); - if (cores) { + if(cores) { debug(D_MAKEFLOW_PARSER, "%d core(s)", cores); dag_variable_add_value(RESOURCES_CORES, h, nodeid, string_format("%d", cores)); } - } else if(!strcmp(key, "disk")){ + } else if(!strcmp(key, "disk")) { int disk = jx_lookup_integer(j, "disk"); - if (disk) { + if(disk) { debug(D_MAKEFLOW_PARSER, "%d disk", disk); dag_variable_add_value(RESOURCES_DISK, h, nodeid, string_format("%d", disk)); } - } else if(!strcmp(key, "memory")){ + } else if(!strcmp(key, "memory")) { int memory = jx_lookup_integer(j, "memory"); - if (memory) { + if(memory) { debug(D_MAKEFLOW_PARSER, "%d memory", memory); dag_variable_add_value(RESOURCES_MEMORY, h, nodeid, string_format("%d", memory)); } - } else if(!strcmp(key, "memory")){ + } else if(!strcmp(key, "memory")) { int gpus = jx_lookup_integer(j, "gpus"); - if (gpus) { + if(gpus) { debug(D_MAKEFLOW_PARSER, "%d gpus", gpus); dag_variable_add_value(RESOURCES_GPUS, h, nodeid, string_format("%d", gpus)); } - } else if(!strcmp(key, "wall-time")){ + } else if(!strcmp(key, "wall-time")) { int wall_time = jx_lookup_integer(j, "wall-time"); - if (wall_time) { + if(wall_time) { debug(D_MAKEFLOW_PARSER, "%d wall-time", wall_time); dag_variable_add_value(RESOURCES_WALL_TIME, h, nodeid, string_format("%d", wall_time)); } @@ -125,27 +128,28 @@ return 1; } -static int file_from_jx(struct dag_node *n, int input, struct jx *j) { +static int file_from_jx(struct dag_node *n, int input, struct jx *j) +{ assert(j); assert(n); const char *path = NULL; const char *remote = NULL; - if (jx_istype(j, JX_STRING)) { + if(jx_istype(j, JX_STRING)) { path = j->u.string_value; - } else if (jx_istype(j, JX_OBJECT)) { + } else if(jx_istype(j, JX_OBJECT)) { path = jx_lookup_string(j, "dag_name"); remote = jx_lookup_string(j, "task_name"); - if (!path) { - report_error(j->line, "missing a \"dag_name key\".", NULL); + if(!path) { + report_error(j->line, "missing a \"dag_name key\".", NULL); return 0; } } else { - report_error(j->line, "expected a file specification as a string or object", j); + report_error(j->line, "expected a file specification as a string or object", j); return 0; } - if (input) { + if(input) { debug(D_MAKEFLOW_PARSER, "Input %s, remote name %s", path, remote ? remote : "NULL"); dag_node_add_source_file(n, path, remote); } else { @@ -155,26 +159,28 @@ return 1; } -static int files_from_jx(struct dag_node *n, int inputs, struct jx *j) { - if (!j) { +static int files_from_jx(struct dag_node *n, int inputs, struct jx *j) +{ + if(!j) { debug(D_MAKEFLOW_PARSER, "files missing"); return 1; } - if (!jx_istype(j, JX_ARRAY)) { - report_error(j->line, "a list of files as JSON array", j); + if(!jx_istype(j, JX_ARRAY)) { + report_error(j->line, "a list of files as JSON array", j); return 0; } struct jx *item; void *i = NULL; - while ((item = jx_iterate_array(j, &i))) { - if (!file_from_jx(n, inputs, item)) { + while((item = jx_iterate_array(j, &i))) { + if(!file_from_jx(n, inputs, item)) { return 0; } } return 1; } -static int rule_from_jx(struct dag *d, struct jx *j) { +static int rule_from_jx(struct dag *d, struct jx *j) +{ assert(j); debug(D_MAKEFLOW_PARSER, "Line %u: Parsing rule", j->line); @@ -182,93 +188,72 @@ struct jx *inputs = jx_lookup(j, "inputs"); debug(D_MAKEFLOW_PARSER, "Parsing inputs"); - if (!files_from_jx(n, 1, inputs)) { - report_error(j->line, "could not parse rule inputs.", NULL); + if(!files_from_jx(n, 1, inputs)) { + report_error(j->line, "could not parse rule inputs.", NULL); return 0; } struct jx *outputs = jx_lookup(j, "outputs"); debug(D_MAKEFLOW_PARSER, "Parsing outputs"); - if (!files_from_jx(n, 0, outputs)) { - report_error(j->line, "could not parse rule outputs.", NULL); + if(!files_from_jx(n, 0, outputs)) { + report_error(j->line, "could not parse rule outputs.", NULL); return 0; } - struct jx *makeflow = jx_lookup(j, "makeflow"); - struct jx *command = jx_lookup(j, "command"); + const char *command = jx_lookup_string(j, "command"); + const char *workflow = jx_lookup_string(j, "workflow"); - if (makeflow && command) { - report_error(j->line, "rule is invalid because it defines both a command and a submakeflow.", NULL); + if(workflow && command) { + report_error(j->line, "rule is invalid because it defines both a command and a workflow.", NULL); return 0; } - if (jx_istype(command, JX_STRING)) { - debug(D_MAKEFLOW_PARSER, "command: %s", command->u.string_value); - dag_node_set_command(n, command->u.string_value); - } else if (jx_istype(makeflow, JX_OBJECT)) { - const char *path = jx_lookup_string(makeflow, "path"); - const char *cwd = jx_lookup_string(makeflow, "cwd"); - - if (!path) { - report_error(makeflow->line, "submakeflow must specify the \"path\" key.", NULL); - return 0; - } - debug(D_MAKEFLOW_PARSER, "Line %u: Submakeflow at %s", makeflow->line, path); - dag_node_set_submakeflow(n, path, cwd); - if (cwd) { - debug(D_MAKEFLOW_PARSER, "working directory %s", cwd); - } else { - debug(D_MAKEFLOW_PARSER, - "Sub-Makeflow at line %u: cwd malformed or missing, using process cwd", - makeflow->line); - } + if(command) { + debug(D_MAKEFLOW_PARSER, "command: %s", command); + dag_node_set_command(n,command); + } else if(workflow) { + struct jx *args = jx_lookup(j, "args"); + debug(D_MAKEFLOW_PARSER, "Line %u: sub-workflow at %s", j->line,workflow); + dag_node_set_workflow(n, workflow, args, 1); } else { - report_error(j->line, "rule neither defines a command nor a submakeflow.", NULL); + report_error(j->line, "rule neither defines a command nor a sub-workflow.", NULL); return 0; } dag_node_insert(n); n->local_job = jx_lookup_boolean(j, "local_job"); - if (n->local_job) { + if(n->local_job) { debug(D_MAKEFLOW_PARSER, "Rule at line %u: Local job", j->line); } const char *category = jx_lookup_string(j, "category"); - if (category) { + if(category) { debug(D_MAKEFLOW_PARSER, "Category %s", category); n->category = makeflow_category_lookup_or_create(d, category); } else { - debug(D_MAKEFLOW_PARSER, - "Rule at line %u: category malformed or missing, using default", - j->line); + debug(D_MAKEFLOW_PARSER, "Rule at line %u: category malformed or missing, using default", j->line); n->category = makeflow_category_lookup_or_create(d, "default"); } struct jx *resource = jx_lookup(j, "resources"); - if (resource && !resources_from_jx(n->variables, resource, n->nodeid)) { - report_error(j->line, "a resource definition", resource); + if(resource && !resources_from_jx(n->variables, resource, n->nodeid)) { + report_error(j->line, "a resource definition", resource); return 0; } const char *allocation = jx_lookup_string(j, "allocation"); - if (allocation) { - if (!strcmp(allocation, "first") || !strcmp(allocation, "auto")) { // "first" is deprecated - debug(D_MAKEFLOW_PARSER, - "Rule at line %u: auto allocation", - j->line); + if(allocation) { + if(!strcmp(allocation, "first") || !strcmp(allocation, "auto")) { // "first" is deprecated + debug(D_MAKEFLOW_PARSER, "Rule at line %u: auto allocation", j->line); n->resource_request = CATEGORY_ALLOCATION_FIRST; - } else if (!strcmp(allocation, "max")) { - debug(D_MAKEFLOW_PARSER, - "Rule at line %u: max allocation", - j->line); + } else if(!strcmp(allocation, "max")) { + debug(D_MAKEFLOW_PARSER, "Rule at line %u: max allocation", j->line); n->resource_request = CATEGORY_ALLOCATION_MAX; - } else if (!strcmp(allocation, "error")) { - debug(D_MAKEFLOW_PARSER, - "Rule at line %u: error allocation", - j->line); + } else if(!strcmp(allocation, "error")) { + debug(D_MAKEFLOW_PARSER, "Rule at line %u: error allocation", j->line); n->resource_request = CATEGORY_ALLOCATION_ERROR; } else { - report_error(j->line, "one of \"max\", \"auto\", or \"error\"", j); + report_error(j->line, "one of \"max\", \"auto\", or \"error\"", j); return 0; } } @@ -278,79 +263,75 @@ return 1; } -static int category_from_jx(struct dag *d, const char *name, struct jx *j) { +static int category_from_jx(struct dag *d, const char *name, struct jx *j) +{ assert(j); struct category *c = makeflow_category_lookup_or_create(d, name); struct jx *resource = jx_lookup(j, "resources"); - if (resource && !resources_from_jx(c->mf_variables, resource, 0)) { - report_error(resource->line, "a resources definition", j); + if(resource && !resources_from_jx(c->mf_variables, resource, 0)) { + report_error(resource->line, "a resources definition", j); return 0; } struct jx *environment = jx_lookup(j, "environment"); - if (environment && !environment_from_jx(d, NULL, c->mf_variables, environment)) { - report_error(environment->line, "an environment definition", j); + if(environment && !environment_from_jx(d, NULL, c->mf_variables, environment)) { + report_error(environment->line, "an environment definition", j); return 0; } return 1; } -struct dag *dag_parse_jx(struct dag *d, struct jx *j) { - if (!j) { - report_error(0, "a workflow definition is missing.", NULL); +struct dag *dag_parse_jx(struct dag *d, struct jx *j) +{ + if(!j) { + report_error(0, "a workflow definition is missing.", NULL); return NULL; } - if (!jx_istype(j, JX_OBJECT)) { - report_error(0, "a workflow definition as a JSON object", j); + if(!jx_istype(j, JX_OBJECT)) { + report_error(0, "a workflow definition as a JSON object", j); return NULL; } debug(D_MAKEFLOW_PARSER, "Parsing categories"); struct jx *categories = jx_lookup(j, "categories"); - if (jx_istype(categories, JX_OBJECT)) { + if(jx_istype(categories, JX_OBJECT)) { const char *key; void *i = NULL; - while ((key = jx_iterate_keys(categories, &i))) { + while((key = jx_iterate_keys(categories, &i))) { struct jx *value = jx_lookup(categories, key); - if (!category_from_jx(d, key, value)) { - report_error(value->line, "a category definition as a JSON object", j); + if(!category_from_jx(d, key, value)) { + report_error(value->line, "a category definition as a JSON object", j); return NULL; } } } else { - debug(D_MAKEFLOW_PARSER, - "Workflow at line %u: categories malformed or missing", - j->line); + debug(D_MAKEFLOW_PARSER, "Workflow at line %u: categories malformed or missing", j->line); } const char *default_category = jx_lookup_string(j, "default_category"); - if (default_category) { + if(default_category) { debug(D_MAKEFLOW_PARSER, "Default category %s", default_category); } else { - debug(D_MAKEFLOW_PARSER, - "Workflow at line %u: default_category malformed or missing, using \"default\"", - j->line); + debug(D_MAKEFLOW_PARSER, "Workflow at line %u: default_category malformed or missing, using \"default\"", j->line); default_category = "default"; } d->default_category = makeflow_category_lookup_or_create(d, default_category); struct jx *environment = jx_lookup(j, "environment"); - if (environment && !environment_from_jx(d, NULL, d->default_category->mf_variables, environment)) { - report_error(environment->line, "an environment definition as a JSON object", environment); + if(environment && !environment_from_jx(d, NULL, d->default_category->mf_variables, environment)) { + report_error(environment->line, "an environment definition as a JSON object", environment); return NULL; } else { - debug(D_MAKEFLOW_PARSER, - "Workflow at line %u: Top-level environment malformed or missing", - j->line); + debug(D_MAKEFLOW_PARSER, "Workflow at line %u: Top-level environment malformed or missing", j->line); } struct jx *rules = jx_lookup(j, "rules"); - if (jx_istype(rules, JX_ARRAY)) { + if(jx_istype(rules, JX_ARRAY)) { struct jx *item; void *i = NULL; - while ((item = jx_iterate_array(rules, &i))) { - if (!rule_from_jx(d, item)) { - report_error(item->line, "error parsing the rule.", NULL); + while((item = jx_iterate_array(rules, &i))) { + if(!rule_from_jx(d, item)) { + report_error(item->line, "error parsing the rule.", NULL); return NULL; } } @@ -364,4 +345,3 @@ return d; } - diff -Nru cctools-7.0.22/makeflow/src/parser_make.c cctools-7.1.2/makeflow/src/parser_make.c --- cctools-7.0.22/makeflow/src/parser_make.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/parser_make.c 2020-05-05 15:31:15.000000000 +0000 @@ -440,7 +440,7 @@ } -static int dag_parse_make_directive_UMBRELA(struct lexer *bk, struct dag_node *n) { +static int dag_parse_make_directive_UMBRELLA(struct lexer *bk, struct dag_node *n) { int result = 0; @@ -497,9 +497,9 @@ { result = dag_parse_make_directive_SIZE(bk, n); } - else if(!strcmp(".UMBRELA", name)) + else if(!strcmp(".UMBRELLA", name)) { - result = dag_parse_make_directive_UMBRELA(bk, n); + result = dag_parse_make_directive_UMBRELLA(bk, n); } else { @@ -635,7 +635,6 @@ static int dag_parse_make_node_command(struct lexer *bk, struct dag_node *n) { struct token *t; - int nested_job = 0; //Jump COMMAND token. t = lexer_next_token(bk); @@ -657,9 +656,9 @@ { n->local_job = 1; } - else if(strcmp(t->lexeme, "MAKEFLOW") == 0) + else if(strcmp(t->lexeme, "MAKEFLOW") == 0 || strcmp(t->lexeme, "WORKFLOW") ) { - nested_job = 1; + n->type = DAG_NODE_TYPE_WORKFLOW; } else { @@ -678,12 +677,9 @@ t = lexer_next_token(bk); lexer_free_token(t); - if(nested_job) - { + if(n->type==DAG_NODE_TYPE_WORKFLOW) { return dag_parse_make_node_nested_makeflow(bk, n); - } - else - { + } else { return dag_parse_make_node_regular_command(bk, n); } } @@ -702,7 +698,6 @@ { struct token *t; struct token *makeflow_dag; - struct token *makeflow_cwd = NULL; dag_parse_make_drop_spaces(bk); @@ -718,24 +713,15 @@ dag_parse_make_drop_spaces(bk); - //Get dag's working directory. - t = lexer_peek_next_token(bk); - if(t->type == TOKEN_LITERAL) { - makeflow_cwd = lexer_next_token(bk); - } - - dag_parse_make_drop_spaces(bk); - t = lexer_next_token(bk); if (!(t && t->type == TOKEN_NEWLINE)) { lexer_report_error(bk, "MAKEFLOW specification does not end with a newline.\n"); } - dag_node_set_submakeflow(n, makeflow_dag->lexeme, makeflow_cwd ? makeflow_cwd->lexeme : NULL); + dag_node_set_workflow(n, makeflow_dag->lexeme, 0, 0); lexer_free_token(t); lexer_free_token(makeflow_dag); - if (makeflow_cwd) lexer_free_token(makeflow_cwd); return 1; } @@ -743,7 +729,7 @@ { struct token *t, *vtoken, *vname; - const char *name; + const char *name = NULL; int count = 0; while((t = lexer_peek_next_token(bk)) && t->type != TOKEN_NEWLINE) diff -Nru cctools-7.0.22/makeflow/src/starch cctools-7.1.2/makeflow/src/starch --- cctools-7.0.22/makeflow/src/starch 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/src/starch 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 2.5 2.4 3 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. @@ -195,7 +194,7 @@ archive.addfile(lib_info, open(real_path, 'rb')) logging.debug('adding data...') - for data_path, real_path in map(lambda s: s.split(':'), data): + for data_path, real_path in [s.split(':') for s in data]: add_data_to_archive(archive, os.path.normpath(data_path), os.path.normpath(real_path)) logging.debug('adding environment scripts...') @@ -260,8 +259,6 @@ break if not is_found: logging.error('could not find file: %s' % file) - raise StopIteration - def find_executables(executables): exes = [] @@ -334,9 +331,9 @@ # Configuration Parser class StarchConfigParser(ConfigParser): - def get(self, section, name, default = None): + def safe_get(self, section, name, default = None): try: - return ConfigParser.get(self, section, name) + return self.get(section, name) except (NoSectionError, NoOptionError): return default @@ -386,12 +383,12 @@ config = StarchConfigParser() config.read(options.config) - options.executables.extend(config.get('starch', 'executables', '').split()) - options.libraries.extend(config.get('starch', 'libraries', '').split()) - options.data.extend(config.get('starch', 'data', '').split()) - options.environments.extend(config.get('starch', 'environments', '').split()) + options.executables.extend(config.safe_get('starch', 'executables', '').split()) + options.libraries.extend(config.safe_get('starch', 'libraries', '').split()) + options.data.extend(config.safe_get('starch', 'data', '').split()) + options.environments.extend(config.safe_get('starch', 'environments', '').split()) if not options.command: - options.command = config.get('starch', 'command', '') + options.command = config.safe_get('starch', 'command', '') if not options.executables: logging.error('no executables specified') diff -Nru cctools-7.0.22/makeflow/test/syntax/category_variable_scope.makeflow cctools-7.1.2/makeflow/test/syntax/category_variable_scope.makeflow --- cctools-7.0.22/makeflow/test/syntax/category_variable_scope.makeflow 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/test/syntax/category_variable_scope.makeflow 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,5 @@ -MAKEFLOW_INPUTS="" -MAKEFLOW_OUTPUTS="out_rule_1 out_rule_2a out_rule_2b out_rule_3" +MAKEFLOW_INPUTS= +MAKEFLOW_OUTPUTS=out_rule_1 out_rule_2a out_rule_2b out_rule_3 .MAKEFLOW CATEGORY one out_rule_1: diff -Nru cctools-7.0.22/makeflow/test/TR_makeflow_030_gc_none.sh cctools-7.1.2/makeflow/test/TR_makeflow_030_gc_none.sh --- cctools-7.0.22/makeflow/test/TR_makeflow_030_gc_none.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/test/TR_makeflow_030_gc_none.sh 2020-05-05 15:31:15.000000000 +0000 @@ -23,7 +23,7 @@ run() { cd $test_dir - ./makeflow -g none -d all collect.makeflow + ./makeflow -g none -j 1 collect.makeflow if [ $? -eq 0 ]; then exec diff -w ../$test_output _collect.7 else diff -Nru cctools-7.0.22/makeflow/test/TR_makeflow_030_gc_on_demand.sh cctools-7.1.2/makeflow/test/TR_makeflow_030_gc_on_demand.sh --- cctools-7.0.22/makeflow/test/TR_makeflow_030_gc_on_demand.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/test/TR_makeflow_030_gc_on_demand.sh 2020-05-05 15:31:15.000000000 +0000 @@ -23,7 +23,7 @@ run() { cd $test_dir - ./makeflow -g on_demand -G 5 -d all collect.makeflow + ./makeflow -g on_demand -G 4 -j 1 collect.makeflow if [ $? -eq 0 ]; then exec diff -w ../$test_output _collect.7 else diff -Nru cctools-7.0.22/makeflow/test/TR_makeflow_030_gc_ref_count.sh cctools-7.1.2/makeflow/test/TR_makeflow_030_gc_ref_count.sh --- cctools-7.0.22/makeflow/test/TR_makeflow_030_gc_ref_count.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/test/TR_makeflow_030_gc_ref_count.sh 2020-05-05 15:31:15.000000000 +0000 @@ -24,7 +24,7 @@ { echo $test_dir cd $test_dir - ./makeflow -g ref_cnt -G 1 -d all collect.makeflow + ./makeflow -g ref_cnt -G 1 -j 1 collect.makeflow if [ $? -eq 0 ]; then exec diff -w ../$test_output _collect.7 else diff -Nru cctools-7.0.22/makeflow/test/TR_makeflow_040_recursive.sh cctools-7.1.2/makeflow/test/TR_makeflow_040_recursive.sh --- cctools-7.0.22/makeflow/test/TR_makeflow_040_recursive.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/test/TR_makeflow_040_recursive.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -#!/bin/sh - -# Test recursive invocation of a makeflow. -# The top level makeflow creates a simple workflow, and then -# sends it to be executed completely at the worker side. - -# Recursive makeflow requires that you have makeflow in your path. -export PATH=`pwd`/../../makeflow/src:$PATH - -. ../../dttools/test/test_runner_common.sh - -PORT_FILE="makeflow.port" -WORKER_LOG="worker.log" -STATUS_FILE="makeflow.status" - -prepare() -{ -clean - -cat > input.txt < toplevel.makeflow < sublevel.makeflow < out.1 - -out.2: - echo world > out.2 - -out.actual: out.1 out.2 - cat out.1 out.2 > out.actual -EOF - -cat > out.expected < nested.jx << EOF +{ + "rules": [ + { + "workflow" : "nested2.jx", + "args" : { "a":5, "b":"hello", "n":10 }, + "outputs" : [ "output.10" ] + } + ] +} +EOF + +cat > nested2.jx << EOF +{ + "rules": [ + { + "command":"echo " + a + " " + b + " > output."+n, + "outputs" : [ "output."+n ] + } + ] +} +EOF + +cat > nested.expected << EOF +5 hello +EOF +} + +run() +{ + ../src/makeflow --jx nested.jx --sandbox + require_identical_files nested.expected output.10 + ../src/makeflow --jx nested.jx --sandbox --clean + if [ -f output.10 ] + then + echo "ERROR: output.10 should have been deleted on clean!" + exit 1 + else + echo "output.10 deleted as expected" + exit 0 + fi + +} + +clean() +{ + rm nested.jx nested2.jx nested.expected output.10 +} + +dispatch "$@" + diff -Nru cctools-7.0.22/makeflow/test/TR_makeflow_040_sub_workflow_make.sh cctools-7.1.2/makeflow/test/TR_makeflow_040_sub_workflow_make.sh --- cctools-7.0.22/makeflow/test/TR_makeflow_040_sub_workflow_make.sh 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/makeflow/test/TR_makeflow_040_sub_workflow_make.sh 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,68 @@ +#!/bin/sh + +# Test recursive invocation of a makeflow. +# The top level makeflow creates a simple workflow, and then +# sends it to be executed completely at the worker side. + +# Recursive makeflow requires that you have makeflow in your path. +export PATH=`pwd`/../../makeflow/src:$PATH + +. ../../dttools/test/test_runner_common.sh + +PORT_FILE="makeflow.port" +WORKER_LOG="worker.log" +STATUS_FILE="makeflow.status" + +prepare() +{ +clean + +cat > input.txt < toplevel.makeflow < sublevel.makeflow < out.1 + +out.2: + echo world > out.2 + +out.actual: out.1 out.2 + cat out.1 out.2 > out.actual +EOF + +cat > out.expected < /dev/null 2>&1 || return 1 + + # disabling test as it always skipped or fails, and this facility is not in + # use. + return 1 +} + prepare() { return 0 } @@ -14,7 +22,8 @@ ( set -e cd linker - env PATH="$PATH:$(pwd)/../../src/" ../../src/makeflow_linker --use-named -o "$out_dir" "001/$workflow_description" + + PATH="$(pwd)/../../src/:${PATH}" ../../src/makeflow_linker --use-named -o "$out_dir" "001/$workflow_description" [ "$(< "$out_dir/named" awk '{print $1}')" = "Python" ] || return 1 cp "../expected/$expected/named" "$out_dir/named" diff -Nru cctools-7.0.22/makeflow/test/TR_makeflow_remote_naming.sh cctools-7.1.2/makeflow/test/TR_makeflow_remote_naming.sh --- cctools-7.0.22/makeflow/test/TR_makeflow_remote_naming.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/makeflow/test/TR_makeflow_remote_naming.sh 2020-05-05 15:31:15.000000000 +0000 @@ -50,7 +50,8 @@ clean() { - rm -f $MAKE_FILE $STATUS_FILE $PORT_FILE $WORKER_LOG out.1 out.2 out.actual out.expected + ../src/makeflow -c $MAKE_FILE + rm -f $MAKE_FILE $STATUS_FILE $PORT_FILE $WORKER_LOG out.1 out.2 out.actual out.expected input.txt } dispatch "$@" diff -Nru cctools-7.0.22/makeflow/test/TR_makeflow_restart.sh cctools-7.1.2/makeflow/test/TR_makeflow_restart.sh --- cctools-7.0.22/makeflow/test/TR_makeflow_restart.sh 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/makeflow/test/TR_makeflow_restart.sh 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,79 @@ +#!/bin/sh + +. ../../dttools/test/test_runner_common.sh + +test_dir=`basename $0 .sh`.dir +test_output=`basename $0 .sh`.output + +prepare() +{ + mkdir $test_dir + cd $test_dir + ln -sf ../../src/makeflow . + echo "hello" > file.1 + +cat > test.jx << EOF +{ + "rules" : + [ + { + "command" : format("cp file.%d file.%d",i,i+1), + "inputs" : [ "file."+i ], + "outputs" : [ "file."+(i+1) ] + } for i in range(1,10) + ] +} +EOF + exit 0 +} + +run() +{ + cd $test_dir + + echo "+++++ first run: should make 10 files +++++" + ./makeflow --jx test.jx | tee output.1 + + echo "+++++ deleting file.5 manually +++++" + rm file.5 + + echo "+++++ second run: should rebuild 6 files +++++" + ./makeflow --jx test.jx | tee output.2 + + count=`grep "deleted" output.2 | wc -l` + + echo "+++++ $count files deleted +++++" + + if [ $count -ne 6 ] + then + exit 1 + fi + + # Note: sleep to ensure different timestamp + echo "+++++ changing file.2 manually +++++" + sleep 2 + touch file.2 + + echo "+++++ third run: should rebuild 8 files +++++" + ./makeflow --jx test.jx | tee output.3 + + count=`grep "deleted" output.3 | wc -l` + echo "+++++ $count files deleted +++++" + + if [ $count -ne 8 ] + then + exit 1 + fi + + exit 0 +} + +clean() +{ + rm -fr $test_dir $test_output + exit 0 +} + +dispatch "$@" + +# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/mkdocs.yml cctools-7.1.2/mkdocs.yml --- cctools-7.0.22/mkdocs.yml 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/mkdocs.yml 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,38 @@ +site_name: CCTools Documentation +site_url: https://cctools.readthedocs.io/en/latest + +author: Cooperative Computing Lab at the University of Notre Dame +copyright: Copyright (C) 2019 The University of Notre Dame + +nav: + - Getting Started: + - About: 'about.md' + - Installation: 'install/index.md' + - Getting Help: 'help.md' + - Software: + - Makeflow: 'makeflow/index.md' + - Work Queue: 'work_queue/index.md' + - JX Language: 'jx/index.md' + - Resource Monitor: 'resource_monitor/index.md' + - Parrot: 'parrot/index.md' + - Chirp: 'chirp/index.md' + - Catalog Server: 'catalog/index.md' + - Research Prototypes: + - AWE: 'awe/index.md' + - Confuga: 'confuga/index.md' + - Umbrella: 'umbrella/index.md' + - Prune: 'prune/index.md' + - Reference: + - Man Pages: 'man_pages.md' + - Network Configuration: 'network/index.md' + +markdown_extensions: + - toc: + - admonition + +permalink: True + +docs_dir: doc/manuals +site_dir: doc/mkdocs-site + +theme: readthedocs diff -Nru cctools-7.0.22/packaging/conda/build.sh cctools-7.1.2/packaging/conda/build.sh --- cctools-7.0.22/packaging/conda/build.sh 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/packaging/conda/build.sh 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,30 @@ + +DISABLED_SYS=$(echo --without-system-{allpairs,parrot,prune,sand,umbrella,wavefront,weaver}) +DISABLED_LIB=$(echo --with-{readline,fuse}-path\ no) + + +if [[ "$PY3K" == 1 ]]; then + PYTHON_OPT="--with-python3-path" +else + PYTHON_OPT="--with-python-path" +fi + +if [[ "$(uname)" == "Darwin" ]]; then + PERL_PATH="no" +else + PERL_PATH="${PREFIX}" +fi + +./configure --prefix "${PREFIX}" --with-base-dir "${PREFIX}" ${PYTHON_OPT} "${PREFIX}" --with-perl-path "${PERL_PATH}" ${DISABLED_LIB} ${DISABLED_SYS} + +make -j${CPU_COUNT} +make install + +if ! make test +then + cat cctools.test.fail + exit 1 +else + exit 0 +fi + diff -Nru cctools-7.0.22/packaging/conda/meta.yaml cctools-7.1.2/packaging/conda/meta.yaml --- cctools-7.0.22/packaging/conda/meta.yaml 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/packaging/conda/meta.yaml 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,67 @@ +# Note to cctools maintainers: +# When updating cctools versions, only the version and src_checksum variables +# should be modified. +# Get the checksum of the cctools-VERSION-source.tar.gz tarball as: +# openssl sha256 cctools-VERSION-source.tar.gz +# Note we use the name "ndcctools" as there is already another project in +# anaconda called cctools. + +{% set name = "ndcctools" %} +{% set version = "7.0.20" %} +{% set src_checksum = "387c9ca8a2d8700fcb77a688c4f769bbd1cad7d2c070205b024593d7a27a193a" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: http://ccl.cse.nd.edu/software/files/cctools-{{ version }}-source.tar.gz + sha256: {{ src_checksum }} + +build: + number: 3 + skip: True # [win] + skip: True # [osx and py==27] + rpaths: + - lib/ + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - swig + - make + host: + - python + - perl # [linux] + - zlib + run: + - python + - perl # [linux] + - zlib + +test: + imports: + - work_queue + commands: + - makeflow -h + - work_queue_worker -h + - work_queue_factory -h + +about: + home: http://ccl.cse.nd.edu/ + license: GPL-2.0 + license_file: COPYING + summary: 'The Cooperative Computing Tools contains Chirp, Makeflow, JX, and Work Queue.' + description: | + The Cooperative Computing Tools (cctools) are a collection of programs that + enable large scale distributed computing on systems such as clusters, + clouds, and grids. These tools are commonly used in fields of science and + engineering that rely on large amounts of computing. + doc_url: https://cctools.readthedocs.io + dev_url: https://github.com/cooperative-computing-lab/cctools + +extra: + recipe-maintainers: + - btovar + - dthain diff -Nru cctools-7.0.22/packaging/conda/README cctools-7.1.2/packaging/conda/README --- cctools-7.0.22/packaging/conda/README 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/packaging/conda/README 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,12 @@ +Instructions: + +1) Update meta.yaml to desire cctools version number (so that the URL to download from is up to date) + +2) Install conda-build and anaconda-client if you don't have it already + +3) Run "conda-build ." in the recipe directory to build locally + +4) Upload to the cclnd account on anaconda using the location given: "anaconda upload --user cclnd /PATH/TO/PACKAGE/" + +5) Repeat for each version of python and OS you want to support (using miniconda2/3 as appropriate) + diff -Nru cctools-7.0.22/packaging/scripts/configure-from-image cctools-7.1.2/packaging/scripts/configure-from-image --- cctools-7.0.22/packaging/scripts/configure-from-image 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/packaging/scripts/configure-from-image 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,73 @@ +#! /bin/bash + +set -xe + +# Save the dir from which the script was called +ORG_DIR=$(pwd) + +# Find cctools src directory +CCTOOLS_SRC="$(cd "$(dirname "${BASH_SOURCE[0]}")"/../.. && pwd)" + +# Ensure we end up in the directory we started regardless of how the script +# ends. +function finish { + cd ${ORG_DIR} +} +trap finish EXIT + + +# dependencies to be included statically in parrot live in /opt/vc3 in the +# container images. +DEPS_DIR=/opt/vc3/cctools-deps +DEPS=$(/bin/ls "$DEPS_DIR" || true) +DEP_ARGS="" +for dep in $DEPS; do + DEP_ARGS="$DEP_ARGS --with-$dep-path $DEPS_DIR/$dep" +done + +cd ${CCTOOLS_SRC} + +if [[ -d /opt/vc3/cctools-deps ]] +then + # compile work_queue binaries statically + [[ -f config.mk ]] && make clean + CFLAGS=-D__MUSL__ CC=/opt/vc3/cctools-deps/musl/bin/musl-gcc LD=/opt/vc3/cctools-deps/musl/bin/musl-gcc ./configure --without-system-{doc,apps,chirp} --with-readline-path=no --static --with-zlib-path=/opt/vc3/cctools-deps/musl-zlib "$@" + (cd dttools/src && make) + (cd work_queue/src && make) + (cp work_queue/src/work_queue_{worker,status,example} .) + STATIC_WORKER=1 +fi + +# disable perl bindings in osx (to compile as we do in conda) +perl_option='' +if [[ "${TRAVIS_OS_NAME}" = osx ]] +then + perl_option='--with-perl-path no' +fi + +# compile everything +./configure --debug --strict $DEP_ARGS ${perl_option} "$@" +[[ -f config.mk ]] && make clean +echo === Contents of config.mk === +cat config.mk +make + +if [[ "${STATIC_WORKER}" = 1 ]] +then + # set the static binaries for test and installation + mv work_queue_{worker,status,example} work_queue/src + touch work_queue/src/work_queue_{worker,status,example} +fi + +make install + +if ! make test +then + echo === Contents of cctools.test.fail === + cat cctools.test.fail + exit 1 +else + exit 0 +fi + + diff -Nru cctools-7.0.22/packaging/scripts/generate-images cctools-7.1.2/packaging/scripts/generate-images --- cctools-7.0.22/packaging/scripts/generate-images 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/packaging/scripts/generate-images 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,635 @@ +#! /usr/bin/env perl + +# generate base singularity and docker images for cctools + +use strict; +use warnings; +use Carp; +use Getopt::Long; +use File::Copy; +use File::Path qw/make_path/; +use File::Spec::Functions qw/catfile/; + +use v5.10; + +my @dev_dependencies = qw{ +bzip2 +cc +cmake +cplusplus +curl +cvmfs +doxygen +e2fsprogs +find +fuse +gdb +gettext +git +gmake +gtar +image_magick +libattr +libffi +lsb_release +m4 +mysql +ncurses +openssl +patch +perl +pkg_config +python +python3 +readline +strace +swig +troff +unzip +vim +wget +which +xrootd +zlib +}; + +my $builder = [ + 'mkdir -p /opt/vc3/utils', + 'mkdir -p /opt/vc3/cctools-deps', + 'cd /opt/vc3/utils', + 'curl -O https://raw.githubusercontent.com/vc3-project/vc3-builder/master/vc3-builder', + 'chmod 755 ./vc3-builder', +]; + +my $musl = [ + 'cd /opt/vc3/utils', + './vc3-builder --make-jobs=4 --require musl -- ln -s \$VC3_ROOT_MUSL /opt/vc3/cctools-deps/musl', + './vc3-builder --make-jobs=4 --require musl-zlib -- ln -s \$VC3_ROOT_MUSL_ZLIB /opt/vc3/cctools-deps/musl-zlib', +]; + +my $cvmfs = [ + 'cd /opt/vc3/utils', + './vc3-builder --make-jobs=4 --require uuid -- ln -s \$VC3_ROOT_UUID /opt/vc3/cctools-deps/uuid', + './vc3-builder --make-jobs=4 --sys gettext:0.19=/usr --sys libffi:3.0=/usr --sys attr:2.4=/usr --require libcvmfs --install /opt/vc3 --distfiles /opt/vc3/distfiles -- ln -s \$VC3_ROOT_LIBCVMFS /opt/vc3/cctools-deps/cvmfs', +]; + +my $fuse = [ + 'cd /opt/vc3/utils', + './vc3-builder --make-jobs=4 --require fuse -- ln -s \$VC3_ROOT_FUSE /opt/vc3/cctools-deps/fuse' +]; + +my $e2fsprogs = [ + 'cd /opt/vc3/utils', + './vc3-builder --make-jobs=4 --require e2fsprogs -- ln -s \$VC3_ROOT_E2FSPROGS /opt/vc3/cctools-deps/ext2fs' +]; + + +# using builder to provide .a library +my $mysql = [ + 'cd /opt/vc3/utils', + './vc3-builder --make-jobs=4 --require libmysql -- ln -s \$VC3_ROOT_LIBMYSQL /opt/vc3/cctools-deps/mysql', +]; + +# globus does not quite work, errors when linking +my $globus = [ + 'cd /opt/vc3/utils', + './vc3-builder --make-jobs=1 --require gridftp -- ln -s \$VC3_ROOT_GRIDFTP /opt/vc3/cctools-deps/globus', +]; + + +my $irods = [ + 'cd /opt/vc3/utils', + './vc3-builder --var INSIDE_CONTAINER=yes --make-jobs=4 --require irods --install /opt/vc3 --distfiles /opt/vc3/distfiles -- ln -s \$VC3_ROOT_IRODS /opt/vc3/cctools-deps/irods', +]; + + +my $xrootd = [ + 'cd /opt/vc3/utils', + './vc3-builder --make-jobs=4 --sys fuse:2.9=/usr --sys zlib:1.2=/usr --require xrootd:3:3 --install /opt/vc3 --distfiles /opt/vc3/distfiles -- ln -s \$VC3_ROOT_XROOTD /opt/vc3/cctools-deps/xrootd', +]; + + +my @dependencies = (@dev_dependencies); + +# distribution -> list of versions +my %versions_of; + +# list of name of package in distribution +my %extras_for; + +# distribution -> command to install name of package in distribution +my %command_for; + +# list of shell commands to execute pre installation. +my %preinstall_for; + +# list of shell commands to execute post installation. +my %postinstall_for; + +$versions_of{centos} = [ qw{ 7 6 } ]; +$command_for{centos} = 'yum install -y'; + +$versions_of{fedora} = [ qw{ 30 } ]; +$command_for{fedora} = 'dnf install -y'; + +$versions_of{debian} = [ qw{ 9.9 } ]; +$command_for{debian} = 'apt-get install -y'; + +# e.g., $package_for{distro}{version}{dependency} == 'package' +my %package_for; + +########## CENTOS ########## +$package_for{centos}{default} = { +bzip2 => 'bzip2', +cc => 'gcc', +cmake => 'cmake', +cplusplus => 'gcc-c++', +curl => 'curl', +cvmfs => [], # from builder +doxygen => 'doxygen', +e2fsprogs => [], # from builder, to get libext2fs.a +find => 'findutils', +fuse => [], # from builder, to get libfuse.a +gdb => 'gdb', +gettext => 'gettext', +git => 'git', +gmake => 'make', +gtar => 'tar', +image_magick => 'ImageMagick', +libattr => 'libattr-devel', +libffi => 'libffi', +lsb_release => 'lsb-release', +m4 => 'm4', +musl => [], # from builder +mysql => [], # from builder +ncurses => 'ncurses-devel', +openssl => ['openssl', 'openssl-devel'], +patch => 'patch', +perl => ['perl-core', 'perl-devel'], +pkg_config => 'pkg-config', +python => ['python-devel', 'python-setuptools', 'python-tools'], +python3 => [], # from epel +readline => 'readline-devel', +strace => 'strace', +swig => 'swig', +troff => 'groff', +unzip => 'unzip', +vim => 'vim', +wget => 'wget', +which => 'which', +xrootd => [], # from builder +zlib => 'zlib-devel', +}; + +$package_for{centos}{6}{python3} = ['python34-devel', 'python34-setuptools']; +$package_for{centos}{7}{python3} = ['python36-devel', 'python36-setuptools']; + +$extras_for{centos}{default} = ['libc-devel']; + +$extras_for{centos}{6} = [ + 'nss', # certificate errors +]; + +$preinstall_for{centos}{default} = [ + 'yum -y install epel-release' # for python3 +]; + +$postinstall_for{centos}{default} = [ + 'yum -y clean all', + @{$builder}, + @{$musl}, + @{$fuse}, + @{$e2fsprogs}, + @{$cvmfs}, + @{$mysql}, + @{$xrootd}, +]; + +$postinstall_for{centos}{6} = [ + 'ln -sf /usr/bin/python3.4 /usr/bin/python3', + 'ln -sf /usr/bin/python3.4-config /usr/bin/python3-config' +]; + +$postinstall_for{centos}{7} = [ + 'ln -sf /usr/bin/python3.6 /usr/bin/python3', + 'ln -sf /usr/bin/python3.6-config /usr/bin/python3-config' +]; + +########## FEDORA ########## +$package_for{fedora}{default} = { %{$package_for{centos}{default}} }; + +$package_for{fedora}{default}{lsb_release} = ['redhat-lsb-core']; +$package_for{fedora}{default}{python} = ['python2-devel', 'python2-setuptools']; +$package_for{fedora}{default}{python3} = ['python3-devel', 'python3-setuptools']; + +$extras_for{fedora}{default} = [ ]; + +$preinstall_for{fedora}{default} = [ ]; + +$postinstall_for{fedora}{default} = [ + @{$builder}, + @{$musl}, +]; + +########## debian ########## +$package_for{debian}{default} = { +bzip2 => 'bzip2', +cc => 'gcc', +cmake => 'cmake', +cplusplus => 'g++', +curl => 'curl', +cvmfs => [], # from builder +doxygen => 'doxygen', +e2fsprogs => [], # fails linking +find => 'findutils', +fuse => [], #from builder to get libfuse.a +gdb => 'gdb', +gettext => 'gettext', +git => 'git', +gmake => 'make', +gtar => 'tar', +image_magick => 'imagemagick', +libattr => 'attr-dev', +libffi => 'libffi-dev', +lsb_release => 'lsb-release', +m4 => 'm4', +mysql => [], # from builder +ncurses => 'libncurses-dev', +openssl => 'openssl', +patch => 'patch', +perl => 'libperl-dev', +pkg_config => 'pkg-config', +python => ['python-dev', 'python-setuptools'], +python3 => ['python3-dev', 'python3-setuptools'], +readline => 'libreadline-dev', +swig => 'swig', +strace => 'strace', +troff => 'groff', +unzip => 'unzip', +vim => 'vim', +wget => 'wget', +which => 'debianutils', +xrootd => [], # from builder +zlib => 'libz-dev', +}; + +$extras_for{debian}{default} = ['tzdata', 'locales', 'libssl-dev']; + +$preinstall_for{debian}{default} = [ + "apt-get update" +]; + +$postinstall_for{debian}{default} = [ + 'echo en_US.UTF-8 UTF-8 >> /etc/locale.gen', + '/usr/sbin/locale-gen', + 'apt-get clean', + + @{$builder}, + @{$musl}, + @{$fuse}, + @{$cvmfs}, + # do not compile with g++6: + # @{$xrootd} +]; + +########## ALL ########## + +# finishing installation steps for all: +my $epilogue = [ +]; + + +########## END OF CONFIGURATION ########## + +unless (caller) { + main(); +} + +sub main { + + # architecture of current machine. + chomp(my $arch = qx(uname -m)); + + my $arch_opt = $arch; + my $help; + my $list; + my $build; + my $recp; + my $all; + my @types; + my $output_dir = 'images'; + + GetOptions( + "help", => \$help, + "list", => \$list, + "recp", => \$recp, + "build" => \$build, + "arch=s", => \$arch_opt, + "all", => \$all, + "output_dir=s", => \$output_dir, + "docker" => sub { push @types, 'docker'; }, + "singularity" => sub { push @types, 'singularity'; } + ) or die "@{[ show_help() ]}\n"; + + if($help) { + show_help(); + exit 0; + } + + unless($arch eq $arch_opt) { + die "Required architecture '$ARGV[0]' is not the architecture of the current machine $arch.\n"; + } + + if($list) { + for my $p (list_known_platforms()) { + say $p; + } + exit 0; + } + + if(@{ARGV} > 0 and $all) { + die "individual builds cannot be specified with --all=.\n"; + } + + unless(@types) { + @types = ('singularity', 'docker'); + } + + make_path($output_dir, { mode => 0755 }); + unless( -d $output_dir && -w $output_dir ) { + die "Problem creating '$output_dir': $@"; + } + + for my $type (@types) { + if($all) { + generate_all_images($type, $arch, $output_dir, $recp); + } else { + my ($dist, $version, $output_name) = @{ARGV}; + generate_image($type, $arch, $dist, $version, $output_dir, $output_name, $recp); + } + } +} + +sub show_help { + say "Use:"; + say "$0 [options] [distribution version outputprefix]"; + say "\n Example:\n$0 --arch x86_64 centos 7 Singularity.ccl.x86_64-centos7"; + say "\nproduces Singularity.ccl.x86_64-centos7.{sin,img}"; + say "\noptions:"; + say "\t--help Show this message."; + say "\t--all Build all known platforms."; + say "\t--outputdir= Build platforms into dir (default ./images)."; + say "\t--build Build from previously generated reciped only."; + say "\t--arch= Othen than x86_64 (the default), nothing has been tested."; + say "\t--list List known platforms."; + say "\t--recp Generate recipes only, not images."; + say "\t--docker Generate docker images."; + say "\t--singularity Generate singularity images."; + + return ''; +} + +sub list_known_platforms { + my @platforms = (); + + for my $dist (keys %versions_of) { + for my $v (@{$versions_of{$dist}}) { + push @platforms, "${dist} ${v}"; + } + } + + @platforms = sort { $a cmp $b } @platforms; + + return @platforms; +} + +sub output_name { + my ($type, $arch, $dist, $version) = @_; + + return ucfirst($type) . ".ccl.$arch-$dist$version"; +} + +sub generate_all_images { + my ($type, $arch, $output_dir, $recp) = @_; + + for my $dist (keys %versions_of) { + for my $version (@{$versions_of{$dist}}) { + generate_image($type, $arch, $dist, $version, $output_dir, output_name($type, $arch, $dist, $version), $recp); + } + } +} + +sub generate_image { + my ($type, $arch, $dist, $version, $output_dir, $output_name, $recp) = @_; + + unless($dist and $version) { + show_help(); + exit 1; + } + + unless($versions_of{$dist}) { + die "I don't know about the distribution $dist\n"; + } + + unless($version ~~ @{$versions_of{$dist}}) { + warn "I don't know about version $version for the distribution $dist.\nUsing defaults that are not tested!\n"; + } + + unless($output_name) { + $output_name = output_name($type, $arch, $dist, $version); + warn "No output prefix given, using $output_name\n"; + } + + if($type eq 'singularity') { + return generate_singularity_image($arch, $dist, $version, $output_dir, $output_name, $recp); + } elsif($type eq 'docker') { + return generate_docker_image($arch, $dist, $version, $output_dir, $output_name, $recp); + } else { + die "I don't know how to build images of type '$type'.\n"; + } +} + +sub generate_singularity_image { + my ($arch, $dist, $version, $output_dir, $output_name, $recp) = @_; + + make_path(catfile($output_dir, 'singularity'), { mode => 0755 }); + + my $sin_name = catfile($output_dir, 'singularity', "$output_name.sin"); + my $img_name = catfile($output_dir, 'singularity', "$output_name.img"); + + say "Creating Singularity file: $sin_name"; + open my $sin_fh, '>', $sin_name || croak "Problem with '$sin_name': $@"; + print { $sin_fh } singularity_file_for($arch, $dist, $version, $img_name, $sin_name); + close $sin_fh; + + unless($recp) { + my $exit_status; + + say "Building image $img_name from: $sin_name"; + + -e "$img_name" && system(qq(sudo rm -rf "$img_name")); + -d "$img_name.sbx" && system(qq(sudo rm -rf "$img_name.sbx")); + + my $output = qx(sudo singularity build --sandbox "$img_name.sbx" "$sin_name"); + $exit_status = $?; + + unless($exit_status == 0) { + die "Could not build image with $sin_name. Output:\n$output\n"; + } + + $exit_status = system(qq(sudo singularity build "$img_name" "$img_name.sbx")); + unless($exit_status == 0) { + die "Could not build from $img_name.sbx\n"; + } + + system(qq(sudo rm -rf $img_name.sbx)); + } +} + +sub spec_preamble_file_for { + my ($dist, $version) = @_; + my @packages; + + @packages = (); + for my $d (@dependencies) { + my $p = $package_for{$dist}{$version}{$d} || $package_for{$dist}{default}{$d}; + + if($p) { + push @packages, $p; + } else { + warn "Undefined dependency $d\n"; + } + } + + if($extras_for{$dist} and $extras_for{$dist}{$version}) { + @packages = (@packages, @{$extras_for{$dist}{$version}}); + } + + if($extras_for{$dist} and $extras_for{$dist}{default}) { + @packages = (@packages, @{$extras_for{$dist}{default}}); + } + + my @steps; + if($preinstall_for{$dist}) { + my $pres = $preinstall_for{$dist}{$version} || $preinstall_for{$dist}{default}; + if($pres) { + push @steps, @{$pres}; + } + } + + @packages = map { ref($_) eq 'ARRAY' ? @{$_} : $_ } grep { $_ } @packages; + + push @steps, "$command_for{$dist} @packages"; + + if($postinstall_for{$dist}) { + push @steps, @{$postinstall_for{$dist}{default} || []}; + push @steps, @{$postinstall_for{$dist}{$version} || []}; + } + + push @steps, @{$epilogue}; + + return @steps; +} + +sub singularity_file_for { + my ($arch, $dist, $version, $img_name, $sin_name) = @_; + + my @steps = spec_preamble_file_for($dist, $version); + + my $sinfile = < 0755 }); + + my $doc_name = catfile($output_dir, 'docker', "$output_name.dockerfile"); + my $img_name = catfile($output_dir, 'docker', "$output_name.img"); + my $tag = "cclnd/cctools-env:$arch-$dist$version"; + + say "Creating Docker file: $doc_name"; + open my $doc_fh, '>', $doc_name || croak "Problem with '$doc_name': $@"; + print { $doc_fh } dockerfile_for($arch, $dist, $version, $img_name, $doc_name); + close $doc_fh; + + unless($recp) { + my $exit_status; + + say "Building image from $doc_name to $tag"; + + my $context = catfile($output_dir, 'docker', 'context'); + #-d $context && system(qq(sudo rm -rf $context)); + -d $context && system(qq(rm -rf $context)); + + make_path($context, { mode => 0755 }); + copy $doc_name, "$context/Dockerfile"; + copy 'drop-priviliges.c', "$context/"; + copy 'run-with-user', "$context/"; + + #-e "$img_name" && system(qq(sudo rm -rf "$img_name")); + -e "$img_name" && system(qq(rm -rf "$img_name")); + + #qx(sudo docker rmi "$tag"); + qx(docker rmi "$tag"); + + #my $output = qx(sudo docker build --tag="$tag" --no-cache=true --force-rm $context); + my $output = qx(docker build --tag="$tag" --no-cache=true --force-rm $context); + $exit_status = $?; + + unless($exit_status == 0) { + die "Could not build image with $doc_name. Output:\n$output\n"; + } + + # retagging for upload: + qx(docker tag "$tag" "docker.io/$tag"); + + say "Saving image from $tag to $img_name"; + #$exit_status = system(qq(sudo docker save --output "$img_name" "$tag")); + $exit_status = system(qq(docker save --output "$img_name" "$tag")); + unless($exit_status == 0) { + die "Could not save to $img_name\n"; + } + + #qx(sudo chmod 755 $img_name); + qx(chmod 755 $img_name); + } +} + +sub dockerfile_for { + my ($arch, $dist, $version, $img_name, $doc_name) = @_; + + my @steps = spec_preamble_file_for($dist, $version); + + my $docfile = < $@ parrot_run: $(OBJECTS_PARROT_RUN) libparrot_client.a - $(CCTOOLS_CXX) -o $@ $(CCTOOLS_INTERNAL_LDFLAGS) $^ $(CCTOOLS_IRODS_LDFLAGS) $(CCTOOLS_MYSQL_LDFLAGS) $(CCTOOLS_XROOTD_LDFLAGS) $(CCTOOLS_CVMFS_LDFLAGS) $(CCTOOLS_GLOBUS_LDFLAGS) $(CCTOOLS_EXTERNAL_LINKAGE) + $(CCTOOLS_CXX) -o $@ $(CCTOOLS_INTERNAL_LDFLAGS) $^ $(CCTOOLS_IRODS_LDFLAGS) $(CCTOOLS_MYSQL_LDFLAGS) $(CCTOOLS_XROOTD_LDFLAGS) $(CCTOOLS_CVMFS_LDFLAGS) $(CCTOOLS_EXT2FS_LDFLAGS) $(CCTOOLS_GLOBUS_LDFLAGS) $(CCTOOLS_EXTERNAL_LINKAGE) parrot_cvmfs_static_run: $(OBJECTS_PARROT_RUN) libparrot_client.a $(CCTOOLS_CVMFS_LDFLAGS) $(EXTERNAL_DEPENDENCIES) $(CCTOOLS_CXX) -static -static-libstdc++ -static-libgcc -o $@ $^ $(CCTOOLS_INTERNAL_LDFLAGS) -Wl,-Bstatic $(CCTOOLS_EXTERNAL_LINKAGE) @@ -67,6 +69,9 @@ pfs_service_cvmfs.o: pfs_service_cvmfs.cc $(CCTOOLS_CXX) -o $@ -c $(CCTOOLS_INTERNAL_CXXFLAGS) $< $(CCTOOLS_CVMFS_CCFLAGS) +pfs_service_ext.o: pfs_service_ext.cc + $(CCTOOLS_CXX) -o $@ -c $(CCTOOLS_INTERNAL_CXXFLAGS) $< $(CCTOOLS_EXT2FS_CCFLAGS) + pfs_service_ftp.o: pfs_service_ftp.cc $(CCTOOLS_CXX) -o $@ -c $(CCTOOLS_INTERNAL_CXXFLAGS) $< $(CCTOOLS_GLOBUS_CCFLAGS) diff -Nru cctools-7.0.22/parrot/src/parrot_run.cc cctools-7.1.2/parrot/src/parrot_run.cc --- cctools-7.0.22/parrot/src/parrot_run.cc 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/parrot/src/parrot_run.cc 2020-05-05 15:31:15.000000000 +0000 @@ -40,6 +40,7 @@ #include "getopt.h" #include "int_sizes.h" #include "itable.h" +#include "macros.h" #include "md5.h" #include "password_cache.h" #include "random.h" @@ -72,6 +73,8 @@ #include #include +#include + #define SIG_ISSTOP(s) (s == SIGTTIN || s == SIGTTOU || s == SIGSTOP || s == SIGTSTP) FILE *namelist_file; @@ -126,6 +129,7 @@ const char * pfs_cvmfs_repo_arg = 0; const char * pfs_cvmfs_config_arg = 0; +const char * pfs_cvmfs_http_proxy = 0; bool pfs_cvmfs_repo_switching = false; char pfs_cvmfs_alien_cache_dir[PATH_MAX]; char pfs_cvmfs_locks_dir[PATH_MAX]; @@ -133,12 +137,15 @@ char pfs_cvmfs_option_file[PATH_MAX]; struct jx *pfs_cvmfs_options = NULL; + int pfs_irods_debug_level = 0; char *stats_file = NULL; int parrot_fd_max = -1; int parrot_fd_start = -1; +pfs_service *pfs_service_ext_init(const char *image, const char *mountpoint); + /* This process at the very top of the traced tree and its final exit status, which we use to determine @@ -172,6 +179,7 @@ LONG_OPT_STATS_FILE, LONG_OPT_DISABLE_SERVICE, LONG_OPT_NO_FLOCK, + LONG_OPT_EXT_IMAGE, }; static void get_linux_version(const char *cmd) @@ -282,6 +290,8 @@ printf( " %-30s Disable the given service.\n", "--disable-service"); printf( " %-30s Make flock a no-op.\n", "--no-flock"); printf("\n"); + printf("Filesystem Options:\n"); + printf( " %-30s Mount a read-only ext[234] disk image.\n", "--ext ="); printf("FTP / GridFTP options:\n"); printf( " %-30s Enable data channel authentication in GridFTP.\n", "-C,--channel-auth"); printf("\n"); @@ -588,13 +598,13 @@ int c; int chose_auth = 0; char *tickets = NULL; - char *http_proxy = NULL; pid_t pid; struct pfs_process *p; char envlist[PATH_MAX] = ""; int valgrind = 0; int envdebug = 0; int envauth = 0; + std::vector service_instances; random_init(); pfs_resolve_init(); @@ -819,8 +829,10 @@ {"debug-file", required_argument, 0, 'o'}, {"debug-level-irods", required_argument, 0, 'I'}, {"debug-rotate-max", required_argument, 0, 'O'}, + {"disable-service", required_argument, 0, LONG_OPT_DISABLE_SERVICE}, {"dynamic-mounts", no_argument, 0, LONG_OPT_DYNAMIC_MOUNTS }, {"env-list", required_argument, 0, 'e'}, + {"ext-image", required_argument, 0, LONG_OPT_EXT_IMAGE}, {"fake-setuid", no_argument, 0, LONG_OPT_FAKE_SETUID}, {"gid", required_argument, 0, 'G'}, {"help", no_argument, 0, 'h'}, @@ -838,6 +850,8 @@ {"no-set-foreground", no_argument, 0, LONG_OPT_NO_SET_FOREGROUND}, {"paranoid", no_argument, 0, 'P'}, {"parrot-path", required_argument, 0, LONG_OPT_PARROT_PATH}, + {"pid-fixed", no_argument, 0, LONG_OPT_PID_FIXED}, + {"pid-warp", no_argument, 0, LONG_OPT_PID_WARP}, {"proxy", required_argument, 0, 'p'}, {"root-checksum", required_argument, 0, 'R'}, {"session-caching", no_argument, 0, 'S'}, @@ -850,6 +864,8 @@ {"tab-file", required_argument, 0, 'm'}, {"tempdir", required_argument, 0, 't'}, {"tickets", required_argument, 0, 'i'}, + {"time-stop", no_argument, 0, LONG_OPT_TIME_STOP}, + {"time-warp", no_argument, 0, LONG_OPT_TIME_WARP}, {"timeout", required_argument, 0, 'T'}, {"uid", required_argument, 0, 'U'}, {"username", required_argument, 0, 'u'}, @@ -859,11 +875,6 @@ {"with-checksums", no_argument, 0, 'K'}, {"with-snapshots", no_argument, 0, 'F'}, {"work-dir", required_argument, 0, 'w'}, - {"time-stop", no_argument, 0, LONG_OPT_TIME_STOP}, - {"time-warp", no_argument, 0, LONG_OPT_TIME_WARP}, - {"pid-fixed", no_argument, 0, LONG_OPT_PID_FIXED}, - {"pid-warp", no_argument, 0, LONG_OPT_PID_WARP}, - {"disable-service", required_argument, 0, LONG_OPT_DISABLE_SERVICE}, {0,0,0,0} }; @@ -973,7 +984,7 @@ debug_config_file_size(string_metric_parse(optarg)); break; case 'p': - http_proxy = xxstrdup(optarg); + pfs_cvmfs_http_proxy = xxstrdup(optarg); break; case 'P': pfs_paranoid_mode = 1; @@ -1119,6 +1130,27 @@ case LONG_OPT_NO_FLOCK: pfs_no_flock = 1; break; + case LONG_OPT_EXT_IMAGE: { + char service[128]; + char image[PATH_MAX] = {0}; + char mountpoint[PATH_MAX] = {0}; + static unsigned ext_no = 0; + + char *split = strchr(optarg, '='); + if (!split) fatal("--ext must be specified as IMAGE=MOUNTPOINT"); + strncpy(image, optarg, MIN((size_t) (split - optarg), sizeof(image) - 1)); + strncpy(mountpoint, split + 1, sizeof(mountpoint) - 1); + if (mountpoint[0] != '/') fatal("mountpoint for ext image %s must be an absolute path", image); + struct pfs_service *s = pfs_service_ext_init(image, mountpoint); + if (!s) fatal("failed to load ext image %s", image); + + service_instances.push_back(s); + snprintf(service, sizeof(service), "/ext_%u", ext_no++); + hash_table_insert(available_services, &service[1], s); + pfs_resolve_add_entry(mountpoint, service, R_OK|W_OK|X_OK); + + break; + } default: show_help(argv[0]); break; @@ -1127,7 +1159,7 @@ if(optind>=argc) show_help(argv[0]); - FILE *stats_out; + FILE *stats_out = NULL; if (stats_file) { stats_enable(); stats_out = fopen(stats_file, "w"); @@ -1185,10 +1217,10 @@ fclose(fp); } - if (http_proxy) - setenv("PARROT_HTTP_PROXY", http_proxy, 1); - - http_proxy = (char *)realloc(http_proxy, 0); + // if -p not given, check if HTTP_PROXY is set. + if(!pfs_cvmfs_http_proxy && getenv("HTTP_PROXY")) { + pfs_cvmfs_http_proxy = xxstrdup(getenv("HTTP_PROXY")); + } if (!create_dir(pfs_temp_dir, S_IRWXU)) fatal("could not create directory '%s': %s", pfs_temp_dir, strerror(errno)); @@ -1389,6 +1421,10 @@ } } + for (std::vector::iterator it = service_instances.begin(); it != service_instances.end(); ++it) { + delete *it; + } + if(pfs_syscall_totals32) { printf("\nParrot System Call Summary:\n"); printf("%" PRId64 " syscalls\n",pfs_syscall_count); diff -Nru cctools-7.0.22/parrot/src/pfs_main.cc cctools-7.1.2/parrot/src/pfs_main.cc --- cctools-7.0.22/parrot/src/pfs_main.cc 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/parrot/src/pfs_main.cc 2020-05-05 15:31:15.000000000 +0000 @@ -40,6 +40,7 @@ #include "getopt.h" #include "int_sizes.h" #include "itable.h" +#include "macros.h" #include "md5.h" #include "password_cache.h" #include "random.h" @@ -72,6 +73,8 @@ #include #include +#include + #define SIG_ISSTOP(s) (s == SIGTTIN || s == SIGTTOU || s == SIGSTOP || s == SIGTSTP) FILE *namelist_file; @@ -126,6 +129,7 @@ const char * pfs_cvmfs_repo_arg = 0; const char * pfs_cvmfs_config_arg = 0; +const char * pfs_cvmfs_http_proxy = 0; bool pfs_cvmfs_repo_switching = false; char pfs_cvmfs_alien_cache_dir[PATH_MAX]; char pfs_cvmfs_locks_dir[PATH_MAX]; @@ -133,12 +137,15 @@ char pfs_cvmfs_option_file[PATH_MAX]; struct jx *pfs_cvmfs_options = NULL; + int pfs_irods_debug_level = 0; char *stats_file = NULL; int parrot_fd_max = -1; int parrot_fd_start = -1; +pfs_service *pfs_service_ext_init(const char *image, const char *mountpoint); + /* This process at the very top of the traced tree and its final exit status, which we use to determine @@ -172,6 +179,7 @@ LONG_OPT_STATS_FILE, LONG_OPT_DISABLE_SERVICE, LONG_OPT_NO_FLOCK, + LONG_OPT_EXT_IMAGE, }; static void get_linux_version(const char *cmd) @@ -282,6 +290,8 @@ printf( " %-30s Disable the given service.\n", "--disable-service"); printf( " %-30s Make flock a no-op.\n", "--no-flock"); printf("\n"); + printf("Filesystem Options:\n"); + printf( " %-30s Mount a read-only ext[234] disk image.\n", "--ext ="); printf("FTP / GridFTP options:\n"); printf( " %-30s Enable data channel authentication in GridFTP.\n", "-C,--channel-auth"); printf("\n"); @@ -588,13 +598,13 @@ int c; int chose_auth = 0; char *tickets = NULL; - char *http_proxy = NULL; pid_t pid; struct pfs_process *p; char envlist[PATH_MAX] = ""; int valgrind = 0; int envdebug = 0; int envauth = 0; + std::vector service_instances; random_init(); pfs_resolve_init(); @@ -819,8 +829,10 @@ {"debug-file", required_argument, 0, 'o'}, {"debug-level-irods", required_argument, 0, 'I'}, {"debug-rotate-max", required_argument, 0, 'O'}, + {"disable-service", required_argument, 0, LONG_OPT_DISABLE_SERVICE}, {"dynamic-mounts", no_argument, 0, LONG_OPT_DYNAMIC_MOUNTS }, {"env-list", required_argument, 0, 'e'}, + {"ext-image", required_argument, 0, LONG_OPT_EXT_IMAGE}, {"fake-setuid", no_argument, 0, LONG_OPT_FAKE_SETUID}, {"gid", required_argument, 0, 'G'}, {"help", no_argument, 0, 'h'}, @@ -838,6 +850,8 @@ {"no-set-foreground", no_argument, 0, LONG_OPT_NO_SET_FOREGROUND}, {"paranoid", no_argument, 0, 'P'}, {"parrot-path", required_argument, 0, LONG_OPT_PARROT_PATH}, + {"pid-fixed", no_argument, 0, LONG_OPT_PID_FIXED}, + {"pid-warp", no_argument, 0, LONG_OPT_PID_WARP}, {"proxy", required_argument, 0, 'p'}, {"root-checksum", required_argument, 0, 'R'}, {"session-caching", no_argument, 0, 'S'}, @@ -850,6 +864,8 @@ {"tab-file", required_argument, 0, 'm'}, {"tempdir", required_argument, 0, 't'}, {"tickets", required_argument, 0, 'i'}, + {"time-stop", no_argument, 0, LONG_OPT_TIME_STOP}, + {"time-warp", no_argument, 0, LONG_OPT_TIME_WARP}, {"timeout", required_argument, 0, 'T'}, {"uid", required_argument, 0, 'U'}, {"username", required_argument, 0, 'u'}, @@ -859,11 +875,6 @@ {"with-checksums", no_argument, 0, 'K'}, {"with-snapshots", no_argument, 0, 'F'}, {"work-dir", required_argument, 0, 'w'}, - {"time-stop", no_argument, 0, LONG_OPT_TIME_STOP}, - {"time-warp", no_argument, 0, LONG_OPT_TIME_WARP}, - {"pid-fixed", no_argument, 0, LONG_OPT_PID_FIXED}, - {"pid-warp", no_argument, 0, LONG_OPT_PID_WARP}, - {"disable-service", required_argument, 0, LONG_OPT_DISABLE_SERVICE}, {0,0,0,0} }; @@ -973,7 +984,7 @@ debug_config_file_size(string_metric_parse(optarg)); break; case 'p': - http_proxy = xxstrdup(optarg); + pfs_cvmfs_http_proxy = xxstrdup(optarg); break; case 'P': pfs_paranoid_mode = 1; @@ -1119,6 +1130,27 @@ case LONG_OPT_NO_FLOCK: pfs_no_flock = 1; break; + case LONG_OPT_EXT_IMAGE: { + char service[128]; + char image[PATH_MAX] = {0}; + char mountpoint[PATH_MAX] = {0}; + static unsigned ext_no = 0; + + char *split = strchr(optarg, '='); + if (!split) fatal("--ext must be specified as IMAGE=MOUNTPOINT"); + strncpy(image, optarg, MIN((size_t) (split - optarg), sizeof(image) - 1)); + strncpy(mountpoint, split + 1, sizeof(mountpoint) - 1); + if (mountpoint[0] != '/') fatal("mountpoint for ext image %s must be an absolute path", image); + struct pfs_service *s = pfs_service_ext_init(image, mountpoint); + if (!s) fatal("failed to load ext image %s", image); + + service_instances.push_back(s); + snprintf(service, sizeof(service), "/ext_%u", ext_no++); + hash_table_insert(available_services, &service[1], s); + pfs_resolve_add_entry(mountpoint, service, R_OK|W_OK|X_OK); + + break; + } default: show_help(argv[0]); break; @@ -1127,7 +1159,7 @@ if(optind>=argc) show_help(argv[0]); - FILE *stats_out; + FILE *stats_out = NULL; if (stats_file) { stats_enable(); stats_out = fopen(stats_file, "w"); @@ -1185,10 +1217,10 @@ fclose(fp); } - if (http_proxy) - setenv("PARROT_HTTP_PROXY", http_proxy, 1); - - http_proxy = (char *)realloc(http_proxy, 0); + // if -p not given, check if HTTP_PROXY is set. + if(!pfs_cvmfs_http_proxy && getenv("HTTP_PROXY")) { + pfs_cvmfs_http_proxy = xxstrdup(getenv("HTTP_PROXY")); + } if (!create_dir(pfs_temp_dir, S_IRWXU)) fatal("could not create directory '%s': %s", pfs_temp_dir, strerror(errno)); @@ -1389,6 +1421,10 @@ } } + for (std::vector::iterator it = service_instances.begin(); it != service_instances.end(); ++it) { + delete *it; + } + if(pfs_syscall_totals32) { printf("\nParrot System Call Summary:\n"); printf("%" PRId64 " syscalls\n",pfs_syscall_count); diff -Nru cctools-7.0.22/parrot/src/pfs_service_cvmfs.cc cctools-7.1.2/parrot/src/pfs_service_cvmfs.cc --- cctools-7.0.22/parrot/src/pfs_service_cvmfs.cc 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/parrot/src/pfs_service_cvmfs.cc 2020-05-05 15:31:15.000000000 +0000 @@ -51,6 +51,8 @@ extern char pfs_cvmfs_option_file[]; extern struct jx *pfs_cvmfs_options; +extern char * pfs_cvmfs_http_proxy; + static bool cvmfs_configured = false; static struct cvmfs_filesystem *cvmfs_active_filesystem = 0; @@ -614,9 +616,8 @@ f->cvmfs_ctx = NULL; #endif - char *proxy = getenv("PARROT_HTTP_PROXY"); #if LIBCVMFS_REVISION < 23 - if( !proxy || !proxy[0] || !strcmp(proxy,"DIRECT") ) { + if( !pfs_cvmfs_http_proxy || !pfs_cvmfs_http_proxy[0] || !strcmp(pfs_cvmfs_http_proxy,"DIRECT") ) { if( !strstr(user_options,"proxies=") ) { debug(D_CVMFS|D_NOTICE,"CVMFS requires an http proxy. None has been configured!"); debug(D_CVMFS,"Ignoring configuration of CVMFS repository %s:%s",repo_name,user_options); @@ -658,8 +659,8 @@ pfs_master_timeout, pfs_master_timeout, - proxy ? ",proxies=" : "", - proxy ? proxy : "", + pfs_cvmfs_http_proxy ? ",proxies=" : "", + pfs_cvmfs_http_proxy ? pfs_cvmfs_http_proxy : "", &f->subst_offset, user_options); #else @@ -669,8 +670,8 @@ pfs_master_timeout, pfs_master_timeout, - proxy ? ",proxies=" : "", - proxy ? proxy : "", + pfs_cvmfs_http_proxy ? ",proxies=" : "", + pfs_cvmfs_http_proxy ? pfs_cvmfs_http_proxy : "", &f->subst_offset, user_options); #endif diff -Nru cctools-7.0.22/parrot/src/pfs_service_ext.cc cctools-7.1.2/parrot/src/pfs_service_ext.cc --- cctools-7.0.22/parrot/src/pfs_service_ext.cc 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/parrot/src/pfs_service_ext.cc 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,529 @@ +/* +Copyright (C) 2018- The University of Notre Dame +This software is distributed under the GNU General Public License. +See the file COPYING for details. +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "pfs_service.h" + +extern "C" { + #include "debug.h" + #include "macros.h" + #include "xxmalloc.h" +} + +#ifdef HAS_EXT2FS + +#include +#include + +#define LOOKUP_INODE(name, inode, follow, fail) { \ + errcode_t rc = lookup_inode(fs, mountpoint, EXT2_ROOT_INO, name, inode, follow ? 0 : -1); \ + if (rc == 0) { \ + debug(D_EXT, "lookup %s -> inode %d", name, *inode); \ + } else { \ + debug(D_EXT, "lookup %s failed: %s", name, error_message(rc)); \ + errno = fix_errno(rc); \ + return fail; \ + } \ +} while (false) + +#define READ_INODE(inode, buf, fail) { \ + errcode_t rc = ext2fs_read_inode(fs, inode, buf); \ + if (rc == 0) { \ + debug(D_EXT, "read inode %d", inode); \ + } else { \ + debug(D_EXT, "read inode %d failed: %s", inode, error_message(rc)); \ + return fail; \ + } \ +} while (false) + +#define OPEN_FILE(inode, file, fail) { \ + errcode_t rc = ext2fs_file_open(fs, inode, 0, file); \ + if (rc == 0) { \ + debug(D_EXT, "open inode %d -> file %p", inode, *file); \ + } else { \ + debug(D_EXT, "open inode %d failed: %s", inode, error_message(rc)); \ + return fail; \ + } \ +} while (false) + +#define CLOSE_FILE(file, fail) { \ + errcode_t rc = ext2fs_file_close(file); \ + if (rc == 0) { \ + debug(D_EXT, "close file %p", file); \ + } else { \ + debug(D_EXT, "close file %p failed: %s", file, error_message(rc)); \ + return fail; \ + } \ +} while (false) + +static errcode_t lookup_inode(ext2_filsys fs, const char *mountpoint, ext2_ino_t cwd, const char *path, ext2_ino_t *inode, int depth); +static errcode_t follow_link(ext2_filsys fs, const char *mountpoint, ext2_ino_t cwd, ext2_ino_t inode, ext2_ino_t *out, int depth); + +static int fix_errno(errcode_t rc) { + if (((rc>>8) & ((1<<24) - 1)) == 0) { + // literal errno value + return rc; + } + // very rough translation + switch (rc) { + case 0: return 0; + case EXT2_ET_RO_FILSYS: return EROFS; + case EXT2_ET_SYMLINK_LOOP: return ELOOP; + case EXT2_ET_NO_MEMORY: return ENOMEM; + case EXT2_ET_UNSUPP_FEATURE: return ENOSYS; + case EXT2_ET_RO_UNSUPP_FEATURE: return ENOSYS; + case EXT2_ET_INVALID_ARGUMENT: return EINVAL; + case EXT2_ET_NO_DIRECTORY: return ENOENT; + case EXT2_ET_TOO_MANY_REFS: return EMLINK; + case EXT2_ET_FILE_NOT_FOUND: return ENOENT; + case EXT2_ET_FILE_RO: return EROFS; + case EXT2_ET_DIR_EXISTS: return EEXIST; + case EXT2_ET_UNIMPLEMENTED: return ENOSYS; + case EXT2_ET_FILE_TOO_BIG: return EFBIG; + default: return EINVAL; + } +} + +static void inode2stat(ext2_ino_t i, struct ext2_inode *b, struct pfs_stat *p) { + assert(i); + assert(p); + + memset(p, 0, sizeof(*p)); + p->st_dev = (dev_t) -1; + p->st_ino = i; + p->st_mode = b->i_mode; + p->st_uid = b->i_uid; + p->st_gid = b->i_gid; + p->st_size = b->i_size; + p->st_nlink = b->i_links_count; + p->st_blksize = 65336; + p->st_blocks = b->i_blocks; + p->st_atime = b->i_atime; + p->st_ctime = b->i_ctime; + p->st_mtime = b->i_mtime; +} + +static int append_dirents(struct ext2_dir_entry *dirent, int offset, int blocksize, char *buf, void *p) { + char name[PATH_MAX] = {0}; + pfs_dir *d = (pfs_dir *) p; + + assert(dirent); + assert(d); + + size_t name_len = dirent->name_len & ((1<<8) - 1); + strncpy(name, dirent->name, MIN(name_len, sizeof(name) - 1)); + d->append(name); + + return 0; +} + +static errcode_t follow_link(ext2_filsys fs, const char *mountpoint, ext2_ino_t cwd, ext2_ino_t inode, ext2_ino_t *out, int depth) { + struct ext2_inode buf; + ext2_file_t file; + unsigned size; + char target[PATH_MAX] = {0}; + + assert(out); + // debug(D_EXT, "follow %d in %d", inode, cwd); + if (depth > 64) return EXT2_ET_SYMLINK_LOOP; + + errcode_t rc = ext2fs_read_inode(fs, inode, &buf); + if (rc) return rc; + if (!S_ISLNK(buf.i_mode)) { + // debug(D_EXT, "not a symlink"); + *out = inode; + return 0; + } + + rc = ext2fs_file_open(fs, inode, 0, &file); + if (rc) return rc; + rc = ext2fs_file_read(file, target, sizeof(target) - 1, &size); + ext2fs_file_close(file); + if (rc == EXT2_ET_SHORT_READ) { + // debug(D_EXT, "short read, inline link"); + size = MIN(buf.i_size, sizeof(target) - 1); + memcpy(target, buf.i_block, size); + } else if (rc) { + return rc; + } + + if (target[0] == '/') { + cwd = EXT2_ROOT_INO; + const char *m = mountpoint; + char *current = &target[0]; + while (*m != '\0') { + if (*m != *current) goto BADLINK; + while (*(++m) == '/'); + while (*(++current) == '/'); + if (*m == '\0' && *current != '\0' && *(current - 1) != '/') goto BADLINK; + } + memmove(target, current, strlen(current) + 1); + // debug(D_EXT, "stripped to %s", target); + } + + return lookup_inode(fs, mountpoint, cwd, target, out, depth + 1); +BADLINK: + debug(D_EXT, "symlinks cannot point out of the image"); + return EXT2_ET_FILE_NOT_FOUND; +} + +static errcode_t lookup_inode(ext2_filsys fs, const char *mountpoint, ext2_ino_t cwd, const char *path, ext2_ino_t *inode, int depth) { + errcode_t rc; + + assert(path); + assert(inode); + debug(D_EXT, "lookup %s in %d", path, cwd); + + while (*path == '/') { + cwd = EXT2_ROOT_INO; + ++path; + } + + char tmp[PATH_MAX] = {0}; + strncpy(tmp, path, sizeof(tmp) - 1); + char *current = &tmp[0]; + char *last = strrchr(tmp, '/'); + + while (last && current < last) { + char *split = strchr(current, '/'); + *split = '\0'; + // debug(D_EXT, "component %s", current); + + ext2_ino_t dir; + rc = ext2fs_lookup(fs, cwd, current, strlen(current), NULL, &dir); + if (rc) return rc; + // debug(D_EXT, "\t-> inode %d", dir); + + rc = follow_link(fs, mountpoint, cwd, dir, &dir, depth); + if (rc) return rc; + // debug(D_EXT, "\t-> inode %d", dir); + + cwd = dir; + current = split + 1; + } + + if (*current == '\0') { + *inode = cwd; + return 0; + } + + // debug(D_EXT, "leaf %s", current); + ext2_ino_t out; + rc = ext2fs_lookup(fs, cwd, current, strlen(current), NULL, &out); + if (rc) return rc; + // debug(D_EXT, "\t-> inode %d", out); + if (depth >= 0) rc = follow_link(fs, mountpoint, cwd, out, &out, depth); + if (rc) return rc; + // debug(D_EXT, "\t-> inode %d", out); + *inode = out; + + return 0; +} + +class pfs_file_ext : public pfs_file { +private: + ext2_ino_t inode; + ext2_filsys fs; + +public: + pfs_file_ext(pfs_name *name, ext2_ino_t inode, ext2_filsys fs) + : pfs_file(name) + , inode(inode) + , fs(fs) { + assert(name); + debug(D_EXT, "open %s (inode %d) -> %p", name->rest, inode, this); + } + + virtual int canbenative(char *path, size_t len) { + return 0; + } + + virtual int close() { + debug(D_EXT, "close %p", this); + // not holding any resources open, so noop here + return 0; + } + + virtual pfs_ssize_t read(void *data, pfs_size_t length, pfs_off_t offset) { + ext2_file_t file; + unsigned size; + + assert(data); + + debug(D_EXT, "read %" PRIi64 "B from %p at %" PRIi64, length, this, offset); + OPEN_FILE(inode, &file, -1); + errcode_t rc = ext2fs_file_llseek(file, offset, EXT2_SEEK_SET, NULL); + if (rc != 0) { + debug(D_EXT, "failed to seek to %" PRIi64 " in %p: %s", offset, this, error_message(rc)); + errno = fix_errno(rc); + return -1; + } + + rc = ext2fs_file_read(file, data, length, &size); + if (rc == 0) { + debug(D_EXT, "read %u/%" PRIi64 " bytes from file %p", size, length, file); + } else { + debug(D_EXT, "read file %p failed: %s", file, error_message(rc)); + CLOSE_FILE(file, -1); + return -1; + } + + CLOSE_FILE(file, -1); + + return size; + + } + + virtual int fstat(struct pfs_stat *buf) { + struct ext2_inode inode_buf; + + assert(buf); + + debug(D_EXT, "fstat %p", this); + READ_INODE(inode, &inode_buf, -1); + inode2stat(inode, &inode_buf, buf); + + return 0; + } + + virtual int fstatfs(struct pfs_statfs *buf) { + assert(buf); + + debug(D_EXT, "fstatfs %p", this); + pfs_service_emulate_statfs(buf); + + return 0; + } + + virtual int flock(int op) { + // noop + return 0; + } + + virtual int fsync() { + // noop + return 0; + } + + virtual pfs_ssize_t get_size() { + struct ext2_inode inode_buf; + + debug(D_EXT, "fstat %p", this); + READ_INODE(inode, &inode_buf, -1); + + return inode_buf.i_size; + } +}; + +class pfs_service_ext: public pfs_service { +private: + char *image; + char *mountpoint; + ext2_filsys fs; + +public: + pfs_service_ext(ext2_filsys fs, const char *img, const char *m) + : fs(fs) { + assert(image); + assert(m); + + image = strdup(img); + mountpoint = strdup(m); + } + + ~pfs_service_ext() { + debug(D_EXT, "closing ext fs %s", image); + free(image); + free(mountpoint); + errcode_t rc = ext2fs_close(fs); + if (rc != 0) { + debug(D_NOTICE, "failed to close ext filesystem at %s: %s", image, error_message(rc)); + } + } + + virtual pfs_file *open(pfs_name *name, int flags, mode_t mode) { + ext2_ino_t inode; + struct ext2_inode inode_buf; + + assert(name); + if (flags&(O_WRONLY|O_RDWR)) { + errno = EROFS; + return NULL; + } + + debug(D_EXT, "open %s %d %d", name->rest, flags, mode); + LOOKUP_INODE(name->rest, &inode, !(flags&O_NOFOLLOW), NULL); + READ_INODE(inode, &inode_buf, NULL); + if (S_ISLNK(inode_buf.i_mode)) { + errno = ELOOP; + return NULL; + } + + pfs_file_ext *result = new pfs_file_ext(name, inode, fs); + debug(D_EXT, "open %s in image %s -> %p", name->rest, image, result); + return result; + } + + virtual pfs_dir *getdir(pfs_name *name) { + ext2_ino_t inode; + struct ext2_inode inode_buf; + + assert(name); + + debug(D_EXT, "getdir %s", name->rest); + LOOKUP_INODE(name->rest, &inode, true, NULL); + READ_INODE(inode, &inode_buf, NULL); + if (!S_ISDIR(inode_buf.i_mode)) { + errno = ENOTDIR; + return NULL; + } + pfs_dir *result = new pfs_dir(name); + ext2fs_dir_iterate(fs, inode, 0, NULL, append_dirents, result); + + return result; + } + + virtual int statfs(pfs_name *name, struct pfs_statfs *buf) { + ext2_ino_t inode; + + assert(name); + assert(buf); + + debug(D_EXT, "statfs %s", name->rest); + LOOKUP_INODE(name->rest, &inode, true, -1); + pfs_service_emulate_statfs(buf); + + return 0; + } + + virtual int stat(pfs_name *name, struct pfs_stat *buf) { + ext2_ino_t inode; + struct ext2_inode inode_buf; + + assert(name); + assert(buf); + + debug(D_EXT, "stat %s", name->rest); + LOOKUP_INODE(name->rest, &inode, true, -1); + READ_INODE(inode, &inode_buf, -1); + inode2stat(inode, &inode_buf, buf); + + return 0; + } + + virtual int lstat(pfs_name *name, struct pfs_stat *buf) { + ext2_ino_t inode; + struct ext2_inode inode_buf; + + assert(name); + assert(buf); + + debug(D_EXT, "lstat %s", name->rest); + LOOKUP_INODE(name->rest, &inode, false, -1); + READ_INODE(inode, &inode_buf, -1); + inode2stat(inode, &inode_buf, buf); + + return 0; + } + + virtual int access(pfs_name *name, mode_t mode) { + ext2_ino_t inode; + + assert(name); + + debug(D_EXT, "access %s %d", name->rest, mode); + LOOKUP_INODE(name->rest, &inode, true, -1); + + // we don't do permission checks, so just go ahead + return 0; + } + + virtual int readlink(pfs_name *name, char *buf, pfs_size_t bufsiz) { + ext2_ino_t inode; + ext2_file_t file; + struct ext2_inode inode_buf; + unsigned size; + + assert(name); + assert(buf); + + debug(D_EXT, "readlink %s", name->rest); + LOOKUP_INODE(name->rest, &inode, false, -1); + READ_INODE(inode, &inode_buf, -1); + + if (!S_ISLNK(inode_buf.i_mode)) { + errno = EINVAL; + return -1; + } + OPEN_FILE(inode, &file, -1); + + errcode_t rc = ext2fs_file_read(file, buf, bufsiz, &size); + if (rc == 0) { + debug(D_EXT, "read %u/%" PRIu64 " bytes from file %p", size, bufsiz, file); + } else if (rc == EXT2_ET_SHORT_READ) { + debug(D_EXT, "short read on %p, inline link", file); + size = inode_buf.i_size; + memcpy(buf, inode_buf.i_block, size); + } else { + debug(D_EXT, "read file %p failed: %s", file, error_message(rc)); + CLOSE_FILE(file, -1); + return -1; + } + + CLOSE_FILE(file, -1); + + return size; + } + + virtual int is_seekable() { + return 1; + } +}; + +#endif + +pfs_service *pfs_service_ext_init(const char *image, const char *mountpoint) { + +#ifdef HAS_EXT2FS + + assert(image); + + initialize_ext2_error_table(); + debug(D_EXT, "loading ext image %s", image); + + ext2_filsys fs; + errcode_t rc = ext2fs_open(image, 0, 0, 0, unix_io_manager, &fs); + if (rc != 0) { + if (rc == EXT2_ET_SHORT_READ) { + fprintf(stderr, "got short read on %s, could indicate trying to open directory as ext image\n", image); + } + fatal("failed to load ext image %s: %s", image, error_message(rc)); + } + + return new pfs_service_ext(fs, image, mountpoint); + +#else + + fatal("parrot was not configured with ext2fs support"); + // unreachable + return NULL; + +#endif + +} + +/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/parrot/src/pfs_table.cc cctools-7.1.2/parrot/src/pfs_table.cc --- cctools-7.0.22/parrot/src/pfs_table.cc 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/parrot/src/pfs_table.cc 2020-05-05 15:31:15.000000000 +0000 @@ -45,6 +45,7 @@ #include #include #include +#include #ifndef major /* glibc 2.26 drops sys/sysmacros.h from sys/types.h, thus we add it here */ @@ -526,6 +527,11 @@ strcpy(pname->hostport,"localhost"); strcpy(pname->rest,pname->path); pname->is_local = 1; + } else if (!strncmp(pname->service_name, "ext_", 4)) { + strcpy(pname->rest, tmp); + strcpy(pname->host, "ext"); + strcpy(pname->hostport, "ext"); + pname->port = 0; } else { if(!strcmp(pname->service_name,"multi")) {// if we're dealing with a multivolume, split off at the @ path_split_multi(tmp,pname->host,pname->rest); @@ -551,7 +557,9 @@ } else { pname->port = pname->service->get_default_port(); } - sprintf(pname->hostport,"%s:%d",pname->host,pname->port); + char *hostport=string_format("%s:%d", pname->host, pname->port); + strncpy(pname->hostport, hostport, sizeof(pname->hostport)); + free(hostport); } if(!strcmp(pname->service_name,"multi")) { diff -Nru cctools-7.0.22/parrot/test/TR_parrot_cvmfs_access.sh cctools-7.1.2/parrot/test/TR_parrot_cvmfs_access.sh --- cctools-7.0.22/parrot/test/TR_parrot_cvmfs_access.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/parrot/test/TR_parrot_cvmfs_access.sh 2020-05-05 15:31:15.000000000 +0000 @@ -3,10 +3,6 @@ . ../../dttools/test/test_runner_common.sh . ./parrot-test.sh -export PARROT_ALLOW_SWITCHING_CVMFS_REPOSITORIES="yes" -export HTTP_PROXY=http://cache01.hep.wisc.edu:3128 -export PARROT_CVMFS_REPO='*.cern.ch:pubkey=,url=http://cvmfs-stratum-one.cern.ch/cvmfs/*.cern.ch' - tmp_dir=${PWD}/parrot_temp_dir prepare() diff -Nru cctools-7.0.22/parrot/test/TR_parrot_cvmfs_alien_cache.sh cctools-7.1.2/parrot/test/TR_parrot_cvmfs_alien_cache.sh --- cctools-7.0.22/parrot/test/TR_parrot_cvmfs_alien_cache.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/parrot/test/TR_parrot_cvmfs_alien_cache.sh 2020-05-05 15:31:15.000000000 +0000 @@ -3,10 +3,6 @@ . ../../dttools/test/test_runner_common.sh . ./parrot-test.sh -export PARROT_ALLOW_SWITCHING_CVMFS_REPOSITORIES="yes" -export HTTP_PROXY=http://cache01.hep.wisc.edu:3128 -export PARROT_CVMFS_REPO='*.cern.ch:pubkey=,url=http://cvmfs-stratum-one.cern.ch/cvmfs/*.cern.ch' - tmp_dir_master=${PWD}/parrot_temp_dir tmp_dir_hitcher=${PWD}/parrot_temp_dir_hitcher diff -Nru cctools-7.0.22/prune/examples/census/compare_surnames.py cctools-7.1.2/prune/examples/census/compare_surnames.py --- cctools-7.0.22/prune/examples/census/compare_surnames.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/prune/examples/census/compare_surnames.py 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/prune/examples/census/match_people.py cctools-7.1.2/prune/examples/census/match_people.py --- cctools-7.0.22/prune/examples/census/match_people.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/prune/examples/census/match_people.py 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/prune/examples/hep/hep.py cctools-7.1.2/prune/examples/hep/hep.py --- cctools-7.0.22/prune/examples/hep/hep.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/prune/examples/hep/hep.py 2020-05-05 15:31:15.000000000 +0000 @@ -1,20 +1,19 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. # See the file COPYING for details. from prune import client -from os.path import expanduser +import os - -HOME = expanduser("~") -prune = client.Connect(base_dir = HOME+'/.prune') #Prune data is stored in base_dir +prune = client.Connect(base_dir = os.environ["HOME"] + '/.prune') #Prune data is stored in base_dir ###### Create common HEP environment ###### -E1 = prune.envi_add( engine='umbrella', spec='cms.umbrella', - sandbox_mode='parrot', log='umbrella.log', +E1 = prune.envi_add(engine='umbrella', + spec='cms.umbrella', + sandbox_mode='parrot', + log='umbrella.log', cms_siteconf='SITECONF.tar.gz', cvmfs_http_proxy='http://eddie.crc.nd.edu:3128', http_proxy='http://eddie.crc.nd.edu:3128' ) @@ -22,25 +21,30 @@ event_count = 10 ###### Simulation stage ###### -D1 = prune.file_add( 'simulate.sh' ) -D2, = prune.task_add( returns=['SinglePi0E10_cfi_GEN_SIM.root'], - env=E1, cmd='chmod 755 simulate.sh; ./simulate.sh %i ' % (event_count), - args=[D1], params=['simulate.sh'] ) +D1 = prune.file_add('simulate.sh') +D2, = prune.task_add(returns=['SinglePi0E10_cfi_GEN_SIM.root'], + env=E1, + cmd='chmod 755 simulate.sh; ./simulate.sh %i ' % (event_count), + args=[D1], + params=['simulate.sh']) ###### Digitization stage ###### D3 = prune.file_add( 'digitize.sh' ) -D4, = prune.task_add( returns=['SinglePi0E10_cfi_GEN_DIGI_L1_DIGI2RAW_HLT_RAW2DIGI_L1Reco.root'], - env=E1, cmd='chmod 755 digitize.sh; ./digitize.sh %i' % (event_count), - args=[D3,D2], params=['digitize.sh','SinglePi0E10_cfi_GEN_SIM.root'] ) +D4, = prune.task_add(returns=['SinglePi0E10_cfi_GEN_DIGI_L1_DIGI2RAW_HLT_RAW2DIGI_L1Reco.root'], + env=E1, + cmd='chmod 755 digitize.sh; ./digitize.sh %i' % (event_count), + args=[D3,D2], + params=['digitize.sh','SinglePi0E10_cfi_GEN_SIM.root']) ###### Reconstruction stage ###### -D5 = prune.file_add( 'reconstruct.sh' ) -D6, D7, D8 = prune.task_add( returns=[ - 'SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM.py', - 'SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM.root', - 'SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM_inDQM.root'], - env=E1, cmd='chmod 755 reconstruct.sh; ./reconstruct.sh %i' % (event_count), - args=[D5,D4], params=['reconstruct.sh','SinglePi0E10_cfi_GEN_DIGI2RAW.root'] ) +D5 = prune.file_add('reconstruct.sh') +D6, D7, D8 = prune.task_add(returns=['SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM.py', + 'SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM.root', + 'SinglePi0E10_cfi_GEN_RAW2DIGI_L1Reco_RECO_VALIDATION_DQM_inDQM.root'], + env=E1, + cmd='chmod 755 reconstruct.sh; ./reconstruct.sh %i' % (event_count), + args=[D5,D4], + params=['reconstruct.sh','SinglePi0E10_cfi_GEN_DIGI2RAW.root']) ###### Execute the workflow ###### prune.execute( worker_type='local', cores=8 ) diff -Nru cctools-7.0.22/prune/examples/hep/hep.wq.py cctools-7.1.2/prune/examples/hep/hep.wq.py --- cctools-7.0.22/prune/examples/hep/hep.wq.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/prune/examples/hep/hep.wq.py 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/prune/examples/merge_sort/merge_sort.py cctools-7.1.2/prune/examples/merge_sort/merge_sort.py --- cctools-7.0.22/prune/examples/merge_sort/merge_sort.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/prune/examples/merge_sort/merge_sort.py 2020-05-05 15:31:15.000000000 +0000 @@ -1,41 +1,65 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. # See the file COPYING for details. from prune import client -from os.path import expanduser +import os - -HOME = expanduser("~") -prune = client.Connect(base_dir = HOME+'/.prune') #Prune data is stored in base_dir +#Prune data is stored in base_dir +prune = client.Connect(base_dir = os.environ["HOME"] + '/.prune') ###### Import sources stage ###### -E1 = prune.nil +# D1 and D2 are handlers for our input files D1 = prune.file_add( 'nouns.txt' ) D2 = prune.file_add( 'verbs.txt' ) +# E1 is a handler for an environment specification. We will deal with +# environments in a further example, and for now we simply use prune's nil +E1 = prune.nil + ###### Sort stage ###### -D3, = prune.task_add( returns=['output.txt'], - env=E1, cmd='sort input.txt > output.txt', - args=[D1], params=['input.txt'] ) -D4, = prune.task_add( returns=['output.txt'], - env=E1, cmd='sort input.txt > output.txt', - args=[D2], params=['input.txt'] ) +# We define the first task, which sorts the file D1 (that is, nouns.txt) +# In the command line, D1 is mapped to the parameter 'input.txt'. +# The return value D3 represents the output file 'output.txt' +D3, = prune.task_add(returns=['output.txt'], + env=E1, + cmd='/bin/sort input.txt > output.txt', + args=[D1], + params=['input.txt']) + +# Similarly, we define the second task, which sorts the file D2 (verbs.txt) +# Note that in the command line, D2 is also mapped to the parameter +# 'input.txt', and the output is also named 'output.txt'. This is ok, as all +# prune tasks are executed in their own sandbox. +D4, = prune.task_add(returns=['output.txt'], + env=E1, + cmd='sort input.txt > output.txt', + args=[D2], + params=['input.txt']) ###### Merge stage ###### -D5, = prune.task_add( - returns=['merged_output.txt'], env=E1, - cmd='sort -m input*.txt > merged_output.txt', - args=[D3,D4], params=['input1.txt','input2.txt'] ) +# In the third task we combine the files D3 and D4 into the merged output D5. +# Note that D3 is mapped to input1.txt, D4 to input2.txt, and the output D5 to +# merged_output.txt +D5, = prune.task_add(returns=['merged_output.txt'], + env=E1, + cmd='sort -m input*.txt > merged_output.txt', + args=[D3,D4], + params=['input1.txt','input2.txt']) ###### Execute the workflow ###### +# So far we have only defined the workflow, but nothing has been executed yet. +# Now we execute the workflow locally in our computer... prune.execute( worker_type='local', cores=8 ) ###### Export final data ###### +# ...and export the final result into the file merged_words.txt... prune.export( D5, 'merged_words.txt' ) ###### Export publishable workflow ###### +# ...and the workflow, complete with the original inputs and intermidiate files +# so that other can reproduce and modify our results: prune.export( D5, 'merge_sort.prune', lineage=2 ) + diff -Nru cctools-7.0.22/prune/src/prune_worker.py cctools-7.1.2/prune/src/prune_worker.py --- cctools-7.0.22/prune/src/prune_worker.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/prune/src/prune_worker.py 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/python_packaging/python_package_analyze cctools-7.1.2/python_packaging/python_package_analyze --- cctools-7.0.22/python_packaging/python_package_analyze 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/python_packaging/python_package_analyze 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,69 @@ +#!/usr/bin/env python3 +import os +import sys +import json +from stdlib_list import stdlib_list + + +def usage(exit_code): + print("Usage: python_package_analyze [options] ") + print("where options are:") + print(" -h, --help\tShow this help screen") + exit(exit_code) + + +# Parse command line arguments +if len(sys.argv) > 1 and (sys.argv[1] == "-h" or sys.argv[1] == "--help"): + usage(0) +if len(sys.argv) != 3: + usage(1) +python_script = sys.argv[1] +json_output_file = sys.argv[2] +if not os.path.exists(python_script): + print("Python script does not exist") + exit(2) + +# Find Python version and obtain list of standard library modules +version = ".".join(sys.version.split()[0].split(".")[:2]) +libraries = stdlib_list(version) + +# Parse the Python script for all import statements +dependencies = [] +source = open(python_script, "r") +for line in source.readlines(): + words = line.split() + isList = False + isFrom = False + # Iterate through each word in the line + for i in range(0, len(words)): + # Signals that you are importing a module + if words[i] == "from" or words[i] == "import": + if words[i] == "from": + isFrom = True + i += 1 + name = words[i] + if name[-1] == ",": + name = name[:-1] + isList = True + if name not in libraries: + dependencies.append(name) + # Iterate through multiple imports if multiple listed on one line + while isList: + i += 1 + nane = words[i] + if name[-1] == ",": + name = name[:-1] + else: + isList = False + if name not in libraries: + dependencies.append(name) + if isFrom: + break + +# Put the JSON data into a file +python_info = {} +python_info["python"] = sys.version.split()[0] +python_info["modules"] = dependencies +output = open(json_output_file, "w") +json.dump(python_info, output) +exit(0) diff -Nru cctools-7.0.22/python_packaging/python_package_create cctools-7.1.2/python_packaging/python_package_create --- cctools-7.0.22/python_packaging/python_package_create 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/python_packaging/python_package_create 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 +import json +import os +import sys +import subprocess +import conda_pack + + +def usage(exit_code): + print("Usage: python_package_create [options] ") + print("where options are:") + print(" -h, --help\tShow this help screen") + exit(exit_code) + + +# Parse command line arguments +if len(sys.argv) > 1 and (sys.argv[1] == "-h" or sys.argv[1] == "--help"): + usage(0) +if len(sys.argv) != 3: + usage(1) +dependency_file = sys.argv[1] +environment_name = sys.argv[2] +if not os.path.exists(dependency_file): + print("JSON dependency file does not exist") + exit(2) +else: + dependency_fp = open(dependency_file, "r") + +# Extract python environment data from JSON file and create requirements file" +package_data = json.load(dependency_fp) +python_version = package_data["python"] +dependencies = package_data["modules"] +req_file = open("/tmp/requirements.txt", "w") +for module in dependencies: + module_string = module + "\n" + req_file.write(module_string) +req_file.close() + +# Create environment and install all necessary modules into the environment +subprocess.call("conda create -p /tmp/{} -y python={} &> /dev/null; \ + eval \"$(conda shell.bash hook)\" &> /dev/null; \ + conda activate /tmp/{} &> /dev/null; \ + pip install -r /tmp/requirements.txt &> /dev/null; \ + pip install tblib &> /dev/null; \ + rm /tmp/requirements.txt &> /dev/null; \ + conda deactivate &> /dev/null;".format(environment_name, python_version, environment_name, dependency_file), shell=True) + +# Pack the environment +conda_pack.pack(name=environment_name, output="{}.tar.gz".format(environment_name), force=True) +exit(0) diff -Nru cctools-7.0.22/python_packaging/python_package_run cctools-7.1.2/python_packaging/python_package_run --- cctools-7.0.22/python_packaging/python_package_run 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/python_packaging/python_package_run 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,45 @@ +#!/bin/sh + +usage() { + echo "Usage: python_package_analyze [options] " + echo "where options are:" + echo -e " -h, --help\tShow this help screen" + exit $1 +} + +# Parse command line arguments +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + usage 0 +fi +if [ $# -ne 2 ]; then + usage 1 +fi +ENVIRONMENT_NAME=$1 +PYTHON_COMMAND_STRING=$2 + +# Unpack the packed environment +if [ ! -f "${ENVIRONMENT_NAME}.tar.gz" ]; then + echo "Environment tarball does not exist, exiting" + exit 2 +fi +tar xzf ${ENVIRONMENT_NAME}.tar.gz +if [ $? -ne 0 ]; then + echo "Unable to successfully unpack tarball, exiting" + exit 3 +fi + +# Activate conda environment, run the task, deactivate +source bin/activate &> /dev/null +if [ $? -ne 0 ]; then + echo "Unable to activate Conda environment, exiting" + exit 4 +fi +conda-unpack &> /dev/null +if [ $? -ne 0 ]; then + echo "Unable to activate Conda environment, exiting" + exit 4 +fi +${PYTHON_COMMAND_STRING} +EXITVALUE=$? +source bin/deactivate &> /dev/null +exit $EXITVALUE diff -Nru cctools-7.0.22/python_packaging/README.md cctools-7.1.2/python_packaging/README.md --- cctools-7.0.22/python_packaging/README.md 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/python_packaging/README.md 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,186 @@ +# Python Packaging Utilities + +The Python packaging utilities allow users to easily analyze their Python scripts and create Conda environments that are specifically built to contain the necessary dependencies required for their application to run. In distributed computing systems such as Work Queue, it is often difficult to maintain homogenous work environments for their Python applications, as the scripts utilize a large number of outside resources at runtime, such as Python interpreters and imported libraries. The Python packaging collection provides three easy-to-use tools that solve this problem, helping users to analyze their Python programs and build the appropriate Conda environments that ensure consistent runtimes within the Work Queue system. + +The `python_package_analyze` tool analyzes a Python script to determine all its top-level module dependencies and the interpreter version it uses. It then generates a concise, human-readable JSON output file containing the necessary information required to build a self-contained Conda virtual environment for the Python script. + +The `python_package_create` tool takes the output JSON file generated by `python_package_analyze` and creates this Conda environment, preinstalled with all the necessary libraries and the correct Python interpreter version. It then generates a packaged tarball of the environment that can be easily relocated to a different machine within the system to run the Python task. + +The `python_package_run` tool acts as a wrapper script for the Python task, unpacking and activating the Conda environment and running the task within the environment. + + + + + + +# python_package_analyze(1) + +## NAME + +`python_package_analyze` - command-line utility for analyzing Python script for library and interpreter dependencies + +## SYNOPSIS + +`python_package_analyze [options] ` + +## DESCRIPTION + +`python_package_analyze` is a simple command line utility for analyzing Python scripts for the necessary external dependencies. It generates an output file that can be used with `python_package_create` to build a self-contained Conda environment for the Python application. + +The `python-script` argument is the path (relative or absolute) to the Python script to be analyzed. The `json-output-file` argument is the path (relative or absolute) to the output JSON file that will be generated by the command. The file does not need to exist, and will overwrite a file with the same name if it already exists. + +## OPTIONS + +-h Show this help message + +## EXIT STATUS + +On success, returns zero. On failure, returns non-zero. +- 1 - Invalid command format +- 2 - Invalid path to the Python script to be analyzed + +## EXAMPLE + +An example Python script `example.py` contains the following code: + +``` +import os +import sys +import pickle + +import antigravity +import matplotlib + + +if __name__ == "__main__": + print("example") +``` + +To analyze the `example.py` script for its dependencies and generate the output JSON dependencies file `dependencies.json`, run the following command: + +`$ python_package_analyze example.py dependencies.json` + +Once the command completes, the `dependencies.json` file within the current working directory will contain the following, when the default `python3` interpreter on the local machine is Python 3.7.3: + +`{"python": "3.7.3", "modules": ["antigravity", "matplotlib"]}` + +Note that system-level modules are not included within the `"modules"` list, as they are automatically installed into Conda virtual environments. Additionally, using a different version of the Python interpreter will result in a different mapping for the `"python"` value within the output file. + +## POSSIBLE IMPROVEMENTS +1. Utilize `ModuleFinder` library to get complete list of modules that are used by the Python script +- Provides more comprehensive list of modules used, including system-level modules, making it redundant +- Takes longer to run compared to the currently-implemented parsing algorithm +- More rigorously tested than the parsing algorithm, so it ensures that all modules will be listed +2. Use `pip freeze` to find all modules that are installed within the machine +- Instead of seeing if the module is not a system module, just see if it is installed on the machine, but requires that the module be installed on the master machine +- Misses cases where a module is installed to the machine, but not by pip +- The advantage to this option is that `pip freeze` includes versions, so you can add version numbers for module dependencies to get more accurate pip installations into the virtual environment +- `stdlib_list` library that is in the current implementation requires installation and has not been rigorously tested + + + +# python_package_create(1) + +## NAME + +`python_package_create` - command-line utility for creating a Conda virtual environment given a Python dependencies file + +## SYNOPSIS + +`python_package_create [options] ` + +## DESCRIPTION + +`python_package_create` is a simple command-line utility that creates a local Conda environment from an input JSON dependency file, generated by `python_package_analyze`. The environment is installed into the default Conda directory on the local machine. The command also creates an environment tarball in the current working directory with extension `.tar.gz` that can be sent to and run on different machines with the same architecture. + +The `dependency-file` argument is the path (relative or absolute) to the JSON dependency file that was created by `python_package_analyze`. The `environment-name` argument specifies the name for the environment that is created. + +## OPTIONS + +-h Show this help message + +## EXIT STATUS + +On success, returns zero. On failure, returns non-zero. +- 1 - Invalid command format +- 2 - Invalid path to the JSON dependency file + +## EXAMPLE + +An dependencies file `dependencies.json` contains the following: + +`{"python": "3.7.3", "modules": ["antigravity", "matplotlib"]}` + +To generate a Conda environment with the Python 3.7.3 interpreter and the `antigravity` and `matplotlib` modules preinstalled and with name `example_venv`, run the following command: + +`$ python_package_create dependencies.json example_venv` + +Note that this will also create an `example_venv.tar.gz` environment tarball within the current working directory, which can then be exported to different machines for execution. + +## POSSIBLE IMPROVEMENTS +1. Figure out alternative to using `subprocess.call()` to create the Conda environment (perhaps make a Bash script altogether) +- Most of the execution occurs within the subprocess call, so basically a Bash script, but easier to use Python to parse the JSON file and write to the requirement file +- Perhaps use a JSON parsing command line utility within Bash script instead, such as `jq` +- If a Conda environment API for Python is ever created, it would be very useful here, as we could remove the subprocess call completely +2. Remove redirection all output to `/dev/null` +- All output from the subprocess call is removed for organization purposes, but some commands like `pip install` might be useful for the user to see +- Removing redirection also makes it much easier to debug + + + +# python_package_run(1) + +## NAME + +`python_package_run` - wrapper script that executes Python script within an isolated Conda environment + +## SYNOPSIS + +`python_package_run [options] ` + +## DESCRIPTION + +The `python_package_run` tool acts as a wrapper script for a Python task, running the task within the specified Conda environment. `python_package_run` can be utilized on different machines within the Work Queue system to unpack and activate a Conda environment, and run a task within the isolated environment. + +The `environment-name` argument is the name of the Conda environment in which to run the Python task. The `python-command-string` is full shell command of the Python task that will be run within the Conda environment. + +## OPTIONS + +-h Show this help message + +## EXIT STATUS + +On success, returns 0. On failure, returns non-zero. +1 - Invalid command format +2 - Environment tarball does not exist +3 - Failed trying to extract environment tarball +4 - Failed trying to activate Conda environment +(Note: The wrapper script captures the exit status of the Python command string. It is possible that the exit code of the Python task overlaps with the exit code of the wrapper script) + +## EXAMPLE + +A Python script `example.py` has been analyzed using `python_package_analyze` and a corresponding Conda environment named `example_venv` has been created, with all the necessary dependencies preinstalled. To execute the script within the environment, run the following command: + +`python_package_run example.py "python3 example.py"` + +This will run the `python3 example.py` task string within the activated `example_venv` Conda environment. Note that this command can be performed either locally, on the same machine that analyzed the script and created the environment, or remotely, on a different machine that contains the Conda environment tarball and the `example.py` script. + +## POSSIBLE IMPROVEMENTS +1. Do protection checking against dangerous shell commands, as the script runs the command line argument directly +- The program directly runs the task string that is passed in, which means the user could send a task that is harmful to the worker machine +- Perhaps WorkQueue already uses protection checking for the task strings, in which case it is not necessary + + + + +# HOW TO TEST OVERALL FUNCTIONALITY + +Desired Python script to run: `hi.py` + +1. `./python_package_analyze hi.py output.json` +- Generates the appropriate JSON file in the current working directory +2. `./python_package_create output.json venv` +- Will create a Conda environment in the Conda `envs` folder, and will create a packed tarball of the environment named `venv.tar.gz` in the current working directory +- To more easily debug, remove the redirected output to `/dev/null` in the subprocess call to see all output of the environment creation and module installation +3. `./python_package_run venv "python3 hi.py"` +- Runs the `python3 hi.py` task command within the activated `venv` Conda environment diff -Nru cctools-7.0.22/README cctools-7.1.2/README --- cctools-7.0.22/README 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/README 2020-05-05 15:31:15.000000000 +0000 @@ -28,7 +28,7 @@ ------------------------------------------------------------ This software package is Copyright (c) 2003-2004 Douglas Thain -Copyright (c) 2005- The University of Notre Dame +Copyright (c) 2005-2019 The University of Notre Dame This software is distributed under the GNU General Public License. See the file COPYING for details. ------------------------------------------------------------ @@ -43,8 +43,8 @@ SHA1 algorithm written by Peter Gutmann, David Ireland, and A. M. Kutchman. ------------------------------------------------------------ -The Glite module of Parrot is Copyright (c) Members of the EGEE Collaboration. 2004. -See http://eu-egee.org/partners/ for details on the copyright holders. -For license conditions see the license file or http://eu-egee.org/license.html ------------------------------------------------------------- +This product includes the source code for the MT19937-64 +Mersenne Twister pseudorandom number generator, written by +Makoto Matsumoto and Takuji Nishimura. + diff -Nru cctools-7.0.22/resource_monitor/src/bindings/Makefile cctools-7.1.2/resource_monitor/src/bindings/Makefile --- cctools-7.0.22/resource_monitor/src/bindings/Makefile 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,12 @@ +include ../../../config.mk +include ../../../rules.mk + +all clean install test: $(CCTOOLS_SWIG_RMONITOR_BINDINGS) + +$(CCTOOLS_SWIG_RMONITOR_BINDINGS): + @$(MAKE) -C $@ $(MAKECMDGOALS) + + +test: all + +.PHONY: all install clean test $(CCTOOLS_SWIG_RMONITOR_BINDINGS) diff -Nru cctools-7.0.22/resource_monitor/src/bindings/python2/example_simple_limit.py cctools-7.1.2/resource_monitor/src/bindings/python2/example_simple_limit.py --- cctools-7.0.22/resource_monitor/src/bindings/python2/example_simple_limit.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/python2/example_simple_limit.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,30 @@ +import resource_monitor + +import sys +import time + +@resource_monitor.monitored(limits = {'wall_time': 1e6}) # wall_time in microseconds +def my_function(n): + sys.stdout.write("waiting for {time} seconds...".format(time=n)) + time.sleep(n) + sys.stdout.write("done.\n") + + return n + +try: + (output, resources) = my_function(0.5) +except Exception as e: + sys.stdout.write("\nGot exception <{err}>, but did not expect any error.\n".format(err=e)) + sys.exit(1) + + +try: + (output, resources) = my_function(2) +except resource_monitor.ResourceExhaustion as e: + sys.stdout.write("\nGot expected exception <{err}>.\n".format(err=e)) +except Exception as e: + sys.stdout.write("\nGot exception <{err}>, but did not expect such error.\n".format(err=e)) + sys.exit(1) + +sys.exit(0) + diff -Nru cctools-7.0.22/resource_monitor/src/bindings/python2/.gitignore cctools-7.1.2/resource_monitor/src/bindings/python2/.gitignore --- cctools-7.0.22/resource_monitor/src/bindings/python2/.gitignore 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/python2/.gitignore 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,4 @@ +Python.framework +_resource_monitor.so +resource_monitor.py +rmonitor_wrap.c diff -Nru cctools-7.0.22/resource_monitor/src/bindings/python2/Makefile cctools-7.1.2/resource_monitor/src/bindings/python2/Makefile --- cctools-7.0.22/resource_monitor/src/bindings/python2/Makefile 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/python2/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,38 @@ +include ../../../../config.mk +include $(CCTOOLS_HOME)/rules.mk + +# Python always uses 'so' for its modules (even on Darwin) +CCTOOLS_DYNAMIC_SUFFIX = so +# SWIG produces code that causes a lot of warnings, so use -w to turn those off. +LOCAL_CCFLAGS = -fPIC -w $(CCTOOLS_PYTHON2_CCFLAGS) +LOCAL_LINKAGE = $(CCTOOLS_PYTHON2_LDFLAGS) + +EXTERNAL_DEPENDENCIES = $(CCTOOLS_HOME)/dttools/src/libdttools.a +RMPYTHONSO = _resource_monitor.$(CCTOOLS_DYNAMIC_SUFFIX) +LIBRARIES = $(RMPYTHONSO) resource_monitor.py +OBJECTS = rmonitor_wrap.o +TARGETS = $(LIBRARIES) + +all: $(TARGETS) + +# The odd symlink in the following rule is necessary to overcome a problem +# in the framework search path emitted by the Python configuration on macOS. +rmonitor_wrap.c resource_monitor.py: rmonitor.i + @echo "SWIG rmonitor.i (python)" + @$(CCTOOLS_SWIG) -o rmonitor_wrap.c -python -I$(CCTOOLS_HOME)/dttools/src/ rmonitor.i + @cat resource_monitor.bindings.py >> resource_monitor.py + +$(RMPYTHONSO): rmonitor_wrap.o $(EXTERNAL_DEPENDENCIES) + +clean: + rm -f $(OBJECTS) $(TARGETS) Python.framework rmonitor_wrap.c *.so *.pyc + +test: + +install: all + mkdir -p $(CCTOOLS_PYTHON2_PATH) + chmod 755 resource_monitor.py + cp resource_monitor.py $(TARGETS) $(CCTOOLS_PYTHON2_PATH)/ + mkdir -p $(CCTOOLS_INSTALL_DIR)/doc + + diff -Nru cctools-7.0.22/resource_monitor/src/bindings/python2/resource_monitor.bindings.py cctools-7.1.2/resource_monitor/src/bindings/python2/resource_monitor.bindings.py --- cctools-7.0.22/resource_monitor/src/bindings/python2/resource_monitor.bindings.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/python2/resource_monitor.bindings.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,567 @@ +# Copyright (C) 2016- The University of Notre Dame This software is distributed +# under the GNU General Public License. +# See the file COPYING for details. +# +## @package resource_monitor +# +# Python resource_monitor bindings. +# +# The objects and methods provided by this package correspond to the native +# C API in @ref category.h, rmonitor_poll.h, and rmsummary.h +# +# The SWIG-based Python bindings provide a higher-level interface that +# revolves around the following function/decorator and objects: +# +# - @ref resource_monitor::monitored +# - @ref resource_monitor::ResourceExhaustion +# - @ref resource_monitor::Category + +import fcntl +import functools +import json +import math +import multiprocessing +import os +import signal +import struct +import tempfile +import threading +import time + +def set_debug_flag(*flags): + for flag in flags: + cctools_debug_flags_set(flag) + +cctools_debug_config('resource_monitor') + + +## +# Create a monitored version of a function. +# It can be used as a decorator, or called by itself. +# +# @param limits Dictionary of resource limits to set. Available limits are: +# - wall_time: time spent during execution (microseconds) +# - cpu_time: user + system time of the execution (microseconds) +# - cores: peak number of cores used +# - cores_avg: number of cores computed as cpu_time/wall_time +# - max_concurrent_processes: the maximum number of processes running concurrently +# - total_processes: count of all of the processes created +# - virtual_memory: maximum virtual memory across all processes (megabytes) +# - memory: maximum resident size across all processes (megabytes) +# - swap_memory: maximum swap usage across all processes (megabytes) +# - bytes_read: number of bytes read from disk +# - bytes_written: number of bytes written to disk +# - bytes_received: number of bytes read from the network +# - bytes_sent: number of bytes written to the network +# - bandwidth: maximum network bits/s (average over one minute) +# - total_files: total maximum number of files and directories of all the working directories in the tree +# - disk: size of all working directories in the tree (megabytes) +# +# @param callback Function to call every time a measurement is done. The arguments given to the function are +# - id: Unique identifier for the function and its arguments. +# - name: Name of the original function. +# - step: Measurement step. It is -1 for the last measurement taken. +# - resources: Current resources measured. +# @param interval Maximum time in seconds between measurements. +# @param return_resources Whether to modify the return value of the function to a tuple of the original result and a dictionary with the final measurements. +# @code +# # Decorating a function: +# @monitored() +# def my_sum_a(lst): +# return sum(lst) +# +# @monitored(return_resources = False, callback = lambda id, name, step, res: print('memory used', res['memory'])) +# def my_sum_b(lst): +# return sum(lst) +# +# >>> (result_a, resources) = my_sum_a([1,2,3]) +# >>> print(result, resources['memory']) +# 6, 66 +# +# >>> result_b = my_sum_b([1,2,3]) +# memory used: 66 +# +# >>> assert(result_a == result_b) +# +# +# # Wrapping the already defined function 'sum', adding limits: +# my_sum_monitored = monitored(limits = {'memory': 1024})(sum) +# try: +# # original_result = sum(...) +# (original_result, resources_used) = my_sum_monitored(...) +# except ResourceExhaustion as e: +# print(e) +# ... +# +# # Defining a function with a callback and a decorator. +# # In this example, we record the time series of resources used: +# import multiprocessing +# results_series = multiprocessing.Queue() +# +# def my_callback(id, name, step, resources): +# results_series.put((step, resources)) +# +# @monitored(callback = my_callback, return_resources = False): +# def my_function(...): +# ... +# +# result = my_function(...) +# +# # print the time series +# while not results_series.empty(): +# try: +# step, resources = results_series.get(False) +# print(step, resources) +# except multiprocessing.Empty: +# pass +# @endcode +def monitored(limits = None, callback = None, interval = 1, return_resources = True): + def monitored_inner(function): + return functools.partial(__monitor_function, limits, callback, interval, return_resources, function) + return monitored_inner + + +## +# Exception raised when a function goes over the resources limits +class ResourceExhaustion(Exception): + ## + # @param self Reference to the current object. + # @param resources Dictionary of the resources measured at the time of the exhaustion. + # @param function Function that caused the exhaustion. + # @param args List of positional arguments to function that caused the exhaustion. + # @param kwargs Dictionary of keyword arguments to function that caused the exhaustion. + def __init__(self, resources, function, args = None, kwargs = None): + self.resources = resources + self.function = function + self.args = args + self.kwargs = kwargs + + def __str__(self): + r = self.resources + l = r['limits_exceeded'] + ls = ["{limit}: {value}".format(limit=k, value=l[k]) for k in list(l.keys()) if (l[k] > -1 and l[k] < r[k])] + + return 'Limits broken: {limits}'.format(limits=','.join(ls)) + +class ResourceInternalError(Exception): + def __init__(self, *args, **kwargs): + super(ResourceInternalError, self).__init__(*args, **kwargs) + +def __measure_update_to_peak(pid, old_summary = None): + new_summary = rmonitor_measure_process(pid) + + if old_summary is None: + return new_summary + else: + rmsummary_merge_max(old_summary, new_summary) + return old_summary + +def __child_handler(child_finished, signum, frame): + child_finished.set() + +def _wrap_function(results, fun, args, kwargs): + def fun_wrapper(): + try: + import os + import time + pid = os.getpid() + rm = __measure_update_to_peak(pid) + start = time.time() + result = fun(*args, **kwargs) + __measure_update_to_peak(pid, rm) + setattr(rm, 'wall_time', int((time.time() - start)*1e6)) + results.put((result, rm)) + except Exception as e: + results.put((e, None)) + cctools_debug(D_RMON, "function wrapper created") + return fun_wrapper + +def __read_pids_file(pids_file): + fcntl.flock(pids_file, fcntl.LOCK_EX) + line = bytearray(pids_file.read()) + fcntl.flock(pids_file, fcntl.LOCK_UN) + + n = len(line)/4 + if n > 0: + ns = struct.unpack('!' + 'i' * int(n), line) + for pid in ns: + if pid > 0: + rmonitor_minimonitor(MINIMONITOR_ADD_PID, pid) + else: + rmonitor_minimonitor(MINIMONITOR_REMOVE_PID, -pid) + +def _watchman(results_queue, limits, callback, interval, function, args, kwargs): + try: + # child_finished is set when the process running function exits + child_finished = threading.Event() + old_handler = signal.signal(signal.SIGCHLD, functools.partial(__child_handler, child_finished)) + + # result of function is eventually push into local_results + local_results = multiprocessing.Queue() + + # process that runs the original function + fun_proc = multiprocessing.Process(target=_wrap_function(local_results, function, args, kwargs)) + + # unique name for this function invocation + fun_id = str(hash(json.dumps({'args': args, 'kwargs': kwargs}, sort_keys=True))) + + # convert limits to the structure the minimonitor accepts + if limits: + limits = rmsummary.from_dict(limits) + + # pids of processes created by fun_proc (if any) are written to pids_file + pids_file = None + try: + # try python3 version first, which gets the 'buffering' keyword argument + pids_file=tempfile.NamedTemporaryFile(mode='rb+', prefix='p_mon-', buffering=0) + except TypeError: + # on error try python2, which gets the 'bufsize' keyword argument + pids_file=tempfile.NamedTemporaryFile(mode='rb+', prefix='p_mon-', bufsize=0) + + os.environ['CCTOOLS_RESOURCE_MONITOR_PIDS_FILE']=pids_file.name + + cctools_debug(D_RMON, "starting function process") + fun_proc.start() + + rmonitor_minimonitor(MINIMONITOR_ADD_PID, fun_proc.pid) + + # resources_now keeps instantaneous measurements, resources_max keeps the maximum seen + resources_now = rmonitor_minimonitor(MINIMONITOR_MEASURE, 0) + resources_max = rmsummary_copy(resources_now) + + try: + step = 0 + while not child_finished.is_set(): + step += 1 + # register/deregister new processes + __read_pids_file(pids_file) + + resources_now = rmonitor_minimonitor(MINIMONITOR_MEASURE, 0) + rmsummary_merge_max(resources_max, resources_now) + + rmsummary_check_limits(resources_max, limits); + if resources_max.limits_exceeded is not None: + child_finished.set() + else: + if callback: + callback(fun_id, function.__name__, step, _resources_to_dict(resources_now)) + child_finished.wait(timeout = interval) + except Exception as e: + fun_proc.terminate() + fun_proc.join() + raise e + + if resources_max.limits_exceeded is not None: + fun_proc.terminate() + fun_proc.join() + results_queue.put({ 'result': None, 'resources': resources_max, 'resource_exhaustion': True}) + else: + fun_proc.join() + try: + (fun_result, resources_measured_end) = local_results.get(True, 5) + except Exception as e: + e = ResourceInternalError("No result generated.") + cctools_debug(D_RMON, "{}".format(e)) + raise e + + if resources_measured_end is None: + raise fun_result + + rmsummary_merge_max(resources_max, resources_measured_end) + results_queue.put({ 'result': fun_result, 'resources': resources_max, 'resource_exhaustion': False}) + + if callback: + callback(fun_id, function.__name__, -1, _resources_to_dict(resources_max)) + + except Exception as e: + cctools_debug(D_RMON, "error executing function process: {err}".format(err=e)) + results_queue.put({'result': e, 'resources': None, 'resource_exhaustion': False}) + +def _resources_to_dict(resources): + d = resources.to_dict() + + try: + if d['wall_time'] > 0: + d['cores_avg'] = float(d['cpu_time']) / float(d['wall_time']) + except KeyError: + d['cores_avg'] = -1 + return d + + +def __monitor_function(limits, callback, interval, return_resources, function, *args, **kwargs): + result_queue = multiprocessing.Queue() + + watchman_proc = multiprocessing.Process(target=_watchman, args=(result_queue, limits, callback, interval, function, args, kwargs)) + watchman_proc.start() + watchman_proc.join() + + results = result_queue.get(True, 5) + + if not results['resources']: + raise results['result'] + else: + results['resources'] = _resources_to_dict(results['resources']) + + if results['resource_exhaustion']: + raise ResourceExhaustion(results['resources'], function, args, kwargs) + + if return_resources: + return (results['result'], results['resources']) + else: + return results['result'] + +## +# Class to encapsule all the categories in a workflow. +# +# @code +# cs = Categories() +# cs.accumulate_summary( { 'category': 'some_category', 'wall_time': 60, 'cores': 1, ... } ) +# print cs.first_allocation(mode = 'throughput', category = 'some_category') +# @endcode +# +class Categories: + + ## + # Create an empty set of categories. + # @param self Reference to the current object. + # @param all_categories_name Name of the general category that holds all of the summaries. + def __init__(self, all_categories_name = '(all)'): + self.categories = {} + self.all_categories_name = all_categories_name + category_tune_bucket_size('category-steady-n-tasks', -1) + + ## + # Returns a lists of the category categories. List sorted lexicographicaly, + # with the exception of @ref self.all_categories_name, which it is always + # the last entry. + # @param self Reference to the current object. + def category_names(self): + categories = list(self.categories.keys()) + categories.sort() + categories.remove(self.all_categories_name) + categories.append(self.all_categories_name) + return categories + + ## + # Compute and return the first allocations for the given category. + # Note: wall_time needs to be defined in the resource summaries to be + # considered in this optimization. + # + # @param self Reference to the current object. + # @param mode Optimization mode. One of 'throughput', 'waste', or 'fixed'. + # @param category Name of the category + # + # @code + # cs = Categories() + # fa = cs.first_allocation(mode = 'throughput, category = 'some_category') + # print fa['cores'] + # print fa['memory'] + # print fa['disk'] + # @endcode + def first_allocation(self, mode, category): + c = self._category(category) + return c.first_allocation(mode) + + ## + # Return the maximum resource values so far seen for the given category. + # + # @param self Reference to the current object. + # @param category Name of the category + # + # @code + # cs = Categories() + # fa = cs.maximum_seen('some_category') + # print fa['cores'] + # print fa['memory'] + # print fa['disk'] + # @endcode + def maximum_seen(self, category): + c = self._category(category) + return c.maximum_seen() + + ## + # Add the summary (a dictionary) to the respective category. + # At least both the 'category' and 'wall_time' keys should be defined. + # + # @code + # cs = Categories() + # cs.accumulate_summary( { 'category': 'some_category', 'wall_time': 50, 'cores': 1, ... } ) + # @endcode + # + def accumulate_summary(self, summary): + category = summary['category'] + wall_time = summary['wall_time'] + + if category == self.all_categories_name: + raise ValueError("category '" + self.all_categories_name + "' used for individual category.") + + c = self._category(category) + c.accumulate_summary(summary) + + c = self._category(self.all_categories_name) + c.accumulate_summary(summary) + + ## + # Return the waste (unit x time) that would be produced if the accumulated + # summaries were run under the given allocation. + # + # @param self Reference to the current object. + # @param category Name of the category + # @param field Name of the resource (e.g., cores, memory, or disk) + # @param allocation Value of allocation to test. + # + def waste(self, category, field, allocation): + c = self._category(category) + return c.waste(field, allocation) + + ## + # Return the percentage of wasted resources that would be produced if the accumulated + # summaries were run under the given allocation. + # + # @param self Reference to the current object. + # @param category Name of the category + # @param field Name of the resource (e.g., cores, memory, or disk) + # @param allocation Value of allocation to test. + # + def wastepercentage(self, category, field, allocation): + c = self._category(category) + return c.wastepercentage(field, allocation) + + ## + # Return the throughput that would be obtained if the accumulated + # summaries were run under the given allocation. + # + # @param self Reference to the current object. + # @param category Name of the category + # @param field Name of the resource (e.g., cores, memory, or disk) + # @param allocation Value of allocation to test. + # + def throughput(self, category, field, allocation): + c = self._category(category) + return c.throughput(field, allocation) + + ## + # Return the number of tasks that would be retried if the accumulated + # summaries were run under the given allocation. + # + # @param self Reference to the current object. + # @param category Name of the category + # @param field Name of the resource (e.g., cores, memory, or disk) + # @param allocation Value of allocation to test. + # + def retries(self, category, field, allocation): + c = self._category(category) + return c.retries(field, allocation) + + ## + # Return the number of summaries in a particular category. + # + # @param self Reference to the current object. + # @param category Name of the category + # + def count(self, category): + c = self._category(category) + return c.count() + + def _category(self, category): + try: + return self.categories[category] + except KeyError: + cat = Category(category) + self.categories[category] = cat + return cat + + +# +# Class to represent a single category. +# +# Internal class. +class Category: + def __init__(self, category): + self.category = category + self._cat = category_create(category) + self.summaries = [] + + + def allocation_mode(self, mode): + if mode == 'fixed': + category_specify_allocation_mode(self._cat, WORK_QUEUE_ALLOCATION_MODE_FIXED) + elif mode == 'waste': + category_specify_allocation_mode(self._cat, WORK_QUEUE_ALLOCATION_MODE_MIN_WASTE) + elif mode == 'throughput': + category_specify_allocation_mode(self._cat, WORK_QUEUE_ALLOCATION_MODE_MAX_THROUGHPUT) + else: + raise ValueError('No such mode') + + def accumulate_summary(self, summary): + r = rmsummary.from_dict(summary) + self.summaries.append(dict(summary)) + category_accumulate_summary(self._cat, r, None) + + def retries(self, field, allocation): + retries = 0 + for r in self.summaries: + if allocation < r[field]: + retries += 1 + return retries + + def count(self): + return len(self.summaries) + + def usage(self, field): + usage = 0 + for r in self.summaries: + resource = r[field] + wall_time = r['wall_time'] + usage += wall_time * resource + return usage + + def waste(self, field, allocation): + maximum = self.maximum_seen()[field] + + waste = 0 + for r in self.summaries: + resource = r[field] + wall_time = r['wall_time'] + if resource > allocation: + waste += wall_time * (allocation + maximum - resource) + else: + waste += wall_time * (allocation - resource) + return waste + + def wastepercentage(self, field, allocation): + waste = self.waste(field, allocation) + usage = self.usage(field) + + return (100.0 * waste)/(waste + usage) + + def throughput(self, field, allocation): + maximum = self.maximum_seen()[field] + maximum = float(maximum) + + tasks = 0 + total_time = 0 + for r in self.summaries: + resource = r[field] + wall_time = r['wall_time'] + + if resource > allocation: + tasks += 1 + total_time += 2*wall_time + else: + tasks += maximum/allocation + total_time += wall_time + return tasks/total_time + + def first_allocation(self, mode): + self.allocation_mode(mode) + + if mode == 'fixed': + return self.maximum_seen() + else: + category_update_first_allocation(self._cat, None) + return resource_monitor.to_dict(self._cat.first_allocation) + + def maximum_seen(self): + return resource_monitor.to_dict(self._cat.max_resources_seen) + diff -Nru cctools-7.0.22/resource_monitor/src/bindings/python2/rmonitor.i cctools-7.1.2/resource_monitor/src/bindings/python2/rmonitor.i --- cctools-7.0.22/resource_monitor/src/bindings/python2/rmonitor.i 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/python2/rmonitor.i 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,92 @@ +/* ResourceMonitor.i */ + +/* Copyright (C) 2016- The University of Notre Dame This software is + * distributed under the GNU General Public License. See the file COPYING for + * details. */ + +%module resource_monitor + +%{ + #include "debug.h" + #include "int_sizes.h" + #include "timestamp.h" + #include "category_internal.h" + #include "category.h" + #include "rmonitor_poll.h" + #include "rmsummary.h" +%} + +%typemap(in) off_t = long long int; +%typemap(in) pid_t = int; + +%extend rmsummary { + rmsummary() { + return rmsummary_create(-1); + } + + ~rmsummary() { + rmsummary_delete($self); + } + +%pythoncode %{ + def to_dict(self): + d = {} + for k in ['category', 'command', 'taskid', + 'start', 'end', + 'exit_type', 'signal', 'exit_status', 'last_error', + 'wall_time', 'total_processes', 'max_concurrent_processes', 'cpu_time', + 'virtual_memory', 'memory', 'swap_memory', + 'bytes_read', 'bytes_written', 'bytes_sent', 'bytes_received', 'bandwidth', + 'total_files', 'disk', + 'cores', 'cores_avg', 'gpus', 'machine_load', 'machine_cpus']: + v = getattr(self, k) + if v is None or (isinstance(v, int) and v < 0): + continue + else: + d[k] = v + for k in ['limits_exceeded', 'peak_times']: + v = getattr(self, k) + if v: + d[k] = v.to_dict() + return d + + @classmethod + def from_dict(cls, pairs): + rm = rmsummary() + for k in pairs.keys(): + v = pairs[k] + if k in ['limits_exceeded', 'peak_times']: + v = rmsummary.from_dict(v) + elif isinstance(v, float): + v = int(v) + try: + setattr(rm, k, v) + except KeyError: + pass + return rm + + def __getstate__(self): + return self.to_dict() + + def __setstate__(self, pairs): + oth = rmsummary.from_dict(pairs) + self.__init__() + rmsummary_merge_max(self, oth) + setattr(self, 'limits_exceeded', rmsummary_copy(oth.limits_exceeded)) + setattr(self, 'peak_times', rmsummary_copy(oth.limits_exceeded)) +%} +} + +/* vdebug() takes va_list as arg but SWIG can't wrap such functions. */ +%ignore vdebug; +%ignore debug; + +%include "stdint.i" +%include "debug.h" +%include "int_sizes.h" +%include "timestamp.h" +%include "category_internal.h" +%include "category.h" +%include "rmonitor_poll.h" +%include "rmsummary.h" + diff -Nru cctools-7.0.22/resource_monitor/src/bindings/python3/example_client_with_decorator.py cctools-7.1.2/resource_monitor/src/bindings/python3/example_client_with_decorator.py --- cctools-7.0.22/resource_monitor/src/bindings/python3/example_client_with_decorator.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/python3/example_client_with_decorator.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,83 @@ +# to run example: +# in some terminal: python3 example_udp_server.py +# in another terminal: python3 example_client_with_decorator.py + +import resource_monitor + +# monitor callback function example +# a callback function will be called everytime resources are measured. +# arguments are: +# - id: unique identifier for the function invocation +# - fun_name: string with the name of the function +# - step: resource sample number (1 for the first, 2 for the second, ..., -1 for the last) +# - resources: dictionary with resources measured +def send_udp_message(id, fun_name, step, resources): + """ Send a UDP message with the results of a measurement. Server implemented in callback_server.py """ + import socket + import json + + finished = True if step == -1 else False + exhaustion = True if resources.get('limits_exceeded', False) else False + + msg = {'id': id, 'function': fun_name, 'finished': finished, 'resource_exhaustion': exhaustion, 'resources': resources} + + sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + sock.sendto(json.dumps(msg).encode(), ('localhost', 9800)) + + +def my_function(wait_for, buffer_size): + """ + A function that creates a memory buffer of size buffer_size MB, and + that waits at least wait_for seconds. Returns the number of seconds + explicitely waited for. (I.e., without the creation of the memory buffer + overhead.) + """ + import time + start = time.time() + buf = bytearray(int(buffer_size * 1024 * 1024)) + delta = wait_for/1e6 - (time.time() - start) # x/1e6 because sleep expects seconds + if delta < 0: + delta = 0 + time.sleep(delta) + return delta + +@resource_monitor.monitored(callback = send_udp_message, interval = 0.1 * 1e6) +def my_function_monitored(wait_for, buffer_size): + """ + Like my_function, but because of the decorator, + returns: (my_function(...), dict with max resources used) + There is a measurement every 0.1 seconds (specified in us) + """ + return my_function(wait_for, buffer_size) + +# alternatively, we could have defined my_function_monitored as: +# my_function_monitored = resource_monitor.make_monitored(my_function, callback = send_udp_message, interval = 0.5/1e6) +@resource_monitor.monitored(callback = send_udp_message, limits = {'memory': 100, 'wall_time': 10e6}) +def my_function_with_limits(wait_for, buffer_size): + """ + Like my_function_monitored, but because of the decorator, + throw an exception if memory usage goes above 100MB or wall time 10e6 us (10s) + Since interval is not specified, it defaults to 1s + """ + return my_function(wait_for, buffer_size) + +# alternatively, we could have defined my_function_monitored as: +# my_function_with_limits = resource_monitor.make_monitored(my_function, callback = send_udp_message, limits = {'memory': ...}) + + +print('\ncalling original function...') +result_original = my_function(wait_for = 1e6, buffer_size = 1024) +print('original function result: {}'.format(result_original)) + +print('\ncalling monitored function...') +(result_monitored, resources_used) = my_function_monitored(wait_for = 1e6, buffer_size = 1024) +print('monitored function result: {}'.format(result_monitored)) +print('monitored function resources used: {}'.format(resources_used)) + +print('\ncalling function with limits...') +try: + (result_exh, resources_exh) = my_function_with_limits(wait_for = 10e6, buffer_size = 1024) +except resource_monitor.ResourceExhaustion as e: + print(e) + print('resources broken: {}'.format(e.resources['limits_exceeded'])) + diff -Nru cctools-7.0.22/resource_monitor/src/bindings/python3/example_deep_fork.py cctools-7.1.2/resource_monitor/src/bindings/python3/example_deep_fork.py --- cctools-7.0.22/resource_monitor/src/bindings/python3/example_deep_fork.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/python3/example_deep_fork.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,33 @@ +# run with: +# LD_PRELOAD=$(pwd)/../../librminimonitor_helper.so python3 example_deep_fork.py +# we need the preload to capture the fork/exit of processes + +import resource_monitor +import os +import time +import multiprocessing + +def print_resources(resources, finished, resource_exhaustion): + label = 'now' + if finished: + label = 'max' + print("{} memory {} procs running/total {}/{}".format(label, + resources['memory'], + resources['max_concurrent_processes'], + resources['total_processes'], )) + +def deep_fork(i): + """ Call recursevely in a child if i > 0. Wait for one second. """ + print('in process {} parent {}'.format(os.getpid(), os.getppid())) + time.sleep(1) + if i > 0: + child = multiprocessing.Process(target = deep_fork, args = (i-1,)) + child.start() + child.join() + print('process {} ended'.format(os.getpid())) + time.sleep(1) + +monitored_deep_fork = resource_monitor.make_monitored(deep_fork, callback = print_resources) +(result, resources) = monitored_deep_fork(3) + + diff -Nru cctools-7.0.22/resource_monitor/src/bindings/python3/example_simple_limit.py cctools-7.1.2/resource_monitor/src/bindings/python3/example_simple_limit.py --- cctools-7.0.22/resource_monitor/src/bindings/python3/example_simple_limit.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/python3/example_simple_limit.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,30 @@ +import resource_monitor + +import sys +import time + +@resource_monitor.monitored(limits = {'wall_time': 1e6}) # wall_time in microseconds +def my_function(n): + sys.stdout.write("waiting for {time} seconds...".format(time=n)) + time.sleep(n) + sys.stdout.write("done.\n") + + return n + +try: + (output, resources) = my_function(0.5) +except Exception as e: + sys.stdout.write("\nGot exception <{err}>, but did not expect any error.\n".format(err=e)) + sys.exit(1) + + +try: + (output, resources) = my_function(2) +except resource_monitor.ResourceExhaustion as e: + sys.stdout.write("\nGot expected exception <{err}>.\n".format(err=e)) +except Exception as e: + sys.stdout.write("\nGot exception <{err}>, but did not expect such error.\n".format(err=e)) + sys.exit(1) + +sys.exit(0) + diff -Nru cctools-7.0.22/resource_monitor/src/bindings/python3/example_udp_server.py cctools-7.1.2/resource_monitor/src/bindings/python3/example_udp_server.py --- cctools-7.0.22/resource_monitor/src/bindings/python3/example_udp_server.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/python3/example_udp_server.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,14 @@ +# to run example: +# in some terminal: python3 example_udp_server.py +# in another terminal: python3 example_client_with_decorator.py + +import socket +import pickle + +sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + +sock.bind(('localhost', 9800)) + +while True: + data, addr = sock.recvfrom(1024) + print("message: ", pickle.loads(data)) diff -Nru cctools-7.0.22/resource_monitor/src/bindings/python3/.gitignore cctools-7.1.2/resource_monitor/src/bindings/python3/.gitignore --- cctools-7.0.22/resource_monitor/src/bindings/python3/.gitignore 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/python3/.gitignore 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,2 @@ +Python.framework +_resource_monitor.so diff -Nru cctools-7.0.22/resource_monitor/src/bindings/python3/Makefile cctools-7.1.2/resource_monitor/src/bindings/python3/Makefile --- cctools-7.0.22/resource_monitor/src/bindings/python3/Makefile 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/python3/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,36 @@ +include ../../../../config.mk +include $(CCTOOLS_HOME)/rules.mk + +# Python always uses 'so' for its modules (even on Darwin) +CCTOOLS_DYNAMIC_SUFFIX = so +# SWIG produces code that causes a lot of warnings, so use -w to turn those off. +LOCAL_CCFLAGS = -fPIC -w $(CCTOOLS_PYTHON3_CCFLAGS) +LOCAL_LINKAGE = $(CCTOOLS_PYTHON3_LDFLAGS) + +EXTERNAL_DEPENDENCIES = $(CCTOOLS_HOME)/dttools/src/libdttools.a +RMPYTHONSO = _resource_monitor.$(CCTOOLS_DYNAMIC_SUFFIX) +LIBRARIES = $(RMPYTHONSO) resource_monitor.py +OBJECTS = rmonitor_wrap.o +TARGETS = $(LIBRARIES) + +all: $(TARGETS) + +rmonitor_wrap.c resource_monitor.py: rmonitor.i resource_monitor.bindings.py + @echo "SWIG rmonitor.i (python)" + @$(CCTOOLS_SWIG) -o rmonitor_wrap.c -python -py3 -I$(CCTOOLS_HOME)/dttools/src/ rmonitor.i + @cat resource_monitor.bindings.py >> resource_monitor.py + +$(RMPYTHONSO): rmonitor_wrap.o $(EXTERNAL_DEPENDENCIES) + +clean: + rm -f $(TARGETS) $(OBJECTS) rmonitor_wrap.c *.so *.pyc + +test: + +install: all + mkdir -p $(CCTOOLS_PYTHON3_PATH) + chmod 755 resource_monitor.py + cp resource_monitor.py $(TARGETS) $(CCTOOLS_PYTHON3_PATH)/ + mkdir -p $(CCTOOLS_INSTALL_DIR)/doc + + diff -Nru cctools-7.0.22/resource_monitor/src/bindings/python3/resource_monitor.bindings.py cctools-7.1.2/resource_monitor/src/bindings/python3/resource_monitor.bindings.py --- cctools-7.0.22/resource_monitor/src/bindings/python3/resource_monitor.bindings.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/python3/resource_monitor.bindings.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,567 @@ +# Copyright (C) 2016- The University of Notre Dame This software is distributed +# under the GNU General Public License. +# See the file COPYING for details. +# +## @package resource_monitor +# +# Python resource_monitor bindings. +# +# The objects and methods provided by this package correspond to the native +# C API in @ref category.h, rmonitor_poll.h, and rmsummary.h +# +# The SWIG-based Python bindings provide a higher-level interface that +# revolves around the following function/decorator and objects: +# +# - @ref resource_monitor::monitored +# - @ref resource_monitor::ResourceExhaustion +# - @ref resource_monitor::Category + +import fcntl +import functools +import json +import math +import multiprocessing +import os +import signal +import struct +import tempfile +import threading +import time + +def set_debug_flag(*flags): + for flag in flags: + cctools_debug_flags_set(flag) + +cctools_debug_config('resource_monitor') + + +## +# Create a monitored version of a function. +# It can be used as a decorator, or called by itself. +# +# @param limits Dictionary of resource limits to set. Available limits are: +# - wall_time: time spent during execution (microseconds) +# - cpu_time: user + system time of the execution (microseconds) +# - cores: peak number of cores used +# - cores_avg: number of cores computed as cpu_time/wall_time +# - max_concurrent_processes: the maximum number of processes running concurrently +# - total_processes: count of all of the processes created +# - virtual_memory: maximum virtual memory across all processes (megabytes) +# - memory: maximum resident size across all processes (megabytes) +# - swap_memory: maximum swap usage across all processes (megabytes) +# - bytes_read: number of bytes read from disk +# - bytes_written: number of bytes written to disk +# - bytes_received: number of bytes read from the network +# - bytes_sent: number of bytes written to the network +# - bandwidth: maximum network bits/s (average over one minute) +# - total_files: total maximum number of files and directories of all the working directories in the tree +# - disk: size of all working directories in the tree (megabytes) +# +# @param callback Function to call every time a measurement is done. The arguments given to the function are +# - id: Unique identifier for the function and its arguments. +# - name: Name of the original function. +# - step: Measurement step. It is -1 for the last measurement taken. +# - resources: Current resources measured. +# @param interval Maximum time in seconds between measurements. +# @param return_resources Whether to modify the return value of the function to a tuple of the original result and a dictionary with the final measurements. +# @code +# # Decorating a function: +# @monitored() +# def my_sum_a(lst): +# return sum(lst) +# +# @monitored(return_resources = False, callback = lambda id, name, step, res: print('memory used', res['memory'])) +# def my_sum_b(lst): +# return sum(lst) +# +# >>> (result_a, resources) = my_sum_a([1,2,3]) +# >>> print(result, resources['memory']) +# 6, 66 +# +# >>> result_b = my_sum_b([1,2,3]) +# memory used: 66 +# +# >>> assert(result_a == result_b) +# +# +# # Wrapping the already defined function 'sum', adding limits: +# my_sum_monitored = monitored(limits = {'memory': 1024})(sum) +# try: +# # original_result = sum(...) +# (original_result, resources_used) = my_sum_monitored(...) +# except ResourceExhaustion as e: +# print(e) +# ... +# +# # Defining a function with a callback and a decorator. +# # In this example, we record the time series of resources used: +# import multiprocessing +# results_series = multiprocessing.Queue() +# +# def my_callback(id, name, step, resources): +# results_series.put((step, resources)) +# +# @monitored(callback = my_callback, return_resources = False): +# def my_function(...): +# ... +# +# result = my_function(...) +# +# # print the time series +# while not results_series.empty(): +# try: +# step, resources = results_series.get(False) +# print(step, resources) +# except multiprocessing.Empty: +# pass +# @endcode +def monitored(limits = None, callback = None, interval = 1, return_resources = True): + def monitored_inner(function): + return functools.partial(__monitor_function, limits, callback, interval, return_resources, function) + return monitored_inner + + +## +# Exception raised when a function goes over the resources limits +class ResourceExhaustion(Exception): + ## + # @param self Reference to the current object. + # @param resources Dictionary of the resources measured at the time of the exhaustion. + # @param function Function that caused the exhaustion. + # @param args List of positional arguments to function that caused the exhaustion. + # @param kwargs Dictionary of keyword arguments to function that caused the exhaustion. + def __init__(self, resources, function, args = None, kwargs = None): + self.resources = resources + self.function = function + self.args = args + self.kwargs = kwargs + + def __str__(self): + r = self.resources + l = r['limits_exceeded'] + ls = ["{limit}: {value}".format(limit=k, value=l[k]) for k in list(l.keys()) if (l[k] > -1 and l[k] < r[k])] + + return 'Limits broken: {limits}'.format(limits=','.join(ls)) + +class ResourceInternalError(Exception): + def __init__(self, *args, **kwargs): + super(ResourceInternalError, self).__init__(*args, **kwargs) + +def __measure_update_to_peak(pid, old_summary = None): + new_summary = rmonitor_measure_process(pid) + + if old_summary is None: + return new_summary + else: + rmsummary_merge_max(old_summary, new_summary) + return old_summary + +def __child_handler(child_finished, signum, frame): + child_finished.set() + +def _wrap_function(results, fun, args, kwargs): + def fun_wrapper(): + try: + import os + import time + pid = os.getpid() + rm = __measure_update_to_peak(pid) + start = time.time() + result = fun(*args, **kwargs) + __measure_update_to_peak(pid, rm) + setattr(rm, 'wall_time', int((time.time() - start)*1e6)) + results.put((result, rm)) + except Exception as e: + results.put((e, None)) + cctools_debug(D_RMON, "function wrapper created") + return fun_wrapper + +def __read_pids_file(pids_file): + fcntl.flock(pids_file, fcntl.LOCK_EX) + line = bytearray(pids_file.read()) + fcntl.flock(pids_file, fcntl.LOCK_UN) + + n = len(line)/4 + if n > 0: + ns = struct.unpack('!' + 'i' * int(n), line) + for pid in ns: + if pid > 0: + rmonitor_minimonitor(MINIMONITOR_ADD_PID, pid) + else: + rmonitor_minimonitor(MINIMONITOR_REMOVE_PID, -pid) + +def _watchman(results_queue, limits, callback, interval, function, args, kwargs): + try: + # child_finished is set when the process running function exits + child_finished = threading.Event() + old_handler = signal.signal(signal.SIGCHLD, functools.partial(__child_handler, child_finished)) + + # result of function is eventually push into local_results + local_results = multiprocessing.Queue() + + # process that runs the original function + fun_proc = multiprocessing.Process(target=_wrap_function(local_results, function, args, kwargs)) + + # unique name for this function invocation + fun_id = str(hash(json.dumps({'args': args, 'kwargs': kwargs}, sort_keys=True))) + + # convert limits to the structure the minimonitor accepts + if limits: + limits = rmsummary.from_dict(limits) + + # pids of processes created by fun_proc (if any) are written to pids_file + pids_file = None + try: + # try python3 version first, which gets the 'buffering' keyword argument + pids_file=tempfile.NamedTemporaryFile(mode='rb+', prefix='p_mon-', buffering=0) + except TypeError: + # on error try python2, which gets the 'bufsize' keyword argument + pids_file=tempfile.NamedTemporaryFile(mode='rb+', prefix='p_mon-', bufsize=0) + + os.environ['CCTOOLS_RESOURCE_MONITOR_PIDS_FILE']=pids_file.name + + cctools_debug(D_RMON, "starting function process") + fun_proc.start() + + rmonitor_minimonitor(MINIMONITOR_ADD_PID, fun_proc.pid) + + # resources_now keeps instantaneous measurements, resources_max keeps the maximum seen + resources_now = rmonitor_minimonitor(MINIMONITOR_MEASURE, 0) + resources_max = rmsummary_copy(resources_now) + + try: + step = 0 + while not child_finished.is_set(): + step += 1 + # register/deregister new processes + __read_pids_file(pids_file) + + resources_now = rmonitor_minimonitor(MINIMONITOR_MEASURE, 0) + rmsummary_merge_max(resources_max, resources_now) + + rmsummary_check_limits(resources_max, limits); + if resources_max.limits_exceeded is not None: + child_finished.set() + else: + if callback: + callback(fun_id, function.__name__, step, _resources_to_dict(resources_now)) + child_finished.wait(timeout = interval) + except Exception as e: + fun_proc.terminate() + fun_proc.join() + raise e + + if resources_max.limits_exceeded is not None: + fun_proc.terminate() + fun_proc.join() + results_queue.put({ 'result': None, 'resources': resources_max, 'resource_exhaustion': True}) + else: + fun_proc.join() + try: + (fun_result, resources_measured_end) = local_results.get(True, 5) + except Exception as e: + e = ResourceInternalError("No result generated.") + cctools_debug(D_RMON, "{}".format(e)) + raise e + + if resources_measured_end is None: + raise fun_result + + rmsummary_merge_max(resources_max, resources_measured_end) + results_queue.put({ 'result': fun_result, 'resources': resources_max, 'resource_exhaustion': False}) + + if callback: + callback(fun_id, function.__name__, -1, _resources_to_dict(resources_max)) + + except Exception as e: + cctools_debug(D_RMON, "error executing function process: {err}".format(err=e)) + results_queue.put({'result': e, 'resources': None, 'resource_exhaustion': False}) + +def _resources_to_dict(resources): + d = resources.to_dict() + + try: + if d['wall_time'] > 0: + d['cores_avg'] = float(d['cpu_time']) / float(d['wall_time']) + except KeyError: + d['cores_avg'] = -1 + return d + + +def __monitor_function(limits, callback, interval, return_resources, function, *args, **kwargs): + result_queue = multiprocessing.Queue() + + watchman_proc = multiprocessing.Process(target=_watchman, args=(result_queue, limits, callback, interval, function, args, kwargs)) + watchman_proc.start() + watchman_proc.join() + + results = result_queue.get(True, 5) + + if not results['resources']: + raise results['result'] + else: + results['resources'] = _resources_to_dict(results['resources']) + + if results['resource_exhaustion']: + raise ResourceExhaustion(results['resources'], function, args, kwargs) + + if return_resources: + return (results['result'], results['resources']) + else: + return results['result'] + +## +# Class to encapsule all the categories in a workflow. +# +# @code +# cs = Categories() +# cs.accumulate_summary( { 'category': 'some_category', 'wall_time': 60, 'cores': 1, ... } ) +# print cs.first_allocation(mode = 'throughput', category = 'some_category') +# @endcode +# +class Categories: + + ## + # Create an empty set of categories. + # @param self Reference to the current object. + # @param all_categories_name Name of the general category that holds all of the summaries. + def __init__(self, all_categories_name = '(all)'): + self.categories = {} + self.all_categories_name = all_categories_name + category_tune_bucket_size('category-steady-n-tasks', -1) + + ## + # Returns a lists of the category categories. List sorted lexicographicaly, + # with the exception of @ref self.all_categories_name, which it is always + # the last entry. + # @param self Reference to the current object. + def category_names(self): + categories = list(self.categories.keys()) + categories.sort() + categories.remove(self.all_categories_name) + categories.append(self.all_categories_name) + return categories + + ## + # Compute and return the first allocations for the given category. + # Note: wall_time needs to be defined in the resource summaries to be + # considered in this optimization. + # + # @param self Reference to the current object. + # @param mode Optimization mode. One of 'throughput', 'waste', or 'fixed'. + # @param category Name of the category + # + # @code + # cs = Categories() + # fa = cs.first_allocation(mode = 'throughput, category = 'some_category') + # print fa['cores'] + # print fa['memory'] + # print fa['disk'] + # @endcode + def first_allocation(self, mode, category): + c = self._category(category) + return c.first_allocation(mode) + + ## + # Return the maximum resource values so far seen for the given category. + # + # @param self Reference to the current object. + # @param category Name of the category + # + # @code + # cs = Categories() + # fa = cs.maximum_seen('some_category') + # print fa['cores'] + # print fa['memory'] + # print fa['disk'] + # @endcode + def maximum_seen(self, category): + c = self._category(category) + return c.maximum_seen() + + ## + # Add the summary (a dictionary) to the respective category. + # At least both the 'category' and 'wall_time' keys should be defined. + # + # @code + # cs = Categories() + # cs.accumulate_summary( { 'category': 'some_category', 'wall_time': 50, 'cores': 1, ... } ) + # @endcode + # + def accumulate_summary(self, summary): + category = summary['category'] + wall_time = summary['wall_time'] + + if category == self.all_categories_name: + raise ValueError("category '" + self.all_categories_name + "' used for individual category.") + + c = self._category(category) + c.accumulate_summary(summary) + + c = self._category(self.all_categories_name) + c.accumulate_summary(summary) + + ## + # Return the waste (unit x time) that would be produced if the accumulated + # summaries were run under the given allocation. + # + # @param self Reference to the current object. + # @param category Name of the category + # @param field Name of the resource (e.g., cores, memory, or disk) + # @param allocation Value of allocation to test. + # + def waste(self, category, field, allocation): + c = self._category(category) + return c.waste(field, allocation) + + ## + # Return the percentage of wasted resources that would be produced if the accumulated + # summaries were run under the given allocation. + # + # @param self Reference to the current object. + # @param category Name of the category + # @param field Name of the resource (e.g., cores, memory, or disk) + # @param allocation Value of allocation to test. + # + def wastepercentage(self, category, field, allocation): + c = self._category(category) + return c.wastepercentage(field, allocation) + + ## + # Return the throughput that would be obtained if the accumulated + # summaries were run under the given allocation. + # + # @param self Reference to the current object. + # @param category Name of the category + # @param field Name of the resource (e.g., cores, memory, or disk) + # @param allocation Value of allocation to test. + # + def throughput(self, category, field, allocation): + c = self._category(category) + return c.throughput(field, allocation) + + ## + # Return the number of tasks that would be retried if the accumulated + # summaries were run under the given allocation. + # + # @param self Reference to the current object. + # @param category Name of the category + # @param field Name of the resource (e.g., cores, memory, or disk) + # @param allocation Value of allocation to test. + # + def retries(self, category, field, allocation): + c = self._category(category) + return c.retries(field, allocation) + + ## + # Return the number of summaries in a particular category. + # + # @param self Reference to the current object. + # @param category Name of the category + # + def count(self, category): + c = self._category(category) + return c.count() + + def _category(self, category): + try: + return self.categories[category] + except KeyError: + cat = Category(category) + self.categories[category] = cat + return cat + + +# +# Class to represent a single category. +# +# Internal class. +class Category: + def __init__(self, category): + self.category = category + self._cat = category_create(category) + self.summaries = [] + + + def allocation_mode(self, mode): + if mode == 'fixed': + category_specify_allocation_mode(self._cat, WORK_QUEUE_ALLOCATION_MODE_FIXED) + elif mode == 'waste': + category_specify_allocation_mode(self._cat, WORK_QUEUE_ALLOCATION_MODE_MIN_WASTE) + elif mode == 'throughput': + category_specify_allocation_mode(self._cat, WORK_QUEUE_ALLOCATION_MODE_MAX_THROUGHPUT) + else: + raise ValueError('No such mode') + + def accumulate_summary(self, summary): + r = rmsummary.from_dict(summary) + self.summaries.append(dict(summary)) + category_accumulate_summary(self._cat, r, None) + + def retries(self, field, allocation): + retries = 0 + for r in self.summaries: + if allocation < r[field]: + retries += 1 + return retries + + def count(self): + return len(self.summaries) + + def usage(self, field): + usage = 0 + for r in self.summaries: + resource = r[field] + wall_time = r['wall_time'] + usage += wall_time * resource + return usage + + def waste(self, field, allocation): + maximum = self.maximum_seen()[field] + + waste = 0 + for r in self.summaries: + resource = r[field] + wall_time = r['wall_time'] + if resource > allocation: + waste += wall_time * (allocation + maximum - resource) + else: + waste += wall_time * (allocation - resource) + return waste + + def wastepercentage(self, field, allocation): + waste = self.waste(field, allocation) + usage = self.usage(field) + + return (100.0 * waste)/(waste + usage) + + def throughput(self, field, allocation): + maximum = self.maximum_seen()[field] + maximum = float(maximum) + + tasks = 0 + total_time = 0 + for r in self.summaries: + resource = r[field] + wall_time = r['wall_time'] + + if resource > allocation: + tasks += 1 + total_time += 2*wall_time + else: + tasks += maximum/allocation + total_time += wall_time + return tasks/total_time + + def first_allocation(self, mode): + self.allocation_mode(mode) + + if mode == 'fixed': + return self.maximum_seen() + else: + category_update_first_allocation(self._cat, None) + return resource_monitor.to_dict(self._cat.first_allocation) + + def maximum_seen(self): + return resource_monitor.to_dict(self._cat.max_resources_seen) + diff -Nru cctools-7.0.22/resource_monitor/src/bindings/python3/rmonitor.i cctools-7.1.2/resource_monitor/src/bindings/python3/rmonitor.i --- cctools-7.0.22/resource_monitor/src/bindings/python3/rmonitor.i 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/bindings/python3/rmonitor.i 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,92 @@ +/* ResourceMonitor.i */ + +/* Copyright (C) 2016- The University of Notre Dame This software is + * distributed under the GNU General Public License. See the file COPYING for + * details. */ + +%module resource_monitor + +%{ + #include "debug.h" + #include "int_sizes.h" + #include "timestamp.h" + #include "category_internal.h" + #include "category.h" + #include "rmonitor_poll.h" + #include "rmsummary.h" +%} + +%typemap(in) off_t = long long int; +%typemap(in) pid_t = int; + +%extend rmsummary { + rmsummary() { + return rmsummary_create(-1); + } + + ~rmsummary() { + rmsummary_delete($self); + } + +%pythoncode %{ + def to_dict(self): + d = {} + for k in ['category', 'command', 'taskid', + 'start', 'end', + 'exit_type', 'signal', 'exit_status', 'last_error', + 'wall_time', 'total_processes', 'max_concurrent_processes', 'cpu_time', + 'virtual_memory', 'memory', 'swap_memory', + 'bytes_read', 'bytes_written', 'bytes_sent', 'bytes_received', 'bandwidth', + 'total_files', 'disk', + 'cores', 'cores_avg', 'gpus', 'machine_load', 'machine_cpus']: + v = getattr(self, k) + if v is None or (isinstance(v, int) and v < 0): + continue + else: + d[k] = v + for k in ['limits_exceeded', 'peak_times']: + v = getattr(self, k) + if v: + d[k] = v.to_dict() + return d + + @classmethod + def from_dict(cls, pairs): + rm = rmsummary() + for k in pairs.keys(): + v = pairs[k] + if k in ['limits_exceeded', 'peak_times']: + v = rmsummary.from_dict(v) + elif isinstance(v, float): + v = int(v) + try: + setattr(rm, k, v) + except KeyError: + pass + return rm + + def __getstate__(self): + return self.to_dict() + + def __setstate__(self, pairs): + oth = rmsummary.from_dict(pairs) + self.__init__() + rmsummary_merge_max(self, oth) + setattr(self, 'limits_exceeded', rmsummary_copy(oth.limits_exceeded)) + setattr(self, 'peak_times', rmsummary_copy(oth.limits_exceeded)) +%} +} + +/* vdebug() takes va_list as arg but SWIG can't wrap such functions. */ +%ignore vdebug; +%ignore debug; + +%include "stdint.i" +%include "debug.h" +%include "int_sizes.h" +%include "timestamp.h" +%include "category_internal.h" +%include "category.h" +%include "rmonitor_poll.h" +%include "rmsummary.h" + diff -Nru cctools-7.0.22/resource_monitor/src/Makefile cctools-7.1.2/resource_monitor/src/Makefile --- cctools-7.0.22/resource_monitor/src/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -3,7 +3,7 @@ include ../../config.mk include ../../rules.mk -LIBRARIES = librmonitor_helper.$(CCTOOLS_DYNAMIC_SUFFIX) +LIBRARIES = librmonitor_helper.$(CCTOOLS_DYNAMIC_SUFFIX) librminimonitor_helper.$(CCTOOLS_DYNAMIC_SUFFIX) OBJECTS = resource_monitor_pb.o rmonitor_helper_comm.o resource_monitor.o resource_monitor_tools.o rmonitor_helper.o rmonitor_file_watch.o LOCAL_LINKAGE = ../../dttools/src/libdttools.a @@ -14,9 +14,6 @@ PROGRAMS += resource_monitor_histograms endif -# currently only python bindings have been implemented -CCTOOLS_SWIG_BINDINGS := $(filter python, $(CCTOOLS_SWIG_BINDINGS)) - TARGETS = $(LIBRARIES) $(PROGRAMS) all: $(TARGETS) bindings @@ -24,6 +21,9 @@ librmonitor_helper.$(CCTOOLS_DYNAMIC_SUFFIX): rmonitor_helper.o rmonitor_helper_comm.o $(CCTOOLS_CC) -shared -Wl,-init,rmonitor_helper_initialize -fPIC $^ -o $@ -ldl $(CCTOOLS_INTERNAL_LDFLAGS) $(LOCAL_LINKAGE) $(CCTOOLS_EXTERNAL_LINKAGE) +librminimonitor_helper.$(CCTOOLS_DYNAMIC_SUFFIX): rminimonitor_helper.o + $(CCTOOLS_CC) -shared -Wl,-init,rmonitor_helper_initialize -fPIC $^ -o $@ -ldl $(CCTOOLS_INTERNAL_LDFLAGS) $(LOCAL_LINKAGE) $(CCTOOLS_EXTERNAL_LINKAGE) + piggybacker: piggybacker.o rmonitor_piggyback.h: librmonitor_helper.$(CCTOOLS_DYNAMIC_SUFFIX) piggybacker @@ -44,30 +44,20 @@ rmonitor_poll_example: rmonitor_poll_example.o -.PHONY: $(CCTOOLS_SWIG_BINDINGS) -bindings: $(CCTOOLS_SWIG_BINDINGS) -$(CCTOOLS_SWIG_BINDINGS): - @$(MAKE) -C $@ - -CCTOOLS_SWIG_BINDINGS_INSTALL = $(CCTOOLS_SWIG_BINDINGS:%=install-%) -install-bindings: $(CCTOOLS_SWIG_BINDINGS_INSTALL) -$(CCTOOLS_SWIG_BINDINGS_INSTALL): $(CCTOOLS_SWIG_BINDINGS) - @$(MAKE) -C $(@:install-%=%) install - -CCTOOLS_SWIG_BINDINGS_CLEAN = $(CCTOOLS_SWIG_BINDINGS:%=clean-%) -clean-bindings: $(CCTOOLS_SWIG_BINDINGS_CLEAN) -$(CCTOOLS_SWIG_BINDINGS_CLEAN): - @$(MAKE) -C $(@:clean-%=%) clean +bindings: + $(MAKE) -C bindings -clean: clean-bindings +clean: rm -f $(OBJECTS) $(TARGETS) $(PROGRAMS) resource_monitor_pb.* rmonitor_piggyback.h* *.o + $(MAKE) -C bindings clean -install: all install-bindings +install: all mkdir -p $(CCTOOLS_INSTALL_DIR)/bin cp $(PROGRAMS) $(CCTOOLS_INSTALL_DIR)/bin/ mkdir -p $(CCTOOLS_INSTALL_DIR)/lib cp $(LIBRARIES) $(CCTOOLS_INSTALL_DIR)/lib/ + $(MAKE) -C bindings install test: all -.PHONY: all clean install test +.PHONY: all clean install test bindings diff -Nru cctools-7.0.22/resource_monitor/src/python/.gitignore cctools-7.1.2/resource_monitor/src/python/.gitignore --- cctools-7.0.22/resource_monitor/src/python/.gitignore 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/python/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -Python.framework -_cResourceMonitor.so -cResourceMonitor.py -rmonitor_wrap.c diff -Nru cctools-7.0.22/resource_monitor/src/python/Makefile cctools-7.1.2/resource_monitor/src/python/Makefile --- cctools-7.0.22/resource_monitor/src/python/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/python/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -include ../../../config.mk -include ../../../rules.mk - -# Python always uses 'so' for its modules (even on Darwin) -CCTOOLS_DYNAMIC_SUFFIX = so -# SWIG produces code that causes a lot of warnings, so use -w to turn those off. -LOCAL_CCFLAGS = -fPIC -w -DNDEBUG $(CCTOOLS_PYTHON_CCFLAGS) -LOCAL_LINKAGE = $(CCTOOLS_PYTHON_LDFLAGS) - -EXTERNAL_DEPENDENCIES = ../../../dttools/src/libdttools.a -RMPYTHONSO = _cResourceMonitor.$(CCTOOLS_DYNAMIC_SUFFIX) -LIBRARIES = $(RMPYTHONSO) cResourceMonitor.py -OBJECTS = rmonitor_wrap.o -TARGETS = $(LIBRARIES) - -all: $(TARGETS) - -# The odd symlink in the following rule is necessary to overcome a problem -# in the framework search path emitted by the Python configuration on macOS. -rmonitor_wrap.c cResourceMonitor.py: rmonitor.i - @echo "SWIG rmonitor.i (python)" - @$(CCTOOLS_SWIG) -o rmonitor_wrap.c -python -I../../../dttools/src/ rmonitor.i - ln -sf /System/Library/Frameworks/Python.framework . - -$(RMPYTHONSO): rmonitor_wrap.o $(EXTERNAL_DEPENDENCIES) - -clean: - rm -f $(OBJECTS) $(TARGETS) Python.framework rmonitor_wrap.c *.so *.pyc - -test: - -install: all - mkdir -p $(CCTOOLS_PYTHON_PATH) - chmod 755 ResourceMonitor.py - cp ResourceMonitor.py $(TARGETS) $(CCTOOLS_PYTHON_PATH)/ - mkdir -p $(CCTOOLS_INSTALL_DIR)/doc - cp rmonitor_allocations_example.py $(CCTOOLS_INSTALL_DIR)/doc/ - - diff -Nru cctools-7.0.22/resource_monitor/src/python/ResourceMonitor.py cctools-7.1.2/resource_monitor/src/python/ResourceMonitor.py --- cctools-7.0.22/resource_monitor/src/python/ResourceMonitor.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/python/ResourceMonitor.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,334 +0,0 @@ -# Copyright (C) 2016- The University of Notre Dame This software is distributed -# under the GNU General Public License. -# See the file COPYING for details. -# -## @package ResourceMonitorPython -# -# Python Work Queue bindings. -# -# The objects and methods provided by this package correspond to the native -# C API in @ref category.h, rmonitor_poll.h, and rmsummary.h -# -# The SWIG-based Python bindings provide a higher-level interface that -# revolves around the following object: -# -# - @ref ResourceMonitor::Category - -from cResourceMonitor import * - -import math - - -def set_debug_flag(*flags): - for flag in flags: - cctools_debug_flags_set(flag) - -cctools_debug_config('ResourceMonitorPython') - -## -# Class to encapsule all the categories in a workflow. -# -# @code -# cs = Categories() -# cs.accumulate_summary( { 'category': 'some_category', 'wall_time': 60, 'cores': 1, ... } ) -# print cs.first_allocation(mode = 'throughput', category = 'some_category') -# @endcode -# - -class Categories: - ## - # Create an empty set of categories. - # @param self Reference to the current object. - # @param all_categories_name Name of the general category that holds all of the summaries. - def __init__(self, all_categories_name = '(all)'): - self.categories = {} - self.all_categories_name = all_categories_name - category_tune_bucket_size('category-steady-n-tasks', -1) - - ## - # Returns a lists of the category categorys. List sorted lexicographicaly, - # with the exception of @ref self.all_categories_name, which it is always - # the last entry. - # @param self Reference to the current object. - def category_names(self): - categorys = self.categories.keys() - categorys.sort( self._cmp_names ) - return categorys - - def _cmp_names(self, a, b): - # like cmp, but send all_categories_name to the last position - if a == self.all_categories_name: - return 1 - if b == self.all_categories_name: - return -1 - return cmp(a, b) - - ## - # Compute and return the first allocations for the given category. - # Note: wall_time needs to be defined in the resource summaries to be - # considered in this optimization. - # - # @param self Reference to the current object. - # @param mode Optimization mode. One of 'throughput', 'waste', or 'fixed'. - # @param category Name of the category - # - # @code - # cs = Categories() - # fa = cs.first_allocation(mode = 'throughput, category = 'some_category') - # print fa['cores'] - # print fa['memory'] - # print fa['disk'] - # @endcode - def first_allocation(self, mode, category): - c = self._category(category) - return c.first_allocation(mode) - - ## - # Return the maximum resource values so far seen for the given category. - # - # @param self Reference to the current object. - # @param category Name of the category - # - # @code - # cs = Categories() - # fa = cs.maximum_seen('some_category') - # print fa['cores'] - # print fa['memory'] - # print fa['disk'] - # @endcode - def maximum_seen(self, category): - c = self._category(category) - return c.maximum_seen() - - ## - # Add the summary (a dictionary) to the respective category. - # At least both the 'category' and 'wall_time' keys should be defined. - # - # @code - # cs = Categories() - # cs.accumulate_summary( { 'category': 'some_category', 'wall_time': 50, 'cores': 1, ... } ) - # @endcode - # - def accumulate_summary(self, summary): - category = summary['category'] - wall_time = summary['wall_time'] - - if category == self.all_categories_name: - raise ValueError("category '" + self.all_categories_name + "' used for individual category.") - - c = self._category(category) - c.accumulate_summary(summary) - - c = self._category(self.all_categories_name) - c.accumulate_summary(summary) - - ## - # Return the waste (unit x time) that would be produced if the accumulated - # summaries were run under the given allocation. - # - # @param self Reference to the current object. - # @param category Name of the category - # @param field Name of the resource (e.g., cores, memory, or disk) - # @param allocation Value of allocation to test. - # - def waste(self, category, field, allocation): - c = self._category(category) - return c.waste(field, allocation) - - ## - # Return the percentage of wasted resources that would be produced if the accumulated - # summaries were run under the given allocation. - # - # @param self Reference to the current object. - # @param category Name of the category - # @param field Name of the resource (e.g., cores, memory, or disk) - # @param allocation Value of allocation to test. - # - def wastepercentage(self, category, field, allocation): - c = self._category(category) - return c.wastepercentage(field, allocation) - - ## - # Return the throughput that would be obtained if the accumulated - # summaries were run under the given allocation. - # - # @param self Reference to the current object. - # @param category Name of the category - # @param field Name of the resource (e.g., cores, memory, or disk) - # @param allocation Value of allocation to test. - # - def throughput(self, category, field, allocation): - c = self._category(category) - return c.throughput(field, allocation) - - ## - # Return the number of tasks that would be retried if the accumulated - # summaries were run under the given allocation. - # - # @param self Reference to the current object. - # @param category Name of the category - # @param field Name of the resource (e.g., cores, memory, or disk) - # @param allocation Value of allocation to test. - # - def retries(self, category, field, allocation): - c = self._category(category) - return c.retries(field, allocation) - - ## - # Return the number of summaries in a particular category. - # - # @param self Reference to the current object. - # @param category Name of the category - # - def count(self, category): - c = self._category(category) - return c.count() - - def _category(self, category): - try: - return self.categories[category] - except KeyError: - cat = Category(category) - self.categories[category] = cat - return cat - - -# -# Class to represent a single category. -# -# Internal class. -class Category: - def __init__(self, category): - self.category = category - self._cat = category_create(category) - self.summaries = [] - - - def allocation_mode(self, mode): - if mode == 'fixed': - category_specify_allocation_mode(self._cat, WORK_QUEUE_ALLOCATION_MODE_FIXED) - elif mode == 'waste': - category_specify_allocation_mode(self._cat, WORK_QUEUE_ALLOCATION_MODE_MIN_WASTE) - elif mode == 'throughput': - category_specify_allocation_mode(self._cat, WORK_QUEUE_ALLOCATION_MODE_MAX_THROUGHPUT) - else: - raise ValueError('No such mode') - - def accumulate_summary(self, summary): - r = self._dict_to_rmsummary(summary) - self.summaries.append(self._rmsummary_to_dict(r)) - category_accumulate_summary(self._cat, r, None) - - def retries(self, field, allocation): - retries = 0 - for r in self.summaries: - if allocation < r[field]: - retries += 1 - return retries - - def count(self): - return len(self.summaries) - - def usage(self, field): - usage = 0 - for r in self.summaries: - resource = r[field] - wall_time = r['wall_time'] - usage += wall_time * resource - return usage - - def waste(self, field, allocation): - maximum = self.maximum_seen()[field] - - waste = 0 - for r in self.summaries: - resource = r[field] - wall_time = r['wall_time'] - if resource > allocation: - waste += wall_time * (allocation + maximum - resource) - else: - waste += wall_time * (allocation - resource) - return waste - - def wastepercentage(self, field, allocation): - waste = self.waste(field, allocation) - usage = self.usage(field) - - return (100.0 * waste)/(waste + usage) - - def throughput(self, field, allocation): - maximum = self.maximum_seen()[field] - maximum = float(maximum) - - tasks = 0 - total_time = 0 - for r in self.summaries: - resource = r[field] - wall_time = r['wall_time'] - - if resource > allocation: - tasks += 1 - total_time += 2*wall_time - else: - tasks += maximum/allocation - total_time += wall_time - return tasks/total_time - - def first_allocation(self, mode): - self.allocation_mode(mode) - - if mode == 'fixed': - return self.maximum_seen() - else: - category_update_first_allocation(self._cat, None) - return self._rmsummary_to_dict(self._cat.first_allocation) - - def maximum_seen(self): - return self._rmsummary_to_dict(self._cat.max_resources_seen) - - def _dict_to_rmsummary(self, pairs): - rm = rmsummary_create(-1) - for k, v in pairs.iteritems(): - if k in ['category', 'command', 'taskid']: - pass # keep it as string - elif k in ['start', 'end', 'wall_time', 'cpu_time', 'bandwidth', 'bytes_read', 'bytes_written', 'bytes_sent', 'bytes_received']: - v = int(float(v) * 1000000) # to s->miliseconds, Mb->bytes, Mbs->bps - elif k in ['cores_avg']: - pass # not yet implemented - else: - v = int(math.ceil(float(v))) # to int - setattr(rm, k, v) - return rm - - def _rmsummary_to_dict(self, rm): - if not rm: - return None - - d = {} - - for k in ['category', 'command', 'taskid', 'exit_type']: - v = getattr(rm, k) - if v: - d[k] = v - - for k in ['signal', 'exit_status', 'last_error']: - v = getattr(rm, k) - if v != 0: - d[k] = v - - for k in ['total_processes', 'max_concurrent_processes', - 'virtual_memory', 'memory', 'swap_memory', - 'disk', 'total_files', - 'cores', 'gpus']: - v = getattr(rm, k) - if v > -1: - d[k] = v - - for k in ['start', 'end', 'cpu_time', 'wall_time', - 'bandwidth', 'bytes_read', 'bytes_written', 'bytes_received', 'bytes_sent']: - v = getattr(rm, k) - if v > -1: - d[k] = v/1000000.0 # to s, Mbs, MB. - - return d - diff -Nru cctools-7.0.22/resource_monitor/src/python/rmonitor_allocations_example.py cctools-7.1.2/resource_monitor/src/python/rmonitor_allocations_example.py --- cctools-7.0.22/resource_monitor/src/python/rmonitor_allocations_example.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/python/rmonitor_allocations_example.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ -# Copyright (C) 2016- The University of Notre Dame This software is distributed -# under the GNU General Public License. See the file COPYING for details. - -from ResourceMonitor import * -import random -import sys - -# Generate syntetic resource samples according to beta(2, 5) -def beta(start, end, alpha = 2, beta = 5): - return int((end - start) * random.betavariate(alpha, beta)) + start - -# Generate syntetic resource samples according to exp(1.25) -def exponential(start, end, lambd = 1.25): - return int((end - start) * random.expovariate(lambd)) + start - -# Generate syntetic resource samples according to triangular(0.1) -def triangular(start, end, mode = 0.1): - return int(random.triangular(start, end, start + mode*(end - start))) - -if __name__ == '__main__': - # set seed so that we can compare runs. - random.seed(42) - - # wall time in seconds - wall_time = 1 - - # min memory, in MB - memory_min = 50 - - # max memory, in MB - memory_max = 10000 - - # number of samples to compute per category - number_of_tasks = 10 - - # create an empty set of categories - categories = Categories(); - - # generate number_of_tasks memory samples of the category 'example' - try: - for i in range(number_of_tasks): - resources = { 'category': 'beta', 'memory': beta(memory_min, memory_max), 'wall_time': wall_time} - categories.accumulate_summary(resources) - except AttributeError: - print 'beta distribution not available.' - - try: - for i in range(number_of_tasks): - resources = { 'category': 'exponential', 'memory': exponential(memory_min, memory_max), 'wall_time': wall_time} - categories.accumulate_summary(resources) - except AttributeError: - print 'exponential distribution not available.' - - try: - for i in range(number_of_tasks): - resources = { 'category': 'triangular', 'memory': triangular(memory_min, memory_max), 'wall_time': wall_time} - categories.accumulate_summary(resources) - except AttributeError: - print 'triangular distribution not available.' - - # print the first allocations found - for name in categories.category_names(): - try: - fa = categories.first_allocation(mode = 'throughput', category = name) - print '%-15s: %5d' % (name, fa['memory']) - except TypeError: - print name + ' distribution not available.' - - sys.exit(0) - diff -Nru cctools-7.0.22/resource_monitor/src/python/rmonitor.i cctools-7.1.2/resource_monitor/src/python/rmonitor.i --- cctools-7.0.22/resource_monitor/src/python/rmonitor.i 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/python/rmonitor.i 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -/* ResourceMonitor.i */ - -/* Copyright (C) 2016- The University of Notre Dame This software is - * distributed under the GNU General Public License. See the file COPYING for - * details. */ - -%module cResourceMonitor - -%{ - #include "debug.h" - #include "int_sizes.h" - #include "timestamp.h" - #include "category_internal.h" - #include "category.h" - #include "rmonitor_poll.h" - #include "rmsummary.h" -%} - -%typemap(in) off_t = int; - -/* vdebug() takes va_list as arg but SWIG can't wrap such functions. */ -%ignore vdebug; -%ignore debug; - -%include "stdint.i" -%include "debug.h" -%include "int_sizes.h" -%include "timestamp.h" -%include "category_internal.h" -%include "category.h" -%include "rmonitor_poll.h" -%include "rmsummary.h" - diff -Nru cctools-7.0.22/resource_monitor/src/resource_monitor.c cctools-7.1.2/resource_monitor/src/resource_monitor.c --- cctools-7.0.22/resource_monitor/src/resource_monitor.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/resource_monitor.c 2020-05-05 15:31:15.000000000 +0000 @@ -127,6 +127,7 @@ #include #include "buffer.h" +#include "catalog_query.h" #include "cctools.h" #include "copy_stream.h" #include "create_dir.h" @@ -145,6 +146,8 @@ #include "xxmalloc.h" #include "elfheader.h" #include "domain_name_cache.h" +#include "uuid.h" +#include "random.h" #include "rmonitor.h" #include "rmonitor_poll_internal.h" @@ -235,6 +238,18 @@ struct itable *snapshot_watch_pids; /* pid of all processes watching files for snapshots. */ + +char *catalog_task_readable_name = NULL; +char *catalog_uuid = NULL; +char *catalog_hosts = NULL; +char *catalog_project = NULL; +char *catalog_owner = NULL; + +uint64_t catalog_interval = 0; +uint64_t catalog_last_update_time = 0; + +int64_t catalog_interval_default = 30; + /*** * Utility functions (open log files, proc files, measure time) ***/ @@ -329,7 +344,8 @@ char *delim = strchr(pair, ':'); if(!delim) { - fatal("Missing ':' in '%s'\n", str); + debug(D_FATAL, "Missing ':' in '%s'\n", str); + exit(RM_MONITOR_ERROR); } *delim = '\0'; @@ -343,7 +359,8 @@ status = string_is_float(value, &d); if(!status) { - fatal("Invalid limit field '%s' or value '%s'\n", field, value); + debug(D_FATAL, "Invalid limit field '%s' or value '%s'\n", field, value); + exit(RM_MONITOR_ERROR); } if(strcmp(field, "start") == 0 || strcmp(field, "end") == 0) { @@ -373,7 +390,8 @@ char *delim = strchr(pair, ':'); if(!delim) { - fatal("Missing ':' in '%s'\n", str); + debug(D_FATAL, "Missing ':' in '%s'\n", str); + exit(RM_MONITOR_ERROR); } *delim = '\0'; @@ -461,6 +479,38 @@ return 0; } +int send_catalog_update(struct rmsummary *s, int force) { + + if(!catalog_task_readable_name) { + return 1; + } + + if(!force && (timestamp_get() < catalog_last_update_time + catalog_interval * USECOND)) { + return 1; + } + + struct jx *j = rmsummary_to_json(s, /* all, not only resources */ 0); + + jx_insert_string(j, "type", "task"); + jx_insert_string(j, "uuid", catalog_uuid); + jx_insert_string(j, "owner", catalog_owner); + jx_insert_string(j, "task", catalog_task_readable_name); + jx_insert_string(j, "project", catalog_project); + + char *str = jx_print_string(j); + + debug(D_RMON, "Sending resources snapshot to catalog server(s) at %s ...", catalog_hosts); + int status = catalog_query_send_update_conditional(catalog_hosts, str); + + free(str); + jx_delete(j); + + catalog_last_update_time = timestamp_get(); + + return status; +} + + /*** * Reference count for filesystems and working directories auxiliary functions. @@ -681,7 +731,7 @@ #if defined(RESOURCE_MONITOR_USE_INOTIFY) struct inotify_event *evdata = NULL; - struct rmonitor_file_info *finfo; + struct rmonitor_file_info *finfo = NULL; struct stat fst; char *fname; int nbytes, evc, i; @@ -1598,6 +1648,8 @@ status = rmonitor_final_summary(); + send_catalog_update(summary, 1); + fclose(log_summary); if(log_series) @@ -1610,51 +1662,6 @@ exit(status); } -#define over_limit_check(tr, fld)\ - if(resources_limits->fld > -1 && (tr)->fld > 0 && resources_limits->fld - (tr)->fld < 0)\ - {\ - warn(D_RMON, "Limit " #fld " broken.\n");\ - if(!(tr)->limits_exceeded) { (tr)->limits_exceeded = rmsummary_create(-1); }\ - (tr)->limits_exceeded->fld = resources_limits->fld;\ - } - -/* return 0 means above limit, 1 means limist ok */ -int rmonitor_check_limits(struct rmsummary *tr) -{ - tr->limits_exceeded = NULL; - - /* Consider errors as resources exhausted. Used for ENOSPC, ENFILE, etc. */ - if(tr->last_error) - return 0; - - if(!resources_limits) - return 1; - - over_limit_check(tr, start); - over_limit_check(tr, end); - over_limit_check(tr, cores); - over_limit_check(tr, wall_time); - over_limit_check(tr, cpu_time); - over_limit_check(tr, max_concurrent_processes); - over_limit_check(tr, total_processes); - over_limit_check(tr, virtual_memory); - over_limit_check(tr, memory); - over_limit_check(tr, swap_memory); - over_limit_check(tr, bytes_read); - over_limit_check(tr, bytes_written); - over_limit_check(tr, bytes_received); - over_limit_check(tr, bytes_sent); - over_limit_check(tr, total_files); - over_limit_check(tr, disk); - - if(tr->limits_exceeded) { - return 0; - } - else { - return 1; - } -} - /*** * Functions that communicate with the helper library, * (un)tracking resources as messages arrive. @@ -1811,7 +1818,7 @@ summary->last_error = msg.error; - if(!rmonitor_check_limits(summary)) + if(!rmsummary_check_limits(summary, resources_limits)) rmonitor_final_cleanup(SIGTERM); // find out if messages are urgent: @@ -2043,6 +2050,10 @@ fprintf(stdout, "%-30s See --without-disk-footprint below.\n", ""); fprintf(stdout, "%-30s Do not measure working directory footprint. Overrides --measure-dir and --follow-chdir.\n", "--without-disk-footprint"); fprintf(stdout, "\n"); + fprintf(stdout, "%-30s Report measurements to catalog server with \"task\"=.\n", "--catalog-task-name="); + fprintf(stdout, "%-30s Set project name of catalog update to (default=).\n", "--catalog-project="); + fprintf(stdout, "%-30s Use catalog server . (default=catalog.cse.nd.edu:9094).\n", "--catalog="); + fprintf(stdout, "%-30s Send update to catalog every seconds. (default=%" PRId64 ").\n", "--catalog-interval=", catalog_interval_default); fprintf(stdout, "\n"); fprintf(stdout, "%-30s Do not pretty-print summaries.\n", "--no-pprint"); fprintf(stdout, "\n"); @@ -2079,8 +2090,9 @@ rmonitor_poll_all_processes_once(processes, p_acc); rmonitor_poll_maps_once(processes, m_acc); - if(resources_flags->disk) + if(resources_flags->disk) { rmonitor_poll_all_wds_once(wdirs, d_acc, MAX(1, interval/(MAX(1, hash_table_size(wdirs))))); + } // rmonitor_fss_once(f); disabled until statfs fs id makes sense. @@ -2089,8 +2101,9 @@ rmonitor_find_max_tree(snapshot, resources_now); rmonitor_log_row(resources_now); - if(!rmonitor_check_limits(summary)) + if(!rmsummary_check_limits(summary, resources_limits)) { rmonitor_final_cleanup(SIGTERM); + } release_waiting_processes(); @@ -2102,6 +2115,8 @@ snapshot->start = usecs_since_epoch(); } + send_catalog_update(resources_now, 0); + //If no more process are alive, break out of loop. if(itable_size(processes) < 1) break; @@ -2189,6 +2204,10 @@ LONG_OPT_SNAPSHOT_FILE, LONG_OPT_SNAPSHOT_WATCH_CONF, LONG_OPT_STOP_SHORT_RUNNING, + LONG_OPT_CATALOG_TASK_READABLE_NAME, + LONG_OPT_CATALOG_SERVER, + LONG_OPT_CATALOG_PROJECT, + LONG_OPT_CATALOG_INTERVAL, LONG_OPT_PID }; @@ -2221,6 +2240,11 @@ {"snapshot-file", required_argument, 0, LONG_OPT_SNAPSHOT_FILE}, {"snapshot-events", required_argument, 0, LONG_OPT_SNAPSHOT_WATCH_CONF}, + {"catalog-task-name", required_argument, 0, LONG_OPT_CATALOG_TASK_READABLE_NAME}, + {"catalog", required_argument, 0, LONG_OPT_CATALOG_SERVER}, + {"catalog-project", required_argument, 0, LONG_OPT_CATALOG_PROJECT}, + {"catalog-interval", required_argument, 0, LONG_OPT_CATALOG_INTERVAL}, + {0, 0, 0, 0} }; @@ -2302,7 +2326,8 @@ pprint_summaries = 0; break; case LONG_OPT_SNAPSHOT_FILE: - fatal("This option has been replaced with --snapshot-events. Please consult the manual of resource_monitor."); + debug(D_FATAL, "This option has been replaced with --snapshot-events. Please consult the manual of resource_monitor."); + exit(RM_MONITOR_ERROR); break; case LONG_OPT_SNAPSHOT_WATCH_CONF: snapshot_watch_events_file = xxstrdup(optarg); @@ -2318,6 +2343,21 @@ first_process_pid = (pid_t) p; } break; + case LONG_OPT_CATALOG_TASK_READABLE_NAME: + catalog_task_readable_name = xxstrdup(optarg); + break; + case LONG_OPT_CATALOG_SERVER: + catalog_hosts = xxstrdup(optarg); + break; + case LONG_OPT_CATALOG_PROJECT: + catalog_project = xxstrdup(optarg); + break; + case LONG_OPT_CATALOG_INTERVAL: + catalog_interval = atoi(optarg); + if(catalog_interval < 1) { + debug(D_FATAL, "--catalog-interval cannot be less than 1."); + } + break; default: show_help(argv[0]); return 1; @@ -2325,7 +2365,7 @@ } } - if( follow_chdir && hash_table_size(wdirs) > 0) { + if(follow_chdir && hash_table_size(wdirs) > 0) { debug(D_FATAL, "Options --follow-chdir and --measure-dir as mutually exclusive."); exit(RM_MONITOR_ERROR); } @@ -2342,6 +2382,44 @@ } } + if(catalog_task_readable_name) { + + random_init(); + cctools_uuid_t *uuid = malloc(sizeof(*uuid)); + cctools_uuid_create(uuid); + catalog_uuid = xxstrdup(uuid->str); + free(uuid); + + char *tmp = getenv("USER"); + if(tmp) { + catalog_owner = xxstrdup(tmp); + } else { + catalog_owner = "unknown"; + } + + if(!catalog_hosts) { + catalog_hosts = xxstrdup(CATALOG_HOST); + } + + if(!catalog_project) { + catalog_project = xxstrdup(catalog_task_readable_name); + } + + if(catalog_interval < 1) { + catalog_interval = catalog_interval_default; + } + + if(catalog_interval < interval) { + warn(D_RMON, "catalog update interval (%" PRId64 ") is less than measurements interval (%" PRId64 "). Using the latter."); + catalog_interval = interval; + } + + } else if (catalog_hosts || catalog_project || catalog_interval) { + debug(D_FATAL, "Options --catalog, --catalog-project, and --catalog-interval cannot be used without --catalog-task-name."); + exit(RM_MONITOR_ERROR); + } + + //this is ugly. if -c given, we should not accept any more arguments. // if not given, we should get the arguments that represent the command line. if((optind < argc && sh_cmd_line) || (optind >= argc && !sh_cmd_line && !first_pid_manually_set)) { @@ -2397,7 +2475,8 @@ debug(D_NOTICE, "using upstream monitor. executing: %s\n", command_line); execlp("/bin/sh", "sh", "-c", command_line, (char *) NULL); //We get here only if execlp fails. - fatal("error executing %s: %s\n", command_line, strerror(errno)); + debug(D_FATAL, "error executing %s: %s\n", command_line, strerror(errno)); + exit(RM_MONITOR_ERROR); } write_helper_lib(); diff -Nru cctools-7.0.22/resource_monitor/src/rminimonitor_helper.c cctools-7.1.2/resource_monitor/src/rminimonitor_helper.c --- cctools-7.0.22/resource_monitor/src/rminimonitor_helper.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/rminimonitor_helper.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,188 @@ +/* + Copyright (C) 2013- The University of Notre Dame + This software is distributed under the GNU General Public License. + See the file COPYING for details. +*/ + +/* We need RTLD_NEXT for find the libc implementation of fork(), + * vfork(), etc., but RTLD_NEXT is not POSIX. However, the BSDs + * have it by the default, and glibc needs _GNU_SOURCE defined. + * */ + +#if defined(__linux__) && !defined(_GNU_SOURCE) +#define _GNU_SOURCE +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define CCTOOLS_HELPER_DEBUG_MESSAGES 0 + +#define D_RMON stderr +#define debug if(CCTOOLS_HELPER_DEBUG_MESSAGES) fprintf + +#define BUFFER_MAX 1024 + +#define RESOURCE_MONITOR_PIDS_FILE "CCTOOLS_RESOURCE_MONITOR_PIDS_FILE" + +#define declare_original_dlsym(name) __typeof__(name) *original_ ## name; +#define define_original_dlsym(name) original_ ## name = dlsym(RTLD_NEXT, #name); + +declare_original_dlsym(fork); +declare_original_dlsym(exit); +declare_original_dlsym(_exit); + + +static int initializing_helper = 0; + +void rmonitor_helper_initialize() { + + debug(D_RMON, "initializing fork wrapper\n"); + + if(initializing_helper) + return; + + initializing_helper = 1; + + define_original_dlsym(fork); + define_original_dlsym(exit); + define_original_dlsym(_exit); + + initializing_helper = 0; +} + +void write_to_file_of_pids(pid_t pid) { + char *file_of_pids = getenv(RESOURCE_MONITOR_PIDS_FILE); + + if(file_of_pids) { + int fd = open(file_of_pids, O_WRONLY | O_APPEND | O_CREAT | O_DSYNC, 0660); + if (fd == -1) { + debug(D_RMON, "error opening %s: %s\n", RESOURCE_MONITOR_PIDS_FILE, strerror(errno)); + return; + } + + /* ensure pid is written as a 32bit number, network order */ + uint32_t b = htonl((uint32_t) pid); + + int ld = flock(fd, LOCK_EX); + if(ld == -1) { + debug(D_RMON, "error locking %s: %s\n", RESOURCE_MONITOR_PIDS_FILE, strerror(errno)); + return; + } + + int count = write(fd, &b, sizeof(b)); + flock(fd, LOCK_UN); + + if(count == -1) { + debug(D_RMON, "error writing to %s: %s\n", RESOURCE_MONITOR_PIDS_FILE, strerror(errno)); + } + } +} + +pid_t fork() +{ + pid_t pid; + + if(!original_fork) { + rmonitor_helper_initialize(); + assert(original_fork); + } + + pid = original_fork(); + + if(pid > 0) { + debug(D_RMON, "fork from %d -> %d\n", getpid(), pid); + write_to_file_of_pids(pid); + } else if(pid < 0) { + debug(D_RMON, "fork error: %s\n", strerror(errno)); + } + + return pid; +} + +pid_t __fork() +{ + return fork(); +} + +pid_t vfork() +{ + return fork(); +} + +pid_t __vfork() +{ + return fork(); +} + +int exit_wrapper(int status) { + static int did_exit_wrapper = 0; + + if(did_exit_wrapper) { + return status; + } + + did_exit_wrapper = 1; + + pid_t pid = getpid(); + + debug(D_RMON, "exit from %d\n", pid); + write_to_file_of_pids(-pid); + + return status; +} + +void exit(int status) { + if(!original_exit){ + syscall(SYS_exit, status); + } + + exit_wrapper(status); + original_exit(status); + + /* we exited in the above line. The next line is to make the compiler + happy with noreturn warnings. */ + exit(status); +} + +void _exit(int status) { + if(!original_exit){ + syscall(SYS_exit, status); + } + + exit_wrapper(status); + original_exit(status); + + /* we exited in the above line. The next line is to make the compiler + happy with noreturn warnings. */ + exit(status); +} + +#if defined(__clang__) || defined(__GNUC__) + +void __attribute__((constructor)) init() { + /* find the dlsym values when loading the library. */ + rmonitor_helper_initialize(); +} + +/* wrap main ensures exit_wrapper_preamble runs, and thus monitoring +is done at least once */ +void __attribute__((destructor)) fini() { + /* we use default status of 0, since if command did not call exit + * explicitely, that is the default. */ + exit_wrapper(0); +} + +#endif + + + +/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/resource_monitor/src/rmonitor_helper.c cctools-7.1.2/resource_monitor/src/rmonitor_helper.c --- cctools-7.0.22/resource_monitor/src/rmonitor_helper.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/rmonitor_helper.c 2020-05-05 15:31:15.000000000 +0000 @@ -48,15 +48,6 @@ #define BUFFER_MAX 1024 -// XXX This is a quick hack to get through the build on Cygwin. -// It appears thaqt RTLD_NEXT does not exist on Cygwin. -// Can this module work on that operating system? - -#if defined(CCTOOLS_OPSYS_CYGWIN) && !defined(RTLD_NEXT) -#define RTLD_NEXT 0 -#endif - - #define PUSH_ERRNO { int last_errno = errno; errno = 0; #define POP_ERRNO(msg) msg.error = errno; if(!errno){ errno = last_errno; } } diff -Nru cctools-7.0.22/resource_monitor/src/rmonitor.i cctools-7.1.2/resource_monitor/src/rmonitor.i --- cctools-7.0.22/resource_monitor/src/rmonitor.i 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/resource_monitor/src/rmonitor.i 2020-05-05 15:31:15.000000000 +0000 @@ -4,7 +4,7 @@ * distributed under the GNU General Public License. See the file COPYING for * details. */ -%module cResourceMonitor +%module resource_monitor %{ #include "debug.h" @@ -16,7 +16,66 @@ #include "rmsummary.h" %} -%typemap(in) off_t = int; +%typemap(in) off_t = long long int; +%typemap(in) pid_t = int; + +%extend rmsummary { + rmsummary() { + return rmsummary_create(-1); + } + + ~rmsummary() { + rmsummary_delete($self); + } + +%pythoncode %{ + def to_dict(self): + d = {} + for k in ['category', 'command', 'taskid', + 'start', 'end', + 'exit_type', 'signal', 'exit_status', 'last_error', + 'wall_time', 'total_processes', 'max_concurrent_processes', 'cpu_time', + 'virtual_memory', 'memory', 'swap_memory', + 'bytes_read', 'bytes_written', 'bytes_sent', 'bytes_received', 'bandwidth', + 'total_files', 'disk', + 'cores', 'cores_avg', 'gpus', 'machine_load', 'machine_cpus']: + v = getattr(self, k) + if v is None or (isinstance(v, int) and v < 0): + continue + else: + d[k] = v + for k in ['limits_exceeded', 'peak_times']: + v = getattr(self, k) + if v: + d[k] = v.to_dict() + return d + + @classmethod + def from_dict(cls, pairs): + rm = rmsummary() + for k in pairs.keys(): + v = pairs[k] + if k in ['limits_exceeded', 'peak_times']: + v = rmsummary.from_dict(v) + elif isinstance(v, float): + v = int(v) + try: + setattr(rm, k, v) + except KeyError: + pass + return rm + + def __getstate__(self): + return self.to_dict() + + def __setstate__(self, pairs): + oth = rmsummary.from_dict(pairs) + self.__init__() + rmsummary_merge_max(self, oth) + setattr(self, 'limits_exceeded', rmsummary_copy(oth.limits_exceeded)) + setattr(self, 'peak_times', rmsummary_copy(oth.limits_exceeded)) +%} +} /* vdebug() takes va_list as arg but SWIG can't wrap such functions. */ %ignore vdebug; diff -Nru cctools-7.0.22/resource_monitor/test/TR_python_allocations.py cctools-7.1.2/resource_monitor/test/TR_python_allocations.py --- cctools-7.0.22/resource_monitor/test/TR_python_allocations.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/resource_monitor/test/TR_python_allocations.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -#!/bin/sh - -. ../../dttools/test/test_runner_common.sh - -export $(grep CCTOOLS_PYTHON2= ../../config.mk) - -check_needed() -{ - [ -f ../src/bindings/python/_cResourceMonitor.so ] || return 1 - - export PYTHONPATH=$(pwd)/../src/python - ${CCTOOLS_PYTHON2} -c "import ResourceMonitor" || return 1 - - exit 0 -} - - -prepare() -{ - exit 0 -} - -run() -{ - export PYTHONPATH=$(pwd)/../src/python - ${CCTOOLS_PYTHON2} ../src/bindings/python/rmonitor_allocations_example.py -} - -clean() -{ - exit 0 -} - -dispatch "$@" - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/resource_monitor/test/TR_python_monitor.sh cctools-7.1.2/resource_monitor/test/TR_python_monitor.sh --- cctools-7.0.22/resource_monitor/test/TR_python_monitor.sh 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/resource_monitor/test/TR_python_monitor.sh 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,34 @@ +#!/bin/sh + +. ../../dttools/test/test_runner_common.sh + +python=${CCTOOLS_PYTHON_TEST_EXEC} +python_dir=${CCTOOLS_PYTHON_TEST_DIR} + +check_needed() +{ + [ -n "${python}" ] || return 1 + + exit 0 +} + +prepare() +{ + exit 0 +} + +run() +{ + base=../src/bindings/${python_dir} + + PYTHONPATH=${base} ${python} ${base}/example_simple_limit.py +} + +clean() +{ + exit 0 +} + +dispatch "$@" + +# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/rules.mk cctools-7.1.2/rules.mk --- cctools-7.0.22/rules.mk 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/rules.mk 2020-05-05 15:31:15.000000000 +0000 @@ -32,3 +32,5 @@ %: %.c %: %.cc %: %.C + +.PRECIOUS: %.o diff -Nru cctools-7.0.22/run_all_tests.sh cctools-7.1.2/run_all_tests.sh --- cctools-7.0.22/run_all_tests.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/run_all_tests.sh 2020-05-05 15:31:15.000000000 +0000 @@ -24,12 +24,14 @@ echo "[$(date)] Testing on $(uname -a)." > "$CCTOOLS_TEST_LOG" -# we need cctools_python in the path. -PATH="$(pwd)/dttools/src:$PATH" # we need resource_monitor in the path. PATH="$(pwd)/resource_monitor/src:$PATH" export PATH +export CCTOOLS_PYTHON_TEST_EXEC=$(grep "^CCTOOLS_PYTHON_TEST_EXEC=" config.mk | cut -d = -f 2) +export CCTOOLS_PYTHON_TEST_DIR=$(grep "^CCTOOLS_PYTHON_TEST_DIR=" config.mk | cut -d = -f 2) +export CCTOOLS_PERL=$(grep "^CCTOOLS_PERL=" config.mk | cut -d = -f 2) + export PYTHONPATH="$(pwd)/chirp/src/python:$(pwd)/work_queue/src/python:$PYTHONPATH" export PERL5LIB="$(pwd)/chirp/src/perl:$(pwd)/work_queue/src/perl:$PERL5LIB" diff -Nru cctools-7.0.22/s3tools/Makefile cctools-7.1.2/s3tools/Makefile --- cctools-7.0.22/s3tools/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -include ../config.mk -include ../rules.mk - -PHONY_TARGETS ?= src -TARGETS ?= $(PHONY_TARGETS) - -all: $(TARGETS) - -$(TARGETS): - @$(MAKE) -C $@ - -CLEAN_TARGETS = $(TARGETS:%=clean-%) -$(CLEAN_TARGETS): - @$(MAKE) -C $(@:clean-%=%) clean -clean: $(CLEAN_TARGETS) - -INSTALL_TARGETS = $(TARGETS:%=install-%) -$(INSTALL_TARGETS): - @$(MAKE) -C $(@:install-%=%) install -install: $(INSTALL_TARGETS) - -TEST_TARGETS = $(TARGETS:%=test-%) -$(TEST_TARGETS): - @$(MAKE) -C $(@:test-%=%) test -test: $(TEST_TARGETS) - -.PHONY: $(PHONY_TARGETS) $(CLEAN_TARGETS) $(INSTALL_TARGETS) $(TEST_TARGETS) all clean install test diff -Nru cctools-7.0.22/s3tools/src/.gitignore cctools-7.1.2/s3tools/src/.gitignore --- cctools-7.0.22/s3tools/src/.gitignore 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -s3stat -s3setacl -s3mkdir -s3rmdir -s3rm -s3ls -s3get -libs3client.a -s3getacl -s3put diff -Nru cctools-7.0.22/s3tools/src/Makefile cctools-7.1.2/s3tools/src/Makefile --- cctools-7.0.22/s3tools/src/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -include ../../config.mk -include ../../rules.mk - -EXTERNAL_DEPENDENCIES = ../../dttools/src/libdttools.a -LIBRARIES = libs3client.a -OBJECTS = $(SOURCES:%.c=%.o) -PROGRAMS = s3put s3get s3stat s3rm s3mkdir s3rmdir s3ls s3getacl s3setacl -SOURCES = s3c_file.c s3c_acl.c s3c_bucket.c s3c_util.c -TARGETS = $(LIBRARIES) $(PROGRAMS) - -all: $(TARGETS) - -libs3client.a: $(OBJECTS) -$(PROGRAMS): s3common.o $(LIBRARIES) $(EXTERNAL_DEPENDENCIES) - -clean: - rm -f $(OBJECTS) $(TARGETS) - -install: all - -test: all - -.PHONY: all clean install test diff -Nru cctools-7.0.22/s3tools/src/s3c_acl.c cctools-7.1.2/s3tools/src/s3c_acl.c --- cctools-7.0.22/s3tools/src/s3c_acl.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3c_acl.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,277 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include "s3c_acl.h" -#include "s3c_util.h" - -#include - -#include -#include -#include -#include - -#include "hash_table.h" -#include "hmac.h" -#include "link.h" -#include "list.h" - -extern char *s3_endpoint; -extern char *s3_address; -extern int s3_timeout; - -int s3_getacl(char* bucketname, char* filename, char* owner, struct hash_table* acls, const char* access_key_id, const char* access_key) { - struct s3_message mesg; - struct link* server; - time_t stoptime = time(0)+s3_timeout; - char path[HEADER_LINE_MAX]; - char response[HEADER_LINE_MAX]; - char * text; - char * start; - char * temp; - int length; - - if(!s3_endpoint) return -1; - if(filename) sprintf(path, "%s?acl", filename); - else sprintf(path, "/?acl"); - - mesg.type = S3_MESG_GET; - mesg.path = path; - mesg.bucket = bucketname; - mesg.content_type = NULL; - mesg.content_md5 = NULL; - mesg.content_length = 0; - mesg.date = time(0); - mesg.expect = 0; - mesg.amz_headers = NULL; - - //server = link_connect(s3_address, 80, stoptime); - - sign_message(&mesg, access_key_id, access_key); - server = s3_send_message(&mesg, NULL, stoptime); - if(!server) - return -1; - //length = s3_message_to_string(&mesg, &text); - - //link_putlstring(server, text, length, stoptime); - //free(text); - - link_readline(server, response, HEADER_LINE_MAX, stoptime); - if(strcmp(response, "HTTP/1.1 200 OK")) { - // Error: transfer failed; close connection and return failure - //fprintf(stderr, "Error: request file failed\nResponse: %s\n", response); - link_close(server); - return -1; - } - - do { - if(!strncmp(response, "Content-Length:", 14)) sscanf(response, "Content-Length: %d", &length); - if(!strcmp(response, "Transfer-Encoding: chunked")) length = 0; - if(!strcmp(response, "Server: AmazonS3")) break; - } while(link_readline(server, response, HEADER_LINE_MAX, stoptime)); - link_readline(server, response, HEADER_LINE_MAX, stoptime); - - if(length) { - text = malloc(length+1); - link_read(server, text, length, stoptime); - } else { - struct list *buf; - char *temp; - unsigned int clen = 0; - buf = list_create(); - do { - link_readline(server, response, HEADER_LINE_MAX, stoptime); - sscanf(response, "%x", &clen); - //link_readline(server, response, HEADER_LINE_MAX, stoptime); - if(clen) { - text = malloc(clen+1); - link_read(server, text, clen, stoptime); - link_readline(server, response, HEADER_LINE_MAX, stoptime); - list_push_tail(buf, text); - length += clen; - } - } while(clen); - text = malloc(length+1); - text[0] = '\0'; - while((temp = list_pop_head(buf))) { - sprintf(text, "%s%s", text, temp); - free(temp); - } - list_delete(buf); - } - link_close(server); - - if(owner) sscanf(strstr(text, ""), "%[^<]", owner); - temp = text; - while( (start = strstr(temp, "")) ) { - char id[1024]; - char display_name[1024]; - char permission[1024]; - char type; - struct s3_acl_object *acl; - char *end; - - end = strstr(start, ""); - end[7] = '\0'; - temp = end + 8; - - memset(display_name, 0, 1024); - type = S3_ACL_ID; - if( sscanf(start, "]>%[^<]%[^<]%[^<]", id, display_name, permission) != 3 ) { - type = S3_ACL_URI; - sscanf(start, "]>http://acs.amazonaws.com/groups/global/%[^<]%[^<]", id, permission); - } - - if( !(acl = hash_table_lookup(acls, id)) ) { - acl = malloc(sizeof(*acl)); - acl->acl_type = type; - if(*display_name) acl->display_name = strdup(display_name); - else acl->display_name = NULL; - acl->perm = 0; - hash_table_insert(acls, id, acl); - } - - if(!strcmp(permission, "FULL_CONTROL")) { - acl->perm = acl->perm | S3_ACL_FULL_CONTROL; - } else if(!strcmp(permission, "READ")) { - acl->perm = acl->perm | S3_ACL_READ; - } else if(!strcmp(permission, "WRITE")) { - acl->perm = acl->perm | S3_ACL_WRITE; - } else if(!strcmp(permission, "READ_ACP")) { - acl->perm = acl->perm | S3_ACL_READ_ACP; - } else if(!strcmp(permission, "WRITE_ACP")) { - acl->perm = acl->perm | S3_ACL_WRITE_ACP; - } - } - - free(text); - return 0; -} - -// NOT IMPLEMENTED YET -int s3_setacl(char* bucketname, char *filename, const char* owner, struct hash_table* acls, const char* access_key_id, const char* access_key) { - struct s3_message mesg; - struct link* server; - time_t stoptime = time(0)+s3_timeout; - char path[HEADER_LINE_MAX]; - char response[HEADER_LINE_MAX]; - //char * text; - //int length; - char *id; - struct s3_acl_object *acl; - - if(!s3_endpoint) return -1; - if(filename) sprintf(path, "%s?acl", filename); - else - sprintf(path, "/?acl"); - - - mesg.content_length = 39 + 32 + strlen(owner) + 32; - hash_table_firstkey(acls); - while(hash_table_nextkey(acls, &id, (void**)&acl)) { - int glength; - - switch(acl->acl_type) { - case S3_ACL_URI: - glength = 140+strlen(id); - break; - case S3_ACL_EMAIL: - glength = 135+strlen(id); - break; - default: - glength = 107+strlen(id); - } - - if(acl->perm & S3_ACL_FULL_CONTROL) mesg.content_length += 40 + glength + 12; - if(acl->perm & S3_ACL_READ) mesg.content_length += 40 + glength + 4; - if(acl->perm & S3_ACL_WRITE) mesg.content_length += 40 + glength + 5; - if(acl->perm & S3_ACL_READ_ACP) mesg.content_length += 40 + glength + 8; - if(acl->perm & S3_ACL_WRITE_ACP) mesg.content_length += 40 + glength + 9; - } - mesg.content_length += 43; - - mesg.type = S3_MESG_PUT; - mesg.path = path; - mesg.bucket = bucketname; - mesg.content_type = NULL; - mesg.content_md5 = NULL; - mesg.date = time(0); - mesg.expect = 0; - mesg.amz_headers = NULL; - - //server = link_connect(s3_address, 80, stoptime); - - sign_message(&mesg, access_key_id, access_key); - server = s3_send_message(&mesg, NULL, stoptime); - if(!server) - return -1; - - //length = s3_message_to_string(&mesg, &text); - - //fprintf(stderr, "Message:\n%s\n", text); - //link_putlstring(server, text, length, stoptime); - //free(text); - - link_putliteral(server, "\n", stoptime); - link_putliteral(server, "", stoptime); - link_putstring(server, owner, stoptime); - link_putliteral(server, "", stoptime); - - hash_table_firstkey(acls); - while(hash_table_nextkey(acls, &id, (void**)&acl)) { - char grantee[HEADER_LINE_MAX]; - - switch(acl->acl_type) { - case S3_ACL_URI: - sprintf(grantee, "http://acs.amazonaws.com/groups/global/%s", id); - break; - case S3_ACL_EMAIL: - sprintf(grantee, "%s", id); - break; - default: - sprintf(grantee, "%s", id); - } - - if(acl->perm & S3_ACL_FULL_CONTROL) { - link_putfstring(server, "%sFULL_CONTROL", stoptime, grantee); - } - if(acl->perm & S3_ACL_READ) { - link_putfstring(server, "%sREAD", stoptime, grantee); - } - if(acl->perm & S3_ACL_WRITE) { - link_putfstring(server, "%sWRITE", stoptime, grantee); - } - if(acl->perm & S3_ACL_READ_ACP) { - link_putfstring(server, "%sREAD_ACP", stoptime, grantee); - } - if(acl->perm & S3_ACL_WRITE_ACP) { - link_putfstring(server, "%sWRITE_ACP", stoptime, grantee); - } - } - - link_putliteral(server, "\n", stoptime); - - link_readline(server, response, HEADER_LINE_MAX, stoptime); - if(strcmp(response, "HTTP/1.1 200 OK")) { - // Error: transfer failed; close connection and return failure - fprintf(stderr, "Error: send file failed\nResponse: %s\n", response); - link_close(server); - return -1; - } - -// fprintf(stderr, "Response:\n"); - do { -// fprintf(stderr, "\t%s\n", response); - if(!strcmp(response, "Server: AmazonS3")) break; - } while(link_readline(server, response, HEADER_LINE_MAX, stoptime)); - - link_close(server); - - return 0; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/s3tools/src/s3c_acl.h cctools-7.1.2/s3tools/src/s3c_acl.h --- cctools-7.0.22/s3tools/src/s3c_acl.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3c_acl.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#ifndef S3C_ACL_H_ -#define S3C_ACL_H_ - -#include -#include - -#define S3_ACL_URI 1 -#define S3_ACL_ID 2 -#define S3_ACL_EMAIL 3 - -#define S3_ACL_FULL_CONTROL 0x01 -#define S3_ACL_READ 0x02 -#define S3_ACL_WRITE 0x04 -#define S3_ACL_READ_ACP 0x08 -#define S3_ACL_WRITE_ACP 0x10 - - -struct s3_acl_object { - char acl_type; - char* display_name; - char perm; -}; - -int s3_getacl(char* bucketname, char* filename, char *owner, struct hash_table* acls, const char* access_key_id, const char* access_key); -int s3_setacl(char* bucketname, char* filename, const char* owner, struct hash_table* acls, const char* access_key_id, const char* access_key); - -#endif diff -Nru cctools-7.0.22/s3tools/src/s3c_bucket.c cctools-7.1.2/s3tools/src/s3c_bucket.c --- cctools-7.0.22/s3tools/src/s3c_bucket.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3c_bucket.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,223 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#include -#include -#include -#include -#include - -#include "s3c_bucket.h" -#include "s3c_file.h" -#include "s3c_util.h" - -extern char *s3_endpoint; -extern char *s3_address; -extern int s3_timeout; - -int s3_mk_bucket(char* bucketname, enum amz_base_perm perms, const char* access_key_id, const char* access_key) { - struct link* server; - char path[] = "/"; - struct s3_header_object *head; - time_t stoptime = time(0)+s3_timeout; - struct s3_message mesg; - char response[HEADER_LINE_MAX]; - - if(!access_key_id || !access_key || !s3_endpoint) return -1; - - mesg.type = S3_MESG_PUT; - mesg.path = path; - mesg.bucket = bucketname; - mesg.content_length = 0; - mesg.content_type = NULL; - mesg.content_md5 = NULL; - mesg.date = time(0); - mesg.expect = 0; - - switch(perms) { - case AMZ_PERM_PRIVATE: head = s3_new_header_object(S3_HEADER_AMZ_ACL, NULL, "private"); break; - case AMZ_PERM_PUBLIC_READ: head = s3_new_header_object(S3_HEADER_AMZ_ACL, NULL, "public-read"); break; - case AMZ_PERM_PUBLIC_WRITE: head = s3_new_header_object(S3_HEADER_AMZ_ACL, NULL, "public-read-write"); break; - case AMZ_PERM_AUTH_READ: head = s3_new_header_object(S3_HEADER_AMZ_ACL, NULL, "authenticated-read"); break; - case AMZ_PERM_BUCKET_READ: head = s3_new_header_object(S3_HEADER_AMZ_ACL, NULL, "bucket-owner-read"); break; - case AMZ_PERM_BUCKET_FULL: head = s3_new_header_object(S3_HEADER_AMZ_ACL, NULL, "bucket-owner-full-control"); break; - default: return -1; - } - mesg.amz_headers = list_create(); - list_push_tail(mesg.amz_headers, head); - - - sign_message(&mesg, access_key_id, access_key); - server = s3_send_message(&mesg, NULL, stoptime); - list_free(mesg.amz_headers); - list_delete(mesg.amz_headers); - - if(!server) - return -1; - - link_readline(server, response, HEADER_LINE_MAX, stoptime); - if(strcmp(response, "HTTP/1.1 200 OK")) { - // Error: transfer failed; close connection and return failure - //fprintf(stderr, "Error: create bucket failed\nResponse: %s\n", response); - link_close(server); - return -1; - } - - do { - if(!strcmp(response, "Server: AmazonS3")) break; - } while(link_readline(server, response, HEADER_LINE_MAX, stoptime)); - - link_close(server); - return 0; -} - -int s3_rm_bucket(char* bucketname, const char* access_key_id, const char* access_key) { - struct s3_message mesg; - struct link* server; - time_t stoptime = time(0)+s3_timeout; - char response[HEADER_LINE_MAX]; - char path[] = "/"; - - if(!access_key_id || !access_key || !s3_endpoint) return -1; - - mesg.type = S3_MESG_DELETE; - mesg.path = path; - mesg.bucket = bucketname; - mesg.content_type = NULL; - mesg.content_md5 = NULL; - mesg.content_length = 0; - mesg.date = time(0); - mesg.expect = 0; - mesg.amz_headers = NULL; - - sign_message(&mesg, access_key_id, access_key); - server = s3_send_message(&mesg, NULL, stoptime); - if(!server) return -1; - - link_readline(server, response, HEADER_LINE_MAX, stoptime); - if(strcmp(response, "HTTP/1.1 204 No Content")) { - // Error: transfer failed; close connection and return failure - //fprintf(stderr, "Error: delete bucket failed\nResponse: %s\n", response); - link_close(server); - return -1; - } - - do { - if(!strcmp(response, "Server: AmazonS3")) break; - } while(link_readline(server, response, HEADER_LINE_MAX, stoptime)); - - link_close(server); - return 0; -} - -int s3_ls_bucket(char* bucketname, struct list* dirents, const char* access_key_id, const char* access_key) { - struct s3_message mesg; - struct link* server = NULL; - time_t stoptime = time(0)+s3_timeout; - char response[HEADER_LINE_MAX]; - char path[HEADER_LINE_MAX]; - int length; - char done = 0; - - if(!access_key_id || !access_key || !s3_endpoint) return -1; - - sprintf(path, "/"); - mesg.type = S3_MESG_GET; - mesg.path = path; - mesg.bucket = bucketname; - mesg.content_type = NULL; - mesg.content_md5 = NULL; - mesg.content_length = 0; - mesg.date = time(0); - mesg.expect = 0; - mesg.amz_headers = NULL; - - do { - char *buffer, *temp, *start, *end; - char trunc[25]; - int keys; - sign_message(&mesg, access_key_id, access_key); - - server = s3_send_message(&mesg, server, stoptime); - if(!server) - return -1; - - link_readline(server, response, HEADER_LINE_MAX, stoptime); - - if(strcmp(response, "HTTP/1.1 200 OK")) { - // Error: transfer failed; close connection and return failure - fprintf(stderr, "Error: list bucket failed\nResponse: %s\n", response); - link_close(server); - return -1; - } - - length = 0; - do { - if(!strncmp(response, "Content-Length:", 14)) sscanf(response, "Content-Length: %d", &length); - if(!strcmp(response, "Transfer-Encoding: chunked")) length = 0; - if(!strcmp(response, "Server: AmazonS3")) break; - } while(link_readline(server, response, HEADER_LINE_MAX, stoptime)); - link_readline(server, response, HEADER_LINE_MAX, stoptime); - - if(length) { - buffer = malloc(length+1); - link_read(server, buffer, length, stoptime); - } else { - struct list *buf; - unsigned int clen = 0; - buf = list_create(); - do { - link_readline(server, response, HEADER_LINE_MAX, stoptime); - sscanf(response, "%x", &clen); - //link_readline(server, response, HEADER_LINE_MAX, stoptime); - if(clen) { - buffer = malloc(clen+1); - link_read(server, buffer, clen, stoptime); - link_readline(server, response, HEADER_LINE_MAX, stoptime); - list_push_tail(buf, buffer); - length += clen; - } - } while(clen); - buffer = malloc(length+1); - buffer[0] = '\0'; - while((temp = list_pop_head(buf))) { - sprintf(buffer, "%s%s", buffer, temp); - free(temp); - } - list_delete(buf); - } - - sscanf(buffer, "\r\n%*[^<]%d%[^<]", &keys, trunc); - if(!strcmp(trunc, "false")) done = 1; - temp = buffer; - while( (start = strstr(temp, "")) ) { - struct s3_dirent_object *dirent; - struct tm date; - char display_name[1024]; - end = strstr(start, ""); - end[10] = '\0'; - temp = end + 11; - dirent = malloc(sizeof(*dirent)); - date.tm_isdst = -1; - sscanf(strstr(start, ""), "%[^<]", dirent->key); - sscanf(strstr(start, ""), "%d-%d-%dT%d:%d:%d.%*dZ", &date.tm_year, &date.tm_mon, &date.tm_mday, &date.tm_hour, &date.tm_min, &date.tm_sec); - sscanf(strstr(start, ""), ""%[^&]"", dirent->digest); - sscanf(strstr(start, ""), "%d", &dirent->size); - sscanf(strstr(start, ""), "%*[^<]%[^<]", display_name); - if(strlen(display_name)) dirent->display_name = strdup(display_name); - date.tm_mon -= 1; - dirent->last_modified = mktime(&date); - list_push_tail(dirents, dirent); - } - free(buffer); - - } while(!done); - - link_close(server); - return 0; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/s3tools/src/s3c_bucket.h cctools-7.1.2/s3tools/src/s3c_bucket.h --- cctools-7.0.22/s3tools/src/s3c_bucket.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3c_bucket.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#ifndef S3C_BUCKET_H_ -#define S3C_BUCKET_H_ - -#include -#include "s3c_util.h" -#include "s3c_file.h" - - -int s3_mk_bucket(char* bucketname, enum amz_base_perm perms, const char* access_key_id, const char* access_key); -int s3_rm_bucket(char* bucketname, const char* access_key_id, const char* access_key); -int s3_ls_bucket(char* bucketname, struct list* dirent, const char* access_key_id, const char* access_key); - -#endif diff -Nru cctools-7.0.22/s3tools/src/s3c_file.c cctools-7.1.2/s3tools/src/s3c_file.c --- cctools-7.0.22/s3tools/src/s3c_file.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3c_file.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,305 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#include -#include -#include -#include -#include -#include - -#include "s3c_util.h" -#include "s3c_file.h" - -extern char *s3_endpoint; -extern char *s3_address; -extern int s3_timeout; - - -int s3_put_file(const char* localname, char* remotename, char* bucketname, enum amz_base_perm perms, const char* access_key_id, const char* access_key) { - struct link* server; - struct s3_header_object *head; - time_t stoptime = time(0)+s3_timeout; - struct s3_message mesg; - struct stat st; - FILE* infile; - char response[HEADER_LINE_MAX]; - //char * text; - //int length; - - if(!access_key_id || !access_key || !s3_endpoint) return -1; - - if(stat(localname, &st)) return -1; - - mesg.type = S3_MESG_PUT; - mesg.path = remotename; - mesg.bucket = bucketname; - mesg.content_type = NULL; - mesg.content_md5 = NULL; - mesg.content_length = st.st_size; - mesg.date = time(0); - mesg.expect = 1; - mesg.amz_headers = NULL; - - switch(perms) { - case AMZ_PERM_PRIVATE: head = s3_new_header_object(S3_HEADER_AMZ_ACL, NULL, "private"); break; - case AMZ_PERM_PUBLIC_READ: head = s3_new_header_object(S3_HEADER_AMZ_ACL, NULL, "public-read"); break; - case AMZ_PERM_PUBLIC_WRITE: head = s3_new_header_object(S3_HEADER_AMZ_ACL, NULL, "public-read-write"); break; - case AMZ_PERM_AUTH_READ: head = s3_new_header_object(S3_HEADER_AMZ_ACL, NULL, "authenticated-read"); break; - case AMZ_PERM_BUCKET_READ: head = s3_new_header_object(S3_HEADER_AMZ_ACL, NULL, "bucket-owner-read"); break; - case AMZ_PERM_BUCKET_FULL: head = s3_new_header_object(S3_HEADER_AMZ_ACL, NULL, "bucket-owner-full-control"); break; - default: return -1; - } - - mesg.amz_headers = list_create(); - if(!mesg.amz_headers) return -1; - list_push_tail(mesg.amz_headers, head); - - sign_message(&mesg, access_key_id, access_key); - server = s3_send_message(&mesg, NULL, stoptime); - //length = s3_message_to_string(&mesg, &text); - list_free(mesg.amz_headers); - list_delete(mesg.amz_headers); - - if(!server) - return -1; - - //server = link_connect(s3_address, 80, stoptime); - //if(!server) return -1; - - //link_putlstring(server, text, length, stoptime); - //free(text); - - link_readline(server, response, HEADER_LINE_MAX, stoptime); - if(strcmp(response, "HTTP/1.1 100 Continue")) { - // Error: Invalid Headers; close connection and return failure - link_close(server); - return -1; - } - link_readline(server, response, HEADER_LINE_MAX, stoptime); - - infile = fopen(localname, "r"); - link_stream_from_file(server, infile, mesg.content_length, stoptime); - fclose(infile); - - link_readline(server, response, HEADER_LINE_MAX, stoptime); - if(strcmp(response, "HTTP/1.1 200 OK")) { - // Error: transfer failed; close connection and return failure - //fprintf(stderr, "Error: send file failed\nResponse: %s\n", response); - link_close(server); - return -1; - } - - do { - if(!strcmp(response, "Server: AmazonS3")) break; - } while(link_readline(server, response, HEADER_LINE_MAX, stoptime)); - - link_close(server); - - return 0; -} - -int s3_get_file(const char* localname, struct s3_dirent_object *dirent, char* remotename, char* bucketname, const char* access_key_id, const char* access_key) { - struct s3_message mesg; - struct link* server; - time_t stoptime = time(0)+s3_timeout; - char response[HEADER_LINE_MAX]; - //char * text; - int length; - FILE* outfile; - - if(!access_key_id || !access_key || !s3_endpoint) return -1; - - mesg.type = S3_MESG_GET; - mesg.path = remotename; - mesg.bucket = bucketname; - mesg.content_type = NULL; - mesg.content_md5 = NULL; - mesg.content_length = 0; - mesg.date = time(0); - mesg.expect = 0; - mesg.amz_headers = NULL; - - //server = link_connect(s3_address, 80, stoptime); - - sign_message(&mesg, access_key_id, access_key); - server = s3_send_message(&mesg, NULL, stoptime); - if(!server) - return -1; - - //length = s3_message_to_string(&mesg, &text); - - //link_putlstring(server, text, length, stoptime); - //free(text); - - link_readline(server, response, HEADER_LINE_MAX, stoptime); - if(strcmp(response, "HTTP/1.1 200 OK")) { - // Error: transfer failed; close connection and return failure - //fprintf(stderr, "Error: request file failed\nResponse: %s\n", response); - link_close(server); - return -1; - } - - do { - if(!strncmp(response, "Content-Length:", 14)) { - sscanf(response, "Content-Length: %d", &length); - } else if(dirent && dirent->metadata && !strncmp(response, "x-amz-meta-", 11)) { - struct amz_metadata_object *obj; - obj = malloc(sizeof(*obj)); - sscanf(response, "x-amz-meta-%[^:]: %s", obj->type, obj->value); - list_push_tail(dirent->metadata, obj); - } else if(dirent && !strncmp(response, "Last-Modified:", 14)) { - struct tm date; - char date_str[1024]; - sscanf(response, "Last-Modified: %s", date_str); - strptime(date_str, "%a, %d %b %Y %H:%M:%S %Z", &date); - date.tm_isdst = -1; - dirent->last_modified = mktime(&date); - } else if(dirent && !strncmp(response, "ETag:", 5)) { - sscanf(response, "ETag: \"%[^\"]\"", dirent->digest); - } - - if(!strcmp(response, "Server: AmazonS3")) break; - } while(link_readline(server, response, HEADER_LINE_MAX, stoptime)); - - if(dirent) { - dirent->size = length; - sprintf(dirent->key, "%s", remotename); - } - - link_readline(server, response, HEADER_LINE_MAX, stoptime); - outfile = fopen(localname, "w"); - if(!outfile) { - //fprintf(stderr, "error opening destination file\n"); - link_close(server); - return -1; - } - link_stream_to_file(server, outfile, length, stoptime); - fclose(outfile); - - link_close(server); - return 0; -} - -int s3_rm_file(char* filename, char* bucketname, const char* access_key_id, const char* access_key) { - struct s3_message mesg; - struct link* server; - time_t stoptime = time(0)+s3_timeout; - char response[HEADER_LINE_MAX]; - //char * text; - //int length; - - if(!access_key_id || !access_key || !s3_endpoint) return -1; - - mesg.type = S3_MESG_DELETE; - mesg.path = filename; - mesg.bucket = bucketname; - mesg.content_type = NULL; - mesg.content_md5 = NULL; - mesg.content_length = 0; - mesg.date = time(0); - mesg.expect = 0; - mesg.amz_headers = NULL; - - //server = link_connect(s3_address, 80, stoptime); - - sign_message(&mesg, access_key_id, access_key); - server = s3_send_message(&mesg, NULL, stoptime); - if(!server) - return -1; - - //length = s3_message_to_string(&mesg, &text); - - //link_putlstring(server, text, length, stoptime); - //free(text); - - link_readline(server, response, HEADER_LINE_MAX, stoptime); - if(strcmp(response, "HTTP/1.1 204 No Content")) { - // Error: transfer failed; close connection and return failure - //fprintf(stderr, "Error: delete file failed\nResponse: %s\n", response); - link_close(server); - return -1; - } - - //fprintf(stderr, "Response:\n"); - do { - // fprintf(stderr, "\t%s\n", response); - if(!strcmp(response, "Server: AmazonS3")) break; - } while(link_readline(server, response, HEADER_LINE_MAX, stoptime)); - - link_close(server); - return 0; -} - -int s3_stat_file(char* filename, char* bucketname, struct s3_dirent_object* dirent, const char* access_key_id, const char* access_key) { - struct s3_message mesg; - struct link* server; - time_t stoptime = time(0)+s3_timeout; - char response[HEADER_LINE_MAX]; - //char * text; - int length; - - if(!access_key_id || !access_key || !s3_endpoint) return -1; - - mesg.type = S3_MESG_HEAD; - mesg.path = filename; - mesg.bucket = bucketname; - mesg.content_type = NULL; - mesg.content_md5 = NULL; - mesg.content_length = 0; - mesg.date = time(0); - mesg.expect = 0; - mesg.amz_headers = NULL; - - //server = link_connect(s3_address, 80, stoptime); - - sign_message(&mesg, access_key_id, access_key); - server = s3_send_message(&mesg, NULL, stoptime); - if(!server) - return -1; - - //length = s3_message_to_string(&mesg, &text); - - //link_putlstring(server, text, length, stoptime); - //free(text); - - link_readline(server, response, HEADER_LINE_MAX, stoptime); - if(strcmp(response, "HTTP/1.1 200 OK")) { - // Error: transfer failed; close connection and return failure - //fprintf(stderr, "Error: request file failed\nResponse: %s\n", response); - link_close(server); - return -1; - } - - do { - if(!strncmp(response, "Content-Length:", 14)) { - sscanf(response, "Content-Length: %d", &length); - } else if(dirent->metadata && !strncmp(response, "x-amz-meta-", 11)) { - struct amz_metadata_object *obj; - obj = malloc(sizeof(*obj)); - sscanf(response, "x-amz-meta-%[^:]: %s", obj->type, obj->value); - list_push_tail(dirent->metadata, obj); - } else if(!strncmp(response, "Last-Modified:", 14)) { - struct tm date; - char date_str[1024]; - sscanf(response, "Last-Modified: %s", date_str); - strptime(date_str, "%a, %d %b %Y %H:%M:%S %Z", &date); - date.tm_isdst = -1; - dirent->last_modified = mktime(&date); - } else if(!strncmp(response, "ETag:", 5)) { - sscanf(response, "ETag: \"%[^\"]\"", dirent->digest); - } - - if(!strcmp(response, "Server: AmazonS3")) break; - } while(link_readline(server, response, HEADER_LINE_MAX, stoptime)); - dirent->size = length; - sprintf(dirent->key, "%s", filename); - - link_close(server); - return 0; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/s3tools/src/s3c_file.h cctools-7.1.2/s3tools/src/s3c_file.h --- cctools-7.0.22/s3tools/src/s3c_file.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3c_file.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#ifndef S3_FILE_H_ -#define S3_FILE_H_ - -#include -#include -#include -#include "s3c_util.h" - -#define ACCESS_KEY_ID_LENGTH 21 -#define ACCESS_KEY_LENGTH 41 -#define AWS_CANONICAL_ID_LENGTH 65 -#define MAX_KEY_LENGTH 1024 - -int s3_put_file(const char* localname, char* remotename, char* bucketname, enum amz_base_perm perms, const char* access_key_id, const char* access_key); -int s3_get_file(const char* localname, struct s3_dirent_object *dirent, char* remotename, char* bucketname, const char* access_key_id, const char* access_key); -int s3_rm_file(char* filename, char* bucketname, const char* access_key_id, const char* access_key); -int s3_stat_file(char* filename, char* bucketname, struct s3_dirent_object *dirent, const char* access_key_id, const char* access_key); - -#endif diff -Nru cctools-7.0.22/s3tools/src/s3client.h cctools-7.1.2/s3tools/src/s3client.h --- cctools-7.0.22/s3tools/src/s3client.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3client.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ -#ifndef S3_CLIENT_H_ -#define S3_CLIENT_H_ - -#include -#include -#include -#include -#include - -#define ACCESS_KEY_ID_LENGTH 21 -#define ACCESS_KEY_LENGTH 41 -#define AWS_CANONICAL_ID_LENGTH 65 -#define MAX_KEY_LENGTH 1024 - -#define S3_ACL_URI 1 -#define S3_ACL_ID 2 -#define S3_ACL_EMAIL 3 - -#define S3_ACL_FULL_CONTROL 0x01 -#define S3_ACL_READ 0x02 -#define S3_ACL_WRITE 0x04 -#define S3_ACL_READ_ACP 0x08 -#define S3_ACL_WRITE_ACP 0x10 - -enum amz_header_type { - AMZ_CUSTOM_HEADER, - AMZ_HEADER_ACL, - AMZ_HEADER_MFA -}; - -enum amz_base_perm { - AMZ_PERM_PRIVATE, - AMZ_PERM_PUBLIC_READ, - AMZ_PERM_PUBLIC_WRITE, - AMZ_PERM_AUTH_READ, - AMZ_PERM_BUCKET_READ, - AMZ_PERM_BUCKET_FULL -}; - -struct amz_header_object { - int type; - char *custom_type; - char *value; -}; - -struct s3_acl_object { - char acl_type; - char* display_name; - char perm; -}; - -struct amz_metadata_object { - char type[MAX_KEY_LENGTH]; - char value[MAX_KEY_LENGTH]; -}; - -struct s3_dirent_object { - char key[MAX_KEY_LENGTH]; - time_t last_modified; - char digest[MD5_DIGEST_LENGTH]; - int size; - char owner[AWS_CANONICAL_ID_LENGTH]; - char* display_name; - struct list *metadata; -}; - -int s3_set_endpoint(const char *target); - -int s3_mk_bucket(char* bucketname, enum amz_base_perm perms, const char* access_key_id, const char* access_key); -int s3_rm_bucket(char* bucketname, const char* access_key_id, const char* access_key); -int s3_ls_bucket(char* bucketname, struct list* dirent, const char* access_key_id, const char* access_key); - - -int s3_getacl(char* bucketname, char* filename, char *owner, struct hash_table* acls, const char* access_key_id, const char* access_key); -int s3_setacl(char* bucketname, char* filename, const char* owner, struct hash_table* acls, const char* access_key_id, const char* access_key); - - -int s3_put_file(const char* localname, char* remotename, char* bucketname, enum amz_base_perm perms, const char* access_key_id, const char* access_key); -int s3_get_file(const char* localname, struct s3_dirent_object *dirent, char* remotename, char* bucketname, const char* access_key_id, const char* access_key); -int s3_rm_file(char* filename, char* bucketname, const char* access_key_id, const char* access_key); -int s3_stat_file(char* filename, char* bucketname, struct s3_dirent_object *dirent, const char* access_key_id, const char* access_key); - - -#endif diff -Nru cctools-7.0.22/s3tools/src/s3common.c cctools-7.1.2/s3tools/src/s3common.c --- cctools-7.0.22/s3tools/src/s3common.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3common.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,172 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#include -#include -#include -#include -#include -#include -#include "s3common.h" -#include "s3c_util.h" - - -char *userid = NULL; -char *key = NULL; - -inline const char* s3_userid() { return userid; } -inline const char* s3_key() { return key; } - -int process_userpass(char *userpass, char **username, char **password) { - int nargs; - char **args; - - if(string_split(userpass,&nargs,&args)) { - if(!*username) *username = strdup(args[0]); - if(!*password) *password = strdup(args[1]); - free(args); - return 0; - } - return -1; -} - -int process_configfile(char *configfile, char **username, char **password) { - char *userpass; - struct stat st_buf; - FILE* config; - - if(stat(configfile, &st_buf)) return -1; - userpass = malloc(sizeof(*userpass) * st_buf.st_size); - config = fopen(configfile, "r"); - fread(userpass, st_buf.st_size, 1, config); - fclose(config); - - return process_userpass(userpass, username, password); - -} - -void s3_initialize(int* argc, char** argv) { - int i, mod, result, prompt = 0; - char *username = NULL, *password = NULL, *configfile = NULL, *endpoint = NULL; - char **argv2; - - for(i = 0; i < *argc; i++) { - if(argv[i][0] == '-') { - switch(argv[i][1]) { - case 'e': - endpoint = argv[i+1]; - i++; - break; - case 'u': - if(username) free(username); - username = argv[i+1]; - i++; - break; - case 'P': - if(password) free(password); - password = argv[i+1]; - i++; - break; - case 'p': - prompt = 1; - break; - case 'c': - if(configfile) free(configfile); - configfile = argv[i+1]; - i++; - break; - case 'd': - // debug = 1; - break; - default: - continue; - } - } - } - - mod = 0; - - argv2 = malloc(*argc * sizeof(*argv2)); - for(i = 0; i < *argc; i++) { - if(argv[i][0] == '-') { - char c = argv[i][1]; - if(c == 'u' || c == 'P' || c == 'c') { i++; continue; } - else if(c == 'p' || c == 'd') { continue; } - } - argv2[mod++] = argv[i]; - } - for(i = 0; i < mod; i++) argv[i] = argv2[i]; - free(argv2); - - *argc = mod; - - - if(!username || !password) { - char* env = NULL; - env = getenv("S3_USER_KEY"); - - if(prompt) { - if(!username) { - username = malloc(1024); - password = malloc(1024); - if(!username || !password) exit(-1); - console_login( "s3", username, 1024, password, 1024 ); - } else { - password = malloc(1024); - if(!password) exit(-1); - console_input( "password:", password, 1024 ); - } - - } else if(env) process_userpass(env, &username, &password); - else if(configfile) process_configfile(configfile, &username, &password); - else { - char default_configfile[2048]; - sprintf(default_configfile, "%s/%s", getenv("HOME"), DEFAULT_CONFIGFILE_NAME); - process_configfile(default_configfile, &username, &password); - } - } - - result = s3_register_userid(username, password); - if(result < 0) { - fprintf(stderr, "Error: no username or password specified\n"); - exit(result); - } - - if(endpoint || (endpoint = getenv("S3_ENDPOINT"))) { - s3_set_endpoint(endpoint); - } -} - - -int s3_register_userid(const char *new_userid, const char* new_key) { - if(!new_userid || !new_key) return -1; - - s3_clear_userid(); - userid = strdup(new_userid); - key = strdup(new_key); - - if(userid && key) return 0; - - s3_clear_userid(); - return -1; -} - -void s3_clear_userid() { - if(userid) { - int length = strlen(userid); - memset(userid, 0, length); - free(userid); - userid = NULL; - } - if(key) { - int length = strlen(key); - memset(key, 0, length); - free(key); - key = NULL; - } -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/s3tools/src/s3common.h cctools-7.1.2/s3tools/src/s3common.h --- cctools-7.0.22/s3tools/src/s3common.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3common.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#ifndef S3COMMON_H_ -#define S3COMMON_H_ - -#define DEFAULT_CONFIGFILE_NAME ".s3tools.conf" - -const char* s3_userid(); -const char* s3_key(); - -void s3_initialize(int* argc, char** argv); -int s3_register_userid(const char *userid, const char* key); -void s3_clear_userid(); - - - -#endif diff -Nru cctools-7.0.22/s3tools/src/s3c_util.c cctools-7.1.2/s3tools/src/s3c_util.c --- cctools-7.0.22/s3tools/src/s3c_util.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3c_util.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,389 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include "s3c_util.h" - -#include "b64.h" -#include "buffer.h" -#include "debug.h" -#include "domain_name_cache.h" -#include "hmac.h" -#include "link.h" -#include "list.h" - -#include -#include -#include -#include -#include -#include - -char s3_default_endpoint[] = "s3.amazonaws.com"; -char *s3_endpoint = s3_default_endpoint; -int s3_timeout = 60; - - -int s3_set_endpoint(const char *target) { - static char endpoint_address[DOMAIN_NAME_MAX]; - - if(!target) return 0; - if(!domain_name_cache_lookup(target, endpoint_address)) return 0; - - if(s3_endpoint && s3_endpoint != s3_default_endpoint) free(s3_endpoint); - s3_endpoint = strdup(target); - return 1; -} - -struct s3_header_object* s3_new_header_object(enum s3_header_type type, const char* custom_type, const char* value) { - struct s3_header_object *obj; - obj = malloc(sizeof(*obj)); - obj->type = type; - if(type == S3_HEADER_CUSTOM ) { - obj->custom_type = strdup(custom_type); - } else obj->custom_type = NULL; - - obj->value = strdup(value); - return obj; -} - - -const char * s3_get_header_string(enum s3_header_type type, const char* custom_type) { - static const char x_amz_acl[] = "x-amz-acl"; - static const char x_amz_mfa[] = "x-amz-mfa"; - - switch(type) { - case S3_HEADER_AMZ_ACL: - return x_amz_acl; - case S3_HEADER_AMZ_MFA: - return x_amz_mfa; - default: - return custom_type; - } -} - -int s3_header_object_comp(const void *a, const void *b) { - const struct s3_header_object *one, *two; - const char *header1, *header2; - int result; - one = (struct s3_header_object *)a; - two = (struct s3_header_object *)b; - - header1 = s3_get_header_string(one->type, one->custom_type); - header2 = s3_get_header_string(two->type, two->custom_type); - - result = strcmp(header1, header2); - if(result) return result; - return strcmp(one->value, two->value); -} - -int sign_message(struct s3_message* mesg, const char* user, const char * key) { - int sign_str_len = 0; - char *sign_str; - char date[1024]; - struct s3_header_object *amz; - struct list *amz_headers; - char digest[SHA1_DIGEST_LENGTH]; - int result; - memset(digest, 0, SHA1_DIGEST_LENGTH); - - switch(mesg->type) { - case S3_MESG_GET: - sign_str_len += 4; - break; - case S3_MESG_POST: - sign_str_len += 5; - break; - case S3_MESG_PUT: - sign_str_len += 4; - break; - case S3_MESG_DELETE: - sign_str_len += 7; - break; - case S3_MESG_HEAD: - sign_str_len += 5; - break; - case S3_MESG_COPY: - sign_str_len += 4; - break; - default: - return -1; - } - - if(mesg->content_md5) sign_str_len += strlen(mesg->content_md5); - sign_str_len += 1; - if(mesg->content_type) sign_str_len += strlen(mesg->content_type); - sign_str_len += 1; - - strftime(date, 1024, "%a, %d %b %Y %H:%M:%S %Z", gmtime(&mesg->date)); - sign_str_len += strlen(date) + 1; - - if(mesg->amz_headers) { - list_first_item(mesg->amz_headers); - while( (amz = (struct s3_header_object *)list_next_item(mesg->amz_headers)) ) { - if(amz->type < S3_HEADER_CUSTOM) continue; - switch(amz->type) { - case S3_HEADER_CUSTOM: - if(!amz->custom_type) return -1; - sign_str_len += strlen(amz->custom_type) + 1; - break; - default: - sign_str_len += strlen(s3_get_header_string(amz->type, amz->custom_type)) + 1; - break; - } - if(!amz->value) return -1; - sign_str_len += strlen(amz->value) + 1; - } - } - if(!mesg->bucket || !mesg->path) { - return -1; - } - sign_str_len += 1 + strlen(mesg->bucket) + 1 + strlen(mesg->path) + 1; - - sign_str = malloc(sign_str_len); - if(!sign_str) return -1; - memset(sign_str, 0, sign_str_len); - - switch(mesg->type) { - case S3_MESG_GET: - sprintf(sign_str, "GET\n"); - break; - case S3_MESG_POST: - sprintf(sign_str, "POST\n"); - break; - case S3_MESG_PUT: - sprintf(sign_str, "PUT\n"); - break; - case S3_MESG_DELETE: - sprintf(sign_str, "DELETE\n"); - break; - case S3_MESG_HEAD: - sprintf(sign_str, "HEAD\n"); - break; - case S3_MESG_COPY: - sprintf(sign_str, "PUT\n"); - break; - } - - if(mesg->content_md5) sprintf(sign_str, "%s%s\n", sign_str,mesg->content_md5); - else sprintf(sign_str, "%s\n", sign_str); - if(mesg->content_type) sprintf(sign_str, "%s%s\n", sign_str, mesg->content_type); - else sprintf(sign_str, "%s\n", sign_str); - sprintf(sign_str, "%s%s", sign_str, date); - - if(mesg->amz_headers) { - amz_headers = list_sort(list_duplicate(mesg->amz_headers), &s3_header_object_comp); - list_first_item(amz_headers); - { int c_type = -1; - char* c_ctype = NULL; - while( (amz = (struct s3_header_object *)list_next_item(amz_headers)) ) { - if(amz->type < S3_HEADER_CUSTOM) continue; - if(c_type != amz->type) { - c_type = amz->type; - c_ctype = amz->custom_type; - sprintf(sign_str, "%s\n%s:%s", sign_str, s3_get_header_string(amz->type, amz->custom_type), amz->value); - - } else if(c_type == S3_HEADER_CUSTOM && strcmp(c_ctype, amz->custom_type)) { - c_ctype = amz->custom_type; - sprintf(sign_str, "%s\n%s:%s", sign_str, amz->custom_type, amz->value); - } else { - sprintf(sign_str, "%s,%s", sign_str, amz->value); - } - } - } - list_delete(amz_headers); - } - - sprintf(sign_str, "%s\n/%s%s", sign_str, mesg->bucket, mesg->path); - if((result = hmac_sha1(sign_str, strlen(sign_str), key, strlen(key), (unsigned char*)digest))) return result; - - hmac_sha1(sign_str, strlen(sign_str), key, strlen(key), (unsigned char*)digest); - free(sign_str); - { - BUFFER_STACK_ABORT(B, 4096); - b64_encode(digest, SHA1_DIGEST_LENGTH, B); - sprintf(mesg->authorization, "AWS %s:%s", user, buffer_tostring(B)); - } - return 0; -} - - -struct link * s3_send_message(struct s3_message *mesg, struct link *server, time_t stoptime) { - char *message_text; - char address[16]; - int message_length, data_sent; - - if(!server) { - if(!domain_name_cache_lookup(s3_endpoint, address)) - return NULL; - - server = link_connect(address, 80, stoptime); - } - - if(!server) - return NULL; - - message_length = s3_message_to_string(mesg, &message_text); - - if(message_length <= 0) { - link_close(server); - return NULL; - } - - data_sent = link_write(server, message_text, message_length, stoptime); - debug(D_TCP, "S3 Message Sent:\n%s\n", message_text); - free(message_text); - - if(data_sent < message_length) { - link_close(server); - server = NULL; - } - - return server; -} - -int s3_message_to_string(struct s3_message *mesg, char** text) { - int msg_str_len = 0; - char *msg_str = NULL; - char date[1024]; - struct s3_header_object *amz; - - switch(mesg->type) { - case S3_MESG_GET: - msg_str_len = 4 + 11; - break; - case S3_MESG_POST: - msg_str_len = 5 + 11; - break; - case S3_MESG_PUT: - msg_str_len = 4 + 11; - break; - case S3_MESG_DELETE: - msg_str_len = 7 + 11; - break; - case S3_MESG_HEAD: - msg_str_len = 5 + 11; - break; - case S3_MESG_COPY: - msg_str_len = 4 + 11; - break; - default: - fprintf(stderr, "Invalid Message Type\n"); - return 0; - } - - if(mesg->path) msg_str_len += strlen(mesg->path) + 1; - else { - fprintf(stderr, "no message path\n"); - return 0; - } - if(mesg->bucket) msg_str_len += 6 + strlen(mesg->bucket) + 1 + strlen(s3_endpoint) + 1; - else { - fprintf(stderr, "no message bucket\n"); - return 0; - } - strftime(date, 1024, "%a, %d %b %Y %H:%M:%S %Z", gmtime(&mesg->date)); - //strftime(date, 1024, "%c %Z", gmtime(&mesg->date)); - msg_str_len += 6 + strlen(date) + 2; - - if(mesg->content_type) msg_str_len += 14 + strlen(mesg->content_type) + 2; - - { int len = mesg->content_length; - do { - msg_str_len += 1; - len /= 10; - } while(len); - } - msg_str_len += 18; - - if(mesg->content_md5) msg_str_len += 13 + strlen(mesg->content_md5) + 2; - - if(mesg->amz_headers) { - list_first_item(mesg->amz_headers); - while( (amz = (struct s3_header_object *)list_next_item(mesg->amz_headers)) ) { - switch(amz->type) { - case S3_HEADER_CUSTOM: - if(!amz->custom_type) { - fprintf(stderr, "no custom type defined for S3_HEADER_CUSTOM\n"); - return 0; - } - msg_str_len += strlen(amz->custom_type) + 2; - break; - default: - msg_str_len += strlen(s3_get_header_string(amz->type, amz->custom_type)) + 2; - break; - } - if(!amz->value) { - fprintf(stderr, "no value for amz_header\n"); - return 0; - } - msg_str_len += strlen(amz->value) + 2; - } - } - - msg_str_len += 72; //Authorization - - if(mesg->expect) msg_str_len += 22; - - msg_str = (char*)malloc(msg_str_len + 1); - if(!msg_str) { - fprintf(stderr, "malloc(%d) failed for msg_string\n", msg_str_len); - return 0; - } - memset(msg_str, 0, msg_str_len); - - switch(mesg->type) { - case S3_MESG_GET: - sprintf(msg_str, "GET "); - break; - case S3_MESG_POST: - sprintf(msg_str, "POST "); - break; - case S3_MESG_PUT: - sprintf(msg_str, "PUT "); - break; - case S3_MESG_DELETE: - sprintf(msg_str, "DELETE "); - break; - case S3_MESG_HEAD: - sprintf(msg_str, "HEAD "); - break; - case S3_MESG_COPY: - sprintf(msg_str, "PUT "); - break; - } - - sprintf(msg_str, "%s%s HTTP/1.1\r\n", msg_str, mesg->path); - sprintf(msg_str, "%sHost: %s.%s\r\n", msg_str, mesg->bucket, s3_endpoint); - sprintf(msg_str, "%sDate: %s\r\n", msg_str, date); - if(mesg->content_type) sprintf(msg_str, "%sContent-Type: %s\r\n", msg_str, mesg->content_type); - sprintf(msg_str, "%sContent-Length: %d\r\n", msg_str, mesg->content_length); - if(mesg->content_md5) sprintf(msg_str, "%sContent-MD5: %s\r\n", msg_str, mesg->content_md5); - - if(mesg->amz_headers) { - list_first_item(mesg->amz_headers); - while( (amz = (struct s3_header_object *)list_next_item(mesg->amz_headers)) ) { - switch(amz->type) { - case S3_HEADER_CUSTOM: - sprintf(msg_str, "%s%s: %s\r\n", msg_str, amz->custom_type, amz->value); - break; - default: - sprintf(msg_str, "%s%s: %s\r\n", msg_str, s3_get_header_string(amz->type, amz->custom_type), amz->value); - break; - } - } - } - sprintf(msg_str, "%sAuthorization: %s\r\n", msg_str, mesg->authorization); - - if(mesg->expect) sprintf(msg_str, "%sExpect: 100-continue\r\n", msg_str); - sprintf(msg_str, "%s\r\n", msg_str); - *text = msg_str; - - return msg_str_len; - -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/s3tools/src/s3c_util.h cctools-7.1.2/s3tools/src/s3c_util.h --- cctools-7.0.22/s3tools/src/s3c_util.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3c_util.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#ifndef S3C_UTIL_H_ -#define S3C_UTIL_H_ - -#include -#include - -#define ACCESS_KEY_ID_LENGTH 21 -#define ACCESS_KEY_LENGTH 41 -#define AWS_CANONICAL_ID_LENGTH 65 -#define MAX_KEY_LENGTH 1024 -#define HEADER_LINE_MAX 10240 - -enum s3_header_type { - S3_HEADER_CUSTOM, - S3_HEADER_AMZ_ACL, - S3_HEADER_AMZ_MFA -}; - -struct s3_header_object { - int type; - char *custom_type; - char *value; -}; - -struct amz_metadata_object { - char type[MAX_KEY_LENGTH]; - char value[MAX_KEY_LENGTH]; -}; - -enum amz_base_perm { - AMZ_PERM_PRIVATE, - AMZ_PERM_PUBLIC_READ, - AMZ_PERM_PUBLIC_WRITE, - AMZ_PERM_AUTH_READ, - AMZ_PERM_BUCKET_READ, - AMZ_PERM_BUCKET_FULL -}; - - -enum s3_message_type { - S3_MESG_GET, - S3_MESG_POST, - S3_MESG_PUT, - S3_MESG_DELETE, - S3_MESG_HEAD, - S3_MESG_COPY -}; - -struct s3_message { - enum s3_message_type type; - char *path; - char *bucket; - char *content_md5; - char *content_type; - time_t date; - struct list* amz_headers; - int expect; - - int content_length; - char authorization[55]; -}; - -struct s3_dirent_object { - char key[MAX_KEY_LENGTH]; - time_t last_modified; - char digest[MD5_DIGEST_LENGTH]; - int size; - char owner[AWS_CANONICAL_ID_LENGTH]; - char *display_name; - struct list *metadata; -}; - -int s3_set_endpoint(const char *target); -struct s3_header_object* s3_new_header_object(enum s3_header_type type, const char* custom_type, const char* value); -const char * s3_get_header(enum s3_header_type type, const char* custom_type); -int s3_header_comp(const void *a, const void *b); -int sign_message(struct s3_message* mesg, const char* user, const char * key); -struct link * s3_send_message(struct s3_message *mesg, struct link *server, time_t stoptime); -int s3_message_to_string(struct s3_message *mesg, char** text); - -#endif diff -Nru cctools-7.0.22/s3tools/src/s3getacl.c cctools-7.1.2/s3tools/src/s3getacl.c --- cctools-7.0.22/s3tools/src/s3getacl.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3getacl.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#include -#include -#include -#include - -#include "s3common.h" -#include "s3c_acl.h" - -int main(int argc, char** argv) { - struct hash_table *acls; - char *id, *filename; - struct s3_acl_object *acl; - char owner[1024]; - char remotename[FILENAME_MAX]; - - s3_initialize(&argc, argv); - - if(argc < 2) { - fprintf(stderr, "usage: s3getacl [filename]\n"); - return -1; - } - - if(argc > 2) { - sprintf(remotename, "/%s", argv[2]); - filename = remotename; - } else filename = NULL; - - acls = hash_table_create(0, NULL); - s3_getacl(argv[1], filename, owner, acls, s3_userid(), s3_key()); - - hash_table_firstkey(acls); - while(hash_table_nextkey(acls, &id, (void**)&acl)) { - switch(acl->acl_type) { - case S3_ACL_ID: - printf("%s\t", acl->display_name); - break; - case S3_ACL_EMAIL: - case S3_ACL_URI: - printf("%s\t", id); - } - - if(acl->perm & S3_ACL_FULL_CONTROL) printf("f"); - if(acl->perm & S3_ACL_READ) printf("r"); - if(acl->perm & S3_ACL_WRITE) printf("w"); - if(acl->perm & S3_ACL_READ_ACP) printf("g"); - if(acl->perm & S3_ACL_WRITE_ACP) printf("s"); - - printf("\n"); - } - - return 0; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/s3tools/src/s3get.c cctools-7.1.2/s3tools/src/s3get.c --- cctools-7.0.22/s3tools/src/s3get.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3get.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#include -#include -#include -#include - -#include "path.h" - -#include "s3common.h" -#include "s3c_file.h" - -int main(int argc, char** argv) { - char remotename[FILENAME_MAX]; - - s3_initialize(&argc, argv); - - if(argc < 2) { - fprintf(stderr, "usage: s3get \n"); - return -1; - } - fprintf(stderr, "checking bucket %s for file %s\n", argv[1], argv[2]); - - sprintf(remotename, "/%s", path_basename(argv[2])); - s3_get_file(argv[2], NULL, remotename, argv[1], s3_userid(), s3_key()); - - return 0; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/s3tools/src/s3ls.c cctools-7.1.2/s3tools/src/s3ls.c --- cctools-7.0.22/s3tools/src/s3ls.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3ls.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#include -#include -#include -#include -#include -#include - -#include "s3common.h" -#include "s3c_bucket.h" - -int main(int argc, char** argv) { - struct list *dirents; - struct s3_dirent_object *d; - char long_list = 0; - signed char c; - int i; - - opterr = 0; - s3_initialize(&argc, argv); - - while((c = getopt(argc, argv, "l")) > -1) { - switch(c) { - case 'l': - long_list = 1; - break; - default: - fprintf(stderr, "Error: invalid option (-%c)\n", optopt); - } - } - - if(optind >= argc) { - fprintf(stderr, "usage: s3ls [-l] \n"); - return -1; - } - - dirents = list_create(); - for(i = optind; i < argc; i++) { - char date[1024]; - if(argc-optind > 1) printf("%s:\n", argv[i]); - s3_ls_bucket(argv[i], dirents, s3_userid(), s3_key()); - while( (d = list_pop_head(dirents)) ) { - strftime(date, 1024, "%b %d %H:%M", localtime(&d->last_modified)); - if(!long_list) printf("%s\n", d->key); - else printf("-rw------- 1 %s\t%9d %s %s\n", d->display_name, d->size, date, d->key); - free(d->display_name); - free(d); - d = NULL; - } - } - list_delete(dirents); - - return 0; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/s3tools/src/s3mkdir.c cctools-7.1.2/s3tools/src/s3mkdir.c --- cctools-7.0.22/s3tools/src/s3mkdir.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3mkdir.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#include -#include -#include -#include - -#include "s3common.h" -#include "s3c_bucket.h" - -int main(int argc, char** argv) { - s3_initialize(&argc, argv); - - if(argc < 2) { - fprintf(stderr, "usage: s3mkdir \n"); - return -1; - } - - s3_mk_bucket(argv[1], AMZ_PERM_PRIVATE, s3_userid(), s3_key()); - - return 0; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/s3tools/src/s3put.c cctools-7.1.2/s3tools/src/s3put.c --- cctools-7.0.22/s3tools/src/s3put.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3put.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#include -#include -#include - -#include "path.h" - -#include "s3common.h" -#include "s3c_file.h" - -int main(int argc, char** argv) { - char remotename[FILENAME_MAX]; - - s3_initialize(&argc, argv); - if(argc < 3) { - fprintf(stderr, "usage: s3put \n"); - return -1; - } - sprintf(remotename, "/%s", path_basename(argv[1])); - - s3_put_file(argv[1], remotename, argv[2], AMZ_PERM_PRIVATE, s3_userid(), s3_key()); - - return 0; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/s3tools/src/s3rm.c cctools-7.1.2/s3tools/src/s3rm.c --- cctools-7.0.22/s3tools/src/s3rm.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3rm.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#include -#include -#include - -#include "path.h" - -#include "s3common.h" -#include "s3c_file.h" - -int main(int argc, char** argv) { - char remotename[FILENAME_MAX]; - - s3_initialize(&argc, argv); - if(argc < 3) { - fprintf(stderr, "usage: s3rm \n"); - return -1; - } - sprintf(remotename, "/%s", path_basename(argv[2])); - - s3_rm_file(remotename, argv[1], s3_userid(), s3_key()); - - return 0; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/s3tools/src/s3rmdir.c cctools-7.1.2/s3tools/src/s3rmdir.c --- cctools-7.0.22/s3tools/src/s3rmdir.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3rmdir.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#include -#include -#include -#include - -#include "s3common.h" -#include "s3c_bucket.h" - -int main(int argc, char** argv) { - s3_initialize(&argc, argv); - if(argc < 2) { - fprintf(stderr, "usage: s3rmdir \n"); - return -1; - } - - s3_rm_bucket(argv[1], s3_userid(), s3_key()); - - return 0; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/s3tools/src/s3setacl.c cctools-7.1.2/s3tools/src/s3setacl.c --- cctools-7.0.22/s3tools/src/s3setacl.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3setacl.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,90 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#include -#include -#include -#include - -#include "s3common.h" -#include "s3c_acl.h" - -int main(int argc, char** argv) { - struct hash_table *acls; - struct s3_acl_object *acl; - char *bucket, *filename, *handle, *aclstr, *id; - char remotename[FILENAME_MAX]; - char owner[FILENAME_MAX]; - unsigned int i; - unsigned char mask = 0; - - s3_initialize(&argc, argv); - - if(argc < 4) { - fprintf(stderr, "usage: s3setacl [filename] [+|-]\n"); - return -1; - } - - bucket = argv[1]; - if(argc == 5) { - sprintf(remotename, "/%s", argv[2]); - filename = remotename; - handle = argv[3]; - aclstr = argv[4]; - } else { - filename = NULL; - handle = argv[2]; - aclstr = argv[3]; - } - - acls = hash_table_create(0, NULL); - s3_getacl(bucket, filename, owner, acls, s3_userid(), s3_key()); - - hash_table_firstkey(acls); - while(hash_table_nextkey(acls, &id, (void**)&acl)) { - if(!strcmp(id, handle)) break; - } - if(!acl) acl = hash_table_lookup(acls, handle); - - if(!acl && !strchr(handle, '@')) { - fprintf(stderr, "Error: invalid handle (%s)\n", handle); - exit(0); - } - - if(!acl && aclstr[0] != '-') { - acl = malloc(sizeof(*acl)); - acl->acl_type = S3_ACL_EMAIL; - acl->perm = 0; - acl->display_name = NULL; - hash_table_insert(acls, handle, acl); - } - if(!acl) return 0; - - fprintf(stderr, "aclstr: %s\n", aclstr); - for(i = strcspn(aclstr, "frwgs"); i < strlen(aclstr); i++) { - switch(aclstr[i]) { - case 'f': mask = mask | S3_ACL_FULL_CONTROL; break; - case 'r': mask = mask | S3_ACL_READ; break; - case 'w': mask = mask | S3_ACL_WRITE; break; - case 'g': mask = mask | S3_ACL_READ_ACP; break; - case 's': mask = mask | S3_ACL_WRITE_ACP; break; - } - } - - if(aclstr[0] == '+') { - acl->perm = acl->perm | mask; - } else if(aclstr[0] == '-') { - acl->perm = acl->perm & ~mask; - } else { - acl->perm = mask; - } - - s3_setacl(bucket, filename, owner, acls, s3_userid(), s3_key()); - - return 0; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/s3tools/src/s3stat.c cctools-7.1.2/s3tools/src/s3stat.c --- cctools-7.0.22/s3tools/src/s3stat.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/s3tools/src/s3stat.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ -#include -#include -#include - -#include "path.h" - -#include "s3common.h" -#include "s3c_file.h" - -int main(int argc, char** argv) { - struct s3_dirent_object d; - char remotename[FILENAME_MAX]; - - s3_initialize(&argc, argv); - - if(argc < 3) { - fprintf(stderr, "usage: s3get \n"); - return -1; - } - sprintf(remotename, "/%s", path_basename(argv[1])); - - s3_stat_file(remotename, argv[2], &d, s3_userid(), s3_key()); - - return 0; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/sand/.gitignore cctools-7.1.2/sand/.gitignore --- cctools-7.0.22/sand/.gitignore 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -filtering -formatting -alignment diff -Nru cctools-7.0.22/sand/Makefile cctools-7.1.2/sand/Makefile --- cctools-7.0.22/sand/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -include ../config.mk -include ../rules.mk - -PHONY_TARGETS ?= src -TARGETS ?= $(PHONY_TARGETS) - -all: $(TARGETS) - -$(TARGETS): - @$(MAKE) -C $@ - -CLEAN_TARGETS = $(TARGETS:%=clean-%) -$(CLEAN_TARGETS): - @$(MAKE) -C $(@:clean-%=%) clean -clean: $(CLEAN_TARGETS) - -INSTALL_TARGETS = $(TARGETS:%=install-%) -$(INSTALL_TARGETS): - @$(MAKE) -C $(@:install-%=%) install -install: $(INSTALL_TARGETS) - -TEST_TARGETS = $(TARGETS:%=test-%) -$(TEST_TARGETS): - @$(MAKE) -C $(@:test-%=%) test -test: $(TEST_TARGETS) - -.PHONY: $(PHONY_TARGETS) $(CLEAN_TARGETS) $(INSTALL_TARGETS) $(TEST_TARGETS) all clean install test diff -Nru cctools-7.0.22/sand/src/align.c cctools-7.1.2/sand/src/align.c --- cctools-7.0.22/sand/src/align.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/align.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,394 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include -#include -#include - -#include "align.h" -#include "macros.h" -#include "matrix.h" - -#define TRACEBACK_LEFT '-' -#define TRACEBACK_UP '|' -#define TRACEBACK_DIAG '\\' -#define TRACEBACK_END 'X' - -// XXX need to pass these in all the way from the beginning -static const int score_match = 2; -static const int score_mismatch = -1; -static const int score_gap = -1; - -static void choose_best(struct matrix *m, int * i, int * j, int istart, int iend, int jstart, int jend ); -static struct alignment * alignment_traceback(struct matrix *m, int i, int j, const char *a, const char *b ); - -/* -CAREFUL HERE: -The matrix indexes are [0:width] and [0:height], inclusive. -The 0th row and column of the matrix are used for initialization values. -BUT, the string indexes are [0:length), and are set one off from the matrix. -So, note that the value of matrix[i][j] evaluates string values a[i-1] and b[j-1]. -*/ - -static inline struct cell score_cell( struct matrix *m, int i, int j, const char *a, const char *b, int is_smith_waterman ) -{ - struct cell result; - - // Compute the score from the diagonal. - int diagscore = matrix(m,i-1,j-1).score + ((a[i-1]==b[j-1]) ? score_match : score_mismatch); - result.score = diagscore; - result.traceback = TRACEBACK_DIAG; - - // Compute the score from the left, and accept if greater. - int leftscore = matrix(m,i-1,j).score + score_gap; - if(leftscore>result.score) { - result.score = leftscore; - result.traceback = TRACEBACK_LEFT; - } - - // Compute the score from above, and accept if greater. - int upscore = matrix(m,i,j-1).score + score_gap; - if(upscore>result.score) { - result.score = upscore; - result.traceback = TRACEBACK_UP; - } - - // Smith-Waterman alignments can never go below zero. - // A zero will stop the traceback at that spot. - - if(is_smith_waterman) { - if(result.score<0) { - result.score = 0; - result.traceback = TRACEBACK_END; - } - } - - return result; -} - -struct alignment * align_smith_waterman( struct matrix *m, const char * a, const char * b ) -{ - int width = m->width; - int height = m->height; - int i,j; - - int best_i = 0; - int best_j = 0; - int best_score = 0; - - // Zero out the first row. - for(i=0; i<=width; i++) { - matrix(m,i,0).score = 0; - matrix(m,i,0).traceback = TRACEBACK_LEFT; - } - - // Zero out the first column. - for(j=0; j<=height; j++) { - matrix(m,0,j).score = 0; - matrix(m,0,j).traceback = TRACEBACK_UP; - } - - // Sweep out the rest of the matrix. - for (j=1; j<=height; j++) { - for (i=1; i<=width; i++) { - - struct cell s = score_cell(m, i, j, a, b, 1 ); - matrix(m,i,j) = s; - - // Keep track of the cell with the best score. - if(s.score>=best_score) { - best_score = s.score; - best_i = i; - best_j = j; - } - } - } - - // Start the traceback from the cell with the highest score. - return alignment_traceback(m, best_i, best_j, a, b ); -} - -struct alignment * align_prefix_suffix( struct matrix *m, const char * a, const char * b, int min_align ) -{ - int width = m->width; - int height = m->height; - int i,j; - int best_i = 0; - int best_j = 0; - - min_align = MIN(min_align,MIN(width,height)); - - // Zero out the top row. - for(i=0; i<=width; i++) { - matrix(m,i,0).score = 0; - matrix(m,i,0).traceback = TRACEBACK_LEFT; - } - - // Zero out the left column. - for(j=1; j<=height; j++) { - matrix(m,0,j).score = 0; - matrix(m,0,j).traceback = TRACEBACK_UP; - } - - // Sweep out the entire matrix. - for (i=1; i<=width; i++) { - for (j=1; j<=height; j++) { - matrix(m,i,j) = score_cell(m, i, j, a, b, 0 ); - } - } - - // Find the maximum of the last row and last column. - choose_best(m, &best_i, &best_j, min_align, width, min_align, height); - - // Start traceback from best position and go until we hit the top or left edge. - return alignment_traceback(m, best_i, best_j, a, b ); -} - -struct alignment * align_banded( struct matrix *m, const char *a, const char *b, int astart, int bstart, int k ) -{ - int width = m->width; - int height = m->height; - int i,j; - int best_i = 0; - int best_j = 0; - - int offset = astart - bstart; - - // Zero out the top border. - for(i=0;i<=width;i++) { - matrix(m,i,0).score = 0; - matrix(m,i,0).traceback = TRACEBACK_LEFT; - } - - // Zero out the left border. - for(j=0;j<=height;j++) { - matrix(m,0,j).score = 0; - matrix(m,0,j).traceback = TRACEBACK_UP; - } - - // Set the diagonals to a large small number so that the - // traceback never wanders off the band. - for(j=0;j<=height;j++) { - i = offset + k + j + 1; - if(i>=0 && i<=width) { - matrix(m,i,j).score = SHRT_MIN + 100; - matrix(m,i,j).traceback = TRACEBACK_LEFT; - } - i = offset - k + j - 1; - if(i>=0 && i<=width) { - matrix(m,i,j).score = SHRT_MIN + 100; - matrix(m,i,j).traceback = TRACEBACK_UP; - } - } - - #define BRACKET( a, x, b ) MIN(MAX((a),(x)),(b)) - - // For each row, sweep out the valid range of columns. - for(j=1;j<=MIN(height,width-offset+k);j++) { - - int istart = BRACKET(1,offset+j-k,width); - int istop = BRACKET(1,offset+j+k,width); - - for(i=istart;i<=istop;i++) { - matrix(m,i,j) = score_cell(m,i,j,a,b,0); - } - } - - // Choose the best value on the valid ranges of the alignment. - choose_best(m, &best_i, &best_j, - BRACKET(0,height+offset-k,width), - BRACKET(0,height+offset+k,width), - BRACKET(0,width-offset-k,height), - BRACKET(0,width-offset+k,height) ); - - // Run the traceback back to the edges of the matrix. - return alignment_traceback(m, best_i, best_j, a, b ); -} - -static void choose_best(struct matrix *m, int * best_i, int * best_j, int istart, int iend, int jstart, int jend ) -{ - int i, j; - double best_score = 0; - - // QUESTION: do we want to use % identity like Celera? May require changing the score parameters. - - // There are a couple of odd boundary cases where the limits - // are a single cell in either row. To avoid that, we initialize the - // best to the first element in each dimension. - - *best_i = istart; - *best_j = jstart; - - // Find the best in the last column - if(jstart!=jend) { - for (i=m->width, j=jstart; j <= jend; j++) { - if ( matrix(m,i,j).score > best_score) { - best_score = matrix(m,i,j).score; - *best_i = i; - *best_j = j; - } - } - } - - // Find the best in the last row - if(istart!=iend) { - for (i=istart, j=m->height; i <= iend; i++) { - if ( matrix(m,i,j).score > best_score) { - best_score = matrix(m,i,j).score; - *best_i = i; - *best_j = j; - } - } - } -} - -static struct alignment * alignment_traceback(struct matrix *m, int istart, int jstart, const char *a, const char *b ) -{ - struct alignment * aln = malloc(sizeof(*aln)); - memset(aln,0,sizeof(*aln)); - - int max_traceback_length = m->width + m->height + 4; - aln->traceback = malloc(max_traceback_length*sizeof(*aln->traceback)); - - int i = istart; - int j = jstart; - int dir = 0; - int length = 0; - - while ( (i>0) && (j>0) ) { - - dir = matrix(m,i,j).traceback; - aln->traceback[length++] = dir; - - if(dir==TRACEBACK_DIAG) { - if(a[i-1]!=b[j-1]) { - aln->mismatch_count++; - } - i--; - j--; - } else if(dir==TRACEBACK_LEFT) { - i--; - aln->gap_count++; - } else if(dir==TRACEBACK_UP) { - j--; - aln->gap_count++; - } else if(dir==TRACEBACK_END) { - length--; - break; - } else { - fprintf(stderr,"traceback corrupted at i=%d j=%d\n",i,j); - exit(1); - } - } - - aln->traceback[length] = 0; - - // Reverse the traceback and resize the allocation as needed. - char *n = malloc((length+1)*sizeof(char)); - int k; - for(k=0;ktraceback[length-k-1]; - } - n[length] = 0; - - free(aln->traceback); - aln->traceback = n; - - // NOTE: These parameters are what are needed for OVL records. Other values are - // calculated on runtime in the overlap output code - - aln->start1 = i; - aln->start2 = j; - aln->end1 = istart-1; - aln->end2 = jstart-1; - aln->length1 = m->width; - aln->length2 = m->height; - aln->score = matrix(m,istart,jstart).score; - aln->quality = (double)(aln->gap_count + aln->mismatch_count) / MIN(aln->end1-aln->start1,aln->end2-aln->start2); - - return aln; -} - -#define LINE_WIDTH 80 - -static void print_rows( FILE * file, char a, char b ) -{ - static char *linea=0; - static char *lineb=0; - static int i = 0; - - if(!linea) linea = malloc(LINE_WIDTH+1); - if(!lineb) lineb = malloc(LINE_WIDTH+1); - - linea[i] = a; - lineb[i] = b; - i++; - - if(i==LINE_WIDTH || (a==0 && b==0) ) { - linea[i] = lineb[i] = 0; - fprintf(file,"%s\n%s\n\n",linea,lineb); - i=0; - } -} - -void alignment_print( FILE * file, const char * a, const char * b, struct alignment *aln ) -{ - char *t = aln->traceback; - - int offset = aln->start1 - aln->start2; - int i; - - if(offset>0) { - for(i=0;istart1;i++) print_rows(file,a[i],b[i-offset]); - } else { - offset = -offset; - for(i=0;istart1;i++) print_rows(file,a[i-offset],b[i]); - } - - a = &a[aln->start1]; - b = &b[aln->start2]; - - while(*t) { - if(*t==TRACEBACK_DIAG) { - print_rows(file,*a++,*b++); - } else if(*t==TRACEBACK_LEFT) { - print_rows(file,*a++,'.'); - } else if(*t==TRACEBACK_UP) { - print_rows(file,'.',*b++); - } else { - fprintf(stderr,"traceback corrupted\n"); - exit(1); - } - t++; - } - - while(*a || *b) { - char j = *a ? *a : '*'; - char k = *b ? *b : '*'; - print_rows(file,j,k); - if(*a) a++; - if(*b) b++; - } - - print_rows(file,0,0); - fflush(file); -} - -void alignment_delete( struct alignment *aln ) -{ - if(aln) { - if(aln->traceback) free(aln->traceback); - free(aln); - } -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/sand/src/align.h cctools-7.1.2/sand/src/align.h --- cctools-7.0.22/sand/src/align.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/align.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef __SEQUENCE_ALIGNMENT_H_ -#define __SEQUENCE_ALIGNMENT_H_ - -#include - -#include "matrix.h" - -struct alignment { - int start1; - int end1; - int length1; - int start2; - int end2; - int length2; - char * traceback; - int gap_count; - int mismatch_count; - int score; - double quality; - char ori; -}; - -struct alignment * align_prefix_suffix( struct matrix *m, const char *a, const char *b, int min_align ); -struct alignment * align_smith_waterman( struct matrix *m, const char *a, const char *b ); -struct alignment * align_banded( struct matrix *m, const char *a, const char *b, int astart, int bstart, int k ); - -void alignment_print( FILE * file, const char * str1, const char * str2, struct alignment *a ); -void alignment_delete( struct alignment *a ); - -#endif diff -Nru cctools-7.0.22/sand/src/compressed_sequence.c cctools-7.1.2/sand/src/compressed_sequence.c --- cctools-7.0.22/sand/src/compressed_sequence.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/compressed_sequence.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,246 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include - -#include "compressed_sequence.h" -#include "full_io.h" -#include "debug.h" - -static int get_num_bytes(int num_bases); -static int get_malloc_bytes(int num_bases); - -/* -This module has a lot of manifest constants that are related to the size -of the integer type (short) used for binary encoding the data. It's not -clear to me that short is a good choice here, but to change it, we first -must track down all of the constants that are connected to it. -*/ - -/* -Special Note: num_bytes refers to the number of bytes used to store -the compressed representation on disk. When allocating memory, we -must round that number up to the nearest integer-aligned size, in -order to avoid running off the end while doing arithmetic. Hence, -you see get_mallc_bytes used to round it up. -*/ - -struct cseq * cseq_create( const char *name, int num_bases, short *mers, const char *metadata) -{ - struct cseq *c = malloc(sizeof(*c)); - c->name = strdup(name); - c->num_bases = num_bases; - int malloc_bytes = get_malloc_bytes(c->num_bases); - c->data = malloc(malloc_bytes); - memcpy(c->data,mers,malloc_bytes); - c->metadata = strdup(metadata); - return c; -} - -struct cseq *cseq_copy( struct cseq *c ) -{ - return cseq_create(c->name,c->num_bases,c->data,c->metadata); -} - -struct cseq * seq_compress( struct seq *s ) -{ - struct cseq *c; - - c = malloc(sizeof(*c)); - if(!c) return 0; - - c->num_bases = s->num_bases; - int malloc_bytes = get_malloc_bytes(s->num_bases); - c->data = malloc(malloc_bytes); - c->name = strdup(s->name); - c->metadata = strdup(s->metadata); - - memset(c->data,0,malloc_bytes); - - int i=0, j=0, shift=14; - - while(inum_bases) { - c->data[j] |= (base_to_num(s->data[i]) << shift); - i++; - shift-=2; - if(shift<0) { - shift=14; - j++; - } - } - - return c; -} - -static int get_num_bytes( int num_bases ) -{ - int num_bytes = num_bases/4; - if (num_bases%4 > 0) { num_bytes++; } - return num_bytes; -} - -static int get_malloc_bytes( int num_bases ) -{ - int num_bytes = get_num_bytes(num_bases); - int remainder = num_bytes % sizeof(short); - if(remainder!=0) { - num_bytes += sizeof(short) - remainder; - } - return num_bytes; -} - -int base_to_num(char base) -{ - switch(base) - { - case 'C': - case 'c': - return 0; - case 'A': - case 'a': - return 1; - case 'T': - case 't': - return 2; - case 'G': - case 'g': - default: - return 3; - } -} - -char num_to_base(int num) -{ - switch(num) - { - case 0: return 'C'; - case 1: return 'A'; - case 2: return 'T'; - case 3: return 'G'; - default: return 'N'; - } -} - -struct seq * cseq_uncompress( struct cseq *c ) -{ - struct seq *s = malloc(sizeof(*s)); - - s->name = strdup(c->name); - s->metadata = strdup(c->metadata); - s->data = malloc(c->num_bases+1); - s->num_bases = c->num_bases; - - int i=0, j=0, shift=14; - - while(inum_bases) { - s->data[i] = num_to_base( (c->data[j] >> shift) & 3); - i++; - shift-=2; - if(shift<0) { - shift=14; - j++; - } - } - - s->data[s->num_bases] = 0; - - return s; -} - -void cseq_free( struct cseq *c ) -{ - if(c) { - if (c->data) free(c->data); - if (c->name) free(c->name); - if (c->metadata) free(c->metadata); - free(c); - } -} - -size_t cseq_size( struct cseq *c) -{ - return get_num_bytes(c->num_bases) + 100; -} - -void cseq_write( FILE * file, struct cseq *c ) -{ - if(!c) { - // special case: null pointer indicates the end of a list. - fprintf(file,">>\n"); - } else { - int num_bytes = get_num_bytes(c->num_bases); - fprintf(file, ">%s %d %d %s\n", c->name, c->num_bases, num_bytes, c->metadata); - fwrite(c->data,1,num_bytes,file); - fputc('\n',file); - } -} - -int cseq_sprint( char *buf, struct cseq *c, const char *extra_data ) -{ - int total = 0; - - if(!c) { - // special case: null pointer indicates the end of a list. - total += sprintf(buf,">>\n"); - } else { - int num_bytes = get_num_bytes(c->num_bases); - - total += sprintf(buf, ">%s %d %d %s %s\n", c->name, c->num_bases, num_bytes, c->metadata, extra_data); - buf += total; - - memcpy(buf,c->data,num_bytes); - buf += num_bytes; - total += num_bytes; - - strcpy(buf,"\n"); - buf += 1; - total += 1; - } - - return total; -} - -struct cseq * cseq_read( FILE *file ) -{ - char line[SEQUENCE_FILE_LINE_MAX]; - char metadata[SEQUENCE_FILE_LINE_MAX]; - char name[SEQUENCE_FILE_LINE_MAX]; - int nbases, nbytes; - - if(!fgets(line,sizeof(line),file)) return 0; - - // special case: two arrows indicates the end of a list, - // but not the end of a file. - - if(line[0] == '>' && line[1] == '>') return 0; - - metadata[0] = 0; - - int n = sscanf(line, ">%s %d %d %[^\n]",name,&nbases,&nbytes,metadata); - if(n<3) fatal("syntax error near %s\n",line); - - // allocate memory, rounding up to the next word size - int malloc_bytes = get_malloc_bytes(nbases); - short *data = malloc(malloc_bytes); - - // set the last full word to zero, to avoid uninitialized data. - data[(malloc_bytes/sizeof(short))-1] = 0; - - n = full_fread(file,data,nbytes); - if(n!=nbytes) fatal("sequence file is corrupted."); - - fgetc(file); - - struct cseq *c = cseq_create(name,nbases,data,metadata); - - free(data); - - return c; -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/sand/src/compressed_sequence.h cctools-7.1.2/sand/src/compressed_sequence.h --- cctools-7.0.22/sand/src/compressed_sequence.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/compressed_sequence.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef COMPRESSED_SEQUENCE_H -#define COMPRESSED_SEQUENCE_H - -#include -#include -#include - -#include "sequence.h" - -struct cseq -{ - char * name; - char * metadata; - short * data; - int num_bases; -}; - -struct cseq * cseq_create( const char *name, int num_bases, short *data, const char *metadata); -struct cseq * cseq_copy(struct cseq *s); -struct cseq * seq_compress( struct seq *s ); -struct seq * cseq_uncompress( struct cseq * c ); -void cseq_free( struct cseq * c ); -void cseq_write( FILE *file, struct cseq *c ); -struct cseq * cseq_read( FILE *file ); -void cseq_file_reset(); -size_t cseq_size( struct cseq *c ); -int cseq_sprint( char *buf, struct cseq *c, const char *extra_data ); - -void translate_to_str(int mer, char * str, int length); -int base_to_num(char base ); -char num_to_base( int num ); - -#endif diff -Nru cctools-7.0.22/sand/src/.gitattributes cctools-7.1.2/sand/src/.gitattributes --- cctools-7.0.22/sand/src/.gitattributes 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/.gitattributes 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -sand_runCA_5.4 -whitespace -sand_runCA_6.1 -whitespace -sand_runCA_7.0 -whitespace diff -Nru cctools-7.0.22/sand/src/.gitignore cctools-7.1.2/sand/src/.gitignore --- cctools-7.0.22/sand/src/.gitignore 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -libsandtools.a -sand_align_kernel -sand_align_master -sand_banded_alignment -sand_compress_reads -sand_filter_kernel -sand_filter_master -sand_filter_mer_seq -sand_sw_alignment -sand_ucopy -sand_uncompress_reads diff -Nru cctools-7.0.22/sand/src/Makefile cctools-7.1.2/sand/src/Makefile --- cctools-7.0.22/sand/src/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -include ../../config.mk -include ../../rules.mk - -LOCAL_CCFLAGS = -O3 - -EXTERNAL_DEPENDENCIES = ../../work_queue/src/libwork_queue.a ../../dttools/src/libdttools.a -LIBRARIES = libsandtools.a -OBJECTS = $(SOURCES:%.c=%.o) -PROGRAMS = sand_align_master sand_align_kernel sand_filter_master sand_filter_kernel sand_compress_reads sand_uncompress_reads -SCRIPTS = sand_runCA_5.4 sand_runCA_6.1 sand_runCA_7.0 -SOURCES = compressed_sequence.c sequence_filter.c sequence.c matrix.c overlap.c align.c -TARGETS = $(PROGRAMS) $(LIBRARIES) - -all: $(TARGETS) - -libsandtools.a: $(OBJECTS) - -$(PROGRAMS): $(LIBRARIES) $(EXTERNAL_DEPENDENCIES) - -clean: - rm -f $(OBJECTS) $(PROGRAMS) $(LIBRARIES) *.o - -install: all - mkdir -p $(CCTOOLS_INSTALL_DIR)/bin - chmod 755 $(PROGRAMS) $(SCRIPTS) - cp $(PROGRAMS) $(SCRIPTS) $(CCTOOLS_INSTALL_DIR)/bin/ - -test: all - -.PHONY: all clean install test diff -Nru cctools-7.0.22/sand/src/matrix.c cctools-7.1.2/sand/src/matrix.c --- cctools-7.0.22/sand/src/matrix.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/matrix.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include - -#include "matrix.h" - -struct matrix * matrix_create( int width, int height ) -{ - struct matrix *m = malloc(sizeof(*m)); - - m->width = width; - m->height = height; - m->data = malloc(sizeof(struct cell) * (m->width+1) * (height+1) ); - - return m; -} - -void matrix_delete( struct matrix *m ) -{ - free(m->data); - free(m); -} - -void matrix_print( struct matrix *m, const char *a, const char *b ) -{ - int i,j; - - if(b) printf(" "); - - if(a) for(i=0;iwidth;i++) printf(" %c",a[i]); - - printf("\n"); - - for(j=0;j<=m->height;j++) { - if(b) { - if(j>0) { - printf("%c ",b[j-1]); - } else { - printf(" "); - } - } - - for(i=0;i<=m->width;i++) { - char t = matrix(m,i,j).traceback; - if(t==0) t=' '; - printf("%3d%c ",matrix(m,i,j).score,t); - } - printf("\n"); - } - -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/sand/src/matrix.h cctools-7.1.2/sand/src/matrix.h --- cctools-7.0.22/sand/src/matrix.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/matrix.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef MATRIX_H -#define MATRIX_H - -struct cell -{ - short score; - short traceback; -}; - -struct matrix { - int width; - int height; - struct cell *data; -}; - -struct matrix * matrix_create( int width, int height ); -void matrix_delete( struct matrix *m ); -void matrix_print( struct matrix *m, const char *a, const char *b ); - -#define matrix(m,i,j) ( (m)->data[(m->width*(j) + i)] ) - -#endif diff -Nru cctools-7.0.22/sand/src/overlap.c cctools-7.1.2/sand/src/overlap.c --- cctools-7.0.22/sand/src/overlap.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/overlap.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,137 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include - -#include "overlap.h" -#include "macros.h" - -void overlap_write_v7(FILE * file, struct alignment *aln, const char *id1, const char *id2) -{ - int ahg, bhg; - - // IDs of overlapping fragments. - fprintf(file, "%s ", id1); - fprintf(file, "%s ", id2); - - // Orientation - fprintf(file, "%c ", aln->ori); - - // calculate overhangs assuming A is on the left - ahg = aln->start1 + aln->start2; - bhg = (aln->length2 - 1) - aln->end2; - if(bhg == 0) { - bhg = aln->end1 - (aln->length1 - 1); - } - - if(aln->start2 <= aln->start1 && aln->end2 <= aln->end1) { // A is on left or B is inside A - - - } else if(aln->start1 <= aln->start2 && aln->end1 <= aln->end2) { // B is on left or A is inside B - - // recalculate overhangs given that B is on right. Main difference is these should be negative - ahg = (aln->start2 + aln->start1) * -1; - bhg = ((aln->length1 - 1) - aln->end1) * -1; - if(bhg == 0) { - bhg = (aln->end1 - (aln->length1 - 1)) * -1; - } - - - } - // How much each piece hangs off the end. If A is on left (or B is contained), these are positive - // If B is on the left, these are negative. - fprintf(file, "%d ", ahg); - fprintf(file, "%d ", bhg); - - double qual = aln->quality; - qual = qual * 100; - - - // Celera defines the quality score as (gaps + mismatches) / MIN(end1, end2) - fprintf(file, "%.1f %.1f", qual, qual); - - fprintf(file, "\n"); -} - -void overlap_write_v5(FILE * file, struct alignment *aln, const char *id1, const char *id2) -{ - int ahg, bhg; - int arh, brh; - - fprintf(file, "{OVL\n"); - - // IDs of overlapping fragments. - fprintf(file, "afr:%s\n", id1); - fprintf(file, "bfr:%s\n", id2); - - // Orientation - fprintf(file, "ori:%c\n", aln->ori); - - arh = aln->length1 - aln->end1; // determine the right portions of sequences that - brh = aln->length2 - aln->end2; // are not in the alignment - - // calculate overhangs assuming A is on the left - ahg = aln->start1 + aln->start2; - bhg = (aln->length2 - 1) - aln->end2; - if(bhg == 0) { - bhg = aln->end1 - (aln->length1 - 1); - } - - if(aln->start2 <= aln->start1 && aln->end2 <= aln->end1) { // A is on left or B is inside A - - if(arh >= brh) - fprintf(file, "olt:C\n"); // b is contained in A (or the same as A) - else - fprintf(file, "olt:D\n"); // dovetail - suffix/prefix alignment - - } else if(aln->start1 <= aln->start2 && aln->end1 <= aln->end2) { // B is on left or A is inside B - - // recalculate overhangs given that B is on right. Main difference is these should be negative - ahg = (aln->start2 + aln->start1) * -1; - bhg = ((aln->length1 - 1) - aln->end1) * -1; - if(bhg == 0) { - bhg = (aln->end1 - (aln->length1 - 1)) * -1; - } - - if(brh >= arh) - fprintf(file, "olt:C\n"); // a is contained in B - else - fprintf(file, "olt:D\n"); // dovetail - suffix/prefix alignment - - } else - fprintf(file, "olt:D\n"); // Default to D to mimic Celera. - - // How much each piece hangs off the end. If A is on left (or B is contained), these are positive - // If B is on the left, these are negative. - fprintf(file, "ahg:%d\n", ahg); - fprintf(file, "bhg:%d\n", bhg); - - // Celera defines the quality score as (gaps + mismatches) / MIN(end1, end2) - fprintf(file, "qua:%f\n", aln->quality); - - // This is the length of the overlap - fprintf(file, "mno:%d\n", MIN(aln->end1 - aln->start1, aln->end2 - aln->start2)); - fprintf(file, "mxo:%d\n", aln->score); - - // Polymorphism count. - fprintf(file, "pct:0\n"); // Again, try to match Celera, where this is set to 0 and unchanged later - - fprintf(file, "}\n"); -} - -void overlap_write_begin(FILE * file) -{ - fprintf(file, "[\n"); -} - -void overlap_write_end(FILE * file) -{ - fprintf(file, "]\n"); -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/sand/src/overlap.h cctools-7.1.2/sand/src/overlap.h --- cctools-7.0.22/sand/src/overlap.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/overlap.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef OVERLAP_H -#define OVERLAP_H - -#include - -#include "align.h" - -void overlap_write_begin(FILE * file); -void overlap_write_v5(FILE * file, struct alignment *a, const char *name1, const char *name2); -void overlap_write_v7(FILE * file, struct alignment *a, const char *name1, const char *name2); -void overlap_write_end(FILE * file); - -#endif diff -Nru cctools-7.0.22/sand/src/sand_align_kernel.c cctools-7.1.2/sand/src/sand_align_kernel.c --- cctools-7.0.22/sand/src/sand_align_kernel.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/sand_align_kernel.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,217 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "cctools.h" -#include "align.h" -#include "compressed_sequence.h" -#include "overlap.h" -#include "matrix.h" - -#include "macros.h" -#include "debug.h" - -static int min_align = 0; -static double min_qual = 1.0; - -static const char *output_format = "ovl"; -static const char *align_type = "banded"; - -static void show_help(const char *cmd) -{ - printf("Usage: %s [options] \n", cmd); - printf("The most common options are:\n"); - printf(" -a Alignment type: sw, ps, or banded. (default: %s)\n",align_type); - printf(" -o Output format: ovl, ovl_new, align, or matrix. (default: %s)\n",output_format); - printf(" -m Minimum aligment length (default: %d).\n", min_align); - printf(" -q Minimum match quality (default: %.2lf)\n",min_qual); - printf(" -x Delete input file after completion.\n"); - printf(" -d Enable debugging for this subsystem.\n"); - printf(" -v Show program version.\n"); - printf(" -h Display this message.\n"); -} - -int main(int argc, char ** argv) -{ - FILE * input; - struct seq *s1=0, *s2=0; - char ori; - signed char c; - int fileindex; - int del_input=0; - - while((c = getopt(argc, argv, "a:o:k:m:q:xd:vh")) > -1) { - switch (c) { - case 'a': - align_type = optarg; - break; - case 'o': - output_format = optarg; - break; - case 'm': - min_align = atoi(optarg); - break; - case 'q': - min_qual = atof(optarg); - break; - case 'x': - del_input = 1; - break; - case 'd': - debug_flags_set(optarg); - break; - case 'v': - cctools_version_print(stdout, argv[0]); - exit(0); - break; - default: - case 'h': - show_help(argv[0]); - exit(0); - break; - } - } - - cctools_version_debug(D_DEBUG, argv[0]); - - fileindex = optind; - if ((argc - optind) == 1) { - input = fopen(argv[fileindex], "r"); - if (!input) { - fprintf(stderr, "sand_align_kernel: couldn't open %s: %s\n",argv[fileindex],strerror(errno)); - exit(1); - } - } else { - input = stdin; - } - - struct cseq *c1, *c2; - - if(!strcmp(output_format,"ovl") || !strcmp(output_format, "ovl_new")) { - overlap_write_begin(stdout); - } - - // outer loop: read first sequence in comparison list - - while((c1=cseq_read(input))) { - s1 = cseq_uncompress(c1); - cseq_free(c1); - - // inner loop: read sequences until null (indicating end of list) - // then continue again with outer loop. (two nulls to halt.) - - while((c2=cseq_read(input))) { - s2 = cseq_uncompress(c2); - cseq_free(c2); - - int dir = 0; - int start1 = 0; - int start2 = 0; - char* tmp = strdup(s2->metadata); - int metadata_valid = 0; - - char* token = strtok(tmp, " "); - start2 = atoi(token); - metadata_valid++; - while((token = strtok(NULL, " "))) - { - dir = start1; - start1 = start2; - start2 = atoi(token); - metadata_valid++; - } - - if(metadata_valid>=1 && dir==-1) { - seq_reverse_complement(s2); - ori = 'I'; - } else { - ori = 'N'; - } - - struct matrix *m = matrix_create(s1->num_bases,s2->num_bases); - if(!m) { - fprintf(stderr,"sand_align_kernel: out of memory when creating alignment matrix.\n"); - exit(1); - } - - struct alignment *aln; - - if(!strcmp(align_type,"sw")) { - - aln = align_smith_waterman(m,s1->data,s2->data); - - } else if(!strcmp(align_type,"ps")) { - - aln = align_prefix_suffix(m,s1->data,s2->data, min_align); - - } else if(!strcmp(align_type,"banded")) { - if(metadata_valid<3) { - fprintf(stderr,"sand_align_kernel: sequence %s did not indicate start positions for the banded alignment.\n",s2->name); - exit(1); - } - - /* The width of the band is proportional to the desired quality of the match. */ - - int k = 2 + min_qual * MIN(s1->num_bases,s2->num_bases) / 2.0; - if(k<5) k = 5; - - aln = align_banded(m,s1->data, s2->data, start1, start2, k); - } else { - fprintf(stderr,"unknown alignment type: %s\n",align_type); - exit(1); - } - - aln->ori = ori; - - if(aln->quality <= min_qual) { - if(!strcmp(output_format,"ovl")) { - overlap_write_v5(stdout, aln, s1->name, s2->name); - } else if(!strcmp(output_format, "ovl_new")) { - overlap_write_v7(stdout, aln, s1->name, s2->name); - } else if(!strcmp(output_format,"matrix")) { - printf("*** %s alignment of sequences %s and %s (quality %lf):\n\n",align_type,s1->name,s2->name,aln->quality); - matrix_print(m,s1->data,s2->data); - } else if(!strcmp(output_format,"align")) { - printf("*** %s alignment of sequences %s and %s (quality %lf):\n\n",align_type,s1->name,s2->name,aln->quality); - alignment_print(stdout,s1->data,s2->data,aln); - } else { - printf("unknown output format '%s'\n",output_format); - exit(1); - } - } - - matrix_delete(m); - seq_free(s2); - alignment_delete(aln); - } - seq_free(s1); - } - - fclose(input); - - if(!strcmp(output_format,"ovl") || !strcmp(output_format, "ovl_new")) { - overlap_write_end(stdout); - } - - if ((argc - optind) == 1 && del_input == 1) - { - remove(argv[fileindex]); - } - return 0; -} - - - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/sand/src/sand_align_master.c cctools-7.1.2/sand/src/sand_align_master.c --- cctools-7.0.22/sand/src/sand_align_master.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/sand_align_master.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,493 +0,0 @@ - -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "cctools.h" -#include "debug.h" -#include "work_queue.h" -#include "work_queue_catalog.h" -#include "hash_table.h" -#include "stringtools.h" -#include "macros.h" -#include "envtools.h" -#include "getopt.h" -#include "getopt_aux.h" -#include "xxmalloc.h" - -#include "sequence.h" -#include "compressed_sequence.h" - -static struct work_queue *queue = 0; -static struct hash_table *sequence_table = 0; -static int port = WORK_QUEUE_DEFAULT_PORT; -static const char *port_file = 0; -static char *project = NULL; -static int work_queue_master_mode = WORK_QUEUE_MASTER_MODE_STANDALONE; -static int priority = 0; -static char align_prog[1024]; -static const char *align_prog_args = ""; -static const char *candidate_file_name; -static const char *sequence_file_name; -static const char *output_file_name; - -static FILE *sequence_file; -static FILE *candidate_file; -static FILE *output_file; - -static time_t start_time = 0; -static time_t last_display_time = 0; - -static int more_candidates = 1; -static int tasks_submitted = 0; -static int tasks_done = 0; -static timestamp_t tasks_runtime = 0; -static timestamp_t tasks_filetime = 0; -static int candidates_loaded = 0; -static int sequences_loaded = 0; - -static int max_pairs_per_task = 10000; - -#define CANDIDATE_SUCCESS 0 -#define CANDIDATE_EOF 1 -#define CANDIDATE_WAIT 2 - -#define CAND_FILE_LINE_MAX 4096 - -#define unsigned_isspace(c) isspace((unsigned char) c) - - -static void show_help(const char *cmd) -{ - printf("Use: %s [options] \n", cmd); - printf("where options are:\n"); - printf(" -p Port number for work queue master to listen on. (default: %d)\n", port); - printf(" -n Maximum number of candidates per task. (default is %d)\n", max_pairs_per_task); - printf(" -e Extra arguments to pass to the alignment program.\n"); - printf(" -d Enable debugging for this subsystem. (Try -d all to start.)\n"); - printf(" -F <#> Work Queue fast abort multiplier. (default is 10.)\n"); - printf(" -a Advertise the master information to a catalog server.\n"); - printf(" -N Set the project name to \n"); - printf(" -P Priority. Higher the value, higher the priority.\n"); - printf(" -C Set catalog server to . Format: HOSTNAME:PORT\n"); - printf(" -o Send debugging to this file.\n"); - printf(" -Z Select port at random and write it out to this file.\n"); - printf(" -v Show version string\n"); - printf(" -h Show this help screen\n"); -} - -static void display_progress(struct work_queue *q) -{ - struct work_queue_stats info; - static int row_count = 0; - int row_limit = 25; - - work_queue_get_stats(q, &info); - - if(row_count == 0) { - printf(" Total | Workers | Tasks Avg | K-Cand K-Seqs | Total\n"); - printf(" Time | Idle Busy | Submit Idle Run Done Time | Loaded Loaded | Speedup\n"); - row_count = row_limit; - } - - printf("%6d | %4d %4d | %6d %4d %4d %6d %6.2lf | %6d %6d | %5.2lf\n", (int) (time(0) - start_time), info.workers_init + info.workers_ready, info.workers_busy, tasks_submitted, info.tasks_waiting, info.tasks_running, tasks_done, - tasks_done ? tasks_runtime / (double) tasks_done / 1000000.0 : 0, candidates_loaded / 1000, sequences_loaded / 1000, (time(0) > start_time) ? (tasks_runtime / 1000000.0) / (time(0) - start_time) : 0); - - row_count--; - - last_display_time = time(0); - fflush(stdout); -} - -/* -Check to see that the output consists of an envelope [ ... ] -around some OVL records. If there are no good matches in the -output, we should see an envelope with nothing in it. -If the file is completely empty, then there is a problem and -we reject the output. -*/ - -static char *confirm_output(char *output) -{ - char *s = output; - char *result = 0; - - while(unsigned_isspace(*s)) - s++; - - if(*s != '[') { - debug(D_NOTICE, "aligment output did not begin with [:\n%s\n", output); - return 0; - } - - s++; - - while(unsigned_isspace(*s)) - s++; - - result = s; - - while(*s) - s++; - - s--; - - while(unsigned_isspace(*s)) - s--; - - if(*s != ']') { - debug(D_NOTICE, "aligment output did not end with ]:\n%s\n", output); - return 0; - } - - *s = 0; - - return result; -} - -static void task_complete(struct work_queue_task *t) -{ - if(t->return_status != 0) { - debug(D_NOTICE, "task failed with status %d on host %s\n", t->return_status, t->host); - work_queue_submit(queue, t); - return; - } - - char *clean_output = confirm_output(t->output); - if(!clean_output) { - work_queue_submit(queue, t); - return; - } - - fprintf(output_file, "%s", clean_output); - fflush(output_file); - - tasks_done++; - tasks_runtime += (t->time_receive_output_finish - t->time_send_input_start); - tasks_filetime += t->total_transfer_time; - - work_queue_task_delete(t); -} - -static int candidate_read(FILE * fp, char *name1, char *name2, char *extra_data) -{ - char line[CAND_FILE_LINE_MAX]; - - clearerr(fp); - - long start_of_line = ftell(fp); - - if(!fgets(line, CAND_FILE_LINE_MAX, fp)) - return CANDIDATE_WAIT; - - if(line[strlen(line) - 1] != '\n') { - fseek(fp, start_of_line, SEEK_SET); - return CANDIDATE_WAIT; - } - - if(!strcmp(line, "EOF\n")) { - more_candidates = 0; - return CANDIDATE_EOF; - } - - int n = sscanf(line, "%s %s %[^\n]", name1, name2, extra_data); - if(n != 3) - fatal("candidate file is corrupted: %s\n", line); - - candidates_loaded++; - - return CANDIDATE_SUCCESS; -} - -struct cseq *sequence_lookup(struct hash_table *h, const char *name) -{ - struct cseq *c = hash_table_lookup(h, name); - if(c) - return c; - - while(1) { - c = cseq_read(sequence_file); - if(!c) - break; - - sequences_loaded++; - - hash_table_insert(h, c->name, c); - if(!strcmp(name, c->name)) - return c; - - int size = hash_table_size(h); - if(size % 100000 == 0) - debug(D_DEBUG, "loaded %d sequences", size); - } - - fatal("candidate file contains invalid sequence name: %s\n", name); - return 0; -} - -static void buffer_ensure(char **buffer, int *buffer_size, int buffer_used, int buffer_delta) -{ - int buffer_needed = buffer_used + buffer_delta; - - if(buffer_needed > *buffer_size) { - do { - *buffer_size *= 2; - } while(buffer_needed > *buffer_size); - - *buffer = realloc(*buffer, *buffer_size); - } -} - -static struct work_queue_task *task_create(struct hash_table *sequence_table) -{ - char aname1[CAND_FILE_LINE_MAX]; - char aname2[CAND_FILE_LINE_MAX]; - char aextra[CAND_FILE_LINE_MAX]; - - char bname1[CAND_FILE_LINE_MAX]; - char bname2[CAND_FILE_LINE_MAX]; - char bextra[CAND_FILE_LINE_MAX]; - - struct cseq *s1, *s2; - - int result = candidate_read(candidate_file, aname1, aname2, aextra); - if(result != CANDIDATE_SUCCESS) - return 0; - - s1 = sequence_lookup(sequence_table, aname1); - s2 = sequence_lookup(sequence_table, aname2); - - static int buffer_size = 1024; - char *buffer = malloc(buffer_size); - int buffer_pos = 0; - - buffer_ensure(&buffer, &buffer_size, buffer_pos, cseq_size(s1) + cseq_size(s2) + 10); - - buffer_pos += cseq_sprint(&buffer[buffer_pos], s1, ""); - buffer_pos += cseq_sprint(&buffer[buffer_pos], s2, aextra); - - int npairs = 1; - int nseqs = 2; - - do { - result = candidate_read(candidate_file, bname1, bname2, bextra); - if(result != CANDIDATE_SUCCESS) - break; - - s1 = sequence_lookup(sequence_table, bname1); - s2 = sequence_lookup(sequence_table, bname2); - - if(strcmp(aname1, bname1) != 0) { - buffer_ensure(&buffer, &buffer_size, buffer_pos, cseq_size(s1) + cseq_size(s2) + 10); - buffer_pos += cseq_sprint(&buffer[buffer_pos], 0, ""); - buffer_pos += cseq_sprint(&buffer[buffer_pos], s1, ""); - strcpy(aname1, bname1); - strcpy(aname2, bname2); - strcpy(aextra, bextra); - nseqs++; - } - - buffer_ensure(&buffer, &buffer_size, buffer_pos, cseq_size(s2) + 10); - buffer_pos += cseq_sprint(&buffer[buffer_pos], s2, bextra); - - nseqs++; - npairs++; - - } while(npairs < max_pairs_per_task); - - debug(D_DEBUG, "created task of %d sequences and %d comparisons\n", nseqs, npairs); - - char cmd[strlen(align_prog) + strlen(align_prog_args) + 100]; - - sprintf(cmd, "./%s %s aligndata", "align", align_prog_args); - - struct work_queue_task *t = work_queue_task_create(cmd); - work_queue_task_specify_input_file(t, align_prog, "align"); - work_queue_task_specify_input_buf(t, buffer, buffer_pos, "aligndata"); - - free(buffer); - - return t; -} - -int main(int argc, char *argv[]) -{ - signed char c; - - const char *progname = "sand_align_master"; - - debug_config(progname); - - // By default, turn on fast abort option since we know each job is of very similar size (in terms of runtime). - // One can also set the fast_abort_multiplier by the '-f' option. - int wq_option_fast_abort_multiplier = 10; - - while((c = getopt(argc, argv, "e:F:N:C:p:P:n:d:o:Z:vha")) > -1) { - switch (c) { - case 'p': - port = atoi(optarg); - break; - case 'n': - max_pairs_per_task = atoi(optarg); - break; - case 'e': - align_prog_args = strdup(optarg); - break; - case 'd': - debug_flags_set(optarg); - break; - case 'F': - wq_option_fast_abort_multiplier = atof(optarg); - break; - case 'a': - work_queue_master_mode = WORK_QUEUE_MASTER_MODE_CATALOG; - break; - case 'N': - free(project); - project = xxstrdup(optarg); - break; - case 'P': - priority = atoi(optarg); - break; - case 'C': - setenv("CATALOG_HOST", optarg, 1); - work_queue_master_mode = WORK_QUEUE_MASTER_MODE_CATALOG; - break; - case 'o': - debug_config_file(optarg); - break; - case 'Z': - port_file = optarg; - port = 0; - break; - case 'v': - cctools_version_print(stdout, progname); - exit(0); - break; - case 'h': - show_help(progname); - exit(0); - break; - } - } - - cctools_version_debug(D_DEBUG, argv[0]); - - - if((argc - optind) != 4) { - show_help(progname); - exit(1); - } - - if(!find_executable(argv[optind], "PATH", align_prog, sizeof(align_prog))) { - fprintf(stderr, "%s: couldn't find alignment program %s: is it in your path?\n", progname, argv[optind]); - return 1; - } - - - candidate_file_name = argv[optind + 1]; - sequence_file_name = argv[optind + 2]; - output_file_name = argv[optind + 3]; - - sequence_file = fopen(sequence_file_name, "r"); - if(!sequence_file) { - fprintf(stderr, "%s: couldn't open sequence file %s: %s\n", progname, sequence_file_name, strerror(errno)); - return 1; - } - - candidate_file = fopen(candidate_file_name, "r"); - if(!candidate_file) { - fprintf(stderr, "%s: couldn't open candidate file %s: %s\n", progname, candidate_file_name, strerror(errno)); - return 1; - } - - output_file = fopen(output_file_name, "a"); - if(!output_file) { - fprintf(stderr, "%s: couldn't open output file %s: %s\n", progname, output_file_name, strerror(errno)); - return 1; - } - - if(work_queue_master_mode == WORK_QUEUE_MASTER_MODE_CATALOG && !project) { - fprintf(stderr, "sand_align: sand align master running in catalog mode. Please use '-N' option to specify the name of this project.\n"); - fprintf(stderr, "sand_align: Run \"%s -h\" for help with options.\n", argv[0]); - return 1; - } - - queue = work_queue_create(port); - if(!queue) { - fprintf(stderr, "%s: couldn't listen on port %d: %s\n", progname, port, strerror(errno)); - return 1; - } - - port = work_queue_port(queue); - - if(port_file) { - opts_write_port_file(port_file,port); - } - - // advanced work queue options - work_queue_specify_master_mode(queue, work_queue_master_mode); - work_queue_specify_name(queue, project); - work_queue_specify_priority(queue, priority); - work_queue_activate_fast_abort(queue, wq_option_fast_abort_multiplier); - - sequence_table = hash_table_create(20000001, 0); - - start_time = time(0); - - struct work_queue_task *t; - - while(more_candidates || !work_queue_empty(queue)) { - - if(last_display_time < time(0)) - display_progress(queue); - - while(more_candidates && work_queue_hungry(queue)) { - t = task_create(sequence_table); - if(t) { - work_queue_submit(queue, t); - tasks_submitted++; - } else { - break; - } - } - - if(work_queue_empty(queue)) { - if(more_candidates) - sleep(5); - } else { - if(work_queue_hungry(queue)) { - t = work_queue_wait(queue, 0); - } else { - t = work_queue_wait(queue, 5); - } - if(t) - task_complete(t); - } - } - - display_progress(queue); - - printf("Completed %i tasks in %i seconds\n", tasks_done, (int) (time(0) - start_time)); - - fclose(output_file); - fclose(candidate_file); - - work_queue_delete(queue); - - return 0; -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/sand/src/sand_compress_reads.c cctools-7.1.2/sand/src/sand_compress_reads.c --- cctools-7.0.22/sand/src/sand_compress_reads.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/sand_compress_reads.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,117 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame & University of Cambridge -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include -#include -#include - -#include "compressed_sequence.h" - -#include "cctools.h" -#include "debug.h" - -static void show_help(const char *cmd) -{ - printf("Use: %s [options] [infile] [outfile]\n", cmd); - printf("where options are:\n"); - printf(" -q Quiet mode: suppress summary line.\n"); - printf(" -v Show version string.\n"); - printf(" -c Remove Celera read_ids if file came from Celera's gatekeeper\n"); - printf(" -i Remove read_ids but leave the Celera internal ids if the file came from Celera's gatekeeper\n"); - printf(" -h Show this help screen\n"); -} - -int main(int argc, char ** argv) -{ - const char *progname = "sand_compress_reads"; - FILE * infile; - FILE * outfile; - int quiet_mode = 0; - struct seq *s; - struct cseq *c; - signed char d; - int clip = 0; - int internal = 0; - char tmp_id[128]; - int count = 0; - - while((d=getopt(argc,argv,"cvqhi")) > -1) { - switch(d) { - case 'c': - clip = 1; - break; - case 'i': - internal = 1; - break; - case 'q': - quiet_mode = 1; - break; - case 'v': - cctools_version_print(stdout, progname); - exit(0); - break; - case 'h': - default: - show_help(progname); - exit(0); - break; - } - } - - cctools_version_debug(D_DEBUG, argv[0]); - - if( optindname); - strcpy(s->name, strtok(tmp_id,",")); - if(internal != 0){ - strcpy(s->name, strtok(NULL,",")); - } - } - - c = seq_compress(s); - cseq_write(outfile,c); - cseq_free(c); - seq_free(s); - count++; - } - - if(!quiet_mode) { - fprintf(stderr,"%d sequences compressed.\n",count); - } - - fclose(infile); - fclose(outfile); - - return 0; -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/sand/src/sand_filter_kernel.c cctools-7.1.2/sand/src/sand_filter_kernel.c --- cctools-7.0.22/sand/src/sand_filter_kernel.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/sand_filter_kernel.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,264 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "cctools.h" -#include "host_memory_info.h" -#include "debug.h" -#include "macros.h" - -#include "sequence_filter.h" - -static char *progname = "sand_filter_kernel"; -static int num_seqs; -static int kmer_size = 22; -static int window_size = 22; -static unsigned long max_mem_kb = ULONG_MAX; - -static char *repeat_filename = 0; -static char *sequence_filename = 0; -static char *second_sequence_filename = 0; -static char *output_filename = 0; - -#define MEMORY_FOR_MERS(max_mem) (MIN((get_mem_avail()*0.95),(max_mem))-get_mem_usage()) -#define DYNAMIC_RECTANGLE_SIZE(max_mem) (MEMORY_FOR_MERS((max_mem))/KB_PER_SEQUENCE) - -static unsigned long get_mem_avail() -{ - UINT64_T total, avail; - host_memory_info_get(&total, &avail); - return (unsigned long) avail / 1024; -} - -static unsigned long get_mem_usage() -{ - UINT64_T rss, total; - host_memory_usage_get(&rss, &total); - return rss / 1024; -} - -static void show_help(const char *cmd) -{ - printf("Use: %s [options] [second sequence file]\n", cmd); - printf("where options are:\n"); - printf(" -s Size of \"rectangle\" for filtering. You can determine\n"); - printf(" the size dynamically by passing in d rather than a number.\n"); - printf(" -r A meryl file of repeat mers to be filtered out.\n"); - printf(" -k The k-mer size to use in candidate selection (default is 22).\n"); - printf(" -w The minimizer window size to use in candidate selection (default is 22).\n"); - printf(" -o The output file. Default is stdout.\n"); - printf(" output file to indicate it has ended (default is nothing)\n"); - printf(" -d Enable debug messages for this subsystem. Try 'd -all' to start .\n"); - printf(" -v Show version string\n"); - printf(" -h Show this help screen\n"); -} - -static void get_options(int argc, char **argv, const char *progname) -{ - signed char c; - - while((c = getopt(argc, argv, "d:r:s:k:w:f:o:vh")) > -1) { - switch (c) { - case 'r': - repeat_filename = optarg; - break; - case 's': - if(*optarg == 'd') { - rectangle_size = -1; - max_mem_kb = strtol(optarg + 1, 0, 10); - if(max_mem_kb <= 0) - max_mem_kb = ULONG_MAX; - } else - rectangle_size = atoi(optarg); - if(rectangle_size == 0) { - fprintf(stderr, "Invalid rectangle size %s\n", optarg); - exit(1); - } - break; - case 'k': - kmer_size = atoi(optarg); - break; - case 'w': - window_size = atoi(optarg); - break; - case 'o': - output_filename = optarg; - break; - case 'd': - debug_flags_set(optarg); - break; - case 'v': - cctools_version_print(stdout, progname); - exit(0); - case 'h': - show_help(progname); - exit(0); - } - } - - if(argc - optind == 1) { - sequence_filename = argv[optind++]; - } else if(argc - optind == 2) { - sequence_filename = argv[optind++]; - second_sequence_filename = argv[optind++]; - } else { - show_help(progname); - fprintf(stderr, "Incorrect number of arguments. Expected 1 or 2, got %d\n", argc - optind); - exit(1); - } - -} - -int main(int argc, char **argv) -{ - FILE *input; - FILE *repeats = 0; - FILE *output; - - int start_x, end_x, start_y, end_y; - - debug_config(progname); - get_options(argc, argv, progname); - - cctools_version_debug(D_DEBUG, argv[0]); - - unsigned long start_mem, cand_mem, table_mem; - - input = fopen(sequence_filename, "r"); - if(!input) fatal("couldn't open %s: %s\n",sequence_filename,strerror(errno)); - - if(repeat_filename) { - repeats = fopen(repeat_filename, "r"); - if(!repeats) fatal("couldn't open %s: %s\n",repeat_filename,strerror(errno)); - } - - if(output_filename) { - output = fopen(output_filename, "w"); - } else { - output = stdout; - } - - // Data is in the form: - // >id metadata - // data - // >id metadata - // data - // >> - // ... - - set_k(kmer_size); - set_window_size(window_size); - - // If we only give one file, do an all vs. all - // on them. - if(!second_sequence_filename) { - num_seqs = load_seqs(input); - start_x = 0; - end_x = num_seqs; - start_y = 0; - end_y = num_seqs; - } - // If we had two files, do not compare ones from - // the same file to each other. - else { - FILE *input2 = fopen(second_sequence_filename, "r"); - if(!input2) { - fprintf(stderr, "Could not open file %s for reading.\n", second_sequence_filename); - exit(1); - } - num_seqs = load_seqs_two_files(input, &end_x, input2, &end_y); - start_x = 0; - start_y = end_x; - debug(D_DEBUG,"First file contains %d sequences, stored from (%d,%d].\n", end_x, start_x, end_x); - debug(D_DEBUG,"Second file contains %d sequences, stored from (%d,%d].\n", end_y-end_x, start_y, end_y); - } - fclose(input); - - debug(D_DEBUG,"Loaded %d sequences\n",num_seqs); - - init_cand_table(num_seqs * 5); - init_mer_table(num_seqs * 5); - - if(repeats) { - int repeat_count = init_repeat_mer_table(repeats, 2000000, 0); - fclose(repeats); - debug(D_DEBUG,"Loaded %d repeated mers\n", repeat_count); - } - - if(rectangle_size == -1) { - // Do get_mem_avail*0.95 to leave some memory for overhead - rectangle_size = DYNAMIC_RECTANGLE_SIZE(max_mem_kb); - debug(D_DEBUG,"Mem avail: %lu, rectangle size: %d\n",(unsigned long)MEMORY_FOR_MERS(max_mem_kb), rectangle_size); - } - - int curr_start_x = start_x; - int curr_start_y = start_y; - - candidate_t *output_list = 0; - int num_in_list; - - while(curr_start_y < end_y) { - while(curr_start_x < end_x) { - if(start_x == start_y) { - debug(D_DEBUG,"Loading mer table (%d,%d)\n", curr_rect_x, curr_rect_y); - } else { - debug(D_DEBUG,"Loading mer table for [%d,%d) and [%d,%d)\n",curr_start_x, MIN(curr_start_x + rectangle_size, end_x), curr_start_y, MIN(curr_start_y + rectangle_size, end_y)); - } - - start_mem = get_mem_usage(); - - load_mer_table_subset(curr_start_x, MIN(curr_start_x + rectangle_size, end_x), curr_start_y, MIN(curr_start_y + rectangle_size, end_y), (curr_start_x == curr_start_y)); - - table_mem = get_mem_usage(); - - debug(D_DEBUG,"Finished loading, now generating candidates\n"); - debug(D_DEBUG,"Memory used: %lu\n", table_mem - start_mem); - - generate_candidates(); - cand_mem = get_mem_usage(); - - debug(D_DEBUG,"Total candidates generated: %llu\n", (long long unsigned int) total_cand); - debug(D_DEBUG,"Candidate memory used: %lu\n", cand_mem - table_mem); - - output_list = retrieve_candidates(&num_in_list); - output_candidate_list(output, output_list, num_in_list); - free(output_list); - fflush(output); - - debug(D_DEBUG,"Now freeing\n"); - - free_cand_table(); - free_mer_table(); - - debug(D_DEBUG,"Successfully output and freed!\n"); - - curr_rect_x++; - curr_start_x += rectangle_size; - } - curr_rect_y++; - curr_start_y += rectangle_size; - curr_rect_x = curr_rect_y; - if(start_y == 0) { - curr_start_x = curr_start_y; - } else { - curr_start_x = start_x; - } - } - - fclose(output); - - return 0; -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/sand/src/sand_filter_master.c cctools-7.1.2/sand/src/sand_filter_master.c --- cctools-7.0.22/sand/src/sand_filter_master.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/sand_filter_master.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,585 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "cctools.h" -#include "debug.h" -#include "work_queue.h" -#include "work_queue_catalog.h" -#include "host_memory_info.h" -#include "macros.h" -#include "delete_dir.h" -#include "envtools.h" -#include "path.h" -#include "stringtools.h" -#include "getopt.h" -#include "getopt_aux.h" -#include "xxmalloc.h" - -#include "compressed_sequence.h" -#include "sequence_filter.h" - -#include - -enum filter_master_task_result { - FILTER_MASTER_TASK_RESULT_SUCCESS = 0, - FILTER_MASTER_TASK_RESULT_CHIRP_FAILED, - FILTER_MASTER_TASK_RESULT_CHIRP_NOT_FOUND -}; - -#define CHECKPOINT_STATUS_NOT_YET_TRIED 0 -#define CHECKPOINT_STATUS_SUCCESS 1 -#define CHECKPOINT_STATUS_FAILED 2 - -// FUNCTIONS -static void get_options(int argc, char **argv, const char *progname); -static void show_help(const char *cmd); -static void load_sequences(const char *file); -static size_t load_rectangle_to_file(int rect_id, struct cseq **sequences, int cseq_count); -static void task_submit(struct work_queue *q, int curr_rect_x, int curr_rect_y); -static void task_complete(struct work_queue_task *t); -static void display_progress(); - -static int port = WORK_QUEUE_DEFAULT_PORT; -static const char *port_file = 0; -static char *project = NULL; -static int work_queue_master_mode = WORK_QUEUE_MASTER_MODE_STANDALONE; -static int priority = 0; - -// By default, turn on fast abort option since we know each job is of very similar size (in terms of runtime). -// One can also set the fast_abort_multiplier by the '-f' option. -static int wq_option_fast_abort_multiplier = 10; - -static int kmer_size = 22; -static int window_size = 22; -static int do_not_unlink = 0; -static int retry_max = 100; - -static unsigned long int cand_count = 0; - -static struct cseq **sequences = 0; -static int num_seqs = 0; -static int num_rectangles = 0; -static size_t *rectangle_sizes = 0; - -static struct work_queue *q = 0; - -static const char *progname = "sand_filter_master"; -static const char *sequence_filename; -static const char *repeat_filename = 0; -static const char *checkpoint_filename = 0; -static const char *filter_program_name = "sand_filter_kernel"; -static char filter_program_args[255]; -static char filter_program_path[255]; -static const char *outfilename; -static char *outdirname = 0; -static FILE *outfile; -static FILE *checkpoint_file = 0; - -static short **checkpoint = 0; - -static time_t start_time = 0; -static int total_submitted = 0; -static int total_retried = 0; -static int total_processed = 0; -static timestamp_t tasks_runtime = 0; -static timestamp_t tasks_filetime = 0; - -static void show_help(const char *cmd) -{ - printf("Use: %s [options] \n", cmd); - printf("where options are:\n"); - printf(" -p Port number for queue master to listen on. (default: %d)\n", port); - printf(" -s Number of sequences in each filtering task. (default: %d)\n", rectangle_size); - printf(" -r A meryl file of repeat mers to be filtered out.\n"); - printf(" -R Automatically retry failed jobs up to n times. (default: %d)\n", retry_max); - printf(" -k The k-mer size to use in candidate selection (default is %d).\n", kmer_size); - printf(" -w The minimizer window size. (default is %d).\n", window_size); - printf(" -u If set, do not unlink temporary binary output files.\n"); - printf(" -c Checkpoint filename; will be created if necessary.\n"); - printf(" -d Enable debugging for this subsystem. (Try -d all to start.)\n"); - printf(" -F <#> Work Queue fast abort multiplier. (default is 10.)\n"); - printf(" -a Advertise the master information to a catalog server.\n"); - printf(" -N Set the project name to \n"); - printf(" -P Priority. Higher the value, higher the priority.\n"); - printf(" -C Set catalog server to . Format: HOSTNAME:PORT\n"); - printf(" -Z Select port at random and write it out to this file.\n"); - printf(" -o Send debugging to this file. (can also be :stderr, :stdout, :syslog, or :journal)\n"); - printf(" -v Show version string\n"); - printf(" -h Show this help screen\n"); -} - -void load_sequences(const char *filename) -{ - FILE *file; - int i, count, rect_id, rectangle_count; - struct cseq *c; - size_t size; - - rectangle_count = 256; - rectangle_sizes = malloc(rectangle_count * sizeof(size_t)); - - file = fopen(filename, "r"); - if(!file) - fatal("couldn't open %s: %s\n", filename, strerror(errno)); - - debug(D_DEBUG, "rectangle size: %d\n", rectangle_size); - sequences = malloc(rectangle_size * sizeof(struct cseq *)); - if(!sequences) - fatal("No enough memory to hold %d sequences. (%s) \n", rectangle_size, strerror(errno)); - - - count = 0; - rect_id = 0; - while(1) { - c = cseq_read(file); - if(!c) { - if(count != rectangle_size && count > 0) { // write the last rectangle to file - size = load_rectangle_to_file(rect_id, sequences, count); - if(!size) - fatal("Failed to write rectangle %d to file. (%s)\n", rect_id, strerror(errno)); - rectangle_sizes[rect_id] = size; - rect_id++; - for(i = 0; i < count; i++) - cseq_free(sequences[i]); - debug(D_DEBUG, "Rectangle %d has been created.\n", rect_id - 1); - } - - num_rectangles = rect_id; - break; - } - sequences[count] = c; - count++; - num_seqs++; - - if(count == rectangle_size) { - size = load_rectangle_to_file(rect_id, sequences, count); - if(!size) - fatal("Failed to write rectangle %d to file. (%s)\n", rect_id, strerror(errno)); - rectangle_sizes[rect_id] = size; - rect_id++; - if(rect_id == rectangle_count) { - rectangle_count = rectangle_count * 2; - rectangle_sizes = realloc(rectangle_sizes, rectangle_count * sizeof(size_t)); - if(!rectangle_sizes) - fatal("Failed to allocate memory for holding rectangle sizes. Number of rectangles: %d. (%s)\n", rectangle_count, strerror(errno)); - } - for(i = 0; i < count; i++) - cseq_free(sequences[i]); - count = 0; - debug(D_DEBUG, "Rectangle %d has been created.\n", rect_id - 1); - } - } - - fclose(file); - free(sequences); -} - -size_t load_rectangle_to_file(int rect_id, struct cseq **sequences, int cseq_count) -{ - int i; - size_t size; - char tmpfilename[255]; - FILE *tmpfile; - - size = 0; - sprintf(tmpfilename, "%s/rect%03d.cfa", outdirname, rect_id); - tmpfile = fopen(tmpfilename, "w"); - if(!tmpfile) - return 0; - - for(i = 0; i < cseq_count; i++) { - cseq_write(tmpfile, sequences[i]); - size += cseq_size(sequences[i]); - } - fclose(tmpfile); - - return size; -} - -static void init_checkpoint() -{ - int row; - int x, y, status; - - checkpoint = calloc(num_rectangles, sizeof(short *)); - for(row = 0; row < num_rectangles; row++) { - checkpoint[row] = calloc(num_rectangles, sizeof(short)); - } - - if(checkpoint_filename) { - checkpoint_file = fopen(checkpoint_filename, "a+"); - if(!checkpoint_file) { - checkpoint_file = fopen(checkpoint_filename, "w"); - if(!checkpoint_file) - fatal("couldn't create %s: %s", checkpoint_filename, strerror(errno)); - return; - } - } - - if(checkpoint_file) { - while(fscanf(checkpoint_file, "%d %d %d\n", &y, &x, &status) == 3) { - checkpoint[y][x] = status; - } - } -} - -static void checkpoint_task(struct work_queue_task *t) -{ - if(!t) - return; - if(!checkpoint_file) - return; - - int x, y, new_status; - - // Get the rectangles this task belongs to by looking at the tag. - sscanf(t->tag, "%d-%d", &y, &x); - - // Set the status. - new_status = (t->result == 0) ? CHECKPOINT_STATUS_SUCCESS : CHECKPOINT_STATUS_FAILED; - checkpoint[y][x] = new_status; - - // Print this new status out to the file. - fprintf(checkpoint_file, "%d %d %d\n", y, x, new_status); - fflush(checkpoint_file); -} - -static void task_submit(struct work_queue *q, int curr_rect_x, int curr_rect_y) -{ - struct work_queue_task *t; - - char rname_x[32]; - char rname_y[32]; - char cmd[1024]; - char fname_x[255]; - char fname_y[255]; - char tag[32]; - - sprintf(tag, "%03d-%03d", curr_rect_y, curr_rect_x); - - sprintf(rname_x, "rect%03d.cfa", curr_rect_x); - - if(curr_rect_x != curr_rect_y) { - sprintf(rname_y, "rect%03d.cfa", curr_rect_y); - } else { - sprintf(rname_y, "%s", ""); - } - - sprintf(cmd, "./%s %s %s %s", filter_program_name, filter_program_args, rname_x, rname_y); - - // Create the task. - t = work_queue_task_create(cmd); - - // Specify the tag for this task. Used for identifying which - // ones are done. - work_queue_task_specify_tag(t, tag); - - // Send the executable, if it's not already there. - work_queue_task_specify_file(t, filter_program_path, filter_program_name, WORK_QUEUE_INPUT, WORK_QUEUE_CACHE); - - // Send the repeat file if we need it and it's not already there. - if(repeat_filename) - work_queue_task_specify_file(t, repeat_filename, path_basename(repeat_filename), WORK_QUEUE_INPUT, WORK_QUEUE_CACHE); - - // Add the rectangle. Add it as staged, so if the worker - // already has these sequences, there's no need to send them again. - sprintf(fname_x, "%s/%s", outdirname, rname_x); - work_queue_task_specify_file(t, fname_x, rname_x, WORK_QUEUE_INPUT, WORK_QUEUE_CACHE); - if(curr_rect_x != curr_rect_y) { - sprintf(fname_y, "%s/%s", outdirname, rname_y); - work_queue_task_specify_file(t, fname_y, rname_y, WORK_QUEUE_INPUT, WORK_QUEUE_CACHE); - } - - work_queue_submit(q, t); - total_submitted++; - debug(D_DEBUG, "Submitted task for rectangle (%d, %d)\n", curr_rect_y, curr_rect_x); -} - -static void task_complete(struct work_queue_task *t) -{ - checkpoint_task(t); - - if(t->result == 0) { - debug(D_DEBUG, "task complete: %s: %s", t->tag, t->command_line); - if(strlen(t->output) > 0) { - char *out = strdup(t->output); - char *cand1 = malloc(sizeof(char) * 500); - char *cand2 = malloc(sizeof(char) * 500); - int dir, start1, start2; - char *line = strtok(out, "\n"); - int result = sscanf(line, "%s\t%s\t%d\t%d\t%d", cand1, cand2, &dir, &start1, &start2); - while(result == 5) { - cand_count++; - line = strtok(NULL, "\n"); - if(line == NULL) { - break; - } - result = sscanf(line, "%s\t%s\t%d\t%d\t%d", cand1, cand2, &dir, &start1, &start2); - } - free(out); - free(cand1); - free(cand2); - } - fputs(t->output, outfile); - fflush(outfile); - total_processed++; - tasks_runtime += (t->time_receive_output_finish - t->time_send_input_start); - tasks_filetime += t->total_transfer_time; - work_queue_task_delete(t); - } else { - debug(D_DEBUG, "task failed: %s: %s", t->tag, t->command_line); - - if(retry_max > total_retried) { - debug(D_DEBUG, "retrying task %d/%d", total_retried, retry_max); - total_retried++; - work_queue_submit(q, t); - } else { - fprintf(stderr, "%s: giving up after retrying %d tasks.\n", progname, retry_max); - exit(1); - } - } -} - -static void display_progress() -{ - static int row_limit = 25; - static int row_count = 0; - static time_t last_display_time = 0; - struct work_queue_stats info; - time_t current = time(0); - - if((current - last_display_time) < 5) - return; - - work_queue_get_stats(q, &info); - - if(row_count == 0) { - printf(" Total | Workers | Tasks Avg | Candidates\n"); - printf(" Time | Idle Busy | Submit Idle Run Done Time | Found\n"); - row_count = row_limit; - } - - double avg_time = total_processed > 0 ? (tasks_runtime / 1000000.0) / total_processed : 0; - - printf("%6d | %4d %4d | %6d %4d %4d %6d %6.02lf | %lu\n", (int) (current - start_time), info.workers_init + info.workers_ready, info.workers_busy, total_submitted, info.tasks_waiting, info.tasks_running, total_processed, avg_time, cand_count); - - fflush(stdout); - row_count--; - - last_display_time = current; -} - -int main(int argc, char **argv) -{ - debug_config(progname); - - get_options(argc, argv, progname); - - outfile = fopen(outfilename, "a+"); - if(!outfile) { - fprintf(stderr, "%s: couldn't open %s: %s\n", progname, outfilename, strerror(errno)); - exit(1); - } - - if(!find_executable(filter_program_name, "PATH", filter_program_path, sizeof(filter_program_path))) { - fprintf(stderr, "%s: couldn't find %s in your PATH.\n", progname, filter_program_path); - exit(1); - } - - if(work_queue_master_mode == WORK_QUEUE_MASTER_MODE_CATALOG && !project) { - fprintf(stderr, "sand_filter: sand filter master running in catalog mode. Please use '-N' option to specify the name of this project.\n"); - fprintf(stderr, "sand_filter: Run \"%s -h\" for help with options.\n", argv[0]); - return 1; - } - - q = work_queue_create(port); - if(!q) { - fprintf(stderr, "%s: couldn't listen on port %d: %s\n", progname, port, strerror(errno)); - exit(1); - } - - port = work_queue_port(q); - - if(port_file) { - opts_write_port_file(port_file,port); - } - - // advanced work queue options - work_queue_specify_master_mode(q, work_queue_master_mode); - work_queue_specify_name(q, project); - work_queue_specify_priority(q, priority); - work_queue_activate_fast_abort(q, wq_option_fast_abort_multiplier); - - load_sequences(sequence_filename); - debug(D_DEBUG, "Sequence loaded.\n"); - - init_checkpoint(); - - start_time = time(0); - - int curr_start_x = 0, curr_start_y = 0, curr_rect_x = 0, curr_rect_y = 0; - - while(1) { - while(work_queue_hungry(q)) { - if(curr_start_y >= num_seqs) - break; - - display_progress(); - - if(checkpoint[curr_rect_y][curr_rect_x] != CHECKPOINT_STATUS_SUCCESS) - task_submit(q, curr_rect_x, curr_rect_y); - - // Increment the x rectangle - curr_rect_x++; - curr_start_x += rectangle_size; - - // If we've reached the end of a row, move to the - // next row by incrementing the y rectangle. - if(curr_start_x >= num_seqs) { - curr_rect_y++; - curr_start_y += rectangle_size; - curr_rect_x = curr_rect_y; - curr_start_x = curr_rect_x * rectangle_size; - } - } - - if(work_queue_empty(q) && curr_start_y >= num_seqs) - break; - - struct work_queue_task *t = work_queue_wait(q, 5); - if(t) - task_complete(t); - - display_progress(); - } - - printf("%s: candidates generated: %lu\n", progname, cand_count); - - if(checkpoint_file) { - fclose(checkpoint_file); - } - - fprintf(outfile, "EOF\n"); - fclose(outfile); - - work_queue_delete(q); - - if(!do_not_unlink) - delete_dir(outdirname); - - return 0; -} - -static void get_options(int argc, char **argv, const char *progname) -{ - signed char c; - char tmp[512]; - - while((c = getopt(argc, argv, "p:P:n:d:F:N:C:s:r:R:k:w:c:o:uxvhaZ:")) > -1) { - switch (c) { - case 'p': - port = atoi(optarg); - break; - case 'r': - repeat_filename = optarg; - break; - case 'R': - retry_max = atoi(optarg); - break; - case 's': - rectangle_size = atoi(optarg); - break; - case 'k': - kmer_size = atoi(optarg); - break; - case 'w': - window_size = atoi(optarg); - break; - case 'c': - checkpoint_filename = optarg; - break; - case 'd': - debug_flags_set(optarg); - break; - case 'F': - wq_option_fast_abort_multiplier = atof(optarg); - break; - case 'a': - work_queue_master_mode = WORK_QUEUE_MASTER_MODE_CATALOG; - break; - case 'N': - free(project); - project = xxstrdup(optarg); - break; - case 'P': - priority = atoi(optarg); - break; - case 'C': - setenv("CATALOG_HOST", optarg, 1); - work_queue_master_mode = WORK_QUEUE_MASTER_MODE_CATALOG; - break; - case 'u': - do_not_unlink = 1; - break; - case 'Z': - port_file = optarg; - port = 0; - break; - case 'o': - debug_config_file(optarg); - break; - case 'v': - cctools_version_print(stdout, progname); - exit(0); - default: - case 'h': - show_help(progname); - exit(0); - } - } - - cctools_version_debug(D_DEBUG, argv[0]); - - if(argc - optind != 2) { - show_help(progname); - exit(1); - } - - sequence_filename = argv[optind++]; - outfilename = argv[optind++]; - - outdirname = malloc(strlen(outfilename) + 15); - sprintf(outdirname, "%s.filter.tmp", outfilename); - - if(mkdir(outdirname, S_IRWXU) != 0) { - if(errno == EEXIST) { - fprintf(stderr, "%s: directory %s already exists, you may want to delete or rename before running.\n", progname, outdirname); - } else { - fprintf(stderr, "%s: couldn't create %s: %s\n", progname, outdirname, strerror(errno)); - exit(1); - } - } - - sprintf(filter_program_args, "-k %d -w %d -s d", kmer_size, window_size); - - if(repeat_filename) { - sprintf(tmp, " -r %s", path_basename(repeat_filename)); - strcat(filter_program_args, tmp); - } -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/sand/src/sand_runCA_5.4 cctools-7.1.2/sand/src/sand_runCA_5.4 --- cctools-7.0.22/sand/src/sand_runCA_5.4 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/sand_runCA_5.4 1970-01-01 00:00:00.000000000 +0000 @@ -1,5237 +0,0 @@ -#!/usr/bin/env perl - -# This file is a modified version of the runCA script distributed -# with the Whole Genome Shotgun Assembler (wgs-assembler), which is -# licensed under the GNU General Public License. -# More information is available here: -# http://sourceforge.net/projects/wgs-assembler/files/ - -# This program has been modified to work with the Scalable Assembler -# at Notre Dame (SAND), which is also licensed under the GNU General -# Public License. More information is available here: -# http://ccl.cse.nd.edu/software/sand - -use strict; -use Config; # for @signame -use FindBin; -use Cwd; - -use vars qw($wrk $asm); -use vars qw($numFrags); -use vars qw(%global); -use vars qw(%synops); -use vars qw($commandLineOptions); -use POSIX qw(ceil floor); - -# Set some not reasonable defaults. -$wrk = undef; -$asm = undef; -use strict; - - -sub submitBatchJobs($$) { - my $SGE = shift @_; - my $TAG = shift @_; - - if (runningOnGrid()) { - system($SGE) and caFailure("Failed to submit batch jobs."); - submitScript($TAG); - } else { - pleaseExecute($SGE); - } -} - - -# Decide what bin directory to use. -# -# When we are running on SGE, the path of this perl script is NOT -# always the correct architecture. If the submission host is -# FreeBSD, but the grid is Linux, the BSD box will submit -# FreeBSD/bin/runCA.pl to the grid -- unless it knows in advance, -# there is no way to pick the correct one. The grid host then has to -# have enough smarts to choose the correct binaries, and that is what -# we're doing here. -# -# To make it more trouble, shell scripts need to do all this by -# themselves. -# -sub getBinDirectory () { - my $installDir; - - ### - ### CODE DUPLICATION WITH getBinDirectoryShellCode - ### - - # Assume the current binary path is the path to the global CA - # install directory. - - # CODE DUPLICATION!!! - my @t = split '/', "$FindBin::RealBin"; - pop @t; # bin - pop @t; # arch, e.g., FreeBSD-amd64 - my $installDir = join '/', @t; # path to the assembler - # CODE DUPLICATION!!! - - # Guess what platform we are currently running on. - - my $syst = `uname -s`; chomp $syst; # OS implementation - my $arch = `uname -m`; chomp $arch; # Hardware platform - my $name = `uname -n`; chomp $name; # Name of the system - - $arch = "amd64" if ($arch eq "x86_64"); - $arch = "ppc" if ($arch eq "Power Macintosh"); - - my $path = "$installDir/$syst-$arch/bin"; - - my $pathMap = getGlobal("pathMap"); - if (defined($pathMap)) { - open(F, "< $pathMap") or caFailure("failed to open pathMap '$pathMap'", undef); - while () { - my ($n, $b) = split '\s+', $_; - $path = $b if ($name eq $n); - } - close(F); - } - - return($path); -} - -sub getBinDirectoryShellCode () { - my $string; - - # CODE DUPLICATION!!! - my @t = split '/', "$FindBin::RealBin"; - pop @t; # bin - pop @t; # arch, e.g., FreeBSD-amd64 - my $installDir = join '/', @t; # path to the assembler - # CODE DUPLICATION!!! - - $string = "\n"; - $string .= "syst=`uname -s`\n"; - $string .= "arch=`uname -m`\n"; - $string .= "name=`uname -n`\n"; - $string .= "\n"; - $string .= "if [ \"\$arch\" = \"x86_64\" ] ; then\n"; - $string .= " arch=\"amd64\"\n"; - $string .= "fi\n"; - $string .= "if [ \"\$arch\" = \"Power Macintosh\" ] ; then\n"; - $string .= " arch=\"ppc\"\n"; - $string .= "fi\n"; - $string .= "\n"; - $string .= "bin=\"$installDir/\$syst-\$arch/bin\"\n"; - $string .= "\n"; - - my $pathMap = getGlobal("pathMap"); - if (defined($pathMap)) { - open(PM, "< $pathMap") or caFailure("failed to open pathMap '$pathMap'", undef); - while () { - my ($n, $b) = split '\s+', $_; - $string .= "if [ \"\$name\" = \"$n\" ] ; then\n"; - $string .= " bin=\"$b\"\n"; - $string .= "fi\n"; - } - close(PM); - $string .= "\n"; - } - - return($string); -} - - - - - -# Return the second argument, unless the first argument is found in -# %global, in which case return that. -# -sub getGlobal ($) { - my $var = shift @_; - caFailure("script error -- $var has no defined value", undef) if (!exists($global{$var})); - return($global{$var}); -} - -sub setGlobal ($$) { - my $var = shift @_; - my $val = shift @_; - # If no value, set the field to undefined, the default for many of the options. - if ($val eq "") { - $val = undef; - } - # Special case -- merSize sets both obtMerSize and ovlMerSize. - if ($var eq "merSize") { - setGlobal("obtMerSize", $val); - setGlobal("ovlMerSize", $val); - return; - } - # Special case -- overlapper sets both obtOverlapper and ovlOverlapper. - if ($var eq "overlapper") { - setGlobal("obtOverlapper", $val); - setGlobal("ovlOverlapper", $val); - return; - } - if (!exists($global{$var})) { - # If "help" exists, we're parsing command line options, and - # will catch this failure in printHelp(). Otherwise, this is - # an internal error, and we should bomb now. - # - if (exists($global{"help"})) { - setGlobal("help", getGlobal("help") . "'$var' is not a valid option; see 'runCA -options' for a list of valid options.\n"); - } else { - caFailure("'$var' is not a valid Global variable", undef); - } - } - $global{$var} = $val; -} - -sub setDefaults () { - - # The rules: - # - # 1) Before changing these defaults, read the (printed) documentation. - # 2) After changing, update the documentation. - # 3) Add new defaults in the correct section. - # 4) Keep defaults in the same order as the documentation. - # 5) UPDATE THE DOCUMENTATION. - # - - ##### General Configuration Options (aka miscellany) - - $global{"pathMap"} = undef; - $synops{"pathMap"} = "File with a hostname to binary directory map"; - - $global{"shell"} = "/bin/sh"; - $synops{"shell"} = "Command interpreter to use; sh-compatible (e.g., bash), NOT C-shell (csh or tcsh)"; - - ##### Error Rates - - $global{"ovlErrorRate"} = 0.06; - $synops{"ovlErrorRate"} = "Overlaps above this error rate are not computed"; - - $global{"utgErrorRate"} = 0.015; - $synops{"utgErrorRate"} = "Overlaps above this error rate are not used to construct unitigs"; - - $global{"cnsErrorRate"} = 0.06; - $synops{"cnsErrorRate"} = "Consensus expects alignments at about this error rate"; - - $global{"cgwErrorRate"} = 0.10; - $synops{"cgwErrorRate"} = "Unitigs/Contigs are not merged if they align above this error rate"; - - ##### Stopping conditions - - $global{"stopAfter"} = undef; - $synops{"stopAfter"} = "Tell runCA when to halt execution"; - - ##### Sun Grid Engine - - $global{"useGrid"} = 0; - $synops{"useGrid"} = "Enable SGE globally"; - - $global{"scriptOnGrid"} = 0; - $synops{"scriptOnGrid"} = "Enable SGE for runCA (and unitigger, scaffolder, other sequential phases)"; - - $global{"ovlOnGrid"} = 1; - $synops{"ovlOnGrid"} = "Enable SGE for overlap computations"; - - $global{"frgCorrOnGrid"} = 0; - $synops{"frgCorrOnGrid"} = "Enable SGE for the fragment error correction"; - - $global{"ovlCorrOnGrid"} = 0; - $synops{"ovlCorrOnGrid"} = "Enable SGE for the overlap error correction"; - - $global{"cnsOnGrid"} = 1; - $synops{"cnsOnGrid"} = "Enable SGE for consensus"; - - $global{"maxGridJobSize"} = undef; - $synops{"maxGridJobSize"} = ""; - - $global{"sge"} = undef; - $synops{"sge"} = "SGE options applied to all SGE jobs"; - - $global{"sgeScript"} = undef; - $synops{"sgeScript"} = "SGE options applied to runCA jobs (and unitigger, scaffolder, other sequential phases)"; - - $global{"sgeOverlap"} = undef; - $synops{"sgeOverlap"} = "SGE options applied to overlap computation jobs"; - - $global{"sgeMerOverlapSeed"} = undef; - $synops{"sgeMerOverlapSeed"} = "SGE options applied to mer overlap seed (overmerry) jobs"; - - $global{"sgeMerOverlapExtend"} = undef; - $synops{"sgeMerOverlapExtend"} = "SGE options applied to mer overlap extend (olap-from-seeds) jobs"; - - $global{"sgeConsensus"} = undef; - $synops{"sgeConsensus"} = "SGE options applied to consensus jobs"; - - $global{"sgeFragmentCorrection"} = undef; - $synops{"sgeFragmentCorrection"} = "SGE options applied to fragment error correction jobs"; - - $global{"sgeOverlapCorrection"} = undef; - $synops{"sgeOverlapCorrection"} = "SGE options applied to overlap error correction jobs"; - - $global{"sgePropagateHold"} = undef; - $synops{"sgePropagateHold"} = undef; # Internal option - - ##### Preoverlap - - $global{"gkpFixInsertSizes"} = 1; - $synops{"gkpFixInsertSizes"} = "Update stddev to 0.10 * mean if it is too large"; - - ##### Vector Trimming - - $global{"vectorIntersect"} = undef; - $synops{"vectorIntersect"} = "File of vector clear ranges"; - - $global{"vectorTrimmer"} = "ca"; - $synops{"vectorTrimmer"} = "Use the CA default vector trimmer, or figaro"; - - $global{"figaroFlags"} = "-T 30 -M 100 -E 500 -V f"; - $synops{"figaroFlags"} = "Options to the figaro vector trimmer"; - - ##### Overlap Based Trimming - - $global{"perfectTrimming"} = undef; # SECRET! - $synops{"perfectTrimming"} = undef; # SECRET! - - $global{"doOverlapTrimming"} = 1; - $synops{"doOverlapTrimming"} = "Enable the Overlap Based Trimming module"; - - $global{"doChimeraDetection"} = 1; - $synops{"doChimeraDetection"} = "Enable the OBT chimera detection and cleaning module"; - - ##### Overlapper - - $global{"obtOverlapper"} = "ovl"; - $synops{"obtOverlapper"} = "Which overlap algorithm to use for OBT overlaps"; - - $global{"ovlOverlapper"} = "ovl"; - $synops{"ovlOverlapper"} = "Which overlap algorithm to use for OVL (unitigger) overlaps"; - - $global{"ovlStoreMemory"} = 1024; - $synops{"ovlStoreMemory"} = "How much memory (MB) to use when constructing overlap stores"; - - $global{"ovlThreads"} = 2; - $synops{"ovlThreads"} = "Number of threads to use when computing overlaps"; - - $global{"ovlConcurrency"} = 1; - $synops{"ovlConcurrency"} = "If not SGE, number of overlapper processes to run at the same time"; - - $global{"ovlStart"} = 1; - $synops{"ovlStart"} = "Starting fragment for overlaps (EXPERT!)"; - - $global{"ovlHashBlockSize"} = 200000; - $synops{"ovlHashBlockSize"} = "Number of fragments to load into the in-core overlap hash table"; - - $global{"ovlRefBlockSize"} = 2000000; - $synops{"ovlRefBlockSize"} = "Number of fragments to search against the hash table per batch"; - - $global{"ovlMemory"} = "2GB"; - $synops{"ovlMemory"} = "Amount of memory to use for overlaps"; - - $global{"ovlMerSize"} = 22; - $synops{"ovlMerSize"} = "K-mer size for seeds in overlaps"; - - $global{"ovlMerThreshold"} = "auto"; - $synops{"ovlMerThreshold"} = "K-mer frequency threshold; mers more frequent than this are ignored"; - - $global{"obtMerSize"} = 22; - $synops{"obtMerSize"} = "K-mer size"; - - $global{"obtMerThreshold"} = "auto"; - $synops{"obtMerThreshold"} = "K-mer frequency threshold; mers more frequent than this are ignored"; - - $global{"merCompression"} = 1; - $synops{"merCompression"} = "K-mer size"; - - $global{"merOverlapperThreads"} = 2; - $synops{"merOverlapperThreads"} = "Number of threads to use for both mer overlapper seed finding and extension jobs"; - - $global{"merOverlapperSeedBatchSize"} = 100000; - $synops{"merOverlapperSeedBatchSize"} = "Number of fragments in a mer overlapper seed finding batch; directly affects memory usage"; - - $global{"merOverlapperExtendBatchSize"}= 75000; - $synops{"merOverlapperExtendBatchSize"}= "Number of fragments in a mer overlapper seed extension batch; directly affects memory usage"; - - $global{"merOverlapperCorrelatedDiffs"}= 0; - $synops{"merOverlapperCorrelatedDiffs"}= "EXPERIMENTAL!"; - - $global{"merOverlapperSeedConcurrency"}= 1; - $synops{"merOverlapperSeedConcurrency"}= "If not SGE, number of mer overlapper seed finding processes to run at the same time"; - - $global{"merOverlapperExtendConcurrency"}= 1; - $synops{"merOverlapperExtendConcurrency"}= "If not SGE, number of mer overlapper seed extension processes to run at the same time"; - - $global{"umdOverlapperFlags"} = "-use-uncleaned-reads -trim-error-rate 0.03 -max-minimizer-cutoff 150"; - $synops{"umdOverlapperFlags"} = "Options for the UMD overlapper"; - - $global{"sandFilterFlags"} = ""; - $synops{"sandFilterFlags"} = "Options to be passed to sand_filter_master."; - - $global{"sandAlignFlags"} = "-n 10000 sand_align_kernel -e \"-q 0.04 -m 40\""; - $synops{"sandAlignFlags"} = "Options to be passed to sand_align_master."; - - $global{"sandPort"} = "9123"; - $synops{"sandPort"} = "Port number for workers to connect to SAND.\n"; - - ##### Mers - - $global{"merylMemory"} = 800; - $synops{"merylMemory"} = "Amount of memory, in MB, to use for mer counting"; - - $global{"merylThreads"} = 1; - $synops{"merylThreads"} = "Number of threads to use for mer counting"; - - ##### Fragment/Overlap Error Correction - - $global{"frgCorrBatchSize"} = 200000; - $synops{"frgCorrBatchSize"} = "Number of fragments per fragment error detection batch, directly affects memory usage"; - - $global{"doFragmentCorrection"} = 1; - $synops{"doFragmentCorrection"} = "Do overlap error correction"; - - $global{"frgCorrThreads"} = 2; - $synops{"frgCorrThreads"} = "Number of threads to use while computing fragment errors"; - - $global{"frgCorrConcurrency"} = 1; - $synops{"frgCorrConcurrency"} = "If not SGE, number of fragment error detection processes to run at the same time"; - - $global{"ovlCorrBatchSize"} = 200000; - $synops{"ovlCorrBatchSize"} = "Number of fragments per overlap error correction batch"; - - $global{"ovlCorrConcurrency"} = 4; - $synops{"ovlCorrConcurrency"} = "If not SGE, number of overlap error correction processes to run at the same time"; - - ##### Unitigger & BOG Options - - $global{"unitigger"} = "utg"; - $synops{"unitigger"} = "Which unitig algorithm to use; utg or bog (Best Overlap Graph)"; - - $global{"utgGenomeSize"} = undef; - $synops{"utgGenomeSize"} = "An estimate of the size of the genome; decides if unitigs are unique or repeats"; - - $global{"utgBubblePopping"} = 1; - $synops{"utgBubblePopping"} = "Smooth polymorphic regions"; - - $global{"utgRecalibrateGAR"} = 1; - $synops{"utgRecalibrateGAR"} = "Use an experimental algorithm to decide unique/repeat"; - - $global{"bogPromiscuous"} = 0; - $synops{"bogPromiscuous"} = "EXPERT!"; - - $global{"bogEjectUnhappyContain"} = 0; - $synops{"bogEjectUnhappyContain"} = "EXPERT!"; - - $global{"bogBadMateDepth"} = 7; - $synops{"bogBadMateDepth"} = "EXPERT!"; - - ##### Scaffolder Options - - $global{"cgwOutputIntermediate"} = 0; - $synops{"cgwOutputIntermediate"} = "Output .cgw files for intermediate scaffolding (advanced)"; - - $global{"cgwPurgeCheckpoints"} = 1; - $synops{"cgwPurgeCheckpoints"} = "Remove cgw checkpoint files when a scaffolding step finishes successfully"; - - $global{"cgwDemoteRBP"} = 1; - $synops{"cgwDemoteRBP"} = "EXPERT!"; - - $global{"cgwUseUnitigOverlaps"} = 0; - $synops{"cgwUseUnitigOverlaps"} = "Use unused best overlaps (from BOG) in scaffolder (EXPERIMENTAL)"; - - $global{"astatLowBound"} = 1; - $synops{"astatLowBound"} = "EXPERT!"; - - $global{"astatHighBound"} = 5; - $synops{"astatHighBound"} = "EXPERT!"; - - $global{"stoneLevel"} = 2; - $synops{"stoneLevel"} = "EXPERT!"; - - $global{"computeInsertSize"} = 0; - $synops{"computeInsertSize"} = "Compute a scratch scaffolding to estimate insert sizes"; - - $global{"cgwDistanceSampleSize"} = 100; - $synops{"cgwDistanceSampleSize"} = "Require N mates to reestimate insert sizes"; - - $global{"doResolveSurrogates"} = 1; - $synops{"doResolveSurrogates"} = "Place fragments in surrogates in the final assembly"; - - $global{"doExtendClearRanges"} = 2; - $synops{"doExtendClearRanges"} = "Enable the clear range extension heuristic"; - - $global{"extendClearRangesStepSize"} = undef; - $synops{"extendClearRangesStepSize"} = "Batch N scaffolds per ECR run"; - - ##### Consensus Options - - $global{"cnsPartitions"} = 128; - $synops{"cnsPartitions"} = "Partition consensus into N jobs"; - - $global{"cnsMinFrags"} = 75000; - $synops{"cnsMinFrags"} = "Don't make a consensus partition with fewer than N fragments"; - - $global{"cnsConcurrency"} = 2; - $synops{"cnsConcurrency"} = "If not SGE, number of consensus jobs to run at the same time"; - - $global{"consensus"} = "cns"; - $synops{"consensus"} = "Which consensus algorithm to use; currently only 'cns' is supported"; - - ##### Terminator Options - - $global{"fakeUIDs"} = 0; - $synops{"fakeUIDs"} = "Don't query a UID server, use UIDs specific to this assembly"; - - $global{"uidServer"} = undef; - $synops{"uidServer"} = "EXPERT!"; - - $global{"createAGP"} = 0; - $synops{"createAGP"} = "Create an AGP file for the assembly"; - - $global{"createACE"} = 0; - $synops{"createACE"} = "Create an ACE file for the assembly"; - - $global{"createPosMap"} = 1; - $synops{"createPosMap"} = "Create the POSMAP files for the assembly"; - - $global{"merQC"} = 0; - $synops{"merQC"} = "Compute a mer-based QC for the assembly"; - - $global{"merQCmemory"} = 1024; - $synops{"merQCmemory"} = "Memory to use for the mer-based QC"; - - $global{"merQCmerSize"} = 22; - $synops{"merQCmerSize"} = "Mer size to use for the mer-based QC"; - - $global{"cleanup"} = "none"; - $synops{"cleanup"} = "At the end of a successful assembly, remove none/some/many/all of the intermediate files"; - - ##### Options for toggling assembly. - - $global{"doToggle"} = 0; - $synops{"doToggle"} = "At the end of a successful assembly, search for placed surrogates and toggle them to be unique unitigs. Re-run the assembly starting from scaffolder"; - - $global{"toggleUnitigLength"} = 2000; - $synops{"toggleUnitigLength"} = "Minimum length for a surrogate to be toggled"; - - $global{"toggleNumInstances"} = 1; - $synops{"toggleNumInstances"} = "Number of instances for a surrogate to be toggled"; - - ##### Ugly, command line options passed to printHelp() - - $global{"help"} = ""; - $synops{"help"} = undef; - - $global{"version"} = 0; - $synops{"version"} = undef; - - $global{"options"} = 0; - $synops{"options"} = undef; - - #### Closure Options - $global{"closureEdges"} = undef; - $synops{"closureEdges"} = "A link to the file of the format readUID leftMateUID rightMateUID specifying closure constraints"; - - $global{"closureOverlaps"} = 2; - $synops{"closureOverlaps"} = "Option for handling overlaps involving closure reads.\n\t0 - Treat them just like regular reads, \n\t1 - Do not allow any overlaps (i.e. closure reads will stay as singletons until scaffolding), \n\t2 - allow overlaps betweeen closure reads and non-closure reads only"; - - $global{"closurePlacement"} = 2; - $synops{"closurePlacement"} = "Option for placing closure reads using the constraints.\n\t0 - Place at the first location found\n\t2 - Place at the best location (indicated by most constraints)\n\t3 - Place at multiple locations as long as the closure read/unitig in question is not unique"; -} - -sub makeAbsolute ($) { - my $var = shift @_; - my $val = getGlobal($var); - if (defined($val) && ($val !~ m!^/!)) { - $val = "$ENV{'PWD'}/$val"; - setGlobal($var, $val); - $commandLineOptions .= " \"$var=$val\" "; - } -} - -sub fixCase ($) { - my $var = shift @_; - my $val = getGlobal($var); - $val =~ tr/A-Z/a-z/; - setGlobal($var, $val); -} - -sub setParametersFromFile ($@) { - my $specFile = shift @_; - my @fragFiles = @_; - - if (exists($ENV{'AS_OVL_ERROR_RATE'})) { - setGlobal("ovlErrorRate", $ENV{'AS_OVL_ERROR_RATE'}); - print STDERR "ENV: ovlErrorRate $ENV{'AS_OVL_ERROR_RATE'}\n"; - } - if (exists($ENV{'AS_CGW_ERROR_RATE'})) { - setGlobal("cgwErrorRate", $ENV{'AS_CGW_ERROR_RATE'}); - print STDERR "cgwErrorRate $ENV{'AS_CGW_ERROR_RATE'}\n"; - } - if (exists($ENV{'AS_CNS_ERROR_RATE'})) { - setGlobal("cnsErrorRate", $ENV{'AS_CNS_ERROR_RATE'}); - print STDERR "cnsErrorRate $ENV{'AS_CNS_ERROR_RATE'}\n"; - } - - if (defined($specFile)) { - my $bin = "$FindBin::RealBin/spec"; - - if (-e $specFile && ! -d $specFile) { - open(F, "< $specFile") or caFailure("Couldn't open '$specFile'", undef); - } elsif (-e "$bin/$specFile") { - open(F, "< $bin/$specFile") or caFailure("Couldn't open '$bin/$specFile'", undef); - } elsif (-e "$bin/$specFile.specFile") { - open(F, "< $bin/$specFile.specFile") or caFailure("Couldn't open '$bin/$specFile.specFile'", undef); - } else { - caFailure("specFile '$specFile' or '$bin/$specFile' or '$bin/$specFile.specFile' not found", undef); - } - while () { - s/^\s+//; - s/\s+$//; - - next if (m/^\s*\#/); - next if (m/^\s*$/); - - if (m/\s*(\w*)\s*=([^#]*)#*.*$/) { - my ($var, $val) = ($1, $2); - print STDERR $_,"\n"; # echo the spec file - $var =~ s/^\s+//; $var =~ s/\s+$//; - $val =~ s/^\s+//; $val =~ s/\s+$//; - undef $val if ($val eq "undef"); - setGlobal($var, $val); - } else { - my $xx = $_; - $xx = "$ENV{'PWD'}/$xx" if ($xx !~ m!^/!); - if (-e $xx) { - push @fragFiles, $xx; - } else { - setGlobal("help", getGlobal("help") . "File not found or invalid specFile line '$_'\n"); - } - } - } - close(F); - } - - return(@fragFiles); -} - - -sub setParametersFromCommandLine(@) { - my @specOpts = @_; - - foreach my $s (@specOpts) { - if ($s =~ m/\s*(\w*)\s*=(.*)/) { - my ($var, $val) = ($1, $2); - $var =~ s/^\s+//; $var =~ s/\s+$//; - $val =~ s/^\s+//; $val =~ s/\s+$//; - setGlobal($var, $val); - } else { - setGlobal("help", getGlobal("help") . "Misformed command line option '$s'.\n"); - } - } -} - - -sub setParameters () { - - # Fiddle with filenames to make them absolute paths. - # - makeAbsolute("vectorIntersect"); - makeAbsolute("pathMap"); - - # Adjust case on some of them - # - fixCase("obtOverlapper"); - fixCase("ovlOverlapper"); - fixCase("unitigger"); - fixCase("vectorTrimmer"); - #fixCase("stopAfter"); - fixCase("consensus"); - fixCase("cleanup"); - - if ((getGlobal("obtOverlapper") ne "mer") && (getGlobal("obtOverlapper") ne "ovl") && (getGlobal("obtOverlapper") ne "umd") && (getGlobal("obtOverlapper") ne "sand")) { - caFailure("invalid obtOverlapper specified (" . getGlobal("obtOverlapper") . "); must be 'mer' or 'ovl' or 'umd' or 'sand'", undef); - } - if ((getGlobal("ovlOverlapper") ne "mer") && (getGlobal("ovlOverlapper") ne "ovl") && (getGlobal("ovlOverlapper") ne "umd") && (getGlobal("ovlOverlapper") ne "sand")) { - caFailure("invalid ovlOverlapper specified (" . getGlobal("ovlOverlapper") . "); must be 'mer' or 'ovl' or 'umd' or 'sand'", undef); - } - if ((getGlobal("unitigger") ne "utg") && (getGlobal("unitigger") ne "bog")) { - caFailure("invalid unitigger specified (" . getGlobal("unitigger") . "); must be 'utg' or 'bog'", undef); - } - if ((getGlobal("vectorTrimmer") ne "ca") && (getGlobal("vectorTrimmer") ne "figaro")) { - caFailure("invalid vectorTrimmer specified (" . getGlobal("vectorTrimmer") . "); must be 'ca' or 'figaro'", undef); - } - if ((getGlobal("consensus") ne "cns") && (getGlobal("consensus") ne "seqan")) { - caFailure("invalid consensus specified (" . getGlobal("consensus") . "); must be 'cns' or 'seqan'", undef); - } - if ((getGlobal("cleanup") ne "none") && - (getGlobal("cleanup") ne "light") && - (getGlobal("cleanup") ne "heavy") && - (getGlobal("cleanup") ne "aggressive")) { - caFailure("invalid cleaup specified (" . getGlobal("cleanup") . "); must be 'none', 'light', 'heavy' or 'aggressive'", undef); - } - - # PIck a nice looking set of binaries, and check them. - # - { - my $bin = getBinDirectory(); - - caFailure("can't find 'gatekeeper' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/gatekeeper"); - caFailure("can't find 'meryl' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/meryl"); - caFailure("can't find 'overlap' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/overlap"); - caFailure("can't find 'unitigger' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/unitigger"); - caFailure("can't find 'cgw' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/cgw"); - caFailure("can't find 'consensus' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/consensus"); - caFailure("can't find 'terminator' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/terminator"); - - if ((getGlobal("obtOverlapper") eq "mer") || (getGlobal("ovlOverlapper") eq "mer")) { - caFailure("can't find 'overmerry' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/overmerry"); - } - } - - # Set the globally accessible error rates. Adjust them if they - # look strange. - # - # We must have: ovl <= cns <= cgw - # We usually have: ovl == cns <= cgw - # - my $ovlER = getGlobal("ovlErrorRate"); - my $utgER = getGlobal("utgErrorRate"); - my $cgwER = getGlobal("cgwErrorRate"); - my $cnsER = getGlobal("cnsErrorRate"); - - if (($ovlER < 0.0) || (0.25 < $ovlER)) { - caFailure("ovlErrorRate is $ovlER, this MUST be between 0.00 and 0.25", undef); - } - if (($utgER < 0.0) || (0.25 < $utgER)) { - caFailure("utgErrorRate is $utgER, this MUST be between 0.00 and 0.25", undef); - } - if (($cgwER < 0.0) || (0.25 < $cgwER)) { - caFailure("cgwErrorRate is $cgwER, this MUST be between 0.00 and 0.25", undef); - } - if (($cnsER < 0.0) || (0.25 < $cnsER)) { - caFailure("cnsErrorRate is $cnsER, this MUST be between 0.00 and 0.25", undef); - } - if ($utgER > $ovlER) { - caFailure("utgErrorRate is $utgER, this MUST be <= ovlErrorRate ($ovlER)", undef); - } - if ($ovlER > $cnsER) { - caFailure("ovlErrorRate is $ovlER, this MUST be <= cnsErrorRate ($cnsER)", undef); - } - if ($ovlER > $cgwER) { - caFailure("ovlErrorRate is $ovlER, this MUST be <= cgwErrorRate ($cgwER)", undef); - } - if ($cnsER > $cgwER) { - caFailure("cnsErrorRate is $cnsER, this MUST be <= cgwErrorRate ($cgwER)", undef); - } - $ENV{'AS_OVL_ERROR_RATE'} = $ovlER; - $ENV{'AS_CGW_ERROR_RATE'} = $cgwER; - $ENV{'AS_CNS_ERROR_RATE'} = $cnsER; -} - -sub logVersion() { - my $bin = getBinDirectory(); - - system("$bin/gatekeeper --version"); - system("$bin/overlap --version"); - system("$bin/unitigger --version"); - system("$bin/buildUnitigs --version"); - system("$bin/cgw --version"); - system("$bin/consensus --version"); - system("$bin/terminator --version"); -} - -sub printHelp () { - - if (getGlobal("version")) { - logVersion(); - exit(0); - } - - if (getGlobal("options")) { - foreach my $k (sort keys %global) { - my $o = substr("$k ", 0, 35); - my $d = substr(getGlobal($k) . " ", 0, 20); - my $u = $synops{$k}; - - if (!defined(getGlobal($k))) { - $d = substr(" ", 0, 20); - } - - print "$o$d($u)\n"; - } - exit(0); - } - - if (getGlobal("help") ne "") { - print "usage: runCA -d -p [options] ...\n"; - print " -d Use as the working directory. Required\n"; - print " -p Use as the output prefix. Required\n"; - print "\n"; - print " -s Read options from the specifications file .\n"; - print " can also be one of the following key words:\n"; - print " [no]OBT - run with[out] OBT\n"; - print " noVec - run with OBT but without Vector\n"; - print "\n"; - print " -version Version information\n"; - print " -help This information\n"; - print " -options Describe specFile options, and show default values\n"; - print "\n"; - print " CA formatted fragment file\n"; - print "\n"; - print "Complete documentation at http://wgs-assembler.sourceforge.net/\n"; - print "\n"; - print $global{"help"}; - exit(0); - } - - undef $global{"version"}; - undef $global{"options"}; - undef $global{"help"}; -} - - - -sub checkDirectories () { - - # Check that we were supplied a work directory, and that it - # exists, or we can create it. - # - die "ERROR: I need a directory to run the assembly in (-d option).\n" if (!defined($wrk)); - - system("mkdir -p $wrk") if (! -d $wrk); - chmod 0755, "$wrk"; - - $ENV{'AS_RUNCA_DIRECTORY'} = $wrk; - - caFailure("directory '$wrk' doesn't exist (-d option) and couldn't be created", undef) if (! -d $wrk); -} - - -sub findFirstCheckpoint ($) { - my $dir = shift @_; - my $firstckp = 0; - - $dir = "$wrk/$dir" if (! -d $dir); - - open(F, "ls -1 $dir/*ckp* |"); - while () { - chomp; - - if (m/ckp.(\d+)$/) { - $firstckp = $1 if ($1 < $firstckp); - } else { - caFailure("Can't parse checkpoint number from '$_'", undef); - } - } - close(F); - - return($firstckp); -} - -sub findLastCheckpoint ($) { - my $dir = shift @_; - my $lastckp = 0; - - $dir = "$wrk/$dir" if (-d "$wrk/$dir"); - - open(F, "ls -1 $dir/*ckp* |"); - while () { - chomp; - - if (m/ckp.(\d+)$/) { - $lastckp = $1 if ($1 > $lastckp); - } else { - caFailure("Can't parse checkpoint number from '$_'", undef); - } - } - close(F); - - return($lastckp); -} - -sub findNumScaffoldsInCheckpoint ($$) { - my $dir = shift @_; - my $lastckp = shift @_; - my $bin = getBinDirectory(); - - open(F, "cd $wrk/$dir && $bin/getNumScaffolds ../$asm.gkpStore $asm $lastckp 2> /dev/null |"); - my $numscaf = ; chomp $numscaf; - close(F); - $numscaf = int($numscaf); - - return($numscaf); -} - - -sub getNumberOfFragsInStore ($$) { - my $wrk = shift @_; - my $asm = shift @_; - my $bin = getBinDirectory(); - - return(0) if (! -e "$wrk/$asm.gkpStore/frg"); - - open(F, "$bin/gatekeeper -lastfragiid $wrk/$asm.gkpStore 2> /dev/null |") or caFailure("failed to run gatekeeper to get the number of frags in the store", undef); - $_ = ; chomp $_; - close(F); - - $numFrags = $1 if (m/^Last frag in store is iid = (\d+)$/); - caFailure("no frags in the store", undef) if ($numFrags == 0); - return($numFrags); -} - - -# Decide if we have the CA meryl or the Mighty one. -# -sub merylVersion () { - my $bin = getBinDirectory(); - my $ver = "unknown"; - - open(F, "$bin/meryl -V |"); - while () { - $ver = "CA" if (m/CA/); - $ver = "Mighty" if (m/Mighty/); - } - close(F); - return($ver); -} - - - -sub removeFragStoreBackup ($) { - my $backupName = shift @_; - - unlink "$wrk/$asm.gkpStore/frg.$backupName"; -} - -sub restoreFragStoreBackup ($) { - my $backupName = shift @_; - - if (-e "$wrk/$asm.gkpStore/frg.$backupName") { - print STDERR "Restoring the gkpStore backup from $backupName.\n"; - unlink "$wrk/$asm.gkpStore/frg.FAILED"; - rename "$wrk/$asm.gkpStore/frg", "$wrk/$asm.gkpStore/frg.$backupName.FAILED"; - rename "$wrk/$asm.gkpStore/frg.$backupName", "$wrk/$asm.gkpStore/frg"; - } -} - -sub backupFragStore ($) { - my $backupName = shift @_; - - return if (-e "$wrk/$asm.gkpStore/frg.$backupName"); - - if (system("cp -p $wrk/$asm.gkpStore/frg $wrk/$asm.gkpStore/frg.$backupName")) { - unlink "$wrk/$asm.gkpStore/frg.$backupName"; - caFailure("failed to backup gkpStore", undef); - } -} - - - -sub stopAfter ($) { - my $stopAfter = shift @_; - if (defined($stopAfter) && - defined(getGlobal('stopAfter')) && - (getGlobal('stopAfter') eq $stopAfter)) { - print STDERR "Stop requested after '$stopAfter'.\n"; - exit(0); - } -} - - - - - -sub runningOnGrid () { - return(defined($ENV{'SGE_TASK_ID'})); -} - -sub findNextScriptOutputFile () { - my $idx = "00"; - while (-e "$wrk/runCA.sge.out.$idx") { - $idx++; - } - return("$wrk/runCA.sge.out.$idx"); -} - -sub submitScript ($) { - my $waitTag = shift @_; - - return if (getGlobal("scriptOnGrid") == 0); - - my $output = findNextScriptOutputFile(); - my $script = "$output.sh"; - - open(F, "> $script") or caFailure("failed to open '$script' for writing", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "#\n"; - print F "# Attempt to (re)configure SGE. For reasons Bri doesn't know,\n"; - print F "# jobs submitted to SGE, and running under SGE, fail to read his\n"; - print F "# .tcshrc (or .bashrc, limited testing), and so they don't setup\n"; - print F "# SGE (or ANY other paths, etc) properly. For the record,\n"; - print F "# interactive SGE logins (qlogin, etc) DO set the environment.\n"; - print F "\n"; - print F ". \$SGE_ROOT/\$SGE_CELL/common/settings.sh\n"; - print F "\n"; - print F "# On the off chance that there is a pathMap, and the host we\n"; - print F "# eventually get scheduled on doesn't see other hosts, we decide\n"; - print F "# at run time where the binary is.\n"; - - print F getBinDirectoryShellCode(); - - print F "hostname\n"; - print F "echo \$bin\n"; - - print F "/usr/bin/env perl \$bin/runCA $commandLineOptions\n"; - close(F); - - system("chmod +x $script"); - - my $sge = getGlobal("sge"); - my $sgeScript = getGlobal("sgeScript"); - my $sgePropHold = getGlobal("sgePropagateHold"); - - $waitTag = "-hold_jid \"$waitTag\"" if (defined($waitTag)); - - my $qcmd = "qsub $sge $sgeScript -cwd -N \"runCA_${asm}\" -j y -o $output $waitTag $script"; - - print STDERR "DEBUG:\n$qcmd\n"; - system('pwd'); - - system($qcmd) and caFailure("Failed to submit script.\n"); - - if (defined($sgePropHold)) { - my $acmd = "qalter -hold_jid \"runCA_${asm}\" \"$sgePropHold\""; - print STDERR "$acmd\n"; - system($acmd) and print STDERR "WARNING: Failed to reset hold_jid trigger on '$sgePropHold'.\n"; - } - - exit(0); -} - - -use Carp; - -sub caFailure ($$) { - my $msg = shift @_; - my $log = shift @_; - - print STDERR "================================================================================\n"; - print STDERR "\n"; - print STDERR "runCA failed.\n"; - print STDERR "\n"; - - print STDERR "----------------------------------------\n"; - print STDERR "Stack trace:\n"; - print STDERR "\n"; - carp; - - if (-e $log) { - print STDERR "\n"; - print STDERR "----------------------------------------\n"; - print STDERR "Last few lines of the relevant log file ($log):\n"; - print STDERR "\n"; - system("tail -n 20 $log"); - } - - print STDERR "\n"; - print STDERR "----------------------------------------\n"; - print STDERR "Failure message:\n"; - print STDERR "\n"; - print STDERR "$msg\n"; - print STDERR "\n"; - - exit(1); -} - - - -# Bit of a wierd one here; assume path are supplied relative to $wrk. -# Potentially gives us a bit of safety. -# -sub rmrf (@) { - foreach my $f (@_) { - unlink("$wrk/$f") if (-f "$wrk/$f"); - system("rm -rf $wrk/$f") if (-d "$wrk/$f"); - } -} - - -# Create an empty file. Much faster than system("touch ..."). -# -sub touch ($) { - open(F, "> $_[0]") or caFailure("failed to touch file '$_[0]'", undef); - close(F); -} - - -sub pleaseExecute ($) { - my $file = shift @_; - - print STDERR "Please execute:\n"; - print STDERR " $file\n"; - print STDERR "to submit jobs to the grid, then restart this script when all\n"; - print STDERR "jobs finish. I'll make sure all jobs finished properly.\n"; -} - - -# Utility to run a command and check the exit status, report time used. -# -sub runCommand ($$) { - my $dir = shift @_; - my $cmd = shift @_; - - my $t = localtime(); - my $d = time(); - print STDERR "----------------------------------------START $t\n$cmd\n"; - - my $rc = 0xffff & system("cd $dir && $cmd"); - - $t = localtime(); - print STDERR "----------------------------------------END $t (", time() - $d, " seconds)\n"; - - # Pretty much copied from Programming Perl page 230 - - return(0) if ($rc == 0); - - # Bunch of busy work to get the names of signals. Is it really worth it?! - # - my @signame; - if (defined($Config{sig_name})) { - my $i = 0; - foreach my $n (split('\s+', $Config{sig_name})) { - $signame[$i] = $n; - $i++; - } - } - - my $error = "ERROR: Failed with "; - - if ($rc == 0xff00) { - $error .= "$!\n"; - } else { - if ($rc & 0x80) { - $error .= "coredump from "; - } - - if ($rc > 0x80) { - $rc >>= 8; - } - $rc &= 127; - - if (defined($signame[$rc])) { - $error .= "signal $signame[$rc] ($rc)\n"; - } else { - $error .= "signal $rc\n"; - } - } - - print STDERR $error; - - return(1); -} - -sub setupFilesForClosure() { - makeAbsolute("closureEdges"); -} -1; -use strict; - -# Check that the overlapper jobs properly executed. If not, -# complain, but don't help the user fix things. - - -sub checkOverlapper ($) { - my $isTrim = shift @_; - - my $outDir = "1-overlapper"; - my $ovlOpt = ""; - - if ($isTrim eq "trim") { - $outDir = "0-overlaptrim-overlap"; - $ovlOpt = "-G"; - } - - open(F, "< $wrk/$outDir/ovljobs.dat") or caFailure("failed to open '$wrk/$outDir/ovljobs.dat'", undef); - $_ = ; - my @bat = split '\s+', $_; - $_ = ; - my @job = split '\s+', $_; - close(F); - - my $jobIndex = 1; - my $failedJobs = 0; - - while (scalar(@bat) > 0) { - my $batchName = shift @bat; - my $jobName = shift @job; - - if (! -e "$wrk/$outDir/$batchName/$jobName.ovb.gz") { - print STDERR "$wrk/$outDir/$batchName/$jobName failed, job index $jobIndex.\n"; - $failedJobs++; - } - - $jobIndex++; - } - - # FAILUREHELPME - # - caFailure("$failedJobs overlapper jobs failed", undef) if ($failedJobs); -} - - -sub checkMerOverlapper ($) { - my $isTrim = shift @_; - - my $outDir = "1-overlapper"; - - if ($isTrim eq "trim") { - $outDir = "0-overlaptrim-overlap"; - } - - my $batchSize = getGlobal("merOverlapperExtendBatchSize"); - my $jobs = int($numFrags / ($batchSize-1)) + 1; - my $failedJobs = 0; - - for (my $i=1; $i<=$jobs; $i++) { - my $job = substr("0000" . $i, -4); - - if (! -e "$wrk/$outDir/olaps/$job.ovb.gz") { - print STDERR "$wrk/$outDir/olaps/$job failed.\n"; - $failedJobs++; - } - } - - caFailure("$failedJobs overlapper jobs failed", undef) if ($failedJobs); -} - - -sub checkOverlap { - my $isTrim = shift @_; - - caFailure("overlap checker needs to know if trimming or assembling", undef) if (!defined($isTrim)); - - if ($isTrim eq "trim") { - return if (-d "$wrk/$asm.obtStore"); - if (getGlobal("obtOverlapper") eq "ovl") { - #checkOverlapper($isTrim); - } elsif (getGlobal("obtOverlapper") eq "mer") { - #checkMerOverlapper($isTrim); - } elsif (getGlobal("obtOverlapper") eq "umd") { - caError("checkOverlap() wanted to check umd overlapper for obt?\n"); - } elsif (getGlobal("obtOverlapper") eq "sand") { - caError("checkOverlap() wanted to check sand overlapper for obt?\n"); - } else { - caError("checkOverlap() unknown obt overlapper?\n"); - } - } else { - return if (-d "$wrk/$asm.ovlStore"); - if (getGlobal("ovlOverlapper") eq "ovl") { - #checkOverlapper($isTrim); - } elsif (getGlobal("ovlOverlapper") eq "mer") { - #checkMerOverlapper($isTrim); - } elsif (getGlobal("ovlOverlapper") eq "umd") { - # Nop. - } elsif (getGlobal("ovlOverlapper") eq "sand") { - # Nop. - } else { - caError("checkOverlap() unknown ovl overlapper?\n"); - } - } -} - -1; - -use strict; - -# Prepare for consensus on the grid -# Partition the contigs -# Repartition the frag store - -sub createPostScaffolderConsensusJobs ($) { - my $cgwDir = shift @_; - my $consensusType = getGlobal("consensus"); - - return if (-e "$wrk/8-consensus/consensus.sh"); - - # Check that $cgwDir is complete - # - caFailure("contig consensus didn't find '$cgwDir/$asm.SeqStore'", undef) if (! -d "$cgwDir/$asm.SeqStore"); - caFailure("contig consensus didn't find '$cgwDir/$asm.cgw_contigs'", undef) if (! -e "$cgwDir/$asm.cgw_contigs"); - - my $lastckpt = findLastCheckpoint($cgwDir); - caFailure("contig consensus didn't find any checkpoints in '$cgwDir'", undef) if (!defined($lastckpt)); - - my $partitionSize = int($numFrags / getGlobal("cnsPartitions")); - $partitionSize = getGlobal("cnsMinFrags") if ($partitionSize < getGlobal("cnsMinFrags")); - - if (! -e "$wrk/8-consensus/partitionSDB.success") { - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/PartitionSDB -all -seqstore $cgwDir/$asm.SeqStore -version $lastckpt -fragsper $partitionSize -input $cgwDir/$asm.cgw_contigs "; - $cmd .= "> $wrk/8-consensus/partitionSDB.err 2>&1"; - - caFailure("seqStore paritioning failed", "$wrk/8-consensus/partitionSDB.err") if (runCommand("$wrk/8-consensus", $cmd)); - touch("$wrk/8-consensus/partitionSDB.success"); - } - - if (-z "$wrk/8-consensus/UnitigPartition.txt") { - print STDERR "WARNING! Nothing for consensus to do! Forcing consensus to skip!\n"; - touch("$wrk/8-consensus/partitionFragStore.success"); - touch("$wrk/8-consensus/consensus.sh"); - return; - } - - if (! -e "$wrk/8-consensus/$asm.partitioned") { - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/gatekeeper -P $wrk/8-consensus/FragPartition.txt $wrk/$asm.gkpStore "; - $cmd .= "> $wrk/8-consensus/$asm.partitioned.err 2>&1"; - - caFailure("gatekeeper partitioning failed", "$wrk/8-consensus/$asm.partitioned.err") if (runCommand("$wrk/8-consensus", $cmd)); - touch("$wrk/8-consensus/$asm.partitioned"); - } - - ######################################## - # - # Build consensus jobs for the grid -- this is very similar to that in createPostUnitiggerConsensus.pl - # - my $jobP; - my $jobs = 0; - - open(CGW, "ls $cgwDir/$asm.cgw_contigs.* |") or caFailure("failed to find '$cgwDir/$asm.cgw_contigs.*'", undef); - while () { - if (m/cgw_contigs.(\d+)/) { - $jobP .= "$1\t"; - $jobs++; - } else { - print STDERR "Didn't match cgw_contigs.# in $_\n"; - } - } - close(CGW); - - $jobP = join ' ', sort { $a <=> $b } split '\s+', $jobP; - - open(F, "> $wrk/8-consensus/consensus.sh") or caFailure("can't open '$wrk/8-consensus/consensus.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "jobp=`echo $jobP | cut -d' ' -f \$jobid`\n"; - print F "\n"; - print F "if [ -e $wrk/8-consensus/$asm.cns_contigs.\$jobp.success ] ; then\n"; - print F " exit 0\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - - print F getBinDirectoryShellCode(); - - if ($consensusType eq "cns") { - print F "\$bin/consensus \\\n"; - print F " -s $cgwDir/$asm.SeqStore \\\n"; - print F " -V $lastckpt \\\n"; - print F " -p \$jobp \\\n"; - print F " -S \$jobp \\\n"; - print F " -m \\\n"; - print F " -o $wrk/8-consensus/$asm.cns_contigs.\$jobp \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " $cgwDir/$asm.cgw_contigs.\$jobp \\\n"; - print F " > $wrk/8-consensus/$asm.cns_contigs.\$jobp.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "touch $wrk/8-consensus/$asm.cns_contigs.\$jobp.success\n"; - } elsif ($consensusType eq "seqan") { - print F "\$bin/SeqAn_CNS \\\n"; - print F " -G $wrk/$asm.gkpStore \\\n"; - print F " -u $cgwDir/$asm.SeqStore \\\n"; - print F " -V $lastckpt \\\n"; - print F " -p \$jobp \\\n"; - print F " -S \$jobp \\\n"; - print F " -c $cgwDir/$asm.cgw_contigs.\$jobp \\\n"; - print F " -s \$bin/graph_consensus \\\n"; - print F " -w $wrk/8-consensus/ \\\n"; - print F " -o $wrk/8-consensus/$asm.cns_contigs.\$jobp \\\n"; - print F " > $wrk/8-consensus/$asm.cns_contigs.\$jobp.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "touch $wrk/8-consensus/$asm.cns_contigs.\$jobp.success\n"; - } else { - caFailure("unknown consensus type $consensusType; must be 'cns' or 'seqan'", undef); - } - print F "exit 0\n"; - close(F); - - chmod 0755, "$wrk/8-consensus/consensus.sh"; - - if (getGlobal("cnsOnGrid") && getGlobal("useGrid")) { - my $sge = getGlobal("sge"); - my $sgeConsensus = getGlobal("sgeConsensus"); - - my $SGE; - $SGE = "qsub $sge $sgeConsensus -cwd -N ctg_$asm "; - $SGE .= "-t 1-$jobs "; - $SGE .= "-j y -o /dev/null "; - $SGE .= "$wrk/8-consensus/consensus.sh\n"; - - submitBatchJobs($SGE, "ctg_$asm"); - exit(0); - } else { - for (my $i=1; $i<=$jobs; $i++) { - &scheduler::schedulerSubmit("$wrk/8-consensus/consensus.sh $i > /dev/null 2>&1"); - } - - &scheduler::schedulerSetNumberOfProcesses(getGlobal("cnsConcurrency")); - &scheduler::schedulerFinish(); - } -} - - -sub postScaffolderConsensus ($) { - my $cgwDir = shift @_; - - system("mkdir $wrk/8-consensus") if (! -d "$wrk/8-consensus"); - - goto alldone if (-e "$wrk/8-consensus/consensus.success"); - - $cgwDir = "$wrk/7-CGW" if (!defined($cgwDir)); - - createPostScaffolderConsensusJobs($cgwDir); - - # - # Check that consensus finished properly - # - my $failedJobs = 0; - - open(CGWIN, "ls $cgwDir/$asm.cgw_contigs.* |") or caFailure("didn't find '$cgwDir/$asm.cgw_contigs.*'", undef); - while () { - chomp; - - if (m/cgw_contigs.(\d+)/) { - if ((-e "$wrk/8-consensus/$asm.cns_contigs.$1.failed") || - ((! -z $_) && (! -e "$wrk/8-consensus/$asm.cns_contigs.$1.success"))) { - print STDERR "$wrk/8-consensus/$asm.cns_contigs.$1 failed.\n"; - $failedJobs++; - } - } else { - print STDERR "WARNING: didn't match $_ for cgw_contigs filename!\n"; - } - } - close(CGWIN); - - # FAILUREHELPME - # - caFailure("$failedJobs consensusAfterScaffolder jobs failed", undef) if ($failedJobs); - - # All jobs finished. Remove the partitioning from the gatekeeper - # store. The gatekeeper store is currently (5 Mar 2007) tolerant - # of someone asking for a partition that isn't there -- it'll - # fallback to the complete store. So, if you happen to want to - # run consensus again, it'll still work, just a little slower. - # - # (This block appears in both createPostUnitiggerConsensus.pl and createConsensusJobs.pl) - # - system("rm -f $wrk/$asm.gkpStore/frg.[0-9][0-9][0-9]"); - system("rm -f $wrk/$asm.gkpStore/hps.[0-9][0-9][0-9]"); - system("rm -f $wrk/$asm.gkpStore/qlt.[0-9][0-9][0-9]"); - system("rm -f $wrk/$asm.gkpStore/src.[0-9][0-9][0-9]"); - - touch("$wrk/8-consensus/consensus.success"); - - alldone: - stopAfter("consensusAfterScaffolder"); -} - -1; -use strict; - -sub findOvermerryFailures ($$) { - my $outDir = shift @_; - my $ovmJobs = shift @_; - my $failures = 0; - - for (my $i=1; $i<=$ovmJobs; $i++) { - my $out = substr("0000" . $i, -4); - if (! -e "$wrk/$outDir/seeds/$out.ovm.gz") { - $failures++; - } - } - - return $failures; -} - - -sub findOlapFromSeedsFailures ($$) { - my $outDir = shift @_; - my $olpJobs = shift @_; - my $failures = 0; - - for (my $i=1; $i<=$olpJobs; $i++) { - my $out = substr("0000" . $i, -4); - if (! -e "$wrk/$outDir/olaps/$out.ovb.gz") { - $failures++; - } - } - - return $failures; -} - - -sub merOverlapper($) { - my $isTrim = shift @_; - - return if (-d "$wrk/$asm.ovlStore"); - return if (-d "$wrk/$asm.obtStore") && ($isTrim eq "trim"); - - caFailure("mer overlapper detected no fragments", undef) if ($numFrags == 0); - caFailure("mer overlapper doesn't know if trimming or assembling", undef) if (!defined($isTrim)); - - my ($outDir, $ovlOpt, $merSize, $merComp, $merType, $merylNeeded); - - # Set directories and parameters for either 'trimming' or 'real' - # overlaps. - - if ($isTrim eq "trim") { - $outDir = "0-overlaptrim-overlap"; - $ovlOpt = "-G"; - $merSize = getGlobal("obtMerSize"); - $merComp = getGlobal("merCompression"); - $merType = "obt"; - $merylNeeded = (getGlobal("obtMerThreshold") =~ m/auto/) ? 1 : 0; - } else { - $outDir = "1-overlapper"; - $ovlOpt = ""; - $merSize = getGlobal("ovlMerSize"); - $merComp = getGlobal("merCompression"); - $merType = "ovl"; - $merylNeeded = (getGlobal("ovlMerThreshold") =~ m/auto/) ? 1 : 0; - } - - system("mkdir $wrk/$outDir") if (! -d "$wrk/$outDir"); - system("mkdir $wrk/$outDir/seeds") if (! -d "$wrk/$outDir/seeds"); - system("mkdir $wrk/$outDir/olaps") if (! -d "$wrk/$outDir/olaps"); - - # Make the directory (to hold the corrections output) and claim - # that fragment correction is all done. after this, the rest of - # the fragment/overlap correction pipeline Just Works. - # - system("mkdir $wrk/3-overlapcorrection") if ((! -d "$wrk/3-overlapcorrection") && ($isTrim ne "trim")); - - my $ovmBatchSize = getGlobal("merOverlapperSeedBatchSize"); - my $ovmJobs = int(($numFrags - 1) / $ovmBatchSize) + 1; - - my $olpBatchSize = getGlobal("merOverlapperExtendBatchSize"); - my $olpJobs = int(($numFrags - 1) / $olpBatchSize) + 1; - - # Need mer counts, unless there is only one partition. - meryl() if (($ovmJobs > 1) || ($merylNeeded)); - - # Create overmerry and olap-from-seeds jobs - # - if (! -e "$wrk/$outDir/overmerry.sh") { - open(F, "> $wrk/$outDir/overmerry.sh") or caFailure("can't open '$wrk/$outDir/overmerry.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %04d \$jobid`\n"; - print F "minid=`expr \$jobid \\* $ovmBatchSize - $ovmBatchSize + 1`\n"; - print F "maxid=`expr \$jobid \\* $ovmBatchSize`\n"; - print F "runid=\$\$\n"; - print F "\n"; - print F "if [ \$maxid -gt $numFrags ] ; then\n"; - print F " maxid=$numFrags\n"; - print F "fi\n"; - print F "if [ \$minid -gt \$maxid ] ; then\n"; - print F " echo Job partitioning error -- minid=\$minid maxid=\$maxid.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - print F "\n"; - print F "if [ ! -d $wrk/$outDir/seeds ]; then\n"; - print F " mkdir $wrk/$outDir/seeds\n"; - print F "fi\n"; - print F "\n"; - print F "if [ -e $wrk/$outDir/seeds/\$jobid.ovm.gz ]; then\n"; - print F " echo Job previously completed successfully.\n"; - print F " exit\n"; - print F "fi\n"; - - print F getBinDirectoryShellCode(); - - print F "\$bin/overmerry \\\n"; - print F " -g $wrk/$asm.gkpStore \\\n"; - if ($ovmJobs > 1) { - print F " -mc $wrk/0-mercounts/$asm-C-ms$merSize-cm$merComp \\\n"; - print F " -tb \$minid -te \$maxid \\\n"; - print F " -qb \$minid \\\n"; - } - print F " -m $merSize \\\n"; - print F " -c $merComp \\\n"; - print F " -T ", getGlobal("obtMerThreshold"), " \\\n" if ($isTrim eq "trim"); - print F " -T ", getGlobal("ovlMerThreshold"), " \\\n" if ($isTrim ne "trim"); - print F " -t " . getGlobal("merOverlapperThreads") . "\\\n"; - print F " -o $wrk/$outDir/seeds/\$jobid.ovm.WORKING.gz \\\n"; - print F "&& \\\n"; - print F "mv $wrk/$outDir/seeds/\$jobid.ovm.WORKING.gz $wrk/$outDir/seeds/\$jobid.ovm.gz\n"; - close(F); - - system("chmod +x $wrk/$outDir/overmerry.sh"); - } - - if (! -e "$wrk/$outDir/olap-from-seeds.sh") { - open(F, "> $wrk/$outDir/olap-from-seeds.sh") or caFailure("can't open '$wrk/$outDir/olap-from-seeds.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %04d \$jobid`\n"; - print F "minid=`expr \$jobid \\* $olpBatchSize - $olpBatchSize + 1`\n"; - print F "maxid=`expr \$jobid \\* $olpBatchSize`\n"; - print F "runid=\$\$\n"; - print F "\n"; - print F "if [ \$maxid -gt $numFrags ] ; then\n"; - print F " maxid=$numFrags\n"; - print F "fi\n"; - print F "if [ \$minid -gt \$maxid ] ; then\n"; - print F " echo Job partitioning error -- minid=\$minid maxid=\$maxid.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - print F "\n"; - print F "if [ ! -d $wrk/$outDir/olaps ]; then\n"; - print F " mkdir $wrk/$outDir/olaps\n"; - print F "fi\n"; - print F "\n"; - print F "if [ -e $wrk/$outDir/olaps/\$jobid.ovb.gz ]; then\n"; - print F " echo Job previously completed successfully.\n"; - print F " exit\n"; - print F "fi\n"; - - print F getBinDirectoryShellCode(); - - print F "\$bin/olap-from-seeds \\\n"; - print F " -a -b \\\n"; - print F " -t " . getGlobal("merOverlapperThreads") . "\\\n"; - print F " -S $wrk/$outDir/$asm.merStore \\\n"; - - if ($isTrim eq "trim") { - print F " -G \\\n"; # Trim only - print F " -o $wrk/$outDir/olaps/\$jobid.ovb.WORKING.gz \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " \$minid \$maxid \\\n"; - print F " > $wrk/$outDir/olaps/$asm.\$jobid.ovb.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "mv $wrk/$outDir/olaps/\$jobid.ovb.WORKING.gz $wrk/$outDir/olaps/\$jobid.ovb.gz\n"; - } else { - print F " -w \\\n" if (getGlobal("merOverlapperCorrelatedDiffs")); - print F " -c $wrk/3-overlapcorrection/\$jobid.frgcorr.WORKING \\\n"; - print F " -o $wrk/$outDir/olaps/\$jobid.ovb.WORKING.gz \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " \$minid \$maxid \\\n"; - print F " > $wrk/$outDir/olaps/$asm.\$jobid.ovb.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "mv $wrk/$outDir/olaps/\$jobid.ovb.WORKING.gz $wrk/$outDir/olaps/\$jobid.ovb.gz \\\n"; - print F "&& \\\n"; - print F "mv $wrk/3-overlapcorrection/\$jobid.frgcorr.WORKING $wrk/3-overlapcorrection/\$jobid.frgcorr \\\n"; - print F "\n"; - print F "rm -f $wrk/3-overlapcorrection/\$jobid.frgcorr.WORKING\n"; - } - - print F "\n"; - print F "rm -f $wrk/$outDir/olaps/\$jobid.ovb.WORKING\n"; - print F "rm -f $wrk/$outDir/olaps/\$jobid.ovb.WORKING.gz\n"; - - close(F); - - system("chmod +x $wrk/$outDir/olap-from-seeds.sh"); - } - - - # To prevent infinite loops -- stop now if the overmerry script - # exists. This will unfortunately make restarting from transient - # failures non-trivial. - # - # FAILUREHELPME - # - my $ovmFailures = findOvermerryFailures($outDir, $ovmJobs); - if (($ovmFailures != 0) && ($ovmFailures < $ovmJobs)) { - caFailure("mer overlapper seed finding failed", undef); - } - - # Submit to the grid (or tell the user to do it), or just run - # things here - # - if (findOvermerryFailures($outDir, $ovmJobs) > 0) { - if (getGlobal("useGrid") && getGlobal("ovlOnGrid")) { - my $sge = getGlobal("sge"); - my $sgeOverlap = getGlobal("sgeMerOverlapSeed"); - - my $SGE; - $SGE = "qsub $sge $sgeOverlap -cwd -N mer_$asm \\\n"; - $SGE .= " -t 1-$ovmJobs \\\n"; - $SGE .= " -j y -o $wrk/$outDir/seeds/\\\$TASK_ID.out \\\n"; - $SGE .= " $wrk/$outDir/overmerry.sh\n"; - - submitBatchJobs($SGE, "mer_$asm"); - exit(0); - } else { - for (my $i=1; $i<=$ovmJobs; $i++) { - my $out = substr("0000" . $i, -4); - &scheduler::schedulerSubmit("$wrk/$outDir/overmerry.sh $i > $wrk/$outDir/seeds/$out.out 2>&1 && rm -f $wrk/$outDir/seeds/$out.out"); - } - - &scheduler::schedulerSetNumberOfProcesses(getGlobal("merOverlapperSeedConcurrency")); - &scheduler::schedulerFinish(); - } - } - - # Make sure everything finished ok. - # - # FAILUREHELPME - # - { - my $f = findOvermerryFailures($outDir, $ovmJobs); - caFailure("there were $f overmerry failures", undef) if ($f > 0); - } - - if (runCommand($wrk, "find $wrk/$outDir/seeds -name \\*ovm.gz -print > $wrk/$outDir/$asm.merStore.list")) { - caFailure("failed to generate a list of all the overlap files", undef); - } - - if (! -e "$wrk/$outDir/$asm.merStore") { - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/overlapStore"; - $cmd .= " -c $wrk/$outDir/$asm.merStore.WORKING"; - $cmd .= " -g $wrk/$asm.gkpStore"; - $cmd .= " -M " . getGlobal("ovlStoreMemory"); - $cmd .= " -L $wrk/$outDir/$asm.merStore.list"; - $cmd .= " > $wrk/$outDir/$asm.merStore.err 2>&1"; - - if (runCommand($wrk, $cmd)) { - caFailure("overlap store building failed", "$wrk/$outDir/$asm.merStore.err"); - } - - rename "$wrk/$outDir/$asm.merStore.WORKING", "$wrk/$outDir/$asm.merStore"; - - rmrf("$outDir/$asm.merStore.list"); - rmrf("$outDir/$asm.merStore.err"); - } - - - # To prevent infinite loops -- stop now if the overmerry script - # exists. This will unfortunately make restarting from transient - # failures non-trivial. - # - # FAILUREHELPME - # - my $olpFailures = findOlapFromSeedsFailures($outDir, $olpJobs); - if (($olpFailures != 0) && ($olpFailures < $olpJobs)) { - caFailure("mer overlapper extension failed", undef); - } - - # Submit to the grid (or tell the user to do it), or just run - # things here - # - if (findOlapFromSeedsFailures($outDir, $olpJobs) > 0) { - if (getGlobal("useGrid") && getGlobal("ovlOnGrid")) { - my $sge = getGlobal("sge"); - my $sgeOverlap = getGlobal("sgeMerOverlapExtend"); - - my $SGE; - $SGE = "qsub $sge $sgeOverlap -cwd -N olp_$asm \\\n"; - $SGE .= " -t 1-$olpJobs \\\n"; - $SGE .= " -j y -o $wrk/$outDir/olaps/\\\$TASK_ID.out \\\n"; - $SGE .= " $wrk/$outDir/olap-from-seeds.sh\n"; - - submitBatchJobs($SGE, "olp_$asm"); - exit(0); - } else { - for (my $i=1; $i<=$olpJobs; $i++) { - my $out = substr("0000" . $i, -4); - &scheduler::schedulerSubmit("$wrk/$outDir/olap-from-seeds.sh $i > $wrk/$outDir/olaps/$out.out 2>&1"); - } - - &scheduler::schedulerSetNumberOfProcesses(getGlobal("merOverlapperExtendConcurrency")); - &scheduler::schedulerFinish(); - } - } - - # Make sure everything finished ok. - # - # FAILUREHELPME - # - { - my $f = findOlapFromSeedsFailures($outDir, $olpJobs); - caFailure("there were $f olap-from-seeds failures", undef) if ($f > 0); - } -} -use strict; - - -sub createOverlapJobs($) { - my $isTrim = shift @_; - - return if (-d "$wrk/$asm.ovlStore"); - - caFailure("overlapper detected no fragments", undef) if ($numFrags == 0); - caFailure("overlapper needs to know if trimming or assembling", undef) if (!defined($isTrim)); - - my $ovlThreads = getGlobal("ovlThreads"); - my $ovlMemory = getGlobal("ovlMemory"); - - my $outDir = "1-overlapper"; - my $ovlOpt = ""; - my $merSize = getGlobal("ovlMerSize"); - my $merComp = getGlobal("merCompression"); - - if ($isTrim eq "trim") { - $outDir = "0-overlaptrim-overlap"; - $ovlOpt = "-G"; - $merSize = getGlobal("obtMerSize"); - } - - system("mkdir $wrk/$outDir") if (! -d "$wrk/$outDir"); - - return if (-e "$wrk/$outDir/overlap.sh"); - - # umd overlapper here - # - if (getGlobal("ovlOverlapper") eq "umd") { - # For Sergey: - # - # UMDoverlapper() needs to dump the gkpstore, run UMD, build - # the ovlStore and update gkpStore with new clear ranges. - # The explicit call to UMDoverlapper in main() can then go away. - # OBT is smart enough to disable itself if umd is enabled. - # - UMDoverlapper(); - return; - } - - # sand overlapper here - # - if (getGlobal("ovlOverlapper") eq "sand") { - # SANDoverlapper() needs to dump the gkpstore, run SAND, build - # the ovlStore. - # OBT is smart enough to disable itself if sand is enabled. - SANDoverlapper(); - return; - } - - # mer overlapper here - # - if ((($isTrim eq "trim") && (getGlobal("obtOverlapper") eq "mer")) || - (($isTrim ne "trim") && (getGlobal("ovlOverlapper") eq "mer"))) { - merOverlapper($isTrim); - return; - } - - # To prevent infinite loops -- stop now if the overlap script - # exists. This will unfortunately make restarting from transient - # failures non-trivial. - # - # FAILUREHELPME - # - caFailure("overlapper failed\nmanual restart needed to prevent infinite loops\nremove file '$wrk/$outDir/overlap.sh'", undef) if (-e "$wrk/$outDir/overlap.sh"); - - meryl(); - - # We make a giant job array for this -- we need to know hashBeg, - # hashEnd, refBeg and refEnd -- from that we compute batchName - # and jobName. - # - # ovlopts.pl returns the batch name ($batchName), the job name - # ($jobName) and options to pass to overlap (-h $hashBeg-$hashEnd - # -r $refBeg-$refEnd). From those, we can construct the command - # to run. - # - open(F, "> $wrk/$outDir/overlap.sh") or caFailure("can't open '$wrk/$outDir/overlap.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "perl='/usr/bin/env perl'\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "bat=`\$perl $wrk/$outDir/ovlopts.pl bat \$jobid`\n"; - print F "job=`\$perl $wrk/$outDir/ovlopts.pl job \$jobid`\n"; - print F "opt=`\$perl $wrk/$outDir/ovlopts.pl opt \$jobid`\n"; - print F "jid=\$\$\n"; - print F "\n"; - print F "if [ ! -d $wrk/$outDir/\$bat ]; then\n"; - print F " mkdir $wrk/$outDir/\$bat\n"; - print F "fi\n"; - print F "\n"; - print F "if [ -e $wrk/$outDir/\$bat/\$job.ovb.gz ]; then\n"; - print F " echo Job previously completed successfully.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - - print F getBinDirectoryShellCode(); - - print F "\$bin/overlap $ovlOpt -M $ovlMemory -t $ovlThreads \\\n"; - print F " \$opt \\\n"; - print F " -k $merSize \\\n"; - print F " -k $wrk/0-mercounts/$asm.nmers.obt.fasta \\\n" if ($isTrim eq "trim"); - print F " -k $wrk/0-mercounts/$asm.nmers.ovl.fasta \\\n" if ($isTrim ne "trim"); - print F " -o $wrk/$outDir/\$bat/\$job.ovb.WORKING.gz \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F "&& \\\n"; - print F "mv $wrk/$outDir/\$bat/\$job.ovb.WORKING.gz $wrk/$outDir/\$bat/\$job.ovb.gz\n"; - print F "\n"; - print F "exit 0\n"; - close(F); - - system("chmod +x $wrk/$outDir/overlap.sh"); - - # We segment the hash into $numFrags / $ovlHashBlockSize pieces, - # and the stream into $numFrags / $ovlRefBlockSize pieces. Put - # all runs for the same hash into a subdirectory. - - my ($hashBeg, $hashEnd, $refBeg, $refEnd) = (getGlobal("ovlStart"), 0, 1, 0); - - my $ovlHashBlockSize = getGlobal("ovlHashBlockSize"); - my $ovlRefBlockSize = getGlobal("ovlRefBlockSize"); - - # Saved for output to ovlopts.pl - my @bat; - my @job; - my @opt; - - # Number of jobs per batch directory - # - my $batchMax = 200; - my $batchSize = 0; - my $batch = 1; - - my $batchName = substr("0000000000" . $batch, -10); - - while ($hashBeg < $numFrags) { - $hashEnd = $hashBeg + $ovlHashBlockSize - 1; - $hashEnd = $numFrags if ($hashEnd > $numFrags); - $refBeg = 0; - $refEnd = 0; - - while ($refBeg < $hashEnd) { - $refEnd = $refBeg + $ovlRefBlockSize - 1; - $refEnd = $numFrags if ($refEnd > $numFrags); - - #print STDERR "hash: $hashBeg-$hashEnd ref: $refBeg-$refEnd\n"; - - my $jobName; - $jobName .= "h" . substr("0000000000" . $hashBeg, -10); - $jobName .= "r" . substr("0000000000" . $refBeg, -10); - - push @bat, "$batchName"; - push @job, "$jobName"; - push @opt, "-h $hashBeg-$hashEnd -r $refBeg-$refEnd"; - - $refBeg = $refEnd + 1; - - $batchSize++; - if ($batchSize >= $batchMax) { - $batch++; - $batchName = substr("0000000000" . $batch, -10); - $batchSize = 0; - } - } - - $hashBeg = $hashEnd + 1; - } - - open(SUB, "> $wrk/$outDir/ovlopts.pl") or caFailure("failed to open '$wrk/$outDir/ovlopts.pl'", undef); - print SUB "#!/usr/bin/env perl\n"; - print SUB "use strict;\n"; - print SUB "my \@bat = (\n"; foreach my $b (@bat) { print SUB "\"$b\",\n"; } print SUB ");\n"; - print SUB "my \@job = (\n"; foreach my $b (@job) { print SUB "\"$b\",\n"; } print SUB ");\n"; - print SUB "my \@opt = (\n"; foreach my $b (@opt) { print SUB "\"$b\",\n"; } print SUB ");\n"; - print SUB "my \$idx = int(\$ARGV[1]) - 1;\n"; - print SUB "if (\$ARGV[0] eq \"bat\") {\n"; - print SUB " print \"\$bat[\$idx]\";\n"; - print SUB "} elsif (\$ARGV[0] eq \"job\") {\n"; - print SUB " print \"\$job[\$idx]\";\n"; - print SUB "} elsif (\$ARGV[0] eq \"opt\") {\n"; - print SUB " print \"\$opt[\$idx]\";\n"; - print SUB "} else {\n"; - print SUB " print STDOUT \"Got '\$ARGV[0]' and don't know what to do!\\n\";\n"; - print SUB " print STDERR \"Got '\$ARGV[0]' and don't know what to do!\\n\";\n"; - print SUB " die;\n"; - print SUB "}\n"; - print SUB "exit(0);\n"; - close(SUB); - - open(SUB, "> $wrk/$outDir/ovljobs.dat") or caFailure("failed to open '$wrk/$outDir/ovljobs.dat'", undef); - foreach my $b (@bat) { print SUB "$b "; } print SUB "\n"; - foreach my $b (@job) { print SUB "$b "; } print SUB "\n"; - close(SUB); - - - my $jobs = scalar(@opt); - - # Submit to the grid (or tell the user to do it), or just run - # things here - # - if (getGlobal("useGrid") && getGlobal("ovlOnGrid")) { - my $sge = getGlobal("sge"); - my $sgeOverlap = getGlobal("sgeOverlap"); - - my $SGE; - $SGE = "qsub $sge $sgeOverlap -cwd -N ovl_$asm \\\n"; - $SGE .= " -t 1-$jobs \\\n"; - $SGE .= " -j y -o $wrk/$outDir/overlap.\\\$TASK_ID.out \\\n"; - $SGE .= " $wrk/$outDir/overlap.sh\n"; - - submitBatchJobs($SGE, "ovl_$asm"); - exit(0); - } else { - for (my $i=1; $i<=$jobs; $i++) { - my $out = substr("0000" . $i, -4); - &scheduler::schedulerSubmit("$wrk/$outDir/overlap.sh $i > $wrk/$outDir/overlap.$out.out 2>&1"); - } - - &scheduler::schedulerSetNumberOfProcesses(getGlobal("ovlConcurrency")); - &scheduler::schedulerFinish(); - } -} - -1; -use strict; - -sub createOverlapStore { - - goto alldone if (-d "$wrk/$asm.ovlStore"); - - if (runCommand($wrk, "find $wrk/1-overlapper -name \\*ovb.gz -print > $wrk/$asm.ovlStore.list")) { - caFailure("failed to generate a list of all the overlap files", undef); - } - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/overlapStore "; - $cmd .= " -c $wrk/$asm.ovlStore.BUILDING "; - $cmd .= " -g $wrk/$asm.gkpStore "; - - if (defined(getGlobal("closureEdges"))){ - $cmd .= " -I " . getGlobal("closureEdges"); - $cmd .= " -i " . getGlobal("closureOverlaps"); - } - - $cmd .= " -M " . getGlobal("ovlStoreMemory"); - $cmd .= " -L $wrk/$asm.ovlStore.list "; - $cmd .= " > $wrk/$asm.ovlStore.err 2>&1"; - - if (runCommand($wrk, $cmd)) { - caFailure("failed to create the overlap store", "$wrk/$asm.ovlStore.err"); - } - - rename "$wrk/$asm.ovlStore.BUILDING", "$wrk/$asm.ovlStore"; - - rmrf("$asm.ovlStore.list"); - rmrf("$asm.ovlStore.err"); - - alldone: - stopAfter("overlapper"); -} - -1; -use strict; - -sub createPostUnitiggerConsensusJobs (@) { - my @cgbFiles = @_; - my $consensusType = getGlobal("consensus"); - - return if (-e "$wrk/5-consensus/consensus.sh"); - - if (! -e "$wrk/5-consensus/$asm.partitioned") { - - # Then, build a partition information file, and do the partitioning. - # - open(G, "> $wrk/5-consensus/$asm.partFile") or caFailure("failed to write '$wrk/5-consensus/$asm.partFile'", undef); - foreach my $f (@cgbFiles) { - if ($f =~ m/^.*(\d\d\d).cgb$/) { - my $part = $1; - open(F, "grep ^mid: $f |") or caFailure("failed to grep '^mid: $f'", undef); - while () { - print G "$part $1\n" if (m/^mid:(\d+)$/); - } - close(F); - } else { - caFailure("unitigger file '$f' didn't match ###.cgb", undef); - } - } - close(G); - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/gatekeeper -P "; - $cmd .= "$wrk/5-consensus/$asm.partFile "; - $cmd .= "$wrk/$asm.gkpStore "; - $cmd .= "> $wrk/5-consensus/$asm.partitioned.err 2>&1"; - if (runCommand("$wrk/5-consensus", $cmd)) { - rename "$wrk/5-consensus/$asm.partFile", "$wrk/5-consensus/$asm.partFile.FAILED"; - caFailure("failed to partition the fragStore", "$wrk/5-consensus/$asm.partitioned.err"); - } - - touch "$wrk/5-consensus/$asm.partitioned"; - } - - ######################################## - # - # Build consensus jobs for the grid -- this is very similar to that in createConsensusJobs.pl - # - # Create a set of shell scripts to run consensus, one per cgb - # batch. The last batch is not used, the small tests BPW has - # tried always as an empty file there. - # - my $jobP; - my $jobs = 0; - - open(F, "> $wrk/5-consensus/consensus.cgi.input") or caFailure("failed to open '$wrk/5-consensus/consensus.cgi.input'", undef); - foreach my $f (@cgbFiles) { - print F "$f\n"; - - if ($f =~ m/^.*(\d\d\d).cgb/) { - $jobP .= "$1\t"; - $jobs++; - } else { - print STDERR "WARNING: didn't match $f for CGB filename!\n"; - } - } - close(F); - - $jobP = join ' ', sort { $a <=> $b } split '\s+', $jobP; - - open(F, "> $wrk/5-consensus/consensus.sh") or caFailure("can't open '$wrk/5-consensus/consensus.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "jobp=`echo $jobP | cut -d' ' -f \$jobid`\n"; - print F "cgbfile=`head -n \$jobid < $wrk/5-consensus/consensus.cgi.input | tail -n 1`\n"; - print F "\n"; - print F "if [ -e $wrk/5-consensus/${asm}_\$jobp.success ] ; then\n"; - print F " exit 0\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - - print F getBinDirectoryShellCode(); - - if ($consensusType eq "cns") { - print F "\$bin/consensus -G -C -U -m \\\n"; - # Too expensive in general, let the fixUnitigs handle anything that fails here. - #print F " -O $wrk/$asm.ovlStore \\\n" if (getGlobal('unitigger') eq "bog"); - print F " -S \$jobp \\\n"; - print F " -o $wrk/5-consensus/${asm}_\$jobp.cgi \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " \$cgbfile \\\n"; - print F " > $wrk/5-consensus/${asm}_\$jobp.err 2>&1\n"; - print F "\n"; - print F "if [ -e $wrk/5-consensus/${asm}_\$jobp.cgi_tmp ] ; then\n"; - print F " echo Yikes! Consensus crashed.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "\n"; - print F "# Attempt to autofix problems.\n"; - print F "if [ -e $wrk/5-consensus/${asm}_\$jobp.cgi.failed ] ; then\n"; - print F " mv $wrk/5-consensus/${asm}_\$jobp.cgi.failed \\\n"; - print F " $wrk/5-consensus/${asm}_\$jobp.autofix.orig\n"; - print F "\n"; - print F " # Consensus will remove this if successful.\n"; - print F " touch $wrk/5-consensus/${asm}_\$jobp.autofix.cgi.failed\n"; - print F "\n"; - print F " \$bin/fixUnitigs -O $wrk/$asm.ovlStore \\\n"; - print F " < $wrk/5-consensus/${asm}_\$jobp.autofix.orig \\\n"; - print F " > $wrk/5-consensus/${asm}_\$jobp.autofix \\\n"; - print F " 2> $wrk/5-consensus/${asm}_\$jobp.autofix.log \\\n"; - print F " && \\\n"; - print F " \$bin/consensus -G -C -U -m \\\n"; - print F " -D verbosemultialign \\\n"; - print F " -O $wrk/$asm.ovlStore \\\n"; - print F " -S \$jobp \\\n"; - print F " -o $wrk/5-consensus/${asm}_\$jobp.autofix.cgi \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " $wrk/5-consensus/${asm}_\$jobp.autofix \\\n"; - print F " > $wrk/5-consensus/${asm}_\$jobp.autofix.err 2>&1\n"; - print F " \n"; - print F "fi\n"; - print F "\n"; - print F "\n"; - print F "\n"; - print F "if [ ! -e $wrk/5-consensus/${asm}_\$jobp.cgi.failed -a \\\n"; - print F " ! -e $wrk/5-consensus/${asm}_\$jobp.autofix.cgi.failed ] ; then\n"; - print F " touch $wrk/5-consensus/${asm}_\$jobp.success\n"; - print F "fi\n"; - print F "\n"; - } elsif ($consensusType eq "seqan") { - print F "\$bin/SeqAn_CNS \\\n"; - print F " -G $wrk/$asm.gkpStore \\\n"; - print F " -c \$cgbfile \\\n"; - print F " -s \$bin/graph_consensus \\\n"; - print F " -w $wrk/5-consensus/ \\\n"; - print F " -o $wrk/5-consensus/${asm}_\$jobp.cgi \\\n"; - print F " > $wrk/5-consensus/${asm}_\$jobp.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "touch $wrk/5-consensus/${asm}_\$jobp.success\n"; - } else { - caFailure("unknown consensus type $consensusType; should be 'cns' or 'seqan'", undef); - } - close(F); - - chmod 0755, "$wrk/5-consensus/consensus.sh"; - - if (getGlobal("useGrid") && getGlobal("cnsOnGrid")) { - my $sge = getGlobal("sge"); - my $sgeConsensus = getGlobal("sgeConsensus"); - - my $SGE; - $SGE = "qsub $sge $sgeConsensus -cwd -N utg_$asm "; - $SGE .= "-t 1-$jobs "; - $SGE .= "-j y -o /dev/null "; - $SGE .= "$wrk/5-consensus/consensus.sh\n"; - - submitBatchJobs($SGE, "utg_$asm"); - exit(0); - } else { - for (my $i=1; $i<=$jobs; $i++) { - &scheduler::schedulerSubmit("$wrk/5-consensus/consensus.sh $i > /dev/null 2>&1"); - } - - &scheduler::schedulerSetNumberOfProcesses(getGlobal("cnsConcurrency")); - &scheduler::schedulerFinish(); - } -} - - - -sub postUnitiggerConsensus (@) { - my @cgbFiles = @_; - - system("mkdir $wrk/5-consensus") if (! -d "$wrk/5-consensus"); - - goto alldone if (-e "$wrk/5-consensus/consensus.success"); - - createPostUnitiggerConsensusJobs(@cgbFiles); - - # - # Check that consensus finished properly - # - - my $failedJobs = 0; - - foreach my $f (@cgbFiles) { - if ($f =~ m/^.*(\d\d\d).cgb$/) { - if ((! -e "$wrk/5-consensus/${asm}_$1.success") || - (! -e "$wrk/5-consensus/${asm}_$1.cgi")) { - print STDERR "$wrk/5-consensus/${asm}_$1 failed -- no .success or no .cgi!\n"; - $failedJobs++; - } - } else { - caFailure("unitigger file '$f' didn't match ###.cgb", undef); - } - } - - # FAILUREHELPME - - caFailure("$failedJobs consensusAfterUnitigger jobs failed", undef) if ($failedJobs); - - # All jobs finished. Remove the partitioning from the gatekeeper - # store. The gatekeeper store is currently (5 Mar 2007) tolerant - # of someone asking for a partition that isn't there -- it'll - # fallback to the complete store. So, if you happen to want to - # run consensus again, it'll still work, just a little slower. - # - # (This block appears in both createPostUnitiggerConsensus.pl and createConsensusJobs.pl) - # - system("rm -f $wrk/$asm.gkpStore/frg.[0-9][0-9][0-9]"); - system("rm -f $wrk/$asm.gkpStore/hps.[0-9][0-9][0-9]"); - system("rm -f $wrk/$asm.gkpStore/qlt.[0-9][0-9][0-9]"); - system("rm -f $wrk/$asm.gkpStore/src.[0-9][0-9][0-9]"); - - touch("$wrk/5-consensus/consensus.success"); - - alldone: - stopAfter("consensusAfterUnitigger"); -} - -1; -use strict; - -sub runMeryl ($$$$$$) { - my $merSize = shift @_; - my $merComp = shift @_; - my $merCanonical = shift @_; - my $merThresh = shift @_; - my $merScale = 1.0; - my $merType = shift @_; - my $merDump = shift @_; - - my $bin = getBinDirectory(); - my $cmd; - - # The fasta file we should be creating. - my $ffile = "$wrk/0-mercounts/$asm.nmers.$merType.fasta"; - - if ($merThresh =~ m/auto\s*\*\s*(\S+)/) { - $merThresh = "auto"; - $merScale = $1; - } - - if ($merThresh =~ m/auto\s*\/\s*(\S+)/) { - $merThresh = "auto"; - $merScale = 1.0 / $1; - } - - if (($merThresh ne "auto") && ($merThresh == 0)) { - touch $ffile; - return; - } - - #if (-e $ffile) { - # print STDERR "runMeryl() would have returned.\n"; - #} - - if (merylVersion() eq "Mighty") { - - # Use the better meryl! This is straightforward. We count, - # then we dump. - - # Intermediate file - my $ofile = "$wrk/0-mercounts/$asm$merCanonical-ms$merSize-cm$merComp"; - - if (! -e "$ofile.mcdat") { - my $merylMemory = getGlobal("merylMemory"); - my $merylThreads = getGlobal("merylThreads"); - - if ($merylMemory !~ m/^-/) { - $merylMemory = "-memory $merylMemory"; - } - - # A small optimization we could do if (a) not mer - # overlapper, (b) not auto threshold: only save mer - # counts above the smaller (of obt & ovl thresholds). - # It's complicated, and potentially screws up restarts - # (if the threshold is changed after meryl is finished, - # for example). It's only useful on large assemblies, - # which we usually assume you know what's going on - # anyway. - # - # N.B. the mer overlapper NEEDS all mer counts 2 and - # higher. - - $cmd = "$bin/meryl "; - $cmd .= " -B $merCanonical -v -m $merSize $merylMemory -threads $merylThreads -c $merComp "; - $cmd .= " -L 2 "; - $cmd .= " -s $wrk/$asm.gkpStore:obt "; - $cmd .= " -o $ofile "; - $cmd .= "> $wrk/0-mercounts/meryl.err 2>&1"; - - if (runCommand("$wrk/0-mercounts", $cmd)) { - caFailure("meryl failed", "$wrk/0-mercounts/meryl.err"); - } - unlink "$wrk/0-mercounts/meryl.err"; - } - - if ($merThresh eq "auto") { - if (! -e "$ofile.estMerThresh.out") { - $cmd = "$bin/estimate-mer-threshold "; - $cmd .= " -g $wrk/$asm.gkpStore:obt "; - $cmd .= " -m $ofile "; - $cmd .= " > $ofile.estMerThresh.out "; - $cmd .= "2> $ofile.estMerThresh.err"; - - if (runCommand("$wrk/0-mercounts", $cmd)) { - rename "$ofile.estMerThresh.out", "$ofile.estMerThresh.out.FAILED"; - caFailure("estimate-mer-threshold failed", "$ofile.estMerThresh.err"); - } - } - - open(F, "< $ofile.estMerThresh.out") or caFailure("failed to read estimated mer threshold from '$ofile.estMerThresh.out'", undef); - $merThresh = ; - $merThresh = int($merThresh * $merScale); - close(F); - - if ($merThresh == 0) { - caFailure("failed to estimate a mer threshold", "$ofile.estMerThresh.err"); - } - } - - # We only need the ascii dump if we're doing overlapper, mer - # overlapper reads meryl directly. - # - if ($merDump) { - if (! -e $ffile) { - $cmd = "$bin/meryl "; - $cmd .= "-Dt -n $merThresh "; - $cmd .= "-s $ofile "; - $cmd .= "> $ffile "; - $cmd .= "2> $ffile.err "; - - if (runCommand("$wrk/0-mercounts", $cmd)) { - unlink $ffile; - caFailure("meryl failed to dump frequent mers", "$ffile.err"); - } - unlink "$ffile.err"; - } - } - } elsif (merylVersion() eq "CA") { - - # Sigh. The old meryl. Not as easy. If we assume the - # process, in particular that the Ovl threshold is less than - # the Obt threshold, and that we have already computed the - # Ovl mers, we could filter the Ovl mers to get the Obt mers. - # But that's tough, especially if we allow mer compression. - - my $merSkip = 10; - - # Intermediate file - my $ofile = "$wrk/0-mercounts/$asm-ms$merSize-mt$merThresh-mk$merSkip.$merType.fasta"; - - if ($merComp > 0) { - print STDERR "ERROR! merCompression not supported without installing kmer\n"; - print STDERR " (http://sourceforge.net/projects/kmer/).\n"; - print STDERR "If you have installed kmer, then your build is broken, as I\n"; - print STDERR "did not find the correct 'meryl' (meryl -V should have said Mighty).\n"; - die; - } - - if ($merCanonical ne "-C") { - print STDERR "ERROR! mer overlapper not supported without installing kmer\n"; - print STDERR " (http://sourceforge.net/projects/kmer/).\n"; - print STDERR "If you have installed kmer, then your build is broken, as I\n"; - print STDERR "did not find the correct 'meryl' (meryl -V should have said Mighty).\n"; - die; - } - - if ($merThresh eq "auto") { - print STDERR "WARNING! auto picking a mer threshold not supported without installing kmer\n"; - print STDERR " (http://sourceforge.net/projects/kmer/).\n"; - print STDERR "Using historical defaults.\n"; - - if ($merType eq "obt") { - $merThresh = 1000; - } else { - $merThresh = 500; - } - } - - if (! -e $ofile) { - my $mt = $merThresh / $merSkip; - - $cmd = "$bin/meryl "; - $cmd .= "-s $wrk/$asm.gkpStore -m $merSize -n $mt -K $merSkip "; - $cmd .= " -o $ofile"; - $cmd .= "> $wrk/0-mercounts/meryl.err 2>&1"; - - if (runCommand("$wrk/0-mercounts", $cmd)) { - unlink $ofile; - caFailure("meryl failed to dump frequent mers", "$wrk/0-mercounts/meryl.err"); - } - unlink "$wrk/0-mercounts/meryl.err"; - } - - symlink($ofile, $ffile) if (! -e $ffile); - } else { - caFailure("unknown meryl version '" . merylVersion() . "'", ""); - } - - return($merThresh); -} - -sub meryl { - system("mkdir $wrk/0-mercounts") if (! -d "$wrk/0-mercounts"); - - if (getGlobal("ovlOverlapper") eq "umd") { - caFailure("meryl attempted to compute mer counts for the umd overlapper", undef); - } - - if (getGlobal("ovlOverlapper") eq "sand") { - caFailure("meryl attempted to compute mer counts for the sand overlapper", undef); - } - - - my $ovlc = 0; # No compression, unless we're the mer overlapper - my $obtc = 0; - - my $ovlC = "-C"; # Canonical, unless we're the mer overlapper - my $obtC = "-C"; # (except the mer overlapper now wants canonical) - - my $ovlD = 1; # Dump, unless we're the mer overlapper - my $obtD = 1; - - my $obtT = 0; # New threshold - my $ovlT = 0; - - # If the mer overlapper, we don't care about single-copy mers, - # only mers that occur in two or more frags (kind of important - # for large assemblies). - - if (getGlobal("ovlOverlapper") eq "mer") { - $ovlc = getGlobal("merCompression"); - $ovlC = "-C"; - $ovlD = 0; - } - if (getGlobal("obtOverlapper") eq "mer") { - $obtc = getGlobal("merCompression"); - $obtC = "-C"; - $obtD = 0; - } - - $ovlT = runMeryl(getGlobal('ovlMerSize'), $ovlc, $ovlC, getGlobal("ovlMerThreshold"), "ovl", $ovlD); - $obtT = runMeryl(getGlobal('obtMerSize'), $obtc, $obtC, getGlobal("obtMerThreshold"), "obt", $obtD) if (getGlobal("doOverlapTrimming")); - - if ((getGlobal("obtMerThreshold") ne $obtT) && (getGlobal("doOverlapTrimming"))) { - print STDERR "Reset OBT mer threshold from ", getGlobal("obtMerThreshold"), " to $obtT.\n"; - setGlobal("obtMerThreshold", $obtT); - } - - if (getGlobal("ovlMerThreshold") ne $ovlT) { - print STDERR "Reset OVL mer threshold from ", getGlobal("ovlMerThreshold"), " to $ovlT.\n"; - setGlobal("ovlMerThreshold", $ovlT); - } -} - -1; -use strict; - - - -sub overlapCorrection { - my $cleanup = 1; - - return if (getGlobal("doFragmentCorrection") == 0); - - return if (-e "$wrk/3-overlapcorrection/$asm.erates.updated"); - - system("mkdir $wrk/3-overlapcorrection") if (! -e "$wrk/3-overlapcorrection"); - - if ((getGlobal("ovlOverlapper") eq "ovl") && (! -e "$wrk/3-overlapcorrection/frgcorr.sh")) { - my $batchSize = getGlobal("frgCorrBatchSize"); - my $numThreads = getGlobal("frgCorrThreads"); - my $jobs = int($numFrags / ($batchSize-1)) + 1; - - open(F, "> $wrk/3-overlapcorrection/frgcorr.sh") or caFailure("failed to write to '$wrk/3-overlapcorrection/frgcorr.sh'", undef); - print F "#!" . getGlobal("shell") . "\n\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %04d \$jobid`\n"; - print F "minid=`expr \$jobid \\* $batchSize - $batchSize + 1`\n"; - print F "maxid=`expr \$jobid \\* $batchSize`\n"; - print F "runid=\$\$\n"; - print F "\n"; - print F "if [ \$maxid -gt $numFrags ] ; then\n"; - print F " maxid=$numFrags\n"; - print F "fi\n"; - print F "if [ \$minid -gt \$maxid ] ; then\n"; - print F " echo Job partitioning error -- minid=\$minid maxid=\$maxid.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - print F "\n"; - print F "if [ -e $wrk/3-overlapcorrection/\$jobid.frgcorr ] ; then\n"; - print F " echo Job previously completed successfully.\n"; - print F " exit\n"; - print F "fi\n"; - - print F getBinDirectoryShellCode(); - - print F "\$bin/correct-frags \\\n"; - print F " -t $numThreads \\\n"; - print F " -S $wrk/$asm.ovlStore \\\n"; - print F " -o $wrk/3-overlapcorrection/\$jobid.frgcorr.WORKING \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " \$minid \$maxid \\\n"; - print F "&& \\\n"; - print F "mv $wrk/3-overlapcorrection/\$jobid.frgcorr.WORKING $wrk/3-overlapcorrection/\$jobid.frgcorr\n"; - - close(F); - - chmod 0755, "$wrk/3-overlapcorrection/frgcorr.sh"; - - if (getGlobal("frgCorrOnGrid") && getGlobal("useGrid")) { - # Run the correction job on the grid. - - my $sge = getGlobal("sge"); - my $sgeFragmentCorrection = getGlobal("sgeFragmentCorrection"); - - my $SGE; - $SGE = "qsub $sge $sgeFragmentCorrection -cwd -N frg_$asm "; - $SGE .= "-t 1-$jobs "; - $SGE .= " -j y -o $wrk/3-overlapcorrection/\\\$TASK_ID.err "; - $SGE .= "$wrk/3-overlapcorrection/frgcorr.sh\n"; - - submitBatchJobs($SGE, "frg_$asm"); - exit(0); - } else { - # Run the correction job right here, right now. - - for (my $i=1; $i<=$jobs; $i++) { - my $out = substr("0000" . $i, -4); - &scheduler::schedulerSubmit("$wrk/3-overlapcorrection/frgcorr.sh $i > $wrk/3-overlapcorrection/$out.err 2>&1"); - } - - &scheduler::schedulerSetNumberOfProcesses($global{"frgCorrConcurrency"}); - &scheduler::schedulerFinish(); - } - } - - # - # MERGE CORRECTION - # - - if (! -e "$wrk/3-overlapcorrection/$asm.frgcorr") { - my $batchSize = (getGlobal("ovlOverlapper") eq "mer") ? getGlobal("merOverlapperExtendBatchSize") : getGlobal("frgCorrBatchSize"); - my $jobs = int($numFrags / ($batchSize-1)) + 1; - my $failedJobs = 0; - - open(F, "> $wrk/3-overlapcorrection/cat-corrects.frgcorrlist"); - for (my $i=1; $i<=$jobs; $i++) { - my $jobid = substr("0000" . $i, -4); - - if (! -e "$wrk/3-overlapcorrection/$jobid.frgcorr") { - print STDERR "Fragment correction job $jobid failed.\n"; - $failedJobs++; - } - - print F "$wrk/3-overlapcorrection/$jobid.frgcorr\n"; - } - close(F); - - # FAILUREHELPME - - if ($failedJobs) { - if (getGlobal("ovlOverlapper") eq "ovl") { - caFailure("$failedJobs overlap jobs failed; remove $wrk/3-overlapcorrection/frgcorr.sh to try again", undef); - } else { - caFailure("$failedJobs overlap jobs failed due to mer overlap seed extension", undef); - } - } - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/cat-corrects "; - $cmd .= "-L $wrk/3-overlapcorrection/cat-corrects.frgcorrlist "; - $cmd .= "-o $wrk/3-overlapcorrection/$asm.frgcorr "; - $cmd .= "> $wrk/3-overlapcorrection/cat-corrects.err 2>&1"; - - if (runCommand("$wrk/3-overlapcorrection", $cmd)) { - rename "$wrk/3-overlapcorrection/$asm.frgcorr", "$wrk/3-overlapcorrection/$asm.frgcorr.FAILED"; - caFailure("failed to concatenate the fragment corrections", "$wrk/3-overlapcorrection/cat-corrects.err"); - } - - if ($cleanup) { - open(F, "< $wrk/3-overlapcorrection/cat-corrects.frgcorrlist"); - while () { - if (m/^(.*)\/([0-9]*).frgcorr/) { - #unlink "$1/$2.frgcorr"; - #unlink "$1/$2.err"; - my $sge = int($2); - #unlink "$1/$sge.err"; - } - } - close(F); - #unlink "$wrk/3-overlapcorrection/cat-corrects.frgcorrlist"; - #unlink "$wrk/3-overlapcorrection/cat-corrects.err"; - } - } - - # - # CREATE OVERLAP CORRECTION - # - - if (! -e "$wrk/3-overlapcorrection/ovlcorr.sh") { - my $ovlCorrBatchSize = getGlobal("ovlCorrBatchSize"); - my $jobs = int($numFrags / ($ovlCorrBatchSize-1)) + 1; - - open(F, "> $wrk/3-overlapcorrection/ovlcorr.sh") or caFailure("failed to write '$wrk/3-overlapcorrection/ovlcorr.sh'", undef); - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "if [ \$jobid -gt $jobs ] ; then\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %04d \$jobid`\n"; - print F "frgBeg=`expr \$jobid \\* $ovlCorrBatchSize - $ovlCorrBatchSize + 1`\n"; - print F "frgEnd=`expr \$jobid \\* $ovlCorrBatchSize`\n"; - print F "if [ \$frgEnd -ge $numFrags ] ; then\n"; - print F " frgEnd=$numFrags\n"; - print F "fi\n"; - print F "frgBeg=`printf %08d \$frgBeg`\n"; - print F "frgEnd=`printf %08d \$frgEnd`\n"; - - print F getBinDirectoryShellCode(); - - print F "if [ ! -e $wrk/3-overlapcorrection/\$jobid.erate ] ; then\n"; - print F " \$bin/correct-olaps \\\n"; - print F " -S $wrk/$asm.ovlStore \\\n"; - print F " -e $wrk/3-overlapcorrection/\$jobid.erate.WORKING \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " $wrk/3-overlapcorrection/$asm.frgcorr \\\n"; - print F " \$frgBeg \$frgEnd \\\n"; - print F " && \\\n"; - print F " mv $wrk/3-overlapcorrection/\$jobid.erate.WORKING $wrk/3-overlapcorrection/\$jobid.erate\n"; - print F "fi\n"; - close(F); - - chmod 0755, "$wrk/3-overlapcorrection/ovlcorr.sh"; - - if (getGlobal("ovlCorrOnGrid") && getGlobal("useGrid")) { - # Run the correction job on the grid. - - my $sge = getGlobal("sge"); - my $sgeOverlapCorrection = getGlobal("sgeOverlapCorrection"); - - my $SGE; - $SGE = "qsub $sge $sgeOverlapCorrection -cwd -N ovc_$asm "; - $SGE .= "-t 1-$jobs "; - $SGE .= " -j y -o $wrk/3-overlapcorrection/\\\$TASK_ID.err "; - $SGE .= "$wrk/3-overlapcorrection/ovlcorr.sh\n"; - - submitBatchJobs($SGE, "ovc_$asm"); - exit(0); - } else { - # Run the correction job right here, right now. - - for (my $i=1; $i<=$jobs; $i++) { - my $out = substr("0000" . $i, -4); - &scheduler::schedulerSubmit("$wrk/3-overlapcorrection/ovlcorr.sh $i > $wrk/3-overlapcorrection/$out.err 2>&1"); - } - - &scheduler::schedulerSetNumberOfProcesses($global{"ovlCorrConcurrency"}); - &scheduler::schedulerFinish(); - } - } - - # - # APPLY OVERLAP CORRECTION - # - - if (! -e "$wrk/3-overlapcorrection/$asm.erates.updated") { - my $ovlCorrBatchSize = getGlobal("ovlCorrBatchSize"); - my $bin = getBinDirectory(); - my $failedJobs = 0; - my $jobs = int($numFrags / ($ovlCorrBatchSize-1)) + 1; - my $cmd; - - open(F, "> $wrk/3-overlapcorrection/cat-erates.eratelist"); - for (my $i=1; $i<=$jobs; $i++) { - my $jobid = substr("0000" . $i, -4); - - if (! -e "$wrk/3-overlapcorrection/$jobid.erate") { - print STDERR "Overlap correction job $i ($wrk/3-overlapcorrection/$jobid) failed.\n"; - $failedJobs++; - } - - print F "$wrk/3-overlapcorrection/$jobid.erate\n"; - } - close(F); - - # FAILUREHELPME - - if ($failedJobs) { - caFailure("$failedJobs overlap correction jobs failed; remove $wrk/3-overlapcorrection/ovlcorr.sh (or run by hand) to try again", undef); - } - - #unlink "$wrk/3-overlapcorrection/$asm.frgcorr" if ($cleanup); - - $cmd = "$bin/cat-erates "; - $cmd .= "-L $wrk/3-overlapcorrection/cat-erates.eratelist "; - $cmd .= "-o $wrk/3-overlapcorrection/$asm.erates "; - $cmd .= "> $wrk/3-overlapcorrection/cat-erates.err 2>&1"; - if (runCommand("$wrk/3-overlapcorrection", $cmd)) { - rename "$wrk/3-overlapcorrection/$asm.erates", "$wrk/3-overlapcorrection/$asm.erates.FAILED"; - caFailure("failed to concatenate the overlap erate corrections", "$wrk/3-overlapcorrection/cat-erates.err"); - } - - $cmd = "$bin/overlapStore "; - $cmd .= " -u $wrk/$asm.ovlStore "; - $cmd .= " $wrk/3-overlapcorrection/$asm.erates"; - $cmd .= "> $wrk/3-overlapcorrection/overlapStore-update-erates.err 2>&1"; - if (runCommand("$wrk/3-overlapcorrection", $cmd)) { - caFailure("failed to apply the overlap corrections", "$wrk/3-overlapcorrection/overlapStore-update-erates.err"); - } - - touch("$wrk/3-overlapcorrection/$asm.erates.updated"); - - if ($cleanup) { - open(F, "< $wrk/3-overlapcorrection/cat-erates.eratelist"); - while () { - if (m/^(.*)\/([0-9]*).erate/) { - #unlink "$1/$2.erate"; - #unlink "$1/$2.err"; - my $sge = int($2); - #unlink "$1/$sge.err"; - } - } - close(F); - - #unlink "$wrk/3-overlapcorrection/overlapStore-update-erates.err"; - #unlink "$wrk/3-overlapcorrection/$asm.erates"; - - #unlink "$wrk/3-overlapcorrection/cat-erates.err"; - #unlink "$wrk/3-overlapcorrection/cat-erates.eratelist"; - - #unlink "$wrk/3-overlapcorrection/frgcorr.sh"; - #unlink "$wrk/3-overlapcorrection/ovlcorr.sh"; - } - } -} - -1; -use strict; - -sub overlapTrim { - - return if (getGlobal("doOverlapTrimming") == 0); - return if (getGlobal("ovlOverlapper") eq "umd"); - return if (getGlobal("ovlOverlapper") eq "sand"); - - goto alldone if (-e "$wrk/0-overlaptrim/overlaptrim.success"); - - system("mkdir $wrk/0-overlaptrim") if (! -d "$wrk/0-overlaptrim"); - system("mkdir $wrk/0-overlaptrim-overlap") if (! -d "$wrk/0-overlaptrim-overlap"); - - # Do an initial overly-permissive quality trimming, intersected - # with any known vector trimming. - # - if ((! -e "$wrk/0-overlaptrim/$asm.initialTrimLog") && - (! -e "$wrk/0-overlaptrim/$asm.initialTrimLog.bz2")) { - - # OBT needs to backup the frag store because it doesn't have - # enough entries to be non-destructive. In particular, the - # merge (might) and chimera (definitely) read/write the same - # entry (OBT). - # - backupFragStore("beforeTrimming"); - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/initialTrim "; - $cmd .= " -log $wrk/0-overlaptrim/$asm.initialTrimLog "; - $cmd .= " -frg $wrk/$asm.gkpStore "; - $cmd .= " > $wrk/0-overlaptrim/$asm.initialTrim.report "; - $cmd .= " 2> $wrk/0-overlaptrim/$asm.initialTrim.err "; - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - restoreFragStoreBackup("beforeTrimming"); - rename "$wrk/0-overlaptrim/$asm.initialTrimLog", "$wrk/0-overlaptrim/$asm.initialTrimLog.FAILED"; - caFailure("initial trimming failed", "$wrk/0-overlaptrim/$asm.initialTrim.err"); - } - - unlink "0-overlaptrim/$asm.initialTrim.err"; - } - - # Compute overlaps, if we don't have them already - - if (! -e "$wrk/$asm.obtStore") { - - createOverlapJobs("trim"); - checkOverlap("trim"); - - # Sort the overlaps -- this also duplicates each overlap so that - # all overlaps for a fragment A are localized. - - if (runCommand("$wrk/0-overlaptrim", - #"find $wrk/0-overlaptrim-overlap -follow -name \\*ovb.gz -print > $wrk/$asm.obtStore.list")) { - "find $wrk/1-overlapper -follow -name \\*.ovb.gz -print > $wrk/$asm.obtStore.list")) { - caFailure("failed to generate a list of all the overlap files", undef); - } - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/overlapStore "; - $cmd .= " -O "; - $cmd .= " -c $wrk/$asm.obtStore.BUILDING "; - $cmd .= " -g $wrk/$asm.gkpStore "; - $cmd .= " -M " . getGlobal('ovlStoreMemory'); - $cmd .= " -L $wrk/$asm.obtStore.list"; - $cmd .= " > $wrk/$asm.obtStore.err 2>&1"; - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - caFailure("failed to build the obt store", "$wrk/$asm.obtStore.err"); - } - - rename "$wrk/$asm.obtStore.BUILDING", "$wrk/$asm.obtStore"; - - rmrf("$asm.obtStore.list"); - rmrf("$asm.obtStore.err"); - } - - # Consolidate the overlaps, listing all overlaps for a single - # fragment on a single line. These are still iid's. - - if ((! -e "$wrk/0-overlaptrim/$asm.ovl.consolidated") && - (! -e "$wrk/0-overlaptrim/$asm.ovl.consolidated.bz2")) { - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/consolidate "; - $cmd .= " -ovs $wrk/$asm.obtStore "; - $cmd .= " > $wrk/0-overlaptrim/$asm.ovl.consolidated "; - $cmd .= "2> $wrk/0-overlaptrim/$asm.ovl.consolidated.err"; - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - unlink "$wrk/0-overlaptrim/$asm.ovl.consolidated"; - caFailure("failed to consolidate overlaps", "$wrk/0-overlaptrim/$asm.ovl.consolidated.err"); - } - unlink "$wrk/0-overlaptrim/$asm.ovl.consolidated.err"; - } - - - # We need to have all the overlaps squashed already, in particular so - # that we can get the mode of the 5'mode. We could do this all in - # core, but that would take lots of space. - - if ((! -e "$wrk/0-overlaptrim/$asm.mergeLog") && - (! -e "$wrk/0-overlaptrim/$asm.mergeLog.bz2")) { - - # See comment on first backupFragStore() call. - backupFragStore("beforeTrimMerge"); - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/merge-trimming "; - $cmd .= "-log $wrk/0-overlaptrim/$asm.mergeLog "; - $cmd .= "-frg $wrk/$asm.gkpStore "; - $cmd .= "-ovl $wrk/0-overlaptrim/$asm.ovl.consolidated "; - $cmd .= "> $wrk/0-overlaptrim/$asm.merge.err 2>&1"; - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - restoreFragStoreBackup("beforeTrimMerge"); - unlink "$wrk/0-overlaptrim/$asm.mergeLog"; - unlink "$wrk/0-overlaptrim/$asm.mergeLog.stats"; - caFailure("failed to merge trimming", "$wrk/0-overlaptrim/$asm.merge.err"); - } - } - - if (getGlobal("doChimeraDetection") != 0) { - if ((! -e "$wrk/0-overlaptrim/$asm.chimera.report") && - (! -e "$wrk/0-overlaptrim/$asm.chimera.report.bz2")) { - - # See comment on first backupFragStore() call. - backupFragStore("beforeChimera"); - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/chimera "; - $cmd .= " -gkp $wrk/$asm.gkpStore "; - $cmd .= " -ovs $wrk/$asm.obtStore "; - $cmd .= " -summary $wrk/0-overlaptrim/$asm.chimera.summary "; - $cmd .= " -report $wrk/0-overlaptrim/$asm.chimera.report "; - $cmd .= " > $wrk/0-overlaptrim/$asm.chimera.err 2>&1"; - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - restoreFragStoreBackup("beforeChimera"); - rename "$wrk/0-overlaptrim/$asm.chimera.report", "$wrk/0-overlaptrim/$asm.chimera.report.FAILED"; - caFailure("chimera cleaning failed", "$wrk/0-overlaptrim/$asm.chimera.err"); - } - } - } - - removeFragStoreBackup("beforePrefixDelete"); - removeFragStoreBackup("beforeTrimMerge"); - removeFragStoreBackup("beforeChimera"); - - # Well, except we never get here if UMD. Needs some tweaking. - - removeFragStoreBackup("beforeVectorTrim"); - removeFragStoreBackup("beforeUMDOverlapper"); - - backupFragStore("afterTrimming"); - - rmrf("$asm.obtStore"); - - touch("$wrk/0-overlaptrim/overlaptrim.success"); - - alldone: - stopAfter("overlapBasedTrimming"); - stopAfter("OBT"); -} - -1; -use strict; - - -sub perfectTrimming { - my $gkpStore = "$wrk/$asm.gkpStore"; - my $refFasta = getGlobal("perfectTrimming"); - - return if (!defined($refFasta)); - - setGlobal("doOverlapTrimming", 0); - - die "Can't find gkpStore '$gkpStore'\n" if (! -d $gkpStore); - die "Can't find reference '$refFasta'\n" if (! -e $refFasta); - - my $cmd; - my $bin = getBinDirectory(); - my $kmer; - { - my @p = split '/', $bin; - my $l = scalar(@p); - - $p[$l] = $p[$l-1]; - $p[$l-1] = $p[$l-2]; - $p[$l-2] = "kmer"; - - $kmer = join '/', @p; - } - - if (! -e "$gkpStore/reads.fasta") { - runCommand($wrk, "$bin/gatekeeper -dumpfastaseq -clear untrim $gkpStore > $gkpStore/reads.fasta") and die; - } - - if (! -e "$gkpStore/reads.sim4db") { - # #1 cov 25 iden 90 sucka - # #2 cov 80 iden 96 is nice - # #3 cov 25 iden 94 better than #1, but still sucky - # #4 cov 80 iden 94 same as #3 - # #5 cov 80 iden 95 - # #6 cov 25 iden 96 - # #7 cov 25 iden 97 - # #8 cov 25 iden 98 - $cmd = "$kmer/snapper2"; - $cmd .= " -queries $gkpStore/reads.fasta"; - $cmd .= " -genomic $refFasta"; - $cmd .= " -minhitlength 0"; - $cmd .= " -minhitcoverage 0"; - $cmd .= " -discardexonlength 40"; - $cmd .= " -minmatchcoverage 25"; - $cmd .= " -minmatchidentity 98"; - $cmd .= " -verbose"; - $cmd .= " -numthreads 1"; - $cmd .= " > $gkpStore/reads.sim4db"; - - runCommand($wrk, $cmd) and die; - } - - if (! -e "$gkpStore/reads.extent") { - runCommand($wrk, "$kmer/pickBestPolish < $gkpStore/reads.sim4db | $kmer/convertToExtent > $gkpStore/reads.extent") and die; - } - - if (! -e "$gkpStore/reads.update") { - my %mapBeg; - my %mapEnd; - - my %allReads; - my %allMates; - - # Read the reads and mates - # - open(F, "$bin/gatekeeper -dumpfragments -tabular -clear OBT $gkpStore |"); - $_ = ; # header line - while () { - my @v = split '\s+', $_; - $allReads{$v[1]}++; - $allMates{$v[1]} = $v[3]; - } - close(F); - - # Read the mapping - # - open(F, "< $gkpStore/reads.extent"); - while () { - my @v = split '\s+', $_; - - (undef, $v[0]) = split ',', $v[0]; - - if ($v[3] < $v[4]) { - $mapBeg{$v[0]} = $v[3]; - $mapEnd{$v[0]} = $v[4]; - } else { - $mapBeg{$v[0]} = $v[4]; - $mapEnd{$v[0]} = $v[3]; - } - } - close(F); - - # Update the gkpStore - # - open(F, "> $gkpStore/reads.update"); - foreach my $k (keys %allReads) { - my $mapLen = $mapEnd{$k} - $mapBeg{$k}; - - if ($mapLen < 64) { - print F "frg iid $k isdeleted t\n"; - if ($allMates{$k} > 0) { - print F "frg iid $k mateiid 0\n"; - print F "frg iid $allMates{$k} mateiid 0\n"; - } - } else { - print F "frg iid $k orig $mapBeg{$k} $mapEnd{$k}\n"; - print F "frg iid $k obtini $mapBeg{$k} $mapEnd{$k}\n"; - print F "frg iid $k obt $mapBeg{$k} $mapEnd{$k}\n"; - } - } - close(F); - } - - if (! -e "$gkpStore/reads.updated") { - runCommand($wrk, "$bin/gatekeeper -E $gkpStore/reads.update.errors --edit $gkpStore/reads.update $gkpStore > $gkpStore/reads.update.out 2> $gkpStore/reads.update.err") and die; - touch "$gkpStore/reads.updated"; - } -} - - -sub preoverlap { - my @fragFiles = @_; - - $numFrags = getNumberOfFragsInStore($wrk, $asm); - - # Return if there are fragments in the store, and die if there - # are no fragments and no source files. - # - if ($numFrags > 0) { - goto stopafter; - } - - caFailure("no fragment files specified, and stores not already created", undef) - if (scalar(@fragFiles) == 0); - - if ((! -d "$wrk/$asm.gkpStore") || - (! -e "$wrk/$asm.gkpStore/frg")) { - my $bin = getBinDirectory(); - - # Make sure all the inputs are here. We also shred any - # supplied ace files, and convert the sff's to frg's. - # - my $failedFiles = undef; - my $gkpInput = ""; - foreach my $frg (@fragFiles) { - if (! -e $frg) { - if (defined($failedFiles)) { - $failedFiles .= "; '$frg' not found"; - } else { - $failedFiles = "'$frg' not found"; - } - } - - if ($frg =~ m/^(.*)\.ace$/) { - my @fff = split '/', $1; - my $ace = $frg; - my $nam = pop @fff; - - $frg = "$wrk/$nam.shred.frg"; - - if (! -e "$frg") { - print STDERR "Shredding '$ace' -> '$frg'\n"; - shredACE($ace, $frg); - } - } - - if (($frg =~ m/^(.*)\.sff$/) || - ($frg =~ m/^(.*)\.sff.gz$/) || - ($frg =~ m/^(.*)\.sff.bz2$/)) { - my @fff = split '/', $1; - my $sff = $frg; - my $nam = pop @fff; - my $log = "$wrk/$nam.sff.log"; - - $frg = "$wrk/$nam.sff.frg"; - - if (! -e "$frg") { - print STDERR "Converting '$sff' -> '$frg'\n"; - - my $bin = getBinDirectory(); - - if (runCommand($wrk, "$bin/sffToCA -libraryname $nam -linker flx -insertsize 3000 300 -log $log -output $frg $sff > $frg.err 2>&1")) { - unlink "$wrk/$frg"; - caFailure("sffToCA failed", "$frg.err"); - } - } - } - - $gkpInput .= " $frg"; - } - caFailure($failedFiles, undef) if defined($failedFiles); - - my $cmd; - $cmd = "$bin/gatekeeper "; - $cmd .= " -o $wrk/$asm.gkpStore.BUILDING "; - $cmd .= " -T " if (getGlobal("doOverlapTrimming")); - $cmd .= " -F " if (getGlobal("gkpFixInsertSizes")); - $cmd .= " -E $wrk/$asm.gkpStore.errorLog "; - $cmd .= "$gkpInput "; - $cmd .= "> $wrk/$asm.gkpStore.err 2>&1"; - if (runCommand($wrk, $cmd)) { - caFailure("gatekeeper failed", "$wrk/$asm.gkpStore.err"); - } - - rename "$wrk/$asm.gkpStore.BUILDING", "$wrk/$asm.gkpStore"; - unlink "$asm.gkpStore.err"; - } - - perfectTrimming(); - - generateVectorTrim(); - - my $vi = getGlobal("vectorIntersect"); - - if ((defined($vi)) && (! -e "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.log")) { - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/gatekeeper -a -v $vi -o $wrk/$asm.gkpStore "; - $cmd .= " > $wrk/$asm.gkpStore/$asm.vectorClearLoaded.log"; - $cmd .= " 2> $wrk/$asm.gkpStore/$asm.vectorClearLoaded.err"; - - if (runCommand($wrk, $cmd)) { - rename "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.log", "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.log.FAILED"; - caFailure("gatekeeper failed to update clear ranges", "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.err"); - } - - unlink "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.err"; - } - - $numFrags = getNumberOfFragsInStore($wrk, $asm); - - stopafter: - stopAfter("initialStoreBuilding"); -} - -1; -#!/usr/bin/perl - -use strict; -use FileHandle; - -# -# Parameters -# - -my $MIN_COVERAGE = 1; # Should be 2 if there are "fake" reads in ace file - -my $MIN_READS = 4; -my $MIN_CONTIG_SIZE = 600; - -my $SHRED_READ_LENGTH = 600; - -my $LOW_QUAL_DIVISOR = 4; -my $DEFAULT_QUAL = 3; - -# -# Methods for reading an ACE file. -# - -sub read_AS{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $num_contigs, $num_reads)=split /\s+/; - if($id eq "AS"){ - return ($num_contigs, $num_reads); - } - } - die "Could not find AS to read.\n"; -} - - -sub read_CO{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $contig_id, $num_bases, $num_reads, $num_segments, $complementation, $sequence)=split /\s+/; - - if($id eq "CO"){ - while(<$fh>){ - chomp; - if($_ eq ""){ - last; - }else{ - $sequence.=$_; - } - } - return($contig_id, $num_bases, $num_reads, $num_segments, $complementation, $sequence); - } - } - die "Could not find CO to read.\n"; -} - - -sub read_BQ{ - my $fh=shift; - - my ($id, $sequence); - - while(<$fh>){ - chomp; - ($id)=split /\s+/; - - if($id eq "BQ"){ - while(<$fh>){ - chomp; - if($_ eq ""){ - last; - }else{ - $sequence.=$_; - } - } - return($sequence); - } - } - die "Could not find BQ to read.\n"; -} - - -sub read_AF{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $read_id, $complementation, $start)=split /\s+/; - if($id eq "AF"){ - return($read_id, $complementation, $start); - } - } - die "Could not find AF to read.\n"; -} - - -sub read_BS{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $start, $end, $read_id)=split /\s+/; - if($id eq "BS"){ - return($start, $end, $read_id); - } - } - die "Could not find BS to read.\n"; -} - - -sub read_RD{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $read_id, $num_bases, $num_read_info_items, $num_read_tags)=split /\s+/; - my $sequence; - if($id eq "RD"){ - while(<$fh>){ - chomp; - if($_ eq ""){ - last; - }else{ - $sequence.=$_; - } - } - return($read_id, $num_bases, $num_read_info_items, $num_read_tags, $sequence); - } - } - die "Could not find RD to read.\n"; -} - - -sub read_QA{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $qual_start, $qual_end, $clip_start, $clip_end)=split /\s+/; - if($id eq "QA"){ - return($qual_start, $qual_end, $clip_start, $clip_end); - } - } - die "Could not find QA to read.\n"; -} - - -sub read_DS{ - my $fh=shift; - my $id; - while(<$fh>){ - chomp; - my ($id)=split /\s+/; - if($id eq "DS"){ - return("not implemented"); - } - } - die "Could not find DS to read.\n"; -} - -# -# -# - -sub emitFragment ($$$$) { - my $uid = shift; - my $lid = shift; - my $seq = shift; - my $oh = shift; - - my $len = length($seq); - - my $qvs = $seq; - - my $q = chr($DEFAULT_QUAL + ord("0")); - my $l = chr($DEFAULT_QUAL/$LOW_QUAL_DIVISOR + ord("0")); - - $qvs =~ s/[^ACGT]/$l/og; - $qvs =~ s/[ACGT]/$q/og; - - print $oh "{FRG\n"; - print $oh "act:A\n"; - print $oh "acc:$uid\n"; - print $oh "rnd:1\n"; - print $oh "sta:G\n"; - print $oh "lib:$lid\n"; - print $oh "pla:0\n"; - print $oh "loc:0\n"; - print $oh "src:\n.\n"; - print $oh "seq:\n$seq\n.\n"; - print $oh "qlt:\n$qvs\n.\n"; - print $oh "hps:\n.\n"; - print $oh "clr:0,$len\n"; - print $oh "}\n"; -} - -# -# -# - -sub shredContig ($$$$$) { - my $ctgId = shift; - my $avgCoverage = shift; - my $sequence = shift; - my $libId = shift; - my $oh = shift; - - my $seq_len=length($sequence); - - my @begin_shred; - my @end_shred; - - { - # - # |*******| - # |###############| - # |-------------------------------------------------| - # ----------------1---------------- - # ----------------2---------------- - # ----------------3---------------- - # - # #### represents the distance between center of read 1 and read 3 - # [$center_range_width] - # **** represents the distance between centers of consective reads - # [$center_increments] - # - - my $shred_len = $SHRED_READ_LENGTH; - $shred_len = $seq_len - 50 if $seq_len < $SHRED_READ_LENGTH; - - my $num_reads=int($seq_len * $avgCoverage / $shred_len); - my $center_range_width = $seq_len - $shred_len; - - if($num_reads==1){ - push @begin_shred, 0; - push @end_shred, $shred_len; - }else{ - my $center_increments = $center_range_width / ($num_reads-1); - - # Cap the number of reads we will make so that we don't get - # redundant reads - - my $i; - my ($prev_begin, $prev_end)=(-1,-1); - for($i=0; $i<$num_reads; $i++){ - my $begin=$center_increments*$i; - my $end=$begin+$shred_len; - - $begin=int($begin); - $end=int($end); - - if($begin!=$prev_begin || $end!=$prev_end){ - push @begin_shred, $begin; - push @end_shred, $end; - $prev_begin=$begin; - $prev_end=$end; - } - } - } - - } - - my $num_shreds = scalar(@begin_shred); - - my $accomplished_coverage = $num_shreds * $SHRED_READ_LENGTH / $seq_len; - - # Output sequence after it has been formatted to the specified width - my $shred_idx; - for($shred_idx=0; $shred_idx<$num_shreds; $shred_idx++){ - my $shredded_sequence=substr($sequence, - $begin_shred[$shred_idx], - $end_shred[$shred_idx]-$begin_shred[$shred_idx]); - - #"/contig=$contigID\.$shred_idx " , - #"/target_coverage=$avgCoverage " , - #"/accomplished_coverage=$accomplished_coverage " , - #"/input_length=$seq_len " , - #"/range=${$begin_shred_ref}[$shred_idx]-" , - # "${$end_shred_ref}[$shred_idx]\n"; - - emitFragment("$libId.$ctgId.frag$shred_idx.$begin_shred[$shred_idx]-$end_shred[$shred_idx]", $libId, $shredded_sequence, $oh); - } -} - -# -# Main -# - -sub shredACE ($$) { - my $aceFile = shift; - my $outFile = shift; - my $libId = $aceFile; - - if ($aceFile =~ m/^.*\/(.*).ace/) { - $libId = $1; - } - - my $fh = new FileHandle "< $aceFile"; - my $oh = new FileHandle "> $outFile"; - - print $oh "{VER\n"; - print $oh "ver:2\n"; - print $oh "}\n"; - print $oh "{LIB\n"; - print $oh "act:A\n"; - print $oh "acc:$libId\n"; - print $oh "ori:U\n"; - print $oh "mea:0.0\n"; - print $oh "std:0.0\n"; - print $oh "src:\n"; - print $oh ".\n"; - print $oh "nft:1\n"; - print $oh "fea:\n"; - print $oh "doNotOverlapTrim=1\n"; - print $oh ".\n"; - print $oh "}\n"; - - my ($num_contigs, $num_reads)=read_AS($fh); - - my $contig_idx; - for($contig_idx=0; $contig_idx<$num_contigs; $contig_idx++){ - - my %read_position_hash; - - my ($contig_id, $num_consensus_bases, $num_reads, $num_segments, $complementation, $consensus_sequence) = read_CO($fh); - - my @coverage_array; - my $i; - - # Initialize Coverage Array - for($i=0; $i<$num_consensus_bases; $i++){ - $coverage_array[$i]=0; - } - - my $quality=read_BQ($fh); - - my $read_idx; - for($read_idx=0; $read_idx<$num_reads; $read_idx++){ - my ($read_id, $complementation, $consensus_start_pos)=read_AF($fh); - $read_position_hash{$read_id}=$consensus_start_pos; - } - - my ($base_line_start, $base_line_end, $base_line_read_id)=read_BS($fh); - - for($read_idx=0; $read_idx<$num_reads; $read_idx++){ - my ($read_id, $num_padded_bases, $num_read_info_items, $num_read_tags, $read_sequence)= read_RD($fh); - my ($qual_start, $qual_end, $align_start, $align_end)=read_QA($fh); - my $startPos = $read_position_hash{$read_id}; - - my $begin = $align_start + $startPos - 1; - my $end = $align_end + $startPos - 1; - - for($i=$begin; $i<$end; $i++){ - $coverage_array[$i]++; - } - my ($null)=read_DS($fh); - } - - - my $in_deep_enough=0; - my @sub_contig_begin_arr; - my @sub_contig_end_arr; - - # Keep track of where we go into deep coverage region from low coverage regions - for($i=0; $i<$num_consensus_bases; $i++){ - if($coverage_array[$i]>$MIN_COVERAGE && !$in_deep_enough){ - push @sub_contig_begin_arr, $i; - $in_deep_enough=1; - } - if($coverage_array[$i]<=$MIN_COVERAGE && $in_deep_enough){ - push @sub_contig_end_arr, ($i); - $in_deep_enough=0; - } - } - - if($in_deep_enough){ - push @sub_contig_end_arr, ($i); - } - - for($i=0; $i<=$#sub_contig_begin_arr; $i++){ - # Sum up coverage for each sub contig - my $cov_idx; - my $cov_sum=0; - for($cov_idx=$sub_contig_begin_arr[$i]; - $cov_idx<$sub_contig_end_arr[$i]; - $cov_idx++){ - $cov_sum+=$coverage_array[$cov_idx]; - } - - # Compute average coverage depth - - my $sub_seq_len=$sub_contig_end_arr[$i]-$sub_contig_begin_arr[$i]; - my $avg_cov = $cov_sum / $sub_seq_len; - - if($num_reads > $MIN_READS && $sub_seq_len>=$MIN_CONTIG_SIZE){ - my $sub_contig_seq = substr($consensus_sequence, - $sub_contig_begin_arr[$i], - $sub_seq_len); - - # Remove padding - $sub_contig_seq=~s/\*//g; - - shredContig($contig_id, $avg_cov, $sub_contig_seq, $libId, $oh); - } - } - } - - print $oh "{VER\n"; - print $oh "ver:1\n"; - print $oh "}\n"; -} - -# -# For standalone use -# - -#die "usage: $0 file.ace > file.frg\n" if (scalar(@ARGV) == 0); -#shredACE($ARGV[0], "a.frg"); -#exit(); -use strict; - -# Don't do interleaved merging unless we are throwing stones. - -sub CGW ($$$$$$) { - my $thisDir = shift @_; - my $lastDir = shift @_; - my $cgiFile = shift @_; - my $stoneLevel = shift @_; - my $logickp = shift @_; - my $finalRun = shift @_; - - return($thisDir) if (-e "$wrk/$thisDir/cgw.success"); - - my $lastckp = findLastCheckpoint($lastDir) if (defined($lastDir)); - my $ckp = "-R $lastckp -N $logickp" if (defined($lastckp) && defined($logickp)); - - # If there is a timing file here, assume we are restarting. Not - # all restarts are possible, but we try hard to make it so. - # - if (-e "$wrk/$thisDir/$asm.timing") { - my $restartckp = undef; - - open(F, "< $wrk/$thisDir/$asm.timing"); - while () { - print STDERR $_; - if (m/Writing.*ckp.(\d+)\s\(logical\s(.+)\)/) { - $restartckp = "-R $1 -N $2"; - } - } - close(F); - - if (!defined($restartckp)) { - print STDERR "Found an empty timing file, starting from the beginning: $ckp\n"; - } else { - $ckp = $restartckp; - print STDERR "Found a timing file, restarting: $ckp\n"; - } - } - - system("mkdir $wrk/$thisDir") if (! -d "$wrk/$thisDir"); - system("mkdir $wrk/$asm.SeqStore") if (! -d "$wrk/$asm.SeqStore"); - - if (!defined($cgiFile)) { - open(F, "ls $wrk/5-consensus |"); - while () { - chomp; - if (m/cgi$/) { - $cgiFile .= " $wrk/5-consensus/$_"; - } - } - close(F); - } else { - system("ln -s $cgiFile $wrk/$thisDir/$asm.cgi") if (! -e "$wrk/$thisDir/$asm.cgi"); - $cgiFile = "$wrk/$thisDir/$asm.cgi"; - } - - system("ln -s ../$asm.SeqStore $wrk/$thisDir/$asm.SeqStore") if (! -e "$wrk/$thisDir/$asm.SeqStore"); - - system("ln -s ../$lastDir/$asm.ckp.$lastckp $wrk/$thisDir/$asm.ckp.$lastckp") if (defined($lastDir)); - - if (-e "$wrk/$thisDir/cgw.out") { - my $ckp = findLastCheckpoint($thisDir); - my $ver = "00"; - while (-e "$wrk/$thisDir/cgw.out.$ver.ckp.$ckp") { - $ver++; - } - rename "$wrk/$thisDir/cgw.out", "$wrk/$thisDir/cgw.out.$ver.ckp.$ckp" - } - - my $sampleSize = getGlobal("cgwDistanceSampleSize"); - - my $bin = getBinDirectory(); - my $cmd; - my $astatLow = getGlobal("astatLowBound"); - my $astatHigh = getGlobal("astatHighBound"); - $cmd = "$bin/cgw $ckp -j $astatLow -k $astatHigh -r 5 -s $stoneLevel "; - $cmd .= " -S 0 " if (($finalRun == 0) || (getGlobal("doResolveSurrogates") == 0)); - $cmd .= " -G " if (($finalRun == 0) && (getGlobal("cgwOutputIntermediate") == 0)); - $cmd .= " -z " if (getGlobal("cgwDemoteRBP") == 1); - $cmd .= " -c " . getGlobal("closureEdges") if (defined(getGlobal("closureEdges"))); - $cmd .= " -p " . getGlobal("closurePlacement") if (defined(getGlobal("closureEdges"))); - $cmd .= " -u $wrk/4-unitigger/$asm.unused.ovl" if (getGlobal("cgwUseUnitigOverlaps") != 0); - $cmd .= " -m $sampleSize"; - $cmd .= " -g $wrk/$asm.gkpStore "; - $cmd .= " -o $wrk/$thisDir/$asm "; - $cmd .= " $cgiFile "; - $cmd .= " > $wrk/$thisDir/cgw.out 2>&1"; - if (runCommand("$wrk/$thisDir", $cmd)) { - caFailure("scaffolder failed", "$wrk/$thisDir/cgw.out"); - } - - - open(F, "ls -1 $wrk/$thisDir |"); - while () { - chomp; - - if (m/\.log$/) { - system("mkdir $wrk/$thisDir/log") if (! -d "$wrk/$thisDir/log"); - rename "$wrk/$thisDir/$_", "$wrk/$thisDir/log/$_"; - } - - if (m/\.analysis$/) { - system("mkdir $wrk/$thisDir/analysis") if (! -d "$wrk/$thisDir/analysis"); - rename "$wrk/$thisDir/$_", "$wrk/$thisDir/analysis/$_"; - } - } - close(F); - - - if (getGlobal("cgwPurgeCheckpoints") != 0) { - my $f = findFirstCheckpoint($thisDir); - my $l = findLastCheckpoint($thisDir); - - while ($f < $l) { - #print STDERR "Purging $wrk/$thisDir/$asm.ckp.$f\n"; - unlink "$wrk/$thisDir/$asm.ckp.$f"; - $f++; - } - } - - touch("$wrk/$thisDir/cgw.success"); - - return $thisDir; -} - - -sub eCR ($$$) { - my $thisDir = shift @_; - my $lastDir = shift @_; - my $iter = shift @_; - - return $thisDir if (-e "$wrk/$thisDir/extendClearRanges.success"); - - my $lastckp = findLastCheckpoint($lastDir); - - system("mkdir $wrk/$thisDir") if (! -d "$wrk/$thisDir"); - - system("ln -s ../$lastDir/$asm.ckp.$lastckp $wrk/$thisDir/$asm.ckp.$lastckp") if (! -e "$wrk/$thisDir/$asm.ckp.$lastckp"); - system("ln -s ../$asm.SeqStore $wrk/$thisDir/$asm.SeqStore") if (! -e "$wrk/$thisDir/$asm.SeqStore"); - - # Run eCR in smaller batches, hopefully making restarting from a failure both - # faster and easier. - - my $curScaffold = 0; - my $endScaffold = 0; - my $numScaffolds = findNumScaffoldsInCheckpoint($thisDir, $lastckp); - my $stepSize = getGlobal("extendClearRangesStepSize"); - - if ($numScaffolds == 0) { - print STDERR "WARNING: found no scaffolds in $thisDir checkpoint $lastckp.\n"; - print STDERR "WARNING: this might mean all your unitigs are degenerates now.\n"; - print STDERR "WARNING: extendClearRanges skipped.\n"; - touch("$wrk/$thisDir/extendClearRanges.success"); - return $thisDir; - } - - if (!defined($stepSize)) { - $stepSize = 5000; - $stepSize = int($numScaffolds / 8) + 1 if ($stepSize < $numScaffolds / 8); - } - - print STDERR "Found $numScaffolds scaffolds in $thisDir checkpoint $lastckp; using a stepSize of $stepSize.\n"; - - my $substrlen = length("$numScaffolds"); - - while ($curScaffold < $numScaffolds) { - $endScaffold = $curScaffold + $stepSize; - $endScaffold = $numScaffolds if ($endScaffold > $numScaffolds); - - $curScaffold = substr("000000000$curScaffold", -$substrlen); - - if (! -e "$wrk/$thisDir/extendClearRanges-scaffold.$curScaffold.success") { - - $lastckp = findLastCheckpoint($thisDir); - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/extendClearRanges "; - $cmd .= " -g $wrk/$asm.gkpStore "; - $cmd .= " -n $lastckp "; - $cmd .= " -c $asm "; - $cmd .= " -b $curScaffold -e $endScaffold "; - $cmd .= " -i $iter "; - $cmd .= " > $wrk/$thisDir/extendClearRanges-scaffold.$curScaffold.err 2>&1"; - - open(F, "> $wrk/$thisDir/extendClearRanges-scaffold.$curScaffold.sh"); - print F "#!" . getGlobal("shell") . "\n\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - print F "\n"; - print F "$cmd\n"; - close(F); - - if (runCommand("$wrk/$thisDir", $cmd)) { - caFailure("extendClearRanges failed", "$wrk/$thisDir/extendClearRanges-scaffold.$curScaffold.err"); - } - touch("$wrk/$thisDir/extendClearRanges-scaffold.$curScaffold.success"); - } - - $curScaffold = $endScaffold; - } - - touch("$wrk/$thisDir/extendClearRanges.success"); - - return $thisDir; -} - - -sub updateDistanceRecords ($) { - my $thisDir = shift @_; - - return if (-e "$wrk/$thisDir/cgw.distupdate.success"); - - # Older versions needed to actually compute the updated - # distances. Now, cgw outputs it! Yay! - - my $bin = getBinDirectory(); - my $cmd; - my $gkpErrorFile = "$wrk/$thisDir/gkp.distupdate.err"; - $cmd = "$bin/gatekeeper "; - $cmd .= " -a -o $wrk/$asm.gkpStore "; - $cmd .= " -E $gkpErrorFile"; - $cmd .= " $wrk/$thisDir/stat/scaffold_final.distupdate.dst "; - $cmd .= " $wrk/$thisDir/stat/contig_final.distupdate.dst "; - $cmd .= " > $wrk/$thisDir/cgw.distupdate.err 2>&1"; - if (runCommand("$wrk/$thisDir", $cmd)) { - caFailure("gatekeeper distance update failed", "$wrk/$thisDir/cgw.distupdate.err"); - } - - touch("$wrk/$thisDir/cgw.distupdate.success"); -} - - -sub scaffolder ($) { - my $cgiFile = shift @_; - my $lastDir = undef; - my $thisDir = 0; - my $stoneLevel = getGlobal("stoneLevel"); - - goto alldone if (-e "$wrk/7-CGW/cgw.success"); - - # Do an initial CGW to update distances, then update the - # gatekeeper. This initial run shouldn't be used for later - # CGW'ing. - # - if ((getGlobal("computeInsertSize") == 1) || - (getGlobal("computeInsertSize") == 0) && ($numFrags < 1000000)) { - updateDistanceRecords(CGW("6-clonesize", undef, $cgiFile, $stoneLevel, undef, 0)); - } - - - # If we're not doing eCR, we just do a single scaffolder run, and - # get the heck outta here! OK, we'll do resolveSurrogates(), maybe. - # - if (getGlobal("doExtendClearRanges") == 0) { - $lastDir = CGW("7-$thisDir-CGW", $lastDir, $cgiFile, $stoneLevel, undef, 1); - $thisDir++; - } else { - - # Do the initial CGW, making sure to not throw stones. - # - $lastDir = CGW("7-$thisDir-CGW", $lastDir, $cgiFile, 0, undef, 0); - $thisDir++; - - # Followed by at least one eCR - # - $lastDir = eCR("7-$thisDir-ECR", $lastDir, 1); - $thisDir++; - - # Iterate eCR: do another scaffolder still without stones, - # then another eCR. Again, and again, until we get dizzy and - # fall over. - # - my $iterationMax = getGlobal("doExtendClearRanges") + 1; - for (my $iteration = 2; $iteration < $iterationMax; $iteration++) { - $lastDir = CGW("7-$thisDir-CGW", $lastDir, $cgiFile, 0, "ckp01-ABS", 0); - $thisDir++; - - $lastDir = eCR("7-$thisDir-ECR", $lastDir, $iteration); - $thisDir++; - } - - # Then another scaffolder, chucking stones into the big holes, - # filling in surrogates, and writing output. - # - $lastDir = CGW("7-$thisDir-CGW", $lastDir, $cgiFile, $stoneLevel, "ckp01-ABS", 1); - $thisDir++; - } - - - # And, finally, hold on, we're All Done! Point to the correct output directory. - # - system("ln -s $lastDir $wrk/7-CGW") if (! -d "$wrk/7-CGW"); - - alldone: - stopAfter("scaffolder"); -} - - -1; -use strict; - -sub summarizeConsensusStatistics ($) { - my $dir = shift @_; - - if (! -e "$dir/consensus.stats.summary") { - my $NumColumnsInUnitigs = 0; - my $NumGapsInUnitigs = 0; - my $NumRunsOfGapsInUnitigReads = 0; - my $NumColumnsInContigs = 0; - my $NumGapsInContigs = 0; - my $NumRunsOfGapsInContigReads = 0; - my $NumAAMismatches = 0; - my $NumFAMismatches = 0; - my $NumVARRecords = 0; - my $NumVARStringsWithFlankingGaps = 0; - my $NumUnitigRetrySuccess = 0; - - open(F, "ls $dir/$asm*.err |"); - my @files = ; - chomp @files; - close(F); - - foreach my $f (@files) { - open(F, "< $f"); - while () { - $NumColumnsInUnitigs += $1 if (m/NumColumnsInUnitigs\s+=\s+(\d+)/); - $NumGapsInUnitigs += $1 if (m/NumGapsInUnitigs\s+=\s+(\d+)/); - $NumRunsOfGapsInUnitigReads += $1 if (m/NumRunsOfGapsInUnitigReads\s+=\s+(\d+)/); - $NumColumnsInContigs += $1 if (m/NumColumnsInContigs\s+=\s+(\d+)/); - $NumGapsInContigs += $1 if (m/NumGapsInContigs\s+=\s+(\d+)/); - $NumRunsOfGapsInContigReads += $1 if (m/NumRunsOfGapsInContigReads\s+=\s+(\d+)/); - $NumAAMismatches += $1 if (m/NumAAMismatches\s+=\s+(\d+)/); - $NumFAMismatches += $1 if (m/NumFAMismatches\s+=\s+(\d+)/); - $NumVARRecords += $1 if (m/NumVARRecords\s+=\s+(\d+)/); - $NumVARStringsWithFlankingGaps += $1 if (m/NumVARStringsWithFlankingGaps\s+=\s+(\d+)/); - $NumUnitigRetrySuccess += $1 if (m/NumUnitigRetrySuccess\s+=\s+(\d+)/); - } - close(F); - } - - open(F, "> $dir/consensus.stats.summary"); - print F "NumColumnsInUnitigs=$NumColumnsInUnitigs\n" if ($NumColumnsInUnitigs > 0); - print F "NumGapsInUnitigs=$NumGapsInUnitigs\n" if ($NumGapsInUnitigs > 0); - print F "NumRunsOfGapsInUnitigReads=$NumRunsOfGapsInUnitigReads\n" if ($NumRunsOfGapsInUnitigReads > 0); - print F "NumColumnsInContigs=$NumColumnsInContigs\n" if ($NumColumnsInContigs > 0); - print F "NumGapsInContigs=$NumGapsInContigs\n" if ($NumGapsInContigs > 0); - print F "NumRunsOfGapsInContigReads=$NumRunsOfGapsInContigReads\n" if ($NumRunsOfGapsInContigReads > 0); - print F "NumAAMismatches=$NumAAMismatches\n" if ($NumAAMismatches > 0); - print F "NumFAMismatches=$NumFAMismatches\n" if ($NumFAMismatches > 0); - print F "NumVARRecords=$NumVARRecords\n" if ($NumVARRecords > 0); - print F "NumVARStringsWithFlankingGaps=$NumVARStringsWithFlankingGaps\n" if ($NumVARStringsWithFlankingGaps > 0); - print F "NumUnitigRetrySuccess=$NumUnitigRetrySuccess\n" if ($NumUnitigRetrySuccess > 0); - close(F); - } -} - - - -sub terminate ($) { - my $cgwDir = shift @_; - $cgwDir = "$wrk/7-CGW" if (!defined($cgwDir)); - - my $bin = getBinDirectory(); - my $perl = "/usr/bin/env perl"; - - my $termDir = "$wrk/9-terminator"; - system("mkdir $termDir") if (! -e "$termDir"); - - if (! -e "$termDir/$asm.asm") { - my $uidServer = getGlobal("uidServer"); - my $fakeUIDs = getGlobal("fakeUIDs"); - - my $cmd; - $cmd = "cat $cgwDir/$asm.cgw "; - $cmd .= " $wrk/8-consensus/$asm.cns_contigs.*[0-9] "; - $cmd .= " $cgwDir/$asm.cgw_scaffolds | "; - $cmd .= "$bin/terminator "; - $cmd .= " -s $fakeUIDs " if ($fakeUIDs != 0); - $cmd .= " $uidServer " if (defined($uidServer)); - $cmd .= " -g $wrk/$asm.gkpStore "; - $cmd .= " -o $termDir/$asm "; - $cmd .= " > $termDir/terminator.err 2>&1 "; - if (runCommand("$termDir", $cmd)) { - rename "$termDir/$asm.asm", "$termDir/$asm.asm.FAILED"; - rename "$termDir/$asm.map", "$termDir/$asm.map.FAILED"; - caFailure("terminator failed", "$termDir/terminator.err"); - } - unlink "$termDir/terminator.err"; - } - - - my $asmOutputFasta = "$bin/asmOutputFasta"; - if (! -e "$termDir/$asm.scf.fasta") { - my $cmd; - $cmd = "$asmOutputFasta -p $termDir/$asm $termDir/$asm.asm > $termDir/asmOutputFasta.err 2>&1"; - if (runCommand("$termDir", $cmd)) { - rename "$termDir/$asm.scfcns.fasta", "$termDir/$asm.scfcns.fasta.FAILED"; - caFailure("fasta output failed", "$termDir/asmOutputFasta.err"); - } - unlink "$termDir/asmOutputFasta.err"; - } - - - if (! -e "$termDir/$asm.singleton.fasta") { - my $lastckp = findLastCheckpoint("$wrk/7-CGW"); - - my $cmd; - $cmd = "$bin/dumpSingletons "; - $cmd .= " -g $wrk/$asm.gkpStore "; - $cmd .= " -c $cgwDir/$asm -n $lastckp -S "; - $cmd .= "> $termDir/$asm.singleton.fasta "; - $cmd .= "2> $termDir/dumpSingletons.err "; - if (runCommand("$termDir", $cmd)) { - print STDERR "Failed.\n"; - rename "$termDir/$asm.singleton.fasta", "$termDir/$asm.singleton.fasta.FAILED"; - } - unlink "$termDir/dumpSingletons.err"; - } - - - ######################################## - # - # Generate fragment/unitig/contig/scaffold mappings - # - ######################################## - - - if (getGlobal("createPosMap") > 0) { - if (! -e "$termDir/$asm.posmap.frgscf") { - if (runCommand("$termDir", "$bin/buildPosMap -o $asm < $termDir/$asm.asm > $termDir/buildPosMap.err 2>&1")) { - rename "$termDir/$asm.posmap.frgscf", "$termDir/$asm.posmap.frgscf.FAILED"; - caFailure("buildPosMap failed", "$termDir/buildPosMap.err"); - } - unlink "$termDir/buildPosMap.err"; - } - } - - ######################################## - # - # Generate a read depth histogram - # - ######################################## - if ((getGlobal("createPosMap") > 0) && (! -e "$termDir/$asm.qc.readdepth")) { - my $cmd; - - # Youch. Run five commands, do something if all are successful. - - $cmd = "sort -k2n -k3n -T $termDir $termDir/$asm.posmap.frgscf > $termDir/$asm.posmap.frgscf.sorted &&"; - $cmd .= "$bin/fragmentDepth -min 0 -max 3000 < $termDir/$asm.posmap.frgscf.sorted > $termDir/$asm.posmap.frgscf.histogram1 && "; - $cmd .= "$bin/fragmentDepth -min 3001 -max 10000 < $termDir/$asm.posmap.frgscf.sorted > $termDir/$asm.posmap.frgscf.histogram2 && "; - $cmd .= "$bin/fragmentDepth -min 10001 -max 1000000 < $termDir/$asm.posmap.frgscf.sorted > $termDir/$asm.posmap.frgscf.histogram3 && "; - $cmd .= "$bin/fragmentDepth -min 1000001 < $termDir/$asm.posmap.frgscf.sorted > $termDir/$asm.posmap.frgscf.histogram4 "; - - if (runCommand("$termDir", $cmd) == 0) { - my @H1; - my @H2; - my @H3; - my @H4; - my $histMax = 0; - - open(G, "< $termDir/$asm.posmap.frgscf.histogram1") or caFailure("failed to open '$termDir/$asm.posmap.frgscf.histogram1'", undef); - while () { - my ($v, $s) = split '\s+', $_; - $H1[$v] = $s; - $histMax = $v if ($histMax < $v); - } - close(G); - - open(G, "< $termDir/$asm.posmap.frgscf.histogram2") or caFailure("failed to open '$termDir/$asm.posmap.frgscf.histogram2'", undef); - while () { - my ($v, $s) = split '\s+', $_; - $H2[$v] = $s; - $histMax = $v if ($histMax < $v); - } - close(G); - - open(G, "< $termDir/$asm.posmap.frgscf.histogram3") or caFailure("failed to open '$termDir/$asm.posmap.frgscf.histogram3'", undef); - while () { - my ($v, $s) = split '\s+', $_; - $H3[$v] = $s; - $histMax = $v if ($histMax < $v); - } - close(G); - - open(G, "< $termDir/$asm.posmap.frgscf.histogram4") or caFailure("failed to open '$termDir/$asm.posmap.frgscf.histogram4'", undef); - while () { - my ($v, $s) = split '\s+', $_; - $H4[$v] = $s; - $histMax = $v if ($histMax < $v); - } - close(G); - - open(G, "> $termDir/$asm.qc.readdepth"); - print G "\n[Read Depth Histogram]\n"; - print G "d < 3Kbp < 10Kbp < 1Mbp < inf\n"; - for (my $v=0; $v<=$histMax; $v++) { - printf(G "%-4d %-10d %-10d %-10d %-10d\n", $v, int($H1[$v]), int($H2[$v]), int($H3[$v]), int($H4[$v])); - } - } - - # Remove our temporary files. - - unlink "$termDir/$asm.posmap.frgscf.histogram1"; - unlink "$termDir/$asm.posmap.frgscf.histogram2"; - unlink "$termDir/$asm.posmap.frgscf.histogram3"; - unlink "$termDir/$asm.posmap.frgscf.histogram4"; - } - - - ######################################## - # - # Generate statistics. - # - ######################################## - - if (! -e "$termDir/$asm.qc") { - my $qcOptions; - - #if (! -e "$termDir/$asm.dumpinfo") { - # if (runCommand($termDir, "$bin/gatekeeper -dumpinfo $wrk/$asm.gkpStore > $termDir/$asm.gkpinfo 2> $termDir/$asm.gkpinfo.err")) { - # unlink "$termDir/$asm.gkpinfo"; - # } - # unlink "$termDir/$asm.gkpinfo.err"; - #} - if ( -e "$wrk/$asm.frg" ) { - link "$wrk/$asm.frg", "$termDir/$asm.frg"; - $qcOptions = "-metrics"; - } - if ( -e "$wrk/$asm.catmap" && !-e "$termDir/$asm.catmap" ) { - link "$wrk/$asm.catmap", "$termDir/$asm.catmap"; - } - if ( -e "$wrk/$asm.seq.features" && !-e "$termDir/$asm.seq.features" ) { - link "$wrk/$asm.seq.features", "$termDir/$asm.seq.features"; - } - if (runCommand("$termDir", "$perl $bin/caqc.pl -euid $qcOptions $termDir/$asm.asm")) { - rename "$termDir/$asm.qc", "$termDir/$asm.qc.FAILED"; - } - - summarizeConsensusStatistics("$wrk/5-consensus"); - summarizeConsensusStatistics("$wrk/8-consensus"); - - open(F, ">> $termDir/$asm.qc") or caFailure("failed to append to '$termDir/$asm.qc'", undef); - - if (-e "$wrk/5-consensus/consensus.stats.summary") { - print F "\n[Unitig Consensus]\n"; - open(G, "< $wrk/5-consensus/consensus.stats.summary") or caFailure("failed to open '$wrk/5-consensus/consensus.stats.summary'", undef); - while () { - print F $_; - } - close(G); - } - - if (-e "$wrk/8-consensus/consensus.stats.summary") { - print F "\n[Contig Consensus]\n"; - open(G, "< $wrk/8-consensus/consensus.stats.summary") or caFailure("failed to open '$wrk/8-consensus/consensus.stats.summary'", undef); - while () { - print F $_; - } - close(G); - } - - if (-e "$termDir/$asm.qc.readdepth") { - open(G, "< $termDir/$asm.qc.readdepth") or caFailure("failed to open '$termDir/$asm.qc.readdepth'", undef); - while () { - print F $_; - } - close(G); - } - - close(F); - - unlink "$wrk/5-consensus/consensus.stats.summary"; - unlink "$wrk/8-consensus/consensus.stats.summary"; - unlink "$termDir/$asm.qc.readdepth"; - } - - - ######################################## - # - # Mercy merQC - # - ######################################## - - - if ((getGlobal("merQC") > 0) && - (! -e "$termDir/$asm.merQC") && - (merylVersion() eq "Mighty")) { - - system("mkdir $termDir/mercy") if (! -e "$termDir/mercy"); - - my $cmd; - my $ms = getGlobal("merQCmerSize"); - my $mem = getGlobal("merQCmemory"); - my $verbose = ""; - - if (! -e "$termDir/mercy/$asm-ms$ms-frgFull.mcidx") { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -memory $mem $verbose "; - $cmd .= "-s $wrk/$asm.gkpStore:untrim "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-frgFull"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-frgFull.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-frgFull.mcdat"; - } - } - if (! -e "$termDir/mercy/$asm-ms$ms-frgTrim.mcidx") { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -memory $mem $verbose "; - $cmd .= "-s $wrk/$asm.gkpStore "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-frgTrim"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-frgTrim.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-frgTrim.mcdat"; - } - } - - # XXX This can likely be optimized -- by feeding - # asmOutputcontigsFasta directly to meryl. It'd be harder - # (but great) if only one pass through the asm file could be - # made. Easier then if we write all three files at the same - # time. - - if (! -e "$termDir/mercy/$asm.ctgNorm.fasta") { - link "$termDir/$asm.ctg.fasta", "$termDir/mercy/$asm.ctgNorm.fasta"; - } - if (! -e "$termDir/mercy/$asm.ctgDreg.fasta") { - link "$termDir/$asm.deg.fasta", "$termDir/mercy/$asm.ctgDreg.fasta"; - } - if (! -e "$termDir/mercy/$asm.ctgAll.fasta") { - system "cat $termDir/$asm.{ctg,deg}.fasta > $termDir/mercy/$asm.ctgAll.fasta"; - } - - if ((! -e "$termDir/mercy/$asm-ms$ms-ctgNorm.mcidx") && - (-e "$termDir/mercy/$asm.ctgNorm.fasta")) { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -segments 4 $verbose "; - $cmd .= "-s $termDir/mercy/$asm.ctgNorm.fasta "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-ctgNorm"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-ctgNorm.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-ctgNorm.mcdat"; - } - } - if ((! -e "$termDir/mercy/$asm-ms$ms-ctgDreg.mcidx") && - (-e "$termDir/mercy/$asm.ctgDreg.fasta")) { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -segments 4 $verbose "; - $cmd .= "-s $termDir/mercy/$asm.ctgDreg.fasta "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-ctgDreg"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-ctgDreg.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-ctgDreg.mcdat"; - } - } - if ((! -e "$termDir/mercy/$asm-ms$ms-ctgAll.mcidx") && - (-e "$termDir/mercy/$asm.ctgAll.fasta")) { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -segments 4 $verbose "; - $cmd .= "-s $termDir/mercy/$asm.ctgAll.fasta "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-ctgAll"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-ctgAll.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-ctgAll.mcdat"; - } - } - - if (! -e "$termDir/$asm-ms$ms.merQC") { - $cmd = "$bin/mercy "; - $cmd .= "-af $termDir/mercy/$asm-ms$ms-frgFull " if (-e "$termDir/mercy/$asm-ms$ms-frgFull.mcidx"); - $cmd .= "-tf $termDir/mercy/$asm-ms$ms-frgTrim " if (-e "$termDir/mercy/$asm-ms$ms-frgTrim.mcidx"); - $cmd .= "-co $termDir/mercy/$asm-ms$ms-ctgNorm " if (-e "$termDir/mercy/$asm-ms$ms-ctgNorm.mcidx"); - $cmd .= "-dc $termDir/mercy/$asm-ms$ms-ctgDreg " if (-e "$termDir/mercy/$asm-ms$ms-ctgDreg.mcidx"); - $cmd .= "-ac $termDir/mercy/$asm-ms$ms-ctgAll " if (-e "$termDir/mercy/$asm-ms$ms-ctgAll.mcidx"); - $cmd .= "> $termDir/$asm-ms$ms.merQC"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - rename "$termDir/$asm-ms$ms.merQC", "$termDir/$asm-ms$ms.merQC.FAILED"; - } - } - } - - - ######################################## - # - # AGP and ACE file generation - # - ######################################## - - - if (getGlobal("createAGP") > 0) { - if (! -e "$termDir/$asm.agp") { - if (runCommand($termDir, "$perl $bin/asmToAGP.pl < $termDir/$asm.asm > $termDir/$asm.agp")) { - rename "$termDir/$asm.agp", "$termDir/$asm.agp.FAILED"; - } - } - } - - if (getGlobal("createACE") > 0) { - if (! -e "$termDir/$asm.ace.bz2") { - if (! -e "$termDir/$asm.frg") { - if (runCommand($termDir, "$bin/gatekeeper -dumpfrg -allreads $wrk/$asm.gkpStore > $termDir/$asm.frg 2> $termDir/gatekeeper.err")) { - caFailure("gatekeeper failed to dump fragments for ACE generation", "$termDir/gatekeeper.err"); - } - unlink "$termDir/gatekeeper.err"; - } - if (runCommand($termDir, "$perl $bin/ca2ace.pl $termDir/$asm.asm")) { - rename "$termDir/$asm.ace.bz2", "$termDir/$asm.ace.FAILED.bz2"; - } - } - } - - unlink "$wrk/$asm.asm"; - unlink "$wrk/$asm.qc"; - - link "$termDir/$asm.asm", "$wrk/$asm.asm"; - link "$termDir/$asm.qc", "$wrk/$asm.qc"; - - return(0); -} - -1; -use strict; - -# Assembly all done, remove some of the crud. - -sub cleaner () { - my $cleanType = getGlobal("cleanup"); - my $cleanValu = 0; - - print STDERR "The Cleaner has arrived. Doing '$cleanType'.\n"; - - $cleanValu = 0 if ($cleanType =~ m/none/); - $cleanValu = 1 if ($cleanType =~ m/light/); - $cleanValu = 2 if ($cleanType =~ m/heavy/); - $cleanValu = 3 if ($cleanType =~ m/aggressive/); - - - if ($cleanValu >= 1) { - # - # Remove some of the more useless output files, - # and many of the stores and whatnot that can be recreated. - # - rmrf("$asm.obtStore"); - rmrf("0-mercounts/*blocks", "0-mercounts/*sequence"); - rmrf("0-overlaptrim-overlap/overlap*out"); - rmrf("1-overlapper/overlap*out"); - rmrf("4-unitigger/$asm.fge", "4-unitigger/$asm.fgv"); - rmrf("7*/rezlog"); - } - - - if ($cleanValu >= 2) { - # - # - # - } - - - if ($cleanValu >= 3) { - # - # Nuke everything except 9-terminator. Be paranoid about doing it. - # - rmrf("0-mercounts"); - rmrf("0-overlaptrim"); - rmrf("0-overlaptrim-overlap"); - rmrf("1-overlapper"); - rmrf("2-frgcorr"); - rmrf("3-ovlcorr"); - rmrf("4-unitigger"); - rmrf("5-consensus"); - rmrf("7-[0-9]-CGW"); - rmrf("7-[0-9]-ECR"); - rmrf("7-CGW"); - rmrf("8-consensus"); - rmrf("$asm.SeqStore"); - rmrf("$asm.asm"); - rmrf("$asm.frg"); - rmrf("$asm.gkpStore"); - rmrf("$asm.obtStore"); - rmrf("$asm.ovlStore"); - rmrf("$asm.qc"); - } - - - if ($cleanType =~ m/compress/) { - # Compress *.err (usually tiny) - # Compress overlaps (*ovb) - # Compress checkpoints (*ckp.*[0-9]) - } -} -use strict; - -sub unitigger (@) { - my @cgbFiles = @_; - - goto alldone if (scalar(@cgbFiles) > 0); - - my $bin = getBinDirectory(); - - # Check for the presence of 454 reads. We know these cause trouble - # with unitigger, and we FORCE the use og BOG here. - # - if (getGlobal("unitigger") ne "bog") { - my $resetToBOG = 0; - - open(F, "$bin/gatekeeper -dumplibraries $wrk/$asm.gkpStore |"); - while () { - if (m/forceBOGunitigger=1/) { - $resetToBOG++; - } - } - close(F); - - if ($resetToBOG) { - print STDERR "WARNING:\n"; - print STDERR "WARNING: $resetToBOG libraries with forceBOGunitigger set. Forcing the use of unitigger=bog.\n"; - print STDERR "WARNING:\n"; - setGlobal("unitigger", "bog"); - } - } - - - if (! -e "$wrk/4-unitigger/unitigger.success") { - system("mkdir $wrk/4-unitigger") if (! -e "$wrk/4-unitigger"); - - my $l = getGlobal("utgGenomeSize"); - my $e = getGlobal("utgErrorRate"); - - my $B = int($numFrags / getGlobal("cnsPartitions")); - $B = getGlobal("cnsMinFrags") if ($B < getGlobal("cnsMinFrags")); - - my $unitigger = getGlobal("unitigger"); - - my $cmd; - - if ($unitigger eq "bog") { - my $bmd = getGlobal("bogBadMateDepth"); - - $cmd = "$bin/buildUnitigs "; - $cmd .= " -O $wrk/$asm.ovlStore "; - $cmd .= " -G $wrk/$asm.gkpStore "; - $cmd .= " -B $B "; - $cmd .= " -e $e "; - $cmd .= " -s $l " if (defined($l)); - $cmd .= " -b " if (getGlobal("bogPromiscuous") == 0); - $cmd .= " -k " if (getGlobal("bogEjectUnhappyContain") == 1); - $cmd .= " -m $bmd " if (defined($bmd)); - $cmd .= " -o $wrk/4-unitigger/$asm "; - $cmd .= " > $wrk/4-unitigger/unitigger.err 2>&1"; - } elsif ($unitigger eq "utg") { - my $u = getGlobal("utgBubblePopping"); - - $cmd = "$bin/unitigger "; - $cmd .= " -k " if (getGlobal("utgRecalibrateGAR") == 1); - $cmd .= " -B $B "; - $cmd .= " -l $l " if defined($l); - $cmd .= " -d 1 -x 1 -z 10 -j 5 -U $u "; - $cmd .= " -e $e "; - $cmd .= " -F $wrk/$asm.gkpStore "; - $cmd .= " -o $wrk/4-unitigger/$asm "; - $cmd .= " -I $wrk/$asm.ovlStore "; - $cmd .= " > $wrk/4-unitigger/unitigger.err 2>&1"; - } else { - caFailure("unknown unitigger $unitigger; must be 'bog' or 'utg'", undef); - } - - if (runCommand("$wrk/4-unitigger", $cmd)) { - caFailure("failed to unitig", "$wrk/4-unitigger/unitigger.err"); - } - - touch("$wrk/4-unitigger/unitigger.success"); - } - - alldone: - # Other steps (consensus) need the list of cgb files, so we just do it here. - # - open(F, "ls $wrk/4-unitigger/*.cgb |") or caFailure("failed to ls '$wrk/4-unitigger/*.cgb'", undef); - @cgbFiles = ; - close(F); - chomp @cgbFiles; - - stopAfter("unitigger"); - return @cgbFiles; -} - -1; -use strict; - -sub getUMDOverlapperClearRange ($) { - my $dir = shift @_; - my $fileName = "$asm.obtClrRange"; - - open(F, "ls -1 -d $wrk/$dir/*overlapperRunDir* |"); - open(G, ">$wrk/$dir/$fileName") or caFailure("failed to write '$wrk/$dir/$fileName'", undef); - while () { - chomp; - - open(T, "< $_/revisedOrigTrimsForReads.txt") or caFailure("failed to open '$_/revisedOrigTrimsForReads.txt'", undef); - while () { - my @trimData = split(/\s+/,$_); - my $uid = $trimData[0]; - my $bgn = $trimData[1]; - my $end = $trimData[2]; - - if ($bgn < $end) { - print G "frg uid $uid obt all $bgn $end\n"; - } else { - print G "frg uid $uid obt all $end $bgn\n"; - } - } - close(T); - } - close(F); - close(G); - - return $fileName; -} - -sub UMDoverlapper () { - goto alldone if (-d "$wrk/$asm.ovlStore"); - goto alldone if (getGlobal("ovlOverlapper") ne "umd"); - - my $outDir = "1-overlapper"; - system("mkdir $wrk/$outDir") if (! -d "$wrk/$outDir"); - - my $jobID = "0000001"; - system("mkdir $wrk/$outDir/$jobID") if (! -d "$wrk/$outDir/$jobID"); - - my $vi = getGlobal("vectorIntersect"); - - my $bin = getBinDirectory(); - - #dump the frag file from gkp if it does not exist already - # should check if vector clear then dump vec range else dump this range - if (defined($vi)) { - if (runCommand($wrk, "$bin/gatekeeper -clear VEC -dumpfrg $wrk/$asm.gkpStore 2> $wrk/gatekeeper.err | grep -v 'No source' > $wrk/$asm.vec.frg")) { - caFailure("failed to dump gatekeeper store for UMD overlapper", "$wrk/gatekeeper.err"); - } - } - elsif ( ! -s "$wrk/$asm.frg" ) { - if (runCommand($wrk, "$bin/gatekeeper -dumpfrg $wrk/$asm.gkpStore 2> $wrk/gatekeeper.err | grep -v 'No source' > $wrk/$asm.frg")) { - caFailure("failed to dump gatekeeper store for UMD overlapper", "$wrk/gatekeeper.err"); - } - } - - # create a job list (we have only one job for right now) - open(SUB, "> $wrk/$outDir/ovljobs.dat") or caFailure("failed to open '$wrk/$outDir/ovljobs.dat'", undef); - print SUB "$jobID "; print SUB "\n"; - print SUB "$jobID "; print SUB "\n"; - close(SUB); - - # run frg file command - # - my $cmd = "$bin/runUMDOverlapper "; - $cmd .= getGlobal("umdOverlapperFlags") . " "; - - # when we have vector clear, pass it to the overlapper, otherwise tell the overlapper to figure it out - if (defined($vi)) { - $cmd .= "-vector-trim-file $wrk/$asm.vec.frg $wrk/$asm.vec.frg " - } else { - $cmd .= "-calculate-trims $wrk/$asm.frg "; - } - - $cmd .= "$wrk/$outDir/$jobID/$asm.umd.frg "; - $cmd .= " > $wrk/$outDir/$jobID/overlapper.out 2>$wrk/$outDir/$jobID/overlapper.err"; - - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("failed to run UMD overlapper", "$wrk/$outDir/$jobID/overlapper.err"); - } - - # See comments in overlapTrim.pl - backupFragStore("beforeUMDOverlapper"); - - my $trimFile = getUMDOverlapperClearRange($outDir); - $cmd = ""; - $cmd .= "$bin/gatekeeper --edit "; - $cmd .= "$wrk/$outDir/$trimFile $wrk/$asm.gkpStore"; - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("failed to update OBT trims", "undef"); - } - - # now create the binary overlaps - $cmd = ""; - $cmd .= "cat $wrk/$outDir/$jobID/$asm.umd.reliable.overlaps | "; - $cmd .= "awk '{print \$1\"\\t\"\$2\"\\t\"\$3\"\\t\"\$4\"\\t\"\$5\"\\t\"\$6\"\\t\"\$7}' | "; - $cmd .= "$bin/convertOverlap "; - $cmd .= "-b -ovldump "; - $cmd .= " > $wrk/$outDir/$jobID/$jobID.ovb"; - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("failed to create overlaps", undef); - } - - #cleanup - rmrf("$asm.vec.frg"); - - touch("$wrk/$outDir/$jobID/$jobID.success"); - stopAfter("overlapper"); - - alldone: -} - -sub SANDoverlapper () { - my $sandwrk = "$wrk/1-overlapper"; - mkdir($sandwrk); - - goto alldone if (getGlobal("ovlOverlapper") ne "sand"); - - my $bin = getBinDirectory(); - - my $vecopt = ""; - if(defined(getGlobal("vectorIntersect"))) { - $vecopt = "-clear VEC"; - } - - unless(-f "$sandwrk/$asm.fa") { - if(runCommand($wrk, "$bin/gatekeeper $vecopt -dumpfastaseq $wrk/$asm.gkpStore 2> $sandwrk/gatekeeper.err | grep -v 'No source' > $sandwrk/$asm.fa")) { - caFailure("failed to dump gatekeeper store for SAND overlapper", "$sandwrk/gatekeeper.err"); - } - } - - unless(-f "$sandwrk/$asm.cfa") { - if(runCommand($sandwrk, "sand_compress_reads -i $asm.fa $asm.cfa 2>compress.err")) { - caFailure("failed to compress reads for SAND overlapper", "$sandwrk/compress.err"); - } - } - - unless(-f "$sandwrk/$asm.repeats") { - if(runCommand($sandwrk, "$bin/meryl -B -m 22 -C -L 25 -v -o $asm.meryl -s $asm.fa && $bin/meryl -Dt -s $asm.meryl -n 25 >$asm.repeats 2>repeats.err")) { - caFailure("failed to generate repeats for SAND overlapper", "$sandwrk/repeats.err"); - } - } - - unless(-f "$sandwrk/$asm.cand"){ - if(runCommand("$sandwrk","sand_filter_master -p ".getGlobal("sandPort")." ".getGlobal("sandFilterFlags")." -r $asm.repeats $asm.cfa $asm.cand 2>filter.err")) { - caFailure("failed to run sand_filter_master", "$sandwrk/filter.err"); - } - } - - unless(-f "$sandwrk/$asm.ovl"){ - if(runCommand("$sandwrk","sand_align_master -p ".getGlobal("sandPort")." ".getGlobal("sandAlignFlags")." $asm.cand $asm.cfa $asm.ovl 2>align.err")) { - caFailure("failed to run sand_align_master", "$sandwrk/align.err"); - } - } - - unless(-f "$sandwrk/$asm.ovb.gz"){ - if (runCommand("$sandwrk","< $asm.ovl $bin/convertOverlap -b -ovl | gzip > $asm.ovb.gz")) { - caFailure("failed to create overlaps", undef); - } - } - - touch("$sandwrk/$asm.success"); - stopAfter("overlapper"); - - alldone: -} - -1; -use strict; - -sub getFigaroClearRange ($) { - my $outDir = shift @_; - my $fileName = "$asm.clv"; - - # the figaro output is UID,IID CLR_BGN - # first reformat is as UID CLR_BGN - runCommand("$wrk/$outDir", "awk '{print substr(\$1, 1, index(\$1, \",\")-1)\" \"\$2}' $wrk/$outDir/$asm.vectorcuts > $wrk/$outDir/$asm.clrBgn"); - - # sort by UID and join it together with the read end to form the full vector clear range - runCommand("$wrk/$outDir", "sort -nk 1 -T $wrk/$outDir $wrk/$outDir/$asm.clrBgn > $wrk/$outDir/$asm.clrBgn.sorted"); - runCommand("$wrk/$outDir", "join $wrk/$outDir/$asm.clrBgn.sorted $wrk/$asm.untrimmed -o 1.1,1.2,2.3 > $wrk/$outDir/$fileName"); - - # clean up - rmrf("$outDir/$asm.clrBgn"); - rmrf("$outDir/$asm.clrBgn.sorted"); - - return $fileName; -} - -sub generateFigaroTrim($) { - my $outDir = shift @_; - my $bin = getBinDirectory(); - - return if (-e "$wrk/$outDir/trim.success"); - - # run command - # - my $cmd = "$bin/figaro "; - $cmd .= getGlobal("figaroFlags") . " "; - $cmd .= "-F $wrk/$asm.fasta -P $asm "; - $cmd .= " > $wrk/$outDir/figaro.out 2>$wrk/$outDir/figaro.err"; - - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("figaro died", "$wrk/$outDir/figaro.err"); - } - - # update the gkpStore with newly computed clear ranges - return getFigaroClearRange($outDir); -} - -sub getUMDTrimClearRange($) { - my $outDir = shift @_; - my $fileName = "$asm.clv"; - - # the umd output is CLR_BGN (in the same order as the input) - # to join it with the UID we first number both the list of UIDs in the fasta file and the CLR_BGN - runCommand("$wrk/$outDir", "cat $wrk/$asm.fasta | grep \">\" | awk '{print NR\" \"substr(\$1, 2, index(\$1, \",\")-2)}' > $wrk/$outDir/$asm.numberedUids"); - runCommand("$wrk/$outDir", "awk '{print NR\" \"\$0}' $asm.vectorcuts > $asm.numberedCuts"); - - # now we join them together - runCommand("$wrk/$outDir", "join $wrk/$outDir/$asm.numberedUids $wrk/$outDir/$asm.numberedCuts -o 1.2,2.2 > $wrk/$outDir/$asm.clrBgn"); - - # now we can join together the UID CLR_BGN with the read-end information for the full clear range - runCommand("$wrk/$outDir", "sort -nk 1 -T $wrk/$outDir $wrk/$outDir/$asm.clrBgn > $wrk/$outDir/$asm.clrBgn.sorted"); - runCommand("$wrk/$outDir", "join $wrk/$outDir/$asm.clrBgn.sorted $wrk/$asm.untrimmed -o 1.1,1.2,2.3 > $wrk/$outDir/$fileName"); - - # clean up - rmrf("$outDir/$asm.numberedUids"); - rmrf("$outDir/$asm.numberedCuts"); - rmrf("$outDir/$asm.clrBgn"); - rmrf("$outDir/$asm.clrBgn.sorted"); - rmrf("$outDir/vectorTrimIntermediateFile001.*"); - - return $fileName; -} - -sub generateUMDTrim($) { - my $outDir = shift @_; - my $bin = getBinDirectory(); - - return if (-e "$wrk/$outDir/trim.success"); - - # run command - # - my $cmd = "$bin/dataWorkReduced/findVectorTrimPoints.perl "; - $cmd .= "$wrk/$asm.fasta $wrk/$outDir/$asm.vectorcuts "; - $cmd .= " > $wrk/$outDir/umd.out 2>$wrk/$outDir/umd.err"; - - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("UMD overlapper dataWorkReduced/findVectorTrimPoints.perl died", - "$wrk/$outDir/umd.err"); - } - - return getUMDTrimClearRange($outDir); -} - -sub generateVectorTrim ($) { - my $vi = getGlobal("vectorIntersect"); - my $trimmer = getGlobal("vectorTrimmer"); - my $outDir = "0-preoverlap"; - my $bin = getBinDirectory(); - my $trimFile = undef; - - # when vector insersect is specified or no external trimming is requested, do nothing - return if (defined($vi)); - return if ($trimmer eq "ca"); - return if (-e "$wrk/$outDir/trim.success"); - - #dump the fasta file from gkp - if ( ! -e "$wrk/$asm.fasta" ) { - if (runCommand($wrk, "$bin/gatekeeper -dumpfastaseq -clear UNTRIM $wrk/$asm.gkpStore 2> $wrk/$outDir/gatekeeper.err > $wrk/$asm.fasta")) { - caFailure("failed to dump gatekeeper store for figaro trimmer", - "$wrk/$outDir/gatekeeper.err"); - } - } - #dump the clr range - if ( ! -e "$wrk/$asm.untrimmed" ) { - if (runCommand($wrk, "$bin/gatekeeper -dumpfragments -tabular -clear UNTRIM $wrk/$asm.gkpStore 2> $wrk/$outDir/gatekeeper.err | grep -v 'UID' |awk '{print \$1\" \"\$12\" \"\$13}' | sort -nk 1 -T $wrk/ > $wrk/$asm.untrimmed")) { - caFailure("failed to dump gatekeeper quality trim points for figaro trimmer", - "$wrk/$outDir/gatekeeper.err"); - } - } - - if ($trimmer eq "figaro") { - $trimFile = generateFigaroTrim($outDir); - } elsif($trimmer eq "umd") { - $trimFile = generateUMDTrim($outDir); - } else { - caFailure("unknown vector trimmer $trimmer", undef); - } - - # See comments in overlapTrim.pl; this backup gets removed there too. - backupFragStore("beforeVectorTrim"); - - # set the global vector trim file so that the subsequent code will update the gkp for us - setGlobal("vectorIntersect", "$wrk/$outDir/$trimFile"); - - #cleanup - rmrf("$asm.fasta"); - rmrf("$asm.untrimmed"); - - touch("$wrk/$outDir/trim.success"); - - return; -} - -1; -use strict; - -# Assembly all done, toggle the unitigs and re-run CGW and subsequent steps of the assembly. - -sub toggler () { - my $toggledDir = "10-toggledAsm"; - my $ecrEdits = "frg.ECREdits.txt"; - - return if (-d "$wrk/$toggledDir/$asm.asm"); - return if (getGlobal("doToggle") == 0); - - my $minLength = getGlobal("toggleUnitigLength"); - my $numInstances = getGlobal("toggleNumInstances"); - - my $bin = getBinDirectory(); - my $cmd = ""; - my $scaffoldDir; - - system("mkdir $wrk/$toggledDir") if (! -d "$wrk/$toggledDir"); - - # link the stores for space savings - if (! -e "$wrk/$toggledDir/$asm.ovlStore") { - system("ln -s $wrk/$asm.ovlStore $wrk/$toggledDir/$asm.ovlStore") if (! -e "$wrk/$toggledDir/$asm.ovlStore"); - } - - if (! -e "$wrk/$toggledDir/$asm.gkpStore") { - system("mkdir $wrk/$toggledDir/$asm.gkpStore") if (! -d "$wrk/$toggledDir/$asm.gkpStore"); - system("ln -s $wrk/$asm.gkpStore/* $wrk/$toggledDir/$asm.gkpStore") if (! -e "$wrk/$toggledDir/$asm.gkpStore/frg"); - - # but the frg store is rewritten by cgw, so reset the ECR clear-ranges - system("rm -rf $wrk/$toggledDir/$asm.gkpStore/frg"); - system("cp $wrk/$asm.gkpStore/frg $wrk/$toggledDir/$asm.gkpStore/frg"); - - # back out the ECR changes from the gkp store - $cmd = "$bin/gatekeeper "; - $cmd .= " -dumpfragments -tabular"; - $cmd .= " -allreads -clear OBT "; - $cmd .= " $wrk/$asm.gkpStore "; - $cmd .= " | grep -v \"UID\" "; - $cmd .= " | awk '{print \"frg uid \"\$1\" ECR1 ALL \"\$12\" \"\$13}' "; - $cmd .= " > $wrk/$toggledDir/$asm.gkpStore/$ecrEdits 2> $wrk/$toggledDir/$asm.gkpStore/$ecrEdits.err"; - if (runCommand("$wrk/$toggledDir", $cmd)) { - caFailure("failed to get pre-ECR clear-ranges for toggling", "$wrk/$toggledDir/$asm.gkpStore/$ecrEdits.err"); - } - - $cmd = "$bin/gatekeeper "; - $cmd .= " --edit $wrk/$toggledDir/$asm.gkpStore/$ecrEdits"; - $cmd .= " $wrk/$toggledDir/$asm.gkpStore"; - $cmd .= " > $wrk/$toggledDir/$asm.gkpStore/gkpEdit.err 2>&1"; - if (runCommand("$wrk/$toggledDir", $cmd)) { - caFailure("failed to edit gatekeeper to set ECR clear-ranges for toggling", "$wrk/$toggledDir/$asm.gkpStore/gkpEdit.err"); - } - } - - system("mkdir $wrk/$toggledDir/5-consensus") if (! -d "$wrk/$toggledDir/5-consensus"); - - my $cgiFile; - open(F, "ls $wrk/5-consensus |"); - while () { - chomp; - if (m/cgi$/) { - $cgiFile .= " $wrk/5-consensus/$_"; - } - } - close(F); - - # create the toggled cgi file - if (! -e "$wrk/$toggledDir/toggled.success") { - $cmd = "$bin/markUniqueUnique "; - $cmd .= " -a $wrk/9-terminator/$asm.asm "; - $cmd .= " -l $minLength "; - $cmd .= " -n $numInstances "; - $cmd .= " $cgiFile"; - $cmd .= " > $wrk/$toggledDir/5-consensus/$asm.cgi 2> $wrk/$toggledDir/toggle.err"; - if (runCommand("$wrk/$toggledDir", $cmd)) { - caFailure("failed to toggle unitigs ", "$wrk/$toggledDir/toggle.err"); - } - - touch("$wrk/$toggledDir/toggled.success"); - } - - my $numToggles = `tail -n 1 $wrk/$toggledDir/toggle.err | awk '{print \$2}'`; - if ($numToggles == 0) { - print "No toggling occured. Finished.\n"; - } - else { - $wrk = "$wrk/$toggledDir"; - $cgiFile = "$wrk/5-consensus/$asm.cgi"; - - scaffolder($cgiFile); - postScaffolderConsensus($scaffoldDir); - terminate($scaffoldDir); - cleaner(); - } -} - - -my $specFile = undef; -my @specOpts; -my @fragFiles; - -my @cgbFiles; -my $cgiFile; -my $scaffoldDir; - -setDefaults(); - -# At some pain, we stash the original options for later use. We need -# to use these when we resubmit ourself to SGE. -# -# We can't simply dump all of @ARGV into here, because we need to -# fix up relative paths. -# -$commandLineOptions = ""; - -while (scalar(@ARGV)) { - my $arg = shift @ARGV; - - if ($arg =~ m/^-d/) { - $wrk = shift @ARGV; - $wrk = "$ENV{'PWD'}/$wrk" if ($wrk !~ m!^/!); - $commandLineOptions .= " -d \"$wrk\""; - - } elsif ($arg eq "-p") { - $asm = shift @ARGV; - $commandLineOptions .= " -p \"$asm\""; - - } elsif ($arg eq "-s") { - $specFile = shift @ARGV; - $commandLineOptions .= " -s \"$specFile\""; - - } elsif ($arg eq "-version") { - setGlobal("version", 1); - - } elsif ($arg eq "-options") { - setGlobal("options", 1); - - } elsif (($arg =~ /\.frg$|frg\.gz$|frg\.bz2$/i) && (-e $arg)) { - $arg = "$ENV{'PWD'}/$arg" if ($arg !~ m!^/!); - push @fragFiles, $arg; - $commandLineOptions .= " \"$arg\""; - - } elsif (($arg =~ /\.sff$|sff\.gz$|sff\.bz2$/i) && (-e $arg)) { - $arg = "$ENV{'PWD'}/$arg" if ($arg !~ m!^/!); - push @fragFiles, $arg; - $commandLineOptions .= " \"$arg\""; - - } elsif (($arg =~ /\.ace$/i) && (-e $arg)) { - $arg = "$ENV{'PWD'}/$arg" if ($arg !~ m!^/!); - push @fragFiles, $arg; - $commandLineOptions .= " \"$arg\""; - - } elsif ($arg =~ m/=/) { - push @specOpts, $arg; - $commandLineOptions .= " \"$arg\""; - - } else { - setGlobal("help", - getGlobal("help") . "File not found or invalid command line option '$arg'\n"); - } -} - -setGlobal("help", getGlobal("help") . "Assembly name prefix not supplied with -p.\n") if (!defined($asm)); -setGlobal("help", getGlobal("help") . "Directory not supplied with -d.\n") if (!defined($wrk)); - -@fragFiles = setParametersFromFile($specFile, @fragFiles); - -setParametersFromCommandLine(@specOpts); - -setParameters(); - -printHelp(); - -# Fail immediately if we run the script on the grid, and the gkpStore -# directory doesn't exist and we have no input files. Without this -# check we'd fail only after being scheduled on the grid. -# -if ((getGlobal("scriptOnGrid") == 1) && - (! -d "$wrk/$asm.gkpStore") && - (scalar(@fragFiles) == 0)) { - caFailure("no fragment files specified, and stores not already created", undef); -} - -checkDirectories(); - -#setup closure stuff -setupFilesForClosure(); - -# If not already on the grid, see if we should be on the grid. -# N.B. the arg MUST BE undef. -# -submitScript(undef) if (!runningOnGrid()); - -# Begin - -preoverlap(@fragFiles); -overlapTrim(); -createOverlapJobs("normal"); -checkOverlap("normal"); -createOverlapStore(); -overlapCorrection(); -@cgbFiles = unitigger(@cgbFiles); -postUnitiggerConsensus(@cgbFiles); -scaffolder($cgiFile); -postScaffolderConsensus($scaffoldDir); -terminate($scaffoldDir); -cleaner(); -toggler(); - -exit(0); -#!/usr/local/bin/perl - -# Confidential -- Do Not Distribute -# Copyright (c) 2002 PE Corporation (NY) through the Celera Genomics Group -# All Rights Reserved. - -package scheduler; - -use strict; -use POSIX "sys_wait_h"; - -$| = 1; - -# Called by "use scheduler;" -sub import () { -} - - -###################################################################### -# -# Functions for running multiple processes at the same time. -# -my $numberOfProcesses = 0; -my $numberOfProcessesToWait = 0; -my @processQueue = (); -my @processesRunning = (); -my $printProcessCommand = 1; - -sub schedulerSetNumberOfProcesses { - $numberOfProcesses = shift @_; -} - -sub schedulerSetNumberOfProcessesToWaitFor { - $numberOfProcessesToWait = shift @_; -} - -sub schedulerSetShowCommands { - print STDERR "RESET PRINT COMMAND!\n"; - $printProcessCommand = shift @_; -} - - -sub schedulerSubmit { - chomp @_; - push @processQueue, @_; -} - -sub forkProcess { - my $process = shift @_; - my $pid; - - # From Programming Perl, page 167 - FORK: { - if ($pid = fork) { - # Parent - # - return($pid); - } elsif (defined $pid) { - # Child - # - exec($process); - } elsif ($! =~ /No more processes/) { - # EAGIN, supposedly a recoverable fork error - sleep 1; - redo FORK; - } else { - die "Can't fork: $!\n"; - } - } -} - -sub reapProcess { - my $pid = shift @_; - - if (waitpid($pid, &WNOHANG) > 0) { - return(1); - } else { - return(0); - } -} - -sub schedulerRun { - my @newProcesses; - - # Reap any processes that have finished - # - undef @newProcesses; - foreach my $i (@processesRunning) { - if (reapProcess($i) == 0) { - push @newProcesses, $i; - } - } - undef @processesRunning; - @processesRunning = @newProcesses; - - # Run processes in any available slots - # - while ((scalar(@processesRunning) < $numberOfProcesses) && - (scalar(@processQueue) > 0)) { - my $process = shift @processQueue; - print STDERR "$process\n"; - push @processesRunning, forkProcess($process); - } -} - -sub schedulerFinish { - my $child; - my @newProcesses; - my $remain; - - my $t = localtime(); - my $d = time(); - print STDERR "----------------------------------------START CONCURRENT $t\n"; - - $remain = scalar(@processQueue); - - # Run all submitted jobs - # - while ($remain > 0) { - schedulerRun(); - - $remain = scalar(@processQueue); - - if ($remain > 0) { - $child = waitpid -1, 0; - - undef @newProcesses; - foreach my $i (@processesRunning) { - push @newProcesses, $i if ($child != $i); - } - undef @processesRunning; - @processesRunning = @newProcesses; - } - } - - # Wait for them to finish, if requested - # - while (scalar(@processesRunning) > $numberOfProcessesToWait) { - waitpid(shift @processesRunning, 0); - } - - $t = localtime(); - print STDERR "----------------------------------------END CONCURRENT $t (", time() - $d, " seconds)\n"; -} - -1; diff -Nru cctools-7.0.22/sand/src/sand_runCA_6.1 cctools-7.1.2/sand/src/sand_runCA_6.1 --- cctools-7.0.22/sand/src/sand_runCA_6.1 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/sand_runCA_6.1 1970-01-01 00:00:00.000000000 +0000 @@ -1,5546 +0,0 @@ -#!/usr/bin/env perl - -use strict; -use Config; # for @signame -use FindBin; -use Cwd; - -use vars qw($wrk $asm); -use vars qw($numFrags); -use vars qw(%global); -use vars qw(%synops); -use vars qw($commandLineOptions); -use POSIX qw(ceil floor); - -# Set some not reasonable defaults. -$wrk = undef; -$asm = undef; -use strict; - - -sub submitBatchJobs($$) { - my $SGE = shift @_; - my $TAG = shift @_; - - if (runningOnGrid()) { - runCommand($wrk, $SGE) and caFailure("Failed to submit batch jobs."); - submitScript($TAG); - } else { - pleaseExecute($SGE); - } -} - - -# Decide what bin directory to use. -# -# When we are running on SGE, the path of this perl script is NOT -# always the correct architecture. If the submission host is -# FreeBSD, but the grid is Linux, the BSD box will submit -# FreeBSD/bin/runCA.pl to the grid -- unless it knows in advance, -# there is no way to pick the correct one. The grid host then has to -# have enough smarts to choose the correct binaries, and that is what -# we're doing here. -# -# To make it more trouble, shell scripts need to do all this by -# themselves. -# -sub getBinDirectory () { - my $installDir; - - ### - ### CODE DUPLICATION WITH getBinDirectoryShellCode - ### - - # Assume the current binary path is the path to the global CA - # install directory. - - # CODE DUPLICATION!!! - my @t = split '/', "$FindBin::RealBin"; - pop @t; # bin - pop @t; # arch, e.g., FreeBSD-amd64 - my $installDir = join '/', @t; # path to the assembler - # CODE DUPLICATION!!! - - # Guess what platform we are currently running on. - - my $syst = `uname -s`; chomp $syst; # OS implementation - my $arch = `uname -m`; chomp $arch; # Hardware platform - my $name = `uname -n`; chomp $name; # Name of the system - - $arch = "amd64" if ($arch eq "x86_64"); - $arch = "ppc" if ($arch eq "Power Macintosh"); - - my $path = "$installDir/$syst-$arch/bin"; - - my $pathMap = getGlobal("pathMap"); - if (defined($pathMap)) { - open(F, "< $pathMap") or caFailure("failed to open pathMap '$pathMap'", undef); - while () { - my ($n, $b) = split '\s+', $_; - $path = $b if ($name eq $n); - } - close(F); - } - - return($path); -} - -sub getBinDirectoryShellCode () { - my $string; - - # CODE DUPLICATION!!! - my @t = split '/', "$FindBin::RealBin"; - pop @t; # bin - pop @t; # arch, e.g., FreeBSD-amd64 - my $installDir = join '/', @t; # path to the assembler - # CODE DUPLICATION!!! - - $string = "\n"; - $string .= "syst=`uname -s`\n"; - $string .= "arch=`uname -m`\n"; - $string .= "name=`uname -n`\n"; - $string .= "\n"; - $string .= "if [ \"\$arch\" = \"x86_64\" ] ; then\n"; - $string .= " arch=\"amd64\"\n"; - $string .= "fi\n"; - $string .= "if [ \"\$arch\" = \"Power Macintosh\" ] ; then\n"; - $string .= " arch=\"ppc\"\n"; - $string .= "fi\n"; - $string .= "\n"; - $string .= "bin=\"$installDir/\$syst-\$arch/bin\"\n"; - $string .= "\n"; - - my $pathMap = getGlobal("pathMap"); - if (defined($pathMap)) { - open(PM, "< $pathMap") or caFailure("failed to open pathMap '$pathMap'", undef); - while () { - my ($n, $b) = split '\s+', $_; - $string .= "if [ \"\$name\" = \"$n\" ] ; then\n"; - $string .= " bin=\"$b\"\n"; - $string .= "fi\n"; - } - close(PM); - $string .= "\n"; - } - - return($string); -} - - - - - -# Return the second argument, unless the first argument is found in -# %global, in which case return that. -# -sub getGlobal ($) { - my $var = shift @_; - caFailure("script error -- $var has no defined value", undef) if (!exists($global{$var})); - return($global{$var}); -} - -sub setGlobal ($$) { - my $var = shift @_; - my $val = shift @_; - - # If no value, set the field to undefined, the default for many of the options. - - $val = undef if ($val eq ""); - - # Handle special cases. - - if ($var eq "merSize") { - setGlobal("obtMerSize", $val); - setGlobal("ovlMerSize", $val); - return; - } - - if ($var eq "overlapper") { - setGlobal("obtOverlapper", $val); - setGlobal("ovlOverlapper", $val); - return; - } - - # Update obsolete usage. - - if ($var eq "doOverlapTrimming") { - print STDERR "WARNING: option doOverlapTrimming deprecated. Use doOverlapBasedTrimming in the future.\n"; - $var = "doOverlapBasedTrimming"; - } - - # Update aliases. - - $var = "doMerBasedTrimming" if ($var eq "doMBT"); - $var = "doOverlapBasedTrimming" if ($var eq "doOBT"); - $var = "doExtendClearRanges" if ($var eq "doECR"); - - # If "help" exists, we're parsing command line options, and will catch this failure in - # printHelp(). Otherwise, this is an internal error, and we should bomb now. - # - if (!exists($global{$var})) { - if (exists($global{"help"})) { - setGlobal("help", getGlobal("help") . "'$var' is not a valid option; see 'runCA -options' for a list of valid options.\n"); - } else { - caFailure("'$var' is not a valid option Global variable.", undef); - } - } - - $global{$var} = $val; -} - -sub setDefaults () { - - # The rules: - # - # 1) Before changing these defaults, read the (printed) documentation. - # 2) After changing, update the documentation. - # 3) Add new defaults in the correct section. - # 4) Keep defaults in the same order as the documentation. - # 5) UPDATE THE DOCUMENTATION. - # - - ##### General Configuration Options (aka miscellany) - - $global{"pathMap"} = undef; - $synops{"pathMap"} = "File with a hostname to binary directory map"; - - $global{"shell"} = "/bin/sh"; - $synops{"shell"} = "Command interpreter to use; sh-compatible (e.g., bash), NOT C-shell (csh or tcsh)"; - - ##### Error Rates - - $global{"ovlErrorRate"} = 0.06; - $synops{"ovlErrorRate"} = "Overlaps above this error rate are not computed"; - - $global{"utgErrorRate"} = 0.015; - $synops{"utgErrorRate"} = "Overlaps above this error rate are not used to construct unitigs"; - - $global{"utgErrorLimit"} = 0; - $synops{"utgErrorLimit"} = "Overlaps with more than this number of errors are not used to construct unitigs"; - - $global{"cnsErrorRate"} = 0.06; - $synops{"cnsErrorRate"} = "Consensus expects alignments at about this error rate"; - - $global{"cgwErrorRate"} = 0.10; - $synops{"cgwErrorRate"} = "Unitigs/Contigs are not merged if they align above this error rate"; - - ##### Stopping conditions - - $global{"stopBefore"} = undef; - $synops{"stopBefore"} = "Tell runCA when to halt execution"; - - $global{"stopAfter"} = undef; - $synops{"stopAfter"} = "Tell runCA when to halt execution"; - - ##### Sun Grid Engine - - $global{"useGrid"} = 0; - $synops{"useGrid"} = "Enable SGE globally"; - - $global{"scriptOnGrid"} = 0; - $synops{"scriptOnGrid"} = "Enable SGE for runCA (and unitigger, scaffolder, other sequential phases)"; - - $global{"ovlOnGrid"} = 1; - $synops{"ovlOnGrid"} = "Enable SGE for overlap computations"; - - $global{"frgCorrOnGrid"} = 0; - $synops{"frgCorrOnGrid"} = "Enable SGE for the fragment error correction"; - - $global{"ovlCorrOnGrid"} = 0; - $synops{"ovlCorrOnGrid"} = "Enable SGE for the overlap error correction"; - - $global{"cnsOnGrid"} = 1; - $synops{"cnsOnGrid"} = "Enable SGE for consensus"; - - $global{"maxGridJobSize"} = undef; - $synops{"maxGridJobSize"} = ""; - - $global{"sge"} = undef; - $synops{"sge"} = "SGE options applied to all SGE jobs"; - - $global{"sgeName"} = undef; - $synops{"sgeName"} = "SGE jobs name suffix"; - - $global{"sgeScript"} = undef; - $synops{"sgeScript"} = "SGE options applied to runCA jobs (and unitigger, scaffolder, other sequential phases)"; - - $global{"sgeOverlap"} = undef; - $synops{"sgeOverlap"} = "SGE options applied to overlap computation jobs"; - - $global{"sgeMerOverlapSeed"} = undef; - $synops{"sgeMerOverlapSeed"} = "SGE options applied to mer overlap seed (overmerry) jobs"; - - $global{"sgeMerOverlapExtend"} = undef; - $synops{"sgeMerOverlapExtend"} = "SGE options applied to mer overlap extend (olap-from-seeds) jobs"; - - $global{"sgeConsensus"} = undef; - $synops{"sgeConsensus"} = "SGE options applied to consensus jobs"; - - $global{"sgeFragmentCorrection"} = undef; - $synops{"sgeFragmentCorrection"} = "SGE options applied to fragment error correction jobs"; - - $global{"sgeOverlapCorrection"} = undef; - $synops{"sgeOverlapCorrection"} = "SGE options applied to overlap error correction jobs"; - - $global{"sgePropagateHold"} = undef; - $synops{"sgePropagateHold"} = undef; # Internal option - - ##### Preoverlap - - $global{"gkpFixInsertSizes"} = 1; - $synops{"gkpFixInsertSizes"} = "Update stddev to 0.10 * mean if it is too large"; - - ##### Vector Trimming - - $global{"vectorIntersect"} = undef; - $synops{"vectorIntersect"} = "File of vector clear ranges"; - - $global{"vectorTrimmer"} = "ca"; - $synops{"vectorTrimmer"} = "Use the CA default vector trimmer, or figaro"; - - $global{"figaroFlags"} = "-T 30 -M 100 -E 500 -V f"; - $synops{"figaroFlags"} = "Options to the figaro vector trimmer"; - - ##### Overlap Based Trimming - - $global{"perfectTrimming"} = undef; # SECRET! - $synops{"perfectTrimming"} = undef; # SECRET! - - $global{"doOverlapBasedTrimming"} = 1; - $synops{"doOverlapBasedTrimming"} = "Enable the Overlap Based Trimming module (doOBT and doOverlapTrimming are aliases)"; - - $global{"doDeDuplication"} = 1; - $synops{"doDeDuplication"} = "Enable the OBT duplication detection and cleaning module for 454 reads, enabled automatically"; - - $global{"doChimeraDetection"} = "normal"; - $synops{"doChimeraDetection"} = "Enable the OBT chimera detection and cleaning module; 'off', 'normal' or 'aggressive'"; - - ##### Mer Based Trimming - - $global{"doMerBasedTrimming"} = 0; - $synops{"doMerBasedTrimming"} = "Enable the Mer Based Trimming module"; - - ##### Overlapper - - $global{"obtOverlapper"} = "ovl"; - $synops{"obtOverlapper"} = "Which overlap algorithm to use for OBT overlaps"; - - $global{"ovlOverlapper"} = "ovl"; - $synops{"ovlOverlapper"} = "Which overlap algorithm to use for OVL (unitigger) overlaps"; - - $global{"ovlStoreMemory"} = 1024; - $synops{"ovlStoreMemory"} = "How much memory (MB) to use when constructing overlap stores"; - - $global{"ovlThreads"} = 2; - $synops{"ovlThreads"} = "Number of threads to use when computing overlaps"; - - $global{"ovlConcurrency"} = 1; - $synops{"ovlConcurrency"} = "If not SGE, number of overlapper processes to run at the same time"; - - $global{"ovlStart"} = 1; - $synops{"ovlStart"} = "Starting fragment for overlaps (EXPERT!)"; - - $global{"ovlHashBlockSize"} = 200000; - $synops{"ovlHashBlockSize"} = "Number of fragments to load into the in-core overlap hash table"; - - $global{"ovlRefBlockSize"} = 2000000; - $synops{"ovlRefBlockSize"} = "Number of fragments to search against the hash table per batch"; - - $global{"ovlMemory"} = "2GB"; - $synops{"ovlMemory"} = "Amount of memory to use for overlaps"; - - $global{"ovlMerSize"} = 22; - $synops{"ovlMerSize"} = "K-mer size for seeds in overlaps"; - - $global{"ovlMerThreshold"} = "auto"; - $synops{"ovlMerThreshold"} = "K-mer frequency threshold; mers more frequent than this are ignored"; - - $global{"obtMerSize"} = 22; - $synops{"obtMerSize"} = "K-mer size"; - - $global{"obtMerThreshold"} = "auto"; - $synops{"obtMerThreshold"} = "K-mer frequency threshold; mers more frequent than this are ignored"; - - $global{"merCompression"} = 1; - $synops{"merCompression"} = "K-mer size"; - - $global{"merOverlapperThreads"} = 2; - $synops{"merOverlapperThreads"} = "Number of threads to use for both mer overlapper seed finding and extension jobs"; - - $global{"merOverlapperSeedBatchSize"} = 100000; - $synops{"merOverlapperSeedBatchSize"} = "Number of fragments in a mer overlapper seed finding batch; directly affects memory usage"; - - $global{"merOverlapperExtendBatchSize"}= 75000; - $synops{"merOverlapperExtendBatchSize"}= "Number of fragments in a mer overlapper seed extension batch; directly affects memory usage"; - - $global{"merOverlapperCorrelatedDiffs"}= 0; - $synops{"merOverlapperCorrelatedDiffs"}= "EXPERIMENTAL!"; - - $global{"merOverlapperSeedConcurrency"}= 1; - $synops{"merOverlapperSeedConcurrency"}= "If not SGE, number of mer overlapper seed finding processes to run at the same time"; - - $global{"merOverlapperExtendConcurrency"}= 1; - $synops{"merOverlapperExtendConcurrency"}= "If not SGE, number of mer overlapper seed extension processes to run at the same time"; - - $global{"umdOverlapperFlags"} = "-use-uncleaned-reads -trim-error-rate 0.03 -max-minimizer-cutoff 150"; - $synops{"umdOverlapperFlags"} = "Options for the UMD overlapper"; - - $global{"sandFilterFlags"} = ""; - $synops{"sandFilterFlags"} = "Options to be passed to sand_filter_master."; - - $global{"sandAlignFlags"} = "-n 10000 sand_align_kernel -e \"-q 0.04 -m 40\""; - $synops{"sandAlignFlags"} = "Options to be passed to sand_align_master."; - - $global{"sandPort"} = "9123"; - $synops{"sandPort"} = "Port number for workers to connect to SAND.\n"; - - $global{"saveOverlaps"} = 0; - $synops{"saveOverlaps"} = "Save intermediate overlap files"; - - ##### Mers - - $global{"merylMemory"} = 800; - $synops{"merylMemory"} = "Amount of memory, in MB, to use for mer counting"; - - $global{"merylThreads"} = 1; - $synops{"merylThreads"} = "Number of threads to use for mer counting"; - - ##### Fragment/Overlap Error Correction - - $global{"frgCorrBatchSize"} = 200000; - $synops{"frgCorrBatchSize"} = "Number of fragments per fragment error detection batch, directly affects memory usage"; - - $global{"doFragmentCorrection"} = 1; - $synops{"doFragmentCorrection"} = "Do overlap error correction"; - - $global{"frgCorrThreads"} = 2; - $synops{"frgCorrThreads"} = "Number of threads to use while computing fragment errors"; - - $global{"frgCorrConcurrency"} = 1; - $synops{"frgCorrConcurrency"} = "If not SGE, number of fragment error detection processes to run at the same time"; - - $global{"ovlCorrBatchSize"} = 200000; - $synops{"ovlCorrBatchSize"} = "Number of fragments per overlap error correction batch"; - - $global{"ovlCorrConcurrency"} = 4; - $synops{"ovlCorrConcurrency"} = "If not SGE, number of overlap error correction processes to run at the same time"; - - ##### Unitigger & BOG Options - - $global{"unitigger"} = undef; - $synops{"unitigger"} = "Which unitig algorithm to use; utg (if no SFF files) or bog (Best Overlap Graph, if SFF files)"; - - $global{"utgGenomeSize"} = undef; - $synops{"utgGenomeSize"} = "An estimate of the size of the genome; decides if unitigs are unique or repeats"; - - $global{"utgBubblePopping"} = 1; - $synops{"utgBubblePopping"} = "Smooth polymorphic regions"; - - $global{"utgRecalibrateGAR"} = 1; - $synops{"utgRecalibrateGAR"} = "Use an experimental algorithm to decide unique/repeat"; - - $global{"bogBreakAtIntersections"} = 1; - $synops{"bogBreakAtIntersections"} = "EXPERT!"; - - $global{"bogBadMateDepth"} = 7; - $synops{"bogBadMateDepth"} = "EXPERT!"; - - ##### Scaffolder Options - - $global{"cgwPurgeCheckpoints"} = 1; - $synops{"cgwPurgeCheckpoints"} = "Remove cgw checkpoint files when a scaffolding step finishes successfully"; - - $global{"cgwDemoteRBP"} = 1; - $synops{"cgwDemoteRBP"} = "EXPERT!"; - - $global{"cgwUseUnitigOverlaps"} = 0; - $synops{"cgwUseUnitigOverlaps"} = "Use unused best overlaps (from BOG) in scaffolder (EXPERIMENTAL)"; - - $global{"astatLowBound"} = 1; - $synops{"astatLowBound"} = "EXPERT!"; - - $global{"astatHighBound"} = 5; - $synops{"astatHighBound"} = "EXPERT!"; - - $global{"stoneLevel"} = 2; - $synops{"stoneLevel"} = "EXPERT!"; - - $global{"computeInsertSize"} = 0; - $synops{"computeInsertSize"} = "Compute a scratch scaffolding to estimate insert sizes"; - - $global{"cgwDistanceSampleSize"} = 100; - $synops{"cgwDistanceSampleSize"} = "Require N mates to reestimate insert sizes"; - - $global{"doResolveSurrogates"} = 1; - $synops{"doResolveSurrogates"} = "Place fragments in surrogates in the final assembly"; - - $global{"doExtendClearRanges"} = 2; - $synops{"doExtendClearRanges"} = "Enable the clear range extension heuristic"; - - $global{"extendClearRangesStepSize"} = undef; - $synops{"extendClearRangesStepSize"} = "Batch N scaffolds per ECR run"; - - $global{"kickOutNonOvlContigs"} = 0; - $synops{"kickOutNonOvlContigs"} = "Allow kicking out a contig placed in a scaffold by mate pairs that has no overlaps to both its left and right neighbor contigs. EXPERT!\n"; - - $global{"doUnjiggleWhenMerging"} = 0; - $synops{"doUnjiggleWhenMerging"} = "after inserting rocks/stones try shifting contig positions back to their original location when computing overlaps to see if they overlap with the rock/stone and allow them to merge if they do. EXPERT!\n"; - - ##### Consensus Options - - $global{"cnsPartitions"} = 128; - $synops{"cnsPartitions"} = "Partition consensus into N jobs"; - - $global{"cnsMinFrags"} = 75000; - $synops{"cnsMinFrags"} = "Don't make a consensus partition with fewer than N fragments"; - - $global{"cnsConcurrency"} = 2; - $synops{"cnsConcurrency"} = "If not SGE, number of consensus jobs to run at the same time"; - - $global{"cnsPhasing"} = 0; - $synops{"cnsPhasing"} = "Options for consensus phasing of SNPs\n\t0 - Do not phase SNPs to be consistent.\n\t1 - If two SNPs are joined by reads, phase them to be consistent."; - - $global{"consensus"} = "cns"; - $synops{"consensus"} = "Which consensus algorithm to use; currently only 'cns' is supported"; - - ##### Terminator Options - - $global{"fakeUIDs"} = 0; - $synops{"fakeUIDs"} = "Don't query a UID server, use UIDs specific to this assembly"; - - $global{"uidServer"} = undef; - $synops{"uidServer"} = "EXPERT!"; - - $global{"createAGP"} = 0; - $synops{"createAGP"} = "Create an AGP file for the assembly"; - - $global{"createACE"} = 0; - $synops{"createACE"} = "Create an ACE file for the assembly"; - - $global{"createPosMap"} = 1; - $synops{"createPosMap"} = "Create the POSMAP files for the assembly"; - - $global{"merQC"} = 0; - $synops{"merQC"} = "Compute a mer-based QC for the assembly"; - - $global{"merQCmemory"} = 1024; - $synops{"merQCmemory"} = "Memory to use for the mer-based QC"; - - $global{"merQCmerSize"} = 22; - $synops{"merQCmerSize"} = "Mer size to use for the mer-based QC"; - - $global{"cleanup"} = "none"; - $synops{"cleanup"} = "At the end of a successful assembly, remove none/some/many/all of the intermediate files"; - - ##### Options for toggling assembly. - - $global{"doToggle"} = 0; - $synops{"doToggle"} = "At the end of a successful assembly, search for placed surrogates and toggle them to be unique unitigs. Re-run the assembly starting from scaffolder"; - - $global{"toggleUnitigLength"} = 2000; - $synops{"toggleUnitigLength"} = "Minimum length for a surrogate to be toggled."; - - $global{"toggleNumInstances"} = 1; - $synops{"toggleNumInstances"} = "Number of instances for a surrogate to be toggled. If 0 is specified, all non-singleton unitigs are toggled to unique status."; - - $global{"toggleMaxDistance"} = 1000; - $synops{"toggleMaxDistance"} = "Toggling will look for surrogates that appear exactly twice, both at the end of a scaffold. This parameter specifies how close to the scaffold end the surrogate must be."; - - $global{"toggleDoNotDemote"} = 0; - $synops{"toggleDoNotDemote"} = "Do not allow CGW to demote toggled unitigs based on branching patterns."; - - #### Closure Options - - $global{"closureOverlaps"} = 0; - $synops{"closureOverlaps"} = "Option for handling overlaps involving closure reads.\n\t0 - Treat them just like regular reads, \n\t1 - Do not allow any overlaps (i.e. closure reads will stay as singletons until scaffolding), \n\t2 - allow overlaps betweeen closure reads and non-closure reads only"; - - $global{"closurePlacement"} = 2; - $synops{"closurePlacement"} = "Option for placing closure reads using the constraints.\n\t0 - Place at the first location found\n\t1 - Place at the best location (indicated by most constraints)\n\t2 - Place at multiple locations as long as the closure read/unitig in question is not unique"; - - ##### Ugly, command line options passed to printHelp() - - $global{"help"} = ""; - $synops{"help"} = undef; - - $global{"version"} = 0; - $synops{"version"} = undef; - - $global{"options"} = 0; - $synops{"options"} = undef; - - - - if (exists($ENV{'AS_OVL_ERROR_RATE'})) { - setGlobal("ovlErrorRate", $ENV{'AS_OVL_ERROR_RATE'}); - print STDERR "ovlErrorRate $ENV{'AS_OVL_ERROR_RATE'} (from \$AS_OVL_ERROR_RATE)\n"; - } - - if (exists($ENV{'AS_CGW_ERROR_RATE'})) { - setGlobal("cgwErrorRate", $ENV{'AS_CGW_ERROR_RATE'}); - print STDERR "ENV: cgwErrorRate $ENV{'AS_CGW_ERROR_RATE'} (from \$AS_CGW_ERROR_RATE)\n"; - } - - if (exists($ENV{'AS_CNS_ERROR_RATE'})) { - setGlobal("cnsErrorRate", $ENV{'AS_CNS_ERROR_RATE'}); - print STDERR "ENV: cnsErrorRate $ENV{'AS_CNS_ERROR_RATE'} (from \$AS_CNS_ERROR_RATE)\n"; - } -} - -sub makeAbsolute ($) { - my $var = shift @_; - my $val = getGlobal($var); - if (defined($val) && ($val !~ m!^/!)) { - $val = "$ENV{'PWD'}/$val"; - setGlobal($var, $val); - $commandLineOptions .= " \"$var=$val\" "; - } -} - -sub fixCase ($) { - my $var = shift @_; - my $val = getGlobal($var); - $val =~ tr/A-Z/a-z/; - setGlobal($var, $val); -} - -sub setParametersFromFile ($@) { - my $specFile = shift @_; - my @fragFiles = @_; - - # Client should be ensuring that the file exists before calling this function. - die "specFile '$specFile' not found.\n" if (! -e "$specFile"); - - print STDERR "#\n"; - print STDERR "# Reading options from '$specFile'\n"; - print STDERR "#\n"; - open(F, "< $specFile") or caFailure("Couldn't open '$specFile'", undef); - - while () { - print STDERR $_; - - s/^\s+//; - s/\s+$//; - - next if (m/^\s*\#/); - next if (m/^\s*$/); - - if (m/\s*(\w*)\s*=([^#]*)#*.*$/) { - my ($var, $val) = ($1, $2); - $var =~ s/^\s+//; $var =~ s/\s+$//; - $val =~ s/^\s+//; $val =~ s/\s+$//; - undef $val if ($val eq "undef"); - setGlobal($var, $val); - } else { - my $xx = $_; - $xx = "$ENV{'PWD'}/$xx" if ($xx !~ m!^/!); - if (-e $xx) { - push @fragFiles, $xx; - } else { - setGlobal("help", getGlobal("help") . "File not found or invalid specFile line '$_'\n"); - } - } - } - close(F); - - return(@fragFiles); -} - - -sub setParametersFromCommandLine(@) { - my @specOpts = @_; - - if (scalar(@specOpts) > 0) { - print STDERR "#\n"; - print STDERR "# Reading options from the command line.\n"; - print STDERR "#\n"; - } - - foreach my $s (@specOpts) { - print STDERR "$s\n"; - - if ($s =~ m/\s*(\w*)\s*=(.*)/) { - my ($var, $val) = ($1, $2); - $var =~ s/^\s+//; $var =~ s/\s+$//; - $val =~ s/^\s+//; $val =~ s/\s+$//; - setGlobal($var, $val); - } else { - setGlobal("help", getGlobal("help") . "Misformed command line option '$s'.\n"); - } - } -} - - -sub setParameters () { - - # Update obsolete usages. - # - if (getGlobal("doChimeraDetection") eq "1") { - print STDERR "WARNING: 'doChimeraDetection=1' is obsolete; use 'doChimeraDetection=normal' in the future.\n"; - setGlobal("doChimeraDetection", "normal"); - } - if (getGlobal("doChimeraDetection") eq "0") { - print STDERR "WARNING: 'doChimeraDetection=0' is obsolete; use 'doChimeraDetection=off' in the future.\n"; - setGlobal("doChimeraDetection", "off"); - } - - # Fiddle with filenames to make them absolute paths. - # - makeAbsolute("vectorIntersect"); - makeAbsolute("pathMap"); - - # Adjust case on some of them - # - fixCase("doChimeraDetection"); - fixCase("obtOverlapper"); - fixCase("ovlOverlapper"); - fixCase("unitigger"); - fixCase("vectorTrimmer"); - fixCase("stopBefore"); - fixCase("stopAfter"); - fixCase("consensus"); - fixCase("cleanup"); - - if ((getGlobal("doChimeraDetection") ne "off") && (getGlobal("doChimeraDetection") ne "normal") && (getGlobal("doChimeraDetection") ne "aggressive")) { - caFailure("invalid doChimeraDetection specified (" . getGlobal("doChimeraDetection") . "); must be 'off', 'normal', or 'aggressive'", undef); - } - if ((getGlobal("obtOverlapper") ne "mer") && (getGlobal("obtOverlapper") ne "ovl") && (getGlobal("obtOverlapper") ne "sand")) { - caFailure("invalid obtOverlapper specified (" . getGlobal("obtOverlapper") . "); must be 'mer' or 'ovl' or 'sand'", undef); - } - if ((getGlobal("ovlOverlapper") ne "mer") && (getGlobal("ovlOverlapper") ne "ovl") && (getGlobal("ovlOverlapper") ne "sand")) { - caFailure("invalid ovlOverlapper specified (" . getGlobal("ovlOverlapper") . "); must be 'mer' or 'ovl' or 'sand'", undef); - } - if (defined(getGlobal("unitigger")) && (getGlobal("unitigger") ne "utg") && (getGlobal("unitigger") ne "bog")) { - caFailure("invalid unitigger specified (" . getGlobal("unitigger") . "); must be 'utg' or 'bog'", undef); - } - if ((getGlobal("vectorTrimmer") ne "ca") && (getGlobal("vectorTrimmer") ne "figaro")) { - caFailure("invalid vectorTrimmer specified (" . getGlobal("vectorTrimmer") . "); must be 'ca' or 'figaro'", undef); - } - if ((getGlobal("consensus") ne "cns") && (getGlobal("consensus") ne "seqan")) { - caFailure("invalid consensus specified (" . getGlobal("consensus") . "); must be 'cns' or 'seqan'", undef); - } - if ((getGlobal("cnsPhasing") ne "0") && (getGlobal("cnsPhasing") ne "1")) { - caFailure("invalid cnsPhasing specified (" . getGlobal("cnsPhasing") . "); must be '0' or '1'", undef); - } - if ((getGlobal("cleanup") ne "none") && - (getGlobal("cleanup") ne "light") && - (getGlobal("cleanup") ne "heavy") && - (getGlobal("cleanup") ne "aggressive")) { - caFailure("invalid cleaup specified (" . getGlobal("cleanup") . "); must be 'none', 'light', 'heavy' or 'aggressive'", undef); - } - - if (defined(getGlobal("stopBefore"))) { - my $ok = 0; - my $st = getGlobal("stopBefore"); - $st =~ tr/A-Z/a-z/; - - my $failureString = "Invalid stopBefore specified (" . getGlobal("stopBefore") . "); must be one of:\n"; - - my @stopBefore = ("meryl", - "initialTrim", - "deDuplication", - "mergeTrimming", - "chimeraDetection", - "unitigger", - "scaffolder", - "CGW", - "eCR", - "extendClearRanges", - "eCRPartition", - "extendClearRangesPartition", - "terminator"); - - foreach my $sb (@stopBefore) { - $failureString .= " '$sb'\n"; - $sb =~ tr/A-Z/a-z/; - if ($st eq $sb) { - $ok++; - setGlobal('stopBefore', $st); - } - } - - caFailure($failureString, undef) if ($ok == 0); - } - - - if (defined(getGlobal("stopAfter"))) { - my $ok = 0; - my $st = getGlobal("stopAfter"); - $st =~ tr/A-Z/a-z/; - - my $failureString = "Invalid stopAfter specified (" . getGlobal("stopAfter") . "); must be one of:\n"; - - my @stopAfter = ("initialStoreBuilding", - "overlapper", - "OBT", - "overlapBasedTrimming", - "unitigger", - "utgcns", - "consensusAfterUnitigger", - "scaffolder", - "ctgcns", - "consensusAfterScaffolder"); - - foreach my $sa (@stopAfter) { - $failureString .= " '$sa'\n"; - $sa =~ tr/A-Z/a-z/; - if ($st eq $sa) { - $ok++; - setGlobal('stopAfter', $st); - } - } - - caFailure($failureString, undef) if ($ok == 0); - } - - - # PIck a nice looking set of binaries, and check them. - # - { - my $bin = getBinDirectory(); - - caFailure("can't find 'gatekeeper' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/gatekeeper"); - caFailure("can't find 'meryl' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/meryl"); - caFailure("can't find 'overlap' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/overlap"); - caFailure("can't find 'unitigger' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/unitigger"); - caFailure("can't find 'cgw' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/cgw"); - caFailure("can't find 'utgcns' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/utgcns"); - caFailure("can't find 'ctgcns' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/ctgcns"); - caFailure("can't find 'terminator' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/terminator"); - - if ((getGlobal("obtOverlapper") eq "mer") || (getGlobal("ovlOverlapper") eq "mer")) { - caFailure("can't find 'overmerry' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/overmerry"); - } - } - - # Set the globally accessible error rates. Adjust them if they - # look strange. - # - # We must have: ovl <= cns <= cgw - # We usually have: ovl == cns <= cgw - # - my $ovlER = getGlobal("ovlErrorRate"); - my $utgER = getGlobal("utgErrorRate"); - my $cgwER = getGlobal("cgwErrorRate"); - my $cnsER = getGlobal("cnsErrorRate"); - - if (($ovlER < 0.0) || (0.25 < $ovlER)) { - caFailure("ovlErrorRate is $ovlER, this MUST be between 0.00 and 0.25", undef); - } - if (($utgER < 0.0) || (0.25 < $utgER)) { - caFailure("utgErrorRate is $utgER, this MUST be between 0.00 and 0.25", undef); - } - if (($cgwER < 0.0) || (0.25 < $cgwER)) { - caFailure("cgwErrorRate is $cgwER, this MUST be between 0.00 and 0.25", undef); - } - if (($cnsER < 0.0) || (0.25 < $cnsER)) { - caFailure("cnsErrorRate is $cnsER, this MUST be between 0.00 and 0.25", undef); - } - if ($utgER > $ovlER) { - caFailure("utgErrorRate is $utgER, this MUST be <= ovlErrorRate ($ovlER)", undef); - } - if ($ovlER > $cnsER) { - caFailure("ovlErrorRate is $ovlER, this MUST be <= cnsErrorRate ($cnsER)", undef); - } - if ($ovlER > $cgwER) { - caFailure("ovlErrorRate is $ovlER, this MUST be <= cgwErrorRate ($cgwER)", undef); - } - if ($cnsER > $cgwER) { - caFailure("cnsErrorRate is $cnsER, this MUST be <= cgwErrorRate ($cgwER)", undef); - } - $ENV{'AS_OVL_ERROR_RATE'} = $ovlER; - $ENV{'AS_CGW_ERROR_RATE'} = $cgwER; - $ENV{'AS_CNS_ERROR_RATE'} = $cnsER; - - if ((getGlobal("doOverlapBasedTrimming") == 1) && - (getGlobal("doMerBasedTrimming") == 1)) { - caFailure("Cannot do both overlap based trimming and mer based trimming", undef); - } -} - -sub logVersion() { - my $bin = getBinDirectory(); - - system("$bin/gatekeeper --version"); - system("$bin/overlap --version"); - system("$bin/unitigger --version"); - system("$bin/buildUnitigs --version"); - system("$bin/cgw --version"); - system("$bin/consensus --version"); - system("$bin/terminator --version"); -} - -sub printHelp () { - - if (getGlobal("version")) { - logVersion(); - exit(0); - } - - if (getGlobal("options")) { - foreach my $k (sort keys %global) { - my $o = substr("$k ", 0, 35); - my $d = substr(getGlobal($k) . " ", 0, 20); - my $u = $synops{$k}; - - if (!defined(getGlobal($k))) { - $d = substr(" ", 0, 20); - } - - print "$o$d($u)\n"; - } - exit(0); - } - - if (getGlobal("help") ne "") { - print "usage: runCA -d -p [options] ...\n"; - print " -d Use as the working directory. Required\n"; - print " -p Use as the output prefix. Required\n"; - print "\n"; - print " -s Read options from the specifications file .\n"; - print " can also be one of the following key words:\n"; - print " [no]OBT - run with[out] OBT\n"; - print " noVec - run with OBT but without Vector\n"; - print "\n"; - print " -version Version information\n"; - print " -help This information\n"; - print " -options Describe specFile options, and show default values\n"; - print "\n"; - print " CA formatted fragment file\n"; - print "\n"; - print "Complete documentation at http://wgs-assembler.sourceforge.net/\n"; - print "\n"; - print $global{"help"}; - exit(0); - } - - undef $global{"version"}; - undef $global{"options"}; - undef $global{"help"}; -} - - - -sub checkDirectories () { - - # Check that we were supplied a work directory, and that it - # exists, or we can create it. - # - die "ERROR: I need a directory to run the assembly in (-d option).\n" if (!defined($wrk)); - - system("mkdir -p $wrk") if (! -d $wrk); - chmod 0755, "$wrk"; - - $ENV{'AS_RUNCA_DIRECTORY'} = $wrk; - - caFailure("directory '$wrk' doesn't exist (-d option) and couldn't be created", undef) if (! -d $wrk); -} - - -sub findFirstCheckpoint ($) { - my $dir = shift @_; - my $firstckp = 0; - - $dir = "$wrk/$dir" if (! -d $dir); - - open(F, "ls -1 $dir/$asm.ckp.[0-9]* |"); - while () { - chomp; - - if (m/ckp.(\d+)$/) { - $firstckp = $1 if ($1 < $firstckp); - } - } - close(F); - - return($firstckp); -} - -sub findLastCheckpoint ($) { - my $dir = shift @_; - my $lastckp = 0; - - $dir = "$wrk/$dir" if (-d "$wrk/$dir"); - - open(F, "ls -1 $dir/$asm.ckp.[0-9]* |"); - while () { - chomp; - - if (m/ckp.(\d+)$/) { - $lastckp = $1 if ($1 > $lastckp); - } - } - close(F); - - return($lastckp); -} - -sub findNumScaffoldsInCheckpoint ($$) { - my $dir = shift @_; - my $lastckp = shift @_; - my $bin = getBinDirectory(); - - open(F, "cd $wrk/$dir && $bin/getNumScaffolds ../$asm.gkpStore $asm $lastckp 2> /dev/null |"); - my $numscaf = ; chomp $numscaf; - close(F); - $numscaf = int($numscaf); - - return($numscaf); -} - - -sub getNumberOfFragsInStore ($$) { - my $wrk = shift @_; - my $asm = shift @_; - my $bin = getBinDirectory(); - - $numFrags = 0; - - if (-e "$wrk/$asm.gkpStore/inf") { - open(F, "$bin/gatekeeper -lastfragiid $wrk/$asm.gkpStore 2> /dev/null |") or caFailure("failed to run gatekeeper to get the number of frags in the store", undef); - $_ = ; chomp $_; - close(F); - - $numFrags = $1 if (m/^Last frag in store is iid = (\d+)$/); - } - - return($numFrags); -} - - -# Decide if we have the CA meryl or the Mighty one. -# -sub merylVersion () { - my $bin = getBinDirectory(); - my $ver = "unknown"; - - open(F, "$bin/meryl -V |"); - while () { - $ver = "CA" if (m/CA/); - $ver = "Mighty" if (m/Mighty/); - } - close(F); - return($ver); -} - -sub stopBefore ($$) { - my $stopBefore = shift @_; $stopBefore =~ tr/A-Z/a-z/; - my $cmd = shift @_; - if (defined($stopBefore) && - defined(getGlobal('stopBefore')) && - (getGlobal('stopBefore') eq $stopBefore)) { - print STDERR "Stop requested before '$stopBefore'.\n"; - print STDERR "Command:\n$cmd\n" if (defined($cmd)); - exit(0); - } -} - -sub stopAfter ($) { - my $stopAfter = shift @_; $stopAfter =~ tr/A-Z/a-z/; - if (defined($stopAfter) && - defined(getGlobal('stopAfter')) && - (getGlobal('stopAfter') eq $stopAfter)) { - print STDERR "Stop requested after '$stopAfter'.\n"; - exit(0); - } -} - -sub runningOnGrid () { - return(defined($ENV{'SGE_TASK_ID'})); -} - -sub findNextScriptOutputFile () { - my $idx = "00"; - while (-e "$wrk/runCA.sge.out.$idx") { - $idx++; - } - return("$wrk/runCA.sge.out.$idx"); -} - -sub submitScript ($) { - my $waitTag = shift @_; - - return if (getGlobal("scriptOnGrid") == 0); - - my $output = findNextScriptOutputFile(); - my $script = "$output.sh"; - - open(F, "> $script") or caFailure("failed to open '$script' for writing", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "#\n"; - print F "# Attempt to (re)configure SGE. For reasons Bri doesn't know,\n"; - print F "# jobs submitted to SGE, and running under SGE, fail to read his\n"; - print F "# .tcshrc (or .bashrc, limited testing), and so they don't setup\n"; - print F "# SGE (or ANY other paths, etc) properly. For the record,\n"; - print F "# interactive SGE logins (qlogin, etc) DO set the environment.\n"; - print F "\n"; - print F ". \$SGE_ROOT/\$SGE_CELL/common/settings.sh\n"; - print F "\n"; - print F "# On the off chance that there is a pathMap, and the host we\n"; - print F "# eventually get scheduled on doesn't see other hosts, we decide\n"; - print F "# at run time where the binary is.\n"; - - print F getBinDirectoryShellCode(); - - #print F "hostname\n"; - #print F "echo \$bin\n"; - - print F "/usr/bin/env perl \$bin/runCA $commandLineOptions\n"; - close(F); - - system("chmod +x $script"); - - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeScript = getGlobal("sgeScript"); - my $sgePropHold = getGlobal("sgePropagateHold"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - $waitTag = "-hold_jid \"$waitTag\"" if (defined($waitTag)); - - my $qcmd = "qsub $sge $sgeScript -cwd -N \"rCA_$asm$sgeName\" -j y -o $output $waitTag $script"; - - runCommand($wrk, $qcmd) and caFailure("Failed to submit script.\n"); - - if (defined($sgePropHold)) { - my $acmd = "qalter -hold_jid \"rCA_$asm$sgeName\" \"$sgePropHold\""; - system($acmd) and print STDERR "WARNING: Failed to reset hold_jid trigger on '$sgePropHold'.\n"; - } - - exit(0); -} - - -use Carp; - -sub caFailure ($$) { - my $msg = shift @_; - my $log = shift @_; - - print STDERR "================================================================================\n"; - print STDERR "\n"; - print STDERR "runCA failed.\n"; - print STDERR "\n"; - - print STDERR "----------------------------------------\n"; - print STDERR "Stack trace:\n"; - print STDERR "\n"; - carp; - - if (-e $log) { - print STDERR "\n"; - print STDERR "----------------------------------------\n"; - print STDERR "Last few lines of the relevant log file ($log):\n"; - print STDERR "\n"; - system("tail -n 20 $log"); - } - - print STDERR "\n"; - print STDERR "----------------------------------------\n"; - print STDERR "Failure message:\n"; - print STDERR "\n"; - print STDERR "$msg\n"; - print STDERR "\n"; - - exit(1); -} - - - -# Bit of a wierd one here; assume path are supplied relative to $wrk. -# Potentially gives us a bit of safety. -# -sub rmrf (@) { - foreach my $f (@_) { - unlink("$wrk/$f") if (-f "$wrk/$f"); - system("rm -rf $wrk/$f") if (-d "$wrk/$f"); - } -} - - -# Create an empty file. Much faster than system("touch ..."). -# -sub touch ($) { - open(F, "> $_[0]") or caFailure("failed to touch file '$_[0]'", undef); - close(F); -} - - -sub pleaseExecute ($) { - my $file = shift @_; - - print STDERR "Please execute:\n"; - print STDERR " $file\n"; - print STDERR "to submit jobs to the grid, then restart this script when all\n"; - print STDERR "jobs finish. I'll make sure all jobs finished properly.\n"; -} - - -# Utility to run a command and check the exit status, report time used. -# -sub runCommand ($$) { - my $dir = shift @_; - my $cmd = shift @_; - - my $t = localtime(); - my $d = time(); - print STDERR "----------------------------------------START $t\n$cmd\n"; - - my $rc = 0xffff & system("cd $dir && $cmd"); - - $t = localtime(); - print STDERR "----------------------------------------END $t (", time() - $d, " seconds)\n"; - - # Pretty much copied from Programming Perl page 230 - - return(0) if ($rc == 0); - - # Bunch of busy work to get the names of signals. Is it really worth it?! - # - my @signame; - if (defined($Config{sig_name})) { - my $i = 0; - foreach my $n (split('\s+', $Config{sig_name})) { - $signame[$i] = $n; - $i++; - } - } - - my $error = "ERROR: Failed with "; - - if ($rc == 0xff00) { - $error .= "$!\n"; - } else { - if ($rc & 0x80) { - $error .= "coredump from "; - } - - if ($rc > 0x80) { - $rc >>= 8; - } - $rc &= 127; - - if (defined($signame[$rc])) { - $error .= "signal $signame[$rc] ($rc)\n"; - } else { - $error .= "signal $rc\n"; - } - } - - print STDERR $error; - - return(1); -} - -1; -use strict; - -# Check that the overlapper jobs properly executed. If not, -# complain, but don't help the user fix things. - - -sub checkOverlapper ($) { - my $isTrim = shift @_; - - my $outDir = "1-overlapper"; - my $ovlOpt = ""; - - if ($isTrim eq "trim") { - $outDir = "0-overlaptrim-overlap"; - $ovlOpt = "-G"; - } - - open(F, "< $wrk/$outDir/ovljobs.dat") or caFailure("failed to open '$wrk/$outDir/ovljobs.dat'", undef); - $_ = ; - my @bat = split '\s+', $_; - $_ = ; - my @job = split '\s+', $_; - close(F); - - my $jobIndex = 1; - my $failedJobs = 0; - - while (scalar(@bat) > 0) { - my $batchName = shift @bat; - my $jobName = shift @job; - - if ((! -e "$wrk/$outDir/$batchName/$jobName.ovb.gz") && - (! -e "$wrk/$outDir/$batchName/$jobName.ovb")) { - print STDERR "$wrk/$outDir/$batchName/$jobName failed, job index $jobIndex.\n"; - $failedJobs++; - } - - $jobIndex++; - } - - # FAILUREHELPME - # - caFailure("$failedJobs overlapper jobs failed", undef) if ($failedJobs); -} - - -sub checkMerOverlapper ($) { - my $isTrim = shift @_; - - my $outDir = "1-overlapper"; - - if ($isTrim eq "trim") { - $outDir = "0-overlaptrim-overlap"; - } - - my $batchSize = getGlobal("merOverlapperExtendBatchSize"); - my $jobs = int($numFrags / ($batchSize-1)) + 1; - my $failedJobs = 0; - - for (my $i=1; $i<=$jobs; $i++) { - my $job = substr("0000" . $i, -4); - - if ((! -e "$wrk/$outDir/olaps/$job.ovb.gz") && - (! -e "$wrk/$outDir/olaps/$job.ovb")) { - print STDERR "$wrk/$outDir/olaps/$job failed.\n"; - $failedJobs++; - } - } - - caFailure("$failedJobs overlapper jobs failed", undef) if ($failedJobs); -} - - -sub checkOverlap { - my $isTrim = shift @_; - - caFailure("overlap checker needs to know if trimming or assembling", undef) if (!defined($isTrim)); - - if ($isTrim eq "trim") { - return if (-d "$wrk/$asm.obtStore"); - if (getGlobal("obtOverlapper") eq "ovl") { - checkOverlapper($isTrim); - } elsif (getGlobal("obtOverlapper") eq "mer") { - checkMerOverlapper($isTrim); - } elsif (getGlobal("obtOverlapper") eq "umd") { - caError("checkOverlap() wanted to check umd overlapper for obt?\n"); - } elsif (getGlobal("obtOverlapper") eq "sand") { - caError("checkOverlap() wanted to check sand overlapper for obt?\n"); - } else { - caError("checkOverlap() unknown obt overlapper?\n"); - } - } else { - return if (-d "$wrk/$asm.ovlStore"); - if (getGlobal("ovlOverlapper") eq "ovl") { - checkOverlapper($isTrim); - } elsif (getGlobal("ovlOverlapper") eq "mer") { - checkMerOverlapper($isTrim); - } elsif (getGlobal("ovlOverlapper") eq "umd") { - # Nop. - } elsif (getGlobal("ovlOverlapper") eq "sand") { - # Nop - } else { - caError("checkOverlap() unknown ovl overlapper?\n"); - } - } -} - -1; - -use strict; - -# Prepare for consensus on the grid -# Partition the contigs -# Repartition the frag store - -sub createPostScaffolderConsensusJobs () { - my $consensusType = getGlobal("consensus"); - - return if (-e "$wrk/8-consensus/consensus.sh"); - - caFailure("contig consensus didn't find '$wrk/$asm.tigStore'", undef) if (! -d "$wrk/$asm.tigStore"); - - my $tigVersion = findLastCheckpoint("$wrk/7-CGW"); - caFailure("contig consensus didn't find any checkpoints in '$wrk/7-CGW'", undef) if (!defined($tigVersion)); - - ######################################## - # - # Partition the gkpStore for consensus. - # - if (! -e "$wrk/8-consensus/$asm.partitioned") { - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/gatekeeper -P $wrk/7-CGW/$asm.partitioning $wrk/$asm.gkpStore "; - $cmd .= "> $wrk/8-consensus/$asm.partitioned.err 2>&1"; - - caFailure("gatekeeper partitioning failed", "$wrk/8-consensus/$asm.partitioned.err") if (runCommand("$wrk/8-consensus", $cmd)); - touch("$wrk/8-consensus/$asm.partitioned"); - } - - ######################################## - # - # Build consensus jobs for the grid -- this is very similar to that in createPostUnitiggerConsensus.pl - # - my $jobs = 0; - - open(F, "< $wrk/7-CGW/$asm.partitionInfo") or caFailure("can't open '$wrk/7-CGW/$asm.partitionInfo'", undef); - while () { - if (m/Partition\s+(\d+)\s+has\s+(\d+)\s+contigs\sand\s+(\d+)\s+fragments./) { - $jobs = $1; - } - } - close(F); - - open(F, "> $wrk/8-consensus/consensus.sh") or caFailure("can't open '$wrk/8-consensus/consensus.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "if [ \$jobid -gt $jobs ]; then\n"; - print F " echo Error: Only $jobs partitions, you asked for \$jobid.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %03d \$jobid`\n"; - print F "\n"; - print F "if [ -e $wrk/8-consensus/${asm}_\$jobid.success ] ; then\n"; - print F " exit 0\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - - print F getBinDirectoryShellCode(); - - if ($consensusType eq "cns") { - print F "\$bin/ctgcns \\\n"; - print F " -g $wrk/$asm.gkpStore \\\n"; - print F " -t $wrk/$asm.tigStore $tigVersion \$jobid \\\n"; - print F " -P ", getGlobal("cnsPhasing"), "\\\n"; - print F " > $wrk/8-consensus/${asm}_\$jobid.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "touch $wrk/8-consensus/${asm}_\$jobid.success\n"; - } elsif ($consensusType eq "seqan") { - print F "\$bin/SeqAn_CNS \\\n"; - print F " -G $wrk/$asm.gkpStore \\\n"; - print F " -u $wrk/$asm.SeqStore \\\n"; - print F " -V $tigVersion \\\n"; - print F " -p \$jobid \\\n"; - print F " -S \$jobid \\\n"; - #print F " -c $cgwDir/$asm.cgw_contigs.\$jobid \\\n"; - print F " -s \$bin/graph_consensus \\\n"; - print F " -w $wrk/8-consensus/ \\\n"; - print F " -o $wrk/8-consensus/$asm.cns_contigs.\$jobid \\\n"; - print F " > $wrk/8-consensus/$asm.cns_contigs.\$jobid.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "touch $wrk/8-consensus/$asm.cns_contigs.\$jobid.success\n"; - } else { - caFailure("unknown consensus type $consensusType; must be 'cns' or 'seqan'", undef); - } - print F "exit 0\n"; - close(F); - - chmod 0755, "$wrk/8-consensus/consensus.sh"; - - if (getGlobal("cnsOnGrid") && getGlobal("useGrid")) { - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeConsensus = getGlobal("sgeConsensus"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeConsensus -cwd -N ctg_$asm$sgeName "; - $SGE .= "-t 1-$jobs "; - $SGE .= "-j y -o /dev/null "; - $SGE .= "$wrk/8-consensus/consensus.sh\n"; - - submitBatchJobs($SGE, "ctg_$asm$sgeName"); - exit(0); - } else { - for (my $i=1; $i<=$jobs; $i++) { - &scheduler::schedulerSubmit("$wrk/8-consensus/consensus.sh $i > /dev/null 2>&1"); - } - - &scheduler::schedulerSetNumberOfProcesses(getGlobal("cnsConcurrency")); - &scheduler::schedulerFinish(); - } -} - - -sub postScaffolderConsensus () { - - system("mkdir $wrk/8-consensus") if (! -d "$wrk/8-consensus"); - - goto alldone if (-e "$wrk/8-consensus/consensus.success"); - - createPostScaffolderConsensusJobs(); - - # - # Check that consensus finished properly - # - my $failedJobs = 0; - - open(F, "< $wrk/7-CGW/$asm.partitionInfo") or caFailure("can't open '$wrk/7-CGW/$asm.partitionInfo'", undef); - while () { - if (m/Partition\s+(\d+)\s+has\s+(\d+)\s+contigs\sand\s+(\d+)\s+fragments./) { - my $id = substr("000" . $1, -3); - - if (! -e "$wrk/8-consensus/${asm}_$id.success") { - print STDERR "$wrk/8-consensus/${asm}_$id failed -- no .success.\n"; - $failedJobs++; - } - } - } - close(F); - - # FAILUREHELPME - # - caFailure("$failedJobs consensusAfterScaffolder jobs failed; remove 8-consensus/consensus.sh to try again", undef) if ($failedJobs); - - # All jobs finished. Remove the partitioning from the gatekeeper - # store. The gatekeeper store is currently (5 Mar 2007) tolerant - # of someone asking for a partition that isn't there -- it'll - # fallback to the complete store. So, if you happen to want to - # run consensus again, it'll still work, just a little slower. - # - # (This block appears in both createPostUnitiggerConsensus.pl and createConsensusJobs.pl) - # - system("rm -f $wrk/$asm.gkpStore/frg.[0-9][0-9][0-9]"); - system("rm -f $wrk/$asm.gkpStore/hps.[0-9][0-9][0-9]"); - system("rm -f $wrk/$asm.gkpStore/qlt.[0-9][0-9][0-9]"); - system("rm -f $wrk/$asm.gkpStore/src.[0-9][0-9][0-9]"); - - touch("$wrk/8-consensus/consensus.success"); - - alldone: - stopAfter("ctgcns"); - stopAfter("consensusAfterScaffolder"); -} - -1; -use strict; - -sub findOvermerryFailures ($$) { - my $outDir = shift @_; - my $ovmJobs = shift @_; - my $failures = 0; - - for (my $i=1; $i<=$ovmJobs; $i++) { - my $out = substr("0000" . $i, -4); - if (-e "$wrk/$outDir/seeds/$out.ovm.WORKING.gz") { - $failures++; - } - } - - return $failures; -} - -sub findOvermerrySuccess ($$) { - my $outDir = shift @_; - my $ovmJobs = shift @_; - my $successes= 0; - - for (my $i=1; $i<=$ovmJobs; $i++) { - my $out = substr("0000" . $i, -4); - if (-e "$wrk/$outDir/seeds/$out.ovm.gz") { - $successes++; - } - } - - return($successes == $ovmJobs); -} - -sub findOlapFromSeedsFailures ($$) { - my $outDir = shift @_; - my $olpJobs = shift @_; - my $failures = 0; - - for (my $i=1; $i<=$olpJobs; $i++) { - my $out = substr("0000" . $i, -4); - if (-e "$wrk/$outDir/olaps/$out.ovb.WORKING.gz") { - $failures++; - } - } - - return $failures; -} - -sub findOlapFromSeedsSuccess ($$) { - my $outDir = shift @_; - my $olpJobs = shift @_; - my $successes= 0; - - for (my $i=1; $i<=$olpJobs; $i++) { - my $out = substr("0000" . $i, -4); - if (-e "$wrk/$outDir/olaps/$out.ovb.gz") { - $successes++; - } - } - - return $successes == $olpJobs; -} - - -sub merOverlapper($) { - my $isTrim = shift @_; - - return if (-d "$wrk/$asm.ovlStore"); - return if (-d "$wrk/$asm.obtStore") && ($isTrim eq "trim"); - - caFailure("mer overlapper detected no fragments", undef) if ($numFrags == 0); - caFailure("mer overlapper doesn't know if trimming or assembling", undef) if (!defined($isTrim)); - - my ($outDir, $ovlOpt, $merSize, $merComp, $merType, $merylNeeded); - - # Set directories and parameters for either 'trimming' or 'real' - # overlaps. - - if ($isTrim eq "trim") { - $outDir = "0-overlaptrim-overlap"; - $ovlOpt = "-G"; - $merSize = getGlobal("obtMerSize"); - $merComp = getGlobal("merCompression"); - $merType = "obt"; - $merylNeeded = (getGlobal("obtMerThreshold") =~ m/auto/) ? 1 : 0; - } else { - $outDir = "1-overlapper"; - $ovlOpt = ""; - $merSize = getGlobal("ovlMerSize"); - $merComp = getGlobal("merCompression"); - $merType = "ovl"; - $merylNeeded = (getGlobal("ovlMerThreshold") =~ m/auto/) ? 1 : 0; - } - - system("mkdir $wrk/$outDir") if (! -d "$wrk/$outDir"); - system("mkdir $wrk/$outDir/seeds") if (! -d "$wrk/$outDir/seeds"); - system("mkdir $wrk/$outDir/olaps") if (! -d "$wrk/$outDir/olaps"); - - # Make the directory (to hold the corrections output) and claim - # that fragment correction is all done. after this, the rest of - # the fragment/overlap correction pipeline Just Works. - # - system("mkdir $wrk/3-overlapcorrection") if ((! -d "$wrk/3-overlapcorrection") && ($isTrim ne "trim")); - - my $ovmBatchSize = getGlobal("merOverlapperSeedBatchSize"); - my $ovmJobs = int(($numFrags - 1) / $ovmBatchSize) + 1; - - my $olpBatchSize = getGlobal("merOverlapperExtendBatchSize"); - my $olpJobs = int(($numFrags - 1) / $olpBatchSize) + 1; - - # Need mer counts, unless there is only one partition. - meryl() if (($ovmJobs > 1) || ($merylNeeded)); - - - # Create overmerry and olap-from-seeds jobs - # - open(F, "> $wrk/$outDir/overmerry.sh") or caFailure("can't open '$wrk/$outDir/overmerry.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %04d \$jobid`\n"; - print F "minid=`expr \$jobid \\* $ovmBatchSize - $ovmBatchSize + 1`\n"; - print F "maxid=`expr \$jobid \\* $ovmBatchSize`\n"; - print F "runid=\$\$\n"; - print F "\n"; - print F "if [ \$maxid -gt $numFrags ] ; then\n"; - print F " maxid=$numFrags\n"; - print F "fi\n"; - print F "if [ \$minid -gt \$maxid ] ; then\n"; - print F " echo Job partitioning error -- minid=\$minid maxid=\$maxid.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - print F "\n"; - print F "if [ ! -d $wrk/$outDir/seeds ]; then\n"; - print F " mkdir $wrk/$outDir/seeds\n"; - print F "fi\n"; - print F "\n"; - print F "if [ -e $wrk/$outDir/seeds/\$jobid.ovm.gz ]; then\n"; - print F " echo Job previously completed successfully.\n"; - print F " exit\n"; - print F "fi\n"; - print F getBinDirectoryShellCode(); - print F "\$bin/overmerry \\\n"; - print F " -g $wrk/$asm.gkpStore \\\n"; - if ($ovmJobs > 1) { - print F " -mc $wrk/0-mercounts/$asm-C-ms$merSize-cm$merComp \\\n"; - print F " -tb \$minid -te \$maxid \\\n"; - print F " -qb \$minid \\\n"; - } - print F " -m $merSize \\\n"; - print F " -c $merComp \\\n"; - print F " -T ", getGlobal("obtMerThreshold"), " \\\n" if ($isTrim eq "trim"); - print F " -T ", getGlobal("ovlMerThreshold"), " \\\n" if ($isTrim ne "trim"); - print F " -t " . getGlobal("merOverlapperThreads") . "\\\n"; - print F " -o $wrk/$outDir/seeds/\$jobid.ovm.WORKING.gz \\\n"; - print F "&& \\\n"; - print F "mv $wrk/$outDir/seeds/\$jobid.ovm.WORKING.gz $wrk/$outDir/seeds/\$jobid.ovm.gz\n"; - close(F); - - system("chmod +x $wrk/$outDir/overmerry.sh"); - - - - - open(F, "> $wrk/$outDir/olap-from-seeds.sh") or caFailure("can't open '$wrk/$outDir/olap-from-seeds.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %04d \$jobid`\n"; - print F "minid=`expr \$jobid \\* $olpBatchSize - $olpBatchSize + 1`\n"; - print F "maxid=`expr \$jobid \\* $olpBatchSize`\n"; - print F "runid=\$\$\n"; - print F "\n"; - print F "if [ \$maxid -gt $numFrags ] ; then\n"; - print F " maxid=$numFrags\n"; - print F "fi\n"; - print F "if [ \$minid -gt \$maxid ] ; then\n"; - print F " echo Job partitioning error -- minid=\$minid maxid=\$maxid.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - print F "\n"; - print F "if [ ! -d $wrk/$outDir/olaps ]; then\n"; - print F " mkdir $wrk/$outDir/olaps\n"; - print F "fi\n"; - print F "\n"; - print F "if [ -e $wrk/$outDir/olaps/\$jobid.ovb.gz ]; then\n"; - print F " echo Job previously completed successfully.\n"; - print F " exit\n"; - print F "fi\n"; - print F getBinDirectoryShellCode(); - print F "\$bin/olap-from-seeds \\\n"; - print F " -a -b \\\n"; - print F " -t " . getGlobal("merOverlapperThreads") . "\\\n"; - print F " -S $wrk/$outDir/$asm.merStore \\\n"; - if ($isTrim eq "trim") { - print F " -G \\\n"; # Trim only - print F " -o $wrk/$outDir/olaps/\$jobid.ovb.WORKING.gz \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " \$minid \$maxid \\\n"; - print F "&& \\\n"; - print F "mv $wrk/$outDir/olaps/\$jobid.ovb.WORKING.gz $wrk/$outDir/olaps/\$jobid.ovb.gz\n"; - } else { - print F " -w \\\n" if (getGlobal("merOverlapperCorrelatedDiffs")); - print F " -c $wrk/3-overlapcorrection/\$jobid.frgcorr.WORKING \\\n"; - print F " -o $wrk/$outDir/olaps/\$jobid.ovb.WORKING.gz \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " \$minid \$maxid \\\n"; - print F "&& \\\n"; - print F "mv $wrk/$outDir/olaps/\$jobid.ovb.WORKING.gz $wrk/$outDir/olaps/\$jobid.ovb.gz \\\n"; - print F "&& \\\n"; - print F "mv $wrk/3-overlapcorrection/\$jobid.frgcorr.WORKING $wrk/3-overlapcorrection/\$jobid.frgcorr\n"; - } - close(F); - - system("chmod +x $wrk/$outDir/olap-from-seeds.sh"); - - - - - if (! -e "$wrk/$outDir/$asm.merStore") { - - # To prevent infinite loops -- stop now if the overmerry script - # exists. This will unfortunately make restarting from transient - # failures non-trivial. - # - # FAILUREHELPME - # - if (findOvermerryFailures($outDir, $ovmJobs) > 0) { - caFailure("overmerry failed. See *.err in $wrk/$outDir", undef); - } - - # Submit to the grid (or tell the user to do it), or just run - # things here - # - if (findOvermerrySuccess($outDir, $ovmJobs) == 0) { - if (getGlobal("useGrid") && getGlobal("ovlOnGrid")) { - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeOverlap = getGlobal("sgeMerOverlapSeed"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeOverlap -cwd -N mer_$asm$sgeName \\\n"; - $SGE .= " -t 1-$ovmJobs \\\n"; - $SGE .= " -j y -o $wrk/$outDir/seeds/\\\$TASK_ID.err \\\n"; - $SGE .= " $wrk/$outDir/overmerry.sh\n"; - - submitBatchJobs($SGE, "mer_$asm$sgeName"); - exit(0); - } else { - for (my $i=1; $i<=$ovmJobs; $i++) { - my $out = substr("0000" . $i, -4); - &scheduler::schedulerSubmit("$wrk/$outDir/overmerry.sh $i > $wrk/$outDir/seeds/$out.err 2>&1"); - } - - &scheduler::schedulerSetNumberOfProcesses(getGlobal("merOverlapperSeedConcurrency")); - &scheduler::schedulerFinish(); - } - } - - # Make sure everything finished ok. - # - # FAILUREHELPME - # - if (findOvermerryFailures($outDir, $ovmJobs) > 0) { - caFailure("overmerry failed. See *.err in $wrk/$outDir", undef); - } - - - if (runCommand($wrk, "find $wrk/$outDir/seeds \\( -name \\*ovm.gz -or -name \\*ovm \\) -print > $wrk/$outDir/$asm.merStore.list")) { - caFailure("failed to generate a list of all the overlap files", undef); - } - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/overlapStore"; - $cmd .= " -c $wrk/$outDir/$asm.merStore.WORKING"; - $cmd .= " -g $wrk/$asm.gkpStore"; - $cmd .= " -M " . getGlobal("ovlStoreMemory"); - $cmd .= " -L $wrk/$outDir/$asm.merStore.list"; - $cmd .= " > $wrk/$outDir/$asm.merStore.err 2>&1"; - - if (runCommand($wrk, $cmd)) { - caFailure("overlap store building failed", "$wrk/$outDir/$asm.merStore.err"); - } - - rename "$wrk/$outDir/$asm.merStore.WORKING", "$wrk/$outDir/$asm.merStore"; - - if (getGlobal("saveOverlaps") == 0) { - open(F, "< $wrk/$outDir/$asm.merStore.list"); - while () { - chomp; - unlink $_; - } - close(F); - } - - rmrf("$outDir/$asm.merStore.list"); - rmrf("$outDir/$asm.merStore.err"); - } - - - # To prevent infinite loops -- stop now if the overmerry script - # exists. This will unfortunately make restarting from transient - # failures non-trivial. - # - # FAILUREHELPME - # - if (findOlapFromSeedsFailures($outDir, $olpJobs) > 0) { - caFailure("olap-from-seeds failed. See *.err in $wrk/$outDir.", undef); - } - - # Submit to the grid (or tell the user to do it), or just run - # things here - # - if (findOlapFromSeedsSuccess($outDir, $ovmJobs) == 0) { - if (getGlobal("useGrid") && getGlobal("ovlOnGrid")) { - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeOverlap = getGlobal("sgeMerOverlapExtend"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeOverlap -cwd -N olp_$asm$sgeName \\\n"; - $SGE .= " -t 1-$olpJobs \\\n"; - $SGE .= " -j y -o $wrk/$outDir/olaps/\\\$TASK_ID.err \\\n"; - $SGE .= " $wrk/$outDir/olap-from-seeds.sh\n"; - - submitBatchJobs($SGE, "olp_$asm$sgeName"); - exit(0); - } else { - for (my $i=1; $i<=$olpJobs; $i++) { - my $out = substr("0000" . $i, -4); - &scheduler::schedulerSubmit("$wrk/$outDir/olap-from-seeds.sh $i > $wrk/$outDir/olaps/$out.err 2>&1"); - } - - &scheduler::schedulerSetNumberOfProcesses(getGlobal("merOverlapperExtendConcurrency")); - &scheduler::schedulerFinish(); - } - } - - # Make sure everything finished ok. - # - # FAILUREHELPME - # - if (findOlapFromSeedsFailures($outDir, $olpJobs) > 0) { - caFailure("olap-from-seeds failed. See *.err in $wrk/$outDir.", undef); - } -} -use strict; - -sub merTrim { - - return if (getGlobal("doMerBasedTrimming") == 0); - return if (getGlobal("doOverlapBasedTrimming") == 1); - return if (getGlobal("ovlOverlapper") eq "umd"); - return if (getGlobal("ovlOverlapper") eq "sand"); - - # Skip mer based trimming if it is done, or if the ovlStore already exists. - # - goto alldone if (-e "$wrk/0-overlaptrim/mertrim.success"); - goto alldone if (-d "$wrk/$asm.ovlStore"); - - system("mkdir $wrk/0-overlaptrim") if (! -d "$wrk/0-overlaptrim"); - system("mkdir $wrk/0-overlaptrim-overlap") if (! -d "$wrk/0-overlaptrim-overlap"); - - - if (! -e "$wrk/0-overlaptrim/$asm.merTrimLog") { - meryl(); - - my $merSize = getGlobal("obtMerSize"); - my $merComp = 0; # getGlobal("merCompression"); - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/merTrim \\\n"; - $cmd .= " -g $wrk/$asm.gkpStore \\\n"; - $cmd .= " -m $merSize \\\n"; - $cmd .= " -c $merComp \\\n"; - $cmd .= " -mc $wrk/0-mercounts/$asm-C-ms$merSize-cm$merComp \\\n"; - $cmd .= " -l $wrk/0-overlaptrim/$asm.merTrimLog \\\n"; - $cmd .= " > $wrk/0-overlaptrim/$asm.merTrim.err 2>&1\n"; - - stopBefore("initialTrim", $cmd); - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - caFailure("mer trimming failed", "$wrk/0-overlaptrim/$asm.merTrim.err"); - } - - touch("$wrk/0-overlaptrim/$asm.merTrimLog"); - } - - - - # Compute overlaps, if we don't have them already - # - if (! -e "$wrk/0-overlaptrim/$asm.obtStore") { - createOverlapJobs("trim"); - checkOverlap("trim"); - - # Sort the overlaps -- this also duplicates each overlap so that - # all overlaps for a fragment A are localized. - - if (runCommand("$wrk/0-overlaptrim", - "find $wrk/0-overlaptrim-overlap -follow \\( -name \\*ovb.gz -or -name \\*ovb \\) -print > $wrk/0-overlaptrim/$asm.obtStore.list")) { - caFailure("failed to generate a list of all the overlap files", undef); - } - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/overlapStore "; - $cmd .= " -O "; - $cmd .= " -c $wrk/0-overlaptrim/$asm.obtStore.BUILDING "; - $cmd .= " -g $wrk/$asm.gkpStore "; - $cmd .= " -M " . getGlobal('ovlStoreMemory'); - $cmd .= " -L $wrk/0-overlaptrim/$asm.obtStore.list"; - $cmd .= " > $wrk/0-overlaptrim/$asm.obtStore.err 2>&1"; - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - caFailure("failed to build the obt store", "$wrk/0-overlaptrim/$asm.obtStore.err"); - } - - rename "$wrk/0-overlaptrim/$asm.obtStore.BUILDING", "$wrk/0-overlaptrim/$asm.obtStore"; - - # Delete overlaps unless we're told to save them, or we need to dedup. - if ((getGlobal("saveOverlaps") == 0) && (getGlobal("doDeDuplication") == 0)) { - open(F, "< $wrk/0-overlaptrim/$asm.obtStore.list"); - while () { - chomp; - unlink $_; - } - close(F); - } - - rmrf("$wrk/0-overlaptrim/$asm.obtStore.list"); - rmrf("$wrk/0-overlaptrim/$asm.obtStore.err"); - } - - - - - if (! -e "$wrk/0-overlaptrim/$asm.overlapMask.err") { - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/overlapMask \\\n"; - $cmd .= " -gkp $wrk/$asm.gkpStore \\\n"; - $cmd .= " -ovs $wrk/0-overlaptrim/$asm.obtStore \\\n"; - $cmd .= " > $wrk/0-overlaptrim/$asm.overlapMask.err 2>&1"; - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - caFailure("mer trim masking failed", "$wrk/0-overlaptrim/$asm.overlapMask.err"); - } - } - - - if (getGlobal("doChimeraDetection") ne 'off') { - if ((! -e "$wrk/0-overlaptrim/$asm.chimera.report") && - (! -e "$wrk/0-overlaptrim/$asm.chimera.report.bz2")) { - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/chimera \\\n"; - $cmd .= " -gkp $wrk/$asm.gkpStore \\\n"; - $cmd .= " -ovs $wrk/0-overlaptrim/$asm.obtStore \\\n"; - $cmd .= " -summary $wrk/0-overlaptrim/$asm.chimera.summary \\\n"; - $cmd .= " -report $wrk/0-overlaptrim/$asm.chimera.report \\\n"; - $cmd .= " -mininniepair 0 -minoverhanging 0 \\\n" if (getGlobal("doChimeraDetection") eq "aggressive"); - $cmd .= " > $wrk/0-overlaptrim/$asm.chimera.err 2>&1"; - - stopBefore("chimeraDetection", $cmd); - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - rename "$wrk/0-overlaptrim/$asm.chimera.report", "$wrk/0-overlaptrim/$asm.chimera.report.FAILED"; - caFailure("chimera cleaning failed", "$wrk/0-overlaptrim/$asm.chimera.err"); - } - } - } - - - - touch("$wrk/0-overlaptrim/mertrim.success"); - - alldone: - stopAfter("overlapBasedTrimming"); - stopAfter("OBT"); -} - -1; -use strict; - - -sub createOverlapJobs($) { - my $hold = getGlobal("ovlOverlapper"); - print "Creating overlap jobs:$hold\n"; - my $isTrim = shift @_; - - return if (-d "$wrk/$asm.ovlStore"); - - caFailure("overlapper detected no fragments", undef) if ($numFrags == 0); - caFailure("overlapper needs to know if trimming or assembling", undef) if (!defined($isTrim)); - - my $ovlThreads = getGlobal("ovlThreads"); - my $ovlMemory = getGlobal("ovlMemory"); - - my $outDir = "1-overlapper"; - my $ovlOpt = ""; - my $merSize = getGlobal("ovlMerSize"); - my $merComp = getGlobal("merCompression"); - - if ($isTrim eq "trim") { - $outDir = "0-overlaptrim-overlap"; - $ovlOpt = "-G"; - $merSize = getGlobal("obtMerSize"); - } - - system("mkdir $wrk/$outDir") if (! -d "$wrk/$outDir"); - - return if (-e "$wrk/$outDir/overlap.sh"); - - # umd overlapper here - # - if (getGlobal("ovlOverlapper") eq "umd") { - # For Sergey: - # - # UMDoverlapper() needs to dump the gkpstore, run UMD, build - # the ovlStore and update gkpStore with new clear ranges. - # The explicit call to UMDoverlapper in main() can then go away. - # OBT is smart enough to disable itself if umd is enabled. - # - UMDoverlapper(); - return; - } - - if (getGlobal("ovlOverlapper") eq "sand") { - print "RUNNING SAND\n"; - # SANDoverlapper() needs to dump the gkpstore, run SAND, build - # the ovlStore. - # OBT is smart enough to disable itself if sand is enabled. - SANDoverlapper(); - return; - } - my $h = getGlobal("ovlOverlapper"); - print "SKIPPED RUNNING SAND: $h\n"; - - # mer overlapper here - # - if ((($isTrim eq "trim") && (getGlobal("obtOverlapper") eq "mer")) || - (($isTrim ne "trim") && (getGlobal("ovlOverlapper") eq "mer"))) { - merOverlapper($isTrim); - return; - } - - # To prevent infinite loops -- stop now if the overlap script - # exists. This will unfortunately make restarting from transient - # failures non-trivial. - # - # FAILUREHELPME - # - caFailure("overlapper failed\nmanual restart needed to prevent infinite loops\nremove file '$wrk/$outDir/overlap.sh'", undef) if (-e "$wrk/$outDir/overlap.sh"); - - meryl(); - - # We make a giant job array for this -- we need to know hashBeg, - # hashEnd, refBeg and refEnd -- from that we compute batchName - # and jobName. - # - # ovlopts.pl returns the batch name ($batchName), the job name - # ($jobName) and options to pass to overlap (-h $hashBeg-$hashEnd - # -r $refBeg-$refEnd). From those, we can construct the command - # to run. - # - open(F, "> $wrk/$outDir/overlap.sh") or caFailure("can't open '$wrk/$outDir/overlap.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "perl='/usr/bin/env perl'\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "bat=`\$perl $wrk/$outDir/ovlopts.pl bat \$jobid`\n"; - print F "job=`\$perl $wrk/$outDir/ovlopts.pl job \$jobid`\n"; - print F "opt=`\$perl $wrk/$outDir/ovlopts.pl opt \$jobid`\n"; - print F "jid=\$\$\n"; - print F "\n"; - print F "if [ ! -d $wrk/$outDir/\$bat ]; then\n"; - print F " mkdir $wrk/$outDir/\$bat\n"; - print F "fi\n"; - print F "\n"; - print F "if [ -e $wrk/$outDir/\$bat/\$job.ovb.gz ]; then\n"; - print F " echo Job previously completed successfully.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "if [ x\$bat = x ]; then\n"; - print F " echo Error: Job index out of range.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - - print F getBinDirectoryShellCode(); - - print F "\$bin/overlap $ovlOpt -M $ovlMemory -t $ovlThreads \\\n"; - print F " \$opt \\\n"; - print F " -k $merSize \\\n"; - print F " -k $wrk/0-mercounts/$asm.nmers.obt.fasta \\\n" if ($isTrim eq "trim"); - print F " -k $wrk/0-mercounts/$asm.nmers.ovl.fasta \\\n" if ($isTrim ne "trim"); - print F " -o $wrk/$outDir/\$bat/\$job.ovb.WORKING.gz \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F "&& \\\n"; - print F "mv $wrk/$outDir/\$bat/\$job.ovb.WORKING.gz $wrk/$outDir/\$bat/\$job.ovb.gz\n"; - print F "\n"; - print F "exit 0\n"; - close(F); - - system("chmod +x $wrk/$outDir/overlap.sh"); - - # We segment the hash into $numFrags / $ovlHashBlockSize pieces, - # and the stream into $numFrags / $ovlRefBlockSize pieces. Put - # all runs for the same hash into a subdirectory. - - my ($hashBeg, $hashEnd, $refBeg, $refEnd) = (getGlobal("ovlStart"), 0, 1, 0); - - my $ovlHashBlockSize = getGlobal("ovlHashBlockSize"); - my $ovlRefBlockSize = getGlobal("ovlRefBlockSize"); - - # Saved for output to ovlopts.pl - my @bat; - my @job; - my @opt; - - # Number of jobs per batch directory - # - my $batchMax = 200; - my $batchSize = 0; - my $batch = 1; - - my $batchName = substr("0000000000" . $batch, -10); - - while ($hashBeg < $numFrags) { - $hashEnd = $hashBeg + $ovlHashBlockSize - 1; - $hashEnd = $numFrags if ($hashEnd > $numFrags); - $refBeg = 0; - $refEnd = 0; - - while ($refBeg < $hashEnd) { - $refEnd = $refBeg + $ovlRefBlockSize - 1; - $refEnd = $numFrags if ($refEnd > $numFrags); - - #print STDERR "hash: $hashBeg-$hashEnd ref: $refBeg-$refEnd\n"; - - my $jobName; - $jobName .= "h" . substr("0000000000" . $hashBeg, -10); - $jobName .= "r" . substr("0000000000" . $refBeg, -10); - - push @bat, "$batchName"; - push @job, "$jobName"; - push @opt, "-h $hashBeg-$hashEnd -r $refBeg-$refEnd"; - - $refBeg = $refEnd + 1; - - $batchSize++; - if ($batchSize >= $batchMax) { - $batch++; - $batchName = substr("0000000000" . $batch, -10); - $batchSize = 0; - } - } - - $hashBeg = $hashEnd + 1; - } - - open(SUB, "> $wrk/$outDir/ovlopts.pl") or caFailure("failed to open '$wrk/$outDir/ovlopts.pl'", undef); - print SUB "#!/usr/bin/env perl\n"; - print SUB "use strict;\n"; - print SUB "my \@bat = (\n"; foreach my $b (@bat) { print SUB "\"$b\",\n"; } print SUB ");\n"; - print SUB "my \@job = (\n"; foreach my $b (@job) { print SUB "\"$b\",\n"; } print SUB ");\n"; - print SUB "my \@opt = (\n"; foreach my $b (@opt) { print SUB "\"$b\",\n"; } print SUB ");\n"; - print SUB "my \$idx = int(\$ARGV[1]) - 1;\n"; - print SUB "if (\$ARGV[0] eq \"bat\") {\n"; - print SUB " print \"\$bat[\$idx]\";\n"; - print SUB "} elsif (\$ARGV[0] eq \"job\") {\n"; - print SUB " print \"\$job[\$idx]\";\n"; - print SUB "} elsif (\$ARGV[0] eq \"opt\") {\n"; - print SUB " print \"\$opt[\$idx]\";\n"; - print SUB "} else {\n"; - print SUB " print STDOUT \"Got '\$ARGV[0]' and don't know what to do!\\n\";\n"; - print SUB " print STDERR \"Got '\$ARGV[0]' and don't know what to do!\\n\";\n"; - print SUB " die;\n"; - print SUB "}\n"; - print SUB "exit(0);\n"; - close(SUB); - - open(SUB, "> $wrk/$outDir/ovljobs.dat") or caFailure("failed to open '$wrk/$outDir/ovljobs.dat'", undef); - foreach my $b (@bat) { print SUB "$b "; } print SUB "\n"; - foreach my $b (@job) { print SUB "$b "; } print SUB "\n"; - close(SUB); - - - my $jobs = scalar(@opt); - - # Submit to the grid (or tell the user to do it), or just run - # things here - # - if (getGlobal("useGrid") && getGlobal("ovlOnGrid")) { - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeOverlap = getGlobal("sgeOverlap"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeOverlap -cwd -N ovl_$asm$sgeName \\\n"; - $SGE .= " -t 1-$jobs \\\n"; - $SGE .= " -j y -o $wrk/$outDir/overlap.\\\$TASK_ID.out \\\n"; - $SGE .= " $wrk/$outDir/overlap.sh\n"; - - submitBatchJobs($SGE, "ovl_$asm$sgeName"); - exit(0); - } else { - for (my $i=1; $i<=$jobs; $i++) { - my $out = substr("0000" . $i, -4); - &scheduler::schedulerSubmit("$wrk/$outDir/overlap.sh $i > $wrk/$outDir/overlap.$out.out 2>&1"); - } - - &scheduler::schedulerSetNumberOfProcesses(getGlobal("ovlConcurrency")); - &scheduler::schedulerFinish(); - } -} - -1; -use strict; - -sub createOverlapStore { - - goto alldone if (-d "$wrk/$asm.ovlStore"); - - if (runCommand($wrk, "find $wrk/1-overlapper \\( -name \\*ovb.gz -or -name \\*ovb \\) -print > $wrk/$asm.ovlStore.list")) { - caFailure("failed to generate a list of all the overlap files", undef); - } - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/overlapStore "; - $cmd .= " -c $wrk/$asm.ovlStore.BUILDING "; - $cmd .= " -g $wrk/$asm.gkpStore "; - - if (defined(getGlobal("closureOverlaps"))){ - $cmd .= " -i " . getGlobal("closureOverlaps"); - } - - $cmd .= " -M " . getGlobal("ovlStoreMemory"); - $cmd .= " -L $wrk/$asm.ovlStore.list "; - $cmd .= " > $wrk/$asm.ovlStore.err 2>&1"; - - if (runCommand($wrk, $cmd)) { - caFailure("failed to create the overlap store", "$wrk/$asm.ovlStore.err"); - } - - rename "$wrk/$asm.ovlStore.BUILDING", "$wrk/$asm.ovlStore"; - - if (getGlobal("saveOverlaps") == 0) { - open(F, "< $wrk/$asm.ovlStore.list"); - while () { - chomp; - unlink $_; - } - close(F); - } - - rmrf("$wrk/$asm.ovlStore.list"); - rmrf("$wrk/$asm.ovlStore.err"); - - alldone: - stopAfter("overlapper"); -} - -1; -use strict; - -sub createPostUnitiggerConsensusJobs (@) { - my $consensusType = getGlobal("consensus"); - - return if (-e "$wrk/5-consensus/consensus.sh"); - - if (! -e "$wrk/5-consensus/$asm.partitioned") { - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/gatekeeper "; - $cmd .= " -P $wrk/4-unitigger/$asm.partitioning "; - $cmd .= " $wrk/$asm.gkpStore "; - $cmd .= "> $wrk/5-consensus/$asm.partitioned.err 2>&1"; - if (runCommand("$wrk/5-consensus", $cmd)) { - caFailure("failed to partition the fragStore", "$wrk/5-consensus/$asm.partitioned.err"); - } - - touch "$wrk/5-consensus/$asm.partitioned"; - } - - my $jobs = 0; - - open(F, "< $wrk/4-unitigger/$asm.partitioningInfo") or caFailure("can't open '$wrk/4-unitigger/$asm.partitioningInfo'", undef); - while () { - if (m/Partition\s+(\d+)\s+has\s+(\d+)\s+unitigs\sand\s+(\d+)\s+fragments./) { - $jobs = $1; - } - } - close(F); - - open(F, "> $wrk/5-consensus/consensus.sh") or caFailure("can't open '$wrk/5-consensus/consensus.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "if [ \$jobid -gt $jobs ]; then\n"; - print F " echo Error: Only $jobs partitions, you asked for \$jobid.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %03d \$jobid`\n"; - print F "\n"; - print F "if [ -e $wrk/5-consensus/${asm}_\$jobid.success ] ; then\n"; - print F " exit 0\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - - print F getBinDirectoryShellCode(); - - if ($consensusType eq "cns") { - print F "\$bin/utgcns \\\n"; - print F " -g $wrk/$asm.gkpStore \\\n"; - print F " -t $wrk/$asm.tigStore 1 \$jobid \\\n"; - print F " > $wrk/5-consensus/${asm}_\$jobid.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "touch $wrk/5-consensus/${asm}_\$jobid.success\n"; - } elsif ($consensusType eq "seqan") { - print F "\$bin/SeqAn_CNS \\\n"; - print F " -G $wrk/$asm.gkpStore \\\n"; - print F " -c \$cgbfile \\\n"; - print F " -s \$bin/graph_consensus \\\n"; - print F " -w $wrk/5-consensus/ \\\n"; - print F " -o $wrk/5-consensus/${asm}_\$jobid.cgi \\\n"; - print F " > $wrk/5-consensus/${asm}_\$jobid.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "touch $wrk/5-consensus/${asm}_\$jobid.success\n"; - } else { - caFailure("unknown consensus type $consensusType; should be 'cns' or 'seqan'", undef); - } - close(F); - - chmod 0755, "$wrk/5-consensus/consensus.sh"; - - if (getGlobal("useGrid") && getGlobal("cnsOnGrid")) { - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeConsensus = getGlobal("sgeConsensus"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeConsensus -cwd -N utg_$asm$sgeName "; - $SGE .= "-t 1-$jobs "; - $SGE .= "-j y -o /dev/null "; - $SGE .= "$wrk/5-consensus/consensus.sh\n"; - - submitBatchJobs($SGE, "utg_$asm$sgeName"); - exit(0); - } else { - for (my $i=1; $i<=$jobs; $i++) { - &scheduler::schedulerSubmit("$wrk/5-consensus/consensus.sh $i > /dev/null 2>&1"); - } - - &scheduler::schedulerSetNumberOfProcesses(getGlobal("cnsConcurrency")); - &scheduler::schedulerFinish(); - } -} - - - -sub postUnitiggerConsensus () { - - system("mkdir $wrk/5-consensus") if (! -d "$wrk/5-consensus"); - - goto alldone if (-e "$wrk/5-consensus/consensus.success"); - - createPostUnitiggerConsensusJobs(); - - # - # Check that consensus finished properly - # - - my $failedJobs = 0; - - open(F, "< $wrk/4-unitigger/$asm.partitioningInfo") or caFailure("can't open '$wrk/4-unitigger/$asm.partitioningInfo'", undef); - while () { - if (m/Partition\s+(\d+)\s+has\s+(\d+)\s+unitigs\sand\s+(\d+)\s+fragments./) { - my $id = substr("000" . $1, -3); - - if (! -e "$wrk/5-consensus/${asm}_$id.success") { - print STDERR "$wrk/5-consensus/${asm}_$id failed -- no .success!\n"; - $failedJobs++; - } - } - } - close(F); - - # FAILUREHELPME - - caFailure("$failedJobs consensusAfterUnitigger jobs failed; remove 5-consensus/consensus.sh to try again", undef) if ($failedJobs); - - # All jobs finished. Remove the partitioning from the gatekeeper - # store. The gatekeeper store is currently (5 Mar 2007) tolerant - # of someone asking for a partition that isn't there -- it'll - # fallback to the complete store. So, if you happen to want to - # run consensus again, it'll still work, just a little slower. - # - # (This block appears in both createPostUnitiggerConsensus.pl and createConsensusJobs.pl) - # - system("rm -f $wrk/$asm.gkpStore/frg.[0-9][0-9][0-9]"); - system("rm -f $wrk/$asm.gkpStore/hps.[0-9][0-9][0-9]"); - system("rm -f $wrk/$asm.gkpStore/qlt.[0-9][0-9][0-9]"); - system("rm -f $wrk/$asm.gkpStore/src.[0-9][0-9][0-9]"); - - touch("$wrk/5-consensus/consensus.success"); - - alldone: - stopAfter("utgcns"); - stopAfter("consensusAfterUnitigger"); -} - -1; -use strict; - -sub runMeryl ($$$$$$) { - my $merSize = shift @_; - my $merComp = shift @_; - my $merCanonical = shift @_; - my $merThresh = shift @_; - my $merScale = 1.0; - my $merType = shift @_; - my $merDump = shift @_; - - my $bin = getBinDirectory(); - my $cmd; - - # The fasta file we should be creating. - my $ffile = "$wrk/0-mercounts/$asm.nmers.$merType.fasta"; - - if ($merThresh =~ m/auto\s*\*\s*(\S+)/) { - $merThresh = "auto"; - $merScale = $1; - } - - if ($merThresh =~ m/auto\s*\/\s*(\S+)/) { - $merThresh = "auto"; - $merScale = 1.0 / $1; - } - - if (($merThresh ne "auto") && ($merThresh == 0)) { - touch $ffile; - return; - } - - #if (-e $ffile) { - # print STDERR "runMeryl() would have returned.\n"; - #} - - print STDERR "$ffile\n"; - - if (merylVersion() eq "Mighty") { - - # Use the better meryl! This is straightforward. We count, - # then we dump. - - # Intermediate file - my $ofile = "$wrk/0-mercounts/$asm$merCanonical-ms$merSize-cm$merComp"; - - if (! -e "$ofile.mcdat") { - my $merylMemory = getGlobal("merylMemory"); - my $merylThreads = getGlobal("merylThreads"); - - if ($merylMemory !~ m/^-/) { - $merylMemory = "-memory $merylMemory"; - } - - # A small optimization we could do if (a) not mer - # overlapper, (b) not auto threshold: only save mer - # counts above the smaller (of obt & ovl thresholds). - # It's complicated, and potentially screws up restarts - # (if the threshold is changed after meryl is finished, - # for example). It's only useful on large assemblies, - # which we usually assume you know what's going on - # anyway. - # - # N.B. the mer overlapper NEEDS all mer counts 2 and - # higher. - - $cmd = "$bin/meryl "; - $cmd .= " -B $merCanonical -v -m $merSize $merylMemory -threads $merylThreads -c $merComp "; - $cmd .= " -L 2 "; - $cmd .= " -s $wrk/$asm.gkpStore:chain "; # Or 'latest' to get the original version - $cmd .= " -o $ofile "; - $cmd .= "> $wrk/0-mercounts/meryl.err 2>&1"; - - stopBefore("meryl", $cmd); - - if (runCommand("$wrk/0-mercounts", $cmd)) { - caFailure("meryl failed", "$wrk/0-mercounts/meryl.err"); - } - unlink "$wrk/0-mercounts/meryl.err"; - } - - if ($merThresh eq "auto") { - if (! -e "$ofile.estMerThresh.out") { - $cmd = "$bin/estimate-mer-threshold "; - $cmd .= " -g $wrk/$asm.gkpStore:chain "; # Or 'latest' to get the original version - $cmd .= " -m $ofile "; - $cmd .= " > $ofile.estMerThresh.out "; - $cmd .= "2> $ofile.estMerThresh.err"; - - stopBefore("meryl", $cmd); - - if (runCommand("$wrk/0-mercounts", $cmd)) { - rename "$ofile.estMerThresh.out", "$ofile.estMerThresh.out.FAILED"; - caFailure("estimate-mer-threshold failed", "$ofile.estMerThresh.err"); - } - } - - open(F, "< $ofile.estMerThresh.out") or caFailure("failed to read estimated mer threshold from '$ofile.estMerThresh.out'", undef); - $merThresh = ; - $merThresh = int($merThresh * $merScale); - close(F); - - if ($merThresh == 0) { - caFailure("failed to estimate a mer threshold", "$ofile.estMerThresh.err"); - } - } - - # We only need the ascii dump if we're doing overlapper, mer - # overlapper reads meryl directly. - # - if ($merDump) { - if (! -e $ffile) { - $cmd = "$bin/meryl "; - $cmd .= "-Dt -n $merThresh "; - $cmd .= "-s $ofile "; - $cmd .= "> $ffile "; - $cmd .= "2> $ffile.err "; - - if (runCommand("$wrk/0-mercounts", $cmd)) { - unlink $ffile; - caFailure("meryl failed to dump frequent mers", "$ffile.err"); - } - unlink "$ffile.err"; - } - } - } elsif (merylVersion() eq "CA") { - - # Sigh. The old meryl. Not as easy. If we assume the - # process, in particular that the Ovl threshold is less than - # the Obt threshold, and that we have already computed the - # Ovl mers, we could filter the Ovl mers to get the Obt mers. - # But that's tough, especially if we allow mer compression. - - my $merSkip = 10; - - # Intermediate file - my $ofile = "$wrk/0-mercounts/$asm-ms$merSize-mt$merThresh-mk$merSkip.$merType.fasta"; - - if ($merComp > 0) { - print STDERR "ERROR! merCompression not supported without installing kmer\n"; - print STDERR " (http://sourceforge.net/projects/kmer/).\n"; - print STDERR "If you have installed kmer, then your build is broken, as I\n"; - print STDERR "did not find the correct 'meryl' (meryl -V should have said Mighty).\n"; - die; - } - - if ($merCanonical ne "-C") { - print STDERR "ERROR! mer overlapper not supported without installing kmer\n"; - print STDERR " (http://sourceforge.net/projects/kmer/).\n"; - print STDERR "If you have installed kmer, then your build is broken, as I\n"; - print STDERR "did not find the correct 'meryl' (meryl -V should have said Mighty).\n"; - die; - } - - if ($merThresh eq "auto") { - print STDERR "WARNING! auto picking a mer threshold not supported without installing kmer\n"; - print STDERR " (http://sourceforge.net/projects/kmer/).\n"; - print STDERR "Using historical defaults.\n"; - - if ($merType eq "obt") { - $merThresh = 1000; - } else { - $merThresh = 500; - } - } - - if (! -e $ofile) { - my $mt = $merThresh / $merSkip; - - $cmd = "$bin/meryl "; - $cmd .= "-s $wrk/$asm.gkpStore -m $merSize -n $mt -K $merSkip "; - $cmd .= " -o $ofile"; - $cmd .= "> $wrk/0-mercounts/meryl.err 2>&1"; - - stopBefore("meryl", $cmd); - - if (runCommand("$wrk/0-mercounts", $cmd)) { - unlink $ofile; - caFailure("meryl failed to dump frequent mers", "$wrk/0-mercounts/meryl.err"); - } - unlink "$wrk/0-mercounts/meryl.err"; - } - - symlink($ofile, $ffile) if (! -e $ffile); - } else { - caFailure("unknown meryl version '" . merylVersion() . "'", ""); - } - - return($merThresh); -} - -sub meryl { - system("mkdir $wrk/0-mercounts") if (! -d "$wrk/0-mercounts"); - - if (getGlobal("ovlOverlapper") eq "umd") { - caFailure("meryl attempted to compute mer counts for the umd overlapper", undef); - } - - if (getGlobal("ovlOverlapper") eq "sand") { - caFailure("meryl attempted to compute mer counts for the sand overlapper", undef); - } - - my $ovlc = 0; # No compression, unless we're the mer overlapper - my $obtc = 0; - - my $ovlC = "-C"; # Canonical, unless we're the mer overlapper - my $obtC = "-C"; # (except the mer overlapper now wants canonical) - - my $ovlD = 1; # Dump, unless we're the mer overlapper - my $obtD = 1; - - my $obtT = 0; # New threshold - my $ovlT = 0; - - # If the mer overlapper, we don't care about single-copy mers, - # only mers that occur in two or more frags (kind of important - # for large assemblies). - - if (getGlobal("ovlOverlapper") eq "mer") { - $ovlc = getGlobal("merCompression"); - $ovlC = "-C"; - $ovlD = 0; - } - if (getGlobal("obtOverlapper") eq "mer") { - $obtc = getGlobal("merCompression"); - $obtC = "-C"; - $obtD = 0; - } - - $ovlT = runMeryl(getGlobal('ovlMerSize'), $ovlc, $ovlC, getGlobal("ovlMerThreshold"), "ovl", $ovlD); - $obtT = runMeryl(getGlobal('obtMerSize'), $obtc, $obtC, getGlobal("obtMerThreshold"), "obt", $obtD) if (getGlobal("doOverlapBasedTrimming") || getGlobal("doMerBasedTrimming")); - - if ((getGlobal("obtMerThreshold") ne $obtT) && (getGlobal("doOverlapBasedTrimming"))) { - print STDERR "Reset OBT mer threshold from ", getGlobal("obtMerThreshold"), " to $obtT.\n"; - setGlobal("obtMerThreshold", $obtT); - } - - if (getGlobal("ovlMerThreshold") ne $ovlT) { - print STDERR "Reset OVL mer threshold from ", getGlobal("ovlMerThreshold"), " to $ovlT.\n"; - setGlobal("ovlMerThreshold", $ovlT); - } -} - -1; -use strict; - - - -sub overlapCorrection { - my $cleanup = 1; - - return if (getGlobal("doFragmentCorrection") == 0); - - return if (-e "$wrk/3-overlapcorrection/$asm.erates.updated"); - return if (-e "$wrk/$asm.ovlStore/corrected"); - - system("mkdir $wrk/3-overlapcorrection") if (! -e "$wrk/3-overlapcorrection"); - - if ((getGlobal("ovlOverlapper") eq "ovl") && (! -e "$wrk/3-overlapcorrection/frgcorr.sh")) { - my $batchSize = getGlobal("frgCorrBatchSize"); - my $numThreads = getGlobal("frgCorrThreads"); - my $jobs = int($numFrags / ($batchSize-1)) + 1; - - open(F, "> $wrk/3-overlapcorrection/frgcorr.sh") or caFailure("failed to write to '$wrk/3-overlapcorrection/frgcorr.sh'", undef); - print F "#!" . getGlobal("shell") . "\n\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %04d \$jobid`\n"; - print F "minid=`expr \$jobid \\* $batchSize - $batchSize + 1`\n"; - print F "maxid=`expr \$jobid \\* $batchSize`\n"; - print F "runid=\$\$\n"; - print F "\n"; - print F "if [ \$maxid -gt $numFrags ] ; then\n"; - print F " maxid=$numFrags\n"; - print F "fi\n"; - print F "if [ \$minid -gt \$maxid ] ; then\n"; - print F " echo Job partitioning error -- minid=\$minid maxid=\$maxid.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - print F "\n"; - print F "if [ -e $wrk/3-overlapcorrection/\$jobid.frgcorr ] ; then\n"; - print F " echo Job previously completed successfully.\n"; - print F " exit\n"; - print F "fi\n"; - - print F getBinDirectoryShellCode(); - - print F "\$bin/correct-frags \\\n"; - print F " -t $numThreads \\\n"; - print F " -S $wrk/$asm.ovlStore \\\n"; - print F " -o $wrk/3-overlapcorrection/\$jobid.frgcorr.WORKING \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " \$minid \$maxid \\\n"; - print F "&& \\\n"; - print F "mv $wrk/3-overlapcorrection/\$jobid.frgcorr.WORKING $wrk/3-overlapcorrection/\$jobid.frgcorr\n"; - - close(F); - - chmod 0755, "$wrk/3-overlapcorrection/frgcorr.sh"; - - if (getGlobal("frgCorrOnGrid") && getGlobal("useGrid")) { - # Run the correction job on the grid. - - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeFragmentCorrection = getGlobal("sgeFragmentCorrection"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeFragmentCorrection -cwd -N frg_$asm$sgeName "; - $SGE .= "-t 1-$jobs "; - $SGE .= " -j y -o $wrk/3-overlapcorrection/\\\$TASK_ID.err "; - $SGE .= "$wrk/3-overlapcorrection/frgcorr.sh\n"; - - submitBatchJobs($SGE, "frg_$asm$sgeName"); - exit(0); - } else { - # Run the correction job right here, right now. - - for (my $i=1; $i<=$jobs; $i++) { - my $out = substr("0000" . $i, -4); - &scheduler::schedulerSubmit("$wrk/3-overlapcorrection/frgcorr.sh $i > $wrk/3-overlapcorrection/$out.err 2>&1"); - } - - &scheduler::schedulerSetNumberOfProcesses($global{"frgCorrConcurrency"}); - &scheduler::schedulerFinish(); - } - } - - # - # MERGE CORRECTION - # - - if (! -e "$wrk/3-overlapcorrection/$asm.frgcorr") { - my $batchSize = (getGlobal("ovlOverlapper") eq "mer") ? getGlobal("merOverlapperExtendBatchSize") : getGlobal("frgCorrBatchSize"); - my $jobs = int($numFrags / ($batchSize-1)) + 1; - my $failedJobs = 0; - - open(F, "> $wrk/3-overlapcorrection/cat-corrects.frgcorrlist"); - for (my $i=1; $i<=$jobs; $i++) { - my $jobid = substr("0000" . $i, -4); - - if (! -e "$wrk/3-overlapcorrection/$jobid.frgcorr") { - print STDERR "Fragment correction job $jobid failed.\n"; - $failedJobs++; - } - - print F "$wrk/3-overlapcorrection/$jobid.frgcorr\n"; - } - close(F); - - # FAILUREHELPME - - if ($failedJobs) { - if (getGlobal("ovlOverlapper") eq "ovl") { - caFailure("$failedJobs overlap jobs failed; remove $wrk/3-overlapcorrection/frgcorr.sh to try again", undef); - } else { - caFailure("$failedJobs overlap jobs failed due to mer overlap seed extension", undef); - } - } - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/cat-corrects "; - $cmd .= "-L $wrk/3-overlapcorrection/cat-corrects.frgcorrlist "; - $cmd .= "-o $wrk/3-overlapcorrection/$asm.frgcorr "; - $cmd .= "> $wrk/3-overlapcorrection/cat-corrects.err 2>&1"; - - if (runCommand("$wrk/3-overlapcorrection", $cmd)) { - rename "$wrk/3-overlapcorrection/$asm.frgcorr", "$wrk/3-overlapcorrection/$asm.frgcorr.FAILED"; - caFailure("failed to concatenate the fragment corrections", "$wrk/3-overlapcorrection/cat-corrects.err"); - } - - if ($cleanup) { - open(F, "< $wrk/3-overlapcorrection/cat-corrects.frgcorrlist"); - while () { - if (m/^(.*)\/([0-9]*).frgcorr/) { - #unlink "$1/$2.frgcorr"; - #unlink "$1/$2.err"; - my $sge = int($2); - #unlink "$1/$sge.err"; - } - } - close(F); - #unlink "$wrk/3-overlapcorrection/cat-corrects.frgcorrlist"; - #unlink "$wrk/3-overlapcorrection/cat-corrects.err"; - } - } - - # - # CREATE OVERLAP CORRECTION - # - - if (! -e "$wrk/3-overlapcorrection/ovlcorr.sh") { - my $ovlCorrBatchSize = getGlobal("ovlCorrBatchSize"); - my $jobs = int($numFrags / ($ovlCorrBatchSize-1)) + 1; - - open(F, "> $wrk/3-overlapcorrection/ovlcorr.sh") or caFailure("failed to write '$wrk/3-overlapcorrection/ovlcorr.sh'", undef); - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "if [ \$jobid -gt $jobs ] ; then\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %04d \$jobid`\n"; - print F "frgBeg=`expr \$jobid \\* $ovlCorrBatchSize - $ovlCorrBatchSize + 1`\n"; - print F "frgEnd=`expr \$jobid \\* $ovlCorrBatchSize`\n"; - print F "if [ \$frgEnd -ge $numFrags ] ; then\n"; - print F " frgEnd=$numFrags\n"; - print F "fi\n"; - print F "frgBeg=`printf %08d \$frgBeg`\n"; - print F "frgEnd=`printf %08d \$frgEnd`\n"; - - print F getBinDirectoryShellCode(); - - print F "if [ ! -e $wrk/3-overlapcorrection/\$jobid.erate ] ; then\n"; - print F " \$bin/correct-olaps \\\n"; - print F " -S $wrk/$asm.ovlStore \\\n"; - print F " -e $wrk/3-overlapcorrection/\$jobid.erate.WORKING \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " $wrk/3-overlapcorrection/$asm.frgcorr \\\n"; - print F " \$frgBeg \$frgEnd \\\n"; - print F " && \\\n"; - print F " mv $wrk/3-overlapcorrection/\$jobid.erate.WORKING $wrk/3-overlapcorrection/\$jobid.erate\n"; - print F "fi\n"; - close(F); - - chmod 0755, "$wrk/3-overlapcorrection/ovlcorr.sh"; - - if (getGlobal("ovlCorrOnGrid") && getGlobal("useGrid")) { - # Run the correction job on the grid. - - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeOverlapCorrection = getGlobal("sgeOverlapCorrection"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeOverlapCorrection -cwd -N ovc_$asm$sgeName "; - $SGE .= "-t 1-$jobs "; - $SGE .= " -j y -o $wrk/3-overlapcorrection/\\\$TASK_ID.err "; - $SGE .= "$wrk/3-overlapcorrection/ovlcorr.sh\n"; - - submitBatchJobs($SGE, "ovc_$asm$sgeName"); - exit(0); - } else { - # Run the correction job right here, right now. - - for (my $i=1; $i<=$jobs; $i++) { - my $out = substr("0000" . $i, -4); - &scheduler::schedulerSubmit("$wrk/3-overlapcorrection/ovlcorr.sh $i > $wrk/3-overlapcorrection/$out.err 2>&1"); - } - - &scheduler::schedulerSetNumberOfProcesses($global{"ovlCorrConcurrency"}); - &scheduler::schedulerFinish(); - } - } - - # - # APPLY OVERLAP CORRECTION - # - - if (! -e "$wrk/3-overlapcorrection/$asm.erates.updated") { - my $ovlCorrBatchSize = getGlobal("ovlCorrBatchSize"); - my $bin = getBinDirectory(); - my $failedJobs = 0; - my $jobs = int($numFrags / ($ovlCorrBatchSize-1)) + 1; - my $cmd; - - open(F, "> $wrk/3-overlapcorrection/cat-erates.eratelist"); - for (my $i=1; $i<=$jobs; $i++) { - my $jobid = substr("0000" . $i, -4); - - if (! -e "$wrk/3-overlapcorrection/$jobid.erate") { - print STDERR "Overlap correction job $i ($wrk/3-overlapcorrection/$jobid) failed.\n"; - $failedJobs++; - } - - print F "$wrk/3-overlapcorrection/$jobid.erate\n"; - } - close(F); - - # FAILUREHELPME - - if ($failedJobs) { - caFailure("$failedJobs overlap correction jobs failed; remove $wrk/3-overlapcorrection/ovlcorr.sh (or run by hand) to try again", undef); - } - - #unlink "$wrk/3-overlapcorrection/$asm.frgcorr" if ($cleanup); - - $cmd = "$bin/cat-erates "; - $cmd .= "-L $wrk/3-overlapcorrection/cat-erates.eratelist "; - $cmd .= "-o $wrk/3-overlapcorrection/$asm.erates "; - $cmd .= "> $wrk/3-overlapcorrection/cat-erates.err 2>&1"; - if (runCommand("$wrk/3-overlapcorrection", $cmd)) { - rename "$wrk/3-overlapcorrection/$asm.erates", "$wrk/3-overlapcorrection/$asm.erates.FAILED"; - caFailure("failed to concatenate the overlap erate corrections", "$wrk/3-overlapcorrection/cat-erates.err"); - } - - $cmd = "$bin/overlapStore "; - $cmd .= " -u $wrk/$asm.ovlStore "; - $cmd .= " $wrk/3-overlapcorrection/$asm.erates"; - $cmd .= "> $wrk/3-overlapcorrection/overlapStore-update-erates.err 2>&1"; - if (runCommand("$wrk/3-overlapcorrection", $cmd)) { - caFailure("failed to apply the overlap corrections", "$wrk/3-overlapcorrection/overlapStore-update-erates.err"); - } - - touch("$wrk/3-overlapcorrection/$asm.erates.updated"); - touch("$wrk/$asm.ovlStore/corrected"); - - if ($cleanup) { - open(F, "< $wrk/3-overlapcorrection/cat-erates.eratelist"); - while () { - if (m/^(.*)\/([0-9]*).erate/) { - #unlink "$1/$2.erate"; - #unlink "$1/$2.err"; - my $sge = int($2); - #unlink "$1/$sge.err"; - } - } - close(F); - - #unlink "$wrk/3-overlapcorrection/overlapStore-update-erates.err"; - #unlink "$wrk/3-overlapcorrection/$asm.erates"; - - #unlink "$wrk/3-overlapcorrection/cat-erates.err"; - #unlink "$wrk/3-overlapcorrection/cat-erates.eratelist"; - - #unlink "$wrk/3-overlapcorrection/frgcorr.sh"; - #unlink "$wrk/3-overlapcorrection/ovlcorr.sh"; - } - } -} - -1; -use strict; - -sub overlapTrim { - - return if (getGlobal("doOverlapBasedTrimming") == 0); - return if (getGlobal("doMerBasedTrimming") == 1); - return if (getGlobal("ovlOverlapper") eq "umd"); - return if (getGlobal("ovlOverlapper") eq "sand"); - - # Skip overlap based trimming if it is done, or if the ovlStore already exists. - # - goto alldone if (-e "$wrk/0-overlaptrim/overlaptrim.success"); - goto alldone if (-d "$wrk/$asm.ovlStore"); - - system("mkdir $wrk/0-overlaptrim") if (! -d "$wrk/0-overlaptrim"); - system("mkdir $wrk/0-overlaptrim-overlap") if (! -d "$wrk/0-overlaptrim-overlap"); - - - # Disable dedup, unless reads request it. This avoids an expensive ovlStore build. - # - if (getGlobal("doDeDuplication") != 0) { - my $bin = getBinDirectory(); - - setGlobal("doDeDuplication", 0); - - if (system("$bin/gatekeeper -isfeatureset 0 doRemoveDuplicateReads $wrk/$asm.gkpStore") == 0) { - setGlobal("doDeDuplication", 1); - } - } - - # Do an initial overly-permissive quality trimming, intersected - # with any known vector trimming. This is skipped if mer based trimming is enabled. - # -# -# TESTING: DO NOT DO THIS IF WE HAVE MER TRIMMED -# -if (getGlobal("doMerBasedTrimming") == 0) { - if ((! -e "$wrk/0-overlaptrim/$asm.initialTrimLog") && - (! -e "$wrk/0-overlaptrim/$asm.initialTrimLog.bz2")) { - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/initialTrim \\\n"; - $cmd .= " -log $wrk/0-overlaptrim/$asm.initialTrimLog \\\n"; - $cmd .= " -frg $wrk/$asm.gkpStore \\\n"; - $cmd .= " > $wrk/0-overlaptrim/$asm.initialTrim.report \\\n"; - $cmd .= " 2> $wrk/0-overlaptrim/$asm.initialTrim.err "; - - stopBefore("initialTrim", $cmd); - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - rename "$wrk/0-overlaptrim/$asm.initialTrimLog", "$wrk/0-overlaptrim/$asm.initialTrimLog.FAILED"; - caFailure("initial trimming failed", "$wrk/0-overlaptrim/$asm.initialTrim.err"); - } - - unlink "0-overlaptrim/$asm.initialTrim.err"; - } -} - - # Compute overlaps, if we don't have them already - # - if (! -e "$wrk/0-overlaptrim/$asm.obtStore") { - createOverlapJobs("trim"); - checkOverlap("trim"); - - # Sort the overlaps -- this also duplicates each overlap so that - # all overlaps for a fragment A are localized. - - if (runCommand("$wrk/0-overlaptrim", - "find $wrk/0-overlaptrim-overlap -follow \\( -name \\*ovb.gz -or -name \\*ovb \\) -print > $wrk/0-overlaptrim/$asm.obtStore.list")) { - caFailure("failed to generate a list of all the overlap files", undef); - } - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/overlapStore "; - $cmd .= " -O "; - $cmd .= " -c $wrk/0-overlaptrim/$asm.obtStore.BUILDING "; - $cmd .= " -g $wrk/$asm.gkpStore "; - $cmd .= " -M " . getGlobal('ovlStoreMemory'); - $cmd .= " -L $wrk/0-overlaptrim/$asm.obtStore.list"; - $cmd .= " > $wrk/0-overlaptrim/$asm.obtStore.err 2>&1"; - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - caFailure("failed to build the obt store", "$wrk/0-overlaptrim/$asm.obtStore.err"); - } - - rename "$wrk/0-overlaptrim/$asm.obtStore.BUILDING", "$wrk/0-overlaptrim/$asm.obtStore"; - - # Delete overlaps unless we're told to save them, or we need to dedup. - if ((getGlobal("saveOverlaps") == 0) && (getGlobal("doDeDuplication") == 0)) { - open(F, "< $wrk/0-overlaptrim/$asm.obtStore.list"); - while () { - chomp; - unlink $_; - } - close(F); - } - - rmrf("$wrk/0-overlaptrim/$asm.obtStore.list"); - rmrf("$wrk/0-overlaptrim/$asm.obtStore.err"); - } - - - # Deduplicate? - # -# -# TESTING: DO NOT DO THIS IF WE HAVE MER TRIMMED -# -if (getGlobal("doMerBasedTrimming") == 0) { - if ((getGlobal("doDeDuplication") != 0) && - (! -e "$wrk/0-overlaptrim/$asm.deduplicate.summary")) { - my $bin = getBinDirectory(); - my $cmd; - - if (! -e "$wrk/0-overlaptrim/$asm.dupStore") { - if (runCommand("$wrk/0-overlaptrim", - "find $wrk/0-overlaptrim-overlap -follow \\( -name \\*ovb.gz -or -name \\*ovb \\) -print > $wrk/0-overlaptrim/$asm.dupStore.list")) { - caFailure("failed to generate a list of all the overlap files", undef); - } - - $cmd = "$bin/overlapStore \\\n"; - $cmd .= " -O -O \\\n"; - $cmd .= " -c $wrk/0-overlaptrim/$asm.dupStore.BUILDING \\\n"; - $cmd .= " -g $wrk/$asm.gkpStore \\\n"; - $cmd .= " -M \\\n" . getGlobal('ovlStoreMemory'); - $cmd .= " -L $wrk/0-overlaptrim/$asm.dupStore.list \\\n"; - $cmd .= " > $wrk/0-overlaptrim/$asm.dupStore.err 2>&1"; - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - caFailure("failed to build the dup store", "$wrk/0-overlaptrim/$asm.dupStore.err"); - } - - rename "$wrk/0-overlaptrim/$asm.dupStore.BUILDING", "$wrk/0-overlaptrim/$asm.dupStore"; - - # Delete overlaps unless we're told to save them - if (getGlobal("saveOverlaps") == 0) { - open(F, "< $wrk/0-overlaptrim/$asm.dupStore.list"); - while () { - chomp; - unlink $_; - } - close(F); - } - - rmrf("$asm.dupStore.list"); - rmrf("$asm.dupStore.err"); - } - - $cmd = "$bin/deduplicate \\\n"; - $cmd .= "-gkp $wrk/$asm.gkpStore \\\n"; - $cmd .= "-ovs $wrk/0-overlaptrim/$asm.obtStore \\\n"; - $cmd .= "-ovs $wrk/0-overlaptrim/$asm.dupStore \\\n"; - $cmd .= "-report $wrk/0-overlaptrim/$asm.deduplicate.report \\\n"; - $cmd .= "-summary $wrk/0-overlaptrim/$asm.deduplicate.summary \\\n"; - $cmd .= "> $wrk/0-overlaptrim/$asm.deduplicate.err 2>&1"; - - stopBefore("deDuplication", $cmd); - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - unlink "$wrk/0-overlaptrim/$asm.deduplicate.summary"; - caFailure("failed to deduplicate the reads", "$wrk/0-overlaptrim/$asm.deduplicate.err"); - } - } - - # Consolidate the overlaps, listing all overlaps for a single - # fragment on a single line. These are still iid's. - - if ((! -e "$wrk/0-overlaptrim/$asm.ovl.consolidated") && - (! -e "$wrk/0-overlaptrim/$asm.ovl.consolidated.bz2")) { - - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/consolidate \\\n"; - $cmd .= " -ovs $wrk/0-overlaptrim/$asm.obtStore \\\n"; - $cmd .= " > $wrk/0-overlaptrim/$asm.ovl.consolidated \\\n"; - $cmd .= "2> $wrk/0-overlaptrim/$asm.ovl.consolidated.err"; - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - unlink "$wrk/0-overlaptrim/$asm.ovl.consolidated"; - caFailure("failed to consolidate overlaps", "$wrk/0-overlaptrim/$asm.ovl.consolidated.err"); - } - unlink "$wrk/0-overlaptrim/$asm.ovl.consolidated.err"; - } - - - # We need to have all the overlaps squashed already, in particular so - # that we can get the mode of the 5'mode. We could do this all in - # core, but that would take lots of space. - - if ((! -e "$wrk/0-overlaptrim/$asm.mergeLog") && - (! -e "$wrk/0-overlaptrim/$asm.mergeLog.bz2")) { - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/merge-trimming \\\n"; - $cmd .= "-log $wrk/0-overlaptrim/$asm.mergeLog \\\n"; - $cmd .= "-frg $wrk/$asm.gkpStore \\\n"; - $cmd .= "-ovl $wrk/0-overlaptrim/$asm.ovl.consolidated \\\n"; - $cmd .= "> $wrk/0-overlaptrim/$asm.merge.err 2>&1"; - - stopBefore("mergeTrimming", $cmd); - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - unlink "$wrk/0-overlaptrim/$asm.mergeLog"; - unlink "$wrk/0-overlaptrim/$asm.mergeLog.stats"; - caFailure("failed to merge trimming", "$wrk/0-overlaptrim/$asm.merge.err"); - } - } -} - - if (getGlobal("doChimeraDetection") ne 'off') { - if ((! -e "$wrk/0-overlaptrim/$asm.chimera.report") && - (! -e "$wrk/0-overlaptrim/$asm.chimera.report.bz2")) { - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/chimera \\\n"; - $cmd .= " -gkp $wrk/$asm.gkpStore \\\n"; - $cmd .= " -ovs $wrk/0-overlaptrim/$asm.obtStore \\\n"; - $cmd .= " -summary $wrk/0-overlaptrim/$asm.chimera.summary \\\n"; - $cmd .= " -report $wrk/0-overlaptrim/$asm.chimera.report \\\n"; - $cmd .= " -mininniepair 0 -minoverhanging 0 \\\n" if (getGlobal("doChimeraDetection") eq "aggressive"); - $cmd .= " > $wrk/0-overlaptrim/$asm.chimera.err 2>&1"; - - stopBefore("chimeraDetection", $cmd); - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - rename "$wrk/0-overlaptrim/$asm.chimera.report", "$wrk/0-overlaptrim/$asm.chimera.report.FAILED"; - caFailure("chimera cleaning failed", "$wrk/0-overlaptrim/$asm.chimera.err"); - } - } - } - - #rmrf("$asm.obtStore"); - - touch("$wrk/0-overlaptrim/overlaptrim.success"); - - alldone: - stopAfter("overlapBasedTrimming"); - stopAfter("OBT"); -} - -1; -use strict; - - -sub perfectTrimming { - my $gkpStore = "$wrk/$asm.gkpStore"; - my $refFasta = getGlobal("perfectTrimming"); - - return if (!defined($refFasta)); - - setGlobal("doOverlapBasedTrimming", 0); - - die "Can't find gkpStore '$gkpStore'\n" if (! -d $gkpStore); - die "Can't find reference '$refFasta'\n" if (! -e $refFasta); - - my $cmd; - my $bin = getBinDirectory(); - my $kmer; - { - my @p = split '/', $bin; - my $l = scalar(@p); - - $p[$l] = $p[$l-1]; - $p[$l-1] = $p[$l-2]; - $p[$l-2] = "kmer"; - - $kmer = join '/', @p; - } - - if (! -e "$gkpStore/reads.fasta") { - runCommand($wrk, "$bin/gatekeeper -dumpfastaseq -clear untrim $gkpStore > $gkpStore/reads.fasta") and die; - } - - if (! -e "$gkpStore/reads.sim4db") { - # #1 cov 25 iden 90 sucka - # #2 cov 80 iden 96 is nice - # #3 cov 25 iden 94 better than #1, but still sucky - # #4 cov 80 iden 94 same as #3 - # #5 cov 80 iden 95 - # #6 cov 25 iden 96 - # #7 cov 25 iden 97 - # #8 cov 25 iden 98 - $cmd = "$kmer/snapper2"; - $cmd .= " -queries $gkpStore/reads.fasta"; - $cmd .= " -genomic $refFasta"; - $cmd .= " -minhitlength 0"; - $cmd .= " -minhitcoverage 0"; - $cmd .= " -discardexonlength 40"; - $cmd .= " -minmatchcoverage 25"; - $cmd .= " -minmatchidentity 98"; - $cmd .= " -verbose"; - $cmd .= " -numthreads 1"; - $cmd .= " > $gkpStore/reads.sim4db"; - - runCommand($wrk, $cmd) and die; - } - - if (! -e "$gkpStore/reads.extent") { - runCommand($wrk, "$kmer/pickBestPolish < $gkpStore/reads.sim4db | $kmer/convertToExtent > $gkpStore/reads.extent") and die; - } - - if (! -e "$gkpStore/reads.update") { - my %mapBeg; - my %mapEnd; - - my %allReads; - my %allMates; - - # Read the reads and mates - # - open(F, "$bin/gatekeeper -dumpfragments -tabular -clear OBT $gkpStore |"); - $_ = ; # header line - while () { - my @v = split '\s+', $_; - $allReads{$v[1]}++; - $allMates{$v[1]} = $v[3]; - } - close(F); - - # Read the mapping - # - open(F, "< $gkpStore/reads.extent"); - while () { - my @v = split '\s+', $_; - - (undef, $v[0]) = split ',', $v[0]; - - if ($v[3] < $v[4]) { - $mapBeg{$v[0]} = $v[3]; - $mapEnd{$v[0]} = $v[4]; - } else { - $mapBeg{$v[0]} = $v[4]; - $mapEnd{$v[0]} = $v[3]; - } - } - close(F); - - # Update the gkpStore - # - open(F, "> $gkpStore/reads.update"); - foreach my $k (keys %allReads) { - my $mapLen = $mapEnd{$k} - $mapBeg{$k}; - - if ($mapLen < 64) { - print F "frg iid $k isdeleted t\n"; - if ($allMates{$k} > 0) { - print F "frg iid $k mateiid 0\n"; - print F "frg iid $allMates{$k} mateiid 0\n"; - } - } else { - print F "frg iid $k orig $mapBeg{$k} $mapEnd{$k}\n"; - print F "frg iid $k obtini $mapBeg{$k} $mapEnd{$k}\n"; - print F "frg iid $k obt $mapBeg{$k} $mapEnd{$k}\n"; - } - } - close(F); - } - - if (! -e "$gkpStore/reads.updated") { - runCommand($wrk, "$bin/gatekeeper -E $gkpStore/reads.update.errors --edit $gkpStore/reads.update $gkpStore > $gkpStore/reads.update.out 2> $gkpStore/reads.update.err") and die; - touch "$gkpStore/reads.updated"; - } -} - - -sub preoverlap { - my @fragFiles = @_; - - $numFrags = getNumberOfFragsInStore($wrk, $asm); - - # Return if there are fragments in the store, and die if there - # are no fragments and no source files. - # - if ($numFrags > 0) { - goto stopafter; - } - - caFailure("no fragment files specified, and stores not already created", undef) - if (scalar(@fragFiles) == 0); - - if ((! -d "$wrk/$asm.gkpStore") || - (! -e "$wrk/$asm.gkpStore/inf")) { - my $bin = getBinDirectory(); - - # Make sure all the inputs are here. We also shred any - # supplied ace files, and convert the sff's to frg's. - # - my $failedFiles = undef; - my $gkpInput = ""; - foreach my $frg (@fragFiles) { - if (! -e $frg) { - if (defined($failedFiles)) { - $failedFiles .= "; '$frg' not found"; - } else { - $failedFiles = "'$frg' not found"; - } - } - - if ($frg =~ m/^(.*)\.ace$/) { - my @fff = split '/', $1; - my $ace = $frg; - my $nam = pop @fff; - - $frg = "$wrk/$nam.shred.frg"; - - if (! -e "$frg") { - print STDERR "Shredding '$ace' -> '$frg'\n"; - shredACE($ace, $frg); - } - } - - if (($frg =~ m/^(.*)\.sff$/) || - ($frg =~ m/^(.*)\.sff.gz$/) || - ($frg =~ m/^(.*)\.sff.bz2$/)) { - my @fff = split '/', $1; - my $sff = $frg; - my $nam = pop @fff; - my $log = "$wrk/$nam.sff.log"; - - $frg = "$wrk/$nam.sff.frg"; - - if (! -e "$frg") { - print STDERR "Converting '$sff' -> '$frg'\n"; - - my $bin = getBinDirectory(); - - if (runCommand($wrk, "$bin/sffToCA -libraryname $nam -linker flx -linker titanium -insertsize 3000 300 -output $frg $sff > $frg.err 2>&1")) { - unlink "$wrk/$frg"; - caFailure("sffToCA failed", "$frg.err"); - } - } - } - - $gkpInput .= " $frg"; - } - caFailure($failedFiles, undef) if defined($failedFiles); - - my $cmd; - $cmd = "$bin/gatekeeper "; - $cmd .= " -o $wrk/$asm.gkpStore.BUILDING "; - $cmd .= " -T " if (getGlobal("doOverlapBasedTrimming")); - $cmd .= " -F " if (getGlobal("gkpFixInsertSizes")); - $cmd .= " -E $wrk/$asm.gkpStore.errorLog "; - $cmd .= "$gkpInput "; - $cmd .= "> $wrk/$asm.gkpStore.err 2>&1"; - if (runCommand($wrk, $cmd)) { - caFailure("gatekeeper failed", "$wrk/$asm.gkpStore.err"); - } - - rename "$wrk/$asm.gkpStore.BUILDING", "$wrk/$asm.gkpStore"; - unlink "$asm.gkpStore.err"; - } - - perfectTrimming(); - - generateVectorTrim(); - - my $vi = getGlobal("vectorIntersect"); - - if ((defined($vi)) && (! -e "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.log")) { - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/gatekeeper -a -v $vi -o $wrk/$asm.gkpStore "; - $cmd .= " > $wrk/$asm.gkpStore/$asm.vectorClearLoaded.log"; - $cmd .= " 2> $wrk/$asm.gkpStore/$asm.vectorClearLoaded.err"; - - if (runCommand($wrk, $cmd)) { - rename "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.log", "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.log.FAILED"; - caFailure("gatekeeper failed to update clear ranges", "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.err"); - } - - unlink "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.err"; - } - - $numFrags = getNumberOfFragsInStore($wrk, $asm); - - print STDERR "numFrags = $numFrags\n"; - - stopafter: - stopAfter("initialStoreBuilding"); -} - -1; -#!/usr/bin/perl - -use strict; -use FileHandle; - -# -# Parameters -# - -my $MIN_COVERAGE = 1; # Should be 2 if there are "fake" reads in ace file - -my $MIN_READS = 4; -my $MIN_CONTIG_SIZE = 600; - -my $SHRED_READ_LENGTH = 600; - -my $LOW_QUAL_DIVISOR = 4; -my $DEFAULT_QUAL = 3; - -# -# Methods for reading an ACE file. -# - -sub read_AS{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $num_contigs, $num_reads)=split /\s+/; - if($id eq "AS"){ - return ($num_contigs, $num_reads); - } - } - die "Could not find AS to read.\n"; -} - - -sub read_CO{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $contig_id, $num_bases, $num_reads, $num_segments, $complementation, $sequence)=split /\s+/; - - if($id eq "CO"){ - while(<$fh>){ - chomp; - if($_ eq ""){ - last; - }else{ - $sequence.=$_; - } - } - return($contig_id, $num_bases, $num_reads, $num_segments, $complementation, $sequence); - } - } - die "Could not find CO to read.\n"; -} - - -sub read_BQ{ - my $fh=shift; - - my ($id, $sequence); - - while(<$fh>){ - chomp; - ($id)=split /\s+/; - - if($id eq "BQ"){ - while(<$fh>){ - chomp; - if($_ eq ""){ - last; - }else{ - $sequence.=$_; - } - } - return($sequence); - } - } - die "Could not find BQ to read.\n"; -} - - -sub read_AF{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $read_id, $complementation, $start)=split /\s+/; - if($id eq "AF"){ - return($read_id, $complementation, $start); - } - } - die "Could not find AF to read.\n"; -} - - -sub read_BS{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $start, $end, $read_id)=split /\s+/; - if($id eq "BS"){ - return($start, $end, $read_id); - } - } - die "Could not find BS to read.\n"; -} - - -sub read_RD{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $read_id, $num_bases, $num_read_info_items, $num_read_tags)=split /\s+/; - my $sequence; - if($id eq "RD"){ - while(<$fh>){ - chomp; - if($_ eq ""){ - last; - }else{ - $sequence.=$_; - } - } - return($read_id, $num_bases, $num_read_info_items, $num_read_tags, $sequence); - } - } - die "Could not find RD to read.\n"; -} - - -sub read_QA{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $qual_start, $qual_end, $clip_start, $clip_end)=split /\s+/; - if($id eq "QA"){ - return($qual_start, $qual_end, $clip_start, $clip_end); - } - } - die "Could not find QA to read.\n"; -} - - -sub read_DS{ - my $fh=shift; - my $id; - while(<$fh>){ - chomp; - my ($id)=split /\s+/; - if($id eq "DS"){ - return("not implemented"); - } - } - die "Could not find DS to read.\n"; -} - -# -# -# - -sub emitFragment ($$$$) { - my $uid = shift; - my $lid = shift; - my $seq = shift; - my $oh = shift; - - my $len = length($seq); - - my $qvs = $seq; - - my $q = chr($DEFAULT_QUAL + ord("0")); - my $l = chr($DEFAULT_QUAL/$LOW_QUAL_DIVISOR + ord("0")); - - $qvs =~ s/[^ACGT]/$l/og; - $qvs =~ s/[ACGT]/$q/og; - - print $oh "{FRG\n"; - print $oh "act:A\n"; - print $oh "acc:$uid\n"; - print $oh "rnd:1\n"; - print $oh "sta:G\n"; - print $oh "lib:$lid\n"; - print $oh "pla:0\n"; - print $oh "loc:0\n"; - print $oh "src:\n.\n"; - print $oh "seq:\n$seq\n.\n"; - print $oh "qlt:\n$qvs\n.\n"; - print $oh "hps:\n.\n"; - print $oh "clr:0,$len\n"; - print $oh "}\n"; -} - -# -# -# - -sub shredContig ($$$$$) { - my $ctgId = shift; - my $avgCoverage = shift; - my $sequence = shift; - my $libId = shift; - my $oh = shift; - - my $seq_len=length($sequence); - - my @begin_shred; - my @end_shred; - - { - # - # |*******| - # |###############| - # |-------------------------------------------------| - # ----------------1---------------- - # ----------------2---------------- - # ----------------3---------------- - # - # #### represents the distance between center of read 1 and read 3 - # [$center_range_width] - # **** represents the distance between centers of consective reads - # [$center_increments] - # - - my $shred_len = $SHRED_READ_LENGTH; - $shred_len = $seq_len - 50 if $seq_len < $SHRED_READ_LENGTH; - - my $num_reads=int($seq_len * $avgCoverage / $shred_len); - my $center_range_width = $seq_len - $shred_len; - - if($num_reads==1){ - push @begin_shred, 0; - push @end_shred, $shred_len; - }else{ - my $center_increments = $center_range_width / ($num_reads-1); - - # Cap the number of reads we will make so that we don't get - # redundant reads - - my $i; - my ($prev_begin, $prev_end)=(-1,-1); - for($i=0; $i<$num_reads; $i++){ - my $begin=$center_increments*$i; - my $end=$begin+$shred_len; - - $begin=int($begin); - $end=int($end); - - if($begin!=$prev_begin || $end!=$prev_end){ - push @begin_shred, $begin; - push @end_shred, $end; - $prev_begin=$begin; - $prev_end=$end; - } - } - } - - } - - my $num_shreds = scalar(@begin_shred); - - my $accomplished_coverage = $num_shreds * $SHRED_READ_LENGTH / $seq_len; - - # Output sequence after it has been formatted to the specified width - my $shred_idx; - for($shred_idx=0; $shred_idx<$num_shreds; $shred_idx++){ - my $shredded_sequence=substr($sequence, - $begin_shred[$shred_idx], - $end_shred[$shred_idx]-$begin_shred[$shred_idx]); - - #"/contig=$contigID\.$shred_idx " , - #"/target_coverage=$avgCoverage " , - #"/accomplished_coverage=$accomplished_coverage " , - #"/input_length=$seq_len " , - #"/range=${$begin_shred_ref}[$shred_idx]-" , - # "${$end_shred_ref}[$shred_idx]\n"; - - emitFragment("$libId.$ctgId.frag$shred_idx.$begin_shred[$shred_idx]-$end_shred[$shred_idx]", $libId, $shredded_sequence, $oh); - } -} - -# -# Main -# - -sub shredACE ($$) { - my $aceFile = shift; - my $outFile = shift; - my $libId = $aceFile; - - if ($aceFile =~ m/^.*\/(.*).ace/) { - $libId = $1; - } - - my $fh = new FileHandle "< $aceFile"; - my $oh = new FileHandle "> $outFile"; - - print $oh "{VER\n"; - print $oh "ver:2\n"; - print $oh "}\n"; - print $oh "{LIB\n"; - print $oh "act:A\n"; - print $oh "acc:$libId\n"; - print $oh "ori:U\n"; - print $oh "mea:0.0\n"; - print $oh "std:0.0\n"; - print $oh "src:\n"; - print $oh ".\n"; - print $oh "nft:1\n"; - print $oh "fea:\n"; - print $oh "doNotOverlapTrim=1\n"; - print $oh ".\n"; - print $oh "}\n"; - - my ($num_contigs, $num_reads)=read_AS($fh); - - my $contig_idx; - for($contig_idx=0; $contig_idx<$num_contigs; $contig_idx++){ - - my %read_position_hash; - - my ($contig_id, $num_consensus_bases, $num_reads, $num_segments, $complementation, $consensus_sequence) = read_CO($fh); - - my @coverage_array; - my $i; - - # Initialize Coverage Array - for($i=0; $i<$num_consensus_bases; $i++){ - $coverage_array[$i]=0; - } - - my $quality=read_BQ($fh); - - my $read_idx; - for($read_idx=0; $read_idx<$num_reads; $read_idx++){ - my ($read_id, $complementation, $consensus_start_pos)=read_AF($fh); - $read_position_hash{$read_id}=$consensus_start_pos; - } - - my ($base_line_start, $base_line_end, $base_line_read_id)=read_BS($fh); - - for($read_idx=0; $read_idx<$num_reads; $read_idx++){ - my ($read_id, $num_padded_bases, $num_read_info_items, $num_read_tags, $read_sequence)= read_RD($fh); - my ($qual_start, $qual_end, $align_start, $align_end)=read_QA($fh); - my $startPos = $read_position_hash{$read_id}; - - my $begin = $align_start + $startPos - 1; - my $end = $align_end + $startPos - 1; - - for($i=$begin; $i<$end; $i++){ - $coverage_array[$i]++; - } - my ($null)=read_DS($fh); - } - - - my $in_deep_enough=0; - my @sub_contig_begin_arr; - my @sub_contig_end_arr; - - # Keep track of where we go into deep coverage region from low coverage regions - for($i=0; $i<$num_consensus_bases; $i++){ - if($coverage_array[$i]>$MIN_COVERAGE && !$in_deep_enough){ - push @sub_contig_begin_arr, $i; - $in_deep_enough=1; - } - if($coverage_array[$i]<=$MIN_COVERAGE && $in_deep_enough){ - push @sub_contig_end_arr, ($i); - $in_deep_enough=0; - } - } - - if($in_deep_enough){ - push @sub_contig_end_arr, ($i); - } - - for($i=0; $i<=$#sub_contig_begin_arr; $i++){ - # Sum up coverage for each sub contig - my $cov_idx; - my $cov_sum=0; - for($cov_idx=$sub_contig_begin_arr[$i]; - $cov_idx<$sub_contig_end_arr[$i]; - $cov_idx++){ - $cov_sum+=$coverage_array[$cov_idx]; - } - - # Compute average coverage depth - - my $sub_seq_len=$sub_contig_end_arr[$i]-$sub_contig_begin_arr[$i]; - my $avg_cov = $cov_sum / $sub_seq_len; - - if($num_reads > $MIN_READS && $sub_seq_len>=$MIN_CONTIG_SIZE){ - my $sub_contig_seq = substr($consensus_sequence, - $sub_contig_begin_arr[$i], - $sub_seq_len); - - # Remove padding - $sub_contig_seq=~s/\*//g; - - shredContig($contig_id, $avg_cov, $sub_contig_seq, $libId, $oh); - } - } - } - - print $oh "{VER\n"; - print $oh "ver:1\n"; - print $oh "}\n"; -} - -# -# For standalone use -# - -#die "usage: $0 file.ace > file.frg\n" if (scalar(@ARGV) == 0); -#shredACE($ARGV[0], "a.frg"); -#exit(); -use strict; - -# Don't do interleaved merging unless we are throwing stones. - -sub CGW ($$$$$$) { - my $thisDir = shift @_; - my $lastDir = shift @_; - my $tigStore = shift @_; - my $stoneLevel = shift @_; - my $logickp = shift @_; - my $finalRun = shift @_; - my $lastckp = undef; - my $ckp = undef; - - return($thisDir) if (-e "$wrk/$thisDir/cgw.success"); - - if (defined($lastDir)) { - $lastckp = findLastCheckpoint($lastDir); - } - if (defined($lastckp) && defined($logickp)) { - $ckp = "-R $lastckp -N $logickp" - } - - # If there is a timing file here, assume we are restarting. Not - # all restarts are possible, but we try hard to make it so. - # - if (-e "$wrk/$thisDir/$asm.timing") { - my $restartckp = undef; - - open(F, "< $wrk/$thisDir/$asm.timing"); - while () { - print STDERR $_; - if (m/Writing.*ckp.(\d+)\s\(logical\s(.+)\)/) { - $restartckp = "-R $1 -N $2"; - } - } - close(F); - - if (!defined($restartckp)) { - print STDERR "Found an empty timing file, starting from the beginning: $ckp\n"; - } else { - $ckp = $restartckp; - print STDERR "Found a timing file, restarting: $ckp\n"; - } - } - - system("mkdir $wrk/$thisDir") if (! -d "$wrk/$thisDir"); - - system("ln -s ../$lastDir/$asm.ckp.$lastckp $wrk/$thisDir/$asm.ckp.$lastckp") if (defined($lastDir)); - - if (-e "$wrk/$thisDir/cgw.out") { - my $ckp = findLastCheckpoint($thisDir); - my $ver = "00"; - while (-e "$wrk/$thisDir/cgw.out.$ver.ckp.$ckp") { - $ver++; - } - rename "$wrk/$thisDir/cgw.out", "$wrk/$thisDir/cgw.out.$ver.ckp.$ckp" - } - - my $sampleSize = getGlobal("cgwDistanceSampleSize"); - - my $bin = getBinDirectory(); - my $cmd; - my $astatLow = getGlobal("astatLowBound"); - my $astatHigh = getGlobal("astatHighBound"); - - my $B = int($numFrags / getGlobal("cnsPartitions")); - $B = getGlobal("cnsMinFrags") if ($B < getGlobal("cnsMinFrags")); - - my $P = getGlobal("closurePlacement"); - - $cmd = "$bin/cgw $ckp \\\n"; - $cmd .= " -j $astatLow -k $astatHigh \\\n"; - $cmd .= " -r 5 \\\n"; - $cmd .= " -s $stoneLevel \\\n"; - $cmd .= " -S 0 \\\n" if (($finalRun == 0) || (getGlobal("doResolveSurrogates") == 0)); - $cmd .= " -G \\\n" if ($finalRun == 0); - $cmd .= " -z \\\n" if (getGlobal("cgwDemoteRBP") == 1); - $cmd .= " -P $P \\\n" if (defined($P)); - $cmd .= " -K \\\n" if (getGlobal("kickOutNonOvlContigs") != 0); - $cmd .= " -U \\\n" if (getGlobal("doUnjiggleWhenMerging") != 0); - $cmd .= " -F \\\n" if (getGlobal("toggleDoNotDemote") != 0); - $cmd .= " -B $B \\\n"; - $cmd .= " -u $wrk/4-unitigger/$asm.unused.ovl \\\n" if (getGlobal("cgwUseUnitigOverlaps") != 0); - $cmd .= " -m $sampleSize \\\n"; - $cmd .= " -g $wrk/$asm.gkpStore \\\n"; - $cmd .= " -t $tigStore \\\n"; - $cmd .= " -o $wrk/$thisDir/$asm \\\n"; - $cmd .= " > $wrk/$thisDir/cgw.out 2>&1"; - - stopBefore("CGW", $cmd); - - if (runCommand("$wrk/$thisDir", $cmd)) { - caFailure("scaffolder failed", "$wrk/$thisDir/cgw.out"); - } - - - open(F, "ls -1 $wrk/$thisDir |"); - while () { - chomp; - - if (m/\.log$/) { - system("mkdir $wrk/$thisDir/log") if (! -d "$wrk/$thisDir/log"); - rename "$wrk/$thisDir/$_", "$wrk/$thisDir/log/$_"; - } - - if (m/\.analysis$/) { - system("mkdir $wrk/$thisDir/analysis") if (! -d "$wrk/$thisDir/analysis"); - rename "$wrk/$thisDir/$_", "$wrk/$thisDir/analysis/$_"; - } - } - close(F); - - - if (getGlobal("cgwPurgeCheckpoints") != 0) { - my $f = findFirstCheckpoint($thisDir); - my $l = findLastCheckpoint($thisDir); - - while ($f < $l) { - #print STDERR "Purging $wrk/$thisDir/$asm.ckp.$f\n"; - unlink "$wrk/$thisDir/$asm.ckp.$f"; - $f++; - } - } - - touch("$wrk/$thisDir/cgw.success"); - - return $thisDir; -} - - -sub eCR ($$$) { - my $thisDir = shift @_; - my $lastDir = shift @_; - my $iter = shift @_; - - return $thisDir if (-e "$wrk/$thisDir/extendClearRanges.success"); - - my $lastckp = findLastCheckpoint($lastDir); - - system("mkdir $wrk/$thisDir") if (! -d "$wrk/$thisDir"); - - system("ln -s ../$lastDir/$asm.ckp.$lastckp $wrk/$thisDir/$asm.ckp.$lastckp") if (! -e "$wrk/$thisDir/$asm.ckp.$lastckp"); - - # Partition eCR. - - if (! -e "$wrk/$thisDir/extendClearRanges.partitionInfo") { - my $bin = getBinDirectory(); - my $cmd; - $cmd = "$bin/extendClearRangesPartition "; - $cmd .= " -g $wrk/$asm.gkpStore "; - $cmd .= " -t $wrk/$asm.tigStore "; - $cmd .= " -n $lastckp "; - $cmd .= " -c $asm "; - $cmd .= " -N 4 "; - $cmd .= " -p $wrk/$thisDir/extendClearRanges.partitionInfo"; - $cmd .= " > $wrk/$thisDir/extendClearRanges.partitionInfo.err 2>&1"; - - stopBefore("eCRPartition", $cmd); - stopBefore("extendClearRangesPartition", $cmd); - - if (runCommand("$wrk/$thisDir", $cmd)) { - caFailure("extendClearRanges partitioning failed", "$wrk/$thisDir/extendClearRanges.partitionInfo.err"); - } - - # Remove any existing eCR scripts -- possibly left behind by the user deleting - # the partitioinInfo and restarting. - system("rm $wrk/$thisDir/extendClearRanges-scaffold.*"); - } - - # Read the partitioning info, create jobs. No partitions? No ECR jobs. - - my @jobs; - - open(P, "< $wrk/$thisDir/extendClearRanges.partitionInfo") or caFailure("failed to find extendClearRanges partitioning file $wrk/$thisDir/extendClearRanges.partitionInfo", undef); - while (

    ) { - # Fields are: partitionNum BgnScf partitionNum EndScf NumFrags - - my @v = split '\s+', $_; - - my $curScaffold = substr("000000000$v[1]", -7); - my $endScaffold = substr("000000000$v[3]", -7); - - my $j = "$wrk/$thisDir/extendClearRanges-scaffold.$curScaffold"; - - if (! -e "$j.success") { - my $bin = getBinDirectory(); - - if (! -e "$j.sh") { - open(F, "> $j.sh"); - print F "#!" . getGlobal("shell") . "\n\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE\n"; - print F "\n"; - print F "$bin/extendClearRanges \\\n"; - print F " -g $wrk/$asm.gkpStore \\\n"; - print F " -t $wrk/$asm.tigStore \\\n"; - print F " -n $lastckp \\\n"; - print F " -c $asm \\\n"; - print F " -b $curScaffold -e $endScaffold \\\n"; - print F " -i $iter \\\n"; - print F " > $j.err 2>&1\n"; - close(F); - - system("chmod +x $j.sh"); - } - - push @jobs, "$j"; - - $lastckp++; - } - } - close(P); - - # Run jobs. - - stopBefore("eCR", undef); - stopBefore("extendClearRanges", undef); - - foreach my $j (@jobs) { - if (runCommand("$wrk/$thisDir", "$j.sh")) { - caFailure("extendClearRanges failed", "$j.err"); - } - touch("$j.success"); - } - - touch("$wrk/$thisDir/extendClearRanges.success"); - - return $thisDir; -} - - -sub updateDistanceRecords ($) { - my $thisDir = shift @_; - - return if (-e "$wrk/$thisDir/cgw.distupdate.success"); - - # Older versions needed to actually compute the updated - # distances. Now, cgw outputs it! Yay! - - my $bin = getBinDirectory(); - my $cmd; - my $gkpErrorFile = "$wrk/$thisDir/gkp.distupdate.err"; - $cmd = "$bin/gatekeeper "; - $cmd .= " -a -o $wrk/$asm.gkpStore "; - $cmd .= " -E $gkpErrorFile"; - $cmd .= " $wrk/$thisDir/stat/scaffold_final.distupdate.dst "; - $cmd .= " $wrk/$thisDir/stat/contig_final.distupdate.dst "; - $cmd .= " > $wrk/$thisDir/cgw.distupdate.err 2>&1"; - if (runCommand("$wrk/$thisDir", $cmd)) { - caFailure("gatekeeper distance update failed", "$wrk/$thisDir/cgw.distupdate.err"); - } - - touch("$wrk/$thisDir/cgw.distupdate.success"); -} - - -sub scaffolder () { - my $lastDir = undef; - my $thisDir = 0; - my $stoneLevel = getGlobal("stoneLevel"); - - stopBefore("scaffolder", undef); - - goto alldone if (-e "$wrk/7-CGW/cgw.success"); - - # Do an initial CGW to update distances, then update the - # gatekeeper. This initial run shouldn't be used for later - # CGW'ing. - # - if ((getGlobal("computeInsertSize") == 1) || - (getGlobal("computeInsertSize") == 0) && ($numFrags < 1000000)) { - if (! -e "$wrk/6-clonesize/$asm.tigStore") { - system("mkdir -p $wrk/6-clonesize/$asm.tigStore"); - system("ln -s $wrk/$asm.tigStore/* $wrk/6-clonesize/$asm.tigStore"); - } - updateDistanceRecords(CGW("6-clonesize", undef, "$wrk/6-clonesize/$asm.tigStore", $stoneLevel, undef, 0)); - } - - - # If we're not doing eCR, we just do a single scaffolder run, and - # get the heck outta here! OK, we'll do resolveSurrogates(), maybe. - # - if (getGlobal("doExtendClearRanges") == 0) { - $lastDir = CGW("7-$thisDir-CGW", $lastDir, "$wrk/$asm.tigStore", $stoneLevel, undef, 1); - $thisDir++; - } else { - - # Do the initial CGW, making sure to not throw stones. - # - $lastDir = CGW("7-$thisDir-CGW", $lastDir, "$wrk/$asm.tigStore", 0, undef, 0); - $thisDir++; - - # Followed by at least one eCR - # - $lastDir = eCR("7-$thisDir-ECR", $lastDir, 1); - $thisDir++; - - # Iterate eCR: do another scaffolder still without stones, - # then another eCR. Again, and again, until we get dizzy and - # fall over. - # - my $iterationMax = getGlobal("doExtendClearRanges") + 1; - for (my $iteration = 2; $iteration < $iterationMax; $iteration++) { - $lastDir = CGW("7-$thisDir-CGW", $lastDir, "$wrk/$asm.tigStore", 0, "ckp01-ABS", 0); - $thisDir++; - - $lastDir = eCR("7-$thisDir-ECR", $lastDir, $iteration); - $thisDir++; - } - - # Then another scaffolder, chucking stones into the big holes, - # filling in surrogates, and writing output. - # - $lastDir = CGW("7-$thisDir-CGW", $lastDir, "$wrk/$asm.tigStore", $stoneLevel, "ckp01-ABS", 1); - $thisDir++; - } - - - # And, finally, hold on, we're All Done! Point to the correct output directory. - # - system("ln -s $lastDir $wrk/7-CGW") if (! -d "$wrk/7-CGW"); - - alldone: - stopAfter("scaffolder"); -} - - -1; -use strict; - -sub summarizeConsensusStatistics ($) { - my $dir = shift @_; - - if (! -e "$dir/consensus.stats.summary") { - my $NumColumnsInUnitigs = 0; - my $NumGapsInUnitigs = 0; - my $NumRunsOfGapsInUnitigReads = 0; - my $NumColumnsInContigs = 0; - my $NumGapsInContigs = 0; - my $NumRunsOfGapsInContigReads = 0; - my $NumAAMismatches = 0; - my $NumFAMismatches = 0; - my $NumVARRecords = 0; - my $NumVARStringsWithFlankingGaps = 0; - my $NumUnitigRetrySuccess = 0; - - open(F, "ls $dir/$asm*.err |"); - my @files = ; - chomp @files; - close(F); - - foreach my $f (@files) { - open(F, "< $f"); - while () { - $NumColumnsInUnitigs += $1 if (m/NumColumnsInUnitigs\s+=\s+(\d+)/); - $NumGapsInUnitigs += $1 if (m/NumGapsInUnitigs\s+=\s+(\d+)/); - $NumRunsOfGapsInUnitigReads += $1 if (m/NumRunsOfGapsInUnitigReads\s+=\s+(\d+)/); - $NumColumnsInContigs += $1 if (m/NumColumnsInContigs\s+=\s+(\d+)/); - $NumGapsInContigs += $1 if (m/NumGapsInContigs\s+=\s+(\d+)/); - $NumRunsOfGapsInContigReads += $1 if (m/NumRunsOfGapsInContigReads\s+=\s+(\d+)/); - $NumAAMismatches += $1 if (m/NumAAMismatches\s+=\s+(\d+)/); - $NumFAMismatches += $1 if (m/NumFAMismatches\s+=\s+(\d+)/); - $NumVARRecords += $1 if (m/NumVARRecords\s+=\s+(\d+)/); - $NumVARStringsWithFlankingGaps += $1 if (m/NumVARStringsWithFlankingGaps\s+=\s+(\d+)/); - $NumUnitigRetrySuccess += $1 if (m/NumUnitigRetrySuccess\s+=\s+(\d+)/); - } - close(F); - } - - open(F, "> $dir/consensus.stats.summary"); - print F "NumColumnsInUnitigs=$NumColumnsInUnitigs\n" if ($NumColumnsInUnitigs > 0); - print F "NumGapsInUnitigs=$NumGapsInUnitigs\n" if ($NumGapsInUnitigs > 0); - print F "NumRunsOfGapsInUnitigReads=$NumRunsOfGapsInUnitigReads\n" if ($NumRunsOfGapsInUnitigReads > 0); - print F "NumColumnsInContigs=$NumColumnsInContigs\n" if ($NumColumnsInContigs > 0); - print F "NumGapsInContigs=$NumGapsInContigs\n" if ($NumGapsInContigs > 0); - print F "NumRunsOfGapsInContigReads=$NumRunsOfGapsInContigReads\n" if ($NumRunsOfGapsInContigReads > 0); - print F "NumAAMismatches=$NumAAMismatches\n" if ($NumAAMismatches > 0); - print F "NumFAMismatches=$NumFAMismatches\n" if ($NumFAMismatches > 0); - print F "NumVARRecords=$NumVARRecords\n" if ($NumVARRecords > 0); - print F "NumVARStringsWithFlankingGaps=$NumVARStringsWithFlankingGaps\n" if ($NumVARStringsWithFlankingGaps > 0); - print F "NumUnitigRetrySuccess=$NumUnitigRetrySuccess\n" if ($NumUnitigRetrySuccess > 0); - close(F); - } -} - - - -sub terminate () { - my $bin = getBinDirectory(); - my $perl = "/usr/bin/env perl"; - - my $termDir = "$wrk/9-terminator"; - system("mkdir $termDir") if (! -e "$termDir"); - - stopBefore("terminator", undef); - - if (! -e "$termDir/$asm.asm") { - my $uidServer = getGlobal("uidServer"); - my $fakeUIDs = getGlobal("fakeUIDs"); - - my $cmd; - - my $ckpVersion = findLastCheckpoint("$wrk/7-CGW"); - my $tigVersion = $ckpVersion + 1; - - caFailure("contig consensus didn't find any checkpoints in '$wrk/7-CGW'", undef) if (!defined($tigVersion)); - - $cmd = "$bin/terminator "; - $cmd .= " -g $wrk/$asm.gkpStore "; - $cmd .= " -t $wrk/$asm.tigStore $tigVersion "; - $cmd .= " -c $wrk/7-CGW/$asm $ckpVersion "; - $cmd .= " -o $wrk/9-terminator/$asm"; - $cmd .= " > $wrk/9-terminator/$asm.asm.err"; - - if (runCommand("$termDir", $cmd)) { - rename "$termDir/$asm.asm", "$termDir/$asm.asm.FAILED"; - rename "$termDir/$asm.map", "$termDir/$asm.map.FAILED"; - caFailure("terminator failed", "$termDir/terminator.err"); - } - unlink "$termDir/terminator.err"; - } - - - my $asmOutputFasta = "$bin/asmOutputFasta"; - if (! -e "$termDir/$asm.scf.fasta") { - my $cmd; - $cmd = "$asmOutputFasta -p $termDir/$asm $termDir/$asm.asm > $termDir/asmOutputFasta.err 2>&1"; - if (runCommand("$termDir", $cmd)) { - rename "$termDir/$asm.scfcns.fasta", "$termDir/$asm.scfcns.fasta.FAILED"; - caFailure("fasta output failed", "$termDir/asmOutputFasta.err"); - } - unlink "$termDir/asmOutputFasta.err"; - } - - - if (! -e "$termDir/$asm.singleton.fasta") { - my $ckpVersion = findLastCheckpoint("$wrk/7-CGW"); - my $tigVersion = $ckpVersion + 1; - - my $cmd; - $cmd = "$bin/dumpSingletons "; - $cmd .= " -g $wrk/$asm.gkpStore "; - $cmd .= " -t $wrk/$asm.tigStore "; - $cmd .= " -c $wrk/7-CGW/$asm -n $ckpVersion -S "; - $cmd .= "> $termDir/$asm.singleton.fasta "; - $cmd .= "2> $termDir/dumpSingletons.err "; - if (runCommand("$termDir", $cmd)) { - print STDERR "Failed.\n"; - rename "$termDir/$asm.singleton.fasta", "$termDir/$asm.singleton.fasta.FAILED"; - } - unlink "$termDir/dumpSingletons.err"; - } - - - ######################################## - # - # Generate fragment/unitig/contig/scaffold mappings - # - ######################################## - - - if (getGlobal("createPosMap") > 0) { - if (! -e "$termDir/$asm.posmap.frgscf") { - if (runCommand("$termDir", "$bin/buildPosMap -o $asm < $termDir/$asm.asm > $termDir/buildPosMap.err 2>&1")) { - rename "$termDir/$asm.posmap.frgscf", "$termDir/$asm.posmap.frgscf.FAILED"; - caFailure("buildPosMap failed", "$termDir/buildPosMap.err"); - } - unlink "$termDir/buildPosMap.err"; - } - } - - ######################################## - # - # Generate a read depth histogram - # - ######################################## - if ((getGlobal("createPosMap") > 0) && (! -e "$termDir/$asm.qc.readdepth")) { - my $cmd; - - # Youch. Run five commands, do something if all are successful. - - $cmd = "sort -k2n -k3n -T $termDir $termDir/$asm.posmap.frgscf > $termDir/$asm.posmap.frgscf.sorted &&"; - $cmd .= "$bin/fragmentDepth -min 0 -max 3000 < $termDir/$asm.posmap.frgscf.sorted > $termDir/$asm.posmap.frgscf.histogram1 && "; - $cmd .= "$bin/fragmentDepth -min 3001 -max 10000 < $termDir/$asm.posmap.frgscf.sorted > $termDir/$asm.posmap.frgscf.histogram2 && "; - $cmd .= "$bin/fragmentDepth -min 10001 -max 1000000 < $termDir/$asm.posmap.frgscf.sorted > $termDir/$asm.posmap.frgscf.histogram3 && "; - $cmd .= "$bin/fragmentDepth -min 1000001 < $termDir/$asm.posmap.frgscf.sorted > $termDir/$asm.posmap.frgscf.histogram4 "; - - if (runCommand("$termDir", $cmd) == 0) { - my @H1; - my @H2; - my @H3; - my @H4; - my $histMax = 0; - - open(G, "< $termDir/$asm.posmap.frgscf.histogram1") or caFailure("failed to open '$termDir/$asm.posmap.frgscf.histogram1'", undef); - while () { - my ($v, $s) = split '\s+', $_; - $H1[$v] = $s; - $histMax = $v if ($histMax < $v); - } - close(G); - - open(G, "< $termDir/$asm.posmap.frgscf.histogram2") or caFailure("failed to open '$termDir/$asm.posmap.frgscf.histogram2'", undef); - while () { - my ($v, $s) = split '\s+', $_; - $H2[$v] = $s; - $histMax = $v if ($histMax < $v); - } - close(G); - - open(G, "< $termDir/$asm.posmap.frgscf.histogram3") or caFailure("failed to open '$termDir/$asm.posmap.frgscf.histogram3'", undef); - while () { - my ($v, $s) = split '\s+', $_; - $H3[$v] = $s; - $histMax = $v if ($histMax < $v); - } - close(G); - - open(G, "< $termDir/$asm.posmap.frgscf.histogram4") or caFailure("failed to open '$termDir/$asm.posmap.frgscf.histogram4'", undef); - while () { - my ($v, $s) = split '\s+', $_; - $H4[$v] = $s; - $histMax = $v if ($histMax < $v); - } - close(G); - - open(G, "> $termDir/$asm.qc.readdepth"); - print G "\n[Read Depth Histogram]\n"; - print G "d < 3Kbp < 10Kbp < 1Mbp < inf\n"; - for (my $v=0; $v<=$histMax; $v++) { - printf(G "%-4d %-10d %-10d %-10d %-10d\n", $v, int($H1[$v]), int($H2[$v]), int($H3[$v]), int($H4[$v])); - } - } - - # Remove our temporary files. - - unlink "$termDir/$asm.posmap.frgscf.histogram1"; - unlink "$termDir/$asm.posmap.frgscf.histogram2"; - unlink "$termDir/$asm.posmap.frgscf.histogram3"; - unlink "$termDir/$asm.posmap.frgscf.histogram4"; - } - - - ######################################## - # - # Generate statistics. - # - ######################################## - - if (! -e "$termDir/$asm.qc") { - my $qcOptions; - - #if (! -e "$termDir/$asm.dumpinfo") { - # if (runCommand($termDir, "$bin/gatekeeper -dumpinfo $wrk/$asm.gkpStore > $termDir/$asm.gkpinfo 2> $termDir/$asm.gkpinfo.err")) { - # unlink "$termDir/$asm.gkpinfo"; - # } - # unlink "$termDir/$asm.gkpinfo.err"; - #} - if ( -e "$wrk/$asm.frg" ) { - link "$wrk/$asm.frg", "$termDir/$asm.frg"; - $qcOptions = "-metrics"; - } - if ( -e "$wrk/$asm.catmap" && !-e "$termDir/$asm.catmap" ) { - link "$wrk/$asm.catmap", "$termDir/$asm.catmap"; - } - if ( -e "$wrk/$asm.seq.features" && !-e "$termDir/$asm.seq.features" ) { - link "$wrk/$asm.seq.features", "$termDir/$asm.seq.features"; - } - if (runCommand("$termDir", "$perl $bin/caqc.pl -euid $qcOptions $termDir/$asm.asm")) { - rename "$termDir/$asm.qc", "$termDir/$asm.qc.FAILED"; - } - - summarizeConsensusStatistics("$wrk/5-consensus"); - summarizeConsensusStatistics("$wrk/8-consensus"); - - open(F, ">> $termDir/$asm.qc") or caFailure("failed to append to '$termDir/$asm.qc'", undef); - - if (-e "$wrk/5-consensus/consensus.stats.summary") { - print F "\n[Unitig Consensus]\n"; - open(G, "< $wrk/5-consensus/consensus.stats.summary") or caFailure("failed to open '$wrk/5-consensus/consensus.stats.summary'", undef); - while () { - print F $_; - } - close(G); - } - - if (-e "$wrk/8-consensus/consensus.stats.summary") { - print F "\n[Contig Consensus]\n"; - open(G, "< $wrk/8-consensus/consensus.stats.summary") or caFailure("failed to open '$wrk/8-consensus/consensus.stats.summary'", undef); - while () { - print F $_; - } - close(G); - } - - if (-e "$termDir/$asm.qc.readdepth") { - open(G, "< $termDir/$asm.qc.readdepth") or caFailure("failed to open '$termDir/$asm.qc.readdepth'", undef); - while () { - print F $_; - } - close(G); - } - - close(F); - - unlink "$wrk/5-consensus/consensus.stats.summary"; - unlink "$wrk/8-consensus/consensus.stats.summary"; - unlink "$termDir/$asm.qc.readdepth"; - } - - - ######################################## - # - # Mercy merQC - # - ######################################## - - - if ((getGlobal("merQC") > 0) && - (! -e "$termDir/$asm.merQC") && - (merylVersion() eq "Mighty")) { - - system("mkdir $termDir/mercy") if (! -e "$termDir/mercy"); - - my $cmd; - my $ms = getGlobal("merQCmerSize"); - my $mem = getGlobal("merQCmemory"); - my $verbose = ""; - - if (! -e "$termDir/mercy/$asm-ms$ms-frgFull.mcidx") { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -memory $mem $verbose "; - $cmd .= "-s $wrk/$asm.gkpStore:untrim "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-frgFull"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-frgFull.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-frgFull.mcdat"; - } - } - if (! -e "$termDir/mercy/$asm-ms$ms-frgTrim.mcidx") { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -memory $mem $verbose "; - $cmd .= "-s $wrk/$asm.gkpStore "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-frgTrim"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-frgTrim.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-frgTrim.mcdat"; - } - } - - # XXX This can likely be optimized -- by feeding - # asmOutputcontigsFasta directly to meryl. It'd be harder - # (but great) if only one pass through the asm file could be - # made. Easier then if we write all three files at the same - # time. - - if (! -e "$termDir/mercy/$asm.ctgNorm.fasta") { - link "$termDir/$asm.ctg.fasta", "$termDir/mercy/$asm.ctgNorm.fasta"; - } - if (! -e "$termDir/mercy/$asm.ctgDreg.fasta") { - link "$termDir/$asm.deg.fasta", "$termDir/mercy/$asm.ctgDreg.fasta"; - } - if (! -e "$termDir/mercy/$asm.ctgAll.fasta") { - system "cat $termDir/$asm.{ctg,deg}.fasta > $termDir/mercy/$asm.ctgAll.fasta"; - } - - if ((! -e "$termDir/mercy/$asm-ms$ms-ctgNorm.mcidx") && - (-e "$termDir/mercy/$asm.ctgNorm.fasta")) { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -segments 4 $verbose "; - $cmd .= "-s $termDir/mercy/$asm.ctgNorm.fasta "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-ctgNorm"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-ctgNorm.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-ctgNorm.mcdat"; - } - } - if ((! -e "$termDir/mercy/$asm-ms$ms-ctgDreg.mcidx") && - (-e "$termDir/mercy/$asm.ctgDreg.fasta")) { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -segments 4 $verbose "; - $cmd .= "-s $termDir/mercy/$asm.ctgDreg.fasta "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-ctgDreg"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-ctgDreg.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-ctgDreg.mcdat"; - } - } - if ((! -e "$termDir/mercy/$asm-ms$ms-ctgAll.mcidx") && - (-e "$termDir/mercy/$asm.ctgAll.fasta")) { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -segments 4 $verbose "; - $cmd .= "-s $termDir/mercy/$asm.ctgAll.fasta "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-ctgAll"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-ctgAll.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-ctgAll.mcdat"; - } - } - - if (! -e "$termDir/$asm-ms$ms.merQC") { - $cmd = "$bin/mercy "; - $cmd .= "-af $termDir/mercy/$asm-ms$ms-frgFull " if (-e "$termDir/mercy/$asm-ms$ms-frgFull.mcidx"); - $cmd .= "-tf $termDir/mercy/$asm-ms$ms-frgTrim " if (-e "$termDir/mercy/$asm-ms$ms-frgTrim.mcidx"); - $cmd .= "-co $termDir/mercy/$asm-ms$ms-ctgNorm " if (-e "$termDir/mercy/$asm-ms$ms-ctgNorm.mcidx"); - $cmd .= "-dc $termDir/mercy/$asm-ms$ms-ctgDreg " if (-e "$termDir/mercy/$asm-ms$ms-ctgDreg.mcidx"); - $cmd .= "-ac $termDir/mercy/$asm-ms$ms-ctgAll " if (-e "$termDir/mercy/$asm-ms$ms-ctgAll.mcidx"); - $cmd .= "> $termDir/$asm-ms$ms.merQC"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - rename "$termDir/$asm-ms$ms.merQC", "$termDir/$asm-ms$ms.merQC.FAILED"; - } - } - } - - - ######################################## - # - # AGP and ACE file generation - # - ######################################## - - - if (getGlobal("createAGP") > 0) { - if (! -e "$termDir/$asm.agp") { - if (runCommand($termDir, "$perl $bin/asmToAGP.pl < $termDir/$asm.asm > $termDir/$asm.agp")) { - rename "$termDir/$asm.agp", "$termDir/$asm.agp.FAILED"; - } - } - } - - if (getGlobal("createACE") > 0) { - if (! -e "$termDir/$asm.ace.bz2") { - if (! -e "$termDir/$asm.frg") { - if (runCommand($termDir, "$bin/gatekeeper -dumpfrg -allreads $wrk/$asm.gkpStore > $termDir/$asm.frg 2> $termDir/gatekeeper.err")) { - caFailure("gatekeeper failed to dump fragments for ACE generation", "$termDir/gatekeeper.err"); - } - unlink "$termDir/gatekeeper.err"; - } - if (runCommand($termDir, "$perl $bin/ca2ace.pl $termDir/$asm.asm")) { - rename "$termDir/$asm.ace.bz2", "$termDir/$asm.ace.FAILED.bz2"; - } - } - } - - unlink "$wrk/$asm.asm"; - unlink "$wrk/$asm.qc"; - - link "$termDir/$asm.asm", "$wrk/$asm.asm"; - link "$termDir/$asm.qc", "$wrk/$asm.qc"; - - return(0); -} - -1; -use strict; - -# Assembly all done, remove some of the crud. - -sub cleaner () { - my $cleanType = getGlobal("cleanup"); - my $cleanValu = 0; - - print STDERR "The Cleaner has arrived. Doing '$cleanType'.\n"; - - $cleanValu = 0 if ($cleanType =~ m/none/); - $cleanValu = 1 if ($cleanType =~ m/light/); - $cleanValu = 2 if ($cleanType =~ m/heavy/); - $cleanValu = 3 if ($cleanType =~ m/aggressive/); - - - if ($cleanValu >= 1) { - # - # Remove some of the more useless output files, - # and many of the stores and whatnot that can be recreated. - # - rmrf("$asm.obtStore"); - rmrf("0-mercounts/*blocks", "0-mercounts/*sequence"); - rmrf("0-overlaptrim-overlap/overlap*out"); - rmrf("1-overlapper/overlap*out"); - rmrf("4-unitigger/$asm.fge", "4-unitigger/$asm.fgv"); - rmrf("7*/rezlog"); - } - - - if ($cleanValu >= 2) { - # - # - # - } - - - if ($cleanValu >= 3) { - # - # Nuke everything except 9-terminator. Be paranoid about doing it. - # - rmrf("0-mercounts"); - rmrf("0-overlaptrim"); - rmrf("0-overlaptrim-overlap"); - rmrf("1-overlapper"); - rmrf("2-frgcorr"); - rmrf("3-ovlcorr"); - rmrf("4-unitigger"); - rmrf("5-consensus"); - rmrf("7-[0-9]-CGW"); - rmrf("7-[0-9]-ECR"); - rmrf("7-CGW"); - rmrf("8-consensus"); - rmrf("$asm.SeqStore"); - rmrf("$asm.asm"); - rmrf("$asm.frg"); - rmrf("$asm.gkpStore"); - rmrf("$asm.obtStore"); - rmrf("$asm.ovlStore"); - rmrf("$asm.qc"); - } - - - if ($cleanType =~ m/compress/) { - # Compress *.err (usually tiny) - # Compress overlaps (*ovb) - # Compress checkpoints (*ckp.*[0-9]) - } -} -use strict; - -sub unitigger () { - my $bin = getBinDirectory(); - - - if (0) { - my $cmd = "$bin/removeMateOverlap -gkp $wrk/$asm.gkpStore -ovl $wrk/$asm.ovlStore"; - if (runCommand("$wrk", $cmd)) { - caFailure("failed to remove mate overlaps", undef); - } - } - - - if (! -e "$wrk/4-unitigger/unitigger.success") { - - # Default to unitigger, unless the gkpStore says otherwise. - # - if (!defined(getGlobal("unitigger"))) { - setGlobal("unitigger", "utg"); - - if (system("$bin/gatekeeper -isfeatureset 0 forceBOGunitigger $wrk/$asm.gkpStore") == 0) { - setGlobal("unitigger", "bog"); - } - } - - system("mkdir $wrk/4-unitigger") if (! -e "$wrk/4-unitigger"); - - my $l = getGlobal("utgGenomeSize"); - my $e = getGlobal("utgErrorRate"); - my $E = getGlobal("utgErrorLimit"); - - my $B = int($numFrags / getGlobal("cnsPartitions")); - $B = getGlobal("cnsMinFrags") if ($B < getGlobal("cnsMinFrags")); - - my $u = getGlobal("utgBubblePopping"); - - my $unitigger = getGlobal("unitigger"); - - my $cmd; - - if ($unitigger eq "bog") { - my $bmd = getGlobal("bogBadMateDepth"); - - $cmd = "$bin/buildUnitigs "; - $cmd .= " -O $wrk/$asm.ovlStore "; - $cmd .= " -G $wrk/$asm.gkpStore "; - $cmd .= " -T $wrk/$asm.tigStore "; - $cmd .= " -B $B "; - $cmd .= " -e $e "; - $cmd .= " -E $E "; - $cmd .= " -s $l " if (defined($l)); - $cmd .= " -b " if (getGlobal("bogBreakAtIntersections") == 1); - $cmd .= " -m $bmd " if (defined($bmd)); - $cmd .= " -U " if ($u == 1); - $cmd .= " -o $wrk/4-unitigger/$asm "; - $cmd .= " > $wrk/4-unitigger/unitigger.err 2>&1"; - } elsif ($unitigger eq "utg") { - $cmd = "$bin/unitigger "; - $cmd .= " -I $wrk/$asm.ovlStore "; - $cmd .= " -F $wrk/$asm.gkpStore "; - $cmd .= " -T $wrk/$asm.tigStore "; - $cmd .= " -B $B "; - $cmd .= " -e $e "; - $cmd .= " -k " if (getGlobal("utgRecalibrateGAR") == 1); - $cmd .= " -l $l " if defined($l); - $cmd .= " -d 1 -x 1 -z 10 -j 5 -U $u "; - $cmd .= " -o $wrk/4-unitigger/$asm "; - $cmd .= " > $wrk/4-unitigger/unitigger.err 2>&1"; - } else { - caFailure("unknown unitigger $unitigger; must be 'bog' or 'utg'", undef); - } - - stopBefore("unitigger", $cmd); - - if (runCommand("$wrk/4-unitigger", $cmd)) { - caFailure("failed to unitig", "$wrk/4-unitigger/unitigger.err"); - } - - touch("$wrk/4-unitigger/unitigger.success"); - } - - stopAfter("unitigger"); -} - -1; -use strict; - -sub getUMDOverlapperClearRange ($) { - my $dir = shift @_; - my $fileName = "$asm.obtClrRange"; - - open(F, "ls -1 -d $wrk/$dir/*overlapperRunDir* |"); - open(G, ">$wrk/$dir/$fileName") or caFailure("failed to write '$wrk/$dir/$fileName'", undef); - while () { - chomp; - - open(T, "< $_/revisedOrigTrimsForReads.txt") or caFailure("failed to open '$_/revisedOrigTrimsForReads.txt'", undef); - while () { - my @trimData = split(/\s+/,$_); - my $uid = $trimData[0]; - my $bgn = $trimData[1]; - my $end = $trimData[2]; - - if ($bgn < $end) { - print G "frg uid $uid obt all $bgn $end\n"; - } else { - print G "frg uid $uid obt all $end $bgn\n"; - } - } - close(T); - } - close(F); - close(G); - - return $fileName; -} - -sub UMDoverlapper () { - goto alldone if (-d "$wrk/$asm.ovlStore"); - goto alldone if (getGlobal("ovlOverlapper") ne "umd"); - - my $outDir = "1-overlapper"; - system("mkdir $wrk/$outDir") if (! -d "$wrk/$outDir"); - - my $jobID = "0000001"; - system("mkdir $wrk/$outDir/$jobID") if (! -d "$wrk/$outDir/$jobID"); - - my $vi = getGlobal("vectorIntersect"); - - my $bin = getBinDirectory(); - - #dump the frag file from gkp if it does not exist already - # should check if vector clear then dump vec range else dump this range - if (defined($vi)) { - if (runCommand($wrk, "$bin/gatekeeper -clear VEC -dumpfrg $wrk/$asm.gkpStore 2> $wrk/gatekeeper.err | grep -v 'No source' > $wrk/$asm.vec.frg")) { - caFailure("failed to dump gatekeeper store for UMD overlapper", "$wrk/gatekeeper.err"); - } - } - elsif ( ! -s "$wrk/$asm.frg" ) { - if (runCommand($wrk, "$bin/gatekeeper -dumpfrg $wrk/$asm.gkpStore 2> $wrk/gatekeeper.err | grep -v 'No source' > $wrk/$asm.frg")) { - caFailure("failed to dump gatekeeper store for UMD overlapper", "$wrk/gatekeeper.err"); - } - } - - # create a job list (we have only one job for right now) - open(SUB, "> $wrk/$outDir/ovljobs.dat") or caFailure("failed to open '$wrk/$outDir/ovljobs.dat'", undef); - print SUB "$jobID "; print SUB "\n"; - print SUB "$jobID "; print SUB "\n"; - close(SUB); - - # run frg file command - # - my $cmd = "$bin/runUMDOverlapper "; - $cmd .= getGlobal("umdOverlapperFlags") . " "; - - # when we have vector clear, pass it to the overlapper, otherwise tell the overlapper to figure it out - if (defined($vi)) { - $cmd .= "-vector-trim-file $wrk/$asm.vec.frg $wrk/$asm.vec.frg " - } else { - $cmd .= "-calculate-trims $wrk/$asm.frg "; - } - - $cmd .= "$wrk/$outDir/$jobID/$asm.umd.frg "; - $cmd .= " > $wrk/$outDir/$jobID/overlapper.out 2>$wrk/$outDir/$jobID/overlapper.err"; - - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("failed to run UMD overlapper", "$wrk/$outDir/$jobID/overlapper.err"); - } - - my $trimFile = getUMDOverlapperClearRange($outDir); - $cmd = ""; - $cmd .= "$bin/gatekeeper --edit "; - $cmd .= "$wrk/$outDir/$trimFile $wrk/$asm.gkpStore"; - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("failed to update OBT trims", "undef"); - } - - # now create the binary overlaps - $cmd = ""; - $cmd .= "cat $wrk/$outDir/$jobID/$asm.umd.reliable.overlaps | "; - $cmd .= "awk '{print \$1\"\\t\"\$2\"\\t\"\$3\"\\t\"\$4\"\\t\"\$5\"\\t\"\$6\"\\t\"\$7}' | "; - $cmd .= "$bin/convertOverlap "; - $cmd .= "-b -ovldump "; - $cmd .= " > $wrk/$outDir/$jobID/$jobID.ovb"; - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("failed to create overlaps", undef); - } - - #cleanup - rmrf("$asm.vec.frg"); - - touch("$wrk/$outDir/$jobID/$jobID.success"); - stopAfter("overlapper"); - - alldone: -} - -1; -use strict; - - -sub SANDoverlapper () { - my $sandwrk = "$wrk/1-overlapper"; - mkdir($sandwrk); - - goto alldone if (getGlobal("ovlOverlapper") ne "sand"); - - my $bin = getBinDirectory(); - - my $vecopt = ""; - if(defined(getGlobal("vectorIntersect"))) { - $vecopt = "-clear VEC"; - } - - unless(-f "$sandwrk/$asm.fa") { - if(runCommand($wrk, "$bin/gatekeeper $vecopt -dumpfastaseq $wrk/$asm.gkpStore 2> $sandwrk/gatekeeper.err | grep -v 'No source' > $sandwrk/$asm.fa")) { - caFailure("failed to dump gatekeeper store for SAND overlapper", "$sandwrk/gatekeeper.err"); - } - } - - unless(-f "$sandwrk/$asm.cfa") { - if(runCommand($sandwrk, "sand_compress_reads -i $asm.fa $asm.cfa 2>compress.err")) { - caFailure("failed to compress reads for SAND overlapper", "$sandwrk/compress.err"); - } - } - - unless(-f "$sandwrk/$asm.repeats") { - if(runCommand($sandwrk, "$bin/meryl -B -m 22 -C -L 25 -v -o $asm.meryl -s $asm.fa && $bin/meryl -Dt -s $asm.meryl -n 25 >$asm.repeats 2>repeats.err")) { - caFailure("failed to generate repeats for SAND overlapper", "$sandwrk/repeats.err"); - } - } - - unless(-f "$sandwrk/$asm.cand"){ - if(runCommand("$sandwrk","sand_filter_master -p ".getGlobal("sandPort")." ".getGlobal("sandFilterFlags")." -r $asm.repeats $asm.cfa $asm.cand 2>filter.err")) { - caFailure("failed to run sand_filter_master", "$sandwrk/filter.err"); - } - } - - unless(-f "$sandwrk/$asm.ovl"){ - if(runCommand("$sandwrk","sand_align_master -p ".getGlobal("sandPort")." ".getGlobal("sandAlignFlags")." sand_align_kernel $asm.cand $asm.cfa $asm.ovl 2>align.err")) { - caFailure("failed to run sand_align_master", "$sandwrk/align.err"); - } - } - - unless(-f "$sandwrk/$asm.ovb.gz"){ - if (runCommand("$sandwrk","$bin/convertOverlap -b -ovlmesg < $asm.ovl | gzip > $asm.ovb.gz")) { - caFailure("failed to create overlaps", undef); - } - } - - touch("$sandwrk/$asm.success"); - stopAfter("overlapper"); - - alldone: -} - -1; -use strict; - -sub getFigaroClearRange ($) { - my $outDir = shift @_; - my $fileName = "$asm.clv"; - - # the figaro output is UID,IID CLR_BGN - # first reformat is as UID CLR_BGN - runCommand("$wrk/$outDir", "awk '{print substr(\$1, 1, index(\$1, \",\")-1)\" \"\$2}' $wrk/$outDir/$asm.vectorcuts > $wrk/$outDir/$asm.clrBgn"); - - # sort by UID and join it together with the read end to form the full vector clear range - runCommand("$wrk/$outDir", "sort -nk 1 -T $wrk/$outDir $wrk/$outDir/$asm.clrBgn > $wrk/$outDir/$asm.clrBgn.sorted"); - runCommand("$wrk/$outDir", "join $wrk/$outDir/$asm.clrBgn.sorted $wrk/$asm.untrimmed -o 1.1,1.2,2.3 > $wrk/$outDir/$fileName"); - - # clean up - rmrf("$outDir/$asm.clrBgn"); - rmrf("$outDir/$asm.clrBgn.sorted"); - - return $fileName; -} - -sub generateFigaroTrim($) { - my $outDir = shift @_; - my $bin = getBinDirectory(); - - return if (-e "$wrk/$outDir/trim.success"); - - # run command - # - my $cmd = "$bin/figaro "; - $cmd .= getGlobal("figaroFlags") . " "; - $cmd .= "-F $wrk/$asm.fasta -P $asm "; - $cmd .= " > $wrk/$outDir/figaro.out 2>$wrk/$outDir/figaro.err"; - - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("figaro died", "$wrk/$outDir/figaro.err"); - } - - # update the gkpStore with newly computed clear ranges - return getFigaroClearRange($outDir); -} - -sub getUMDTrimClearRange($) { - my $outDir = shift @_; - my $fileName = "$asm.clv"; - - # the umd output is CLR_BGN (in the same order as the input) - # to join it with the UID we first number both the list of UIDs in the fasta file and the CLR_BGN - runCommand("$wrk/$outDir", "cat $wrk/$asm.fasta | grep \">\" | awk '{print NR\" \"substr(\$1, 2, index(\$1, \",\")-2)}' > $wrk/$outDir/$asm.numberedUids"); - runCommand("$wrk/$outDir", "awk '{print NR\" \"\$0}' $asm.vectorcuts > $asm.numberedCuts"); - - # now we join them together - runCommand("$wrk/$outDir", "join $wrk/$outDir/$asm.numberedUids $wrk/$outDir/$asm.numberedCuts -o 1.2,2.2 > $wrk/$outDir/$asm.clrBgn"); - - # now we can join together the UID CLR_BGN with the read-end information for the full clear range - runCommand("$wrk/$outDir", "sort -nk 1 -T $wrk/$outDir $wrk/$outDir/$asm.clrBgn > $wrk/$outDir/$asm.clrBgn.sorted"); - runCommand("$wrk/$outDir", "join $wrk/$outDir/$asm.clrBgn.sorted $wrk/$asm.untrimmed -o 1.1,1.2,2.3 > $wrk/$outDir/$fileName"); - - # clean up - rmrf("$outDir/$asm.numberedUids"); - rmrf("$outDir/$asm.numberedCuts"); - rmrf("$outDir/$asm.clrBgn"); - rmrf("$outDir/$asm.clrBgn.sorted"); - rmrf("$outDir/vectorTrimIntermediateFile001.*"); - - return $fileName; -} - -sub generateUMDTrim($) { - my $outDir = shift @_; - my $bin = getBinDirectory(); - - return if (-e "$wrk/$outDir/trim.success"); - - # run command - # - my $cmd = "$bin/dataWorkReduced/findVectorTrimPoints.perl "; - $cmd .= "$wrk/$asm.fasta $wrk/$outDir/$asm.vectorcuts "; - $cmd .= " > $wrk/$outDir/umd.out 2>$wrk/$outDir/umd.err"; - - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("UMD overlapper dataWorkReduced/findVectorTrimPoints.perl died", - "$wrk/$outDir/umd.err"); - } - - return getUMDTrimClearRange($outDir); -} - -sub generateVectorTrim ($) { - my $vi = getGlobal("vectorIntersect"); - my $trimmer = getGlobal("vectorTrimmer"); - my $outDir = "0-preoverlap"; - my $bin = getBinDirectory(); - my $trimFile = undef; - - # when vector insersect is specified or no external trimming is requested, do nothing - return if (defined($vi)); - return if ($trimmer eq "ca"); - return if (-e "$wrk/$outDir/trim.success"); - - #dump the fasta file from gkp - if ( ! -e "$wrk/$asm.fasta" ) { - if (runCommand($wrk, "$bin/gatekeeper -dumpfastaseq -clear UNTRIM $wrk/$asm.gkpStore 2> $wrk/$outDir/gatekeeper.err > $wrk/$asm.fasta")) { - caFailure("failed to dump gatekeeper store for figaro trimmer", - "$wrk/$outDir/gatekeeper.err"); - } - } - #dump the clr range - if ( ! -e "$wrk/$asm.untrimmed" ) { - if (runCommand($wrk, "$bin/gatekeeper -dumpfragments -tabular -clear UNTRIM $wrk/$asm.gkpStore 2> $wrk/$outDir/gatekeeper.err | grep -v 'UID' |awk '{print \$1\" \"\$12\" \"\$13}' | sort -nk 1 -T $wrk/ > $wrk/$asm.untrimmed")) { - caFailure("failed to dump gatekeeper quality trim points for figaro trimmer", - "$wrk/$outDir/gatekeeper.err"); - } - } - - if ($trimmer eq "figaro") { - $trimFile = generateFigaroTrim($outDir); - } elsif($trimmer eq "umd") { - $trimFile = generateUMDTrim($outDir); - } else { - caFailure("unknown vector trimmer $trimmer", undef); - } - - # set the global vector trim file so that the subsequent code will update the gkp for us - setGlobal("vectorIntersect", "$wrk/$outDir/$trimFile"); - - #cleanup - rmrf("$asm.fasta"); - rmrf("$asm.untrimmed"); - - touch("$wrk/$outDir/trim.success"); - - return; -} - -1; -use strict; - -# Assembly all done, toggle the unitigs and re-run CGW and subsequent steps of the assembly. - -sub toggler () { - my $toggledDir = "10-toggledAsm"; - my $ecrEdits = "frg.ECREdits.txt"; - - return if (-d "$wrk/$toggledDir/$asm.asm"); - return if (getGlobal("doToggle") == 0); - - my $minLength = getGlobal("toggleUnitigLength"); - my $numInstances = getGlobal("toggleNumInstances"); - my $maxDistance = getGlobal("toggleMaxDistance"); - my $bin = getBinDirectory(); - my $cmd = ""; - - system("mkdir $wrk/$toggledDir") if (! -d "$wrk/$toggledDir"); - - # link the stores for space savings - if (! -e "$wrk/$toggledDir/$asm.ovlStore") { - system("ln -s $wrk/$asm.ovlStore $wrk/$toggledDir/$asm.ovlStore") if (! -e "$wrk/$toggledDir/$asm.ovlStore"); - } - - if (! -e "$wrk/$toggledDir/$asm.gkpStore") { - system("mkdir $wrk/$toggledDir/$asm.gkpStore") if (! -d "$wrk/$toggledDir/$asm.gkpStore"); - system("ln -s $wrk/$asm.gkpStore/* $wrk/$toggledDir/$asm.gkpStore") if (! -e "$wrk/$toggledDir/$asm.gkpStore/frg"); - - # but the frg store is rewritten by cgw, so reset the ECR clear-ranges - system("rm -rf $wrk/$toggledDir/$asm.gkpStore/*00*"); - system("rm -rf $wrk/$toggledDir/$asm.gkpStore/fnm"); - system("cp $wrk/$asm.gkpStore/fnm $wrk/$toggledDir/$asm.gkpStore/fnm"); - - # back out the ECR changes from the gkp store - $cmd = "$bin/gatekeeper "; - $cmd .= " --revertclear OBTCHIMERA $wrk/$toggledDir/$asm.gkpStore"; - $cmd .= " > $wrk/$toggledDir/$asm.gkpStore/$ecrEdits.err 2> $wrk/$toggledDir/$asm.gkpStore/$ecrEdits.err"; - if (runCommand("$wrk/$toggledDir", $cmd)) { - caFailure("failed to get pre-ECR clear-ranges for toggling", "$wrk/$toggledDir/$asm.gkpStore/$ecrEdits.err"); - } - } - - system("ln -s $wrk/4-unitigger $wrk/$toggledDir") if (! -e "$wrk/$toggledDir/4-unitigger"); - system("ln -s $wrk/5-consensus $wrk/$toggledDir") if (! -e "$wrk/$toggledDir/5-consensus"); - - # copy the tigStore - if (! -e "$wrk/$toggledDir/$asm.tigStore") { - system("mkdir $wrk/$toggledDir/$asm.tigStore") ; - system("cp -rf $wrk/$asm.tigStore/*v001* $wrk/$toggledDir/$asm.tigStore"); - system("cp -rf $wrk/$asm.tigStore/*v002* $wrk/$toggledDir/$asm.tigStore"); - } - - # create the toggled cgi file - if (! -e "$wrk/$toggledDir/toggled.success") { - $cmd = "$bin/markUniqueUnique "; - $cmd .= " -a $wrk/9-terminator/$asm.asm "; - $cmd .= " -l $minLength "; - $cmd .= " -n $numInstances "; - $cmd .= " -d $maxDistance "; - $cmd .= " $wrk/$toggledDir/$asm.tigStore"; - $cmd .= " > $wrk/$toggledDir/toggle.err 2> $wrk/$toggledDir/toggle.err"; - if (runCommand("$wrk/$toggledDir", $cmd)) { - caFailure("failed to toggle unitigs ", "$wrk/$toggledDir/toggle.err"); - } - - touch("$wrk/$toggledDir/toggled.success"); - } - - my $numToggles = `tail -n 1 $wrk/$toggledDir/toggle.err | awk '{print \$2}'`; - if ($numToggles == 0) { - print "No toggling occured. Finished.\n"; - } - else { - $wrk = "$wrk/$toggledDir"; - - scaffolder(); - postScaffolderConsensus(); - terminate(); - cleaner(); - } -} - - -my @specFiles; -my @specOpts; -my @fragFiles; - -# Set global defaults. -setDefaults(); - -# At some pain, we stash the original options for later use. We need -# to use these when we resubmit ourself to SGE. We can't simply dump -# all of @ARGV into here, because we need to fix up relative paths. -# -$commandLineOptions = ""; - -while (scalar(@ARGV)) { - my $arg = shift @ARGV; - - if ($arg =~ m/^-d/) { - $wrk = shift @ARGV; - $wrk = "$ENV{'PWD'}/$wrk" if ($wrk !~ m!^/!); - $commandLineOptions .= " -d \"$wrk\""; - - } elsif ($arg eq "-p") { - $asm = shift @ARGV; - $commandLineOptions .= " -p \"$asm\""; - - } elsif ($arg eq "-s") { - push @specFiles, shift @ARGV; - - } elsif ($arg eq "-version") { - setGlobal("version", 1); - - } elsif ($arg eq "-options") { - setGlobal("options", 1); - - } elsif (($arg =~ /\.frg$|frg\.gz$|frg\.bz2$/i) && (-e $arg)) { - $arg = "$ENV{'PWD'}/$arg" if ($arg !~ m!^/!); - push @fragFiles, $arg; - $commandLineOptions .= " \"$arg\""; - - } elsif (($arg =~ /\.sff$|sff\.gz$|sff\.bz2$/i) && (-e $arg)) { - $arg = "$ENV{'PWD'}/$arg" if ($arg !~ m!^/!); - push @fragFiles, $arg; - $commandLineOptions .= " \"$arg\""; - - } elsif (($arg =~ /\.ace$/i) && (-e $arg)) { - $arg = "$ENV{'PWD'}/$arg" if ($arg !~ m!^/!); - push @fragFiles, $arg; - $commandLineOptions .= " \"$arg\""; - - } elsif ($arg =~ m/=/) { - push @specOpts, $arg; - $commandLineOptions .= " \"$arg\""; - - } else { - setGlobal("help", - getGlobal("help") . "File not found or invalid command line option '$arg'\n"); - } -} - - -setGlobal("help", getGlobal("help") . "Assembly name prefix not supplied with -p.\n") if (!defined($asm)); -setGlobal("help", getGlobal("help") . "Directory not supplied with -d.\n") if (!defined($wrk)); - - -my $bin = getBinDirectory(); - -@fragFiles = setParametersFromFile("$bin/spec/runCA.default.specFile", @fragFiles) if (-e "$bin/spec/runCA.default.specFile"); -@fragFiles = setParametersFromFile("$ENV{'HOME'}/.runCA", @fragFiles) if (-e "$ENV{'HOME'}/.runCA"); - - -# For each of the specfiles on the command line, find the actual file and make it an absolute path. -# These can be in the current directory (e.g., 'my.spec'), or in the installed directory ('$bin/spec'). -# -foreach my $specFile (@specFiles) { - - if ((-e "$specFile") && (! -d "$specFile")) { - $specFile = "$ENV{'PWD'}/$specFile" if ($specFile !~ m!^/!); - - } elsif ((-e "$bin/spec/$specFile") && (! -d "$bin/spec/$specFile")) { - $specFile = "$bin/spec/$specFile"; - - } elsif ((-e "$bin/spec/$specFile.specFile") && (! -d "$bin/spec/$specFile.specFile")) { - $specFile = "$bin/spec/$specFile.specFile"; - - } else { - die "specFile '$specFile' not found.\n"; - } - - $commandLineOptions .= " -s \"$specFile\""; - - @fragFiles = setParametersFromFile($specFile, @fragFiles); -} - -setParametersFromCommandLine(@specOpts); - -setParameters(); - -printHelp(); - -# Fail immediately if we run the script on the grid, and the gkpStore -# directory doesn't exist and we have no input files. Without this -# check we'd fail only after being scheduled on the grid. -# -if ((getGlobal("scriptOnGrid") == 1) && - (! -d "$wrk/$asm.gkpStore") && - (scalar(@fragFiles) == 0)) { - caFailure("no fragment files specified, and stores not already created", undef); -} - -checkDirectories(); - -# If not already on the grid, see if we should be on the grid. -# N.B. the arg MUST BE undef. -# -submitScript(undef) if (!runningOnGrid()); - -# Begin - -preoverlap(@fragFiles); -merTrim(); -overlapTrim(); -createOverlapJobs("normal"); -checkOverlap("normal"); -createOverlapStore(); -overlapCorrection(); -unitigger(); -postUnitiggerConsensus(); -scaffolder(); -postScaffolderConsensus(); -terminate(); -cleaner(); -toggler(); - -exit(0); -#!/usr/local/bin/perl - -# Confidential -- Do Not Distribute -# Copyright (c) 2002 PE Corporation (NY) through the Celera Genomics Group -# All Rights Reserved. - -package scheduler; - -use strict; -use POSIX "sys_wait_h"; - -$| = 1; - -# Called by "use scheduler;" -sub import () { -} - - -###################################################################### -# -# Functions for running multiple processes at the same time. -# -my $numberOfProcesses = 0; -my $numberOfProcessesToWait = 0; -my @processQueue = (); -my @processesRunning = (); -my $printProcessCommand = 1; - -sub schedulerSetNumberOfProcesses { - $numberOfProcesses = shift @_; -} - -sub schedulerSetNumberOfProcessesToWaitFor { - $numberOfProcessesToWait = shift @_; -} - -sub schedulerSetShowCommands { - print STDERR "RESET PRINT COMMAND!\n"; - $printProcessCommand = shift @_; -} - - -sub schedulerSubmit { - chomp @_; - push @processQueue, @_; -} - -sub forkProcess { - my $process = shift @_; - my $pid; - - # From Programming Perl, page 167 - FORK: { - if ($pid = fork) { - # Parent - # - return($pid); - } elsif (defined $pid) { - # Child - # - exec($process); - } elsif ($! =~ /No more processes/) { - # EAGIN, supposedly a recoverable fork error - sleep 1; - redo FORK; - } else { - die "Can't fork: $!\n"; - } - } -} - -sub reapProcess { - my $pid = shift @_; - - if (waitpid($pid, &WNOHANG) > 0) { - return(1); - } else { - return(0); - } -} - -sub schedulerRun { - my @newProcesses; - - # Reap any processes that have finished - # - undef @newProcesses; - foreach my $i (@processesRunning) { - if (reapProcess($i) == 0) { - push @newProcesses, $i; - } - } - undef @processesRunning; - @processesRunning = @newProcesses; - - # Run processes in any available slots - # - while ((scalar(@processesRunning) < $numberOfProcesses) && - (scalar(@processQueue) > 0)) { - my $process = shift @processQueue; - print STDERR "$process\n"; - push @processesRunning, forkProcess($process); - } -} - -sub schedulerFinish { - my $child; - my @newProcesses; - my $remain; - - my $t = localtime(); - my $d = time(); - print STDERR "----------------------------------------START CONCURRENT $t\n"; - - $remain = scalar(@processQueue); - - # Run all submitted jobs - # - while ($remain > 0) { - schedulerRun(); - - $remain = scalar(@processQueue); - - if ($remain > 0) { - $child = waitpid -1, 0; - - undef @newProcesses; - foreach my $i (@processesRunning) { - push @newProcesses, $i if ($child != $i); - } - undef @processesRunning; - @processesRunning = @newProcesses; - } - } - - # Wait for them to finish, if requested - # - while (scalar(@processesRunning) > $numberOfProcessesToWait) { - waitpid(shift @processesRunning, 0); - } - - $t = localtime(); - print STDERR "----------------------------------------END CONCURRENT $t (", time() - $d, " seconds)\n"; -} - -1; diff -Nru cctools-7.0.22/sand/src/sand_runCA_7.0 cctools-7.1.2/sand/src/sand_runCA_7.0 --- cctools-7.0.22/sand/src/sand_runCA_7.0 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/sand_runCA_7.0 1970-01-01 00:00:00.000000000 +0000 @@ -1,5971 +0,0 @@ -#!/usr/bin/env perl - -use strict; - -use Config; # for @signame -use FindBin; -use Cwd; -use Carp; -use FileHandle; - -use Sys::Hostname; - -use POSIX qw(ceil floor sys_wait_h); - -my $bin = undef; # Path to binaries, set once in main. -my $cmd = undef; # Temporary string passed to system(). -my $wrk = undef; # Path to our assembly directory. -my $asm = undef; # Name of our assembly. - -my $numFrags; -my %global; -my %synops; - -my $commandLineOptions = ""; -my $specLog = ""; - -my @specFiles; -my @specOpts; -my @fragFiles; - - -sub submitBatchJobs($$) { - my $SGE = shift @_; - my $TAG = shift @_; - - if (runningOnGrid()) { - runCommand($wrk, $SGE) and caFailure("Failed to submit batch jobs."); - submitScript($TAG); - } else { - pleaseExecute($SGE); - } -} - - -# Decide what bin directory to use. -# -# When we are running on SGE, the path of this perl script is NOT -# always the correct architecture. If the submission host is -# FreeBSD, but the grid is Linux, the BSD box will submit -# FreeBSD/bin/runCA.pl to the grid -- unless it knows in advance, -# there is no way to pick the correct one. The grid host then has to -# have enough smarts to choose the correct binaries, and that is what -# we're doing here. -# -# To make it more trouble, shell scripts need to do all this by -# themselves. -# -sub getBinDirectory () { - my $installDir; - - ### - ### CODE DUPLICATION WITH getBinDirectoryShellCode - ### - - # Assume the current binary path is the path to the global CA - # install directory. - - # CODE DUPLICATION!!! - my @t = split '/', "$FindBin::RealBin"; - pop @t; # bin - pop @t; # arch, e.g., FreeBSD-amd64 - my $installDir = join '/', @t; # path to the assembler - # CODE DUPLICATION!!! - - # Guess what platform we are currently running on. - - my $syst = `uname -s`; chomp $syst; # OS implementation - my $arch = `uname -m`; chomp $arch; # Hardware platform - my $name = `uname -n`; chomp $name; # Name of the system - - $arch = "amd64" if ($arch eq "x86_64"); - $arch = "ppc" if ($arch eq "Power Macintosh"); - - my $path = "$installDir/$syst-$arch/bin"; - - my $pathMap = getGlobal("pathMap"); - if (defined($pathMap)) { - open(F, "< $pathMap") or caFailure("failed to open pathMap '$pathMap'", undef); - while () { - my ($n, $b) = split '\s+', $_; - $path = $b if ($name eq $n); - } - close(F); - } - - return($path); -} - -sub getBinDirectoryShellCode () { - my $string; - - # CODE DUPLICATION!!! - my @t = split '/', "$FindBin::RealBin"; - pop @t; # bin - pop @t; # arch, e.g., FreeBSD-amd64 - my $installDir = join '/', @t; # path to the assembler - # CODE DUPLICATION!!! - - $string = "\n"; - $string .= "syst=`uname -s`\n"; - $string .= "arch=`uname -m`\n"; - $string .= "name=`uname -n`\n"; - $string .= "\n"; - $string .= "if [ \"\$arch\" = \"x86_64\" ] ; then\n"; - $string .= " arch=\"amd64\"\n"; - $string .= "fi\n"; - $string .= "if [ \"\$arch\" = \"Power Macintosh\" ] ; then\n"; - $string .= " arch=\"ppc\"\n"; - $string .= "fi\n"; - $string .= "\n"; - $string .= "bin=\"$installDir/\$syst-\$arch/bin\"\n"; - $string .= "\n"; - - my $pathMap = getGlobal("pathMap"); - if (defined($pathMap)) { - open(PM, "< $pathMap") or caFailure("failed to open pathMap '$pathMap'", undef); - while () { - my ($n, $b) = split '\s+', $_; - $string .= "if [ \"\$name\" = \"$n\" ] ; then\n"; - $string .= " bin=\"$b\"\n"; - $string .= "fi\n"; - } - close(PM); - $string .= "\n"; - } - - return($string); -} - - - - - -# Return the second argument, unless the first argument is found in -# %global, in which case return that. -# -sub getGlobal ($) { - my $var = shift @_; - caFailure("script error -- $var has no defined value", undef) if (!exists($global{$var})); - return($global{$var}); -} - -sub setGlobal ($$) { - my $var = shift @_; - my $val = shift @_; - - # If no value, set the field to undefined, the default for many of the options. - - $val = undef if ($val eq ""); - - # Handle special cases. - - if ($var eq "merSize") { - setGlobal("obtMerSize", $val); - setGlobal("ovlMerSize", $val); - return; - } - - if ($var eq "merThreshold") { - setGlobal("obtMerThreshold", $val); - setGlobal("ovlMerThreshold", $val); - return; - } - - if ($var eq "overlapper") { - setGlobal("obtOverlapper", $val); - setGlobal("ovlOverlapper", $val); - return; - } - - # Update obsolete usage. - - if ($var eq "doOverlapTrimming") { - print STDERR "WARNING: option doOverlapTrimming deprecated. Use doOverlapBasedTrimming in the future.\n"; - $var = "doOverlapBasedTrimming"; - } - - if ($var eq "ovlMemory") { - print STDERR "ERROR: the runCA option ovlMemory is not recognized.\n"; - print STDERR "This runCA functionality changed in CABOG version 7.\n"; - print STDERR "Here are suggestions for new runCA option values:\n"; - print STDERR " ovlHashBits=23\n ovlHashBlockLength= 30000000\n (replaces ovlMemory=2GB)\n"; - print STDERR " ovlHashBits=24\n ovlHashBlockLength=110000000\n (replaces ovlMemory=4GB)\n"; - print STDERR " ovlHashBits=25\n ovlHashBlockLength=180000000\n (replaces ovlMemory=8GB)\n"; - exit(1); - } - - if ($var eq "ovlHashBlockSize") { - print STDERR "ERROR: the runCA option ovlHashBlockSize is not recognized.\n"; - print STDERR "This runCA functionality changed in CABOG version 7.\n"; - print STDERR "Try using ovlHashBlockLength instead.\n"; - exit(1); - } - - # Update aliases. - - $var = "doOverlapBasedTrimming" if ($var eq "doOBT"); - $var = "doExtendClearRanges" if ($var eq "doECR"); - - # If "help" exists, we're parsing command line options, and will catch this failure in - # printHelp(). Otherwise, this is an internal error, and we should bomb now. - # - if (!exists($global{$var})) { - if (exists($global{"help"})) { - setGlobal("help", getGlobal("help") . "'$var' is not a valid option; see 'runCA -options' for a list of valid options.\n"); - } else { - caFailure("'$var' is not a valid option Global variable.", undef); - } - } - - $global{$var} = $val; -} - -sub setDefaults () { - - # The rules: - # - # 1) Before changing these defaults, read the (printed) documentation. - # 2) After changing, update the documentation. - # 3) Add new defaults in the correct section. - # 4) Keep defaults in the same order as the documentation. - # 5) UPDATE THE DOCUMENTATION. - # - - ##### General Configuration Options (aka miscellany) - - $global{"pathMap"} = undef; - $synops{"pathMap"} = "File with a hostname to binary directory map"; - - $global{"shell"} = "/bin/sh"; - $synops{"shell"} = "Command interpreter to use; sh-compatible (e.g., bash), NOT C-shell (csh or tcsh)"; - - ##### Error Rates - - $global{"ovlErrorRate"} = 0.06; - $synops{"ovlErrorRate"} = "Overlaps above this error rate are not computed"; - - $global{"utgErrorRate"} = 0.015; - $synops{"utgErrorRate"} = "Overlaps at or below this error rate are used to construct unitigs (BOG and UTG)"; - - $global{"utgErrorLimit"} = 2.5; - $synops{"utgErrorLimit"} = "Overlaps at or below this number of errors are used to construct unitigs (BOG and UTG)"; - - $global{"utgGraphErrorRate"} = 0.030; - $synops{"utgGraphErrorRate"} = "Overlaps at or below this error rate are used to construct unitigs (BOGART)"; - - $global{"utgGraphErrorLimit"} = 3.25; - $synops{"utgGraphErrorLimit"} = "Overlaps at or below this number of errors are used to construct unitigs (BOGART)"; - - $global{"utgMergeErrorRate"} = 0.045; - $synops{"utgMergeErrorRate"} = "Overlaps at or below this error rate are used to construct unitigs (BOGART)"; - - $global{"utgMergeErrorLimit"} = 5.25; - $synops{"utgMergeErrorLimit"} = "Overlaps at or below this number of errors are used to construct unitigs (BOGART)"; - - $global{"cnsErrorRate"} = 0.06; - $synops{"cnsErrorRate"} = "Consensus expects alignments at about this error rate"; - - $global{"cgwErrorRate"} = 0.10; - $synops{"cgwErrorRate"} = "Unitigs/Contigs are not merged if they align above this error rate"; - - ##### Minimums - - $global{"frgMinLen"} = 64; - $synops{"frgMinLen"} = "Fragments shorter than this length are not loaded into the assembler"; - - $global{"ovlMinLen"} = 40; - $synops{"ovlMinLen"} = "Overlaps shorter than this length are not computed"; - - ##### Stopping conditions - - $global{"stopBefore"} = undef; - $synops{"stopBefore"} = "Tell runCA when to halt execution"; - - $global{"stopAfter"} = undef; - $synops{"stopAfter"} = "Tell runCA when to halt execution"; - - ##### Sun Grid Engine - - $global{"useGrid"} = 0; - $synops{"useGrid"} = "Enable SGE globally"; - - $global{"scriptOnGrid"} = 0; - $synops{"scriptOnGrid"} = "Enable SGE for runCA (and unitigger, scaffolder, other sequential phases)"; - - $global{"mbtOnGrid"} = 1; - $synops{"mbtOnGrid"} = "Enable SGE for mer-based trimming computations"; - - $global{"ovlOnGrid"} = 1; - $synops{"ovlOnGrid"} = "Enable SGE for overlap computations"; - - $global{"frgCorrOnGrid"} = 0; - $synops{"frgCorrOnGrid"} = "Enable SGE for the fragment error correction"; - - $global{"ovlCorrOnGrid"} = 0; - $synops{"ovlCorrOnGrid"} = "Enable SGE for the overlap error correction"; - - $global{"cnsOnGrid"} = 1; - $synops{"cnsOnGrid"} = "Enable SGE for consensus"; - - $global{"sge"} = undef; - $synops{"sge"} = "SGE options applied to all SGE jobs"; - - $global{"sgeName"} = undef; - $synops{"sgeName"} = "SGE jobs name suffix"; - - $global{"sgeScript"} = undef; - $synops{"sgeScript"} = "SGE options applied to runCA jobs (and unitigger, scaffolder, other sequential phases)"; - - $global{"sgeMerTrim"} = undef; - $synops{"sgeMerTrim"} = "SGE options applied to mer-based trimming jobs"; - - $global{"sgeOverlap"} = undef; - $synops{"sgeOverlap"} = "SGE options applied to overlap computation jobs"; - - $global{"sgeMerOverlapSeed"} = undef; - $synops{"sgeMerOverlapSeed"} = "SGE options applied to mer overlap seed (overmerry) jobs"; - - $global{"sgeMerOverlapExtend"} = undef; - $synops{"sgeMerOverlapExtend"} = "SGE options applied to mer overlap extend (olap-from-seeds) jobs"; - - $global{"sgeConsensus"} = undef; - $synops{"sgeConsensus"} = "SGE options applied to consensus jobs"; - - $global{"sgeFragmentCorrection"} = undef; - $synops{"sgeFragmentCorrection"} = "SGE options applied to fragment error correction jobs"; - - $global{"sgeOverlapCorrection"} = undef; - $synops{"sgeOverlapCorrection"} = "SGE options applied to overlap error correction jobs"; - - $global{"sgePropagateHold"} = undef; - $synops{"sgePropagateHold"} = undef; # Internal option - - ##### Preoverlap - - $global{"gkpFixInsertSizes"} = 1; - $synops{"gkpFixInsertSizes"} = "Update stddev to 0.10 * mean if it is too large"; - - ##### Vector Trimming - - $global{"vectorIntersect"} = undef; - $synops{"vectorIntersect"} = "File of vector clear ranges"; - - $global{"vectorTrimmer"} = "ca"; - $synops{"vectorTrimmer"} = "Use the CA default vector trimmer, or figaro"; - - $global{"figaroFlags"} = "-T 30 -M 100 -E 500 -V f"; - $synops{"figaroFlags"} = "Options to the figaro vector trimmer"; - - ##### Overlap Based Trimming - - $global{"perfectTrimming"} = undef; # SECRET! - $synops{"perfectTrimming"} = undef; # SECRET! - - $global{"doOverlapBasedTrimming"} = 1; - $synops{"doOverlapBasedTrimming"} = "Enable the Overlap Based Trimming module (doOBT and doOverlapTrimming are aliases)"; - - $global{"doDeDuplication"} = 1; - $synops{"doDeDuplication"} = "Enable the OBT duplication detection and cleaning module for 454 reads, enabled automatically"; - - $global{"doChimeraDetection"} = "normal"; - $synops{"doChimeraDetection"} = "Enable the OBT chimera detection and cleaning module; 'off', 'normal' or 'aggressive'"; - - ##### Mer Based Trimming - - $global{"mbtBatchSize"} = 1000000; - $synops{"mbtBatchSize"} = "Process this many fragments per merTrim batch"; - - $global{"mbtThreads"} = 4; - $synops{"mbtThreads"} = "Number of threads to use when computing mer-based trimming"; - - $global{"mbtConcurrency"} = 1; - $synops{"mbtConcurrency"} = "If not SGE, number of mer-based trimming processes to run at the same time"; - - ##### Overlapper - - $global{"obtOverlapper"} = "ovl"; - $synops{"obtOverlapper"} = "Which overlap algorithm to use for OBT overlaps"; - - $global{"ovlOverlapper"} = "ovl"; - $synops{"ovlOverlapper"} = "Which overlap algorithm to use for OVL (unitigger) overlaps"; - - $global{"ovlStoreMemory"} = 1024; - $synops{"ovlStoreMemory"} = "How much memory (MB) to use when constructing overlap stores"; - - $global{"ovlThreads"} = 2; - $synops{"ovlThreads"} = "Number of threads to use when computing overlaps"; - - $global{"ovlConcurrency"} = 1; - $synops{"ovlConcurrency"} = "If not SGE, number of overlapper processes to run at the same time"; - - $global{"ovlHashBlockLength"} = 100000000; - $synops{"ovlHashBlockLength"} = "Amount of sequence (bp) to load into the overlap hash table"; - - $global{"ovlRefBlockSize"} = 2000000; - $synops{"ovlRefBlockSize"} = "Number of fragments to search against the hash table per batch"; - - $global{"ovlHashBits"} = "22"; - $synops{"ovlHashBits"} = "Width of the kmer hash. Width 22=1gb, 23=2gb, 24=4gb, 25=8gb. Plus 10b per ovlHashBlockLength"; - - $global{"ovlHashLoad"} = "0.75"; - $synops{"ovlHashLoad"} = "Maximum hash table load. If set too high, table lookups are inefficent; if too low, search overhead dominates run time"; - - $global{"ovlMerSize"} = 22; - $synops{"ovlMerSize"} = "K-mer size for seeds in overlaps"; - - $global{"ovlMerThreshold"} = "auto"; - $synops{"ovlMerThreshold"} = "K-mer frequency threshold; mers more frequent than this are ignored"; - - $global{"obtMerSize"} = 22; - $synops{"obtMerSize"} = "K-mer size"; - - $global{"obtMerThreshold"} = "auto"; - $synops{"obtMerThreshold"} = "K-mer frequency threshold; mers more frequent than this are ignored"; - - $global{"ovlHashLibrary"} = "0"; - $synops{"ovlHashLibrary"} = "Only load hash fragments from specified lib, 0 means all"; - - $global{"ovlRefLibrary"} = 0; - $synops{"ovlRefLibrary"} = "Only load ref fragments from specified lib, 0 means all"; - - $global{"obtHashLibrary"} = "0"; - $synops{"obtHashLibrary"} = "Only load hash fragments from specified lib, 0 means all"; - - $global{"obtRefLibrary"} = 0; - $synops{"obtRefLibrary"} = "Only load ref fragments from specified lib, 0 means all"; - - - $global{"merCompression"} = 1; - $synops{"merCompression"} = "K-mer size"; - - $global{"merOverlapperThreads"} = 2; - $synops{"merOverlapperThreads"} = "Number of threads to use for both mer overlapper seed finding and extension jobs"; - - $global{"merOverlapperSeedBatchSize"} = 100000; - $synops{"merOverlapperSeedBatchSize"} = "Number of fragments in a mer overlapper seed finding batch; directly affects memory usage"; - - $global{"merOverlapperExtendBatchSize"}= 75000; - $synops{"merOverlapperExtendBatchSize"}= "Number of fragments in a mer overlapper seed extension batch; directly affects memory usage"; - - $global{"merOverlapperCorrelatedDiffs"}= 0; - $synops{"merOverlapperCorrelatedDiffs"}= "EXPERIMENTAL!"; - - $global{"merOverlapperSeedConcurrency"}= 1; - $synops{"merOverlapperSeedConcurrency"}= "If not SGE, number of mer overlapper seed finding processes to run at the same time"; - - $global{"merOverlapperExtendConcurrency"}= 1; - $synops{"merOverlapperExtendConcurrency"}= "If not SGE, number of mer overlapper seed extension processes to run at the same time"; - - $global{"umdOverlapperFlags"} = "-use-uncleaned-reads -trim-error-rate 0.03 -max-minimizer-cutoff 150"; - $synops{"umdOverlapperFlags"} = "Options for the UMD overlapper"; - - $global{"sandFilterFlags"} = ""; - $synops{"sandFilterFlags"} = "Options to be passed to sand_filter_master."; - - $global{"sandAlignFlags"} = "-n 100000 sand_align_kernel -e \"-q 0.04 -m 40\""; - $synops{"sandAlignFlags"} = "Options to be passed to sand_align_master."; - - $global{"sandPort"} = "9123"; - $synops{"sandPort"} = "Port number for workers to connect to SAND.\n"; - - $global{"saveOverlaps"} = 0; - $synops{"saveOverlaps"} = "Save intermediate overlap files"; - - ##### Mers - - $global{"merylMemory"} = 800; - $synops{"merylMemory"} = "Amount of memory, in MB, to use for mer counting"; - - $global{"merylThreads"} = 1; - $synops{"merylThreads"} = "Number of threads to use for mer counting"; - - ##### Fragment/Overlap Error Correction - - $global{"frgCorrBatchSize"} = 200000; - $synops{"frgCorrBatchSize"} = "Number of fragments per fragment error detection batch, directly affects memory usage"; - - $global{"doFragmentCorrection"} = 1; - $synops{"doFragmentCorrection"} = "Do overlap error correction"; - - $global{"frgCorrThreads"} = 2; - $synops{"frgCorrThreads"} = "Number of threads to use while computing fragment errors"; - - $global{"frgCorrConcurrency"} = 1; - $synops{"frgCorrConcurrency"} = "If not SGE, number of fragment error detection processes to run at the same time"; - - $global{"ovlCorrBatchSize"} = 200000; - $synops{"ovlCorrBatchSize"} = "Number of fragments per overlap error correction batch"; - - $global{"ovlCorrConcurrency"} = 4; - $synops{"ovlCorrConcurrency"} = "If not SGE, number of overlap error correction processes to run at the same time"; - - ##### Illumina MP Classification - - $global{"dncMPlibraries"} = undef; - $synops{"dncMPlibraries"} = "List of library names to run the 'de novo classifier' on"; - - $global{"dncBBlibraries"} = undef; - $synops{"dncBBlibraries"} = "List of library names to use as the bacbone in the 'de novo classifier'"; - - ##### Unitigger & BOG & bogart Options - - $global{"unitigger"} = undef; - $synops{"unitigger"} = "Which unitig algorithm to use; utg (if no SFF files) or bog (Best Overlap Graph, if SFF files)"; - - $global{"utgGenomeSize"} = 0; - $synops{"utgGenomeSize"} = "An estimate of the size of the genome; decides if unitigs are unique or repeats"; - - $global{"utgBubblePopping"} = 1; - $synops{"utgBubblePopping"} = "Smooth polymorphic regions"; - - $global{"utgRecalibrateGAR"} = 1; - $synops{"utgRecalibrateGAR"} = "Use an experimental algorithm to decide unique/repeat"; - - $global{"bogBreakAtIntersections"} = 1; - $synops{"bogBreakAtIntersections"} = "EXPERT!"; - - $global{"bogBadMateDepth"} = 7; - $synops{"bogBadMateDepth"} = "EXPERT!"; - - $global{"batRebuildRepeats"} = 0; - $synops{"batRebuildRepeats"} = "Shatter repeats, rebuild more stringently"; - - $global{"batMateExtension"} = 0; - $synops{"batMateExtension"} = "Shatter repeats, extend unique unitigs with mates (leaves repeats shattered)"; - - $global{"batMemory"} = undef; - $synops{"batMemory"} = "Approximate maximum memory usage for loading overlaps, in gigabytes, default is unlimited"; - - ##### Scaffolder Options - - $global{"cgwPurgeCheckpoints"} = 1; - $synops{"cgwPurgeCheckpoints"} = "Remove cgw checkpoint files when a scaffolding step finishes successfully"; - - $global{"cgwDemoteRBP"} = 1; - $synops{"cgwDemoteRBP"} = "EXPERT!"; - - $global{"cgwUseUnitigOverlaps"} = 0; - $synops{"cgwUseUnitigOverlaps"} = "Use unused best overlaps (from BOG) in scaffolder (EXPERIMENTAL)"; - - $global{"astatLowBound"} = 1; - $synops{"astatLowBound"} = "EXPERT!"; - - $global{"astatHighBound"} = 5; - $synops{"astatHighBound"} = "EXPERT!"; - - $global{"stoneLevel"} = 2; - $synops{"stoneLevel"} = "EXPERT!"; - - $global{"computeInsertSize"} = undef; - $synops{"computeInsertSize"} = "Compute a scratch scaffolding to estimate insert sizes; default: do only if less than 1 million reads"; - - $global{"cgwDistanceSampleSize"} = 100; - $synops{"cgwDistanceSampleSize"} = "Require N mates to reestimate insert sizes"; - - $global{"doResolveSurrogates"} = 1; - $synops{"doResolveSurrogates"} = "Place fragments in surrogates in the final assembly"; - - $global{"doExtendClearRanges"} = 2; - $synops{"doExtendClearRanges"} = "Enable the clear range extension heuristic"; - - $global{"extendClearRangesStepSize"} = undef; - $synops{"extendClearRangesStepSize"} = "Batch N scaffolds per ECR run"; - - $global{"kickOutNonOvlContigs"} = 0; - $synops{"kickOutNonOvlContigs"} = "Allow kicking out a contig placed in a scaffold by mate pairs that has no overlaps to both its left and right neighbor contigs. EXPERT!\n"; - - $global{"doUnjiggleWhenMerging"} = 0; - $synops{"doUnjiggleWhenMerging"} = "After inserting rocks/stones try shifting contig positions back to their original location when computing overlaps to see if they overlap with the rock/stone and allow them to merge if they do. EXPERT!\n"; - - $global{"cgwContigShatterWeight"} = 0; - $synops{"cgwContigShatterWeight"} = "When starting from a checkpoint, for any contig connected to its scaffold by a link with less than cgwContigShatterWeight, remove it and place it into a singleton scaffold. EXPERT!\n"; - - $global{"cgwMergeMissingThreshold"} = 0; - $synops{"cgwMergeMissingThreshold"} = "When merging scaffolds, missing mates are those mates that should fall within the merged scaffold but do not. In metagenomics, this may not be the case for a conserved region within strains as the mates are missing because they are in a different strain. This is a value between 0 and 1 to specify the percentage of missing mates (relative to good mates) to ignore. A value of -1 means ignore all missing mates when merging. EXPERT!\n"; - - ##### Consensus Options - - $global{"cnsPartitions"} = 128; - $synops{"cnsPartitions"} = "Partition consensus into N jobs"; - - $global{"cnsMinFrags"} = 75000; - $synops{"cnsMinFrags"} = "Don't make a consensus partition with fewer than N fragments"; - - $global{"cnsConcurrency"} = 2; - $synops{"cnsConcurrency"} = "If not SGE, number of consensus jobs to run at the same time"; - - $global{"cnsPhasing"} = 0; - $synops{"cnsPhasing"} = "Options for consensus phasing of SNPs\n\t0 - Do not phase SNPs to be consistent.\n\t1 - If two SNPs are joined by reads, phase them to be consistent."; - - $global{"consensus"} = "cns"; - $synops{"consensus"} = "Which consensus algorithm to use; currently only 'cns' is supported"; - - ##### Terminator Options - - $global{"fakeUIDs"} = 0; - $synops{"fakeUIDs"} = "Don't query a UID server, use UIDs specific to this assembly"; - - $global{"uidServer"} = undef; - $synops{"uidServer"} = "EXPERT!"; - - $global{"createAGP"} = 0; - $synops{"createAGP"} = "Create an AGP file for the assembly"; - - $global{"createACE"} = 0; - $synops{"createACE"} = "Create an ACE file for the assembly"; - - $global{"createPosMap"} = 1; - $synops{"createPosMap"} = "Create the POSMAP files for the assembly"; - - $global{"merQC"} = 0; - $synops{"merQC"} = "Compute a mer-based QC for the assembly"; - - $global{"merQCmemory"} = 1024; - $synops{"merQCmemory"} = "Memory to use for the mer-based QC"; - - $global{"merQCmerSize"} = 22; - $synops{"merQCmerSize"} = "Mer size to use for the mer-based QC"; - - $global{"cleanup"} = "none"; - $synops{"cleanup"} = "At the end of a successful assembly, remove none/some/many/all of the intermediate files"; - - ##### Options for toggling assembly. - - $global{"doToggle"} = 0; - $synops{"doToggle"} = "At the end of a successful assembly, search for placed surrogates and toggle them to be unique unitigs. Re-run the assembly starting from scaffolder"; - - $global{"toggleUnitigLength"} = 2000; - $synops{"toggleUnitigLength"} = "Minimum length for a surrogate to be toggled."; - - $global{"toggleNumInstances"} = 1; - $synops{"toggleNumInstances"} = "Number of instances for a surrogate to be toggled. If 0 is specified, all non-singleton unitigs are toggled to unique status."; - - $global{"toggleMaxDistance"} = 1000; - $synops{"toggleMaxDistance"} = "Toggling will look for surrogates that appear exactly twice, both at the end of a scaffold. This parameter specifies how close to the scaffold end the surrogate must be."; - - $global{"toggleDoNotDemote"} = 0; - $synops{"toggleDoNotDemote"} = "Do not allow CGW to demote toggled unitigs based on branching patterns."; - - #### Closure Options - - $global{"closureOverlaps"} = 0; - $synops{"closureOverlaps"} = "Option for handling overlaps involving closure reads.\n\t0 - Treat them just like regular reads, \n\t1 - Do not allow any overlaps (i.e. closure reads will stay as singletons until scaffolding), \n\t2 - allow overlaps betweeen closure reads and non-closure reads only"; - - $global{"closurePlacement"} = 2; - $synops{"closurePlacement"} = "Option for placing closure reads using the constraints.\n\t0 - Place at the first location found\n\t1 - Place at the best location (indicated by most constraints)\n\t2 - Place at multiple locations as long as the closure read/unitig in question is not unique"; - - ##### Ugly, command line options passed to printHelp() - - $global{"help"} = ""; - $synops{"help"} = undef; - - $global{"version"} = 0; - $synops{"version"} = undef; - - $global{"options"} = 0; - $synops{"options"} = undef; - - - - if (exists($ENV{'AS_OVL_ERROR_RATE'})) { - setGlobal("ovlErrorRate", $ENV{'AS_OVL_ERROR_RATE'}); - print STDERR "ENV: ovlErrorRate $ENV{'AS_OVL_ERROR_RATE'} (from \$AS_OVL_ERROR_RATE)\n"; - } - - if (exists($ENV{'AS_CGW_ERROR_RATE'})) { - setGlobal("cgwErrorRate", $ENV{'AS_CGW_ERROR_RATE'}); - print STDERR "ENV: cgwErrorRate $ENV{'AS_CGW_ERROR_RATE'} (from \$AS_CGW_ERROR_RATE)\n"; - } - - if (exists($ENV{'AS_CNS_ERROR_RATE'})) { - setGlobal("cnsErrorRate", $ENV{'AS_CNS_ERROR_RATE'}); - print STDERR "ENV: cnsErrorRate $ENV{'AS_CNS_ERROR_RATE'} (from \$AS_CNS_ERROR_RATE)\n"; - } - - if (exists($ENV{'AS_READ_MIN_LEN'})) { - setGlobal("frgMinLen", $ENV{'AS_READ_MIN_LEN'}); - print STDERR "ENV: frgMinLen $ENV{'AS_READ_MIN_LEN'} (from \$AS_READ_MIN_LEN)\n"; - } - - if (exists($ENV{'AS_OVERLAP_MIN_LEN'})) { - setGlobal("ovlMinLen", $ENV{'AS_OVERLAP_MIN_LEN'}); - print STDERR "ENV: ovlMinLen $ENV{'AS_OVL_MIN_LEN'} (from \$AS_OVL_MIN_LEN)\n"; - } -} - -sub makeAbsolute ($) { - my $var = shift @_; - my $val = getGlobal($var); - if (defined($val) && ($val !~ m!^/!)) { - $val = "$ENV{'PWD'}/$val"; - setGlobal($var, $val); - $commandLineOptions .= " \"$var=$val\" "; - } -} - -sub fixCase ($) { - my $var = shift @_; - my $val = getGlobal($var); - $val =~ tr/A-Z/a-z/; - setGlobal($var, $val); -} - -sub setParametersFromFile ($@) { - my $specFile = shift @_; - my @fragFiles = @_; - - # Client should be ensuring that the file exists before calling this function. - die "specFile '$specFile' not found.\n" if (! -e "$specFile"); - - $specLog .= "\n"; - $specLog .= "###\n"; - $specLog .= "### Reading options from '$specFile'\n"; - $specLog .= "###\n"; - $specLog .= "\n"; - - open(F, "< $specFile") or caFailure("Couldn't open '$specFile'", undef); - - while () { - $specLog .= $_; - - s/^\s+//; - s/\s+$//; - - next if (m/^\s*\#/); - next if (m/^\s*$/); - - if (-e $_) { - my $xx = $_; - $xx = "$ENV{'PWD'}/$xx" if ($xx !~ m!^/!); - if (-e $xx) { - push @fragFiles, $xx; - } else { - setGlobal("help", getGlobal("help") . "File not found '$_' after appending absolute path.\n"); - } - } elsif (m/\s*(\w*)\s*=([^#]*)#*.*$/) { - my ($var, $val) = ($1, $2); - $var =~ s/^\s+//; $var =~ s/\s+$//; - $val =~ s/^\s+//; $val =~ s/\s+$//; - undef $val if ($val eq "undef"); - setGlobal($var, $val); - } else { - setGlobal("help", getGlobal("help") . "File not found or unknown specFile option line '$_'.\n"); - } - } - close(F); - - return(@fragFiles); -} - - -sub setParametersFromCommandLine(@) { - my @specOpts = @_; - - if (scalar(@specOpts) > 0) { - $specLog .= "\n"; - $specLog .= "###\n"; - $specLog .= "### Reading options from the command line.\n"; - $specLog .= "###\n"; - $specLog .= "\n"; - } - - foreach my $s (@specOpts) { - $specLog .= "$s\n"; - - if ($s =~ m/\s*(\w*)\s*=(.*)/) { - my ($var, $val) = ($1, $2); - $var =~ s/^\s+//; $var =~ s/\s+$//; - $val =~ s/^\s+//; $val =~ s/\s+$//; - setGlobal($var, $val); - } else { - setGlobal("help", getGlobal("help") . "Misformed command line option '$s'.\n"); - } - } -} - - -sub setParameters () { - - # Update obsolete usages. - # - if (getGlobal("doChimeraDetection") eq "1") { - print STDERR "WARNING: 'doChimeraDetection=1' is obsolete; use 'doChimeraDetection=normal' in the future.\n"; - setGlobal("doChimeraDetection", "normal"); - } - if (getGlobal("doChimeraDetection") eq "0") { - print STDERR "WARNING: 'doChimeraDetection=0' is obsolete; use 'doChimeraDetection=off' in the future.\n"; - setGlobal("doChimeraDetection", "off"); - } - - # Fiddle with filenames to make them absolute paths. - # - makeAbsolute("vectorIntersect"); - makeAbsolute("pathMap"); - - # Adjust case on some of them - # - fixCase("doChimeraDetection"); - fixCase("obtOverlapper"); - fixCase("ovlOverlapper"); - fixCase("unitigger"); - fixCase("vectorTrimmer"); - fixCase("stopBefore"); - fixCase("stopAfter"); - fixCase("consensus"); - fixCase("cleanup"); - - if ((getGlobal("doChimeraDetection") ne "off") && (getGlobal("doChimeraDetection") ne "normal") && (getGlobal("doChimeraDetection") ne "aggressive")) { - caFailure("invalid doChimeraDetection specified (" . getGlobal("doChimeraDetection") . "); must be 'off', 'normal', or 'aggressive'", undef); - } - if ((getGlobal("obtOverlapper") ne "mer") && (getGlobal("obtOverlapper") ne "ovl") && (getGlobal("obtOverlapper") ne "ovm") && (getGlobal("obtOverlapper") ne "sand")) { - caFailure("invalid obtOverlapper specified (" . getGlobal("obtOverlapper") . "); must be 'mer' or 'ovl' or 'sand' (or DEVEL_ONLY 'ovm')", undef); - } - if ((getGlobal("ovlOverlapper") ne "mer") && (getGlobal("ovlOverlapper") ne "ovl") && (getGlobal("ovlOverlapper") ne "ovm") && (getGlobal("ovlOverlapper") ne "sand")) { - caFailure("invalid ovlOverlapper specified (" . getGlobal("ovlOverlapper") . "); must be 'mer' or 'ovl' or 'sand' (or DEVEL_ONLY 'ovm')", undef); - } - if (defined(getGlobal("unitigger")) && (getGlobal("unitigger") ne "utg") && (getGlobal("unitigger") ne "bog") && (getGlobal("unitigger") ne "bogart")) { - caFailure("invalid unitigger specified (" . getGlobal("unitigger") . "); must be 'utg' or 'bog' or 'bogart'", undef); - } - if ((getGlobal("vectorTrimmer") ne "ca") && (getGlobal("vectorTrimmer") ne "figaro")) { - caFailure("invalid vectorTrimmer specified (" . getGlobal("vectorTrimmer") . "); must be 'ca' or 'figaro'", undef); - } - if ((getGlobal("consensus") ne "cns") && (getGlobal("consensus") ne "seqan")) { - caFailure("invalid consensus specified (" . getGlobal("consensus") . "); must be 'cns' or 'seqan'", undef); - } - if ((getGlobal("cnsPhasing") ne "0") && (getGlobal("cnsPhasing") ne "1")) { - caFailure("invalid cnsPhasing specified (" . getGlobal("cnsPhasing") . "); must be '0' or '1'", undef); - } - if ((getGlobal("cleanup") ne "none") && - (getGlobal("cleanup") ne "light") && - (getGlobal("cleanup") ne "heavy") && - (getGlobal("cleanup") ne "aggressive")) { - caFailure("invalid cleaup specified (" . getGlobal("cleanup") . "); must be 'none', 'light', 'heavy' or 'aggressive'", undef); - } - - if (defined(getGlobal("stopBefore"))) { - my $ok = 0; - my $st = getGlobal("stopBefore"); - $st =~ tr/A-Z/a-z/; - - my $failureString = "Invalid stopBefore specified (" . getGlobal("stopBefore") . "); must be one of:\n"; - - my @stopBefore = ("meryl", - "initialTrim", - "deDuplication", - "finalTrimming", - "chimeraDetection", - "classifyMates", - "unitigger", - "scaffolder", - "CGW", - "eCR", - "extendClearRanges", - "eCRPartition", - "extendClearRangesPartition", - "terminator"); - - foreach my $sb (@stopBefore) { - $failureString .= " '$sb'\n"; - $sb =~ tr/A-Z/a-z/; - if ($st eq $sb) { - $ok++; - setGlobal('stopBefore', $st); - } - } - - caFailure($failureString, undef) if ($ok == 0); - } - - - if (defined(getGlobal("stopAfter"))) { - my $ok = 0; - my $st = getGlobal("stopAfter"); - $st =~ tr/A-Z/a-z/; - - my $failureString = "Invalid stopAfter specified (" . getGlobal("stopAfter") . "); must be one of:\n"; - - my @stopAfter = ("initialStoreBuilding", - "overlapper", - "OBT", - "overlapBasedTrimming", - "unitigger", - "classifyMates", - "utgcns", - "consensusAfterUnitigger", - "scaffolder", - "ctgcns", - "consensusAfterScaffolder"); - - foreach my $sa (@stopAfter) { - $failureString .= " '$sa'\n"; - $sa =~ tr/A-Z/a-z/; - if ($st eq $sa) { - $ok++; - setGlobal('stopAfter', $st); - } - } - - caFailure($failureString, undef) if ($ok == 0); - } - - - # PIck a nice looking set of binaries, and check them. - # - { - caFailure("can't find 'gatekeeper' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/gatekeeper"); - caFailure("can't find 'meryl' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/meryl"); - caFailure("can't find 'overlap' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/overlapInCore"); - caFailure("can't find 'unitigger' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/unitigger"); - caFailure("can't find 'cgw' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/cgw"); - caFailure("can't find 'utgcns' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/utgcns"); - caFailure("can't find 'ctgcns' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/ctgcns"); - caFailure("can't find 'terminator' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/terminator"); - - if ((getGlobal("obtOverlapper") eq "mer") || (getGlobal("ovlOverlapper") eq "mer")) { - caFailure("can't find 'overmerry' program in $bin. Possibly incomplete installation", undef) if (! -x "$bin/overmerry"); - } - } - - # Set the globally accessible error rates. Adjust them if they - # look strange. - # - # We must have: ovl <= cns <= cgw - # We usually have: ovl == cns <= cgw - # - my $ovlER = getGlobal("ovlErrorRate"); - my $utgER = getGlobal("utgErrorRate"); - my $cgwER = getGlobal("cgwErrorRate"); - my $cnsER = getGlobal("cnsErrorRate"); - - if (($ovlER < 0.0) || (0.25 < $ovlER)) { - caFailure("ovlErrorRate is $ovlER, this MUST be between 0.00 and 0.25", undef); - } - if (($utgER < 0.0) || (0.25 < $utgER)) { - caFailure("utgErrorRate is $utgER, this MUST be between 0.00 and 0.25", undef); - } - if (($cgwER < 0.0) || (0.25 < $cgwER)) { - caFailure("cgwErrorRate is $cgwER, this MUST be between 0.00 and 0.25", undef); - } - if (($cnsER < 0.0) || (0.25 < $cnsER)) { - caFailure("cnsErrorRate is $cnsER, this MUST be between 0.00 and 0.25", undef); - } - if ($utgER > $ovlER) { - caFailure("utgErrorRate is $utgER, this MUST be <= ovlErrorRate ($ovlER)", undef); - } - if ($ovlER > $cnsER) { - caFailure("ovlErrorRate is $ovlER, this MUST be <= cnsErrorRate ($cnsER)", undef); - } - if ($ovlER > $cgwER) { - caFailure("ovlErrorRate is $ovlER, this MUST be <= cgwErrorRate ($cgwER)", undef); - } - if ($cnsER > $cgwER) { - caFailure("cnsErrorRate is $cnsER, this MUST be <= cgwErrorRate ($cgwER)", undef); - } - - $ENV{'AS_OVL_ERROR_RATE'} = $ovlER; - $ENV{'AS_CGW_ERROR_RATE'} = $cgwER; - $ENV{'AS_CNS_ERROR_RATE'} = $cnsER; - - $ENV{'AS_READ_MIN_LEN'} = getGlobal("frgMinLen"); - $ENV{'AS_OVERLAP_MIN_LEN'} = getGlobal("ovlMinLen"); -} - -sub logVersion() { - system("$bin/gatekeeper --version"); - system("$bin/overlap --version"); - system("$bin/unitigger --version"); - system("$bin/buildUnitigs --version"); - system("$bin/cgw --version"); - system("$bin/consensus --version"); - system("$bin/terminator --version"); -} - -sub printHelp () { - - if (getGlobal("version")) { - logVersion(); - exit(0); - } - - if (getGlobal("options")) { - foreach my $k (sort keys %global) { - my $o = substr("$k ", 0, 35); - my $d = substr(getGlobal($k) . " ", 0, 20); - my $u = $synops{$k}; - - if (!defined(getGlobal($k))) { - $d = substr(" ", 0, 20); - } - - print "$o$d($u)\n"; - } - exit(0); - } - - if (getGlobal("help") ne "") { - print "usage: runCA -d

    -p [options] ...\n"; - print " -d Use as the working directory. Required\n"; - print " -p Use as the output prefix. Required\n"; - print "\n"; - print " -s Read options from the specifications file .\n"; - print " can also be one of the following key words:\n"; - print " [no]OBT - run with[out] OBT\n"; - print " noVec - run with OBT but without Vector\n"; - print "\n"; - print " -version Version information\n"; - print " -help This information\n"; - print " -options Describe specFile options, and show default values\n"; - print "\n"; - print " CA formatted fragment file\n"; - print "\n"; - print "Complete documentation at http://wgs-assembler.sourceforge.net/\n"; - print "\n"; - print $global{"help"}; - exit(0); - } - - undef $global{"version"}; - undef $global{"options"}; - undef $global{"help"}; -} - - - -sub checkDirectories () { - - # Check that we were supplied a work directory, and that it - # exists, or we can create it. - # - die "ERROR: I need a directory to run the assembly in (-d option).\n" if (!defined($wrk)); - - system("mkdir -p $wrk") if (! -d $wrk); - chmod 0755, "$wrk"; - - system("mkdir -p $wrk/runCA-logs") if (! -d "$wrk/runCA-logs"); - chmod 0755, "$wrk/runCA-logs"; - - $ENV{'AS_RUNCA_DIRECTORY'} = $wrk; - - caFailure("directory '$wrk' doesn't exist (-d option) and couldn't be created", undef) if (! -d $wrk); -} - - -sub outputSpecLog () { - my $time = time(); - my $host = hostname(); - my $pid = $$; - - open(F, "> $wrk/runCA-logs/${time}_${host}_${pid}_runCA"); - print F $specLog; - close(F); -} - - - -sub findFirstCheckpoint ($) { - my $dir = shift @_; - my $firstckp = 0; - - $dir = "$wrk/$dir" if (! -d $dir); - - open(F, "ls -1 $dir/$asm.ckp.[0-9]* |"); - while () { - chomp; - - if (m/ckp.(\d+)$/) { - $firstckp = $1 if ($1 < $firstckp); - } - } - close(F); - - return($firstckp); -} - -sub findLastCheckpoint ($) { - my $dir = shift @_; - my $lastckp = 0; - - $dir = "$wrk/$dir" if (-d "$wrk/$dir"); - - open(F, "ls -1 $dir/$asm.ckp.[0-9]* |"); - while () { - chomp; - - if (m/ckp.(\d+)$/) { - $lastckp = $1 if ($1 > $lastckp); - } - } - close(F); - - return($lastckp); -} - -sub findNumScaffoldsInCheckpoint ($$) { - my $dir = shift @_; - my $lastckp = shift @_; - - open(F, "cd $wrk/$dir && $bin/getNumScaffolds ../$asm.gkpStore $asm $lastckp 2> /dev/null |"); - my $numscaf = ; chomp $numscaf; - close(F); - $numscaf = int($numscaf); - - return($numscaf); -} - - -sub getNumberOfFragsInStore ($$) { - my $wrk = shift @_; - my $asm = shift @_; - - $numFrags = 0; - - if (-e "$wrk/$asm.gkpStore/inf") { - open(F, "$bin/gatekeeper -lastfragiid $wrk/$asm.gkpStore 2> /dev/null |") or caFailure("failed to run gatekeeper to get the number of frags in the store", undef); - $_ = ; chomp $_; - close(F); - - $numFrags = $1 if (m/^Last frag in store is iid = (\d+)$/); - } - - return($numFrags); -} - - -# Decide if we have the CA meryl or the Mighty one. -# -sub merylVersion () { - my $ver = "unknown"; - - open(F, "$bin/meryl -V |"); - while () { - $ver = "CA" if (m/CA/); - $ver = "Mighty" if (m/Mighty/); - } - close(F); - return($ver); -} - -sub stopBefore ($$) { - my $stopBefore = shift @_; $stopBefore =~ tr/A-Z/a-z/; - my $cmd = shift @_; - if (defined($stopBefore) && - defined(getGlobal('stopBefore')) && - (getGlobal('stopBefore') eq $stopBefore)) { - print STDERR "Stop requested before '$stopBefore'.\n"; - print STDERR "Command:\n$cmd\n" if (defined($cmd)); - exit(0); - } -} - -sub stopAfter ($) { - my $stopAfter = shift @_; $stopAfter =~ tr/A-Z/a-z/; - if (defined($stopAfter) && - defined(getGlobal('stopAfter')) && - (getGlobal('stopAfter') eq $stopAfter)) { - print STDERR "Stop requested after '$stopAfter'.\n"; - exit(0); - } -} - -sub runningOnGrid () { - return(defined($ENV{'SGE_TASK_ID'})); -} - -sub findNextScriptOutputFile () { - my $idx = "00"; - while (-e "$wrk/runCA.sge.out.$idx") { - $idx++; - } - return("$wrk/runCA.sge.out.$idx"); -} - -sub submitScript ($) { - my $waitTag = shift @_; - - return if (getGlobal("scriptOnGrid") == 0); - - my $output = findNextScriptOutputFile(); - my $script = "$output.sh"; - - open(F, "> $script") or caFailure("failed to open '$script' for writing", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "#\n"; - print F "# Attempt to (re)configure SGE. For reasons Bri doesn't know,\n"; - print F "# jobs submitted to SGE, and running under SGE, fail to read his\n"; - print F "# .tcshrc (or .bashrc, limited testing), and so they don't setup\n"; - print F "# SGE (or ANY other paths, etc) properly. For the record,\n"; - print F "# interactive SGE logins (qlogin, etc) DO set the environment.\n"; - print F "\n"; - print F ". \$SGE_ROOT/\$SGE_CELL/common/settings.sh\n"; - print F "\n"; - print F "# On the off chance that there is a pathMap, and the host we\n"; - print F "# eventually get scheduled on doesn't see other hosts, we decide\n"; - print F "# at run time where the binary is.\n"; - - print F getBinDirectoryShellCode(); - - print F "/usr/bin/env perl \$bin/runCA $commandLineOptions\n"; - close(F); - - system("chmod +x $script"); - - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeScript = getGlobal("sgeScript"); - my $sgePropHold = getGlobal("sgePropagateHold"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - $waitTag = "-hold_jid \"$waitTag\"" if (defined($waitTag)); - - my $qcmd = "qsub $sge $sgeScript -cwd -N \"rCA_$asm$sgeName\" -j y -o $output $waitTag $script"; - - runCommand($wrk, $qcmd) and caFailure("Failed to submit script.\n"); - - if (defined($sgePropHold)) { - my $acmd = "qalter -hold_jid \"rCA_$asm$sgeName\" \"$sgePropHold\""; - system($acmd) and print STDERR "WARNING: Failed to reset hold_jid trigger on '$sgePropHold'.\n"; - } - - exit(0); -} - - -sub caFailure ($$) { - my $msg = shift @_; - my $log = shift @_; - - print STDERR "================================================================================\n"; - print STDERR "\n"; - print STDERR "runCA failed.\n"; - print STDERR "\n"; - - print STDERR "----------------------------------------\n"; - print STDERR "Stack trace:\n"; - print STDERR "\n"; - carp; - - if (-e $log) { - print STDERR "\n"; - print STDERR "----------------------------------------\n"; - print STDERR "Last few lines of the relevant log file ($log):\n"; - print STDERR "\n"; - system("tail -n 20 $log"); - } - - print STDERR "\n"; - print STDERR "----------------------------------------\n"; - print STDERR "Failure message:\n"; - print STDERR "\n"; - print STDERR "$msg\n"; - print STDERR "\n"; - - exit(1); -} - - - -# Bit of a wierd one here; assume path are supplied relative to $wrk. -# Potentially gives us a bit of safety. -# -sub rmrf (@) { - foreach my $f (@_) { - unlink("$wrk/$f") if (-f "$wrk/$f"); - system("rm -rf $wrk/$f") if (-d "$wrk/$f"); - } -} - - -# Create an empty file. Much faster than system("touch ..."). -# -sub touch ($) { - open(F, "> $_[0]") or caFailure("failed to touch file '$_[0]'", undef); - close(F); -} - - -sub pleaseExecute ($) { - my $file = shift @_; - - print STDERR "Please execute:\n"; - print STDERR " $file\n"; - print STDERR "to submit jobs to the grid, then restart this script when all\n"; - print STDERR "jobs finish. I'll make sure all jobs finished properly.\n"; -} - - -# Utility to run a command and check the exit status, report time used. -# -sub runCommand ($$) { - my $dir = shift @_; - my $cmd = shift @_; - - if (! -d $dir) { - caFailure("Directory '$dir' doesn't exist, can't run command.\n", ""); - } - - my $t = localtime(); - my $d = time(); - print STDERR "----------------------------------------START $t\n$cmd\n"; - - my $rc = 0xffff & system("cd $dir && $cmd"); - - $t = localtime(); - print STDERR "----------------------------------------END $t (", time() - $d, " seconds)\n"; - - # Pretty much copied from Programming Perl page 230 - - return(0) if ($rc == 0); - - # Bunch of busy work to get the names of signals. Is it really worth it?! - # - my @signame; - if (defined($Config{sig_name})) { - my $i = 0; - foreach my $n (split('\s+', $Config{sig_name})) { - $signame[$i] = $n; - $i++; - } - } - - my $error = "ERROR: Failed with "; - - if ($rc == 0xff00) { - $error .= "$!\n"; - } else { - if ($rc & 0x80) { - $error .= "coredump from "; - } - - if ($rc > 0x80) { - $rc >>= 8; - } - $rc &= 127; - - if (defined($signame[$rc])) { - $error .= "signal $signame[$rc] ($rc)\n"; - } else { - $error .= "signal $rc\n"; - } - } - - print STDERR $error; - - return(1); -} - -################################################################################ -################################################################################ -################################################################################ - -# Functions for running multiple processes at the same time. - -my $numberOfProcesses = 0; # Number of jobs concurrently running -my $numberOfProcessesToWait = 0; # Number of jobs we can leave running at exit -my @processQueue = (); -my @processesRunning = (); -my $printProcessCommand = 1; # Show commands as they run - -sub schedulerSetNumberOfProcesses { - $numberOfProcesses = shift @_; -} - -sub schedulerSubmit { - chomp @_; - push @processQueue, @_; -} - -sub schedulerForkProcess { - my $process = shift @_; - my $pid; - - # From Programming Perl, page 167 - FORK: { - if ($pid = fork) { - # Parent - # - return($pid); - } elsif (defined $pid) { - # Child - # - exec($process); - } elsif ($! =~ /No more processes/) { - # EAGIN, supposedly a recoverable fork error - sleep 1; - redo FORK; - } else { - die "Can't fork: $!\n"; - } - } -} - -sub schedulerReapProcess { - my $pid = shift @_; - - if (waitpid($pid, &WNOHANG) > 0) { - return(1); - } else { - return(0); - } -} - -sub schedulerRun { - my @newProcesses; - - # Reap any processes that have finished - # - undef @newProcesses; - foreach my $i (@processesRunning) { - if (schedulerReapProcess($i) == 0) { - push @newProcesses, $i; - } - } - undef @processesRunning; - @processesRunning = @newProcesses; - - # Run processes in any available slots - # - while ((scalar(@processesRunning) < $numberOfProcesses) && - (scalar(@processQueue) > 0)) { - my $process = shift @processQueue; - print STDERR "$process\n"; - push @processesRunning, schedulerForkProcess($process); - } -} - -sub schedulerFinish { - my $child; - my @newProcesses; - my $remain; - - my $t = localtime(); - my $d = time(); - print STDERR "----------------------------------------START CONCURRENT $t\n"; - - $remain = scalar(@processQueue); - - # Run all submitted jobs - # - while ($remain > 0) { - schedulerRun(); - - $remain = scalar(@processQueue); - - if ($remain > 0) { - $child = waitpid -1, 0; - - undef @newProcesses; - foreach my $i (@processesRunning) { - push @newProcesses, $i if ($child != $i); - } - undef @processesRunning; - @processesRunning = @newProcesses; - } - } - - # Wait for them to finish, if requested - # - while (scalar(@processesRunning) > $numberOfProcessesToWait) { - waitpid(shift @processesRunning, 0); - } - - $t = localtime(); - print STDERR "----------------------------------------END CONCURRENT $t (", time() - $d, " seconds)\n"; -} - -################################################################################ -################################################################################ -################################################################################ - -sub perfectTrimming { - my $gkpStore = "$wrk/$asm.gkpStore"; - my $refFasta = getGlobal("perfectTrimming"); - - return if (!defined($refFasta)); - - setGlobal("doOverlapBasedTrimming", 0); - - die "Can't find gkpStore '$gkpStore'\n" if (! -d $gkpStore); - die "Can't find reference '$refFasta'\n" if (! -e $refFasta); - - my $kmer; - { - my @p = split '/', $bin; - my $l = scalar(@p); - - $p[$l] = $p[$l-1]; - $p[$l-1] = $p[$l-2]; - $p[$l-2] = "kmer"; - - $kmer = join '/', @p; - } - - if (! -e "$gkpStore/reads.fasta") { - runCommand($wrk, "$bin/gatekeeper -dumpfastaseq -clear untrim $gkpStore > $gkpStore/reads.fasta") and die; - } - - if (! -e "$gkpStore/reads.sim4db") { - # #1 cov 25 iden 90 sucka - # #2 cov 80 iden 96 is nice - # #3 cov 25 iden 94 better than #1, but still sucky - # #4 cov 80 iden 94 same as #3 - # #5 cov 80 iden 95 - # #6 cov 25 iden 96 - # #7 cov 25 iden 97 - # #8 cov 25 iden 98 - $cmd = "$kmer/snapper2"; - $cmd .= " -queries $gkpStore/reads.fasta"; - $cmd .= " -genomic $refFasta"; - $cmd .= " -minhitlength 0"; - $cmd .= " -minhitcoverage 0"; - $cmd .= " -discardexonlength 40"; - $cmd .= " -minmatchcoverage 25"; - $cmd .= " -minmatchidentity 98"; - $cmd .= " -verbose"; - $cmd .= " -numthreads 1"; - $cmd .= " > $gkpStore/reads.sim4db"; - - runCommand($wrk, $cmd) and die; - } - - if (! -e "$gkpStore/reads.extent") { - runCommand($wrk, "$kmer/pickBestPolish < $gkpStore/reads.sim4db | $kmer/convertToExtent > $gkpStore/reads.extent") and die; - } - - if (! -e "$gkpStore/reads.update") { - my %mapBeg; - my %mapEnd; - - my %allReads; - my %allMates; - - # Read the reads and mates - # - open(F, "$bin/gatekeeper -dumpfragments -tabular -clear OBT $gkpStore |"); - $_ = ; # header line - while () { - my @v = split '\s+', $_; - $allReads{$v[1]}++; - $allMates{$v[1]} = $v[3]; - } - close(F); - - # Read the mapping - # - open(F, "< $gkpStore/reads.extent"); - while () { - my @v = split '\s+', $_; - - (undef, $v[0]) = split ',', $v[0]; - - if ($v[3] < $v[4]) { - $mapBeg{$v[0]} = $v[3]; - $mapEnd{$v[0]} = $v[4]; - } else { - $mapBeg{$v[0]} = $v[4]; - $mapEnd{$v[0]} = $v[3]; - } - } - close(F); - - # Update the gkpStore - # - open(F, "> $gkpStore/reads.update"); - foreach my $k (keys %allReads) { - my $mapLen = $mapEnd{$k} - $mapBeg{$k}; - - if ($mapLen < 64) { - print F "frg iid $k isdeleted t\n"; - if ($allMates{$k} > 0) { - print F "frg iid $k mateiid 0\n"; - print F "frg iid $allMates{$k} mateiid 0\n"; - } - } else { - print F "frg iid $k orig $mapBeg{$k} $mapEnd{$k}\n"; - print F "frg iid $k obtini $mapBeg{$k} $mapEnd{$k}\n"; - print F "frg iid $k obt $mapBeg{$k} $mapEnd{$k}\n"; - } - } - close(F); - } - - if (! -e "$gkpStore/reads.updated") { - runCommand($wrk, "$bin/gatekeeper --edit $gkpStore/reads.update $gkpStore > $gkpStore/reads.update.out 2> $gkpStore/reads.update.err") and die; - touch "$gkpStore/reads.updated"; - } -} - - -sub preoverlap { - my @fragFiles = @_; - - $numFrags = getNumberOfFragsInStore($wrk, $asm); - - # Return if there are fragments in the store, and die if there - # are no fragments and no source files. - # - if ($numFrags > 0) { - goto stopafter; - } - - caFailure("no fragment files specified, and stores not already created", undef) - if (scalar(@fragFiles) == 0); - - if ((! -d "$wrk/$asm.gkpStore") || - (! -e "$wrk/$asm.gkpStore/inf")) { - - # Make sure all the inputs are here. We also shred any - # supplied ace files, and convert the sff's to frg's. - # - my $failedFiles = undef; - my $gkpInput = ""; - foreach my $frg (@fragFiles) { - if (! -e $frg) { - if (defined($failedFiles)) { - $failedFiles .= "; '$frg' not found"; - } else { - $failedFiles = "'$frg' not found"; - } - } - - if ($frg =~ m/^(.*)\.ace$/) { - my @fff = split '/', $1; - my $ace = $frg; - my $nam = pop @fff; - - $frg = "$wrk/$nam.shred.frg"; - - if (! -e "$frg") { - print STDERR "Shredding '$ace' -> '$frg'\n"; - shredACE($ace, $frg); - } - } - - if (($frg =~ m/^(.*)\.sff$/) || - ($frg =~ m/^(.*)\.sff.gz$/) || - ($frg =~ m/^(.*)\.sff.bz2$/)) { - my @fff = split '/', $1; - my $sff = $frg; - my $nam = pop @fff; - my $log = "$wrk/$nam.sff.log"; - - $frg = "$wrk/$nam.sff.frg"; - - if (! -e "$frg") { - print STDERR "Converting '$sff' -> '$frg'\n"; - - if (runCommand($wrk, "$bin/sffToCA -libraryname $nam -linker flx -linker titanium -insertsize 3000 300 -output $frg $sff > $frg.err 2>&1")) { - unlink "$wrk/$frg"; - caFailure("sffToCA failed", "$frg.err"); - } - } - } - - $gkpInput .= " $frg"; - } - caFailure($failedFiles, undef) if defined($failedFiles); - - $cmd = "$bin/gatekeeper "; - $cmd .= " -o $wrk/$asm.gkpStore.BUILDING "; - $cmd .= " -T " if (getGlobal("doOverlapBasedTrimming")); - $cmd .= " -F " if (getGlobal("gkpFixInsertSizes")); - $cmd .= "$gkpInput "; - $cmd .= "> $wrk/$asm.gkpStore.err 2>&1"; - if (runCommand($wrk, $cmd)) { - caFailure("gatekeeper failed", "$wrk/$asm.gkpStore.err"); - } - - rename "$wrk/$asm.gkpStore.BUILDING", "$wrk/$asm.gkpStore"; - rename "$wrk/$asm.gkpStore.BUILDING.errorLog", "$wrk/$asm.gkpStore.errorLog"; - rename "$wrk/$asm.gkpStore.BUILDING.fastqUIDmap", "$wrk/$asm.gkpStore.fastqUIDmap"; - unlink "$asm.gkpStore.err"; - } - - perfectTrimming(); - - generateVectorTrim(); - - my $vi = getGlobal("vectorIntersect"); - - if ((defined($vi)) && (! -e "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.log")) { - $cmd = "$bin/gatekeeper -a -v $vi -o $wrk/$asm.gkpStore "; - $cmd .= " > $wrk/$asm.gkpStore/$asm.vectorClearLoaded.log"; - $cmd .= " 2> $wrk/$asm.gkpStore/$asm.vectorClearLoaded.err"; - - if (runCommand($wrk, $cmd)) { - rename "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.log", "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.log.FAILED"; - caFailure("gatekeeper failed to update clear ranges", "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.err"); - } - - unlink "$wrk/$asm.gkpStore/$asm.vectorClearLoaded.err"; - } - - $numFrags = getNumberOfFragsInStore($wrk, $asm); - - print STDERR "numFrags = $numFrags\n"; - - caFailure("gatekeeper failed to add fragments", "$wrk/$asm.gkpStore.err") if ($numFrags == 0); - - stopafter: - stopAfter("initialStoreBuilding"); -} - -################################################################################ -################################################################################ -################################################################################ - -# -# Parameters -# - -my $MIN_COVERAGE = 1; # Should be 2 if there are "fake" reads in ace file - -my $MIN_READS = 4; -my $MIN_CONTIG_SIZE = 600; - -my $SHRED_READ_LENGTH = 600; - -my $LOW_QUAL_DIVISOR = 4; -my $DEFAULT_QUAL = 3; - -# -# Methods for reading an ACE file. -# - -sub read_AS{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $num_contigs, $num_reads)=split /\s+/; - if($id eq "AS"){ - return ($num_contigs, $num_reads); - } - } - die "Could not find AS to read.\n"; -} - - -sub read_CO{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $contig_id, $num_bases, $num_reads, $num_segments, $complementation, $sequence)=split /\s+/; - - if($id eq "CO"){ - while(<$fh>){ - chomp; - if($_ eq ""){ - last; - }else{ - $sequence.=$_; - } - } - return($contig_id, $num_bases, $num_reads, $num_segments, $complementation, $sequence); - } - } - die "Could not find CO to read.\n"; -} - - -sub read_BQ{ - my $fh=shift; - - my ($id, $sequence); - - while(<$fh>){ - chomp; - ($id)=split /\s+/; - - if($id eq "BQ"){ - while(<$fh>){ - chomp; - if($_ eq ""){ - last; - }else{ - $sequence.=$_; - } - } - return($sequence); - } - } - die "Could not find BQ to read.\n"; -} - - -sub read_AF{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $read_id, $complementation, $start)=split /\s+/; - if($id eq "AF"){ - return($read_id, $complementation, $start); - } - } - die "Could not find AF to read.\n"; -} - - -sub read_BS{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $start, $end, $read_id)=split /\s+/; - if($id eq "BS"){ - return($start, $end, $read_id); - } - } - die "Could not find BS to read.\n"; -} - - -sub read_RD{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $read_id, $num_bases, $num_read_info_items, $num_read_tags)=split /\s+/; - my $sequence; - if($id eq "RD"){ - while(<$fh>){ - chomp; - if($_ eq ""){ - last; - }else{ - $sequence.=$_; - } - } - return($read_id, $num_bases, $num_read_info_items, $num_read_tags, $sequence); - } - } - die "Could not find RD to read.\n"; -} - - -sub read_QA{ - my $fh=shift; - - while(<$fh>){ - chomp; - my ($id, $qual_start, $qual_end, $clip_start, $clip_end)=split /\s+/; - if($id eq "QA"){ - return($qual_start, $qual_end, $clip_start, $clip_end); - } - } - die "Could not find QA to read.\n"; -} - - -sub read_DS{ - my $fh=shift; - my $id; - while(<$fh>){ - chomp; - my ($id)=split /\s+/; - if($id eq "DS"){ - return("not implemented"); - } - } - die "Could not find DS to read.\n"; -} - -# -# -# - -sub emitFragment ($$$$) { - my $uid = shift; - my $lid = shift; - my $seq = shift; - my $oh = shift; - - my $len = length($seq); - - my $qvs = $seq; - - my $q = chr($DEFAULT_QUAL + ord("0")); - my $l = chr($DEFAULT_QUAL/$LOW_QUAL_DIVISOR + ord("0")); - - $qvs =~ s/[^ACGT]/$l/og; - $qvs =~ s/[ACGT]/$q/og; - - print $oh "{FRG\n"; - print $oh "act:A\n"; - print $oh "acc:$uid\n"; - print $oh "rnd:1\n"; - print $oh "sta:G\n"; - print $oh "lib:$lid\n"; - print $oh "pla:0\n"; - print $oh "loc:0\n"; - print $oh "src:\n.\n"; - print $oh "seq:\n$seq\n.\n"; - print $oh "qlt:\n$qvs\n.\n"; - print $oh "hps:\n.\n"; - print $oh "clr:0,$len\n"; - print $oh "}\n"; -} - -# -# -# - -sub shredContig ($$$$$) { - my $ctgId = shift; - my $avgCoverage = shift; - my $sequence = shift; - my $libId = shift; - my $oh = shift; - - my $seq_len=length($sequence); - - my @begin_shred; - my @end_shred; - - { - # - # |*******| - # |###############| - # |-------------------------------------------------| - # ----------------1---------------- - # ----------------2---------------- - # ----------------3---------------- - # - # #### represents the distance between center of read 1 and read 3 - # [$center_range_width] - # **** represents the distance between centers of consective reads - # [$center_increments] - # - - my $shred_len = $SHRED_READ_LENGTH; - $shred_len = $seq_len - 50 if $seq_len < $SHRED_READ_LENGTH; - - my $num_reads=int($seq_len * $avgCoverage / $shred_len); - my $center_range_width = $seq_len - $shred_len; - - if($num_reads==1){ - push @begin_shred, 0; - push @end_shred, $shred_len; - }else{ - my $center_increments = $center_range_width / ($num_reads-1); - - # Cap the number of reads we will make so that we don't get - # redundant reads - - my $i; - my ($prev_begin, $prev_end)=(-1,-1); - for($i=0; $i<$num_reads; $i++){ - my $begin=$center_increments*$i; - my $end=$begin+$shred_len; - - $begin=int($begin); - $end=int($end); - - if($begin!=$prev_begin || $end!=$prev_end){ - push @begin_shred, $begin; - push @end_shred, $end; - $prev_begin=$begin; - $prev_end=$end; - } - } - } - - } - - my $num_shreds = scalar(@begin_shred); - - my $accomplished_coverage = $num_shreds * $SHRED_READ_LENGTH / $seq_len; - - # Output sequence after it has been formatted to the specified width - my $shred_idx; - for($shred_idx=0; $shred_idx<$num_shreds; $shred_idx++){ - my $shredded_sequence=substr($sequence, - $begin_shred[$shred_idx], - $end_shred[$shred_idx]-$begin_shred[$shred_idx]); - - #"/contig=$contigID\.$shred_idx " , - #"/target_coverage=$avgCoverage " , - #"/accomplished_coverage=$accomplished_coverage " , - #"/input_length=$seq_len " , - #"/range=${$begin_shred_ref}[$shred_idx]-" , - # "${$end_shred_ref}[$shred_idx]\n"; - - emitFragment("$libId.$ctgId.frag$shred_idx.$begin_shred[$shred_idx]-$end_shred[$shred_idx]", $libId, $shredded_sequence, $oh); - } -} - -# -# Main -# - -sub shredACE ($$) { - my $aceFile = shift; - my $outFile = shift; - my $libId = $aceFile; - - if ($aceFile =~ m/^.*\/(.*).ace/) { - $libId = $1; - } - - my $fh = new FileHandle "< $aceFile"; - my $oh = new FileHandle "> $outFile"; - - print $oh "{VER\n"; - print $oh "ver:2\n"; - print $oh "}\n"; - print $oh "{LIB\n"; - print $oh "act:A\n"; - print $oh "acc:$libId\n"; - print $oh "ori:U\n"; - print $oh "mea:0.0\n"; - print $oh "std:0.0\n"; - print $oh "src:\n"; - print $oh ".\n"; - print $oh "nft:1\n"; - print $oh "fea:\n"; - print $oh "doNotOverlapTrim=1\n"; - print $oh ".\n"; - print $oh "}\n"; - - my ($num_contigs, $num_reads)=read_AS($fh); - - my $contig_idx; - for($contig_idx=0; $contig_idx<$num_contigs; $contig_idx++){ - - my %read_position_hash; - - my ($contig_id, $num_consensus_bases, $num_reads, $num_segments, $complementation, $consensus_sequence) = read_CO($fh); - - my @coverage_array; - my $i; - - # Initialize Coverage Array - for($i=0; $i<$num_consensus_bases; $i++){ - $coverage_array[$i]=0; - } - - my $quality=read_BQ($fh); - - my $read_idx; - for($read_idx=0; $read_idx<$num_reads; $read_idx++){ - my ($read_id, $complementation, $consensus_start_pos)=read_AF($fh); - $read_position_hash{$read_id}=$consensus_start_pos; - } - - my ($base_line_start, $base_line_end, $base_line_read_id)=read_BS($fh); - - for($read_idx=0; $read_idx<$num_reads; $read_idx++){ - my ($read_id, $num_padded_bases, $num_read_info_items, $num_read_tags, $read_sequence)= read_RD($fh); - my ($qual_start, $qual_end, $align_start, $align_end)=read_QA($fh); - my $startPos = $read_position_hash{$read_id}; - - my $begin = $align_start + $startPos - 1; - my $end = $align_end + $startPos - 1; - - for($i=$begin; $i<$end; $i++){ - $coverage_array[$i]++; - } - my ($null)=read_DS($fh); - } - - - my $in_deep_enough=0; - my @sub_contig_begin_arr; - my @sub_contig_end_arr; - - # Keep track of where we go into deep coverage region from low coverage regions - for($i=0; $i<$num_consensus_bases; $i++){ - if($coverage_array[$i]>$MIN_COVERAGE && !$in_deep_enough){ - push @sub_contig_begin_arr, $i; - $in_deep_enough=1; - } - if($coverage_array[$i]<=$MIN_COVERAGE && $in_deep_enough){ - push @sub_contig_end_arr, ($i); - $in_deep_enough=0; - } - } - - if($in_deep_enough){ - push @sub_contig_end_arr, ($i); - } - - for($i=0; $i<=$#sub_contig_begin_arr; $i++){ - # Sum up coverage for each sub contig - my $cov_idx; - my $cov_sum=0; - for($cov_idx=$sub_contig_begin_arr[$i]; - $cov_idx<$sub_contig_end_arr[$i]; - $cov_idx++){ - $cov_sum+=$coverage_array[$cov_idx]; - } - - # Compute average coverage depth - - my $sub_seq_len=$sub_contig_end_arr[$i]-$sub_contig_begin_arr[$i]; - my $avg_cov = $cov_sum / $sub_seq_len; - - if($num_reads > $MIN_READS && $sub_seq_len>=$MIN_CONTIG_SIZE){ - my $sub_contig_seq = substr($consensus_sequence, - $sub_contig_begin_arr[$i], - $sub_seq_len); - - # Remove padding - $sub_contig_seq=~s/\*//g; - - shredContig($contig_id, $avg_cov, $sub_contig_seq, $libId, $oh); - } - } - } - - print $oh "{VER\n"; - print $oh "ver:1\n"; - print $oh "}\n"; -} - -# -# For standalone use -# - -#die "usage: $0 file.ace > file.frg\n" if (scalar(@ARGV) == 0); -#shredACE($ARGV[0], "a.frg"); -#exit(); - -################################################################################ -################################################################################ -################################################################################ - - -sub runMeryl ($$$$$$) { - my $merSize = shift @_; - my $merComp = shift @_; - my $merCanonical = shift @_; - my $merThresh = shift @_; - my $merScale = 1.0; - my $merType = shift @_; - my $merDump = shift @_; - - # The fasta file we should be creating. - my $ffile = "$wrk/0-mercounts/$asm.nmers.$merType.fasta"; - - if ($merThresh =~ m/auto\s*\*\s*(\S+)/) { - $merThresh = "auto"; - $merScale = $1; - } - - if ($merThresh =~ m/auto\s*\/\s*(\S+)/) { - $merThresh = "auto"; - $merScale = 1.0 / $1; - } - - if (($merThresh ne "auto") && ($merThresh == 0)) { - touch $ffile; - return; - } - - #if (-e $ffile) { - # print STDERR "runMeryl() would have returned.\n"; - #} - #print STDERR "$ffile\n"; - - if (merylVersion() eq "Mighty") { - - # Use the better meryl! This is straightforward. We count, - # then we dump. - - # Intermediate file - my $ofile = "$wrk/0-mercounts/$asm$merCanonical-ms$merSize-cm$merComp"; - - if (! -e "$ofile.mcdat") { - my $merylMemory = getGlobal("merylMemory"); - my $merylThreads = getGlobal("merylThreads"); - - if ($merylMemory !~ m/^-/) { - $merylMemory = "-memory $merylMemory"; - } - - # A small optimization we could do if (a) not mer - # overlapper, (b) not auto threshold: only save mer - # counts above the smaller (of obt & ovl thresholds). - # It's complicated, and potentially screws up restarts - # (if the threshold is changed after meryl is finished, - # for example). It's only useful on large assemblies, - # which we usually assume you know what's going on - # anyway. - # - # N.B. the mer overlapper NEEDS all mer counts 2 and - # higher. - - $cmd = "$bin/meryl "; - $cmd .= " -B $merCanonical -v -m $merSize $merylMemory -threads $merylThreads -c $merComp "; - $cmd .= " -L 2 "; - $cmd .= " -s $wrk/$asm.gkpStore:chain "; # Or 'latest' to get the original version - $cmd .= " -o $ofile "; - $cmd .= "> $wrk/0-mercounts/meryl.err 2>&1"; - - stopBefore("meryl", $cmd); - - if (runCommand("$wrk/0-mercounts", $cmd)) { - caFailure("meryl failed", "$wrk/0-mercounts/meryl.err"); - } - unlink "$wrk/0-mercounts/meryl.err"; - } - - if ($merThresh eq "auto") { - if (! -e "$ofile.estMerThresh.out") { - $cmd = "$bin/estimate-mer-threshold "; - $cmd .= " -g $wrk/$asm.gkpStore:chain "; # Or 'latest' to get the original version - $cmd .= " -m $ofile "; - $cmd .= " > $ofile.estMerThresh.out "; - $cmd .= "2> $ofile.estMerThresh.err"; - - stopBefore("meryl", $cmd); - - if (runCommand("$wrk/0-mercounts", $cmd)) { - rename "$ofile.estMerThresh.out", "$ofile.estMerThresh.out.FAILED"; - caFailure("estimate-mer-threshold failed", "$ofile.estMerThresh.err"); - } - } - - open(F, "< $ofile.estMerThresh.out") or caFailure("failed to read estimated mer threshold from '$ofile.estMerThresh.out'", undef); - $merThresh = ; - $merThresh = int($merThresh * $merScale); - close(F); - - if ($merThresh == 0) { - caFailure("failed to estimate a mer threshold", "$ofile.estMerThresh.err"); - } - } - - # We only need the ascii dump if we're doing overlapper, mer - # overlapper reads meryl directly. - # - if ($merDump) { - if (! -e $ffile) { - $cmd = "$bin/meryl "; - $cmd .= "-Dt -n $merThresh "; - $cmd .= "-s $ofile "; - $cmd .= "> $ffile "; - $cmd .= "2> $ffile.err "; - - if (runCommand("$wrk/0-mercounts", $cmd)) { - unlink $ffile; - caFailure("meryl failed to dump frequent mers", "$ffile.err"); - } - unlink "$ffile.err"; - } - } - } elsif (merylVersion() eq "CA") { - - # Sigh. The old meryl. Not as easy. If we assume the - # process, in particular that the Ovl threshold is less than - # the Obt threshold, and that we have already computed the - # Ovl mers, we could filter the Ovl mers to get the Obt mers. - # But that's tough, especially if we allow mer compression. - - my $merSkip = 10; - - # Intermediate file - my $ofile = "$wrk/0-mercounts/$asm-ms$merSize-mt$merThresh-mk$merSkip.$merType.fasta"; - - if ($merComp > 0) { - print STDERR "ERROR! merCompression not supported without installing kmer\n"; - print STDERR " (http://sourceforge.net/projects/kmer/).\n"; - print STDERR "If you have installed kmer, then your build is broken, as I\n"; - print STDERR "did not find the correct 'meryl' (meryl -V should have said Mighty).\n"; - die; - } - - if ($merCanonical ne "-C") { - print STDERR "ERROR! mer overlapper not supported without installing kmer\n"; - print STDERR " (http://sourceforge.net/projects/kmer/).\n"; - print STDERR "If you have installed kmer, then your build is broken, as I\n"; - print STDERR "did not find the correct 'meryl' (meryl -V should have said Mighty).\n"; - die; - } - - if ($merThresh eq "auto") { - print STDERR "WARNING! auto picking a mer threshold not supported without installing kmer\n"; - print STDERR " (http://sourceforge.net/projects/kmer/).\n"; - print STDERR "Using historical defaults.\n"; - - if ($merType eq "obt") { - $merThresh = 1000; - } else { - $merThresh = 500; - } - } - - if (! -e $ofile) { - my $mt = $merThresh / $merSkip; - - $cmd = "$bin/meryl "; - $cmd .= "-s $wrk/$asm.gkpStore -m $merSize -n $mt -K $merSkip "; - $cmd .= " -o $ofile"; - $cmd .= "> $wrk/0-mercounts/meryl.err 2>&1"; - - stopBefore("meryl", $cmd); - - if (runCommand("$wrk/0-mercounts", $cmd)) { - unlink $ofile; - caFailure("meryl failed to dump frequent mers", "$wrk/0-mercounts/meryl.err"); - } - unlink "$wrk/0-mercounts/meryl.err"; - } - - symlink($ofile, $ffile) if (! -e $ffile); - } else { - caFailure("unknown meryl version '" . merylVersion() . "'", ""); - } - - return($merThresh); -} - -sub meryl { - system("mkdir $wrk/0-mercounts") if (! -d "$wrk/0-mercounts"); - - if (getGlobal("ovlOverlapper") eq "umd") { - caFailure("meryl attempted to compute mer counts for the umd overlapper", undef); - } - if (getGlobal("ovlOverlapper") eq "sand") { - caFailure("meryl attempted to compute mer counts for the sand overlapper", undef); - } - my $ovlc = 0; # No compression, unless we're the mer overlapper - my $obtc = 0; - - my $ovlC = "-C"; # Canonical, unless we're the mer overlapper - my $obtC = "-C"; # (except the mer overlapper now wants canonical) - - my $ovlD = 1; # Dump, unless we're the mer overlapper - my $obtD = 1; - - my $obtT = 0; # New threshold - my $ovlT = 0; - - # If the mer overlapper, we don't care about single-copy mers, - # only mers that occur in two or more frags (kind of important - # for large assemblies). - - if (getGlobal("ovlOverlapper") eq "mer") { - $ovlc = getGlobal("merCompression"); - $ovlC = "-C"; - $ovlD = 0; - } - if (getGlobal("obtOverlapper") eq "mer") { - $obtc = getGlobal("merCompression"); - $obtC = "-C"; - $obtD = 0; - } - - $ovlT = runMeryl(getGlobal('ovlMerSize'), $ovlc, $ovlC, getGlobal("ovlMerThreshold"), "ovl", $ovlD); - $obtT = runMeryl(getGlobal('obtMerSize'), $obtc, $obtC, getGlobal("obtMerThreshold"), "obt", $obtD) if (getGlobal("doOverlapBasedTrimming")); - - if ((getGlobal("obtMerThreshold") ne $obtT) && (getGlobal("doOverlapBasedTrimming"))) { - print STDERR "Reset OBT mer threshold from ", getGlobal("obtMerThreshold"), " to $obtT.\n"; - setGlobal("obtMerThreshold", $obtT); - } - - if (getGlobal("ovlMerThreshold") ne $ovlT) { - print STDERR "Reset OVL mer threshold from ", getGlobal("ovlMerThreshold"), " to $ovlT.\n"; - setGlobal("ovlMerThreshold", $ovlT); - } -} - -################################################################################ -################################################################################ -################################################################################ - -sub getUMDOverlapperClearRange ($) { - my $dir = shift @_; - my $fileName = "$asm.obtClrRange"; - - open(F, "ls -1 -d $wrk/$dir/*overlapperRunDir* |"); - open(G, ">$wrk/$dir/$fileName") or caFailure("failed to write '$wrk/$dir/$fileName'", undef); - while () { - chomp; - - open(T, "< $_/revisedOrigTrimsForReads.txt") or caFailure("failed to open '$_/revisedOrigTrimsForReads.txt'", undef); - while () { - my @trimData = split(/\s+/,$_); - my $uid = $trimData[0]; - my $bgn = $trimData[1]; - my $end = $trimData[2]; - - if ($bgn < $end) { - print G "frg uid $uid obt all $bgn $end\n"; - } else { - print G "frg uid $uid obt all $end $bgn\n"; - } - } - close(T); - } - close(F); - close(G); - - return $fileName; -} - -sub UMDoverlapper () { - goto alldone if (-d "$wrk/$asm.ovlStore"); - goto alldone if (getGlobal("ovlOverlapper") ne "umd"); - - my $outDir = "1-overlapper"; - system("mkdir $wrk/$outDir") if (! -d "$wrk/$outDir"); - - my $jobID = "0000001"; - system("mkdir $wrk/$outDir/$jobID") if (! -d "$wrk/$outDir/$jobID"); - - my $vi = getGlobal("vectorIntersect"); - - #dump the frag file from gkp if it does not exist already - # should check if vector clear then dump vec range else dump this range - if (defined($vi)) { - if (runCommand($wrk, "$bin/gatekeeper -clear VEC -dumpfrg $wrk/$asm.gkpStore 2> $wrk/gatekeeper.err | grep -v 'No source' > $wrk/$asm.vec.frg")) { - caFailure("failed to dump gatekeeper store for UMD overlapper", "$wrk/gatekeeper.err"); - } - } - elsif ( ! -s "$wrk/$asm.frg" ) { - if (runCommand($wrk, "$bin/gatekeeper -dumpfrg $wrk/$asm.gkpStore 2> $wrk/gatekeeper.err | grep -v 'No source' > $wrk/$asm.frg")) { - caFailure("failed to dump gatekeeper store for UMD overlapper", "$wrk/gatekeeper.err"); - } - } - - # create a job list (we have only one job for right now) - open(SUB, "> $wrk/$outDir/ovljobs.dat") or caFailure("failed to open '$wrk/$outDir/ovljobs.dat'", undef); - print SUB "$jobID "; print SUB "\n"; - print SUB "$jobID "; print SUB "\n"; - close(SUB); - - # run frg file command - # - $cmd = "$bin/runUMDOverlapper "; - $cmd .= getGlobal("umdOverlapperFlags") . " "; - - # when we have vector clear, pass it to the overlapper, otherwise tell the overlapper to figure it out - if (defined($vi)) { - $cmd .= "-vector-trim-file $wrk/$asm.vec.frg $wrk/$asm.vec.frg " - } else { - $cmd .= "-calculate-trims $wrk/$asm.frg "; - } - - $cmd .= "$wrk/$outDir/$jobID/$asm.umd.frg "; - $cmd .= " > $wrk/$outDir/$jobID/overlapper.out 2>$wrk/$outDir/$jobID/overlapper.err"; - - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("failed to run UMD overlapper", "$wrk/$outDir/$jobID/overlapper.err"); - } - - my $trimFile = getUMDOverlapperClearRange($outDir); - $cmd = ""; - $cmd .= "$bin/gatekeeper --edit "; - $cmd .= "$wrk/$outDir/$trimFile $wrk/$asm.gkpStore"; - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("failed to update OBT trims", "undef"); - } - - # now create the binary overlaps - $cmd = ""; - $cmd .= "cat $wrk/$outDir/$jobID/$asm.umd.reliable.overlaps | "; - $cmd .= "awk '{print \$1\"\\t\"\$2\"\\t\"\$3\"\\t\"\$4\"\\t\"\$5\"\\t\"\$6\"\\t\"\$7}' | "; - $cmd .= "$bin/convertOverlap "; - $cmd .= "-b -ovldump "; - $cmd .= " > $wrk/$outDir/$jobID/$jobID.ovb"; - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("failed to create overlaps", undef); - } - - #cleanup - rmrf("$asm.vec.frg"); - - touch("$wrk/$outDir/$jobID/$jobID.success"); - stopAfter("overlapper"); - - alldone: -} - -sub SANDoverlapper () { - my $sandwrk = "$wrk/1-overlapper"; - mkdir($sandwrk); - - goto alldone if (getGlobal("ovlOverlapper") ne "sand"); - - my $bin = getBinDirectory(); - - my $vecopt = ""; - if(defined(getGlobal("vectorIntersect"))) { - $vecopt = "-clear VEC"; - } - - unless(-f "$sandwrk/$asm.fasta") { - if(runCommand($sandwrk, "$bin/gatekeeper $vecopt -dumpfasta $asm $wrk/$asm.gkpStore 2> $sandwrk/gatekeeper.err ")) { - caFailure("failed to dump gatekeeper store for SAND overlapper", "$sandwrk/gatekeeper.err"); - } - } - - unless(-f "$sandwrk/$asm.cfa") { - if(runCommand($sandwrk, "sand_compress_reads -i $asm.fasta $asm.cfa 2>compress.err")) { - caFailure("failed to compress reads for SAND overlapper", "$sandwrk/compress.err"); - } - } - - unless(-f "$sandwrk/$asm.repeats") { - if(runCommand($sandwrk, "$bin/meryl -B -m 22 -C -L 25 -v -o $asm.meryl -s $asm.fasta && $bin/meryl -Dt -s $asm.meryl -n 25 >$asm.repeats 2>repeats.err")) { - caFailure("failed to generate repeats for SAND overlapper", "$sandwrk/repeats.err"); - } - } - - unless(-f "$sandwrk/$asm.cand"){ - if(runCommand("$sandwrk","sand_filter_master -p ".getGlobal("sandPort")." ".getGlobal("sandFilterFlags")." -r $asm.repeats $asm.cfa $asm.cand 2>filter.err")) { - caFailure("failed to run sand_filter_master", "$sandwrk/filter.err"); - } - } - - unless(-f "$sandwrk/$asm.ovl"){ - if(runCommand("$sandwrk","sand_align_master -p ".getGlobal("sandPort")." ".getGlobal("sandAlignFlags")." $asm.cand $asm.cfa $asm.ovl 2>align.err")) { - caFailure("failed to run sand_align_master", "$sandwrk/align.err"); - } - } - - unless(-f "$sandwrk/$asm.ovb.gz"){ - if (runCommand("$sandwrk","$bin/convertOverlap -ovl < $asm.ovl | gzip > $asm.ovb.gz")) { - caFailure("failed to create overlaps", undef); - } - } - - touch("$sandwrk/$asm.success"); - stopAfter("overlapper"); - - alldone: -} - - - - -################################################################################ -################################################################################ -################################################################################ - -sub getFigaroClearRange ($) { - my $outDir = shift @_; - my $fileName = "$asm.clv"; - - # the figaro output is UID,IID CLR_BGN - # first reformat is as UID CLR_BGN - runCommand("$wrk/$outDir", "awk '{print substr(\$1, 1, index(\$1, \",\")-1)\" \"\$2}' $wrk/$outDir/$asm.vectorcuts > $wrk/$outDir/$asm.clrBgn"); - - # sort by UID and join it together with the read end to form the full vector clear range - runCommand("$wrk/$outDir", "sort -nk 1 -T $wrk/$outDir $wrk/$outDir/$asm.clrBgn > $wrk/$outDir/$asm.clrBgn.sorted"); - runCommand("$wrk/$outDir", "join $wrk/$outDir/$asm.clrBgn.sorted $wrk/$asm.untrimmed -o 1.1,1.2,2.3 > $wrk/$outDir/$fileName"); - - # clean up - rmrf("$outDir/$asm.clrBgn"); - rmrf("$outDir/$asm.clrBgn.sorted"); - - return $fileName; -} - -sub generateFigaroTrim($) { - my $outDir = shift @_; - - return if (-e "$wrk/$outDir/trim.success"); - - # run command - # - $cmd = "$bin/figaro "; - $cmd .= getGlobal("figaroFlags") . " "; - $cmd .= "-F $wrk/$asm.fasta -P $asm "; - $cmd .= " > $wrk/$outDir/figaro.out 2>$wrk/$outDir/figaro.err"; - - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("figaro died", "$wrk/$outDir/figaro.err"); - } - - # update the gkpStore with newly computed clear ranges - return getFigaroClearRange($outDir); -} - -sub getUMDTrimClearRange($) { - my $outDir = shift @_; - my $fileName = "$asm.clv"; - - # the umd output is CLR_BGN (in the same order as the input) - # to join it with the UID we first number both the list of UIDs in the fasta file and the CLR_BGN - runCommand("$wrk/$outDir", "cat $wrk/$asm.fasta | grep \">\" | awk '{print NR\" \"substr(\$1, 2, index(\$1, \",\")-2)}' > $wrk/$outDir/$asm.numberedUids"); - runCommand("$wrk/$outDir", "awk '{print NR\" \"\$0}' $asm.vectorcuts > $asm.numberedCuts"); - - # now we join them together - runCommand("$wrk/$outDir", "join $wrk/$outDir/$asm.numberedUids $wrk/$outDir/$asm.numberedCuts -o 1.2,2.2 > $wrk/$outDir/$asm.clrBgn"); - - # now we can join together the UID CLR_BGN with the read-end information for the full clear range - runCommand("$wrk/$outDir", "sort -nk 1 -T $wrk/$outDir $wrk/$outDir/$asm.clrBgn > $wrk/$outDir/$asm.clrBgn.sorted"); - runCommand("$wrk/$outDir", "join $wrk/$outDir/$asm.clrBgn.sorted $wrk/$asm.untrimmed -o 1.1,1.2,2.3 > $wrk/$outDir/$fileName"); - - # clean up - rmrf("$outDir/$asm.numberedUids"); - rmrf("$outDir/$asm.numberedCuts"); - rmrf("$outDir/$asm.clrBgn"); - rmrf("$outDir/$asm.clrBgn.sorted"); - rmrf("$outDir/vectorTrimIntermediateFile001.*"); - - return $fileName; -} - -sub generateUMDTrim($) { - my $outDir = shift @_; - - return if (-e "$wrk/$outDir/trim.success"); - - # run command - # - $cmd = "$bin/dataWorkReduced/findVectorTrimPoints.perl "; - $cmd .= "$wrk/$asm.fasta $wrk/$outDir/$asm.vectorcuts "; - $cmd .= " > $wrk/$outDir/umd.out 2>$wrk/$outDir/umd.err"; - - if (runCommand("$wrk/$outDir", $cmd)) { - caFailure("UMD overlapper dataWorkReduced/findVectorTrimPoints.perl died", - "$wrk/$outDir/umd.err"); - } - - return getUMDTrimClearRange($outDir); -} - -sub generateVectorTrim ($) { - my $vi = getGlobal("vectorIntersect"); - my $trimmer = getGlobal("vectorTrimmer"); - my $outDir = "0-preoverlap"; - my $trimFile = undef; - - # when vector insersect is specified or no external trimming is requested, do nothing - return if (defined($vi)); - return if ($trimmer eq "ca"); - return if (-e "$wrk/$outDir/trim.success"); - - #dump the fasta file from gkp - if ( ! -e "$wrk/$asm.fasta" ) { - if (runCommand($wrk, "$bin/gatekeeper -dumpfastaseq -clear UNTRIM $wrk/$asm.gkpStore 2> $wrk/$outDir/gatekeeper.err > $wrk/$asm.fasta")) { - caFailure("failed to dump gatekeeper store for figaro trimmer", - "$wrk/$outDir/gatekeeper.err"); - } - } - #dump the clr range - if ( ! -e "$wrk/$asm.untrimmed" ) { - if (runCommand($wrk, "$bin/gatekeeper -dumpfragments -tabular -clear UNTRIM $wrk/$asm.gkpStore 2> $wrk/$outDir/gatekeeper.err | grep -v 'UID' |awk '{print \$1\" \"\$12\" \"\$13}' | sort -nk 1 -T $wrk/ > $wrk/$asm.untrimmed")) { - caFailure("failed to dump gatekeeper quality trim points for figaro trimmer", - "$wrk/$outDir/gatekeeper.err"); - } - } - - if ($trimmer eq "figaro") { - $trimFile = generateFigaroTrim($outDir); - } elsif($trimmer eq "umd") { - $trimFile = generateUMDTrim($outDir); - } else { - caFailure("unknown vector trimmer $trimmer", undef); - } - - # set the global vector trim file so that the subsequent code will update the gkp for us - setGlobal("vectorIntersect", "$wrk/$outDir/$trimFile"); - - #cleanup - rmrf("$asm.fasta"); - rmrf("$asm.untrimmed"); - - touch("$wrk/$outDir/trim.success"); - - return; -} - -################################################################################ -################################################################################ -################################################################################ - -sub findMBTFailures ($) { - my $mbtJobs = shift @_; - my $failures = 0; - - for (my $i=1; $i<=$mbtJobs; $i++) { - my $jobid = substr("0000" . $i, -4); - if (-e "$wrk/0-mertrim/$asm.$jobid.merTrim.WORKING") { - #print STDERR "FAILURE $wrk/0-mertrim/$asm.$jobid.merTrim.WORKING\n"; - $failures++; - } - } - - return $failures; -} - -sub findMBTSuccess ($) { - my $mbtJobs = shift @_; - my $successes= 0; - - for (my $i=1; $i<=$mbtJobs; $i++) { - my $jobid = substr("0000" . $i, -4); - if (-e "$wrk/0-mertrim/$asm.$jobid.merTrim") { - #print STDERR "SUCCESS $wrk/0-mertrim/$asm.$jobid.merTrim\n"; - $successes++; - } - } - - return($successes == $mbtJobs); -} - - -sub merTrim { - - return if (getGlobal("doOverlapBasedTrimming") == 0); - return if (getGlobal("ovlOverlapper") eq "umd"); - return if (getGlobal("ovlOverlapper") eq "sand"); - - # Skip mer based trimming if it is done, or if the ovlStore already exists. - # - goto alldone if (-e "$wrk/0-mertrim/mertrim.success"); - goto alldone if (-d "$wrk/$asm.ovlStore"); - - system("mkdir $wrk/0-mertrim") if (! -d "$wrk/0-mertrim"); - - # Decide if any libraries request mer based trimming. There is a simpler method to get - # this (see unitigger.pl), but for unity with overlapTrim.pl, we count the number - # of libraries that want MBT. - # - my $mbtNeeded = 0; - - open(F, "$bin/gatekeeper -nouid -dumplibraries $wrk/$asm.gkpStore |"); - while () { - $mbtNeeded++ if (m/doTrim_initialMerBased.*=.*1/); - } - close(F); - - if ($mbtNeeded == 0) { - touch("$wrk/0-mertrim/mertrim.success"); - goto alldone; - } - - # - # Run mer trim on the grid. - # - - meryl(); - - my $mbtBatchSize = getGlobal("mbtBatchSize"); - my $mbtJobs = int($numFrags / $mbtBatchSize) + (($numFrags % $mbtBatchSize == 0) ? 0 : 1); - - my $merSize = getGlobal("obtMerSize"); - my $merComp = 0; # getGlobal("merCompression"); - - my $mbtThreads = getGlobal("mbtThreads"); - - if (! -e "$wrk/0-mertrim/mertrim.sh") { - open(F, "> $wrk/0-mertrim/mertrim.sh") or caFailure("can't open '$wrk/0-mertrim/mertrim.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "perl='/usr/bin/env perl'\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %04d \$jobid`\n"; - print F "minid=`expr \$jobid \\* $mbtBatchSize - $mbtBatchSize + 1`\n"; - print F "maxid=`expr \$jobid \\* $mbtBatchSize`\n"; - print F "\n"; - print F "if [ \$maxid -gt $numFrags ] ; then\n"; - print F " maxid=$numFrags\n"; - print F "fi\n"; - print F "\n"; - print F "if [ \$minid -gt \$maxid ] ; then\n"; - print F " echo Job partitioning error -- minid=\$minid maxid=\$maxid.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "if [ -e $wrk/0-mertrim/$asm.\$jobid.merTrim ]; then\n"; - print F " echo Job previously completed successfully.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - - print F "AS_OVL_ERROR_RATE=" , getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=" , getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=" , getGlobal("cgwErrorRate"), "\n"; - print F "AS_OVERLAP_MIN_LEN=", getGlobal("ovlMinLen"), "\n"; - print F "AS_READ_MIN_LEN=" , getGlobal("frgMinLen"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE AS_OVERLAP_MIN_LEN AS_READ_MIN_LEN\n"; - - print F getBinDirectoryShellCode(); - - print F "\$bin/merTrim \\\n"; - print F " -b \$minid \\\n"; - print F " -e \$maxid \\\n"; - print F " -g $wrk/$asm.gkpStore \\\n"; - print F " -t $mbtThreads \\\n"; - print F " -m $merSize \\\n"; - print F " -c $merComp \\\n"; - print F " -mc $wrk/0-mercounts/$asm-C-ms$merSize-cm$merComp \\\n"; - print F " -o $wrk/0-mertrim/$asm.\$jobid.merTrim.WORKING \\\n"; - print F " > $wrk/0-mertrim/$asm.\$jobid.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "mv $wrk/0-mertrim/$asm.\$jobid.merTrim.WORKING $wrk/0-mertrim/$asm.\$jobid.merTrim\n"; - print F "\n"; - print F "exit 0\n"; - close(F); - - system("chmod +x $wrk/0-mertrim/mertrim.sh"); - } - - stopBefore("initialTrim", undef); - - # Don't try to rerun failures. - # - # FAILUREHELPME - # - if (findMBTFailures($mbtJobs) > 0) { - caFailure("merTrim failed. See *.err in $wrk/0-mertrim", undef); - } - - # Submit to the grid (or tell the user to do it), or just run - # things here - # - if (findMBTSuccess($mbtJobs) == 0) { - if (getGlobal("useGrid") && getGlobal("mbtOnGrid")) { - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeMerTrim = getGlobal("sgeMerTrim"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeMerTrim -cwd -N mbt_$asm$sgeName \\\n"; - $SGE .= " -t 1-$mbtJobs \\\n"; - $SGE .= " -j y -o $wrk/0-mertrim/$asm.merTrim.\\\$TASK_ID.sge.err \\\n"; - $SGE .= " $wrk/0-mertrim/mertrim.sh\n"; - - submitBatchJobs($SGE, "mbt_$asm$sgeName"); - exit(0); - } else { - for (my $i=1; $i<=$mbtJobs; $i++) { - my $out = substr("0000" . $i, -4); - schedulerSubmit("$wrk/0-mertrim/mertrim.sh $i > $wrk/0-mertrim/$asm.$out.err 2>&1"); - } - - schedulerSetNumberOfProcesses(getGlobal("mbtConcurrency")); - schedulerFinish(); - } - } - - # Make sure everything finished ok. - # - # FAILUREHELPME - # - if (findMBTFailures($mbtJobs) > 0) { - caFailure("merTrim failed. See *.err in $wrk/0-mertrim", undef); - } - - - if (runCommand($wrk, "find $wrk/0-mertrim -name \\*.merTrim -print | sort > $wrk/0-mertrim/$asm.merTrim.list")) { - caFailure("failed to generate a list of all the merTrim results", undef); - } - - { - $cmd = "$bin/merTrimApply \\\n"; - $cmd .= " -g $wrk/$asm.gkpStore \\\n"; - $cmd .= " -L $wrk/0-mertrim/$asm.merTrim.list \\\n"; - $cmd .= " -l $wrk/0-mertrim/$asm.merTrim.log \\\n"; - $cmd .= " > $wrk/0-mertrim/$asm.merTrimApply.err 2>&1"; - - if (runCommand($wrk, $cmd)) { - rename "$wrk/0-mertrim/$asm.merTrim.log", "$wrk/0-mertrim/$asm.merTrim.log.FAILED"; - caFailure("merTrimApply failed", "$wrk/0-mertrim/$asm.merTrimApply.err"); - } - } - - touch("$wrk/0-mertrim/mertrim.success"); - - alldone: - #stopAfter("overlapBasedTrimming"); - #stopAfter("OBT"); -} - -################################################################################ -################################################################################ -################################################################################ - - -sub findOvermerryFailures ($$) { - my $outDir = shift @_; - my $ovmJobs = shift @_; - my $failures = 0; - - for (my $i=1; $i<=$ovmJobs; $i++) { - my $out = substr("0000" . $i, -4); - if (-e "$wrk/$outDir/seeds/$out.ovm.WORKING.gz") { - $failures++; - } - } - - return $failures; -} - -sub findOvermerrySuccess ($$) { - my $outDir = shift @_; - my $ovmJobs = shift @_; - my $successes= 0; - - for (my $i=1; $i<=$ovmJobs; $i++) { - my $out = substr("0000" . $i, -4); - if (-e "$wrk/$outDir/seeds/$out.ovm.gz") { - $successes++; - } - } - - return($successes == $ovmJobs); -} - -sub findOlapFromSeedsFailures ($$) { - my $outDir = shift @_; - my $olpJobs = shift @_; - my $failures = 0; - - for (my $i=1; $i<=$olpJobs; $i++) { - my $out = substr("0000" . $i, -4); - if (-e "$wrk/$outDir/olaps/$out.ovb.WORKING.gz") { - $failures++; - } - } - - return $failures; -} - -sub findOlapFromSeedsSuccess ($$) { - my $outDir = shift @_; - my $olpJobs = shift @_; - my $successes= 0; - - for (my $i=1; $i<=$olpJobs; $i++) { - my $out = substr("0000" . $i, -4); - if (-e "$wrk/$outDir/olaps/$out.ovb.gz") { - $successes++; - } - } - - return $successes == $olpJobs; -} - - -sub merOverlapper($) { - my $isTrim = shift @_; - - return if (-d "$wrk/$asm.ovlStore"); - return if (-d "$wrk/$asm.obtStore") && ($isTrim eq "trim"); - - caFailure("mer overlapper detected no fragments", undef) if ($numFrags == 0); - caFailure("mer overlapper doesn't know if trimming or assembling", undef) if (!defined($isTrim)); - - my ($outDir, $ovlOpt, $merSize, $merComp, $merType, $merylNeeded); - - # Set directories and parameters for either 'trimming' or 'real' - # overlaps. - - if ($isTrim eq "trim") { - $outDir = "0-overlaptrim-overlap"; - $ovlOpt = "-G"; - $merSize = getGlobal("obtMerSize"); - $merComp = getGlobal("merCompression"); - $merType = "obt"; - $merylNeeded = (getGlobal("obtMerThreshold") =~ m/auto/) ? 1 : 0; - } else { - $outDir = "1-overlapper"; - $ovlOpt = ""; - $merSize = getGlobal("ovlMerSize"); - $merComp = getGlobal("merCompression"); - $merType = "ovl"; - $merylNeeded = (getGlobal("ovlMerThreshold") =~ m/auto/) ? 1 : 0; - } - - system("mkdir $wrk/$outDir") if (! -d "$wrk/$outDir"); - system("mkdir $wrk/$outDir/seeds") if (! -d "$wrk/$outDir/seeds"); - system("mkdir $wrk/$outDir/olaps") if (! -d "$wrk/$outDir/olaps"); - - # Make the directory (to hold the corrections output) and claim - # that fragment correction is all done. after this, the rest of - # the fragment/overlap correction pipeline Just Works. - # - system("mkdir $wrk/3-overlapcorrection") if ((! -d "$wrk/3-overlapcorrection") && ($isTrim ne "trim")); - - my $ovmBatchSize = getGlobal("merOverlapperSeedBatchSize"); - my $ovmJobs = int($numFrags / $ovmBatchSize) + (($numFrags % $ovmBatchSize == 0) ? 0 : 1); - - my $olpBatchSize = getGlobal("merOverlapperExtendBatchSize"); - my $olpJobs = int($numFrags / $olpBatchSize) + (($numFrags % $olpBatchSize == 0) ? 0 : 1); - - # Need mer counts, unless there is only one partition. - meryl() if (($ovmJobs > 1) || ($merylNeeded)); - - - # Create overmerry and olap-from-seeds jobs - # - open(F, "> $wrk/$outDir/overmerry.sh") or caFailure("can't open '$wrk/$outDir/overmerry.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %04d \$jobid`\n"; - print F "minid=`expr \$jobid \\* $ovmBatchSize - $ovmBatchSize + 1`\n"; - print F "maxid=`expr \$jobid \\* $ovmBatchSize`\n"; - print F "runid=\$\$\n"; - print F "\n"; - print F "if [ \$maxid -gt $numFrags ] ; then\n"; - print F " maxid=$numFrags\n"; - print F "fi\n"; - print F "if [ \$minid -gt \$maxid ] ; then\n"; - print F " echo Job partitioning error -- minid=\$minid maxid=\$maxid.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "AS_OVERLAP_MIN_LEN=", getGlobal("ovlMinLen"), "\n"; - print F "AS_READ_MIN_LEN=" , getGlobal("frgMinLen"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE AS_OVERLAP_MIN_LEN AS_READ_MIN_LEN\n"; - print F "\n"; - print F "if [ ! -d $wrk/$outDir/seeds ]; then\n"; - print F " mkdir $wrk/$outDir/seeds\n"; - print F "fi\n"; - print F "\n"; - print F "if [ -e $wrk/$outDir/seeds/\$jobid.ovm.gz ]; then\n"; - print F " echo Job previously completed successfully.\n"; - print F " exit\n"; - print F "fi\n"; - print F getBinDirectoryShellCode(); - print F "\$bin/overmerry \\\n"; - print F " -g $wrk/$asm.gkpStore \\\n"; - if ($ovmJobs > 1) { - print F " -mc $wrk/0-mercounts/$asm-C-ms$merSize-cm$merComp \\\n"; - print F " -tb \$minid -te \$maxid \\\n"; - print F " -qb \$minid \\\n"; - } - print F " -m $merSize \\\n"; - print F " -c $merComp \\\n"; - print F " -T ", getGlobal("obtMerThreshold"), " \\\n" if ($isTrim eq "trim"); - print F " -T ", getGlobal("ovlMerThreshold"), " \\\n" if ($isTrim ne "trim"); - print F " -t " . getGlobal("merOverlapperThreads") . "\\\n"; - print F " -o $wrk/$outDir/seeds/\$jobid.ovm.WORKING.gz \\\n"; - print F "&& \\\n"; - print F "mv $wrk/$outDir/seeds/\$jobid.ovm.WORKING.gz $wrk/$outDir/seeds/\$jobid.ovm.gz\n"; - close(F); - - system("chmod +x $wrk/$outDir/overmerry.sh"); - - - - - open(F, "> $wrk/$outDir/olap-from-seeds.sh") or caFailure("can't open '$wrk/$outDir/olap-from-seeds.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %04d \$jobid`\n"; - print F "minid=`expr \$jobid \\* $olpBatchSize - $olpBatchSize + 1`\n"; - print F "maxid=`expr \$jobid \\* $olpBatchSize`\n"; - print F "runid=\$\$\n"; - print F "\n"; - print F "if [ \$maxid -gt $numFrags ] ; then\n"; - print F " maxid=$numFrags\n"; - print F "fi\n"; - print F "if [ \$minid -gt \$maxid ] ; then\n"; - print F " echo Job partitioning error -- minid=\$minid maxid=\$maxid.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "AS_OVERLAP_MIN_LEN=", getGlobal("ovlMinLen"), "\n"; - print F "AS_READ_MIN_LEN=" , getGlobal("frgMinLen"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE AS_OVERLAP_MIN_LEN AS_READ_MIN_LEN\n"; - print F "\n"; - print F "if [ ! -d $wrk/$outDir/olaps ]; then\n"; - print F " mkdir $wrk/$outDir/olaps\n"; - print F "fi\n"; - print F "\n"; - print F "if [ -e $wrk/$outDir/olaps/\$jobid.ovb.gz ]; then\n"; - print F " echo Job previously completed successfully.\n"; - print F " exit\n"; - print F "fi\n"; - print F getBinDirectoryShellCode(); - print F "\$bin/olap-from-seeds \\\n"; - print F " -a -b \\\n"; - print F " -t " . getGlobal("merOverlapperThreads") . "\\\n"; - print F " -S $wrk/$outDir/$asm.merStore \\\n"; - if ($isTrim eq "trim") { - print F " -G \\\n"; # Trim only - print F " -o $wrk/$outDir/olaps/\$jobid.ovb.WORKING.gz \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " \$minid \$maxid \\\n"; - print F "&& \\\n"; - print F "mv $wrk/$outDir/olaps/\$jobid.ovb.WORKING.gz $wrk/$outDir/olaps/\$jobid.ovb.gz\n"; - } else { - print F " -w \\\n" if (getGlobal("merOverlapperCorrelatedDiffs")); - print F " -c $wrk/3-overlapcorrection/\$jobid.frgcorr.WORKING \\\n"; - print F " -o $wrk/$outDir/olaps/\$jobid.ovb.WORKING.gz \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " \$minid \$maxid \\\n"; - print F "&& \\\n"; - print F "mv $wrk/$outDir/olaps/\$jobid.ovb.WORKING.gz $wrk/$outDir/olaps/\$jobid.ovb.gz \\\n"; - print F "&& \\\n"; - print F "mv $wrk/3-overlapcorrection/\$jobid.frgcorr.WORKING $wrk/3-overlapcorrection/\$jobid.frgcorr\n"; - } - close(F); - - system("chmod +x $wrk/$outDir/olap-from-seeds.sh"); - - - - - if (! -e "$wrk/$outDir/$asm.merStore") { - - # To prevent infinite loops -- stop now if the overmerry script - # exists. This will unfortunately make restarting from transient - # failures non-trivial. - # - # FAILUREHELPME - # - if (findOvermerryFailures($outDir, $ovmJobs) > 0) { - caFailure("overmerry failed. See *.err in $wrk/$outDir", undef); - } - - # Submit to the grid (or tell the user to do it), or just run - # things here - # - if (findOvermerrySuccess($outDir, $ovmJobs) == 0) { - if (getGlobal("useGrid") && getGlobal("ovlOnGrid")) { - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeOverlap = getGlobal("sgeMerOverlapSeed"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeOverlap -cwd -N mer_$asm$sgeName \\\n"; - $SGE .= " -t 1-$ovmJobs \\\n"; - $SGE .= " -j y -o $wrk/$outDir/seeds/\\\$TASK_ID.err \\\n"; - $SGE .= " $wrk/$outDir/overmerry.sh\n"; - - submitBatchJobs($SGE, "mer_$asm$sgeName"); - exit(0); - } else { - for (my $i=1; $i<=$ovmJobs; $i++) { - my $out = substr("0000" . $i, -4); - schedulerSubmit("$wrk/$outDir/overmerry.sh $i > $wrk/$outDir/seeds/$out.err 2>&1"); - } - - schedulerSetNumberOfProcesses(getGlobal("merOverlapperSeedConcurrency")); - schedulerFinish(); - } - } - - # Make sure everything finished ok. - # - # FAILUREHELPME - # - if (findOvermerryFailures($outDir, $ovmJobs) > 0) { - caFailure("overmerry failed. See *.err in $wrk/$outDir", undef); - } - - - if (runCommand($wrk, "find $wrk/$outDir/seeds \\( -name \\*ovm.gz -or -name \\*ovm \\) -print > $wrk/$outDir/$asm.merStore.list")) { - caFailure("failed to generate a list of all the overlap files", undef); - } - - $cmd = "$bin/overlapStore"; - $cmd .= " -c $wrk/$outDir/$asm.merStore.WORKING"; - $cmd .= " -g $wrk/$asm.gkpStore"; - $cmd .= " -M " . getGlobal("ovlStoreMemory"); - $cmd .= " -L $wrk/$outDir/$asm.merStore.list"; - $cmd .= " > $wrk/$outDir/$asm.merStore.err 2>&1"; - - if (runCommand($wrk, $cmd)) { - caFailure("overlap store building failed", "$wrk/$outDir/$asm.merStore.err"); - } - - rename "$wrk/$outDir/$asm.merStore.WORKING", "$wrk/$outDir/$asm.merStore"; - - if (getGlobal("saveOverlaps") == 0) { - open(F, "< $wrk/$outDir/$asm.merStore.list"); - while () { - chomp; - unlink $_; - } - close(F); - } - - rmrf("$outDir/$asm.merStore.list"); - rmrf("$outDir/$asm.merStore.err"); - } - - - # To prevent infinite loops -- stop now if the overmerry script - # exists. This will unfortunately make restarting from transient - # failures non-trivial. - # - # FAILUREHELPME - # - if (findOlapFromSeedsFailures($outDir, $olpJobs) > 0) { - caFailure("olap-from-seeds failed. See *.err in $wrk/$outDir.", undef); - } - - # Submit to the grid (or tell the user to do it), or just run - # things here - # - if (findOlapFromSeedsSuccess($outDir, $olpJobs) == 0) { - if (getGlobal("useGrid") && getGlobal("ovlOnGrid")) { - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeOverlap = getGlobal("sgeMerOverlapExtend"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeOverlap -cwd -N olp_$asm$sgeName \\\n"; - $SGE .= " -t 1-$olpJobs \\\n"; - $SGE .= " -j y -o $wrk/$outDir/olaps/\\\$TASK_ID.err \\\n"; - $SGE .= " $wrk/$outDir/olap-from-seeds.sh\n"; - - submitBatchJobs($SGE, "olp_$asm$sgeName"); - exit(0); - } else { - for (my $i=1; $i<=$olpJobs; $i++) { - my $out = substr("0000" . $i, -4); - schedulerSubmit("$wrk/$outDir/olap-from-seeds.sh $i > $wrk/$outDir/olaps/$out.err 2>&1"); - } - - schedulerSetNumberOfProcesses(getGlobal("merOverlapperExtendConcurrency")); - schedulerFinish(); - } - } - - # Make sure everything finished ok. - # - # FAILUREHELPME - # - if (findOlapFromSeedsFailures($outDir, $olpJobs) > 0) { - caFailure("olap-from-seeds failed. See *.err in $wrk/$outDir.", undef); - } -} - -################################################################################ -################################################################################ -################################################################################ - - - -sub createOverlapJobs($) { - my $isTrim = shift @_; - - return if (-d "$wrk/$asm.ovlStore"); - - caFailure("overlapper detected no fragments", undef) if ($numFrags == 0); - caFailure("overlapper needs to know if trimming or assembling", undef) if (!defined($isTrim)); - - my $ovlThreads = getGlobal("ovlThreads"); - my $ovlHashBits = getGlobal("ovlHashBits"); - my $ovlHashLoad = getGlobal("ovlHashLoad"); - - my $outDir = "1-overlapper"; - my $ovlOpt = ""; - my $merSize = getGlobal("ovlMerSize"); - my $merComp = getGlobal("merCompression"); - my $overlap = "overlapInCore"; - - if ($isTrim eq "trim") { - $outDir = "0-overlaptrim-overlap"; - $ovlOpt = "-G"; - $merSize = getGlobal("obtMerSize"); - $overlap = "overlapInCore"; - } - - system("mkdir $wrk/$outDir") if (! -d "$wrk/$outDir"); - - return if (-e "$wrk/$outDir/overlap.sh"); - - # umd overlapper here - # - if (getGlobal("ovlOverlapper") eq "umd") { - # For Sergey: - # - # UMDoverlapper() needs to dump the gkpstore, run UMD, build - # the ovlStore and update gkpStore with new clear ranges. - # The explicit call to UMDoverlapper in main() can then go away. - # OBT is smart enough to disable itself if umd is enabled. - # - UMDoverlapper(); - return; - } - - if (getGlobal("ovlOverlapper") eq "sand") { - print "RUNNING SAND\n"; - SANDoverlapper(); - return - } - - # mer overlapper here - # - if ((($isTrim eq "trim") && (getGlobal("obtOverlapper") eq "mer")) || - (($isTrim ne "trim") && (getGlobal("ovlOverlapper") eq "mer"))) { - merOverlapper($isTrim); - return; - } - - my $hashLibrary = 0; - my $refLibrary = 0; - if ($isTrim eq "trim") { - $hashLibrary = getGlobal("obtHashLibrary"); - $refLibrary = getGlobal("obtRefLibrary"); - } else { - $hashLibrary = getGlobal("ovlHashLibrary"); - $refLibrary = getGlobal("ovlRefLibrary"); - } - - # To prevent infinite loops -- stop now if the overlap script - # exists. This will unfortunately make restarting from transient - # failures non-trivial. - # - # FAILUREHELPME - # - caFailure("overlapper failed\nmanual restart needed to prevent infinite loops\nremove file '$wrk/$outDir/overlap.sh'", undef) if (-e "$wrk/$outDir/overlap.sh"); - - meryl(); - - # We make a giant job array for this -- we need to know hashBeg, - # hashEnd, refBeg and refEnd -- from that we compute batchName - # and jobName. - # - # ovlopts.pl returns the batch name ($batchName), the job name - # ($jobName) and options to pass to overlap (-h $hashBeg-$hashEnd - # -r $refBeg-$refEnd). From those, we can construct the command - # to run. - # - open(F, "> $wrk/$outDir/overlap.sh") or caFailure("can't open '$wrk/$outDir/overlap.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "perl='/usr/bin/env perl'\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "bat=`head -n \$jobid $wrk/$outDir/ovlbat | tail -n 1`\n"; - print F "job=`head -n \$jobid $wrk/$outDir/ovljob | tail -n 1`\n"; - print F "opt=`head -n \$jobid $wrk/$outDir/ovlopt | tail -n 1`\n"; - print F "jid=\$\$\n"; - print F "\n"; - print F "if [ ! -d $wrk/$outDir/\$bat ]; then\n"; - print F " mkdir $wrk/$outDir/\$bat\n"; - print F "fi\n"; - print F "\n"; - print F "if [ -e $wrk/$outDir/\$bat/\$job.ovb.gz ]; then\n"; - print F " echo Job previously completed successfully.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "if [ x\$bat = x ]; then\n"; - print F " echo Error: Job index out of range.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=" , getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=" , getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=" , getGlobal("cgwErrorRate"), "\n"; - print F "AS_OVERLAP_MIN_LEN=", getGlobal("ovlMinLen"), "\n"; - print F "AS_READ_MIN_LEN=" , getGlobal("frgMinLen"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE AS_OVERLAP_MIN_LEN AS_READ_MIN_LEN\n"; - - print F getBinDirectoryShellCode(); - - print F "\$bin/$overlap $ovlOpt --hashbits $ovlHashBits --hashload $ovlHashLoad -t $ovlThreads \\\n"; - print F " \$opt \\\n"; - print F " -k $merSize \\\n"; - print F " -k $wrk/0-mercounts/$asm.nmers.obt.fasta \\\n" if ($isTrim eq "trim"); - print F " -k $wrk/0-mercounts/$asm.nmers.ovl.fasta \\\n" if ($isTrim ne "trim"); - print F " -o $wrk/$outDir/\$bat/\$job.ovb.WORKING.gz \\\n"; - print F " -H $hashLibrary -R $refLibrary \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F "&& \\\n"; - print F "mv $wrk/$outDir/\$bat/\$job.ovb.WORKING.gz $wrk/$outDir/\$bat/\$job.ovb.gz\n"; - print F "\n"; - print F "exit 0\n"; - close(F); - - system("chmod +x $wrk/$outDir/overlap.sh"); - - - my $jobs = 0; - my $batchName = ""; - my $jobName = ""; - - { - my $cmd; - - my $ovlHashBlockLength = getGlobal("ovlHashBlockLength"); - my $ovlHashBlockSize = 0; - my $ovlRefBlockSize = getGlobal("ovlRefBlockSize"); - - $cmd = "$bin/overlap_partition \\\n"; - $cmd .= " -g $wrk/$asm.gkpStore \\\n"; - $cmd .= " -bl $ovlHashBlockLength \\\n"; - $cmd .= " -bs $ovlHashBlockSize \\\n"; - $cmd .= " -rs $ovlRefBlockSize \\\n"; - $cmd .= " -o $wrk/$outDir"; - - if (runCommand($wrk, $cmd)) { - caFailure("failed partition for overlapper", undef); - } - - open(F, "< $wrk/$outDir/ovlbat") or caFailure("failed partition for overlapper: no ovlbat file found", undef); - my @bat = ; - close(F); - - open(F, "< $wrk/$outDir/ovljob") or caFailure("failed partition for overlapper: no ovljob file found", undef); - my @job = ; - close(F); - - $jobs = scalar(@job); - $batchName = $bat[$jobs-1]; chomp $batchName; - $jobName = $job[$jobs-1]; chomp $jobName; - } - - print STDERR "Created $jobs overlap jobs. Last batch '$batchName', last job '$jobName'.\n"; - - # Submit to the grid (or tell the user to do it), or just run - # things here - # - if (getGlobal("useGrid") && getGlobal("ovlOnGrid")) { - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeOverlap = getGlobal("sgeOverlap"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeOverlap -cwd -N ovl_$asm$sgeName \\\n"; - $SGE .= " -t 1-$jobs \\\n"; - $SGE .= " -j y -o $wrk/$outDir/\\\$TASK_ID.out \\\n"; - $SGE .= " $wrk/$outDir/overlap.sh\n"; - - submitBatchJobs($SGE, "ovl_$asm$sgeName"); - exit(0); - } else { - for (my $i=1; $i<=$jobs; $i++) { - my $out = substr("000000" . $i, -6); - schedulerSubmit("$wrk/$outDir/overlap.sh $i > $wrk/$outDir/$out.out 2>&1"); - } - - schedulerSetNumberOfProcesses(getGlobal("ovlConcurrency")); - schedulerFinish(); - } -} - -################################################################################ -################################################################################ -################################################################################ - -# Check that the overlapper jobs properly executed. If not, -# complain, but don't help the user fix things. - - -sub checkOverlapper ($) { - my $isTrim = shift @_; - - my $outDir = "1-overlapper"; - my $ovlOpt = ""; - - if ($isTrim eq "trim") { - $outDir = "0-overlaptrim-overlap"; - $ovlOpt = "-G"; - } - - my $failedJobs = 0; - my $failureMessage = ""; - - open(B, "< $wrk/$outDir/ovlbat") or caFailure("failed to open '$wrk/$outDir/ovlbat'", undef); - open(J, "< $wrk/$outDir/ovljob") or caFailure("failed to open '$wrk/$outDir/ovljob'", undef); - - while (!eof(B) && !eof(J)) { - my $b = ; chomp $b; - my $j = ; chomp $j; - - if ((! -e "$wrk/$outDir/$b/$j.ovb.gz") && - (! -e "$wrk/$outDir/$b/$j.ovb")) { - $failureMessage .= "ERROR: Overlap job $wrk/$outDir/$b/$j FAILED.\n"; - $failedJobs++; - } - } - - if (!eof(B) || !eof(J)) { - print STDERR "Partitioning error; '$wrk/$outDir/ovlbat' and '$wrk/$outDir/ovljob' have extra lines.\n"; - } - - # FAILUREHELPME - # - $failureMessage .= "\n$failedJobs overlapper jobs failed"; - caFailure($failureMessage, undef) if ($failedJobs); -} - - -sub checkMerOverlapper ($) { - my $isTrim = shift @_; - - my $outDir = "1-overlapper"; - - if ($isTrim eq "trim") { - $outDir = "0-overlaptrim-overlap"; - } - - my $batchSize = getGlobal("merOverlapperExtendBatchSize"); - my $jobs = int($numFrags / $batchSize) + (($numFrags % $batchSize == 0) ? 0 : 1); - my $failedJobs = 0; - - for (my $i=1; $i<=$jobs; $i++) { - my $job = substr("0000" . $i, -4); - - if ((! -e "$wrk/$outDir/olaps/$job.ovb.gz") && - (! -e "$wrk/$outDir/olaps/$job.ovb")) { - print STDERR "$wrk/$outDir/olaps/$job failed.\n"; - $failedJobs++; - } - } - - caFailure("$failedJobs overlapper jobs failed", undef) if ($failedJobs); -} - - -sub checkOverlap { - my $isTrim = shift @_; - - caFailure("overlap checker needs to know if trimming or assembling", undef) if (!defined($isTrim)); - - if ($isTrim eq "trim") { - return if (-d "$wrk/$asm.obtStore"); - if (getGlobal("obtOverlapper") eq "ovl") { - checkOverlapper($isTrim); - } elsif (getGlobal("obtOverlapper") eq "ovm") { - checkOverlapper($isTrim); - } elsif (getGlobal("obtOverlapper") eq "mer") { - checkMerOverlapper($isTrim); - } elsif (getGlobal("obtOverlapper") eq "umd") { - caFailure("checkOverlap() wanted to check umd overlapper for obt?\n", undef); - } elsif (getGlobal("obtOverlapper") eq "sand") { - caError("checkOverlap() wanted to check sand overlapper for obt?\n", undef); - }else { - caFailure("checkOverlap() unknown obt overlapper?\n", undef); - } - } else { - return if (-d "$wrk/$asm.ovlStore"); - if (getGlobal("ovlOverlapper") eq "ovl") { - checkOverlapper($isTrim); - } elsif (getGlobal("ovlOverlapper") eq "ovm") { - checkOverlapper($isTrim); - } elsif (getGlobal("ovlOverlapper") eq "mer") { - checkMerOverlapper($isTrim); - } elsif (getGlobal("ovlOverlapper") eq "umd") { - # Nop. - } elsif (getGlobal("ovlOverlapper") eq "sand") { - # Nop. - } else { - caFailure("checkOverlap() unknown ovl overlapper?\n", undef); - } - } -} - -################################################################################ -################################################################################ -################################################################################ - -sub createOverlapStore { - - goto alldone if (-d "$wrk/$asm.ovlStore"); - - if (runCommand($wrk, "find $wrk/1-overlapper \\( -name \\*ovb.gz -or -name \\*ovb \\) -print > $wrk/$asm.ovlStore.list")) { - caFailure("failed to generate a list of all the overlap files", undef); - } - - $cmd = "$bin/overlapStore "; - $cmd .= " -c $wrk/$asm.ovlStore.BUILDING "; - $cmd .= " -g $wrk/$asm.gkpStore "; - - if (defined(getGlobal("closureOverlaps"))){ - $cmd .= " -i " . getGlobal("closureOverlaps"); - } - - $cmd .= " -M " . getGlobal("ovlStoreMemory"); - $cmd .= " -L $wrk/$asm.ovlStore.list "; - $cmd .= " > $wrk/$asm.ovlStore.err 2>&1"; - - if (runCommand($wrk, $cmd)) { - caFailure("failed to create the overlap store", "$wrk/$asm.ovlStore.err"); - } - - rename "$wrk/$asm.ovlStore.BUILDING", "$wrk/$asm.ovlStore"; - - if (getGlobal("saveOverlaps") == 0) { - open(F, "< $wrk/$asm.ovlStore.list"); - while () { - chomp; - unlink $_; - } - close(F); - } - - rmrf("$wrk/$asm.ovlStore.list"); - rmrf("$wrk/$asm.ovlStore.err"); - - alldone: - stopAfter("overlapper"); -} - -################################################################################ -################################################################################ -################################################################################ - -sub overlapTrim { - - return if (getGlobal("doOverlapBasedTrimming") == 0); - return if (getGlobal("ovlOverlapper") eq "umd"); - return if (getGlobal("ovlOverlapper") eq "sand"); - # Skip overlap based trimming if it is done, or if the ovlStore already exists. - # - goto alldone if (-e "$wrk/0-overlaptrim/overlaptrim.success"); - goto alldone if (-d "$wrk/$asm.ovlStore"); - - system("mkdir $wrk/0-overlaptrim") if (! -d "$wrk/0-overlaptrim"); - system("mkdir $wrk/0-overlaptrim-overlap") if (! -d "$wrk/0-overlaptrim-overlap"); - - # Disable dedup, unless reads request it. This avoids an expensive ovlStore build. - # - if (getGlobal("doDeDuplication") != 0) { - setGlobal("doDeDuplication", 0); - - if (system("$bin/gatekeeper -isfeatureset 0 doRemoveDuplicateReads $wrk/$asm.gkpStore") == 0) { - setGlobal("doDeDuplication", 1); - } - } - - # - # Do an initial overly-permissive quality trimming, intersected with any known vector trimming. - # This step also applies any clear range computed by MBT. - # - - if ((! -e "$wrk/0-overlaptrim/$asm.initialTrim.log") && - (! -e "$wrk/0-overlaptrim/$asm.initialTrim.log.bz2")) { - $cmd = "$bin/initialTrim \\\n"; - $cmd .= " -log $wrk/0-overlaptrim/$asm.initialTrim.log \\\n"; - $cmd .= " -frg $wrk/$asm.gkpStore \\\n"; - $cmd .= " > $wrk/0-overlaptrim/$asm.initialTrim.summary \\\n"; - $cmd .= " 2> $wrk/0-overlaptrim/$asm.initialTrim.err "; - - stopBefore("initialTrim", $cmd); - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - rename "$wrk/0-overlaptrim/$asm.initialTrim.log", "$wrk/0-overlaptrim/$asm.initialTrim.log.FAILED"; - caFailure("initial trimming failed", "$wrk/0-overlaptrim/$asm.initialTrim.err"); - } - - unlink "0-overlaptrim/$asm.initialTrim.err"; - } - - # - # Decide if any libraries request overlap based trimming -- if all libraries are - # asking for mer based trimming, we can skip OBT. - # - - my $obtNeeded = 0; - - open(F, "$bin/gatekeeper -nouid -dumplibraries $wrk/$asm.gkpStore |"); - while () { - $obtNeeded++ if (m/doRemoveDuplicateReads.*=.*1/); - $obtNeeded++ if (m/doTrim_finalLargestCovered.*=.*1/); - $obtNeeded++ if (m/doTrim_finalEvidenceBased.*=.*1/); - $obtNeeded++ if (m/doRemoveSpurReads.*=.*1/); - $obtNeeded++ if (m/doRemoveChimericReads.*=.*1/); - } - close(F); - - if ($obtNeeded == 0) { - touch("$wrk/0-overlaptrim/overlaptrim.success"); - goto alldone; - } - - # - # Compute overlaps, if we don't have them already - # - - if (! -e "$wrk/0-overlaptrim/$asm.obtStore") { - createOverlapJobs("trim"); - checkOverlap("trim"); - - # Sort the overlaps -- this also duplicates each overlap so that - # all overlaps for a fragment A are localized. - - if (runCommand("$wrk/0-overlaptrim", - "find $wrk/0-overlaptrim-overlap -follow \\( -name \\*ovb.gz -or -name \\*ovb \\) -print > $wrk/0-overlaptrim/$asm.obtStore.list")) { - caFailure("failed to generate a list of all the overlap files", undef); - } - - $cmd = "$bin/overlapStore "; - $cmd .= " -O "; - $cmd .= " -c $wrk/0-overlaptrim/$asm.obtStore.BUILDING "; - $cmd .= " -g $wrk/$asm.gkpStore "; - $cmd .= " -M " . getGlobal('ovlStoreMemory'); - $cmd .= " -L $wrk/0-overlaptrim/$asm.obtStore.list"; - $cmd .= " > $wrk/0-overlaptrim/$asm.obtStore.err 2>&1"; - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - caFailure("failed to build the obt store", "$wrk/0-overlaptrim/$asm.obtStore.err"); - } - - rename "$wrk/0-overlaptrim/$asm.obtStore.BUILDING", "$wrk/0-overlaptrim/$asm.obtStore"; - - # Delete overlaps unless we're told to save them, or we need to dedup. - if ((getGlobal("saveOverlaps") == 0) && (getGlobal("doDeDuplication") == 0)) { - open(F, "< $wrk/0-overlaptrim/$asm.obtStore.list"); - while () { - chomp; - unlink $_; - } - close(F); - } - - rmrf("$wrk/0-overlaptrim/$asm.obtStore.list"); - rmrf("$wrk/0-overlaptrim/$asm.obtStore.err"); - } - - # - # Deduplicate? - # - - if ((getGlobal("doDeDuplication") != 0) && - (! -e "$wrk/0-overlaptrim/$asm.deduplicate.summary")) { - - if (! -e "$wrk/0-overlaptrim/$asm.dupStore") { - if (runCommand("$wrk/0-overlaptrim", - "find $wrk/0-overlaptrim-overlap -follow \\( -name \\*ovb.gz -or -name \\*ovb \\) -print > $wrk/0-overlaptrim/$asm.dupStore.list")) { - caFailure("failed to generate a list of all the overlap files", undef); - } - - $cmd = "$bin/overlapStore \\\n"; - $cmd .= " -O -O \\\n"; - $cmd .= " -c $wrk/0-overlaptrim/$asm.dupStore.BUILDING \\\n"; - $cmd .= " -g $wrk/$asm.gkpStore \\\n"; - $cmd .= " -M \\\n" . getGlobal('ovlStoreMemory'); - $cmd .= " -L $wrk/0-overlaptrim/$asm.dupStore.list \\\n"; - $cmd .= " > $wrk/0-overlaptrim/$asm.dupStore.err 2>&1"; - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - caFailure("failed to build the dup store", "$wrk/0-overlaptrim/$asm.dupStore.err"); - } - - rename "$wrk/0-overlaptrim/$asm.dupStore.BUILDING", "$wrk/0-overlaptrim/$asm.dupStore"; - - # Delete overlaps unless we're told to save them - if (getGlobal("saveOverlaps") == 0) { - open(F, "< $wrk/0-overlaptrim/$asm.dupStore.list"); - while () { - chomp; - unlink $_; - } - close(F); - } - - rmrf("$asm.dupStore.list"); - rmrf("$asm.dupStore.err"); - } - - $cmd = "$bin/deduplicate \\\n"; - $cmd .= "-gkp $wrk/$asm.gkpStore \\\n"; - $cmd .= "-ovs $wrk/0-overlaptrim/$asm.obtStore \\\n"; - $cmd .= "-ovs $wrk/0-overlaptrim/$asm.dupStore \\\n"; - $cmd .= "-report $wrk/0-overlaptrim/$asm.deduplicate.log \\\n"; - $cmd .= "-summary $wrk/0-overlaptrim/$asm.deduplicate.summary \\\n"; - $cmd .= "> $wrk/0-overlaptrim/$asm.deduplicate.err 2>&1"; - - stopBefore("deDuplication", $cmd); - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - unlink "$wrk/0-overlaptrim/$asm.deduplicate.summary"; - caFailure("failed to deduplicate the reads", "$wrk/0-overlaptrim/$asm.deduplicate.err"); - } - } - - if ((! -e "$wrk/0-overlaptrim/$asm.finalTrim.log") && - (! -e "$wrk/0-overlaptrim/$asm.finalTrim.log.bz2")) { - my $erate = 0.03; - my $elimit = 4.5; - - $cmd = "$bin/finalTrim \\\n"; - $cmd .= " -G $wrk/$asm.gkpStore \\\n"; - $cmd .= " -O $wrk/0-overlaptrim/$asm.obtStore \\\n"; - $cmd .= " -e $erate \\\n"; - $cmd .= " -E $elimit \\\n"; - $cmd .= " -o $wrk/0-overlaptrim/$asm.finalTrim \\\n"; - $cmd .= "> $wrk/0-overlaptrim/$asm.finalTrim.err 2>&1"; - - stopBefore("finalTrimming", $cmd); - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - unlink "$wrk/0-overlaptrim/$asm.finalTrim.log"; - unlink "$wrk/0-overlaptrim/$asm.finalTrim.stats"; - caFailure("failed to compute final trimming", "$wrk/0-overlaptrim/$asm.finalTrim.err"); - } - } - - - if (getGlobal("doChimeraDetection") ne 'off') { - if ((! -e "$wrk/0-overlaptrim/$asm.chimera.log") && - (! -e "$wrk/0-overlaptrim/$asm.chimera.log.bz2")) { - $cmd = "$bin/chimera \\\n"; - $cmd .= " -gkp $wrk/$asm.gkpStore \\\n"; - $cmd .= " -ovs $wrk/0-overlaptrim/$asm.obtStore \\\n"; - $cmd .= " -summary $wrk/0-overlaptrim/$asm.chimera.summary \\\n"; - $cmd .= " -report $wrk/0-overlaptrim/$asm.chimera.log \\\n"; - $cmd .= " -mininniepair 0 -minoverhanging 0 \\\n" if (getGlobal("doChimeraDetection") eq "aggressive"); - $cmd .= " > $wrk/0-overlaptrim/$asm.chimera.err 2>&1"; - - stopBefore("chimeraDetection", $cmd); - - if (runCommand("$wrk/0-overlaptrim", $cmd)) { - rename "$wrk/0-overlaptrim/$asm.chimera.log", "$wrk/0-overlaptrim/$asm.chimera.log.FAILED"; - caFailure("chimera cleaning failed", "$wrk/0-overlaptrim/$asm.chimera.err"); - } - } - } - - #rmrf("$asm.obtStore"); - - touch("$wrk/0-overlaptrim/overlaptrim.success"); - - alldone: - stopAfter("overlapBasedTrimming"); - stopAfter("OBT"); -} - -################################################################################ -################################################################################ -################################################################################ - - - -sub overlapCorrection { - my $cleanup = 1; - - return if (getGlobal("doFragmentCorrection") == 0); - - return if (-e "$wrk/3-overlapcorrection/$asm.erates.updated"); - return if (-e "$wrk/$asm.ovlStore/corrected"); - - system("mkdir $wrk/3-overlapcorrection") if (! -e "$wrk/3-overlapcorrection"); - - if (((getGlobal("ovlOverlapper") eq "ovl") && - (getGlobal("ovlOverlapper") eq "ovm")) || - (! -e "$wrk/3-overlapcorrection/frgcorr.sh")) { - my $batchSize = getGlobal("frgCorrBatchSize"); - my $numThreads = getGlobal("frgCorrThreads"); - my $jobs = int($numFrags / $batchSize) + (($numFrags % $batchSize == 0) ? 0 : 1); - - open(F, "> $wrk/3-overlapcorrection/frgcorr.sh") or caFailure("failed to write to '$wrk/3-overlapcorrection/frgcorr.sh'", undef); - print F "#!" . getGlobal("shell") . "\n\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %04d \$jobid`\n"; - print F "minid=`expr \$jobid \\* $batchSize - $batchSize + 1`\n"; - print F "maxid=`expr \$jobid \\* $batchSize`\n"; - print F "runid=\$\$\n"; - print F "\n"; - print F "if [ \$maxid -gt $numFrags ] ; then\n"; - print F " maxid=$numFrags\n"; - print F "fi\n"; - print F "if [ \$minid -gt \$maxid ] ; then\n"; - print F " echo Job partitioning error -- minid=\$minid maxid=\$maxid.\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "AS_OVERLAP_MIN_LEN=", getGlobal("ovlMinLen"), "\n"; - print F "AS_READ_MIN_LEN=" , getGlobal("frgMinLen"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE AS_OVERLAP_MIN_LEN AS_READ_MIN_LEN\n"; - print F "\n"; - print F "if [ -e $wrk/3-overlapcorrection/\$jobid.frgcorr ] ; then\n"; - print F " echo Job previously completed successfully.\n"; - print F " exit\n"; - print F "fi\n"; - - print F getBinDirectoryShellCode(); - - print F "\$bin/correct-frags \\\n"; - print F " -t $numThreads \\\n"; - print F " -S $wrk/$asm.ovlStore \\\n"; - print F " -o $wrk/3-overlapcorrection/\$jobid.frgcorr.WORKING \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " \$minid \$maxid \\\n"; - print F "&& \\\n"; - print F "mv $wrk/3-overlapcorrection/\$jobid.frgcorr.WORKING $wrk/3-overlapcorrection/\$jobid.frgcorr\n"; - - close(F); - - chmod 0755, "$wrk/3-overlapcorrection/frgcorr.sh"; - - if (getGlobal("frgCorrOnGrid") && getGlobal("useGrid")) { - # Run the correction job on the grid. - - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeFragmentCorrection = getGlobal("sgeFragmentCorrection"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeFragmentCorrection -cwd -N frg_$asm$sgeName "; - $SGE .= "-t 1-$jobs "; - $SGE .= " -j y -o $wrk/3-overlapcorrection/\\\$TASK_ID.err "; - $SGE .= "$wrk/3-overlapcorrection/frgcorr.sh\n"; - - submitBatchJobs($SGE, "frg_$asm$sgeName"); - exit(0); - } else { - # Run the correction job right here, right now. - - for (my $i=1; $i<=$jobs; $i++) { - my $out = substr("0000" . $i, -4); - schedulerSubmit("$wrk/3-overlapcorrection/frgcorr.sh $i > $wrk/3-overlapcorrection/$out.err 2>&1"); - } - - schedulerSetNumberOfProcesses($global{"frgCorrConcurrency"}); - schedulerFinish(); - } - } - - # - # MERGE CORRECTION - # - - if (! -e "$wrk/3-overlapcorrection/$asm.frgcorr") { - my $batchSize = (getGlobal("ovlOverlapper") eq "mer") ? getGlobal("merOverlapperExtendBatchSize") : getGlobal("frgCorrBatchSize"); - my $jobs = int($numFrags / $batchSize) + (($numFrags % $batchSize == 0) ? 0 : 1); - my $failedJobs = 0; - - open(F, "> $wrk/3-overlapcorrection/cat-corrects.frgcorrlist"); - for (my $i=1; $i<=$jobs; $i++) { - my $jobid = substr("0000" . $i, -4); - - if (! -e "$wrk/3-overlapcorrection/$jobid.frgcorr") { - print STDERR "Fragment correction job $jobid failed.\n"; - $failedJobs++; - } - - print F "$wrk/3-overlapcorrection/$jobid.frgcorr\n"; - } - close(F); - - # FAILUREHELPME - - if ($failedJobs) { - if ((getGlobal("ovlOverlapper") eq "ovl") || (getGlobal("ovlOverlapper") eq "ovm")) { - caFailure("$failedJobs overlap jobs failed; remove $wrk/3-overlapcorrection/frgcorr.sh to try again", undef); - } else { - caFailure("$failedJobs overlap jobs failed due to mer overlap seed extension", undef); - } - } - - $cmd = "$bin/cat-corrects "; - $cmd .= "-L $wrk/3-overlapcorrection/cat-corrects.frgcorrlist "; - $cmd .= "-o $wrk/3-overlapcorrection/$asm.frgcorr "; - $cmd .= "> $wrk/3-overlapcorrection/cat-corrects.err 2>&1"; - - if (runCommand("$wrk/3-overlapcorrection", $cmd)) { - rename "$wrk/3-overlapcorrection/$asm.frgcorr", "$wrk/3-overlapcorrection/$asm.frgcorr.FAILED"; - caFailure("failed to concatenate the fragment corrections", "$wrk/3-overlapcorrection/cat-corrects.err"); - } - - if ($cleanup) { - open(F, "< $wrk/3-overlapcorrection/cat-corrects.frgcorrlist"); - while () { - if (m/^(.*)\/([0-9]*).frgcorr/) { - #unlink "$1/$2.frgcorr"; - #unlink "$1/$2.err"; - my $sge = int($2); - #unlink "$1/$sge.err"; - } - } - close(F); - #unlink "$wrk/3-overlapcorrection/cat-corrects.frgcorrlist"; - #unlink "$wrk/3-overlapcorrection/cat-corrects.err"; - } - } - - # - # CREATE OVERLAP CORRECTION - # - - if (! -e "$wrk/3-overlapcorrection/ovlcorr.sh") { - my $batchSize = getGlobal("ovlCorrBatchSize"); - my $jobs = int($numFrags / $batchSize) + (($numFrags % $batchSize == 0) ? 0 : 1); - - open(F, "> $wrk/3-overlapcorrection/ovlcorr.sh") or caFailure("failed to write '$wrk/3-overlapcorrection/ovlcorr.sh'", undef); - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "if [ \$jobid -gt $jobs ] ; then\n"; - print F " exit\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %04d \$jobid`\n"; - print F "frgBeg=`expr \$jobid \\* $batchSize - $batchSize + 1`\n"; - print F "frgEnd=`expr \$jobid \\* $batchSize`\n"; - print F "if [ \$frgEnd -ge $numFrags ] ; then\n"; - print F " frgEnd=$numFrags\n"; - print F "fi\n"; - print F "frgBeg=`printf %08d \$frgBeg`\n"; - print F "frgEnd=`printf %08d \$frgEnd`\n"; - - print F getBinDirectoryShellCode(); - - print F "if [ ! -e $wrk/3-overlapcorrection/\$jobid.erate ] ; then\n"; - print F " \$bin/correct-olaps \\\n"; - print F " -S $wrk/$asm.ovlStore \\\n"; - print F " -e $wrk/3-overlapcorrection/\$jobid.erate.WORKING \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F " $wrk/3-overlapcorrection/$asm.frgcorr \\\n"; - print F " \$frgBeg \$frgEnd \\\n"; - print F " && \\\n"; - print F " mv $wrk/3-overlapcorrection/\$jobid.erate.WORKING $wrk/3-overlapcorrection/\$jobid.erate\n"; - print F "fi\n"; - close(F); - - chmod 0755, "$wrk/3-overlapcorrection/ovlcorr.sh"; - - if (getGlobal("ovlCorrOnGrid") && getGlobal("useGrid")) { - # Run the correction job on the grid. - - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeOverlapCorrection = getGlobal("sgeOverlapCorrection"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeOverlapCorrection -cwd -N ovc_$asm$sgeName "; - $SGE .= "-t 1-$jobs "; - $SGE .= " -j y -o $wrk/3-overlapcorrection/\\\$TASK_ID.err "; - $SGE .= "$wrk/3-overlapcorrection/ovlcorr.sh\n"; - - submitBatchJobs($SGE, "ovc_$asm$sgeName"); - exit(0); - } else { - # Run the correction job right here, right now. - - for (my $i=1; $i<=$jobs; $i++) { - my $out = substr("0000" . $i, -4); - schedulerSubmit("$wrk/3-overlapcorrection/ovlcorr.sh $i > $wrk/3-overlapcorrection/$out.err 2>&1"); - } - - schedulerSetNumberOfProcesses($global{"ovlCorrConcurrency"}); - schedulerFinish(); - } - } - - # - # APPLY OVERLAP CORRECTION - # - - if (! -e "$wrk/3-overlapcorrection/$asm.erates.updated") { - my $batchSize = getGlobal("ovlCorrBatchSize"); - my $failedJobs = 0; - my $jobs = int($numFrags / $batchSize) + (($numFrags % $batchSize == 0) ? 0 : 1); - - open(F, "> $wrk/3-overlapcorrection/cat-erates.eratelist"); - for (my $i=1; $i<=$jobs; $i++) { - my $jobid = substr("0000" . $i, -4); - - if (! -e "$wrk/3-overlapcorrection/$jobid.erate") { - print STDERR "Overlap correction job $i ($wrk/3-overlapcorrection/$jobid) failed.\n"; - $failedJobs++; - } - - print F "$wrk/3-overlapcorrection/$jobid.erate\n"; - } - close(F); - - # FAILUREHELPME - - if ($failedJobs) { - caFailure("$failedJobs overlap correction jobs failed; remove $wrk/3-overlapcorrection/ovlcorr.sh (or run by hand) to try again", undef); - } - - #unlink "$wrk/3-overlapcorrection/$asm.frgcorr" if ($cleanup); - - $cmd = "$bin/cat-erates "; - $cmd .= "-L $wrk/3-overlapcorrection/cat-erates.eratelist "; - $cmd .= "-o $wrk/3-overlapcorrection/$asm.erates "; - $cmd .= "> $wrk/3-overlapcorrection/cat-erates.err 2>&1"; - if (runCommand("$wrk/3-overlapcorrection", $cmd)) { - rename "$wrk/3-overlapcorrection/$asm.erates", "$wrk/3-overlapcorrection/$asm.erates.FAILED"; - caFailure("failed to concatenate the overlap erate corrections", "$wrk/3-overlapcorrection/cat-erates.err"); - } - - $cmd = "$bin/overlapStore "; - $cmd .= " -u $wrk/$asm.ovlStore "; - $cmd .= " $wrk/3-overlapcorrection/$asm.erates"; - $cmd .= "> $wrk/3-overlapcorrection/overlapStore-update-erates.err 2>&1"; - if (runCommand("$wrk/3-overlapcorrection", $cmd)) { - caFailure("failed to apply the overlap corrections", "$wrk/3-overlapcorrection/overlapStore-update-erates.err"); - } - - touch("$wrk/3-overlapcorrection/$asm.erates.updated"); - touch("$wrk/$asm.ovlStore/corrected"); - - if ($cleanup) { - open(F, "< $wrk/3-overlapcorrection/cat-erates.eratelist"); - while () { - if (m/^(.*)\/([0-9]*).erate/) { - #unlink "$1/$2.erate"; - #unlink "$1/$2.err"; - my $sge = int($2); - #unlink "$1/$sge.err"; - } - } - close(F); - - #unlink "$wrk/3-overlapcorrection/overlapStore-update-erates.err"; - #unlink "$wrk/3-overlapcorrection/$asm.erates"; - - #unlink "$wrk/3-overlapcorrection/cat-erates.err"; - #unlink "$wrk/3-overlapcorrection/cat-erates.eratelist"; - - #unlink "$wrk/3-overlapcorrection/frgcorr.sh"; - #unlink "$wrk/3-overlapcorrection/ovlcorr.sh"; - } - } -} - -################################################################################ -################################################################################ -################################################################################ - -sub classifyMates () { - - # This is configuration hell. For now, we just ask for the library to classify. - # We could later extend with parallelization, run time, memory, etc, etc. - # - # classifyIlluminaBB=,,... - # classifyIlluminaMP=,,... - - my @libsToClassify = split ',', getGlobal("dncMPlibraries"); - my @backboneToUse = split ',', getGlobal("dncBBlibraries"); - - if ((scalar(@libsToClassify) == 0) || - (scalar(@backboneToUse) == 0) || - (-e "$wrk/2-classifyMates/classify.success")) { - return; - } - - system("mkdir $wrk/2-classifyMates") if (! -e "$wrk/2-classifyMates"); - - # Load a map of library name to IID. - - my %libToIID; - - open(F, "$bin/gatekeeper -dumplibraries -tabular $wrk/$asm.gkpStore |"); - while () { - my @v = split '\s+', $_; - $libToIID{$v[0]} = $v[1]; - } - close(F); - - # Map the backbone library names to a IIDs. - - my $bbIID; - - foreach my $lib (@backboneToUse) { - if (!exists($libToIID{$lib})) { - caFailure("Backbone library '$lib' doesn't exist in the assembly, classifyMates failed\n", undef); - } - if (defined($bbIID)) { - $bbIID .= " -bl $libToIID{$lib}"; - } else { - $bbIID = "$libToIID{$lib}"; - } - } - - # Build jobs to run. These are NOT optimal, but building optimal configurations is probably - # impossible. You can save memory by classifying each MP library seperately, but doing all at - # once is easier. - # - # The jobs are built, but they are only templates. It is up to the user to run them, and - # user could modify the way they are run. - - my @classifyJobs; - my $classifiedOutputs = ""; - - foreach my $lib (@libsToClassify) { - my $mpIID = $libToIID{$lib}; - - if (!exists($libToIID{$lib})) { - caFailure("Mate pair library '$lib' doesn't exist in the assembly, classifyMates failed\n", undef); - } - - open(F, "> $wrk/2-classifyMates/classify-$lib.sh"); - print F "#!/bin/sh\n"; - print F "\n"; - print F "\n"; - print F "if [ ! -e \"$wrk/2-classifyMates/classifyMates.sl$mpIID.O.0100.1500.bfs.100000\" ] ; then\n"; - print F " $bin/classifyMates \\\n"; - print F " -G $wrk/$asm.gkpStore \\\n"; - print F " -O $wrk/$asm.ovlStore \\\n"; - print F " -t 8 \\\n"; - print F " -m 128 \\\n"; - print F " -sl $mpIID \\\n"; - print F " -bl $bbIID \\\n"; - print F " -outtie -min 100 -max 1500 -bfs 100000 \\\n"; - print F " -o $wrk/2-classifyMates/classifyMates.sl$mpIID.O.0100.1500.bfs.100000.WORKING \\\n"; - print F " && \\\n"; - print F " mv -i \\\n"; - print F " $wrk/2-classifyMates/classifyMates.sl$mpIID.O.0100.1500.bfs.100000.WORKING \\\n"; - print F " $wrk/2-classifyMates/classifyMates.sl$mpIID.O.0100.1500.bfs.100000\n"; - print F "fi\n"; - print F "\n"; - #print F "\n"; - #print F "if [ ! -e \"$wrk/2-classifyMates/classifyMates.sl$mpIID.O.0100.1500.rfs.10000\" ] ; then\n"; - #print F " $bin/classifyMates \\\n"; - #print F " -G $wrk/$asm.gkpStore \\\n"; - #print F " -O $wrk/$asm.ovlStore \\\n"; - #print F " -t 8 \\\n"; - #print F " -m 128 \\\n"; - #print F " -sl $mpIID \\\n"; - #print F " -bl $bbIID \\\n"; - #print F " -outtie -min 100 -max 1500 -rfs 10000 \\\n"; - #print F " -o $wrk/2-classifyMates/classifyMates.sl$mpIID.O.0100.1500.rfs.10000.WORKING \\\n"; - #print F " && \\\n"; - #print F " mv -i \\\n"; - #print F " $wrk/2-classifyMates/classifyMates.sl$mpIID.O.0100.1500.rfs.10000.WORKING \\\n"; - #print F " $wrk/2-classifyMates/classifyMates.sl$mpIID.O.0100.1500.rfs.10000\n"; - #print F "fi\n"; - #print F "\n"; - # - #$classifiedOutputs .= " -r $wrk/2-classifyMates/classifyMates.sl$mpIID.O.0100.1500.rfs.10000 \\\n"; - # - #print F "\n"; - #print F "if [ ! -e \"$wrk/2-classifyMates/classifyMates.sl$mpIID.I.1500.9000.rfs.10000\" ] ; then\n"; - #print F " $bin/classifyMates \\\n"; - #print F " -G $wrk/$asm.gkpStore \\\n"; - #print F " -O $wrk/$asm.ovlStore \\\n"; - #print F " -t 8 \\\n"; - #print F " -m 128 \\\n"; - #print F " -sl $mpIID \\\n"; - #print F " -bl $bbIID \\\n"; - #print F " -innie -min 1500 -max 9000 -bfs 100000 \\\n"; - #print F " -o $wrk/2-classifyMates/classifyMates.sl$mpIID.I.1500.9000.rfs.10000.WORKING \\\n"; - #print F " && \\\n"; - #print F " mv -i \\\n"; - #print F " $wrk/2-classifyMates/classifyMates.sl$mpIID.I.1500.9000.rfs.10000.WORKING \\\n"; - #print F " $wrk/2-classifyMates/classifyMates.sl$mpIID.I.1500.9000.rfs.10000\n"; - #print F "fi\n"; - # - #$classifiedOutputs .= " -r $wrk/2-classifyMates/classifyMates.sl$mpIID.I.1500.9000.rfs.10000 \\\n"; - # - print F "if [ ! -e \"$wrk/2-classifyMates/classifyMates.sl$mpIID.O.0100.1500.bfs.100000\" ] ; then\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "exit 0\n"; - close(F); - - chmod 0755, "$wrk/2-classifyMates/classify-$lib.sh"; - - push @classifyJobs, "$wrk/2-classifyMates/classify-$lib.sh"; - $classifiedOutputs .= " -r $wrk/2-classifyMates/classifyMates.sl$mpIID.O.0100.1500.bfs.100000 \\\n"; - } - - open(F, "> $wrk/2-classifyMates/classify-apply.sh"); - print F "#!/bin/sh\n"; - print F "\n"; - print F "$bin/classifyMatesApply \\\n"; - print F " -G $wrk/$asm.gkpStore \\\n"; - print F " -p \\\n"; - print F "$classifiedOutputs"; # NO INDENTATION! NO LINE CONTINUATION! Both are in the string directly. - print F " -o $wrk/2-classifyMates/$asm.classified.gkpStore.edit \\\n"; - print F "> $wrk/2-classifyMates/$asm.classified.log \\\n"; - print F "&& \\\n"; - print F "$bin/gatekeeper --edit \\\n"; - print F " $wrk/2-classifyMates/$asm.classified.gkpStore.edit \\\n"; - print F " $wrk/$asm.gkpStore \\\n"; - print F "> $wrk/2-classifyMates/$asm.classified.gkpStore.edit.out \\\n"; - print F "&& \\\n"; - print F "touch $wrk/2-classifyMates/classify.success\n"; - print F "\n"; - print F "exit 0\n"; - close(F); - - chmod 0755, "$wrk/2-classifyMates/classify-apply.sh"; - - # Force the stop. User must run scripts by hand. - - stopBefore("classifyMates", undef); - - foreach my $j (@classifyJobs) { - if (runCommand("$wrk/2-classifyMates", $j)) { - caFailure("failed to run classify mates command $j", undef); - } - } - - if (runCommand("$wrk/2-classifyMates", "$wrk/2-classifyMates/classify-apply.sh")) { - caFailure("failed to apply classify mates results", undef); - } - if (! -e "$wrk/2-classifyMates/classify.success") { - caFailure("classifyMatesApply failed.", ""); - } - - stopAfter("classifyMates"); -} - - - - -################################################################################ -################################################################################ -################################################################################ - -sub unitigger () { - - if (0) { - $cmd = "$bin/removeMateOverlap -gkp $wrk/$asm.gkpStore -ovl $wrk/$asm.ovlStore"; - if (runCommand("$wrk", $cmd)) { - caFailure("failed to remove mate overlaps", undef); - } - } - - if (! -e "$wrk/4-unitigger/unitigger.success") { - - # Default to unitigger, unless the gkpStore says otherwise. - # - if (!defined(getGlobal("unitigger"))) { - setGlobal("unitigger", "utg"); - - if (system("$bin/gatekeeper -isfeatureset 0 forceBOGunitigger $wrk/$asm.gkpStore") == 0) { - setGlobal("unitigger", "bog"); - } - } - - system("mkdir $wrk/4-unitigger") if (! -e "$wrk/4-unitigger"); - - my $e = getGlobal("utgErrorRate"); # Unitigger and BOG - my $E = getGlobal("utgErrorLimit"); - my $eg = getGlobal("utgGraphErrorRate"); # BOGART - my $Eg = getGlobal("utgGraphErrorLimit"); - my $em = getGlobal("utgMergeErrorRate"); - my $Em = getGlobal("utgMergeErrorLimit"); - my $mem = getGlobal("batMemory"); - - my $B = int($numFrags / getGlobal("cnsPartitions")); - $B = getGlobal("cnsMinFrags") if ($B < getGlobal("cnsMinFrags")); - - my $u = getGlobal("utgBubblePopping"); - - my $unitigger = getGlobal("unitigger"); - - if ($unitigger eq "bogart") { - my $bmd = getGlobal("bogBadMateDepth"); - - $cmd = "$bin/bogart "; - $cmd .= " -O $wrk/$asm.ovlStore "; - $cmd .= " -G $wrk/$asm.gkpStore "; - $cmd .= " -T $wrk/$asm.tigStore "; - $cmd .= " -B $B "; - $cmd .= " -eg $eg "; - $cmd .= " -Eg $Eg "; - $cmd .= " -em $em "; - $cmd .= " -Em $Em "; - $cmd .= " -R " if (getGlobal("batRebuildRepeats") == 1); - $cmd .= " -E " if (getGlobal("batMateExtension") == 1); - $cmd .= " -M $mem " if (defined($mem)); - $cmd .= " -o $wrk/4-unitigger/$asm "; - $cmd .= " > $wrk/4-unitigger/unitigger.err 2>&1"; - } elsif ($unitigger eq "bog") { - my $bmd = getGlobal("bogBadMateDepth"); - - $cmd = "$bin/buildUnitigs "; - $cmd .= " -O $wrk/$asm.ovlStore "; - $cmd .= " -G $wrk/$asm.gkpStore "; - $cmd .= " -T $wrk/$asm.tigStore "; - $cmd .= " -B $B "; - $cmd .= " -e $e "; - $cmd .= " -E $E "; - $cmd .= " -b " if (getGlobal("bogBreakAtIntersections") == 1); - $cmd .= " -m $bmd " if (defined($bmd)); - $cmd .= " -U " if ($u == 1); - $cmd .= " -o $wrk/4-unitigger/$asm "; - $cmd .= " > $wrk/4-unitigger/unitigger.err 2>&1"; - } elsif ($unitigger eq "utg") { - $cmd = "$bin/unitigger "; - $cmd .= " -I $wrk/$asm.ovlStore "; - $cmd .= " -F $wrk/$asm.gkpStore "; - $cmd .= " -T $wrk/$asm.tigStore "; - $cmd .= " -B $B "; - $cmd .= " -e $e "; - $cmd .= " -k " if (getGlobal("utgRecalibrateGAR") == 1); - $cmd .= " -d 1 -x 1 -z 10 -j 5 -U $u "; - $cmd .= " -o $wrk/4-unitigger/$asm "; - $cmd .= " > $wrk/4-unitigger/unitigger.err 2>&1"; - } else { - caFailure("unknown unitigger $unitigger; must be 'bog' or 'utg'", undef); - } - - stopBefore("unitigger", $cmd); - - if (runCommand("$wrk/4-unitigger", $cmd)) { - caFailure("failed to unitig", "$wrk/4-unitigger/unitigger.err"); - } - - touch("$wrk/4-unitigger/unitigger.success"); - } - - stopAfter("unitigger"); -} - -################################################################################ -################################################################################ -################################################################################ - -sub createPostUnitiggerConsensusJobs (@) { - my $consensusType = getGlobal("consensus"); - - return if (-e "$wrk/5-consensus/consensus.sh"); - - if (! -e "$wrk/5-consensus/$asm.partitioned") { - $cmd = "$bin/gatekeeper "; - $cmd .= " -P $wrk/4-unitigger/$asm.partitioning "; - $cmd .= " $wrk/$asm.gkpStore "; - $cmd .= "> $wrk/5-consensus/$asm.partitioned.err 2>&1"; - if (runCommand("$wrk/5-consensus", $cmd)) { - caFailure("failed to partition the fragStore", "$wrk/5-consensus/$asm.partitioned.err"); - } - - touch "$wrk/5-consensus/$asm.partitioned"; - } - - my $jobs = 0; - - open(F, "< $wrk/4-unitigger/$asm.partitioningInfo") or caFailure("can't open '$wrk/4-unitigger/$asm.partitioningInfo'", undef); - while () { - if (m/Partition\s+(\d+)\s+has\s+(\d+)\s+unitigs\sand\s+(\d+)\s+fragments./) { - $jobs = $1; - } - } - close(F); - - open(F, "> $wrk/5-consensus/consensus.sh") or caFailure("can't open '$wrk/5-consensus/consensus.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "if [ \$jobid -gt $jobs ]; then\n"; - print F " echo Error: Only $jobs partitions, you asked for \$jobid.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %03d \$jobid`\n"; - print F "\n"; - print F "if [ -e $wrk/5-consensus/${asm}_\$jobid.success ] ; then\n"; - print F " exit 0\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "AS_OVERLAP_MIN_LEN=", getGlobal("ovlMinLen"), "\n"; - print F "AS_READ_MIN_LEN=" , getGlobal("frgMinLen"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE AS_OVERLAP_MIN_LEN AS_READ_MIN_LEN\n"; - - print F getBinDirectoryShellCode(); - - if ($consensusType eq "cns") { - print F "\$bin/utgcns \\\n"; - print F " -g $wrk/$asm.gkpStore \\\n"; - print F " -t $wrk/$asm.tigStore 1 \$jobid \\\n"; - print F " > $wrk/5-consensus/${asm}_\$jobid.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "touch $wrk/5-consensus/${asm}_\$jobid.success\n"; - } elsif ($consensusType eq "seqan") { - print F "\$bin/SeqAn_CNS \\\n"; - print F " -G $wrk/$asm.gkpStore \\\n"; - print F " -c \$cgbfile \\\n"; - print F " -s \$bin/graph_consensus \\\n"; - print F " -w $wrk/5-consensus/ \\\n"; - print F " -o $wrk/5-consensus/${asm}_\$jobid.cgi \\\n"; - print F " > $wrk/5-consensus/${asm}_\$jobid.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "touch $wrk/5-consensus/${asm}_\$jobid.success\n"; - } else { - caFailure("unknown consensus type $consensusType; should be 'cns' or 'seqan'", undef); - } - close(F); - - chmod 0755, "$wrk/5-consensus/consensus.sh"; - - if (getGlobal("useGrid") && getGlobal("cnsOnGrid")) { - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeConsensus = getGlobal("sgeConsensus"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeConsensus -cwd -N utg_$asm$sgeName "; - $SGE .= "-t 1-$jobs "; - $SGE .= "-j y -o /dev/null "; - $SGE .= "$wrk/5-consensus/consensus.sh\n"; - - submitBatchJobs($SGE, "utg_$asm$sgeName"); - exit(0); - } else { - for (my $i=1; $i<=$jobs; $i++) { - schedulerSubmit("$wrk/5-consensus/consensus.sh $i > /dev/null 2>&1"); - } - - schedulerSetNumberOfProcesses(getGlobal("cnsConcurrency")); - schedulerFinish(); - } -} - - - -sub postUnitiggerConsensus () { - my $cmd; - - return if (-e "$wrk/5-consensus/consensus.success"); - - system("mkdir $wrk/5-consensus") if (! -d "$wrk/5-consensus"); - - # NOT IDEAL. We assume that jobs are finished if the script exists. We need - # better logic in createPostUnitiggerConsensusJobs() to tell if the job crashed. - # - if (! -e "$wrk/5-consensus/consensus.sh") { - createPostUnitiggerConsensusJobs(); - } - - # - # Run the consensus fixer - # - - if (! -e "$wrk/5-consensus/consensus-fix.out") { - $cmd = "$bin/utgcnsfix \\\n"; - $cmd .= " -g $wrk/$asm.gkpStore \\\n"; - $cmd .= " -t $wrk/$asm.tigStore 2 \\\n"; - $cmd .= "> $wrk/5-consensus/consensus-fix.out 2>&1"; - - if (runCommand("$wrk/5-consensus", $cmd)) { - rename "$wrk/5-consensus/consensus-fix.out", "$wrk/5-consensus/consensus-fix.out.FAILED"; - caFailure("Unitig consensus fixer failed", "$wrk/5-consensus/consensus-fix.out"); - } - } - - # - # Estimate insert size estimates - # - - if (! -e "$wrk/5-consensus-insert-sizes/estimates.out") { - system("mkdir $wrk/5-consensus-insert-sizes") if (! -d "$wrk/5-consensus-insert-sizes"); - system("ln -s $wrk/$asm.tigStore $wrk/5-consensus-insert-sizes/$asm.tigStore"); - - $cmd = "$bin/tigStore \\\n"; - $cmd .= " -g $wrk/$asm.gkpStore \\\n"; - $cmd .= " -t $wrk/5-consensus-insert-sizes/$asm.tigStore 3 \\\n"; - $cmd .= " -d matepair -U \\\n"; - $cmd .= "> $wrk/5-consensus-insert-sizes/estimates.out 2>&1"; - - if (runCommand("$wrk/5-consensus-insert-sizes", $cmd)) { - caFailure("Insert size estimation failed", "$wrk/5-consensus-insert-sizes/estimates.out"); - } - } - - # - # Update estimates in gatekeeper - # - - if (! -e "$wrk/5-consensus-insert-sizes/updates.err") { - if (! -e "$wrk/5-consensus-insert-sizes/$asm.tigStore.distupdate") { - rename "$wrk/5-consensus-insert-sizes/estimates.out", "$wrk/5-consensus-insert-sizes/estimates.out.FAILED"; - caFailure("Failed to find insert size estimates", "$wrk/5-consensus-insert-sizes/estimates.out.FAILED"); - } - - $cmd = "$bin/gatekeeper \\\n"; - $cmd .= " --edit $wrk/5-consensus-insert-sizes/$asm.tigStore.distupdate \\\n"; - $cmd .= " $wrk/$asm.gkpStore \\\n"; - $cmd .= "> $wrk/5-consensus-insert-sizes/updates.err 2>&1"; - - if (runCommand("$wrk/5-consensus-insert-sizes", $cmd)) { - rename "$wrk/5-consensus-insert-sizes/updates.err", "$wrk/5-consensus-insert-sizes/updates.err.FAILED"; - caFailure("Insert size updates failed", "$wrk/5-consensus-insert-sizes/updates.err.FAILED"); - } - } - - # - # Run the chimeric unitig splitter - # - - if (! -e "$wrk/5-consensus-split/splitUnitigs.out") { - system("mkdir $wrk/5-consensus-split") if (! -d "$wrk/5-consensus-split"); - system("ln -s $wrk/$asm.tigStore $wrk/5-consensus-split/$asm.tigStore"); - - $cmd = "$bin/splitUnitigs \\\n"; - $cmd .= " -g $wrk/$asm.gkpStore \\\n"; - $cmd .= " -t $wrk/$asm.tigStore 3 \\\n"; - $cmd .= "> $wrk/5-consensus-split/splitUnitigs.out 2>&1"; - - if (runCommand("$wrk/5-consensus-split", $cmd)) { - rename "$wrk/5-consensus-split/splitUnitigs.out", "$wrk/5-consensus-split/splitUnitigs.out.FAILED"; - caFailure("Unitig splitter failed", "$wrk/5-consensus-split/splitUnitigs.out.FAILED"); - } - } - - # - # And the fixer, again - # - - if (! -e "$wrk/5-consensus-split/consensus-fix.out") { - $cmd = "$bin/utgcnsfix \\\n"; - $cmd .= " -g $wrk/$asm.gkpStore \\\n"; - $cmd .= " -t $wrk/$asm.tigStore 4 \\\n"; - $cmd .= "> $wrk/5-consensus-split/consensus-fix.out 2>&1"; - - if (runCommand("$wrk/5-consensus-split", $cmd)) { - rename "$wrk/5-consensus-split/consensus-fix.out", "$wrk/5-consensus-split/consensus-fix.out.FAILED"; - caFailure("Unitig consensus fixer (post split) failed", "$wrk/5-consensus-split/consensus-fix.out.FAILED"); - } - } - - # - # And finally, compute the coverage stat for all unitigs - # - my $l = getGlobal("utgGenomeSize"); - - if (! -e "$wrk/5-consensus-coverage-stat/computeCoverageStat.err") { - system("mkdir $wrk/5-consensus-coverage-stat") if (! -d "$wrk/5-consensus-coverage-stat"); - - $cmd = "$bin/computeCoverageStat \\\n"; - $cmd .= " -g $wrk/$asm.gkpStore \\\n"; - $cmd .= " -t $wrk/$asm.tigStore 5 \\\n"; - $cmd .= " -s $l \\\n" if defined($l); - $cmd .= " -o $wrk/5-consensus-coverage-stat/$asm \\\n"; - $cmd .= "> $wrk/5-consensus-coverage-stat/computeCoverageStat.err 2>&1"; - - if (runCommand("$wrk/5-consensus-coverage-stat", $cmd)) { - rename "$wrk/5-consensus-coverage-stat/computeCoverageStat.err", "$wrk/5-consensus-coverage-stat/computeCoverageStat.err.FAILED"; - caFailure("Unitig coverage stat computation failed", "$wrk/5-consensus-coverage-stat/computeCoverageStat.err.FAILED"); - } - - if (-d "$wrk/7-0-CGW") { - caFailure("Unitig coverage stat updated, but there is a scaffolding already started. Remove old scaffold directories to proceed.", ""); - } - } - - # All jobs finished. Remove the partitioning from the gatekeeper store. - # - #system("rm -f $wrk/$asm.gkpStore/???.[0-9][0-9][0-9]"); - - touch("$wrk/5-consensus/consensus.success"); - - alldone: - stopAfter("utgcns"); - stopAfter("consensusAfterUnitigger"); -} - -################################################################################ -################################################################################ -################################################################################ - - -# Don't do interleaved merging unless we are throwing stones. - -sub CGW ($$$$$$) { - my $thisDir = shift @_; - my $lastDir = shift @_; - my $tigStore = shift @_; - my $stoneLevel = shift @_; - my $logickp = shift @_; - my $finalRun = shift @_; - my $lastckp = undef; - my $ckp = undef; - - return($thisDir) if (-e "$wrk/$thisDir/cgw.success"); - - if (defined($lastDir)) { - $lastckp = findLastCheckpoint($lastDir); - } - if (defined($lastckp) && defined($logickp)) { - $ckp = "-R $lastckp -N $logickp" - } - - # If there is a timing file here, assume we are restarting. Not - # all restarts are possible, but we try hard to make it so. - # - if (-e "$wrk/$thisDir/$asm.timing") { - my $restartckp = undef; - - open(F, "< $wrk/$thisDir/$asm.timing"); - while () { - print STDERR $_; - if (m/Writing.*ckp.(\d+)\s\(logical\s(.+)\)/) { - $restartckp = "-R $1 -N $2"; - } - } - close(F); - - if (!defined($restartckp)) { - print STDERR "Found an empty timing file, starting from the beginning: $ckp\n"; - } else { - $ckp = $restartckp; - print STDERR "Found a timing file, restarting: $ckp\n"; - } - } - - system("mkdir $wrk/$thisDir") if (! -d "$wrk/$thisDir"); - - system("ln -s ../$lastDir/$asm.ckp.$lastckp $wrk/$thisDir/$asm.ckp.$lastckp") if (defined($lastDir)); - - if (-e "$wrk/$thisDir/cgw.out") { - my $ckp = findLastCheckpoint($thisDir); - my $ver = "00"; - while (-e "$wrk/$thisDir/cgw.out.$ver.ckp.$ckp") { - $ver++; - } - rename "$wrk/$thisDir/cgw.out", "$wrk/$thisDir/cgw.out.$ver.ckp.$ckp" - } - - my $sampleSize = getGlobal("cgwDistanceSampleSize"); - - my $astatLow = getGlobal("astatLowBound"); - my $astatHigh = getGlobal("astatHighBound"); - - my $B = int($numFrags / getGlobal("cnsPartitions")); - $B = getGlobal("cnsMinFrags") if ($B < getGlobal("cnsMinFrags")); - - my $P = getGlobal("closurePlacement"); - - my $shatterLevel = getGlobal("cgwContigShatterWeight"); - my $missingMate = getGlobal("cgwMergeMissingThreshold"); - - $cmd = "$bin/cgw $ckp \\\n"; - $cmd .= " -j $astatLow -k $astatHigh \\\n"; - $cmd .= " -r 5 \\\n"; - $cmd .= " -s $stoneLevel \\\n"; - $cmd .= " -S 0 \\\n" if (($finalRun == 0) || (getGlobal("doResolveSurrogates") == 0)); - $cmd .= " -G \\\n" if ($finalRun == 0); - $cmd .= " -z \\\n" if (getGlobal("cgwDemoteRBP") == 1); - $cmd .= " -P $P \\\n" if (defined($P)); - $cmd .= " -K \\\n" if (getGlobal("kickOutNonOvlContigs") != 0); - $cmd .= " -U \\\n" if (getGlobal("doUnjiggleWhenMerging") != 0); - $cmd .= " -F \\\n" if (getGlobal("toggleDoNotDemote") != 0); - $cmd .= " -B $B \\\n"; - $cmd .= " -u $wrk/4-unitigger/$asm.unused.ovl \\\n" if (getGlobal("cgwUseUnitigOverlaps") != 0); - $cmd .= " -shatter $shatterLevel \\\n"; - $cmd .= " -missingMate $missingMate \\\n"; - $cmd .= " -m $sampleSize \\\n"; - $cmd .= " -g $wrk/$asm.gkpStore \\\n"; - $cmd .= " -t $tigStore \\\n"; - $cmd .= " -o $wrk/$thisDir/$asm \\\n"; - $cmd .= " > $wrk/$thisDir/cgw.out 2>&1"; - - stopBefore("CGW", $cmd); - - if (runCommand("$wrk/$thisDir", $cmd)) { - caFailure("scaffolder failed", "$wrk/$thisDir/cgw.out"); - } - - - open(F, "ls -1 $wrk/$thisDir |"); - while () { - chomp; - - if (m/\.log$/) { - system("mkdir $wrk/$thisDir/log") if (! -d "$wrk/$thisDir/log"); - rename "$wrk/$thisDir/$_", "$wrk/$thisDir/log/$_"; - } - - if (m/\.analysis$/) { - system("mkdir $wrk/$thisDir/analysis") if (! -d "$wrk/$thisDir/analysis"); - rename "$wrk/$thisDir/$_", "$wrk/$thisDir/analysis/$_"; - } - } - close(F); - - - if (getGlobal("cgwPurgeCheckpoints") != 0) { - my $f = findFirstCheckpoint($thisDir); - my $l = findLastCheckpoint($thisDir); - - while ($f < $l) { - #print STDERR "Purging $wrk/$thisDir/$asm.ckp.$f\n"; - unlink "$wrk/$thisDir/$asm.ckp.$f"; - $f++; - } - } - - touch("$wrk/$thisDir/cgw.success"); - - return $thisDir; -} - - -sub eCR ($$$) { - my $thisDir = shift @_; - my $lastDir = shift @_; - my $iter = shift @_; - - return $thisDir if (-e "$wrk/$thisDir/extendClearRanges.success"); - - my $lastckp = findLastCheckpoint($lastDir); - - system("mkdir $wrk/$thisDir") if (! -d "$wrk/$thisDir"); - - system("ln -s ../$lastDir/$asm.ckp.$lastckp $wrk/$thisDir/$asm.ckp.$lastckp") if (! -e "$wrk/$thisDir/$asm.ckp.$lastckp"); - - # Partition eCR. - - if (! -e "$wrk/$thisDir/extendClearRanges.partitionInfo") { - $cmd = "$bin/extendClearRangesPartition "; - $cmd .= " -g $wrk/$asm.gkpStore "; - $cmd .= " -t $wrk/$asm.tigStore "; - $cmd .= " -n $lastckp "; - $cmd .= " -c $asm "; - $cmd .= " -N 4 "; - $cmd .= " -p $wrk/$thisDir/extendClearRanges.partitionInfo"; - $cmd .= " > $wrk/$thisDir/extendClearRanges.partitionInfo.err 2>&1"; - - stopBefore("eCRPartition", $cmd); - stopBefore("extendClearRangesPartition", $cmd); - - if (runCommand("$wrk/$thisDir", $cmd)) { - caFailure("extendClearRanges partitioning failed", "$wrk/$thisDir/extendClearRanges.partitionInfo.err"); - } - - # Remove any existing eCR scripts -- possibly left behind by the user deleting - # the partitioinInfo and restarting. - system("rm $wrk/$thisDir/extendClearRanges-scaffold.*"); - } - - # Read the partitioning info, create jobs. No partitions? No ECR jobs. - - my @jobs; - - open(P, "< $wrk/$thisDir/extendClearRanges.partitionInfo") or caFailure("failed to find extendClearRanges partitioning file $wrk/$thisDir/extendClearRanges.partitionInfo", undef); - while (

    ) { - # Fields are: partitionNum BgnScf partitionNum EndScf NumFrags - - my @v = split '\s+', $_; - - my $curScaffold = substr("000000000$v[1]", -7); - my $endScaffold = substr("000000000$v[3]", -7); - - my $j = "$wrk/$thisDir/extendClearRanges-scaffold.$curScaffold"; - - if (! -e "$j.success") { - if (! -e "$j.sh") { - open(F, "> $j.sh"); - print F "#!" . getGlobal("shell") . "\n\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "AS_OVERLAP_MIN_LEN=", getGlobal("ovlMinLen"), "\n"; - print F "AS_READ_MIN_LEN=" , getGlobal("frgMinLen"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE AS_OVERLAP_MIN_LEN AS_READ_MIN_LEN\n"; - print F "\n"; - print F "$bin/extendClearRanges \\\n"; - print F " -g $wrk/$asm.gkpStore \\\n"; - print F " -t $wrk/$asm.tigStore \\\n"; - print F " -n $lastckp \\\n"; - print F " -c $asm \\\n"; - print F " -b $curScaffold -e $endScaffold \\\n"; - print F " -i $iter \\\n"; - print F " > $j.err 2>&1\n"; - close(F); - - system("chmod +x $j.sh"); - } - - push @jobs, "$j"; - - $lastckp++; - } - } - close(P); - - # Run jobs. - - stopBefore("eCR", undef); - stopBefore("extendClearRanges", undef); - - foreach my $j (@jobs) { - if (runCommand("$wrk/$thisDir", "$j.sh")) { - caFailure("extendClearRanges failed", "$j.err"); - } - touch("$j.success"); - } - - touch("$wrk/$thisDir/extendClearRanges.success"); - - return $thisDir; -} - - -sub updateDistanceRecords ($) { - my $thisDir = shift @_; - - return if (-e "$wrk/$thisDir/cgw.distupdate.success"); - - # Older versions needed to actually compute the updated - # distances. Now, cgw outputs it! Yay! - - my $gkpErrorFile = "$wrk/$thisDir/gkp.distupdate.err"; - $cmd = "$bin/gatekeeper "; - $cmd .= " -a -o $wrk/$asm.gkpStore "; - $cmd .= " $wrk/$thisDir/stat/scaffold_final.distupdate.dst "; - $cmd .= " $wrk/$thisDir/stat/contig_final.distupdate.dst "; - $cmd .= " > $wrk/$thisDir/cgw.distupdate.err 2>&1"; - if (runCommand("$wrk/$thisDir", $cmd)) { - caFailure("gatekeeper distance update failed", "$wrk/$thisDir/cgw.distupdate.err"); - } - - touch("$wrk/$thisDir/cgw.distupdate.success"); -} - - -sub scaffolder () { - my $lastDir = undef; - my $thisDir = 0; - my $stoneLevel = getGlobal("stoneLevel"); - - stopBefore("scaffolder", undef); - - goto alldone if (-e "$wrk/7-CGW/cgw.success"); - - # Do an initial CGW to update distances, then update the - # gatekeeper. This initial run shouldn't be used for later - # CGW'ing. - # - my $cis = getGlobal("computeInsertSize"); - if (!defined($cis) && ($numFrags < 1000000)) { - $cis = 1; - } - if ($cis == 1) { - if (! -e "$wrk/6-clonesize/$asm.tigStore") { - system("mkdir -p $wrk/6-clonesize/$asm.tigStore"); - system("ln -s $wrk/$asm.tigStore/* $wrk/6-clonesize/$asm.tigStore"); - } - updateDistanceRecords(CGW("6-clonesize", undef, "$wrk/6-clonesize/$asm.tigStore", $stoneLevel, undef, 0)); - } - - - # If we're not doing eCR, we just do a single scaffolder run, and - # get the heck outta here! OK, we'll do resolveSurrogates(), maybe. - # - if (getGlobal("doExtendClearRanges") == 0) { - $lastDir = CGW("7-$thisDir-CGW", $lastDir, "$wrk/$asm.tigStore", $stoneLevel, undef, 1); - $thisDir++; - } else { - - # Do the initial CGW, making sure to not throw stones. - # - $lastDir = CGW("7-$thisDir-CGW", $lastDir, "$wrk/$asm.tigStore", 0, undef, 0); - $thisDir++; - - # Followed by at least one eCR - # - $lastDir = eCR("7-$thisDir-ECR", $lastDir, 1); - $thisDir++; - - # Iterate eCR: do another scaffolder still without stones, - # then another eCR. Again, and again, until we get dizzy and - # fall over. - # - my $iterationMax = getGlobal("doExtendClearRanges") + 1; - for (my $iteration = 2; $iteration < $iterationMax; $iteration++) { - $lastDir = CGW("7-$thisDir-CGW", $lastDir, "$wrk/$asm.tigStore", 0, "ckp01-ABS", 0); - $thisDir++; - - $lastDir = eCR("7-$thisDir-ECR", $lastDir, $iteration); - $thisDir++; - } - - # Then another scaffolder, chucking stones into the big holes, - # filling in surrogates, and writing output. - # - $lastDir = CGW("7-$thisDir-CGW", $lastDir, "$wrk/$asm.tigStore", $stoneLevel, "ckp01-ABS", 1); - $thisDir++; - } - - - # And, finally, hold on, we're All Done! Point to the correct output directory. - # - system("ln -s $lastDir $wrk/7-CGW") if (! -d "$wrk/7-CGW"); - - alldone: - stopAfter("scaffolder"); -} - - -################################################################################ -################################################################################ -################################################################################ - - -# Prepare for consensus on the grid -# Partition the contigs -# Repartition the frag store - -sub createPostScaffolderConsensusJobs () { - my $consensusType = getGlobal("consensus"); - - return if (-e "$wrk/8-consensus/consensus.sh"); - - caFailure("contig consensus didn't find '$wrk/$asm.tigStore'", undef) if (! -d "$wrk/$asm.tigStore"); - - my $tigVersion = findLastCheckpoint("$wrk/7-CGW"); - caFailure("contig consensus didn't find any checkpoints in '$wrk/7-CGW'", undef) if (!defined($tigVersion)); - - ######################################## - # - # Partition the gkpStore for consensus. - # - if (! -e "$wrk/8-consensus/$asm.partitioned") { - $cmd = "$bin/gatekeeper -P $wrk/7-CGW/$asm.partitioning $wrk/$asm.gkpStore "; - $cmd .= "> $wrk/8-consensus/$asm.partitioned.err 2>&1"; - - caFailure("gatekeeper partitioning failed", "$wrk/8-consensus/$asm.partitioned.err") if (runCommand("$wrk/8-consensus", $cmd)); - touch("$wrk/8-consensus/$asm.partitioned"); - } - - ######################################## - # - # Build consensus jobs for the grid -- this is very similar to that in createPostUnitiggerConsensus.pl - # - my $jobs = 0; - - open(F, "< $wrk/7-CGW/$asm.partitionInfo") or caFailure("can't open '$wrk/7-CGW/$asm.partitionInfo'", undef); - while () { - if (m/Partition\s+(\d+)\s+has\s+(\d+)\s+contigs\sand\s+(\d+)\s+fragments./) { - $jobs = $1; - } - } - close(F); - - open(F, "> $wrk/8-consensus/consensus.sh") or caFailure("can't open '$wrk/8-consensus/consensus.sh'", undef); - print F "#!" . getGlobal("shell") . "\n"; - print F "\n"; - print F "jobid=\$SGE_TASK_ID\n"; - print F "if [ x\$jobid = x -o x\$jobid = xundefined ]; then\n"; - print F " jobid=\$1\n"; - print F "fi\n"; - print F "if [ x\$jobid = x ]; then\n"; - print F " echo Error: I need SGE_TASK_ID set, or a job index on the command line.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "if [ \$jobid -gt $jobs ]; then\n"; - print F " echo Error: Only $jobs partitions, you asked for \$jobid.\n"; - print F " exit 1\n"; - print F "fi\n"; - print F "\n"; - print F "jobid=`printf %03d \$jobid`\n"; - print F "\n"; - print F "if [ -e $wrk/8-consensus/${asm}_\$jobid.success ] ; then\n"; - print F " exit 0\n"; - print F "fi\n"; - print F "\n"; - print F "AS_OVL_ERROR_RATE=", getGlobal("ovlErrorRate"), "\n"; - print F "AS_CNS_ERROR_RATE=", getGlobal("cnsErrorRate"), "\n"; - print F "AS_CGW_ERROR_RATE=", getGlobal("cgwErrorRate"), "\n"; - print F "AS_OVERLAP_MIN_LEN=", getGlobal("ovlMinLen"), "\n"; - print F "AS_READ_MIN_LEN=" , getGlobal("frgMinLen"), "\n"; - print F "export AS_OVL_ERROR_RATE AS_CNS_ERROR_RATE AS_CGW_ERROR_RATE AS_OVERLAP_MIN_LEN AS_READ_MIN_LEN\n"; - - print F getBinDirectoryShellCode(); - - if ($consensusType eq "cns") { - print F "\$bin/ctgcns \\\n"; - print F " -g $wrk/$asm.gkpStore \\\n"; - print F " -t $wrk/$asm.tigStore $tigVersion \$jobid \\\n"; - print F " -P ", getGlobal("cnsPhasing"), "\\\n"; - print F " > $wrk/8-consensus/${asm}_\$jobid.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "touch $wrk/8-consensus/${asm}_\$jobid.success\n"; - } elsif ($consensusType eq "seqan") { - print F "\$bin/SeqAn_CNS \\\n"; - print F " -G $wrk/$asm.gkpStore \\\n"; - print F " -u $wrk/$asm.SeqStore \\\n"; - print F " -V $tigVersion \\\n"; - print F " -p \$jobid \\\n"; - print F " -S \$jobid \\\n"; - #print F " -c $cgwDir/$asm.cgw_contigs.\$jobid \\\n"; - print F " -s \$bin/graph_consensus \\\n"; - print F " -w $wrk/8-consensus/ \\\n"; - print F " -o $wrk/8-consensus/$asm.cns_contigs.\$jobid \\\n"; - print F " > $wrk/8-consensus/$asm.cns_contigs.\$jobid.err 2>&1 \\\n"; - print F "&& \\\n"; - print F "touch $wrk/8-consensus/$asm.cns_contigs.\$jobid.success\n"; - } else { - caFailure("unknown consensus type $consensusType; must be 'cns' or 'seqan'", undef); - } - print F "exit 0\n"; - close(F); - - chmod 0755, "$wrk/8-consensus/consensus.sh"; - - if (getGlobal("cnsOnGrid") && getGlobal("useGrid")) { - my $sge = getGlobal("sge"); - my $sgeName = getGlobal("sgeName"); - my $sgeConsensus = getGlobal("sgeConsensus"); - - $sgeName = "_$sgeName" if (defined($sgeName)); - - my $SGE; - $SGE = "qsub $sge $sgeConsensus -cwd -N ctg_$asm$sgeName "; - $SGE .= "-t 1-$jobs "; - $SGE .= "-j y -o /dev/null "; - $SGE .= "$wrk/8-consensus/consensus.sh\n"; - - submitBatchJobs($SGE, "ctg_$asm$sgeName"); - exit(0); - } else { - for (my $i=1; $i<=$jobs; $i++) { - schedulerSubmit("$wrk/8-consensus/consensus.sh $i > /dev/null 2>&1"); - } - - schedulerSetNumberOfProcesses(getGlobal("cnsConcurrency")); - schedulerFinish(); - } -} - - -sub postScaffolderConsensus () { - - system("mkdir $wrk/8-consensus") if (! -d "$wrk/8-consensus"); - - goto alldone if (-e "$wrk/8-consensus/consensus.success"); - - createPostScaffolderConsensusJobs(); - - # - # Check that consensus finished properly - # - my $failedJobs = 0; - - open(F, "< $wrk/7-CGW/$asm.partitionInfo") or caFailure("can't open '$wrk/7-CGW/$asm.partitionInfo'", undef); - while () { - if (m/Partition\s+(\d+)\s+has\s+(\d+)\s+contigs\sand\s+(\d+)\s+fragments./) { - my $id = substr("000" . $1, -3); - - if (! -e "$wrk/8-consensus/${asm}_$id.success") { - print STDERR "$wrk/8-consensus/${asm}_$id failed -- no .success.\n"; - $failedJobs++; - } - } - } - close(F); - - # FAILUREHELPME - # - caFailure("$failedJobs consensusAfterScaffolder jobs failed; remove 8-consensus/consensus.sh to try again", undef) if ($failedJobs); - - # All jobs finished. Remove the partitioning from the gatekeeper store. - # - #system("rm -f $wrk/$asm.gkpStore/???.[0-9][0-9][0-9]"); - - touch("$wrk/8-consensus/consensus.success"); - - alldone: - stopAfter("ctgcns"); - stopAfter("consensusAfterScaffolder"); -} - -################################################################################ -################################################################################ -################################################################################ - - -sub summarizeConsensusStatistics ($) { - my $dir = shift @_; - - if (! -e "$dir/consensus.stats.summary") { - my $NumColumnsInUnitigs = 0; - my $NumGapsInUnitigs = 0; - my $NumRunsOfGapsInUnitigReads = 0; - my $NumColumnsInContigs = 0; - my $NumGapsInContigs = 0; - my $NumRunsOfGapsInContigReads = 0; - my $NumAAMismatches = 0; - my $NumFAMismatches = 0; - my $NumVARRecords = 0; - my $NumVARStringsWithFlankingGaps = 0; - my $NumUnitigRetrySuccess = 0; - - open(F, "ls $dir/$asm*.err |"); - my @files = ; - chomp @files; - close(F); - - foreach my $f (@files) { - open(F, "< $f"); - while () { - $NumColumnsInUnitigs += $1 if (m/NumColumnsInUnitigs\s+=\s+(\d+)/); - $NumGapsInUnitigs += $1 if (m/NumGapsInUnitigs\s+=\s+(\d+)/); - $NumRunsOfGapsInUnitigReads += $1 if (m/NumRunsOfGapsInUnitigReads\s+=\s+(\d+)/); - $NumColumnsInContigs += $1 if (m/NumColumnsInContigs\s+=\s+(\d+)/); - $NumGapsInContigs += $1 if (m/NumGapsInContigs\s+=\s+(\d+)/); - $NumRunsOfGapsInContigReads += $1 if (m/NumRunsOfGapsInContigReads\s+=\s+(\d+)/); - $NumAAMismatches += $1 if (m/NumAAMismatches\s+=\s+(\d+)/); - $NumFAMismatches += $1 if (m/NumFAMismatches\s+=\s+(\d+)/); - $NumVARRecords += $1 if (m/NumVARRecords\s+=\s+(\d+)/); - $NumVARStringsWithFlankingGaps += $1 if (m/NumVARStringsWithFlankingGaps\s+=\s+(\d+)/); - $NumUnitigRetrySuccess += $1 if (m/NumUnitigRetrySuccess\s+=\s+(\d+)/); - } - close(F); - } - - open(F, "> $dir/consensus.stats.summary"); - print F "NumColumnsInUnitigs=$NumColumnsInUnitigs\n" if ($NumColumnsInUnitigs > 0); - print F "NumGapsInUnitigs=$NumGapsInUnitigs\n" if ($NumGapsInUnitigs > 0); - print F "NumRunsOfGapsInUnitigReads=$NumRunsOfGapsInUnitigReads\n" if ($NumRunsOfGapsInUnitigReads > 0); - print F "NumColumnsInContigs=$NumColumnsInContigs\n" if ($NumColumnsInContigs > 0); - print F "NumGapsInContigs=$NumGapsInContigs\n" if ($NumGapsInContigs > 0); - print F "NumRunsOfGapsInContigReads=$NumRunsOfGapsInContigReads\n" if ($NumRunsOfGapsInContigReads > 0); - print F "NumAAMismatches=$NumAAMismatches\n" if ($NumAAMismatches > 0); - print F "NumFAMismatches=$NumFAMismatches\n" if ($NumFAMismatches > 0); - print F "NumVARRecords=$NumVARRecords\n" if ($NumVARRecords > 0); - print F "NumVARStringsWithFlankingGaps=$NumVARStringsWithFlankingGaps\n" if ($NumVARStringsWithFlankingGaps > 0); - print F "NumUnitigRetrySuccess=$NumUnitigRetrySuccess\n" if ($NumUnitigRetrySuccess > 0); - close(F); - } -} - - - -sub terminate () { - my $perl = "/usr/bin/env perl"; - - my $termDir = "$wrk/9-terminator"; - system("mkdir $termDir") if (! -e "$termDir"); - - stopBefore("terminator", undef); - - if (! -e "$termDir/$asm.asm") { - my $uidServer = getGlobal("uidServer"); - my $fakeUIDs = getGlobal("fakeUIDs"); - - my $ckpVersion = findLastCheckpoint("$wrk/7-CGW"); - my $tigVersion = $ckpVersion + 1; - - caFailure("contig consensus didn't find any checkpoints in '$wrk/7-CGW'", undef) if (!defined($tigVersion)); - - $cmd = "$bin/terminator"; - $cmd .= " -E $uidServer" if (defined($uidServer)); - $cmd .= " -s $fakeUIDs" if ($fakeUIDs > 0); - $cmd .= " -g $wrk/$asm.gkpStore"; - $cmd .= " -t $wrk/$asm.tigStore $tigVersion"; - $cmd .= " -c $wrk/7-CGW/$asm $ckpVersion"; - $cmd .= " -o $wrk/9-terminator/$asm"; - $cmd .= " > $wrk/9-terminator/$asm.asm.err"; - - if (runCommand("$termDir", $cmd)) { - rename "$termDir/$asm.asm", "$termDir/$asm.asm.FAILED"; - rename "$termDir/$asm.map", "$termDir/$asm.map.FAILED"; - caFailure("terminator failed", "$termDir/terminator.err"); - } - unlink "$termDir/terminator.err"; - } - - - my $asmOutputFasta = "$bin/asmOutputFasta"; - if (! -e "$termDir/$asm.scf.fasta") { - $cmd = "$asmOutputFasta -p $termDir/$asm $termDir/$asm.asm > $termDir/asmOutputFasta.err 2>&1"; - if (runCommand("$termDir", $cmd)) { - rename "$termDir/$asm.scfcns.fasta", "$termDir/$asm.scfcns.fasta.FAILED"; - caFailure("fasta output failed", "$termDir/asmOutputFasta.err"); - } - unlink "$termDir/asmOutputFasta.err"; - } - - - if (! -e "$termDir/$asm.singleton.fasta") { - my $ckpVersion = findLastCheckpoint("$wrk/7-CGW"); - my $tigVersion = $ckpVersion + 1; - - $cmd = "$bin/dumpSingletons "; - $cmd .= " -g $wrk/$asm.gkpStore "; - $cmd .= " -t $wrk/$asm.tigStore "; - $cmd .= " -c $wrk/7-CGW/$asm -n $ckpVersion -S "; - $cmd .= "> $termDir/$asm.singleton.fasta "; - $cmd .= "2> $termDir/dumpSingletons.err "; - if (runCommand("$termDir", $cmd)) { - print STDERR "Failed.\n"; - rename "$termDir/$asm.singleton.fasta", "$termDir/$asm.singleton.fasta.FAILED"; - } - unlink "$termDir/dumpSingletons.err"; - } - - - ######################################## - # - # Generate fragment/unitig/contig/scaffold mappings - # - ######################################## - - - if (getGlobal("createPosMap") > 0) { - if (! -e "$termDir/$asm.posmap.frgscf") { - if (runCommand("$termDir", "$bin/buildPosMap -o $asm < $termDir/$asm.asm > $termDir/buildPosMap.err 2>&1")) { - rename "$termDir/$asm.posmap.frgscf", "$termDir/$asm.posmap.frgscf.FAILED"; - caFailure("buildPosMap failed", "$termDir/buildPosMap.err"); - } - unlink "$termDir/buildPosMap.err"; - } - } - - ######################################## - # - # Generate a read depth histogram - # - ######################################## - if (( -e "$termDir/$asm.posmap.frgscf") && - (! -e "$termDir/$asm.qc.readdepth") && - (! -e "$termDir/$asm.qc")) { - - # Youch. Run five commands, do something if all are successful. - - $cmd = "sort -k2n -k3n -T $termDir $termDir/$asm.posmap.frgscf > $termDir/$asm.posmap.frgscf.sorted &&"; - $cmd .= "$bin/fragmentDepth -min 0 -max 3000 < $termDir/$asm.posmap.frgscf.sorted > $termDir/$asm.posmap.frgscf.histogram1 && "; - $cmd .= "$bin/fragmentDepth -min 3001 -max 10000 < $termDir/$asm.posmap.frgscf.sorted > $termDir/$asm.posmap.frgscf.histogram2 && "; - $cmd .= "$bin/fragmentDepth -min 10001 -max 1000000 < $termDir/$asm.posmap.frgscf.sorted > $termDir/$asm.posmap.frgscf.histogram3 && "; - $cmd .= "$bin/fragmentDepth -min 1000001 < $termDir/$asm.posmap.frgscf.sorted > $termDir/$asm.posmap.frgscf.histogram4 "; - - if (runCommand("$termDir", $cmd) == 0) { - my @H1; - my @H2; - my @H3; - my @H4; - my $histMax = 0; - - open(G, "< $termDir/$asm.posmap.frgscf.histogram1") or caFailure("failed to open '$termDir/$asm.posmap.frgscf.histogram1'", undef); - while () { - my ($v, $s) = split '\s+', $_; - $H1[$v] = $s; - $histMax = $v if ($histMax < $v); - } - close(G); - - open(G, "< $termDir/$asm.posmap.frgscf.histogram2") or caFailure("failed to open '$termDir/$asm.posmap.frgscf.histogram2'", undef); - while () { - my ($v, $s) = split '\s+', $_; - $H2[$v] = $s; - $histMax = $v if ($histMax < $v); - } - close(G); - - open(G, "< $termDir/$asm.posmap.frgscf.histogram3") or caFailure("failed to open '$termDir/$asm.posmap.frgscf.histogram3'", undef); - while () { - my ($v, $s) = split '\s+', $_; - $H3[$v] = $s; - $histMax = $v if ($histMax < $v); - } - close(G); - - open(G, "< $termDir/$asm.posmap.frgscf.histogram4") or caFailure("failed to open '$termDir/$asm.posmap.frgscf.histogram4'", undef); - while () { - my ($v, $s) = split '\s+', $_; - $H4[$v] = $s; - $histMax = $v if ($histMax < $v); - } - close(G); - - open(G, "> $termDir/$asm.qc.readdepth"); - print G "\n[Read Depth Histogram]\n"; - print G "d < 3Kbp < 10Kbp < 1Mbp < inf\n"; - for (my $v=0; $v<=$histMax; $v++) { - printf(G "%-4d %-10d %-10d %-10d %-10d\n", $v, int($H1[$v]), int($H2[$v]), int($H3[$v]), int($H4[$v])); - } - } - - # Remove our temporary files. - - unlink "$termDir/$asm.posmap.frgscf.histogram1"; - unlink "$termDir/$asm.posmap.frgscf.histogram2"; - unlink "$termDir/$asm.posmap.frgscf.histogram3"; - unlink "$termDir/$asm.posmap.frgscf.histogram4"; - } - - - ######################################## - # - # Generate statistics. - # - ######################################## - - if (! -e "$termDir/$asm.qc") { - my $qcOptions; - - #if (! -e "$termDir/$asm.dumpinfo") { - # if (runCommand($termDir, "$bin/gatekeeper -dumpinfo $wrk/$asm.gkpStore > $termDir/$asm.gkpinfo 2> $termDir/$asm.gkpinfo.err")) { - # unlink "$termDir/$asm.gkpinfo"; - # } - # unlink "$termDir/$asm.gkpinfo.err"; - #} - if ( -e "$wrk/$asm.frg" ) { - link "$wrk/$asm.frg", "$termDir/$asm.frg"; - $qcOptions = "-metrics"; - } - if ( -e "$wrk/$asm.catmap" && !-e "$termDir/$asm.catmap" ) { - link "$wrk/$asm.catmap", "$termDir/$asm.catmap"; - } - if ( -e "$wrk/$asm.seq.features" && !-e "$termDir/$asm.seq.features" ) { - link "$wrk/$asm.seq.features", "$termDir/$asm.seq.features"; - } - if (runCommand("$termDir", "$perl $bin/caqc.pl -euid $qcOptions $termDir/$asm.asm")) { - rename "$termDir/$asm.qc", "$termDir/$asm.qc.FAILED"; - } - - summarizeConsensusStatistics("$wrk/5-consensus"); - summarizeConsensusStatistics("$wrk/8-consensus"); - - open(F, ">> $termDir/$asm.qc") or caFailure("failed to append to '$termDir/$asm.qc'", undef); - - if (-e "$wrk/5-consensus/consensus.stats.summary") { - print F "\n[Unitig Consensus]\n"; - open(G, "< $wrk/5-consensus/consensus.stats.summary") or caFailure("failed to open '$wrk/5-consensus/consensus.stats.summary'", undef); - while () { - print F $_; - } - close(G); - } - - if (-e "$wrk/8-consensus/consensus.stats.summary") { - print F "\n[Contig Consensus]\n"; - open(G, "< $wrk/8-consensus/consensus.stats.summary") or caFailure("failed to open '$wrk/8-consensus/consensus.stats.summary'", undef); - while () { - print F $_; - } - close(G); - } - - if (-e "$termDir/$asm.qc.readdepth") { - open(G, "< $termDir/$asm.qc.readdepth") or caFailure("failed to open '$termDir/$asm.qc.readdepth'", undef); - while () { - print F $_; - } - close(G); - } - - close(F); - - unlink "$wrk/5-consensus/consensus.stats.summary"; - unlink "$wrk/8-consensus/consensus.stats.summary"; - unlink "$termDir/$asm.qc.readdepth"; - } - - - ######################################## - # - # Mercy merQC - # - ######################################## - - - if ((getGlobal("merQC") > 0) && - (! -e "$termDir/$asm.merQC") && - (merylVersion() eq "Mighty")) { - - system("mkdir $termDir/mercy") if (! -e "$termDir/mercy"); - - my $ms = getGlobal("merQCmerSize"); - my $mem = getGlobal("merQCmemory"); - my $verbose = ""; - - if (! -e "$termDir/mercy/$asm-ms$ms-frgFull.mcidx") { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -memory $mem $verbose "; - $cmd .= "-s $wrk/$asm.gkpStore:untrim "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-frgFull"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-frgFull.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-frgFull.mcdat"; - } - } - if (! -e "$termDir/mercy/$asm-ms$ms-frgTrim.mcidx") { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -memory $mem $verbose "; - $cmd .= "-s $wrk/$asm.gkpStore "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-frgTrim"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-frgTrim.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-frgTrim.mcdat"; - } - } - - # XXX This can likely be optimized -- by feeding - # asmOutputcontigsFasta directly to meryl. It'd be harder - # (but great) if only one pass through the asm file could be - # made. Easier then if we write all three files at the same - # time. - - if (! -e "$termDir/mercy/$asm.ctgNorm.fasta") { - link "$termDir/$asm.ctg.fasta", "$termDir/mercy/$asm.ctgNorm.fasta"; - } - if (! -e "$termDir/mercy/$asm.ctgDreg.fasta") { - link "$termDir/$asm.deg.fasta", "$termDir/mercy/$asm.ctgDreg.fasta"; - } - if (! -e "$termDir/mercy/$asm.ctgAll.fasta") { - system "cat $termDir/$asm.{ctg,deg}.fasta > $termDir/mercy/$asm.ctgAll.fasta"; - } - - if ((! -e "$termDir/mercy/$asm-ms$ms-ctgNorm.mcidx") && - (-e "$termDir/mercy/$asm.ctgNorm.fasta")) { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -segments 4 $verbose "; - $cmd .= "-s $termDir/mercy/$asm.ctgNorm.fasta "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-ctgNorm"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-ctgNorm.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-ctgNorm.mcdat"; - } - } - if ((! -e "$termDir/mercy/$asm-ms$ms-ctgDreg.mcidx") && - (-e "$termDir/mercy/$asm.ctgDreg.fasta")) { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -segments 4 $verbose "; - $cmd .= "-s $termDir/mercy/$asm.ctgDreg.fasta "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-ctgDreg"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-ctgDreg.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-ctgDreg.mcdat"; - } - } - if ((! -e "$termDir/mercy/$asm-ms$ms-ctgAll.mcidx") && - (-e "$termDir/mercy/$asm.ctgAll.fasta")) { - $cmd = "$bin/meryl -B -C -m $ms -threads 4 -segments 4 $verbose "; - $cmd .= "-s $termDir/mercy/$asm.ctgAll.fasta "; - $cmd .= "-o $termDir/mercy/$asm-ms$ms-ctgAll"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - unlink "$termDir/mercy/$asm-ms$ms-ctgAll.mcidx"; - unlink "$termDir/mercy/$asm-ms$ms-ctgAll.mcdat"; - } - } - - if (! -e "$termDir/$asm-ms$ms.merQC") { - $cmd = "$bin/mercy "; - $cmd .= "-af $termDir/mercy/$asm-ms$ms-frgFull " if (-e "$termDir/mercy/$asm-ms$ms-frgFull.mcidx"); - $cmd .= "-tf $termDir/mercy/$asm-ms$ms-frgTrim " if (-e "$termDir/mercy/$asm-ms$ms-frgTrim.mcidx"); - $cmd .= "-co $termDir/mercy/$asm-ms$ms-ctgNorm " if (-e "$termDir/mercy/$asm-ms$ms-ctgNorm.mcidx"); - $cmd .= "-dc $termDir/mercy/$asm-ms$ms-ctgDreg " if (-e "$termDir/mercy/$asm-ms$ms-ctgDreg.mcidx"); - $cmd .= "-ac $termDir/mercy/$asm-ms$ms-ctgAll " if (-e "$termDir/mercy/$asm-ms$ms-ctgAll.mcidx"); - $cmd .= "> $termDir/$asm-ms$ms.merQC"; - if (runCommand("$termDir/mercy", $cmd)) { - print STDERR "Failed.\n"; - rename "$termDir/$asm-ms$ms.merQC", "$termDir/$asm-ms$ms.merQC.FAILED"; - } - } - } - - - ######################################## - # - # AGP and ACE file generation - # - ######################################## - - - if (getGlobal("createAGP") > 0) { - if (! -e "$termDir/$asm.agp") { - if (runCommand($termDir, "$perl $bin/asmToAGP.pl < $termDir/$asm.asm > $termDir/$asm.agp")) { - rename "$termDir/$asm.agp", "$termDir/$asm.agp.FAILED"; - } - } - } - - if (getGlobal("createACE") > 0) { - if (! -e "$termDir/$asm.ace.bz2") { - if (! -e "$termDir/$asm.frg") { - if (runCommand($termDir, "$bin/gatekeeper -dumpfrg -allreads $wrk/$asm.gkpStore > $termDir/$asm.frg 2> $termDir/gatekeeper.err")) { - caFailure("gatekeeper failed to dump fragments for ACE generation", "$termDir/gatekeeper.err"); - } - unlink "$termDir/gatekeeper.err"; - } - if (runCommand($termDir, "$perl $bin/ca2ace.pl $termDir/$asm.asm")) { - rename "$termDir/$asm.ace.bz2", "$termDir/$asm.ace.FAILED.bz2"; - } - } - } - - unlink "$wrk/$asm.asm"; - unlink "$wrk/$asm.qc"; - - link "$termDir/$asm.asm", "$wrk/$asm.asm"; - link "$termDir/$asm.qc", "$wrk/$asm.qc"; - - return(0); -} - -################################################################################ -################################################################################ -################################################################################ - - -# Assembly all done, toggle the unitigs and re-run CGW and subsequent steps of the assembly. - -sub toggler () { - my $toggledDir = "10-toggledAsm"; - my $ecrEdits = ""; - - return if (-d "$wrk/$toggledDir/$asm.asm"); - return if (getGlobal("doToggle") == 0); - - my $minLength = getGlobal("toggleUnitigLength"); - my $numInstances = getGlobal("toggleNumInstances"); - my $maxDistance = getGlobal("toggleMaxDistance"); - - system("mkdir $wrk/$toggledDir") if (! -d "$wrk/$toggledDir"); - - # A simple link to the ovlStore suffices. - # - if (! -e "$wrk/$toggledDir/$asm.ovlStore") { - system("ln -s $wrk/$asm.ovlStore $wrk/$toggledDir/$asm.ovlStore"); - } - - # The gatekeeper store must be paritally copied, so that we can first undo - # clear range changes made by any previous ECR, and allow clear range changes - # to be made by future ECR. - # - if (! -e "$wrk/$toggledDir/$asm.gkpStore") { - system("mkdir $wrk/$toggledDir/$asm.gkpStore"); - - system("ln -s $wrk/$asm.gkpStore/[qsu]?? $wrk/$toggledDir/$asm.gkpStore/"); - system("cp $wrk/$asm.gkpStore/[filp]?? $wrk/$toggledDir/$asm.gkpStore/"); - system("cp $wrk/$asm.gkpStore/clr-* $wrk/$toggledDir/$asm.gkpStore/"); - - $cmd = "$bin/gatekeeper"; - $cmd .= " --revertclear OBTCHIMERA $wrk/$toggledDir/$asm.gkpStore"; - $cmd .= " > $wrk/$toggledDir/$asm.gkpStore.resetClearRange.err 2>&1"; - - if (runCommand("$wrk/$toggledDir", $cmd)) { - caFailure("failed to get pre-ECR clear-ranges for toggling", "$wrk/$toggledDir/$asm.gkpStore.resetClearRange.err"); - } - } - - # The tigStore needs only a partial copy, and links suffice. - # - if (! -e "$wrk/$toggledDir/$asm.tigStore") { - system("mkdir $wrk/$toggledDir/$asm.tigStore") ; - - system("ln -s $wrk/$asm.tigStore/*v00[12345]* $wrk/$toggledDir/$asm.tigStore/"); - } - - system("ln -s $wrk/4-unitigger $wrk/$toggledDir") if (! -e "$wrk/$toggledDir/4-unitigger"); - system("ln -s $wrk/5-consensus $wrk/$toggledDir") if (! -e "$wrk/$toggledDir/5-consensus"); - - # Update the tigStore, flipping repeat untigs to unique unitigs. - # - if (! -e "$wrk/$toggledDir/toggled.success") { - $cmd = "$bin/markUniqueUnique "; - $cmd .= " -a $wrk/9-terminator/$asm.asm "; - $cmd .= " -t $wrk/$toggledDir/$asm.tigStore 5 "; - $cmd .= " -l $minLength "; - $cmd .= " -n $numInstances "; - $cmd .= " -d $maxDistance "; - $cmd .= " > $wrk/$toggledDir/toggle.err 2>&1"; - - if (runCommand("$wrk/$toggledDir", $cmd)) { - caFailure("failed to toggle unitigs ", "$wrk/$toggledDir/toggle.err"); - } - - touch("$wrk/$toggledDir/toggled.success"); - } - - my $numToggles = `tail -n 1 $wrk/$toggledDir/toggle.err | awk '{print \$2}'`; - - if ($numToggles == 0) { - print "No toggling occured. Finished.\n"; - return; - } - - my $oldwrk = $wrk; - - $wrk = "$wrk/$toggledDir"; - - scaffolder(); - postScaffolderConsensus(); - terminate(); - cleaner(); - - $wrk = $oldwrk; -} -################################################################################ -################################################################################ -################################################################################ - - -# Assembly all done, remove some of the crud. - -sub cleaner () { - my $cleanType = getGlobal("cleanup"); - my $cleanValu = 0; - - print STDERR "The Cleaner has arrived. Doing '$cleanType'.\n"; - - $cleanValu = 0 if ($cleanType =~ m/none/); - $cleanValu = 1 if ($cleanType =~ m/light/); - $cleanValu = 2 if ($cleanType =~ m/heavy/); - $cleanValu = 3 if ($cleanType =~ m/aggressive/); - - - if ($cleanValu >= 1) { - # - # Remove some of the more useless output files, - # and many of the stores and whatnot that can be recreated. - # - rmrf("$asm.obtStore"); - rmrf("0-mercounts/*blocks", "0-mercounts/*sequence"); - rmrf("0-overlaptrim-overlap/overlap*out"); - rmrf("1-overlapper/overlap*out"); - rmrf("4-unitigger/$asm.fge", "4-unitigger/$asm.fgv"); - rmrf("7*/rezlog"); - } - - - if ($cleanValu >= 2) { - # - # - # - } - - - if ($cleanValu >= 3) { - # - # Nuke everything except 9-terminator. Be paranoid about doing it. - # - rmrf("0-mercounts"); - rmrf("0-overlaptrim"); - rmrf("0-overlaptrim-overlap"); - rmrf("1-overlapper"); - rmrf("2-frgcorr"); - rmrf("3-ovlcorr"); - rmrf("4-unitigger"); - rmrf("5-consensus"); - rmrf("7-[0-9]-CGW"); - rmrf("7-[0-9]-ECR"); - rmrf("7-CGW"); - rmrf("8-consensus"); - rmrf("$asm.SeqStore"); - rmrf("$asm.asm"); - rmrf("$asm.frg"); - rmrf("$asm.gkpStore"); - rmrf("$asm.obtStore"); - rmrf("$asm.ovlStore"); - rmrf("$asm.qc"); - } - - - if ($cleanType =~ m/compress/) { - # Compress *.err (usually tiny) - # Compress overlaps (*ovb) - # Compress checkpoints (*ckp.*[0-9]) - } -} -################################################################################ -################################################################################ -################################################################################ - - -setDefaults(); - -# Check for the presence of a -options switch BEFORE we do any work. -# This lets us print the default values of options. - -foreach my $arg (@ARGV) { - if ($arg eq "-options") { - setGlobal("options", 1); - printHelp(); - } -} - -# At some pain, we stash the original options for later use. We need -# to use these when we resubmit ourself to SGE. We can't simply dump -# all of @ARGV into here, because we need to fix up relative paths. - -while (scalar(@ARGV)) { - my $arg = shift @ARGV; - - if ($arg =~ m/^-d/) { - $wrk = shift @ARGV; - $wrk = "$ENV{'PWD'}/$wrk" if ($wrk !~ m!^/!); - $commandLineOptions .= " -d \"$wrk\""; - - } elsif ($arg eq "-p") { - $asm = shift @ARGV; - $commandLineOptions .= " -p \"$asm\""; - - } elsif ($arg eq "-s") { - push @specFiles, shift @ARGV; - - } elsif ($arg eq "-version") { - setGlobal("version", 1); - - } elsif ($arg eq "-options") { - # Do nothing. Handled above, but we still need to process it here. - #setGlobal("options", 1); - - } elsif (($arg =~ /\.frg$|frg\.gz$|frg\.bz2$/i) && (-e $arg)) { - $arg = "$ENV{'PWD'}/$arg" if ($arg !~ m!^/!); - push @fragFiles, $arg; - $commandLineOptions .= " \"$arg\""; - - } elsif (($arg =~ /\.sff$|sff\.gz$|sff\.bz2$/i) && (-e $arg)) { - $arg = "$ENV{'PWD'}/$arg" if ($arg !~ m!^/!); - push @fragFiles, $arg; - $commandLineOptions .= " \"$arg\""; - - } elsif (($arg =~ /\.ace$/i) && (-e $arg)) { - $arg = "$ENV{'PWD'}/$arg" if ($arg !~ m!^/!); - push @fragFiles, $arg; - $commandLineOptions .= " \"$arg\""; - - } elsif ($arg =~ m/=/) { - push @specOpts, $arg; - $commandLineOptions .= " \"$arg\""; - - } else { - setGlobal("help", - getGlobal("help") . "File not found or invalid command line option '$arg'\n"); - } -} - - -setGlobal("help", getGlobal("help") . "Assembly name prefix not supplied with -p.\n") if (!defined($asm)); -setGlobal("help", getGlobal("help") . "Directory not supplied with -d.\n") if (!defined($wrk)); - - -$bin = getBinDirectory(); - -@fragFiles = setParametersFromFile("$bin/spec/runCA.default.specFile", @fragFiles) if (-e "$bin/spec/runCA.default.specFile"); -@fragFiles = setParametersFromFile("$ENV{'HOME'}/.runCA", @fragFiles) if (-e "$ENV{'HOME'}/.runCA"); - - -# For each of the specfiles on the command line, find the actual file and make it an absolute path. -# These can be in the current directory (e.g., 'my.spec'), or in the installed directory ('$bin/spec'). -# -foreach my $specFile (@specFiles) { - - if ((-e "$specFile") && (! -d "$specFile")) { - $specFile = "$ENV{'PWD'}/$specFile" if ($specFile !~ m!^/!); - - } elsif ((-e "$bin/spec/$specFile") && (! -d "$bin/spec/$specFile")) { - $specFile = "$bin/spec/$specFile"; - - } elsif ((-e "$bin/spec/$specFile.specFile") && (! -d "$bin/spec/$specFile.specFile")) { - $specFile = "$bin/spec/$specFile.specFile"; - - } else { - die "specFile '$specFile' not found.\n"; - } - - $commandLineOptions .= " -s \"$specFile\""; - - @fragFiles = setParametersFromFile($specFile, @fragFiles); -} - -setParametersFromCommandLine(@specOpts); - -setParameters(); - -printHelp(); - -# Fail immediately if we run the script on the grid, and the gkpStore -# directory doesn't exist and we have no input files. Without this -# check we'd fail only after being scheduled on the grid. -# -if ((getGlobal("scriptOnGrid") == 1) && - (! -d "$wrk/$asm.gkpStore") && - (scalar(@fragFiles) == 0)) { - caFailure("no fragment files specified, and stores not already created", undef); -} - -checkDirectories(); -outputSpecLog(); - -# If not already on the grid, see if we should be on the grid. -# N.B. the arg MUST BE undef. -# -submitScript(undef) if (!runningOnGrid()); - -# Begin - -preoverlap(@fragFiles); -merTrim(); # merTrim() MUST be before overlapTrim(). -overlapTrim(); -createOverlapJobs("normal"); -checkOverlap("normal"); -createOverlapStore(); -overlapCorrection(); -classifyMates(); -unitigger(); -postUnitiggerConsensus(); -scaffolder(); -postScaffolderConsensus(); -terminate(); -toggler(); -cleaner(); - -exit(0); - diff -Nru cctools-7.0.22/sand/src/sand_uncompress_reads.c cctools-7.1.2/sand/src/sand_uncompress_reads.c --- cctools-7.0.22/sand/src/sand_uncompress_reads.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/sand_uncompress_reads.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include - -#include "compressed_sequence.h" - -#include "cctools.h" -#include "debug.h" - -static void show_help(const char *cmd) -{ - printf("Use: %s [options] compressed_reads > fasta_reads\n", cmd); - printf("where options are:\n"); - printf(" -q Quiet mode: suppress summary line.\n"); - printf(" -v Show version string.\n"); - printf(" -h Show this help screen\n"); -} - -int main(int argc, char ** argv) -{ - const char *progname = "sand_uncompress_reads"; - FILE * infile; - FILE * outfile; - struct cseq *c; - signed char d; - int quiet_mode = 0; - int count = 0; - - while((d=getopt(argc,argv,"qhi")) > -1) { - switch(d) { - case 'q': - quiet_mode = 1; - break; - case 'v': - cctools_version_print(stdout, progname); - exit(0); - break; - case 'h': - default: - show_help(progname); - exit(0); - break; - } - } - - cctools_version_debug(D_DEBUG, argv[0]); - - if( optind -#include -#include -#include - -#include "stringtools.h" -#include "debug.h" -#include "full_io.h" - -#include "sequence.h" - -struct seq * seq_create( const char *name, const char *data, const char *metadata ) -{ - struct seq *s = malloc(sizeof(*s)); - - s->name = strdup(name); - s->data = strdup(data); - s->metadata = strdup(metadata); - s->num_bases = strlen(data); - - return s; -} - -static char base_complement(char c) -{ - switch(c) - { - case 'A': - case 'a': - return 'T'; - case 'T': - case 't': - return 'A'; - case 'G': - case 'g': - return 'C'; - case 'C': - case 'c': - return 'G'; - default: - return 'N'; - } -} - -void seq_reverse_complement( struct seq *s ) -{ - char * str = s->data; - int num_bases = s->num_bases; - char c_i, c_j; - int i, j; - - for(i=0, j=num_bases-1; i <= j; i++, j--) - { - c_i = str[i]; - c_j = str[j]; - str[j] = base_complement(c_i); - str[i] = base_complement(c_j); - } -} - -void seq_free( struct seq *s ) -{ - if(s) { - free(s->name); - free(s->data); - free(s->metadata); - free(s); - } -} - -int seq_sprint(char * buf, struct seq *s ) -{ - return sprintf(buf,">%s %s\n%s\n",s->name,s->metadata,s->data); -} - -void seq_print( FILE *file, struct seq *s ) -{ - fprintf(file,">%s %s\n%s\n",s->name,s->metadata,s->data); -} - -struct seq * seq_read( FILE *file ) -{ - static char *buffer = 0; - static int buffer_size = SEQUENCE_FILE_LINE_MAX; - - char line[SEQUENCE_FILE_LINE_MAX]; - char name[SEQUENCE_FILE_LINE_MAX]; - char metadata[SEQUENCE_FILE_LINE_MAX]; - - if(!fgets(line,sizeof(line),file)) return 0; - - // special case: >> indicates the end of a list - if(line[0]=='>' && line[1]=='>') return 0; - - metadata[0] = 0; - - int n = sscanf(line, ">%s %[^\n]\n",name,metadata); - if(n<1) fatal("syntax error near: %s\n",line); - - if(!buffer) buffer = malloc(buffer_size); - - int num_bases = 0; - - while(1) { - int c = getc_unlocked(file); - if(isspace(c)) continue; - if(c==EOF) break; - if(c=='>') { - ungetc(c,file); - break; - } - buffer[num_bases++] = toupper(c); - if(num_bases>(buffer_size-2)) { - buffer_size *= 2; - buffer = realloc(buffer,buffer_size); - } - } - - buffer[num_bases] = 0; - - return seq_create(name,buffer,metadata); -} - -int sequence_count(FILE * file) -{ - int count = 0; - char line[SEQUENCE_FILE_LINE_MAX]; - long int start_pos = ftell(file); - - while(fgets(line,sizeof(line),file)) { - if(line[0] == '>') count++; - } - - fseek(file, start_pos, SEEK_SET); - return count; -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/sand/src/sequence_filter.c cctools-7.1.2/sand/src/sequence_filter.c --- cctools-7.0.22/sand/src/sequence_filter.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/sequence_filter.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1065 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include -#include -#include - -#include "sequence_filter.h" -#include "itable.h" - -#define EVEN_MASK 0xCCCCCCCCCCCCCCCCULL -#define ODD_MASK 0x3333333333333333ULL - -unsigned short short_masks[8] = { 65535, 16383, 4095, 1023, 255, 63, 15, 3 }; - -#define SHORT_MASK_8 65535 -#define SHORT_MASK_7 16383 -#define SHORT_MASK_6 4095 -#define SHORT_MASK_5 1023 -#define SHORT_MASK_4 255 -#define SHORT_MASK_3 63 -#define SHORT_MASK_2 15 -#define SHORT_MASK_1 3 - -static int k = 22; -static mer_t k_mask = 0; -static int WINDOW_SIZE = 22; -static mer_t repeat_mask = 0; - -#define MER_VALUE(mer) ( (mer & (EVEN_MASK & k_mask)) | ((~mer) & (ODD_MASK & k_mask)) ) - -struct mer_list_elem_s -{ - int seq_num; - short loc; - char dir; - struct mer_list_elem_s * next; -}; - -typedef struct mer_list_elem_s mer_list_element; - -struct mer_hash_element_s -{ - mer_t mer; - mer_list_element * mle; - unsigned char count; - struct mer_hash_element_s * next; -}; -typedef struct mer_hash_element_s mer_hash_element; - -struct cand_list_element_s -{ - int cand1; - int cand2; - char dir; - int count; - short loc1; - short loc2; - struct cand_list_element_s * next; -}; -typedef struct cand_list_element_s cand_list_element; - -/* These are globals referenced directly by sand_filter_mer_seq. */ -/* This needs to be cleaned up. */ - -int curr_rect_x = 0; -int curr_rect_y = 0; -int rectangle_size = 1000; -unsigned long total_cand = 0; - -static int MER_TABLE_BUCKETS = 5000011; //20000003; -static int CAND_TABLE_BUCKETS= 5000011; //20000003; -static struct cseq ** all_seqs = 0; -static cand_list_element ** candidates; -static mer_hash_element ** mer_table; -static struct itable * repeat_mer_table = 0; -static int num_seqs = 0; - -static int start_x = 0; -static int end_x = 0; -static int start_y = 0; -static int end_y = 0; -static int same_rect; - -#define in_range(x, s, e) ( ((s) <= (x)) && ((x) < (e)) ) - -void add_sequence_to_mer(mer_t mer, int i, char dir, short loc); -mer_hash_element * find_mer(mer_t mer); -void free_mer_table(); -void free_mer_hash_element(mer_hash_element * mhe); -void free_mer_table(); -void free_cand_table(); -mer_list_element * create_mer_list_element(int seq_num, char dir, short loc); -mer_hash_element * get_mer_hash_element(mer_t mer); -void free_mer_list_element(mer_list_element * mle); -void mer_generate_cands(mer_hash_element * mhe); -void print_8mer(unsigned short mer); -void set_k_mask(); -mer_t make_mer(const char * str); - -void add_candidate(int seq, int cand, char dir, mer_t mer, short loc1, short loc2); -void free_cand_list_element(cand_list_element * cle); - -void find_all_kmers(int seq_num); -void find_minimizers(int seq_num); -minimizer get_minimizer(int seq_num, int window_start); -mer_t get_kmer(struct cseq *c, int i); -void print_16mer(mer_t mer16); -mer_t rev_comp_mer(mer_t mer); - -void print_mhe(FILE * file, mer_hash_element * mhe); - -void init_cand_table( int buckets ) -{ - int i; - CAND_TABLE_BUCKETS = buckets; - candidates = malloc(CAND_TABLE_BUCKETS * sizeof(cand_list_element *)); - for (i=0; i < CAND_TABLE_BUCKETS; i++) - { - candidates[i] = 0; - } -} - -void init_mer_table( int buckets ) -{ - int i; - MER_TABLE_BUCKETS = buckets; - mer_table = malloc(MER_TABLE_BUCKETS * sizeof(mer_hash_element *)); - for (i=0; i < MER_TABLE_BUCKETS; i++) - { - mer_table[i] = 0; - } -} - -int load_seqs(FILE * input ) -{ - int seq_count = sequence_count(input); - - all_seqs = malloc(seq_count*sizeof(struct cseq *)); - struct cseq *c; - - while ((c=cseq_read(input))) { - all_seqs[num_seqs++] = c; - } - - return num_seqs; - -} - -int load_seqs_two_files(FILE * f1, int * end1, FILE * f2, int * end2) -{ - num_seqs = 0; - int count1 = sequence_count(f1); - int count2 = sequence_count(f2); - - all_seqs = malloc((count1+count2)*sizeof(struct cseq *)); - struct cseq *c; - - while((c = cseq_read(f1))) { - all_seqs[num_seqs++] = c; - } - - *end1 = num_seqs; - - while((c = cseq_read(f2))) { - all_seqs[num_seqs++] = c; - } - - *end2 = num_seqs; - - return num_seqs; - -} - -// Loads up a set of mers from a file and stores them. -// These mers cannot be treated as minimizers. -int init_repeat_mer_table(FILE * repeats, unsigned long buckets, int max_mer_repeat) -{ - // Estimate the number of buckets here by dividing the file - // size by 25. - if (buckets == 0) - { - unsigned long curr_pos = ftell(repeats); - fseek(repeats, 0, SEEK_END); - unsigned long end_pos = ftell(repeats); - buckets = (end_pos - curr_pos) / 25; - fseek(repeats, curr_pos, SEEK_SET); - } - - char str[1024]; - int *count = malloc(sizeof(int));; - mer_t mer, rev; - repeat_mer_table = itable_create(buckets); - if (k_mask == 0) set_k_mask(); - - while (fscanf(repeats, ">%d %s\n", count, str) == 2) - { - if (*count >= max_mer_repeat) - { - mer = make_mer(str); - rev = rev_comp_mer(mer); - if (MER_VALUE(mer) < MER_VALUE(rev)) - itable_insert(repeat_mer_table, mer, count); - else - itable_insert(repeat_mer_table, rev, count); - } - count = malloc(sizeof(int)); - } - - return itable_size(repeat_mer_table); -} - -mer_t make_mer(const char * str) -{ - mer_t mer = 0; - int i; - int len = strlen(str); - for (i=0; icand1 - ((candidate_t *) pair2)->cand1; - if (!diff) return ((candidate_t *) pair1)->cand2 - ((candidate_t *) pair2)->cand2; - return diff; -} - -int output_candidate_list( FILE * file, candidate_t * list, int total_output ) -{ - if (!list) return 0; - - int i; - int total_printed = 0; - - for (i=0; iname, all_seqs[pair.cand2]->name, pair.dir, pair.loc1, (pair.dir == 1) ? pair.loc2 : all_seqs[pair.cand2]->num_bases - pair.loc2 - k); - total_printed++; - } - return total_printed; -} - -candidate_t * retrieve_candidates(int * total_cand_ret) -{ - int curr_index; - int total_output = 0; - - cand_list_element * cle; - - candidate_t * candidate_list = malloc(total_cand*sizeof(struct candidate_s)); - - for (curr_index = 0; curr_index < CAND_TABLE_BUCKETS; curr_index++) - { - cle = candidates[curr_index]; - while (cle) - { - if (cle->count >= 1) - { - candidate_list[total_output].cand1 = cle->cand1; - candidate_list[total_output].cand2 = cle->cand2; - candidate_list[total_output].dir = cle->dir; - candidate_list[total_output].loc1 = cle->loc1; - candidate_list[total_output].loc2 = cle->loc2; - total_output++; - } - cle = cle->next; - } - free_cand_list_element(candidates[curr_index]); - candidates[curr_index] = 0; - } - - *total_cand_ret = total_output; - qsort(candidate_list, total_output, sizeof(struct candidate_s), compare_cand); - return candidate_list; - -} - -void generate_candidates() -{ - int curr_bucket; - - mer_hash_element * mhe, *old_mhe; - - for(curr_bucket = 0; curr_bucket < MER_TABLE_BUCKETS; curr_bucket++) - { - mhe = mer_table[curr_bucket]; - while (mhe) - { - mer_generate_cands(mhe); - old_mhe = mhe; - mhe = mhe->next; - free(old_mhe); - } - mer_table[curr_bucket] = 0; - } -} - -void mer_generate_cands(mer_hash_element * mhe) -{ - if (!mhe) return; - - mer_list_element *head, *curr; - - head = mhe->mle; - - while (head) - { - curr = head->next; - while (curr) - { - add_candidate(head->seq_num, curr->seq_num, head->dir * curr->dir, mhe->mer, head->loc, curr->loc); - curr = curr->next; - } - head = head->next; - } - - free_mer_list_element(mhe->mle); - mhe->mle = 0; -} - -void print_mer_table(FILE * file) -{ - int curr_bucket; - mer_hash_element * mhe; - for (curr_bucket = 0; curr_bucket < MER_TABLE_BUCKETS; curr_bucket++) - { - mhe = mer_table[curr_bucket]; - while (mhe) - { - print_mhe(file, mhe); - mhe = mhe->next; - } - } -} - -void print_mhe(FILE * file, mer_hash_element * mhe) -{ - if (!mhe) return; - - mer_list_element *head, *curr; - head = mhe->mle; - char mer_str[k+1]; - - while(head) - { - curr = head->next; - while (curr) - { - translate_kmer(mhe->mer, mer_str, k); - fprintf(file, "%s\t%d\t%s\t%s\t%d\n", mer_str, mhe->count, all_seqs[head->seq_num]->name, all_seqs[curr->seq_num]->name, (int) (head->dir * curr->dir)); - curr = curr->next; - } - head = head->next; - } -} - -mer_t rev_comp_mer(mer_t mer) -{ - mer_t new_mer = 0; - int i; - for (i = 0; i < k; i++) - { - // Build new_mer by basically popping off the LSB of mer (mer >> 2) - // and pushing to the LSB of new_mer. - new_mer = new_mer << 2; - new_mer = new_mer | (mer & 3); - mer = mer >> 2; - } - // Now it's reversed, so complement it, but mask it by k_mask so only the important bits get complemented. - return (~new_mer) & k_mask; -} - - -void find_all_kmers(int seq_num) -{ - mer_t mer16; - int i; - int end = all_seqs[seq_num]->num_bases - 15; - - for (i = 0; inum_bases - k + 1; - mer_t mer, rev, mer_val, rev_val; - - minimizer window[WINDOW_SIZE]; - minimizer abs_min; - int abs_min_index = 0; - int index; - int j; - - memset(&abs_min,0,sizeof(abs_min)); - abs_min.value = MINIMIZER_MAX; - abs_min.dir = 0; - - // First, just populate the first window and get the first minimizer. - for (i = 0; i < WINDOW_SIZE; i++) - { - mer = get_kmer(all_seqs[seq_num], i); - rev = rev_comp_mer(mer); - mer_val = MER_VALUE(mer); - rev_val = MER_VALUE(rev); - - if (mer_val < rev_val) - { - window[i].mer = mer; - window[i].value = mer_val; - window[i].dir = 1; - window[i].loc = i; - } - else - { - window[i].mer = rev; - window[i].value = rev_val; - window[i].dir = -1; - window[i].loc = i; - } - if (window[i].value < abs_min.value) - { - abs_min = window[i]; - abs_min_index = i; - } - } - - // Add the absolute minimizer for the first window. - add_sequence_to_mer(abs_min.mer, seq_num, abs_min.dir, abs_min.loc); - - for (i = WINDOW_SIZE; i < end; i++) - { - index = i%WINDOW_SIZE; - - // First, add the new k-mer to the window, evicting the k-mer that is - // no longer in the window - mer = get_kmer(all_seqs[seq_num], i); - rev = rev_comp_mer(mer); - mer_val = MER_VALUE(mer); - rev_val = MER_VALUE(rev); - - if (mer_val < rev_val) - { - window[index].mer = mer; - window[index].value = mer_val; - window[index].dir = 1; - window[index].loc = i; - } - else - { - window[index].mer = rev; - window[index].value = rev_val; - window[index].dir = -1; - window[index].loc = i; - } - - // Now, check if the new k-mer is better than the current absolute minimizer. - //if (window[index].value < abs_min.value) - if (window[index].value < abs_min.value) - { - // If so, set it as the new absolute minimizer and add this sequence to the mer table - abs_min = window[index]; - abs_min_index = index; - add_sequence_to_mer(abs_min.mer, seq_num, abs_min.dir, abs_min.loc); - } - // Now, check if the current absolute minimizer is out of the window - // We just replaced index, so if abs_min_index == index, we just evicted - // the current minimizer. - else if (abs_min_index == index) - { - // Find the new minimizer - // If runtime starts to suffer I can implement something better than a linear search, - // but because WINDOW_SIZE is a small constant (around 20) it should be OK. - abs_min.value = MINIMIZER_MAX; - abs_min.dir = 0; - for (j = 0; j < WINDOW_SIZE; j++) - { - if (window[j].value < abs_min.value) - { - abs_min = window[j]; - abs_min_index = j; - } - } - // Add the new current minimizer to the mer table. - add_sequence_to_mer(abs_min.mer, seq_num, abs_min.dir, abs_min.loc); - } - } -} - -// Gets the next minimizer for this sequence. Returns 1 if it worked, 0 if we're at the end of the sequence. -int get_next_minimizer(int seq_num, minimizer * next_minimizer ) -{ - static int i = 0; - static int index = 0; - static minimizer * window = 0; - static minimizer abs_min = {0, ULONG_MAX, -1, 0}; - static int abs_min_index = 0; - static int prev_seq_num = -1; - static int end; - - mer_t mer, rev, mer_val, rev_val; - - // Re-initialize everything if the sequence we are using changes. - if (seq_num != prev_seq_num) - { - if (!window) window = malloc(WINDOW_SIZE*sizeof(minimizer)); - i = 0; - index = 0; - abs_min.mer = 0; - abs_min.value = ULONG_MAX; - abs_min.dir = 0; - abs_min.loc = -1; - abs_min_index = 0; - end = all_seqs[seq_num]->num_bases - k + 1; - prev_seq_num = seq_num; - } - - // If we haven't populated the whole window yet, do so now. - if (i == 0) - { - index = i; - for (i = 0; i < WINDOW_SIZE; i++) - { - // Get the current mer, its reverse complement, and its minimizer values. - mer = get_kmer(all_seqs[seq_num], i); - rev = rev_comp_mer(mer); - mer_val = MER_VALUE(mer); - rev_val = MER_VALUE(rev); - - // Add them to the window. - - if (mer_val < rev_val) - { - window[index].mer = mer; - window[index].value = mer_val; - window[index].dir = 1; - window[index].loc = i; - } - else - { - window[index].mer = rev; - window[index].value = rev_val; - window[index].dir = -1; - window[index].loc = i; - } - if (window[index].value < abs_min.value) - { - abs_min = window[index]; - abs_min_index = index; - } - } - - // Now, return the minimizer we found (it will be the first minimizer for the list) - *next_minimizer = abs_min; - - return 1; - } - - // Otherwise, we can just continue on from the current position of i. - for ( ; i < end; i++) - { - index = i%WINDOW_SIZE; - - // First, add the new k-mer to the window, evicting the k-mer that is - // no longer in the window - mer = get_kmer(all_seqs[seq_num], i); - rev = rev_comp_mer(mer); - mer_val = MER_VALUE(mer); - rev_val = MER_VALUE(rev); - - if (mer_val < rev_val) - { - window[index].mer = mer; - window[index].value = mer_val; - window[index].dir = 1; - window[index].loc = i; - } - else - { - window[index].mer = rev; - window[index].value = rev_val; - window[index].dir = -1; - window[index].loc = i; - } - - // Now, check if the new k-mer is better than the current absolute minimizer. - if (window[index].value < abs_min.value) - { - // If so, set it as the new absolute minimizer and add this sequence to the mer table - abs_min = window[index]; - abs_min_index = index; - *next_minimizer = abs_min; - i++; // Increment i so we won't process this k-mer again. - return 1; - } - // Now, check if the current absolute minimizer is out of the window - // We just replaced index, so if abs_min_index == index, we just evicted - // the current minimizer. - else if (abs_min_index == index) - { - // Find the new minimizer - // If runtime starts to suffer I can implement something better than a linear search, - // but because WINDOW_SIZE is a small constant (around 20) it should be OK. - int j; - abs_min.value = ULONG_MAX; - abs_min.dir = 0; - for (j = 0; j < WINDOW_SIZE; j++) - { - if (window[j].value < abs_min.value) - { - abs_min = window[j]; - abs_min_index = j; - } - } - // Add the new current minimizer to the mer table. - *next_minimizer = abs_min; - i++; // Increment i so we won't process this k-mer again. - return 1; - } - } - - // We made it to the end of the sequence without finding a new minimizer, so we are done. - return 0; -} - -mer_t get_kmer(struct cseq *c, int curr) -{ - // Which mer does this kmer start in? - int which_mer = curr/8; - int which_base = curr%8; - unsigned short curr_mer = 0; - mer_t mer = 0; - - int bases_left = k; - - // Start from the first base and push k bases. - while (bases_left > 0) - { - // We can fit the rest of this short inside mer, so do it. - if ((bases_left >= 8) || (bases_left > (8-which_base))) - { - // Mask out everything before which_base - curr_mer = c->data[which_mer] & short_masks[which_base]; - - // Push mer so that there is enough space for curr_mer - mer = mer << ( (8-which_base)*2 ); - - // Add curr_mer onto mer. - mer = mer | (mer_t) curr_mer; - - bases_left -= (8 - which_base); - which_mer++; - which_base = 0; - } - // Now we're down to the last few bases and we need to handle overflow. - else - { - // The bases in this short will be enough - - // Make enough room for the rest of the bases - mer = mer << bases_left*2; - - // Shift the curr mer to the end and mask it out. - curr_mer = c->data[which_mer]; - - int mercount = c->num_bases/8; - if (c->num_bases%8 > 0) { mercount++; } - - if ((mercount-1) == which_mer) { curr_mer = curr_mer << ((8-(c->num_bases - (8*which_mer)))*2); } - curr_mer = (curr_mer >> ((8 - (bases_left+which_base))*2 )) & short_masks[8-bases_left]; - - // Now add it on to mer. - mer = mer | curr_mer; - - bases_left = 0; - } - } - return mer; -} - -void print_8mer(unsigned short mer) -{ - char str[9]; - int i; - for (i=0; i<8; i++) - { - str[i] = num_to_base((mer >> ((8-1)-i)*2) & 3); - } - str[8] = '\0'; - - printf("%s\n", str); -} - -void translate_kmer(mer_t mer, char * str, int length) -{ - //print_mer(stderr, mer); - int i; - - //int int_len = sizeof(mer_t)*8; - - // 2 bits represent each base. So, to get the first base, we the - // two most significant bits. To get the second base, the two second - // most significant bits, etc. In other, we need to bit shift all but - // 2 (aka bitshift 14 to the right) when i = 0, bitshift 12 when i=1, - // etc. - // We mask by 3 to make sure we only have the two numbers and nothing - // but 0's in the rest. - for (i=0; i> ((length-1)-i)*2) & 3); - } - str[length] = '\0'; -} - - -void add_sequence_to_mer(mer_t mer, int seq_num, char dir, short loc) -{ - // Store the sequence and its reverse complement as the same key. - - if (repeat_mer_table && itable_lookup(repeat_mer_table, mer)) return; - - mer_list_element * mle, * new_mle; - - // This will create it if it doesn't exist. - mer_hash_element * mhe = get_mer_hash_element(mer); - - // Check that the list exists. - if (!mhe->mle) - { - // If not, create it, increment the count and we're done. - new_mle = create_mer_list_element(seq_num, dir, loc); - mhe->mle = new_mle; - mhe->count++; - return; - } - - // If a list does exist, add this sequence it. - - mle = mhe->mle; - - // Because we add one sequence at a time, this will be at the front - // if it has ever had this mer before, so we don't add it twice. - if (mle->seq_num == seq_num) return; - - new_mle = create_mer_list_element(seq_num, dir, loc); - new_mle->next = mle; - mhe->mle = new_mle; - mhe->count++; - -} - -mer_list_element * create_mer_list_element(int seq_num, char dir, short loc) -{ - mer_list_element * new_mle = malloc(sizeof(*new_mle)); - new_mle->seq_num = seq_num; - new_mle->dir = dir; - new_mle->loc = loc; - new_mle->next = 0; - - return new_mle; -} - -mer_hash_element * get_mer_hash_element(mer_t mer) -{ - int bucket = mer % MER_TABLE_BUCKETS; - mer_hash_element * mhe; - - // If there are no hash elements in this bucket - // Add a new one. - if (!mer_table[bucket]) - { - mhe = malloc(sizeof(*mhe)); - mhe->mer = mer; - mhe->count = 0; - mhe->mle = 0; - mhe->next = 0; - mer_table[bucket] = mhe; - return mhe; - } - - mhe = find_mer(mer); - - // If this bucket is not empty, but does not contain this mer, add it. - if (!mhe) { - mer_hash_element * new_mhe = malloc(sizeof(*new_mhe)); - new_mhe->mer = mer; - new_mhe->count = 0; - new_mhe->mle = 0; - new_mhe->next = mer_table[bucket]; - mer_table[bucket] = new_mhe; - return new_mhe; - } else { - return mhe; - } -} - -mer_hash_element * find_mer(mer_t mer) -{ - int bucket = mer % MER_TABLE_BUCKETS; - - mer_hash_element * mhe = mer_table[bucket]; - - while (mhe) - { - if (mhe->mer == mer) { return mhe; } - mhe = mhe->next; - } - - return 0; -} - -void free_mer_table() -{ - int curr_mhe = 0; - - for (; curr_mhe < MER_TABLE_BUCKETS; curr_mhe++) - { - free_mer_hash_element(mer_table[curr_mhe]); - } -} - -void free_mer_hash_element(mer_hash_element * mhe) -{ - if (!mhe) return; - - free_mer_list_element(mhe->mle); - mer_hash_element * n = mhe->next; - free(mhe); - free_mer_hash_element(n); -} - -void free_mer_list_element(mer_list_element * mle) -{ - if (!mle) return; - - mer_list_element * n = mle->next; - free(mle); - free_mer_list_element(n); -} - -void set_k(int new_k) -{ - k = new_k; - set_k_mask(); -} - -void set_window_size(int new_size) -{ - WINDOW_SIZE = new_size; -} - -void set_k_mask() -{ - int i; - - k_mask = 0; - for (i=0; i num_seqs) { end_col = num_seqs; } - - curr_row = curr_rect_y*rectangle_size; - end_row = curr_row+rectangle_size; - if (end_row > num_seqs) { end_row = num_seqs; } - - load_mer_table_subset(curr_col, end_col, curr_row, end_row, (curr_rect_x == curr_rect_y)); -} - -void load_mer_table_subset(int curr_col, int end_col, int curr_row, int end_row, int is_same_rect) -{ - - mer_t repeat_mask_rev; - - if (k_mask == 0) { set_k_mask(); } - repeat_mask_rev = rev_comp_mer(repeat_mask); - if (MER_VALUE(repeat_mask_rev) < MER_VALUE(repeat_mask)) repeat_mask = repeat_mask_rev; - - start_x = curr_col; - end_x = end_col; - start_y = curr_row; - end_y = end_row; - same_rect = is_same_rect; - - // This is an imaginary matrix, but we're loading all the sequences - // on a given rectangle, defined by curr_rect_x, curr_rect_y and rectangle_size. - // Load the mers in each of these sequences, then we'll output any matches. - - for ( ; curr_col < end_col; curr_col++ ) - { - find_minimizers(curr_col); - } - - // If we are on the diagonal, don't need to add both, because they are the same. - if (is_same_rect) { return; } - - for ( ; curr_row < end_row; curr_row++ ) - { - find_minimizers(curr_row); - } -} - -cand_list_element * create_new_cle(int seq1, int seq2, int dir, int loc1, int loc2) -{ - cand_list_element * new_cle = malloc(sizeof(*new_cle)); - if (seq1 < seq2) - { - new_cle->cand1 = seq1; - new_cle->cand2 = seq2; - new_cle->loc1 = loc1; - new_cle->loc2 = loc2; - } - else - { - new_cle->cand2 = seq1; - new_cle->cand1 = seq2; - new_cle->loc2 = loc1; - new_cle->loc1 = loc2; - } - new_cle->dir = dir; - new_cle->next = 0; - new_cle->count = 1; - - return new_cle; -} - -int should_compare_cands(int c1, int c2) -{ - // If the two rectangles are equal, then we are intended to compare - // two from the same rectangle, so return 1. - if (same_rect) { return 1; } - - // Otherwise, return false if they are in the same rectangle, - // true otherwise. - if (in_range(c1, start_x, end_x) && in_range(c2, start_x, end_x)) { return 0; } - if (in_range(c1, start_y, end_y) && in_range(c2, start_y, end_y)) { return 0; } - - return 1; -} - -void add_candidate(int seq, int cand, char dir, mer_t min, short loc1, short loc2) -{ - // Unless this is a diagonal, ones from the same block have already been compared. - // If I don't do this step, then ones from the same block on the same axis - // could get compared, because we don't really distinguish them. - - if (!should_compare_cands(seq, cand)) return; - - int index = (seq*cand*499); - if (index < 0) { index *= -1; } - index = index % CAND_TABLE_BUCKETS; - - cand_list_element * cle = candidates[index]; - // There are no candidate pairs in this bucket - if (!cle) - { - candidates[index] = create_new_cle(seq, cand, dir, loc1, loc2); - - total_cand++; - return; - } - - // This bucket has candidate pairs, if ours is one of them just leave - // because we've already printed it out. - while (cle) - { - if ((cle->cand1 == seq) && (cle->cand2 == cand) && (cle->dir == dir)) - { - cle->count++; - return; - } - else if ((cle->cand2 == seq) && (cle->cand1 == cand) && (cle->dir == dir)) - { - cle->count++; - return; - } - cle = cle->next; - } - - // If we made it this far, we did not find this candidate pair, so add it. - cand_list_element * new_cle = create_new_cle(seq, cand, dir, loc1, loc2); - new_cle->next = candidates[index]; - candidates[index] = new_cle; - total_cand++; - return; - -} - -void free_cand_table() -{ - int i; - - for (i = 0; i < CAND_TABLE_BUCKETS; i++) - { - free_cand_list_element(candidates[i]); - candidates[i] = 0; - } -} - -void free_cand_list_element(cand_list_element * cle) -{ - if (!cle) return; - - cand_list_element * n = cle->next; - free(cle); - free_cand_list_element(n); -} - - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/sand/src/sequence_filter.h cctools-7.1.2/sand/src/sequence_filter.h --- cctools-7.0.22/sand/src/sequence_filter.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/sequence_filter.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -/* -Copyright (C) 2009- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include - -#include "int_sizes.h" -#include "align.h" - -#include "compressed_sequence.h" - -#define TIME time(0) - start_time -#define KB_PER_SEQUENCE 9 // Defined by running some tests, not very exact. -#define MINIMIZER_MAX 0xffffffffffffffffLL - -typedef UINT64_T mer_t; - -struct candidate_s -{ - unsigned int cand1; - unsigned int cand2; - char dir; - short loc1; - short loc2; -}; -typedef struct candidate_s candidate_t; - -struct minimizer_s -{ - mer_t mer; - mer_t value; - short loc; - char dir; -}; -typedef struct minimizer_s minimizer; - -void load_mer_table(); -void load_mer_table_subset(int start_x, int end_x, int start_y, int end_y, int is_same_rect); -void generate_candidates(); -candidate_t * retrieve_candidates(int * total_cand); -int output_candidate_list(FILE * file, candidate_t * list, int total_output ); -void free_mer_table(); -void free_cand_table(); -void init_cand_table( int buckets ); -void init_mer_table(int buckets ); -int init_repeat_mer_table(FILE * repeats, unsigned long buckets, int max_mer_repeat); -int load_seqs(FILE * input ); -int load_seqs_two_files(FILE * f1, int * end1, FILE * f2, int * end2); -void rearrange_seqs_for_dist_framework(); -void test_mers(); -void print_mer_table(FILE * file); -void set_k(int new_k); -void set_window_size(int new_size); -int get_next_minimizer(int seq_num, minimizer * next_minimizer); -void print_kmer(FILE * file, mer_t mer); -void translate_kmer(mer_t mer, char * str, int length); - -extern int rectangle_size; -extern int curr_rect_x; -extern int curr_rect_y; -extern unsigned long total_cand; diff -Nru cctools-7.0.22/sand/src/sequence.h cctools-7.1.2/sand/src/sequence.h --- cctools-7.0.22/sand/src/sequence.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/src/sequence.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/* -Copyright (C) 2010- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#ifndef SEQUENCE_H -#define SEQUENCE_H - -#include - -struct seq -{ - char *name; - char *data; - char *metadata; - int num_bases; -}; - -struct seq * seq_create( const char *name, const char *data, const char *metadata ); -struct seq * seq_read( FILE *file ); -void seq_print( FILE * file, struct seq *s ); -int seq_sprint( char *buf, struct seq *s ); -void seq_reverse_complement( struct seq *s ); -void seq_free( struct seq *s ); - -int sequence_count( FILE *file ); - -#define SEQUENCE_FILE_LINE_MAX 1024 - -#endif diff -Nru cctools-7.0.22/sand/test/filter_verification/gen_random_reads.pl cctools-7.1.2/sand/test/filter_verification/gen_random_reads.pl --- cctools-7.0.22/sand/test/filter_verification/gen_random_reads.pl 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/test/filter_verification/gen_random_reads.pl 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -#!/usr/bin/perl -# Assume we already have two 10,000-base DNA sequences who are reverse -# complement to each other, generate random 100-base reads from these two -# sequences. The two sequences are expected to be in file "rando.seq" and -# "random_revcom.seq", as generated by the "gen_randome_sequence.pl" script. -# The created reads will be saved in file "random.fa" in the FASTA format. -# "random_revcom.seq" respectively. -use strict; -use warnings; - -my $sequence_length = 100000; -my $read_length = 100; -my $seq_file = "random.seq"; -my $seq_revcom_file = "random_revcom.seq"; -my $fasta_file = "random.fa"; - -my $random_number; -my $char; -my $i; -my $seq; -my $seq_revcom; -my $kmer; -my $num_of_reads; - -# Check sequence_length argument -my $numArgs; -$numArgs = $#ARGV+1; -if ($numArgs == 1) { - $sequence_length = $ARGV[0]; -} - -open SEQFILE, "$seq_file" or die $!; -$seq = ; -print length($seq) . " bases are read from $seq_file.\n"; -close(SEQFILE); - -open SEQFILE, "$seq_revcom_file" or die $!; -$seq_revcom = ; -print length($seq_revcom) . " bases are read from $seq_revcom_file.\n"; -close(SEQFILE); - - -open FASTAFILE, ">$fasta_file" or die $!; -$num_of_reads = ($sequence_length / $read_length) * 10; -for($i = 0; $i < $num_of_reads; $i++) { - $random_number = int(rand($sequence_length - $read_length + 1)); - $kmer = substr($seq, $random_number, $read_length); - print FASTAFILE ">$random_number\n$kmer\n"; -} - -for($i = 0; $i < $num_of_reads; $i++) { - $random_number = int(rand($sequence_length - $read_length + 1)); - $kmer = substr($seq_revcom, $random_number, $read_length); - print FASTAFILE ">rc$random_number\n$kmer\n"; -} -close(FASTAFILE); - -$num_of_reads = $num_of_reads * 2; -print "$num_of_reads random reads are generated successfully!\n"; -exit(0); diff -Nru cctools-7.0.22/sand/test/filter_verification/gen_random_sequence.pl cctools-7.1.2/sand/test/filter_verification/gen_random_sequence.pl --- cctools-7.0.22/sand/test/filter_verification/gen_random_sequence.pl 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/test/filter_verification/gen_random_sequence.pl 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ -#!/usr/bin/perl -# Generating two 10,000-base random DNA sequences who are reverse complement to -# each other. The two sequences are saved in file "random.seq" and -# "random_revcom.seq" respectively. -use strict; -use warnings; - -my $sequence_length = 100000; -my $filename = "random.seq"; -my $filename_revcom = "random_revcom.seq"; - -my $random_number; -my $char; -my $i; - -# Check sequence_length argument -my $numArgs; -$numArgs = $#ARGV+1; -if ($numArgs == 1) { - $sequence_length = $ARGV[0]; -} - -# Generate a random sequence and write it to file -open MYFILE, ">$filename" or die $!; -for($i = 0; $i < $sequence_length; $i++) { - $char = substr("ATGC",int(rand(4)),1); - print MYFILE $char; -} -close(MYFILE); -print "Random sequence of length $sequence_length is successfully generated in file $filename.\n"; - -# Read in the original sequence -open SEQFILE, "$filename" or die $!; -my $seq = ; -close(SEQFILE); - -if(length($seq) != $sequence_length) { - print length($seq) . " bases are read from the original sequence.\n"; - print "Sequence length is not as expected ($sequence_length).\n"; - exit(1); -} - -# Get the reverse complement of the original sequence -my $seq_revcom = reverse $seq; -$seq_revcom =~ tr/ACGT/TGCA/; - -# Write the reverse complement to file -open MYFILE, ">$filename_revcom" or die $!; -print MYFILE $seq_revcom; -close(MYFILE); -print "The reverse complement of the random sequence is successfully generated in file $filename_revcom.\n"; - -exit(0); diff -Nru cctools-7.0.22/sand/test/filter_verification/verify_candidates.pl cctools-7.1.2/sand/test/filter_verification/verify_candidates.pl --- cctools-7.0.22/sand/test/filter_verification/verify_candidates.pl 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/test/filter_verification/verify_candidates.pl 1970-01-01 00:00:00.000000000 +0000 @@ -1,99 +0,0 @@ -#!/usr/bin/perl -# Verify the correctness of the generated "random.cand" according to the -# original sequence file "random.seq" and "random_revcom.seq". -use strict; -use warnings; - -my $seq_file = "random.seq"; -my $seq_revcom_file = "random_revcom.seq"; -my $cand_file = "random.cand"; - -my $read_size = 100; -my $kmer_size = 22; -my $count = 0; -my $seq; -my $seq_revcom; -my $line; -my $kmer1; -my $kmer2; -my $tmp_read; - -# Read in the two sequences -open SEQFILE, "$seq_file" or die $!; -$seq = ; -print length($seq) . " bases are read from $seq_file.\n"; -close(SEQFILE); - -open SEQFILE, "$seq_revcom_file" or die $!; -$seq_revcom = ; -print length($seq) . " bases are read from $seq_revcom_file.\n"; -close(SEQFILE); - -# Verify the correctness of .cand file -open CANDFILE, "$cand_file" or die $!; -while($line = ) { - chomp($line); - # The format of each line in the .cand file is: - # read1_name read2_name direction start_position_in_read1 start_position_in_read2 - if($line =~ /(\S+)\s+(\S+)\s+(1|-1)\s+(\d+)\s+(\d+)/) { - $count++; - - # "read_name" denotes the position of this read in its original - # sequence. Since we have two original sequence here, in order to - # locate the reads from the correct original sequence, we added the - # prefix "rc" for reads from one of the sequence. - if(substr($1, 0, 2) ne "rc") { - $kmer1 = substr $seq, $1+$4, $kmer_size; - } else { - $kmer1 = substr $seq_revcom, substr($1, 2)+$4, $kmer_size; - } - - if($3 eq "1") { - # When direction equals 1 - if(substr($2, 0, 2) ne "rc") { - $kmer2 = substr $seq, $2+$5, $kmer_size; - } else { - $kmer2 = substr $seq_revcom, substr($2, 2)+$5, $kmer_size; - } - - if($kmer1 ne $kmer2) { - print "Incorrect match found at line $count\n"; - goto failure; - } - } elsif ($3 eq "-1") { - # When direction equals -1 - if(substr($2, 0, 2) ne "rc") { - $tmp_read = substr $seq, $2, 100; - $kmer2 = substr $tmp_read, -$5-$kmer_size, $kmer_size; - } else { - $tmp_read = substr $seq_revcom, substr($2,2), 100; - $kmer2 = substr $tmp_read, -$5-$kmer_size, $kmer_size; - } - - my $revcom = reverse $kmer2; - $revcom =~ tr/ACGT/TGCA/; - if($kmer1 ne $revcom) { - print "Incorrect match found at line $count\n"; - goto failure; - } - } else { - print "Invalid direction value at line $count\n"; - goto failure; - } - } elsif ($line eq "EOF") { - goto success; - } else { - $count++; - print "Invalid candidate format at line $count\n"; - goto failure; - } -} - -success: - close(CANDFILE); - print "$count candidate pairs have been verified as correct candidates.\n"; - exit(0); - -failure: - close(CANDFILE); - exit(1); diff -Nru cctools-7.0.22/sand/test/.gitignore cctools-7.1.2/sand/test/.gitignore --- cctools-7.0.22/sand/test/.gitignore 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/test/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -random.fa -random.seq -random_revcom.seq -sand.done -sand.pid diff -Nru cctools-7.0.22/sand/test/README cctools-7.1.2/sand/test/README --- cctools-7.0.22/sand/test/README 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/test/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ --------------------------------------------------------------------------------- -SAND: simple overlapping (candidate selection / alignment) example --------------------------------------------------------------------------------- - -The example included here produces OVL records describing the results -of the overlapping step for a very small assembly. The example is -executed as a script (test_example.sh) that will generate a list of -candidate pairs and then run a sample alignment on each pair in the -list. The resulting OVL records are compared against a correct key as -verification. - -The following will explain how to run the example, and describe the -common execution steps included in the example script. - -Setup and Execution -------------------- - -The example script is meant to be run in-place. Once the -CCTools have been made, it can be executed simply as: -./test_example.sh - ---The example script converts a small set of sequences into the - compressed fasta-like format used by the SAND modules. - ---The example script starts a worker running on localhost, - looking for a master on localhost port 9091. If that port is in use, - change the example to use a free port. - ---The example script next starts the filter_master process, which controls - the candidate selection workload execution. The master takes several - options (here 10 subsets to filter, port 9091, and binary data mode) - and two mandatory arguments: the sequence library, and an output - target candidate file. For more on options, run: filter_master -h - ---The worker from the candidate selection is forcibly killed, so the - example script starts another worker running on localhost, - looking for a master on localhost port 9091. If that port is in use, - again, change the example to use a free port. - ---The example script next starts the master process, which controls - the alignment workload execution. The master takes several options - (here 1 candidate per Work Queue task, and port 9091) and four - mandatory arguments: the serial alignment executable to run, the - candidate list, the sequence library, and an output target. For more - on options, run: sand_align -h - ---Once the master process has completed, the output is compared - against a correct version of the OVL results, and the example - script waits for the worker to time-out. - ---The created files are then deleted (with the option to keep the results) - --------------------------------------------------------------------------------- diff -Nru cctools-7.0.22/sand/test/sand_sanity/test.banded.right cctools-7.1.2/sand/test/sand_sanity/test.banded.right --- cctools-7.0.22/sand/test/sand_sanity/test.banded.right 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/test/sand_sanity/test.banded.right 1970-01-01 00:00:00.000000000 +0000 @@ -1,120 +0,0 @@ -{OVL -afr:1101555423223b -bfr:1101555423223 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:882 -mxo:1766 -pct:0 -} -{OVL -afr:1101555423227b -bfr:1101555423227 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:839 -mxo:1680 -pct:0 -} -{OVL -afr:1101555423239b -bfr:1101555423239 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:925 -mxo:1852 -pct:0 -} -{OVL -afr:1101555423272b -bfr:1101555423272 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:683 -mxo:1368 -pct:0 -} -{OVL -afr:1101555423799b -bfr:1101555423799 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:747 -mxo:1496 -pct:0 -} -{OVL -afr:1101555423803b -bfr:1101555423803 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:983 -mxo:1968 -pct:0 -} -{OVL -afr:1101555423815b -bfr:1101555423815 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:707 -mxo:1416 -pct:0 -} -{OVL -afr:1101671565216b -bfr:1101671565216 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:909 -mxo:1820 -pct:0 -} -{OVL -afr:1101671565239b -bfr:1101671565239 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:875 -mxo:1752 -pct:0 -} -{OVL -afr:1101671565257b -bfr:1101671565257 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:918 -mxo:1838 -pct:0 -} diff -Nru cctools-7.0.22/sand/test/sand_sanity/test.cand.right cctools-7.1.2/sand/test/sand_sanity/test.cand.right --- cctools-7.0.22/sand/test/sand_sanity/test.cand.right 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/test/sand_sanity/test.cand.right 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -1101555423223b 1101555423223 1 194 194 -1101555423227b 1101555423227 1 174 174 -1101555423239b 1101555423239 1 18 18 -1101555423272b 1101555423272 1 467 467 -1101555423799b 1101555423799 1 601 601 -1101555423803b 1101555423803 1 833 833 -1101555423815b 1101555423815 1 497 497 -1101671565216b 1101671565216 1 155 155 -1101671565239b 1101671565239 1 486 486 -1101671565257b 1101671565257 1 373 373 -EOF diff -Nru cctools-7.0.22/sand/test/sand_sanity/test.fa cctools-7.1.2/sand/test/sand_sanity/test.fa --- cctools-7.0.22/sand/test/sand_sanity/test.fa 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/test/sand_sanity/test.fa 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ ->1101555423223 -GCTCAGCATCTACTACAAATCGGTCAACGATCTCGATCTATCCGTCGGGTTAGCGTTCGAGAAGAAGATCGATGGCACGGAGTCAGGCATGGTGATGCGCTGCATACTGGCCGATCAGTTCCGGCGCACCAGGAAGGGCGATCGCTTTTTCTACCAAAACGGCAACCATTTCAACGCACGACAGTTGAGTGAGATTCGGAAGGCGAATATGGCGCGCATACTGTGCGATACGACCACCGATGTTACACGTATACAGTCGAGCGCATTTTTGCTACCTTCCACCACCAACCCGCTAGTGACGTGCAGTTCCTTACCGACTCCGAATCTTCGCGAGTTCTAGTGTTGTTAATAATTGGAGAATTGAAGAATATCTCTTATTGGCGACGGTGTAGCTTTGTAGCGGTAGAACATATATTTGCGGATGCAAAGATACGATTCGAACGCTAGCTAGAAGACGTAATCTGCTGTAGGAAATTCTACCGAACCAGCTACAAAAATATAACCATCTTCTCATCCAACTGTCAATTGTTTGTTTTATATCCCTCTCTCTCTCTTGTTTTATATCCATAATACTTGTTTACTCAGAATGTGCTTTGCATTATATTACAAACATTTGTGAACATCTTACCAATACAAATGCCTAATACAAACATGTATGCCGTTGAACTCTTTTTGTTAAAGTCTAACCCCTCGCCATCATTCTAATGAGAAAATCCTATCGTATGATAATTGTAAAAATATGGTGTTTCAATCAGCGAAAATTTCTTCGCCATATCAGATGTATTTGATGAGAACTGTTCAGAAGATATTCTTCTATCCACCCTTTAAATCTGATATATTCTTTAGCTAAACTAAATTGTACCATATATTTTACTTTGCACTC ->1101555423227 -TTCTACTTTTTATTAAGTCCCTATATGATTCTGCAACTGAAAATCGACAAAAAATTGTTTTACCGTGCATAATGAATCTTCAACAAAAAATGAACGAATTAACAAGTAACTAAACTAGAAGATCGCCATTGTGAGGGACCTTACGTCATTTATAAAGCGTTAACTATTTTTTCCGTAAATAAAACATAGCAAATAGAACTGAATTCTTGGCTATTACGTGCATTTTTATACGTTTATTGATTTTGTTGGAAAATCCATGAGCTATATAAACGATAGAGTTGATAGTTTTTTTAGACAAGTAAACGCTAAAATCAATTCAGGTATAAGTATCAATTTAACTTAAATCGTCCATGCATTTCGTAGATAATGAGGAATAAATGTAATAATAAATAAAATGAAATATTTCTTTCTTGTTATCCTGAAATATGAAGTAACATACTGAATTAATCAATAAATTCGCCAAATAACACTCGAATTATTTTTGTTTTCTGTAATACCTGTGTTCAATCTATGTTTGATGTAAAATAAGTTCTCGCAAAGTTCAAAATCTTTTTATTCAGTATATTGAATAAAAAAATATAAAAAAAATTAAAATATGAAAAAACACGTAAACAGCGTGTTTTTCAACAATTCGAATCCAGGAGACCTCATGTCAAGTGACGAATTGTCTAAATGCTCCATTTACCATCAATTGATCTCTTTAATCCACCTTTCTGTACACAGTTAAATTTATGCAACATTTTTATACAACTTTCCAGGCTAATGTTAACCATCTTTACTAGCATATACTACATTAAAAAATCAGTGTAGACAAAAAGAGCGATTACATAAATTTTCTTA ->1101555423239 -AGCACGATGATGCTGATCGGTGGGTTGGGCGGCATGCTCGGCTATCTGTTCGGGGCGATCGATTGGATCGCTCTCCCGATCGGCCAGTACTTTGAGAGCAACGAGGCGGCCGTCTTCACCGCCAACTGGATCGTGCTGCTGATCGGGCTGGTCAGCACGCTGACCAGCTTCGCCGAGATACCGCTGCCCGTGCAGGAGCAGGACGCGATGCTGCGCCCCGTCACACACTCGATGCTGCAGAACGAGGTGAAGCGGATGCGCGGGGACGAGTACGCCATCCAGACGCAACTGTCCGAGAGCATCGGCTTCCGGCAGTTTGTGCGCAATACCGTCCAGATGCCACGCTCGATGAAGATCCTCTGCCTGACGCAGTTCCTGTCCCACATGGGCTACCTGCCGTACTGTCTGTACTTTACCGACTTTGTCGGCGCGGAAGTGTTCGGTGGGGATGTACAGGTGAGTCTCATCACTTTCACAAATTGCCATCACAAATTTTTATATAAAAAATGGTGTTTGGAATATGCGCTTTATTTTAGGCCCCGGAACACTCGCCCGCCTTTGTGCTGTACGAGGAAGGGCTACGATTCGCCTGCTGGGGCATGGCACTGTTTGCCGGCTGCGCCTCGCTCTACTCGCTGGTGATTGAGCGGATGATTGATCGGGTCGGGGCACGGCCCGTCTACGTCGGTGGCTTGATGGCGCACTGCGTCGGCATGGTGGCGATGGGGCTGCTGCGCCACCGGGCCATTGTGATGCTGTGCTGCTCGCTCACCGGCATCATGTACACCACCATCTACTCCATTCCGTTTCTGCTGATCTCACACTATCACTCCAAGAACTCGGTAAGAGGATAATCCACATTGTACGCTTGCGGGCGCTCTAAATTGCATATTATTTCCCTTCCCTTCCAAACCAGTTCCACATGA ->1101555423272 -CCCCTTAGCTGACCGCCTGCACAGGCATGGGGGATATCGTTAAGCACGGGAAAAAATAGGAGCGATTTTTTTTTCGCTCGAAGGAAAGTTTTCACAATACATTTGACTGCAATGGTCAGCCGGCGGCCACAGCACCGGCGAGGGTTTAAACTTTTTCATTCTTCCTTGCTATGGAAAAGGGCTCCACAGTTTCCCTGGCCAACAACCACAATGGGTTGAAATGTTCGATAGTTTTGAGTGAGGCGGAAAAAGTTCTTGCATTGATTAGGGGCCATTTTTTCGTTTTGCAAAAAGCGATCGAAACGAGCTGAGCTTAAATGAAAATCGATCGTGTAGCAAATGGTTTTGTGAATAAATATGAAAGCTTGCACTCAATGTAAACCACTCGTATACCAAGATGTACTAAGAAAAGTGTAAATATTACTCTTATATCACAACCATTCATTCCACGCTAATTTAACAGCAGACTATTAGCTTAGGGAAATTAACTTCCAATAACCATGACGAAAAGCAATTACGTGCTTTACATGAAAAAAAATTAAAAAATTATACGCTAGTTTCTACACCGCAAAGCTACCATACCCGGTTGCTTGTCATTGAAAAAAAAAGCCAGCGAAACAAAACCGTCCTTTTAATTACACTGATCGGAAGCGGTGATAATTGAAAATGGAATCGCTGCGGAAA ->1101555423799 -CTAGCTAACGCGATACATACACAAAAGAACCATGTGAACACGCAAATAAATCGAAACAAAGTGAAGTGAAAACATGAAAATGGAAGCATTACTACTACTACTTCTACTACCTACCTACCTATCGCTACTATAACACTTCGAAAAGGCTTCAGTTTCGTTTCGTAAAAGAAAAGAAACTCGAACGCGTTTCGGTGTGGTGTCTAACATGGGATGAAATGATAATGAAAGGTGTTTGTTGATAGGCAGCTTTTGTTGCGAACTGTAGGGGAGAACGATCGACGATGGAGGACAACAACGAGAACAGCCGTTTATATGCACACTTTCTCCTCACACACAAGCTTATTTAGCGATGAGCAGAAGGCAACATTCGCTTGCAATGGTTGTAATGGAAGGGAAACGAAGCTGACGCTTTTGTTTAGTAAGTTTTCTCTTTTCCGCGCCTAATTTCGATCAGCGCCGAGCTGGATTGATTGCTGTTTGCTTCCGCTTGCGGCTTATGTGCGTTTGCCAAGCCTATTAAAGCCTATTATCATTCTGCTCGTTGGAAGCGGGAGATAGAAAAAAGGGTAACGCCAATCCCTGTTGTCACATTATAAGTAATCGCGCCGTGTTTGATGTGCGTGTATTAATTATTTATTTTTGCATAACCATATAATTTATTGGTTTTGTTTTGCTCTTTTATTTTTAATATTTTGTTCTGATTGTTTGTTTTGTTTTCTGATTTTAGCTTAAGTGTGAAGAAAGCTAC ->1101555423803 -TGCGATCCTTCGAGTCCCTTTATTGTTGTTTAGTCCGTTCCGTATTGTATTGTGCCTGTATCATCTGGTCTCCTGTCCAAGTATCTATGGTCCAAAGGATTGAGAGGATCCAGAGACGAAATACAGGGATTGTATTTCGTAGTTCGCTGAGTCATCACTCTATTCCCCTTCCTTCGTATGATGATAGATGCGCTCTATTAGACCTAGCTAAGTTGAAACAGCGCCTCTCGGTAGCACAGGCTTCTTTCGTGGCTGGCCTGTTGTTTAATATGATCGATAATCCTTCCTTTCTGTTCCGTGTTTATTTTTTGAGCTCCTTGTCCAGTTATCGATTTCGTCTCCATACACTTATATGCAGTACAGGTTTTGCATTTTAAAGAACTACTTCGTCTTTTAATAGTGCCTTATATCTGTTCGATTTCAACCTATCCCTTTCCGTCTTTCCGATCCCGTCTTCGCTCCTTTTTCATATCATAATCTCCTTCCTCCTTTTTCCGTCTTTTATTTTCTCCCGAATTATTAGTTTAGTAAGTACTACTTACTAAACTTAGTTAGTACTACTTAGTTTAGTTAGTAAGTACTACTGTAACCCAACGTGGTTGAGAAATATGCACTAATAAAATAAAATAAAATATAAAATATTAATACATAAAAAAATAAAATAAAATATGTAACATAAAACGGTATAAAATTAAATAAAAATAACAATATTGAGAGAAAACAGAGAACGAAGTGATGTATGCATGATGTAGGCATCTCTCTTCTCTTATTCTTTGGCTCAACAACCGTTGTCGGCCAAAGCCTGCCTGCAACACCGTGTTGGCTTGGCTTTTAGTGACTTACTGATTCTCATAGTTCCCATAGAAAGGATAGTCAGTCCTACGTATGGCGGCACGGTCCATGACGGACATGTTATTAAGTCGTACGAGTTGACGACTGTACACGAGACCATCTACATCATAAATTAACTAAAATTATCACTAC ->1101555423815 -TCGCACGCGCGCGAGTGAAATATTTCATTTCTTTCTTCAATTTTGCATTTGGCAAGGACAACGTTATTAAAAATACCAAAAAAATTGCCATTCATATACAAAAATAACAGTTTATTGCAATCTTTTCATGCTTTTGATACTTTCCGCTACATTAAATCGTTAAAATTGTTAAGTGAATGCCGTTTATTCATCTATTTAACGCTTACAATGTATTGAGGTCCTTTTGAGTTAGTGTCAAAGTGTTTTCCTGTATCCTTGTGCTCACTTCGTAATGTTACTAATTGTTACCCTTCCTCCTCCTCCTCTATTTCTCACTAGCATTAAAATCGATTCTTTATGGCTAACGCTTACGCTTATGCTCGCTCAGTAACAGCAACAACCCCTCGTTTCACTATCACAACCCGTGTGCCTTGCACACGTAAATGCACTTTTTAATTGTGTGTCCTCCCCTCTCGGCTCTACAGATCCAGATACTGGATCTGGGTGGCGCACAGTGACGCCACCAGGCTGCACACGCTCGCCGTGTAGATGACGGACGCGGTCGTCCCGGTGAGCGTCACCAGCGGGCCCATCGTAAGCGAGAGAATGATTTGCGCCACGAACAGCATGCTGCCGATGATGGAAATGTCCGACGCCAGGCCACGGCGGGGCTGTATCGAGTTCGTTTCGTCGCACGTGTCGAGCTGCAATGAAAGTGTCATGTAAAGT ->1101671565216 -GTGTGCTTGCTCTCAGGGCGATGCAGCTCAACGATTTGGCCGCCCCAACCACCTATCCCCTGAAGCCACCGGTAGCCCTGCCCGGGAAGGTTTCACTTCAAATGCAAGTCTCCTCAGGCATGATGTATCCGTCGTGTAGGTTGGTTGCTGCAGTGTTCAATTCTGTGCCACACACAGCTTTAATGCTTGTCGGTGTGTGTGAGTGTTTTTTTTTGCGTGATTGAGTTTCCATTGGTATCTGTGTCTGCATCGTGTGTGCAAACGGCAGCAGCAGCAGCAGTGTCGTCGTGTGGTGCGTCGTCCATCCGGATATGCAGTGTGGATGTCTGGTTGTGTCCATTTTGTTAGCAGTAAGTCCGGCACAAGGTTAACACTGTCCCGCGGTTGTGTTTTTTGCTGTTGCTTTTTTACTGCTCACTGCCCTGTGTTGTTGTGCTACCTTCAACATAGGGATGAGGAAACACACAGACACACACACACACAGATCGAATGGATGAACAAACGAACGGAACACACAACAAATGCAGCCCCCGCGCTTCGATGGTGCCGAGAAGGGCATCATCTTCATGCTAGAGAGGATGTAGTTAAGCTGCAATGCTCTAAGGTGGGGTTGCTGCTGTCCATGGTTTCTTTTTCAGGTATCTTTTCAGACGACGCTTTCGGGGCAGCAGCAGAGAGCATTGGGATGGGAGAAGCACGGCACGCAGCAGAGAGCCCAGAAGAATAGGTTACTGCTGCTGCTGCTGCACACGTACCGAGGCGAACCGCATTCTAACTGCAAATGCACCGGAGAAGGACGTACCGTTTGACATGGCCAGGAGACGACCGTCACCGGGCGAGGTGGTATGAGTCACGTTACACGAGTCGAGTTTTAAGTGTGGTTGTTGAAACATTTTATTAGAAAATTACA ->1101671565239 -TACGATGTTTGTATCGCGTCTAAAAACTCGTAGACAACGTACGTACAATAAGTTTAAAGTAAAAGACAAAGCATAAACCTAGCAAACTTTCCGGAACATCATCTACATCAAAGCTCGTGGTAAGTTTATTTGCGTTTCACTGCTAATAACTTCTCAAAACGCAATGTCACTTAACACCATCAACGTAAAGCTTTTTTCGACACCTTATTTTATTGCACACATCGATCGCATACATCGGTCGAAACTAGTTCCGCTCGTAGAGCCCTTTTGCCTTGGTCGAAGATGAAACTTTTACCCAAAGCTTTTTTCCACTTTTCCAACACACTGCCAAACGTTCGGGGAAGTGAGCCAAACAAAAAAAGAGAAACAACGCTGTGCGATAAATCTTTAAAACAAACTACGCTGATTTAATACCTTACTGAGAACAAGCAAAGAGAATGGAAAGTGGACCGATAATAATACGATGCGGGGAGCGAAAAAAAAACGCGAGGCAAAGTAAACCGAAAACAACCACGAATCGTTTGTAGTAGAAGAGAGAAAAAATAAATCCACCCCCTTCAGTAAAATAGCTTTCGGTGGAAGCGGTAGAGCTGGGCCAACAGCCTTCCCCAAGTTACGTGGAAATCGACCGCCGTGAAAAAACTTCAATCGACGGATGCCCGGTTGCGCCACCAACCGGCAAACCAACCCACCCATCACGACGGCCCCAGCAACGAGCTGATACGACACCGGCCAAAGATAAGACCTCGGGCCGGGAAGGTGTCCCTCTGTTGCCGGTGCCGCTGTGTATGTGTATGTGCTTGTCTAGCTGTAAGTGCAGGAGCGAGTTTCAATAAGCCGCTTTTCTCCGACGATCCGACAGGCGGTAAGTTCCCG ->1101671565257 -GCGCTACGAACCGCACGCTGCGCTTCCTGCACGACCGCTCGCAAAAGGAACCGGAAAGCTACGACAAGTTCTACAAAGACTACGGGCTCTTCCTGAAGGAAGGCATCGTGACCAGCCAGGAGCAGCAGGAAAAGGAAGAGATCGCCAAGCTGCTGCGGTTCGAAACGAGCAAGGAACCGAACCGGACGGTATCGCTGCCCGAGTACTGCCAGCGGCAGGCGGAAGGCCAGAAGGATATCTACTATCTGGCCGCGCCGAATCGTACCCTGGCGGAAGCTTCCCCGTACTATGAGTCGTTGAAGAAGCGCGGCATCGAGGTGCTGTTCTGTTACGAAGCGTACGATGAGCTGGTGCTGATGCAGCTCGGCATGTATTTGGGCAAGAATTTGGTGTCGGTCGAGAAGGAGATGCGCCGTTCCGATGCGTCGACCGATGGGAAGGATGCGGACGGGCTGATCGAAGGTTCGCTGCTGAAAACGCAAATCGATGAGCTGCTGCCGTGGCTGAAGGACAAACTTACCGGCAAGGTGTCGAACGTGAAGACGACCGGCAAGCTCGATACGCATCCGTGTGTGGTGACGGTGGAGGAGATGGCCGCTGCCCGGCACTTTATCAAAACGCAGAGCCACAACATTAGCGAAGAGAACCGTTACGCACTGTTGCAGCCGCAGTTTGAAATCAATCCCAAGTAAGTGACCCCAACCGGTGCAGTTCGTTTTGAATTTTGGCCTTTTAAATCATACTCTTTTCCTTTTGCTTCCATTACAGACATCCCATCATTAAGAAGCTACACAAACTAACGAGCAGCAATCCGGAACTGGCCGAACTGTTGGCCAAGCAGCTGTTCTCGAACGCGATGGTGGGCGCCGGTTTGGTGGATGATCCGCGCATGCTGCTGACGAGCATGAACGATCTGCTG ->1101555423223b -GCTCAGCATCTACTACAAATCGGTCAACGATCTCGATCTATCCGTCGGGTTAGCGTTCGAGAAGAAGATCGATGGCACGGAGTCAGGCATGGTGATGCGCTGCATACTGGCCGATCAGTTCCGGCGCACCAGGAAGGGCGATCGCTTTTTCTACCAAAACGGCAACCATTTCAACGCACGACAGTTGAGTGAGATTCGGAAGGCGAATATGGCGCGCATACTGTGCGATACGACCACCGATGTTACACGTATACAGTCGAGCGCATTTTTGCTACCTTCCACCACCAACCCGCTAGTGACGTGCAGTTCCTTACCGACTCCGAATCTTCGCGAGTTCTAGTGTTGTTAATAATTGGAGAATTGAAGAATATCTCTTATTGGCGACGGTGTAGCTTTGTAGCGGTAGAACATATATTTGCGGATGCAAAGATACGATTCGAACGCTAGCTAGAAGACGTAATCTGCTGTAGGAAATTCTACCGAACCAGCTACAAAAATATAACCATCTTCTCATCCAACTGTCAATTGTTTGTTTTATATCCCTCTCTCTCTCTTGTTTTATATCCATAATACTTGTTTACTCAGAATGTGCTTTGCATTATATTACAAACATTTGTGAACATCTTACCAATACAAATGCCTAATACAAACATGTATGCCGTTGAACTCTTTTTGTTAAAGTCTAACCCCTCGCCATCATTCTAATGAGAAAATCCTATCGTATGATAATTGTAAAAATATGGTGTTTCAATCAGCGAAAATTTCTTCGCCATATCAGATGTATTTGATGAGAACTGTTCAGAAGATATTCTTCTATCCACCCTTTAAATCTGATATATTCTTTAGCTAAACTAAATTGTACCATATATTTTACTTTGCACTC ->1101555423227b -TTCTACTTTTTATTAAGTCCCTATATGATTCTGCAACTGAAAATCGACAAAAAATTGTTTTACCGTGCATAATGAATCTTCAACAAAAAATGAACGAATTAACAAGTAACTAAACTAGAAGATCGCCATTGTGAGGGACCTTACGTCATTTATAAAGCGTTAACTATTTTTTCCGTAAATAAAACATAGCAAATAGAACTGAATTCTTGGCTATTACGTGCATTTTTATACGTTTATTGATTTTGTTGGAAAATCCATGAGCTATATAAACGATAGAGTTGATAGTTTTTTTAGACAAGTAAACGCTAAAATCAATTCAGGTATAAGTATCAATTTAACTTAAATCGTCCATGCATTTCGTAGATAATGAGGAATAAATGTAATAATAAATAAAATGAAATATTTCTTTCTTGTTATCCTGAAATATGAAGTAACATACTGAATTAATCAATAAATTCGCCAAATAACACTCGAATTATTTTTGTTTTCTGTAATACCTGTGTTCAATCTATGTTTGATGTAAAATAAGTTCTCGCAAAGTTCAAAATCTTTTTATTCAGTATATTGAATAAAAAAATATAAAAAAAATTAAAATATGAAAAAACACGTAAACAGCGTGTTTTTCAACAATTCGAATCCAGGAGACCTCATGTCAAGTGACGAATTGTCTAAATGCTCCATTTACCATCAATTGATCTCTTTAATCCACCTTTCTGTACACAGTTAAATTTATGCAACATTTTTATACAACTTTCCAGGCTAATGTTAACCATCTTTACTAGCATATACTACATTAAAAAATCAGTGTAGACAAAAAGAGCGATTACATAAATTTTCTTA ->1101555423239b -AGCACGATGATGCTGATCGGTGGGTTGGGCGGCATGCTCGGCTATCTGTTCGGGGCGATCGATTGGATCGCTCTCCCGATCGGCCAGTACTTTGAGAGCAACGAGGCGGCCGTCTTCACCGCCAACTGGATCGTGCTGCTGATCGGGCTGGTCAGCACGCTGACCAGCTTCGCCGAGATACCGCTGCCCGTGCAGGAGCAGGACGCGATGCTGCGCCCCGTCACACACTCGATGCTGCAGAACGAGGTGAAGCGGATGCGCGGGGACGAGTACGCCATCCAGACGCAACTGTCCGAGAGCATCGGCTTCCGGCAGTTTGTGCGCAATACCGTCCAGATGCCACGCTCGATGAAGATCCTCTGCCTGACGCAGTTCCTGTCCCACATGGGCTACCTGCCGTACTGTCTGTACTTTACCGACTTTGTCGGCGCGGAAGTGTTCGGTGGGGATGTACAGGTGAGTCTCATCACTTTCACAAATTGCCATCACAAATTTTTATATAAAAAATGGTGTTTGGAATATGCGCTTTATTTTAGGCCCCGGAACACTCGCCCGCCTTTGTGCTGTACGAGGAAGGGCTACGATTCGCCTGCTGGGGCATGGCACTGTTTGCCGGCTGCGCCTCGCTCTACTCGCTGGTGATTGAGCGGATGATTGATCGGGTCGGGGCACGGCCCGTCTACGTCGGTGGCTTGATGGCGCACTGCGTCGGCATGGTGGCGATGGGGCTGCTGCGCCACCGGGCCATTGTGATGCTGTGCTGCTCGCTCACCGGCATCATGTACACCACCATCTACTCCATTCCGTTTCTGCTGATCTCACACTATCACTCCAAGAACTCGGTAAGAGGATAATCCACATTGTACGCTTGCGGGCGCTCTAAATTGCATATTATTTCCCTTCCCTTCCAAACCAGTTCCACATGA ->1101555423272b -CCCCTTAGCTGACCGCCTGCACAGGCATGGGGGATATCGTTAAGCACGGGAAAAAATAGGAGCGATTTTTTTTTCGCTCGAAGGAAAGTTTTCACAATACATTTGACTGCAATGGTCAGCCGGCGGCCACAGCACCGGCGAGGGTTTAAACTTTTTCATTCTTCCTTGCTATGGAAAAGGGCTCCACAGTTTCCCTGGCCAACAACCACAATGGGTTGAAATGTTCGATAGTTTTGAGTGAGGCGGAAAAAGTTCTTGCATTGATTAGGGGCCATTTTTTCGTTTTGCAAAAAGCGATCGAAACGAGCTGAGCTTAAATGAAAATCGATCGTGTAGCAAATGGTTTTGTGAATAAATATGAAAGCTTGCACTCAATGTAAACCACTCGTATACCAAGATGTACTAAGAAAAGTGTAAATATTACTCTTATATCACAACCATTCATTCCACGCTAATTTAACAGCAGACTATTAGCTTAGGGAAATTAACTTCCAATAACCATGACGAAAAGCAATTACGTGCTTTACATGAAAAAAAATTAAAAAATTATACGCTAGTTTCTACACCGCAAAGCTACCATACCCGGTTGCTTGTCATTGAAAAAAAAAGCCAGCGAAACAAAACCGTCCTTTTAATTACACTGATCGGAAGCGGTGATAATTGAAAATGGAATCGCTGCGGAAA ->1101555423799b -CTAGCTAACGCGATACATACACAAAAGAACCATGTGAACACGCAAATAAATCGAAACAAAGTGAAGTGAAAACATGAAAATGGAAGCATTACTACTACTACTTCTACTACCTACCTACCTATCGCTACTATAACACTTCGAAAAGGCTTCAGTTTCGTTTCGTAAAAGAAAAGAAACTCGAACGCGTTTCGGTGTGGTGTCTAACATGGGATGAAATGATAATGAAAGGTGTTTGTTGATAGGCAGCTTTTGTTGCGAACTGTAGGGGAGAACGATCGACGATGGAGGACAACAACGAGAACAGCCGTTTATATGCACACTTTCTCCTCACACACAAGCTTATTTAGCGATGAGCAGAAGGCAACATTCGCTTGCAATGGTTGTAATGGAAGGGAAACGAAGCTGACGCTTTTGTTTAGTAAGTTTTCTCTTTTCCGCGCCTAATTTCGATCAGCGCCGAGCTGGATTGATTGCTGTTTGCTTCCGCTTGCGGCTTATGTGCGTTTGCCAAGCCTATTAAAGCCTATTATCATTCTGCTCGTTGGAAGCGGGAGATAGAAAAAAGGGTAACGCCAATCCCTGTTGTCACATTATAAGTAATCGCGCCGTGTTTGATGTGCGTGTATTAATTATTTATTTTTGCATAACCATATAATTTATTGGTTTTGTTTTGCTCTTTTATTTTTAATATTTTGTTCTGATTGTTTGTTTTGTTTTCTGATTTTAGCTTAAGTGTGAAGAAAGCTAC ->1101555423803b -TGCGATCCTTCGAGTCCCTTTATTGTTGTTTAGTCCGTTCCGTATTGTATTGTGCCTGTATCATCTGGTCTCCTGTCCAAGTATCTATGGTCCAAAGGATTGAGAGGATCCAGAGACGAAATACAGGGATTGTATTTCGTAGTTCGCTGAGTCATCACTCTATTCCCCTTCCTTCGTATGATGATAGATGCGCTCTATTAGACCTAGCTAAGTTGAAACAGCGCCTCTCGGTAGCACAGGCTTCTTTCGTGGCTGGCCTGTTGTTTAATATGATCGATAATCCTTCCTTTCTGTTCCGTGTTTATTTTTTGAGCTCCTTGTCCAGTTATCGATTTCGTCTCCATACACTTATATGCAGTACAGGTTTTGCATTTTAAAGAACTACTTCGTCTTTTAATAGTGCCTTATATCTGTTCGATTTCAACCTATCCCTTTCCGTCTTTCCGATCCCGTCTTCGCTCCTTTTTCATATCATAATCTCCTTCCTCCTTTTTCCGTCTTTTATTTTCTCCCGAATTATTAGTTTAGTAAGTACTACTTACTAAACTTAGTTAGTACTACTTAGTTTAGTTAGTAAGTACTACTGTAACCCAACGTGGTTGAGAAATATGCACTAATAAAATAAAATAAAATATAAAATATTAATACATAAAAAAATAAAATAAAATATGTAACATAAAACGGTATAAAATTAAATAAAAATAACAATATTGAGAGAAAACAGAGAACGAAGTGATGTATGCATGATGTAGGCATCTCTCTTCTCTTATTCTTTGGCTCAACAACCGTTGTCGGCCAAAGCCTGCCTGCAACACCGTGTTGGCTTGGCTTTTAGTGACTTACTGATTCTCATAGTTCCCATAGAAAGGATAGTCAGTCCTACGTATGGCGGCACGGTCCATGACGGACATGTTATTAAGTCGTACGAGTTGACGACTGTACACGAGACCATCTACATCATAAATTAACTAAAATTATCACTAC ->1101555423815b -TCGCACGCGCGCGAGTGAAATATTTCATTTCTTTCTTCAATTTTGCATTTGGCAAGGACAACGTTATTAAAAATACCAAAAAAATTGCCATTCATATACAAAAATAACAGTTTATTGCAATCTTTTCATGCTTTTGATACTTTCCGCTACATTAAATCGTTAAAATTGTTAAGTGAATGCCGTTTATTCATCTATTTAACGCTTACAATGTATTGAGGTCCTTTTGAGTTAGTGTCAAAGTGTTTTCCTGTATCCTTGTGCTCACTTCGTAATGTTACTAATTGTTACCCTTCCTCCTCCTCCTCTATTTCTCACTAGCATTAAAATCGATTCTTTATGGCTAACGCTTACGCTTATGCTCGCTCAGTAACAGCAACAACCCCTCGTTTCACTATCACAACCCGTGTGCCTTGCACACGTAAATGCACTTTTTAATTGTGTGTCCTCCCCTCTCGGCTCTACAGATCCAGATACTGGATCTGGGTGGCGCACAGTGACGCCACCAGGCTGCACACGCTCGCCGTGTAGATGACGGACGCGGTCGTCCCGGTGAGCGTCACCAGCGGGCCCATCGTAAGCGAGAGAATGATTTGCGCCACGAACAGCATGCTGCCGATGATGGAAATGTCCGACGCCAGGCCACGGCGGGGCTGTATCGAGTTCGTTTCGTCGCACGTGTCGAGCTGCAATGAAAGTGTCATGTAAAGT ->1101671565216b -GTGTGCTTGCTCTCAGGGCGATGCAGCTCAACGATTTGGCCGCCCCAACCACCTATCCCCTGAAGCCACCGGTAGCCCTGCCCGGGAAGGTTTCACTTCAAATGCAAGTCTCCTCAGGCATGATGTATCCGTCGTGTAGGTTGGTTGCTGCAGTGTTCAATTCTGTGCCACACACAGCTTTAATGCTTGTCGGTGTGTGTGAGTGTTTTTTTTTGCGTGATTGAGTTTCCATTGGTATCTGTGTCTGCATCGTGTGTGCAAACGGCAGCAGCAGCAGCAGTGTCGTCGTGTGGTGCGTCGTCCATCCGGATATGCAGTGTGGATGTCTGGTTGTGTCCATTTTGTTAGCAGTAAGTCCGGCACAAGGTTAACACTGTCCCGCGGTTGTGTTTTTTGCTGTTGCTTTTTTACTGCTCACTGCCCTGTGTTGTTGTGCTACCTTCAACATAGGGATGAGGAAACACACAGACACACACACACACAGATCGAATGGATGAACAAACGAACGGAACACACAACAAATGCAGCCCCCGCGCTTCGATGGTGCCGAGAAGGGCATCATCTTCATGCTAGAGAGGATGTAGTTAAGCTGCAATGCTCTAAGGTGGGGTTGCTGCTGTCCATGGTTTCTTTTTCAGGTATCTTTTCAGACGACGCTTTCGGGGCAGCAGCAGAGAGCATTGGGATGGGAGAAGCACGGCACGCAGCAGAGAGCCCAGAAGAATAGGTTACTGCTGCTGCTGCTGCACACGTACCGAGGCGAACCGCATTCTAACTGCAAATGCACCGGAGAAGGACGTACCGTTTGACATGGCCAGGAGACGACCGTCACCGGGCGAGGTGGTATGAGTCACGTTACACGAGTCGAGTTTTAAGTGTGGTTGTTGAAACATTTTATTAGAAAATTACA ->1101671565239b -TACGATGTTTGTATCGCGTCTAAAAACTCGTAGACAACGTACGTACAATAAGTTTAAAGTAAAAGACAAAGCATAAACCTAGCAAACTTTCCGGAACATCATCTACATCAAAGCTCGTGGTAAGTTTATTTGCGTTTCACTGCTAATAACTTCTCAAAACGCAATGTCACTTAACACCATCAACGTAAAGCTTTTTTCGACACCTTATTTTATTGCACACATCGATCGCATACATCGGTCGAAACTAGTTCCGCTCGTAGAGCCCTTTTGCCTTGGTCGAAGATGAAACTTTTACCCAAAGCTTTTTTCCACTTTTCCAACACACTGCCAAACGTTCGGGGAAGTGAGCCAAACAAAAAAAGAGAAACAACGCTGTGCGATAAATCTTTAAAACAAACTACGCTGATTTAATACCTTACTGAGAACAAGCAAAGAGAATGGAAAGTGGACCGATAATAATACGATGCGGGGAGCGAAAAAAAAACGCGAGGCAAAGTAAACCGAAAACAACCACGAATCGTTTGTAGTAGAAGAGAGAAAAAATAAATCCACCCCCTTCAGTAAAATAGCTTTCGGTGGAAGCGGTAGAGCTGGGCCAACAGCCTTCCCCAAGTTACGTGGAAATCGACCGCCGTGAAAAAACTTCAATCGACGGATGCCCGGTTGCGCCACCAACCGGCAAACCAACCCACCCATCACGACGGCCCCAGCAACGAGCTGATACGACACCGGCCAAAGATAAGACCTCGGGCCGGGAAGGTGTCCCTCTGTTGCCGGTGCCGCTGTGTATGTGTATGTGCTTGTCTAGCTGTAAGTGCAGGAGCGAGTTTCAATAAGCCGCTTTTCTCCGACGATCCGACAGGCGGTAAGTTCCCG ->1101671565257b -GCGCTACGAACCGCACGCTGCGCTTCCTGCACGACCGCTCGCAAAAGGAACCGGAAAGCTACGACAAGTTCTACAAAGACTACGGGCTCTTCCTGAAGGAAGGCATCGTGACCAGCCAGGAGCAGCAGGAAAAGGAAGAGATCGCCAAGCTGCTGCGGTTCGAAACGAGCAAGGAACCGAACCGGACGGTATCGCTGCCCGAGTACTGCCAGCGGCAGGCGGAAGGCCAGAAGGATATCTACTATCTGGCCGCGCCGAATCGTACCCTGGCGGAAGCTTCCCCGTACTATGAGTCGTTGAAGAAGCGCGGCATCGAGGTGCTGTTCTGTTACGAAGCGTACGATGAGCTGGTGCTGATGCAGCTCGGCATGTATTTGGGCAAGAATTTGGTGTCGGTCGAGAAGGAGATGCGCCGTTCCGATGCGTCGACCGATGGGAAGGATGCGGACGGGCTGATCGAAGGTTCGCTGCTGAAAACGCAAATCGATGAGCTGCTGCCGTGGCTGAAGGACAAACTTACCGGCAAGGTGTCGAACGTGAAGACGACCGGCAAGCTCGATACGCATCCGTGTGTGGTGACGGTGGAGGAGATGGCCGCTGCCCGGCACTTTATCAAAACGCAGAGCCACAACATTAGCGAAGAGAACCGTTACGCACTGTTGCAGCCGCAGTTTGAAATCAATCCCAAGTAAGTGACCCCAACCGGTGCAGTTCGTTTTGAATTTTGGCCTTTTAAATCATACTCTTTTCCTTTTGCTTCCATTACAGACATCCCATCATTAAGAAGCTACACAAACTAACGAGCAGCAATCCGGAACTGGCCGAACTGTTGGCCAAGCAGCTGTTCTCGAACGCGATGGTGGGCGCCGGTTTGGTGGATGATCCGCGCATGCTGCTGACGAGCATGAACGATCTGCTG diff -Nru cctools-7.0.22/sand/test/sand_sanity/test.sw.right cctools-7.1.2/sand/test/sand_sanity/test.sw.right --- cctools-7.0.22/sand/test/sand_sanity/test.sw.right 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/test/sand_sanity/test.sw.right 1970-01-01 00:00:00.000000000 +0000 @@ -1,120 +0,0 @@ -{OVL -afr:1101555423223b -bfr:1101555423223 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:882 -mxo:1766 -pct:0 -} -{OVL -afr:1101555423227b -bfr:1101555423227 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:839 -mxo:1680 -pct:0 -} -{OVL -afr:1101555423239b -bfr:1101555423239 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:925 -mxo:1852 -pct:0 -} -{OVL -afr:1101555423272b -bfr:1101555423272 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:683 -mxo:1368 -pct:0 -} -{OVL -afr:1101555423799b -bfr:1101555423799 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:747 -mxo:1496 -pct:0 -} -{OVL -afr:1101555423803b -bfr:1101555423803 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:983 -mxo:1968 -pct:0 -} -{OVL -afr:1101555423815b -bfr:1101555423815 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:707 -mxo:1416 -pct:0 -} -{OVL -afr:1101671565216b -bfr:1101671565216 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:909 -mxo:1820 -pct:0 -} -{OVL -afr:1101671565239b -bfr:1101671565239 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:875 -mxo:1752 -pct:0 -} -{OVL -afr:1101671565257b -bfr:1101671565257 -ori:N -olt:C -ahg:0 -bhg:0 -qua:0.000000 -mno:918 -mxo:1838 -pct:0 -} diff -Nru cctools-7.0.22/sand/test/TR_filter_verification.sh cctools-7.1.2/sand/test/TR_filter_verification.sh --- cctools-7.0.22/sand/test/TR_filter_verification.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/test/TR_filter_verification.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -#!/bin/sh - -set -e - -files="port.file random.cfa random.cand random.cand.output filter.log worker.log" - -. ../../dttools/test/test_runner_common.sh - -prepare() -{ - return 0 -} - -run() -{ - export PATH="$PATH:../src/" - filter_verification/gen_random_sequence.pl 1000 - filter_verification/gen_random_reads.pl 1000 - sand_compress_reads < random.fa > random.cfa - sand_filter_master -s 100 -k 22 -Z port.file -d all -o filter.log random.cfa random.cand & - run_local_worker port.file - filter_verification/verify_candidates.pl -} - -clean() -{ - rm -f $files -} - -dispatch "$@" - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/sand/test/TR_sanity.sh cctools-7.1.2/sand/test/TR_sanity.sh --- cctools-7.0.22/sand/test/TR_sanity.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/sand/test/TR_sanity.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ -#!/bin/sh - -. ../../dttools/test/test_runner_common.sh - -comp=test.cfa -cand=test.cand -sw_ovl=test.sw.ovl -banded_ovl=test.banded.ovl - -worker_log=worker.log -sand_pid=sand.pid - -sand_filter_debug=sand.filter.debug -sand_sw_debug=sand.sw.debug -sand_banded_debug=sand.banded.debug -sand_port=sand.port -sand_done=sand.done -sand_pid=sand.pid - -prepare() -{ - clean - return 0 -} - -run() -{ - ( - set -e - - PATH="../src:../../dttools/src:$PATH" - export PATH - - echo "SAND short assembly test" - - echo "Compressing reads" - sand_compress_reads < sand_sanity/test.fa > "$comp" - - echo "Starting filter master..." - rm -f "$sand_port" "$sand_done" "$sand_pid" - (sand_filter_master -s 10 -Z "$sand_port" -d all -o "$sand_filter_debug" "$comp" "$cand"; touch "$sand_done") & - - echo $! > $sand_pid - run_local_worker "$sand_port" "$worker_log" - wait_for_file_creation $sand_done 30 - kill $(cat $sand_pid) && exit 1 - - require_identical_files "$cand" sand_sanity/test.cand.right - - echo "Starting Smith-Waterman assembly..." - rm -f "$sand_port" "$sand_done" "$sand_pid" - (sand_align_master -d all -o "$sand_sw_debug" -Z "$sand_port" -e "-a sw" sand_align_kernel "$cand" "$comp" "$sw_ovl"; touch "$sand_done") & - - echo $! > $sand_pid - run_local_worker "$sand_port" "$worker_log" - wait_for_file_creation $sand_done 30 - kill $(cat $sand_pid) && exit 1 # if we could kill it, then it did not finish the process correctly... - - require_identical_files "$sw_ovl" sand_sanity/test.sw.right - - echo "Starting banded assembly..." - rm -f "$sand_port" "$sand_done" "$sand_pid" - (sand_align_master -d all -o "$sand_banded_debug" -Z "$sand_port" -e "-a banded" sand_align_kernel "$cand" "$comp" "$banded_ovl"; touch "$sand_done") & - - echo $! > $sand_pid - run_local_worker "$sand_port" "$worker_log" - wait_for_file_creation $sand_done 30 - kill $(cat $sand_pid) && exit 1 - - require_identical_files "$banded_ovl" sand_sanity/test.banded.right - - echo "Test assembly complete." - ) - return $? -} - -clean() -{ - rm -f "$comp" "$cand" "$sw_ovl" "$banded_ovl" "$sand_filter_debug" "$sand_sw_debug" "$sand_banded_debug" "$sand_port" "$worker_log" "$done_file" - return 0 -} - -dispatch "$@" - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/travis_build.sh cctools-7.1.2/travis_build.sh --- cctools-7.0.22/travis_build.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/travis_build.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -#!/bin/bash - -set -ex - -BUILD_ID=$(basename "${TRAVIS_TAG:-${TRAVIS_COMMIT:0:8}}") -case "$TRAVIS_OS_NAME" in - osx) - IMAGE_ID="x86_64-osx10.13" - ;; - *) - IMAGE_ID=$(basename "${DOCKER_IMAGE:-travis}") - ;; -esac -D=/tmp/cctools-$BUILD_ID-${IMAGE_ID#cctools-env:} - -DEPS_DIR=/opt/vc3/cctools-deps -DEPS=$(/bin/ls "$DEPS_DIR" || true) -DEP_ARGS="" -for dep in $DEPS; do - DEP_ARGS="$DEP_ARGS --with-$dep-path $DEPS_DIR/$dep" -done - -WITH_PERL= -if [ "$TRAVIS_OS_NAME" = osx ] -then - WITH_PERL="--with-perl-path no" -fi - -./configure --strict --prefix "$D" $DEP_ARGS $WITH_PERL -make install - -if ! make test -then - cat cctools.test.fail - exit 1 -fi - - -if [ -n "$DOCKER_IMAGE" ] || [ "$TRAVIS_OS_NAME" = osx ]; then - tar -cz -C "$(dirname "$D")" -f "$D.tar.gz" "$(basename "$D")" -fi diff -Nru cctools-7.0.22/travis.sh cctools-7.1.2/travis.sh --- cctools-7.0.22/travis.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/travis.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -#!/bin/bash - -set -ex - -if [ -z "$DOCKER_IMAGE" ]; then - ./travis_build.sh -else - docker run \ - --privileged \ - --ulimit nofile=65536 \ - -v "$(pwd):/root" \ - -v /tmp:/tmp \ - -w /root \ - -e TRAVIS_TAG \ - -e TRAVIS_COMMIT \ - -e DOCKER_IMAGE \ - "$DOCKER_IMAGE" \ - ./travis_build.sh -fi diff -Nru cctools-7.0.22/.travis.yml cctools-7.1.2/.travis.yml --- cctools-7.0.22/.travis.yml 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/.travis.yml 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,47 @@ +language: c +sudo: required +services: docker +addons: + homebrew: + packages: swig + +script: "./packaging/travis/travis.sh" +after_failure: "cat cctools.test.fail" + +notifications: + email: + on_success: always + on_failure: always + +matrix: + include: + - os: osx + osx_image: xcode9.4 + compiler: clang + - os: linux + compiler: gcc + - os: linux + compiler: clang + - os: linux + compiler: gcc + env: DOCKER_IMAGE=cclnd/cctools-env:x86_64-centos6 + - os: linux + compiler: gcc + env: DOCKER_IMAGE=cclnd/cctools-env:x86_64-centos7 + - os: linux + compiler: gcc + env: DOCKER_IMAGE=cclnd/cctools-env:x86_64-debian9.9 + - os: linux + compiler: gcc + env: DOCKER_IMAGE=cclnd/cctools-env:x86_64-fedora30 +deploy: + provider: releases + file: /tmp/cctools-*.tar.gz + file_glob: true + overwrite: true + skip_cleanup: true + on: + repo: cooperative-computing-lab/cctools + tags: true + api-key: + secure: N2shk/iZkkpHC8pRZLKaVr/hJKfc0QzGwTwkvGLdLE0HvlMP/hI8AXuxB/qAIjFU1cw+Mx4Ke96VysrBzfPDUEsw8LT+yNYtLSmFlMbwD8WKpRRrwEdx49KdmOTw9mt1utv7+yEWB5iRMztS9I7Vr5eTgtWmLG/iHGJGjJPGVc8= diff -Nru cctools-7.0.22/umbrella/src/Makefile cctools-7.1.2/umbrella/src/Makefile --- cctools-7.0.22/umbrella/src/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/umbrella/src/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -15,9 +15,7 @@ chmod 755 umbrella umbrella_helper.html: umbrella.py - # pydoc creates a html file, umbrella.html. - if [ -x "${CCTOOLS_PYDOC}" ]; then ${CCTOOLS_PYDOC} -w umbrella; fi - if [ -f umbrella.html ]; then mv umbrella.html umbrella_helper.html; fi + @if $(CCTOOLS_PYDOC) -w umbrella > /dev/null 2>&1; then mv umbrella.html umbrella_helper.html; else echo Could not create $@; fi clean: rm -f $(OBJECTS) $(TARGETS) diff -Nru cctools-7.0.22/umbrella/src/umbrella.py cctools-7.1.2/umbrella/src/umbrella.py --- cctools-7.0.22/umbrella/src/umbrella.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/umbrella/src/umbrella.py 2020-05-05 15:31:15.000000000 +0000 @@ -2110,23 +2110,16 @@ logging.debug("The full path of umbrella is: %s" % umbrella_fullpath) - #find cctools_python - cmd = 'which cctools_python' - rc, stdout, stderr = func_call(cmd, ["which"]) - if rc != 0: - subprocess_error(cmd, rc, stdout, stderr) - cctools_python_path = stdout[:-1] - condor_submit_file = open(condor_submit_path, "w+") condor_submit_file.write('universe = vanilla\n') - condor_submit_file.write('executable = %s\n' % cctools_python_path) + condor_submit_file.write('executable = %s\n' % '/usr/bin/python') if cvmfs_http_proxy: condor_submit_file.write('arguments = "./umbrella -s local --spec %s --cvmfs_http_proxy %s --meta %s -l condor_umbrella -i \'%s\' -o %s --log condor_umbrella.log run \'%s\'"\n' % (spec_path_basename, cvmfs_http_proxy, os.path.basename(meta_path), new_input_options, os.path.basename(condor_output_dir), user_cmd[0])) else: condor_submit_file.write('arguments = "./umbrella -s local --spec %s --meta %s -l condor_umbrella -i \'%s\' -o %s --log condor_umbrella.log run \'%s\'"\n' % (spec_path_basename, os.path.basename(meta_path), new_input_options, os.path.basename(condor_output_dir), user_cmd[0])) # condor_submit_file.write('PostCmd = "echo"\n') # condor_submit_file.write('PostArguments = "$?>%s/condor_rc"\n' % os.path.basename(condor_output_dir)) - condor_submit_file.write('transfer_input_files = %s, %s, %s, %s%s\n' % (cctools_python_path, umbrella_fullpath, meta_path, spec_path, transfer_inputs)) + condor_submit_file.write('transfer_input_files = %s, %s, %s%s\n' % (umbrella_fullpath, meta_path, spec_path, transfer_inputs)) condor_submit_file.write('transfer_output_files = %s, condor_umbrella.log\n' % os.path.basename(condor_output_dir)) condor_submit_file.write('transfer_output_remaps = "condor_umbrella.log=%s"\n' % condorlog_path) @@ -2360,14 +2353,6 @@ new_input_options += "'" logging.debug("The new_input_options of Umbrella: %s", new_input_options) #--inputs option - #find cctools_python - cmd = 'which cctools_python' - rc, stdout, stderr = func_call(cmd, ["which"]) - if rc != 0: - terminate_instance(instance) - subprocess_error(cmd, rc, stdout, stderr) - cctools_python_path = stdout[:-1] - #cvmfs_http_proxy cvmfs_http_proxy_option = '' if cvmfs_http_proxy: diff -Nru cctools-7.0.22/wavefront/example/example.func.c cctools-7.1.2/wavefront/example/example.func.c --- cctools-7.0.22/wavefront/example/example.func.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/example/example.func.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ -/* -Copyright (C) 2008- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include -#include - -struct params { - double v1; - double v2; - double q1; - double q2; -}; - -struct params * params_load( const char *path ) -{ - struct params *p; - - FILE *file = fopen(path,"r"); - if(!file) return 0; - - p = malloc(sizeof(*p)); - - fscanf(file,"%lf %lf %lf %lf",&p->v1,&p->v2,&p->q1,&p->q2); - - fclose(file); - - return p; -} - -int main( int argc, char *argv[] ) -{ - struct params *x,*y,*d; - int X, Y; - - if(argc!=6) { - fprintf(stderr,"use: nashfunc x y xfile yfile dfile\n"); - fprintf(stderr,"The contents of xfile, yfile, and file should be simply: v1,v2,q1,q2\n"); - return 1; - } - - X = atoi(argv[1]); - Y = atoi(argv[2]); - x = params_load(argv[3]); - y = params_load(argv[4]); - d = params_load(argv[5]); - - double b1 = 1; - double b2 = 2; - double th1 = 1-1.0/X; - double th2 = 1-1.0/Y; - - double bestnash = 1000000000000.0; - double bestnash1 = 1000000000000.0; - double bestnash2 = 1000000000000.0; - double bestq1 = 0; - double bestq2 = 0; - - double q1, q2, nash1, nash2, nash; - int i,j; - const int size = 1000; - - for(i=0;iv1 - q2*d->v1 - 2*q2*y->v1 - pow(q2,2)*y->v1 + 2*x->v1 + 2*q2*x->v1; - - nash2 = 4 + 4*q1 - 4*pow(q1,2) - 4*pow(q1,3) - 8*q1*q2 - 16*pow(q1,2)*q2 - 8*pow(q1,3)*q2 - 12*pow(q2,2) - 28*q1*pow(q2,2) - 18*pow(q1,2)*pow(q2,2) - 2*pow(q1,3)*pow(q2,2) - 8*pow(q2,3) - 12*q1*pow(q2,3) - 4*pow(q1,2)*pow(q2,3) - 4*b2*q2*th2 - 8*b2*q1*q2*th2 - 4*b2*pow(q1,2)*q2*th2 - 8*b2*pow(q2,2)*th2 - 15*b2*q1*pow(q2,2)*th2 - 7*b2*pow(q1,2)*pow(q2,2)*th2 - 4*b2*pow(q2,3)*th2 - 6*b2*q1*pow(q2,3)*th2 - 2*b2*pow(q1,2)*pow(q2,3)*th2 - 2*d->v2 - q1*d->v2 + 2*y->v2 + 2*q1*y->v2 - 2*q1*x->v2 - pow(q1,2)*x->v2; - - nash = nash1*nash1 + nash2*nash2; - - if(nash < bestnash) { - bestnash = nash; - bestnash1 = nash1; - bestnash2 = nash2; - bestq1 = q1; - bestq2 = q2; - } - } - } - - printf("%lf,%lf,%lf,%lf\n",X,Y,bestnash1,bestnash2,bestq1,bestq2); - - return 0; -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/wavefront/example/example.input.data cctools-7.1.2/wavefront/example/example.input.data --- cctools-7.0.22/wavefront/example/example.input.data 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/example/example.input.data 1970-01-01 00:00:00.000000000 +0000 @@ -1,1000 +0,0 @@ -0 0 10,10,5,5 -0 0 10,10,5,5 -1 0 11,10,6,5 -0 1 10,11,5,6 -2 0 12,10,7,5 -0 2 10,12,5,7 -3 0 13,10,8,5 -0 3 10,13,5,8 -4 0 14,10,9,5 -0 4 10,14,5,9 -5 0 15,10,10,5 -0 5 10,15,5,10 -6 0 16,10,11,5 -0 6 10,16,5,11 -7 0 17,10,12,5 -0 7 10,17,5,12 -8 0 18,10,13,5 -0 8 10,18,5,13 -9 0 19,10,14,5 -0 9 10,19,5,14 -10 0 20,10,15,5 -0 10 10,20,5,15 -11 0 21,10,16,5 -0 11 10,21,5,16 -12 0 22,10,17,5 -0 12 10,22,5,17 -13 0 23,10,18,5 -0 13 10,23,5,18 -14 0 24,10,19,5 -0 14 10,24,5,19 -15 0 25,10,20,5 -0 15 10,25,5,20 -16 0 26,10,21,5 -0 16 10,26,5,21 -17 0 27,10,22,5 -0 17 10,27,5,22 -18 0 28,10,23,5 -0 18 10,28,5,23 -19 0 29,10,24,5 -0 19 10,29,5,24 -20 0 30,10,25,5 -0 20 10,30,5,25 -21 0 31,10,26,5 -0 21 10,31,5,26 -22 0 32,10,27,5 -0 22 10,32,5,27 -23 0 33,10,28,5 -0 23 10,33,5,28 -24 0 34,10,29,5 -0 24 10,34,5,29 -25 0 35,10,30,5 -0 25 10,35,5,30 -26 0 36,10,31,5 -0 26 10,36,5,31 -27 0 37,10,32,5 -0 27 10,37,5,32 -28 0 38,10,33,5 -0 28 10,38,5,33 -29 0 39,10,34,5 -0 29 10,39,5,34 -30 0 40,10,35,5 -0 30 10,40,5,35 -31 0 41,10,36,5 -0 31 10,41,5,36 -32 0 42,10,37,5 -0 32 10,42,5,37 -33 0 43,10,38,5 -0 33 10,43,5,38 -34 0 44,10,39,5 -0 34 10,44,5,39 -35 0 45,10,40,5 -0 35 10,45,5,40 -36 0 46,10,41,5 -0 36 10,46,5,41 -37 0 47,10,42,5 -0 37 10,47,5,42 -38 0 48,10,43,5 -0 38 10,48,5,43 -39 0 49,10,44,5 -0 39 10,49,5,44 -40 0 50,10,45,5 -0 40 10,50,5,45 -41 0 51,10,46,5 -0 41 10,51,5,46 -42 0 52,10,47,5 -0 42 10,52,5,47 -43 0 53,10,48,5 -0 43 10,53,5,48 -44 0 54,10,49,5 -0 44 10,54,5,49 -45 0 55,10,50,5 -0 45 10,55,5,50 -46 0 56,10,51,5 -0 46 10,56,5,51 -47 0 57,10,52,5 -0 47 10,57,5,52 -48 0 58,10,53,5 -0 48 10,58,5,53 -49 0 59,10,54,5 -0 49 10,59,5,54 -50 0 60,10,55,5 -0 50 10,60,5,55 -51 0 61,10,56,5 -0 51 10,61,5,56 -52 0 62,10,57,5 -0 52 10,62,5,57 -53 0 63,10,58,5 -0 53 10,63,5,58 -54 0 64,10,59,5 -0 54 10,64,5,59 -55 0 65,10,60,5 -0 55 10,65,5,60 -56 0 66,10,61,5 -0 56 10,66,5,61 -57 0 67,10,62,5 -0 57 10,67,5,62 -58 0 68,10,63,5 -0 58 10,68,5,63 -59 0 69,10,64,5 -0 59 10,69,5,64 -60 0 70,10,65,5 -0 60 10,70,5,65 -61 0 71,10,66,5 -0 61 10,71,5,66 -62 0 72,10,67,5 -0 62 10,72,5,67 -63 0 73,10,68,5 -0 63 10,73,5,68 -64 0 74,10,69,5 -0 64 10,74,5,69 -65 0 75,10,70,5 -0 65 10,75,5,70 -66 0 76,10,71,5 -0 66 10,76,5,71 -67 0 77,10,72,5 -0 67 10,77,5,72 -68 0 78,10,73,5 -0 68 10,78,5,73 -69 0 79,10,74,5 -0 69 10,79,5,74 -70 0 80,10,75,5 -0 70 10,80,5,75 -71 0 81,10,76,5 -0 71 10,81,5,76 -72 0 82,10,77,5 -0 72 10,82,5,77 -73 0 83,10,78,5 -0 73 10,83,5,78 -74 0 84,10,79,5 -0 74 10,84,5,79 -75 0 85,10,80,5 -0 75 10,85,5,80 -76 0 86,10,81,5 -0 76 10,86,5,81 -77 0 87,10,82,5 -0 77 10,87,5,82 -78 0 88,10,83,5 -0 78 10,88,5,83 -79 0 89,10,84,5 -0 79 10,89,5,84 -80 0 90,10,85,5 -0 80 10,90,5,85 -81 0 91,10,86,5 -0 81 10,91,5,86 -82 0 92,10,87,5 -0 82 10,92,5,87 -83 0 93,10,88,5 -0 83 10,93,5,88 -84 0 94,10,89,5 -0 84 10,94,5,89 -85 0 95,10,90,5 -0 85 10,95,5,90 -86 0 96,10,91,5 -0 86 10,96,5,91 -87 0 97,10,92,5 -0 87 10,97,5,92 -88 0 98,10,93,5 -0 88 10,98,5,93 -89 0 99,10,94,5 -0 89 10,99,5,94 -90 0 100,10,95,5 -0 90 10,100,5,95 -91 0 101,10,96,5 -0 91 10,101,5,96 -92 0 102,10,97,5 -0 92 10,102,5,97 -93 0 103,10,98,5 -0 93 10,103,5,98 -94 0 104,10,99,5 -0 94 10,104,5,99 -95 0 105,10,100,5 -0 95 10,105,5,100 -96 0 106,10,101,5 -0 96 10,106,5,101 -97 0 107,10,102,5 -0 97 10,107,5,102 -98 0 108,10,103,5 -0 98 10,108,5,103 -99 0 109,10,104,5 -0 99 10,109,5,104 -100 0 110,10,105,5 -0 100 10,110,5,105 -101 0 111,10,106,5 -0 101 10,111,5,106 -102 0 112,10,107,5 -0 102 10,112,5,107 -103 0 113,10,108,5 -0 103 10,113,5,108 -104 0 114,10,109,5 -0 104 10,114,5,109 -105 0 115,10,110,5 -0 105 10,115,5,110 -106 0 116,10,111,5 -0 106 10,116,5,111 -107 0 117,10,112,5 -0 107 10,117,5,112 -108 0 118,10,113,5 -0 108 10,118,5,113 -109 0 119,10,114,5 -0 109 10,119,5,114 -110 0 120,10,115,5 -0 110 10,120,5,115 -111 0 121,10,116,5 -0 111 10,121,5,116 -112 0 122,10,117,5 -0 112 10,122,5,117 -113 0 123,10,118,5 -0 113 10,123,5,118 -114 0 124,10,119,5 -0 114 10,124,5,119 -115 0 125,10,120,5 -0 115 10,125,5,120 -116 0 126,10,121,5 -0 116 10,126,5,121 -117 0 127,10,122,5 -0 117 10,127,5,122 -118 0 128,10,123,5 -0 118 10,128,5,123 -119 0 129,10,124,5 -0 119 10,129,5,124 -120 0 130,10,125,5 -0 120 10,130,5,125 -121 0 131,10,126,5 -0 121 10,131,5,126 -122 0 132,10,127,5 -0 122 10,132,5,127 -123 0 133,10,128,5 -0 123 10,133,5,128 -124 0 134,10,129,5 -0 124 10,134,5,129 -125 0 135,10,130,5 -0 125 10,135,5,130 -126 0 136,10,131,5 -0 126 10,136,5,131 -127 0 137,10,132,5 -0 127 10,137,5,132 -128 0 138,10,133,5 -0 128 10,138,5,133 -129 0 139,10,134,5 -0 129 10,139,5,134 -130 0 140,10,135,5 -0 130 10,140,5,135 -131 0 141,10,136,5 -0 131 10,141,5,136 -132 0 142,10,137,5 -0 132 10,142,5,137 -133 0 143,10,138,5 -0 133 10,143,5,138 -134 0 144,10,139,5 -0 134 10,144,5,139 -135 0 145,10,140,5 -0 135 10,145,5,140 -136 0 146,10,141,5 -0 136 10,146,5,141 -137 0 147,10,142,5 -0 137 10,147,5,142 -138 0 148,10,143,5 -0 138 10,148,5,143 -139 0 149,10,144,5 -0 139 10,149,5,144 -140 0 150,10,145,5 -0 140 10,150,5,145 -141 0 151,10,146,5 -0 141 10,151,5,146 -142 0 152,10,147,5 -0 142 10,152,5,147 -143 0 153,10,148,5 -0 143 10,153,5,148 -144 0 154,10,149,5 -0 144 10,154,5,149 -145 0 155,10,150,5 -0 145 10,155,5,150 -146 0 156,10,151,5 -0 146 10,156,5,151 -147 0 157,10,152,5 -0 147 10,157,5,152 -148 0 158,10,153,5 -0 148 10,158,5,153 -149 0 159,10,154,5 -0 149 10,159,5,154 -150 0 160,10,155,5 -0 150 10,160,5,155 -151 0 161,10,156,5 -0 151 10,161,5,156 -152 0 162,10,157,5 -0 152 10,162,5,157 -153 0 163,10,158,5 -0 153 10,163,5,158 -154 0 164,10,159,5 -0 154 10,164,5,159 -155 0 165,10,160,5 -0 155 10,165,5,160 -156 0 166,10,161,5 -0 156 10,166,5,161 -157 0 167,10,162,5 -0 157 10,167,5,162 -158 0 168,10,163,5 -0 158 10,168,5,163 -159 0 169,10,164,5 -0 159 10,169,5,164 -160 0 170,10,165,5 -0 160 10,170,5,165 -161 0 171,10,166,5 -0 161 10,171,5,166 -162 0 172,10,167,5 -0 162 10,172,5,167 -163 0 173,10,168,5 -0 163 10,173,5,168 -164 0 174,10,169,5 -0 164 10,174,5,169 -165 0 175,10,170,5 -0 165 10,175,5,170 -166 0 176,10,171,5 -0 166 10,176,5,171 -167 0 177,10,172,5 -0 167 10,177,5,172 -168 0 178,10,173,5 -0 168 10,178,5,173 -169 0 179,10,174,5 -0 169 10,179,5,174 -170 0 180,10,175,5 -0 170 10,180,5,175 -171 0 181,10,176,5 -0 171 10,181,5,176 -172 0 182,10,177,5 -0 172 10,182,5,177 -173 0 183,10,178,5 -0 173 10,183,5,178 -174 0 184,10,179,5 -0 174 10,184,5,179 -175 0 185,10,180,5 -0 175 10,185,5,180 -176 0 186,10,181,5 -0 176 10,186,5,181 -177 0 187,10,182,5 -0 177 10,187,5,182 -178 0 188,10,183,5 -0 178 10,188,5,183 -179 0 189,10,184,5 -0 179 10,189,5,184 -180 0 190,10,185,5 -0 180 10,190,5,185 -181 0 191,10,186,5 -0 181 10,191,5,186 -182 0 192,10,187,5 -0 182 10,192,5,187 -183 0 193,10,188,5 -0 183 10,193,5,188 -184 0 194,10,189,5 -0 184 10,194,5,189 -185 0 195,10,190,5 -0 185 10,195,5,190 -186 0 196,10,191,5 -0 186 10,196,5,191 -187 0 197,10,192,5 -0 187 10,197,5,192 -188 0 198,10,193,5 -0 188 10,198,5,193 -189 0 199,10,194,5 -0 189 10,199,5,194 -190 0 200,10,195,5 -0 190 10,200,5,195 -191 0 201,10,196,5 -0 191 10,201,5,196 -192 0 202,10,197,5 -0 192 10,202,5,197 -193 0 203,10,198,5 -0 193 10,203,5,198 -194 0 204,10,199,5 -0 194 10,204,5,199 -195 0 205,10,200,5 -0 195 10,205,5,200 -196 0 206,10,201,5 -0 196 10,206,5,201 -197 0 207,10,202,5 -0 197 10,207,5,202 -198 0 208,10,203,5 -0 198 10,208,5,203 -199 0 209,10,204,5 -0 199 10,209,5,204 -200 0 210,10,205,5 -0 200 10,210,5,205 -201 0 211,10,206,5 -0 201 10,211,5,206 -202 0 212,10,207,5 -0 202 10,212,5,207 -203 0 213,10,208,5 -0 203 10,213,5,208 -204 0 214,10,209,5 -0 204 10,214,5,209 -205 0 215,10,210,5 -0 205 10,215,5,210 -206 0 216,10,211,5 -0 206 10,216,5,211 -207 0 217,10,212,5 -0 207 10,217,5,212 -208 0 218,10,213,5 -0 208 10,218,5,213 -209 0 219,10,214,5 -0 209 10,219,5,214 -210 0 220,10,215,5 -0 210 10,220,5,215 -211 0 221,10,216,5 -0 211 10,221,5,216 -212 0 222,10,217,5 -0 212 10,222,5,217 -213 0 223,10,218,5 -0 213 10,223,5,218 -214 0 224,10,219,5 -0 214 10,224,5,219 -215 0 225,10,220,5 -0 215 10,225,5,220 -216 0 226,10,221,5 -0 216 10,226,5,221 -217 0 227,10,222,5 -0 217 10,227,5,222 -218 0 228,10,223,5 -0 218 10,228,5,223 -219 0 229,10,224,5 -0 219 10,229,5,224 -220 0 230,10,225,5 -0 220 10,230,5,225 -221 0 231,10,226,5 -0 221 10,231,5,226 -222 0 232,10,227,5 -0 222 10,232,5,227 -223 0 233,10,228,5 -0 223 10,233,5,228 -224 0 234,10,229,5 -0 224 10,234,5,229 -225 0 235,10,230,5 -0 225 10,235,5,230 -226 0 236,10,231,5 -0 226 10,236,5,231 -227 0 237,10,232,5 -0 227 10,237,5,232 -228 0 238,10,233,5 -0 228 10,238,5,233 -229 0 239,10,234,5 -0 229 10,239,5,234 -230 0 240,10,235,5 -0 230 10,240,5,235 -231 0 241,10,236,5 -0 231 10,241,5,236 -232 0 242,10,237,5 -0 232 10,242,5,237 -233 0 243,10,238,5 -0 233 10,243,5,238 -234 0 244,10,239,5 -0 234 10,244,5,239 -235 0 245,10,240,5 -0 235 10,245,5,240 -236 0 246,10,241,5 -0 236 10,246,5,241 -237 0 247,10,242,5 -0 237 10,247,5,242 -238 0 248,10,243,5 -0 238 10,248,5,243 -239 0 249,10,244,5 -0 239 10,249,5,244 -240 0 250,10,245,5 -0 240 10,250,5,245 -241 0 251,10,246,5 -0 241 10,251,5,246 -242 0 252,10,247,5 -0 242 10,252,5,247 -243 0 253,10,248,5 -0 243 10,253,5,248 -244 0 254,10,249,5 -0 244 10,254,5,249 -245 0 255,10,250,5 -0 245 10,255,5,250 -246 0 256,10,251,5 -0 246 10,256,5,251 -247 0 257,10,252,5 -0 247 10,257,5,252 -248 0 258,10,253,5 -0 248 10,258,5,253 -249 0 259,10,254,5 -0 249 10,259,5,254 -250 0 260,10,255,5 -0 250 10,260,5,255 -251 0 261,10,256,5 -0 251 10,261,5,256 -252 0 262,10,257,5 -0 252 10,262,5,257 -253 0 263,10,258,5 -0 253 10,263,5,258 -254 0 264,10,259,5 -0 254 10,264,5,259 -255 0 265,10,260,5 -0 255 10,265,5,260 -256 0 266,10,261,5 -0 256 10,266,5,261 -257 0 267,10,262,5 -0 257 10,267,5,262 -258 0 268,10,263,5 -0 258 10,268,5,263 -259 0 269,10,264,5 -0 259 10,269,5,264 -260 0 270,10,265,5 -0 260 10,270,5,265 -261 0 271,10,266,5 -0 261 10,271,5,266 -262 0 272,10,267,5 -0 262 10,272,5,267 -263 0 273,10,268,5 -0 263 10,273,5,268 -264 0 274,10,269,5 -0 264 10,274,5,269 -265 0 275,10,270,5 -0 265 10,275,5,270 -266 0 276,10,271,5 -0 266 10,276,5,271 -267 0 277,10,272,5 -0 267 10,277,5,272 -268 0 278,10,273,5 -0 268 10,278,5,273 -269 0 279,10,274,5 -0 269 10,279,5,274 -270 0 280,10,275,5 -0 270 10,280,5,275 -271 0 281,10,276,5 -0 271 10,281,5,276 -272 0 282,10,277,5 -0 272 10,282,5,277 -273 0 283,10,278,5 -0 273 10,283,5,278 -274 0 284,10,279,5 -0 274 10,284,5,279 -275 0 285,10,280,5 -0 275 10,285,5,280 -276 0 286,10,281,5 -0 276 10,286,5,281 -277 0 287,10,282,5 -0 277 10,287,5,282 -278 0 288,10,283,5 -0 278 10,288,5,283 -279 0 289,10,284,5 -0 279 10,289,5,284 -280 0 290,10,285,5 -0 280 10,290,5,285 -281 0 291,10,286,5 -0 281 10,291,5,286 -282 0 292,10,287,5 -0 282 10,292,5,287 -283 0 293,10,288,5 -0 283 10,293,5,288 -284 0 294,10,289,5 -0 284 10,294,5,289 -285 0 295,10,290,5 -0 285 10,295,5,290 -286 0 296,10,291,5 -0 286 10,296,5,291 -287 0 297,10,292,5 -0 287 10,297,5,292 -288 0 298,10,293,5 -0 288 10,298,5,293 -289 0 299,10,294,5 -0 289 10,299,5,294 -290 0 300,10,295,5 -0 290 10,300,5,295 -291 0 301,10,296,5 -0 291 10,301,5,296 -292 0 302,10,297,5 -0 292 10,302,5,297 -293 0 303,10,298,5 -0 293 10,303,5,298 -294 0 304,10,299,5 -0 294 10,304,5,299 -295 0 305,10,300,5 -0 295 10,305,5,300 -296 0 306,10,301,5 -0 296 10,306,5,301 -297 0 307,10,302,5 -0 297 10,307,5,302 -298 0 308,10,303,5 -0 298 10,308,5,303 -299 0 309,10,304,5 -0 299 10,309,5,304 -300 0 310,10,305,5 -0 300 10,310,5,305 -301 0 311,10,306,5 -0 301 10,311,5,306 -302 0 312,10,307,5 -0 302 10,312,5,307 -303 0 313,10,308,5 -0 303 10,313,5,308 -304 0 314,10,309,5 -0 304 10,314,5,309 -305 0 315,10,310,5 -0 305 10,315,5,310 -306 0 316,10,311,5 -0 306 10,316,5,311 -307 0 317,10,312,5 -0 307 10,317,5,312 -308 0 318,10,313,5 -0 308 10,318,5,313 -309 0 319,10,314,5 -0 309 10,319,5,314 -310 0 320,10,315,5 -0 310 10,320,5,315 -311 0 321,10,316,5 -0 311 10,321,5,316 -312 0 322,10,317,5 -0 312 10,322,5,317 -313 0 323,10,318,5 -0 313 10,323,5,318 -314 0 324,10,319,5 -0 314 10,324,5,319 -315 0 325,10,320,5 -0 315 10,325,5,320 -316 0 326,10,321,5 -0 316 10,326,5,321 -317 0 327,10,322,5 -0 317 10,327,5,322 -318 0 328,10,323,5 -0 318 10,328,5,323 -319 0 329,10,324,5 -0 319 10,329,5,324 -320 0 330,10,325,5 -0 320 10,330,5,325 -321 0 331,10,326,5 -0 321 10,331,5,326 -322 0 332,10,327,5 -0 322 10,332,5,327 -323 0 333,10,328,5 -0 323 10,333,5,328 -324 0 334,10,329,5 -0 324 10,334,5,329 -325 0 335,10,330,5 -0 325 10,335,5,330 -326 0 336,10,331,5 -0 326 10,336,5,331 -327 0 337,10,332,5 -0 327 10,337,5,332 -328 0 338,10,333,5 -0 328 10,338,5,333 -329 0 339,10,334,5 -0 329 10,339,5,334 -330 0 340,10,335,5 -0 330 10,340,5,335 -331 0 341,10,336,5 -0 331 10,341,5,336 -332 0 342,10,337,5 -0 332 10,342,5,337 -333 0 343,10,338,5 -0 333 10,343,5,338 -334 0 344,10,339,5 -0 334 10,344,5,339 -335 0 345,10,340,5 -0 335 10,345,5,340 -336 0 346,10,341,5 -0 336 10,346,5,341 -337 0 347,10,342,5 -0 337 10,347,5,342 -338 0 348,10,343,5 -0 338 10,348,5,343 -339 0 349,10,344,5 -0 339 10,349,5,344 -340 0 350,10,345,5 -0 340 10,350,5,345 -341 0 351,10,346,5 -0 341 10,351,5,346 -342 0 352,10,347,5 -0 342 10,352,5,347 -343 0 353,10,348,5 -0 343 10,353,5,348 -344 0 354,10,349,5 -0 344 10,354,5,349 -345 0 355,10,350,5 -0 345 10,355,5,350 -346 0 356,10,351,5 -0 346 10,356,5,351 -347 0 357,10,352,5 -0 347 10,357,5,352 -348 0 358,10,353,5 -0 348 10,358,5,353 -349 0 359,10,354,5 -0 349 10,359,5,354 -350 0 360,10,355,5 -0 350 10,360,5,355 -351 0 361,10,356,5 -0 351 10,361,5,356 -352 0 362,10,357,5 -0 352 10,362,5,357 -353 0 363,10,358,5 -0 353 10,363,5,358 -354 0 364,10,359,5 -0 354 10,364,5,359 -355 0 365,10,360,5 -0 355 10,365,5,360 -356 0 366,10,361,5 -0 356 10,366,5,361 -357 0 367,10,362,5 -0 357 10,367,5,362 -358 0 368,10,363,5 -0 358 10,368,5,363 -359 0 369,10,364,5 -0 359 10,369,5,364 -360 0 370,10,365,5 -0 360 10,370,5,365 -361 0 371,10,366,5 -0 361 10,371,5,366 -362 0 372,10,367,5 -0 362 10,372,5,367 -363 0 373,10,368,5 -0 363 10,373,5,368 -364 0 374,10,369,5 -0 364 10,374,5,369 -365 0 375,10,370,5 -0 365 10,375,5,370 -366 0 376,10,371,5 -0 366 10,376,5,371 -367 0 377,10,372,5 -0 367 10,377,5,372 -368 0 378,10,373,5 -0 368 10,378,5,373 -369 0 379,10,374,5 -0 369 10,379,5,374 -370 0 380,10,375,5 -0 370 10,380,5,375 -371 0 381,10,376,5 -0 371 10,381,5,376 -372 0 382,10,377,5 -0 372 10,382,5,377 -373 0 383,10,378,5 -0 373 10,383,5,378 -374 0 384,10,379,5 -0 374 10,384,5,379 -375 0 385,10,380,5 -0 375 10,385,5,380 -376 0 386,10,381,5 -0 376 10,386,5,381 -377 0 387,10,382,5 -0 377 10,387,5,382 -378 0 388,10,383,5 -0 378 10,388,5,383 -379 0 389,10,384,5 -0 379 10,389,5,384 -380 0 390,10,385,5 -0 380 10,390,5,385 -381 0 391,10,386,5 -0 381 10,391,5,386 -382 0 392,10,387,5 -0 382 10,392,5,387 -383 0 393,10,388,5 -0 383 10,393,5,388 -384 0 394,10,389,5 -0 384 10,394,5,389 -385 0 395,10,390,5 -0 385 10,395,5,390 -386 0 396,10,391,5 -0 386 10,396,5,391 -387 0 397,10,392,5 -0 387 10,397,5,392 -388 0 398,10,393,5 -0 388 10,398,5,393 -389 0 399,10,394,5 -0 389 10,399,5,394 -390 0 400,10,395,5 -0 390 10,400,5,395 -391 0 401,10,396,5 -0 391 10,401,5,396 -392 0 402,10,397,5 -0 392 10,402,5,397 -393 0 403,10,398,5 -0 393 10,403,5,398 -394 0 404,10,399,5 -0 394 10,404,5,399 -395 0 405,10,400,5 -0 395 10,405,5,400 -396 0 406,10,401,5 -0 396 10,406,5,401 -397 0 407,10,402,5 -0 397 10,407,5,402 -398 0 408,10,403,5 -0 398 10,408,5,403 -399 0 409,10,404,5 -0 399 10,409,5,404 -400 0 410,10,405,5 -0 400 10,410,5,405 -401 0 411,10,406,5 -0 401 10,411,5,406 -402 0 412,10,407,5 -0 402 10,412,5,407 -403 0 413,10,408,5 -0 403 10,413,5,408 -404 0 414,10,409,5 -0 404 10,414,5,409 -405 0 415,10,410,5 -0 405 10,415,5,410 -406 0 416,10,411,5 -0 406 10,416,5,411 -407 0 417,10,412,5 -0 407 10,417,5,412 -408 0 418,10,413,5 -0 408 10,418,5,413 -409 0 419,10,414,5 -0 409 10,419,5,414 -410 0 420,10,415,5 -0 410 10,420,5,415 -411 0 421,10,416,5 -0 411 10,421,5,416 -412 0 422,10,417,5 -0 412 10,422,5,417 -413 0 423,10,418,5 -0 413 10,423,5,418 -414 0 424,10,419,5 -0 414 10,424,5,419 -415 0 425,10,420,5 -0 415 10,425,5,420 -416 0 426,10,421,5 -0 416 10,426,5,421 -417 0 427,10,422,5 -0 417 10,427,5,422 -418 0 428,10,423,5 -0 418 10,428,5,423 -419 0 429,10,424,5 -0 419 10,429,5,424 -420 0 430,10,425,5 -0 420 10,430,5,425 -421 0 431,10,426,5 -0 421 10,431,5,426 -422 0 432,10,427,5 -0 422 10,432,5,427 -423 0 433,10,428,5 -0 423 10,433,5,428 -424 0 434,10,429,5 -0 424 10,434,5,429 -425 0 435,10,430,5 -0 425 10,435,5,430 -426 0 436,10,431,5 -0 426 10,436,5,431 -427 0 437,10,432,5 -0 427 10,437,5,432 -428 0 438,10,433,5 -0 428 10,438,5,433 -429 0 439,10,434,5 -0 429 10,439,5,434 -430 0 440,10,435,5 -0 430 10,440,5,435 -431 0 441,10,436,5 -0 431 10,441,5,436 -432 0 442,10,437,5 -0 432 10,442,5,437 -433 0 443,10,438,5 -0 433 10,443,5,438 -434 0 444,10,439,5 -0 434 10,444,5,439 -435 0 445,10,440,5 -0 435 10,445,5,440 -436 0 446,10,441,5 -0 436 10,446,5,441 -437 0 447,10,442,5 -0 437 10,447,5,442 -438 0 448,10,443,5 -0 438 10,448,5,443 -439 0 449,10,444,5 -0 439 10,449,5,444 -440 0 450,10,445,5 -0 440 10,450,5,445 -441 0 451,10,446,5 -0 441 10,451,5,446 -442 0 452,10,447,5 -0 442 10,452,5,447 -443 0 453,10,448,5 -0 443 10,453,5,448 -444 0 454,10,449,5 -0 444 10,454,5,449 -445 0 455,10,450,5 -0 445 10,455,5,450 -446 0 456,10,451,5 -0 446 10,456,5,451 -447 0 457,10,452,5 -0 447 10,457,5,452 -448 0 458,10,453,5 -0 448 10,458,5,453 -449 0 459,10,454,5 -0 449 10,459,5,454 -450 0 460,10,455,5 -0 450 10,460,5,455 -451 0 461,10,456,5 -0 451 10,461,5,456 -452 0 462,10,457,5 -0 452 10,462,5,457 -453 0 463,10,458,5 -0 453 10,463,5,458 -454 0 464,10,459,5 -0 454 10,464,5,459 -455 0 465,10,460,5 -0 455 10,465,5,460 -456 0 466,10,461,5 -0 456 10,466,5,461 -457 0 467,10,462,5 -0 457 10,467,5,462 -458 0 468,10,463,5 -0 458 10,468,5,463 -459 0 469,10,464,5 -0 459 10,469,5,464 -460 0 470,10,465,5 -0 460 10,470,5,465 -461 0 471,10,466,5 -0 461 10,471,5,466 -462 0 472,10,467,5 -0 462 10,472,5,467 -463 0 473,10,468,5 -0 463 10,473,5,468 -464 0 474,10,469,5 -0 464 10,474,5,469 -465 0 475,10,470,5 -0 465 10,475,5,470 -466 0 476,10,471,5 -0 466 10,476,5,471 -467 0 477,10,472,5 -0 467 10,477,5,472 -468 0 478,10,473,5 -0 468 10,478,5,473 -469 0 479,10,474,5 -0 469 10,479,5,474 -470 0 480,10,475,5 -0 470 10,480,5,475 -471 0 481,10,476,5 -0 471 10,481,5,476 -472 0 482,10,477,5 -0 472 10,482,5,477 -473 0 483,10,478,5 -0 473 10,483,5,478 -474 0 484,10,479,5 -0 474 10,484,5,479 -475 0 485,10,480,5 -0 475 10,485,5,480 -476 0 486,10,481,5 -0 476 10,486,5,481 -477 0 487,10,482,5 -0 477 10,487,5,482 -478 0 488,10,483,5 -0 478 10,488,5,483 -479 0 489,10,484,5 -0 479 10,489,5,484 -480 0 490,10,485,5 -0 480 10,490,5,485 -481 0 491,10,486,5 -0 481 10,491,5,486 -482 0 492,10,487,5 -0 482 10,492,5,487 -483 0 493,10,488,5 -0 483 10,493,5,488 -484 0 494,10,489,5 -0 484 10,494,5,489 -485 0 495,10,490,5 -0 485 10,495,5,490 -486 0 496,10,491,5 -0 486 10,496,5,491 -487 0 497,10,492,5 -0 487 10,497,5,492 -488 0 498,10,493,5 -0 488 10,498,5,493 -489 0 499,10,494,5 -0 489 10,499,5,494 -490 0 500,10,495,5 -0 490 10,500,5,495 -491 0 501,10,496,5 -0 491 10,501,5,496 -492 0 502,10,497,5 -0 492 10,502,5,497 -493 0 503,10,498,5 -0 493 10,503,5,498 -494 0 504,10,499,5 -0 494 10,504,5,499 -495 0 505,10,500,5 -0 495 10,505,5,500 -496 0 506,10,501,5 -0 496 10,506,5,501 -497 0 507,10,502,5 -0 497 10,507,5,502 -498 0 508,10,503,5 -0 498 10,508,5,503 -499 0 509,10,504,5 -0 499 10,509,5,504 diff -Nru cctools-7.0.22/wavefront/example/README cctools-7.1.2/wavefront/example/README --- cctools-7.0.22/wavefront/example/README 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/example/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ - -This is an example problem to use with the Wavefront abstraction. -The abstraction computes the contents of a large matrix M such that: - -M[i,j] = F(M[i-1,j],M[i,j-1],M[i-1,j-1]) - -To run Wavefront, you need to set up an input file with the -initial boundary values of M, and provide a function that computes -a new cell from the adjacent cells. The abstraction will produce -an output file with all of the values of the matrix. - -This directory contains a toy problem provided by Dr. Kenneth Judd -at Stanford University. It represents a common category of problems -found in economics. The function computes the Nash equilibrium between -two players in a game. - -Compile the example function like this: - -% gcc example.func.c -o example.func -lm - -To run a sample problem, start the Wavefront master process, -specify the size of the problem, the function, the input data, -and where to place the output data: - -% wavefront_master example.func 10 10 example.input.data example.output.data - -Then, start one or more worker processes, and tell them to contact -the master process using host name and port number: - -% work_queue_worker mymachine.somewhere.edu 9068 - -The master process will then output a series of lines detailing the -progress of the entire computation. If the master fails or is killed, -it can simply be restarted with the same command. It will read in the -already completed work, and continue where it left off. - -Enough input is provided for a problem of up to 500x500. - -Each function call takes about 5 seconds to execute on a modern -desktop processor. Sequentially the problem is O(n^2). By adding -workers, you can parallelize the work into O(n) time. - -problem sequential parallel -size time time ------------------------------- -10x10 500s 50s -100x100 50000s 500s -500x500 1250000s 2500s diff -Nru cctools-7.0.22/wavefront/Makefile cctools-7.1.2/wavefront/Makefile --- cctools-7.0.22/wavefront/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -include ../config.mk -include ../rules.mk - -PHONY_TARGETS ?= src -TARGETS ?= $(PHONY_TARGETS) - -all: $(TARGETS) - -$(TARGETS): - @$(MAKE) -C $@ - -CLEAN_TARGETS = $(TARGETS:%=clean-%) -$(CLEAN_TARGETS): - @$(MAKE) -C $(@:clean-%=%) clean -clean: $(CLEAN_TARGETS) - -INSTALL_TARGETS = $(TARGETS:%=install-%) -$(INSTALL_TARGETS): - @$(MAKE) -C $(@:install-%=%) install -install: $(INSTALL_TARGETS) - -TEST_TARGETS = $(TARGETS:%=test-%) -$(TEST_TARGETS): - @$(MAKE) -C $(@:test-%=%) test -test: $(TEST_TARGETS) - -.PHONY: $(PHONY_TARGETS) $(CLEAN_TARGETS) $(INSTALL_TARGETS) $(TEST_TARGETS) all clean install test diff -Nru cctools-7.0.22/wavefront/src/.gitignore cctools-7.1.2/wavefront/src/.gitignore --- cctools-7.0.22/wavefront/src/.gitignore 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/src/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -wavefront_master -wavefront diff -Nru cctools-7.0.22/wavefront/src/Makefile cctools-7.1.2/wavefront/src/Makefile --- cctools-7.0.22/wavefront/src/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/src/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -include ../../config.mk -include ../../rules.mk - -EXTERNAL_DEPENDENCIES = ../../batch_job/src/libbatch_job.a ../../work_queue/src/libwork_queue.a ../../chirp/src/libchirp.a ../../dttools/src/libdttools.a -PROGRAMS = wavefront wavefront_master -TARGETS = $(PROGRAMS) - -all: $(PROGRAMS) -$(PROGRAMS): $(EXTERNAL_DEPENDENCIES) - -clean: - rm -f $(PROGRAMS) *.o - -install: all - mkdir -p $(CCTOOLS_INSTALL_DIR)/bin - cp $(PROGRAMS) $(CCTOOLS_INSTALL_DIR)/bin/ - -test: all - -.PHONY: all clean install test diff -Nru cctools-7.0.22/wavefront/src/wavefront.c cctools-7.1.2/wavefront/src/wavefront.c --- cctools-7.0.22/wavefront/src/wavefront.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/src/wavefront.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,622 +0,0 @@ - -/* -Copyright (C) 2008- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include -#include -#include -#include - -#include "cctools.h" -#include "list.h" -#include "itable.h" -#include "debug.h" -#include "batch_job.h" -#include "bitmap.h" -#include "load_average.h" -#include "macros.h" -#include "timestamp.h" -#include "stringtools.h" -#include "getopt_aux.h" - -#define WAVEFRONT_TASK_STATE_COMPLETE MAKE_RGBA(0,0,255,0) -#define WAVEFRONT_TASK_STATE_RUNNING MAKE_RGBA(0,255,0,0) -#define WAVEFRONT_TASK_STATE_READY MAKE_RGBA(255,255,0,0) -#define WAVEFRONT_TASK_STATE_NOTREADY MAKE_RGBA(255,0,0,0) - -#define WAVEFRONT_MODE_AUTO 0 -#define WAVEFRONT_MODE_MULTICORE 1 -#define WAVEFRONT_MODE_DISTRIBUTED 2 - -static int wavefront_mode = WAVEFRONT_MODE_MULTICORE; - -const char * function = "unknown"; -static int max_jobs_running = 1; -static const char * progress_bitmap_file = 0; -static int progress_bitmap_interval = 5; -static FILE * progress_log_file = 0; -static int abort_mode = 0; -static int block_size = 1; -static int batch_system_type = BATCH_QUEUE_TYPE_LOCAL; -static int verify_mode = 0; -static struct batch_queue * batch_q = 0; - -static int manual_max_jobs_running = 0; -static int manual_block_size = 0; - -static int xstart = 1; -static int ystart = 1; -static int xsize = 1; -static int ysize = 1; - -static int total_dispatch_time = 0; -static int total_execute_time = 0; -static int total_jobs_complete = 0; -static int total_cells_complete = 0; -static int total_cells = 0; - -static double average_dispatch_time = 30.0; -static double average_task_time = 1.0; - -struct wavefront_task { - int x; - int y; - int width; - int height; -}; - -struct wavefront_task * wavefront_task_create( int x, int y, int w, int h ) -{ - struct wavefront_task *n = malloc(sizeof(*n)); - n->x = x; - n->y = y; - n->width = w; - n->height = h; - return n; -} - -void wavefront_task_delete( struct wavefront_task *n ) -{ - free(n); -} - -void wavefront_task_initialize( struct bitmap *b, struct list * list ) -{ - int i, j; - - bitmap_reset(b,WAVEFRONT_TASK_STATE_NOTREADY); - - for(i=0;i<=xsize;i++) { - bitmap_set(b,i,0,WAVEFRONT_TASK_STATE_COMPLETE); - } - - for(j=0;j<=ysize;j++) { - bitmap_set(b,0,j,WAVEFRONT_TASK_STATE_COMPLETE); - } - - list_push_head(list,wavefront_task_create(xstart,ystart,block_size,block_size)); -} - -int wavefront_task_submit_recursive( struct wavefront_task *n ) -{ - int i,j; - - char command[PATH_MAX]; - char filename[PATH_MAX]; - char extra_output_files[PATH_MAX]; - char *extra_input_files=NULL; - - string_nformat(command, PATH_MAX, "./wavefront -M -X %d -Y %d ./%s %d %d >output.%d.%d 2>&1", n->x,n->y,function,n->width,n->height,n->x,n->y); - string_nformat(extra_output_files, PATH_MAX, "output.%d.%d",n->x,n->y); - extra_input_files = string_format("wavefront,%s",function); - - for(i=-1;iwidth;i++) { - string_nformat(filename, PATH_MAX, "R.%d.%d", n->x+i,n->y-1); - extra_input_files=string_combine(extra_input_files, ","); - extra_input_files=string_combine(extra_input_files, filename); - } - - for(j=0;jheight;j++) { - string_nformat(filename, PATH_MAX, "R.%d.%d",n->x-1,n->y+j); - extra_input_files=string_combine(extra_input_files, ","); - extra_input_files=string_combine(extra_input_files, filename); - } - - batch_job_id_t job_id = batch_job_submit(batch_q,command,extra_input_files,extra_output_files,0,0); - free(extra_input_files); - - return job_id; -} - -int wavefront_task_submit_single( struct wavefront_task *n ) -{ - char command[PATH_MAX * 5]; //Ugly, fix, should be the value from sysconf(ARG_MAX) - char leftfile[PATH_MAX]; - char bottomfile[PATH_MAX]; - char diagfile[PATH_MAX]; - char extra_input_files[PATH_MAX*4]; - - string_nformat(leftfile, PATH_MAX, "R.%d.%d", n->x-1, n->y); - string_nformat(bottomfile, PATH_MAX, "R.%d.%d", n->x, n->y-1); - string_nformat(diagfile, PATH_MAX, "R.%d.%d", n->x-1, n->y-1); - - string_nformat(extra_input_files, PATH_MAX*4, "%s,%s,%s,%s", function,leftfile,bottomfile,diagfile); - - string_nformat(command, PATH_MAX * 5, "./%s %s %s %s >R.%d.%d", function,leftfile,bottomfile,diagfile,n->x,n->y); - - return batch_job_submit(batch_q,command,extra_input_files,0,0,0); -} - -int wavefront_task_submit( struct wavefront_task *n ) -{ - if(n->width==1 && n->height==1) { - return wavefront_task_submit_single(n); - } else { - return wavefront_task_submit_recursive(n); - } -} - - -void wavefront_task_mark_range( struct wavefront_task *t, struct bitmap *b, int state ) -{ - int i,j; - - for(i=0;iwidth;i++) { - for(j=0;jheight;j++) { - bitmap_set(b,t->x+i-xstart+1,t->y+j-ystart+1,state); - } - } -} - -void wavefront_task_consider( struct bitmap *b, struct list *list, int x, int y ) -{ - int i,j; - - for(i=0;(ix+t->width,t->y); - wavefront_task_consider(b,list,t->x,t->y+t->height); - wavefront_task_delete(t); -} - -static double wavefront_multicore_model( int size, int cpus, double tasktime ) -{ - int slices = 2*size-1; - - double runtime=0; - int slicesize = 0; - int i; - - for(i=0;icpus) { - slicesize -= cpus; - runtime += tasktime; - } - - if(slicesize>0) { - runtime += tasktime; - } - } - - return runtime; -} - -static double wavefront_distributed_model( int size, int nodes, int cpus_per_node, double tasktime, int blocksize, double dispatchtime ) -{ - double blocktime = wavefront_multicore_model(blocksize,cpus_per_node,tasktime); - double runtime = wavefront_multicore_model( size/blocksize,nodes,blocktime+dispatchtime); - debug(D_DEBUG,"model: runtime=%.02lf for size=%d nodes=%d cpus=%d tasktime=%.02lf blocksize=%d dispatchtime=%.02lf",runtime,size,nodes,cpus_per_node,tasktime,blocksize,dispatchtime); - return runtime; -} - -static int find_best_block_size( int size, int nodes, int cpus_per_node, double task_time, double dispatch_time ) -{ - double t=0; - double lasttime=10000000; - int b; - - for(b=1;b<(xsize/4);b++) { - t = wavefront_distributed_model(size,nodes,cpus_per_node,task_time,b,dispatch_time); - if(t>lasttime) { - b--; - break; - } - - lasttime = t; - } - - return b; -} - -void save_status( struct bitmap *b, struct list *ready_list, struct itable *running_table ) -{ - static time_t last_saved = 0; - static time_t start_time = 0; - - time_t current = time(0); - if(!start_time) start_time = current; - - if(progress_bitmap_file) { - if((current-last_saved) >= progress_bitmap_interval) { - bitmap_save_bmp(b,progress_bitmap_file); - } - } - - fprintf(progress_log_file, - "%.2lf %% %d s %d %d %d %.02lf %.02lf\n", - 100.0*total_cells_complete/total_cells, - (int)(current-start_time), - list_size(ready_list), - itable_size(running_table), - total_cells_complete, - average_dispatch_time, - average_task_time); - fflush(0); -} - -static int check_configuration( const char *function, int xsize, int ysize ) -{ - char path[PATH_MAX]; - int i; - - printf("Checking for presence of function %s...\n",function); - - if(access(function,R_OK|X_OK)!=0) { - fprintf(stderr, "Error: Cannot access %s: %s\n",function,strerror(errno)); - fprintf(stderr, "You must provide an executable program named %s\n",function); - return 0; - } - - printf("Checking for initial data files...\n"); - - for(i=0;i<=xsize;i++) { - string_nformat(path,PATH_MAX,"R.%d.%d",xstart+i-1,ystart-1); - if(access(path,R_OK)!=0) { - fprintf(stderr, "Cannot access initial file %s: %s\n",path,strerror(errno)); - return 0; - } - } - - for(i=0;i<=ysize;i++) { - string_nformat(path,PATH_MAX,"R.%d.%d",xstart-1,ystart+i-1); - if(access(path,R_OK)!=0) { - fprintf(stderr, "Cannot access initial file %s: %s\n",path,strerror(errno)); - return 0; - } - } - - return 1; -} - -static double measure_task_time() -{ - struct wavefront_task *t = wavefront_task_create(1,1,1,1); - struct batch_job_info info; - batch_job_id_t jobid; - int test_jobs_complete = 0; - - batch_q = batch_queue_create(BATCH_QUEUE_TYPE_LOCAL); - - timestamp_t start = timestamp_get(); - timestamp_t stop; - - printf("Measuring wavefront_task execution time...\n"); - - do { - jobid = wavefront_task_submit_single(t); - if(jobid<0) { - fprintf(stderr,"wavefront: couldn't create a local process: %s\n",strerror(errno)); - exit(1); - } - - jobid = batch_job_wait(batch_q,&info); - if(jobid<0) { - fprintf(stderr,"wavefront: couldn't wait for process %" PRIbjid ": %s\n",jobid,strerror(errno)); - exit(1); - } - - if(!info.exited_normally || info.exit_code!=0) { - fprintf(stderr,"wavefront: %s exited with an error. See files R.1.1 and E.1.1 for details.\n",function); - exit(1); - } - - test_jobs_complete++; - stop = timestamp_get(); - - } while((stop-start)<5000000); - - double task_time = (stop-start)/test_jobs_complete/1000000.0; - - printf("Average execution time is %0.02lf\n",task_time); - - return task_time; -} - -static void show_help(const char *cmd) -{ - fprintf(stdout, "Use: %s [options] \n", cmd); - fprintf(stdout, "where options are:\n"); - fprintf(stdout, " %-30s Show this help screen\n", "-h,--help"); - fprintf(stdout, " %-30s Show version string\n", "-v,--version"); - fprintf(stdout, " %-30s Enable debugging for this subsystem. (Try -d all to start.)\n", "-d,--debug="); - fprintf(stdout, " %-30s Automatically choose between multicore and batch mode.\n", "-A,--auto"); - fprintf(stdout, " %-30s Save progress image to this file.\n", "-i,--bitmap="); - fprintf(stdout, " %-30s Save progress log to this file.\n", "-l,--log-file="); - fprintf(stdout, " %-30s Manually set the block size for batch mode.\n", "-b,--block-size="); - fprintf(stdout, " %-30s Run the whole problem locally in multicore mode. (default)\n", "-L,--multicore"); - fprintf(stdout, " %-30s Manually set the number of process to run at once.\n", "-n,--jobs="); - fprintf(stdout, " %-30s Send debugging to this file. (can also be :stderr, :stdout, :syslog, or :journal)\n", "-o,--debug-file="); - fprintf(stdout, " %-30s Interval between image writes, in seconds. (default=%d)\n", "-t,--bitmap-interval=",progress_bitmap_interval); - fprintf(stdout, " %-30s Run in distributed mode with batch system: (default=%s)\n", "-T,--batch-type=", batch_queue_type_to_string(batch_system_type)); - fprintf(stdout, " %-30s %s\n", "", batch_queue_type_string()); - fprintf(stdout, " %-30s Verify mode: check the configuration and then exit.\n", "-V,--verify"); -} - -int main( int argc, char *argv[] ) -{ - signed char c; - - const char *progname = "wavefront"; - - debug_config(progname); - - progress_log_file = stdout; - - static const struct option long_options[] = { - {"help", no_argument, 0, 'h'}, - {"version", no_argument, 0, 'v'}, - {"debug", required_argument, 0, 'd'}, - {"jobs", required_argument, 0, 'n'}, - {"block-size", required_argument, 0, 'b'}, - {"debug-file", required_argument, 0, 'o'}, - {"log-file", required_argument, 0, 'l'}, - {"bitmap", required_argument, 0, 'B'}, - {"bitmap-interval", required_argument, 0, 'i'}, - {"auto", no_argument, 0, 'A'}, - {"local", no_argument, 0, 'L'}, - {"batch-type", required_argument, 0, 'T'}, - {"verify", no_argument, 0, 'V'}, - {0,0,0,0} - }; - - while((c=getopt_long(argc,argv,"n:b:d:o:l:B:i:qALDT:VX:Y:vh", long_options, NULL)) > -1) { - switch(c) { - case 'n': - manual_max_jobs_running = atoi(optarg); - break; - case 'b': - manual_block_size = atoi(optarg); - break; - case 'd': - debug_flags_set(optarg); - break; - case 'o': - debug_config_file(optarg); - break; - case 'B': - progress_bitmap_file = optarg; - break; - case 'i': - progress_bitmap_interval = atoi(optarg); - break; - case 'l': - progress_log_file = fopen(optarg,"w"); - if(!progress_log_file) { - fprintf(stderr,"couldn't open %s: %s\n",optarg,strerror(errno)); - return 1; - } - break; - case 'A': - wavefront_mode = WAVEFRONT_MODE_AUTO; - break; - case 'L': - wavefront_mode = WAVEFRONT_MODE_MULTICORE; - break; - case 'T': - wavefront_mode = WAVEFRONT_MODE_DISTRIBUTED; - batch_system_type = batch_queue_type_from_string(optarg); - if(batch_system_type==BATCH_QUEUE_TYPE_UNKNOWN) { - fprintf(stderr,"unknown batch system type: %s\n",optarg); - exit(1); - } - break; - case 'V': - verify_mode = 1; - break; - case 'X': - xstart = atoi(optarg); - break; - case 'Y': - ystart = atoi(optarg); - break; - case 'v': - cctools_version_print(stdout, progname); - exit(0); - break; - case 'h': - show_help(progname); - exit(0); - break; - } - } - - cctools_version_debug(D_DEBUG, argv[0]); - - if( (argc-optind<3) ) { - show_help(progname); - exit(1); - } - - function = argv[optind]; - xsize=atoi(argv[optind+1]); - ysize=atoi(argv[optind+2]); - total_cells = xsize*ysize; - - if(!verify_mode && !check_configuration(function,xsize,ysize)) exit(1); - - int ncpus = load_average_get_cpus(); - - if(wavefront_mode!=WAVEFRONT_MODE_MULTICORE) { - double task_time = measure_task_time(); - printf("Each function takes %.02lfs to run.\n",task_time); - - block_size = find_best_block_size(xsize,1000,2,task_time,average_dispatch_time); - double distributed_time = wavefront_distributed_model(xsize,1000,2,task_time,block_size,average_dispatch_time); - double multicore_time = wavefront_multicore_model(xsize,ncpus,task_time); - double ideal_multicore_time = wavefront_multicore_model(xsize,xsize,task_time); - double sequential_time = wavefront_multicore_model(xsize,1,task_time); - - printf("---------------------------------\n"); - printf("This workload would take:\n"); - printf("%.02lfs sequentially\n",sequential_time); - printf("%.02lfs on this %d-core machine\n",multicore_time,ncpus); - printf("%.02lfs on a %d-core machine\n",ideal_multicore_time,xsize); - printf("%.02lfs on a 1000-node distributed system with block size %d\n",distributed_time,block_size); - printf("---------------------------------\n"); - - if(wavefront_mode==WAVEFRONT_MODE_AUTO) { - if(multicore_time < distributed_time*2) { - wavefront_mode = WAVEFRONT_MODE_MULTICORE; - } else { - wavefront_mode = WAVEFRONT_MODE_DISTRIBUTED; - } - } - } - - if(wavefront_mode==WAVEFRONT_MODE_MULTICORE) { - batch_system_type = BATCH_QUEUE_TYPE_LOCAL; - max_jobs_running = ncpus; - } else { - max_jobs_running = 1000; - } - - if(manual_block_size!=0) { - block_size = manual_block_size; - } - - if(manual_max_jobs_running!=0) { - max_jobs_running = manual_max_jobs_running; - } - - if(wavefront_mode==WAVEFRONT_MODE_MULTICORE) { - printf("Running in multicore mode with %d CPUs.\n",max_jobs_running); - } else { - printf("Running in distributed mode with block size %d on up to %d CPUs\n",block_size,max_jobs_running); - } - - batch_q = batch_queue_create(batch_system_type); - - if(verify_mode) exit(0); - - struct bitmap * b = bitmap_create(xsize+1,ysize+1); - struct list *ready_list = list_create(); - struct itable *running_table = itable_create(0); - - struct batch_job_info info; - UINT64_T jobid; - struct wavefront_task *task; - - wavefront_task_initialize(b,ready_list); - - printf("Starting workload...\n"); - - fprintf(progress_log_file,"# elapsed time : waiting jobs / running jobs / cells complete (percent complete)\n"); - - while(1) { - - if(abort_mode) { - while((task=list_pop_tail(ready_list))) { - wavefront_task_delete(task); - } - - itable_firstkey(running_table); - while(itable_nextkey(running_table,&jobid,(void**)&task)) { - batch_job_remove(batch_q,jobid); - } - } - - if(list_size(ready_list)==0 && itable_size(running_table)==0) break; - - while(1) { - if(itable_size(running_table)>=max_jobs_running) break; - - task = list_pop_tail(ready_list); - if(!task) break; - - jobid = wavefront_task_submit(task); - if(jobid>0) { - itable_insert(running_table,jobid,task); - wavefront_task_mark_range(task,b,WAVEFRONT_TASK_STATE_RUNNING); - } else { - abort(); - sleep(1); - list_push_head(ready_list,task); - } - } - - - save_status(b,ready_list,running_table); - - jobid = batch_job_wait(batch_q,&info); - if(jobid>0) { - task = itable_remove(running_table,jobid); - if(task) { - if(info.exited_normally && info.exit_code==0) { - total_dispatch_time += info.started-info.submitted; - total_execute_time += MAX(info.finished-info.started,1); - total_cells_complete+=task->width*task->height; - total_jobs_complete++; - - average_dispatch_time = 1.0*total_dispatch_time / total_jobs_complete; - average_task_time = 1.0*total_execute_time / total_cells_complete; - - wavefront_task_complete(b,ready_list,task); - } else { - printf("job %" PRIu64 " failed, aborting this workload\n",jobid); - abort_mode = 1; - } - } - } - } - - save_status(b,ready_list,running_table); - - if(abort_mode) { - printf("Workload was aborted.\n"); - } else { - printf("Workload complete.\n"); - } - - return 0; -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/wavefront/src/wavefront_master.c cctools-7.1.2/wavefront/src/wavefront_master.c --- cctools-7.0.22/wavefront/src/wavefront_master.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/src/wavefront_master.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,351 +0,0 @@ - -/* -Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin -Copyright (C) 2005- The University of Notre Dame -This software is distributed under the GNU General Public License. -See the file COPYING for details. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "cctools.h" -#include "debug.h" -#include "work_queue.h" -#include "xxmalloc.h" -#include "text_array.h" -#include "macros.h" -#include "getopt_aux.h" -#include "bitmap.h" - -#define WAVEFRONT_LINE_MAX 1024 - -#define WAVEFRONT_TASK_STATE_COMPLETE MAKE_RGBA(0,0,255,0) -#define WAVEFRONT_TASK_STATE_RUNNING MAKE_RGBA(0,255,0,0) -#define WAVEFRONT_TASK_STATE_READY MAKE_RGBA(255,255,0,0) -#define WAVEFRONT_TASK_STATE_NOTREADY MAKE_RGBA(255,0,0,0) - - -static const char *function = 0; -static struct text_array *array = 0; -static struct work_queue *queue = 0; -static int xsize = 0; -static int ysize = 0; -static int port = WORK_QUEUE_DEFAULT_PORT; -static const char *port_file = NULL; -static const char *infile; -static const char *outfile; -static FILE *logfile; -static const char * progress_bitmap_file = 0; -static struct bitmap *bmap = 0; -static int cells_total = 0; -static int cells_complete = 0; -static int tasks_done = 0; -static double sequential_run_time = 7.75; -static time_t start_time = 0; -static time_t last_display_time = 0; - -static int task_consider( int x, int y ) -{ - char command[WAVEFRONT_LINE_MAX]; - char tag[WAVEFRONT_LINE_MAX]; - - struct work_queue_task* t; - - if(x>=xsize) return 1; - if(y>=ysize) return 1; - - if(text_array_get(array,x,y)) - { - if(bmap) - bitmap_set(bmap, x, y, WAVEFRONT_TASK_STATE_COMPLETE); - return 0; - } - - const char *left = text_array_get(array,x-1,y); - const char *bottom = text_array_get(array,x,y-1); - const char *diag = text_array_get(array,x-1,y-1); - - if(!left || !bottom || !diag) return 1; - - sprintf(command,"./%s %d %d xfile yfile dfile",function,x,y); - sprintf(tag,"%d %d",x,y); - - t = work_queue_task_create(command); - work_queue_task_specify_tag(t,tag); - work_queue_task_specify_input_file(t, function, function); - work_queue_task_specify_input_buf(t, left, strlen(left), "xfile"); - work_queue_task_specify_input_buf(t, bottom, strlen(bottom), "yfile"); - work_queue_task_specify_input_buf(t, diag, strlen(diag), "dfile"); - work_queue_submit(queue,t); - - if(bmap) - bitmap_set(bmap, x, y, WAVEFRONT_TASK_STATE_READY); - - return 1; -} - -static void task_complete( int x, int y ) -{ - cells_complete++; - task_consider(x+1,y); - task_consider(x,y+1); - - - if(bmap) - bitmap_set(bmap, x, y, WAVEFRONT_TASK_STATE_COMPLETE); -} - -static void task_prime() -{ - int i,j; - for(j=0;j \n", cmd); - fprintf(stdout, " %-30s Display this message.\n", "-h,--help"); - fprintf(stdout, " %-30s Show program version.\n", "-v,--version"); - fprintf(stdout, " %-30s Enable debugging for this subsystem. (Try -d all to start.)\n", "-d,--debug="); - fprintf(stdout, " %-30s Advertise the master information to a catalog server.\n", "-a,--advertise"); - fprintf(stdout, " %-30s Set the project name to \n", "-N,--project-name="); - fprintf(stdout, " %-30s Send debugging to this file. (can also be :stderr, :stdout, :syslog, or :journal)\n", "-o,--debug-file="); - fprintf(stdout, " %-30s The port that the master will be listening on. (default 9068)\n", "-p,--port="); - fprintf(stdout, " %-30s Priority. Higher the value, higher the priority.\n", "-P,--priority="); - fprintf(stdout, " %-30s Select port at random and write it to this file.\n", "-Z,--random-port="); - fprintf(stdout, " %-30s Indicate preferred master connection. Choose one of by_ip or by_hostname. (default is by_ip)\n", "--work-queue-preferred-connection"); -} - -static void display_progress( struct work_queue *q ) -{ - struct work_queue_stats info; - time_t current = time(0); - - work_queue_get_stats(queue,&info); - - if(current == start_time) - current++; - - double speedup = (sequential_run_time*tasks_done)/(current-start_time); - - printf("%2.02lf%% %6d %6ds %4d %4d %4d %4d %4d %4d %.02lf\n",100.0*cells_complete/cells_total,cells_complete,(int)(time(0)-start_time),info.workers_init,info.workers_ready,info.workers_busy,info.tasks_waiting,info.tasks_running,info.tasks_complete,speedup); - - if(bmap) { - bitmap_save_bmp(bmap,progress_bitmap_file); - } - - last_display_time = current; -} - -void wavefront_bitmap_initialize( struct bitmap *b ) -{ - int i, j; - - bitmap_reset(b,WAVEFRONT_TASK_STATE_NOTREADY); - - for(i=0;i<=xsize;i++) { - bitmap_set(b,i,0,WAVEFRONT_TASK_STATE_COMPLETE); - } - - for(j=0;j<=ysize;j++) { - bitmap_set(b,0,j,WAVEFRONT_TASK_STATE_COMPLETE); - } -} - -int main( int argc, char *argv[] ) -{ - signed char c; - int work_queue_master_mode = WORK_QUEUE_MASTER_MODE_STANDALONE; - char *work_queue_preferred_connection = NULL; - char *project = NULL; - int priority = 0; - - const char *progname = "wavefront"; - - debug_config(progname); - - enum { - LONG_OPT_PREFERRED_CONNECTION - }; - - static const struct option long_options[] = { - {"help", no_argument, 0, 'h'}, - {"version", no_argument, 0, 'v'}, - {"debug", required_argument, 0, 'd'}, - {"advertise", no_argument, 0, 'a'}, - {"project-name", required_argument, 0, 'N'}, - {"debug-file", required_argument, 0, 'o'}, - {"port", required_argument, 0, 'p'}, - {"priority", required_argument, 0, 'P'}, - {"estimated-time", required_argument, 0, 't'}, - {"random-port", required_argument, 0, 'Z'}, - {"bitmap", required_argument, 0, 'B'}, - {"work-queue-preferred-connection", required_argument, 0, LONG_OPT_PREFERRED_CONNECTION}, - {0,0,0,0} - }; - - while((c=getopt_long(argc,argv,"aB:d:hN:p:P:o:v:Z:", long_options, NULL)) >= 0) { - switch(c) { - case 'a': - break; - case 'd': - debug_flags_set(optarg); - break; - case 'h': - show_help(progname); - exit(0); - break; - case 'N': - work_queue_master_mode = WORK_QUEUE_MASTER_MODE_CATALOG; - free(project); - project = xxstrdup(optarg); - break; - case 'p': - port = atoi(optarg); - break; - case 'P': - priority = atoi(optarg); - break; - case 'o': - debug_config_file(optarg); - break; - case 'v': - cctools_version_print(stdout, progname); - exit(0); - break; - case 'Z': - port_file = optarg; - port = 0; - break; - case 'B': - progress_bitmap_file = optarg; - break; - case LONG_OPT_PREFERRED_CONNECTION: - free(work_queue_preferred_connection); - work_queue_preferred_connection = xxstrdup(optarg); - break; - default: - show_help(progname); - return 1; - } - } - - cctools_version_debug(D_DEBUG, argv[0]); - - if( (argc-optind)!=5 ) { - show_help(progname); - exit(1); - } - - function = argv[optind]; - xsize=atoi(argv[optind+1]); - ysize=atoi(argv[optind+2]); - infile=argv[optind+3]; - outfile=argv[optind+4]; - - start_time = time(0); - last_display_time = 0; - - cells_total = xsize*ysize; - - xsize++; - ysize++; - - array = text_array_create(xsize,ysize); - if(!text_array_load(array,infile)) { - fprintf(stderr,"couldn't load %s: %s",infile,strerror(errno)); - return 1; - } - - int count = text_array_load(array,outfile); - if(count>0) printf("recovered %d results from %s\n",count,outfile); - - logfile = fopen(outfile,"a"); - if(!logfile) { - fprintf(stderr,"couldn't open %s for append: %s\n",outfile,strerror(errno)); - return 1; - } - - if(work_queue_master_mode == WORK_QUEUE_MASTER_MODE_CATALOG && !project) { - fprintf(stderr, "wavefront: wavefront master running in catalog mode. Please use '-N' option to specify the name of this project.\n"); - fprintf(stderr, "wavefront: Run \"%s -h\" for help with options.\n", argv[0]); - return 1; - } - - queue = work_queue_create(port); - - //Read the port the queue is actually running, in case we just called - //work_queue_create(LINK_PORT_ANY) - port = work_queue_port(queue); - - if(!queue) { - fprintf(stderr,"%s: could not create work queue on port %d: %s\n",progname,port,strerror(errno)); - return 1; - } - - if(port_file) - opts_write_port_file(port_file, port); - - // advanced work queue options - work_queue_specify_master_mode(queue, work_queue_master_mode); - work_queue_specify_name(queue, project); - work_queue_specify_priority(queue, priority); - - if(work_queue_preferred_connection) - work_queue_master_preferred_connection(queue, work_queue_preferred_connection); - - fprintf(stdout, "%s: listening for workers on port %d...\n",progname,work_queue_port(queue)); - - if(progress_bitmap_file) - { - bmap = bitmap_create(xsize,ysize); - wavefront_bitmap_initialize(bmap); - } - - - task_prime(); - - struct work_queue_task *t; - - while(1) { - if(time(0)!=last_display_time) display_progress(queue); - - t = work_queue_wait(queue,WORK_QUEUE_WAITFORTASK); - if(!t) break; - - if(t->return_status==0) { - int x,y; - if(sscanf(t->tag,"%d %d",&x,&y)==2) { - text_array_set(array,x,y,t->output); - task_complete(x,y); - fprintf(logfile,"%d %d %s\n",x,y,t->output); - fflush(logfile); - tasks_done++; - } else { - fprintf(stderr,"unexpected output: %s\nfrom command: %s\non host: %s",t->output,t->command_line,t->host); - } - } else { - fprintf(stderr,"function failed return value (%i) result (%i) on host %s. output:\n%s\n",t->return_status,t->result,t->host,t->output); - } - work_queue_task_delete(t); - if(work_queue_empty(queue)) - break; - } - - display_progress(queue); - return 0; -} - -/* vim: set noexpandtab tabstop=4: */ diff -Nru cctools-7.0.22/wavefront/test/gen_ints_wfm.sh cctools-7.1.2/wavefront/test/gen_ints_wfm.sh --- cctools-7.0.22/wavefront/test/gen_ints_wfm.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/test/gen_ints_wfm.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -#!/bin/sh - -filename=${1:-test.wmaster.input} -N=${2:-10} - - -I=0 - -[ -f ${filename} ] && rm ${filename} - -while [ $I -lt $N ]; do - echo "$I 0 $I" >> ${filename} - echo "0 $I $I" >> ${filename} - I=$((I+1)) -done - - - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/wavefront/test/gen_ints_wf.sh cctools-7.1.2/wavefront/test/gen_ints_wf.sh --- cctools-7.0.22/wavefront/test/gen_ints_wf.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/test/gen_ints_wf.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -#!/bin/sh - -filename=${1:-R} -N=${2:-10} - -I=0 - -while [ $I -lt $N ]; do - echo $I > ${filename}.$I.0 - echo $I > ${filename}.0.$I - I=$((I+1)) -done - - - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/wavefront/test/README cctools-7.1.2/wavefront/test/README --- cctools-7.0.22/wavefront/test/README 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/test/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -The input rows and columns are a sequence from 0 to 9. The function that -wavefront applies is simply the sum of xfile, yfile and dfile. diff -Nru cctools-7.0.22/wavefront/test/sum_wfm.sh cctools-7.1.2/wavefront/test/sum_wfm.sh --- cctools-7.0.22/wavefront/test/sum_wfm.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/test/sum_wfm.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -#!/bin/sh - -xfile=`cat $3` -yfile=`cat $4` -dfile=`cat $5` - -echo $(($xfile + $yfile + $dfile)) - - - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/wavefront/test/sum_wf.sh cctools-7.1.2/wavefront/test/sum_wf.sh --- cctools-7.0.22/wavefront/test/sum_wf.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/test/sum_wf.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -#!/bin/sh - -xfile=`cat $1` -yfile=`cat $2` -dfile=`cat $3` - -echo $(($xfile + $yfile + $dfile)) - - - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/wavefront/test/TR_wavefront_001_sum_test.sh cctools-7.1.2/wavefront/test/TR_wavefront_001_sum_test.sh --- cctools-7.0.22/wavefront/test/TR_wavefront_001_sum_test.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/test/TR_wavefront_001_sum_test.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -#!/bin/sh - -. ../../dttools/test/test_runner_common.sh - -TEST_INPUT=R - -prepare() -{ - rm -f $TEST_INPUT - rm -f R.*.* - ./gen_ints_wf.sh $TEST_INPUT 10 - exit 0 -} - -run() -{ - answer=1854882 - - ../src/wavefront ./sum_wf.sh 9 9 - - value=`cat R.9.9 | sed -n 's/[[:blank:]]*\([[:digit:]]*\).*/\1/p'` - - if [ -z $value ]; - then - exit 1 - else - exit $(($answer-$value)) - fi -} - -clean() -{ - rm -f $TEST_INPUT - rm -f R.*.* - exit 0 -} - -dispatch "$@" - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/wavefront/test/TR_wavefront_master_001_sum_test.sh cctools-7.1.2/wavefront/test/TR_wavefront_master_001_sum_test.sh --- cctools-7.0.22/wavefront/test/TR_wavefront_master_001_sum_test.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/wavefront/test/TR_wavefront_master_001_sum_test.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ -#!/bin/sh - -. ../../dttools/test/test_runner_common.sh - -PATH=../src:../../work_queue/src:$PATH - -TEST_INPUT=test.wmaster.input -TEST_OUTPUT=test.wmaster.output -PORT_FILE=master.port -MASTER_PID=master.pid -MASTER_LOG=master.log -MASTER_OUTPUT=master.output - -cleanfiles() -{ - rm -f $TEST_INPUT - rm -f $TEST_OUTPUT - rm -f $PORT_FILE - rm -f $MASTER_PID - rm -f $MASTER_LOG - rm -f $MASTER_OUTPUT -} - -prepare() -{ - cleanfiles - ./gen_ints_wfm.sh $TEST_INPUT 10 -} - -run() -{ - answer=1854882 - - echo "starting wavefront master" - wavefront_master -d all -o $MASTER_LOG -Z $PORT_FILE ./sum_wfm.sh 10 10 $TEST_INPUT $TEST_OUTPUT > $MASTER_OUTPUT & - pid=$! - echo $pid > $MASTER_PID - - echo "waiting for port file to be created" - wait_for_file_creation $PORT_FILE 5 - - echo "running worker" - work_queue_worker --timeout 2 localhost `cat $PORT_FILE` - - echo "extracting result" - value=`sed -n 's/^9 9 \([[:digit:]]*\)/\1/p' $TEST_OUTPUT` - - echo "computed value is $value" - - if [ X$value = X ] - then - echo "result is missing" - exit 1 - elif [ $value = $answer ] - then - echo "result is correct" - exit 0 - else - echo "result is incorrect" - exit 1 - fi -} - -clean() -{ - if [ -f $MASTER_PID ] - then - kill -9 `cat $MASTER_PID` - fi - - cleanfiles - exit 0 -} - -dispatch "$@" - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/weaver/src/examples/arguments.py cctools-7.1.2/weaver/src/examples/arguments.py --- cctools-7.0.22/weaver/src/examples/arguments.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/weaver/src/examples/arguments.py 2020-05-05 15:31:15.000000000 +0000 @@ -1,4 +1,3 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python print(CurrentScript().arguments) diff -Nru cctools-7.0.22/weaver/src/tests.py cctools-7.1.2/weaver/src/tests.py --- cctools-7.0.22/weaver/src/tests.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/weaver/src/tests.py 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2012- The University of Notre Dame. # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/weaver/src/weaver.in cctools-7.1.2/weaver/src/weaver.in --- cctools-7.0.22/weaver/src/weaver.in 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/weaver/src/weaver.in 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (c) 2010- The University of Notre Dame. # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/work_queue/src/bindings/golang/work_queue.i cctools-7.1.2/work_queue/src/bindings/golang/work_queue.i --- cctools-7.0.22/work_queue/src/bindings/golang/work_queue.i 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/golang/work_queue.i 2020-05-05 15:31:15.000000000 +0000 @@ -1,6 +1,9 @@ /* work_queue.i */ %module work_queue +/* type is a go keyword. rename it to value_type */ +%rename(value_type) rmsummary_field::type; + %{ #include "debug.h" #include "int_sizes.h" diff -Nru cctools-7.0.22/work_queue/src/bindings/perl/Work_Queue/Task.pm cctools-7.1.2/work_queue/src/bindings/perl/Work_Queue/Task.pm --- cctools-7.0.22/work_queue/src/bindings/perl/Work_Queue/Task.pm 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/perl/Work_Queue/Task.pm 2020-05-05 15:31:15.000000000 +0000 @@ -1067,10 +1067,14 @@ $t->resources_measured{cpu_time}; - cores: number of cores. Computed as cpu_time/wall_time + cores: peak number of cores used $t->resources_measured{cores}; + cores_avg: number of cores computed as cpu_time/wall_time + + $t->resources_measured{cores_avg}; + max_concurrent_processes: the maximum number of processes running concurrently $t->resources_measured{max_concurrent_processes}; diff -Nru cctools-7.0.22/work_queue/src/bindings/perl/work_queue_example.pl cctools-7.1.2/work_queue/src/bindings/perl/work_queue_example.pl --- cctools-7.0.22/work_queue/src/bindings/perl/work_queue_example.pl 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/perl/work_queue_example.pl 2020-05-05 15:31:15.000000000 +0000 @@ -30,10 +30,9 @@ # been used by another program, you can try setting port = 0 to use an # available port. -my $port = $Work_Queue::WORK_QUEUE_DEFAULT_PORT; -my $q = Work_Queue->new($port) || die "Instantiation of Work Queue failed! ($!)\n"; +my $q = Work_Queue->new(port => $Work_Queue::WORK_QUEUE_DEFAULT_PORT) || die "Instantiation of Work Queue failed! ($!)\n"; -print "listening on port $port...\n"; +print "listening on port @{[$q->port]}...\n"; # We create and dispatch a task for each filename given in the argument list for my $infile (@ARGV) { diff -Nru cctools-7.0.22/work_queue/src/bindings/perl/work_queue.i cctools-7.1.2/work_queue/src/bindings/perl/work_queue.i --- cctools-7.0.22/work_queue/src/bindings/perl/work_queue.i 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/perl/work_queue.i 2020-05-05 15:31:15.000000000 +0000 @@ -1,6 +1,9 @@ /* work_queue.i */ %module work_queue +/* type is a go keyword. rename it to value_type */ +%rename(value_type) rmsummary_field::type; + %{ #include "debug.h" #include "int_sizes.h" diff -Nru cctools-7.0.22/work_queue/src/bindings/perl/Work_Queue.pm cctools-7.1.2/work_queue/src/bindings/perl/Work_Queue.pm --- cctools-7.0.22/work_queue/src/bindings/perl/Work_Queue.pm 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/perl/Work_Queue.pm 2020-05-05 15:31:15.000000000 +0000 @@ -1035,6 +1035,14 @@ Set the minimum number of seconds to wait for files to be transferred to or from a foreman. (default=3600) +=item "transfer-outlier-factor" + +Transfer that are this many times slower than the average will be aborted. (default=10x) + +=item "default-transfer-rate" + +The assumed network bandwidth used until sufficient data has been collected. (1MB/s) + =item "fast-abort-multiplier" Set the multiplier of the average task time at which point to abort; if negative or zero fast_abort is deactivated. (default=0) @@ -1049,6 +1057,18 @@ =item value The value to set the parameter to. +=item "short-timeout" + +Set the minimum timeout when sending a brief message to a single worker. (default=5s) + +=item "long-timeout" + +Set the minimum timeout when sending a brief message to a foreman. (default=1h) + +=item "category-steady-n-tasks" + +Set the number of tasks considered when computing category buckets. + =back =head3 C diff -Nru cctools-7.0.22/work_queue/src/bindings/python/.gitignore cctools-7.1.2/work_queue/src/bindings/python/.gitignore --- cctools-7.0.22/work_queue/src/bindings/python/.gitignore 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -cctools.test.log -work_queue_wrap.* -work_queue.py -Python.framework -*.so diff -Nru cctools-7.0.22/work_queue/src/bindings/python/Makefile cctools-7.1.2/work_queue/src/bindings/python/Makefile --- cctools-7.0.22/work_queue/src/bindings/python/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -include ../../../../config.mk -include $(CCTOOLS_HOME)/rules.mk - -# Python always uses 'so' for its modules (even on Darwin) -CCTOOLS_DYNAMIC_SUFFIX = so -# SWIG produces code that causes a lot of warnings, so use -w to turn those off. -LOCAL_CCFLAGS = -fPIC -DNDEBUG -w $(CCTOOLS_PYTHON_CCFLAGS) -LOCAL_LINKAGE = $(CCTOOLS_PYTHON_LDFLAGS) -lz - -EXTERNAL_DEPENDENCIES = $(CCTOOLS_HOME)/work_queue/src/libwork_queue.a $(CCTOOLS_HOME)/dttools/src/libdttools.a -WQPYTHONSO = _work_queue.$(CCTOOLS_DYNAMIC_SUFFIX) -LIBRARIES = $(WQPYTHONSO) -OBJECTS = work_queue_wrap.o -TARGETS = $(LIBRARIES) - -all: $(TARGETS) - -# The odd symlink in the following rule is necessary to overcome a problem -# in the framework search path emitted by the Python configuration on macOS. -work_queue_wrap.c work_queue.py: work_queue.i work_queue.binding.py - @echo "SWIG work_queue.i (python)" - @$(CCTOOLS_SWIG) -o work_queue_wrap.c -python -I$(CCTOOLS_HOME)/dttools/src/ -I$(CCTOOLS_HOME)/work_queue/src work_queue.i - @cat work_queue.binding.py >> work_queue.py - ln -sf /System/Library/Frameworks/Python.framework . - -$(WQPYTHONSO): work_queue_wrap.o $(EXTERNAL_DEPENDENCIES) - -clean: - rm -f $(OBJECTS) $(TARGETS) Python.framework work_queue.py work_queue_wrap.c *.pyc - -test: - -install: all - mkdir -p $(CCTOOLS_PYTHON_PATH) - chmod 755 work_queue_example.py - cp work_queue.py $(WQPYTHONSO) $(CCTOOLS_PYTHON_PATH)/ - mkdir -p $(CCTOOLS_INSTALL_DIR)/doc - cp work_queue_example.py $(CCTOOLS_INSTALL_DIR)/doc/ diff -Nru cctools-7.0.22/work_queue/src/bindings/python/TR_work_queue_python_detailed_example_1.sh cctools-7.1.2/work_queue/src/bindings/python/TR_work_queue_python_detailed_example_1.sh --- cctools-7.0.22/work_queue/src/bindings/python/TR_work_queue_python_detailed_example_1.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python/TR_work_queue_python_detailed_example_1.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh - -. ../../../dttools/test/test_runner_common.sh - -export `grep CCTOOLS_PYTHON= ../../../config.mk` - -prepare() -{ - exit 0 -} - -run() -{ - export PATH=../../../dttools/src:$PATH - exec ${CCTOOLS_PYTHON} ./work_queue_detailed_example_1.py -} - -clean() -{ - exit 0 -} - -dispatch "$@" - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/work_queue/src/bindings/python/TR_work_queue_python_detailed_example_2.sh cctools-7.1.2/work_queue/src/bindings/python/TR_work_queue_python_detailed_example_2.sh --- cctools-7.0.22/work_queue/src/bindings/python/TR_work_queue_python_detailed_example_2.sh 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python/TR_work_queue_python_detailed_example_2.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh - -. ../../../dttools/test/test_runner_common.sh - -export `grep CCTOOLS_PYTHON= ../../../config.mk` - -prepare() -{ - exit 0 -} - -run() -{ - export PATH=../../../dttools/src:$PATH - exec ${CCTOOLS_PYTHON} ./work_queue_detailed_example_2.py -} - -clean() -{ - exit 0 -} - -dispatch "$@" - -# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/work_queue/src/bindings/python/work_queue.binding.py cctools-7.1.2/work_queue/src/bindings/python/work_queue.binding.py --- cctools-7.0.22/work_queue/src/bindings/python/work_queue.binding.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python/work_queue.binding.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,1377 +0,0 @@ -## @package WorkQueuePython -# -# Python Work Queue bindings. -# -# The objects and methods provided by this package correspond to the native -# C API in @ref work_queue.h. -# -# The SWIG-based Python bindings provide a higher-level interface that -# revolves around the following objects: -# -# - @ref work_queue::WorkQueue -# - @ref work_queue::Task - -import copy -import os - -def set_debug_flag(*flags): - for flag in flags: - cctools_debug_flags_set(flag) - -def specify_debug_log(logfile): - set_debug_flag('all') - cctools_debug_config_file_size(0) - cctools_debug_config_file(logfile) - -def specify_port_range(low_port, high_port): - if low_port >= high_port: - raise TypeError('low_port {} should be smaller than high_port {}'.format(low_port, high_port)) - - os.environ['TCP_LOW_PORT'] = str(low_port) - os.environ['TCP_HIGH_PORT'] = str(high_port) - -cctools_debug_config('work_queue_python') - -## -# Python Task object -# -# This class is used to create a task specification. -class Task(object): - - ## - # Create a new task specification. - # - # @param self Reference to the current task object. - # @param command The shell command line to be exected by the task. - def __init__(self, command): - self._task = None - - try: - self._task = work_queue_task_create(command) - if not self._task: - raise - except: - raise Exception('Unable to create internal Task structure') - - def __del__(self): - if self._task: - work_queue_task_delete(self._task) - - @staticmethod - def _determine_file_flags(flags, cache): - # if flags is defined, use its value. Otherwise do not cache only if - # asked explicitely. - - if flags is None: - flags = WORK_QUEUE_NOCACHE; - - if cache is not None: - if cache: - flags = flags | WORK_QUEUE_CACHE; - else: - flags = flags & ~(WORK_QUEUE_CACHE); - - return flags - - ## - # Return a copy of this task - # - def clone(self): - """Return a (deep)copy this task that can also be submitted to the WorkQueue.""" - new = copy.copy(self) - new._task = work_queue_task_clone(self._task) - return new - - - ## - # Set the command to be executed by the task. - # - # @param self Reference to the current task object. - # @param command The command to be executed. - def specify_command(self, command): - return work_queue_task_specify_command(self._task, command) - - ## - # Set the worker selection algorithm for task. - # - # @param self Reference to the current task object. - # @param algorithm One of the following algorithms to use in assigning a - # task to a worker. See @ref work_queue_schedule_t for - # possible values. - def specify_algorithm(self, algorithm): - return work_queue_task_specify_algorithm(self._task, algorithm) - - ## - # Attach a user defined logical name to the task. - # - # @param self Reference to the current task object. - # @param tag The tag to attach to task. - def specify_tag(self, tag): - return work_queue_task_specify_tag(self._task, tag) - - ## - # Label the task with the given category. It is expected that tasks with the - # same category have similar resources requirements (e.g. for fast abort). - # - # @param self Reference to the current task object. - # @param name The name of the category - def specify_category(self, name): - return work_queue_task_specify_category(self._task, name) - - ## - # Label the task with the given user-defined feature. Tasks with the - # feature will only run on workers that provide it (see worker's - # --feature option). - # - # @param self Reference to the current task object. - # @param name The name of the feature. - def specify_feature(self, name): - return work_queue_task_specify_feature(self._task, name) - - ## - # Indicate that the task would be optimally run on a given host. - # - # @param self Reference to the current task object. - # @param hostname The hostname to which this task would optimally be sent. - def specify_preferred_host(self, hostname): - return work_queue_task_specify_preferred_host(self._task, hostname) - - ## - # Add a file to the task. - # - # @param self Reference to the current task object. - # @param local_name The name of the file on local disk or shared filesystem. - # @param remote_name The name of the file at the execution site. - # @param type Must be one of the following values: @ref WORK_QUEUE_INPUT or @ref WORK_QUEUE_OUTPUT - # @param flags May be zero to indicate no special handling, or any - # of the @ref work_queue_file_flags_t or'd together The most common are: - # - @ref WORK_QUEUE_NOCACHE (default) - # - @ref WORK_QUEUE_CACHE - # - @ref WORK_QUEUE_WATCH - # @param cache Legacy parameter for setting file caching attribute. (True/False, deprecated, use the flags parameter.) - # - # For example: - # @code - # # The following are equivalent - # >>> task.specify_file("/etc/hosts", type=WORK_QUEUE_INPUT, flags=WORK_QUEUE_CACHE) - # >>> task.specify_file("/etc/hosts", "hosts", type=WORK_QUEUE_INPUT) - # @endcode - def specify_file(self, local_name, remote_name=None, type=None, flags=None, cache=None): - if remote_name is None: - remote_name = os.path.basename(local_name) - - if type is None: - type = WORK_QUEUE_INPUT - - flags = Task._determine_file_flags(flags, cache) - return work_queue_task_specify_file(self._task, local_name, remote_name, type, flags) - - ## - # Add a file piece to the task. - # - # @param self Reference to the current task object. - # @param local_name The name of the file on local disk or shared filesystem. - # @param remote_name The name of the file at the execution site. - # @param start_byte The starting byte offset of the file piece to be transferred. - # @param end_byte The ending byte offset of the file piece to be transferred. - # @param type Must be one of the following values: @ref WORK_QUEUE_INPUT or @ref WORK_QUEUE_OUTPUT - # @param flags May be zero to indicate no special handling, or any - # of the @ref work_queue_file_flags_t or'd together The most common are: - # - @ref WORK_QUEUE_NOCACHE (default) - # - @ref WORK_QUEUE_CACHE - # @param cache Legacy parameter for setting file caching attribute. (True/False, deprecated, use the flags parameter.) - def specify_file_piece(self, local_name, remote_name=None, start_byte=0, end_byte=0, type=None, flags=None, cache=None): - if remote_name is None: - remote_name = os.path.basename(local_name) - - if type is None: - type = WORK_QUEUE_INPUT - - flags = Task._determine_file_flags(flags, cache) - return work_queue_task_specify_file_piece(self._task, local_name, remote_name, start_byte, end_byte, type, flags) - - ## - # Add a input file to the task. - # - # This is just a wrapper for @ref specify_file with type set to @ref WORK_QUEUE_INPUT. - def specify_input_file(self, local_name, remote_name=None, flags=None, cache=None): - return self.specify_file(local_name, remote_name, WORK_QUEUE_INPUT, flags, cache) - - ## - # Add a output file to the task. - # - # This is just a wrapper for @ref specify_file with type set to @ref WORK_QUEUE_OUTPUT. - def specify_output_file(self, local_name, remote_name=None, flags=None, cache=None): - return self.specify_file(local_name, remote_name, WORK_QUEUE_OUTPUT, flags, cache) - - ## - # Add a directory to the task. - # @param self Reference to the current task object. - # @param local_name The name of the directory on local disk or shared filesystem. Optional if the directory is empty. - # @param remote_name The name of the directory at the remote execution site. - # @param type Must be one of the following values: @ref WORK_QUEUE_INPUT or @ref WORK_QUEUE_OUTPUT - # @param flags May be zero to indicate no special handling, or any - # of the @ref work_queue_file_flags_t or'd together The most common are: - # - @ref WORK_QUEUE_NOCACHE - # - @ref WORK_QUEUE_CACHE - # @param recursive Indicates whether just the directory (False) or the directory and all of its contents (True) should be included. - # @param cache Legacy parameter for setting file caching attribute. (True/False, deprecated, use the flags parameter.) - # @return 1 if the task directory is successfully specified, 0 if either of @a local_name, or @a remote_name is null or @a remote_name is an absolute path. - def specify_directory(self, local_name, remote_name=None, type=None, flags=None, recursive=False, cache=None): - if remote_name is None: - remote_name = os.path.basename(local_name) - - if type is None: - type = WORK_QUEUE_INPUT - - flags = Task._determine_file_flags(flags, cache) - return work_queue_task_specify_directory(self._task, local_name, remote_name, type, flags, recursive) - - ## - # Add an input bufer to the task. - # - # @param self Reference to the current task object. - # @param buffer The contents of the buffer to pass as input. - # @param remote_name The name of the remote file to create. - # @param flags May take the same values as @ref specify_file. - # @param cache Legacy parameter for setting buffer caching attribute. (True/False, deprecated, use the flags parameter.) - def specify_buffer(self, buffer, remote_name, flags=None, cache=None): - flags = Task._determine_file_flags(flags, cache) - return work_queue_task_specify_buffer(self._task, buffer, len(buffer), remote_name, flags) - - # When monitoring, indicates a json-encoded file that instructs the monitor - # to take a snapshot of the task resources. Snapshots appear in the JSON - # summary file of the task, under the key "snapshots". Snapshots are taken - # on events on files described in the monitor_snapshot_file. The - # monitor_snapshot_file is a json encoded file with the following format: - # - # { - # "FILENAME": { - # "from-start":boolean, - # "from-start-if-truncated":boolean, - # "delete-if-found":boolean, - # "events": [ - # { - # "label":"EVENT_NAME", - # "on-create":boolean, - # "on-truncate":boolean, - # "pattern":"REGEXP", - # "count":integer - # }, - # { - # "label":"EVENT_NAME", - # ... - # } - # ] - # }, - # "FILENAME": { - # ... - # } - # - # All keys but "label" are optional: - # - # from-start:boolean If FILENAME exits when task starts running, process from line 1. Default: false, as the task may be appending to an already existing file. - # from-start-if-truncated If FILENAME is truncated, process from line 1. Default: true, to account for log rotations. - # delete-if-found Delete FILENAME when found. Default: false - # - # events: - # label Name that identifies the snapshot. Only alphanumeric, -, - # and _ characters are allowed. - # on-create Take a snapshot every time the file is created. Default: false - # on-truncate Take a snapshot when the file is truncated. Default: false - # on-pattern Take a snapshot when a line matches the regexp pattern. Default: none - # count Maximum number of snapshots for this label. Default: -1 (no limit) - # - # Exactly one of on-create, on-truncate, or on-pattern should be specified. - # For more information, consult the manual of the resource_monitor. - # - # @param self Reference to the current task object. - # @param filename The name of the snapshot events specification - def specify_snapshot_file(self, filename): - return work_queue_specify_snapshot_file(self._task, filename) - - - - ## - # Indicate the number of times the task should be retried. If 0 (the - # default), the task is tried indefinitely. A task that did not succeed - # after the given number of retries is returned with result - # WORK_QUEUE_RESULT_MAX_RETRIES. - def specify_max_retries( self, max_retries ): - return work_queue_task_specify_max_retries(self._task,max_retries) - - ## - # Indicate the number of cores required by this task. - def specify_cores( self, cores ): - return work_queue_task_specify_cores(self._task,cores) - - ## - # Indicate the memory (in MB) required by this task. - def specify_memory( self, memory ): - return work_queue_task_specify_memory(self._task,memory) - - ## - # Indicate the disk space (in MB) required by this task. - def specify_disk( self, disk ): - return work_queue_task_specify_disk(self._task,disk) - - ## - # Indicate the the priority of this task (larger means better priority, default is 0). - def specify_priority( self, priority ): - return work_queue_task_specify_priority(self._task,priority) - - # Indicate the maximum end time (absolute, in microseconds from the Epoch) of this task. - # This is useful, for example, when the task uses certificates that expire. - # If less than 1, or not specified, no limit is imposed. - def specify_end_time( self, useconds ): - return work_queue_task_specify_end_time(self._task,useconds) - - # Indicate the maximum running time for a task in a worker (relative to - # when the task starts to run). If less than 1, or not specified, no limit - # is imposed. - def specify_running_time( self, useconds ): - return work_queue_task_specify_running_time(self._task,useconds) - - ## - # Set this environment variable before running the task. - # If value is None, then variable is unset. - def specify_environment_variable( self, name, value = None ): - return work_queue_task_specify_enviroment_variable(self._task,name,value) - - ## - # Set a name for the resource summary output directory from the monitor. - def specify_monitor_output( self, directory ): - return work_queue_task_specify_monitor_output(self._task,directory) - - ## - # Get the user-defined logical name for the task. - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.tag - # @endcode - @property - def tag(self): - return self._task.tag - - ## - # Get the category name for the task. - # - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.category - # @endcode - @property - def category(self): - return self._task.category - - ## - # Get the shell command executed by the task. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.command - # @endcode - @property - def command(self): - return self._task.command_line - - ## - # Get the priority of the task. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.priority - # @endcode - @property - def priority(self): - return self._task.priority - - ## - # Get the algorithm for choosing worker to run the task. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.algorithm - # @endcode - @property - def algorithm(self): - return self._task.worker_selection_algorithm - - ## - # Get the standard output of the task. Must be called only after the task - # completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.output - # @endcode - @property - def output(self): - return self._task.output - - ## - # Get the task id number. Must be called only after the task was submitted. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.id - # @endcode - @property - def id(self): - return self._task.taskid - - ## - # Get the exit code of the command executed by the task. Must be called only - # after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.return_status - # @endcode - @property - def return_status(self): - return self._task.return_status - - ## - # Get the result of the task, such as successful, missing file, etc. - # See @ref work_queue_result_t for possible values. Must be called only - # after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.result - # @endcode - @property - def result(self): - return self._task.result - - ## - # Get the number of times the task has been resubmitted internally. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.total_submissions - # @endcode - @property - def total_submissions(self): - return self._task.total_submissions - - ## - # Get the number of times the task has been failed given resource exhaustion. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.exhausted_attempts - # @endcode - @property - def exhausted_attempts(self): - return self._task.exhausted_attempts - - ## - # Get the address and port of the host on which the task ran. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.host - # @endcode - @property - def host(self): - return self._task.host - - ## - # Get the name of the host on which the task ran. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.hostname - # @endcode - @property - def hostname(self): - return self._task.hostname - - ## - # Get the time at which this task was submitted. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.submit_time - # @endcode - @property - def submit_time(self): - return self._task.time_task_submit - - ## - # Get the time at which this task was finished. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.finish_time - # @endcode - @property - def finish_time(self): - return self._task.time_task_finish - - ## - # Get the total time the task executed and failed given resource exhaustion. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.total_cmd_exhausted_execute_time - # @endcode - @property - def total_cmd_exhausted_execute_time(self): - return self._task.total_cmd_exhausted_execute_time - - ## - # Get the time spent in upper-level application (outside of work_queue_wait). - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.app_delay - # @endcode - @property - def app_delay(self): - return self._task.time_app_delay - - ## - # Get the time at which the task started to transfer input files. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.send_input_start - # @endcode - @property - def send_input_start(self): - return self._task.time_send_input_start - - ## - # Get the time at which the task finished transferring input files. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.send_input_finish - # @endcode - @property - def send_input_finish(self): - return self._task.time_send_input_finish - - ## - # The time at which the task began. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.execute_cmd_start - # @endcode - @property - def execute_cmd_start(self): - return self._task.time_execute_cmd_start - - ## - # Get the time at which the task finished (discovered by the master). - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.execute_cmd_finish - # @endcode - @property - def execute_cmd_finish(self): - return self._task.time_execute_cmd_finish - - ## - # Get the time at which the task started to transfer output files. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.receive_output_start - # @endcode - @property - def receive_output_start(self): - return self._task.time_receive_output_start - - ## - # Get the time at which the task finished transferring output files. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.receive_output_finish - # @endcode - @property - def receive_output_finish(self): - return self._task.time_receive_output_finish - - ## - # Get the number of bytes received since task started receiving input data. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.total_bytes_received - # @endcode - @property - def total_bytes_received(self): - return self._task.total_bytes_received - - ## - # Get the number of bytes sent since task started sending input data. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.total_bytes_sent - # @endcode - @property - def total_bytes_sent(self): - return self._task.total_bytes_sent - - ## - # Get the number of bytes transferred since task started transferring input data. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.total_bytes_transferred - # @endcode - @property - def total_bytes_transferred(self): - return self._task.total_bytes_transferred - - ## - # Get the time comsumed in microseconds for transferring total_bytes_transferred. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.total_transfer_time - # @endcode - @property - def total_transfer_time(self): - return self._task.total_transfer_time - - ## - # Time spent in microseconds for executing the command until completion on a single worker. - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.cmd_execution_time - # @endcode - @property - def cmd_execution_time(self): - return self._task.cmd_execution_time - - ## - # Accumulated time spent in microseconds for executing the command on any - # worker, regardless of whether the task finished (i.e., this includes time - # running on workers that disconnected). - # - # Must be called only after the task completes execution. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print t.total_cmd_execution_time - # @endcode - @property - def total_cmd_execution_time(self): - return self._task.total_cmd_execution_time - - ## - # Get the resources measured for the task execution if resource monitoring is enabled. - # Must be called only after the task completes execution. Valid fields: - # - # start: microseconds at the start of execution - # - # end: microseconds at the end of execution - # - # wall_time: microseconds spent during execution - # - # cpu_time: user + system time of the execution - # - # cores: number of cores. Computed as cpu_time/wall_time - # - # max_concurrent_processes: the maximum number of processes running concurrently - # - # total_processes: count of all of the processes created - # - # virtual_memory: maximum virtual memory across all processes - # - # memory: maximum resident size across all processes - # - # swap_memory: maximum swap usage across all processes - # - # bytes_read: number of bytes read from disk - # - # bytes_written: number of bytes written to disk - # - # bytes_received: number of bytes read from the network - # - # bytes_send: number of bytes written to the network - # - # bandwidth: maximum network bits/s (average over one minute) - # - # total_files: total maximum number of files and directories of all the working directories in the tree - # - # disk: size in MB of all working directories in the tree - # - # @code - # >>> print t.resources_measured.memory - # @endcode - @property - def resources_measured(self): - if not self._task.resources_measured: - return None - - return self._task.resources_measured - - ## - # Get the resources the task exceeded. For valid field see @resources_measured. - # - @property - def limits_exceeded(self): - if not self._task.resources_measured: - return None - - if not self._task.resources_measured.limits_exceeded: - return None - - return self._task.resources_measured.limits_exceeded - - - ## - # Get the resources the task requested to run. For valid fields see - # @resources_measured. - # - @property - def resources_requested(self): - if not self._task.resources_requested: - return None - return self._task.resources_requested - - ## - # Get the resources allocated to the task in its latest attempt. For valid - # fields see @resources_measured. - # - @property - def resources_allocated(self): - if not self._task.resources_allocated: - return None - return self._task.resources_allocated - - -## -# Python Work Queue object -# -# This class uses a dictionary to map between the task pointer objects and the -# @ref work_queue::Task. -class WorkQueue(object): - ## - # Create a new work queue. - # - # @param self Reference to the current work queue object. - # @param port The port number to listen on. If zero, then a random port is chosen. A range of possible ports (low, hight) can be also specified instead of a single integer. - # @param name The project name to use. - # @param stats_log The name of a file to write the queue's statistics log. - # @param transactions_log The name of a file to write the queue's transactions log. - # @param debug_log The name of a file to write the queue's debug log. - # @param shutdown Automatically shutdown workers when queue is finished. Disabled by default. - # - # @see work_queue_create - For more information about environmental variables that affect the behavior this method. - def __init__(self, port=WORK_QUEUE_DEFAULT_PORT, name=None, shutdown=False, stats_log=None, transactions_log=None, debug_log=None): - self._shutdown = shutdown - self._work_queue = None - self._stats = None - self._stats_hierarchy = None - self._task_table = {} - - # if we were given a range ports, rather than a single port to try. - lower, upper = None, None - try: - lower, upper = port - specify_port_range(lower, upper) - port = 0 - except TypeError: - # if not a range, ignore - pass - except ValueError: - raise ValueError('port should be a single integer, or a sequence of two integers') - - try: - if debug_log: - specify_debug_log(debug_log) - self._stats = work_queue_stats() - self._stats_hierarchy = work_queue_stats() - self._work_queue = work_queue_create(port) - if not self._work_queue: - raise Exception('Could not create work_queue on port %d' % port) - - if stats_log: - self.specify_log(stats_log) - - if transactions_log: - self.specify_transactions_log(transactions_log) - - if name: - work_queue_specify_name(self._work_queue, name) - except Exception, e: - raise Exception('Unable to create internal Work Queue structure: %s' % e) - - def __free_queue(self): - if self._work_queue: - if self._shutdown: - self.shutdown_workers(0) - work_queue_delete(self._work_queue) - - def __exit__(self): - self.__free_queue() - - def __del__(self): - self.__free_queue() - - ## - # Get the project name of the queue. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print q.name - # @endcode - @property - def name(self): - return work_queue_name(self._work_queue) - - ## - # Get the listening port of the queue. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print q.port - # @endcode - @property - def port(self): - return work_queue_port(self._work_queue) - - ## - # Get queue statistics. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print q.stats - # @endcode - # The fields in @ref stats can also be individually accessed through this call. For example: - # @code - # >>> print q.stats.workers_busy - # @endcode - @property - def stats(self): - work_queue_get_stats(self._work_queue, self._stats) - return self._stats - - ## - # Get worker hierarchy statistics. - # @a Note: This is defined using property decorator. So it must be called without parentheses - # (). For example: - # @code - # >>> print q.stats_hierarchy - # @endcode - # The fields in @ref stats_hierarchy can also be individually accessed through this call. For example: - # @code - # >>> print q.stats_hierarchy.workers_busy - # @endcode - @property - def stats_hierarchy(self): - work_queue_get_stats_hierarchy(self._work_queue, self._stats_hierarchy) - return self._stats_hierarchy - - ## - # Get the task statistics for the given category. - # - # @param self Reference to the current work queue object. - # @param category A category name. - # For example: - # @code - # s = q.stats_category("my_category") - # >>> print s - # @endcode - # The fields in @ref work_queue_stats can also be individually accessed through this call. For example: - # @code - # >>> print s.tasks_waiting - # @endcode - def stats_category(self, category): - stats = work_queue_stats() - work_queue_get_stats_category(self._work_queue, category, stats) - return stats - - ## - # Turn on or off first-allocation labeling for a given category. By - # default, only cores, memory, and disk are labeled. Turn on/off other - # specific resources with @ref specify_category_autolabel_resource. - # NOTE: autolabeling is only meaningfull when task monitoring is enabled - # (@ref enable_monitoring). When monitoring is enabled and a task exhausts - # resources in a worker, mode dictates how work queue handles the - # exhaustion: - # @param self Reference to the current work queue object. - # @param category A category name. If None, sets the mode by default for - # newly created categories. - # @param mode One of @ref category_mode_t: - # - WORK_QUEUE_ALLOCATION_MODE_FIXED Task fails (default). - # - WORK_QUEUE_ALLOCATION_MODE_MAX If maximum values are - # specified for cores, memory, or disk (e.g. via @ref - # specify_max_category_resources or @ref specify_memory), - # and one of those resources is exceeded, the task fails. - # Otherwise it is retried until a large enough worker - # connects to the master, using the maximum values - # specified, and the maximum values so far seen for - # resources not specified. Use @ref specify_max_retries to - # set a limit on the number of times work queue attemps - # to complete the task. - # - WORK_QUEUE_ALLOCATION_MODE_MIN_WASTE As above, but - # work queue tries allocations to minimize resource waste. - # - WORK_QUEUE_ALLOCATION_MODE_MAX_THROUGHPUT As above, but - # work queue tries allocations to maximize throughput. - def specify_category_mode(self, category, mode): - return work_queue_specify_category_mode(self._work_queue, category, mode) - - ## - # Turn on or off first-allocation labeling for a given category and - # resource. This function should be use to fine-tune the defaults from @ref - # specify_category_mode. - # @param q A work queue object. - # @param category A category name. - # @param resource A resource name. - # @param autolabel True/False for on/off. - # @returns 1 if resource is valid, 0 otherwise. - def specify_category_autolabel_resource(self, category, resource, autolabel): - return work_queue_enable_category_resource(self._work_queue, category, category, resource, autolabel) - - ## - # Get current task state. See @ref work_queue_task_state_t for possible values. - # @code - # >>> print q.task_state(taskid) - # @endcode - def task_state(self, taskid): - return work_queue_task_state(self._work_queue, taskid) - - ## Enables resource monitoring of tasks in the queue, and writes a summary - # per task to the directory given. Additionally, all summaries are - # consolidate into the file all_summaries-PID.log - # - # Returns 1 on success, 0 on failure (i.e., monitoring was not enabled). - # - # @param self Reference to the current work queue object. - # @param dirname Directory name for the monitor output. - # @param watchdog If True (default), kill tasks that exhaust their declared resources. - def enable_monitoring(self, dirname = None, watchdog = True): - return work_queue_enable_monitoring(self._work_queue, dirname, watchdog) - - ## As @ref enable_monitoring, but it also generates a time series and a debug file. - # WARNING: Such files may reach gigabyte sizes for long running tasks. - # - # Returns 1 on success, 0 on failure (i.e., monitoring was not enabled). - # - # @param self Reference to the current work queue object. - # @param dirname Directory name for the monitor output. - # @param watchdog If True (default), kill tasks that exhaust their declared resources. - def enable_monitoring_full(self, dirname = None, watchdog = True): - return work_queue_enable_monitoring_full(self._work_queue, dirname, watchdog) - - ## - # Turn on or off fast abort functionality for a given queue for tasks in - # the "default" category, and for task which category does not set an - # explicit multiplier. - # - # @param self Reference to the current work queue object. - # @param multiplier The multiplier of the average task time at which point to abort; if negative (the default) fast_abort is deactivated. - def activate_fast_abort(self, multiplier): - return work_queue_activate_fast_abort(self._work_queue, multiplier) - - ## - # Turn on or off fast abort functionality for a given queue. - # - # @param self Reference to the current work queue object. - # @param name Name of the category. - # @param multiplier The multiplier of the average task time at which point to abort; if zero, deacticate for the category, negative (the default), use the one for the "default" category (see @ref fast_abort) - def activate_fast_abort_category(self, name, multiplier): - return work_queue_activate_fast_abort_category(self._work_queue, name, multiplier) - - ## - # Turn on or off draining mode for workers at hostname. - # - # @param self Reference to the current work queue object. - # @param host The hostname the host running the workers. - # @param drain_mode If True, no new tasks are dispatched to workers at hostname, and empty workers are shutdown. Else, workers works as usual. - def specify_draining_by_hostname(self, hostname, drain_mode = True): - return work_queue_specify_draining_by_hostname (self._work_queue, hostname, drain_mode) - - ## - # Determine whether there are any known tasks queued, running, or waiting to be collected. - # - # Returns 0 if there are tasks remaining in the system, 1 if the system is "empty". - # - # @param self Reference to the current work queue object. - def empty(self): - return work_queue_empty(self._work_queue) - - ## - # Determine whether the queue can support more tasks. - # - # Returns the number of additional tasks it can support if "hungry" and 0 if "sated". - # - # @param self Reference to the current work queue object. - def hungry(self): - return work_queue_hungry(self._work_queue) - - ## - # Set the worker selection algorithm for queue. - # - # @param self Reference to the current work queue object. - # @param algorithm One of the following algorithms to use in assigning a - # task to a worker. See @ref work_queue_schedule_t for - # possible values. - def specify_algorithm(self, algorithm): - return work_queue_specify_algorithm(self._work_queue, algorithm) - - ## - # Set the order for dispatching submitted tasks in the queue. - # - # @param self Reference to the current work queue object. - # @param order One of the following algorithms to use in dispatching - # submitted tasks to workers: - # - @ref WORK_QUEUE_TASK_ORDER_FIFO - # - @ref WORK_QUEUE_TASK_ORDER_LIFO - def specify_task_order(self, order): - return work_queue_specify_task_order(self._work_queue, order) - - ## - # Change the project name for the given queue. - # - # @param self Reference to the current work queue object. - # @param name The new project name. - def specify_name(self, name): - return work_queue_specify_name(self._work_queue, name) - - ## - # Set the preference for using hostname over IP address to connect. - # 'by_ip' uses IP address (standard behavior), or 'by_hostname' to use the - # hostname at the master. - # - # @param self Reference to the current work queue object. - # @param preferred_connection An string to indicate using 'by_ip' or a 'by_hostname'. - def specify_master_preferred_connection(self, mode): - return work_queue_master_preferred_connection(self._work_queue, mode) - - ## - # Set the minimum taskid of future submitted tasks. - # - # Further submitted tasks are guaranteed to have a taskid larger or equal - # to minid. This function is useful to make taskids consistent in a - # workflow that consists of sequential masters. (Note: This function is - # rarely used). If the minimum id provided is smaller than the last taskid - # computed, the minimum id provided is ignored. - # - # @param self Reference to the current work queue object. - # @param minid Minimum desired taskid - # @return Returns the actual minimum taskid for future tasks. - def specify_min_taskid(self, minid): - return work_queue_specify_min_taskid(self._work_queue, minid) - - ## - # Change the project priority for the given queue. - # - # @param self Reference to the current work queue object. - # @param priority An integer that presents the priorty of this work queue master. The higher the value, the higher the priority. - def specify_priority(self, priority): - return work_queue_specify_priority(self._work_queue, priority) - - ## Specify the number of tasks not yet submitted to the queue. - # It is used by work_queue_factory to determine the number of workers to launch. - # If not specified, it defaults to 0. - # work_queue_factory considers the number of tasks as: - # num tasks left + num tasks running + num tasks read. - # @param q A work queue object. - # @param ntasks Number of tasks yet to be submitted. - def specify_num_tasks_left(self, ntasks): - return work_queue_specify_num_tasks_left(self._work_queue, ntasks) - - ## - # Specify the master mode for the given queue. - # - # @param self Reference to the current work queue object. - # @param mode This may be one of the following values: @ref WORK_QUEUE_MASTER_MODE_STANDALONE or @ref WORK_QUEUE_MASTER_MODE_CATALOG. - def specify_master_mode(self, mode): - return work_queue_specify_master_mode(self._work_queue, mode) - - ## - # Specify the catalog server the master should report to. - # - # @param self Reference to the current work queue object. - # @param hostname The hostname of the catalog server. - # @param port The port the catalog server is listening on. - def specify_catalog_server(self, hostname, port): - return work_queue_specify_catalog_server(self._work_queue, hostname, port) - - ## - # Specify a log file that records the cummulative stats of connected workers and submitted tasks. - # - # @param self Reference to the current work queue object. - # @param logfile Filename. - def specify_log(self, logfile): - return work_queue_specify_log(self._work_queue, logfile) - - ## - # Specify a log file that records the states of tasks. - # - # @param self Reference to the current work queue object. - # @param logfile Filename. - def specify_transactions_log(self, logfile): - work_queue_specify_transactions_log(self._work_queue, logfile) - - - ## - # Add a mandatory password that each worker must present. - # - # @param self Reference to the current work queue object. - # @param password The password. - - def specify_password(self, password): - return work_queue_specify_password(self._work_queue, password) - - ## - # Add a mandatory password file that each worker must present. - # - # @param self Reference to the current work queue object. - # @param file Name of the file containing the password. - - def specify_password_file(self, file): - return work_queue_specify_password_file(self._work_queue, file) - - ## - # - # Specifies the maximum resources allowed for the default category. - # @param self Reference to the current work queue object. - # @param rm Dictionary indicating maximum values. See @resources_measured for possible fields. - # For example: - # @code - # >>> # A maximum of 4 cores is found on any worker: - # >>> q.specify_max_resources({'cores': 4}) - # >>> # A maximum of 8 cores, 1GB of memory, and 10GB disk are found on any worker: - # >>> q.specify_max_resources({'cores': 8, 'memory': 1024, 'disk': 10240}) - # @endcode - - def specify_max_resources(self, rmd): - rm = rmsummary_create(-1) - for k in rmd: - old_value = getattr(rm, k) # to raise an exception for unknown keys - setattr(rm, k, rmd[k]) - return work_queue_specify_max_resources(self._work_queue, rm) - - ## - # Specifies the maximum resources allowed for the given category. - # - # @param self Reference to the current work queue object. - # @param category Name of the category. - # @param rm Dictionary indicating maximum values. See @resources_measured for possible fields. - # For example: - # @code - # >>> # A maximum of 4 cores may be used by a task in the category: - # >>> q.specify_category_max_resources("my_category", {'cores': 4}) - # >>> # A maximum of 8 cores, 1GB of memory, and 10GB may be used by a task: - # >>> q.specify_category_max_resources("my_category", {'cores': 8, 'memory': 1024, 'disk': 10240}) - # @endcode - - def specify_category_max_resources(self, category, rmd): - rm = rmsummary_create(-1) - for k in rmd: - old_value = getattr(rm, k) # to raise an exception for unknown keys - setattr(rm, k, rmd[k]) - return work_queue_specify_category_max_resources(self._work_queue, category, rm) - - ## - # Specifies the first-allocation guess for the given category - # - # @param self Reference to the current work queue object. - # @param category Name of the category. - # @param rm Dictionary indicating maximum values. See @resources_measured for possible fields. - # For example: - # @code - # >>> # A maximum of 4 cores may be used by a task in the category: - # >>> q.specify_max_category_resources("my_category", {'cores': 4}) - # >>> # A maximum of 8 cores, 1GB of memory, and 10GB may be used by a task: - # >>> q.specify_max_category_resources("my_category", {'cores': 8, 'memory': 1024, 'disk': 10240}) - # @endcode - - def specify_category_first_allocation_guess(self, category, rmd): - rm = rmsummary_create(-1) - for k in rmd: - old_value = getattr(rm, k) # to raise an exception for unknown keys - setattr(rm, k, rmd[k]) - return work_queue_specify_category_first_allocation_guess(self._work_queue, category, rm) - - ## - # Initialize first value of categories - # - # @param self Reference to the current work queue object. - # @param rm Dictionary indicating maximum values. See @resources_measured for possible fields. - # @param filename JSON file with resource summaries. - - def initialize_categories(filename, rm): - return work_queue_initialize_categories(self._work_queue, rm, filename) - - ## - # Cancel task identified by its taskid and remove from the given queue. - # - # @param self Reference to the current work queue object. - # @param id The taskid returned from @ref submit. - def cancel_by_taskid(self, id): - return work_queue_cancel_by_taskid(self._work_queue, id) - - ## - # Cancel task identified by its tag and remove from the given queue. - # - # @param self Reference to the current work queue object. - # @param tag The tag assigned to task using @ref work_queue_task_specify_tag. - def cancel_by_tasktag(self, tag): - return work_queue_cancel_by_tasktag(self._work_queue, tag) - - ## - # Shutdown workers connected to queue. - # - # Gives a best effort and then returns the number of workers given the shutdown order. - # - # @param self Reference to the current work queue object. - # @param n The number to shutdown. To shut down all workers, specify "0". - def shutdown_workers(self, n): - return work_queue_shut_down_workers(self._work_queue, n) - - ## - # Blacklist workers running on host. - # - # @param self Reference to the current work queue object. - # @param host The hostname the host running the workers. - def blacklist(self, host): - return work_queue_blacklist_add(self._work_queue, host) - - ## - # Blacklist workers running on host for the duration of the given timeout. - # - # @param self Reference to the current work queue object. - # @param host The hostname the host running the workers. - # @param timeout How long this blacklist entry lasts (in seconds). If less than 1, blacklist indefinitely. - def blacklist_with_timeout(self, host, timeout): - return work_queue_blacklist_add_with_timeout(self._work_queue, host, timeout) - - ## - # Remove host from blacklist. Clear all blacklist if host not provided. - # - # @param self Reference to the current work queue object. - # @param host The of the hostname the host. - def blacklist_clear(self, host=None): - if host is None: - return work_queue_blacklist_clear(self._work_queue) - else: - return work_queue_blacklist_remove(self._work_queue, host) - - ## - # Delete file from workers's caches. - # - # @param self Reference to the current work queue object. - # @param local_name Name of the file as seen by the master. - def invalidate_cache_file(self, local_name): - return work_queue_invalidate_cached_file(self._work_queue, local_name, WORK_QUEUE_FILE) - - ## - # Change keepalive interval for a given queue. - # - # @param self Reference to the current work queue object. - # @param interval Minimum number of seconds to wait before sending new keepalive - # checks to workers. - def specify_keepalive_interval(self, interval): - return work_queue_specify_keepalive_interval(self._work_queue, interval) - - ## - # Change keepalive timeout for a given queue. - # - # @param self Reference to the current work queue object. - # @param timeout Minimum number of seconds to wait for a keepalive response - # from worker before marking it as dead. - def specify_keepalive_timeout(self, timeout): - return work_queue_specify_keepalive_timeout(self._work_queue, timeout) - - ## - # Turn on master capacity measurements. - # - # @param self Reference to the current work queue object. - # - def estimate_capacity(self): - return work_queue_specify_estimate_capacity_on(self._work_queue, 1) - - ## - # Tune advanced parameters for work queue. - # - # @param self Reference to the current work queue object. - # @param name The name fo the parameter to tune. Can be one of following: - # - "asynchrony-multiplier" Treat each worker as having (actual_cores * multiplier) total cores. (default = 1.0) - # - "asynchrony-modifier" Treat each worker as having an additional "modifier" cores. (default=0) - # - "min-transfer-timeout" Set the minimum number of seconds to wait for files to be transferred to or from a worker. (default=300) - # - "foreman-transfer-timeout" Set the minimum number of seconds to wait for files to be transferred to or from a foreman. (default=3600) - # - "fast-abort-multiplier" Set the multiplier of the average task time at which point to abort; if negative or zero fast_abort is deactivated. (default=0) - # - "keepalive-interval" Set the minimum number of seconds to wait before sending new keepalive checks to workers. (default=300) - # - "keepalive-timeout" Set the minimum number of seconds to wait for a keepalive response from worker before marking it as dead. (default=30) - # @param value The value to set the parameter to. - # @return 0 on succes, -1 on failure. - # - def tune(self, name, value): - return work_queue_tune(self._work_queue, name, value) - - ## - # Submit a task to the queue. - # - # It is safe to re-submit a task returned by @ref wait. - # - # @param self Reference to the current work queue object. - # @param task A task description created from @ref work_queue::Task. - def submit(self, task): - taskid = work_queue_submit(self._work_queue, task._task) - self._task_table[taskid] = task - return taskid - - ## - # Wait for tasks to complete. - # - # This call will block until the timeout has elapsed - # - # @param self Reference to the current work queue object. - # @param timeout The number of seconds to wait for a completed task - # before returning. Use an integer to set the timeout or the constant @ref - # WORK_QUEUE_WAITFORTASK to block until a task has completed. - def wait(self, timeout=WORK_QUEUE_WAITFORTASK): - task_pointer = work_queue_wait(self._work_queue, timeout) - if task_pointer: - task = self._task_table[int(task_pointer.taskid)] - del(self._task_table[task_pointer.taskid]) - return task - return None - -def rmsummary_snapshots(self): - if self.snapshots_count < 1: - return None - - snapshots = [] - for i in range(0, self.snapshots_count): - snapshot = rmsummary_get_snapshot(self, i); - snapshots.append(snapshot) - return snapshots - -rmsummary.snapshots = property(rmsummary_snapshots) diff -Nru cctools-7.0.22/work_queue/src/bindings/python/work_queue_detailed_example_1.py cctools-7.1.2/work_queue/src/bindings/python/work_queue_detailed_example_1.py --- cctools-7.0.22/work_queue/src/bindings/python/work_queue_detailed_example_1.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python/work_queue_detailed_example_1.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,104 +0,0 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 - -# Copyright (c) 2010- The University of Notre Dame. -# This software is distributed under the GNU General Public License. -# See the file COPYING for details. - -""" Python-WorkQueue test """ - -from work_queue import Task, WorkQueue, set_debug_flag -from work_queue import WORK_QUEUE_SCHEDULE_FCFS, WORK_QUEUE_SCHEDULE_FILES -from work_queue import WORK_QUEUE_RANDOM_PORT -from work_queue import WORK_QUEUE_OUTPUT -#from workqueue import WORK_QUEUE_MASTER_MODE_STANDALONE, WORK_QUEUE_WORKER_MODE_SHARED -from work_queue import WORK_QUEUE_TASK_ORDER_LIFO - -import os -import sys -import time - -set_debug_flag('debug') -set_debug_flag('wq') - -wq = WorkQueue(WORK_QUEUE_RANDOM_PORT, name='workqueue_example', catalog=True, exclusive=False) -os.environ['PATH'] = '../../../work_queue/src:' + os.environ['PATH'] -os.system('work_queue_worker -d all localhost %d &' % wq.port) - -print wq.name - -wq.specify_algorithm(WORK_QUEUE_SCHEDULE_FCFS) -#wq.specify_name('workqueue_example') -#wq.specify_master_mode(WORK_QUEUE_MASTER_MODE_STANDALONE) -#wq.specify_worker_mode(WORK_QUEUE_WORKER_MODE_SHARED) -wq.specify_task_order(WORK_QUEUE_TASK_ORDER_LIFO) - -if wq.empty(): - print 'work queue is empty' - -outputs = [] - -for i in range(5): - ifile = 'msg.%d' % i - ofile = 'out.%d' % i - task = Task('cat < %s > %s' % (ifile, ofile)) - - task.specify_tag(str(time.time())) - print task.command, task.tag - - task.specify_algorithm(WORK_QUEUE_SCHEDULE_FILES) - print task.command, task.algorithm - - task.specify_buffer('hello from %d' % i, ifile, cache=False) - if i % 2: - task.specify_output_file(ofile, cache=False) - else: - task.specify_file(ofile, type=WORK_QUEUE_OUTPUT, cache=False) - - outputs.append(ofile) - wq.submit(task) - -if wq.empty(): - print 'work queue is empty' - -while not wq.empty(): - t = wq.wait(10) - if t: - print t.tag - - print wq.stats.workers_init, wq.stats.workers_ready, wq.stats.workers_busy, \ - wq.stats.tasks_running, wq.stats.tasks_waiting, wq.stats.tasks_complete - -map(os.unlink, outputs) - -for i in range(5): - task = Task('hostname && date +%s.%N') - task.specify_input_file('/bin/hostname') - wq.submit(task) - -if wq.hungry(): - print 'work queue is hungry' - -wq.activate_fast_abort(1.5) - -while not wq.empty(): - t = wq.wait(1) - if t: - print t.id, t.return_status, t.result, t.host - print t.submit_time, t.finish_time, t.app_delay - print t.send_input_start, t.send_input_finish - print t.execute_cmd_start, t.execute_cmd_finish - print t.receive_output_start, t.receive_output_finish - print t.total_bytes_transferred, t.total_transfer_time - print t.cmd_execution_time - print t.output - - print wq.stats.workers_init, wq.stats.workers_ready, wq.stats.workers_busy, \ - wq.stats.tasks_running, wq.stats.tasks_waiting, wq.stats.tasks_complete - -wq.shutdown_workers(0) - -print wq.stats.total_tasks_dispatched, wq.stats.total_tasks_complete, \ - wq.stats.total_workers_joined, wq.stats.total_workers_removed - -# vim: sts=4 sw=4 ts=8 ft=python diff -Nru cctools-7.0.22/work_queue/src/bindings/python/work_queue_detailed_example_2.py cctools-7.1.2/work_queue/src/bindings/python/work_queue_detailed_example_2.py --- cctools-7.0.22/work_queue/src/bindings/python/work_queue_detailed_example_2.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python/work_queue_detailed_example_2.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 - -import work_queue -import os - -work_queue.set_debug_flag('all') - -wq = work_queue.WorkQueue(port=work_queue.WORK_QUEUE_RANDOM_PORT, exclusive=False, shutdown=True) -wq.specify_name('test') - -for i in range(5): - task = work_queue.Task('date') - task.specify_algorithm(work_queue.WORK_QUEUE_SCHEDULE_FCFS) - task.specify_tag('current date/time [%d]' % i) - task.specify_input_file('/bin/date') - - print task.id - print task.algorithm - print task.command - print task.tag - - wq.submit(task) - -os.environ['PATH'] = '../../../work_queue/src:' + os.environ['PATH'] -os.system('work_queue_worker -d all -t 5 localhost %d &' % wq.port) - -while not wq.empty(): - print '** wait for task' - task = wq.wait(1) - if task: - print 'task' - print 'algorithm', task.algorithm - print 'command', task.command - print 'tag', task.tag - print 'output', task.output - print 'id', task.id - print task.return_status - print task.result - print task.host - print task.submit_time - print task.finish_time - print task.app_delay - print task.send_input_start - print task.send_input_finish - print task.execute_cmd_start - print task.execute_cmd_finish - print task.receive_output_start - print task.receive_output_finish - print task.total_bytes_transferred - print task.total_transfer_time - print task.cmd_execution_time - del task - print '** work queue' - print wq.stats.workers_init - print wq.stats.workers_ready - print wq.stats.workers_busy - print wq.stats.tasks_running - print wq.stats.tasks_waiting - print wq.stats.tasks_complete - print wq.stats.total_tasks_dispatched - print wq.stats.total_tasks_complete - print wq.stats.total_workers_joined - print wq.stats.total_workers_removed - print wq.stats.total_bytes_sent - print wq.stats.total_bytes_received - print wq.stats.total_send_time - print wq.stats.total_receive_time - print wq.stats.efficiency - print wq.stats.idle_percentage - print wq.stats.capacity - print wq.stats.avg_capacity - print wq.stats.total_workers_connected diff -Nru cctools-7.0.22/work_queue/src/bindings/python/work_queue_example.py cctools-7.1.2/work_queue/src/bindings/python/work_queue_example.py --- cctools-7.0.22/work_queue/src/bindings/python/work_queue_example.py 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python/work_queue_example.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,90 +0,0 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 - -# Copyright (c) 2010- The University of Notre Dame. -# This software is distributed under the GNU General Public License. -# See the file COPYING for details. - -# This program is a very simple example of how to use Work Queue. -# It accepts a list of files on the command line. -# Each file is compressed with gzip and returned to the user. - -from work_queue import * - -import os -import sys - -# Main program -if __name__ == '__main__': - port = WORK_QUEUE_DEFAULT_PORT - - if len(sys.argv) < 2: - print "work_queue_example [file2] [file3] ..." - print "Each file given on the command line will be compressed using a remote worker." - sys.exit(1) - - # Usually, we can execute the gzip utility by simply typing its name at a - # terminal. However, this is not enough for work queue; we have to - # specify precisely which files need to be transmitted to the workers. We - # record the location of gzip in 'gzip_path', which is usually found in - # /bin/gzip or /usr/bin/gzip. - - gzip_path = "/bin/gzip" - if not os.path.exists(gzip_path): - gzip_path = "/usr/bin/gzip" - if not os.path.exists(gzip_path): - print "gzip was not found. Please modify the gzip_path variable accordingly. To determine the location of gzip, from the terminal type: which gzip (usual locations are /bin/gzip and /usr/bin/gzip)" - sys.exit(1); - - # We create the tasks queue using the default port. If this port is already - # been used by another program, you can try setting port = 0 to use an - # available port. - try: - q = WorkQueue(port) - except: - print "Instantiation of Work Queue failed!" - sys.exit(1) - - print "listening on port %d..." % q.port - - # We create and dispatch a task for each filename given in the argument list - for i in range(1, len(sys.argv)): - infile = "%s" % sys.argv[i] - outfile = "%s.gz" % sys.argv[i] - - # Note that we write ./gzip here, to guarantee that the gzip version we - # are using is the one being sent to the workers. - command = "./gzip < %s > %s" % (infile, outfile) - - t = Task(command) - - # gzip is the same across all tasks, so we can cache it in the workers. - # Note that when specifying a file, we have to name its local name - # (e.g. gzip_path), and its remote name (e.g. "gzip"). Unlike the - # following line, more often than not these are the same. - t.specify_file(gzip_path, "gzip", WORK_QUEUE_INPUT, cache=True) - - # files to be compressed are different across all tasks, so we do not - # cache them. This is, of course, application specific. Sometimes you may - # want to cache an output file if is the input of a later task. - t.specify_file(infile, infile, WORK_QUEUE_INPUT, cache=False) - t.specify_file(outfile, outfile, WORK_QUEUE_OUTPUT, cache=False) - - # Once all files has been specified, we are ready to submit the task to the queue. - taskid = q.submit(t) - print "submitted task (id# %d): %s" % (taskid, t.command) - - print "waiting for tasks to complete..." - while not q.empty(): - t = q.wait(5) - if t: - print "task (id# %d) complete: %s (return code %d)" % (t.id, t.command, t.return_status) - if t.return_status != 0: - # The task failed. Error handling (e.g., resubmit with new parameters, examine logs, etc.) here - None - #task object will be garbage collected by Python automatically when it goes out of scope - - print "all tasks complete!" - - #work queue object will be garbage collected by Python automatically when it goes out of scope - sys.exit(0) diff -Nru cctools-7.0.22/work_queue/src/bindings/python/work_queue.i cctools-7.1.2/work_queue/src/bindings/python/work_queue.i --- cctools-7.0.22/work_queue/src/bindings/python/work_queue.i 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python/work_queue.i 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -/* work_queue.i */ -%module work_queue - -%{ - #include "debug.h" - #include "int_sizes.h" - #include "timestamp.h" - #include "work_queue.h" - #include "rmsummary.h" -%} - -/* We compile with -D__LARGE64_FILES, thus off_t is at least 64bit. -long long int is guaranteed to be at least 64bit. */ -%typemap(in) off_t = long long int; - -/* vdebug() takes va_list as arg but SWIG can't wrap such functions. */ -%ignore vdebug; -%ignore debug; - -/* These return pointers to lists defined in list.h. We aren't - * wrapping methods in list.h and so ignore these. */ -%ignore work_queue_cancel_all_tasks; -%ignore input_files; -%ignore output_files; - -%include "stdint.i" -%include "debug.h" -%include "int_sizes.h" -%include "timestamp.h" -%include "work_queue.h" -%include "rmsummary.h" -%include "category.h" - - diff -Nru cctools-7.0.22/work_queue/src/bindings/python2/.gitignore cctools-7.1.2/work_queue/src/bindings/python2/.gitignore --- cctools-7.0.22/work_queue/src/bindings/python2/.gitignore 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python2/.gitignore 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,5 @@ +cctools.test.log +work_queue_wrap.* +work_queue.py +Python.framework +*.so diff -Nru cctools-7.0.22/work_queue/src/bindings/python2/Makefile cctools-7.1.2/work_queue/src/bindings/python2/Makefile --- cctools-7.0.22/work_queue/src/bindings/python2/Makefile 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python2/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,38 @@ +include ../../../../config.mk +include $(CCTOOLS_HOME)/rules.mk + +# Python always uses 'so' for its modules (even on Darwin) +CCTOOLS_DYNAMIC_SUFFIX = so +# SWIG produces code that causes a lot of warnings, so use -w to turn those off. +LOCAL_CCFLAGS = -fPIC -w $(CCTOOLS_PYTHON2_CCFLAGS) +LOCAL_LINKAGE = $(CCTOOLS_PYTHON2_LDFLAGS) -lz + +EXTERNAL_DEPENDENCIES = $(CCTOOLS_HOME)/work_queue/src/libwork_queue.a $(CCTOOLS_HOME)/dttools/src/libdttools.a +WQPYTHONSO = _work_queue.$(CCTOOLS_DYNAMIC_SUFFIX) +LIBRARIES = $(WQPYTHONSO) +OBJECTS = work_queue_wrap.o +TARGETS = $(LIBRARIES) + +all: $(TARGETS) + +# The odd symlink in the following rule is necessary to overcome a problem +# in the framework search path emitted by the Python configuration on macOS. +work_queue_wrap.c work_queue.py: work_queue.i work_queue.binding.py + @echo "SWIG work_queue.i (python)" + @$(CCTOOLS_SWIG) -o work_queue_wrap.c -python -I$(CCTOOLS_HOME)/dttools/src/ -I$(CCTOOLS_HOME)/work_queue/src work_queue.i + @cat work_queue.binding.py >> work_queue.py + ln -sf /System/Library/Frameworks/Python.framework . + +$(WQPYTHONSO): work_queue_wrap.o $(EXTERNAL_DEPENDENCIES) + +clean: + rm -f $(OBJECTS) $(TARGETS) Python.framework work_queue.py work_queue_wrap.c *.pyc + +test: + +install: all + mkdir -p $(CCTOOLS_PYTHON2_PATH) + chmod 755 work_queue_example.py + cp work_queue.py work_queue_futures.py $(WQPYTHONSO) $(CCTOOLS_PYTHON2_PATH) + mkdir -p $(CCTOOLS_INSTALL_DIR)/doc + diff -Nru cctools-7.0.22/work_queue/src/bindings/python2/TR_work_queue_python_detailed_example_1.sh cctools-7.1.2/work_queue/src/bindings/python2/TR_work_queue_python_detailed_example_1.sh --- cctools-7.0.22/work_queue/src/bindings/python2/TR_work_queue_python_detailed_example_1.sh 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python2/TR_work_queue_python_detailed_example_1.sh 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh + +. ../../../dttools/test/test_runner_common.sh + +export `grep CCTOOLS_PYTHON= ../../../config.mk` + +prepare() +{ + exit 0 +} + +run() +{ + export PATH=../../../dttools/src:$PATH + exec ${CCTOOLS_PYTHON} ./work_queue_detailed_example_1.py +} + +clean() +{ + exit 0 +} + +dispatch "$@" + +# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/work_queue/src/bindings/python2/TR_work_queue_python_detailed_example_2.sh cctools-7.1.2/work_queue/src/bindings/python2/TR_work_queue_python_detailed_example_2.sh --- cctools-7.0.22/work_queue/src/bindings/python2/TR_work_queue_python_detailed_example_2.sh 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python2/TR_work_queue_python_detailed_example_2.sh 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh + +. ../../../dttools/test/test_runner_common.sh + +export `grep CCTOOLS_PYTHON= ../../../config.mk` + +prepare() +{ + exit 0 +} + +run() +{ + export PATH=../../../dttools/src:$PATH + exec ${CCTOOLS_PYTHON} ./work_queue_detailed_example_2.py +} + +clean() +{ + exit 0 +} + +dispatch "$@" + +# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/work_queue/src/bindings/python2/work_queue.binding.py cctools-7.1.2/work_queue/src/bindings/python2/work_queue.binding.py --- cctools-7.0.22/work_queue/src/bindings/python2/work_queue.binding.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python2/work_queue.binding.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,1380 @@ +## @package WorkQueuePython +# +# Python Work Queue bindings. +# +# The objects and methods provided by this package correspond to the native +# C API in @ref work_queue.h. +# +# The SWIG-based Python bindings provide a higher-level interface that +# revolves around the following objects: +# +# - @ref work_queue::WorkQueue +# - @ref work_queue::Task + +import copy +import os + +def set_debug_flag(*flags): + for flag in flags: + cctools_debug_flags_set(flag) + +def specify_debug_log(logfile): + set_debug_flag('all') + cctools_debug_config_file_size(0) + cctools_debug_config_file(logfile) + +def specify_port_range(low_port, high_port): + if low_port >= high_port: + raise TypeError('low_port {} should be smaller than high_port {}'.format(low_port, high_port)) + + os.environ['TCP_LOW_PORT'] = str(low_port) + os.environ['TCP_HIGH_PORT'] = str(high_port) + +cctools_debug_config('work_queue_python') + +## +# Python Task object +# +# This class is used to create a task specification. +class Task(object): + + ## + # Create a new task specification. + # + # @param self Reference to the current task object. + # @param command The shell command line to be exected by the task. + def __init__(self, command): + self._task = None + + try: + self._task = work_queue_task_create(command) + if not self._task: + raise + except: + raise Exception('Unable to create internal Task structure') + + def __del__(self): + if self._task: + work_queue_task_delete(self._task) + + @staticmethod + def _determine_file_flags(flags, cache): + # if flags is defined, use its value. Otherwise do not cache only if + # asked explicitely. + + if flags is None: + flags = WORK_QUEUE_NOCACHE; + + if cache is not None: + if cache: + flags = flags | WORK_QUEUE_CACHE; + else: + flags = flags & ~(WORK_QUEUE_CACHE); + + return flags + + ## + # Return a copy of this task + # + def clone(self): + """Return a (deep)copy this task that can also be submitted to the WorkQueue.""" + new = copy.copy(self) + new._task = work_queue_task_clone(self._task) + return new + + + ## + # Set the command to be executed by the task. + # + # @param self Reference to the current task object. + # @param command The command to be executed. + def specify_command(self, command): + return work_queue_task_specify_command(self._task, command) + + ## + # Set the worker selection algorithm for task. + # + # @param self Reference to the current task object. + # @param algorithm One of the following algorithms to use in assigning a + # task to a worker. See @ref work_queue_schedule_t for + # possible values. + def specify_algorithm(self, algorithm): + return work_queue_task_specify_algorithm(self._task, algorithm) + + ## + # Attach a user defined logical name to the task. + # + # @param self Reference to the current task object. + # @param tag The tag to attach to task. + def specify_tag(self, tag): + return work_queue_task_specify_tag(self._task, tag) + + ## + # Label the task with the given category. It is expected that tasks with the + # same category have similar resources requirements (e.g. for fast abort). + # + # @param self Reference to the current task object. + # @param name The name of the category + def specify_category(self, name): + return work_queue_task_specify_category(self._task, name) + + ## + # Label the task with the given user-defined feature. Tasks with the + # feature will only run on workers that provide it (see worker's + # --feature option). + # + # @param self Reference to the current task object. + # @param name The name of the feature. + def specify_feature(self, name): + return work_queue_task_specify_feature(self._task, name) + + ## + # Indicate that the task would be optimally run on a given host. + # + # @param self Reference to the current task object. + # @param hostname The hostname to which this task would optimally be sent. + def specify_preferred_host(self, hostname): + return work_queue_task_specify_preferred_host(self._task, hostname) + + ## + # Add a file to the task. + # + # @param self Reference to the current task object. + # @param local_name The name of the file on local disk or shared filesystem. + # @param remote_name The name of the file at the execution site. + # @param type Must be one of the following values: @ref WORK_QUEUE_INPUT or @ref WORK_QUEUE_OUTPUT + # @param flags May be zero to indicate no special handling, or any + # of the @ref work_queue_file_flags_t or'd together The most common are: + # - @ref WORK_QUEUE_NOCACHE (default) + # - @ref WORK_QUEUE_CACHE + # - @ref WORK_QUEUE_WATCH + # @param cache Legacy parameter for setting file caching attribute. (True/False, deprecated, use the flags parameter.) + # + # For example: + # @code + # # The following are equivalent + # >>> task.specify_file("/etc/hosts", type=WORK_QUEUE_INPUT, flags=WORK_QUEUE_CACHE) + # >>> task.specify_file("/etc/hosts", "hosts", type=WORK_QUEUE_INPUT) + # @endcode + def specify_file(self, local_name, remote_name=None, type=None, flags=None, cache=None): + if remote_name is None: + remote_name = os.path.basename(local_name) + + if type is None: + type = WORK_QUEUE_INPUT + + flags = Task._determine_file_flags(flags, cache) + return work_queue_task_specify_file(self._task, local_name, remote_name, type, flags) + + ## + # Add a file piece to the task. + # + # @param self Reference to the current task object. + # @param local_name The name of the file on local disk or shared filesystem. + # @param remote_name The name of the file at the execution site. + # @param start_byte The starting byte offset of the file piece to be transferred. + # @param end_byte The ending byte offset of the file piece to be transferred. + # @param type Must be one of the following values: @ref WORK_QUEUE_INPUT or @ref WORK_QUEUE_OUTPUT + # @param flags May be zero to indicate no special handling, or any + # of the @ref work_queue_file_flags_t or'd together The most common are: + # - @ref WORK_QUEUE_NOCACHE (default) + # - @ref WORK_QUEUE_CACHE + # @param cache Legacy parameter for setting file caching attribute. (True/False, deprecated, use the flags parameter.) + def specify_file_piece(self, local_name, remote_name=None, start_byte=0, end_byte=0, type=None, flags=None, cache=None): + if remote_name is None: + remote_name = os.path.basename(local_name) + + if type is None: + type = WORK_QUEUE_INPUT + + flags = Task._determine_file_flags(flags, cache) + return work_queue_task_specify_file_piece(self._task, local_name, remote_name, start_byte, end_byte, type, flags) + + ## + # Add a input file to the task. + # + # This is just a wrapper for @ref specify_file with type set to @ref WORK_QUEUE_INPUT. + def specify_input_file(self, local_name, remote_name=None, flags=None, cache=None): + return self.specify_file(local_name, remote_name, WORK_QUEUE_INPUT, flags, cache) + + ## + # Add a output file to the task. + # + # This is just a wrapper for @ref specify_file with type set to @ref WORK_QUEUE_OUTPUT. + def specify_output_file(self, local_name, remote_name=None, flags=None, cache=None): + return self.specify_file(local_name, remote_name, WORK_QUEUE_OUTPUT, flags, cache) + + ## + # Add a directory to the task. + # @param self Reference to the current task object. + # @param local_name The name of the directory on local disk or shared filesystem. Optional if the directory is empty. + # @param remote_name The name of the directory at the remote execution site. + # @param type Must be one of the following values: @ref WORK_QUEUE_INPUT or @ref WORK_QUEUE_OUTPUT + # @param flags May be zero to indicate no special handling, or any + # of the @ref work_queue_file_flags_t or'd together The most common are: + # - @ref WORK_QUEUE_NOCACHE + # - @ref WORK_QUEUE_CACHE + # @param recursive Indicates whether just the directory (False) or the directory and all of its contents (True) should be included. + # @param cache Legacy parameter for setting file caching attribute. (True/False, deprecated, use the flags parameter.) + # @return 1 if the task directory is successfully specified, 0 if either of @a local_name, or @a remote_name is null or @a remote_name is an absolute path. + def specify_directory(self, local_name, remote_name=None, type=None, flags=None, recursive=False, cache=None): + if remote_name is None: + remote_name = os.path.basename(local_name) + + if type is None: + type = WORK_QUEUE_INPUT + + flags = Task._determine_file_flags(flags, cache) + return work_queue_task_specify_directory(self._task, local_name, remote_name, type, flags, recursive) + + ## + # Add an input bufer to the task. + # + # @param self Reference to the current task object. + # @param buffer The contents of the buffer to pass as input. + # @param remote_name The name of the remote file to create. + # @param flags May take the same values as @ref specify_file. + # @param cache Legacy parameter for setting buffer caching attribute. (True/False, deprecated, use the flags parameter.) + def specify_buffer(self, buffer, remote_name, flags=None, cache=None): + flags = Task._determine_file_flags(flags, cache) + return work_queue_task_specify_buffer(self._task, buffer, len(buffer), remote_name, flags) + + # When monitoring, indicates a json-encoded file that instructs the monitor + # to take a snapshot of the task resources. Snapshots appear in the JSON + # summary file of the task, under the key "snapshots". Snapshots are taken + # on events on files described in the monitor_snapshot_file. The + # monitor_snapshot_file is a json encoded file with the following format: + # + # { + # "FILENAME": { + # "from-start":boolean, + # "from-start-if-truncated":boolean, + # "delete-if-found":boolean, + # "events": [ + # { + # "label":"EVENT_NAME", + # "on-create":boolean, + # "on-truncate":boolean, + # "pattern":"REGEXP", + # "count":integer + # }, + # { + # "label":"EVENT_NAME", + # ... + # } + # ] + # }, + # "FILENAME": { + # ... + # } + # + # All keys but "label" are optional: + # + # from-start:boolean If FILENAME exits when task starts running, process from line 1. Default: false, as the task may be appending to an already existing file. + # from-start-if-truncated If FILENAME is truncated, process from line 1. Default: true, to account for log rotations. + # delete-if-found Delete FILENAME when found. Default: false + # + # events: + # label Name that identifies the snapshot. Only alphanumeric, -, + # and _ characters are allowed. + # on-create Take a snapshot every time the file is created. Default: false + # on-truncate Take a snapshot when the file is truncated. Default: false + # on-pattern Take a snapshot when a line matches the regexp pattern. Default: none + # count Maximum number of snapshots for this label. Default: -1 (no limit) + # + # Exactly one of on-create, on-truncate, or on-pattern should be specified. + # For more information, consult the manual of the resource_monitor. + # + # @param self Reference to the current task object. + # @param filename The name of the snapshot events specification + def specify_snapshot_file(self, filename): + return work_queue_specify_snapshot_file(self._task, filename) + + + + ## + # Indicate the number of times the task should be retried. If 0 (the + # default), the task is tried indefinitely. A task that did not succeed + # after the given number of retries is returned with result + # WORK_QUEUE_RESULT_MAX_RETRIES. + def specify_max_retries( self, max_retries ): + return work_queue_task_specify_max_retries(self._task,max_retries) + + ## + # Indicate the number of cores required by this task. + def specify_cores( self, cores ): + return work_queue_task_specify_cores(self._task,cores) + + ## + # Indicate the memory (in MB) required by this task. + def specify_memory( self, memory ): + return work_queue_task_specify_memory(self._task,memory) + + ## + # Indicate the disk space (in MB) required by this task. + def specify_disk( self, disk ): + return work_queue_task_specify_disk(self._task,disk) + + ## + # Indicate the the priority of this task (larger means better priority, default is 0). + def specify_priority( self, priority ): + return work_queue_task_specify_priority(self._task,priority) + + # Indicate the maximum end time (absolute, in microseconds from the Epoch) of this task. + # This is useful, for example, when the task uses certificates that expire. + # If less than 1, or not specified, no limit is imposed. + def specify_end_time( self, useconds ): + return work_queue_task_specify_end_time(self._task,useconds) + + # Indicate the maximum running time for a task in a worker (relative to + # when the task starts to run). If less than 1, or not specified, no limit + # is imposed. + def specify_running_time( self, useconds ): + return work_queue_task_specify_running_time(self._task,useconds) + + ## + # Set this environment variable before running the task. + # If value is None, then variable is unset. + def specify_environment_variable( self, name, value = None ): + return work_queue_task_specify_enviroment_variable(self._task,name,value) + + ## + # Set a name for the resource summary output directory from the monitor. + def specify_monitor_output( self, directory ): + return work_queue_task_specify_monitor_output(self._task,directory) + + ## + # Get the user-defined logical name for the task. + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.tag + # @endcode + @property + def tag(self): + return self._task.tag + + ## + # Get the category name for the task. + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.category + # @endcode + @property + def category(self): + return self._task.category + + ## + # Get the shell command executed by the task. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.command + # @endcode + @property + def command(self): + return self._task.command_line + + ## + # Get the priority of the task. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.priority + # @endcode + @property + def priority(self): + return self._task.priority + + ## + # Get the algorithm for choosing worker to run the task. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.algorithm + # @endcode + @property + def algorithm(self): + return self._task.worker_selection_algorithm + + ## + # Get the standard output of the task. Must be called only after the task + # completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.output + # @endcode + @property + def output(self): + return self._task.output + + ## + # Get the task id number. Must be called only after the task was submitted. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.id + # @endcode + @property + def id(self): + return self._task.taskid + + ## + # Get the exit code of the command executed by the task. Must be called only + # after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.return_status + # @endcode + @property + def return_status(self): + return self._task.return_status + + ## + # Get the result of the task, such as successful, missing file, etc. + # See @ref work_queue_result_t for possible values. Must be called only + # after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.result + # @endcode + @property + def result(self): + return self._task.result + + ## + # Get the number of times the task has been resubmitted internally. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_submissions + # @endcode + @property + def total_submissions(self): + return self._task.total_submissions + + ## + # Get the number of times the task has been failed given resource exhaustion. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.exhausted_attempts + # @endcode + @property + def exhausted_attempts(self): + return self._task.exhausted_attempts + + ## + # Get the address and port of the host on which the task ran. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.host + # @endcode + @property + def host(self): + return self._task.host + + ## + # Get the name of the host on which the task ran. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.hostname + # @endcode + @property + def hostname(self): + return self._task.hostname + + ## + # Get the time at which this task was submitted. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.submit_time + # @endcode + @property + def submit_time(self): + return self._task.time_task_submit + + ## + # Get the time at which this task was finished. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.finish_time + # @endcode + @property + def finish_time(self): + return self._task.time_task_finish + + ## + # Get the total time the task executed and failed given resource exhaustion. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_cmd_exhausted_execute_time + # @endcode + @property + def total_cmd_exhausted_execute_time(self): + return self._task.total_cmd_exhausted_execute_time + + ## + # Get the time spent in upper-level application (outside of work_queue_wait). + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.app_delay + # @endcode + @property + def app_delay(self): + return self._task.time_app_delay + + ## + # Get the time at which the task started to transfer input files. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.send_input_start + # @endcode + @property + def send_input_start(self): + return self._task.time_send_input_start + + ## + # Get the time at which the task finished transferring input files. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.send_input_finish + # @endcode + @property + def send_input_finish(self): + return self._task.time_send_input_finish + + ## + # The time at which the task began. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.execute_cmd_start + # @endcode + @property + def execute_cmd_start(self): + return self._task.time_execute_cmd_start + + ## + # Get the time at which the task finished (discovered by the master). + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.execute_cmd_finish + # @endcode + @property + def execute_cmd_finish(self): + return self._task.time_execute_cmd_finish + + ## + # Get the time at which the task started to transfer output files. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.receive_output_start + # @endcode + @property + def receive_output_start(self): + return self._task.time_receive_output_start + + ## + # Get the time at which the task finished transferring output files. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.receive_output_finish + # @endcode + @property + def receive_output_finish(self): + return self._task.time_receive_output_finish + + ## + # Get the number of bytes received since task started receiving input data. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_bytes_received + # @endcode + @property + def total_bytes_received(self): + return self._task.total_bytes_received + + ## + # Get the number of bytes sent since task started sending input data. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_bytes_sent + # @endcode + @property + def total_bytes_sent(self): + return self._task.total_bytes_sent + + ## + # Get the number of bytes transferred since task started transferring input data. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_bytes_transferred + # @endcode + @property + def total_bytes_transferred(self): + return self._task.total_bytes_transferred + + ## + # Get the time comsumed in microseconds for transferring total_bytes_transferred. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_transfer_time + # @endcode + @property + def total_transfer_time(self): + return self._task.total_transfer_time + + ## + # Time spent in microseconds for executing the command until completion on a single worker. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.cmd_execution_time + # @endcode + @property + def cmd_execution_time(self): + return self._task.cmd_execution_time + + ## + # Accumulated time spent in microseconds for executing the command on any + # worker, regardless of whether the task finished (i.e., this includes time + # running on workers that disconnected). + # + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_cmd_execution_time + # @endcode + @property + def total_cmd_execution_time(self): + return self._task.total_cmd_execution_time + + ## + # Get the resources measured for the task execution if resource monitoring is enabled. + # Must be called only after the task completes execution. Valid fields: + # + # start: microseconds at the start of execution + # + # end: microseconds at the end of execution + # + # wall_time: microseconds spent during execution + # + # cpu_time: user + system time of the execution + # + # cores: peak number of cores used + # + # cores_avg: number of cores computed as cpu_time/wall_time + # + # max_concurrent_processes: the maximum number of processes running concurrently + # + # total_processes: count of all of the processes created + # + # virtual_memory: maximum virtual memory across all processes + # + # memory: maximum resident size across all processes + # + # swap_memory: maximum swap usage across all processes + # + # bytes_read: number of bytes read from disk + # + # bytes_written: number of bytes written to disk + # + # bytes_received: number of bytes read from the network + # + # bytes_sent: number of bytes written to the network + # + # bandwidth: maximum network bits/s (average over one minute) + # + # total_files: total maximum number of files and directories of all the working directories in the tree + # + # disk: size in MB of all working directories in the tree + # + # @code + # >>> print t.resources_measured.memory + # @endcode + @property + def resources_measured(self): + if not self._task.resources_measured: + return None + + return self._task.resources_measured + + ## + # Get the resources the task exceeded. For valid field see @resources_measured. + # + @property + def limits_exceeded(self): + if not self._task.resources_measured: + return None + + if not self._task.resources_measured.limits_exceeded: + return None + + return self._task.resources_measured.limits_exceeded + + + ## + # Get the resources the task requested to run. For valid fields see + # @resources_measured. + # + @property + def resources_requested(self): + if not self._task.resources_requested: + return None + return self._task.resources_requested + + ## + # Get the resources allocated to the task in its latest attempt. For valid + # fields see @resources_measured. + # + @property + def resources_allocated(self): + if not self._task.resources_allocated: + return None + return self._task.resources_allocated + + +## +# Python Work Queue object +# +# This class uses a dictionary to map between the task pointer objects and the +# @ref work_queue::Task. +class WorkQueue(object): + ## + # Create a new work queue. + # + # @param self Reference to the current work queue object. + # @param port The port number to listen on. If zero, then a random port is chosen. A range of possible ports (low, hight) can be also specified instead of a single integer. + # @param name The project name to use. + # @param stats_log The name of a file to write the queue's statistics log. + # @param transactions_log The name of a file to write the queue's transactions log. + # @param debug_log The name of a file to write the queue's debug log. + # @param shutdown Automatically shutdown workers when queue is finished. Disabled by default. + # + # @see work_queue_create - For more information about environmental variables that affect the behavior this method. + def __init__(self, port=WORK_QUEUE_DEFAULT_PORT, name=None, shutdown=False, stats_log=None, transactions_log=None, debug_log=None): + self._shutdown = shutdown + self._work_queue = None + self._stats = None + self._stats_hierarchy = None + self._task_table = {} + + # if we were given a range ports, rather than a single port to try. + lower, upper = None, None + try: + lower, upper = port + specify_port_range(lower, upper) + port = 0 + except TypeError: + # if not a range, ignore + pass + except ValueError: + raise ValueError('port should be a single integer, or a sequence of two integers') + + try: + if debug_log: + specify_debug_log(debug_log) + self._stats = work_queue_stats() + self._stats_hierarchy = work_queue_stats() + self._work_queue = work_queue_create(port) + if not self._work_queue: + raise Exception('Could not create work_queue on port %d' % port) + + if stats_log: + self.specify_log(stats_log) + + if transactions_log: + self.specify_transactions_log(transactions_log) + + if name: + work_queue_specify_name(self._work_queue, name) + except Exception as e: + raise Exception('Unable to create internal Work Queue structure: %s' % e) + + def __free_queue(self): + if self._work_queue: + if self._shutdown: + self.shutdown_workers(0) + work_queue_delete(self._work_queue) + self._work_queue = None + + def __del__(self): + self.__free_queue() + + ## + # Get the project name of the queue. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print q.name + # @endcode + @property + def name(self): + return work_queue_name(self._work_queue) + + ## + # Get the listening port of the queue. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print q.port + # @endcode + @property + def port(self): + return work_queue_port(self._work_queue) + + ## + # Get queue statistics. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print q.stats + # @endcode + # The fields in @ref stats can also be individually accessed through this call. For example: + # @code + # >>> print q.stats.workers_busy + # @endcode + @property + def stats(self): + work_queue_get_stats(self._work_queue, self._stats) + return self._stats + + ## + # Get worker hierarchy statistics. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print q.stats_hierarchy + # @endcode + # The fields in @ref stats_hierarchy can also be individually accessed through this call. For example: + # @code + # >>> print q.stats_hierarchy.workers_busy + # @endcode + @property + def stats_hierarchy(self): + work_queue_get_stats_hierarchy(self._work_queue, self._stats_hierarchy) + return self._stats_hierarchy + + ## + # Get the task statistics for the given category. + # + # @param self Reference to the current work queue object. + # @param category A category name. + # For example: + # @code + # s = q.stats_category("my_category") + # >>> print s + # @endcode + # The fields in @ref work_queue_stats can also be individually accessed through this call. For example: + # @code + # >>> print s.tasks_waiting + # @endcode + def stats_category(self, category): + stats = work_queue_stats() + work_queue_get_stats_category(self._work_queue, category, stats) + return stats + + ## + # Turn on or off first-allocation labeling for a given category. By + # default, only cores, memory, and disk are labeled. Turn on/off other + # specific resources with @ref specify_category_autolabel_resource. + # NOTE: autolabeling is only meaningfull when task monitoring is enabled + # (@ref enable_monitoring). When monitoring is enabled and a task exhausts + # resources in a worker, mode dictates how work queue handles the + # exhaustion: + # @param self Reference to the current work queue object. + # @param category A category name. If None, sets the mode by default for + # newly created categories. + # @param mode One of @ref category_mode_t: + # - WORK_QUEUE_ALLOCATION_MODE_FIXED Task fails (default). + # - WORK_QUEUE_ALLOCATION_MODE_MAX If maximum values are + # specified for cores, memory, or disk (e.g. via @ref + # specify_max_category_resources or @ref specify_memory), + # and one of those resources is exceeded, the task fails. + # Otherwise it is retried until a large enough worker + # connects to the master, using the maximum values + # specified, and the maximum values so far seen for + # resources not specified. Use @ref specify_max_retries to + # set a limit on the number of times work queue attemps + # to complete the task. + # - WORK_QUEUE_ALLOCATION_MODE_MIN_WASTE As above, but + # work queue tries allocations to minimize resource waste. + # - WORK_QUEUE_ALLOCATION_MODE_MAX_THROUGHPUT As above, but + # work queue tries allocations to maximize throughput. + def specify_category_mode(self, category, mode): + return work_queue_specify_category_mode(self._work_queue, category, mode) + + ## + # Turn on or off first-allocation labeling for a given category and + # resource. This function should be use to fine-tune the defaults from @ref + # specify_category_mode. + # @param q A work queue object. + # @param category A category name. + # @param resource A resource name. + # @param autolabel True/False for on/off. + # @returns 1 if resource is valid, 0 otherwise. + def specify_category_autolabel_resource(self, category, resource, autolabel): + return work_queue_enable_category_resource(self._work_queue, category, category, resource, autolabel) + + ## + # Get current task state. See @ref work_queue_task_state_t for possible values. + # @code + # >>> print q.task_state(taskid) + # @endcode + def task_state(self, taskid): + return work_queue_task_state(self._work_queue, taskid) + + ## Enables resource monitoring of tasks in the queue, and writes a summary + # per task to the directory given. Additionally, all summaries are + # consolidate into the file all_summaries-PID.log + # + # Returns 1 on success, 0 on failure (i.e., monitoring was not enabled). + # + # @param self Reference to the current work queue object. + # @param dirname Directory name for the monitor output. + # @param watchdog If True (default), kill tasks that exhaust their declared resources. + def enable_monitoring(self, dirname = None, watchdog = True): + return work_queue_enable_monitoring(self._work_queue, dirname, watchdog) + + ## As @ref enable_monitoring, but it also generates a time series and a debug file. + # WARNING: Such files may reach gigabyte sizes for long running tasks. + # + # Returns 1 on success, 0 on failure (i.e., monitoring was not enabled). + # + # @param self Reference to the current work queue object. + # @param dirname Directory name for the monitor output. + # @param watchdog If True (default), kill tasks that exhaust their declared resources. + def enable_monitoring_full(self, dirname = None, watchdog = True): + return work_queue_enable_monitoring_full(self._work_queue, dirname, watchdog) + + ## + # Turn on or off fast abort functionality for a given queue for tasks in + # the "default" category, and for task which category does not set an + # explicit multiplier. + # + # @param self Reference to the current work queue object. + # @param multiplier The multiplier of the average task time at which point to abort; if negative (the default) fast_abort is deactivated. + def activate_fast_abort(self, multiplier): + return work_queue_activate_fast_abort(self._work_queue, multiplier) + + ## + # Turn on or off fast abort functionality for a given queue. + # + # @param self Reference to the current work queue object. + # @param name Name of the category. + # @param multiplier The multiplier of the average task time at which point to abort; if zero, deacticate for the category, negative (the default), use the one for the "default" category (see @ref fast_abort) + def activate_fast_abort_category(self, name, multiplier): + return work_queue_activate_fast_abort_category(self._work_queue, name, multiplier) + + ## + # Turn on or off draining mode for workers at hostname. + # + # @param self Reference to the current work queue object. + # @param host The hostname the host running the workers. + # @param drain_mode If True, no new tasks are dispatched to workers at hostname, and empty workers are shutdown. Else, workers works as usual. + def specify_draining_by_hostname(self, hostname, drain_mode = True): + return work_queue_specify_draining_by_hostname (self._work_queue, hostname, drain_mode) + + ## + # Determine whether there are any known tasks queued, running, or waiting to be collected. + # + # Returns 0 if there are tasks remaining in the system, 1 if the system is "empty". + # + # @param self Reference to the current work queue object. + def empty(self): + return work_queue_empty(self._work_queue) + + ## + # Determine whether the queue can support more tasks. + # + # Returns the number of additional tasks it can support if "hungry" and 0 if "sated". + # + # @param self Reference to the current work queue object. + def hungry(self): + return work_queue_hungry(self._work_queue) + + ## + # Set the worker selection algorithm for queue. + # + # @param self Reference to the current work queue object. + # @param algorithm One of the following algorithms to use in assigning a + # task to a worker. See @ref work_queue_schedule_t for + # possible values. + def specify_algorithm(self, algorithm): + return work_queue_specify_algorithm(self._work_queue, algorithm) + + ## + # Set the order for dispatching submitted tasks in the queue. + # + # @param self Reference to the current work queue object. + # @param order One of the following algorithms to use in dispatching + # submitted tasks to workers: + # - @ref WORK_QUEUE_TASK_ORDER_FIFO + # - @ref WORK_QUEUE_TASK_ORDER_LIFO + def specify_task_order(self, order): + return work_queue_specify_task_order(self._work_queue, order) + + ## + # Change the project name for the given queue. + # + # @param self Reference to the current work queue object. + # @param name The new project name. + def specify_name(self, name): + return work_queue_specify_name(self._work_queue, name) + + ## + # Set the preference for using hostname over IP address to connect. + # 'by_ip' uses IP address (standard behavior), or 'by_hostname' to use the + # hostname at the master. + # + # @param self Reference to the current work queue object. + # @param preferred_connection An string to indicate using 'by_ip' or a 'by_hostname'. + def specify_master_preferred_connection(self, mode): + return work_queue_master_preferred_connection(self._work_queue, mode) + + ## + # Set the minimum taskid of future submitted tasks. + # + # Further submitted tasks are guaranteed to have a taskid larger or equal + # to minid. This function is useful to make taskids consistent in a + # workflow that consists of sequential masters. (Note: This function is + # rarely used). If the minimum id provided is smaller than the last taskid + # computed, the minimum id provided is ignored. + # + # @param self Reference to the current work queue object. + # @param minid Minimum desired taskid + # @return Returns the actual minimum taskid for future tasks. + def specify_min_taskid(self, minid): + return work_queue_specify_min_taskid(self._work_queue, minid) + + ## + # Change the project priority for the given queue. + # + # @param self Reference to the current work queue object. + # @param priority An integer that presents the priorty of this work queue master. The higher the value, the higher the priority. + def specify_priority(self, priority): + return work_queue_specify_priority(self._work_queue, priority) + + ## Specify the number of tasks not yet submitted to the queue. + # It is used by work_queue_factory to determine the number of workers to launch. + # If not specified, it defaults to 0. + # work_queue_factory considers the number of tasks as: + # num tasks left + num tasks running + num tasks read. + # @param q A work queue object. + # @param ntasks Number of tasks yet to be submitted. + def specify_num_tasks_left(self, ntasks): + return work_queue_specify_num_tasks_left(self._work_queue, ntasks) + + ## + # Specify the master mode for the given queue. + # + # @param self Reference to the current work queue object. + # @param mode This may be one of the following values: @ref WORK_QUEUE_MASTER_MODE_STANDALONE or @ref WORK_QUEUE_MASTER_MODE_CATALOG. + def specify_master_mode(self, mode): + return work_queue_specify_master_mode(self._work_queue, mode) + + ## + # Specify the catalog server the master should report to. + # + # @param self Reference to the current work queue object. + # @param hostname The hostname of the catalog server. + # @param port The port the catalog server is listening on. + def specify_catalog_server(self, hostname, port): + return work_queue_specify_catalog_server(self._work_queue, hostname, port) + + ## + # Specify a log file that records the cummulative stats of connected workers and submitted tasks. + # + # @param self Reference to the current work queue object. + # @param logfile Filename. + def specify_log(self, logfile): + return work_queue_specify_log(self._work_queue, logfile) + + ## + # Specify a log file that records the states of tasks. + # + # @param self Reference to the current work queue object. + # @param logfile Filename. + def specify_transactions_log(self, logfile): + work_queue_specify_transactions_log(self._work_queue, logfile) + + ## + # Add a mandatory password that each worker must present. + # + # @param self Reference to the current work queue object. + # @param password The password. + def specify_password(self, password): + return work_queue_specify_password(self._work_queue, password) + + ## + # Add a mandatory password file that each worker must present. + # + # @param self Reference to the current work queue object. + # @param file Name of the file containing the password. + + def specify_password_file(self, file): + return work_queue_specify_password_file(self._work_queue, file) + + ## + # + # Specifies the maximum resources allowed for the default category. + # @param self Reference to the current work queue object. + # @param rm Dictionary indicating maximum values. See @resources_measured for possible fields. + # For example: + # @code + # >>> # A maximum of 4 cores is found on any worker: + # >>> q.specify_max_resources({'cores': 4}) + # >>> # A maximum of 8 cores, 1GB of memory, and 10GB disk are found on any worker: + # >>> q.specify_max_resources({'cores': 8, 'memory': 1024, 'disk': 10240}) + # @endcode + + def specify_max_resources(self, rmd): + rm = rmsummary_create(-1) + for k in rmd: + old_value = getattr(rm, k) # to raise an exception for unknown keys + setattr(rm, k, rmd[k]) + return work_queue_specify_max_resources(self._work_queue, rm) + + ## + # Specifies the maximum resources allowed for the given category. + # + # @param self Reference to the current work queue object. + # @param category Name of the category. + # @param rm Dictionary indicating maximum values. See @resources_measured for possible fields. + # For example: + # @code + # >>> # A maximum of 4 cores may be used by a task in the category: + # >>> q.specify_category_max_resources("my_category", {'cores': 4}) + # >>> # A maximum of 8 cores, 1GB of memory, and 10GB may be used by a task: + # >>> q.specify_category_max_resources("my_category", {'cores': 8, 'memory': 1024, 'disk': 10240}) + # @endcode + + def specify_category_max_resources(self, category, rmd): + rm = rmsummary_create(-1) + for k in rmd: + old_value = getattr(rm, k) # to raise an exception for unknown keys + setattr(rm, k, rmd[k]) + return work_queue_specify_category_max_resources(self._work_queue, category, rm) + + ## + # Specifies the first-allocation guess for the given category + # + # @param self Reference to the current work queue object. + # @param category Name of the category. + # @param rm Dictionary indicating maximum values. See @resources_measured for possible fields. + # For example: + # @code + # >>> # A maximum of 4 cores may be used by a task in the category: + # >>> q.specify_max_category_resources("my_category", {'cores': 4}) + # >>> # A maximum of 8 cores, 1GB of memory, and 10GB may be used by a task: + # >>> q.specify_max_category_resources("my_category", {'cores': 8, 'memory': 1024, 'disk': 10240}) + # @endcode + + def specify_category_first_allocation_guess(self, category, rmd): + rm = rmsummary_create(-1) + for k in rmd: + old_value = getattr(rm, k) # to raise an exception for unknown keys + setattr(rm, k, rmd[k]) + return work_queue_specify_category_first_allocation_guess(self._work_queue, category, rm) + + ## + # Initialize first value of categories + # + # @param self Reference to the current work queue object. + # @param rm Dictionary indicating maximum values. See @resources_measured for possible fields. + # @param filename JSON file with resource summaries. + + def initialize_categories(filename, rm): + return work_queue_initialize_categories(self._work_queue, rm, filename) + + ## + # Cancel task identified by its taskid and remove from the given queue. + # + # @param self Reference to the current work queue object. + # @param id The taskid returned from @ref submit. + def cancel_by_taskid(self, id): + return work_queue_cancel_by_taskid(self._work_queue, id) + + ## + # Cancel task identified by its tag and remove from the given queue. + # + # @param self Reference to the current work queue object. + # @param tag The tag assigned to task using @ref work_queue_task_specify_tag. + def cancel_by_tasktag(self, tag): + return work_queue_cancel_by_tasktag(self._work_queue, tag) + + ## + # Shutdown workers connected to queue. + # + # Gives a best effort and then returns the number of workers given the shutdown order. + # + # @param self Reference to the current work queue object. + # @param n The number to shutdown. To shut down all workers, specify "0". + def shutdown_workers(self, n): + return work_queue_shut_down_workers(self._work_queue, n) + + ## + # Blacklist workers running on host. + # + # @param self Reference to the current work queue object. + # @param host The hostname the host running the workers. + def blacklist(self, host): + return work_queue_blacklist_add(self._work_queue, host) + + ## + # Blacklist workers running on host for the duration of the given timeout. + # + # @param self Reference to the current work queue object. + # @param host The hostname the host running the workers. + # @param timeout How long this blacklist entry lasts (in seconds). If less than 1, blacklist indefinitely. + def blacklist_with_timeout(self, host, timeout): + return work_queue_blacklist_add_with_timeout(self._work_queue, host, timeout) + + ## + # Remove host from blacklist. Clear all blacklist if host not provided. + # + # @param self Reference to the current work queue object. + # @param host The of the hostname the host. + def blacklist_clear(self, host=None): + if host is None: + return work_queue_blacklist_clear(self._work_queue) + else: + return work_queue_blacklist_remove(self._work_queue, host) + + ## + # Delete file from workers's caches. + # + # @param self Reference to the current work queue object. + # @param local_name Name of the file as seen by the master. + def invalidate_cache_file(self, local_name): + return work_queue_invalidate_cached_file(self._work_queue, local_name, WORK_QUEUE_FILE) + + ## + # Change keepalive interval for a given queue. + # + # @param self Reference to the current work queue object. + # @param interval Minimum number of seconds to wait before sending new keepalive + # checks to workers. + def specify_keepalive_interval(self, interval): + return work_queue_specify_keepalive_interval(self._work_queue, interval) + + ## + # Change keepalive timeout for a given queue. + # + # @param self Reference to the current work queue object. + # @param timeout Minimum number of seconds to wait for a keepalive response + # from worker before marking it as dead. + def specify_keepalive_timeout(self, timeout): + return work_queue_specify_keepalive_timeout(self._work_queue, timeout) + + ## + # Turn on master capacity measurements. + # + # @param self Reference to the current work queue object. + # + def estimate_capacity(self): + return work_queue_specify_estimate_capacity_on(self._work_queue, 1) + + ## + # Tune advanced parameters for work queue. + # + # @param self Reference to the current work queue object. + # @param name The name fo the parameter to tune. Can be one of following: + # - "asynchrony-multiplier" Treat each worker as having (actual_cores * multiplier) total cores. (default = 1.0) + # - "asynchrony-modifier" Treat each worker as having an additional "modifier" cores. (default=0) + # - "min-transfer-timeout" Set the minimum number of seconds to wait for files to be transferred to or from a worker. (default=10) + # - "foreman-transfer-timeout" Set the minimum number of seconds to wait for files to be transferred to or from a foreman. (default=3600) + # - "transfer-outlier-factor" Transfer that are this many times slower than the average will be aborted. (default=10x) + # - "default-transfer-rate" The assumed network bandwidth used until sufficient data has been collected. (1MB/s) + # - "fast-abort-multiplier" Set the multiplier of the average task time at which point to abort; if negative or zero fast_abort is deactivated. (default=0) + # - "keepalive-interval" Set the minimum number of seconds to wait before sending new keepalive checks to workers. (default=300) + # - "keepalive-timeout" Set the minimum number of seconds to wait for a keepalive response from worker before marking it as dead. (default=30) + # - "short-timeout" Set the minimum timeout when sending a brief message to a single worker. (default=5s) + # - "long-timeout" Set the minimum timeout when sending a brief message to a foreman. (default=1h) + # - "category-steady-n-tasks" Set the number of tasks considered when computing category buckets. + # @param value The value to set the parameter to. + # @return 0 on succes, -1 on failure. + # + def tune(self, name, value): + return work_queue_tune(self._work_queue, name, value) + + ## + # Submit a task to the queue. + # + # It is safe to re-submit a task returned by @ref wait. + # + # @param self Reference to the current work queue object. + # @param task A task description created from @ref work_queue::Task. + def submit(self, task): + taskid = work_queue_submit(self._work_queue, task._task) + self._task_table[taskid] = task + return taskid + + ## + # Wait for tasks to complete. + # + # This call will block until the timeout has elapsed + # + # @param self Reference to the current work queue object. + # @param timeout The number of seconds to wait for a completed task + # before returning. Use an integer to set the timeout or the constant @ref + # WORK_QUEUE_WAITFORTASK to block until a task has completed. + def wait(self, timeout=WORK_QUEUE_WAITFORTASK): + task_pointer = work_queue_wait(self._work_queue, timeout) + if task_pointer: + task = self._task_table[int(task_pointer.taskid)] + del(self._task_table[task_pointer.taskid]) + return task + return None + +def rmsummary_snapshots(self): + if self.snapshots_count < 1: + return None + + snapshots = [] + for i in range(0, self.snapshots_count): + snapshot = rmsummary_get_snapshot(self, i); + snapshots.append(snapshot) + return snapshots + +rmsummary.snapshots = property(rmsummary_snapshots) diff -Nru cctools-7.0.22/work_queue/src/bindings/python2/work_queue_detailed_example_1.py cctools-7.1.2/work_queue/src/bindings/python2/work_queue_detailed_example_1.py --- cctools-7.0.22/work_queue/src/bindings/python2/work_queue_detailed_example_1.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python2/work_queue_detailed_example_1.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,103 @@ +#!/usr/bin/env python + +# Copyright (c) 2010- The University of Notre Dame. +# This software is distributed under the GNU General Public License. +# See the file COPYING for details. + +""" Python-WorkQueue test """ + +from work_queue import Task, WorkQueue, set_debug_flag +from work_queue import WORK_QUEUE_SCHEDULE_FCFS, WORK_QUEUE_SCHEDULE_FILES +from work_queue import WORK_QUEUE_RANDOM_PORT +from work_queue import WORK_QUEUE_OUTPUT +#from workqueue import WORK_QUEUE_MASTER_MODE_STANDALONE, WORK_QUEUE_WORKER_MODE_SHARED +from work_queue import WORK_QUEUE_TASK_ORDER_LIFO + +import os +import sys +import time + +set_debug_flag('debug') +set_debug_flag('wq') + +wq = WorkQueue(WORK_QUEUE_RANDOM_PORT, name='workqueue_example', catalog=True, exclusive=False) +os.environ['PATH'] = '../../../work_queue/src:' + os.environ['PATH'] +os.system('work_queue_worker -d all localhost %d &' % wq.port) + +print wq.name + +wq.specify_algorithm(WORK_QUEUE_SCHEDULE_FCFS) +#wq.specify_name('workqueue_example') +#wq.specify_master_mode(WORK_QUEUE_MASTER_MODE_STANDALONE) +#wq.specify_worker_mode(WORK_QUEUE_WORKER_MODE_SHARED) +wq.specify_task_order(WORK_QUEUE_TASK_ORDER_LIFO) + +if wq.empty(): + print 'work queue is empty' + +outputs = [] + +for i in range(5): + ifile = 'msg.%d' % i + ofile = 'out.%d' % i + task = Task('cat < %s > %s' % (ifile, ofile)) + + task.specify_tag(str(time.time())) + print task.command, task.tag + + task.specify_algorithm(WORK_QUEUE_SCHEDULE_FILES) + print task.command, task.algorithm + + task.specify_buffer('hello from %d' % i, ifile, cache=False) + if i % 2: + task.specify_output_file(ofile, cache=False) + else: + task.specify_file(ofile, type=WORK_QUEUE_OUTPUT, cache=False) + + outputs.append(ofile) + wq.submit(task) + +if wq.empty(): + print 'work queue is empty' + +while not wq.empty(): + t = wq.wait(10) + if t: + print t.tag + + print wq.stats.workers_init, wq.stats.workers_ready, wq.stats.workers_busy, \ + wq.stats.tasks_running, wq.stats.tasks_waiting, wq.stats.tasks_complete + +map(os.unlink, outputs) + +for i in range(5): + task = Task('hostname && date +%s.%N') + task.specify_input_file('/bin/hostname') + wq.submit(task) + +if wq.hungry(): + print 'work queue is hungry' + +wq.activate_fast_abort(1.5) + +while not wq.empty(): + t = wq.wait(1) + if t: + print t.id, t.return_status, t.result, t.host + print t.submit_time, t.finish_time, t.app_delay + print t.send_input_start, t.send_input_finish + print t.execute_cmd_start, t.execute_cmd_finish + print t.receive_output_start, t.receive_output_finish + print t.total_bytes_transferred, t.total_transfer_time + print t.cmd_execution_time + print t.output + + print wq.stats.workers_init, wq.stats.workers_ready, wq.stats.workers_busy, \ + wq.stats.tasks_running, wq.stats.tasks_waiting, wq.stats.tasks_complete + +wq.shutdown_workers(0) + +print wq.stats.total_tasks_dispatched, wq.stats.total_tasks_complete, \ + wq.stats.total_workers_joined, wq.stats.total_workers_removed + +# vim: sts=4 sw=4 ts=8 ft=python diff -Nru cctools-7.0.22/work_queue/src/bindings/python2/work_queue_detailed_example_2.py cctools-7.1.2/work_queue/src/bindings/python2/work_queue_detailed_example_2.py --- cctools-7.0.22/work_queue/src/bindings/python2/work_queue_detailed_example_2.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python2/work_queue_detailed_example_2.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,72 @@ +#!/usr/bin/env python + +import work_queue +import os + +work_queue.set_debug_flag('all') + +wq = work_queue.WorkQueue(port=work_queue.WORK_QUEUE_RANDOM_PORT, exclusive=False, shutdown=True) +wq.specify_name('test') + +for i in range(5): + task = work_queue.Task('date') + task.specify_algorithm(work_queue.WORK_QUEUE_SCHEDULE_FCFS) + task.specify_tag('current date/time [%d]' % i) + task.specify_input_file('/bin/date') + + print task.id + print task.algorithm + print task.command + print task.tag + + wq.submit(task) + +os.environ['PATH'] = '../../../work_queue/src:' + os.environ['PATH'] +os.system('work_queue_worker -d all -t 5 localhost %d &' % wq.port) + +while not wq.empty(): + print '** wait for task' + task = wq.wait(1) + if task: + print 'task' + print 'algorithm', task.algorithm + print 'command', task.command + print 'tag', task.tag + print 'output', task.output + print 'id', task.id + print task.return_status + print task.result + print task.host + print task.submit_time + print task.finish_time + print task.app_delay + print task.send_input_start + print task.send_input_finish + print task.execute_cmd_start + print task.execute_cmd_finish + print task.receive_output_start + print task.receive_output_finish + print task.total_bytes_transferred + print task.total_transfer_time + print task.cmd_execution_time + del task + print '** work queue' + print wq.stats.workers_init + print wq.stats.workers_ready + print wq.stats.workers_busy + print wq.stats.tasks_running + print wq.stats.tasks_waiting + print wq.stats.tasks_complete + print wq.stats.total_tasks_dispatched + print wq.stats.total_tasks_complete + print wq.stats.total_workers_joined + print wq.stats.total_workers_removed + print wq.stats.total_bytes_sent + print wq.stats.total_bytes_received + print wq.stats.total_send_time + print wq.stats.total_receive_time + print wq.stats.efficiency + print wq.stats.idle_percentage + print wq.stats.capacity + print wq.stats.avg_capacity + print wq.stats.total_workers_connected diff -Nru cctools-7.0.22/work_queue/src/bindings/python2/work_queue_example.py cctools-7.1.2/work_queue/src/bindings/python2/work_queue_example.py --- cctools-7.0.22/work_queue/src/bindings/python2/work_queue_example.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python2/work_queue_example.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,87 @@ +#!/usr/bin/env python + +# Copyright (c) 2010- The University of Notre Dame. +# This software is distributed under the GNU General Public License. +# See the file COPYING for details. + +# This program is a very simple example of how to use Work Queue. +# It accepts a list of files on the command line. +# Each file is compressed with gzip and returned to the user. + +from work_queue import * + +import os +import sys + +# Main program +if __name__ == '__main__': + if len(sys.argv) < 2: + print("work_queue_example [file2] [file3] ...") + print("Each file given on the command line will be compressed using a remote worker.") + sys.exit(1) + + # Usually, we can execute the gzip utility by simply typing its name at a + # terminal. However, this is not enough for work queue; we have to + # specify precisely which files need to be transmitted to the workers. We + # record the location of gzip in 'gzip_path', which is usually found in + # /bin/gzip or /usr/bin/gzip. + + gzip_path = "/bin/gzip" + if not os.path.exists(gzip_path): + gzip_path = "/usr/bin/gzip" + if not os.path.exists(gzip_path): + print("gzip was not found. Please modify the gzip_path variable accordingly. To determine the location of gzip, from the terminal type: which gzip (usual locations are /bin/gzip and /usr/bin/gzip)") + sys.exit(1); + + # We create the tasks queue using the default port. If this port is already + # been used by another program, you can try setting port = 0 to use an + # available port. + try: + q = WorkQueue(port = WORK_QUEUE_DEFAULT_PORT) + except: + print("Instantiation of Work Queue failed!") + sys.exit(1) + + print("listening on port %d..." % q.port) + + # We create and dispatch a task for each filename given in the argument list + for i in range(1, len(sys.argv)): + infile = "%s" % sys.argv[i] + outfile = "%s.gz" % sys.argv[i] + + # Note that we write ./gzip here, to guarantee that the gzip version we + # are using is the one being sent to the workers. + command = "./gzip < %s > %s" % (infile, outfile) + + t = Task(command) + + # gzip is the same across all tasks, so we can cache it in the workers. + # Note that when specifying a file, we have to name its local name + # (e.g. gzip_path), and its remote name (e.g. "gzip"). Unlike the + # following line, more often than not these are the same. + t.specify_file(gzip_path, "gzip", WORK_QUEUE_INPUT, cache=True) + + # files to be compressed are different across all tasks, so we do not + # cache them. This is, of course, application specific. Sometimes you may + # want to cache an output file if is the input of a later task. + t.specify_file(infile, infile, WORK_QUEUE_INPUT, cache=False) + t.specify_file(outfile, outfile, WORK_QUEUE_OUTPUT, cache=False) + + # Once all files has been specified, we are ready to submit the task to the queue. + taskid = q.submit(t) + print("submitted task (id# %d): %s" % (taskid, t.command)) + + print("waiting for tasks to complete...") + while not q.empty(): + t = q.wait(5) + if t: + print("task (id# %d) complete: %s (return code %d)" % (t.id, t.command, t.return_status)) + if t.return_status != 0: + # The task failed. Error handling (e.g., resubmit with new parameters, examine logs, etc.) here + None + #task object will be garbage collected by Python automatically when it goes out of scope + + print("all tasks complete!") + + #work queue object will be garbage collected by Python automatically when it goes out of scope + sys.exit(0) diff -Nru cctools-7.0.22/work_queue/src/bindings/python2/work_queue_futures_example.py cctools-7.1.2/work_queue/src/bindings/python2/work_queue_futures_example.py --- cctools-7.0.22/work_queue/src/bindings/python2/work_queue_futures_example.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python2/work_queue_futures_example.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,57 @@ +from work_queue_futures import WorkQueueFutures, FutureTask, FutureTaskError + +q = WorkQueueFutures(port = 9123, local_worker = {'cores':1, 'memory':512, 'disk':10000}) +#q = WorkQueueFutures(port = 9123) + +# without callbacks, append task to a list and then wait for them +tasks = [] +for i in range(3): + t = FutureTask('/bin/date') + q.submit(t) + tasks.append(t) + +for t in tasks: + print('task {} finished: {}'.format(t.id, t.result())) + +# using callbacks: +# when future is done, it is given as an argument to function +def report_done(task): + print('task {} finished. printing from callback: {}'.format(task.id, task.result())) + # even we could add new tasks in a callback with future.queue.submit(...) + +for i in range(3): + t = FutureTask('/bin/date') + q.submit(t) + t.add_done_callback(report_done) + +# wait for all tasks to be done +q.join() + + +# dealing with tasks with errors: + +tasks_with_errors = [] + +# task with missing executable: +t = FutureTask('/bin/executable-that-does-not-exists') +q.submit(t) +tasks_with_errors.append(t) + +# missing input file +t = FutureTask('/bin/date') +t.specify_input_file('some-filename-that-does-not-exists') +q.submit(t) +tasks_with_errors.append(t) + +# missing output file +t = FutureTask('/bin/date') +t.specify_output_file('some-filename-that-was-not-generated') +q.submit(t) +tasks_with_errors.append(t) + +for t in tasks_with_errors: + try: + t.result() + except FutureTaskError as e: + print('task {} finished: {}'.format(e.task.id, e)) + diff -Nru cctools-7.0.22/work_queue/src/bindings/python2/work_queue_futures.py cctools-7.1.2/work_queue/src/bindings/python2/work_queue_futures.py --- cctools-7.0.22/work_queue/src/bindings/python2/work_queue_futures.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python2/work_queue_futures.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,475 @@ +## @package work_queue_futures +# Python Work Queue bindings. +# +# This is a library on top of work_queue which replaces q.wait with the concept +# of futures. +# +# This is experimental. +# +# - @ref work_queue_futures::WorkQueue +# - @ref work_queue::Task + +import work_queue +import multiprocessing +import os +import subprocess +import sys +import threading +import time +import traceback +import concurrent.futures as futures +import atexit + +try: + # from py3 + import queue as ThreadQueue +except ImportError: + # from py2 + import Queue as ThreadQueue + + + + +## +# Python Work Queue object +# +# Implements an asynchronous WorkQueueFutures object. +# @ref work_queue_futures::WorkQueueFutures. +class WorkQueueFutures(object): + def __init__(self, *args, **kwargs): + + local_worker_args = kwargs.get('local_worker', None) + if local_worker_args: + del kwargs['local_worker'] + if local_worker_args is True: + # local_worker_args can be a dictionary of worker options, or + # simply 'True' to get the defaults (1 core, 512MB memory, + # 1000MB of disk) + local_worker_args = {} + + # calls to synchronous WorkQueueFutures are coordinated with _queue_lock + self._queue_lock = threading.Lock() + self._stop_queue_event = threading.Event() + + # set when queue is empty + self._join_event = threading.Event() + + self._tasks_to_submit = ThreadQueue.Queue() + self._tasks_before_callbacks = ThreadQueue.Queue() + + self._sync_loop = threading.Thread(target = self._sync_loop) + self._sync_loop.daemon = True + + self._callback_loop = threading.Thread(target = self._callback_loop) + self._callback_loop.daemon = True + + self._local_worker = None + + self._queue = work_queue.WorkQueue(*args, **kwargs) + + if local_worker_args: + self._local_worker = Worker(self.port, **local_worker_args) + + self._sync_loop.start() + self._callback_loop.start() + + atexit.register(self._terminate) + + + # methods not explicitly defined we route to synchronous WorkQueue, using a lock. + def __getattr__(self, name): + attr = getattr(self._queue, name) + + if callable(attr): + def method_wrapped(*args, **kwargs): + result = None + with self._queue_lock: + result = attr(*args, **kwargs) + return result + return method_wrapped + else: + return attr + + + ## + # Submit a task to the queue. + # + # @param self Reference to the current work queue object. + # @param task A task description created from @ref work_queue::Task. + def submit(self, future_task): + if isinstance(future_task, FutureTask): + self._tasks_to_submit.put(future_task, False) + else: + raise TypeError("{} is not a WorkQueue.Task") + + ## + # Disable wait when using the futures interface + def wait(self, *args, **kwargs): + raise AttributeError('wait cannot be used with the futures interface.') + + ## + # Determine whether there are any known tasks queued, running, or waiting to be collected. + # + # Returns 0 if there are tasks remaining in the system, 1 if the system is "empty". + # + # @param self Reference to the current work queue object. + def empty(self): + if self._tasks_to_submit.empty(): + return self._queue.empty() + else: + return 0 + + def _callback_loop(self): + while not self._stop_queue_event.is_set(): + + task = None + try: + task = self._tasks_before_callbacks.get(True, 1) + task.set_result_or_exception() + self._tasks_before_callbacks.task_done() + except ThreadQueue.Empty: + pass + except Exception as e: + err = traceback.format_exc() + if task: + task.set_exception(FutureTaskError(t, err)) + else: + print(err) + + def _sync_loop(self): + # map from taskids to FutureTask objects + active_tasks = {} + + while True: + try: + if self._stop_queue_event.is_set(): + return + + # if the queue is empty, we wait for tasks to be declared for + # submission, otherwise _queue.wait return immediately and we + # busy-wait + submit_timeout = 1 + if len(active_tasks.keys()) > 0: + submit_timeout = 0 + + # do the submits, if any + empty = False + while not empty: + try: + task = self._tasks_to_submit.get(True, submit_timeout) + if not task.cancelled(): + with self._queue_lock: + submit_timeout = 0 + taskid = self._queue.submit(task) + task._set_queue(self) + active_tasks[task.id] = task + self._tasks_to_submit.task_done() + except ThreadQueue.Empty: + empty = True + + # wait for any task + with self._queue_lock: + if not self._queue.empty(): + task = self._queue.wait(1) + if task: + self._tasks_before_callbacks.put(task, False) + del active_tasks[task.id] + + if len(active_tasks) == 0 and self._tasks_to_submit.empty(): + self._join_event.set() + + if self._local_worker: + self._local_worker.check_alive() + + except Exception as e: + # on error, we set exception to all the known tasks so that .result() does not block + err = traceback.format_exc() + while not self._tasks_to_submit.empty(): + try: + t = self._tasks_to_submit.get(False) + t.set_exception(FutureTaskError(t, err)) + self._tasks_to_submit.task_done() + except ThreadQueue.Empty: + pass + while not self._tasks_before_callbacks.empty(): + try: + t = self._tasks_before_callbacks.get(False) + t.set_exception(FutureTaskError(t, err)) + self._tasks_before_callbacks.task_done() + except ThreadQueue.Empty: + pass + for t in active_tasks.values(): + t.set_exception(FutureTaskError(t, err)) + active_tasks.clear() + self._stop_queue_event.set() + + def join(self, timeout=None): + now = time.time() + self._join_event.clear() + return self._join_event.wait(timeout) + + def _terminate(self): + self._stop_queue_event.set() + + for thread in [self._sync_loop, self._callback_loop]: + try: + thread.join() + except RuntimeError: + pass + + if self._local_worker: + try: + self._local_worker.shutdown() + except Exception as e: + pass + + def __del__(self): + self._terminate() + +class FutureTask(work_queue.Task): + valid_runtime_envs = ['conda', 'singularity'] + + def __init__(self, command): + super(FutureTask, self).__init__(command) + + self._queue = None + self._cancelled = False + self._exception = None + + self._done_event = threading.Event() + self._callbacks = [] + + self._runtime_env_type = None + + @property + def queue(self): + return self._queue + + def _set_queue(self, queue): + self._queue = queue + self.set_running_or_notify_cancel() + + def cancel(self): + if self.queue: + self.queue.cancel_by_taskid(self.id) + + self._cancelled = True + self._done_event.set() + self._invoke_callbacks() + + return self.cancelled() + + def cancelled(self): + return self._cancelled + + def done(self): + return self._done_event.is_set() + + def running(self): + return (self._queue is not None) and (not self.done()) + + def result(self, timeout=None): + if self.cancelled(): + raise futures.CancelledError + + # wait for task to be done event if not done already + self._done_event.wait(timeout) + + if self.done(): + if self._exception is not None: + raise self._exception + else: + return self._result + else: + # Raise exception if task not done by timeout + raise futures.TimeoutError(timeout) + + def exception(self, timeout=None): + if self.cancelled(): + raise futures.CancelledError + + self._done_event.wait(timeout) + + if self.done(): + return self._exception + else: + raise futures.TimeoutError(timeout) + + + def add_done_callback(self, fn): + """ + Attaches the callable fn to the future. fn will be called, with the + future as its only argument, when the future is cancelled or finishes + running. Added callables are called in the order that they were added + and are always called in a thread belonging to the process that added + them. + + If the callable raises an Exception subclass, it will be logged and + ignored. If the callable raises a BaseException subclass, the behavior + is undefined. + + If the future has already completed or been cancelled, fn will be + called immediately. + """ + + if self.done(): + fn(self) + else: + self._callbacks.append(fn) + + def _invoke_callbacks(self): + self._done_event.set() + for fn in self._callbacks: + try: + fn(self) + except Exception as e: + sys.stderr.write('Error when executing future object callback:\n') + traceback.print_exc() + + def set_result_or_exception(self): + result = self._task.result + if result == work_queue.WORK_QUEUE_RESULT_SUCCESS and self.return_status == 0: + self.set_result(True) + else: + self.set_exception(FutureTaskError(self)) + + def set_running_or_notify_cancel(self): + if self.cancelled(): + return False + else: + return True + + def set_result(self, result): + self._result = result + self._invoke_callbacks() + + def set_exception(self, exception): + self._exception = exception + self._invoke_callbacks() + + def specify_runtime_env(self, type, filename): + import _work_queue + if type not in FutureTask.valid_runtime_envs: + raise FutureTaskError("Runtime '{}' type is not one of {}".format(type, FutureTask.valid_runtime_envs)) + + self._runtime_env_type = type + + if type == 'conda': + conda_env = 'conda_env.tar.gz' + self.specify_input_file(filename, conda_env, cache = True) + command = 'mkdir -p conda_env && tar xf {} -C conda_env && source conda_env/bin/activate && {}'.format(conda_env, self.command) + _work_queue.work_queue_task_command_line_set(self._task, command) + elif type == 'singularity': + sin_env = 'sin_env.img' + self.specify_input_file(filename, sin_env, cache = True) + command = 'singularity exec -B $(pwd):/wq-sandbox --pwd /wq-sandbox {} -- {}'.format(sin_env, self.command) + _work_queue.work_queue_task_command_line_set(self._task, command) + + + + +class Worker(object): + def __init__(self, port, executable='work_queue_worker', cores=1, memory=512, disk=1000): + self._proc = None + self._port = port + + self._executable = executable + self._cores = cores + self._memory = memory + self._disk = disk + + self._permanent_error = None + + self.devnull = open(os.devnull, 'w') + + self.check_alive() + + + def check_alive(self): + if self._permanent_error is not None: + raise Exception(self._permanent_error) + return False + + if self._proc and self._proc.is_alive(): + return True + + if self._proc: + self._proc.join() + if self._proc.exitcode != 0: + self._permanent_error = self._proc.exitcode + return False + + return self._launch_worker() + + def shutdown(self): + if not self._proc: + return + + if self._proc.is_alive(): + self._proc.terminate() + + self._proc.join() + + def _launch_worker(self): + args = [self._executable, + '--single-shot', + '--cores', self._cores, + '--memory', self._memory, + '--disk', self._disk, + '--timeout', 300, + 'localhost', + self._port] + + args = [str(x) for x in args] + + self._proc = multiprocessing.Process(target=lambda: subprocess.check_call(args, stderr=self.devnull, stdout=self.devnull), daemon=True) + self._proc.start() + + return self.check_alive() + + +class FutureTaskError(Exception): + _state_to_msg = { + work_queue.WORK_QUEUE_RESULT_SUCCESS: 'Success', + work_queue.WORK_QUEUE_RESULT_INPUT_MISSING: 'Input file is missing', + work_queue.WORK_QUEUE_RESULT_OUTPUT_MISSING: 'Output file is missing', + work_queue.WORK_QUEUE_RESULT_STDOUT_MISSING: 'stdout is missing', + work_queue.WORK_QUEUE_RESULT_SIGNAL: 'Signal received', + work_queue.WORK_QUEUE_RESULT_RESOURCE_EXHAUSTION: 'Resources exhausted', + work_queue.WORK_QUEUE_RESULT_TASK_TIMEOUT: 'Task timed-out before completion', + work_queue.WORK_QUEUE_RESULT_UNKNOWN: 'Unknown error', + work_queue.WORK_QUEUE_RESULT_FORSAKEN: 'Internal error', + work_queue.WORK_QUEUE_RESULT_MAX_RETRIES: 'Maximum number of retries reached', + work_queue.WORK_QUEUE_RESULT_TASK_MAX_RUN_TIME: 'Task did not finish before deadline', + work_queue.WORK_QUEUE_RESULT_DISK_ALLOC_FULL: 'Disk allocation for the task is full' + } + + def __init__(self, task, exception = None): + self.task = task + + self.exit_status = None + self.state = None + self.exception = None + + if exception: + self.exception = exception + else: + self.exit_status = task.return_status + self.state = task._task.result + + def __str__(self): + if self.exception: + return str(self.exception) + + msg = self._state_to_str() + if not msg: + return str(self.state) + + if self.state != work_queue.WORK_QUEUE_RESULT_SUCCESS or self.exit_status == 0: + return msg + else: + return 'Execution completed with exit status {}'.format(self.exit_status) + + def _state_to_str(self): + return FutureTaskError._state_to_msg.get(self.state, None) + diff -Nru cctools-7.0.22/work_queue/src/bindings/python2/work_queue.i cctools-7.1.2/work_queue/src/bindings/python2/work_queue.i --- cctools-7.0.22/work_queue/src/bindings/python2/work_queue.i 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python2/work_queue.i 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,37 @@ +/* work_queue.i */ +%module work_queue + +/* type is a go keyword. rename it to value_type */ +%rename(value_type) rmsummary_field::type; + +%{ + #include "debug.h" + #include "int_sizes.h" + #include "timestamp.h" + #include "work_queue.h" + #include "rmsummary.h" +%} + +/* We compile with -D__LARGE64_FILES, thus off_t is at least 64bit. +long long int is guaranteed to be at least 64bit. */ +%typemap(in) off_t = long long int; + +/* vdebug() takes va_list as arg but SWIG can't wrap such functions. */ +%ignore vdebug; +%ignore debug; + +/* These return pointers to lists defined in list.h. We aren't + * wrapping methods in list.h and so ignore these. */ +%ignore work_queue_cancel_all_tasks; +%ignore input_files; +%ignore output_files; + +%include "stdint.i" +%include "debug.h" +%include "int_sizes.h" +%include "timestamp.h" +%include "work_queue.h" +%include "rmsummary.h" +%include "category.h" + + diff -Nru cctools-7.0.22/work_queue/src/bindings/python3/Makefile cctools-7.1.2/work_queue/src/bindings/python3/Makefile --- cctools-7.0.22/work_queue/src/bindings/python3/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python3/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -11,7 +11,7 @@ WQPYTHONSO = _work_queue.$(CCTOOLS_DYNAMIC_SUFFIX) LIBRARIES = $(WQPYTHONSO) work_queue.py OBJECTS = work_queue_wrap.o -TARGETS = $(LIBRARIES) work_queue_example.py +TARGETS = $(LIBRARIES) all: $(TARGETS) @@ -25,19 +25,15 @@ $(WQPYTHONSO): work_queue_wrap.o $(EXTERNAL_DEPENDENCIES) -work_queue.binding.py work_queue_example.py: %.py: ../python/%.py - cp $< $@ - $(CCTOOLS_PYTHON3_2TO3) --nobackups --no-diffs --write $@ - test: clean: - rm -f $(OBJECTS) $(TARGETS) Python.framework work_queue.binding.py work_queue_example.py work_queue.py work_queue_wrap.c *.pyc + rm -f $(OBJECTS) $(TARGETS) Python.framework work_queue.py work_queue_wrap.c *.pyc install: all mkdir -p $(CCTOOLS_PYTHON3_PATH) - chmod 755 work_queue.py - cp work_queue.py _work_queue.$(CCTOOLS_DYNAMIC_SUFFIX) $(CCTOOLS_PYTHON3_PATH)/ + chmod 755 work_queue.py work_queue_example.py + cp work_queue.py work_queue_futures.py _work_queue.$(CCTOOLS_DYNAMIC_SUFFIX) $(CCTOOLS_PYTHON3_PATH)/ mkdir -p $(CCTOOLS_INSTALL_DIR)/doc - cp work_queue_example.py $(CCTOOLS_INSTALL_DIR)/doc/ + cp work_queue_example.py work_queue_futures_example.py $(CCTOOLS_INSTALL_DIR)/doc/ diff -Nru cctools-7.0.22/work_queue/src/bindings/python3/work_queue.binding.py cctools-7.1.2/work_queue/src/bindings/python3/work_queue.binding.py --- cctools-7.0.22/work_queue/src/bindings/python3/work_queue.binding.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python3/work_queue.binding.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,1380 @@ +## @package WorkQueuePython +# +# Python Work Queue bindings. +# +# The objects and methods provided by this package correspond to the native +# C API in @ref work_queue.h. +# +# The SWIG-based Python bindings provide a higher-level interface that +# revolves around the following objects: +# +# - @ref work_queue::WorkQueue +# - @ref work_queue::Task + +import copy +import os + +def set_debug_flag(*flags): + for flag in flags: + cctools_debug_flags_set(flag) + +def specify_debug_log(logfile): + set_debug_flag('all') + cctools_debug_config_file_size(0) + cctools_debug_config_file(logfile) + +def specify_port_range(low_port, high_port): + if low_port >= high_port: + raise TypeError('low_port {} should be smaller than high_port {}'.format(low_port, high_port)) + + os.environ['TCP_LOW_PORT'] = str(low_port) + os.environ['TCP_HIGH_PORT'] = str(high_port) + +cctools_debug_config('work_queue_python') + +## +# Python Task object +# +# This class is used to create a task specification. +class Task(object): + + ## + # Create a new task specification. + # + # @param self Reference to the current task object. + # @param command The shell command line to be exected by the task. + def __init__(self, command): + self._task = None + + try: + self._task = work_queue_task_create(command) + if not self._task: + raise + except: + raise Exception('Unable to create internal Task structure') + + def __del__(self): + if self._task: + work_queue_task_delete(self._task) + + @staticmethod + def _determine_file_flags(flags, cache): + # if flags is defined, use its value. Otherwise do not cache only if + # asked explicitely. + + if flags is None: + flags = WORK_QUEUE_NOCACHE; + + if cache is not None: + if cache: + flags = flags | WORK_QUEUE_CACHE; + else: + flags = flags & ~(WORK_QUEUE_CACHE); + + return flags + + ## + # Return a copy of this task + # + def clone(self): + """Return a (deep)copy this task that can also be submitted to the WorkQueue.""" + new = copy.copy(self) + new._task = work_queue_task_clone(self._task) + return new + + + ## + # Set the command to be executed by the task. + # + # @param self Reference to the current task object. + # @param command The command to be executed. + def specify_command(self, command): + return work_queue_task_specify_command(self._task, command) + + ## + # Set the worker selection algorithm for task. + # + # @param self Reference to the current task object. + # @param algorithm One of the following algorithms to use in assigning a + # task to a worker. See @ref work_queue_schedule_t for + # possible values. + def specify_algorithm(self, algorithm): + return work_queue_task_specify_algorithm(self._task, algorithm) + + ## + # Attach a user defined logical name to the task. + # + # @param self Reference to the current task object. + # @param tag The tag to attach to task. + def specify_tag(self, tag): + return work_queue_task_specify_tag(self._task, tag) + + ## + # Label the task with the given category. It is expected that tasks with the + # same category have similar resources requirements (e.g. for fast abort). + # + # @param self Reference to the current task object. + # @param name The name of the category + def specify_category(self, name): + return work_queue_task_specify_category(self._task, name) + + ## + # Label the task with the given user-defined feature. Tasks with the + # feature will only run on workers that provide it (see worker's + # --feature option). + # + # @param self Reference to the current task object. + # @param name The name of the feature. + def specify_feature(self, name): + return work_queue_task_specify_feature(self._task, name) + + ## + # Indicate that the task would be optimally run on a given host. + # + # @param self Reference to the current task object. + # @param hostname The hostname to which this task would optimally be sent. + def specify_preferred_host(self, hostname): + return work_queue_task_specify_preferred_host(self._task, hostname) + + ## + # Add a file to the task. + # + # @param self Reference to the current task object. + # @param local_name The name of the file on local disk or shared filesystem. + # @param remote_name The name of the file at the execution site. + # @param type Must be one of the following values: @ref WORK_QUEUE_INPUT or @ref WORK_QUEUE_OUTPUT + # @param flags May be zero to indicate no special handling, or any + # of the @ref work_queue_file_flags_t or'd together The most common are: + # - @ref WORK_QUEUE_NOCACHE (default) + # - @ref WORK_QUEUE_CACHE + # - @ref WORK_QUEUE_WATCH + # @param cache Legacy parameter for setting file caching attribute. (True/False, deprecated, use the flags parameter.) + # + # For example: + # @code + # # The following are equivalent + # >>> task.specify_file("/etc/hosts", type=WORK_QUEUE_INPUT, flags=WORK_QUEUE_CACHE) + # >>> task.specify_file("/etc/hosts", "hosts", type=WORK_QUEUE_INPUT) + # @endcode + def specify_file(self, local_name, remote_name=None, type=None, flags=None, cache=None): + if remote_name is None: + remote_name = os.path.basename(local_name) + + if type is None: + type = WORK_QUEUE_INPUT + + flags = Task._determine_file_flags(flags, cache) + return work_queue_task_specify_file(self._task, local_name, remote_name, type, flags) + + ## + # Add a file piece to the task. + # + # @param self Reference to the current task object. + # @param local_name The name of the file on local disk or shared filesystem. + # @param remote_name The name of the file at the execution site. + # @param start_byte The starting byte offset of the file piece to be transferred. + # @param end_byte The ending byte offset of the file piece to be transferred. + # @param type Must be one of the following values: @ref WORK_QUEUE_INPUT or @ref WORK_QUEUE_OUTPUT + # @param flags May be zero to indicate no special handling, or any + # of the @ref work_queue_file_flags_t or'd together The most common are: + # - @ref WORK_QUEUE_NOCACHE (default) + # - @ref WORK_QUEUE_CACHE + # @param cache Legacy parameter for setting file caching attribute. (True/False, deprecated, use the flags parameter.) + def specify_file_piece(self, local_name, remote_name=None, start_byte=0, end_byte=0, type=None, flags=None, cache=None): + if remote_name is None: + remote_name = os.path.basename(local_name) + + if type is None: + type = WORK_QUEUE_INPUT + + flags = Task._determine_file_flags(flags, cache) + return work_queue_task_specify_file_piece(self._task, local_name, remote_name, start_byte, end_byte, type, flags) + + ## + # Add a input file to the task. + # + # This is just a wrapper for @ref specify_file with type set to @ref WORK_QUEUE_INPUT. + def specify_input_file(self, local_name, remote_name=None, flags=None, cache=None): + return self.specify_file(local_name, remote_name, WORK_QUEUE_INPUT, flags, cache) + + ## + # Add a output file to the task. + # + # This is just a wrapper for @ref specify_file with type set to @ref WORK_QUEUE_OUTPUT. + def specify_output_file(self, local_name, remote_name=None, flags=None, cache=None): + return self.specify_file(local_name, remote_name, WORK_QUEUE_OUTPUT, flags, cache) + + ## + # Add a directory to the task. + # @param self Reference to the current task object. + # @param local_name The name of the directory on local disk or shared filesystem. Optional if the directory is empty. + # @param remote_name The name of the directory at the remote execution site. + # @param type Must be one of the following values: @ref WORK_QUEUE_INPUT or @ref WORK_QUEUE_OUTPUT + # @param flags May be zero to indicate no special handling, or any + # of the @ref work_queue_file_flags_t or'd together The most common are: + # - @ref WORK_QUEUE_NOCACHE + # - @ref WORK_QUEUE_CACHE + # @param recursive Indicates whether just the directory (False) or the directory and all of its contents (True) should be included. + # @param cache Legacy parameter for setting file caching attribute. (True/False, deprecated, use the flags parameter.) + # @return 1 if the task directory is successfully specified, 0 if either of @a local_name, or @a remote_name is null or @a remote_name is an absolute path. + def specify_directory(self, local_name, remote_name=None, type=None, flags=None, recursive=False, cache=None): + if remote_name is None: + remote_name = os.path.basename(local_name) + + if type is None: + type = WORK_QUEUE_INPUT + + flags = Task._determine_file_flags(flags, cache) + return work_queue_task_specify_directory(self._task, local_name, remote_name, type, flags, recursive) + + ## + # Add an input bufer to the task. + # + # @param self Reference to the current task object. + # @param buffer The contents of the buffer to pass as input. + # @param remote_name The name of the remote file to create. + # @param flags May take the same values as @ref specify_file. + # @param cache Legacy parameter for setting buffer caching attribute. (True/False, deprecated, use the flags parameter.) + def specify_buffer(self, buffer, remote_name, flags=None, cache=None): + flags = Task._determine_file_flags(flags, cache) + return work_queue_task_specify_buffer(self._task, buffer, len(buffer), remote_name, flags) + + # When monitoring, indicates a json-encoded file that instructs the monitor + # to take a snapshot of the task resources. Snapshots appear in the JSON + # summary file of the task, under the key "snapshots". Snapshots are taken + # on events on files described in the monitor_snapshot_file. The + # monitor_snapshot_file is a json encoded file with the following format: + # + # { + # "FILENAME": { + # "from-start":boolean, + # "from-start-if-truncated":boolean, + # "delete-if-found":boolean, + # "events": [ + # { + # "label":"EVENT_NAME", + # "on-create":boolean, + # "on-truncate":boolean, + # "pattern":"REGEXP", + # "count":integer + # }, + # { + # "label":"EVENT_NAME", + # ... + # } + # ] + # }, + # "FILENAME": { + # ... + # } + # + # All keys but "label" are optional: + # + # from-start:boolean If FILENAME exits when task starts running, process from line 1. Default: false, as the task may be appending to an already existing file. + # from-start-if-truncated If FILENAME is truncated, process from line 1. Default: true, to account for log rotations. + # delete-if-found Delete FILENAME when found. Default: false + # + # events: + # label Name that identifies the snapshot. Only alphanumeric, -, + # and _ characters are allowed. + # on-create Take a snapshot every time the file is created. Default: false + # on-truncate Take a snapshot when the file is truncated. Default: false + # on-pattern Take a snapshot when a line matches the regexp pattern. Default: none + # count Maximum number of snapshots for this label. Default: -1 (no limit) + # + # Exactly one of on-create, on-truncate, or on-pattern should be specified. + # For more information, consult the manual of the resource_monitor. + # + # @param self Reference to the current task object. + # @param filename The name of the snapshot events specification + def specify_snapshot_file(self, filename): + return work_queue_specify_snapshot_file(self._task, filename) + + + + ## + # Indicate the number of times the task should be retried. If 0 (the + # default), the task is tried indefinitely. A task that did not succeed + # after the given number of retries is returned with result + # WORK_QUEUE_RESULT_MAX_RETRIES. + def specify_max_retries( self, max_retries ): + return work_queue_task_specify_max_retries(self._task,max_retries) + + ## + # Indicate the number of cores required by this task. + def specify_cores( self, cores ): + return work_queue_task_specify_cores(self._task,cores) + + ## + # Indicate the memory (in MB) required by this task. + def specify_memory( self, memory ): + return work_queue_task_specify_memory(self._task,memory) + + ## + # Indicate the disk space (in MB) required by this task. + def specify_disk( self, disk ): + return work_queue_task_specify_disk(self._task,disk) + + ## + # Indicate the the priority of this task (larger means better priority, default is 0). + def specify_priority( self, priority ): + return work_queue_task_specify_priority(self._task,priority) + + # Indicate the maximum end time (absolute, in microseconds from the Epoch) of this task. + # This is useful, for example, when the task uses certificates that expire. + # If less than 1, or not specified, no limit is imposed. + def specify_end_time( self, useconds ): + return work_queue_task_specify_end_time(self._task,useconds) + + # Indicate the maximum running time for a task in a worker (relative to + # when the task starts to run). If less than 1, or not specified, no limit + # is imposed. + def specify_running_time( self, useconds ): + return work_queue_task_specify_running_time(self._task,useconds) + + ## + # Set this environment variable before running the task. + # If value is None, then variable is unset. + def specify_environment_variable( self, name, value = None ): + return work_queue_task_specify_enviroment_variable(self._task,name,value) + + ## + # Set a name for the resource summary output directory from the monitor. + def specify_monitor_output( self, directory ): + return work_queue_task_specify_monitor_output(self._task,directory) + + ## + # Get the user-defined logical name for the task. + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.tag + # @endcode + @property + def tag(self): + return self._task.tag + + ## + # Get the category name for the task. + # + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.category + # @endcode + @property + def category(self): + return self._task.category + + ## + # Get the shell command executed by the task. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.command + # @endcode + @property + def command(self): + return self._task.command_line + + ## + # Get the priority of the task. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.priority + # @endcode + @property + def priority(self): + return self._task.priority + + ## + # Get the algorithm for choosing worker to run the task. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.algorithm + # @endcode + @property + def algorithm(self): + return self._task.worker_selection_algorithm + + ## + # Get the standard output of the task. Must be called only after the task + # completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.output + # @endcode + @property + def output(self): + return self._task.output + + ## + # Get the task id number. Must be called only after the task was submitted. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.id + # @endcode + @property + def id(self): + return self._task.taskid + + ## + # Get the exit code of the command executed by the task. Must be called only + # after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.return_status + # @endcode + @property + def return_status(self): + return self._task.return_status + + ## + # Get the result of the task, such as successful, missing file, etc. + # See @ref work_queue_result_t for possible values. Must be called only + # after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.result + # @endcode + @property + def result(self): + return self._task.result + + ## + # Get the number of times the task has been resubmitted internally. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_submissions + # @endcode + @property + def total_submissions(self): + return self._task.total_submissions + + ## + # Get the number of times the task has been failed given resource exhaustion. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.exhausted_attempts + # @endcode + @property + def exhausted_attempts(self): + return self._task.exhausted_attempts + + ## + # Get the address and port of the host on which the task ran. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.host + # @endcode + @property + def host(self): + return self._task.host + + ## + # Get the name of the host on which the task ran. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.hostname + # @endcode + @property + def hostname(self): + return self._task.hostname + + ## + # Get the time at which this task was submitted. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.submit_time + # @endcode + @property + def submit_time(self): + return self._task.time_task_submit + + ## + # Get the time at which this task was finished. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.finish_time + # @endcode + @property + def finish_time(self): + return self._task.time_task_finish + + ## + # Get the total time the task executed and failed given resource exhaustion. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_cmd_exhausted_execute_time + # @endcode + @property + def total_cmd_exhausted_execute_time(self): + return self._task.total_cmd_exhausted_execute_time + + ## + # Get the time spent in upper-level application (outside of work_queue_wait). + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.app_delay + # @endcode + @property + def app_delay(self): + return self._task.time_app_delay + + ## + # Get the time at which the task started to transfer input files. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.send_input_start + # @endcode + @property + def send_input_start(self): + return self._task.time_send_input_start + + ## + # Get the time at which the task finished transferring input files. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.send_input_finish + # @endcode + @property + def send_input_finish(self): + return self._task.time_send_input_finish + + ## + # The time at which the task began. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.execute_cmd_start + # @endcode + @property + def execute_cmd_start(self): + return self._task.time_execute_cmd_start + + ## + # Get the time at which the task finished (discovered by the master). + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.execute_cmd_finish + # @endcode + @property + def execute_cmd_finish(self): + return self._task.time_execute_cmd_finish + + ## + # Get the time at which the task started to transfer output files. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.receive_output_start + # @endcode + @property + def receive_output_start(self): + return self._task.time_receive_output_start + + ## + # Get the time at which the task finished transferring output files. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.receive_output_finish + # @endcode + @property + def receive_output_finish(self): + return self._task.time_receive_output_finish + + ## + # Get the number of bytes received since task started receiving input data. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_bytes_received + # @endcode + @property + def total_bytes_received(self): + return self._task.total_bytes_received + + ## + # Get the number of bytes sent since task started sending input data. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_bytes_sent + # @endcode + @property + def total_bytes_sent(self): + return self._task.total_bytes_sent + + ## + # Get the number of bytes transferred since task started transferring input data. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_bytes_transferred + # @endcode + @property + def total_bytes_transferred(self): + return self._task.total_bytes_transferred + + ## + # Get the time comsumed in microseconds for transferring total_bytes_transferred. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_transfer_time + # @endcode + @property + def total_transfer_time(self): + return self._task.total_transfer_time + + ## + # Time spent in microseconds for executing the command until completion on a single worker. + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.cmd_execution_time + # @endcode + @property + def cmd_execution_time(self): + return self._task.cmd_execution_time + + ## + # Accumulated time spent in microseconds for executing the command on any + # worker, regardless of whether the task finished (i.e., this includes time + # running on workers that disconnected). + # + # Must be called only after the task completes execution. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print t.total_cmd_execution_time + # @endcode + @property + def total_cmd_execution_time(self): + return self._task.total_cmd_execution_time + + ## + # Get the resources measured for the task execution if resource monitoring is enabled. + # Must be called only after the task completes execution. Valid fields: + # + # start: microseconds at the start of execution + # + # end: microseconds at the end of execution + # + # wall_time: microseconds spent during execution + # + # cpu_time: user + system time of the execution + # + # cores: peak number of cores used + # + # cores_avg: number of cores computed as cpu_time/wall_time + # + # max_concurrent_processes: the maximum number of processes running concurrently + # + # total_processes: count of all of the processes created + # + # virtual_memory: maximum virtual memory across all processes + # + # memory: maximum resident size across all processes + # + # swap_memory: maximum swap usage across all processes + # + # bytes_read: number of bytes read from disk + # + # bytes_written: number of bytes written to disk + # + # bytes_received: number of bytes read from the network + # + # bytes_sent: number of bytes written to the network + # + # bandwidth: maximum network bits/s (average over one minute) + # + # total_files: total maximum number of files and directories of all the working directories in the tree + # + # disk: size in MB of all working directories in the tree + # + # @code + # >>> print t.resources_measured.memory + # @endcode + @property + def resources_measured(self): + if not self._task.resources_measured: + return None + + return self._task.resources_measured + + ## + # Get the resources the task exceeded. For valid field see @resources_measured. + # + @property + def limits_exceeded(self): + if not self._task.resources_measured: + return None + + if not self._task.resources_measured.limits_exceeded: + return None + + return self._task.resources_measured.limits_exceeded + + + ## + # Get the resources the task requested to run. For valid fields see + # @resources_measured. + # + @property + def resources_requested(self): + if not self._task.resources_requested: + return None + return self._task.resources_requested + + ## + # Get the resources allocated to the task in its latest attempt. For valid + # fields see @resources_measured. + # + @property + def resources_allocated(self): + if not self._task.resources_allocated: + return None + return self._task.resources_allocated + + +## +# Python Work Queue object +# +# This class uses a dictionary to map between the task pointer objects and the +# @ref work_queue::Task. +class WorkQueue(object): + ## + # Create a new work queue. + # + # @param self Reference to the current work queue object. + # @param port The port number to listen on. If zero, then a random port is chosen. A range of possible ports (low, hight) can be also specified instead of a single integer. + # @param name The project name to use. + # @param stats_log The name of a file to write the queue's statistics log. + # @param transactions_log The name of a file to write the queue's transactions log. + # @param debug_log The name of a file to write the queue's debug log. + # @param shutdown Automatically shutdown workers when queue is finished. Disabled by default. + # + # @see work_queue_create - For more information about environmental variables that affect the behavior this method. + def __init__(self, port=WORK_QUEUE_DEFAULT_PORT, name=None, shutdown=False, stats_log=None, transactions_log=None, debug_log=None): + self._shutdown = shutdown + self._work_queue = None + self._stats = None + self._stats_hierarchy = None + self._task_table = {} + + # if we were given a range ports, rather than a single port to try. + lower, upper = None, None + try: + lower, upper = port + specify_port_range(lower, upper) + port = 0 + except TypeError: + # if not a range, ignore + pass + except ValueError: + raise ValueError('port should be a single integer, or a sequence of two integers') + + try: + if debug_log: + specify_debug_log(debug_log) + self._stats = work_queue_stats() + self._stats_hierarchy = work_queue_stats() + self._work_queue = work_queue_create(port) + if not self._work_queue: + raise Exception('Could not create work_queue on port %d' % port) + + if stats_log: + self.specify_log(stats_log) + + if transactions_log: + self.specify_transactions_log(transactions_log) + + if name: + work_queue_specify_name(self._work_queue, name) + except Exception as e: + raise Exception('Unable to create internal Work Queue structure: %s' % e) + + def __free_queue(self): + if self._work_queue: + if self._shutdown: + self.shutdown_workers(0) + work_queue_delete(self._work_queue) + self._work_queue = None + + def __del__(self): + self.__free_queue() + + ## + # Get the project name of the queue. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print q.name + # @endcode + @property + def name(self): + return work_queue_name(self._work_queue) + + ## + # Get the listening port of the queue. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print q.port + # @endcode + @property + def port(self): + return work_queue_port(self._work_queue) + + ## + # Get queue statistics. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print q.stats + # @endcode + # The fields in @ref stats can also be individually accessed through this call. For example: + # @code + # >>> print q.stats.workers_busy + # @endcode + @property + def stats(self): + work_queue_get_stats(self._work_queue, self._stats) + return self._stats + + ## + # Get worker hierarchy statistics. + # @a Note: This is defined using property decorator. So it must be called without parentheses + # (). For example: + # @code + # >>> print q.stats_hierarchy + # @endcode + # The fields in @ref stats_hierarchy can also be individually accessed through this call. For example: + # @code + # >>> print q.stats_hierarchy.workers_busy + # @endcode + @property + def stats_hierarchy(self): + work_queue_get_stats_hierarchy(self._work_queue, self._stats_hierarchy) + return self._stats_hierarchy + + ## + # Get the task statistics for the given category. + # + # @param self Reference to the current work queue object. + # @param category A category name. + # For example: + # @code + # s = q.stats_category("my_category") + # >>> print s + # @endcode + # The fields in @ref work_queue_stats can also be individually accessed through this call. For example: + # @code + # >>> print s.tasks_waiting + # @endcode + def stats_category(self, category): + stats = work_queue_stats() + work_queue_get_stats_category(self._work_queue, category, stats) + return stats + + ## + # Turn on or off first-allocation labeling for a given category. By + # default, only cores, memory, and disk are labeled. Turn on/off other + # specific resources with @ref specify_category_autolabel_resource. + # NOTE: autolabeling is only meaningfull when task monitoring is enabled + # (@ref enable_monitoring). When monitoring is enabled and a task exhausts + # resources in a worker, mode dictates how work queue handles the + # exhaustion: + # @param self Reference to the current work queue object. + # @param category A category name. If None, sets the mode by default for + # newly created categories. + # @param mode One of @ref category_mode_t: + # - WORK_QUEUE_ALLOCATION_MODE_FIXED Task fails (default). + # - WORK_QUEUE_ALLOCATION_MODE_MAX If maximum values are + # specified for cores, memory, or disk (e.g. via @ref + # specify_max_category_resources or @ref specify_memory), + # and one of those resources is exceeded, the task fails. + # Otherwise it is retried until a large enough worker + # connects to the master, using the maximum values + # specified, and the maximum values so far seen for + # resources not specified. Use @ref specify_max_retries to + # set a limit on the number of times work queue attemps + # to complete the task. + # - WORK_QUEUE_ALLOCATION_MODE_MIN_WASTE As above, but + # work queue tries allocations to minimize resource waste. + # - WORK_QUEUE_ALLOCATION_MODE_MAX_THROUGHPUT As above, but + # work queue tries allocations to maximize throughput. + def specify_category_mode(self, category, mode): + return work_queue_specify_category_mode(self._work_queue, category, mode) + + ## + # Turn on or off first-allocation labeling for a given category and + # resource. This function should be use to fine-tune the defaults from @ref + # specify_category_mode. + # @param q A work queue object. + # @param category A category name. + # @param resource A resource name. + # @param autolabel True/False for on/off. + # @returns 1 if resource is valid, 0 otherwise. + def specify_category_autolabel_resource(self, category, resource, autolabel): + return work_queue_enable_category_resource(self._work_queue, category, category, resource, autolabel) + + ## + # Get current task state. See @ref work_queue_task_state_t for possible values. + # @code + # >>> print q.task_state(taskid) + # @endcode + def task_state(self, taskid): + return work_queue_task_state(self._work_queue, taskid) + + ## Enables resource monitoring of tasks in the queue, and writes a summary + # per task to the directory given. Additionally, all summaries are + # consolidate into the file all_summaries-PID.log + # + # Returns 1 on success, 0 on failure (i.e., monitoring was not enabled). + # + # @param self Reference to the current work queue object. + # @param dirname Directory name for the monitor output. + # @param watchdog If True (default), kill tasks that exhaust their declared resources. + def enable_monitoring(self, dirname = None, watchdog = True): + return work_queue_enable_monitoring(self._work_queue, dirname, watchdog) + + ## As @ref enable_monitoring, but it also generates a time series and a debug file. + # WARNING: Such files may reach gigabyte sizes for long running tasks. + # + # Returns 1 on success, 0 on failure (i.e., monitoring was not enabled). + # + # @param self Reference to the current work queue object. + # @param dirname Directory name for the monitor output. + # @param watchdog If True (default), kill tasks that exhaust their declared resources. + def enable_monitoring_full(self, dirname = None, watchdog = True): + return work_queue_enable_monitoring_full(self._work_queue, dirname, watchdog) + + ## + # Turn on or off fast abort functionality for a given queue for tasks in + # the "default" category, and for task which category does not set an + # explicit multiplier. + # + # @param self Reference to the current work queue object. + # @param multiplier The multiplier of the average task time at which point to abort; if negative (the default) fast_abort is deactivated. + def activate_fast_abort(self, multiplier): + return work_queue_activate_fast_abort(self._work_queue, multiplier) + + ## + # Turn on or off fast abort functionality for a given queue. + # + # @param self Reference to the current work queue object. + # @param name Name of the category. + # @param multiplier The multiplier of the average task time at which point to abort; if zero, deacticate for the category, negative (the default), use the one for the "default" category (see @ref fast_abort) + def activate_fast_abort_category(self, name, multiplier): + return work_queue_activate_fast_abort_category(self._work_queue, name, multiplier) + + ## + # Turn on or off draining mode for workers at hostname. + # + # @param self Reference to the current work queue object. + # @param host The hostname the host running the workers. + # @param drain_mode If True, no new tasks are dispatched to workers at hostname, and empty workers are shutdown. Else, workers works as usual. + def specify_draining_by_hostname(self, hostname, drain_mode = True): + return work_queue_specify_draining_by_hostname (self._work_queue, hostname, drain_mode) + + ## + # Determine whether there are any known tasks queued, running, or waiting to be collected. + # + # Returns 0 if there are tasks remaining in the system, 1 if the system is "empty". + # + # @param self Reference to the current work queue object. + def empty(self): + return work_queue_empty(self._work_queue) + + ## + # Determine whether the queue can support more tasks. + # + # Returns the number of additional tasks it can support if "hungry" and 0 if "sated". + # + # @param self Reference to the current work queue object. + def hungry(self): + return work_queue_hungry(self._work_queue) + + ## + # Set the worker selection algorithm for queue. + # + # @param self Reference to the current work queue object. + # @param algorithm One of the following algorithms to use in assigning a + # task to a worker. See @ref work_queue_schedule_t for + # possible values. + def specify_algorithm(self, algorithm): + return work_queue_specify_algorithm(self._work_queue, algorithm) + + ## + # Set the order for dispatching submitted tasks in the queue. + # + # @param self Reference to the current work queue object. + # @param order One of the following algorithms to use in dispatching + # submitted tasks to workers: + # - @ref WORK_QUEUE_TASK_ORDER_FIFO + # - @ref WORK_QUEUE_TASK_ORDER_LIFO + def specify_task_order(self, order): + return work_queue_specify_task_order(self._work_queue, order) + + ## + # Change the project name for the given queue. + # + # @param self Reference to the current work queue object. + # @param name The new project name. + def specify_name(self, name): + return work_queue_specify_name(self._work_queue, name) + + ## + # Set the preference for using hostname over IP address to connect. + # 'by_ip' uses IP address (standard behavior), or 'by_hostname' to use the + # hostname at the master. + # + # @param self Reference to the current work queue object. + # @param preferred_connection An string to indicate using 'by_ip' or a 'by_hostname'. + def specify_master_preferred_connection(self, mode): + return work_queue_master_preferred_connection(self._work_queue, mode) + + ## + # Set the minimum taskid of future submitted tasks. + # + # Further submitted tasks are guaranteed to have a taskid larger or equal + # to minid. This function is useful to make taskids consistent in a + # workflow that consists of sequential masters. (Note: This function is + # rarely used). If the minimum id provided is smaller than the last taskid + # computed, the minimum id provided is ignored. + # + # @param self Reference to the current work queue object. + # @param minid Minimum desired taskid + # @return Returns the actual minimum taskid for future tasks. + def specify_min_taskid(self, minid): + return work_queue_specify_min_taskid(self._work_queue, minid) + + ## + # Change the project priority for the given queue. + # + # @param self Reference to the current work queue object. + # @param priority An integer that presents the priorty of this work queue master. The higher the value, the higher the priority. + def specify_priority(self, priority): + return work_queue_specify_priority(self._work_queue, priority) + + ## Specify the number of tasks not yet submitted to the queue. + # It is used by work_queue_factory to determine the number of workers to launch. + # If not specified, it defaults to 0. + # work_queue_factory considers the number of tasks as: + # num tasks left + num tasks running + num tasks read. + # @param q A work queue object. + # @param ntasks Number of tasks yet to be submitted. + def specify_num_tasks_left(self, ntasks): + return work_queue_specify_num_tasks_left(self._work_queue, ntasks) + + ## + # Specify the master mode for the given queue. + # + # @param self Reference to the current work queue object. + # @param mode This may be one of the following values: @ref WORK_QUEUE_MASTER_MODE_STANDALONE or @ref WORK_QUEUE_MASTER_MODE_CATALOG. + def specify_master_mode(self, mode): + return work_queue_specify_master_mode(self._work_queue, mode) + + ## + # Specify the catalog server the master should report to. + # + # @param self Reference to the current work queue object. + # @param hostname The hostname of the catalog server. + # @param port The port the catalog server is listening on. + def specify_catalog_server(self, hostname, port): + return work_queue_specify_catalog_server(self._work_queue, hostname, port) + + ## + # Specify a log file that records the cummulative stats of connected workers and submitted tasks. + # + # @param self Reference to the current work queue object. + # @param logfile Filename. + def specify_log(self, logfile): + return work_queue_specify_log(self._work_queue, logfile) + + ## + # Specify a log file that records the states of tasks. + # + # @param self Reference to the current work queue object. + # @param logfile Filename. + def specify_transactions_log(self, logfile): + work_queue_specify_transactions_log(self._work_queue, logfile) + + ## + # Add a mandatory password that each worker must present. + # + # @param self Reference to the current work queue object. + # @param password The password. + def specify_password(self, password): + return work_queue_specify_password(self._work_queue, password) + + ## + # Add a mandatory password file that each worker must present. + # + # @param self Reference to the current work queue object. + # @param file Name of the file containing the password. + + def specify_password_file(self, file): + return work_queue_specify_password_file(self._work_queue, file) + + ## + # + # Specifies the maximum resources allowed for the default category. + # @param self Reference to the current work queue object. + # @param rm Dictionary indicating maximum values. See @resources_measured for possible fields. + # For example: + # @code + # >>> # A maximum of 4 cores is found on any worker: + # >>> q.specify_max_resources({'cores': 4}) + # >>> # A maximum of 8 cores, 1GB of memory, and 10GB disk are found on any worker: + # >>> q.specify_max_resources({'cores': 8, 'memory': 1024, 'disk': 10240}) + # @endcode + + def specify_max_resources(self, rmd): + rm = rmsummary_create(-1) + for k in rmd: + old_value = getattr(rm, k) # to raise an exception for unknown keys + setattr(rm, k, rmd[k]) + return work_queue_specify_max_resources(self._work_queue, rm) + + ## + # Specifies the maximum resources allowed for the given category. + # + # @param self Reference to the current work queue object. + # @param category Name of the category. + # @param rm Dictionary indicating maximum values. See @resources_measured for possible fields. + # For example: + # @code + # >>> # A maximum of 4 cores may be used by a task in the category: + # >>> q.specify_category_max_resources("my_category", {'cores': 4}) + # >>> # A maximum of 8 cores, 1GB of memory, and 10GB may be used by a task: + # >>> q.specify_category_max_resources("my_category", {'cores': 8, 'memory': 1024, 'disk': 10240}) + # @endcode + + def specify_category_max_resources(self, category, rmd): + rm = rmsummary_create(-1) + for k in rmd: + old_value = getattr(rm, k) # to raise an exception for unknown keys + setattr(rm, k, rmd[k]) + return work_queue_specify_category_max_resources(self._work_queue, category, rm) + + ## + # Specifies the first-allocation guess for the given category + # + # @param self Reference to the current work queue object. + # @param category Name of the category. + # @param rm Dictionary indicating maximum values. See @resources_measured for possible fields. + # For example: + # @code + # >>> # A maximum of 4 cores may be used by a task in the category: + # >>> q.specify_max_category_resources("my_category", {'cores': 4}) + # >>> # A maximum of 8 cores, 1GB of memory, and 10GB may be used by a task: + # >>> q.specify_max_category_resources("my_category", {'cores': 8, 'memory': 1024, 'disk': 10240}) + # @endcode + + def specify_category_first_allocation_guess(self, category, rmd): + rm = rmsummary_create(-1) + for k in rmd: + old_value = getattr(rm, k) # to raise an exception for unknown keys + setattr(rm, k, rmd[k]) + return work_queue_specify_category_first_allocation_guess(self._work_queue, category, rm) + + ## + # Initialize first value of categories + # + # @param self Reference to the current work queue object. + # @param rm Dictionary indicating maximum values. See @resources_measured for possible fields. + # @param filename JSON file with resource summaries. + + def initialize_categories(filename, rm): + return work_queue_initialize_categories(self._work_queue, rm, filename) + + ## + # Cancel task identified by its taskid and remove from the given queue. + # + # @param self Reference to the current work queue object. + # @param id The taskid returned from @ref submit. + def cancel_by_taskid(self, id): + return work_queue_cancel_by_taskid(self._work_queue, id) + + ## + # Cancel task identified by its tag and remove from the given queue. + # + # @param self Reference to the current work queue object. + # @param tag The tag assigned to task using @ref work_queue_task_specify_tag. + def cancel_by_tasktag(self, tag): + return work_queue_cancel_by_tasktag(self._work_queue, tag) + + ## + # Shutdown workers connected to queue. + # + # Gives a best effort and then returns the number of workers given the shutdown order. + # + # @param self Reference to the current work queue object. + # @param n The number to shutdown. To shut down all workers, specify "0". + def shutdown_workers(self, n): + return work_queue_shut_down_workers(self._work_queue, n) + + ## + # Blacklist workers running on host. + # + # @param self Reference to the current work queue object. + # @param host The hostname the host running the workers. + def blacklist(self, host): + return work_queue_blacklist_add(self._work_queue, host) + + ## + # Blacklist workers running on host for the duration of the given timeout. + # + # @param self Reference to the current work queue object. + # @param host The hostname the host running the workers. + # @param timeout How long this blacklist entry lasts (in seconds). If less than 1, blacklist indefinitely. + def blacklist_with_timeout(self, host, timeout): + return work_queue_blacklist_add_with_timeout(self._work_queue, host, timeout) + + ## + # Remove host from blacklist. Clear all blacklist if host not provided. + # + # @param self Reference to the current work queue object. + # @param host The of the hostname the host. + def blacklist_clear(self, host=None): + if host is None: + return work_queue_blacklist_clear(self._work_queue) + else: + return work_queue_blacklist_remove(self._work_queue, host) + + ## + # Delete file from workers's caches. + # + # @param self Reference to the current work queue object. + # @param local_name Name of the file as seen by the master. + def invalidate_cache_file(self, local_name): + return work_queue_invalidate_cached_file(self._work_queue, local_name, WORK_QUEUE_FILE) + + ## + # Change keepalive interval for a given queue. + # + # @param self Reference to the current work queue object. + # @param interval Minimum number of seconds to wait before sending new keepalive + # checks to workers. + def specify_keepalive_interval(self, interval): + return work_queue_specify_keepalive_interval(self._work_queue, interval) + + ## + # Change keepalive timeout for a given queue. + # + # @param self Reference to the current work queue object. + # @param timeout Minimum number of seconds to wait for a keepalive response + # from worker before marking it as dead. + def specify_keepalive_timeout(self, timeout): + return work_queue_specify_keepalive_timeout(self._work_queue, timeout) + + ## + # Turn on master capacity measurements. + # + # @param self Reference to the current work queue object. + # + def estimate_capacity(self): + return work_queue_specify_estimate_capacity_on(self._work_queue, 1) + + ## + # Tune advanced parameters for work queue. + # + # @param self Reference to the current work queue object. + # @param name The name fo the parameter to tune. Can be one of following: + # - "asynchrony-multiplier" Treat each worker as having (actual_cores * multiplier) total cores. (default = 1.0) + # - "asynchrony-modifier" Treat each worker as having an additional "modifier" cores. (default=0) + # - "min-transfer-timeout" Set the minimum number of seconds to wait for files to be transferred to or from a worker. (default=10) + # - "foreman-transfer-timeout" Set the minimum number of seconds to wait for files to be transferred to or from a foreman. (default=3600) + # - "transfer-outlier-factor" Transfer that are this many times slower than the average will be aborted. (default=10x) + # - "default-transfer-rate" The assumed network bandwidth used until sufficient data has been collected. (1MB/s) + # - "fast-abort-multiplier" Set the multiplier of the average task time at which point to abort; if negative or zero fast_abort is deactivated. (default=0) + # - "keepalive-interval" Set the minimum number of seconds to wait before sending new keepalive checks to workers. (default=300) + # - "keepalive-timeout" Set the minimum number of seconds to wait for a keepalive response from worker before marking it as dead. (default=30) + # - "short-timeout" Set the minimum timeout when sending a brief message to a single worker. (default=5s) + # - "long-timeout" Set the minimum timeout when sending a brief message to a foreman. (default=1h) + # - "category-steady-n-tasks" Set the number of tasks considered when computing category buckets. + # @param value The value to set the parameter to. + # @return 0 on succes, -1 on failure. + # + def tune(self, name, value): + return work_queue_tune(self._work_queue, name, value) + + ## + # Submit a task to the queue. + # + # It is safe to re-submit a task returned by @ref wait. + # + # @param self Reference to the current work queue object. + # @param task A task description created from @ref work_queue::Task. + def submit(self, task): + taskid = work_queue_submit(self._work_queue, task._task) + self._task_table[taskid] = task + return taskid + + ## + # Wait for tasks to complete. + # + # This call will block until the timeout has elapsed + # + # @param self Reference to the current work queue object. + # @param timeout The number of seconds to wait for a completed task + # before returning. Use an integer to set the timeout or the constant @ref + # WORK_QUEUE_WAITFORTASK to block until a task has completed. + def wait(self, timeout=WORK_QUEUE_WAITFORTASK): + task_pointer = work_queue_wait(self._work_queue, timeout) + if task_pointer: + task = self._task_table[int(task_pointer.taskid)] + del(self._task_table[task_pointer.taskid]) + return task + return None + +def rmsummary_snapshots(self): + if self.snapshots_count < 1: + return None + + snapshots = [] + for i in range(0, self.snapshots_count): + snapshot = rmsummary_get_snapshot(self, i); + snapshots.append(snapshot) + return snapshots + +rmsummary.snapshots = property(rmsummary_snapshots) diff -Nru cctools-7.0.22/work_queue/src/bindings/python3/work_queue_example.py cctools-7.1.2/work_queue/src/bindings/python3/work_queue_example.py --- cctools-7.0.22/work_queue/src/bindings/python3/work_queue_example.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python3/work_queue_example.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,87 @@ +#!/usr/bin/env python + +# Copyright (c) 2010- The University of Notre Dame. +# This software is distributed under the GNU General Public License. +# See the file COPYING for details. + +# This program is a very simple example of how to use Work Queue. +# It accepts a list of files on the command line. +# Each file is compressed with gzip and returned to the user. + +from work_queue import * + +import os +import sys + +# Main program +if __name__ == '__main__': + if len(sys.argv) < 2: + print("work_queue_example [file2] [file3] ...") + print("Each file given on the command line will be compressed using a remote worker.") + sys.exit(1) + + # Usually, we can execute the gzip utility by simply typing its name at a + # terminal. However, this is not enough for work queue; we have to + # specify precisely which files need to be transmitted to the workers. We + # record the location of gzip in 'gzip_path', which is usually found in + # /bin/gzip or /usr/bin/gzip. + + gzip_path = "/bin/gzip" + if not os.path.exists(gzip_path): + gzip_path = "/usr/bin/gzip" + if not os.path.exists(gzip_path): + print("gzip was not found. Please modify the gzip_path variable accordingly. To determine the location of gzip, from the terminal type: which gzip (usual locations are /bin/gzip and /usr/bin/gzip)") + sys.exit(1); + + # We create the tasks queue using the default port. If this port is already + # been used by another program, you can try setting port = 0 to use an + # available port. + try: + q = WorkQueue(port = WORK_QUEUE_DEFAULT_PORT) + except: + print("Instantiation of Work Queue failed!") + sys.exit(1) + + print("listening on port %d..." % q.port) + + # We create and dispatch a task for each filename given in the argument list + for i in range(1, len(sys.argv)): + infile = "%s" % sys.argv[i] + outfile = "%s.gz" % sys.argv[i] + + # Note that we write ./gzip here, to guarantee that the gzip version we + # are using is the one being sent to the workers. + command = "./gzip < %s > %s" % (infile, outfile) + + t = Task(command) + + # gzip is the same across all tasks, so we can cache it in the workers. + # Note that when specifying a file, we have to name its local name + # (e.g. gzip_path), and its remote name (e.g. "gzip"). Unlike the + # following line, more often than not these are the same. + t.specify_file(gzip_path, "gzip", WORK_QUEUE_INPUT, cache=True) + + # files to be compressed are different across all tasks, so we do not + # cache them. This is, of course, application specific. Sometimes you may + # want to cache an output file if is the input of a later task. + t.specify_file(infile, infile, WORK_QUEUE_INPUT, cache=False) + t.specify_file(outfile, outfile, WORK_QUEUE_OUTPUT, cache=False) + + # Once all files has been specified, we are ready to submit the task to the queue. + taskid = q.submit(t) + print("submitted task (id# %d): %s" % (taskid, t.command)) + + print("waiting for tasks to complete...") + while not q.empty(): + t = q.wait(5) + if t: + print("task (id# %d) complete: %s (return code %d)" % (t.id, t.command, t.return_status)) + if t.return_status != 0: + # The task failed. Error handling (e.g., resubmit with new parameters, examine logs, etc.) here + None + #task object will be garbage collected by Python automatically when it goes out of scope + + print("all tasks complete!") + + #work queue object will be garbage collected by Python automatically when it goes out of scope + sys.exit(0) diff -Nru cctools-7.0.22/work_queue/src/bindings/python3/work_queue_futures_example.py cctools-7.1.2/work_queue/src/bindings/python3/work_queue_futures_example.py --- cctools-7.0.22/work_queue/src/bindings/python3/work_queue_futures_example.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python3/work_queue_futures_example.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,57 @@ +from work_queue_futures import WorkQueueFutures, FutureTask, FutureTaskError + +q = WorkQueueFutures(port = 9123, local_worker = {'cores':1, 'memory':512, 'disk':10000}) +#q = WorkQueueFutures(port = 9123) + +# without callbacks, append task to a list and then wait for them +tasks = [] +for i in range(3): + t = FutureTask('/bin/date') + q.submit(t) + tasks.append(t) + +for t in tasks: + print('task {} finished: {}'.format(t.id, t.result())) + +# using callbacks: +# when future is done, it is given as an argument to function +def report_done(task): + print('task {} finished. printing from callback: {}'.format(task.id, task.result())) + # even we could add new tasks in a callback with future.queue.submit(...) + +for i in range(3): + t = FutureTask('/bin/date') + q.submit(t) + t.add_done_callback(report_done) + +# wait for all tasks to be done +q.join() + + +# dealing with tasks with errors: + +tasks_with_errors = [] + +# task with missing executable: +t = FutureTask('/bin/executable-that-does-not-exists') +q.submit(t) +tasks_with_errors.append(t) + +# missing input file +t = FutureTask('/bin/date') +t.specify_input_file('some-filename-that-does-not-exists') +q.submit(t) +tasks_with_errors.append(t) + +# missing output file +t = FutureTask('/bin/date') +t.specify_output_file('some-filename-that-was-not-generated') +q.submit(t) +tasks_with_errors.append(t) + +for t in tasks_with_errors: + try: + t.result() + except FutureTaskError as e: + print('task {} finished: {}'.format(e.task.id, e)) + diff -Nru cctools-7.0.22/work_queue/src/bindings/python3/work-queue-futures-intro.ipynb cctools-7.1.2/work_queue/src/bindings/python3/work-queue-futures-intro.ipynb --- cctools-7.0.22/work_queue/src/bindings/python3/work-queue-futures-intro.ipynb 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python3/work-queue-futures-intro.ipynb 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,322 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# work queue application basics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The module work_queue_futures allows you to execute your computations as a distributed system, that is, not only using the resources locally available in a computer, but also using remote resources you may have access. It is most effective when you have more work to be computed than resources available, and when that work can be split in independent tasks that run for more than 30 seconds, but less than a day.\n", + "\n", + "A work_queue_futures application consists of two parts:\n", + "\n", + "

      \n", + "
    • Master. The master is the part we will write in this notebook. The master is responsible to create the work to be done.\n", + "
    • Workers. Workers execute the work created by the master, and they run in the remote resources. We don't need to write a worker program, since they are the same for all work_queue_futures applications.\n", + "\n", + "In this notebook we will construct our first work_queue_futures master. The first need we need to do is to import the python objects we'll need:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from work_queue_futures import WorkQueueFutures, FutureTask, FutureTaskError" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating a queue\n", + "\n", + "Next, we need to create a queue to which we will add tasks to be completed:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "q = WorkQueueFutures(name = 'my-wq-app', port = 0, local_worker = {'cores':1})\n", + "\n", + "print('queue is accepting connections on port {}'.format(q.port))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We created the queue specifying three arguments:\n", + "
        \n", + "
      • name: A project name that the workers will use to find where the master is located so that they can connect to it.\n", + "
      • port: Set here to 0 to use any available port. The master waits for worker connections listening to this port.\n", + "
      • local_worker: Since we are testing our first master, we ask the queue to create a local worker for us. In real applications workers will run in remote resources. (See the last part of this notebook.)\n", + "
      " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Running simple tasks\n", + "\n", + "Now we create our first task. We simply want to run the unix date command:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "task = FutureTask('/bin/date')\n", + "q.submit(task)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once submitted, the task is assigned to an available worker. We can ask for its result with: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if task.result():\n", + " print(task.output)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Automatically run code when tasks finish\n", + "\n", + "Note that if the task is not finished, then \n", + "```python\n", + "task.result()\n", + "```\n", + "will block until the task is completed. This is inconvinient, as we do not have a way to know which task will finish next. Rather than wait for results on particular tasks, we can define functions to be executed when the task is completed. These functions (known as callbacks) receive the completed task as an argument. We can add as many callbacks as we want, and they are executed in the order they were added.\n", + "\n", + "Once we added the callback, we submit the task as usual and call ```q.join()```, which waits for all submitted tasks to complete." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def my_print_when_done(task):\n", + " print('the output of task {} is {}'.format(task.id, task.output))\n", + " \n", + "# we now submit several tasks at the same time:\n", + "for i in range(5):\n", + " task = FutureTask('/bin/date')\n", + " task.add_done_callback(my_print_when_done)\n", + " q.submit(task)\n", + "\n", + "q.join()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Input and output files" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Up to now our tasks run an executable that already exists in the machine running the worker, and have as result whatever output that command would print to the screen. For more complex tasks, we will need to specify the input and output files needed.\n", + "\n", + "For example, we can redirect the output of the command to a file:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "task = FutureTask('/bin/date > my.date')\n", + "task.specify_output_file('my.date')\n", + "q.submit(task)\n", + "\n", + "# We use task.result() to wait for the task completion.\n", + "task.result()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Once the task finished, we can read the file to see its contents:\n", + "if task.result():\n", + " with open('my.date') as f:\n", + " print(f.read())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly, we can specify input files. Let's use the output of the previous task as the input of the next example:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "task = FutureTask('/bin/hexdump my.date > my.hexdump')\n", + "task.specify_input_file('my.date')\n", + "task.specify_output_file('my.hexdump')\n", + "q.submit(task)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# We wait for the task results, and explore the output file:\n", + "if task.result():\n", + " with open('my.hexdump') as f:\n", + " print(f.read())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dealing with errors\n", + "\n", + "Sometimes tasks do not generate the expected output files, or input files are not available, or the task fails for some other reason. In such cases, ```task.result()``` will throw an exception:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "task = FutureTask('./my-non-existent-executable > output')\n", + "task.specify_input_file('my-non-existent-executable')\n", + "q.submit(task)\n", + "\n", + "try:\n", + " task.result()\n", + "except FutureTaskError as e:\n", + " print('task {} had an error: {}'.format(task.id, e))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Specifying environments" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a script that will be executed remotely\n", + "\n", + "with open('my-python-script', 'w') as f:\n", + " f.write(\"\"\"#! /usr/bin/env python\n", + "import sys\n", + "print('hello from version:\\\\n{}'.format(sys.version))\n", + "\n", + "\"\"\")\n", + " \n", + "import os\n", + "os.chmod('my-python-script', 0o755)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Run the environment using a conda environment\n", + "task = FutureTask('./my-python-script')\n", + "task.specify_input_file('my-python-script')\n", + "task.specify_runtime_env('conda', 'my-conda-env.tar.gz')\n", + "q.submit(task)\n", + "\n", + "q.join()\n", + "print(task.output)\n", + "print(\"It took {} seconds\".format((task.execute_cmd_finish - task.execute_cmd_start)/1e6))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Run the environment using a singularity image\n", + "task = FutureTask('./my-python-script')\n", + "task.specify_input_file('my-python-script')\n", + "task.specify_runtime_env('singularity', 'my-singularity.img')\n", + "q.submit(task)\n", + "\n", + "q.join()\n", + "print(task.output)\n", + "print(\"It took {} seconds\".format((task.execute_cmd_finish - task.execute_cmd_start)/1e6))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff -Nru cctools-7.0.22/work_queue/src/bindings/python3/work_queue_futures.py cctools-7.1.2/work_queue/src/bindings/python3/work_queue_futures.py --- cctools-7.0.22/work_queue/src/bindings/python3/work_queue_futures.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python3/work_queue_futures.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,475 @@ +## @package work_queue_futures +# Python Work Queue bindings. +# +# This is a library on top of work_queue which replaces q.wait with the concept +# of futures. +# +# This is experimental. +# +# - @ref work_queue_futures::WorkQueue +# - @ref work_queue::Task + +import work_queue +import multiprocessing +import os +import subprocess +import sys +import threading +import time +import traceback +import concurrent.futures as futures +import atexit + +try: + # from py3 + import queue as ThreadQueue +except ImportError: + # from py2 + import Queue as ThreadQueue + + + + +## +# Python Work Queue object +# +# Implements an asynchronous WorkQueueFutures object. +# @ref work_queue_futures::WorkQueueFutures. +class WorkQueueFutures(object): + def __init__(self, *args, **kwargs): + + local_worker_args = kwargs.get('local_worker', None) + if local_worker_args: + del kwargs['local_worker'] + if local_worker_args is True: + # local_worker_args can be a dictionary of worker options, or + # simply 'True' to get the defaults (1 core, 512MB memory, + # 1000MB of disk) + local_worker_args = {} + + # calls to synchronous WorkQueueFutures are coordinated with _queue_lock + self._queue_lock = threading.Lock() + self._stop_queue_event = threading.Event() + + # set when queue is empty + self._join_event = threading.Event() + + self._tasks_to_submit = ThreadQueue.Queue() + self._tasks_before_callbacks = ThreadQueue.Queue() + + self._sync_loop = threading.Thread(target = self._sync_loop) + self._sync_loop.daemon = True + + self._callback_loop = threading.Thread(target = self._callback_loop) + self._callback_loop.daemon = True + + self._local_worker = None + + self._queue = work_queue.WorkQueue(*args, **kwargs) + + if local_worker_args: + self._local_worker = Worker(self.port, **local_worker_args) + + self._sync_loop.start() + self._callback_loop.start() + + atexit.register(self._terminate) + + + # methods not explicitly defined we route to synchronous WorkQueue, using a lock. + def __getattr__(self, name): + attr = getattr(self._queue, name) + + if callable(attr): + def method_wrapped(*args, **kwargs): + result = None + with self._queue_lock: + result = attr(*args, **kwargs) + return result + return method_wrapped + else: + return attr + + + ## + # Submit a task to the queue. + # + # @param self Reference to the current work queue object. + # @param task A task description created from @ref work_queue::Task. + def submit(self, future_task): + if isinstance(future_task, FutureTask): + self._tasks_to_submit.put(future_task, False) + else: + raise TypeError("{} is not a WorkQueue.Task") + + ## + # Disable wait when using the futures interface + def wait(self, *args, **kwargs): + raise AttributeError('wait cannot be used with the futures interface.') + + ## + # Determine whether there are any known tasks queued, running, or waiting to be collected. + # + # Returns 0 if there are tasks remaining in the system, 1 if the system is "empty". + # + # @param self Reference to the current work queue object. + def empty(self): + if self._tasks_to_submit.empty(): + return self._queue.empty() + else: + return 0 + + def _callback_loop(self): + while not self._stop_queue_event.is_set(): + + task = None + try: + task = self._tasks_before_callbacks.get(True, 1) + task.set_result_or_exception() + self._tasks_before_callbacks.task_done() + except ThreadQueue.Empty: + pass + except Exception as e: + err = traceback.format_exc() + if task: + task.set_exception(FutureTaskError(t, err)) + else: + print(err) + + def _sync_loop(self): + # map from taskids to FutureTask objects + active_tasks = {} + + while True: + try: + if self._stop_queue_event.is_set(): + return + + # if the queue is empty, we wait for tasks to be declared for + # submission, otherwise _queue.wait return immediately and we + # busy-wait + submit_timeout = 1 + if len(active_tasks.keys()) > 0: + submit_timeout = 0 + + # do the submits, if any + empty = False + while not empty: + try: + task = self._tasks_to_submit.get(True, submit_timeout) + if not task.cancelled(): + with self._queue_lock: + submit_timeout = 0 + taskid = self._queue.submit(task) + task._set_queue(self) + active_tasks[task.id] = task + self._tasks_to_submit.task_done() + except ThreadQueue.Empty: + empty = True + + # wait for any task + with self._queue_lock: + if not self._queue.empty(): + task = self._queue.wait(1) + if task: + self._tasks_before_callbacks.put(task, False) + del active_tasks[task.id] + + if len(active_tasks) == 0 and self._tasks_to_submit.empty(): + self._join_event.set() + + if self._local_worker: + self._local_worker.check_alive() + + except Exception as e: + # on error, we set exception to all the known tasks so that .result() does not block + err = traceback.format_exc() + while not self._tasks_to_submit.empty(): + try: + t = self._tasks_to_submit.get(False) + t.set_exception(FutureTaskError(t, err)) + self._tasks_to_submit.task_done() + except ThreadQueue.Empty: + pass + while not self._tasks_before_callbacks.empty(): + try: + t = self._tasks_before_callbacks.get(False) + t.set_exception(FutureTaskError(t, err)) + self._tasks_before_callbacks.task_done() + except ThreadQueue.Empty: + pass + for t in active_tasks.values(): + t.set_exception(FutureTaskError(t, err)) + active_tasks.clear() + self._stop_queue_event.set() + + def join(self, timeout=None): + now = time.time() + self._join_event.clear() + return self._join_event.wait(timeout) + + def _terminate(self): + self._stop_queue_event.set() + + for thread in [self._sync_loop, self._callback_loop]: + try: + thread.join() + except RuntimeError: + pass + + if self._local_worker: + try: + self._local_worker.shutdown() + except Exception as e: + pass + + def __del__(self): + self._terminate() + +class FutureTask(work_queue.Task): + valid_runtime_envs = ['conda', 'singularity'] + + def __init__(self, command): + super(FutureTask, self).__init__(command) + + self._queue = None + self._cancelled = False + self._exception = None + + self._done_event = threading.Event() + self._callbacks = [] + + self._runtime_env_type = None + + @property + def queue(self): + return self._queue + + def _set_queue(self, queue): + self._queue = queue + self.set_running_or_notify_cancel() + + def cancel(self): + if self.queue: + self.queue.cancel_by_taskid(self.id) + + self._cancelled = True + self._done_event.set() + self._invoke_callbacks() + + return self.cancelled() + + def cancelled(self): + return self._cancelled + + def done(self): + return self._done_event.is_set() + + def running(self): + return (self._queue is not None) and (not self.done()) + + def result(self, timeout=None): + if self.cancelled(): + raise CancelledError + + # wait for task to be done event if not done already + self._done_event.wait(timeout) + + if self.done(): + if self._exception is not None: + raise self._exception + else: + return self._result + else: + # Raise exception if task not done by timeout + raise futures.TimeoutError(timeout) + + def exception(self, timeout=None): + if self.cancelled(): + raise CancelledError + + self._done_event.wait(timeout) + + if self.done(): + return self._exception + else: + raise futures.TimeoutError(timeout) + + + def add_done_callback(self, fn): + """ + Attaches the callable fn to the future. fn will be called, with the + future as its only argument, when the future is cancelled or finishes + running. Added callables are called in the order that they were added + and are always called in a thread belonging to the process that added + them. + + If the callable raises an Exception subclass, it will be logged and + ignored. If the callable raises a BaseException subclass, the behavior + is undefined. + + If the future has already completed or been cancelled, fn will be + called immediately. + """ + + if self.done(): + fn(self) + else: + self._callbacks.append(fn) + + def _invoke_callbacks(self): + self._done_event.set() + for fn in self._callbacks: + try: + fn(self) + except Exception as e: + sys.stderr.write('Error when executing future object callback:\n') + traceback.print_exc() + + def set_result_or_exception(self): + result = self._task.result + if result == work_queue.WORK_QUEUE_RESULT_SUCCESS and self.return_status == 0: + self.set_result(True) + else: + self.set_exception(FutureTaskError(self)) + + def set_running_or_notify_cancel(self): + if self.cancelled(): + return False + else: + return True + + def set_result(self, result): + self._result = result + self._invoke_callbacks() + + def set_exception(self, exception): + self._exception = exception + self._invoke_callbacks() + + def specify_runtime_env(self, type, filename): + import _work_queue + if type not in FutureTask.valid_runtime_envs: + raise FutureTaskError("Runtime '{}' type is not one of {}".format(type, FutureTask.valid_runtime_envs)) + + self._runtime_env_type = type + + if type == 'conda': + conda_env = 'conda_env.tar.gz' + self.specify_input_file(filename, conda_env, cache = True) + command = 'mkdir -p conda_env && tar xf {} -C conda_env && source conda_env/bin/activate && {}'.format(conda_env, self.command) + _work_queue.work_queue_task_command_line_set(self._task, command) + elif type == 'singularity': + sin_env = 'sin_env.img' + self.specify_input_file(filename, sin_env, cache = True) + command = 'singularity exec -B $(pwd):/wq-sandbox --pwd /wq-sandbox {} -- {}'.format(sin_env, self.command) + _work_queue.work_queue_task_command_line_set(self._task, command) + + + + +class Worker(object): + def __init__(self, port, executable='work_queue_worker', cores=1, memory=512, disk=1000): + self._proc = None + self._port = port + + self._executable = executable + self._cores = cores + self._memory = memory + self._disk = disk + + self._permanent_error = None + + self.devnull = open(os.devnull, 'w') + + self.check_alive() + + + def check_alive(self): + if self._permanent_error is not None: + raise Exception(self._permanent_error) + return False + + if self._proc and self._proc.is_alive(): + return True + + if self._proc: + self._proc.join() + if self._proc.exitcode != 0: + self._permanent_error = self._proc.exitcode + return False + + return self._launch_worker() + + def shutdown(self): + if not self._proc: + return + + if self._proc.is_alive(): + self._proc.terminate() + + self._proc.join() + + def _launch_worker(self): + args = [self._executable, + '--single-shot', + '--cores', self._cores, + '--memory', self._memory, + '--disk', self._disk, + '--timeout', 300, + 'localhost', + self._port] + + args = [str(x) for x in args] + + self._proc = multiprocessing.Process(target=lambda: subprocess.check_call(args, stderr=self.devnull, stdout=self.devnull), daemon=True) + self._proc.start() + + return self.check_alive() + + +class FutureTaskError(Exception): + _state_to_msg = { + work_queue.WORK_QUEUE_RESULT_SUCCESS: 'Success', + work_queue.WORK_QUEUE_RESULT_INPUT_MISSING: 'Input file is missing', + work_queue.WORK_QUEUE_RESULT_OUTPUT_MISSING: 'Output file is missing', + work_queue.WORK_QUEUE_RESULT_STDOUT_MISSING: 'stdout is missing', + work_queue.WORK_QUEUE_RESULT_SIGNAL: 'Signal received', + work_queue.WORK_QUEUE_RESULT_RESOURCE_EXHAUSTION: 'Resources exhausted', + work_queue.WORK_QUEUE_RESULT_TASK_TIMEOUT: 'Task timed-out before completion', + work_queue.WORK_QUEUE_RESULT_UNKNOWN: 'Unknown error', + work_queue.WORK_QUEUE_RESULT_FORSAKEN: 'Internal error', + work_queue.WORK_QUEUE_RESULT_MAX_RETRIES: 'Maximum number of retries reached', + work_queue.WORK_QUEUE_RESULT_TASK_MAX_RUN_TIME: 'Task did not finish before deadline', + work_queue.WORK_QUEUE_RESULT_DISK_ALLOC_FULL: 'Disk allocation for the task is full' + } + + def __init__(self, task, exception = None): + self.task = task + + self.exit_status = None + self.state = None + self.exception = None + + if exception: + self.exception = exception + else: + self.exit_status = task.return_status + self.state = task._task.result + + def __str__(self): + if self.exception: + return str(self.exception) + + msg = self._state_to_str() + if not msg: + return str(self.state) + + if self.state != work_queue.WORK_QUEUE_RESULT_SUCCESS or self.exit_status == 0: + return msg + else: + return 'Execution completed with exit status {}'.format(self.exit_status) + + def _state_to_str(self): + return FutureTaskError._state_to_msg.get(self.state, None) + diff -Nru cctools-7.0.22/work_queue/src/bindings/python3/work_queue.i cctools-7.1.2/work_queue/src/bindings/python3/work_queue.i --- cctools-7.0.22/work_queue/src/bindings/python3/work_queue.i 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/bindings/python3/work_queue.i 2020-05-05 15:31:15.000000000 +0000 @@ -1,6 +1,9 @@ /* work_queue.i */ %module work_queue +/* type is a go keyword. rename it to value_type */ +%rename(value_type) rmsummary_field::type; + %{ #include "debug.h" #include "int_sizes.h" diff -Nru cctools-7.0.22/work_queue/src/Makefile cctools-7.1.2/work_queue/src/Makefile --- cctools-7.0.22/work_queue/src/Makefile 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/Makefile 2020-05-05 15:31:15.000000000 +0000 @@ -8,7 +8,8 @@ SOURCES_LIBRARY = \ work_queue.c \ work_queue_catalog.c \ - work_queue_resources.c + work_queue_resources.c \ + work_queue_json.c SOURCES_WORKER = \ work_queue_process.o \ @@ -24,9 +25,9 @@ OBJECTS_LIBRARY = $(SOURCES_LIBRARY:%.c=%.o) OBJECTS_WORKER = $(SOURCES_WORKER:%.c=%.o) PROGRAMS = work_queue_worker work_queue_status work_queue_example -PUBLIC_HEADERS = work_queue.h +PUBLIC_HEADERS = work_queue.h work_queue_catalog.h work_queue_json.h SCRIPTS = work_queue_submit_common condor_submit_workers sge_submit_workers torque_submit_workers pbs_submit_workers slurm_submit_workers work_queue_graph_log -TEST_PROGRAMS = work_queue_example work_queue_test work_queue_test_watch work_queue_priority_test +TEST_PROGRAMS = work_queue_example work_queue_test work_queue_test_watch work_queue_priority_test work_queue_json_example TARGETS = $(LIBRARIES) $(PROGRAMS) $(TEST_PROGRAMS) sge_submit_workers bindings all: $(TARGETS) diff -Nru cctools-7.0.22/work_queue/src/work_queue.c cctools-7.1.2/work_queue/src/work_queue.c --- cctools-7.0.22/work_queue/src/work_queue.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/work_queue.c 2020-05-05 15:31:15.000000000 +0000 @@ -484,6 +484,7 @@ buffer_printf(&B, " %d", s.capacity_disk); buffer_printf(&B, " %d", s.capacity_instantaneous); buffer_printf(&B, " %d", s.capacity_weighted); + buffer_printf(&B, " %f", s.master_load); buffer_printf(&B, " %" PRId64, s.total_cores); buffer_printf(&B, " %" PRId64, s.total_memory); @@ -2198,7 +2199,6 @@ jx_insert_integer(j, "tasks_done", s.tasks_done); jx_insert_integer(j, "tasks_failed", s.tasks_failed); jx_insert_integer(j, "tasks_cancelled", s.tasks_cancelled); - jx_insert_integer(j, "workers_able", s.workers_able); struct rmsummary *largest = largest_waiting_declared_resources(q, c->name); @@ -2341,6 +2341,7 @@ jx_insert_integer(j,"capacity_disk",info.capacity_disk); jx_insert_integer(j,"capacity_instantaneous",info.capacity_instantaneous); jx_insert_integer(j,"capacity_weighted",info.capacity_weighted); + jx_insert_integer(j,"master_load",info.master_load); // Add the resources computed from tributary workers. struct work_queue_resources r; @@ -2429,6 +2430,7 @@ jx_insert_integer(j,"capacity_memory",info.capacity_memory); jx_insert_integer(j,"capacity_disk",info.capacity_disk); jx_insert_integer(j,"capacity_weighted",info.capacity_weighted); + jx_insert_double(j,"master_load",info.master_load); //resources information the factory needs struct rmsummary *total = total_resources_needed(q); @@ -3396,6 +3398,21 @@ task_report_delete(capacity); } +void compute_master_load(struct work_queue *q, int task_activity) { + + double alpha = 0.05; + + double load = q->stats->master_load; + + if(task_activity) { + load = load * (1 - alpha) + 1 * alpha; + } else { + load = load * (1 - alpha) + 0 * alpha; + } + + q->stats->master_load = load; +} + static int check_hand_against_task(struct work_queue *q, struct work_queue_worker *w, struct work_queue_task *t) { /* worker has no reported any resources yet */ @@ -5906,8 +5923,6 @@ if(t) { change_task_state(q, t, WORK_QUEUE_TASK_DONE); - - if( t->result != WORK_QUEUE_RESULT_SUCCESS ) { q->stats->tasks_failed++; @@ -5921,7 +5936,6 @@ break; } - // update catalog if appropriate if(q->name) { update_catalog(q, foreman_uplink, 0); @@ -5941,6 +5955,7 @@ // returning and retrieving tasks. } + q->busy_waiting_flag = 0; // tasks waiting to be retrieved? @@ -5950,6 +5965,7 @@ if(result) { // retrieved at least one task events++; + compute_master_load(q, 1); continue; } @@ -5960,9 +5976,13 @@ if(result) { // expired at least one task events++; + compute_master_load(q, 1); continue; } + // record that there was not task activity for this iteration + compute_master_load(q, 0); + // tasks waiting to be dispatched? BEGIN_ACCUM_TIME(q, time_send); result = send_one_task(q); @@ -5973,6 +5993,9 @@ continue; } + //we reach here only if no task was neither sent nor received. + compute_master_load(q, 1); + // send keepalives to appropriate workers BEGIN_ACCUM_TIME(q, time_status_msgs); ask_for_workers_updates(q); @@ -6266,6 +6289,9 @@ } else if(!strcmp(name, "short-timeout")) { q->short_timeout = MAX(1, (int)value); + } else if(!strcmp(name, "long-timeout")) { + q->long_timeout = MAX(1, (int)value); + } else if(!strcmp(name, "category-steady-n-tasks")) { category_tune_bucket_size("category-steady-n-tasks", (int) value); @@ -6566,7 +6592,7 @@ // bandwidth: " bytes_sent bytes_received bandwidth" // resources: - " capacity_tasks capacity_cores capacity_memory capacity_disk capacity_instantaneous capacity_weighted" + " capacity_tasks capacity_cores capacity_memory capacity_disk capacity_instantaneous capacity_weighted master_load" " total_cores total_memory total_disk" " committed_cores committed_memory committed_disk" " max_cores max_memory max_disk" @@ -6577,9 +6603,7 @@ log_queue_stats(q); debug(D_WQ, "log enabled and is being written to %s\n", logfile); return 1; - } - else - { + } else { debug(D_NOTICE | D_WQ, "couldn't open logfile %s: %s\n", logfile, strerror(errno)); return 0; } @@ -6616,13 +6640,21 @@ /* do not add any info */ } else if(state == WORK_QUEUE_TASK_RETRIEVED || state == WORK_QUEUE_TASK_DONE) { buffer_printf(&B, " %s ", task_result_str(t->result)); + buffer_printf(&B, " %d ", t->return_status); if(t->resources_measured) { if(t->result == WORK_QUEUE_RESULT_RESOURCE_EXHAUSTION) { rmsummary_print_buffer(&B, t->resources_measured->limits_exceeded, 1); buffer_printf(&B, " "); } + else { + // no limits broken, thus printing an empty dictionary + buffer_printf(&B, " {} "); + } rmsummary_print_buffer(&B, t->resources_measured, 1); + } else { + // no resources measured, one empty dictionary for limits broken, other for resources. + buffer_printf(&B, " {} {}"); } } else { struct work_queue_worker *w = itable_lookup(q->worker_task_map, t->taskid); @@ -6770,7 +6802,7 @@ fprintf(q->transactions_logfile, "# time master-pid TASK taskid WAITING category-name {FIRST_RESOURCES|MAX_RESOURCES} resources-requested\n"); fprintf(q->transactions_logfile, "# time master-pid TASK taskid RUNNING worker-address {FIRST_RESOURCES|MAX_RESOURCES} resources-given\n"); fprintf(q->transactions_logfile, "# time master-pid TASK taskid WAITING_RETRIEVAL worker-address\n"); - fprintf(q->transactions_logfile, "# time master-pid TASK taskid {RETRIEVED|DONE} {SUCCESS|SIGNAL|END_TIME|FORSAKEN|MAX_RETRIES|MAX_WALLTIME|UNKNOWN|RESOURCE_EXHAUSTION limits-exceeded} [resources-measured]\n\n"); + fprintf(q->transactions_logfile, "# time master-pid TASK taskid {RETRIEVED|DONE} {SUCCESS|SIGNAL|END_TIME|FORSAKEN|MAX_RETRIES|MAX_WALLTIME|UNKNOWN|RESOURCE_EXHAUSTION} {exit-code} {limits-exceeded} {resources-measured}\n\n"); write_transaction(q, "MASTER START"); return 1; diff -Nru cctools-7.0.22/work_queue/src/work_queue_example.c cctools-7.1.2/work_queue/src/work_queue_example.c --- cctools-7.0.22/work_queue/src/work_queue_example.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/work_queue_example.c 2020-05-05 15:31:15.000000000 +0000 @@ -22,7 +22,6 @@ { struct work_queue *q; struct work_queue_task *t; - int port = WORK_QUEUE_DEFAULT_PORT; int taskid; int i; char *gzip_path; @@ -52,11 +51,11 @@ } /* We create the tasks queue using the default port. If this port is - * already been used by another program, you can try setting port = 0 to - * use an available port. */ - q = work_queue_create(port); + * already been used by another program, you can try changing the argument + * to work_queue_create to 0 to use an available port. */ + q = work_queue_create(WORK_QUEUE_DEFAULT_PORT); if(!q) { - printf("couldn't listen on port %d: %s\n", port, strerror(errno)); + printf("couldn't create queue: %s\n", strerror(errno)); return 1; } printf("listening on port %d...\n", work_queue_port(q)); diff -Nru cctools-7.0.22/work_queue/src/work_queue_graph_log cctools-7.1.2/work_queue/src/work_queue_graph_log --- cctools-7.0.22/work_queue/src/work_queue_graph_log 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/work_queue_graph_log 2020-05-05 15:31:15.000000000 +0000 @@ -1,5 +1,4 @@ -#!/usr/bin/env cctools_python -# CCTOOLS_PYTHON_VERSION 2.7 2.6 +#!/usr/bin/env python # Copyright (C) 2014- The University of Notre Dame # This software is distributed under the GNU General Public License. diff -Nru cctools-7.0.22/work_queue/src/work_queue.h cctools-7.1.2/work_queue/src/work_queue.h --- cctools-7.0.22/work_queue/src/work_queue.h 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/work_queue.h 2020-05-05 15:31:15.000000000 +0000 @@ -265,6 +265,13 @@ int64_t min_memory; /**< The smallest memory size in MB observed among the connected workers. */ int64_t min_disk; /**< The smallest disk space in MB observed among the connected workers. */ + double master_load; /**< In the range of [0,1]. If close to 1, then + the master is at full load and spends most + of its time sending and receiving taks, and + thus cannot accept connections from new + workers. If close to 0, the master is spending + most of its time waiting for something to happen. */ + /**< deprecated fields: */ int total_workers_connected; /**< @deprecated Use workers_connected instead. */ int total_workers_joined; /**< @deprecated Use workers_joined instead. */ @@ -964,6 +971,9 @@ - "fast-abort-multiplier" Set the multiplier of the average task time at which point to abort; if negative or zero fast_abort is deactivated. (default=0) - "keepalive-interval" Set the minimum number of seconds to wait before sending new keepalive checks to workers. (default=300) - "keepalive-timeout" Set the minimum number of seconds to wait for a keepalive response from worker before marking it as dead. (default=30) + - "short-timeout" Set the minimum timeout when sending a brief message to a single worker. (default=5s) + - "long-timeout" Set the minimum timeout when sending a brief message to a foreman. (default=1h) + - "category-steady-n-tasks" Set the number of tasks considered when computing category buckets. @param value The value to set the parameter to. @return 0 on succes, -1 on failure. */ diff -Nru cctools-7.0.22/work_queue/src/work_queue.i cctools-7.1.2/work_queue/src/work_queue.i --- cctools-7.0.22/work_queue/src/work_queue.i 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/work_queue.i 2020-05-05 15:31:15.000000000 +0000 @@ -1,6 +1,9 @@ /* work_queue.i */ %module work_queue +/* type is a go keyword. rename it to value_type */ +%rename(value_type) rmsummary_field::type; + %{ #include "debug.h" #include "int_sizes.h" diff -Nru cctools-7.0.22/work_queue/src/work_queue_json.c cctools-7.1.2/work_queue/src/work_queue_json.c --- cctools-7.0.22/work_queue/src/work_queue_json.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/work_queue_json.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,356 @@ +/* +Copyright (C) 2019- The University of Notre Dame +This software is distributed under the GNU General Public License. +See the file COPYING for details. +*/ + +#include "work_queue_json.h" + +#include "jx.h" +#include "jx_parse.h" +#include "jx_print.h" + +#include +#include +#include + +static const char *work_queue_properties[] = { "name", "port", "priority", "num_tasks_left", "next_taskid", "workingdir", "master_link", + "poll_table", "poll_table_size", "tasks", "task_state_map", "ready_list", "worker_table", + "worker_blacklist", "worker_task_map", "categories", "workers_with_available_results", + "stats", "stats_measure", "stats_disconnected_workers", "time_last_wait", + "worker_selection_algorithm", "task_ordering", "process_pending_check", "short_timeout", + "long_timeout", "task_reports", "asynchrony_multiplier", "asynchrony_modifier", + "minimum_transfer_timeout", "foreman_transfer_timeout", "transfer_outlier_factor", + "default_transfer_rate", "catalog_hosts", "catalog_last_update_time", + "resources_last_update_time", "busy_waiting_flag", "allocation_default_mode", "logfile", + "transactions_logfile", "keepalive_interval", "keepalive_timeout", "link_poll_end", + "master_preferred_connection", "monitor_mode", "monitor_file", "monitor_output_directory", + "monitor_summary_filename", "monitor_exe", "measured_local_resources", + "current_max_worker", "password", "bandwidth" +}; + +static const char *work_queue_task_properties[] = { "tag", "command_line", "worker_selection_algorithm", "output", "input_files", + "output_files", "env_list", "taskid", "return_status", "result", "host", "hostname", + "category", "resource_request", "priority", "max_retries", "try_count", + "exhausted_attempts", "time_when_submitted", "time_when_done", + "disk_allocation_exhausted", "time_when_commit_start", "time_when_commit_end", + "time_when_retrieval", "time_workers_execute_last", "time_workers_execute_all", + "time_workers_execute_exhaustion", "time_workers_execute_failure", "bytes_received", + "bytes_sent", "bytes_transferred", "resources_allocated", "resources_measured", + "resources_requested", "monitor_output_directory", "monitor_snapshot_file", "features", + "time_task_submit", "time_task_finish", "time_committed", "time_send_input_start", + "time_send_input_finish", "time_receive_result_start", "time_receive_result_finish", + "time_receive_output_start", "time_receive_output_finish", "time_execute_cmd_start", + "time_execute_cmd_finish", "total_transfer_time", "cmd_execution_time", + "total_cmd_execution_time", "total_cmd_exhausted_execute_time", + "total_time_until_worker_failure", "total_bytes_received", "total_bytes_sent", + "total_bytes_transferred", "time_app_delay" +}; + + +static int is_in(const char *str, const char **array) +{ + + const char **ptr = array; + + while(*ptr != 0) { + + if(!strcmp(*ptr, str)) { + return 1; + } + + ptr++; + + } + + return 0; + +} + +static int validate_json(struct jx *json, const char **array) +{ + + //iterate over the keys in a JX_OBJECT + void *j = NULL; + const char *key = jx_iterate_keys(json, &j); + + while(key != NULL) { + + if(!is_in(key, array)) { + return 1; + } + + key = jx_iterate_keys(json, &j); + + } + + return 0; + +} + +static int specify_files(int input, struct jx *files, struct work_queue_task *task) +{ + + void *i = NULL; + struct jx *arr = jx_iterate_array(files, &i); + + while(arr != NULL) { + + char *local = NULL; + char *remote = NULL; + struct jx_pair *flag; + void *k = NULL; + void *v = NULL; + int cache = 1; + int nocache = 0; + int watch = 16; + int flags = 0; + + const char *key = jx_iterate_keys(arr, &k); + struct jx *value = jx_iterate_values(arr, &v); + + while(key != NULL) { + + + if(!strcmp(key, "local_name")) { + local = value->u.string_value; + } else if(!strcmp(key, "remote_name")) { + remote = value->u.string_value; + } else if(!strcmp(key, "flags")) { + flag = value->u.pairs; + while(flag) { + char *flag_key = flag->key->u.string_value; + bool flag_value = flag->value->u.boolean_value; + if(!strcmp(flag_key, "WORK_QUEUE_NOCACHE")) { + if(flag_value) { + flags |= nocache; + } + } else if(!strcmp(flag_key, "WORK_QUEUE_CACHE")) { + if(flag_value) { + flags |= cache; + } + } else if(!strcmp(flag_key, "WORK_QUEUE_WATCH")) { + if(flag_value) { + flags |= watch; + } + } else { + printf("KEY ERROR: %s not valid", flag_key); + return 1; + } + flag = flag->next; + } + } else { + printf("KEY ERROR: %s not valid", key); + return 1; + } + + key = jx_iterate_keys(arr, &k); + value = jx_iterate_values(arr, &v); + + } + + if(input) { + work_queue_task_specify_file(task, local, remote, WORK_QUEUE_INPUT, flags); + } else { + work_queue_task_specify_file(task, local, remote, WORK_QUEUE_OUTPUT, flags); + } + + arr = jx_iterate_array(files, &i); + + } + + return 0; + +} + + +static struct work_queue_task *create_task(const char *str) +{ + + char *command_line = NULL; + struct jx *input_files = NULL; + struct jx *output_files = NULL; + + struct jx *json = jx_parse_string(str); + if(!json) { + return NULL; + } + //validate json + if(validate_json(json, work_queue_task_properties)) { + return NULL; + } + //get command from json + void *j = NULL; + void *i = NULL; + const char *key = jx_iterate_keys(json, &j); + struct jx *value = jx_iterate_values(json, &i); + + while(key != NULL) { + + if(!strcmp(key, "command_line")) { + command_line = value->u.string_value; + } else if(!strcmp(key, "input_files")) { + input_files = value; + } else if(!strcmp(key, "output_files")) { + output_files = value; + } else { + printf("%s\n", value->u.string_value); + } + + key = jx_iterate_keys(json, &j); + value = jx_iterate_values(json, &i); + + } + + //call work_queue_task_create + if(command_line) { + + struct work_queue_task *task = work_queue_task_create(command_line); + + if(!task) { + return NULL; + } + + if(input_files) { + specify_files(1, input_files, task); + } + + if(output_files) { + specify_files(0, output_files, task); + } + + return task; + + } + + return NULL; + +} + +struct work_queue *work_queue_json_create(const char *str) +{ + + + int port = 0, priority = 0; + char *name = NULL; + + struct jx *json = jx_parse_string(str); + if(!json) { + return NULL; + } + //validate json + if(validate_json(json, work_queue_properties)) { + return NULL; + } + + void *i = NULL; + void *j = NULL; + const char *key = jx_iterate_keys(json, &j); + struct jx *value = jx_iterate_values(json, &i); + + while(key != NULL) { + + if(!strcmp(key, "name")) { + name = value->u.string_value; + } else if(!strcmp(key, "port")) { + port = value->u.integer_value; + } else if(!strcmp(key, "priority")) { + priority = value->u.integer_value; + } else { + printf("Not necessary: %s\n", value->u.string_value); + } + + key = jx_iterate_keys(json, &j); + value = jx_iterate_values(json, &i); + + } + + if(port) { + + struct work_queue *workqueue = work_queue_create(port); + + if(!workqueue) { + return NULL; + } + + if(name) { + work_queue_specify_name(workqueue, name); + } + if(priority) { + work_queue_specify_priority(workqueue, priority); + } + + return workqueue; + + } + + return NULL; + +} + +int work_queue_json_submit(struct work_queue *q, const char *str) +{ + + struct work_queue_task *task; + + task = create_task(str); + + if(task) { + return work_queue_submit(q, task); + } else { + return -1; + } + +} + +char *work_queue_json_wait(struct work_queue *q, int timeout) +{ + + char *task; + struct jx *j; + struct jx_pair *command_line, *taskid, *return_status, *output, *result; + + struct work_queue_task *t = work_queue_wait(q, timeout); + + command_line = jx_pair(jx_string("command_line"), jx_string(t->command_line), NULL); + taskid = jx_pair(jx_string("taskid"), jx_integer(t->taskid), command_line); + return_status = jx_pair(jx_string("return_status"), jx_integer(t->return_status), taskid); + result = jx_pair(jx_string("result"), jx_integer(t->result), return_status); + + if(t->output) { + output = jx_pair(jx_string("output"), jx_string(t->output), result); + } else { + output = jx_pair(jx_string("output"), jx_string(""), result); + } + + j = jx_object(output); + + task = jx_print_string(j); + + return task; + +} + +char *work_queue_json_remove(struct work_queue *q, int id) +{ + + char *task; + struct jx *j; + struct jx_pair *command_line, *taskid; + + struct work_queue_task *t = work_queue_cancel_by_taskid(q, id); + + if(!t) { + return NULL; + } + + command_line = jx_pair(jx_string("command_line"), jx_string(t->command_line), NULL); + taskid = jx_pair(jx_string("taskid"), jx_integer(t->taskid), command_line); + + j = jx_object(taskid); + + task = jx_print_string(j); + + return task; + +} diff -Nru cctools-7.0.22/work_queue/src/work_queue_json_example.c cctools-7.1.2/work_queue/src/work_queue_json_example.c --- cctools-7.0.22/work_queue/src/work_queue_json_example.c 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/work_queue_json_example.c 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,74 @@ +/* +Copyright (C) 2019- The University of Notre Dame +This software is distributed under the GNU General Public License. +See the file COPYING for details. +*/ + +#include "work_queue_json.h" + +#include +#include +#include +#include +#include + +char *workqueue = "{ \"name\" : \"json_example_wq\" , \"port\" : 1234 }"; + +int main(int argc, char *argv[]) +{ + + struct work_queue *q; + int taskid; + char *task, *t; + size_t len = 0; + ssize_t read; + + if(argc < 2) { + printf("./example \n"); + return 0; + } + + q = work_queue_json_create(workqueue); + if(!q) { + return 1; + } + + /* read from tasks file and create a task for each line */ + char *filename = argv[1]; + FILE *fp = fopen(filename, "r"); + if(!fp) { + printf("cannot open file: %s\n", filename); + return 1; + } + + while((read = getline(&task, &len, fp)) != -1) { + + taskid = work_queue_json_submit(q, task); + + if(taskid < 0) { + return 1; + } + + printf("submitted task (id# %d)\n", taskid); + + } + + fclose(fp); + + printf("waiting for tasks to complete...\n"); + + while(!work_queue_empty(q)) { + + t = work_queue_json_wait(q, 20); + + printf("%s\n", t); + + } + + printf("all tasks complete!\n"); + + work_queue_delete(q); + + return 0; + +} diff -Nru cctools-7.0.22/work_queue/src/work_queue_json.h cctools-7.1.2/work_queue/src/work_queue_json.h --- cctools-7.0.22/work_queue/src/work_queue_json.h 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/src/work_queue_json.h 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,73 @@ +/* +Copyright (C) 2019- The University of Notre Dame +This software is distributed under the GNU General Public License. +See the file COPYING for details. +*/ + +#ifndef WORK_QUEUE_JSON_H +#define WORK_QUEUE_JSON_H + +/** @file work_queue_json.h A master-worker library. + The work queue provides an implementation of the master-worker computing model + using TCP sockets, Unix applications, and files as intermediate buffers. A + master process uses @ref work_queue_json_create to create a queue, then @ref + work_queue_json_submit to submit tasks. Once tasks are running, call @ref + work_queue_json_wait to wait for completion. +*/ + +#include "work_queue.h" + +/** Create a new work_queue object. +@param port The port number to listen on. If zero is specified, then the +port stored in WORK_QUEUE_PORT is used if available. If it isn't, or +-1 is specified, the first unused port between WORK_QUEUE_LOW_PORT +and WORK_QUEUE_HIGH_PORT (1024 and 32767 by default) is chosen. +@return A new work queue, or null if it could not be created. + */ +struct work_queue *work_queue_json_create(const char *str); + +/** Submit a task to a queue. +Once a task is submitted to a queue, it is not longer under the user's +control and should not be inspected until returned via @ref work_queue_wait. +Once returned, it is safe to re-submit the same take object via +@ref work_queue_submit. +@param q A work queue object. +@param str A JSON description of a task. + +{ "command_line" : string , "output_files" : array of objects with one object per output file -> +[ { "local_name" : string , "remote_name" : string , "flags" : object -> { +"WORK_QUEUE_CACHE" : boolean , "WORK_QUEUE_NOCACHE" : boolean , "WORK_QUEUE_WATCH" : +boolean } } ] , "input _files" : array of objects with one object per input file -> [ { +"local_name" : string , "remote_name" : string , "flags" : object -> { "WORK_QUEUE_CACHE" : +boolean , "WORK_QUEUE_NOCACHE" : boolean , "WORK_QUEUE_WATCH" : boolean } } ] , +"tag" : string } + +@return An integer taskid assigned to the submitted task. +*/ +int work_queue_json_submit(struct work_queue *q, const char *str); + +/** Wait for a task to complete. +@param q A work queue object. +@param timeout The number of seconds to wait for a completed task before +returning. Use an integer time to set the timeout or the constant +@ref WORK_QUEUE_WAITFORTASK to block until a task has completed. +@return A JSON description of the completed task or the + timeout was reached without a completed task, or there is completed child +process (call @ref process_wait to retrieve the status of the completed +child process). Return string should be freed using free(). + +{ "command_line" : string , "tag" : string , "output" : string , "taskid" : +integer , "return_status" : integer , "result" : integer } + +*/ +char *work_queue_json_wait(struct work_queue *q, int timeout); + + +/** Remove a task from the queue. +@param q A work queue object. +@param id The id of the task to be removed from the queue. +@return A JSON description of the removed task. +*/ +char *work_queue_json_remove(struct work_queue *q, int id); + +#endif diff -Nru cctools-7.0.22/work_queue/src/work_queue_process.c cctools-7.1.2/work_queue/src/work_queue_process.c --- cctools-7.0.22/work_queue/src/work_queue_process.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/work_queue_process.c 2020-05-05 15:31:15.000000000 +0000 @@ -270,7 +270,7 @@ va_list arg_lst; if(container_mode == NONE) { - execlp("sh", "sh", "-c", p->task->command_line, (char *) 0); + execl("/bin/sh", "sh", "-c", p->task->command_line, (char *) 0); _exit(127); // Failed to execute the cmd. } else if(container_mode == UMBRELLA) { diff -Nru cctools-7.0.22/work_queue/src/work_queue_worker.c cctools-7.1.2/work_queue/src/work_queue_worker.c --- cctools-7.0.22/work_queue/src/work_queue_worker.c 2020-03-16 13:02:14.000000000 +0000 +++ cctools-7.1.2/work_queue/src/work_queue_worker.c 2020-05-05 15:31:15.000000000 +0000 @@ -2322,7 +2322,7 @@ {"docker", required_argument, 0, LONG_OPT_RUN_DOCKER}, {"docker-preserve", required_argument, 0, LONG_OPT_RUN_DOCKER_PRESERVE}, {"docker-tar", required_argument, 0, LONG_OPT_BUILD_FROM_TAR}, - {"feature", required_argument, 0, LONG_OPT_FEATURE}, + {"feature", required_argument, 0, LONG_OPT_FEATURE}, {0,0,0,0} }; @@ -2767,7 +2767,7 @@ if(result) { if(single_shot_mode) { - debug(D_NOTICE,"stopping: single shot mode"); + debug(D_DEBUG,"stopping: single shot mode"); break; } backoff_interval = init_backoff_interval; diff -Nru cctools-7.0.22/work_queue/test/TR_work_queue_python.sh cctools-7.1.2/work_queue/test/TR_work_queue_python.sh --- cctools-7.0.22/work_queue/test/TR_work_queue_python.sh 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/test/TR_work_queue_python.sh 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,75 @@ +#!/bin/sh +set -e + +. ../../dttools/test/test_runner_common.sh + +python=${CCTOOLS_PYTHON_TEST_EXEC} +python_dir=${CCTOOLS_PYTHON_TEST_DIR} + +STATUS_FILE=wq.status +PORT_FILE=wq.port + + +check_needed() +{ + [ -n "${python}" ] || return 1 +} + +prepare() +{ + rm -f $STATUS_FILE + rm -f $PORT_FILE + + rm -rf input.file + rm -rf output.file + rm -rf executable.file + + /bin/echo hello world > input.file + /bin/cp /bin/echo executable.file + + mkdir -p testdir + cp input.file executable.file testdir + + return 0 +} + +run() +{ + # send makeflow to the background, saving its exit status. + (PYTHONPATH=$(pwd)/../src/bindings/${python_dir} ${python} wq_test.py $PORT_FILE; echo $? > $STATUS_FILE) & + + # wait at most 5 seconds for makeflow to find a port. + wait_for_file_creation $PORT_FILE 2 + + run_local_worker $PORT_FILE worker.log + + # wait for makeflow to exit. + wait_for_file_creation $STATUS_FILE 5 + + # retrieve makeflow exit status + status=$(cat $STATUS_FILE) + if [ $status -ne 0 ] + then + exit 1 + fi + + exit 0 +} + +clean() +{ + rm -f $STATUS_FILE + rm -f $PORT_FILE + + rm -rf input.file + rm -rf output.file + rm -rf executable.file + rm -rf testdir + + exit 0 +} + + +dispatch "$@" + +# vim: set noexpandtab tabstop=4: diff -Nru cctools-7.0.22/work_queue/test/wq_test.py cctools-7.1.2/work_queue/test/wq_test.py --- cctools-7.0.22/work_queue/test/wq_test.py 1970-01-01 00:00:00.000000000 +0000 +++ cctools-7.1.2/work_queue/test/wq_test.py 2020-05-05 15:31:15.000000000 +0000 @@ -0,0 +1,188 @@ +#! /usr/bin/env python + +# work queue python binding tests +# tests for missing/recursive inputs/outputs. + +import atexit +import sys +import tempfile +import os +import os.path as path +import shutil +import stat + +import work_queue as wq + +test_dir = tempfile.mkdtemp(prefix='wq.test', dir=".") +input_file = 'input.file' +exec_file = 'exec.file' + +def cleanup(): + shutil.rmtree(test_dir) +atexit.register(cleanup) + +def result_to_string(result): + if result == wq.WORK_QUEUE_RESULT_SUCCESS: + return 'success' + + if result == wq.WORK_QUEUE_RESULT_INPUT_MISSING: + return 'input missing' + + if result == wq.WORK_QUEUE_RESULT_OUTPUT_MISSING: + return 'output missing' + + if result == wq.WORK_QUEUE_RESULT_SIGNAL: + return 'signal' + + if result == wq.WORK_QUEUE_RESULT_RESOURCE_EXHAUSTION: + return 'resource exhaustion' + + if result == wq.WORK_QUEUE_RESULT_TASK_TIMEOUT: + return 'resource exhaustion' + + if result == wq.WORK_QUEUE_RESULT_UNKNOWN: + return 'unknown' + + if result == wq.WORK_QUEUE_RESULT_FORSAKEN: + return 'forsaken' + + if result == wq.WORK_QUEUE_RESULT_MAX_RETRIES: + return 'maximum retries' + + if result == wq.WORK_QUEUE_RESULT_TASK_MAX_RUN_TIME: + return 'maximum runtime' + + if result == wq.WORK_QUEUE_RESULT_DISK_ALLOC_FULL: + return 'disk allocation full' + + if result == wq.WORK_QUEUE_RESULT_RMONITOR_ERROR: + return 'resource monitor error' + + return 'invalid result' + +def report_task(task, expected_result, expected_exit_code, expected_outpus=None): + error = False + print("\nTask '{command}' report:".format(command=t.command)) + if not task: + error = True + print("It was not completed by a worker.") + else: + print("result: {result}".format(result=result_to_string(t.result))) + print("exit code: {status}".format(status=t.return_status)) + if t.output: + print("stderr:\n+++\n{stderr}---".format(stderr=t.output)) + if task.result != expected_result: + error = True + print("Should have finished with result '{result}', but got '{real}'.".format(result=result_to_string(expected_result), real=result_to_string(task.result))) + elif task.return_status != expected_exit_code: + error = True + print("Should have finished with exit_code {status}, but got {real}.".format(status=str(expected_exit_code), real=str(task.return_status))) + elif expected_outpus: + for out in expected_outpus: + if not path.isfile(out): + error = True + print("Should have created file {output} but did not.".format(output=out)) + else: + print("Completed as expected.") + if error: + sys.exit(1) + + +output_count = 0 +def output_file(): + global output_count + output_count += 1 + return 'output_file.' + str(output_count) + +def make_task(exe, input, output): + return t + +port_file = None +try: + port_file = sys.argv[1] +except IndexError: + sys.stderr.write("Usage: {} PORTFILE\n".format(sys.argv[0])) + + +with open(path.join(test_dir, input_file), 'w') as f: + f.write('hello world\n') + +shutil.copyfile('/bin/cat', path.join(test_dir, exec_file)) +os.chmod(path.join(test_dir, exec_file), stat.S_IRWXU) + + +q = wq.WorkQueue(0) + +with open(port_file, 'w') as f: + print('Writing port {port} to file {file}'.format(port=q.port, file=port_file)) + f.write(str(q.port)) + +# simple task +# define a task, sending stderr to console, and stdout to output +output = output_file() +t = wq.Task("./{exe} {input} 2>&1 > {output}".format(exe=exec_file, input=input_file, output=output)) +t.specify_input_file(path.join(test_dir, exec_file), exec_file) +t.specify_input_file(path.join(test_dir, input_file), input_file) +t.specify_output_file(path.join(test_dir, output), output) + +q.submit(t) +t = q.wait(5) +report_task(t, wq.WORK_QUEUE_RESULT_SUCCESS, 0, [path.join(test_dir, output)]) + +# same simple task, but now we send the directory as an input +output = output_file() +t = wq.Task("cd my_dir && ./{exe} {input} 2>&1 > {output}".format(exe=exec_file, input=input_file, output=output)) +t.specify_directory(test_dir, 'my_dir', recursive=True) +t.specify_output_file(path.join(test_dir, output), path.join('my_dir', output)) + +q.submit(t) +t = q.wait(5) +report_task(t, wq.WORK_QUEUE_RESULT_SUCCESS, 0, [path.join(test_dir, output)]) + + +# we bring back the outputs from a directory: +output = output_file() +t = wq.Task("mkdir outs && ./{exe} {input} 2>&1 > outs/{output}".format(exe=exec_file, input=input_file, output=output)) +t.specify_input_file(path.join(test_dir, exec_file), exec_file) +t.specify_input_file(path.join(test_dir, input_file), input_file) +t.specify_directory(path.join(test_dir, 'outs'), 'outs', type = wq.WORK_QUEUE_OUTPUT) + +q.submit(t) +t = q.wait(5) +report_task(t, wq.WORK_QUEUE_RESULT_SUCCESS, 0, [path.join(test_dir, 'outs', output)]) + +# should fail because the 'executable' cannot be executed: +t = wq.Task("./{input}".format(input=input_file)) +t.specify_input_file(path.join(test_dir, input_file), input_file) + +q.submit(t) +t = q.wait(5) +report_task(t, wq.WORK_QUEUE_RESULT_SUCCESS, 126) + +# should fail because the 'executable' cannot be found: +t = wq.Task("./notacommand") + +q.submit(t) +t = q.wait(5) +report_task(t, wq.WORK_QUEUE_RESULT_SUCCESS, 127) + +# should fail because an input file does not exists: +t = wq.Task("./notacommand") +t.specify_input_file('notacommand') + +q.submit(t) +t = q.wait(5) +report_task(t, wq.WORK_QUEUE_RESULT_INPUT_MISSING, -1) + +# should fail because an output file was not created: +output = output_file() +t = wq.Task("./{exe} {input} 2>&1".format(exe=exec_file, input=input_file)) +t.specify_input_file(path.join(test_dir, exec_file), exec_file) +t.specify_input_file(path.join(test_dir, input_file), input_file) +t.specify_output_file(path.join(test_dir, output), output) + +q.submit(t) +t = q.wait(5) +report_task(t, wq.WORK_QUEUE_RESULT_OUTPUT_MISSING, 0) + +