slotsHow many maximum LRM jobs/worker blocks are allowed
- workersPerNodeHow many coaster workers to run per execution node
+ jobsPerNodeHow many coaster workers to run per execution node
nodeGranularityEach worker block uses a number of nodes that is a multiple of this number
lowOverallocationHow many times larger than the job walltime should a block's walltime be if all jobs are 1s long
highOverallocationHow many times larger than the job walltime should a block's walltime be if all jobs are infinitely long
overallocationDecayFactorHow quickly should the overallocation curve tend towards the highOverallocation as job walltimes get larger
spreadBy how much should worker blocks vary in worker size
- workersPerNodeHow many coaster workers to run per execution node
+ jobsPerNodeHow many coaster workers to run per execution node
reserveHow many seconds to reserve in a block's walltime for starting/shutdown operations
maxnodesThe maximum number of nodes allowed in a block
maxtimeThe maximum number of walltime allowed for a block
Copied: trunk/etc/sites/cnari-abe (from rev 4199, trunk/etc/sites/cnari-abe)
Modified: trunk/etc/sites/cnari-abe/sites.xml
===================================================================
--- trunk/etc/sites/cnari-abe/sites.xml 2011-03-18 19:08:14 UTC (rev 4199)
+++ trunk/etc/sites/cnari-abe/sites.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -5,14 +5,14 @@
172800
10
8
- 8
+ 8
8
normal
TG-DBS080004N
configtest
- 8
+ 8
/scratch/users/sidgrid/$USER
Copied: trunk/etc/sites/cnari-queenbee (from rev 4199, trunk/etc/sites/cnari-queenbee)
Modified: trunk/etc/sites/cnari-queenbee/sites.xml
===================================================================
--- trunk/etc/sites/cnari-queenbee/sites.xml 2011-03-18 19:08:14 UTC (rev 4199)
+++ trunk/etc/sites/cnari-queenbee/sites.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -5,14 +5,14 @@
172800
10
8
- 8
+ 8
8
workq
TG-DBS080004N
configtest
- 8
+ 8
/work/scommuni/$USER
Copied: trunk/etc/sites/cnari-ranger (from rev 4199, trunk/etc/sites/cnari-ranger)
Modified: trunk/etc/sites/cnari-ranger/sites.xml
===================================================================
--- trunk/etc/sites/cnari-ranger/sites.xml 2011-03-18 19:08:14 UTC (rev 4199)
+++ trunk/etc/sites/cnari-ranger/sites.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -5,12 +5,12 @@
172800
10
8
- 16
+ 16
16
long
TG-DBS080004N
- 16
+ 16
/work/00926/tg459516/sidgrid_out/$USER
Modified: trunk/etc/sites/intrepid
===================================================================
--- trunk/etc/sites/intrepid 2011-03-21 21:24:01 UTC (rev 4203)
+++ trunk/etc/sites/intrepid 2011-03-22 18:47:41 UTC (rev 4204)
@@ -20,7 +20,7 @@
true
21
10000
- 1
+ 1
DEBUG
1
900
Copied: trunk/etc/sites/local-pbs-coasters (from rev 4199, trunk/etc/sites/local-pbs-coasters)
Modified: trunk/etc/sites/local-pbs-coasters/sites.xml
===================================================================
--- trunk/etc/sites/local-pbs-coasters/sites.xml 2011-03-18 19:08:14 UTC (rev 4199)
+++ trunk/etc/sites/local-pbs-coasters/sites.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -3,7 +3,7 @@
$HOME/swiftwork
3000
- 8
+ 8
1
1
10
Copied: trunk/etc/sites/pads-local-pbs-coasters (from rev 4199, trunk/etc/sites/pads-local-pbs-coasters)
Modified: trunk/etc/sites/pads-local-pbs-coasters/sites.xml
===================================================================
--- trunk/etc/sites/pads-local-pbs-coasters/sites.xml 2011-03-18 19:08:14 UTC (rev 4199)
+++ trunk/etc/sites/pads-local-pbs-coasters/sites.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -3,7 +3,7 @@
$HOME/swiftwork
3000
- 8
+ 8
1
1
10
Copied: trunk/etc/sites/pads-remote-pbs-coasters-ssh (from rev 4199, trunk/etc/sites/pads-remote-pbs-coasters-ssh)
Modified: trunk/etc/sites/pads-remote-pbs-coasters-ssh/sites.xml
===================================================================
--- trunk/etc/sites/pads-remote-pbs-coasters-ssh/sites.xml 2011-03-18 19:08:14 UTC (rev 4199)
+++ trunk/etc/sites/pads-remote-pbs-coasters-ssh/sites.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -1,7 +1,7 @@
3000
- 8
+ 8
1
1
10
Modified: trunk/etc/sites/ssh-pbs-coasters
===================================================================
--- trunk/etc/sites/ssh-pbs-coasters 2011-03-21 21:24:01 UTC (rev 4203)
+++ trunk/etc/sites/ssh-pbs-coasters 2011-03-22 18:47:41 UTC (rev 4204)
@@ -3,7 +3,7 @@
3000
- 8
+ 8
1
1
10
Modified: trunk/etc/sites/surveyor
===================================================================
--- trunk/etc/sites/surveyor 2011-03-21 21:24:01 UTC (rev 4203)
+++ trunk/etc/sites/surveyor 2011-03-22 18:47:41 UTC (rev 4204)
@@ -10,7 +10,7 @@
true
21
10000
- 1
+ 1
DEBUG
1
900
Copied: trunk/etc/sites/teraport-local-pbs-coasters (from rev 4199, trunk/etc/sites/teraport-local-pbs-coasters)
Modified: trunk/etc/sites/teraport-local-pbs-coasters/sites.xml
===================================================================
--- trunk/etc/sites/teraport-local-pbs-coasters/sites.xml 2011-03-18 19:08:14 UTC (rev 4199)
+++ trunk/etc/sites/teraport-local-pbs-coasters/sites.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -3,7 +3,7 @@
$HOME/swiftwork
3000
- 8
+ 8
1
1
10
Copied: trunk/etc/sites/teraport-remote-pbs-coasters-ssh (from rev 4199, trunk/etc/sites/teraport-remote-pbs-coasters-ssh)
Modified: trunk/etc/sites/teraport-remote-pbs-coasters-ssh/sites.xml
===================================================================
--- trunk/etc/sites/teraport-remote-pbs-coasters-ssh/sites.xml 2011-03-18 19:08:14 UTC (rev 4199)
+++ trunk/etc/sites/teraport-remote-pbs-coasters-ssh/sites.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -1,7 +1,7 @@
3000
- 8
+ 8
1
1
10
Modified: trunk/libexec/vdl-sc.k
===================================================================
--- trunk/libexec/vdl-sc.k 2011-03-21 21:24:01 UTC (rev 4203)
+++ trunk/libexec/vdl-sc.k 2011-03-22 18:47:41 UTC (rev 4204)
@@ -72,7 +72,7 @@
element(intrepidCoasterParams, [optional(averageJobTime, blockSize)]
print("Setting Intrepid coaster params:")
p("scratch", "/scratch")
- p("workersPerNode", "4")
+ p("jobsPerNode", "4")
p("kernelprofile", "zeptoos")
p("alcfbgpnat", "true")
maybe(
@@ -91,7 +91,7 @@
element(surveyorCoasterParams, [optional(averageJobTime, blockSize)]
print("Setting Surveyor coaster params:")
p("scratch", "/scratch")
- p("workersPerNode", "4")
+ p("jobsPerNode", "4")
p("kernelprofile", "zeptoos")
p("alcfbgpnat", "true")
maybe(
Modified: trunk/tests/cdm/ps/pinned/sites.template.xml
===================================================================
--- trunk/tests/cdm/ps/pinned/sites.template.xml 2011-03-21 21:24:01 UTC (rev 4203)
+++ trunk/tests/cdm/ps/pinned/sites.template.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -13,7 +13,7 @@
_HOST_
2.55
10000
- 4
+ 4
8
1000
1
Modified: trunk/tests/cdm/ps/sites.template.xml
===================================================================
--- trunk/tests/cdm/ps/sites.template.xml 2011-03-21 21:24:01 UTC (rev 4203)
+++ trunk/tests/cdm/ps/sites.template.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -13,7 +13,7 @@
_HOST_
2.55
10000
- 4
+ 4
8
1000
1
Modified: trunk/tests/mpi/sites.template.xml
===================================================================
--- trunk/tests/mpi/sites.template.xml 2011-03-21 21:24:01 UTC (rev 4203)
+++ trunk/tests/mpi/sites.template.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -13,7 +13,7 @@
_HOST_
2.55
10000
- 4
+ 4
8
1000
1
Modified: trunk/tests/providers/local-cobalt/intrepid/sites.template.xml
===================================================================
--- trunk/tests/providers/local-cobalt/intrepid/sites.template.xml 2011-03-21 21:24:01 UTC (rev 4203)
+++ trunk/tests/providers/local-cobalt/intrepid/sites.template.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -20,7 +20,7 @@
true
21
10000
- 1
+ 1
DEBUG
1
900
Modified: trunk/tests/providers/local-cobalt/surveyor/sites.template.xml
===================================================================
--- trunk/tests/providers/local-cobalt/surveyor/sites.template.xml 2011-03-21 21:24:01 UTC (rev 4203)
+++ trunk/tests/providers/local-cobalt/surveyor/sites.template.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -10,7 +10,7 @@
true
21
10000
- 1
+ 1
DEBUG
1
900
Modified: trunk/tests/providers/local-pbs-coasters/sites.template.xml
===================================================================
--- trunk/tests/providers/local-pbs-coasters/sites.template.xml 2011-03-21 21:24:01 UTC (rev 4203)
+++ trunk/tests/providers/local-pbs-coasters/sites.template.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -4,7 +4,7 @@
1
7200
- 1
+ 1
1
1
1
Modified: trunk/tests/providers/local-sge-coasters/sites.template.xml
===================================================================
--- trunk/tests/providers/local-sge-coasters/sites.template.xml 2011-03-21 21:24:01 UTC (rev 4203)
+++ trunk/tests/providers/local-sge-coasters/sites.template.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -4,7 +4,7 @@
1
7200
- 1
+ 1
1
16
16
Modified: trunk/tests/providers/ssh-pbs-coasters/sites.template.xml
===================================================================
--- trunk/tests/providers/ssh-pbs-coasters/sites.template.xml 2011-03-21 21:24:01 UTC (rev 4203)
+++ trunk/tests/providers/ssh-pbs-coasters/sites.template.xml 2011-03-22 18:47:41 UTC (rev 4204)
@@ -3,7 +3,7 @@
3000
- 8
+ 8
1
1
10
From noreply at svn.ci.uchicago.edu Tue Mar 22 13:48:56 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Tue, 22 Mar 2011 13:48:56 -0500 (CDT)
Subject: [Swift-commit] r4205 - trunk
Message-ID: <20110322184856.3F7E49CCA0@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-22 13:48:56 -0500 (Tue, 22 Mar 2011)
New Revision: 4205
Modified:
trunk/CHANGES.txt
Log:
test
Modified: trunk/CHANGES.txt
===================================================================
--- trunk/CHANGES.txt 2011-03-22 18:47:41 UTC (rev 4204)
+++ trunk/CHANGES.txt 2011-03-22 18:48:56 UTC (rev 4205)
@@ -707,3 +707,4 @@
*** Added a basic wrapper to capture exit codes and do other
work before and after executing the job
+
From noreply at svn.ci.uchicago.edu Tue Mar 22 13:49:22 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Tue, 22 Mar 2011 13:49:22 -0500 (CDT)
Subject: [Swift-commit] r4206 - trunk
Message-ID: <20110322184922.B6CD09CCA0@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-22 13:49:22 -0500 (Tue, 22 Mar 2011)
New Revision: 4206
Modified:
trunk/CHANGES.txt
Log:
test2
Modified: trunk/CHANGES.txt
===================================================================
--- trunk/CHANGES.txt 2011-03-22 18:48:56 UTC (rev 4205)
+++ trunk/CHANGES.txt 2011-03-22 18:49:22 UTC (rev 4206)
@@ -708,3 +708,4 @@
*** Added a basic wrapper to capture exit codes and do other
work before and after executing the job
+
From noreply at svn.ci.uchicago.edu Tue Mar 22 14:29:59 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Tue, 22 Mar 2011 14:29:59 -0500 (CDT)
Subject: [Swift-commit] r4207 - trunk/tests/providers/local-coasters
Message-ID: <20110322192959.B6A5A9CCA0@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-22 14:29:59 -0500 (Tue, 22 Mar 2011)
New Revision: 4207
Added:
trunk/tests/providers/local-coasters/200-cp.check.sh
trunk/tests/providers/local-coasters/200-cp.clean.sh
trunk/tests/providers/local-coasters/200-cp.setup.sh
trunk/tests/providers/local-coasters/200-cp.swift
trunk/tests/providers/local-coasters/README.txt
trunk/tests/providers/local-coasters/sites.template.xml
trunk/tests/providers/local-coasters/tc.template.data
trunk/tests/providers/local-coasters/title.txt
Modified:
trunk/tests/providers/local-coasters/
Log:
Simple local-coasters test
Property changes on: trunk/tests/providers/local-coasters
___________________________________________________________________
Name: svn:ignore
+ 200-input.txt
Added: trunk/tests/providers/local-coasters/200-cp.check.sh
===================================================================
--- trunk/tests/providers/local-coasters/200-cp.check.sh (rev 0)
+++ trunk/tests/providers/local-coasters/200-cp.check.sh 2011-03-22 19:29:59 UTC (rev 4207)
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+set -x
+
+grep $( uname -m ) 200-input.txt || exit 1
+grep $( uname -m ) 200-output.txt || exit 1
+
+exit 0
Property changes on: trunk/tests/providers/local-coasters/200-cp.check.sh
___________________________________________________________________
Name: svn:executable
+ *
Added: trunk/tests/providers/local-coasters/200-cp.clean.sh
===================================================================
--- trunk/tests/providers/local-coasters/200-cp.clean.sh (rev 0)
+++ trunk/tests/providers/local-coasters/200-cp.clean.sh 2011-03-22 19:29:59 UTC (rev 4207)
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+set -x
+
+rm -rv 200-output.txt || exit 1
+
+exit 0
Property changes on: trunk/tests/providers/local-coasters/200-cp.clean.sh
___________________________________________________________________
Name: svn:executable
+ *
Added: trunk/tests/providers/local-coasters/200-cp.setup.sh
===================================================================
--- trunk/tests/providers/local-coasters/200-cp.setup.sh (rev 0)
+++ trunk/tests/providers/local-coasters/200-cp.setup.sh 2011-03-22 19:29:59 UTC (rev 4207)
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+set -x
+
+{
+ uname -a
+ date
+} > 200-input.txt
+
+exit 0
Property changes on: trunk/tests/providers/local-coasters/200-cp.setup.sh
___________________________________________________________________
Name: svn:executable
+ *
Added: trunk/tests/providers/local-coasters/200-cp.swift
===================================================================
--- trunk/tests/providers/local-coasters/200-cp.swift (rev 0)
+++ trunk/tests/providers/local-coasters/200-cp.swift 2011-03-22 19:29:59 UTC (rev 4207)
@@ -0,0 +1,10 @@
+
+type file;
+
+app (file o) cp(file i)
+{
+ cp @i @o;
+}
+
+file input<"200-input.txt">;
+file output<"200-output.txt"> = cp(input);
Added: trunk/tests/providers/local-coasters/README.txt
===================================================================
--- trunk/tests/providers/local-coasters/README.txt (rev 0)
+++ trunk/tests/providers/local-coasters/README.txt 2011-03-22 19:29:59 UTC (rev 4207)
@@ -0,0 +1,5 @@
+
+Tests for basic Coasters functionality on local machine
+
+200 series: Simple jobs, simple settings
+
Added: trunk/tests/providers/local-coasters/sites.template.xml
===================================================================
--- trunk/tests/providers/local-coasters/sites.template.xml (rev 0)
+++ trunk/tests/providers/local-coasters/sites.template.xml 2011-03-22 19:29:59 UTC (rev 4207)
@@ -0,0 +1,24 @@
+
+
+
+
+
+ _WORK_
+ file
+
+
+
+
+
+ _HOST_
+ 2.55
+ 10000
+ 4
+ 8
+ 1000
+ 1
+ 4
+ _WORK_
+
+
+
Added: trunk/tests/providers/local-coasters/tc.template.data
===================================================================
--- trunk/tests/providers/local-coasters/tc.template.data (rev 0)
+++ trunk/tests/providers/local-coasters/tc.template.data 2011-03-22 19:29:59 UTC (rev 4207)
@@ -0,0 +1,19 @@
+#This is the transformation catalog.
+#
+#It comes pre-configured with a number of simple transformations with
+#paths that are likely to work on a linux box. However, on some systems,
+#the paths to these executables will be different (for example, sometimes
+#some of these programs are found in /usr/bin rather than in /bin)
+#
+#NOTE WELL: fields in this file must be separated by tabs, not spaces; and
+#there must be no trailing whitespace at the end of each line.
+#
+# sitename transformation path INSTALLED platform profiles
+localhost echo /bin/echo INSTALLED INTEL32::LINUX null
+localhost cat /bin/cat INSTALLED INTEL32::LINUX null
+localhost ls /bin/ls INSTALLED INTEL32::LINUX null
+localhost grep /bin/grep INSTALLED INTEL32::LINUX null
+localhost sort /bin/sort INSTALLED INTEL32::LINUX null
+localhost paste /bin/paste INSTALLED INTEL32::LINUX null
+
+coasterslocal cp /bin/cp INSTALLED INTEL32::LINUX null
Added: trunk/tests/providers/local-coasters/title.txt
===================================================================
--- trunk/tests/providers/local-coasters/title.txt (rev 0)
+++ trunk/tests/providers/local-coasters/title.txt 2011-03-22 19:29:59 UTC (rev 4207)
@@ -0,0 +1 @@
+Local coasters
From noreply at svn.ci.uchicago.edu Tue Mar 22 14:52:48 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Tue, 22 Mar 2011 14:52:48 -0500 (CDT)
Subject: [Swift-commit] r4208 - trunk/tests/groups
Message-ID: <20110322195248.922219CC80@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-22 14:52:48 -0500 (Tue, 22 Mar 2011)
New Revision: 4208
Added:
trunk/tests/groups/local-coasters.sh
Log:
Adding
Added: trunk/tests/groups/local-coasters.sh
===================================================================
--- trunk/tests/groups/local-coasters.sh (rev 0)
+++ trunk/tests/groups/local-coasters.sh 2011-03-22 19:52:48 UTC (rev 4208)
@@ -0,0 +1,4 @@
+
+# GROUPLIST definition to run local coasters tests
+
+GROUPLIST=( $TESTDIR/providers/local-coasters )
From noreply at svn.ci.uchicago.edu Tue Mar 22 16:29:51 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Tue, 22 Mar 2011 16:29:51 -0500 (CDT)
Subject: [Swift-commit] r4209 - trunk/src/org/griphyn/vdl/karajan/functions
Message-ID: <20110322212951.1EFCF9CC80@svn.ci.uchicago.edu>
Author: skenny
Date: 2011-03-22 16:29:50 -0500 (Tue, 22 Mar 2011)
New Revision: 4209
Modified:
trunk/src/org/griphyn/vdl/karajan/functions/ProcessBulkErrors.java
Log:
note: full java stack trace can be printed by setting the ProcessBulkErrors logger to DEBUG in log4j
Modified: trunk/src/org/griphyn/vdl/karajan/functions/ProcessBulkErrors.java
===================================================================
--- trunk/src/org/griphyn/vdl/karajan/functions/ProcessBulkErrors.java 2011-03-22 19:52:48 UTC (rev 4208)
+++ trunk/src/org/griphyn/vdl/karajan/functions/ProcessBulkErrors.java 2011-03-22 21:29:50 UTC (rev 4209)
@@ -123,6 +123,11 @@
}
e = e.getCause();
}
- return lastmsg;
+ if (logger.isDebugEnabled()) {
+ return sb.toString();
+ }
+ else{
+ return lastmsg;
+ }
}
}
From noreply at svn.ci.uchicago.edu Tue Mar 22 16:32:54 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Tue, 22 Mar 2011 16:32:54 -0500 (CDT)
Subject: [Swift-commit] r4210 - trunk/etc
Message-ID: <20110322213254.BA2529CC80@svn.ci.uchicago.edu>
Author: skenny
Date: 2011-03-22 16:32:54 -0500 (Tue, 22 Mar 2011)
New Revision: 4210
Modified:
trunk/etc/log4j.properties
Log:
reasonable default for ProcessBulkErrors, can be set to DEBUG if user wishes to see entire java stack trace
Modified: trunk/etc/log4j.properties
===================================================================
--- trunk/etc/log4j.properties 2011-03-22 21:29:50 UTC (rev 4209)
+++ trunk/etc/log4j.properties 2011-03-22 21:32:54 UTC (rev 4210)
@@ -18,6 +18,8 @@
log4j.logger.org.globus.swift.trace=INFO
log4j.logger.org.griphyn.vdl.karajan.Loader=DEBUG
+
+log4j.logger.org.griphyn.vdl.karajan.functions.ProcessBulkErrors=WARN
log4j.logger.org.globus.cog.karajan.workflow.events.WorkerSweeper=WARN
log4j.logger.org.globus.cog.karajan.workflow.nodes.FlowNode=WARN
log4j.logger.org.globus.cog.karajan.scheduler.WeightedHostScoreScheduler=INFO
From noreply at svn.ci.uchicago.edu Tue Mar 22 16:45:30 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Tue, 22 Mar 2011 16:45:30 -0500 (CDT)
Subject: [Swift-commit] r4211 - trunk/etc
Message-ID: <20110322214530.1776B9CC80@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-22 16:45:29 -0500 (Tue, 22 Mar 2011)
New Revision: 4211
Modified:
trunk/etc/log4j.properties
Log:
Categorize log4j.properties contents
Should not change behavior
Modified: trunk/etc/log4j.properties
===================================================================
--- trunk/etc/log4j.properties 2011-03-22 21:32:54 UTC (rev 4210)
+++ trunk/etc/log4j.properties 2011-03-22 21:45:29 UTC (rev 4211)
@@ -15,19 +15,27 @@
log4j.logger.org.apache.axis.utils=ERROR
+# Swift
+
log4j.logger.org.globus.swift.trace=INFO
-
log4j.logger.org.griphyn.vdl.karajan.Loader=DEBUG
+log4j.logger.org.griphyn.vdl.karajan.functions.ProcessBulkErrors=WARN
+log4j.logger.org.griphyn.vdl.engine.Karajan=INFO
+log4j.logger.org.griphyn.vdl.karajan.lib=INFO
+log4j.logger.org.griphyn.vdl.karajan.VDL2ExecutionContext=DEBUG
+log4j.logger.org.griphyn.vdl.karajan.lib.GetFieldValue=DEBUG
+log4j.logger.org.griphyn.vdl.toolkit.VDLt2VDLx=DEBUG
-log4j.logger.org.griphyn.vdl.karajan.functions.ProcessBulkErrors=WARN
+# CoG Karajan
+
log4j.logger.org.globus.cog.karajan.workflow.events.WorkerSweeper=WARN
log4j.logger.org.globus.cog.karajan.workflow.nodes.FlowNode=WARN
+
+# CoG Scheduling
+
log4j.logger.org.globus.cog.karajan.scheduler.WeightedHostScoreScheduler=INFO
-log4j.logger.org.griphyn.vdl.toolkit.VDLt2VDLx=DEBUG
-log4j.logger.org.griphyn.vdl.karajan.VDL2ExecutionContext=DEBUG
+
+# CoG Providers
+
log4j.logger.org.globus.cog.abstraction.impl.common.task.TaskImpl=INFO
-log4j.logger.org.griphyn.vdl.karajan.lib.GetFieldValue=DEBUG
-log4j.logger.org.griphyn.vdl.engine.Karajan=INFO
log4j.logger.org.globus.cog.abstraction.coaster.rlog=INFO
-
-log4j.logger.org.griphyn.vdl.karajan.lib=INFO
From noreply at svn.ci.uchicago.edu Tue Mar 22 16:55:56 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Tue, 22 Mar 2011 16:55:56 -0500 (CDT)
Subject: [Swift-commit] r4212 - text
Message-ID: <20110322215556.DB5A39CCA0@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-22 16:55:56 -0500 (Tue, 22 Mar 2011)
New Revision: 4212
Added:
text/CCA_2011/
Log:
Extended abstract regarding Swift/Coasters on cloud resources
From noreply at svn.ci.uchicago.edu Wed Mar 23 03:34:53 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Wed, 23 Mar 2011 03:34:53 -0500 (CDT)
Subject: [Swift-commit] r4214 - text/parco10submission
Message-ID: <20110323083453.428649CC84@svn.ci.uchicago.edu>
Author: dsk
Date: 2011-03-23 03:34:53 -0500 (Wed, 23 Mar 2011)
New Revision: 4214
Modified:
text/parco10submission/paper.tex
Log:
minor changes
Modified: text/parco10submission/paper.tex
===================================================================
--- text/parco10submission/paper.tex 2011-03-22 21:57:56 UTC (rev 4213)
+++ text/parco10submission/paper.tex 2011-03-23 08:34:53 UTC (rev 4214)
@@ -661,7 +661,7 @@
uses the built-in \verb|filesys_mapper| to map
all files matching the name pattern \verb|*.jpeg| to an array--and then applies a function to each element of that array.
-Swift mappers can operate on files stored on the local machine in the directory where the {\tt swift} command is executing, or they can map any files accessible to the local machine, using absolute pathnames. Custom mappers (and some of the built-in mappers) can also map variables to files specified by URIs for access from remote servers via protocols such as GridFTP or HTTP, as described in section \ref{Execution}. Mappers can interact with structure fields and array elements in a simple and useful manner.
+Swift mappers can operate on files stored on the local machine in the directory where the {\tt swift} command is executing, or they can map any files accessible to the local machine, using absolute pathnames. Custom mappers (and some of the built-in mappers) can also map variables to files specified by URIs for access from remote servers via protocols such as GridFTP or HTTP, as described in Section~\ref{Execution}. Mappers can interact with structure fields and array elements in a simple and useful manner.
New mappers can be added to Swift either as Java classes or as simple, external executable scripts or programs coded in any language.
Mappers can operate both as input mappers (which map files to be processed as application inputs) and as output mappers (which specify the names of files to be produced by applications). It is important to understand that mapping a variable is a different operation from setting the value of a variable. Variables of mapped-file type are mapped (conceptually) when the variable becomes ``in scope,'' but they are set when a statement assigns them a value. Mapper invocations (and invocations of external mapper executables) are completely synchronized with the Swift parallel execution model.
@@ -1545,13 +1545,13 @@
\section*{Acknowledgments}
-This research is supported in part by NSF grants OCI-721939 and
+This research was supported in part by NSF grants OCI-721939 and
OCI-0944332 and by the U.S. Department of Energy under contract
DE-AC02-06CH11357. Computing resources were provided by the Argonne
-Leadership Computing Facility, TeraGrid, the Open Science Grid, the UChicago / Argonne Computation Institute
-Petascale Active Data Store, and the Amazon Web Services Education allocation program.
+Leadership Computing Facility, TeraGrid, the Open Science Grid, the UChicago/Argonne Computation Institute
+Petascale Active Data Store (PADS), and the Amazon Web Services Education allocation program.
-The glass cavity simulation example in this article is the work of Glen Hocky of the Reichman Lab of the Columbia University Department of Chemistry. We thank Glen for his contributions to the text and code of section 4 and valuable feedback to the Swift project. We gratefully acknowledge the contributions of current and former Swift team members, collaborators, and users: Sarah Kenny, Allan Espinosa, Zhao Zhang, Luiz Gadelha, David Kelly, Milena Nokolic, Jon Monette, Aashish Adhikari, Marc Parisien, Michael Andric, Steven Small, John Dennis, Mats Rynge, Michael Kubal, Tibi Stef-Praun, Xu Du, Zhengxiong Hou, and Xi Li. The initial implementation of Swift was the work of Yong Zhao and Mihael Hategan; Karajan was designed and implemented by Hategan. We thank Tim Armstrong for helpful comments on the text.
+The glass cavity simulation example in this article is the work of Glen Hocky of the Reichman Lab of the Columbia University Department of Chemistry. We thank Glen for his contributions to the text and code of Section 4 and valuable feedback to the Swift project. We gratefully acknowledge the contributions of current and former Swift team members, collaborators, and users: Sarah Kenny, Allan Espinosa, Zhao Zhang, Luiz Gadelha, David Kelly, Milena Nokolic, Jon Monette, Aashish Adhikari, Marc Parisien, Michael Andric, Steven Small, John Dennis, Mats Rynge, Michael Kubal, Tibi Stef-Praun, Xu Du, Zhengxiong Hou, and Xi Li. The initial implementation of Swift was the work of Yong Zhao and Mihael Hategan; Karajan was designed and implemented by Hategan. We thank Tim Armstrong for helpful comments on the text.
\bibliographystyle{elsarticle-num}
\bibliography{paper,Wozniak} % for ACM SIGS style
From noreply at svn.ci.uchicago.edu Wed Mar 23 09:58:10 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Wed, 23 Mar 2011 09:58:10 -0500 (CDT)
Subject: [Swift-commit] r4215 - trunk/tests
Message-ID: <20110323145810.24DF7FC41@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-23 09:58:09 -0500 (Wed, 23 Mar 2011)
New Revision: 4215
Modified:
trunk/tests/nightly.sh
Log:
Minor improvements to nightly.sh
Modified: trunk/tests/nightly.sh
===================================================================
--- trunk/tests/nightly.sh 2011-03-23 08:34:53 UTC (rev 4214)
+++ trunk/tests/nightly.sh 2011-03-23 14:58:09 UTC (rev 4215)
@@ -194,6 +194,13 @@
TESTCOUNT=0
+# PIDs to kill if nightly.sh is killed:
+PROCESS_PID=
+MONITOR_PID=
+
+# When true, we should exit:
+SHUTDOWN=0
+
echo "RUNNING_IN: $RUNDIR"
echo "HTML_OUTPUT: $HTML"
@@ -233,6 +240,14 @@
return 0
}
+shutdown_trap() {
+ SHUTDOWN=1
+ printf "\n\nshutdown_trap... $MONITOR_PID $PROCESS_PID\n\n"
+ ps -f
+ kill -INT $MONITOR_PID
+ kill -INT $PROCESS_PID
+}
+
header() {
CURRENT=$SCRIPTDIR/html/current.html
sed "s at _HTMLBASE_@$HTMLPATH@" < $CURRENT > $TOPDIR/current.html
@@ -575,7 +590,7 @@
"$@" > $OUTPUT 2>&1 &
EXEC_PID=$!
- trap "process_exec_trap $EXEC_PID" SIGTERM
+ trap "process_exec_trap $EXEC_PID" SIGTERM SIGINT
wait $EXEC_PID
EXITCODE=$?
@@ -594,9 +609,11 @@
# Rationale: Killing bin/swift does not kill the Swift java process
process_exec_trap() {
EXEC_PID=$1
- echo "process_exec_trap()"
- kill -KILL $EXEC_PID
- killall_swift
+ ps -f
+ echo "process_exec_trap($EXEC_PID)"
+ kill -TERM $EXEC_PID
+ ps -f
+ # killall_swift
}
# Kill all subordinate swift/java processes
@@ -663,15 +680,15 @@
# Use background so kill/trap is immediate
sleep $TIMEOUT > /dev/null 2>&1 &
SLEEP_PID=$!
- trap "monitor_trap $SLEEP_PID $V > /dev/null 2>&1" SIGTERM
+ trap "monitor_trap $SLEEP_PID" SIGTERM SIGINT
wait $SLEEP_PID
[ $? != 0 ] && verbose "monitor($V) cancelled" && return 0
if ps | grep $PID
then
- echo "monitor($V): killing test process..."
+ echo "monitor($V): killing test process $PID"
touch killed_test
- /bin/kill -TERM $PID
+ /bin/kill -INT $PID
KILLCODE=$?
if [ $KILLCODE == 0 ]; then
echo "monitor($V): killed process_exec (TERM)"
@@ -687,9 +704,8 @@
monitor_trap() {
SLEEP_PID=$1
- V=$2
- verbose "monitor_trap(): kill sleep"
- /bin/kill -KILL $SLEEP_PID
+ echo "monitor_trap(SLEEP_PID)..."
+ /bin/kill -INT $SLEEP_PID
}
# Execute given command line in background with monitor
@@ -707,9 +723,11 @@
process_exec "$@" &
PROCESS_PID=$!
+ echo PROCESS_PID: $PROCESS_PID
monitor $PROCESS_PID $TIMEOUT $OUTPUT &
MONITOR_PID=$!
+ echo MONITOR_PID: $MONITOR_PID
wait $PROCESS_PID
EXITCODE=$?
@@ -718,8 +736,8 @@
# If the test was killed, monitor() may have work to do
rm killed_test > /dev/null 2>&1 && sleep 5
- verbose "Killing monitor..."
- /bin/kill -TERM $MONITOR_PID
+ echo "Killing monitor..."
+ /bin/kill -INT $MONITOR_PID
echo "TOOK: $(( STOP-START ))"
@@ -963,6 +981,7 @@
for (( i=0; $i<$ITERS_LOCAL; i=$i+1 )); do
swift_test_case $TESTNAME
(( $TESTCOUNT >= $NUMBER_OF_TESTS )) && return
+ (( $SHUTDOWN )) && return
done
end_row
done
@@ -981,6 +1000,7 @@
for ((i=0; $i<$ITERS_LOCAL; i=$i+1)); do
script_test_case $TESTNAME
(( $TESTCOUNT >= $NUMBER_OF_TESTS )) && return
+ (( $SHUTDOWN )) && return
done
end_row
done
@@ -1054,6 +1074,8 @@
EXITONFAILURE=false
fi
+trap "shutdown_trap" SIGINT SIGTERM
+
SKIP_COUNTER=0
GROUPCOUNT=1
@@ -1064,6 +1086,7 @@
test_group
(( GROUPCOUNT++ ))
(( $TESTCOUNT >= $NUMBER_OF_TESTS )) && break
+ (( $SHUTDOWN )) && break
done
if [ $GRID_TESTS == "0" ]; then
From noreply at svn.ci.uchicago.edu Wed Mar 23 09:58:55 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Wed, 23 Mar 2011 09:58:55 -0500 (CDT)
Subject: [Swift-commit] r4216 - trunk/bin
Message-ID: <20110323145855.44C9DFC41@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-23 09:58:55 -0500 (Wed, 23 Mar 2011)
New Revision: 4216
Modified:
trunk/bin/swift
Log:
New SWIFT_ASSERTS variable- only for developers
Modified: trunk/bin/swift
===================================================================
--- trunk/bin/swift 2011-03-23 14:58:09 UTC (rev 4215)
+++ trunk/bin/swift 2011-03-23 14:58:55 UTC (rev 4216)
@@ -1,6 +1,7 @@
#! /bin/sh
# Referenced environment variables (default values):
+# SWIFT_ASSERTS
# SWIFT_HEAP_MAX (256M)
# SWIFT_USAGE_STATS
@@ -29,7 +30,7 @@
}
updateOptions() {
-
+
if [ "X$1" != "X" ] ; then
OPTIONS="$OPTIONS -D$2=$1"
fi
@@ -64,8 +65,8 @@
USERID=`id | awk '{printf("%s\n", substr($1, 5, index($1, "(")-5 ) ) }'`
-if [ "X$GLOBUS_HOSTNAME" = "X" ] && [ "X$HOSTNAME" != "X" ]; then
- GLOBUS_HOSTNAME=$HOSTNAME
+if [ "X$GLOBUS_HOSTNAME" = "X" ] && [ "X$HOSTNAME" != "X" ]; then
+ GLOBUS_HOSTNAME=$HOSTNAME
fi
updateOptions "$USERID" "UID"
@@ -86,13 +87,17 @@
#large delays if /dev/random does not have enough entropy collected
updateOptions "file:///dev/urandom" "java.security.egd"
-if [ "X$SWIFT_HEAP_MAX" != "X" ]; then
+if [ "X$SWIFT_HEAP_MAX" != "X" ]; then
HEAPMAX=$SWIFT_HEAP_MAX
fi
if [ "X$HEAPMAX" != "X" ]; then
OPTIONS="-Xmx$HEAPMAX $OPTIONS"
fi
+if [ "X$SWIFT_ASSERTS" != "X" ]; then
+ OPTIONS="-ea $OPTIONS"
+fi
+
# Anonymous usage statistics
LISTENER="128.135.125.18"
PORT="9999"
@@ -133,7 +138,7 @@
SCRIPT=$var
SCRIPTID=`$MD5SUM $SCRIPT|cut -d ' ' -f1`
SCRIPTLENGTH=`wc -l $SCRIPT|cut -d ' ' -f1`
- fi
+ fi
done
HOSTNAME=`hostname`
USERID=`echo $USERID $HOSTNAME $MAC | $MD5SUM |cut -d ' ' -f1`
From noreply at svn.ci.uchicago.edu Wed Mar 23 12:45:30 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Wed, 23 Mar 2011 12:45:30 -0500 (CDT)
Subject: [Swift-commit] r4217 - text
Message-ID: <20110323174530.8F2D5FC41@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-23 12:45:30 -0500 (Wed, 23 Mar 2011)
New Revision: 4217
Removed:
text/CCA_2011/
Log:
Wrong repo
From noreply at svn.ci.uchicago.edu Wed Mar 23 12:56:06 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Wed, 23 Mar 2011 12:56:06 -0500 (CDT)
Subject: [Swift-commit] r4218 - usertools/mpich
Message-ID: <20110323175606.B4385FC41@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-23 12:56:06 -0500 (Wed, 23 Mar 2011)
New Revision: 4218
Modified:
usertools/mpich/README.txt
Log:
Update README
Modified: usertools/mpich/README.txt
===================================================================
--- usertools/mpich/README.txt 2011-03-23 17:45:30 UTC (rev 4217)
+++ usertools/mpich/README.txt 2011-03-23 17:56:06 UTC (rev 4218)
@@ -1,6 +1,8 @@
See: http://www.ci.uchicago.edu/wiki/bin/view/SWFT/CoastersMpi
+These patches are now all obsolete, everything is in MPICH trunk.
+
Contains the following patches:
mpich2-r7562.diff: works with MPICH2, revision 7562
From noreply at svn.ci.uchicago.edu Wed Mar 23 12:57:18 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Wed, 23 Mar 2011 12:57:18 -0500 (CDT)
Subject: [Swift-commit] r4219 - usertools/persistent-coasters
Message-ID: <20110323175718.18B7FFC41@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-23 12:57:17 -0500 (Wed, 23 Mar 2011)
New Revision: 4219
Modified:
usertools/persistent-coasters/settings.sh
Log:
Whitespace
Modified: usertools/persistent-coasters/settings.sh
===================================================================
--- usertools/persistent-coasters/settings.sh 2011-03-23 17:56:06 UTC (rev 4218)
+++ usertools/persistent-coasters/settings.sh 2011-03-23 17:57:17 UTC (rev 4219)
@@ -9,12 +9,12 @@
# Worker logging setting passed to worker.pl
export WORKER_LOGGING=INFO
-
+
# Worker host names for ssh
# WORKER_HOSTS="login1 login2"
export WORKER_HOSTS="$( print login{1,2}.mcs.anl.gov )"
-# Some settings known to gensites
+# Some settings known to gensites
NODES=64
QUEUE=prod-devel
MAXTIME=$(( 20 ))
From noreply at svn.ci.uchicago.edu Wed Mar 23 13:52:27 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Wed, 23 Mar 2011 13:52:27 -0500 (CDT)
Subject: [Swift-commit] r4220 - usertools/persistent-coasters
Message-ID: <20110323185227.A24439CC80@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-23 13:52:27 -0500 (Wed, 23 Mar 2011)
New Revision: 4220
Modified:
usertools/persistent-coasters/settings.sh
usertools/persistent-coasters/setup.sh
usertools/persistent-coasters/start-service.zsh
usertools/persistent-coasters/workers-cobalt.zsh
Log:
Extra notes from discussion
Modified: usertools/persistent-coasters/settings.sh
===================================================================
--- usertools/persistent-coasters/settings.sh 2011-03-23 17:57:17 UTC (rev 4219)
+++ usertools/persistent-coasters/settings.sh 2011-03-23 18:52:27 UTC (rev 4220)
@@ -1,13 +1,15 @@
# Keep all interesting settings in one place
+# User should modify this to fit environment
-# Where to place/launch worker.pl on the remote machine
+# Where to place/launch worker.pl on the remote machine for sites.xml
export WORKER_WORK=/home/${USER}/work
# How to launch workers- local or ssh
-export WORKER_MODE=ssh
+export WORKER_MODE=local
+# ssh
-# Worker logging setting passed to worker.pl
+# Worker logging setting passed to worker.pl for sites.xml
export WORKER_LOGGING=INFO
# Worker host names for ssh
Modified: usertools/persistent-coasters/setup.sh
===================================================================
--- usertools/persistent-coasters/setup.sh 2011-03-23 17:57:17 UTC (rev 4219)
+++ usertools/persistent-coasters/setup.sh 2011-03-23 18:52:27 UTC (rev 4220)
@@ -1,7 +1,6 @@
-# Obtain settings from settings.sh,
-# generate sites file
-# Should extend to generate tc as well
+# Generates sites file
+# TODO: extend to generate tc as well
source ${TOOLS}/coasters-setup.sh
Modified: usertools/persistent-coasters/start-service.zsh
===================================================================
--- usertools/persistent-coasters/start-service.zsh 2011-03-23 17:57:17 UTC (rev 4219)
+++ usertools/persistent-coasters/start-service.zsh 2011-03-23 18:52:27 UTC (rev 4220)
@@ -1,21 +1,23 @@
#!/bin/zsh
+# User should have already sourced settings.sh
+
# If you get "Could not get coasters service" the
# service may already be running on SERVICE_PORT
# Process management is incomplete here, check for
# processes with ps
+# Setup paths, get helper functions
PC=$( cd $( dirname $0 ) ; /bin/pwd )
TOOLS=${PC} # In the future this might be ${SWIFT_HOME}/tools
source ${TOOLS}/helpers.zsh
[[ $? != 0 ]] && print "Could not load helpers.zsh!" && exit 1
-
[[ ${SWIFT} == "" ]] && SWIFT=$( which swift )
SWIFT_BIN=$( dirname ${SWIFT} )
-COASTER_RESOURCES=${SWIFT_BIN}/../../../../provider-coaster/resources
-WORKER=${COASTER_RESOURCES}/worker.pl
+WORKER=${SWIFT_BIN}/worker.pl
+# This is an arbitrary port number
export SERVICE_PORT=10985
LOGDIR=logs
@@ -24,12 +26,16 @@
SWIFT_OUT=${LOGDIR}/swift.out
+# Get the function start-workers() from somewhere
if [[ ${WORKER_MODE} == "local" ]]
then
source workers-local.zsh
elif [[ ${WORKER_MODE} == "ssh" ]]
then
source workers-ssh.zsh
+elif [[ ${WORKER_MODE} == "cobalt" ]]
+then
+ source workers-cobalt.zsh
else
print "Unknown WORKER_MODE: ${WORKER_MODE}"
false
Modified: usertools/persistent-coasters/workers-cobalt.zsh
===================================================================
--- usertools/persistent-coasters/workers-cobalt.zsh 2011-03-23 17:57:17 UTC (rev 4219)
+++ usertools/persistent-coasters/workers-cobalt.zsh 2011-03-23 18:52:27 UTC (rev 4220)
@@ -1,6 +1,7 @@
# Source this to get start_workers() for cobalt
-# This is not complete
+# This is not complete and will not work because you cannot
+# pass argument on the cqsub command line
start_workers()
{
@@ -9,6 +10,9 @@
local -Z 5 R=${RANDOM}
ID="${TIMESTAMP}.${R}"
+ # TODO: 1) make worker.sh script that calls worker.pl with args
+ # 2) cqsub that worker.sh
+
cqsub -q ${QUEUE} \
-k zeptoos \
-t ${MAXTIME} \ # minutes
From noreply at svn.ci.uchicago.edu Wed Mar 23 13:59:58 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Wed, 23 Mar 2011 13:59:58 -0500 (CDT)
Subject: [Swift-commit] r4221 - usertools/persistent-coasters
Message-ID: <20110323185958.BE4639CC80@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-23 13:59:58 -0500 (Wed, 23 Mar 2011)
New Revision: 4221
Modified:
usertools/persistent-coasters/start-service.zsh
Log:
Bug fix
Modified: usertools/persistent-coasters/start-service.zsh
===================================================================
--- usertools/persistent-coasters/start-service.zsh 2011-03-23 18:52:27 UTC (rev 4220)
+++ usertools/persistent-coasters/start-service.zsh 2011-03-23 18:59:58 UTC (rev 4221)
@@ -113,6 +113,7 @@
exitcode "Could not get coasters service!"
export SERVICE_COASTERS
+WORK=${WORKER_WORK}
source setup.sh
exitcode "setup.sh failed!"
From noreply at svn.ci.uchicago.edu Wed Mar 23 14:00:14 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Wed, 23 Mar 2011 14:00:14 -0500 (CDT)
Subject: [Swift-commit] r4222 - usertools/persistent-coasters
Message-ID: <20110323190014.8F7E69CC80@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-23 14:00:14 -0500 (Wed, 23 Mar 2011)
New Revision: 4222
Modified:
usertools/persistent-coasters/README.txt
Log:
Note testing procedure
Modified: usertools/persistent-coasters/README.txt
===================================================================
--- usertools/persistent-coasters/README.txt 2011-03-23 18:59:58 UTC (rev 4221)
+++ usertools/persistent-coasters/README.txt 2011-03-23 19:00:14 UTC (rev 4222)
@@ -15,3 +15,14 @@
Start start-service.zsh
- start-service.zsh does the above steps
Start your application SwiftScripts with the generated sites.xml
+
+Testing:
+
+After the service has started, you will have fresh sites.xml and tc.data
+files. You can then run:
+
+swift -sites.file sites.xml -tc.file tc.data system-info.swift
+
+which will run system-info.sh on the worker and create system-info.out .
+
+Read system-info.out to see if it worked.
From noreply at svn.ci.uchicago.edu Wed Mar 23 14:02:12 2011
From: noreply at svn.ci.uchicago.edu (noreply at svn.ci.uchicago.edu)
Date: Wed, 23 Mar 2011 14:02:12 -0500 (CDT)
Subject: [Swift-commit] r4223 - usertools/persistent-coasters
Message-ID: <20110323190212.6C03C9CC80@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-23 14:02:12 -0500 (Wed, 23 Mar 2011)
New Revision: 4223
Modified:
usertools/persistent-coasters/start-service.zsh
Log:
Drop extraneous pwd
Modified: usertools/persistent-coasters/start-service.zsh
===================================================================
--- usertools/persistent-coasters/start-service.zsh 2011-03-23 19:00:14 UTC (rev 4222)
+++ usertools/persistent-coasters/start-service.zsh 2011-03-23 19:02:12 UTC (rev 4223)
@@ -130,7 +130,6 @@
sleep 1
-pwd
SERVICE_LOCAL=$( get_service_local ${SWIFT_OUT} )
exitcode "get_service_local failed!"
export SERVICE_LOCAL
From lgadelha at ci.uchicago.edu Sun Mar 27 16:54:23 2011
From: lgadelha at ci.uchicago.edu (lgadelha at ci.uchicago.edu)
Date: Sun, 27 Mar 2011 16:54:23 -0500 (CDT)
Subject: [Swift-commit] r4224 - in provenancedb: . apps/oops etc
Message-ID: <20110327215423.E42D99CC94@svn.ci.uchicago.edu>
Author: lgadelha
Date: 2011-03-27 16:54:23 -0500 (Sun, 27 Mar 2011)
New Revision: 4224
Removed:
provenancedb/etc/provenance.config.soju
Modified:
provenancedb/apps/oops/oops_extractor.sh
provenancedb/info-to-extrainfo
provenancedb/pql_functions.sql
provenancedb/prov-init.sql
provenancedb/prov-to-sql.sh
provenancedb/swift-prov-import-all-logs
Log:
Update schema to include runtime_info relation.
Minor updates.
Modified: provenancedb/apps/oops/oops_extractor.sh
===================================================================
--- provenancedb/apps/oops/oops_extractor.sh 2011-03-23 19:02:12 UTC (rev 4223)
+++ provenancedb/apps/oops/oops_extractor.sh 2011-03-27 21:54:23 UTC (rev 4224)
@@ -82,7 +82,7 @@
if [ -n "$FILENAME" ]; then
SEQLENGTH=$(awk '{if (NR==2) print $1}' $FILENAME | wc -c)
- echo "insert into annot_ds_txt values ('$DATASET_ID', 'fasta_sequence_length', $SEQLENGTH);" | $SQLCMD
+ echo "insert into annot_ds_num values ('$DATASET_ID', 'fasta_sequence_length', $SEQLENGTH);" | $SQLCMD
fi
# extracts scientific parameters given as output by the workflow in *.log.
# relevant lines:
Deleted: provenancedb/etc/provenance.config.soju
===================================================================
--- provenancedb/etc/provenance.config.soju 2011-03-23 19:02:12 UTC (rev 4223)
+++ provenancedb/etc/provenance.config.soju 2011-03-27 21:54:23 UTC (rev 4224)
@@ -1,10 +0,0 @@
-# file to source that sets variables for the various paths that are
-# presently hardcoded
-
-# this is the path to log repo on benc's laptop
-export LOGREPO=/Users/benc/work/everylog/
-export IDIR=/Users/benc/work/everylog/
-
-export SQLCMD="sqlite3 provdb "
-# export SQLCMD="psql -p 5435 -d provdb "
-
Modified: provenancedb/info-to-extrainfo
===================================================================
--- provenancedb/info-to-extrainfo 2011-03-23 19:02:12 UTC (rev 4223)
+++ provenancedb/info-to-extrainfo 2011-03-27 21:54:23 UTC (rev 4224)
@@ -3,17 +3,17 @@
# must have $EXECUTE2PREFIX appropriately by containing script
while read t d id rest; do
- echo processing wrapper file for job $id >&2
- record=$(find ${IDIR} -name ${id}-info)
-
- globalid=$EXECUTE2PREFIX$id
-
- if [ "X$record" != "X" ] && [ -f $record ] ; then
-
- grep '^EXTRAINFO=' $record | sed "s/^EXTRAINFO=\(.*\)$/$globalid \1/"
-
- else
- echo no wrapper log for $id >&2
- fi
-
+ echo processing wrapper file for job $id >&2
+ record=$(find ${IDIR} -name ${id}-info)
+
+ globalid=$EXECUTE2PREFIX$id
+
+ if [ "X$record" != "X" ] && [ -f $record ] ; then
+
+ grep '^EXTRAINFO=' $record | sed "s/^EXTRAINFO=\(.*\)$/$globalid \1/"
+
+ else
+ echo no wrapper log for $id >&2
+ fi
+
done < execute2.event
Modified: provenancedb/pql_functions.sql
===================================================================
--- provenancedb/pql_functions.sql 2011-03-23 19:02:12 UTC (rev 4223)
+++ provenancedb/pql_functions.sql 2011-03-27 21:54:23 UTC (rev 4224)
@@ -3,79 +3,134 @@
-- SQL Functions
--- list_runs_* lists workflows recorded in the database by id or log_filename
-DROP TYPE list_runs_type CASCADE;
+-- lists variations in a parameter's value across workflows, for parameters that are in-memory variables
-CREATE TYPE list_runs_type
-AS (id VARCHAR,
- log_filename VARCHAR,
- swift_version VARCHAR,
- start_time TIMESTAMP WITH TIME ZONE,
- duration NUMERIC,
- final_state VARCHAR);
-CREATE OR REPLACE FUNCTION list_runs()
-RETURNS SETOF list_runs_type AS $$
- SELECT id, log_filename, swift_version, TO_TIMESTAMP(start_time),
- duration, import_status AS final_state
- FROM workflow;
+CREATE OR REPLACE FUNCTION compare_run_by_parameter(param_name VARCHAR)
+RETURNS TABLE (
+ run_id VARCHAR,
+ param_name VARCHAR,
+ value VARCHAR
+)
+AS $$
+ SELECT process.workflow_id, ds_usage.param_name, variable.value
+ FROM variable, ds_usage, process
+ WHERE variable.id=ds_usage.dataset_id AND ds_usage.process_id=process.id AND
+ ds_usage.param_name=$1
+ GROUP BY process.workflow_id, ds_usage.param_name, variable.value;
$$ LANGUAGE SQL;
+CREATE OR REPLACE FUNCTION compare_run_by_parameter(param_name1 VARCHAR, param_name2 VARCHAR)
+RETURNS TABLE (
+ workflow_id VARCHAR,
+ param_name1 VARCHAR,
+ value1 VARCHAR,
+ param_name2 VARCHAR,
+ value2 VARCHAR
+)
+AS $$
+ SELECT *
+ FROM compare_run_by_parameter($1) as t
+ INNER JOIN
+ compare_run_by_parameter($2) as s
+ USING (workflow_id);
+$$ LANGUAGE SQL;
--- lists variations in a parameter's value across workflows
-DROP TYPE param_across_wf_type CASCADE;
-CREATE TYPE param_across_wf_type AS (workflow VARCHAR, parameter VARCHAR, value VARCHAR);
-
-CREATE OR REPLACE FUNCTION param_across_wf(param_name VARCHAR)
-RETURNS SETOF param_across_wf_type AS $$
- SELECT workflow.log_filename,ds_usage.param_name,variable.value
- FROM variable,ds_usage,process,workflow
- WHERE variable.id=ds_usage.dataset_id AND ds_usage.process_id=process.id AND
- process.workflow_id=workflow.id AND ds_usage.param_name=$1
- GROUP BY workflow.log_filename,ds_usage.param_name,variable.value;
+CREATE OR REPLACE FUNCTION compare_run_by_parameter(param_name1 VARCHAR, param_name2 VARCHAR, param_name3 VARCHAR)
+RETURNS TABLE (
+ workflow_id VARCHAR,
+ param_name1 VARCHAR,
+ value1 VARCHAR,
+ param_name2 VARCHAR,
+ value2 VARCHAR,
+ param_name3 VARCHAR,
+ value3 VARCHAR
+)
+AS $$
+ SELECT *
+ FROM compare_run_by_parameter($1, $2) as t
+ INNER JOIN
+ compare_run_by_parameter($3) as s
+ USING (workflow_id);
$$ LANGUAGE SQL;
-drop type annot_across_wf_type cascade;
-create type annot_across_wf_type as (workflow varchar, process varchar, name varchar, value numeric);
-create or replace function annot_across_wf(name varchar)
-returns setof annot_across_wf_type as $$
- select process.workflow_id,process.id,annot_ds_num.name,annot_ds_num.value
- from process,ds_usage,ds_containment,annot_ds_num
- where process.id=ds_usage.process_id and ds_usage.dataset_id=ds_containment.out_id and
- ds_containment.in_id=annot_ds_num.id and annot_ds_num.name=$1
- order by process.workflow_id,process.id;
-$$ language sql;
+CREATE OR REPLACE FUNCTION compare_run_by_annot_num(name VARCHAR)
+RETURNS TABLE (
+ workflow_id VARCHAR,
+ name VARCHAR,
+ value NUMERIC
+)
+AS $$
+ SELECT process.workflow_id, annot_ds_num.name, annot_ds_num.value
+ FROM annot_ds_num,ds_usage,ds_containment,process
+ WHERE annot_ds_num.id=ds_containment.in_id AND ds_containment.out_id=ds_usage.dataset_id AND
+ ds_usage.process_id=process.id AND annot_ds_num.name=$1
+ UNION
+ SELECT process.workflow_id, annot_ds_num.name, annot_ds_num.value
+ FROM process, ds_usage, annot_ds_num
+ WHERE process.id=ds_usage.process_id and ds_usage.dataset_id=annot_ds_num.id and
+ annot_ds_num.name=$1
+ UNION
+ SELECT process.workflow_id, annot_p_num.name, annot_p_num.value
+ FROM process, annot_p_num
+ WHERE process.id=annot_p_num.id and annot_p_num.name=$1
+ UNION
+ SELECT workflow.id as workflow_id, annot_wf_num.name, annot_wf_num.value
+ FROM workflow, annot_wf_num
+ WHERE workflow.id=annot_wf_num.id and annot_wf_num.name=$1
+$$ LANGUAGE SQL;
+CREATE OR REPLACE FUNCTION compare_run_by_annot_txt(name VARCHAR)
+RETURNS TABLE (
+ workflow_id VARCHAR,
+ name VARCHAR,
+ value VARCHAR)
+AS $$
+ SELECT process.workflow_id, annot_ds_txt.name, annot_ds_txt.value
+ FROM process, ds_usage, annot_ds_txt
+ WHERE process.id=ds_usage.process_id and ds_usage.dataset_id=annot_ds_txt.id and
+ annot_ds_txt.name=$1
+ UNION
+ SELECT process.workflow_id, annot_p_txt.name, annot_p_txt.value
+ FROM process, annot_p_txt
+ WHERE process.id=annot_p_txt.id and annot_p_txt.name=$1
+ UNION
+ SELECT workflow.id as workflow_id, annot_wf_txt.name, annot_wf_txt.value
+ FROM workflow, annot_wf_txt
+ WHERE workflow.id=annot_wf_txt.id and annot_wf_txt.name=$1
+$$ LANGUAGE SQL;
+CREATE OR REPLACE FUNCTION compare_run_by_annot_bool(name VARCHAR)
+RETURNS TABLE (
+ workflow_id VARCHAR,
+ name VARCHAR,
+ value BOOLEAN
+)
+AS $$
+ SELECT process.workflow_id, annot_ds_bool.name, annot_ds_bool.value
+ FROM process, ds_usage, annot_ds_bool
+ WHERE process.id=ds_usage.process_id and ds_usage.dataset_id=annot_ds_bool.id and
+ annot_ds_bool.name=$1
+ UNION
+ SELECT process.workflow_id, annot_p_bool.name, annot_p_bool.value
+ FROM process, annot_p_bool
+ WHERE process.id=annot_p_bool.id and annot_p_bool.name=$1
+ UNION
+ SELECT workflow.id as workflow_id, annot_wf_bool.name, annot_wf_bool.value
+ FROM workflow, annot_wf_bool
+ WHERE workflow.id=annot_wf_bool.id and annot_wf_bool.name=$1
+$$ LANGUAGE SQL;
--- lists variations of the values of a set of parameters
-
-DROP TYPE param_across_wf_class_type CASCADE;
-CREATE TYPE param_across_wf_class_type AS (workflow VARCHAR, parameter VARCHAR, value VARCHAR);
-
-CREATE OR REPLACE FUNCTION param_across_wf_class(param_name VARCHAR, wf_class VARACHAR)
-RETURNS SETOF param_across_wf_type AS $$
-
-$$ LANGUAGE plpgsql;
-
-- correlate a parameter with workflow runtime statistics
-DROP TYPE correlate_param_runtime_type CASCADE;
-CREATE TYPE correlate_param_runtime_type
-AS (workflow VARCHAR,
+CREATE OR REPLACE FUNCTION correlate_param_runtime(param_name VARCHAR)
+RETURNS TABLE (
+ workflow VARCHAR,
workflow_starttime TIMESTAMP WITH TIME ZONE,
workflow_duration NUMERIC,
parameter VARCHAR,
- parameter_value VARCHAR);
-
-CREATE OR REPLACE FUNCTION correlate_param_runtime(param_name VARCHAR)
-RETURNS SETOF correlate_param_runtime_type AS $$
- SELECT A.workflow,to_timestamp(B.start_time),B.duration,A.parameter,A.value
- FROM param_across_wf($1) AS A, workflow AS B
- WHERE A.workflow=B.log_filename;
-$$ LANGUAGE SQL;
-
-CREATE OR REPLACE FUNCTION correlate_param_runtime(param_name VARCHAR)
-RETURNS SETOF correlate_param_runtime_type AS $$
+ parameter_value VARCHAR
+)
+AS $$
SELECT workflow.id,to_timestamp(workflow.start_time),workflow.duration,ds_usage.param_name,variable.value
FROM variable,ds_usage,process,workflow
WHERE variable.id=ds_usage.dataset_id AND ds_usage.process_id=process.id AND
@@ -90,73 +145,13 @@
WHERE process.workflow_id=$1;
$$ LANGUAGE SQL;
--- lists distinct processes in a
-
--- OOPS-specific functions
-
-
-
-CREATE OR REPLACE FUNCTION list_oops_runs() RETURNS SETOF VARCHAR AS $$
- SELECT DISTINCT(value) FROM annot_wf_txt WHERE annot_wf_txt.name=('oops_run_id');
-$$ LANGUAGE SQL;
-
-DROP TYPE oops_param_across_wf_type CASCADE;
-CREATE TYPE oops_param_across_wf_type AS (oops_run_id VARCHAR, param_name VARCHAR, variable VARCHAR);
-CREATE OR REPLACE FUNCTION oops_param_across_wf(VARCHAR) RETURNS SETOF oops_param_across_wf_type AS $$
- SELECT annot_wf_txt.value,ds_usage.param_name,variable.value
- FROM variable,ds_usage,process,annot_wf_txt
- WHERE variable.id=ds_usage.dataset_id AND ds_usage.process_id=process.id AND process.workflow_id=annot_wf_txt.id AND
- ds_usage.param_name=$1 AND annot_wf_txt.name='oops_run_id'
- GROUP BY annot_wf_txt.name,annot_wf_txt.value,ds_usage.param_name,variable.value;
-$$ LANGUAGE SQL;
-
-CREATE OR REPLACE FUNCTION list_oops_runs() RETURNS SETOF VARCHAR AS $$
- SELECT DISTINCT(value) FROM annot_wf_txt WHERE annot_wf_txt.name=('oops_run_id');
-$$ LANGUAGE SQL;
-
-DROP TYPE oops_summary CASCADE;
-CREATE TYPE oops_summary AS (oops_run_id VARCHAR, start_time TIMESTAMP WITH TIME ZONE, duration_sec NUMERIC, swift_version VARCHAR);
-CREATE OR REPLACE FUNCTION oops_run_summary(varchar) RETURNS SETOF oops_summary AS $$
- SELECT annot_wf_txt.value as oops_run_id, to_timestamp(workflow.start_time) as start_time,
- workflow.duration as duration_sec,workflow.swift_version as swift_version
- FROM annot_wf_txt,workflow
- WHERE annot_wf_txt.id=workflow.id and annot_wf_txt.name='oops_run_id' and annot_wf_txt.value=$1;
-$$ LANGUAGE SQL;
-
-CREATE OR REPLACE FUNCTION oops_process_names(varchar) RETURNS SETOF varchar AS $$
- SELECT DISTINCT(process.name)
- FROM process, annot_wf_txt
- WHERE process.workflow_id=annot_wf_txt.id AND
- annot_wf_txt.name='oops_run_id' AND annot_wf_txt.value=$1;
-$$ LANGUAGE SQL;
-
-DROP TYPE oops_wf_param_summary CASCADE;
-CREATE TYPE oops_wf_param_summary AS (oops_run_id varchar, param_name varchar, value varchar);
-CREATE OR REPLACE FUNCTION oops_variable_summary() RETURNS SETOF oops_wf_param_summary AS $$
- SELECT annot_wf_txt.value,ds_usage.param_name,variable.value
- FROM variable,ds_usage,process,annot_wf_txt
- WHERE variable.id=ds_usage.dataset_id and ds_usage.process_id=process.id and process.workflow_id=annot_wf_txt.id;
-$$ LANGUAGE SQL;
-
-
-DROP TYPE oops_param_summary CASCADE;
-CREATE TYPE oops_param_summary AS (param_name varchar, value varchar);
-CREATE OR REPLACE FUNCTION oops_science_summary(varchar) RETURNS SETOF oops_param_summary AS $$
- SELECT ds_usage.param_name,variable.value
- FROM variable,ds_usage,process,annot_wf_txt
- WHERE variable.id=ds_usage.dataset_id AND ds_usage.process_id=process.id AND process.workflow_id=annot_wf_txt.id AND
- (ds_usage.param_name='proteinId' OR ds_usage.param_name='targetId' OR ds_usage.param_name='seqFile' OR
- ds_usage.param_name='prot' OR ds_usage.param_name='prepTarFile' OR ds_usage.param_name='nSim') AND
- annot_wf_txt.name='oops_run_id' AND annot_wf_txt.value=$1;
-$$ LANGUAGE SQL;
-
-- recursive query to find ancestor entities in a provenance graph
CREATE OR REPLACE FUNCTION ancestors(varchar) RETURNS SETOF varchar AS $$
WITH RECURSIVE anc(ancestor,descendant) AS
(
SELECT parent AS ancestor, child AS descendant FROM parent_of WHERE child=$1
- UNION
+ UNION
SELECT parent_of.parent AS ancestor, anc.descendant AS descendant
FROM anc,parent_of
WHERE anc.ancestor=parent_of.child
@@ -164,5 +159,77 @@
SELECT ancestor FROM anc
$$ LANGUAGE SQL;
+-- compare(,
-
+CREATE OR REPLACE FUNCTION compare_run(VARIADIC args VARCHAR[])
+RETURNS SETOF RECORD AS $$
+DECLARE
+ i INTEGER;
+ q VARCHAR;
+ selectq VARCHAR;
+ fromq VARCHAR;
+ property VARCHAR;
+ property_type VARCHAR;
+ function_name VARCHAR;
+BEGIN
+ selectq := 'SELECT *';
+ FOR i IN array_lower(args, 1)..array_upper(args, 1) LOOP
+ property_type := split_part(args[i], '=', 1);
+ property := split_part(args[i], '=', 2);
+ CASE property_type
+ WHEN 'param_name' THEN
+ function_name := 'compare_run_by_parameter';
+ WHEN 'annot_num' THEN
+ function_name := 'compare_run_by_annot_num';
+ WHEN 'annot_txt' THEN
+ function_name := 'compare_run_by_annot_txt';
+ WHEN 'annot_bool' THEN
+ function_name := 'compare_run_by_annot_bool';
+ END CASE;
+ IF i = 1 THEN
+ fromq := function_name || '(''' || property || ''') as t' || i;
+ ELSE
+ fromq := fromq || ' INNER JOIN ' || function_name || '(''' || property || ''') as t' || i || ' USING (workflow_id)';
+ END IF;
+ END LOOP;
+ q := selectq || ' FROM ' || fromq;
+ RETURN QUERY EXECUTE q;
+END;
+$$ LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION compare_run_print(VARIADIC args VARCHAR[])
+RETURNS VARCHAR AS $$
+DECLARE
+ i INTEGER;
+ q VARCHAR;
+ selectq VARCHAR;
+ fromq VARCHAR;
+ property VARCHAR;
+ property_type VARCHAR;
+ function_name VARCHAR;
+BEGIN
+ selectq := 'SELECT *';
+ FOR i IN array_lower(args, 1)..array_upper(args, 1) LOOP
+ property_type := split_part(args[i], '=', 1);
+ property := split_part(args[i], '=', 2);
+ CASE property_type
+ WHEN 'param_name' THEN
+ function_name := 'compare_run_by_parameter';
+ WHEN 'annot_num' THEN
+ function_name := 'compare_run_by_annot_num';
+ WHEN 'annot_txt' THEN
+ function_name := 'compare_run_by_annot_txt';
+ WHEN 'annot_bool' THEN
+ function_name := 'compare_run_by_annot_bool';
+ END CASE;
+ IF i = 1 THEN
+ fromq := function_name || '(''' || property || ''') as t' || i;
+ ELSE
+ fromq := fromq || ' INNER JOIN ' || function_name || '(''' || property || ''') as t' || i || ' USING (workflow_id)';
+ END IF;
+ END LOOP;
+ q := selectq || ' FROM ' || fromq;
+ RETURN q;
+END;
+$$ LANGUAGE plpgsql;
Modified: provenancedb/prov-init.sql
===================================================================
--- provenancedb/prov-init.sql 2011-03-23 19:02:12 UTC (rev 4223)
+++ provenancedb/prov-init.sql 2011-03-27 21:54:23 UTC (rev 4224)
@@ -1,35 +1,30 @@
-- this is the schema definition used for the main relational provenance
-- implementation (in both sqlite3 and postgres)
+drop table run cascade;
+drop table process cascade;
+drop table app_invocation cascade;
+drop table app_execution cascade;
+drop table runtime_info cascade;
drop table dataset cascade;
drop table file cascade;
-drop table variable cascade;
-drop table ds_containment cascade;
-drop table process cascade;
-drop table execute cascade;
-drop table execute2 cascade;
-drop table workflow cascade;
-drop table ds_usage cascade;
-drop table annot_ds_num cascade;
-drop table annot_ds_txt cascade;
-drop table annot_ds_bool cascade;
-drop table annot_p_num cascade;
-drop table annot_p_txt cascade;
-drop table annot_p_bool cascade;
-drop table annot_wf_num cascade;
-drop table annot_wf_txt cascade;
-drop table annot_wf_bool cascade;
--- drop table extrainfo cascade;
-drop table createarray cascade;
-drop table createarray_member cascade;
-drop table array_range cascade;
+drop table in_memory cascade;
+drop table dataset_containment cascade;
+drop table dataset_consumption cascade;
+drop table dataset_production cascade;
+drop table annot_dataset_numeric cascade;
+drop table annot_dataset_text cascade;
+drop table annot_process_numeric cascade;
+drop table annot_process_text cascade;
+drop table annot_run_numeric cascade;
+drop table annot_run_text cascade;
--- workflow stores some information about each workflow log that has
+-- run stores information about each script run log that has
-- been seen by the importer: the log filename, swift version and import
-- status.
--- Might be interesting to store xml translation of the swiftscript code
--- here for prospective provenance/versioning
-create table workflow
+-- Might be interesting to store xml translation of the Swift script
+-- here for prospective provenance and versioning.
+create table run
(id varchar(256) primary key,
log_filename varchar(2048),
swift_version varchar(16),
@@ -38,68 +33,24 @@
duration numeric
);
--- workflow_run stores the start time and duration for each workflow
--- that has been successfully imported.
---CREATE TABLE wf_run
--- (id varchar(256) PRIMARY KEY REFERENCES workflow (id) ON DELETE CASCADE,
--- start_time numeric,
--- duration numeric
--- );
-
--- dataset stores all dataset identifiers.
-create table dataset
- (id varchar(256) primary key
- );
-
--- file stores the filename mapped to each dataset.
-create table file
- ( id varchar(256) primary key references dataset (id) on delete cascade,
- filename varchar(2048)
- );
-
--- dataset_values stores the value for each dataset which is known to have
--- a value (which is all assigned primitive types). No attempt is made here
--- to expose that value as an SQL type other than a string, and so (for
--- example) SQL numerical operations should not be expected to work, even
--- though the user knows that a particular dataset stores a numeric value.
-create table variable
- ( id varchar(256) primary key references dataset (id) on delete cascade,
- value varchar(2048)
- );
-
--- dataset_containment stores the containment hierarchy between
--- container datasets (arrays and structs) and their contents.
--- out_id contains in_id
--- TODO this should perhaps be replaced with a more OPM-like model of
--- constructors and accessors, rather than, or in addition to,
--- a containment hierarchy. The relationship (such as array index or
--- structure member name) should also be stored in this table.
-create table ds_containment
- ( out_id varchar(256) references dataset (id) on delete cascade,
- in_id varchar(256) references dataset (id) on delete cascade,
- primary key (out_id,in_id)
- );
-
-- process gives information about each process (in the OPM sense)
-- it is augmented by information in other tables
-- specifies the type of process. for any type, it
-- must be the case that the specific type table
-- has an entry for this process.
--- Having this type here seems poor normalisation, though?
-- process types: internal, rootthread, execute, function, compound, scope, operator
--- maybe create a table for each type?
create table process
(id varchar(256) primary key,
type varchar(16),
name varchar(256), -- in the case of an execute this refers to the transformation name in tc.data
- workflow_id varchar(256) references workflow (id) on delete cascade -- normalize: workflow_id of sub-procedure determined
+ run_id varchar(256) references run (id) on delete cascade -- normalize: workflow_id of sub-procedure determined
-- by compound procedure
);
-- this gives information about each execute.
-- each execute is identified by a unique URI. other information from
-- swift logs is also stored here. an execute is an OPM process.
-create table execute
+create table app_invocation
(id varchar(256) primary key references process (id) on delete cascade,
procedure_name varchar(256), -- name of the app procedure that invokes the transformation
start_time numeric,
@@ -111,156 +62,159 @@
-- this gives information about each execute2, which is an attempt to
-- perform an execution. the execute2 id is tied to per-execution-attempt
-- information such as wrapper logs
-create table execute2
+create table app_execution
(id varchar(256) primary key,
- execute_id varchar(256) references execute (id) on delete cascade,
+ app_invocation_id varchar(256) references app_invocation (id) on delete cascade,
start_time numeric,
duration numeric,
final_state varchar(16),
site varchar(256)
);
+-- app execution runtime info extracted from the /proc filesystem (assumes the app executed
+-- in a Linux host)
+create table runtime_info
+ ( app_execution_id varchar(256) references app_execution (id) on delete cascade,
+ event_timestamp numeric,
+ cpu_usage numeric,
+ max_phys_mem numeric,
+ max_virtual_mem numeric,
+ io_read_bytes numeric,
+ io_write_bytes numeric,
+ primary key (app_execution_id, event_timestamp)
+ );
+
+-- ds stores all dataset identifiers.
+create table dataset
+ (id varchar(256) primary key
+ );
+
+-- file stores the filename mapped to each dataset.
+create table file
+ ( id varchar(256) primary key references dataset (id) on delete cascade,
+ filename varchar(2048)
+ );
+
+-- dataset_values stores the value for each dataset which is known to have
+-- a value (which is all assigned primitive types). No attempt is made here
+-- to expose that value as an SQL type other than a string, and so (for
+-- example) SQL numerical operations should not be expected to work, even
+-- though the user knows that a particular dataset stores a numeric value.
+create table in_memory
+ ( id varchar(256) primary key references dataset (id) on delete cascade,
+ value varchar(2048)
+ );
+
+-- dataset_containment stores the containment hierarchy between
+-- container datasets (arrays and structs) and their contents.
+-- out_id contains in_id
+-- TODO this should perhaps be replaced with a more OPM-like model of
+-- constructors and accessors, rather than, or in addition to,
+-- a containment hierarchy. The relationship (such as array index or
+-- structure member name) should also be stored in this table.
+create table dataset_containment
+ ( out_id varchar(256) references dataset (id) on delete cascade,
+ in_id varchar(256) references dataset (id) on delete cascade,
+ primary key (out_id,in_id)
+ );
+
+
-- dataset_usage records usage relationships between processes and datasets;
-- in SwiftScript terms, the input and output parameters for each
-- application procedure invocation; in OPM terms, the artificts which are
-- input to and output from each process that is a Swift execution
-create table ds_usage
+create table dataset_consumption
(process_id varchar(256) references process(id) on delete cascade,
- direction char(1), -- I or O for input or output
dataset_id varchar(256) references dataset(id) on delete cascade,
param_name varchar(256), -- the name of the parameter in this execute that
-- this dataset was bound to. sometimes this must
-- be contrived (for example, in positional varargs)
- primary key (process_id,direction,dataset_id,param_name)
+ primary key (process_id,dataset_id,param_name)
);
+create table dataset_production
+ (process_id varchar(256) references process(id) on delete cascade,
+ dataset_id varchar(256) references dataset(id) on delete cascade,
+ param_name varchar(256), -- the name of the parameter in this execute that
+ -- this dataset was bound to. sometimes this must
+ -- be contrived (for example, in positional varargs)
+ primary key (process_id,dataset_id,param_name)
+ );
+
+
-- annotations
-create table annot_ds_num
- ( id varchar(256) references dataset (id) on delete cascade,
+create table annot_dataset_numeric
+ ( dataset_id varchar(256) references dataset (id) on delete cascade,
name varchar(256),
value numeric,
- primary key (id, name)
+ primary key (dataset_id, name)
);
-create table annot_ds_txt
- ( id varchar(256) references dataset (id) on delete cascade,
+create table annot_dataset_text
+ ( dataset_id varchar(256) references dataset (id) on delete cascade,
name varchar(256),
value varchar(2048),
- primary key (id, name)
+ primary key (dataset_id, name)
);
-create table annot_ds_bool
- ( id varchar(256) references dataset (id) on delete cascade,
+create table annot_process_numeric
+ ( process_id varchar(256) references process (id) on delete cascade,
name varchar(256),
- value boolean,
- primary key (id, name)
- );
-
-create table annot_p_num
- ( id varchar(256) references process (id) on delete cascade,
- name varchar(256),
value numeric,
- primary key (id, name)
+ primary key (process_id, name)
);
-create table annot_p_txt
- ( id varchar(256) references process (id) on delete cascade,
+create table annot_process_text
+ ( process_id varchar(256) references process (id) on delete cascade,
name varchar(256),
value varchar(2048),
- primary key (id, name)
+ primary key (process_id, name)
);
-create table annot_p_bool
- ( id varchar(256) references process (id) on delete cascade,
+create table annot_run_numeric
+ ( run_id varchar(256) references run (id) on delete cascade,
name varchar(256),
- value boolean,
- primary key (id, name)
- );
-
-create table annot_wf_num
- ( id varchar(256) references workflow (id) on delete cascade,
- name varchar(256),
value numeric,
- primary key (id, name)
+ primary key (run_id, name)
);
-create table annot_wf_txt
- ( id varchar(256) references workflow (id) on delete cascade,
+create table annot_run_text
+ ( run_id varchar(256) references run (id) on delete cascade,
name varchar(256),
value varchar(2048),
- primary key (id, name)
+ primary key (run_id, name)
);
-create table annot_wf_bool
- ( id varchar(256) references workflow (id) on delete cascade,
- name varchar(2048),
- value boolean,
- primary key (id, name)
- );
-
-create view parent_of as
- select process_id as parent,dataset_id as child from ds_usage where direction='O'
+create view provenance_graph as
+ select process_id as parent,dataset_id as child from dataset_production
union
- select dataset_id as parent,process_id as child from ds_usage where direction='I'
+ select dataset_id as parent,process_id as child from dataset_consumption
union
- select out_id as parent,in_id as child from ds_containment;
+ select out_id as parent,in_id as child from dataset_containment;
--- extrainfo stores lines generated by the SWIFT_EXTRA_INFO feature
--- extrainfo will be processes into annotation tables
--- CREATE TABLE extrainfo
--- ( id varchar(256) PRIMARY KEY REFERENCES execute (id) ON DELETE CASCADE,
--- extrainfo varchar(2048)
--- );
--- The above dataset_* tables are the original containment representation
--- of datasets.
--- Now here are some tables to represent complex datasets differently, in
--- terms of accessors and constructors.
--- It is unclear which is the better representation.
+CREATE VIEW run_date AS
+ SELECT id, log_filename, swift_version, import_status,
+ to_timestamp(start_time) as start_time, duration
+ FROM run;
-create table createarray
- ( id varchar(256) primary key
- );
+CREATE VIEW annot_text AS
+ SELECT *
+ FROM annot_run_text
+ UNION
+ SELECT *
+ FROM annot_dataset_text
+ UNION
+ SELECT *
+ FROM annot_process_text;
-create table createarray_member
- ( array_id varchar(256) references createarray (id) on delete cascade,
- ix varchar(256),
- member_id varchar(256),
- primary key (array_id, ix)
- );
+CREATE VIEW annot_numeric AS
+ SELECT *
+ FROM annot_run_numeric
+ UNION
+ SELECT *
+ FROM annot_dataset_numeric
+ UNION
+ SELECT *
+ FROM annot_process_numeric;
--- TODO step
-create table array_range
- ( array_id varchar(256) references createarray (id) on delete cascade,
- from_id varchar(256),
- to_id varchar(256),
- step_id varchar(256), -- nullable, if step is unspecified
- primary key (array_id,from_id,to_id,step_id)
- );
-
--- this GRANT does not work for sqlite; you'll get a syntax error but
--- ignore it, as it is not needed in sqlite
-grant all on
- dataset,
- file,
- variable,
- ds_containment,
- process,
- execute,
- execute2,
- workflow,
- ds_usage,
- annot_ds_num,
- annot_ds_txt,
- annot_ds_bool,
- annot_p_num,
- annot_p_txt,
- annot_p_bool,
- annot_wf_num,
- annot_wf_txt,
- annot_wf_bool,
--- extrainfo,
- createarray,
- createarray_member,
- array_range
-to public, operators;
Modified: provenancedb/prov-to-sql.sh
===================================================================
--- provenancedb/prov-to-sql.sh 2011-03-23 19:02:12 UTC (rev 4223)
+++ provenancedb/prov-to-sql.sh 2011-03-27 21:54:23 UTC (rev 4224)
@@ -8,22 +8,23 @@
export WF="${RUNID}"
echo Generating SQL for $RUNID
+rm -f tmp-u.sql tmp-ds.sql tmp-p.sql tmp-e.sql tmp-e2.sql tmp-dsu.sql tmp-dsc.sql tmp-f.sql tmp-v.sql tmp-import.sql import.sql extrainfo.sql fields.txt
# this gives a distinction between the root process for a workflow and the
# workflow itself. perhaps better to model the workflow as a process
-echo "INSERT INTO process (id, type, name, workflow_id) VALUES ('${WFID}0', 'rootthread', '$RUNID', '$WF');" > tmp-p.sql
+echo "INSERT INTO process (id, type, name, run_id) VALUES ('${WFID}0', 'rootthread', '$RUNID', '$WF');" > tmp-p.sql
while read time duration thread localthread endstate tr_name scratch; do
- echo "INSERT INTO process (id, type, name, workflow_id) VALUES ('$thread', 'execute', '$tr_name', '$WF');" >> tmp-p.sql
- echo "INSERT INTO execute (id, start_time, duration, final_state, scratch) VALUES ('$thread', $time, $duration, '$endstate', '$scratch');" > tmp-e.sql
+ echo "INSERT INTO process (id, type, name, run_id) VALUES ('$thread', 'execute', '$tr_name', '$WF');" >> tmp-p.sql
+ echo "INSERT INTO app_invocation (id, start_time, duration, final_state, scratch) VALUES ('$thread', $time, $duration, '$endstate', '$scratch');" >> tmp-e.sql
done < execute.global.event
while read start_time duration globalid id endstate thread site scratch; do
# cut off the last component of the thread, so that we end up at the
# parent thread id which should correspond with the execute-level ID
inv_id="$WFID$(echo $thread | sed 's/-[^-]*$//')"
- echo "INSERT INTO execute2 (id, execute_id, start_time, duration, final_state, site) VALUES ('$globalid', '$inv_id', $start_time, $duration, '$endstate', '$site');" > tmp-e2.sql
+ echo "INSERT INTO app_execution (id, app_invocation_id, start_time, duration, final_state, site) VALUES ('$globalid', '$inv_id', $start_time, $duration, '$endstate', '$site');" >> tmp-e2.sql
done < execute2.global.event
while read col1 col2 col3 col4 col5 thread name lhs rhs result; do
@@ -41,13 +42,13 @@
result=$(echo $result | sed -e 's/tag:benc at ci.uchicago.edu,2008:swift://g')
fi
- echo "INSERT INTO dataset (id) VALUES ('$lhs');" > tmp-ds.sql
+ echo "INSERT INTO dataset (id) VALUES ('$lhs');" >> tmp-ds.sql
echo "INSERT INTO dataset (id) VALUES ('$rhs');" >> tmp-ds.sql
echo "INSERT INTO dataset (id) VALUES ('$result');" >> tmp-ds.sql
- echo "INSERT INTO process (id, type, name, workflow_id) VALUES ('$operatorid', 'operator', '$name', '$WF');" >> tmp-p.sql
- echo "INSERT INTO ds_usage (process_id, direction, dataset_id, param_name) VALUES ('$operatorid', 'I', '$lhs', 'lhs');" > tmp-dsu.sql
- echo "INSERT INTO ds_usage (process_id, direction, dataset_id, param_name) VALUES ('$operatorid', 'I', '$rhs', 'rhs');" >> tmp-dsu.sql
- echo "INSERT INTO ds_usage (process_id, direction, dataset_id, param_name) VALUES ('$operatorid', 'O', '$result', 'result');" >> tmp-dsu.sql
+ echo "INSERT INTO process (id, type, name, run_id) VALUES ('$operatorid', 'operator', '$name', '$WF');" >> tmp-p.sql
+ echo "INSERT INTO dataset_consumption (process_id, dataset_id, param_name) VALUES ('$operatorid', '$lhs', 'lhs');" >> tmp-dsu.sql
+ echo "INSERT INTO dataset_consumption (process_id, dataset_id, param_name) VALUES ('$operatorid', '$rhs', 'rhs');" >> tmp-dsu.sql
+ echo "INSERT INTO dataset_production (process_id, dataset_id, param_name) VALUES ('$operatorid', '$result', 'result');" >> tmp-dsu.sql
done < operators.txt
while read id name output; do
@@ -55,8 +56,8 @@
output=$(echo $output | sed -e 's/tag:benc at ci.uchicago.edu,2008:swift://g')
fi
echo "INSERT INTO dataset (id) VALUES ('$output');" >> tmp-ds.sql
- echo "INSERT INTO process (id, type, name, workflow_id) VALUES ('$id', 'function', '$name', '$WF');" >> tmp-p.sql
- echo "INSERT INTO ds_usage (process_id, direction, dataset_id, param_name) VALUES ('$id', 'O', '$output', 'result');" >> tmp-dsu.sql
+ echo "INSERT INTO process (id, type, name, run_id) VALUES ('$id', 'function', '$name', '$WF');" >> tmp-p.sql
+ echo "INSERT INTO dataset_production (process_id, dataset_id, param_name) VALUES ('$id', '$output', 'result');" >> tmp-dsu.sql
done < functions.txt
while read id value; do
@@ -67,12 +68,12 @@
fi
echo "INSERT INTO dataset (id) VALUES ('$value');" >> tmp-ds.sql
- echo "INSERT INTO ds_usage (process_id, direction, dataset_id, param_name) VALUES ('$id', 'I', '$value', 'undefined');" >> tmp-dsu.sql
+ echo "INSERT INTO dataset_consumption (process_id, dataset_id, param_name) VALUES ('$id', '$value', 'undefined');" >> tmp-dsu.sql
done < function-inputs.txt
while read thread appname; do
- echo "UPDATE execute SET procedure_name='$appname' WHERE id='$thread';" >> tmp-e.sql
+ echo "UPDATE app_invocation SET procedure_name='$appname' WHERE id='$thread';" >> tmp-e.sql
done < invocation-procedure-names.txt
while read outer inner; do
@@ -84,7 +85,7 @@
echo "INSERT INTO dataset (id) VALUES ('$outer');" >> tmp-ds.sql
echo "INSERT INTO dataset (id) VALUES ('$inner');" >> tmp-ds.sql
- echo "INSERT INTO ds_containment (out_id, in_id) VALUES ('$outer', '$inner');" > tmp-dsc.sql
+ echo "INSERT INTO dataset_containment (out_id, in_id) VALUES ('$outer', '$inner');" >> tmp-dsc.sql
done < tie-containers.txt
while read dataset filename; do
@@ -94,7 +95,7 @@
fi
echo "INSERT INTO dataset (id) VALUES ('$dataset');" >> tmp-ds.sql
- echo "INSERT INTO file (id, filename) VALUES ('$dataset', '$filename');" > tmp-f.sql
+ echo "INSERT INTO file (id, filename) VALUES ('$dataset', '$filename');" >> tmp-f.sql
done < dataset-filenames.txt
while read dataset value; do
@@ -104,77 +105,52 @@
fi
echo "INSERT INTO dataset (id) VALUES ('$dataset');" >> tmp-ds.sql
- echo "INSERT INTO variable (id, value) VALUES ('$dataset', '$value');" > tmp-v.sql
+ echo "INSERT INTO in_memory (id, value) VALUES ('$dataset', '$value');" >> tmp-v.sql
done < dataset-values.txt
while read start duration wfid rest; do
- echo "UPDATE workflow SET start_time=$start WHERE id='$WF';" > tmp-u.sql
- echo "UPDATE workflow SET duration=$duration WHERE id='$WF';" >> tmp-u.sql
+ echo "UPDATE run SET start_time=$start WHERE id='$WF';" >> tmp-u.sql
+ echo "UPDATE run SET duration=$duration WHERE id='$WF';" >> tmp-u.sql
done < workflow.event
-
-while read id extrainfo; do
- echo $extrainfo | awk -F ";" '{ for (i = 1; i <= NF; i++)
- print $i
- }' | awk -F "=" '{ print $1 " " $2 }' | awk -F ":" '{ print $1 " " $2 }' > fields.txt
- while read name type value; do
- if [ "$type" = "num" ]; then
- echo "INSERT INTO annot_p_num (id, name, value) VALUES ('$id', '$name', $value);" > tmp-import.sql
- fi
- if [ "$type" = "txt" ]; then
- echo "INSERT INTO annot_p_txt (id, name, value) VALUES ('$id', '$name', '$value');" >> tmp-import.sql
- fi
- if [ "$type" = "bool" ]; then
- echo "INSERT INTO annot_p_bool (id, name, value) VALUES ('$id', '$name', $value);" >> tmp-import.sql
- fi
- done < fields.txt
-done < extrainfo.txt
-
# TODO this could merge with other naming tables
while read start duration thread final_state procname ; do
if [ "$duration" != "last-event-line" ]; then
compoundid=$WFID$thread
- echo "INSERT INTO process (id, type, name, workflow_id) VALUES ('$compoundid', 'compound', '$procname', '$WF');" >> tmp-p.sql
+ echo "INSERT INTO process (id, type, name, run_id) VALUES ('$compoundid', 'compound', '$procname', '$WF');" >> tmp-p.sql
fi
done < compound.event
while read start duration thread final_state procname ; do
if [ "$duration" != "last-event-line" ]; then
fqid=$WFID$thread
- echo "INSERT INTO process (id, type, name, workflow_id) VALUES ('$fqid', 'internal', '$procname', '$WF');" >> tmp-p.sql
+ echo "INSERT INTO process (id, type, name, run_id) VALUES ('$fqid', 'internal', '$procname', '$WF');" >> tmp-p.sql
fi
done < internalproc.event
while read t ; do
thread="${WFID}$t"
- echo "INSERT INTO process (id, type, name, workflow_id) VALUES ('$thread', 'scope', 'scope', '$WF');" >> tmp-p.sql
+ echo "INSERT INTO process (id, type, name, run_id) VALUES ('$thread', 'scope', 'scope', '$WF');" >> tmp-p.sql
done < scopes.txt
while read thread direction dataset variable rest; do
- if [ "$direction" == "input" ] ; then
- dir=I
- else
- dir=O
- fi
if [ $version -le 3726 ]; then
dataset=$(echo $dataset | sed -e 's/tag:benc at ci.uchicago.edu,2008:swift://g')
fi
+ if [ "$direction" == "input" ] ; then
+ table=dataset_consumption
+ else
+ table=dataset_production
+ fi
+
echo "INSERT INTO dataset (id) VALUES ('$dataset');" >> tmp-ds.sql
- echo "INSERT INTO ds_usage (process_id, direction, dataset_id, param_name) VALUES ('$thread', '$dir', '$dataset', '$variable');" >> tmp-dsu.sql
+ echo "INSERT INTO $table (process_id, dataset_id, param_name) VALUES ('$thread', '$dataset', '$variable');" >> tmp-dsu.sql
done < tie-data-invocs.txt
-while read id ; do
- echo "INSERT INTO createarray (array_id) VALUES ('$id');" >> tmp-import.sql
-done < createarray.txt
-
-while read arrayid index memberid ; do
- echo "INSERT INTO createarray_member (array_id, ix, member_id) VALUES ('$arrayid', '$index', '$memberid');" >> tmp-import.sql
-done < createarray-members.txt
-
-cat tmp-ds.sql | sort | uniq > import.sql
+cat tmp-ds.sql | sort | uniq >> import.sql
cat tmp-f.sql | sort | uniq >> import.sql
cat tmp-v.sql | sort | uniq >> import.sql
cat tmp-p.sql | sort | uniq >> import.sql
@@ -187,7 +163,23 @@
echo Sending SQL to DB
$SQLCMD < import.sql
-rm -f tmp-u.sql tmp-ds.sql tmp-p.sql tmp-e.sql tmp-e2.sql tmp-dsu.sql tmp-dsc.sql tmp-f.sql tmp-v.sql tmp-import.sql import.sql fields.txt
+while read execute2_id extrainfo; do
+ echo $extrainfo | awk -F ";" '{ for (i = 1; i <= NF; i++)
+ print $i
+ }' | awk -F "=" '{ print $1 " " $2 }' | awk -F ":" '{ print $1 " " $2 }' > fields.txt
+ id=$($SQLCMD --tuples-only -c "select app_invocation_id from app_execution where id='$execute2_id';" | awk '{print $1}')
+ while read name type value; do
+ if [ "$type" = "num" ]; then
+ echo "INSERT INTO annot_process_numeric (id, name, value) VALUES ('$id', '$name', $value);" >> extrainfo.sql
+ fi
+ if [ "$type" = "txt" ]; then
+ echo "INSERT INTO annot_process_text (id, name, value) VALUES ('$id', '$name', '$value');" >> extrainfo.sql
+ fi
+ done < fields.txt
+done < extrainfo.txt
+
+$SQLCMD < extrainfo.sql
+
echo Finished sending SQL to DB
Modified: provenancedb/swift-prov-import-all-logs
===================================================================
--- provenancedb/swift-prov-import-all-logs 2011-03-23 19:02:12 UTC (rev 4223)
+++ provenancedb/swift-prov-import-all-logs 2011-03-27 21:54:23 UTC (rev 4224)
@@ -38,7 +38,7 @@
echo -n "Log: $filename ... "
# TODO: does not work in sqlite
- EXISTING=$($SQLCMD --tuples-only -c "select count(*) from workflow where log_filename='$filename';")
+ EXISTING=$($SQLCMD --tuples-only -c "select count(*) from run where log_filename='$filename';")
if [ "$EXISTING" -eq "0" ]; then
PROV_ENABLED=$(grep provenanceid $filename | wc -l)
@@ -55,7 +55,7 @@
export WF="${RUNID}"
- echo "INSERT INTO workflow (id, log_filename, swift_version, import_status) VALUES ('$WF','$filename','$version','$wfstatus');" | $SQLCMD
+ echo "INSERT INTO run (id, log_filename, swift_version, import_status) VALUES ('$WF','$filename','$version','$wfstatus');" | $SQLCMD
echo version $version in log file $filename
echo ============= will import =============
From lgadelha at ci.uchicago.edu Sun Mar 27 18:55:29 2011
From: lgadelha at ci.uchicago.edu (lgadelha at ci.uchicago.edu)
Date: Sun, 27 Mar 2011 18:55:29 -0500 (CDT)
Subject: [Swift-commit] r4225 - provenancedb/apps/oops
Message-ID: <20110327235529.C82719CC94@svn.ci.uchicago.edu>
Author: lgadelha
Date: 2011-03-27 18:55:29 -0500 (Sun, 27 Mar 2011)
New Revision: 4225
Modified:
provenancedb/apps/oops/oops_extractor.sh
Log:
OOPS annotation extractor update to match new schema.
Modified: provenancedb/apps/oops/oops_extractor.sh
===================================================================
--- provenancedb/apps/oops/oops_extractor.sh 2011-03-27 21:54:23 UTC (rev 4224)
+++ provenancedb/apps/oops/oops_extractor.sh 2011-03-27 23:55:29 UTC (rev 4225)
@@ -37,12 +37,12 @@
OOPS_RUN_ID=$(echo $i | awk -F . '{print $3}')
cd $PROTESTS_HOME/$k/$i
LOG_FILENAME=$(ls *-*-*-*.log)
- WORKFLOW_ID=$(echo "select id from workflow where log_filename like '%$LOG_FILENAME%'" | $SQLCMD -t | awk '{print $1}')
+ WORKFLOW_ID=$(echo "select id from run where log_filename like '%$LOG_FILENAME%'" | $SQLCMD -t | awk '{print $1}')
cd $IMPORT_HOME/swift-logs
- echo "insert into annot_wf_txt (id, name, value) values ('$WORKFLOW_ID','oops_run_id','$OOPS_RUN_ID');" | $SQLCMD
+ echo "insert into annot_run_text (id, name, value) values ('$WORKFLOW_ID','oops_run_id','$OOPS_RUN_ID');" | $SQLCMD
#extracts scientific parameters given as input to the workflow in file *.params.
- echo "select file.id,file.filename from process, ds_usage, ds_containment, file where process.id=ds_usage.process_id and ds_usage.dataset_id=out_id and file.id=ds_containment.in_id and filename like '%.params' and process.name='PrepLoop' and process.workflow_id='$WORKFLOW_ID' and ds_usage.direction='O';" > query.sql;
+ echo "select file.id,file.filename from process, dataset_production, dataset_containment, file where process.id=dataset_production.process_id and dataset_usage.dataset_id=out_id and file.id=dataset_containment.in_id and filename like '%.params' and process.name='PrepLoop' and process.run_id='$WORKFLOW_ID';" > query.sql;
$SQLCMD -t -A -F " " -f query.sql -o result.txt
@@ -55,23 +55,23 @@
NAME=$(echo $line | awk 'BEGIN { FS = "=" }; {print $1}')
RIGHT=$(echo $line | awk 'BEGIN { FS = "=" }; {print $2}')
if [ "$NAME" = "SAMPLE RANGE" ]; then
- echo "insert into annot_ds_txt values ('$DATASET_ID', 'sample_range', '$RIGHT');" | $SQLCMD
+ echo "insert into annot_dataset_text values ('$DATASET_ID', 'sample_range', '$RIGHT');" | $SQLCMD
fi
if [ "$NAME" = "RESTRAIN DISTANCE" ]; then
VALUE1=$(echo $RIGHT | awk 'BEGIN { FS = "," }; {print $1}')
VALUE2=$(echo $line | awk 'BEGIN { FS = "=" }; {print $2}' | awk 'BEGIN { FS = "," }; {print $2}')
- echo "insert into annot_ds_num values ('$DATASET_ID', 'restrain_distance_1', $VALUE1);" | $SQLCMD
- echo "insert into annot_ds_num values ('$DATASET_ID', 'restrain_distance_2', $VALUE2);" | $SQLCMD
+ echo "insert into annot_dataset_numeric values ('$DATASET_ID', 'restrain_distance_1', $VALUE1);" | $SQLCMD
+ echo "insert into annot_dataset_numeric values ('$DATASET_ID', 'restrain_distance_2', $VALUE2);" | $SQLCMD
fi
if [ "$NAME" = "MAXIMUM NUMBER OF STEPS" ]; then
- echo "insert into annot_ds_num values ('$DATASET_ID', 'maximum_number_of_steps', $RIGHT);" | $SQLCMD
+ echo "insert into annot_dataset_numeric values ('$DATASET_ID', 'maximum_number_of_steps', $RIGHT);" | $SQLCMD
fi
done < $FILENAME
#extracts length of the fasta sequence given as input to the workflow in file *.fasta.
cd $IMPORT_HOME/swift-logs
- echo "select file.id,file.filename from process, ds_usage, ds_containment, file where process.id=ds_usage.process_id and ds_usage.dataset_id=out_id and file.id=ds_containment.in_id and filename like '%.fasta' and process.name='PrepLoop' and process.workflow_id='$WORKFLOW_ID' and ds_usage.direction='O';" > query.sql;
+ echo "select file.id,file.filename from process, dataset_production, dataset_containment, file where process.id=dataset_production.process_id and dataset_production.dataset_id=out_id and file.id=dataset_containment.in_id and filename like '%.fasta' and process.name='PrepLoop' and process.run_id='$WORKFLOW_ID';" > query.sql;
$SQLCMD -t -A -F " " -f query.sql -o result.txt
@@ -82,8 +82,9 @@
if [ -n "$FILENAME" ]; then
SEQLENGTH=$(awk '{if (NR==2) print $1}' $FILENAME | wc -c)
- echo "insert into annot_ds_num values ('$DATASET_ID', 'fasta_sequence_length', $SEQLENGTH);" | $SQLCMD
+ echo "insert into annot_dataset_numeric values ('$DATASET_ID', 'fasta_sequence_length', $SEQLENGTH);" | $SQLCMD
fi
+
# extracts scientific parameters given as output by the workflow in *.log.
# relevant lines:
# zone2 (Initial Energy: -21352.116911)
@@ -98,7 +99,7 @@
cd $IMPORT_HOME/swift-logs
- echo "select file.id,file.filename from process, ds_usage, ds_containment, file where process.id=ds_usage.process_id and ds_usage.dataset_id=out_id and file.id=ds_containment.in_id and filename like '%.log' and process.name='LoopModel' and process.workflow_id='$WORKFLOW_ID' and ds_usage.direction='O';" > query.sql;
+ echo "select file.id,file.filename from process, dataset_production, dataset_containment, file where process.id=dataset_production.process_id and dataset_production.dataset_id=out_id and file.id=dataset_containment.in_id and filename like '%.log' and process.name='LoopModel' and process.run_id='$WORKFLOW_ID';" > query.sql;
$SQLCMD -t -A -F " " -f query.sql -o result.txt
@@ -109,28 +110,28 @@
while read token1 token2 token3 token4; do
if [ "$token2" = "(Initial Energy:" ]; then
initialenergy=$(echo $token3 | awk 'BEGIN { FS = "\)" }; {print $1}')
- echo "insert into annot_ds_num (id, name, value) values ('$dataset', 'initial_energy', $initialenergy);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'initial_energy', $initialenergy);" | $SQLCMD
fi
if [ "$token1" = "Total" ] && [ "$token2" = "Function" ] && [ "$token3" = "Evaluations:" ]; then
- echo "insert into annot_ds_num (id, name, value) values ('$dataset', 'total_function_evaluations', $token4);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'total_function_evaluations', $token4);" | $SQLCMD
fi
if [ "$token1" = "Increasing" ] && [ "$token2" = "transitions:" ]; then
- echo "insert into annot_ds_num (id, name, value) values ('$dataset', 'accepted_increasing_transitions', $token3);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'accepted_increasing_transitions', $token3);" | $SQLCMD
fi
if [ "$token1" = "Decreasing" ] && [ "$token2" = "transitions:" ]; then
- echo "insert into annot_ds_num (id, name, value) values ('$dataset', 'accepted_decreasing_transitions', $token3);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'accepted_decreasing_transitions', $token3);" | $SQLCMD
fi
if [ "$token1" = "Rejected" ] && [ "$token2" = "transitions:" ]; then
- echo "insert into annot_ds_num (id, name, value) values ('$dataset', 'rejected_transitions', $token3);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'rejected_transitions', $token3);" | $SQLCMD
fi
if [ "$token1" = "Final" ] && [ "$token2" = "Energy:" ]; then
- echo "insert into annot_ds_num (id, name, value) values ('$dataset', 'final_energy', $token3);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'final_energy', $token3);" | $SQLCMD
fi
if [ "$token1" = "Final" ] && [ "$token2" = "Temp:" ]; then
- echo "insert into annot_ds_num (id, name, value) values ('$dataset', 'final_temp', $token3);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'final_temp', $token3);" | $SQLCMD
fi
if [ "$token1" = "Total" ] && [ "$token2" = "Running" ] && [ "$token3" = "Time:" ]; then
- echo "insert into annot_ds_num (id, name, value) values ('$dataset', 'total_running_time', $token4);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'total_running_time', $token4);" | $SQLCMD
fi
done < $FILENAME
done < $IMPORT_HOME/swift-logs/result.txt
From tga at ci.uchicago.edu Mon Mar 28 17:28:46 2011
From: tga at ci.uchicago.edu (tga at ci.uchicago.edu)
Date: Mon, 28 Mar 2011 17:28:46 -0500 (CDT)
Subject: [Swift-commit] r4226 - in SwiftApps/SwiftR: . perftools
Message-ID: <20110328222846.5605B9D65B@svn.ci.uchicago.edu>
Author: tga
Date: 2011-03-28 17:28:46 -0500 (Mon, 28 Mar 2011)
New Revision: 4226
Added:
SwiftApps/SwiftR/perftools/
SwiftApps/SwiftR/perftools/parselog.py
Log:
Checking in swift log analysis code for python: building tools for scraping events from logs and visualising.
Added: SwiftApps/SwiftR/perftools/parselog.py
===================================================================
--- SwiftApps/SwiftR/perftools/parselog.py (rev 0)
+++ SwiftApps/SwiftR/perftools/parselog.py 2011-03-28 22:28:46 UTC (rev 4226)
@@ -0,0 +1,135 @@
+import re
+import itertools as its
+import datetime
+from operator import itemgetter
+
+
+def runlength_enc(xs):
+ '''Return a run-length encoded version of the stream, xs.
+
+ The resulting stream consists of (count, x) pairs.
+
+ >>> ys = runlength_enc('AAABBCCC')
+ >>> next(ys)
+ (3, 'A')
+ >>> list(ys)
+ [(2, 'B'), (3, 'C')]
+ '''
+ return ((ilen(gp), x) for x, gp in its.groupby(xs))
+
+def ilen(it):
+ '''Return the length of an iterable.
+
+ >>> ilen(range(7))
+ 7
+ '''
+ return sum(1 for _ in it)
+
+
+fname = "rserver2.log"
+
+
+pattern = (r"^([-\d]+)" + r"\s+"
+ + r"([:\d]+),([\d]+)\+([\d]+)" + r"\s+"
+ + r"([\S]+)" + r"\s+" + r"([\S]+)"
+ + r"(.+)$" )
+
+
+compiled = re.compile(pattern)
+
+time_rex = r"(\d\d):(\d\d):(\d\d)"
+def parse_time(timestr):
+ m = re.match(time_rex, timestr)
+ return int(m.group(1)), int(m.group(2)), int(m.group(3))
+
+date_rex = r"(\d\d\d\d)-(\d\d)-(\d\d)"
+def parse_date(datestr):
+ m = re.match(date_rex, datestr)
+ if m is None:
+ print datestr
+ return int(m.group(1)), int(m.group(2)), int(m.group(3))
+
+def log_iter(filter_type=None, message_rex=None):
+ for line in open(fname).readlines():
+ matched = re.match(compiled, line)
+ if matched is None:
+ #print "Error on line" + line
+ pass
+ else:
+ (date, time, milliseconds, something, priority,
+ type, message) = matched.groups()
+ if filter_type is not None and filter_type != type:
+ continue
+ if message_rex is not None and re.match(message_rex, message) is None:
+ #print message
+ continue
+ yield (date, time, milliseconds, something, priority,
+ type, message)
+
+
+def time_converted(recs, basetime=None):
+ for (date, time, milliseconds, something, priority,
+ type, message) in recs:
+
+ year, month, day = parse_date(date)
+ h, m, s = parse_time(time)
+ t = datetime.datetime(year, month, day, h, m, s, int(milliseconds) * 1000)
+ if basetime is not None:
+ if t < basetime:
+ continue
+ td = t - basetime
+ yield (td, priority, type, message)
+ else:
+ yield(t, priority, type, message)
+
+
+def get_cmd_times(filter_type, message_rex=None):
+ return list(runlength_enc((date, time, type)
+ for date, time, milliseconds, something, priority,
+ type, message in log_iter(filter_type, message_rex)))
+
+
+
+def handle(count, date, time, type, message=None):
+ if message is not None:
+ print message,
+ print count, date, time, type
+
+
+#for count, tup in get_cmd_times("PutFileCommand"):
+# handle(count, *tup)
+
+#for count, tup in get_cmd_times("GridExec"):
+# handle(count, *tup)
+
+#for count, tup in get_cmd_times("Cpu", re.compile("^.*jobTerminated.*$")):
+# handle(count, tup[0], tup[1], tup[2], message="jobTerminated")
+
+
+exec_events = log_iter("vdl:execute")
+
+
+basetime = datetime.datetime(2011, 3, 18, 13, 22, 52, 231*1000)
+exec_events = list(time_converted(exec_events, basetime))
+
+starts = [(t, priority, type, message, message.split()[1])
+ for t, priority, type, message in exec_events
+ if message.find("START") >= 0]
+ends = [(t, priority, type, message, message.split()[1])
+ for t, priority, type, message in exec_events
+ if message.find("END_SUCCESS") >= 0]
+
+starts.sort(key=itemgetter(4))
+ends.sort(key=itemgetter(4))
+for s, e in zip(starts[:10], ends[:10]):
+ print s, e
+
+def to_s(td):
+ return float(td.seconds) + float(td.microseconds) / 1000000.0
+
+paired = [(i, s[0], e[0]) for i,s,e in zip(range(len(starts)), starts, ends)]
+import pylab
+for i, s, e in paired:
+ pylab.plot((to_s(s), to_s(e)), (i, i), 'r')
+
+pylab.show()
From tga at ci.uchicago.edu Tue Mar 29 16:47:30 2011
From: tga at ci.uchicago.edu (tga at ci.uchicago.edu)
Date: Tue, 29 Mar 2011 16:47:30 -0500 (CDT)
Subject: [Swift-commit] r4227 - SwiftApps/SwiftR/Swift/exec
Message-ID: <20110329214730.9E7269CC94@svn.ci.uchicago.edu>
Author: tga
Date: 2011-03-29 16:47:30 -0500 (Tue, 29 Mar 2011)
New Revision: 4227
Modified:
SwiftApps/SwiftR/Swift/exec/EvalRBatchPersistent.sh
Log:
Added in lines to worker shell script to load bash_profile: on some setups there are important environment variables set e.g. for R library location.
Modified: SwiftApps/SwiftR/Swift/exec/EvalRBatchPersistent.sh
===================================================================
--- SwiftApps/SwiftR/Swift/exec/EvalRBatchPersistent.sh 2011-03-28 22:28:46 UTC (rev 4226)
+++ SwiftApps/SwiftR/Swift/exec/EvalRBatchPersistent.sh 2011-03-29 21:47:30 UTC (rev 4227)
@@ -15,6 +15,16 @@
exit 1
fi
+# Load bash profile: may need this to resolve R libraries
+if [ -f ~/.swiftbash_profile ]; then
+ source ~/.swiftbash_profile
+else
+ if [ -f ~/.bash_profile ]; then
+ source ~/.bash_profile
+ fi
+fi
+
+
# tmp=/tmp # FIXME: allow this to change eg for sites with main tmp dir elsewhere
# tmp=/scratch/local # FIXME: allow this to change eg for sites with main tmp dir elsewhere
tmp=${SWIFTR_TMP:-/tmp}
From jonmon at ci.uchicago.edu Thu Mar 31 22:12:09 2011
From: jonmon at ci.uchicago.edu (jonmon at ci.uchicago.edu)
Date: Thu, 31 Mar 2011 22:12:09 -0500 (CDT)
Subject: [Swift-commit] r4236 - trunk/bin
Message-ID: <20110401031209.7FA139D65B@svn.ci.uchicago.edu>
Author: jonmon
Date: 2011-03-31 22:12:09 -0500 (Thu, 31 Mar 2011)
New Revision: 4236
Modified:
trunk/bin/gensites
Log:
o gensites
-- Fixed problem where it was not parsing the slot variable out of the properties file
Modified: trunk/bin/gensites
===================================================================
--- trunk/bin/gensites 2011-04-01 02:43:13 UTC (rev 4235)
+++ trunk/bin/gensites 2011-04-01 03:12:09 UTC (rev 4236)
@@ -169,6 +169,9 @@
"#site $TEMPLATE n_max="*|'#site n_max='*)
MAXTIME=`get_value $line`
;;
+ "#site $TEMPLATE slots="*|'#site slots='*)
+ SLOTS=`get_value $line`
+ ;;
esac
done < $PROPERTIES_FILE
From tga at ci.uchicago.edu Tue Mar 29 17:08:35 2011
From: tga at ci.uchicago.edu (tga at ci.uchicago.edu)
Date: Tue, 29 Mar 2011 17:08:35 -0500 (CDT)
Subject: [Swift-commit] r4228 - SwiftApps/SwiftR/Swift
Message-ID: <20110329220835.EF4149CC94@svn.ci.uchicago.edu>
Author: tga
Date: 2011-03-29 17:08:35 -0500 (Tue, 29 Mar 2011)
New Revision: 4228
Modified:
SwiftApps/SwiftR/Swift/DESCRIPTION
Log:
Release 0.1.7
Modified: SwiftApps/SwiftR/Swift/DESCRIPTION
===================================================================
--- SwiftApps/SwiftR/Swift/DESCRIPTION 2011-03-29 21:47:30 UTC (rev 4227)
+++ SwiftApps/SwiftR/Swift/DESCRIPTION 2011-03-29 22:08:35 UTC (rev 4228)
@@ -1,12 +1,12 @@
Package: Swift
Type: Package
Title: R interface to Swift parallel scripting languaage
-Version: 0.1.6
-Date: 2011-04-21
+Version: 0.1.7
+Date: 2011-04-29
Author: Michael Wilde
Maintainer: Michael Wilde
Description: Routines to invoke R functions on remote resources through Swift.
License: Apache License
LazyLoad: yes
-Packaged: 2011-04-21; Tim Armstrong
+Packaged: 2011-04-29; Tim Armstrong
From lgadelha at ci.uchicago.edu Tue Mar 29 23:14:03 2011
From: lgadelha at ci.uchicago.edu (lgadelha at ci.uchicago.edu)
Date: Tue, 29 Mar 2011 23:14:03 -0500 (CDT)
Subject: [Swift-commit] r4229 - provenancedb
Message-ID: <20110330041403.75B269CC94@svn.ci.uchicago.edu>
Author: lgadelha
Date: 2011-03-29 23:14:02 -0500 (Tue, 29 Mar 2011)
New Revision: 4229
Added:
provenancedb/info-to-runtime
Modified:
provenancedb/prepare-provenance-chart
provenancedb/prov-init.sql
provenancedb/prov-to-sql.sh
provenancedb/swift-prov-import-all-logs
Log:
Import /proc runtime info into the provenance database.
Added: provenancedb/info-to-runtime
===================================================================
--- provenancedb/info-to-runtime (rev 0)
+++ provenancedb/info-to-runtime 2011-03-30 04:14:02 UTC (rev 4229)
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# must have $EXECUTE2PREFIX appropriately by containing script
+
+while read t d id rest; do
+ echo processing wrapper file for job $id >&2
+ record=$(find ${IDIR} -name ${id}-info)
+
+ globalid=$EXECUTE2PREFIX$id
+
+ if [ "X$record" != "X" ] && [ -f $record ] ; then
+
+ grep '^RUNTIME_INFO=' $record | sed "s/^RUNTIME_INFO=\(.*\)$/$globalid \1/"
+
+ else
+ echo no wrapper log for $id >&2
+ fi
+
+done < execute2.event
Modified: provenancedb/prepare-provenance-chart
===================================================================
--- provenancedb/prepare-provenance-chart 2011-03-29 22:08:35 UTC (rev 4228)
+++ provenancedb/prepare-provenance-chart 2011-03-30 04:14:02 UTC (rev 4229)
@@ -27,6 +27,8 @@
info-to-extrainfo > extrainfo.txt
+info-to-runtime > runtime.txt
+
cat $1 | grep ' OPERATOR ' | sed 's/^.*thread=\([^ ]*\) operator="\([^ ]*\)" lhs=\([^ ]*\) rhs=\([^ ]*\) result=\([^ ]*\).*$/\1 \2 \3 \4 \5/' > operators.txt
Modified: provenancedb/prov-init.sql
===================================================================
--- provenancedb/prov-init.sql 2011-03-29 22:08:35 UTC (rev 4228)
+++ provenancedb/prov-init.sql 2011-03-30 04:14:02 UTC (rev 4229)
@@ -28,7 +28,7 @@
(id varchar(256) primary key,
log_filename varchar(2048),
swift_version varchar(16),
- import_status varchar(16),
+ final_state varchar(16),
start_time numeric,
duration numeric
);
@@ -40,9 +40,9 @@
-- has an entry for this process.
-- process types: internal, rootthread, execute, function, compound, scope, operator
create table process
- (id varchar(256) primary key,
- type varchar(16),
- name varchar(256), -- in the case of an execute this refers to the transformation name in tc.data
+ (id varchar(256) primary key,
+ type varchar(16),
+ name varchar(256), -- in the case of an execute this refers to the transformation name in tc.data
run_id varchar(256) references run (id) on delete cascade -- normalize: workflow_id of sub-procedure determined
-- by compound procedure
);
@@ -63,25 +63,25 @@
-- perform an execution. the execute2 id is tied to per-execution-attempt
-- information such as wrapper logs
create table app_execution
- (id varchar(256) primary key,
- app_invocation_id varchar(256) references app_invocation (id) on delete cascade,
- start_time numeric,
- duration numeric,
- final_state varchar(16),
- site varchar(256)
+ (id varchar(256) primary key,
+ app_invocation_id varchar(256) references app_invocation (id) on delete cascade,
+ start_time numeric,
+ duration numeric,
+ final_state varchar(16),
+ site varchar(256)
);
-- app execution runtime info extracted from the /proc filesystem (assumes the app executed
-- in a Linux host)
create table runtime_info
( app_execution_id varchar(256) references app_execution (id) on delete cascade,
- event_timestamp numeric,
+ tstamp numeric,
cpu_usage numeric,
max_phys_mem numeric,
max_virtual_mem numeric,
io_read_bytes numeric,
io_write_bytes numeric,
- primary key (app_execution_id, event_timestamp)
+ primary key (app_execution_id, tstamp)
);
-- ds stores all dataset identifiers.
@@ -194,7 +194,7 @@
CREATE VIEW run_date AS
- SELECT id, log_filename, swift_version, import_status,
+ SELECT id, log_filename, swift_version, final_state,
to_timestamp(start_time) as start_time, duration
FROM run;
Modified: provenancedb/prov-to-sql.sh
===================================================================
--- provenancedb/prov-to-sql.sh 2011-03-29 22:08:35 UTC (rev 4228)
+++ provenancedb/prov-to-sql.sh 2011-03-30 04:14:02 UTC (rev 4229)
@@ -8,7 +8,7 @@
export WF="${RUNID}"
echo Generating SQL for $RUNID
-rm -f tmp-u.sql tmp-ds.sql tmp-p.sql tmp-e.sql tmp-e2.sql tmp-dsu.sql tmp-dsc.sql tmp-f.sql tmp-v.sql tmp-import.sql import.sql extrainfo.sql fields.txt
+rm -f tmp-u.sql tmp-ds.sql tmp-p.sql tmp-e.sql tmp-e2.sql tmp-dsu.sql tmp-dsc.sql tmp-f.sql tmp-v.sql tmp-import.sql import.sql extrainfo.sql fields.txt runtime.sql
# this gives a distinction between the root process for a workflow and the
@@ -181,5 +181,17 @@
$SQLCMD < extrainfo.sql
+while read execute2_id runtime; do
+ timestamp=$(echo $runtime | awk -F "," '{print $1}' | awk -F ":" '{print $2}')
+ cpu_usage=$(echo $runtime | awk -F "," '{print $2}' | awk -F ":" '{print $2}')
+ max_phys_mem=$(echo $runtime | awk -F "," '{print $3}' | awk -F ":" '{print $2}')
+ max_virtual_mem=$(echo $runtime | awk -F "," '{print $4}' | awk -F ":" '{print $2}')
+ io_read_bytes=$(echo $runtime | awk -F "," '{print $5}' | awk -F ":" '{print $2}')
+ io_write_bytes=$(echo $runtime | awk -F "," '{print $6}' | awk -F ":" '{print $2}')
+ echo "INSERT INTO runtime_info (app_execution_id, tstamp, cpu_usage, max_phys_mem, max_virtual_mem, io_read_bytes, io_write_bytes) VALUES ('$execute2_id', $timestamp, $cpu_usage, $max_phys_mem, $max_virtual_mem, $io_read_bytes, $io_write_bytes);" >> runtime.sql
+done < runtime.txt
+
+$SQLCMD < runtime.sql
+
echo Finished sending SQL to DB
Modified: provenancedb/swift-prov-import-all-logs
===================================================================
--- provenancedb/swift-prov-import-all-logs 2011-03-29 22:08:35 UTC (rev 4228)
+++ provenancedb/swift-prov-import-all-logs 2011-03-30 04:14:02 UTC (rev 4229)
@@ -45,7 +45,7 @@
if [ $PROV_ENABLED -gt 0 ]; then
echo IMPORTING
- if grep --silent "DEBUG Loader Swift finished with no errors" $filename; then
+ if grep --silent "INFO Loader Swift finished with no errors" $filename; then
wfstatus="SUCCESS"
else
wfstatus="FAIL"
@@ -55,7 +55,7 @@
export WF="${RUNID}"
- echo "INSERT INTO run (id, log_filename, swift_version, import_status) VALUES ('$WF','$filename','$version','$wfstatus');" | $SQLCMD
+ echo "INSERT INTO run (id, log_filename, swift_version, final_state) VALUES ('$WF','$filename','$version','$wfstatus');" | $SQLCMD
echo version $version in log file $filename
echo ============= will import =============
From wozniak at ci.uchicago.edu Thu Mar 31 13:52:02 2011
From: wozniak at ci.uchicago.edu (wozniak at ci.uchicago.edu)
Date: Thu, 31 Mar 2011 13:52:02 -0500 (CDT)
Subject: [Swift-commit] r4231 -
trunk/src/org/griphyn/vdl/karajan/lib/swiftscript
Message-ID: <20110331185202.C1DDD9D65B@svn.ci.uchicago.edu>
Author: wozniak
Date: 2011-03-31 13:52:02 -0500 (Thu, 31 Mar 2011)
New Revision: 4231
Modified:
trunk/src/org/griphyn/vdl/karajan/lib/swiftscript/Misc.java
Log:
Whitespace and warning fixes
Modified: trunk/src/org/griphyn/vdl/karajan/lib/swiftscript/Misc.java
===================================================================
--- trunk/src/org/griphyn/vdl/karajan/lib/swiftscript/Misc.java 2011-03-30 17:57:26 UTC (rev 4230)
+++ trunk/src/org/griphyn/vdl/karajan/lib/swiftscript/Misc.java 2011-03-31 18:52:02 UTC (rev 4231)
@@ -1,8 +1,6 @@
package org.griphyn.vdl.karajan.lib.swiftscript;
import java.io.IOException;
-import java.util.List;
-import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -54,9 +52,10 @@
setArguments("swiftscript_length", new Arg[] { Arg.VARGS });
}
- private static final Logger traceLogger = Logger.getLogger("org.globus.swift.trace");
- public DSHandle swiftscript_trace(VariableStack stack) throws ExecutionException, NoSuchTypeException,
- InvalidPathException {
+ private static final Logger traceLogger =
+ Logger.getLogger("org.globus.swift.trace");
+ public DSHandle swiftscript_trace(VariableStack stack)
+ throws ExecutionException {
DSHandle[] args = SwiftArg.VARGS.asDSHandleArray(stack);
@@ -72,8 +71,8 @@
return null;
}
- public DSHandle swiftscript_strcat(VariableStack stack) throws ExecutionException, NoSuchTypeException,
- InvalidPathException {
+ public DSHandle swiftscript_strcat(VariableStack stack)
+ throws ExecutionException {
Object[] args = SwiftArg.VARGS.asArray(stack);
int provid = VDLFunction.nextProvenanceID();
StringBuffer buf = new StringBuffer();
@@ -87,7 +86,7 @@
if(VDL2Config.getConfig().getProvenanceLog()) {
DSHandle[] provArgs = SwiftArg.VARGS.asDSHandleArray(stack);
for (int i = 0; i < provArgs.length; i++) {
- VDLFunction.logProvenanceParameter(provid, (DSHandle)provArgs[i], ""+i);
+ VDLFunction.logProvenanceParameter(provid, provArgs[i], ""+i);
}
VDLFunction.logProvenanceResult(provid, handle, "strcat");
}
@@ -97,8 +96,8 @@
return handle;
}
- public DSHandle swiftscript_strcut(VariableStack stack) throws ExecutionException, NoSuchTypeException,
- InvalidPathException {
+ public DSHandle swiftscript_strcut(VariableStack stack)
+ throws ExecutionException {
int provid = VDLFunction.nextProvenanceID();
String inputString = TypeUtil.toString(PA_INPUT.getValue(stack));
String pattern = TypeUtil.toString(PA_PATTERN.getValue(stack));
@@ -131,9 +130,8 @@
return handle;
}
- public DSHandle swiftscript_strstr(VariableStack stack) throws ExecutionException, NoSuchTypeException,
- InvalidPathException {
-
+ public DSHandle swiftscript_strstr(VariableStack stack)
+ throws ExecutionException {
String inputString = TypeUtil.toString(PA_INPUT.getValue(stack));
String pattern = TypeUtil.toString(PA_PATTERN.getValue(stack));
if (logger.isDebugEnabled()) {
@@ -147,8 +145,9 @@
return handle;
}
- public DSHandle swiftscript_strsplit(VariableStack stack) throws ExecutionException, NoSuchTypeException,
- InvalidPathException {
+ public DSHandle swiftscript_strsplit(VariableStack stack)
+ throws ExecutionException, InvalidPathException {
+
String str = TypeUtil.toString(PA_INPUT.getValue(stack));
String pattern = TypeUtil.toString(PA_PATTERN.getValue(stack));
@@ -167,8 +166,8 @@
return handle;
}
- public DSHandle swiftscript_regexp(VariableStack stack) throws ExecutionException, NoSuchTypeException,
- InvalidPathException {
+ public DSHandle swiftscript_regexp(VariableStack stack)
+ throws ExecutionException {
String inputString = TypeUtil.toString(PA_INPUT.getValue(stack));
String pattern = TypeUtil.toString(PA_PATTERN.getValue(stack));
String transform = TypeUtil.toString(PA_TRANSFORM.getValue(stack));
@@ -204,8 +203,8 @@
return handle;
}
- public DSHandle swiftscript_toint(VariableStack stack) throws ExecutionException, NoSuchTypeException,
- InvalidPathException {
+ public DSHandle swiftscript_toint(VariableStack stack)
+ throws ExecutionException {
String inputString = TypeUtil.toString(PA_INPUT.getValue(stack));
int i = inputString.indexOf(".");
if( i >= 0 )
@@ -230,8 +229,8 @@
return handle;
}
- public DSHandle swiftscript_tofloat(VariableStack stack) throws ExecutionException, NoSuchTypeException,
- InvalidPathException {
+ public DSHandle swiftscript_tofloat(VariableStack stack)
+ throws ExecutionException {
String inputString = TypeUtil.toString(PA_INPUT.getValue(stack));
DSHandle handle = new RootDataNode(Types.FLOAT);
@@ -253,8 +252,8 @@
/*
* Takes in a float and formats to desired precision and returns a string
*/
- public DSHandle swiftscript_format(VariableStack stack) throws ExecutionException, NoSuchTypeException,
- InvalidPathException {
+ public DSHandle swiftscript_format(VariableStack stack)
+ throws ExecutionException {
String inputString = TypeUtil.toString(PA_INPUT.getValue(stack));
String inputFormat = TypeUtil.toString(PA_TRANSFORM.getValue(stack));
DSHandle handle = new RootDataNode(Types.STRING);
@@ -273,8 +272,8 @@
/*
* Takes in an int and pads zeros to the left and returns a string
*/
- public DSHandle swiftscript_pad(VariableStack stack) throws ExecutionException, NoSuchTypeException,
- InvalidPathException {
+ public DSHandle swiftscript_pad(VariableStack stack)
+ throws ExecutionException {
String inputString = TypeUtil.toString(PA_INPUT.getValue(stack));
String inputFormat = TypeUtil.toString(PA_TRANSFORM.getValue(stack));
DSHandle handle = new RootDataNode(Types.STRING);
@@ -283,7 +282,8 @@
int zeros_to_pad = Integer.parseInt(inputFormat);
zeros_to_pad += num_length;
- String output = String.format("%0"+zeros_to_pad+"d", Integer.parseInt(inputString));
+ String output = String.format("%0"+zeros_to_pad+"d",
+ Integer.parseInt(inputString));
handle.setValue(output);
handle.closeShallow();
@@ -295,17 +295,16 @@
}
public DSHandle swiftscript_tostring(VariableStack stack)
- throws ExecutionException, NoSuchTypeException,
- InvalidPathException {
- Object input = PA_INPUT.getValue(stack);
- DSHandle handle = new RootDataNode(Types.STRING);
- handle.setValue(""+input);
- handle.closeShallow();
- return handle;
+ throws ExecutionException {
+ Object input = PA_INPUT.getValue(stack);
+ DSHandle handle = new RootDataNode(Types.STRING);
+ handle.setValue(""+input);
+ handle.closeShallow();
+ return handle;
}
public DSHandle swiftscript_dirname(VariableStack stack)
- throws ExecutionException, NoSuchTypeException, InvalidPathException {
+ throws ExecutionException {
DSHandle handle;
try
{
@@ -326,12 +325,14 @@
}
/*
- * This is copied from swiftscript_dirname. Both the functions could be changed to be more readable.
+ * This is copied from swiftscript_dirname.
+ * Both the functions could be changed to be more readable.
* Returns length of an array.
- * Good for debugging because array needs to be closed before the length is determined
+ * Good for debugging because array needs to be closed
+ * before the length is determined
*/
public DSHandle swiftscript_length(VariableStack stack)
- throws ExecutionException, NoSuchTypeException, InvalidPathException {
+ throws ExecutionException {
DSHandle handle;
DSHandle[] args = SwiftArg.VARGS.asDSHandleArray( stack );
DSHandle arg = args[0];
@@ -339,7 +340,8 @@
if( !( adn.isClosed() ) )
{
- throw new FutureNotYetAvailable( VDLFunction.addFutureListener( stack, adn ) );
+ throw new FutureNotYetAvailable
+ (VDLFunction.addFutureListener(stack, adn));
}
int result = adn.size();
From tga at ci.uchicago.edu Thu Mar 31 17:03:37 2011
From: tga at ci.uchicago.edu (tga at ci.uchicago.edu)
Date: Thu, 31 Mar 2011 17:03:37 -0500 (CDT)
Subject: [Swift-commit] r4232 - SwiftApps/SwiftR/Swift/exec
Message-ID: <20110331220337.D9B9A9CCA0@svn.ci.uchicago.edu>
Author: tga
Date: 2011-03-31 17:03:37 -0500 (Thu, 31 Mar 2011)
New Revision: 4232
Modified:
SwiftApps/SwiftR/Swift/exec/configure-server-pbs
Log:
Mistakenly didn't include scratch setting correctly in pbs config.
Modified: SwiftApps/SwiftR/Swift/exec/configure-server-pbs
===================================================================
--- SwiftApps/SwiftR/Swift/exec/configure-server-pbs 2011-03-31 18:52:02 UTC (rev 4231)
+++ SwiftApps/SwiftR/Swift/exec/configure-server-pbs 2011-03-31 22:03:37 UTC (rev 4232)
@@ -33,7 +33,7 @@
10000
$(pwd)/swiftwork
- $(pwd)/swiftscratch
+ $(pwd)/swiftscratch
From tga at ci.uchicago.edu Thu Mar 31 17:05:20 2011
From: tga at ci.uchicago.edu (tga at ci.uchicago.edu)
Date: Thu, 31 Mar 2011 17:05:20 -0500 (CDT)
Subject: [Swift-commit] r4233 - SwiftApps/SwiftR/Swift/exec
Message-ID: <20110331220520.406059CCA0@svn.ci.uchicago.edu>
Author: tga
Date: 2011-03-31 17:05:18 -0500 (Thu, 31 Mar 2011)
New Revision: 4233
Modified:
SwiftApps/SwiftR/Swift/exec/EvalRBatchPersistent.sh
SwiftApps/SwiftR/Swift/exec/configure-server-crayxt
Log:
Checking in fixes required to get SwiftR running on single node of crayxt:
* Point SwiftR to use tmp directory mounted on lustre file system (node file systems dont work)
* Invoke R directly, rather than using Rscript
Modified: SwiftApps/SwiftR/Swift/exec/EvalRBatchPersistent.sh
===================================================================
--- SwiftApps/SwiftR/Swift/exec/EvalRBatchPersistent.sh 2011-03-31 22:03:37 UTC (rev 4232)
+++ SwiftApps/SwiftR/Swift/exec/EvalRBatchPersistent.sh 2011-03-31 22:05:18 UTC (rev 4233)
@@ -27,7 +27,7 @@
# tmp=/tmp # FIXME: allow this to change eg for sites with main tmp dir elsewhere
# tmp=/scratch/local # FIXME: allow this to change eg for sites with main tmp dir elsewhere
-tmp=${SWIFTR_TMP:-/tmp}
+tmp=${SWIFTR_TMP:-${TMP:-/tmp}}
RServerScript=$1
callFile=$2
@@ -140,7 +140,11 @@
echo LD_LIBRARYPATH= $LD_LIBRARY_PATH
PATH=.:$PATH
echo PATH= $PATH
- $RServerScript $SLOTDIR >> $SLOTDIR/R.log 2>&1 & # launch R server
+ # Use R instead of Rscript due to Rscript issues on some
+ # platforms (e.g. cray xt)
+ R --slave --no-restore --file=$RServerScript \
+ --args $SLOTDIR >> $SLOTDIR/R.log 2>&1 & # launch R server
+ #$RServerScript $SLOTDIR >> $SLOTDIR/R.log 2>&1 & # launch R server
# idletimer $SLOTDIR /dev/null 2>&1 & # R saves pid in R.pid for idletimer to kill it
echo "$0: INFO: Launched $RServerScript $SLOTDIR Rscript"
else
Modified: SwiftApps/SwiftR/Swift/exec/configure-server-crayxt
===================================================================
--- SwiftApps/SwiftR/Swift/exec/configure-server-crayxt 2011-03-31 22:03:37 UTC (rev 4232)
+++ SwiftApps/SwiftR/Swift/exec/configure-server-crayxt 2011-03-31 22:05:18 UTC (rev 4233)
@@ -3,7 +3,6 @@
# configuration for PBS with manually-started Swift workers (passive coasters)
cores=$1
-
throttlePBS=$2
cat >tc <sites.xml <
@@ -32,8 +34,11 @@
$throttlePBS
10000
- $(pwd)/swiftwork
- $(pwd)/swiftscratch
+ $LUSTRE_TMP
+ $LUSTRE_TMP
+ $LD_LIBRARY_PATH
+ $LUSTRE_TMP/swiftwork
+ $LUSTRE_TMP/swiftscratch
From lgadelha at ci.uchicago.edu Thu Mar 31 19:29:56 2011
From: lgadelha at ci.uchicago.edu (lgadelha at ci.uchicago.edu)
Date: Thu, 31 Mar 2011 19:29:56 -0500 (CDT)
Subject: [Swift-commit] r4234 - in provenancedb: . apps/oops
Message-ID: <20110401002956.732819D65B@svn.ci.uchicago.edu>
Author: lgadelha
Date: 2011-03-31 19:29:56 -0500 (Thu, 31 Mar 2011)
New Revision: 4234
Modified:
provenancedb/apps/oops/oops_extractor.sh
provenancedb/swift-prov-import-all-logs
Log:
Minor updates.
Modified: provenancedb/apps/oops/oops_extractor.sh
===================================================================
--- provenancedb/apps/oops/oops_extractor.sh 2011-03-31 22:05:18 UTC (rev 4233)
+++ provenancedb/apps/oops/oops_extractor.sh 2011-04-01 00:29:56 UTC (rev 4234)
@@ -39,10 +39,10 @@
LOG_FILENAME=$(ls *-*-*-*.log)
WORKFLOW_ID=$(echo "select id from run where log_filename like '%$LOG_FILENAME%'" | $SQLCMD -t | awk '{print $1}')
cd $IMPORT_HOME/swift-logs
- echo "insert into annot_run_text (id, name, value) values ('$WORKFLOW_ID','oops_run_id','$OOPS_RUN_ID');" | $SQLCMD
+ echo "insert into annot_run_text (run_id, name, value) values ('$WORKFLOW_ID','oops_run_id','$OOPS_RUN_ID');" | $SQLCMD
#extracts scientific parameters given as input to the workflow in file *.params.
- echo "select file.id,file.filename from process, dataset_production, dataset_containment, file where process.id=dataset_production.process_id and dataset_usage.dataset_id=out_id and file.id=dataset_containment.in_id and filename like '%.params' and process.name='PrepLoop' and process.run_id='$WORKFLOW_ID';" > query.sql;
+ echo "select file.id,file.filename from process, dataset_production, dataset_containment, file where process.id=dataset_production.process_id and dataset_production.dataset_id=out_id and file.id=dataset_containment.in_id and filename like '%.params' and process.name='PrepLoop' and process.run_id='$WORKFLOW_ID';" > query.sql;
$SQLCMD -t -A -F " " -f query.sql -o result.txt
@@ -110,28 +110,28 @@
while read token1 token2 token3 token4; do
if [ "$token2" = "(Initial Energy:" ]; then
initialenergy=$(echo $token3 | awk 'BEGIN { FS = "\)" }; {print $1}')
- echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'initial_energy', $initialenergy);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (dataset_id, name, value) values ('$dataset', 'initial_energy', $initialenergy);" | $SQLCMD
fi
if [ "$token1" = "Total" ] && [ "$token2" = "Function" ] && [ "$token3" = "Evaluations:" ]; then
- echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'total_function_evaluations', $token4);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (dataset_id, name, value) values ('$dataset', 'total_function_evaluations', $token4);" | $SQLCMD
fi
if [ "$token1" = "Increasing" ] && [ "$token2" = "transitions:" ]; then
- echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'accepted_increasing_transitions', $token3);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (dataset_id, name, value) values ('$dataset', 'accepted_increasing_transitions', $token3);" | $SQLCMD
fi
if [ "$token1" = "Decreasing" ] && [ "$token2" = "transitions:" ]; then
- echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'accepted_decreasing_transitions', $token3);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (dataset_id, name, value) values ('$dataset', 'accepted_decreasing_transitions', $token3);" | $SQLCMD
fi
if [ "$token1" = "Rejected" ] && [ "$token2" = "transitions:" ]; then
- echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'rejected_transitions', $token3);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (dataset_id, name, value) values ('$dataset', 'rejected_transitions', $token3);" | $SQLCMD
fi
if [ "$token1" = "Final" ] && [ "$token2" = "Energy:" ]; then
- echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'final_energy', $token3);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (dataset_id, name, value) values ('$dataset', 'final_energy', $token3);" | $SQLCMD
fi
if [ "$token1" = "Final" ] && [ "$token2" = "Temp:" ]; then
- echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'final_temp', $token3);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (dataset_id, name, value) values ('$dataset', 'final_temp', $token3);" | $SQLCMD
fi
if [ "$token1" = "Total" ] && [ "$token2" = "Running" ] && [ "$token3" = "Time:" ]; then
- echo "insert into annot_dataset_numeric (id, name, value) values ('$dataset', 'total_running_time', $token4);" | $SQLCMD
+ echo "insert into annot_dataset_numeric (dataset_id, name, value) values ('$dataset', 'total_running_time', $token4);" | $SQLCMD
fi
done < $FILENAME
done < $IMPORT_HOME/swift-logs/result.txt
Modified: provenancedb/swift-prov-import-all-logs
===================================================================
--- provenancedb/swift-prov-import-all-logs 2011-03-31 22:05:18 UTC (rev 4233)
+++ provenancedb/swift-prov-import-all-logs 2011-04-01 00:29:56 UTC (rev 4234)
@@ -45,7 +45,7 @@
if [ $PROV_ENABLED -gt 0 ]; then
echo IMPORTING
- if grep --silent "INFO Loader Swift finished with no errors" $filename; then
+ if grep --silent "Loader Swift finished with no errors" $filename; then
wfstatus="SUCCESS"
else
wfstatus="FAIL"
From wilde at ci.uchicago.edu Thu Mar 31 21:43:13 2011
From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu)
Date: Thu, 31 Mar 2011 21:43:13 -0500 (CDT)
Subject: [Swift-commit] r4235 - www/downloads
Message-ID: <20110401024313.6074D9CCA0@svn.ci.uchicago.edu>
Author: wilde
Date: 2011-03-31 21:43:13 -0500 (Thu, 31 Mar 2011)
New Revision: 4235
Modified:
www/downloads/index.php
Log:
Add temp message about 0.92 source branch problem (twice-each bug)
Modified: www/downloads/index.php
===================================================================
--- www/downloads/index.php 2011-04-01 00:29:56 UTC (rev 4234)
+++ www/downloads/index.php 2011-04-01 02:43:13 UTC (rev 4235)
@@ -56,6 +56,8 @@
Latest Release
+WARNING: Code Problem: the source code for the latest release has a known concurrency defect, discovered Mar 29 2011. Please do not use or trust this SVN branch until we post that the problem has been corrected.
+
Checkout CoG:
svn co \
@@ -128,9 +130,9 @@
Swift 0.91 - 2010/12/23
Precompiled binary distribution
-[swift-0.92.tar.gz]
+[swift-0.91.tar.gz]
Swift 0.9 - 2009/04/27
[
Author: zzhang
Date: 2011-03-30 12:57:26 -0500 (Wed, 30 Mar 2011)
New Revision: 4230
Added:
SwiftApps/Andrey-MC/
SwiftApps/Andrey-MC/for_movies.pickled
SwiftApps/Andrey-MC/movie_graph.py
SwiftApps/Andrey-MC/movies_coarse.swift
SwiftApps/Andrey-MC/tc.data
Log:
Andrey's application code
Added: SwiftApps/Andrey-MC/for_movies.pickled
===================================================================
--- SwiftApps/Andrey-MC/for_movies.pickled (rev 0)
+++ SwiftApps/Andrey-MC/for_movies.pickled 2011-03-30 17:57:26 UTC (rev 4230)
@@ -0,0 +1,23698 @@
+ccopy_reg
+_reconstructor
+p0
+(cnetworkx.classes.graph
+Graph
+p1
+c__builtin__
+object
+p2
+Ntp3
+Rp4
+(dp5
+S'node'
+p6
+(dp7
+cnumpy.core.multiarray
+scalar
+p8
+(cnumpy
+dtype
+p9
+(S'i4'
+p10
+I0
+I1
+tp11
+Rp12
+(I3
+S'<'
+p13
+NNNI-1
+I-1
+I0
+tp14
+bS'\x00\x00\x00\x00'
+p15
+tp16
+Rp17
+(dp18
+sg8
+(g12
+S'\x01\x00\x00\x00'
+p19
+tp20
+Rp21
+(dp22
+sg8
+(g12
+S'\x02\x00\x00\x00'
+p23
+tp24
+Rp25
+(dp26
+sg8
+(g12
+S'\x03\x00\x00\x00'
+p27
+tp28
+Rp29
+(dp30
+sg8
+(g12
+S'\x04\x00\x00\x00'
+p31
+tp32
+Rp33
+(dp34
+sg8
+(g12
+S'\x05\x00\x00\x00'
+p35
+tp36
+Rp37
+(dp38
+sg8
+(g12
+S'\x06\x00\x00\x00'
+p39
+tp40
+Rp41
+(dp42
+sg8
+(g12
+S'\x07\x00\x00\x00'
+p43
+tp44
+Rp45
+(dp46
+sg8
+(g12
+S'\x08\x00\x00\x00'
+p47
+tp48
+Rp49
+(dp50
+sg8
+(g12
+S'\t\x00\x00\x00'
+p51
+tp52
+Rp53
+(dp54
+sg8
+(g12
+S'\n\x00\x00\x00'
+p55
+tp56
+Rp57
+(dp58
+sg8
+(g12
+S'\x0b\x00\x00\x00'
+p59
+tp60
+Rp61
+(dp62
+sg8
+(g12
+S'\x0c\x00\x00\x00'
+p63
+tp64
+Rp65
+(dp66
+sg8
+(g12
+S'\r\x00\x00\x00'
+p67
+tp68
+Rp69
+(dp70
+sg8
+(g12
+S'\x0e\x00\x00\x00'
+p71
+tp72
+Rp73
+(dp74
+sg8
+(g12
+S'\x0f\x00\x00\x00'
+p75
+tp76
+Rp77
+(dp78
+sg8
+(g12
+S'\x10\x00\x00\x00'
+p79
+tp80
+Rp81
+(dp82
+sg8
+(g12
+S'\x11\x00\x00\x00'
+p83
+tp84
+Rp85
+(dp86
+sg8
+(g12
+S'\x12\x00\x00\x00'
+p87
+tp88
+Rp89
+(dp90
+sg8
+(g12
+S'\x13\x00\x00\x00'
+p91
+tp92
+Rp93
+(dp94
+sg8
+(g12
+S'\x14\x00\x00\x00'
+p95
+tp96
+Rp97
+(dp98
+sg8
+(g12
+S'\x15\x00\x00\x00'
+p99
+tp100
+Rp101
+(dp102
+sg8
+(g12
+S'\x16\x00\x00\x00'
+p103
+tp104
+Rp105
+(dp106
+sg8
+(g12
+S'\x17\x00\x00\x00'
+p107
+tp108
+Rp109
+(dp110
+sg8
+(g12
+S'\x18\x00\x00\x00'
+p111
+tp112
+Rp113
+(dp114
+sg8
+(g12
+S'\x19\x00\x00\x00'
+p115
+tp116
+Rp117
+(dp118
+sg8
+(g12
+S'\x1a\x00\x00\x00'
+p119
+tp120
+Rp121
+(dp122
+sg8
+(g12
+S'\x1b\x00\x00\x00'
+p123
+tp124
+Rp125
+(dp126
+sg8
+(g12
+S'\x1c\x00\x00\x00'
+p127
+tp128
+Rp129
+(dp130
+sg8
+(g12
+S'\x1d\x00\x00\x00'
+p131
+tp132
+Rp133
+(dp134
+sg8
+(g12
+S'\x1e\x00\x00\x00'
+p135
+tp136
+Rp137
+(dp138
+sg8
+(g12
+S'\x1f\x00\x00\x00'
+p139
+tp140
+Rp141
+(dp142
+sg8
+(g12
+S' \x00\x00\x00'
+p143
+tp144
+Rp145
+(dp146
+sg8
+(g12
+S'!\x00\x00\x00'
+p147
+tp148
+Rp149
+(dp150
+sg8
+(g12
+S'"\x00\x00\x00'
+p151
+tp152
+Rp153
+(dp154
+sg8
+(g12
+S'#\x00\x00\x00'
+p155
+tp156
+Rp157
+(dp158
+sg8
+(g12
+S'$\x00\x00\x00'
+p159
+tp160
+Rp161
+(dp162
+sg8
+(g12
+S'%\x00\x00\x00'
+p163
+tp164
+Rp165
+(dp166
+sg8
+(g12
+S'&\x00\x00\x00'
+p167
+tp168
+Rp169
+(dp170
+sg8
+(g12
+S"'\x00\x00\x00"
+p171
+tp172
+Rp173
+(dp174
+sg8
+(g12
+S'(\x00\x00\x00'
+p175
+tp176
+Rp177
+(dp178
+sg8
+(g12
+S')\x00\x00\x00'
+p179
+tp180
+Rp181
+(dp182
+sg8
+(g12
+S'*\x00\x00\x00'
+p183
+tp184
+Rp185
+(dp186
+sg8
+(g12
+S'+\x00\x00\x00'
+p187
+tp188
+Rp189
+(dp190
+sg8
+(g12
+S',\x00\x00\x00'
+p191
+tp192
+Rp193
+(dp194
+sg8
+(g12
+S'-\x00\x00\x00'
+p195
+tp196
+Rp197
+(dp198
+sg8
+(g12
+S'.\x00\x00\x00'
+p199
+tp200
+Rp201
+(dp202
+sg8
+(g12
+S'/\x00\x00\x00'
+p203
+tp204
+Rp205
+(dp206
+sg8
+(g12
+S'0\x00\x00\x00'
+p207
+tp208
+Rp209
+(dp210
+sg8
+(g12
+S'1\x00\x00\x00'
+p211
+tp212
+Rp213
+(dp214
+sg8
+(g12
+S'2\x00\x00\x00'
+p215
+tp216
+Rp217
+(dp218
+sg8
+(g12
+S'3\x00\x00\x00'
+p219
+tp220
+Rp221
+(dp222
+sg8
+(g12
+S'4\x00\x00\x00'
+p223
+tp224
+Rp225
+(dp226
+sg8
+(g12
+S'5\x00\x00\x00'
+p227
+tp228
+Rp229
+(dp230
+sg8
+(g12
+S'6\x00\x00\x00'
+p231
+tp232
+Rp233
+(dp234
+sg8
+(g12
+S'7\x00\x00\x00'
+p235
+tp236
+Rp237
+(dp238
+sg8
+(g12
+S'8\x00\x00\x00'
+p239
+tp240
+Rp241
+(dp242
+sg8
+(g12
+S'9\x00\x00\x00'
+p243
+tp244
+Rp245
+(dp246
+sg8
+(g12
+S':\x00\x00\x00'
+p247
+tp248
+Rp249
+(dp250
+sg8
+(g12
+S';\x00\x00\x00'
+p251
+tp252
+Rp253
+(dp254
+sg8
+(g12
+S'<\x00\x00\x00'
+p255
+tp256
+Rp257
+(dp258
+sg8
+(g12
+S'=\x00\x00\x00'
+p259
+tp260
+Rp261
+(dp262
+sg8
+(g12
+S'>\x00\x00\x00'
+p263
+tp264
+Rp265
+(dp266
+sg8
+(g12
+S'?\x00\x00\x00'
+p267
+tp268
+Rp269
+(dp270
+sg8
+(g12
+S'@\x00\x00\x00'
+p271
+tp272
+Rp273
+(dp274
+sg8
+(g12
+S'A\x00\x00\x00'
+p275
+tp276
+Rp277
+(dp278
+sg8
+(g12
+S'B\x00\x00\x00'
+p279
+tp280
+Rp281
+(dp282
+sg8
+(g12
+S'C\x00\x00\x00'
+p283
+tp284
+Rp285
+(dp286
+sg8
+(g12
+S'D\x00\x00\x00'
+p287
+tp288
+Rp289
+(dp290
+sg8
+(g12
+S'E\x00\x00\x00'
+p291
+tp292
+Rp293
+(dp294
+sg8
+(g12
+S'F\x00\x00\x00'
+p295
+tp296
+Rp297
+(dp298
+sg8
+(g12
+S'G\x00\x00\x00'
+p299
+tp300
+Rp301
+(dp302
+sg8
+(g12
+S'H\x00\x00\x00'
+p303
+tp304
+Rp305
+(dp306
+sg8
+(g12
+S'I\x00\x00\x00'
+p307
+tp308
+Rp309
+(dp310
+sg8
+(g12
+S'J\x00\x00\x00'
+p311
+tp312
+Rp313
+(dp314
+sg8
+(g12
+S'K\x00\x00\x00'
+p315
+tp316
+Rp317
+(dp318
+sg8
+(g12
+S'L\x00\x00\x00'
+p319
+tp320
+Rp321
+(dp322
+sg8
+(g12
+S'M\x00\x00\x00'
+p323
+tp324
+Rp325
+(dp326
+sg8
+(g12
+S'N\x00\x00\x00'
+p327
+tp328
+Rp329
+(dp330
+sg8
+(g12
+S'O\x00\x00\x00'
+p331
+tp332
+Rp333
+(dp334
+sg8
+(g12
+S'P\x00\x00\x00'
+p335
+tp336
+Rp337
+(dp338
+sg8
+(g12
+S'Q\x00\x00\x00'
+p339
+tp340
+Rp341
+(dp342
+sg8
+(g12
+S'R\x00\x00\x00'
+p343
+tp344
+Rp345
+(dp346
+sg8
+(g12
+S'S\x00\x00\x00'
+p347
+tp348
+Rp349
+(dp350
+sg8
+(g12
+S'T\x00\x00\x00'
+p351
+tp352
+Rp353
+(dp354
+sg8
+(g12
+S'U\x00\x00\x00'
+p355
+tp356
+Rp357
+(dp358
+sg8
+(g12
+S'V\x00\x00\x00'
+p359
+tp360
+Rp361
+(dp362
+sg8
+(g12
+S'W\x00\x00\x00'
+p363
+tp364
+Rp365
+(dp366
+sg8
+(g12
+S'X\x00\x00\x00'
+p367
+tp368
+Rp369
+(dp370
+sg8
+(g12
+S'Y\x00\x00\x00'
+p371
+tp372
+Rp373
+(dp374
+sg8
+(g12
+S'Z\x00\x00\x00'
+p375
+tp376
+Rp377
+(dp378
+sg8
+(g12
+S'[\x00\x00\x00'
+p379
+tp380
+Rp381
+(dp382
+sg8
+(g12
+S'\\\x00\x00\x00'
+p383
+tp384
+Rp385
+(dp386
+sg8
+(g12
+S']\x00\x00\x00'
+p387
+tp388
+Rp389
+(dp390
+sg8
+(g12
+S'^\x00\x00\x00'
+p391
+tp392
+Rp393
+(dp394
+sg8
+(g12
+S'_\x00\x00\x00'
+p395
+tp396
+Rp397
+(dp398
+sg8
+(g12
+S'`\x00\x00\x00'
+p399
+tp400
+Rp401
+(dp402
+sg8
+(g12
+S'a\x00\x00\x00'
+p403
+tp404
+Rp405
+(dp406
+sg8
+(g12
+S'b\x00\x00\x00'
+p407
+tp408
+Rp409
+(dp410
+sg8
+(g12
+S'c\x00\x00\x00'
+p411
+tp412
+Rp413
+(dp414
+sg8
+(g12
+S'd\x00\x00\x00'
+p415
+tp416
+Rp417
+(dp418
+sg8
+(g12
+S'e\x00\x00\x00'
+p419
+tp420
+Rp421
+(dp422
+sg8
+(g12
+S'f\x00\x00\x00'
+p423
+tp424
+Rp425
+(dp426
+sg8
+(g12
+S'g\x00\x00\x00'
+p427
+tp428
+Rp429
+(dp430
+sg8
+(g12
+S'h\x00\x00\x00'
+p431
+tp432
+Rp433
+(dp434
+sg8
+(g12
+S'i\x00\x00\x00'
+p435
+tp436
+Rp437
+(dp438
+sg8
+(g12
+S'j\x00\x00\x00'
+p439
+tp440
+Rp441
+(dp442
+sg8
+(g12
+S'k\x00\x00\x00'
+p443
+tp444
+Rp445
+(dp446
+sg8
+(g12
+S'l\x00\x00\x00'
+p447
+tp448
+Rp449
+(dp450
+sg8
+(g12
+S'm\x00\x00\x00'
+p451
+tp452
+Rp453
+(dp454
+sg8
+(g12
+S'n\x00\x00\x00'
+p455
+tp456
+Rp457
+(dp458
+sg8
+(g12
+S'o\x00\x00\x00'
+p459
+tp460
+Rp461
+(dp462
+sg8
+(g12
+S'p\x00\x00\x00'
+p463
+tp464
+Rp465
+(dp466
+sg8
+(g12
+S'q\x00\x00\x00'
+p467
+tp468
+Rp469
+(dp470
+sg8
+(g12
+S'r\x00\x00\x00'
+p471
+tp472
+Rp473
+(dp474
+sg8
+(g12
+S's\x00\x00\x00'
+p475
+tp476
+Rp477
+(dp478
+sg8
+(g12
+S't\x00\x00\x00'
+p479
+tp480
+Rp481
+(dp482
+sg8
+(g12
+S'u\x00\x00\x00'
+p483
+tp484
+Rp485
+(dp486
+sg8
+(g12
+S'v\x00\x00\x00'
+p487
+tp488
+Rp489
+(dp490
+sg8
+(g12
+S'w\x00\x00\x00'
+p491
+tp492
+Rp493
+(dp494
+sg8
+(g12
+S'x\x00\x00\x00'
+p495
+tp496
+Rp497
+(dp498
+sg8
+(g12
+S'y\x00\x00\x00'
+p499
+tp500
+Rp501
+(dp502
+sg8
+(g12
+S'z\x00\x00\x00'
+p503
+tp504
+Rp505
+(dp506
+sg8
+(g12
+S'{\x00\x00\x00'
+p507
+tp508
+Rp509
+(dp510
+sg8
+(g12
+S'|\x00\x00\x00'
+p511
+tp512
+Rp513
+(dp514
+sg8
+(g12
+S'}\x00\x00\x00'
+p515
+tp516
+Rp517
+(dp518
+sg8
+(g12
+S'~\x00\x00\x00'
+p519
+tp520
+Rp521
+(dp522
+sg8
+(g12
+S'\x7f\x00\x00\x00'
+p523
+tp524
+Rp525
+(dp526
+sg8
+(g12
+S'\x80\x00\x00\x00'
+p527
+tp528
+Rp529
+(dp530
+sg8
+(g12
+S'\x81\x00\x00\x00'
+p531
+tp532
+Rp533
+(dp534
+sg8
+(g12
+S'\x82\x00\x00\x00'
+p535
+tp536
+Rp537
+(dp538
+sg8
+(g12
+S'\x83\x00\x00\x00'
+p539
+tp540
+Rp541
+(dp542
+sg8
+(g12
+S'\x84\x00\x00\x00'
+p543
+tp544
+Rp545
+(dp546
+sg8
+(g12
+S'\x85\x00\x00\x00'
+p547
+tp548
+Rp549
+(dp550
+sg8
+(g12
+S'\x86\x00\x00\x00'
+p551
+tp552
+Rp553
+(dp554
+sg8
+(g12
+S'\x87\x00\x00\x00'
+p555
+tp556
+Rp557
+(dp558
+sg8
+(g12
+S'\x88\x00\x00\x00'
+p559
+tp560
+Rp561
+(dp562
+sg8
+(g12
+S'\x89\x00\x00\x00'
+p563
+tp564
+Rp565
+(dp566
+sg8
+(g12
+S'\x8a\x00\x00\x00'
+p567
+tp568
+Rp569
+(dp570
+sg8
+(g12
+S'\x8b\x00\x00\x00'
+p571
+tp572
+Rp573
+(dp574
+sg8
+(g12
+S'\x8c\x00\x00\x00'
+p575
+tp576
+Rp577
+(dp578
+sg8
+(g12
+S'\x8d\x00\x00\x00'
+p579
+tp580
+Rp581
+(dp582
+sg8
+(g12
+S'\x8e\x00\x00\x00'
+p583
+tp584
+Rp585
+(dp586
+sg8
+(g12
+S'\x8f\x00\x00\x00'
+p587
+tp588
+Rp589
+(dp590
+sg8
+(g12
+S'\x90\x00\x00\x00'
+p591
+tp592
+Rp593
+(dp594
+sg8
+(g12
+S'\x91\x00\x00\x00'
+p595
+tp596
+Rp597
+(dp598
+sg8
+(g12
+S'\x92\x00\x00\x00'
+p599
+tp600
+Rp601
+(dp602
+sg8
+(g12
+S'\x93\x00\x00\x00'
+p603
+tp604
+Rp605
+(dp606
+sg8
+(g12
+S'\x94\x00\x00\x00'
+p607
+tp608
+Rp609
+(dp610
+sg8
+(g12
+S'\x95\x00\x00\x00'
+p611
+tp612
+Rp613
+(dp614
+sg8
+(g12
+S'\x96\x00\x00\x00'
+p615
+tp616
+Rp617
+(dp618
+sg8
+(g12
+S'\x97\x00\x00\x00'
+p619
+tp620
+Rp621
+(dp622
+sg8
+(g12
+S'\x98\x00\x00\x00'
+p623
+tp624
+Rp625
+(dp626
+sg8
+(g12
+S'\x99\x00\x00\x00'
+p627
+tp628
+Rp629
+(dp630
+sg8
+(g12
+S'\x9a\x00\x00\x00'
+p631
+tp632
+Rp633
+(dp634
+sg8
+(g12
+S'\x9b\x00\x00\x00'
+p635
+tp636
+Rp637
+(dp638
+sg8
+(g12
+S'\x9c\x00\x00\x00'
+p639
+tp640
+Rp641
+(dp642
+sg8
+(g12
+S'\x9d\x00\x00\x00'
+p643
+tp644
+Rp645
+(dp646
+sg8
+(g12
+S'\x9e\x00\x00\x00'
+p647
+tp648
+Rp649
+(dp650
+sg8
+(g12
+S'\x9f\x00\x00\x00'
+p651
+tp652
+Rp653
+(dp654
+sg8
+(g12
+S'\xa0\x00\x00\x00'
+p655
+tp656
+Rp657
+(dp658
+sg8
+(g12
+S'\xa1\x00\x00\x00'
+p659
+tp660
+Rp661
+(dp662
+sg8
+(g12
+S'\xa2\x00\x00\x00'
+p663
+tp664
+Rp665
+(dp666
+sg8
+(g12
+S'\xa3\x00\x00\x00'
+p667
+tp668
+Rp669
+(dp670
+sg8
+(g12
+S'\xa4\x00\x00\x00'
+p671
+tp672
+Rp673
+(dp674
+sg8
+(g12
+S'\xa5\x00\x00\x00'
+p675
+tp676
+Rp677
+(dp678
+sg8
+(g12
+S'\xa6\x00\x00\x00'
+p679
+tp680
+Rp681
+(dp682
+sg8
+(g12
+S'\xa7\x00\x00\x00'
+p683
+tp684
+Rp685
+(dp686
+sg8
+(g12
+S'\xa8\x00\x00\x00'
+p687
+tp688
+Rp689
+(dp690
+sg8
+(g12
+S'\xa9\x00\x00\x00'
+p691
+tp692
+Rp693
+(dp694
+sg8
+(g12
+S'\xaa\x00\x00\x00'
+p695
+tp696
+Rp697
+(dp698
+sg8
+(g12
+S'\xab\x00\x00\x00'
+p699
+tp700
+Rp701
+(dp702
+sg8
+(g12
+S'\xac\x00\x00\x00'
+p703
+tp704
+Rp705
+(dp706
+sg8
+(g12
+S'\xad\x00\x00\x00'
+p707
+tp708
+Rp709
+(dp710
+sg8
+(g12
+S'\xae\x00\x00\x00'
+p711
+tp712
+Rp713
+(dp714
+sg8
+(g12
+S'\xaf\x00\x00\x00'
+p715
+tp716
+Rp717
+(dp718
+sg8
+(g12
+S'\xb0\x00\x00\x00'
+p719
+tp720
+Rp721
+(dp722
+sg8
+(g12
+S'\xb1\x00\x00\x00'
+p723
+tp724
+Rp725
+(dp726
+sg8
+(g12
+S'\xb2\x00\x00\x00'
+p727
+tp728
+Rp729
+(dp730
+sg8
+(g12
+S'\xb3\x00\x00\x00'
+p731
+tp732
+Rp733
+(dp734
+sg8
+(g12
+S'\xb4\x00\x00\x00'
+p735
+tp736
+Rp737
+(dp738
+sg8
+(g12
+S'\xb5\x00\x00\x00'
+p739
+tp740
+Rp741
+(dp742
+sg8
+(g12
+S'\xb6\x00\x00\x00'
+p743
+tp744
+Rp745
+(dp746
+sg8
+(g12
+S'\xb7\x00\x00\x00'
+p747
+tp748
+Rp749
+(dp750
+sg8
+(g12
+S'\xb8\x00\x00\x00'
+p751
+tp752
+Rp753
+(dp754
+sg8
+(g12
+S'\xb9\x00\x00\x00'
+p755
+tp756
+Rp757
+(dp758
+sg8
+(g12
+S'\xba\x00\x00\x00'
+p759
+tp760
+Rp761
+(dp762
+sg8
+(g12
+S'\xbb\x00\x00\x00'
+p763
+tp764
+Rp765
+(dp766
+sg8
+(g12
+S'\xbc\x00\x00\x00'
+p767
+tp768
+Rp769
+(dp770
+sg8
+(g12
+S'\xbd\x00\x00\x00'
+p771
+tp772
+Rp773
+(dp774
+sg8
+(g12
+S'\xbe\x00\x00\x00'
+p775
+tp776
+Rp777
+(dp778
+sg8
+(g12
+S'\xbf\x00\x00\x00'
+p779
+tp780
+Rp781
+(dp782
+sg8
+(g12
+S'\xc0\x00\x00\x00'
+p783
+tp784
+Rp785
+(dp786
+sg8
+(g12
+S'\xc1\x00\x00\x00'
+p787
+tp788
+Rp789
+(dp790
+sg8
+(g12
+S'\xc2\x00\x00\x00'
+p791
+tp792
+Rp793
+(dp794
+sg8
+(g12
+S'\xc3\x00\x00\x00'
+p795
+tp796
+Rp797
+(dp798
+sg8
+(g12
+S'\xc4\x00\x00\x00'
+p799
+tp800
+Rp801
+(dp802
+sg8
+(g12
+S'\xc5\x00\x00\x00'
+p803
+tp804
+Rp805
+(dp806
+sg8
+(g12
+S'\xc6\x00\x00\x00'
+p807
+tp808
+Rp809
+(dp810
+sg8
+(g12
+S'\xc7\x00\x00\x00'
+p811
+tp812
+Rp813
+(dp814
+sg8
+(g12
+S'\xc8\x00\x00\x00'
+p815
+tp816
+Rp817
+(dp818
+sg8
+(g12
+S'\xc9\x00\x00\x00'
+p819
+tp820
+Rp821
+(dp822
+sg8
+(g12
+S'\xca\x00\x00\x00'
+p823
+tp824
+Rp825
+(dp826
+sg8
+(g12
+S'\xcb\x00\x00\x00'
+p827
+tp828
+Rp829
+(dp830
+sg8
+(g12
+S'\xcc\x00\x00\x00'
+p831
+tp832
+Rp833
+(dp834
+sg8
+(g12
+S'\xcd\x00\x00\x00'
+p835
+tp836
+Rp837
+(dp838
+sg8
+(g12
+S'\xce\x00\x00\x00'
+p839
+tp840
+Rp841
+(dp842
+sg8
+(g12
+S'\xcf\x00\x00\x00'
+p843
+tp844
+Rp845
+(dp846
+sg8
+(g12
+S'\xd0\x00\x00\x00'
+p847
+tp848
+Rp849
+(dp850
+sg8
+(g12
+S'\xd1\x00\x00\x00'
+p851
+tp852
+Rp853
+(dp854
+sg8
+(g12
+S'\xd2\x00\x00\x00'
+p855
+tp856
+Rp857
+(dp858
+sg8
+(g12
+S'\xd3\x00\x00\x00'
+p859
+tp860
+Rp861
+(dp862
+sg8
+(g12
+S'\xd4\x00\x00\x00'
+p863
+tp864
+Rp865
+(dp866
+sg8
+(g12
+S'\xd5\x00\x00\x00'
+p867
+tp868
+Rp869
+(dp870
+sg8
+(g12
+S'\xd6\x00\x00\x00'
+p871
+tp872
+Rp873
+(dp874
+sg8
+(g12
+S'\xd7\x00\x00\x00'
+p875
+tp876
+Rp877
+(dp878
+sg8
+(g12
+S'\xd8\x00\x00\x00'
+p879
+tp880
+Rp881
+(dp882
+sg8
+(g12
+S'\xd9\x00\x00\x00'
+p883
+tp884
+Rp885
+(dp886
+sg8
+(g12
+S'\xda\x00\x00\x00'
+p887
+tp888
+Rp889
+(dp890
+sg8
+(g12
+S'\xdb\x00\x00\x00'
+p891
+tp892
+Rp893
+(dp894
+sg8
+(g12
+S'\xdc\x00\x00\x00'
+p895
+tp896
+Rp897
+(dp898
+sg8
+(g12
+S'\xdd\x00\x00\x00'
+p899
+tp900
+Rp901
+(dp902
+sg8
+(g12
+S'\xde\x00\x00\x00'
+p903
+tp904
+Rp905
+(dp906
+sg8
+(g12
+S'\xdf\x00\x00\x00'
+p907
+tp908
+Rp909
+(dp910
+sg8
+(g12
+S'\xe0\x00\x00\x00'
+p911
+tp912
+Rp913
+(dp914
+sg8
+(g12
+S'\xe1\x00\x00\x00'
+p915
+tp916
+Rp917
+(dp918
+sg8
+(g12
+S'\xe2\x00\x00\x00'
+p919
+tp920
+Rp921
+(dp922
+sg8
+(g12
+S'\xe3\x00\x00\x00'
+p923
+tp924
+Rp925
+(dp926
+sg8
+(g12
+S'\xe4\x00\x00\x00'
+p927
+tp928
+Rp929
+(dp930
+sg8
+(g12
+S'\xe5\x00\x00\x00'
+p931
+tp932
+Rp933
+(dp934
+sg8
+(g12
+S'\xe6\x00\x00\x00'
+p935
+tp936
+Rp937
+(dp938
+sg8
+(g12
+S'\xe7\x00\x00\x00'
+p939
+tp940
+Rp941
+(dp942
+sg8
+(g12
+S'\xe8\x00\x00\x00'
+p943
+tp944
+Rp945
+(dp946
+sg8
+(g12
+S'\xe9\x00\x00\x00'
+p947
+tp948
+Rp949
+(dp950
+sg8
+(g12
+S'\xea\x00\x00\x00'
+p951
+tp952
+Rp953
+(dp954
+sg8
+(g12
+S'\xeb\x00\x00\x00'
+p955
+tp956
+Rp957
+(dp958
+sg8
+(g12
+S'\xec\x00\x00\x00'
+p959
+tp960
+Rp961
+(dp962
+sg8
+(g12
+S'\xed\x00\x00\x00'
+p963
+tp964
+Rp965
+(dp966
+sg8
+(g12
+S'\xee\x00\x00\x00'
+p967
+tp968
+Rp969
+(dp970
+sg8
+(g12
+S'\xef\x00\x00\x00'
+p971
+tp972
+Rp973
+(dp974
+sg8
+(g12
+S'\xf0\x00\x00\x00'
+p975
+tp976
+Rp977
+(dp978
+sg8
+(g12
+S'\xf1\x00\x00\x00'
+p979
+tp980
+Rp981
+(dp982
+sg8
+(g12
+S'\xf2\x00\x00\x00'
+p983
+tp984
+Rp985
+(dp986
+sg8
+(g12
+S'\xf3\x00\x00\x00'
+p987
+tp988
+Rp989
+(dp990
+sg8
+(g12
+S'\xf4\x00\x00\x00'
+p991
+tp992
+Rp993
+(dp994
+sg8
+(g12
+S'\xf5\x00\x00\x00'
+p995
+tp996
+Rp997
+(dp998
+sg8
+(g12
+S'\xf6\x00\x00\x00'
+p999
+tp1000
+Rp1001
+(dp1002
+sg8
+(g12
+S'\xf7\x00\x00\x00'
+p1003
+tp1004
+Rp1005
+(dp1006
+sg8
+(g12
+S'\xf8\x00\x00\x00'
+p1007
+tp1008
+Rp1009
+(dp1010
+sg8
+(g12
+S'\xf9\x00\x00\x00'
+p1011
+tp1012
+Rp1013
+(dp1014
+sg8
+(g12
+S'\xfa\x00\x00\x00'
+p1015
+tp1016
+Rp1017
+(dp1018
+sg8
+(g12
+S'\xfb\x00\x00\x00'
+p1019
+tp1020
+Rp1021
+(dp1022
+sg8
+(g12
+S'\xfc\x00\x00\x00'
+p1023
+tp1024
+Rp1025
+(dp1026
+sg8
+(g12
+S'\xfd\x00\x00\x00'
+p1027
+tp1028
+Rp1029
+(dp1030
+sg8
+(g12
+S'\xfe\x00\x00\x00'
+p1031
+tp1032
+Rp1033
+(dp1034
+sg8
+(g12
+S'\xff\x00\x00\x00'
+p1035
+tp1036
+Rp1037
+(dp1038
+sg8
+(g12
+S'\x00\x01\x00\x00'
+p1039
+tp1040
+Rp1041
+(dp1042
+sg8
+(g12
+S'\x01\x01\x00\x00'
+p1043
+tp1044
+Rp1045
+(dp1046
+sg8
+(g12
+S'\x02\x01\x00\x00'
+p1047
+tp1048
+Rp1049
+(dp1050
+sg8
+(g12
+S'\x03\x01\x00\x00'
+p1051
+tp1052
+Rp1053
+(dp1054
+sg8
+(g12
+S'\x04\x01\x00\x00'
+p1055
+tp1056
+Rp1057
+(dp1058
+sg8
+(g12
+S'\x05\x01\x00\x00'
+p1059
+tp1060
+Rp1061
+(dp1062
+sg8
+(g12
+S'\x06\x01\x00\x00'
+p1063
+tp1064
+Rp1065
+(dp1066
+sg8
+(g12
+S'\x07\x01\x00\x00'
+p1067
+tp1068
+Rp1069
+(dp1070
+sg8
+(g12
+S'\x08\x01\x00\x00'
+p1071
+tp1072
+Rp1073
+(dp1074
+sg8
+(g12
+S'\t\x01\x00\x00'
+p1075
+tp1076
+Rp1077
+(dp1078
+sg8
+(g12
+S'\n\x01\x00\x00'
+p1079
+tp1080
+Rp1081
+(dp1082
+sg8
+(g12
+S'\x0b\x01\x00\x00'
+p1083
+tp1084
+Rp1085
+(dp1086
+sg8
+(g12
+S'\x0c\x01\x00\x00'
+p1087
+tp1088
+Rp1089
+(dp1090
+sg8
+(g12
+S'\r\x01\x00\x00'
+p1091
+tp1092
+Rp1093
+(dp1094
+sg8
+(g12
+S'\x0e\x01\x00\x00'
+p1095
+tp1096
+Rp1097
+(dp1098
+sg8
+(g12
+S'\x0f\x01\x00\x00'
+p1099
+tp1100
+Rp1101
+(dp1102
+sg8
+(g12
+S'\x10\x01\x00\x00'
+p1103
+tp1104
+Rp1105
+(dp1106
+sg8
+(g12
+S'\x11\x01\x00\x00'
+p1107
+tp1108
+Rp1109
+(dp1110
+sg8
+(g12
+S'\x12\x01\x00\x00'
+p1111
+tp1112
+Rp1113
+(dp1114
+sg8
+(g12
+S'\x13\x01\x00\x00'
+p1115
+tp1116
+Rp1117
+(dp1118
+sg8
+(g12
+S'\x14\x01\x00\x00'
+p1119
+tp1120
+Rp1121
+(dp1122
+sg8
+(g12
+S'\x15\x01\x00\x00'
+p1123
+tp1124
+Rp1125
+(dp1126
+sg8
+(g12
+S'\x16\x01\x00\x00'
+p1127
+tp1128
+Rp1129
+(dp1130
+sg8
+(g12
+S'\x17\x01\x00\x00'
+p1131
+tp1132
+Rp1133
+(dp1134
+sg8
+(g12
+S'\x18\x01\x00\x00'
+p1135
+tp1136
+Rp1137
+(dp1138
+sg8
+(g12
+S'\x19\x01\x00\x00'
+p1139
+tp1140
+Rp1141
+(dp1142
+sg8
+(g12
+S'\x1a\x01\x00\x00'
+p1143
+tp1144
+Rp1145
+(dp1146
+sg8
+(g12
+S'\x1b\x01\x00\x00'
+p1147
+tp1148
+Rp1149
+(dp1150
+sg8
+(g12
+S'\x1c\x01\x00\x00'
+p1151
+tp1152
+Rp1153
+(dp1154
+sg8
+(g12
+S'\x1d\x01\x00\x00'
+p1155
+tp1156
+Rp1157
+(dp1158
+sg8
+(g12
+S'\x1e\x01\x00\x00'
+p1159
+tp1160
+Rp1161
+(dp1162
+sg8
+(g12
+S'\x1f\x01\x00\x00'
+p1163
+tp1164
+Rp1165
+(dp1166
+sg8
+(g12
+S' \x01\x00\x00'
+p1167
+tp1168
+Rp1169
+(dp1170
+sg8
+(g12
+S'!\x01\x00\x00'
+p1171
+tp1172
+Rp1173
+(dp1174
+sg8
+(g12
+S'"\x01\x00\x00'
+p1175
+tp1176
+Rp1177
+(dp1178
+sg8
+(g12
+S'#\x01\x00\x00'
+p1179
+tp1180
+Rp1181
+(dp1182
+sg8
+(g12
+S'$\x01\x00\x00'
+p1183
+tp1184
+Rp1185
+(dp1186
+sg8
+(g12
+S'%\x01\x00\x00'
+p1187
+tp1188
+Rp1189
+(dp1190
+sg8
+(g12
+S'&\x01\x00\x00'
+p1191
+tp1192
+Rp1193
+(dp1194
+sg8
+(g12
+S"'\x01\x00\x00"
+p1195
+tp1196
+Rp1197
+(dp1198
+sg8
+(g12
+S'(\x01\x00\x00'
+p1199
+tp1200
+Rp1201
+(dp1202
+sg8
+(g12
+S')\x01\x00\x00'
+p1203
+tp1204
+Rp1205
+(dp1206
+sg8
+(g12
+S'*\x01\x00\x00'
+p1207
+tp1208
+Rp1209
+(dp1210
+sg8
+(g12
+S'+\x01\x00\x00'
+p1211
+tp1212
+Rp1213
+(dp1214
+sg8
+(g12
+S',\x01\x00\x00'
+p1215
+tp1216
+Rp1217
+(dp1218
+sg8
+(g12
+S'-\x01\x00\x00'
+p1219
+tp1220
+Rp1221
+(dp1222
+sg8
+(g12
+S'.\x01\x00\x00'
+p1223
+tp1224
+Rp1225
+(dp1226
+sg8
+(g12
+S'/\x01\x00\x00'
+p1227
+tp1228
+Rp1229
+(dp1230
+sg8
+(g12
+S'0\x01\x00\x00'
+p1231
+tp1232
+Rp1233
+(dp1234
+sg8
+(g12
+S'1\x01\x00\x00'
+p1235
+tp1236
+Rp1237
+(dp1238
+sg8
+(g12
+S'2\x01\x00\x00'
+p1239
+tp1240
+Rp1241
+(dp1242
+sg8
+(g12
+S'3\x01\x00\x00'
+p1243
+tp1244
+Rp1245
+(dp1246
+sg8
+(g12
+S'4\x01\x00\x00'
+p1247
+tp1248
+Rp1249
+(dp1250
+sg8
+(g12
+S'5\x01\x00\x00'
+p1251
+tp1252
+Rp1253
+(dp1254
+sg8
+(g12
+S'6\x01\x00\x00'
+p1255
+tp1256
+Rp1257
+(dp1258
+sg8
+(g12
+S'7\x01\x00\x00'
+p1259
+tp1260
+Rp1261
+(dp1262
+sg8
+(g12
+S'8\x01\x00\x00'
+p1263
+tp1264
+Rp1265
+(dp1266
+sg8
+(g12
+S'9\x01\x00\x00'
+p1267
+tp1268
+Rp1269
+(dp1270
+sg8
+(g12
+S':\x01\x00\x00'
+p1271
+tp1272
+Rp1273
+(dp1274
+sg8
+(g12
+S';\x01\x00\x00'
+p1275
+tp1276
+Rp1277
+(dp1278
+sg8
+(g12
+S'<\x01\x00\x00'
+p1279
+tp1280
+Rp1281
+(dp1282
+sg8
+(g12
+S'=\x01\x00\x00'
+p1283
+tp1284
+Rp1285
+(dp1286
+sg8
+(g12
+S'>\x01\x00\x00'
+p1287
+tp1288
+Rp1289
+(dp1290
+sg8
+(g12
+S'?\x01\x00\x00'
+p1291
+tp1292
+Rp1293
+(dp1294
+sg8
+(g12
+S'@\x01\x00\x00'
+p1295
+tp1296
+Rp1297
+(dp1298
+sg8
+(g12
+S'A\x01\x00\x00'
+p1299
+tp1300
+Rp1301
+(dp1302
+sg8
+(g12
+S'B\x01\x00\x00'
+p1303
+tp1304
+Rp1305
+(dp1306
+sg8
+(g12
+S'C\x01\x00\x00'
+p1307
+tp1308
+Rp1309
+(dp1310
+sg8
+(g12
+S'D\x01\x00\x00'
+p1311
+tp1312
+Rp1313
+(dp1314
+sg8
+(g12
+S'E\x01\x00\x00'
+p1315
+tp1316
+Rp1317
+(dp1318
+sg8
+(g12
+S'F\x01\x00\x00'
+p1319
+tp1320
+Rp1321
+(dp1322
+sg8
+(g12
+S'G\x01\x00\x00'
+p1323
+tp1324
+Rp1325
+(dp1326
+sg8
+(g12
+S'H\x01\x00\x00'
+p1327
+tp1328
+Rp1329
+(dp1330
+sg8
+(g12
+S'I\x01\x00\x00'
+p1331
+tp1332
+Rp1333
+(dp1334
+sg8
+(g12
+S'J\x01\x00\x00'
+p1335
+tp1336
+Rp1337
+(dp1338
+sg8
+(g12
+S'K\x01\x00\x00'
+p1339
+tp1340
+Rp1341
+(dp1342
+sg8
+(g12
+S'L\x01\x00\x00'
+p1343
+tp1344
+Rp1345
+(dp1346
+sg8
+(g12
+S'M\x01\x00\x00'
+p1347
+tp1348
+Rp1349
+(dp1350
+sg8
+(g12
+S'N\x01\x00\x00'
+p1351
+tp1352
+Rp1353
+(dp1354
+sg8
+(g12
+S'O\x01\x00\x00'
+p1355
+tp1356
+Rp1357
+(dp1358
+sg8
+(g12
+S'P\x01\x00\x00'
+p1359
+tp1360
+Rp1361
+(dp1362
+sg8
+(g12
+S'Q\x01\x00\x00'
+p1363
+tp1364
+Rp1365
+(dp1366
+sg8
+(g12
+S'R\x01\x00\x00'
+p1367
+tp1368
+Rp1369
+(dp1370
+sg8
+(g12
+S'S\x01\x00\x00'
+p1371
+tp1372
+Rp1373
+(dp1374
+sg8
+(g12
+S'T\x01\x00\x00'
+p1375
+tp1376
+Rp1377
+(dp1378
+sg8
+(g12
+S'U\x01\x00\x00'
+p1379
+tp1380
+Rp1381
+(dp1382
+sg8
+(g12
+S'V\x01\x00\x00'
+p1383
+tp1384
+Rp1385
+(dp1386
+sg8
+(g12
+S'W\x01\x00\x00'
+p1387
+tp1388
+Rp1389
+(dp1390
+sg8
+(g12
+S'X\x01\x00\x00'
+p1391
+tp1392
+Rp1393
+(dp1394
+sg8
+(g12
+S'Y\x01\x00\x00'
+p1395
+tp1396
+Rp1397
+(dp1398
+sg8
+(g12
+S'Z\x01\x00\x00'
+p1399
+tp1400
+Rp1401
+(dp1402
+sg8
+(g12
+S'[\x01\x00\x00'
+p1403
+tp1404
+Rp1405
+(dp1406
+sg8
+(g12
+S'\\\x01\x00\x00'
+p1407
+tp1408
+Rp1409
+(dp1410
+sg8
+(g12
+S']\x01\x00\x00'
+p1411
+tp1412
+Rp1413
+(dp1414
+sg8
+(g12
+S'^\x01\x00\x00'
+p1415
+tp1416
+Rp1417
+(dp1418
+sg8
+(g12
+S'_\x01\x00\x00'
+p1419
+tp1420
+Rp1421
+(dp1422
+sg8
+(g12
+S'`\x01\x00\x00'
+p1423
+tp1424
+Rp1425
+(dp1426
+sg8
+(g12
+S'a\x01\x00\x00'
+p1427
+tp1428
+Rp1429
+(dp1430
+sg8
+(g12
+S'b\x01\x00\x00'
+p1431
+tp1432
+Rp1433
+(dp1434
+sg8
+(g12
+S'c\x01\x00\x00'
+p1435
+tp1436
+Rp1437
+(dp1438
+sg8
+(g12
+S'd\x01\x00\x00'
+p1439
+tp1440
+Rp1441
+(dp1442
+sg8
+(g12
+S'e\x01\x00\x00'
+p1443
+tp1444
+Rp1445
+(dp1446
+sg8
+(g12
+S'f\x01\x00\x00'
+p1447
+tp1448
+Rp1449
+(dp1450
+sg8
+(g12
+S'g\x01\x00\x00'
+p1451
+tp1452
+Rp1453
+(dp1454
+sg8
+(g12
+S'h\x01\x00\x00'
+p1455
+tp1456
+Rp1457
+(dp1458
+sg8
+(g12
+S'i\x01\x00\x00'
+p1459
+tp1460
+Rp1461
+(dp1462
+sg8
+(g12
+S'j\x01\x00\x00'
+p1463
+tp1464
+Rp1465
+(dp1466
+sg8
+(g12
+S'k\x01\x00\x00'
+p1467
+tp1468
+Rp1469
+(dp1470
+sg8
+(g12
+S'l\x01\x00\x00'
+p1471
+tp1472
+Rp1473
+(dp1474
+sg8
+(g12
+S'm\x01\x00\x00'
+p1475
+tp1476
+Rp1477
+(dp1478
+sg8
+(g12
+S'n\x01\x00\x00'
+p1479
+tp1480
+Rp1481
+(dp1482
+sg8
+(g12
+S'o\x01\x00\x00'
+p1483
+tp1484
+Rp1485
+(dp1486
+sg8
+(g12
+S'p\x01\x00\x00'
+p1487
+tp1488
+Rp1489
+(dp1490
+sg8
+(g12
+S'q\x01\x00\x00'
+p1491
+tp1492
+Rp1493
+(dp1494
+sg8
+(g12
+S'r\x01\x00\x00'
+p1495
+tp1496
+Rp1497
+(dp1498
+sg8
+(g12
+S's\x01\x00\x00'
+p1499
+tp1500
+Rp1501
+(dp1502
+sg8
+(g12
+S't\x01\x00\x00'
+p1503
+tp1504
+Rp1505
+(dp1506
+sg8
+(g12
+S'u\x01\x00\x00'
+p1507
+tp1508
+Rp1509
+(dp1510
+sg8
+(g12
+S'v\x01\x00\x00'
+p1511
+tp1512
+Rp1513
+(dp1514
+sg8
+(g12
+S'w\x01\x00\x00'
+p1515
+tp1516
+Rp1517
+(dp1518
+sg8
+(g12
+S'x\x01\x00\x00'
+p1519
+tp1520
+Rp1521
+(dp1522
+sg8
+(g12
+S'y\x01\x00\x00'
+p1523
+tp1524
+Rp1525
+(dp1526
+sg8
+(g12
+S'z\x01\x00\x00'
+p1527
+tp1528
+Rp1529
+(dp1530
+sg8
+(g12
+S'{\x01\x00\x00'
+p1531
+tp1532
+Rp1533
+(dp1534
+sg8
+(g12
+S'|\x01\x00\x00'
+p1535
+tp1536
+Rp1537
+(dp1538
+sg8
+(g12
+S'}\x01\x00\x00'
+p1539
+tp1540
+Rp1541
+(dp1542
+sg8
+(g12
+S'~\x01\x00\x00'
+p1543
+tp1544
+Rp1545
+(dp1546
+sg8
+(g12
+S'\x7f\x01\x00\x00'
+p1547
+tp1548
+Rp1549
+(dp1550
+sg8
+(g12
+S'\x80\x01\x00\x00'
+p1551
+tp1552
+Rp1553
+(dp1554
+sg8
+(g12
+S'\x81\x01\x00\x00'
+p1555
+tp1556
+Rp1557
+(dp1558
+sg8
+(g12
+S'\x82\x01\x00\x00'
+p1559
+tp1560
+Rp1561
+(dp1562
+sg8
+(g12
+S'\x83\x01\x00\x00'
+p1563
+tp1564
+Rp1565
+(dp1566
+sg8
+(g12
+S'\x84\x01\x00\x00'
+p1567
+tp1568
+Rp1569
+(dp1570
+sg8
+(g12
+S'\x85\x01\x00\x00'
+p1571
+tp1572
+Rp1573
+(dp1574
+sg8
+(g12
+S'\x86\x01\x00\x00'
+p1575
+tp1576
+Rp1577
+(dp1578
+sg8
+(g12
+S'\x87\x01\x00\x00'
+p1579
+tp1580
+Rp1581
+(dp1582
+sg8
+(g12
+S'\x88\x01\x00\x00'
+p1583
+tp1584
+Rp1585
+(dp1586
+sg8
+(g12
+S'\x89\x01\x00\x00'
+p1587
+tp1588
+Rp1589
+(dp1590
+sg8
+(g12
+S'\x8a\x01\x00\x00'
+p1591
+tp1592
+Rp1593
+(dp1594
+sg8
+(g12
+S'\x8b\x01\x00\x00'
+p1595
+tp1596
+Rp1597
+(dp1598
+sg8
+(g12
+S'\x8c\x01\x00\x00'
+p1599
+tp1600
+Rp1601
+(dp1602
+sg8
+(g12
+S'\x8d\x01\x00\x00'
+p1603
+tp1604
+Rp1605
+(dp1606
+sg8
+(g12
+S'\x8e\x01\x00\x00'
+p1607
+tp1608
+Rp1609
+(dp1610
+sg8
+(g12
+S'\x8f\x01\x00\x00'
+p1611
+tp1612
+Rp1613
+(dp1614
+sg8
+(g12
+S'\x90\x01\x00\x00'
+p1615
+tp1616
+Rp1617
+(dp1618
+sg8
+(g12
+S'\x91\x01\x00\x00'
+p1619
+tp1620
+Rp1621
+(dp1622
+sg8
+(g12
+S'\x92\x01\x00\x00'
+p1623
+tp1624
+Rp1625
+(dp1626
+sg8
+(g12
+S'\x93\x01\x00\x00'
+p1627
+tp1628
+Rp1629
+(dp1630
+sg8
+(g12
+S'\x94\x01\x00\x00'
+p1631
+tp1632
+Rp1633
+(dp1634
+sg8
+(g12
+S'\x95\x01\x00\x00'
+p1635
+tp1636
+Rp1637
+(dp1638
+sg8
+(g12
+S'\x96\x01\x00\x00'
+p1639
+tp1640
+Rp1641
+(dp1642
+sg8
+(g12
+S'\x97\x01\x00\x00'
+p1643
+tp1644
+Rp1645
+(dp1646
+sg8
+(g12
+S'\x98\x01\x00\x00'
+p1647
+tp1648
+Rp1649
+(dp1650
+sg8
+(g12
+S'\x99\x01\x00\x00'
+p1651
+tp1652
+Rp1653
+(dp1654
+sg8
+(g12
+S'\x9a\x01\x00\x00'
+p1655
+tp1656
+Rp1657
+(dp1658
+sg8
+(g12
+S'\x9b\x01\x00\x00'
+p1659
+tp1660
+Rp1661
+(dp1662
+sg8
+(g12
+S'\x9c\x01\x00\x00'
+p1663
+tp1664
+Rp1665
+(dp1666
+sg8
+(g12
+S'\x9d\x01\x00\x00'
+p1667
+tp1668
+Rp1669
+(dp1670
+sg8
+(g12
+S'\x9e\x01\x00\x00'
+p1671
+tp1672
+Rp1673
+(dp1674
+sg8
+(g12
+S'\x9f\x01\x00\x00'
+p1675
+tp1676
+Rp1677
+(dp1678
+sg8
+(g12
+S'\xa0\x01\x00\x00'
+p1679
+tp1680
+Rp1681
+(dp1682
+sg8
+(g12
+S'\xa1\x01\x00\x00'
+p1683
+tp1684
+Rp1685
+(dp1686
+sg8
+(g12
+S'\xa2\x01\x00\x00'
+p1687
+tp1688
+Rp1689
+(dp1690
+sg8
+(g12
+S'\xa3\x01\x00\x00'
+p1691
+tp1692
+Rp1693
+(dp1694
+sg8
+(g12
+S'\xa4\x01\x00\x00'
+p1695
+tp1696
+Rp1697
+(dp1698
+sg8
+(g12
+S'\xa5\x01\x00\x00'
+p1699
+tp1700
+Rp1701
+(dp1702
+sg8
+(g12
+S'\xa6\x01\x00\x00'
+p1703
+tp1704
+Rp1705
+(dp1706
+sg8
+(g12
+S'\xa7\x01\x00\x00'
+p1707
+tp1708
+Rp1709
+(dp1710
+sg8
+(g12
+S'\xa8\x01\x00\x00'
+p1711
+tp1712
+Rp1713
+(dp1714
+sg8
+(g12
+S'\xa9\x01\x00\x00'
+p1715
+tp1716
+Rp1717
+(dp1718
+sg8
+(g12
+S'\xaa\x01\x00\x00'
+p1719
+tp1720
+Rp1721
+(dp1722
+sg8
+(g12
+S'\xab\x01\x00\x00'
+p1723
+tp1724
+Rp1725
+(dp1726
+sg8
+(g12
+S'\xac\x01\x00\x00'
+p1727
+tp1728
+Rp1729
+(dp1730
+sg8
+(g12
+S'\xad\x01\x00\x00'
+p1731
+tp1732
+Rp1733
+(dp1734
+sg8
+(g12
+S'\xae\x01\x00\x00'
+p1735
+tp1736
+Rp1737
+(dp1738
+sg8
+(g12
+S'\xaf\x01\x00\x00'
+p1739
+tp1740
+Rp1741
+(dp1742
+sg8
+(g12
+S'\xb0\x01\x00\x00'
+p1743
+tp1744
+Rp1745
+(dp1746
+sg8
+(g12
+S'\xb1\x01\x00\x00'
+p1747
+tp1748
+Rp1749
+(dp1750
+sg8
+(g12
+S'\xb2\x01\x00\x00'
+p1751
+tp1752
+Rp1753
+(dp1754
+sg8
+(g12
+S'\xb3\x01\x00\x00'
+p1755
+tp1756
+Rp1757
+(dp1758
+sg8
+(g12
+S'\xb4\x01\x00\x00'
+p1759
+tp1760
+Rp1761
+(dp1762
+sg8
+(g12
+S'\xb5\x01\x00\x00'
+p1763
+tp1764
+Rp1765
+(dp1766
+sg8
+(g12
+S'\xb6\x01\x00\x00'
+p1767
+tp1768
+Rp1769
+(dp1770
+sg8
+(g12
+S'\xb7\x01\x00\x00'
+p1771
+tp1772
+Rp1773
+(dp1774
+sg8
+(g12
+S'\xb8\x01\x00\x00'
+p1775
+tp1776
+Rp1777
+(dp1778
+sg8
+(g12
+S'\xb9\x01\x00\x00'
+p1779
+tp1780
+Rp1781
+(dp1782
+sg8
+(g12
+S'\xba\x01\x00\x00'
+p1783
+tp1784
+Rp1785
+(dp1786
+sg8
+(g12
+S'\xbb\x01\x00\x00'
+p1787
+tp1788
+Rp1789
+(dp1790
+sg8
+(g12
+S'\xbc\x01\x00\x00'
+p1791
+tp1792
+Rp1793
+(dp1794
+sg8
+(g12
+S'\xbd\x01\x00\x00'
+p1795
+tp1796
+Rp1797
+(dp1798
+sg8
+(g12
+S'\xbe\x01\x00\x00'
+p1799
+tp1800
+Rp1801
+(dp1802
+sg8
+(g12
+S'\xbf\x01\x00\x00'
+p1803
+tp1804
+Rp1805
+(dp1806
+sg8
+(g12
+S'\xc0\x01\x00\x00'
+p1807
+tp1808
+Rp1809
+(dp1810
+sg8
+(g12
+S'\xc1\x01\x00\x00'
+p1811
+tp1812
+Rp1813
+(dp1814
+sg8
+(g12
+S'\xc2\x01\x00\x00'
+p1815
+tp1816
+Rp1817
+(dp1818
+sg8
+(g12
+S'\xc3\x01\x00\x00'
+p1819
+tp1820
+Rp1821
+(dp1822
+sg8
+(g12
+S'\xc4\x01\x00\x00'
+p1823
+tp1824
+Rp1825
+(dp1826
+sg8
+(g12
+S'\xc5\x01\x00\x00'
+p1827
+tp1828
+Rp1829
+(dp1830
+sg8
+(g12
+S'\xc6\x01\x00\x00'
+p1831
+tp1832
+Rp1833
+(dp1834
+sg8
+(g12
+S'\xc7\x01\x00\x00'
+p1835
+tp1836
+Rp1837
+(dp1838
+sg8
+(g12
+S'\xc8\x01\x00\x00'
+p1839
+tp1840
+Rp1841
+(dp1842
+sg8
+(g12
+S'\xc9\x01\x00\x00'
+p1843
+tp1844
+Rp1845
+(dp1846
+sg8
+(g12
+S'\xca\x01\x00\x00'
+p1847
+tp1848
+Rp1849
+(dp1850
+sg8
+(g12
+S'\xcb\x01\x00\x00'
+p1851
+tp1852
+Rp1853
+(dp1854
+sg8
+(g12
+S'\xcc\x01\x00\x00'
+p1855
+tp1856
+Rp1857
+(dp1858
+sg8
+(g12
+S'\xcd\x01\x00\x00'
+p1859
+tp1860
+Rp1861
+(dp1862
+sg8
+(g12
+S'\xce\x01\x00\x00'
+p1863
+tp1864
+Rp1865
+(dp1866
+sg8
+(g12
+S'\xcf\x01\x00\x00'
+p1867
+tp1868
+Rp1869
+(dp1870
+sg8
+(g12
+S'\xd0\x01\x00\x00'
+p1871
+tp1872
+Rp1873
+(dp1874
+sg8
+(g12
+S'\xd1\x01\x00\x00'
+p1875
+tp1876
+Rp1877
+(dp1878
+sg8
+(g12
+S'\xd2\x01\x00\x00'
+p1879
+tp1880
+Rp1881
+(dp1882
+sg8
+(g12
+S'\xd3\x01\x00\x00'
+p1883
+tp1884
+Rp1885
+(dp1886
+sg8
+(g12
+S'\xd4\x01\x00\x00'
+p1887
+tp1888
+Rp1889
+(dp1890
+sg8
+(g12
+S'\xd5\x01\x00\x00'
+p1891
+tp1892
+Rp1893
+(dp1894
+sg8
+(g12
+S'\xd6\x01\x00\x00'
+p1895
+tp1896
+Rp1897
+(dp1898
+sg8
+(g12
+S'\xd7\x01\x00\x00'
+p1899
+tp1900
+Rp1901
+(dp1902
+sg8
+(g12
+S'\xd8\x01\x00\x00'
+p1903
+tp1904
+Rp1905
+(dp1906
+sg8
+(g12
+S'\xd9\x01\x00\x00'
+p1907
+tp1908
+Rp1909
+(dp1910
+sg8
+(g12
+S'\xda\x01\x00\x00'
+p1911
+tp1912
+Rp1913
+(dp1914
+sg8
+(g12
+S'\xdb\x01\x00\x00'
+p1915
+tp1916
+Rp1917
+(dp1918
+sg8
+(g12
+S'\xdc\x01\x00\x00'
+p1919
+tp1920
+Rp1921
+(dp1922
+sg8
+(g12
+S'\xdd\x01\x00\x00'
+p1923
+tp1924
+Rp1925
+(dp1926
+sg8
+(g12
+S'\xde\x01\x00\x00'
+p1927
+tp1928
+Rp1929
+(dp1930
+sg8
+(g12
+S'\xdf\x01\x00\x00'
+p1931
+tp1932
+Rp1933
+(dp1934
+sg8
+(g12
+S'\xe0\x01\x00\x00'
+p1935
+tp1936
+Rp1937
+(dp1938
+sg8
+(g12
+S'\xe1\x01\x00\x00'
+p1939
+tp1940
+Rp1941
+(dp1942
+sg8
+(g12
+S'\xe2\x01\x00\x00'
+p1943
+tp1944
+Rp1945
+(dp1946
+sg8
+(g12
+S'\xe3\x01\x00\x00'
+p1947
+tp1948
+Rp1949
+(dp1950
+sg8
+(g12
+S'\xe4\x01\x00\x00'
+p1951
+tp1952
+Rp1953
+(dp1954
+sg8
+(g12
+S'\xe5\x01\x00\x00'
+p1955
+tp1956
+Rp1957
+(dp1958
+sg8
+(g12
+S'\xe6\x01\x00\x00'
+p1959
+tp1960
+Rp1961
+(dp1962
+sg8
+(g12
+S'\xe7\x01\x00\x00'
+p1963
+tp1964
+Rp1965
+(dp1966
+sg8
+(g12
+S'\xe8\x01\x00\x00'
+p1967
+tp1968
+Rp1969
+(dp1970
+sg8
+(g12
+S'\xe9\x01\x00\x00'
+p1971
+tp1972
+Rp1973
+(dp1974
+sg8
+(g12
+S'\xea\x01\x00\x00'
+p1975
+tp1976
+Rp1977
+(dp1978
+sg8
+(g12
+S'\xeb\x01\x00\x00'
+p1979
+tp1980
+Rp1981
+(dp1982
+sg8
+(g12
+S'\xec\x01\x00\x00'
+p1983
+tp1984
+Rp1985
+(dp1986
+sg8
+(g12
+S'\xed\x01\x00\x00'
+p1987
+tp1988
+Rp1989
+(dp1990
+sg8
+(g12
+S'\xee\x01\x00\x00'
+p1991
+tp1992
+Rp1993
+(dp1994
+sg8
+(g12
+S'\xef\x01\x00\x00'
+p1995
+tp1996
+Rp1997
+(dp1998
+sg8
+(g12
+S'\xf0\x01\x00\x00'
+p1999
+tp2000
+Rp2001
+(dp2002
+sg8
+(g12
+S'\xf1\x01\x00\x00'
+p2003
+tp2004
+Rp2005
+(dp2006
+sg8
+(g12
+S'\xf2\x01\x00\x00'
+p2007
+tp2008
+Rp2009
+(dp2010
+sg8
+(g12
+S'\xf3\x01\x00\x00'
+p2011
+tp2012
+Rp2013
+(dp2014
+ssS'graph'
+p2015
+(dp2016
+sS'edge'
+p2017
+(dp2018
+g17
+(dp2019
+g8
+(g12
+S'\x00\x00\x00\x00'
+p2020
+tp2021
+Rp2022
+(dp2023
+S'weight'
+p2024
+F9.5999999999999996
+ssg8
+(g12
+S'8\x00\x00\x00'
+p2025
+tp2026
+Rp2027
+(dp2028
+g2024
+F13.714285714285714
+ssI436
+(dp2029
+g2024
+F9.5999999999999996
+ssI446
+(dp2030
+g2024
+F9.5999999999999996
+sssg21
+(dp2031
+g8
+(g12
+S'\x00\x01\x00\x00'
+p2032
+tp2033
+Rp2034
+(dp2035
+g2024
+F2.0425531914893615
+ssg1057
+(dp2036
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'\x06\x01\x00\x00'
+p2037
+tp2038
+Rp2039
+(dp2040
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'\t\x00\x00\x00'
+p2041
+tp2042
+Rp2043
+(dp2044
+g2024
+F2.0869565217391304
+ssg1081
+(dp2045
+g2024
+F2.0425531914893615
+ssg69
+(dp2046
+g2024
+F1.5737704918032787
+ssg8
+(g12
+S'\x8e\x00\x00\x00'
+p2047
+tp2048
+Rp2049
+(dp2050
+g2024
+F2.1333333333333333
+ssg8
+(g12
+S'\x11\x01\x00\x00'
+p2051
+tp2052
+Rp2053
+(dp2054
+g2024
+F2.0425531914893615
+ssg1409
+(dp2055
+g2024
+F2.0869565217391304
+ssg8
+(g12
+S'\x84\x01\x00\x00'
+p2056
+tp2057
+Rp2058
+(dp2059
+g2024
+F2.0425531914893615
+ssg137
+(dp2060
+g2024
+F1.8461538461538463
+ssg161
+(dp2061
+g2024
+F1.4328358208955223
+ssg165
+(dp2062
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'\xa7\x01\x00\x00'
+p2063
+tp2064
+Rp2065
+(dp2066
+g2024
+F2.1333333333333333
+ssg689
+(dp2067
+g2024
+F2.0
+ssg8
+(g12
+S'\xa9\x01\x00\x00'
+p2068
+tp2069
+Rp2070
+(dp2071
+g2024
+F2.1333333333333333
+ssg717
+(dp2072
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'3\x01\x00\x00'
+p2073
+tp2074
+Rp2075
+(dp2076
+g2024
+F2.0869565217391304
+ssg8
+(g12
+S'X\x00\x00\x00'
+p2077
+tp2078
+Rp2079
+(dp2080
+g2024
+F2.1333333333333333
+ssg8
+(g12
+S':\x00\x00\x00'
+p2081
+tp2082
+Rp2083
+(dp2084
+g2024
+F2.0
+ssg8
+(g12
+S'<\x01\x00\x00'
+p2085
+tp2086
+Rp2087
+(dp2088
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'?\x01\x00\x00'
+p2089
+tp2090
+Rp2091
+(dp2092
+g2024
+F2.0
+ssg8
+(g12
+S'C\x01\x00\x00'
+p2093
+tp2094
+Rp2095
+(dp2096
+g2024
+F2.0869565217391304
+ssg8
+(g12
+S'D\x00\x00\x00'
+p2097
+tp2098
+Rp2099
+(dp2100
+g2024
+F2.1333333333333333
+ssg8
+(g12
+S'\xc7\x01\x00\x00'
+p2101
+tp2102
+Rp2103
+(dp2104
+g2024
+F2.1333333333333333
+ssg345
+(dp2105
+g2024
+F1.6000000000000001
+ssg8
+(g12
+S'\xd8\x00\x00\x00'
+p2106
+tp2107
+Rp2108
+(dp2109
+g2024
+F2.0425531914893615
+ssg8
+(g12
+S'Z\x01\x00\x00'
+p2110
+tp2111
+Rp2112
+(dp2113
+g2024
+F2.0
+ssg8
+(g12
+S'\xdc\x01\x00\x00'
+p2114
+tp2115
+Rp2116
+(dp2117
+g2024
+F2.1333333333333333
+ssg8
+(g12
+S'\xe1\x00\x00\x00'
+p2118
+tp2119
+Rp2120
+(dp2121
+g2024
+F2.0425531914893615
+ssg929
+(dp2122
+g2024
+F2.0
+ssg8
+(g12
+S'\x7f\x00\x00\x00'
+p2123
+tp2124
+Rp2125
+(dp2126
+g2024
+F2.1333333333333333
+ssg8
+(g12
+S'\xec\x00\x00\x00'
+p2127
+tp2128
+Rp2129
+(dp2130
+g2024
+F2.0425531914893615
+ssg8
+(g12
+S'm\x01\x00\x00'
+p2131
+tp2132
+Rp2133
+(dp2134
+g2024
+F2.0869565217391304
+ssg461
+(dp2135
+g2024
+F2.0869565217391304
+ssg8
+(g12
+S'\xa8\x01\x00\x00'
+p2136
+tp2137
+Rp2138
+(dp2139
+g2024
+F2.0
+ssg8
+(g12
+S'r\x01\x00\x00'
+p2140
+tp2141
+Rp2142
+(dp2143
+g2024
+F2.1333333333333333
+ssg1001
+(dp2144
+g2024
+F2.0425531914893615
+ssg8
+(g12
+S'x\x01\x00\x00'
+p2145
+tp2146
+Rp2147
+(dp2148
+g2024
+F2.0425531914893615
+ssg8
+(g12
+S'z\x00\x00\x00'
+p2149
+tp2150
+Rp2151
+(dp2152
+g2024
+F2.0
+ssg781
+(dp2153
+g2024
+F2.1333333333333333
+ssg8
+(g12
+S'\xfc\x00\x00\x00'
+p2154
+tp2155
+Rp2156
+(dp2157
+g2024
+F2.0869565217391304
+ssg8
+(g12
+S'~\x01\x00\x00'
+p2158
+tp2159
+Rp2160
+(dp2161
+g2024
+F2.0425531914893615
+ssg8
+(g12
+S'\xff\x00\x00\x00'
+p2162
+tp2163
+Rp2164
+(dp2165
+g2024
+F2.0869565217391304
+sssg25
+(dp2166
+g29
+(dp2167
+g2024
+F2.0869565217391304
+sssg29
+(dp2168
+g25
+g2167
+sg8
+(g12
+S'\x06\x01\x00\x00'
+p2169
+tp2170
+Rp2171
+(dp2172
+g2024
+F1.9199999999999999
+ssg1069
+(dp2173
+g2024
+F1.9591836734693877
+ssg1585
+(dp2174
+g2024
+F1.9199999999999999
+ssg8
+(g12
+S'\xac\x00\x00\x00'
+p2175
+tp2176
+Rp2177
+(dp2178
+g2024
+F2.0869565217391304
+ssg8
+(g12
+S'\x8a\x00\x00\x00'
+p2179
+tp2180
+Rp2181
+(dp2182
+g2024
+F1.8461538461538463
+ssg8
+(g12
+S'\x8b\x01\x00\x00'
+p2183
+tp2184
+Rp2185
+(dp2186
+g2024
+F2.0869565217391304
+ssg69
+(dp2187
+g2024
+F1.5483870967741935
+ssg89
+(dp2188
+g2024
+F1.8461538461538463
+ssg8
+(g12
+S'\x96\x00\x00\x00'
+p2189
+tp2190
+Rp2191
+(dp2192
+g2024
+F2.0869565217391304
+ssg8
+(g12
+S'\x98\x01\x00\x00'
+p2193
+tp2194
+Rp2195
+(dp2196
+g2024
+F2.0425531914893615
+ssg633
+(dp2197
+g2024
+F1.9199999999999999
+ssg641
+(dp2198
+g2024
+F1.9591836734693877
+ssg649
+(dp2199
+g2024
+F1.8823529411764706
+ssg1181
+(dp2200
+g2024
+F1.9199999999999999
+ssg165
+(dp2201
+g2024
+F1.9199999999999999
+ssg689
+(dp2202
+g2024
+F1.9591836734693877
+ssg1217
+(dp2203
+g2024
+F2.0425531914893615
+ssg225
+(dp2204
+g2024
+F1.9199999999999999
+ssg137
+(dp2205
+g2024
+F1.8113207547169812
+ssg8
+(g12
+S'6\x01\x00\x00'
+p2206
+tp2207
+Rp2208
+(dp2209
+g2024
+F2.0425531914893615
+ssg1077
+(dp2210
+g2024
+F2.0425531914893615
+ssg765
+(dp2211
+g2024
+F2.0
+ssg8
+(g12
+S'=\x00\x00\x00'
+p2212
+tp2213
+Rp2214
+(dp2215
+g2024
+F2.0869565217391304
+ssg8
+(g12
+S'?\x01\x00\x00'
+p2216
+tp2217
+Rp2218
+(dp2219
+g2024
+F1.9591836734693877
+ssg277
+(dp2220
+g2024
+F1.9199999999999999
+ssg8
+(g12
+S'B\x01\x00\x00'
+p2221
+tp2222
+Rp2223
+(dp2224
+g2024
+F2.0425531914893615
+ssg233
+(dp2225
+g2024
+F2.0
+ssg537
+(dp2226
+g2024
+F1.9199999999999999
+ssg8
+(g12
+S'G\x00\x00\x00'
+p2227
+tp2228
+Rp2229
+(dp2230
+g2024
+F2.0425531914893615
+ssg8
+(g12
+S'L\x01\x00\x00'
+p2231
+tp2232
+Rp2233
+(dp2234
+g2024
+F1.9199999999999999
+ssg8
+(g12
+S'\xcd\x01\x00\x00'
+p2235
+tp2236
+Rp2237
+(dp2238
+g2024
+F2.0
+ssg8
+(g12
+S'\x8d\x01\x00\x00'
+p2239
+tp2240
+Rp2241
+(dp2242
+g2024
+F2.0425531914893615
+ssg8
+(g12
+S'\xa3\x01\x00\x00'
+p2243
+tp2244
+Rp2245
+(dp2246
+g2024
+F2.0
+ssg8
+(g12
+S'\xd9\x01\x00\x00'
+p2247
+tp2248
+Rp2249
+(dp2250
+g2024
+F2.0869565217391304
+ssg8
+(g12
+S'Z\x01\x00\x00'
+p2251
+tp2252
+Rp2253
+(dp2254
+g2024
+F1.9591836734693877
+ssg397
+(dp2255
+g2024
+F1.9199999999999999
+ssg8
+(g12
+S'`\x01\x00\x00'
+p2256
+tp2257
+Rp2258
+(dp2259
+g2024
+F2.0425531914893615
+ssg409
+(dp2260
+g2024
+F2.0869565217391304
+ssg8
+(g12
+S'g\x00\x00\x00'
+p2261
+tp2262
+Rp2263
+(dp2264
+g2024
+F2.0425531914893615
+ssg8
+(g12
+S'k\x00\x00\x00'
+p2265
+tp2266
+Rp2267
+(dp2268
+g2024
+F2.0425531914893615
+ssg8
+(g12
+S'\x9e\x01\x00\x00'
+p2269
+tp2270
+Rp2271
+(dp2272
+g2024
+F2.0
+ssg8
+(g12
+S'p\x01\x00\x00'
+p2273
+tp2274
+Rp2275
+(dp2276
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'\xf2\x01\x00\x00'
+p2277
+tp2278
+Rp2279
+(dp2280
+g2024
+F2.0425531914893615
+ssg8
+(g12
+S'\xf3\x01\x00\x00'
+p2281
+tp2282
+Rp2283
+(dp2284
+g2024
+F2.0425531914893615
+sssg33
+(dp2285
+g8
+(g12
+S'\xe0\x00\x00\x00'
+p2286
+tp2287
+Rp2288
+(dp2289
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'\xc1\x01\x00\x00'
+p2290
+tp2291
+Rp2292
+(dp2293
+g2024
+F6.8571428571428568
+ssg1693
+(dp2294
+g2024
+F6.4000000000000004
+ssg8
+(g12
+S'd\x01\x00\x00'
+p2295
+tp2296
+Rp2297
+(dp2298
+g2024
+F6.8571428571428568
+ssg8
+(g12
+S'H\x00\x00\x00'
+p2299
+tp2300
+Rp2301
+(dp2302
+g2024
+F6.8571428571428568
+ssg8
+(g12
+S'J\x01\x00\x00'
+p2303
+tp2304
+Rp2305
+(dp2306
+g2024
+F7.384615384615385
+ssg709
+(dp2307
+g2024
+F6.0
+ssg337
+(dp2308
+g2024
+F6.8571428571428568
+ssg985
+(dp2309
+g2024
+F6.0
+ssg737
+(dp2310
+g2024
+F6.8571428571428568
+ssg8
+(g12
+S'\x18\x00\x00\x00'
+p2311
+tp2312
+Rp2313
+(dp2314
+g2024
+F2.8235294117647061
+ssg569
+(dp2315
+g2024
+F5.0526315789473681
+sssg37
+(dp2316
+g149
+(dp2317
+g2024
+F4.5714285714285712
+ssg8
+(g12
+S'+\x01\x00\x00'
+p2318
+tp2319
+Rp2320
+(dp2321
+g2024
+F6.0
+ssg8
+(g12
+S'\xe4\x01\x00\x00'
+p2322
+tp2323
+Rp2324
+(dp2325
+g2024
+F6.4000000000000004
+ssg441
+(dp2326
+g2024
+F4.3636363636363633
+ssg8
+(g12
+S'\xcb\x01\x00\x00'
+p2327
+tp2328
+Rp2329
+(dp2330
+g2024
+F6.0
+ssg8
+(g12
+S'\xae\x01\x00\x00'
+p2331
+tp2332
+Rp2333
+(dp2334
+g2024
+F5.333333333333333
+ssg81
+(dp2335
+g2024
+F3.3103448275862069
+ssg1361
+(dp2336
+g2024
+F5.6470588235294121
+ssg217
+(dp2337
+g2024
+F3.6923076923076925
+ssg605
+(dp2338
+g2024
+F5.0526315789473681
+ssg8
+(g12
+S'\x96\x01\x00\x00'
+p2339
+tp2340
+Rp2341
+(dp2342
+g2024
+F5.6470588235294121
+ssg8
+(g12
+S'W\x00\x00\x00'
+p2343
+tp2344
+Rp2345
+(dp2346
+g2024
+F5.0526315789473681
+ssg381
+(dp2347
+g2024
+F4.1739130434782608
+ssg8
+(g12
+S'\xbe\x00\x00\x00'
+p2348
+tp2349
+Rp2350
+(dp2351
+g2024
+F6.0
+sssg41
+(dp2352
+g45
+(dp2353
+g2024
+F1.1851851851851851
+ssg8
+(g12
+S'\x08\x01\x00\x00'
+p2354
+tp2355
+Rp2356
+(dp2357
+g2024
+F2.5945945945945947
+ssg8
+(g12
+S'\x89\x00\x00\x00'
+p2358
+tp2359
+Rp2360
+(dp2361
+g2024
+F2.6666666666666665
+ssg8
+(g12
+S'\x14\x01\x00\x00'
+p2362
+tp2363
+Rp2364
+(dp2365
+g2024
+F2.4615384615384617
+ssg613
+(dp2366
+g2024
+F2.4615384615384617
+ssg8
+(g12
+S'\x17\x01\x00\x00'
+p2367
+tp2368
+Rp2369
+(dp2370
+g2024
+F2.5945945945945947
+ssg8
+(g12
+S'\x99\x00\x00\x00'
+p2371
+tp2372
+Rp2373
+(dp2374
+g2024
+F2.5945945945945947
+ssg133
+(dp2375
+g2024
+F2.1333333333333333
+ssg1677
+(dp2376
+g2024
+F2.5945945945945947
+ssg8
+(g12
+S'%\x01\x00\x00'
+p2377
+tp2378
+Rp2379
+(dp2380
+g2024
+F2.7428571428571429
+ssg681
+(dp2381
+g2024
+F2.4615384615384617
+ssg8
+(g12
+S'(\x01\x00\x00'
+p2382
+tp2383
+Rp2384
+(dp2385
+g2024
+F2.5945945945945947
+ssg185
+(dp2386
+g2024
+F2.0425531914893615
+ssg193
+(dp2387
+g2024
+F2.2325581395348837
+ssg209
+(dp2388
+g2024
+F2.3414634146341462
+ssg8
+(g12
+S'1\x00\x00\x00'
+p2389
+tp2390
+Rp2391
+(dp2392
+g2024
+F2.7428571428571429
+ssg8
+(g12
+S'\xb6\x01\x00\x00'
+p2393
+tp2394
+Rp2395
+(dp2396
+g2024
+F2.6666666666666665
+ssg237
+(dp2397
+g2024
+F2.6666666666666665
+ssg1273
+(dp2398
+g2024
+F2.3999999999999999
+ssg293
+(dp2399
+g2024
+F2.1333333333333333
+ssg8
+(g12
+S'\xc6\x01\x00\x00'
+p2400
+tp2401
+Rp2402
+(dp2403
+g2024
+F2.6666666666666665
+ssg8
+(g12
+S'\xcf\x01\x00\x00'
+p2404
+tp2405
+Rp2406
+(dp2407
+g2024
+F2.5945945945945947
+ssg353
+(dp2408
+g2024
+F2.3414634146341462
+ssg357
+(dp2409
+g2024
+F2.5263157894736841
+ssg8
+(g12
+S'\xd6\x01\x00\x00'
+p2410
+tp2411
+Rp2412
+(dp2413
+g2024
+F2.5263157894736841
+ssg8
+(g12
+S']\x01\x00\x00'
+p2414
+tp2415
+Rp2416
+(dp2417
+g2024
+F2.3999999999999999
+ssg393
+(dp2418
+g2024
+F2.3999999999999999
+ssg8
+(g12
+S'\xe5\x00\x00\x00'
+p2419
+tp2420
+Rp2421
+(dp2422
+g2024
+F2.6666666666666665
+ssg949
+(dp2423
+g2024
+F2.2857142857142856
+ssg8
+(g12
+S'l\x01\x00\x00'
+p2424
+tp2425
+Rp2426
+(dp2427
+g2024
+F2.5945945945945947
+ssg8
+(g12
+S'u\x00\x00\x00'
+p2428
+tp2429
+Rp2430
+(dp2431
+g2024
+F2.5263157894736841
+ssg8
+(g12
+S'\xf8\x00\x00\x00'
+p2432
+tp2433
+Rp2434
+(dp2435
+g2024
+F2.7428571428571429
+ssg8
+(g12
+S'|\x01\x00\x00'
+p2436
+tp2437
+Rp2438
+(dp2439
+g2024
+F2.3414634146341462
+ssg8
+(g12
+S'\xaa\x01\x00\x00'
+p2440
+tp2441
+Rp2442
+(dp2443
+g2024
+F2.7428571428571429
+sssg45
+(dp2444
+g8
+(g12
+S'\x81\x00\x00\x00'
+p2445
+tp2446
+Rp2447
+(dp2448
+g2024
+F1.9591836734693877
+ssg541
+(dp2449
+g2024
+F1.9199999999999999
+ssg8
+(g12
+S'V\x01\x00\x00'
+p2450
+tp2451
+Rp2452
+(dp2453
+g2024
+F2.0
+ssg41
+g2353
+sg561
+(dp2454
+g2024
+F1.8461538461538463
+ssg8
+(g12
+S'W\x01\x00\x00'
+p2455
+tp2456
+Rp2457
+(dp2458
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'\x0f\x01\x00\x00'
+p2459
+tp2460
+Rp2461
+(dp2462
+g2024
+F2.0
+ssg8
+(g12
+S'\x92\x01\x00\x00'
+p2463
+tp2464
+Rp2465
+(dp2466
+g2024
+F2.0
+ssg93
+(dp2467
+g2024
+F1.7777777777777777
+ssg8
+(g12
+S'\x94\x01\x00\x00'
+p2468
+tp2469
+Rp2470
+(dp2471
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'\xeb\x00\x00\x00'
+p2472
+tp2473
+Rp2474
+(dp2475
+g2024
+F2.0
+ssg8
+(g12
+S'\x1a\x01\x00\x00'
+p2476
+tp2477
+Rp2478
+(dp2479
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'\x1e\x01\x00\x00'
+p2480
+tp2481
+Rp2482
+(dp2483
+g2024
+F2.0
+ssg157
+(dp2484
+g2024
+F1.8461538461538463
+ssg8
+(g12
+S'\xa5\x01\x00\x00'
+p2485
+tp2486
+Rp2487
+(dp2488
+g2024
+F1.9591836734693877
+ssg681
+(dp2489
+g2024
+F1.8461538461538463
+ssg8
+(g12
+S"'\x01\x00\x00"
+p2490
+tp2491
+Rp2492
+(dp2493
+g2024
+F2.0
+ssg8
+(g12
+S'\xab\x01\x00\x00'
+p2494
+tp2495
+Rp2496
+(dp2497
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'\xac\x01\x00\x00'
+p2498
+tp2499
+Rp2500
+(dp2501
+g2024
+F2.0
+ssg8
+(g12
+S'-\x01\x00\x00'
+p2502
+tp2503
+Rp2504
+(dp2505
+g2024
+F1.9591836734693877
+ssg389
+(dp2506
+g2024
+F1.8461538461538463
+ssg1761
+(dp2507
+g2024
+F1.8461538461538463
+ssg8
+(g12
+S'\xb7\x01\x00\x00'
+p2508
+tp2509
+Rp2510
+(dp2511
+g2024
+F1.9591836734693877
+ssg241
+(dp2512
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'\xbd\x01\x00\x00'
+p2513
+tp2514
+Rp2515
+(dp2516
+g2024
+F2.0
+ssg8
+(g12
+S'\xbe\x01\x00\x00'
+p2517
+tp2518
+Rp2519
+(dp2520
+g2024
+F1.8461538461538463
+ssg8
+(g12
+S'@\x01\x00\x00'
+p2521
+tp2522
+Rp2523
+(dp2524
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'\xc3\x01\x00\x00'
+p2525
+tp2526
+Rp2527
+(dp2528
+g2024
+F2.0
+ssg293
+(dp2529
+g2024
+F1.6551724137931034
+ssg8
+(g12
+S'\xc6\x01\x00\x00'
+p2530
+tp2531
+Rp2532
+(dp2533
+g2024
+F1.9591836734693877
+ssg329
+(dp2534
+g2024
+F1.8823529411764706
+ssg8
+(g12
+S'\xcf\x01\x00\x00'
+p2535
+tp2536
+Rp2537
+(dp2538
+g2024
+F1.9199999999999999
+ssg865
+(dp2539
+g2024
+F1.8113207547169812
+ssg869
+(dp2540
+g2024
+F1.9591836734693877
+ssg1897
+(dp2541
+g2024
+F1.8823529411764706
+ssg8
+(g12
+S'\xd7\x01\x00\x00'
+p2542
+tp2543
+Rp2544
+(dp2545
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'\xda\x01\x00\x00'
+p2546
+tp2547
+Rp2548
+(dp2549
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S']\x01\x00\x00'
+p2550
+tp2551
+Rp2552
+(dp2553
+g2024
+F1.8113207547169812
+ssg8
+(g12
+S'\xe3\x01\x00\x00'
+p2554
+tp2555
+Rp2556
+(dp2557
+g2024
+F2.0
+ssg8
+(g12
+S'e\x01\x00\x00'
+p2558
+tp2559
+Rp2560
+(dp2561
+g2024
+F1.9199999999999999
+ssg425
+(dp2562
+g2024
+F1.6842105263157894
+ssg8
+(g12
+S'{\x01\x00\x00'
+p2563
+tp2564
+Rp2565
+(dp2566
+g2024
+F1.9591836734693877
+ssg8
+(g12
+S'\xeb\x01\x00\x00'
+p2567
+tp2568
+Rp2569
+(dp2570
+g2024
+F1.8823529411764706
+ssg965
+(dp2571
+g2024
+F1.9199999999999999
+ssg973
+(dp2572
+g2024
+F1.9199999999999999
+ssg8
+(g12
+S's\x01\x00\x00'
+p2573
+tp2574
+Rp2575
+(dp2576
+g2024
+F2.0
+ssg8
+(g12
+S'{\x00\x00\x00'
+p2577
+tp2578
+Rp2579
+(dp2580
+g2024
+F2.0
+sssg49
+(dp2581
+g721
+(dp2582
+g2024
+F4.7999999999999998
+ssg8
+(g12
+S'\xa4\x00\x00\x00'
+p2583
+tp2584
+Rp2585
+(dp2586
+g2024
+F5.6470588235294121
+ssg57
+(dp2587
+g2024
+F5.6470588235294121
+ssg65
+(dp2588
+g2024
+F6.0
+ssg8
+(g12
+S'\x8e\x01\x00\x00'
+p2589
+tp2590
+Rp2591
+(dp2592
+g2024
+F6.4000000000000004
+ssg465
+(dp2593
+g2024
+F6.8571428571428568
+ssg113
+(dp2594
+g2024
+F2.9090909090909092
+ssg8
+(g12
+S'\xb2\x00\x00\x00'
+p2595
+tp2596
+Rp2597
+(dp2598
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'u\x01\x00\x00'
+p2599
+tp2600
+Rp2601
+(dp2602
+g2024
+F7.384615384615385
+ssg497
+(dp2603
+g2024
+F5.6470588235294121
+ssg513
+(dp2604
+g2024
+F6.0
+sssg53
+(dp2605
+g21
+g2044
+sg1065
+(dp2606
+g2024
+F13.714285714285714
+sssg57
+(dp2607
+g49
+g2587
+sg61
+(dp2608
+g2024
+F4.7999999999999998
+ssg65
+(dp2609
+g2024
+F8.7272727272727266
+ssg8
+(g12
+S'O\x01\x00\x00'
+p2610
+tp2611
+Rp2612
+(dp2613
+g2024
+F12.0
+ssg205
+(dp2614
+g2024
+F10.666666666666666
+ssg513
+(dp2615
+g2024
+F8.7272727272727266
+sssg61
+(dp2616
+g401
+(dp2617
+g2024
+F4.7999999999999998
+ssg1173
+(dp2618
+g2024
+F5.0526315789473681
+ssg8
+(g12
+S'B\x00\x00\x00'
+p2619
+tp2620
+Rp2621
+(dp2622
+g2024
+F5.333333333333333
+ssg125
+(dp2623
+g2024
+F3.4285714285714284
+ssg405
+(dp2624
+g2024
+F5.0526315789473681
+ssg8
+(g12
+S'i\x01\x00\x00'
+p2625
+tp2626
+Rp2627
+(dp2628
+g2024
+F5.6470588235294121
+ssg57
+g2608
+sg205
+(dp2629
+g2024
+F5.6470588235294121
+ssg8
+(g12
+S'\xb0\x01\x00\x00'
+p2630
+tp2631
+Rp2632
+(dp2633
+g2024
+F6.0
+ssg8
+(g12
+S'O\x01\x00\x00'
+p2634
+tp2635
+Rp2636
+(dp2637
+g2024
+F6.0
+ssg877
+(dp2638
+g2024
+F4.7999999999999998
+ssg8
+(g12
+S'\x1b\x01\x00\x00'
+p2639
+tp2640
+Rp2641
+(dp2642
+g2024
+F4.7999999999999998
+ssg513
+(dp2643
+g2024
+F5.0526315789473681
+ssg8
+(g12
+S'\xbd\x00\x00\x00'
+p2644
+tp2645
+Rp2646
+(dp2647
+g2024
+F5.6470588235294121
+sssg65
+(dp2648
+g49
+g2588
+sg465
+(dp2649
+g2024
+F12.0
+ssg57
+g2609
+sg8
+(g12
+S'\xb2\x01\x00\x00'
+p2650
+tp2651
+Rp2652
+(dp2653
+g2024
+F13.714285714285714
+ssI47
+(dp2654
+g2024
+F12.0
+sssg69
+(dp2655
+g145
+(dp2656
+g2024
+F3.3103448275862069
+ssg21
+g2046
+sg8
+(g12
+S'\x82\x00\x00\x00'
+p2657
+tp2658
+Rp2659
+(dp2660
+g2024
+F4.3636363636363633
+ssg29
+g2187
+sg1057
+(dp2661
+g2024
+F4.3636363636363633
+ssg165
+(dp2662
+g2024
+F4.3636363636363633
+ssg173
+(dp2663
+g2024
+F3.6923076923076925
+ssg597
+(dp2664
+g2024
+F4.7999999999999998
+ssg8
+(g12
+S'\xca\x00\x00\x00'
+p2665
+tp2666
+Rp2667
+(dp2668
+g2024
+F5.0526315789473681
+ssg8
+(g12
+S'\xcd\x01\x00\x00'
+p2669
+tp2670
+Rp2671
+(dp2672
+g2024
+F4.7999999999999998
+ssg8
+(g12
+S'1\x01\x00\x00'
+p2673
+tp2674
+Rp2675
+(dp2676
+g2024
+F4.7999999999999998
+ssg1117
+(dp2677
+g2024
+F5.0526315789473681
+ssg8
+(g12
+S'\xc0\x01\x00\x00'
+p2678
+tp2679
+Rp2680
+(dp2681
+g2024
+F5.0526315789473681
+ssg233
+(dp2682
+g2024
+F4.7999999999999998
+ssg749
+(dp2683
+g2024
+F5.0526315789473681
+ssg1393
+(dp2684
+g2024
+F5.0526315789473681
+ssg161
+(dp2685
+g2024
+F2.3999999999999999
+sssg73
+(dp2686
+g8
+(g12
+S'\x83\x01\x00\x00'
+p2687
+tp2688
+Rp2689
+(dp2690
+g2024
+F3.5555555555555554
+ssg8
+(g12
+S'\x0b\x01\x00\x00'
+p2691
+tp2692
+Rp2693
+(dp2694
+g2024
+F3.2000000000000002
+ssg637
+(dp2695
+g2024
+F3.096774193548387
+ssg161
+(dp2696
+g2024
+F2.0425531914893615
+ssg8
+(g12
+S'\xa5\x00\x00\x00'
+p2697
+tp2698
+Rp2699
+(dp2700
+g2024
+F3.5555555555555554
+ssg221
+(dp2701
+g2024
+F2.9090909090909092
+ssg8
+(g12
+S'4\x01\x00\x00'
+p2702
+tp2703
+Rp2704
+(dp2705
+g2024
+F3.2000000000000002
+ssg8
+(g12
+S'\xb8\x01\x00\x00'
+p2706
+tp2707
+Rp2708
+(dp2709
+g2024
+F3.5555555555555554
+ssg8
+(g12
+S'\xb9\x01\x00\x00'
+p2710
+tp2711
+Rp2712
+(dp2713
+g2024
+F3.6923076923076925
+ssg8
+(g12
+S';\x00\x00\x00'
+p2714
+tp2715
+Rp2716
+(dp2717
+g2024
+F2.5945945945945947
+ssg257
+(dp2718
+g2024
+F3.5555555555555554
+ssg813
+(dp2719
+g2024
+F3.2000000000000002
+ssg8
+(g12
+S'H\x01\x00\x00'
+p2720
+tp2721
+Rp2722
+(dp2723
+g2024
+F3.3103448275862069
+ssg8
+(g12
+S'\xce\x01\x00\x00'
+p2724
+tp2725
+Rp2726
+(dp2727
+g2024
+F3.6923076923076925
+ssg341
+(dp2728
+g2024
+F3.4285714285714284
+ssg857
+(dp2729
+g2024
+F3.6923076923076925
+ssg873
+(dp2730
+g2024
+F3.3103448275862069
+ssg381
+(dp2731
+g2024
+F2.9090909090909092
+ssg413
+(dp2732
+g2024
+F3.096774193548387
+ssg8
+(g12
+S'\xbc\x01\x00\x00'
+p2733
+tp2734
+Rp2735
+(dp2736
+g2024
+F3.6923076923076925
+ssg441
+(dp2737
+g2024
+F3.0
+ssg453
+(dp2738
+g2024
+F3.096774193548387
+ssg457
+(dp2739
+g2024
+F3.6923076923076925
+ssg8
+(g12
+S'\xf4\x00\x00\x00'
+p2740
+tp2741
+Rp2742
+(dp2743
+g2024
+F3.3103448275862069
+sssg77
+(dp2744
+g789
+(dp2745
+g2024
+F8.0
+ssg309
+(dp2746
+g2024
+F8.7272727272727266
+ssg8
+(g12
+S'\x90\x01\x00\x00'
+p2747
+tp2748
+Rp2749
+(dp2750
+g2024
+F10.666666666666666
+ssI341
+(dp2751
+g2024
+F7.384615384615385
+ssg125
+(dp2752
+g2024
+F4.7999999999999998
+ssg8
+(g12
+S'\x1f\x00\x00\x00'
+p2753
+tp2754
+Rp2755
+(dp2756
+g2024
+F7.384615384615385
+sssg81
+(dp2757
+g149
+(dp2758
+g2024
+F4.3636363636363633
+ssg1049
+(dp2759
+g2024
+F4.7999999999999998
+ssg37
+g2335
+sg8
+(g12
+S'a\x01\x00\x00'
+p2760
+tp2761
+Rp2762
+(dp2763
+g2024
+F4.3636363636363633
+ssg8
+(g12
+S'I\x01\x00\x00'
+p2764
+tp2765
+Rp2766
+(dp2767
+g2024
+F5.333333333333333
+ssg833
+(dp2768
+g2024
+F5.6470588235294121
+ssg845
+(dp2769
+g2024
+F4.3636363636363633
+ssg8
+(g12
+S'P\x01\x00\x00'
+p2770
+tp2771
+Rp2772
+(dp2773
+g2024
+F5.333333333333333
+ssg8
+(g12
+S'l\x00\x00\x00'
+p2774
+tp2775
+Rp2776
+(dp2777
+g2024
+F6.0
+ssg217
+(dp2778
+g2024
+F3.5555555555555554
+ssg105
+(dp2779
+g2024
+F5.6470588235294121
+ssg8
+(g12
+S'w\x00\x00\x00'
+p2780
+tp2781
+Rp2782
+(dp2783
+g2024
+F4.7999999999999998
+ssg693
+(dp2784
+g2024
+F4.7999999999999998
+ssg8
+(g12
+S'}\x01\x00\x00'
+p2785
+tp2786
+Rp2787
+(dp2788
+g2024
+F5.6470588235294121
+ssg8
+(g12
+S'\xdf\x00\x00\x00'
+p2789
+tp2790
+Rp2791
+(dp2792
+g2024
+F6.0
+sssg85
+(dp2793
+g8
+(g12
+S'A\x01\x00\x00'
+p2794
+tp2795
+Rp2796
+(dp2797
+g2024
+F8.7272727272727266
+ssg8
+(g12
+S'\xe2\x01\x00\x00'
+p2798
+tp2799
+Rp2800
+(dp2801
+g2024
+F8.7272727272727266
+ssg805
+(dp2802
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'\x14\x01\x00\x00'
+p2803
+tp2804
+Rp2805
+(dp2806
+g2024
+F8.0
+ssg613
+(dp2807
+g2024
+F8.0
+ssg8
+(g12
+S';\x01\x00\x00'
+p2808
+tp2809
+Rp2810
+(dp2811
+g2024
+F8.0
+ssg393
+(dp2812
+g2024
+F7.384615384615385
+sssg89
+(dp2813
+g145
+(dp2814
+g2024
+F5.0526315789473681
+ssg29
+g2188
+sg8
+(g12
+S'\xcd\x01\x00\x00'
+p2815
+tp2816
+Rp2817
+(dp2818
+g2024
+F9.5999999999999996
+ssg1237
+(dp2819
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'\xf2\x01\x00\x00'
+p2820
+tp2821
+Rp2822
+(dp2823
+g2024
+F10.666666666666666
+ssg361
+(dp2824
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'\x19\x00\x00\x00'
+p2825
+tp2826
+Rp2827
+(dp2828
+g2024
+F6.8571428571428568
+sssg93
+(dp2829
+g8
+(g12
+S'@\x01\x00\x00'
+p2830
+tp2831
+Rp2832
+(dp2833
+g2024
+F10.666666666666666
+ssg1701
+(dp2834
+g2024
+F10.666666666666666
+ssg45
+g2467
+sg8
+(g12
+S'N\x01\x00\x00'
+p2835
+tp2836
+Rp2837
+(dp2838
+g2024
+F8.7272727272727266
+ssg1273
+(dp2839
+g2024
+F7.384615384615385
+ssI349
+(dp2840
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'\xbe\x01\x00\x00'
+p2841
+tp2842
+Rp2843
+(dp2844
+g2024
+F8.0
+sssg97
+(dp2845
+g209
+(dp2846
+g2024
+F8.0
+ssg193
+(dp2847
+g2024
+F6.8571428571428568
+ssI83
+(dp2848
+g2024
+F12.0
+ssg129
+(dp2849
+g2024
+F5.0526315789473681
+ssg197
+(dp2850
+g2024
+F8.7272727272727266
+sssg101
+(dp2851
+g8
+(g12
+S' \x01\x00\x00'
+p2852
+tp2853
+Rp2854
+(dp2855
+g2024
+F4.5714285714285712
+ssg8
+(g12
+S'\x10\x01\x00\x00'
+p2856
+tp2857
+Rp2858
+(dp2859
+g2024
+F3.6923076923076925
+ssg125
+(dp2860
+g2024
+F3.0
+ssg8
+(g12
+S'E\x01\x00\x00'
+p2861
+tp2862
+Rp2863
+(dp2864
+g2024
+F4.3636363636363633
+ssg8
+(g12
+S'\x88\x01\x00\x00'
+p2865
+tp2866
+Rp2867
+(dp2868
+g2024
+F4.1739130434782608
+ssg8
+(g12
+S'\xea\x01\x00\x00'
+p2869
+tp2870
+Rp2871
+(dp2872
+g2024
+F4.7999999999999998
+ssg8
+(g12
+S'n\x01\x00\x00'
+p2873
+tp2874
+Rp2875
+(dp2876
+g2024
+F4.5714285714285712
+ssg8
+(g12
+S'\xb0\x00\x00\x00'
+p2877
+tp2878
+Rp2879
+(dp2880
+g2024
+F3.5555555555555554
+ssg8
+(g12
+S'\xd1\x00\x00\x00'
+p2881
+tp2882
+Rp2883
+(dp2884
+g2024
+F5.0526315789473681
+ssg8
+(g12
+S's\x00\x00\x00'
+p2885
+tp2886
+Rp2887
+(dp2888
+g2024
+F5.0526315789473681
+ssg8
+(g12
+S'\xb6\x00\x00\x00'
+p2889
+tp2890
+Rp2891
+(dp2892
+g2024
+F4.1739130434782608
+ssg1005
+(dp2893
+g2024
+F4.7999999999999998
+ssg8
+(g12
+S'\xb8\x00\x00\x00'
+p2894
+tp2895
+Rp2896
+(dp2897
+g2024
+F4.3636363636363633
+ssg117
+(dp2898
+g2024
+F3.8399999999999999
+ssg8
+(g12
+S'\xd9\x00\x00\x00'
+p2899
+tp2900
+Rp2901
+(dp2902
+g2024
+F4.3636363636363633
+ssg8
+(g12
+S'[\x01\x00\x00'
+p2903
+tp2904
+Rp2905
+(dp2906
+g2024
+F4.1739130434782608
+ssg8
+(g12
+S'V\x00\x00\x00'
+p2907
+tp2908
+Rp2909
+(dp2910
+g2024
+F4.0
+ssg8
+(g12
+S'\xde\x01\x00\x00'
+p2911
+tp2912
+Rp2913
+(dp2914
+g2024
+F4.3636363636363633
+sssg105
+(dp2915
+g81
+g2779
+sg1429
+(dp2916
+g2024
+F10.666666666666666
+sssg109
+(dp2917
+g1045
+(dp2918
+g2024
+F13.714285714285714
+ssg417
+(dp2919
+g2024
+F13.714285714285714
+ssg117
+(dp2920
+g2024
+F9.5999999999999996
+sssg113
+(dp2921
+g33
+g2314
+sg8
+(g12
+S'\x86\x00\x00\x00'
+p2922
+tp2923
+Rp2924
+(dp2925
+g2024
+F4.0
+ssg49
+g2594
+sg601
+(dp2926
+g2024
+F4.0
+ssg201
+(dp2927
+g2024
+F3.5555555555555554
+ssg8
+(g12
+S'\x97\x00\x00\x00'
+p2928
+tp2929
+Rp2930
+(dp2931
+g2024
+F4.0
+ssg8
+(g12
+S'"\x01\x00\x00'
+p2932
+tp2933
+Rp2934
+(dp2935
+g2024
+F4.0
+ssg1181
+(dp2936
+g2024
+F3.5555555555555554
+ssg8
+(g12
+S'+\x00\x00\x00'
+p2937
+tp2938
+Rp2939
+(dp2940
+g2024
+F4.1739130434782608
+ssg709
+(dp2941
+g2024
+F3.6923076923076925
+ssg8
+(g12
+S'.\x01\x00\x00'
+p2942
+tp2943
+Rp2944
+(dp2945
+g2024
+F3.6923076923076925
+ssg721
+(dp2946
+g2024
+F3.096774193548387
+ssg8
+(g12
+S'\xb4\x00\x00\x00'
+p2947
+tp2948
+Rp2949
+(dp2950
+g2024
+F4.0
+ssg8
+(g12
+S'\xf5\x00\x00\x00'
+p2951
+tp2952
+Rp2953
+(dp2954
+g2024
+F4.1739130434782608
+ssg8
+(g12
+S'\xc5\x01\x00\x00'
+p2955
+tp2956
+Rp2957
+(dp2958
+g2024
+F3.8399999999999999
+ssg8
+(g12
+S'\xc9\x01\x00\x00'
+p2959
+tp2960
+Rp2961
+(dp2962
+g2024
+F4.1739130434782608
+ssg8
+(g12
+S'\xd0\x00\x00\x00'
+p2963
+tp2964
+Rp2965
+(dp2966
+g2024
+F4.1739130434782608
+ssg8
+(g12
+S'R\x01\x00\x00'
+p2967
+tp2968
+Rp2969
+(dp2970
+g2024
+F4.0
+ssg1469
+(dp2971
+g2024
+F3.6923076923076925
+ssg481
+(dp2972
+g2024
+F4.0
+ssg8
+(g12
+S'u\x01\x00\x00'
+p2973
+tp2974
+Rp2975
+(dp2976
+g2024
+F4.0
+ssg521
+(dp2977
+g2024
+F3.5555555555555554
+sssg117
+(dp2978
+g145
+(dp2979
+g2024
+F5.0526315789473681
+ssg8
+(g12
+S'\x80\x00\x00\x00'
+p2980
+tp2981
+Rp2982
+(dp2983
+g2024
+F12.0
+ssg1045
+(dp2984
+g2024
+F8.7272727272727266
+ssg89
+g2828
+sg101
+g2898
+sI86
+(dp2985
+g2024
+F7.384615384615385
+ssg109
+g2920
+ssg121
+(dp2986
+g661
+(dp2987
+g2024
+F9.5999999999999996
+ssg293
+(dp2988
+g2024
+F5.6470588235294121
+ssg789
+(dp2989
+g2024
+F8.0
+ssg8
+(g12
+S'N\x00\x00\x00'
+p2990
+tp2991
+Rp2992
+(dp2993
+g2024
+F9.5999999999999996
+ssI341
+(dp2994
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'e\x01\x00\x00'
+p2995
+tp2996
+Rp2997
+(dp2998
+g2024
+F10.666666666666666
+sssg125
+(dp2999
+g1461
+(dp3000
+g2024
+F5.6470588235294121
+ssg8
+(g12
+S'\xea\x01\x00\x00'
+p3001
+tp3002
+Rp3003
+(dp3004
+g2024
+F6.0
+ssg61
+g2623
+sg1349
+(dp3005
+g2024
+F4.7999999999999998
+ssg77
+g2752
+sg1105
+(dp3006
+g2024
+F4.3636363636363633
+ssg753
+(dp3007
+g2024
+F5.333333333333333
+ssg8
+(g12
+S'\xd4\x01\x00\x00'
+p3008
+tp3009
+Rp3010
+(dp3011
+g2024
+F5.333333333333333
+ssg101
+g2860
+sg181
+(dp3012
+g2024
+F3.8399999999999999
+ssg1265
+(dp3013
+g2024
+F5.333333333333333
+ssg8
+(g12
+S'\xad\x01\x00\x00'
+p3014
+tp3015
+Rp3016
+(dp3017
+g2024
+F5.6470588235294121
+ssg513
+(dp3018
+g2024
+F5.0526315789473681
+ssg8
+(g12
+S'U\x01\x00\x00'
+p3019
+tp3020
+Rp3021
+(dp3022
+g2024
+F4.5714285714285712
+sssg129
+(dp3023
+g8
+(g12
+S'@\x00\x00\x00'
+p3024
+tp3025
+Rp3026
+(dp3027
+g2024
+F5.6470588235294121
+ssg8
+(g12
+S'b\x01\x00\x00'
+p3028
+tp3029
+Rp3030
+(dp3031
+g2024
+F5.333333333333333
+ssg285
+(dp3032
+g2024
+F4.3636363636363633
+ssg557
+(dp3033
+g2024
+F5.0526315789473681
+ssg817
+(dp3034
+g2024
+F4.5714285714285712
+ssg8
+(g12
+S'*\x00\x00\x00'
+p3035
+tp3036
+Rp3037
+(dp3038
+g2024
+F3.5555555555555554
+ssg317
+(dp3039
+g2024
+F4.7999999999999998
+ssg197
+(dp3040
+g2024
+F4.7999999999999998
+ssg8
+(g12
+S'\xce\x00\x00\x00'
+p3041
+tp3042
+Rp3043
+(dp3044
+g2024
+F5.6470588235294121
+ssg209
+(dp3045
+g2024
+F4.5714285714285712
+ssg1453
+(dp3046
+g2024
+F5.6470588235294121
+ssg97
+g2849
+sg229
+(dp3047
+g2024
+F4.5714285714285712
+ssg969
+(dp3048
+g2024
+F5.333333333333333
+sssg133
+(dp3049
+g8
+(g12
+S'\xe5\x00\x00\x00'
+p3050
+tp3051
+Rp3052
+(dp3053
+g2024
+F7.384615384615385
+ssg41
+g2375
+sg8
+(g12
+S'\xc7\x00\x00\x00'
+p3054
+tp3055
+Rp3056
+(dp3057
+g2024
+F5.6470588235294121
+ssg8
+(g12
+S'(\x01\x00\x00'
+p3058
+tp3059
+Rp3060
+(dp3061
+g2024
+F6.8571428571428568
+ssg949
+(dp3062
+g2024
+F5.0526315789473681
+ssg185
+(dp3063
+g2024
+F4.0
+ssg8
+(g12
+S'\x12\x01\x00\x00'
+p3064
+tp3065
+Rp3066
+(dp3067
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'u\x00\x00\x00'
+p3068
+tp3069
+Rp3070
+(dp3071
+g2024
+F6.4000000000000004
+ssg8
+(g12
+S'\x98\x00\x00\x00'
+p3072
+tp3073
+Rp3074
+(dp3075
+g2024
+F5.333333333333333
+ssg637
+(dp3076
+g2024
+F5.333333333333333
+ssg265
+(dp3077
+g2024
+F6.4000000000000004
+sssg137
+(dp3078
+g21
+g2060
+sg1561
+(dp3079
+g2024
+F9.5999999999999996
+ssg29
+g2205
+sg8
+(g12
+S'\xe1\x00\x00\x00'
+p3080
+tp3081
+Rp3082
+(dp3083
+g2024
+F8.7272727272727266
+ssg321
+(dp3084
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'B\x01\x00\x00'
+p3085
+tp3086
+Rp3087
+(dp3088
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'o\x01\x00\x00'
+p3089
+tp3090
+Rp3091
+(dp3092
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'>\x01\x00\x00'
+p3093
+tp3094
+Rp3095
+(dp3096
+g2024
+F9.5999999999999996
+sssg141
+(dp3097
+g817
+(dp3098
+g2024
+F6.8571428571428568
+ssg309
+(dp3099
+g2024
+F8.0
+ssg197
+(dp3100
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'\xee\x01\x00\x00'
+p3101
+tp3102
+Rp3103
+(dp3104
+g2024
+F10.666666666666666
+ssg77
+g2756
+sI333
+(dp3105
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'8\x01\x00\x00'
+p3106
+tp3107
+Rp3108
+(dp3109
+g2024
+F8.7272727272727266
+sssg145
+(dp3110
+g1045
+(dp3111
+g2024
+F6.0
+ssg8
+(g12
+S'e\x00\x00\x00'
+p3112
+tp3113
+Rp3114
+(dp3115
+g2024
+F4.0
+ssg8
+(g12
+S'\xe6\x01\x00\x00'
+p3116
+tp3117
+Rp3118
+(dp3119
+g2024
+F6.8571428571428568
+ssg941
+(dp3120
+g2024
+F6.4000000000000004
+ssg597
+(dp3121
+g2024
+F6.4000000000000004
+ssg173
+(dp3122
+g2024
+F4.5714285714285712
+ssg69
+g2656
+sg333
+(dp3123
+g2024
+F5.333333333333333
+ssg1237
+(dp3124
+g2024
+F6.4000000000000004
+ssg89
+g2814
+sg8
+(g12
+S'\x13\x01\x00\x00'
+p3125
+tp3126
+Rp3127
+(dp3128
+g2024
+F6.8571428571428568
+ssg117
+g2979
+ssg149
+(dp3129
+g8
+(g12
+S'P\x01\x00\x00'
+p3130
+tp3131
+Rp3132
+(dp3133
+g2024
+F9.5999999999999996
+ssg37
+g2317
+sg8
+(g12
+S'\xcb\x01\x00\x00'
+p3134
+tp3135
+Rp3136
+(dp3137
+g2024
+F10.666666666666666
+ssg81
+g2758
+sg8
+(g12
+S't\x01\x00\x00'
+p3138
+tp3139
+Rp3140
+(dp3141
+g2024
+F8.7272727272727266
+ssg8
+(g12
+S'w\x00\x00\x00'
+p3142
+tp3143
+Rp3144
+(dp3145
+g2024
+F8.0
+ssg8
+(g12
+S'\x99\x01\x00\x00'
+p3146
+tp3147
+Rp3148
+(dp3149
+g2024
+F8.7272727272727266
+sssg153
+(dp3150
+g1149
+(dp3151
+g2024
+F13.714285714285714
+sssg157
+(dp3152
+g45
+g2484
+sg8
+(g12
+S'\xeb\x01\x00\x00'
+p3153
+tp3154
+Rp3155
+(dp3156
+g2024
+F10.666666666666666
+ssg965
+(dp3157
+g2024
+F12.0
+ssI326
+(dp3158
+g2024
+F9.5999999999999996
+ssg989
+(dp3159
+g2024
+F9.5999999999999996
+sssg161
+(dp3160
+g21
+g2061
+sg1057
+(dp3161
+g2024
+F3.4285714285714284
+ssg1081
+(dp3162
+g2024
+F3.6923076923076925
+ssg69
+g2685
+sg73
+g2696
+sg1157
+(dp3163
+g2024
+F3.4285714285714284
+ssg8
+(g12
+S'$\x01\x00\x00'
+p3164
+tp3165
+Rp3166
+(dp3167
+g2024
+F3.5555555555555554
+ssg173
+(dp3168
+g2024
+F3.0
+ssg8
+(g12
+S'\xa8\x01\x00\x00'
+p3169
+tp3170
+Rp3171
+(dp3172
+g2024
+F3.5555555555555554
+ssg8
+(g12
+S'\xab\x00\x00\x00'
+p3173
+tp3174
+Rp3175
+(dp3176
+g2024
+F3.6923076923076925
+ssg741
+(dp3177
+g2024
+F3.5555555555555554
+ssg8
+(g12
+S'\xb7\x00\x00\x00'
+p3178
+tp3179
+Rp3180
+(dp3181
+g2024
+F3.8399999999999999
+ssg8
+(g12
+S'\xb8\x01\x00\x00'
+p3182
+tp3183
+Rp3184
+(dp3185
+g2024
+F3.6923076923076925
+ssg249
+(dp3186
+g2024
+F3.5555555555555554
+ssg8
+(g12
+S'C\x01\x00\x00'
+p3187
+tp3188
+Rp3189
+(dp3190
+g2024
+F3.8399999999999999
+ssg8
+(g12
+S'H\x01\x00\x00'
+p3191
+tp3192
+Rp3193
+(dp3194
+g2024
+F3.4285714285714284
+ssg341
+(dp3195
+g2024
+F3.5555555555555554
+ssg345
+(dp3196
+g2024
+F2.4615384615384617
+ssg365
+(dp3197
+g2024
+F3.4285714285714284
+ssg8
+(g12
+S'c\x00\x00\x00'
+p3198
+tp3199
+Rp3200
+(dp3201
+g2024
+F3.2000000000000002
+ssg929
+(dp3202
+g2024
+F3.5555555555555554
+ssg421
+(dp3203
+g2024
+F2.7428571428571429
+ssg8
+(g12
+S'o\x00\x00\x00'
+p3204
+tp3205
+Rp3206
+(dp3207
+g2024
+F3.8399999999999999
+sssg165
+(dp3208
+g689
+(dp3209
+g2024
+F10.666666666666666
+ssg21
+g2062
+sg825
+(dp3210
+g2024
+F13.714285714285714
+ssg29
+g2201
+sg69
+g2662
+ssg169
+(dp3211
+g385
+(dp3212
+g2024
+F32.0
+sssg173
+(dp3213
+g8
+(g12
+S'\xc0\x01\x00\x00'
+p3214
+tp3215
+Rp3216
+(dp3217
+g2024
+F8.7272727272727266
+ssg145
+g3122
+sg161
+g3168
+sg421
+(dp3218
+g2024
+F4.5714285714285712
+ssg8
+(g12
+S'\xe6\x01\x00\x00'
+p3219
+tp3220
+Rp3221
+(dp3222
+g2024
+F8.7272727272727266
+ssg8
+(g12
+S'\xe7\x00\x00\x00'
+p3223
+tp3224
+Rp3225
+(dp3226
+g2024
+F8.0
+ssg69
+g2663
+sg8
+(g12
+S'\x91\x00\x00\x00'
+p3227
+tp3228
+Rp3229
+(dp3230
+g2024
+F8.0
+ssg8
+(g12
+S'X\x01\x00\x00'
+p3231
+tp3232
+Rp3233
+(dp3234
+g2024
+F8.7272727272727266
+sssg177
+(dp3235
+I345
+(dp3236
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'c\x01\x00\x00'
+p3237
+tp3238
+Rp3239
+(dp3240
+g2024
+F13.714285714285714
+ssg8
+(g12
+S'\xb3\x00\x00\x00'
+p3241
+tp3242
+Rp3243
+(dp3244
+g2024
+F10.666666666666666
+ssg253
+(dp3245
+g2024
+F5.333333333333333
+ssI125
+(dp3246
+g2024
+F8.7272727272727266
+sssg181
+(dp3247
+g657
+(dp3248
+g2024
+F6.4000000000000004
+ssg8
+(g12
+S'\xe2\x00\x00\x00'
+p3249
+tp3250
+Rp3251
+(dp3252
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'\xe6\x00\x00\x00'
+p3253
+tp3254
+Rp3255
+(dp3256
+g2024
+F6.0
+ssg433
+(dp3257
+g2024
+F6.8571428571428568
+ssg8
+(g12
+S'i\x01\x00\x00'
+p3258
+tp3259
+Rp3260
+(dp3261
+g2024
+F6.8571428571428568
+ssg8
+(g12
+S'\xec\x01\x00\x00'
+p3262
+tp3263
+Rp3264
+(dp3265
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'U\x01\x00\x00'
+p3266
+tp3267
+Rp3268
+(dp3269
+g2024
+F5.333333333333333
+ssg877
+(dp3270
+g2024
+F5.6470588235294121
+ssg501
+(dp3271
+g2024
+F5.0526315789473681
+ssg125
+g3012
+sg773
+(dp3272
+g2024
+F6.8571428571428568
+sssg185
+(dp3273
+g273
+(dp3274
+g2024
+F6.0
+ssg285
+(dp3275
+g2024
+F4.5714285714285712
+ssg41
+g2386
+sg1453
+(dp3276
+g2024
+F6.0
+ssg8
+(g12
+S'\xc7\x00\x00\x00'
+p3277
+tp3278
+Rp3279
+(dp3280
+g2024
+F5.0526315789473681
+ssg8
+(g12
+S'm\x00\x00\x00'
+p3281
+tp3282
+Rp3283
+(dp3284
+g2024
+F4.7999999999999998
+ssg841
+(dp3285
+g2024
+F6.0
+ssg589
+(dp3286
+g2024
+F6.0
+ssg209
+(dp3287
+g2024
+F4.7999999999999998
+ssg1113
+(dp3288
+g2024
+F6.4000000000000004
+ssg485
+(dp3289
+g2024
+F5.6470588235294121
+ssg129
+g3038
+sg133
+g3063
+ssg189
+(dp3290
+g113
+g2940
+ssg193
+(dp3291
+g789
+(dp3292
+g2024
+F6.4000000000000004
+ssg8
+(g12
+S'E\x00\x00\x00'
+p3293
+tp3294
+Rp3295
+(dp3296
+g2024
+F4.7999999999999998
+ssg41
+g2387
+sg8
+(g12
+S'\xa1\x00\x00\x00'
+p3297
+tp3298
+Rp3299
+(dp3300
+g2024
+F7.384615384615385
+ssg309
+(dp3301
+g2024
+F6.8571428571428568
+ssg209
+(dp3302
+g2024
+F6.0
+ssg349
+(dp3303
+g2024
+F8.0
+ssg97
+g2847
+sg8
+(g12
+S'\x17\x01\x00\x00'
+p3304
+tp3305
+Rp3306
+(dp3307
+g2024
+F8.0
+sssg197
+(dp3308
+I200
+(dp3309
+g2024
+F7.384615384615385
+ssg309
+(dp3310
+g2024
+F8.7272727272727266
+ssg349
+(dp3311
+g2024
+F10.666666666666666
+ssg97
+g2850
+sg129
+g3040
+sg141
+g3100
+ssg201
+(dp3312
+g8
+(g12
+S'\xe5\x01\x00\x00'
+p3313
+tp3314
+Rp3315
+(dp3316
+g2024
+F16.0
+ssg709
+(dp3317
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'\xf2\x00\x00\x00'
+p3318
+tp3319
+Rp3320
+(dp3321
+g2024
+F10.666666666666666
+ssg113
+g2927
+sg8
+(g12
+S'~\x00\x00\x00'
+p3322
+tp3323
+Rp3324
+(dp3325
+g2024
+F9.5999999999999996
+sssg205
+(dp3326
+g57
+g2614
+sg61
+g2629
+sg65
+g2654
+ssg209
+(dp3327
+g273
+(dp3328
+g2024
+F9.5999999999999996
+ssg41
+g2388
+sg185
+g3287
+sg193
+g3302
+sg841
+(dp3329
+g2024
+F9.5999999999999996
+ssg97
+g2846
+sg129
+g3045
+ssg213
+(dp3330
+g41
+g2392
+ssg217
+(dp3331
+g8
+(g12
+S'\x03\x01\x00\x00'
+p3332
+tp3333
+Rp3334
+(dp3335
+g2024
+F5.6470588235294121
+ssg1061
+(dp3336
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'I\x01\x00\x00'
+p3337
+tp3338
+Rp3339
+(dp3340
+g2024
+F6.4000000000000004
+ssg1213
+(dp3341
+g2024
+F6.8571428571428568
+ssg8
+(g12
+S'\xcc\x00\x00\x00'
+p3342
+tp3343
+Rp3344
+(dp3345
+g2024
+F6.8571428571428568
+ssg8
+(g12
+S'\xae\x01\x00\x00'
+p3346
+tp3347
+Rp3348
+(dp3349
+g2024
+F6.0
+ssg845
+(dp3350
+g2024
+F5.0526315789473681
+ssg81
+g2778
+sg8
+(g12
+S'\x95\x01\x00\x00'
+p3351
+tp3352
+Rp3353
+(dp3354
+g2024
+F6.8571428571428568
+ssg253
+(dp3355
+g2024
+F3.8399999999999999
+ssg37
+g2337
+sg653
+(dp3356
+g2024
+F6.0
+sssg221
+(dp3357
+g285
+(dp3358
+g2024
+F5.6470588235294121
+ssg421
+(dp3359
+g2024
+F4.5714285714285712
+ssg557
+(dp3360
+g2024
+F6.8571428571428568
+ssg73
+g2701
+sg8
+(g12
+S'\xd2\x00\x00\x00'
+p3361
+tp3362
+Rp3363
+(dp3364
+g2024
+F8.7272727272727266
+ssg993
+(dp3365
+g2024
+F6.8571428571428568
+ssg873
+(dp3366
+g2024
+F6.8571428571428568
+ssg1013
+(dp3367
+g2024
+F5.6470588235294121
+ssg8
+(g12
+S'\xb9\x01\x00\x00'
+p3368
+tp3369
+Rp3370
+(dp3371
+g2024
+F8.7272727272727266
+sssg225
+(dp3372
+g1489
+(dp3373
+g2024
+F10.666666666666666
+ssg885
+(dp3374
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'[\x01\x00\x00'
+p3375
+tp3376
+Rp3377
+(dp3378
+g2024
+F9.5999999999999996
+ssg361
+(dp3379
+g2024
+F8.7272727272727266
+ssg29
+g2204
+ssg229
+(dp3380
+g421
+(dp3381
+g2024
+F5.0526315789473681
+ssg8
+(g12
+S'G\x01\x00\x00'
+p3382
+tp3383
+Rp3384
+(dp3385
+g2024
+F9.5999999999999996
+ssg317
+(dp3386
+g2024
+F7.384615384615385
+ssg969
+(dp3387
+g2024
+F8.7272727272727266
+ssg333
+(dp3388
+g2024
+F7.384615384615385
+ssg1013
+(dp3389
+g2024
+F6.4000000000000004
+ssg129
+g3047
+ssg233
+(dp3390
+g537
+(dp3391
+g2024
+F12.0
+ssg29
+g2225
+sg69
+g2682
+ssg237
+(dp3392
+g353
+(dp3393
+g2024
+F10.666666666666666
+ssg41
+g2397
+ssg241
+(dp3394
+g17
+g2028
+sg45
+g2512
+ssg245
+(dp3395
+g665
+(dp3396
+g2024
+F32.0
+ssg8
+(g12
+S'K\x01\x00\x00'
+p3397
+tp3398
+Rp3399
+(dp3400
+g2024
+F24.0
+sssg249
+(dp3401
+g21
+g2084
+sg8
+(g12
+S'\n\x01\x00\x00'
+p3402
+tp3403
+Rp3404
+(dp3405
+g2024
+F13.714285714285714
+ssg161
+g3186
+sg345
+(dp3406
+g2024
+F4.7999999999999998
+sssg253
+(dp3407
+g8
+(g12
+S'\x80\x01\x00\x00'
+p3408
+tp3409
+Rp3410
+(dp3411
+g2024
+F5.333333333333333
+ssg8
+(g12
+S'\x03\x01\x00\x00'
+p3412
+tp3413
+Rp3414
+(dp3415
+g2024
+F5.333333333333333
+ssg545
+(dp3416
+g2024
+F6.4000000000000004
+ssg177
+g3245
+sg8
+(g12
+S'\x0b\x01\x00\x00'
+p3417
+tp3418
+Rp3419
+(dp3420
+g2024
+F5.0526315789473681
+ssg73
+g2717
+sg8
+(g12
+S'\xf0\x01\x00\x00'
+p3421
+tp3422
+Rp3423
+(dp3424
+g2024
+F6.0
+ssg217
+g3355
+sg1437
+(dp3425
+g2024
+F6.4000000000000004
+ssg625
+(dp3426
+g2024
+F4.7999999999999998
+ssg381
+(dp3427
+g2024
+F4.3636363636363633
+ssg8
+(g12
+S'\xdd\x00\x00\x00'
+p3428
+tp3429
+Rp3430
+(dp3431
+g2024
+F5.0526315789473681
+ssg653
+(dp3432
+g2024
+F5.6470588235294121
+sssg257
+(dp3433
+g381
+(dp3434
+g2024
+F8.0
+ssg8
+(g12
+S'\xa5\x00\x00\x00'
+p3435
+tp3436
+Rp3437
+(dp3438
+g2024
+F16.0
+ssg73
+g2718
+ssg261
+(dp3439
+g29
+g2215
+ssg265
+(dp3440
+g625
+(dp3441
+g2024
+F8.7272727272727266
+ssg637
+(dp3442
+g2024
+F8.7272727272727266
+ssg133
+g3077
+sI221
+(dp3443
+g2024
+F9.5999999999999996
+sssg269
+(dp3444
+I456
+(dp3445
+g2024
+F8.7272727272727266
+ssg8
+(g12
+S'N\x01\x00\x00'
+p3446
+tp3447
+Rp3448
+(dp3449
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'/\x01\x00\x00'
+p3450
+tp3451
+Rp3452
+(dp3453
+g2024
+F13.714285714285714
+ssI472
+(dp3454
+g2024
+F9.5999999999999996
+ssg1273
+(dp3455
+g2024
+F8.0
+ssI380
+(dp3456
+g2024
+F7.384615384615385
+sssg273
+(dp3457
+g209
+g3328
+sg185
+g3274
+sg129
+g3027
+ssg277
+(dp3458
+g429
+(dp3459
+g2024
+F13.714285714285714
+ssI154
+(dp3460
+g2024
+F9.5999999999999996
+ssg29
+g2220
+sg8
+(g12
+S'v\x01\x00\x00'
+p3461
+tp3462
+Rp3463
+(dp3464
+g2024
+F13.714285714285714
+ssg8
+(g12
+S'\xf3\x01\x00\x00'
+p3465
+tp3466
+Rp3467
+(dp3468
+g2024
+F13.714285714285714
+sssg281
+(dp3469
+g401
+(dp3470
+g2024
+F9.5999999999999996
+ssg657
+(dp3471
+g2024
+F12.0
+ssg61
+g2622
+sg877
+(dp3472
+g2024
+F9.5999999999999996
+sssg285
+(dp3473
+g557
+(dp3474
+g2024
+F7.384615384615385
+ssg185
+g3275
+sg8
+(g12
+S'g\x01\x00\x00'
+p3475
+tp3476
+Rp3477
+(dp3478
+g2024
+F8.7272727272727266
+ssg453
+(dp3479
+g2024
+F6.4000000000000004
+ssg8
+(g12
+S'\x8f\x00\x00\x00'
+p3480
+tp3481
+Rp3482
+(dp3483
+g2024
+F8.7272727272727266
+ssg221
+g3358
+sg8
+(g12
+S'\xd6\x00\x00\x00'
+p3484
+tp3485
+Rp3486
+(dp3487
+g2024
+F7.384615384615385
+ssg129
+g3032
+ssg289
+(dp3488
+g21
+g2100
+ssg293
+(dp3489
+g8
+(g12
+S'\xa1\x00\x00\x00'
+p3490
+tp3491
+Rp3492
+(dp3493
+g2024
+F6.4000000000000004
+ssg8
+(g12
+S'\xa6\x00\x00\x00'
+p3494
+tp3495
+Rp3496
+(dp3497
+g2024
+F6.0
+ssg41
+g2399
+sg45
+g2529
+sg193
+g3296
+sg8
+(g12
+S'\xef\x00\x00\x00'
+p3498
+tp3499
+Rp3500
+(dp3501
+g2024
+F6.8571428571428568
+ssg8
+(g12
+S'\x94\x01\x00\x00'
+p3502
+tp3503
+Rp3504
+(dp3505
+g2024
+F7.384615384615385
+ssg357
+(dp3506
+g2024
+F6.4000000000000004
+ssg8
+(g12
+S'\x17\x01\x00\x00'
+p3507
+tp3508
+Rp3509
+(dp3510
+g2024
+F6.8571428571428568
+ssg8
+(g12
+S'\x99\x00\x00\x00'
+p3511
+tp3512
+Rp3513
+(dp3514
+g2024
+F6.8571428571428568
+ssg121
+g2988
+ssg297
+(dp3515
+g8
+(g12
+S'\x9a\x01\x00\x00'
+p3516
+tp3517
+Rp3518
+(dp3519
+g2024
+F32.0
+ssg1885
+(dp3520
+g2024
+F24.0
+sssg301
+(dp3521
+g537
+(dp3522
+g2024
+F13.714285714285714
+ssg29
+g2230
+ssg305
+(dp3523
+g569
+(dp3524
+g2024
+F10.666666666666666
+ssg33
+g2302
+ssg309
+(dp3525
+g789
+(dp3526
+g2024
+F8.7272727272727266
+ssg77
+g2746
+sg193
+g3301
+sg197
+g3310
+sg141
+g3099
+ssg313
+(dp3527
+g981
+(dp3528
+g2024
+F10.666666666666666
+ssg345
+(dp3529
+g2024
+F4.5714285714285712
+ssg769
+(dp3530
+g2024
+F10.666666666666666
+ssg549
+(dp3531
+g2024
+F8.0
+ssg8
+(g12
+S'\xd5\x01\x00\x00'
+p3532
+tp3533
+Rp3534
+(dp3535
+g2024
+F12.0
+sssg317
+(dp3536
+g577
+(dp3537
+g2024
+F9.5999999999999996
+ssg333
+(dp3538
+g2024
+F8.0
+ssg229
+g3386
+sg377
+(dp3539
+g2024
+F9.5999999999999996
+ssg129
+g3039
+sg8
+(g12
+S'^\x01\x00\x00'
+p3540
+tp3541
+Rp3542
+(dp3543
+g2024
+F8.7272727272727266
+sssg321
+(dp3544
+g8
+(g12
+S'\x82\x01\x00\x00'
+p3545
+tp3546
+Rp3547
+(dp3548
+g2024
+F24.0
+ssg137
+g3084
+ssg325
+(dp3549
+I120
+(dp3550
+g2024
+F8.7272727272727266
+ssg8
+(g12
+S'2\x01\x00\x00'
+p3551
+tp3552
+Rp3553
+(dp3554
+g2024
+F16.0
+ssg8
+(g12
+S'\xc4\x01\x00\x00'
+p3555
+tp3556
+Rp3557
+(dp3558
+g2024
+F16.0
+ssg1033
+(dp3559
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'7\x01\x00\x00'
+p3560
+tp3561
+Rp3562
+(dp3563
+g2024
+F9.5999999999999996
+sssg329
+(dp3564
+g121
+g2993
+sg45
+g2534
+sg8
+(g12
+S'e\x01\x00\x00'
+p3565
+tp3566
+Rp3567
+(dp3568
+g2024
+F13.714285714285714
+ssg8
+(g12
+S'\xef\x00\x00\x00'
+p3569
+tp3570
+Rp3571
+(dp3572
+g2024
+F13.714285714285714
+sssg333
+(dp3573
+g145
+g3123
+sg8
+(g12
+S'\x01\x01\x00\x00'
+p3574
+tp3575
+Rp3576
+(dp3577
+g2024
+F9.5999999999999996
+ssg417
+(dp3578
+g2024
+F9.5999999999999996
+ssg421
+(dp3579
+g2024
+F5.333333333333333
+ssg317
+g3538
+sg229
+g3388
+ssg337
+(dp3580
+g569
+(dp3581
+g2024
+F10.666666666666666
+ssg33
+g2308
+ssg341
+(dp3582
+g413
+(dp3583
+g2024
+F8.7272727272727266
+ssg161
+g3195
+sg8
+(g12
+S'\xab\x00\x00\x00'
+p3584
+tp3585
+Rp3586
+(dp3587
+g2024
+F13.714285714285714
+ssg73
+g2728
+ssg345
+(dp3588
+g8
+(g12
+S'\x00\x01\x00\x00'
+p3589
+tp3590
+Rp3591
+(dp3592
+g2024
+F5.0526315789473681
+ssg21
+g2105
+sg161
+g3196
+sg549
+(dp3593
+g2024
+F4.1739130434782608
+ssg741
+(dp3594
+g2024
+F4.7999999999999998
+ssg8
+(g12
+S'<\x01\x00\x00'
+p3595
+tp3596
+Rp3597
+(dp3598
+g2024
+F4.5714285714285712
+ssg313
+g3529
+sg8
+(g12
+S'\xcd\x00\x00\x00'
+p3599
+tp3600
+Rp3601
+(dp3602
+g2024
+F5.333333333333333
+ssg1505
+(dp3603
+g2024
+F4.7999999999999998
+ssg8
+(g12
+S'\xd5\x01\x00\x00'
+p3604
+tp3605
+Rp3606
+(dp3607
+g2024
+F5.0526315789473681
+ssg493
+(dp3608
+g2024
+F4.5714285714285712
+ssg8
+(g12
+S'\x99\x01\x00\x00'
+p3609
+tp3610
+Rp3611
+(dp3612
+g2024
+F4.7999999999999998
+ssg249
+g3406
+sg8
+(g12
+S'\\\x01\x00\x00'
+p3613
+tp3614
+Rp3615
+(dp3616
+g2024
+F5.333333333333333
+ssg505
+(dp3617
+g2024
+F4.7999999999999998
+ssg8
+(g12
+S'\xff\x00\x00\x00'
+p3618
+tp3619
+Rp3620
+(dp3621
+g2024
+F5.333333333333333
+sssg349
+(dp3622
+g97
+g2848
+sg193
+g3303
+sg197
+g3311
+ssg353
+(dp3623
+g41
+g2408
+sg8
+(g12
+S'\x08\x01\x00\x00'
+p3624
+tp3625
+Rp3626
+(dp3627
+g2024
+F9.5999999999999996
+ssg613
+(dp3628
+g2024
+F8.0
+ssg237
+g3393
+sg8
+(g12
+S'\x9f\x01\x00\x00'
+p3629
+tp3630
+Rp3631
+(dp3632
+g2024
+F9.5999999999999996
+ssI380
+(dp3633
+g2024
+F6.8571428571428568
+ssg8
+(g12
+S'\x15\x01\x00\x00'
+p3634
+tp3635
+Rp3636
+(dp3637
+g2024
+F12.0
+sssg357
+(dp3638
+g629
+(dp3639
+g2024
+F13.714285714285714
+ssg293
+g3506
+sg41
+g2409
+sg681
+(dp3640
+g2024
+F10.666666666666666
+sssg361
+(dp3641
+g117
+g2985
+sg89
+g2824
+sg225
+g3379
+sg101
+g2910
+sg1005
+(dp3642
+g2024
+F12.0
+ssg8
+(g12
+S'\xd9\x00\x00\x00'
+p3643
+tp3644
+Rp3645
+(dp3646
+g2024
+F9.5999999999999996
+sssg365
+(dp3647
+g1157
+(dp3648
+g2024
+F9.5999999999999996
+ssg605
+(dp3649
+g2024
+F9.5999999999999996
+ssg161
+g3197
+sg37
+g2346
+sg8
+(g12
+S'\xb5\x00\x00\x00'
+p3650
+tp3651
+Rp3652
+(dp3653
+g2024
+F10.666666666666666
+sssg369
+(dp3654
+g21
+g2080
+ssg373
+(dp3655
+g785
+(dp3656
+g2024
+F8.7272727272727266
+ssg817
+(dp3657
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'M\x01\x00\x00'
+p3658
+tp3659
+Rp3660
+(dp3661
+g2024
+F8.0
+ssg1889
+(dp3662
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'\xbb\x01\x00\x00'
+p3663
+tp3664
+Rp3665
+(dp3666
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'\xde\x00\x00\x00'
+p3667
+tp3668
+Rp3669
+(dp3670
+g2024
+F8.7272727272727266
+sssg377
+(dp3671
+g1105
+(dp3672
+g2024
+F8.0
+ssg317
+g3539
+sg417
+(dp3673
+g2024
+F12.0
+ssg8
+(g12
+S'^\x01\x00\x00'
+p3674
+tp3675
+Rp3676
+(dp3677
+g2024
+F10.666666666666666
+sssg381
+(dp3678
+g8
+(g12
+S'\xa5\x00\x00\x00'
+p3679
+tp3680
+Rp3681
+(dp3682
+g2024
+F8.0
+ssg441
+(dp3683
+g2024
+F5.6470588235294121
+ssg653
+(dp3684
+g2024
+F7.384615384615385
+ssg73
+g2731
+sg8
+(g12
+S'\xae\x01\x00\x00'
+p3685
+tp3686
+Rp3687
+(dp3688
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'\x96\x01\x00\x00'
+p3689
+tp3690
+Rp3691
+(dp3692
+g2024
+F8.0
+ssg253
+g3427
+sg257
+g3434
+sg37
+g2347
+ssg385
+(dp3693
+g1049
+(dp3694
+g2024
+F13.714285714285714
+ssg169
+g3212
+ssg389
+(dp3695
+g8
+(g12
+S'\x88\x00\x00\x00'
+p3696
+tp3697
+Rp3698
+(dp3699
+g2024
+F9.5999999999999996
+ssI464
+(dp3700
+g2024
+F12.0
+ssg8
+(g12
+S'\xed\x01\x00\x00'
+p3701
+tp3702
+Rp3703
+(dp3704
+g2024
+F13.714285714285714
+ssg1321
+(dp3705
+g2024
+F9.5999999999999996
+ssg45
+g2506
+ssg393
+(dp3706
+g8
+(g12
+S'\xe2\x01\x00\x00'
+p3707
+tp3708
+Rp3709
+(dp3710
+g2024
+F9.5999999999999996
+ssg41
+g2418
+sg949
+(dp3711
+g2024
+F6.8571428571428568
+ssg85
+g2812
+sg473
+(dp3712
+g2024
+F8.7272727272727266
+ssg1121
+(dp3713
+g2024
+F8.7272727272727266
+sssg397
+(dp3714
+g29
+g2255
+sg8
+(g12
+S'\t\x01\x00\x00'
+p3715
+tp3716
+Rp3717
+(dp3718
+g2024
+F13.714285714285714
+ssg8
+(g12
+S'\xba\x00\x00\x00'
+p3719
+tp3720
+Rp3721
+(dp3722
+g2024
+F16.0
+ssg445
+(dp3723
+g2024
+F13.714285714285714
+ssI332
+(dp3724
+g2024
+F9.5999999999999996
+sssg401
+(dp3725
+g8
+(g12
+S'!\x01\x00\x00'
+p3726
+tp3727
+Rp3728
+(dp3729
+g2024
+F8.7272727272727266
+ssg281
+g3470
+sg8
+(g12
+S'D\x01\x00\x00'
+p3730
+tp3731
+Rp3732
+(dp3733
+g2024
+F13.714285714285714
+ssg425
+(dp3734
+g2024
+F6.0
+ssg61
+g2617
+sg8
+(g12
+S'\x91\x01\x00\x00'
+p3735
+tp3736
+Rp3737
+(dp3738
+g2024
+F12.0
+sssg405
+(dp3739
+g61
+g2624
+sg673
+(dp3740
+g2024
+F8.7272727272727266
+ssg8
+(g12
+S'\xb2\x01\x00\x00'
+p3741
+tp3742
+Rp3743
+(dp3744
+g2024
+F13.714285714285714
+ssI283
+(dp3745
+g2024
+F8.7272727272727266
+ssI220
+(dp3746
+g2024
+F9.5999999999999996
+sssg409
+(dp3747
+g29
+g2260
+ssg413
+(dp3748
+g161
+g3201
+sg8
+(g12
+S'e\x00\x00\x00'
+p3749
+tp3750
+Rp3751
+(dp3752
+g2024
+F5.0526315789473681
+ssg701
+(dp3753
+g2024
+F9.5999999999999996
+ssg73
+g2732
+sg341
+g3583
+sI244
+(dp3754
+g2024
+F8.0
+ssg8
+(g12
+S'\xfb\x00\x00\x00'
+p3755
+tp3756
+Rp3757
+(dp3758
+g2024
+F9.5999999999999996
+sssg417
+(dp3759
+g1105
+(dp3760
+g2024
+F8.0
+ssg377
+g3673
+sg333
+g3578
+sg109
+g2919
+ssg421
+(dp3761
+g145
+g3115
+sg413
+g3752
+sg161
+g3203
+sg173
+g3218
+sg941
+(dp3762
+g2024
+F6.4000000000000004
+ssg333
+g3579
+sg8
+(g12
+S'\xd2\x01\x00\x00'
+p3763
+tp3764
+Rp3765
+(dp3766
+g2024
+F6.4000000000000004
+ssg221
+g3359
+sg993
+(dp3767
+g2024
+F5.6470588235294121
+ssg229
+g3381
+sg8
+(g12
+S'\xf9\x00\x00\x00'
+p3768
+tp3769
+Rp3770
+(dp3771
+g2024
+F4.7999999999999998
+ssg1021
+(dp3772
+g2024
+F6.4000000000000004
+sssg425
+(dp3773
+g401
+g3734
+sg865
+(dp3774
+g2024
+F6.0
+ssg45
+g2562
+sg965
+(dp3775
+g2024
+F7.384615384615385
+ssg581
+(dp3776
+g2024
+F8.7272727272727266
+ssg8
+(g12
+S'q\x01\x00\x00'
+p3777
+tp3778
+Rp3779
+(dp3780
+g2024
+F8.0
+ssg8
+(g12
+S'\xf3\x00\x00\x00'
+p3781
+tp3782
+Rp3783
+(dp3784
+g2024
+F6.4000000000000004
+ssg8
+(g12
+S'T\x01\x00\x00'
+p3785
+tp3786
+Rp3787
+(dp3788
+g2024
+F8.0
+ssg501
+(dp3789
+g2024
+F5.333333333333333
+ssg8
+(g12
+S'\x9b\x01\x00\x00'
+p3790
+tp3791
+Rp3792
+(dp3793
+g2024
+F8.0
+sssg429
+(dp3794
+g277
+g3459
+sg29
+g2264
+ssg433
+(dp3795
+g501
+(dp3796
+g2024
+F8.7272727272727266
+ssg937
+(dp3797
+g2024
+F12.0
+ssg181
+g3257
+ssg437
+(dp3798
+I396
+(dp3799
+g2024
+F13.714285714285714
+ssg8
+(g12
+S'5\x01\x00\x00'
+p3800
+tp3801
+Rp3802
+(dp3803
+g2024
+F24.0
+sssg441
+(dp3804
+g37
+g2326
+sg73
+g2737
+sg605
+(dp3805
+g2024
+F7.384615384615385
+ssg1249
+(dp3806
+g2024
+F6.8571428571428568
+ssg8
+(g12
+S'\x96\x01\x00\x00'
+p3807
+tp3808
+Rp3809
+(dp3810
+g2024
+F8.7272727272727266
+ssg381
+g3683
+sg8
+(g12
+S'\xbc\x01\x00\x00'
+p3811
+tp3812
+Rp3813
+(dp3814
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'\xbe\x00\x00\x00'
+p3815
+tp3816
+Rp3817
+(dp3818
+g2024
+F9.5999999999999996
+sssg445
+(dp3819
+g29
+g2268
+sg397
+g3723
+ssg449
+(dp3820
+g81
+g2777
+ssg453
+(dp3821
+g285
+g3479
+sg813
+(dp3822
+g2024
+F7.384615384615385
+ssg185
+g3284
+sg73
+g2738
+sg8
+(g12
+S'\x8f\x00\x00\x00'
+p3823
+tp3824
+Rp3825
+(dp3826
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'\x83\x01\x00\x00'
+p3827
+tp3828
+Rp3829
+(dp3830
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'\xd6\x00\x00\x00'
+p3831
+tp3832
+Rp3833
+(dp3834
+g2024
+F8.0
+sssg457
+(dp3835
+g1085
+(dp3836
+g2024
+F12.0
+ssg73
+g2739
+ssg461
+(dp3837
+g21
+g2135
+sg161
+g3207
+ssg465
+(dp3838
+g49
+g2593
+sg673
+(dp3839
+g2024
+F10.666666666666666
+ssg65
+g2649
+ssg469
+(dp3840
+g8
+(g12
+S'\xc3\x00\x00\x00'
+p3841
+tp3842
+Rp3843
+(dp3844
+g2024
+F19.199999999999999
+sssg473
+(dp3845
+g949
+(dp3846
+g2024
+F7.384615384615385
+ssI482
+(dp3847
+g2024
+F10.666666666666666
+ssg8
+(g12
+S';\x01\x00\x00'
+p3848
+tp3849
+Rp3850
+(dp3851
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'\x9c\x01\x00\x00'
+p3852
+tp3853
+Rp3854
+(dp3855
+g2024
+F9.5999999999999996
+ssg393
+g3712
+ssg477
+(dp3856
+g101
+g2888
+ssg481
+(dp3857
+g113
+g2972
+sg8
+(g12
+S'\xd1\x01\x00\x00'
+p3858
+tp3859
+Rp3860
+(dp3861
+g2024
+F16.0
+sssg485
+(dp3862
+I296
+(dp3863
+g2024
+F13.714285714285714
+ssg185
+g3289
+sg133
+g3071
+sg41
+g2431
+ssg489
+(dp3864
+g669
+(dp3865
+g2024
+F32.0
+sssg493
+(dp3866
+g81
+g2783
+sg149
+g3145
+sg345
+g3608
+sg769
+(dp3867
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'\x99\x01\x00\x00'
+p3868
+tp3869
+Rp3870
+(dp3871
+g2024
+F10.666666666666666
+sssg497
+(dp3872
+g49
+g2603
+sg1205
+(dp3873
+g2024
+F8.7272727272727266
+ssg8
+(g12
+S'k\x01\x00\x00'
+p3874
+tp3875
+Rp3876
+(dp3877
+g2024
+F9.5999999999999996
+ssg325
+g3550
+sI398
+(dp3878
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'\xfe\x00\x00\x00'
+p3879
+tp3880
+Rp3881
+(dp3882
+g2024
+F8.7272727272727266
+sssg501
+(dp3883
+g657
+(dp3884
+g2024
+F8.0
+ssg425
+g3789
+sg937
+(dp3885
+g2024
+F7.384615384615385
+ssg433
+g3796
+sg181
+g3271
+sg8
+(g12
+S'\xec\x01\x00\x00'
+p3886
+tp3887
+Rp3888
+(dp3889
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'q\x01\x00\x00'
+p3890
+tp3891
+Rp3892
+(dp3893
+g2024
+F9.5999999999999996
+ssg865
+(dp3894
+g2024
+F6.8571428571428568
+sssg505
+(dp3895
+g8
+(g12
+S'\x00\x01\x00\x00'
+p3896
+tp3897
+Rp3898
+(dp3899
+g2024
+F13.714285714285714
+ssg21
+g2152
+sg345
+g3617
+sI316
+(dp3900
+g2024
+F10.666666666666666
+sssg509
+(dp3901
+g45
+g2580
+ssg513
+(dp3902
+g49
+g2604
+sg721
+(dp3903
+g2024
+F6.8571428571428568
+ssg57
+g2615
+sg61
+g2643
+sg125
+g3018
+ssg517
+(dp3904
+g177
+g3246
+sI394
+(dp3905
+g2024
+F8.0
+ssg8
+(g12
+S'\xf1\x01\x00\x00'
+p3906
+tp3907
+Rp3908
+(dp3909
+g2024
+F12.0
+ssg733
+(dp3910
+g2024
+F9.5999999999999996
+ssg1421
+(dp3911
+g2024
+F8.7272727272727266
+ssI479
+(dp3912
+g2024
+F8.7272727272727266
+sssg521
+(dp3913
+g113
+g2977
+sI465
+(dp3914
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'"\x01\x00\x00'
+p3915
+tp3916
+Rp3917
+(dp3918
+g2024
+F13.714285714285714
+ssg8
+(g12
+S'S\x01\x00\x00'
+p3919
+tp3920
+Rp3921
+(dp3922
+g2024
+F16.0
+ssg201
+g3325
+ssg525
+(dp3923
+g21
+g2126
+ssg529
+(dp3924
+g117
+g2983
+ssg533
+(dp3925
+g8
+(g12
+S'\xeb\x01\x00\x00'
+p3926
+tp3927
+Rp3928
+(dp3929
+g2024
+F16.0
+ssg45
+g2448
+ssg537
+(dp3930
+g301
+g3522
+sg29
+g2226
+sg69
+g2660
+sg233
+g3391
+sg8
+(g12
+S'\x8d\x01\x00\x00'
+p3931
+tp3932
+Rp3933
+(dp3934
+g2024
+F13.714285714285714
+sssg541
+(dp3935
+g8
+(g12
+S'\xd0\x01\x00\x00'
+p3936
+tp3937
+Rp3938
+(dp3939
+g2024
+F16.0
+ssg561
+(dp3940
+g2024
+F12.0
+ssg45
+g2449
+ssg545
+(dp3941
+g253
+g3416
+sg8
+(g12
+S'\x7f\x01\x00\x00'
+p3942
+tp3943
+Rp3944
+(dp3945
+g2024
+F16.0
+sssg549
+(dp3946
+g8
+(g12
+S'\xf1\x00\x00\x00'
+p3947
+tp3948
+Rp3949
+(dp3950
+g2024
+F8.7272727272727266
+ssg8
+(g12
+S'\xe8\x00\x00\x00'
+p3951
+tp3952
+Rp3953
+(dp3954
+g2024
+F9.5999999999999996
+ssg313
+g3531
+sg8
+(g12
+S'\xcd\x00\x00\x00'
+p3955
+tp3956
+Rp3957
+(dp3958
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'\x11\x01\x00\x00'
+p3959
+tp3960
+Rp3961
+(dp3962
+g2024
+F9.5999999999999996
+ssg345
+g3593
+sg1281
+(dp3963
+g2024
+F8.0
+sssg553
+(dp3964
+g113
+g2925
+sg8
+(g12
+S'\xcb\x00\x00\x00'
+p3965
+tp3966
+Rp3967
+(dp3968
+g2024
+F24.0
+sssg557
+(dp3969
+g1013
+(dp3970
+g2024
+F7.384615384615385
+ssg1433
+(dp3971
+g2024
+F10.666666666666666
+ssg285
+g3474
+sg129
+g3033
+sg221
+g3360
+ssg561
+(dp3972
+g8
+(g12
+S'\xd0\x01\x00\x00'
+p3973
+tp3974
+Rp3975
+(dp3976
+g2024
+F12.0
+ssg8
+(g12
+S'\xda\x01\x00\x00'
+p3977
+tp3978
+Rp3979
+(dp3980
+g2024
+F13.714285714285714
+ssg541
+g3940
+sg389
+g3699
+sg45
+g2454
+ssg565
+(dp3981
+g1121
+(dp3982
+g2024
+F13.714285714285714
+ssg41
+g2361
+ssg569
+(dp3983
+g29
+g2182
+sg33
+g2315
+sg305
+g3524
+sg337
+g3581
+sg1693
+(dp3984
+g2024
+F9.5999999999999996
+ssg649
+(dp3985
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'\x9e\x01\x00\x00'
+p3986
+tp3987
+Rp3988
+(dp3989
+g2024
+F9.5999999999999996
+sssg573
+(dp3990
+g693
+(dp3991
+g2024
+F16.0
+sssg577
+(dp3992
+g817
+(dp3993
+g2024
+F8.7272727272727266
+ssg317
+g3537
+sI350
+(dp3994
+g2024
+F10.666666666666666
+ssg905
+(dp3995
+g2024
+F10.666666666666666
+sssg581
+(dp3996
+g425
+g3776
+ssg585
+(dp3997
+g21
+g2050
+ssg589
+(dp3998
+g185
+g3286
+sg285
+g3483
+sg453
+g3826
+ssg593
+(dp3999
+g8
+(g12
+S'N\x01\x00\x00'
+p4000
+tp4001
+Rp4002
+(dp4003
+g2024
+F19.199999999999999
+sssg597
+(dp4004
+g145
+g3121
+sg69
+g2664
+sg173
+g3230
+ssg601
+(dp4005
+g113
+g2926
+sg8
+(g12
+S'k\x01\x00\x00'
+p4006
+tp4007
+Rp4008
+(dp4009
+g2024
+F16.0
+sssg605
+(dp4010
+g441
+g3805
+sg365
+g3649
+sI308
+(dp4011
+g2024
+F8.7272727272727266
+ssg1157
+(dp4012
+g2024
+F9.5999999999999996
+ssg37
+g2338
+ssg609
+(dp4013
+g8
+(g12
+S'\xaf\x00\x00\x00'
+p4014
+tp4015
+Rp4016
+(dp4017
+g2024
+F16.0
+sssg613
+(dp4018
+g8
+(g12
+S'\xc8\x01\x00\x00'
+p4019
+tp4020
+Rp4021
+(dp4022
+g2024
+F9.5999999999999996
+ssg85
+g2807
+sg353
+g3628
+sg41
+g2366
+sg8
+(g12
+S'\x97\x01\x00\x00'
+p4023
+tp4024
+Rp4025
+(dp4026
+g2024
+F16.0
+sssg617
+(dp4027
+g29
+g2192
+ssg621
+(dp4028
+g113
+g2931
+sg8
+(g12
+S'\xa6\x01\x00\x00'
+p4029
+tp4030
+Rp4031
+(dp4032
+g2024
+F24.0
+sssg625
+(dp4033
+g8
+(g12
+S'\xe8\x01\x00\x00'
+p4034
+tp4035
+Rp4036
+(dp4037
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'\xe9\x00\x00\x00'
+p4038
+tp4039
+Rp4040
+(dp4041
+g2024
+F6.4000000000000004
+ssg133
+g3075
+sg253
+g3426
+sg901
+(dp4042
+g2024
+F7.384615384615385
+ssg265
+g3441
+sg1421
+(dp4043
+g2024
+F8.0
+sssg629
+(dp4044
+g357
+g3639
+sg41
+g2374
+sg293
+g3514
+ssg633
+(dp4045
+g277
+g3460
+sg29
+g2197
+sg765
+(dp4046
+g2024
+F12.0
+ssI358
+(dp4047
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'\x9e\x00\x00\x00'
+p4048
+tp4049
+Rp4050
+(dp4051
+g2024
+F8.7272727272727266
+sssg637
+(dp4052
+g8
+(g12
+S'\xc7\x00\x00\x00'
+p4053
+tp4054
+Rp4055
+(dp4056
+g2024
+F7.384615384615385
+ssI267
+(dp4057
+g2024
+F7.384615384615385
+ssg73
+g2695
+sg901
+(dp4058
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'\xb5\x01\x00\x00'
+p4059
+tp4060
+Rp4061
+(dp4062
+g2024
+F9.5999999999999996
+ssg133
+g3076
+sg265
+g3442
+ssg641
+(dp4063
+g29
+g2198
+sI332
+(dp4064
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'6\x01\x00\x00'
+p4065
+tp4066
+Rp4067
+(dp4068
+g2024
+F16.0
+ssg1289
+(dp4069
+g2024
+F16.0
+sssg645
+(dp4070
+g8
+(g12
+S'\xb4\x01\x00\x00'
+p4071
+tp4072
+Rp4073
+(dp4074
+g2024
+F13.714285714285714
+ssg2504
+(dp4075
+g2024
+F24.0
+sssg649
+(dp4076
+g29
+g2199
+sg569
+g3985
+sg8
+(g12
+S'\x8c\x01\x00\x00'
+p4077
+tp4078
+Rp4079
+(dp4080
+g2024
+F8.7272727272727266
+ssg633
+g4051
+sg765
+(dp4081
+g2024
+F10.666666666666666
+ssg1673
+(dp4082
+g2024
+F10.666666666666666
+sssg653
+(dp4083
+g381
+g3684
+sg217
+g3356
+sg253
+g3432
+sI430
+(dp4084
+g2024
+F12.0
+sssg657
+(dp4085
+g181
+g3248
+sg281
+g3471
+sg877
+(dp4086
+g2024
+F9.5999999999999996
+ssg501
+g3884
+ssg661
+(dp4087
+g8
+(g12
+S'\xc1\x00\x00\x00'
+p4088
+tp4089
+Rp4090
+(dp4091
+g2024
+F9.5999999999999996
+ssg121
+g2987
+sg193
+g3300
+sg293
+g3493
+ssg665
+(dp4092
+g245
+g3396
+ssg669
+(dp4093
+g8
+(g12
+S'\xdc\x00\x00\x00'
+p4094
+tp4095
+Rp4096
+(dp4097
+g2024
+F13.714285714285714
+ssg489
+g3865
+ssg673
+(dp4098
+g405
+g3740
+sg49
+g2586
+sg8
+(g12
+S')\x01\x00\x00'
+p4099
+tp4100
+Rp4101
+(dp4102
+g2024
+F8.7272727272727266
+ssg8
+(g12
+S'\x8e\x01\x00\x00'
+p4103
+tp4104
+Rp4105
+(dp4106
+g2024
+F9.5999999999999996
+ssg465
+g3839
+sg8
+(g12
+S'\xdc\x00\x00\x00'
+p4107
+tp4108
+Rp4109
+(dp4110
+g2024
+F8.7272727272727266
+sssg677
+(dp4111
+g381
+g3682
+sg257
+g3438
+sg73
+g2700
+ssg681
+(dp4112
+g45
+g2489
+sg8
+(g12
+S'\xab\x01\x00\x00'
+p4113
+tp4114
+Rp4115
+(dp4116
+g2024
+F13.714285714285714
+ssg293
+g3497
+sg41
+g2381
+sg357
+g3640
+ssg685
+(dp4117
+g8
+(g12
+S'\xc9\x00\x00\x00'
+p4118
+tp4119
+Rp4120
+(dp4121
+g2024
+F16.0
+ssg8
+(g12
+S'\xba\x01\x00\x00'
+p4122
+tp4123
+Rp4124
+(dp4125
+g2024
+F19.199999999999999
+ssI170
+(dp4126
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'\x7f\x01\x00\x00'
+p4127
+tp4128
+Rp4129
+(dp4130
+g2024
+F12.0
+sssg689
+(dp4131
+g21
+g2067
+sg29
+g2202
+sg165
+g3209
+sg1293
+(dp4132
+g2024
+F12.0
+sssg693
+(dp4133
+g81
+g2784
+sI280
+(dp4134
+g2024
+F8.7272727272727266
+ssg573
+g3991
+sg8
+(g12
+S'\xc6\x00\x00\x00'
+p4135
+tp4136
+Rp4137
+(dp4138
+g2024
+F13.714285714285714
+ssg8
+(g12
+S'\x0e\x01\x00\x00'
+p4139
+tp4140
+Rp4141
+(dp4142
+g2024
+F12.0
+sssg697
+(dp4143
+I353
+(dp4144
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'\xd3\x00\x00\x00'
+p4145
+tp4146
+Rp4147
+(dp4148
+g2024
+F13.714285714285714
+ssg685
+g4126
+sg1093
+(dp4149
+g2024
+F8.0
+ssg8
+(g12
+S'\xcf\x00\x00\x00'
+p4150
+tp4151
+Rp4152
+(dp4153
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'\x93\x01\x00\x00'
+p4154
+tp4155
+Rp4156
+(dp4157
+g2024
+F13.714285714285714
+sssg701
+(dp4158
+g341
+g3587
+sg413
+g3753
+sg161
+g3176
+ssg705
+(dp4159
+g29
+g2178
+ssg709
+(dp4160
+g113
+g2941
+sg985
+(dp4161
+g2024
+F12.0
+ssg33
+g2307
+sg201
+g3317
+ssg713
+(dp4162
+g793
+(dp4163
+g2024
+F12.0
+ssg8
+(g12
+S'\xc3\x00\x00\x00'
+p4164
+tp4165
+Rp4166
+(dp4167
+g2024
+F8.7272727272727266
+ssg8
+(g12
+S'j\x01\x00\x00'
+p4168
+tp4169
+Rp4170
+(dp4171
+g2024
+F12.0
+ssg725
+(dp4172
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'\xfa\x00\x00\x00'
+p4173
+tp4174
+Rp4175
+(dp4176
+g2024
+F8.0
+ssI219
+(dp4177
+g2024
+F6.8571428571428568
+ssI412
+(dp4178
+g2024
+F8.0
+sssg717
+(dp4179
+g21
+g2072
+sg609
+g4017
+sg8
+(g12
+S'\xcc\x01\x00\x00'
+p4180
+tp4181
+Rp4182
+(dp4183
+g2024
+F16.0
+ssg1001
+(dp4184
+g2024
+F12.0
+ssg8
+(g12
+S'\xbf\x01\x00\x00'
+p4185
+tp4186
+Rp4187
+(dp4188
+g2024
+F13.714285714285714
+sssg721
+(dp4189
+g1181
+(dp4190
+g2024
+F6.8571428571428568
+ssg8
+(g12
+S'&\x01\x00\x00'
+p4191
+tp4192
+Rp4193
+(dp4194
+g2024
+F8.7272727272727266
+ssg49
+g2582
+sg8
+(g12
+S'n\x01\x00\x00'
+p4195
+tp4196
+Rp4197
+(dp4198
+g2024
+F8.0
+ssg729
+(dp4199
+g2024
+F8.7272727272727266
+ssg101
+g2880
+sg8
+(g12
+S'\xb6\x00\x00\x00'
+p4200
+tp4201
+Rp4202
+(dp4203
+g2024
+F6.8571428571428568
+ssg113
+g2946
+sg513
+g3903
+ssg725
+(dp4204
+g8
+(g12
+S'\xdb\x00\x00\x00'
+p4205
+tp4206
+Rp4207
+(dp4208
+g2024
+F10.666666666666666
+ssg713
+g4172
+ssg729
+(dp4209
+g721
+g4199
+sg49
+g2598
+ssg733
+(dp4210
+g177
+g3244
+sg1397
+(dp4211
+g2024
+F12.0
+ssg8
+(g12
+S'\x8a\x01\x00\x00'
+p4212
+tp4213
+Rp4214
+(dp4215
+g2024
+F9.5999999999999996
+ssg517
+g3910
+ssg737
+(dp4216
+g113
+g2950
+sg33
+g2310
+ssg741
+(dp4217
+I372
+(dp4218
+g2024
+F12.0
+ssg345
+g3594
+sg161
+g3177
+sg365
+g3653
+ssg745
+(dp4219
+g721
+g4203
+sg8
+(g12
+S'\xb8\x00\x00\x00'
+p4220
+tp4221
+Rp4222
+(dp4223
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'\xad\x01\x00\x00'
+p4224
+tp4225
+Rp4226
+(dp4227
+g2024
+F12.0
+ssg1193
+(dp4228
+g2024
+F13.714285714285714
+ssg101
+g2892
+ssg749
+(dp4229
+g161
+g3181
+sg69
+g2683
+ssg753
+(dp4230
+g125
+g3007
+sg1733
+(dp4231
+g2024
+F13.714285714285714
+ssg745
+g4223
+sg101
+g2897
+ssg757
+(dp4232
+g8
+(g12
+S'f\x01\x00\x00'
+p4233
+tp4234
+Rp4235
+(dp4236
+g2024
+F19.199999999999999
+sssg761
+(dp4237
+g397
+g3722
+ssg765
+(dp4238
+g633
+g4046
+sg29
+g2211
+sg649
+g4081
+ssg769
+(dp4239
+I280
+(dp4240
+g2024
+F9.5999999999999996
+ssg313
+g3530
+sg8
+(g12
+S'\xd5\x01\x00\x00'
+p4241
+tp4242
+Rp4243
+(dp4244
+g2024
+F13.714285714285714
+ssg493
+g3867
+ssg773
+(dp4245
+g181
+g3272
+sg61
+g2647
+sg877
+(dp4246
+g2024
+F10.666666666666666
+sssg777
+(dp4247
+g441
+g3818
+sg37
+g2351
+ssg781
+(dp4248
+g21
+g2153
+ssg785
+(dp4249
+g1105
+(dp4250
+g2024
+F7.384615384615385
+ssg373
+g3656
+sg8
+(g12
+S'\xbb\x01\x00\x00'
+p4251
+tp4252
+Rp4253
+(dp4254
+g2024
+F10.666666666666666
+ssI468
+(dp4255
+g2024
+F10.666666666666666
+ssg1165
+(dp4256
+g2024
+F13.714285714285714
+sssg789
+(dp4257
+g661
+g4091
+sg309
+g3526
+sg193
+g3292
+sg77
+g2745
+sg8
+(g12
+S'\x90\x01\x00\x00'
+p4258
+tp4259
+Rp4260
+(dp4261
+g2024
+F10.666666666666666
+ssg121
+g2989
+ssg793
+(dp4262
+g713
+g4163
+ssg797
+(dp4263
+g8
+(g12
+S'\xe8\x01\x00\x00'
+p4264
+tp4265
+Rp4266
+(dp4267
+g2024
+F13.714285714285714
+ssg949
+(dp4268
+g2024
+F8.0
+ssg713
+g4167
+sg469
+g3844
+ssg801
+(dp4269
+g8
+(g12
+S'\x85\x01\x00\x00'
+p4270
+tp4271
+Rp4272
+(dp4273
+g2024
+F32.0
+ssg8
+(g12
+S'=\x01\x00\x00'
+p4274
+tp4275
+Rp4276
+(dp4277
+g2024
+F24.0
+sssg805
+(dp4278
+g8
+(g12
+S'A\x01\x00\x00'
+p4279
+tp4280
+Rp4281
+(dp4282
+g2024
+F16.0
+ssg85
+g2802
+ssg809
+(dp4283
+g1137
+(dp4284
+g2024
+F12.0
+ssg693
+g4138
+ssg813
+(dp4285
+g8
+(g12
+S'\x83\x01\x00\x00'
+p4286
+tp4287
+Rp4288
+(dp4289
+g2024
+F10.666666666666666
+ssg185
+g3280
+sg453
+g3822
+sg73
+g2719
+sg637
+g4056
+sg133
+g3057
+ssg817
+(dp4290
+g577
+g3993
+sg1349
+(dp4291
+g2024
+F7.384615384615385
+ssg197
+g3309
+sg373
+g3657
+sg129
+g3034
+sg8
+(g12
+S'\xde\x00\x00\x00'
+p4292
+tp4293
+Rp4294
+(dp4295
+g2024
+F8.0
+ssg141
+g3098
+ssg821
+(dp4296
+g8
+(g12
+S'\x1c\x01\x00\x00'
+p4297
+tp4298
+Rp4299
+(dp4300
+g2024
+F32.0
+ssg685
+g4121
+ssg825
+(dp4301
+g165
+g3210
+sg69
+g2668
+ssg829
+(dp4302
+g553
+g3968
+sg1261
+(dp4303
+g2024
+F13.714285714285714
+sssg833
+(dp4304
+g81
+g2768
+sg217
+g3345
+ssg837
+(dp4305
+g345
+g3602
+sg549
+g3958
+ssg841
+(dp4306
+g209
+g3329
+sg185
+g3285
+sg129
+g3044
+ssg845
+(dp4307
+g8
+(g12
+S'a\x01\x00\x00'
+p4308
+tp4309
+Rp4310
+(dp4311
+g2024
+F6.8571428571428568
+ssg8
+(g12
+S'I\x01\x00\x00'
+p4312
+tp4313
+Rp4314
+(dp4315
+g2024
+F9.5999999999999996
+ssg697
+g4153
+sg977
+(dp4316
+g2024
+F10.666666666666666
+ssg1093
+(dp4317
+g2024
+F7.384615384615385
+ssg81
+g2769
+sg217
+g3350
+ssg849
+(dp4318
+g113
+g2966
+ssg853
+(dp4319
+g101
+g2884
+ssg857
+(dp4320
+g221
+g3364
+sg73
+g2729
+ssg861
+(dp4321
+g697
+g4148
+ssg865
+(dp4322
+g425
+g3774
+sg937
+(dp4323
+g2024
+F8.7272727272727266
+ssg45
+g2539
+sg1381
+(dp4324
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'\xb7\x01\x00\x00'
+p4325
+tp4326
+Rp4327
+(dp4328
+g2024
+F12.0
+ssg501
+g3894
+ssg869
+(dp4329
+g1413
+(dp4330
+g2024
+F12.0
+ssg45
+g2540
+ssg873
+(dp4331
+g221
+g3366
+sg73
+g2730
+sg285
+g3487
+sg453
+g3834
+sg8
+(g12
+S'\xce\x01\x00\x00'
+p4332
+tp4333
+Rp4334
+(dp4335
+g2024
+F13.714285714285714
+sssg877
+(dp4336
+g657
+g4086
+sg8
+(g12
+S'\xe2\x00\x00\x00'
+p4337
+tp4338
+Rp4339
+(dp4340
+g2024
+F12.0
+ssg181
+g3270
+sg61
+g2638
+sg281
+g3472
+sg773
+g4246
+ssg881
+(dp4341
+g21
+g2109
+sg8
+(g12
+S'\x84\x01\x00\x00'
+p4342
+tp4343
+Rp4344
+(dp4345
+g2024
+F16.0
+ssg8
+(g12
+S'\xec\x00\x00\x00'
+p4346
+tp4347
+Rp4348
+(dp4349
+g2024
+F16.0
+sssg885
+(dp4350
+I347
+(dp4351
+g2024
+F10.666666666666666
+ssg225
+g3374
+sg101
+g2902
+sg361
+g3646
+ssg889
+(dp4352
+g8
+(g12
+S'\xd1\x01\x00\x00'
+p4353
+tp4354
+Rp4355
+(dp4356
+g2024
+F19.199999999999999
+sssg893
+(dp4357
+g8
+(g12
+S'\xc2\x01\x00\x00'
+p4358
+tp4359
+Rp4360
+(dp4361
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'*\x01\x00\x00'
+p4362
+tp4363
+Rp4364
+(dp4365
+g2024
+F12.0
+ssg713
+g4177
+sg725
+g4208
+sI250
+(dp4366
+g2024
+F8.0
+ssI394
+(dp4367
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'\xdf\x01\x00\x00'
+p4368
+tp4369
+Rp4370
+(dp4371
+g2024
+F8.0
+sssg897
+(dp4372
+g1205
+(dp4373
+g2024
+F9.5999999999999996
+ssI283
+(dp4374
+g2024
+F8.7272727272727266
+ssg673
+g4110
+sg669
+g4097
+sg405
+g3746
+ssg901
+(dp4375
+g253
+g3431
+sI267
+(dp4376
+g2024
+F8.0
+ssg8
+(g12
+S'\xb5\x01\x00\x00'
+p4377
+tp4378
+Rp4379
+(dp4380
+g2024
+F10.666666666666666
+ssg625
+g4042
+sg637
+g4058
+sg265
+g3443
+ssg905
+(dp4381
+g817
+g4295
+sg373
+g3670
+sg1789
+(dp4382
+g2024
+F10.666666666666666
+ssg577
+g3995
+sg1417
+(dp4383
+g2024
+F9.5999999999999996
+sssg909
+(dp4384
+g81
+g2792
+ssg913
+(dp4385
+g33
+g2289
+ssg917
+(dp4386
+g21
+g2121
+sg961
+(dp4387
+g2024
+F16.0
+ssg137
+g3083
+ssg921
+(dp4388
+g181
+g3252
+sg877
+g4340
+ssg925
+(dp4389
+g8
+(g12
+S'\xd8\x01\x00\x00'
+p4390
+tp4391
+Rp4392
+(dp4393
+g2024
+F10.666666666666666
+ssI321
+(dp4394
+g2024
+F10.666666666666666
+ssg1277
+(dp4395
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'\x9c\x01\x00\x00'
+p4396
+tp4397
+Rp4398
+(dp4399
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'\x86\x01\x00\x00'
+p4400
+tp4401
+Rp4402
+(dp4403
+g2024
+F13.714285714285714
+sssg929
+(dp4404
+I424
+(dp4405
+g2024
+F12.0
+ssg21
+g2122
+sg161
+g3202
+sg8
+(g12
+S'\x04\x01\x00\x00'
+p4406
+tp4407
+Rp4408
+(dp4409
+g2024
+F10.666666666666666
+sssg933
+(dp4410
+g133
+g3053
+sg41
+g2422
+ssg937
+(dp4411
+g433
+g3797
+sg181
+g3256
+sg865
+g4323
+sg1381
+(dp4412
+g2024
+F8.0
+ssg501
+g3885
+ssg941
+(dp4413
+g145
+g3120
+sg421
+g3762
+sg173
+g3226
+ssg945
+(dp4414
+g8
+(g12
+S'\x18\x01\x00\x00'
+p4415
+tp4416
+Rp4417
+(dp4418
+g2024
+F10.666666666666666
+ssg981
+(dp4419
+g2024
+F13.714285714285714
+ssg549
+g3954
+ssg949
+(dp4420
+g8
+(g12
+S'\xe0\x01\x00\x00'
+p4421
+tp4422
+Rp4423
+(dp4424
+g2024
+F10.666666666666666
+ssg797
+g4268
+sg41
+g2423
+sg473
+g3846
+sg625
+g4041
+sg8
+(g12
+S'\x9c\x01\x00\x00'
+p4425
+tp4426
+Rp4427
+(dp4428
+g2024
+F7.384615384615385
+ssg133
+g3062
+sg393
+g3711
+ssg953
+(dp4429
+g989
+(dp4430
+g2024
+F13.714285714285714
+ssg1377
+(dp4431
+g2024
+F24.0
+sssg957
+(dp4432
+g45
+g2475
+ssg961
+(dp4433
+g881
+g4349
+sg917
+g4387
+sg21
+g2130
+ssg965
+(dp4434
+g157
+g3157
+sg425
+g3775
+sg45
+g2571
+ssg969
+(dp4435
+g1013
+(dp4436
+g2024
+F8.0
+ssg8
+(g12
+S'b\x01\x00\x00'
+p4437
+tp4438
+Rp4439
+(dp4440
+g2024
+F12.0
+ssg129
+g3048
+sg229
+g3387
+ssg973
+(dp4441
+g293
+g3501
+sg329
+g3572
+sg45
+g2572
+ssg977
+(dp4442
+g8
+(g12
+S'a\x01\x00\x00'
+p4443
+tp4444
+Rp4445
+(dp4446
+g2024
+F10.666666666666666
+ssg845
+g4316
+ssg981
+(dp4447
+g945
+g4419
+sg8
+(g12
+S'\x18\x01\x00\x00'
+p4448
+tp4449
+Rp4450
+(dp4451
+g2024
+F9.5999999999999996
+ssg313
+g3528
+sg549
+g3950
+ssg985
+(dp4452
+g33
+g2309
+sg8
+(g12
+S'd\x01\x00\x00'
+p4453
+tp4454
+Rp4455
+(dp4456
+g2024
+F16.0
+ssg709
+g4161
+sg201
+g3321
+ssg989
+(dp4457
+g8
+(g12
+S'\x81\x01\x00\x00'
+p4458
+tp4459
+Rp4460
+(dp4461
+g2024
+F16.0
+ssg953
+g4430
+sg157
+g3159
+sg425
+g3784
+sg1321
+(dp4462
+g2024
+F9.5999999999999996
+sssg993
+(dp4463
+g221
+g3365
+sg413
+g3754
+sg421
+g3767
+sg73
+g2743
+sg8
+(g12
+S'\xfb\x00\x00\x00'
+p4464
+tp4465
+Rp4466
+(dp4467
+g2024
+F12.0
+sssg997
+(dp4468
+g113
+g2954
+ssg1001
+(dp4469
+g21
+g2144
+sg8
+(g12
+S'~\x01\x00\x00'
+p4470
+tp4471
+Rp4472
+(dp4473
+g2024
+F16.0
+ssg717
+g4184
+ssg1005
+(dp4474
+g101
+g2893
+sg361
+g3642
+ssg1009
+(dp4475
+g41
+g2435
+ssg1013
+(dp4476
+g8
+(g12
+S'b\x01\x00\x00'
+p4477
+tp4478
+Rp4479
+(dp4480
+g2024
+F8.0
+ssg421
+g3771
+sg557
+g3970
+sg8
+(g12
+S'G\x01\x00\x00'
+p4481
+tp4482
+Rp4483
+(dp4484
+g2024
+F8.7272727272727266
+ssg969
+g4436
+sg8
+(g12
+S'\xd2\x01\x00\x00'
+p4485
+tp4486
+Rp4487
+(dp4488
+g2024
+F8.7272727272727266
+ssg221
+g3367
+sg229
+g3389
+ssg1017
+(dp4489
+g8
+(g12
+S'\xe8\x01\x00\x00'
+p4490
+tp4491
+Rp4492
+(dp4493
+g2024
+F12.0
+ssI351
+(dp4494
+g2024
+F9.5999999999999996
+ssg893
+g4366
+sg713
+g4176
+sg8
+(g12
+S'\xdf\x01\x00\x00'
+p4495
+tp4496
+Rp4497
+(dp4498
+g2024
+F9.5999999999999996
+sssg1021
+(dp4499
+g413
+g3758
+sg993
+g4467
+sg421
+g3772
+ssg1025
+(dp4500
+g8
+(g12
+S'x\x01\x00\x00'
+p4501
+tp4502
+Rp4503
+(dp4504
+g2024
+F19.199999999999999
+ssg21
+g2157
+ssg1029
+(dp4505
+g8
+(g12
+S'\x80\x01\x00\x00'
+p4506
+tp4507
+Rp4508
+(dp4509
+g2024
+F13.714285714285714
+ssg8
+(g12
+S'\r\x01\x00\x00'
+p4510
+tp4511
+Rp4512
+(dp4513
+g2024
+F12.0
+sssg1033
+(dp4514
+g497
+g3882
+sI363
+(dp4515
+g2024
+F10.666666666666666
+ssg325
+g3559
+sg1225
+(dp4516
+g2024
+F10.666666666666666
+ssI311
+(dp4517
+g2024
+F9.5999999999999996
+sssg1037
+(dp4518
+g21
+g2165
+sg345
+g3621
+ssg1041
+(dp4519
+g21
+g2035
+sg345
+g3592
+sg505
+g3899
+ssg1045
+(dp4520
+g145
+g3111
+sg117
+g2984
+sg333
+g3577
+sg109
+g2918
+ssg1049
+(dp4521
+g81
+g2759
+sg1429
+(dp4522
+g2024
+F8.0
+ssg385
+g3694
+sg4276
+(dp4523
+g2024
+F13.714285714285714
+ssg8
+(g12
+S'\xdd\x01\x00\x00'
+p4524
+tp4525
+Rp4526
+(dp4527
+g2024
+F16.0
+sssg1053
+(dp4528
+g8
+(g12
+S'\x80\x01\x00\x00'
+p4529
+tp4530
+Rp4531
+(dp4532
+g2024
+F9.5999999999999996
+ssg217
+g3335
+sg253
+g3415
+sg1637
+(dp4533
+g2024
+F13.714285714285714
+ssI269
+(dp4534
+g2024
+F8.7272727272727266
+sssg1057
+(dp4535
+g8
+(g12
+S'\xa8\x01\x00\x00'
+p4536
+tp4537
+Rp4538
+(dp4539
+g2024
+F10.666666666666666
+ssg21
+g2036
+sg929
+g4409
+sg69
+g2661
+sg161
+g3161
+ssg1061
+(dp4540
+g217
+g3336
+ssg1065
+(dp4541
+g8
+(g12
+S'`\x01\x00\x00'
+p4542
+tp4543
+Rp4544
+(dp4545
+g2024
+F13.714285714285714
+ssg21
+g2040
+sI346
+(dp4546
+g2024
+F10.666666666666666
+ssg29
+g2172
+sg53
+g2606
+ssg1069
+(dp4547
+g1585
+(dp4548
+g2024
+F10.666666666666666
+ssg29
+g2173
+sg8
+(g12
+S',\x01\x00\x00'
+p4549
+tp4550
+Rp4551
+(dp4552
+g2024
+F16.0
+ssg8
+(g12
+S'E\x01\x00\x00'
+p4553
+tp4554
+Rp4555
+(dp4556
+g2024
+F12.0
+sssg1073
+(dp4557
+g353
+g3627
+sg8
+(g12
+S'\xb6\x01\x00\x00'
+p4558
+tp4559
+Rp4560
+(dp4561
+g2024
+F19.199999999999999
+ssg41
+g2357
+ssg1077
+(dp4562
+g29
+g2210
+sg397
+g3718
+ssg1081
+(dp4563
+g21
+g2045
+sg249
+g3405
+sg161
+g3162
+ssg1085
+(dp4564
+g637
+g4057
+sg73
+g2694
+sg457
+g3836
+sg253
+g3420
+sg901
+g4376
+sg8
+(g12
+S'\xb5\x01\x00\x00'
+p4565
+tp4566
+Rp4567
+(dp4568
+g2024
+F10.666666666666666
+sssg1089
+(dp4569
+g8
+(g12
+S'\x9d\x01\x00\x00'
+p4570
+tp4571
+Rp4572
+(dp4573
+g2024
+F32.0
+sssg1093
+(dp4574
+I384
+(dp4575
+g2024
+F8.7272727272727266
+ssg1053
+g4534
+sg697
+g4149
+sg845
+g4317
+sg1029
+g4513
+sg8
+(g12
+S'\x7f\x01\x00\x00'
+p4576
+tp4577
+Rp4578
+(dp4579
+g2024
+F9.5999999999999996
+sssg1097
+(dp4580
+g693
+g4142
+sg8
+(g12
+S'}\x01\x00\x00'
+p4581
+tp4582
+Rp4583
+(dp4584
+g2024
+F19.199999999999999
+ssg8
+(g12
+S'\xaf\x01\x00\x00'
+p4585
+tp4586
+Rp4587
+(dp4588
+g2024
+F24.0
+sssg1101
+(dp4589
+g45
+g2462
+ssg1105
+(dp4590
+g785
+g4250
+sg125
+g3006
+sg417
+g3760
+sg101
+g2859
+sg377
+g3672
+sg8
+(g12
+S'\xbb\x01\x00\x00'
+p4591
+tp4592
+Rp4593
+(dp4594
+g2024
+F8.0
+ssg1417
+(dp4595
+g2024
+F7.384615384615385
+ssg8
+(g12
+S'\x1f\x01\x00\x00'
+p4596
+tp4597
+Rp4598
+(dp4599
+g2024
+F9.5999999999999996
+sssg1109
+(dp4600
+g21
+g2054
+sg8
+(g12
+S'<\x01\x00\x00'
+p4601
+tp4602
+Rp4603
+(dp4604
+g2024
+F12.0
+ssg549
+g3962
+ssg1113
+(dp4605
+g185
+g3288
+sg133
+g3067
+ssg1117
+(dp4606
+g145
+g3128
+sg69
+g2677
+ssg1121
+(dp4607
+g565
+g3982
+sg85
+g2806
+sg41
+g2365
+sg393
+g3713
+sg8
+(g12
+S'y\x01\x00\x00'
+p4608
+tp4609
+Rp4610
+(dp4611
+g2024
+F16.0
+sssg1125
+(dp4612
+g353
+g3637
+ssg1129
+(dp4613
+g8
+(g12
+S'\x86\x01\x00\x00'
+p4614
+tp4615
+Rp4616
+(dp4617
+g2024
+F32.0
+sssg1133
+(dp4618
+g193
+g3307
+sg293
+g3510
+sg41
+g2370
+ssg1137
+(dp4619
+g8
+(g12
+S'\xa1\x01\x00\x00'
+p4620
+tp4621
+Rp4622
+(dp4623
+g2024
+F12.0
+ssg809
+g4284
+sg945
+g4418
+sg693
+g4134
+sg981
+g4451
+sg769
+g4240
+ssg1141
+(dp4624
+g1521
+(dp4625
+g2024
+F24.0
+sssg1145
+(dp4626
+g8
+(g12
+S'\x87\x01\x00\x00'
+p4627
+tp4628
+Rp4629
+(dp4630
+g2024
+F32.0
+ssg45
+g2479
+ssg1149
+(dp4631
+g405
+g3745
+sg153
+g3151
+sI289
+(dp4632
+g2024
+F8.7272727272727266
+ssg61
+g2642
+sg8
+(g12
+S'\xb0\x01\x00\x00'
+p4633
+tp4634
+Rp4635
+(dp4636
+g2024
+F12.0
+ssg897
+g4374
+ssg1153
+(dp4637
+g821
+g4300
+ssg1157
+(dp4638
+g8
+(g12
+S'$\x01\x00\x00'
+p4639
+tp4640
+Rp4641
+(dp4642
+g2024
+F10.666666666666666
+ssg605
+g4012
+sg1249
+(dp4643
+g2024
+F8.7272727272727266
+ssg365
+g3648
+sg161
+g3163
+ssg1161
+(dp4644
+g45
+g2483
+ssg1165
+(dp4645
+g785
+g4256
+sg1105
+g4599
+ssg1169
+(dp4646
+g1317
+(dp4647
+g2024
+F13.714285714285714
+ssg8
+(g12
+S'\xde\x01\x00\x00'
+p4648
+tp4649
+Rp4650
+(dp4651
+g2024
+F13.714285714285714
+ssg101
+g2855
+ssg1173
+(dp4652
+g401
+g3729
+sg8
+(g12
+S'\x91\x01\x00\x00'
+p4653
+tp4654
+Rp4655
+(dp4656
+g2024
+F13.714285714285714
+ssg61
+g2618
+sg8
+(g12
+S'\x9d\x01\x00\x00'
+p4657
+tp4658
+Rp4659
+(dp4660
+g2024
+F13.714285714285714
+ssg1149
+g4632
+ssg1177
+(dp4661
+g113
+g2935
+sg521
+g3918
+ssg1181
+(dp4662
+g721
+g4190
+sg113
+g2936
+sg29
+g2200
+sg1317
+(dp4663
+g2024
+F10.666666666666666
+ssI478
+(dp4664
+g2024
+F10.666666666666666
+sssg1185
+(dp4665
+I328
+(dp4666
+g2024
+F10.666666666666666
+ssI308
+(dp4667
+g2024
+F9.5999999999999996
+ssg161
+g3167
+sg1157
+g4642
+ssg1189
+(dp4668
+g41
+g2380
+ssg1193
+(dp4669
+g721
+g4194
+sg745
+g4228
+ssg1197
+(dp4670
+g45
+g2493
+ssg1201
+(dp4671
+g133
+g3061
+sg41
+g2385
+sg485
+g3863
+ssg1205
+(dp4672
+g497
+g3873
+sg673
+g4102
+sg897
+g4373
+sg8
+(g12
+S'\x8e\x01\x00\x00'
+p4673
+tp4674
+Rp4675
+(dp4676
+g2024
+F10.666666666666666
+ssg8
+(g12
+S'\xef\x01\x00\x00'
+p4677
+tp4678
+Rp4679
+(dp4680
+g2024
+F16.0
+sssg1209
+(dp4681
+g893
+g4365
+ssg1213
+(dp4682
+g217
+g3341
+sg37
+g2321
+ssg1217
+(dp4683
+g29
+g2203
+sg1069
+g4552
+ssg1221
+(dp4684
+g645
+g4075
+sg45
+g2505
+ssg1225
+(dp4685
+g113
+g2945
+sg8
+(g12
+S'\xc5\x01\x00\x00'
+p4686
+tp4687
+Rp4688
+(dp4689
+g2024
+F13.714285714285714
+ssg1033
+g4516
+sI311
+(dp4690
+g2024
+F10.666666666666666
+sssg1229
+(dp4691
+g269
+g3453
+ssg1233
+(dp4692
+g8
+(g12
+S'\xed\x01\x00\x00'
+p4693
+tp4694
+Rp4695
+(dp4696
+g2024
+F32.0
+sssg1237
+(dp4697
+g145
+g3124
+sg89
+g2819
+sg69
+g2676
+ssg1241
+(dp4698
+g325
+g3554
+ssg1245
+(dp4699
+g21
+g2076
+sg8
+(g12
+S'\x84\x01\x00\x00'
+p4700
+tp4701
+Rp4702
+(dp4703
+g2024
+F19.199999999999999
+sssg1249
+(dp4704
+g1185
+g4667
+sg1329
+(dp4705
+g2024
+F8.7272727272727266
+ssg441
+g3806
+sg73
+g2705
+sg605
+g4011
+sg1157
+g4643
+ssg1253
+(dp4706
+g437
+g3803
+sg8
+(g12
+S'\x8c\x01\x00\x00'
+p4707
+tp4708
+Rp4709
+(dp4710
+g2024
+F13.714285714285714
+sssg1257
+(dp4711
+g29
+g2209
+sg641
+g4068
+ssg1261
+(dp4712
+g1033
+g4517
+sg829
+g4303
+sg8
+(g12
+S'\xc5\x01\x00\x00'
+p4713
+tp4714
+Rp4715
+(dp4716
+g2024
+F12.0
+ssg1225
+g4690
+sg325
+g3563
+ssg1265
+(dp4717
+g125
+g3013
+sg8
+(g12
+S'M\x01\x00\x00'
+p4718
+tp4719
+Rp4720
+(dp4721
+g2024
+F9.5999999999999996
+ssg8
+(g12
+S'\xee\x01\x00\x00'
+p4722
+tp4723
+Rp4724
+(dp4725
+g2024
+F16.0
+ssg141
+g3109
+ssg1269
+(dp4726
+g8
+(g12
+S'w\x01\x00\x00'
+p4727
+tp4728
+Rp4729
+(dp4730
+g2024
+F32.0
+sssg1273
+(dp4731
+g41
+g2398
+sg8
+(g12
+S'\xe7\x01\x00\x00'
+p4732
+tp4733
+Rp4734
+(dp4735
+g2024
+F13.714285714285714
+ssg1473
+(dp4736
+g2024
+F10.666666666666666
+ssg93
+g2839
+sg8
+(g12
+S'|\x01\x00\x00'
+p4737
+tp4738
+Rp4739
+(dp4740
+g2024
+F7.384615384615385
+ssg269
+g3455
+ssg1277
+(dp4741
+g85
+g2811
+sg8
+(g12
+S'\xe2\x01\x00\x00'
+p4742
+tp4743
+Rp4744
+(dp4745
+g2024
+F10.666666666666666
+ssg925
+g4395
+sI412
+(dp4746
+g2024
+F9.5999999999999996
+ssg473
+g3851
+ssg1281
+(dp4747
+g21
+g2088
+sg345
+g3598
+sg505
+g3900
+sg549
+g3963
+sg1109
+g4604
+ssg1285
+(dp4748
+g1049
+g4523
+sg801
+g4277
+ssg1289
+(dp4749
+g641
+g4069
+sg137
+g3096
+ssg1293
+(dp4750
+g689
+g4132
+sg21
+g2092
+sg8
+(g12
+S'Z\x01\x00\x00'
+p4751
+tp4752
+Rp4753
+(dp4754
+g2024
+F12.0
+ssg29
+g2219
+ssg1297
+(dp4755
+g93
+g2833
+sg45
+g2524
+ssg1301
+(dp4756
+g1841
+(dp4757
+g2024
+F10.666666666666666
+ssg85
+g2797
+sg925
+g4394
+sg805
+g4282
+ssg1305
+(dp4758
+g29
+g2224
+sg137
+g3088
+ssg1309
+(dp4759
+g21
+g2096
+sg161
+g3190
+ssg1313
+(dp4760
+g401
+g3733
+ssg1317
+(dp4761
+g1169
+g4647
+sg1181
+g4663
+sg101
+g2864
+sg1069
+g4556
+ssg1321
+(dp4762
+g157
+g3158
+sg989
+g4462
+sg8
+(g12
+S'\xb3\x01\x00\x00'
+p4763
+tp4764
+Rp4765
+(dp4766
+g2024
+F16.0
+ssg389
+g3705
+sI491
+(dp4767
+g2024
+F10.666666666666666
+sssg1325
+(dp4768
+g1013
+g4484
+sg1881
+(dp4769
+g2024
+F16.0
+ssg229
+g3385
+ssg1329
+(dp4770
+I440
+(dp4771
+g2024
+F12.0
+ssg1249
+g4705
+sg161
+g3194
+sg73
+g2723
+sg1185
+g4666
+ssg1333
+(dp4772
+g81
+g2767
+sg217
+g3340
+sg845
+g4315
+ssg1337
+(dp4773
+g33
+g2306
+ssg1341
+(dp4774
+g8
+(g12
+S'\xd8\x01\x00\x00'
+p4775
+tp4776
+Rp4777
+(dp4778
+g2024
+F16.0
+ssg245
+g3400
+ssg1345
+(dp4779
+g1649
+(dp4780
+g2024
+F13.714285714285714
+ssg8
+(g12
+S'\xe9\x01\x00\x00'
+p4781
+tp4782
+Rp4783
+(dp4784
+g2024
+F16.0
+ssg29
+g2234
+sg641
+g4064
+sg397
+g3724
+ssg1349
+(dp4785
+g817
+g4291
+sg8
+(g12
+S'\xd4\x01\x00\x00'
+p4786
+tp4787
+Rp4788
+(dp4789
+g2024
+F9.5999999999999996
+ssg1265
+g4721
+sg373
+g3661
+sg125
+g3005
+sg141
+g3105
+ssg1353
+(dp4790
+g593
+g4003
+sg93
+g2838
+sI446
+(dp4791
+g2024
+F10.666666666666666
+ssg269
+g3449
+ssg1357
+(dp4792
+g57
+g2613
+sg61
+g2637
+ssg1361
+(dp4793
+g81
+g2773
+sg149
+g3133
+sg37
+g2336
+ssg1365
+(dp4794
+g1537
+(dp4795
+g2024
+F12.0
+sssg1369
+(dp4796
+g113
+g2970
+sg8
+(g12
+S'\xd1\x01\x00\x00'
+p4797
+tp4798
+Rp4799
+(dp4800
+g2024
+F16.0
+sssg1373
+(dp4801
+g521
+g3922
+ssg1377
+(dp4802
+g953
+g4431
+sg425
+g3788
+ssg1381
+(dp4803
+g937
+g4412
+sg181
+g3269
+sg77
+g2751
+sg8
+(g12
+S'\x90\x01\x00\x00'
+p4804
+tp4805
+Rp4806
+(dp4807
+g2024
+F9.5999999999999996
+ssg865
+g4324
+sg121
+g2994
+sg125
+g3022
+ssg1385
+(dp4808
+g45
+g2453
+ssg1389
+(dp4809
+g1761
+(dp4810
+g2024
+F13.714285714285714
+ssg45
+g2458
+ssg1393
+(dp4811
+g69
+g2684
+sg173
+g3234
+ssg1397
+(dp4812
+g177
+g3236
+sg8
+(g12
+S'\x8a\x01\x00\x00'
+p4813
+tp4814
+Rp4815
+(dp4816
+g2024
+F9.5999999999999996
+ssg733
+g4211
+sg8
+(g12
+S'\x8f\x01\x00\x00'
+p4817
+tp4818
+Rp4819
+(dp4820
+g2024
+F19.199999999999999
+sssg1401
+(dp4821
+g21
+g2113
+sg29
+g2254
+sg1065
+g4546
+sg1293
+g4754
+ssg1405
+(dp4822
+I392
+(dp4823
+g2024
+F9.5999999999999996
+ssg1489
+(dp4824
+g2024
+F10.666666666666666
+ssg225
+g3378
+sg101
+g2906
+sg885
+g4351
+ssg1409
+(dp4825
+g21
+g2055
+sg345
+g3616
+ssg1413
+(dp4826
+g41
+g2417
+sg45
+g2553
+sg1473
+(dp4827
+g2024
+F10.666666666666666
+ssg93
+g2840
+sg869
+g4330
+sI470
+(dp4828
+g2024
+F9.5999999999999996
+sssg1417
+(dp4829
+g317
+g3543
+sg577
+g3994
+sg1105
+g4595
+sg377
+g3677
+sg905
+g4383
+ssg1421
+(dp4830
+g8
+(g12
+S'\xf0\x01\x00\x00'
+p4831
+tp4832
+Rp4833
+(dp4834
+g2024
+F12.0
+ssg625
+g4043
+sg1017
+g4494
+sg517
+g3911
+sI479
+(dp4835
+g2024
+F9.5999999999999996
+sssg1425
+(dp4836
+g29
+g2259
+sg1065
+g4545
+ssg1429
+(dp4837
+g977
+g4446
+sg1049
+g4522
+sg8
+(g12
+S'\x89\x01\x00\x00'
+p4838
+tp4839
+Rp4840
+(dp4841
+g2024
+F12.0
+ssg697
+g4144
+sg845
+g4311
+sg81
+g2763
+sg105
+g2916
+ssg1433
+(dp4842
+g1013
+g4480
+sg129
+g3031
+sg969
+g4440
+sg557
+g3971
+ssg1437
+(dp4843
+g177
+g3240
+sg253
+g3425
+ssg1441
+(dp4844
+g985
+g4456
+sg33
+g2298
+ssg1445
+(dp4845
+g121
+g2998
+sg329
+g3568
+sg45
+g2561
+ssg1449
+(dp4846
+g8
+(g12
+S'h\x01\x00\x00'
+p4847
+tp4848
+Rp4849
+(dp4850
+g2024
+F19.199999999999999
+ssg757
+g4236
+sg633
+g4047
+sI396
+(dp4851
+g2024
+F10.666666666666666
+sssg1453
+(dp4852
+g185
+g3276
+sg285
+g3478
+sg129
+g3046
+ssg1457
+(dp4853
+g1449
+g4850
+ssg1461
+(dp4854
+g61
+g2628
+sg181
+g3261
+sg125
+g3000
+ssg1465
+(dp4855
+g713
+g4171
+ssg1469
+(dp4856
+g113
+g2971
+sg497
+g3877
+sg601
+g4009
+sg1033
+g4515
+ssg1473
+(dp4857
+g1273
+g4736
+sg1413
+g4827
+sg41
+g2427
+ssg1477
+(dp4858
+g21
+g2134
+sg4729
+(dp4859
+g2024
+F24.0
+sssg1481
+(dp4860
+g721
+g4198
+sg101
+g2876
+sg8
+(g12
+S'\xde\x01\x00\x00'
+p4861
+tp4862
+Rp4863
+(dp4864
+g2024
+F13.714285714285714
+sssg1485
+(dp4865
+g137
+g3092
+ssg1489
+(dp4866
+I392
+(dp4867
+g2024
+F10.666666666666666
+ssg29
+g2276
+sg1405
+g4824
+sg225
+g3373
+ssg1493
+(dp4868
+g501
+g3893
+sg425
+g3780
+ssg1497
+(dp4869
+g21
+g2143
+ssg1501
+(dp4870
+g45
+g2576
+ssg1505
+(dp4871
+g149
+g3141
+sg345
+g3603
+sg741
+g4218
+sI409
+(dp4872
+g2024
+F12.0
+sssg1509
+(dp4873
+g49
+g2602
+sg113
+g2976
+ssg1513
+(dp4874
+g277
+g3464
+sg8
+(g12
+S'\xd3\x01\x00\x00'
+p4875
+tp4876
+Rp4877
+(dp4878
+g2024
+F24.0
+sssg1517
+(dp4879
+g1269
+g4730
+sg1477
+g4859
+ssg1521
+(dp4880
+g21
+g2148
+sg1025
+g4504
+sg1141
+g4625
+ssg1525
+(dp4881
+g1121
+g4611
+ssg1529
+(dp4882
+g3792
+(dp4883
+g2024
+F32.0
+sssg1533
+(dp4884
+g8
+(g12
+S'\xb4\x01\x00\x00'
+p4885
+tp4886
+Rp4887
+(dp4888
+g2024
+F13.714285714285714
+ssg45
+g2566
+ssg1537
+(dp4889
+g41
+g2439
+sI456
+(dp4890
+g2024
+F8.0
+ssg1365
+g4795
+sg353
+g3633
+sg1273
+g4740
+sg269
+g3456
+sg8
+(g12
+S'\x9f\x01\x00\x00'
+p4891
+tp4892
+Rp4893
+(dp4894
+g2024
+F9.5999999999999996
+sssg1541
+(dp4895
+g81
+g2788
+sg1097
+g4584
+ssg1545
+(dp4896
+g8
+(g12
+S'\xb1\x01\x00\x00'
+p4897
+tp4898
+Rp4899
+(dp4900
+g2024
+F24.0
+ssg1001
+g4473
+sg21
+g2161
+ssg1549
+(dp4901
+I384
+(dp4902
+g2024
+F10.666666666666666
+ssg545
+g3945
+sg1093
+g4579
+sg685
+g4130
+ssg1553
+(dp4903
+g1053
+g4532
+sg1029
+g4509
+sg253
+g3411
+sg1093
+g4575
+sg1549
+g4902
+ssg1557
+(dp4904
+g989
+g4461
+ssg1561
+(dp4905
+g321
+g3548
+sg137
+g3079
+ssg1565
+(dp4906
+g453
+g3830
+sg73
+g2690
+sg813
+g4289
+ssg1569
+(dp4907
+g881
+g4345
+sg21
+g2059
+sg1245
+g4703
+ssg1573
+(dp4908
+g801
+g4273
+ssg1577
+(dp4909
+g925
+g4403
+sg1129
+g4617
+ssg1581
+(dp4910
+g1145
+g4630
+ssg1585
+(dp4911
+g1489
+g4867
+sg29
+g2174
+sg1405
+g4823
+sg101
+g2868
+sg1069
+g4548
+ssg1589
+(dp4912
+g1429
+g4841
+ssg1593
+(dp4913
+g8
+(g12
+S'\xe1\x01\x00\x00'
+p4914
+tp4915
+Rp4916
+(dp4917
+g2024
+F12.0
+ssg733
+g4215
+sg1397
+g4816
+sg893
+g4367
+sg517
+g3905
+sg8
+(g12
+S'\xdf\x01\x00\x00'
+p4918
+tp4919
+Rp4920
+(dp4921
+g2024
+F8.7272727272727266
+sssg1597
+(dp4922
+g29
+g2186
+ssg1601
+(dp4923
+g8
+(g12
+S'\xc1\x01\x00\x00'
+p4924
+tp4925
+Rp4926
+(dp4927
+g2024
+F13.714285714285714
+ssg649
+g4080
+sg1253
+g4710
+sg1449
+g4851
+sg437
+g3799
+ssg1605
+(dp4928
+g537
+g3934
+sg29
+g2242
+ssg1609
+(dp4929
+g49
+g2592
+sg1205
+g4676
+sg673
+g4106
+sg497
+g3878
+ssg1613
+(dp4930
+g1397
+g4820
+ssg1617
+(dp4931
+g789
+g4261
+sg1381
+g4807
+sg77
+g2750
+ssg1621
+(dp4932
+g401
+g3738
+sg1173
+g4656
+ssg1625
+(dp4933
+g45
+g2466
+ssg1629
+(dp4934
+g697
+g4157
+ssg1633
+(dp4935
+g293
+g3505
+sg45
+g2471
+ssg1637
+(dp4936
+g217
+g3354
+sg1053
+g4533
+ssg1641
+(dp4937
+g441
+g3810
+sg381
+g3692
+sg37
+g2342
+ssg1645
+(dp4938
+g613
+g4026
+ssg1649
+(dp4939
+g29
+g2196
+sg1345
+g4780
+ssg1653
+(dp4940
+g149
+g3149
+sg345
+g3612
+sg1505
+g4872
+sg493
+g3871
+ssg1657
+(dp4941
+g297
+g3519
+ssg1661
+(dp4942
+g1529
+g4883
+sg425
+g3793
+ssg1665
+(dp4943
+g925
+g4399
+sg949
+g4428
+sg713
+g4178
+sg473
+g3855
+sg1277
+g4746
+ssg1669
+(dp4944
+g1173
+g4660
+sg1089
+g4573
+ssg1673
+(dp4945
+g569
+g3989
+sg29
+g2272
+sg649
+g4082
+ssg1677
+(dp4946
+g353
+g3632
+sg1537
+g4894
+sg41
+g2376
+ssg1681
+(dp4947
+g8
+(g12
+S'\xa4\x01\x00\x00'
+p4948
+tp4949
+Rp4950
+(dp4951
+g2024
+F32.0
+ssg4031
+(dp4952
+g2024
+F24.0
+sssg1685
+(dp4953
+g1137
+g4623
+sg8
+(g12
+S'\xbf\x01\x00\x00'
+p4954
+tp4955
+Rp4956
+(dp4957
+g2024
+F24.0
+sssg1689
+(dp4958
+g1801
+(dp4959
+g2024
+F16.0
+sssg1693
+(dp4960
+g569
+g3984
+sg29
+g2246
+sg33
+g2294
+ssg1697
+(dp4961
+g1681
+g4951
+ssg1701
+(dp4962
+g93
+g2834
+sg45
+g2488
+ssg1705
+(dp4963
+g1681
+g4952
+sg621
+g4032
+ssg1709
+(dp4964
+g21
+g2066
+ssg1713
+(dp4965
+g21
+g2139
+sg1057
+g4539
+sg929
+g4405
+sg161
+g3172
+ssg1717
+(dp4966
+g21
+g2071
+ssg1721
+(dp4967
+g41
+g2443
+ssg1725
+(dp4968
+g681
+g4116
+sg45
+g2497
+ssg1729
+(dp4969
+g45
+g2501
+ssg1733
+(dp4970
+g753
+g4231
+sg125
+g3017
+sg745
+g4227
+ssg1737
+(dp4971
+g217
+g3349
+sg381
+g3688
+sg37
+g2334
+sg653
+g4084
+ssg1741
+(dp4972
+g1097
+g4588
+ssg1745
+(dp4973
+g61
+g2633
+sg1149
+g4636
+ssg1749
+(dp4974
+g1545
+g4900
+ssg1753
+(dp4975
+g405
+g3744
+sg65
+g2653
+ssg1757
+(dp4976
+g1321
+g4766
+ssg1761
+(dp4977
+g17
+g2029
+sg45
+g2507
+sg1533
+g4888
+sg645
+g4074
+sg1389
+g4810
+ssg1765
+(dp4978
+g1085
+g4568
+sg637
+g4062
+sg901
+g4380
+ssg1769
+(dp4979
+g1073
+g4561
+sg41
+g2396
+ssg1773
+(dp4980
+g865
+g4328
+sg45
+g2511
+ssg1777
+(dp4981
+g1329
+g4771
+sg161
+g3185
+sg73
+g2709
+ssg1781
+(dp4982
+g221
+g3371
+sg73
+g2713
+ssg1785
+(dp4983
+g685
+g4125
+ssg1789
+(dp4984
+g785
+g4254
+sg1105
+g4594
+sg905
+g4382
+sg373
+g3666
+ssg1793
+(dp4985
+g441
+g3814
+sg73
+g2736
+ssg1797
+(dp4986
+g45
+g2516
+ssg1801
+(dp4987
+g17
+g2030
+sg1689
+g4959
+sg93
+g2844
+sg1353
+g4791
+sg45
+g2520
+ssg1805
+(dp4988
+g1685
+g4957
+sg717
+g4188
+ssg1809
+(dp4989
+g69
+g2681
+sg173
+g3217
+ssg1813
+(dp4990
+g33
+g2293
+sg1601
+g4927
+ssg1817
+(dp4991
+g8
+(g12
+S'\xe1\x01\x00\x00'
+p4992
+tp4993
+Rp4994
+(dp4995
+g2024
+F24.0
+ssg893
+g4361
+ssg1821
+(dp4996
+g45
+g2528
+ssg1825
+(dp4997
+g325
+g3558
+ssg1829
+(dp4998
+g113
+g2958
+sg1225
+g4689
+sg1261
+g4716
+ssg1833
+(dp4999
+g41
+g2403
+sg45
+g2533
+ssg1837
+(dp5000
+g21
+g2104
+ssg1841
+(dp5001
+g1301
+g4757
+sg8
+(g12
+S'\xdb\x01\x00\x00'
+p5002
+tp5003
+Rp5004
+(dp5005
+g2024
+F13.714285714285714
+ssg1537
+g4890
+sg613
+g4022
+sg269
+g3445
+ssg1845
+(dp5006
+g113
+g2962
+ssg1849
+(dp5007
+g8
+(g12
+S'\xd7\x01\x00\x00'
+p5008
+tp5009
+Rp5010
+(dp5011
+g2024
+F32.0
+sssg1853
+(dp5012
+g149
+g3137
+sg37
+g2330
+ssg1857
+(dp5013
+g717
+g4183
+ssg1861
+(dp5014
+g89
+g2818
+sg29
+g2238
+sg69
+g2672
+ssg1865
+(dp5015
+g873
+g4335
+sg73
+g2727
+ssg1869
+(dp5016
+g8
+(g12
+S'\xd6\x01\x00\x00'
+p5017
+tp5018
+Rp5019
+(dp5020
+g2024
+F13.714285714285714
+ssg41
+g2407
+sg45
+g2538
+ssg1873
+(dp5021
+g561
+g3976
+sg541
+g3939
+sg389
+g3700
+ssg1877
+(dp5022
+g1369
+g4800
+sg481
+g3861
+sg889
+g4356
+sg521
+g3914
+ssg1881
+(dp5023
+g1013
+g4488
+sg421
+g3766
+sg1325
+g4769
+ssg1885
+(dp5024
+g297
+g3520
+sg1513
+g4878
+ssg1889
+(dp5025
+g785
+g4255
+sg373
+g3662
+sg125
+g3011
+sg1349
+g4789
+ssg1893
+(dp5026
+g345
+g3607
+sg769
+g4244
+sg313
+g3535
+ssg1897
+(dp5027
+g45
+g2541
+sg1413
+g4828
+sg41
+g2413
+sg1869
+g5020
+ssg1901
+(dp5028
+g1849
+g5011
+sg45
+g2545
+ssg1905
+(dp5029
+g269
+g3454
+sg1341
+g4778
+sg8
+(g12
+S'\xdb\x01\x00\x00'
+p5030
+tp5031
+Rp5032
+(dp5033
+g2024
+F16.0
+ssg925
+g4393
+ssg1909
+(dp5034
+g29
+g2250
+ssg1913
+(dp5035
+g561
+g3980
+sg45
+g2549
+ssg1917
+(dp5036
+g1841
+g5005
+sg1905
+g5033
+ssg1921
+(dp5037
+g21
+g2117
+ssg1925
+(dp5038
+g1049
+g4527
+ssg1929
+(dp5039
+g1169
+g4651
+sg1181
+g4664
+sg101
+g2914
+sg1481
+g4864
+ssg1933
+(dp5040
+g1017
+g4498
+sg893
+g4371
+sg517
+g3912
+sg1593
+g4921
+sg1421
+g4835
+ssg1937
+(dp5041
+g949
+g4424
+ssg1941
+(dp5042
+g1817
+g4995
+sg1593
+g4917
+ssg1945
+(dp5043
+g85
+g2801
+sg473
+g3847
+sg1277
+g4745
+sg393
+g3710
+ssg1949
+(dp5044
+g45
+g2557
+ssg1953
+(dp5045
+g37
+g2325
+ssg1957
+(dp5046
+g201
+g3316
+ssg1961
+(dp5047
+g145
+g3119
+sg173
+g3222
+ssg1965
+(dp5048
+g1273
+g4735
+ssg1969
+(dp5049
+g625
+g4037
+sg1017
+g4493
+sg797
+g4267
+ssg1973
+(dp5050
+g1345
+g4784
+ssg1977
+(dp5051
+g125
+g3004
+sg101
+g2872
+ssg1981
+(dp5052
+g533
+g3929
+sg157
+g3156
+sg1321
+g4767
+sg45
+g2570
+ssg1985
+(dp5053
+g181
+g3265
+sg501
+g3889
+ssg1989
+(dp5054
+g1233
+g4696
+sg389
+g3704
+ssg1993
+(dp5055
+g1265
+g4725
+sg141
+g3104
+ssg1997
+(dp5056
+g1205
+g4680
+ssg2001
+(dp5057
+g8
+(g12
+S'\xf1\x01\x00\x00'
+p5058
+tp5059
+Rp5060
+(dp5061
+g2024
+F19.199999999999999
+ssg253
+g3424
+sg1421
+g4834
+ssg2005
+(dp5062
+g2001
+g5061
+sg517
+g3909
+ssg2009
+(dp5063
+g89
+g2823
+sg29
+g2280
+ssg2013
+(dp5064
+g277
+g3468
+sg29
+g2284
+sssS'adj'
+p5065
+g2018
+sS'name'
+p5066
+S''
+p5067
+sb.(dp0
+cnumpy.core.multiarray
+scalar
+p1
+(cnumpy
+dtype
+p2
+(S'i4'
+p3
+I0
+I1
+tp4
+Rp5
+(I3
+S'<'
+p6
+NNNI-1
+I-1
+I0
+tp7
+bS'\x00\x00\x00\x00'
+p8
+tp9
+Rp10
+cnumpy.core.multiarray
+_reconstruct
+p11
+(cnumpy
+ndarray
+p12
+(I0
+tp13
+S'b'
+p14
+tp15
+Rp16
+(I1
+(I2
+tp17
+g2
+(S'f8'
+p18
+I0
+I1
+tp19
+Rp20
+(I3
+S'<'
+p21
+NNNI-1
+I-1
+I0
+tp22
+bI00
+S'\x0f\x17\x9e\x1d4i\xd5?Eb\x9c\xbf\xe2\x99\xec?'
+p23
+tp24
+bsg1
+(g5
+S'\x01\x00\x00\x00'
+p25
+tp26
+Rp27
+g11
+(g12
+(I0
+tp28
+g14
+tp29
+Rp30
+(I1
+(I2
+tp31
+g20
+I00
+S'Vg\x9f\xc8!\xef\xe3?C0\xa6\xab\x84F\xcd?'
+p32
+tp33
+bsg1
+(g5
+S'\x02\x00\x00\x00'
+p34
+tp35
+Rp36
+g11
+(g12
+(I0
+tp37
+g14
+tp38
+Rp39
+(I1
+(I2
+tp40
+g20
+I00
+S'\xdb\x1a\x16.,u\xd8?\x8bA\x95\\\xc70\xc4?'
+p41
+tp42
+bsg1
+(g5
+S'\x03\x00\x00\x00'
+p43
+tp44
+Rp45
+g11
+(g12
+(I0
+tp46
+g14
+tp47
+Rp48
+(I1
+(I2
+tp49
+g20
+I00
+S'\xf4\x1bP\xaa\x7f\xce\xd9? \x07\xeb\xbaTd\xca?'
+p50
+tp51
+bsg1
+(g5
+S'\x04\x00\x00\x00'
+p52
+tp53
+Rp54
+g11
+(g12
+(I0
+tp55
+g14
+tp56
+Rp57
+(I1
+(I2
+tp58
+g20
+I00
+S'a\tU[\x8f\x14\xcb?P\x94\xa93\xdd(\xc8?'
+p59
+tp60
+bsg1
+(g5
+S'\x05\x00\x00\x00'
+p61
+tp62
+Rp63
+g11
+(g12
+(I0
+tp64
+g14
+tp65
+Rp66
+(I1
+(I2
+tp67
+g20
+I00
+S'W\xe5/\x17\xbd7\xe8?\xa6^\xc7v\xa8\xce\xdc?'
+p68
+tp69
+bsg1
+(g5
+S'\x06\x00\x00\x00'
+p70
+tp71
+Rp72
+g11
+(g12
+(I0
+tp73
+g14
+tp74
+Rp75
+(I1
+(I2
+tp76
+g20
+I00
+S'\xc6\xa7/[\xda\x9f\xdd?\xc3\xbd|\x7f\x8bO\xe8?'
+p77
+tp78
+bsg1
+(g5
+S'\x07\x00\x00\x00'
+p79
+tp80
+Rp81
+g11
+(g12
+(I0
+tp82
+g14
+tp83
+Rp84
+(I1
+(I2
+tp85
+g20
+I00
+S'>\x04\xbc\xcb\xec\x07\xd3?\xa4\xa2\x94\x90\xda\x15\xea?'
+p86
+tp87
+bsg1
+(g5
+S'\x08\x00\x00\x00'
+p88
+tp89
+Rp90
+g11
+(g12
+(I0
+tp91
+g14
+tp92
+Rp93
+(I1
+(I2
+tp94
+g20
+I00
+S'\x18\x14\x9d\xb52$\xc2?Y<\xd4K\xeb\xd2\xd8?'
+p95
+tp96
+bsg1
+(g5
+S'\t\x00\x00\x00'
+p97
+tp98
+Rp99
+g11
+(g12
+(I0
+tp100
+g14
+tp101
+Rp102
+(I1
+(I2
+tp103
+g20
+I00
+S'\x9e5_xA\x8e\xe1?,\xfa\xe7{\xd3\x98\xc9?'
+p104
+tp105
+bsg1
+(g5
+S'\n\x00\x00\x00'
+p106
+tp107
+Rp108
+g11
+(g12
+(I0
+tp109
+g14
+tp110
+Rp111
+(I1
+(I2
+tp112
+g20
+I00
+S'\x90\xfd\x8c\xba\xb8\xa7\xc3?p,>\xc2g\xf0\xdc?'
+p113
+tp114
+bsg1
+(g5
+S'\x0b\x00\x00\x00'
+p115
+tp116
+Rp117
+g11
+(g12
+(I0
+tp118
+g14
+tp119
+Rp120
+(I1
+(I2
+tp121
+g20
+I00
+S'Xr\x10\xc9i \xc5?S\xdf>\x18=~\xe0?'
+p122
+tp123
+bsg1
+(g5
+S'\x0c\x00\x00\x00'
+p124
+tp125
+Rp126
+g11
+(g12
+(I0
+tp127
+g14
+tp128
+Rp129
+(I1
+(I2
+tp130
+g20
+I00
+S'P9B\x92\xa3\xcc\xc0?\xb7U\xb89\xb0\xe6\xdb?'
+p131
+tp132
+bsg1
+(g5
+S'\r\x00\x00\x00'
+p133
+tp134
+Rp135
+g11
+(g12
+(I0
+tp136
+g14
+tp137
+Rp138
+(I1
+(I2
+tp139
+g20
+I00
+S'\xbf<\xb8NSn\xe0?`\xbc\xe6\xfa\x10/\xd3?'
+p140
+tp141
+bsg1
+(g5
+S'\x0e\x00\x00\x00'
+p142
+tp143
+Rp144
+g11
+(g12
+(I0
+tp145
+g14
+tp146
+Rp147
+(I1
+(I2
+tp148
+g20
+I00
+S'\x94_\x06o\x10W\xe4?\xe0\xc4\xe5NUT\xe0?'
+p149
+tp150
+bsg1
+(g5
+S'\x0f\x00\x00\x00'
+p151
+tp152
+Rp153
+g11
+(g12
+(I0
+tp154
+g14
+tp155
+Rp156
+(I1
+(I2
+tp157
+g20
+I00
+S'\xee[\x14e\xda\xfa\xd3?84!K\xce\r\xe3?'
+p158
+tp159
+bsg1
+(g5
+S'\x10\x00\x00\x00'
+p160
+tp161
+Rp162
+g11
+(g12
+(I0
+tp163
+g14
+tp164
+Rp165
+(I1
+(I2
+tp166
+g20
+I00
+S'\xa0\xb2\xbfn\x04\xc1\xea?\xd1\xa3\xf4\xd3\x1a=\xdb?'
+p167
+tp168
+bsg1
+(g5
+S'\x11\x00\x00\x00'
+p169
+tp170
+Rp171
+g11
+(g12
+(I0
+tp172
+g14
+tp173
+Rp174
+(I1
+(I2
+tp175
+g20
+I00
+S'\xb1\x8b\x0b\x9d\xd4\x9f\xe1?1\xd4\xfb\x1axy\xea?'
+p176
+tp177
+bsg1
+(g5
+S'\x12\x00\x00\x00'
+p178
+tp179
+Rp180
+g11
+(g12
+(I0
+tp181
+g14
+tp182
+Rp183
+(I1
+(I2
+tp184
+g20
+I00
+S'\x91\xde7\xe6\xb3#\xdb?\x06\x04Vd`>\xd4?'
+p185
+tp186
+bsg1
+(g5
+S'\x13\x00\x00\x00'
+p187
+tp188
+Rp189
+g11
+(g12
+(I0
+tp190
+g14
+tp191
+Rp192
+(I1
+(I2
+tp193
+g20
+I00
+S'BQ+\xe0\xbc\x81\xd8?\xd6\xd5C\x12\x88v\xeb?'
+p194
+tp195
+bsg1
+(g5
+S'\x14\x00\x00\x00'
+p196
+tp197
+Rp198
+g11
+(g12
+(I0
+tp199
+g14
+tp200
+Rp201
+(I1
+(I2
+tp202
+g20
+I00
+S'\xcf\x0b\x8eK\xb1\xf6\xda?h\xa0\xe3f\x8d\xce\xe3?'
+p203
+tp204
+bsg1
+(g5
+S'\x15\x00\x00\x00'
+p205
+tp206
+Rp207
+g11
+(g12
+(I0
+tp208
+g14
+tp209
+Rp210
+(I1
+(I2
+tp211
+g20
+I00
+S'\x9fM\xc6\xe3_]\xd3?\xdf\xadh\x1e\xbf-\xd8?'
+p212
+tp213
+bsg1
+(g5
+S'\x16\x00\x00\x00'
+p214
+tp215
+Rp216
+g11
+(g12
+(I0
+tp217
+g14
+tp218
+Rp219
+(I1
+(I2
+tp220
+g20
+I00
+S'J\xa9]\x8c\x8e\xf2\xeb??g\xc9\x06\xeez\xdc?'
+p221
+tp222
+bsg1
+(g5
+S'\x17\x00\x00\x00'
+p223
+tp224
+Rp225
+g11
+(g12
+(I0
+tp226
+g14
+tp227
+Rp228
+(I1
+(I2
+tp229
+g20
+I00
+S'\xb0tS\x81]:\xda?/\x89\rh\xaa\xf4\xd9?'
+p230
+tp231
+bsg1
+(g5
+S'\x18\x00\x00\x00'
+p232
+tp233
+Rp234
+g11
+(g12
+(I0
+tp235
+g14
+tp236
+Rp237
+(I1
+(I2
+tp238
+g20
+I00
+S'"\xc2\xd5|hB\xc1?\xa3u\xaa\xdf\x86n\xd1?'
+p239
+tp240
+bsg1
+(g5
+S'\x19\x00\x00\x00'
+p241
+tp242
+Rp243
+g11
+(g12
+(I0
+tp244
+g14
+tp245
+Rp246
+(I1
+(I2
+tp247
+g20
+I00
+S'a\xc7\x19]+\xac\xd9?\xd8\\\x8d\xed\rw\xd7?'
+p248
+tp249
+bsg1
+(g5
+S'\x1a\x00\x00\x00'
+p250
+tp251
+Rp252
+g11
+(g12
+(I0
+tp253
+g14
+tp254
+Rp255
+(I1
+(I2
+tp256
+g20
+I00
+S'\xad"\x9a\xc8\xab`\xd4?\xabc\x06\x85j\xf9\xe5?'
+p257
+tp258
+bsg1
+(g5
+S'\x1b\x00\x00\x00'
+p259
+tp260
+Rp261
+g11
+(g12
+(I0
+tp262
+g14
+tp263
+Rp264
+(I1
+(I2
+tp265
+g20
+I00
+S'\x1a\x04\t\x89\xf5&\xd1?\xc1X\x1d\x9a\xe23\xe0?'
+p266
+tp267
+bsg1
+(g5
+S'\x1c\x00\x00\x00'
+p268
+tp269
+Rp270
+g11
+(g12
+(I0
+tp271
+g14
+tp272
+Rp273
+(I1
+(I2
+tp274
+g20
+I00
+S'\xe4Z\x9d\xfeU\xb8\xdd?\r\xb00\xc0\xde"\xe2?'
+p275
+tp276
+bsg1
+(g5
+S'\x1d\x00\x00\x00'
+p277
+tp278
+Rp279
+g11
+(g12
+(I0
+tp280
+g14
+tp281
+Rp282
+(I1
+(I2
+tp283
+g20
+I00
+S'\xbb,\xc1D8b\xe2?\x07 \x06\x070\x8c\xe5?'
+p284
+tp285
+bsg1
+(g5
+S'\x1e\x00\x00\x00'
+p286
+tp287
+Rp288
+g11
+(g12
+(I0
+tp289
+g14
+tp290
+Rp291
+(I1
+(I2
+tp292
+g20
+I00
+S'!n\xa2Z\xe8\x81\xe0?\x8ez,\\\x13\xa0\xc4?'
+p293
+tp294
+bsg1
+(g5
+S'\x1f\x00\x00\x00'
+p295
+tp296
+Rp297
+g11
+(g12
+(I0
+tp298
+g14
+tp299
+Rp300
+(I1
+(I2
+tp301
+g20
+I00
+S'@\xe87\x040\x10\xd6?\xcd\xa2\x99KUQ\xe2?'
+p302
+tp303
+bsg1
+(g5
+S' \x00\x00\x00'
+p304
+tp305
+Rp306
+g11
+(g12
+(I0
+tp307
+g14
+tp308
+Rp309
+(I1
+(I2
+tp310
+g20
+I00
+S'a\xe6\xd4\xea\xb9Z\xde?E\xa9\xb0$>\x86\xd7?'
+p311
+tp312
+bsg1
+(g5
+S'!\x00\x00\x00'
+p313
+tp314
+Rp315
+g11
+(g12
+(I0
+tp316
+g14
+tp317
+Rp318
+(I1
+(I2
+tp319
+g20
+I00
+S'\xf5\xc7\x17o\xbb\xd1\xe8?=\xfc\x08m\x1c$\xd9?'
+p320
+tp321
+bsg1
+(g5
+S'"\x00\x00\x00'
+p322
+tp323
+Rp324
+g11
+(g12
+(I0
+tp325
+g14
+tp326
+Rp327
+(I1
+(I2
+tp328
+g20
+I00
+S'A\xb7\xe0lr#\xb7?8M2_\xea*\xe0?'
+p329
+tp330
+bsg1
+(g5
+S'#\x00\x00\x00'
+p331
+tp332
+Rp333
+g11
+(g12
+(I0
+tp334
+g14
+tp335
+Rp336
+(I1
+(I2
+tp337
+g20
+I00
+S'\xfc\xa5\xc8\x91}\x16\xcb?_\x07\x01\xa3\xd0,\xe9?'
+p338
+tp339
+bsg1
+(g5
+S'$\x00\x00\x00'
+p340
+tp341
+Rp342
+g11
+(g12
+(I0
+tp343
+g14
+tp344
+Rp345
+(I1
+(I2
+tp346
+g20
+I00
+S'\xd1\xd7\x8f\x8d\xe1\xde\xe3?KA\xf1\xe4]v\xd7?'
+p347
+tp348
+bsg1
+(g5
+S'%\x00\x00\x00'
+p349
+tp350
+Rp351
+g11
+(g12
+(I0
+tp352
+g14
+tp353
+Rp354
+(I1
+(I2
+tp355
+g20
+I00
+S'\xca\x14"\x1b\xads\xe0?\x1d\'j\x94\xe4\x08\xcf?'
+p356
+tp357
+bsg1
+(g5
+S'&\x00\x00\x00'
+p358
+tp359
+Rp360
+g11
+(g12
+(I0
+tp361
+g14
+tp362
+Rp363
+(I1
+(I2
+tp364
+g20
+I00
+S'ed\x89o\x96\xfb\xee?,\x9d\xbf\x91^\x0e\xdc?'
+p365
+tp366
+bsg1
+(g5
+S"'\x00\x00\x00"
+p367
+tp368
+Rp369
+g11
+(g12
+(I0
+tp370
+g14
+tp371
+Rp372
+(I1
+(I2
+tp373
+g20
+I00
+S'\xb2\x82.6\xbd\xd2\xe0?)\xbf 2\xd6(\xd7?'
+p374
+tp375
+bsg1
+(g5
+S'(\x00\x00\x00'
+p376
+tp377
+Rp378
+g11
+(g12
+(I0
+tp379
+g14
+tp380
+Rp381
+(I1
+(I2
+tp382
+g20
+I00
+S'\xfb\xb2\xc5\xb4k,\xe8?\xca\xc3\xc9\x0f}\x14\xe5?'
+p383
+tp384
+bsg1
+(g5
+S')\x00\x00\x00'
+p385
+tp386
+Rp387
+g11
+(g12
+(I0
+tp388
+g14
+tp389
+Rp390
+(I1
+(I2
+tp391
+g20
+I00
+S'F\xda\xa5\xfe\x83\xdf\xcb?\x1d\xed\xd8\xe1h\xcb\xe2?'
+p392
+tp393
+bsg1
+(g5
+S'*\x00\x00\x00'
+p394
+tp395
+Rp396
+g11
+(g12
+(I0
+tp397
+g14
+tp398
+Rp399
+(I1
+(I2
+tp400
+g20
+I00
+S'\x9f0\x8bHC\xa7\xe0?q\xa0\xb0\xee~\x05\xe4?'
+p401
+tp402
+bsg1
+(g5
+S'+\x00\x00\x00'
+p403
+tp404
+Rp405
+g11
+(g12
+(I0
+tp406
+g14
+tp407
+Rp408
+(I1
+(I2
+tp409
+g20
+I00
+S'\x06H\x93,(\x1a\xb9?`6T\xf2\x8d\x82\xd0?'
+p410
+tp411
+bsg1
+(g5
+S',\x00\x00\x00'
+p412
+tp413
+Rp414
+g11
+(g12
+(I0
+tp415
+g14
+tp416
+Rp417
+(I1
+(I2
+tp418
+g20
+I00
+S'\xd7~_?S+\xd9?i\xf2\xb5\x82\xa6L\xe5?'
+p419
+tp420
+bsg1
+(g5
+S'-\x00\x00\x00'
+p421
+tp422
+Rp423
+g11
+(g12
+(I0
+tp424
+g14
+tp425
+Rp426
+(I1
+(I2
+tp427
+g20
+I00
+S"\xf7\x13D\xa2\xd6'\xd9?sYq\xe1\xcc\xef\xe2?"
+p428
+tp429
+bsg1
+(g5
+S'.\x00\x00\x00'
+p430
+tp431
+Rp432
+g11
+(g12
+(I0
+tp433
+g14
+tp434
+Rp435
+(I1
+(I2
+tp436
+g20
+I00
+S'\xd6\xc7\x19\xa3\xcc\x9d\xc1?\xbc\xd4\x8e\xeb\xa2\x07\xcb?'
+p437
+tp438
+bsg1
+(g5
+S'/\x00\x00\x00'
+p439
+tp440
+Rp441
+g11
+(g12
+(I0
+tp442
+g14
+tp443
+Rp444
+(I1
+(I2
+tp445
+g20
+I00
+S'\x1er\x92\x06\\8\xc2?\x04O\xee\xd8\x95\xdf\xdd?'
+p446
+tp447
+bsg1
+(g5
+S'0\x00\x00\x00'
+p448
+tp449
+Rp450
+g11
+(g12
+(I0
+tp451
+g14
+tp452
+Rp453
+(I1
+(I2
+tp454
+g20
+I00
+S'\x12p\xd5\xb2\x95<\xdd?8\x00\x00\x00'
+p574
+tp575
+Rp576
+g11
+(g12
+(I0
+tp577
+g14
+tp578
+Rp579
+(I1
+(I2
+tp580
+g20
+I00
+S's\xd6\\\x07\xc2<\xe4?:\x93\x97\xc5\xe2\xb9\xe4?'
+p581
+tp582
+bsg1
+(g5
+S'?\x00\x00\x00'
+p583
+tp584
+Rp585
+g11
+(g12
+(I0
+tp586
+g14
+tp587
+Rp588
+(I1
+(I2
+tp589
+g20
+I00
+S'\r\xf0\xd7\x02,>\xde?j\x1fM\\z.\xec?'
+p590
+tp591
+bsg1
+(g5
+S'@\x00\x00\x00'
+p592
+tp593
+Rp594
+g11
+(g12
+(I0
+tp595
+g14
+tp596
+Rp597
+(I1
+(I2
+tp598
+g20
+I00
+S'\xb5\xd71\xdc\x83\xa6\xde?a\xdf.\xff \xa1\xe3?'
+p599
+tp600
+bsg1
+(g5
+S'A\x00\x00\x00'
+p601
+tp602
+Rp603
+g11
+(g12
+(I0
+tp604
+g14
+tp605
+Rp606
+(I1
+(I2
+tp607
+g20
+I00
+S'j\xbb\\\x9a\x14\t\xd7?Lhl\xbe\x93\xef\xbc?'
+p608
+tp609
+bsg1
+(g5
+S'B\x00\x00\x00'
+p610
+tp611
+Rp612
+g11
+(g12
+(I0
+tp613
+g14
+tp614
+Rp615
+(I1
+(I2
+tp616
+g20
+I00
+S'\xa0\xd8\x0fe\xa2d\xc5?{Z51\xa4V\xe2?'
+p617
+tp618
+bsg1
+(g5
+S'C\x00\x00\x00'
+p619
+tp620
+Rp621
+g11
+(g12
+(I0
+tp622
+g14
+tp623
+Rp624
+(I1
+(I2
+tp625
+g20
+I00
+S'\xf5{\xc2\xbe\xe8\x11\xe1?,\xc1`\x95\xaf\n\xe2?'
+p626
+tp627
+bsg1
+(g5
+S'D\x00\x00\x00'
+p628
+tp629
+Rp630
+g11
+(g12
+(I0
+tp631
+g14
+tp632
+Rp633
+(I1
+(I2
+tp634
+g20
+I00
+S'\xc0\xd04\xa5\xfa8\xe4?x2?\xc4\xcb\xb2\xc7?'
+p635
+tp636
+bsg1
+(g5
+S'E\x00\x00\x00'
+p637
+tp638
+Rp639
+g11
+(g12
+(I0
+tp640
+g14
+tp641
+Rp642
+(I1
+(I2
+tp643
+g20
+I00
+S'F\xca\x8b\x08\xaa}\xd7?\x07c\xe4T\x1fd\xe7?'
+p644
+tp645
+bsg1
+(g5
+S'F\x00\x00\x00'
+p646
+tp647
+Rp648
+g11
+(g12
+(I0
+tp649
+g14
+tp650
+Rp651
+(I1
+(I2
+tp652
+g20
+I00
+S'\xac\xb7\x06c\x81\xe1\xd5?\xb57\x1d\x9dm\xbb\x8e?'
+p653
+tp654
+bsg1
+(g5
+S'G\x00\x00\x00'
+p655
+tp656
+Rp657
+g11
+(g12
+(I0
+tp658
+g14
+tp659
+Rp660
+(I1
+(I2
+tp661
+g20
+I00
+S'\xdf\x1c\xd6\x03\xeew\xdc?\x083jO,[\xcd?'
+p662
+tp663
+bsg1
+(g5
+S'H\x00\x00\x00'
+p664
+tp665
+Rp666
+g11
+(g12
+(I0
+tp667
+g14
+tp668
+Rp669
+(I1
+(I2
+tp670
+g20
+I00
+S'9\x02\x94+J\x91\xcf?\x02ZN\xd2\xfd\x8c\xc6?'
+p671
+tp672
+bsg1
+(g5
+S'I\x00\x00\x00'
+p673
+tp674
+Rp675
+g11
+(g12
+(I0
+tp676
+g14
+tp677
+Rp678
+(I1
+(I2
+tp679
+g20
+I00
+S'8\xc8\xd0\xa23\xcc\xd6?\x13\n%\xd0\xd5\xaf\xe3?'
+p680
+tp681
+bsg1
+(g5
+S'J\x00\x00\x00'
+p682
+tp683
+Rp684
+g11
+(g12
+(I0
+tp685
+g14
+tp686
+Rp687
+(I1
+(I2
+tp688
+g20
+I00
+S'\xe0]\\n\xd7[\xe8?\xd3\xb0/\xc3\x92\r\xd3?'
+p689
+tp690
+bsg1
+(g5
+S'K\x00\x00\x00'
+p691
+tp692
+Rp693
+g11
+(g12
+(I0
+tp694
+g14
+tp695
+Rp696
+(I1
+(I2
+tp697
+g20
+I00
+S'\xd3\xfb\x1dG\x18z\xdb?\x90rQr\x06\x84\xdf?'
+p698
+tp699
+bsg1
+(g5
+S'L\x00\x00\x00'
+p700
+tp701
+Rp702
+g11
+(g12
+(I0
+tp703
+g14
+tp704
+Rp705
+(I1
+(I2
+tp706
+g20
+I00
+S'\xb4\xbe\xb3/P\xb4\xe0?\x7f+\x19\xda\xa7\xfd\xc0?'
+p707
+tp708
+bsg1
+(g5
+S'M\x00\x00\x00'
+p709
+tp710
+Rp711
+g11
+(g12
+(I0
+tp712
+g14
+tp713
+Rp714
+(I1
+(I2
+tp715
+g20
+I00
+S'N0Q\xfe\x83\xbb\xaa?2\xf4\x19\xf4\xc5\x16\xd5?'
+p716
+tp717
+bsg1
+(g5
+S'N\x00\x00\x00'
+p718
+tp719
+Rp720
+g11
+(g12
+(I0
+tp721
+g14
+tp722
+Rp723
+(I1
+(I2
+tp724
+g20
+I00
+S"h\xdf\xcdE\xe6'\xd4?R\xcd&\x93\xd6s\xe7?"
+p725
+tp726
+bsg1
+(g5
+S'O\x00\x00\x00'
+p727
+tp728
+Rp729
+g11
+(g12
+(I0
+tp730
+g14
+tp731
+Rp732
+(I1
+(I2
+tp733
+g20
+I00
+S'\x1e\xe8\x0e\xd8\xc0\x14\xdd?\xf4\xb2\xa0\x9d\xbd\x0f\xdc?'
+p734
+tp735
+bsg1
+(g5
+S'P\x00\x00\x00'
+p736
+tp737
+Rp738
+g11
+(g12
+(I0
+tp739
+g14
+tp740
+Rp741
+(I1
+(I2
+tp742
+g20
+I00
+S'\xb6\x0f\xc1\xe1Nz\xcf?\xc5V^\xc2#\xf3\xc5?'
+p743
+tp744
+bsg1
+(g5
+S'Q\x00\x00\x00'
+p745
+tp746
+Rp747
+g11
+(g12
+(I0
+tp748
+g14
+tp749
+Rp750
+(I1
+(I2
+tp751
+g20
+I00
+S'\xa4P5\xa9|\xc2\xe3?\n\xc4*{l\xce\xdb?'
+p752
+tp753
+bsg1
+(g5
+S'R\x00\x00\x00'
+p754
+tp755
+Rp756
+g11
+(g12
+(I0
+tp757
+g14
+tp758
+Rp759
+(I1
+(I2
+tp760
+g20
+I00
+S'\xd8\xf6\x11\xfdi\xc6\xe6?a\x80\x11\x17\xac\xc3\xd3?'
+p761
+tp762
+bsg1
+(g5
+S'S\x00\x00\x00'
+p763
+tp764
+Rp765
+g11
+(g12
+(I0
+tp766
+g14
+tp767
+Rp768
+(I1
+(I2
+tp769
+g20
+I00
+S'\x81\xbfs\xd3b\x9a\xd9?\xfd\x05\x10\xd1V\x08\xe4?'
+p770
+tp771
+bsg1
+(g5
+S'T\x00\x00\x00'
+p772
+tp773
+Rp774
+g11
+(g12
+(I0
+tp775
+g14
+tp776
+Rp777
+(I1
+(I2
+tp778
+g20
+I00
+S'\xd82\x14\xf5\x18\x02\xdf?\x10T\x13\x03\xb9h\xea?'
+p779
+tp780
+bsg1
+(g5
+S'U\x00\x00\x00'
+p781
+tp782
+Rp783
+g11
+(g12
+(I0
+tp784
+g14
+tp785
+Rp786
+(I1
+(I2
+tp787
+g20
+I00
+S'\xf7[3>\xb1@\xd9?o\xbf\x94\xd6J5\xe8?'
+p788
+tp789
+bsg1
+(g5
+S'V\x00\x00\x00'
+p790
+tp791
+Rp792
+g11
+(g12
+(I0
+tp793
+g14
+tp794
+Rp795
+(I1
+(I2
+tp796
+g20
+I00
+S'\xc6\x06 \x8c\x9db\xd7?!\x88b\xa0}\xaa\xd5?'
+p797
+tp798
+bsg1
+(g5
+S'W\x00\x00\x00'
+p799
+tp800
+Rp801
+g11
+(g12
+(I0
+tp802
+g14
+tp803
+Rp804
+(I1
+(I2
+tp805
+g20
+I00
+S'\xb2\xca\x8c\xa4ZZ\xe6?\xfc6\xb3`\xb7\xd4\xd9?'
+p806
+tp807
+bsg1
+(g5
+S'X\x00\x00\x00'
+p808
+tp809
+Rp810
+g11
+(g12
+(I0
+tp811
+g14
+tp812
+Rp813
+(I1
+(I2
+tp814
+g20
+I00
+S'"LY\xfa\x066\xe5?u\xea\xae\xc2\xf6w\xc7?'
+p815
+tp816
+bsg1
+(g5
+S'Y\x00\x00\x00'
+p817
+tp818
+Rp819
+g11
+(g12
+(I0
+tp820
+g14
+tp821
+Rp822
+(I1
+(I2
+tp823
+g20
+I00
+S'\xda\x81\x04+h5\xd6?\xf5\xe2\x89\x12\x01\x9d\xe0?'
+p824
+tp825
+bsg1
+(g5
+S'Z\x00\x00\x00'
+p826
+tp827
+Rp828
+g11
+(g12
+(I0
+tp829
+g14
+tp830
+Rp831
+(I1
+(I2
+tp832
+g20
+I00
+S'3\xdd\x98\n\x84%\xd9?B\xe9\x08\xe6s!\xde?'
+p833
+tp834
+bsg1
+(g5
+S'[\x00\x00\x00'
+p835
+tp836
+Rp837
+g11
+(g12
+(I0
+tp838
+g14
+tp839
+Rp840
+(I1
+(I2
+tp841
+g20
+I00
+S'XY\xadc\xa5\x1c\xe7?\xae\\)x\xf0I\xe0?'
+p842
+tp843
+bsg1
+(g5
+S'\\\x00\x00\x00'
+p844
+tp845
+Rp846
+g11
+(g12
+(I0
+tp847
+g14
+tp848
+Rp849
+(I1
+(I2
+tp850
+g20
+I00
+S'.@,<\x8e|\xee?*\xea6\x92N\x0b\xdc?'
+p851
+tp852
+bsg1
+(g5
+S']\x00\x00\x00'
+p853
+tp854
+Rp855
+g11
+(g12
+(I0
+tp856
+g14
+tp857
+Rp858
+(I1
+(I2
+tp859
+g20
+I00
+S'\x95\x0ez\x0c50\xca?\xff\xc4tr\xc8\xff\xea?'
+p860
+tp861
+bsg1
+(g5
+S'^\x00\x00\x00'
+p862
+tp863
+Rp864
+g11
+(g12
+(I0
+tp865
+g14
+tp866
+Rp867
+(I1
+(I2
+tp868
+g20
+I00
+S'\xb7\xed\xf4\xac\xa5\xd1\xe1?\xf8\xbd}+\xeaA\xe9?'
+p869
+tp870
+bsg1
+(g5
+S'_\x00\x00\x00'
+p871
+tp872
+Rp873
+g11
+(g12
+(I0
+tp874
+g14
+tp875
+Rp876
+(I1
+(I2
+tp877
+g20
+I00
+S'0\x15{Q\x06+\xda?\xa9\xc1\x9b\x99w\xba\xc0?'
+p878
+tp879
+bsg1
+(g5
+S'`\x00\x00\x00'
+p880
+tp881
+Rp882
+g11
+(g12
+(I0
+tp883
+g14
+tp884
+Rp885
+(I1
+(I2
+tp886
+g20
+I00
+S'\x8c\xb3\x1b\x067\xbd\xc3?M\xda)\x90\x012\xe3?'
+p887
+tp888
+bsg1
+(g5
+S'a\x00\x00\x00'
+p889
+tp890
+Rp891
+g11
+(g12
+(I0
+tp892
+g14
+tp893
+Rp894
+(I1
+(I2
+tp895
+g20
+I00
+S'(;_G\x00J\xbd?\x91\x96\x1e\xad\xca\xf9\xdd?'
+p896
+tp897
+bsg1
+(g5
+S'b\x00\x00\x00'
+p898
+tp899
+Rp900
+g11
+(g12
+(I0
+tp901
+g14
+tp902
+Rp903
+(I1
+(I2
+tp904
+g20
+I00
+S'\x14z\xaa\nD\x94\xd8?\xeb\xd6\xab\xc1u\x04\xc6?'
+p905
+tp906
+bsg1
+(g5
+S'c\x00\x00\x00'
+p907
+tp908
+Rp909
+g11
+(g12
+(I0
+tp910
+g14
+tp911
+Rp912
+(I1
+(I2
+tp913
+g20
+I00
+S'\x8b\xa0\xc7\xfaU\xf2\xe2?\x08\xe6\xd6:m \xdc?'
+p914
+tp915
+bsg1
+(g5
+S'd\x00\x00\x00'
+p916
+tp917
+Rp918
+g11
+(g12
+(I0
+tp919
+g14
+tp920
+Rp921
+(I1
+(I2
+tp922
+g20
+I00
+S'\xdc\x83\xd1n\xce\xbf\xd9?<\x8e\xbf]nL\xdc?'
+p923
+tp924
+bsg1
+(g5
+S'e\x00\x00\x00'
+p925
+tp926
+Rp927
+g11
+(g12
+(I0
+tp928
+g14
+tp929
+Rp930
+(I1
+(I2
+tp931
+g20
+I00
+S'\xce\xea\x0e\xaf\x04\xef\xe0?x\xfe"\xbfW\xe8\xdb?'
+p932
+tp933
+bsg1
+(g5
+S'f\x00\x00\x00'
+p934
+tp935
+Rp936
+g11
+(g12
+(I0
+tp937
+g14
+tp938
+Rp939
+(I1
+(I2
+tp940
+g20
+I00
+S'\xc9\xb5\xca\xfb\xc4\xa4\xc8?;1\xf0\xdcSt\xe6?'
+p941
+tp942
+bsg1
+(g5
+S'g\x00\x00\x00'
+p943
+tp944
+Rp945
+g11
+(g12
+(I0
+tp946
+g14
+tp947
+Rp948
+(I1
+(I2
+tp949
+g20
+I00
+S'\x17\xb44\xa2\xd2\x95\xd7?\xffO\x003\xf0\x15\xc1?'
+p950
+tp951
+bsg1
+(g5
+S'h\x00\x00\x00'
+p952
+tp953
+Rp954
+g11
+(g12
+(I0
+tp955
+g14
+tp956
+Rp957
+(I1
+(I2
+tp958
+g20
+I00
+S'\xde\xd3\xe6\xd9E\x89\xcb?,l\xa5(N\xef\xe3?'
+p959
+tp960
+bsg1
+(g5
+S'i\x00\x00\x00'
+p961
+tp962
+Rp963
+g11
+(g12
+(I0
+tp964
+g14
+tp965
+Rp966
+(I1
+(I2
+tp967
+g20
+I00
+S"['D\xa8(\x9f\xd0?\xeb\xfe\x95\x8f3<\xba?"
+p968
+tp969
+bsg1
+(g5
+S'j\x00\x00\x00'
+p970
+tp971
+Rp972
+g11
+(g12
+(I0
+tp973
+g14
+tp974
+Rp975
+(I1
+(I2
+tp976
+g20
+I00
+S'#}|\xfd\x81\x99\xe6?\x89\x1f\\\x9d\xe3,\xde?'
+p977
+tp978
+bsg1
+(g5
+S'k\x00\x00\x00'
+p979
+tp980
+Rp981
+g11
+(g12
+(I0
+tp982
+g14
+tp983
+Rp984
+(I1
+(I2
+tp985
+g20
+I00
+S'\x86\xb2\xe8\x80\x80\x0f\xda?qg\xbf\xa7)c\xc2?'
+p986
+tp987
+bsg1
+(g5
+S'l\x00\x00\x00'
+p988
+tp989
+Rp990
+g11
+(g12
+(I0
+tp991
+g14
+tp992
+Rp993
+(I1
+(I2
+tp994
+g20
+I00
+S'\x0f!\xa3\x11)\xbb\xeb?\x93\x8a\x04\x8f\xbez\xda?'
+p995
+tp996
+bsg1
+(g5
+S'm\x00\x00\x00'
+p997
+tp998
+Rp999
+g11
+(g12
+(I0
+tp1000
+g14
+tp1001
+Rp1002
+(I1
+(I2
+tp1003
+g20
+I00
+S'\xb8\x02\x10#\xbe?\xe2?\\\x04\x88%F]\xe2?'
+p1004
+tp1005
+bsg1
+(g5
+S'n\x00\x00\x00'
+p1006
+tp1007
+Rp1008
+g11
+(g12
+(I0
+tp1009
+g14
+tp1010
+Rp1011
+(I1
+(I2
+tp1012
+g20
+I00
+S"\x8f\xb58\xa7g'\xe5?\x98h\xd6\tc\xe6\xe1?"
+p1013
+tp1014
+bsg1
+(g5
+S'o\x00\x00\x00'
+p1015
+tp1016
+Rp1017
+g11
+(g12
+(I0
+tp1018
+g14
+tp1019
+Rp1020
+(I1
+(I2
+tp1021
+g20
+I00
+S'\xf0\xd1\x99\xecE\xff\xe3?F\x84\x7fK\xc9\x87\xd3?'
+p1022
+tp1023
+bsg1
+(g5
+S'p\x00\x00\x00'
+p1024
+tp1025
+Rp1026
+g11
+(g12
+(I0
+tp1027
+g14
+tp1028
+Rp1029
+(I1
+(I2
+tp1030
+g20
+I00
+S'\xa3\x1a\x02\xaf\xed\xf1\xbe?\xff\x03\xb2\xa5\x08\x92\xda?'
+p1031
+tp1032
+bsg1
+(g5
+S'q\x00\x00\x00'
+p1033
+tp1034
+Rp1035
+g11
+(g12
+(I0
+tp1036
+g14
+tp1037
+Rp1038
+(I1
+(I2
+tp1039
+g20
+I00
+S'"\xed\x15\x11_.\xe5?\xe9\xd2\xe7\xb5~r\xe8?'
+p1040
+tp1041
+bsg1
+(g5
+S'r\x00\x00\x00'
+p1042
+tp1043
+Rp1044
+g11
+(g12
+(I0
+tp1045
+g14
+tp1046
+Rp1047
+(I1
+(I2
+tp1048
+g20
+I00
+S'\xae]\xd7\x1c\xdd\xcb\xe2?(Q\x93\xaezh\xe9?'
+p1049
+tp1050
+bsg1
+(g5
+S's\x00\x00\x00'
+p1051
+tp1052
+Rp1053
+g11
+(g12
+(I0
+tp1054
+g14
+tp1055
+Rp1056
+(I1
+(I2
+tp1057
+g20
+I00
+S'\xff\x0b\x8a\xf7j\x0c\xd2?\x97\x18\x89F^F\xd7?'
+p1058
+tp1059
+bsg1
+(g5
+S't\x00\x00\x00'
+p1060
+tp1061
+Rp1062
+g11
+(g12
+(I0
+tp1063
+g14
+tp1064
+Rp1065
+(I1
+(I2
+tp1066
+g20
+I00
+S'\xef\xf8K\xfc}\xdd\xb8?\xf0 BW\xf4\xb8\xcd?'
+p1067
+tp1068
+bsg1
+(g5
+S'u\x00\x00\x00'
+p1069
+tp1070
+Rp1071
+g11
+(g12
+(I0
+tp1072
+g14
+tp1073
+Rp1074
+(I1
+(I2
+tp1075
+g20
+I00
+S'\xd6-\x1a\xf9E\xd7\xe0?\xe1c\x83\xc6\x9a\xf3\xe5?'
+p1076
+tp1077
+bsg1
+(g5
+S'v\x00\x00\x00'
+p1078
+tp1079
+Rp1080
+g11
+(g12
+(I0
+tp1081
+g14
+tp1082
+Rp1083
+(I1
+(I2
+tp1084
+g20
+I00
+S'\xf6 \xa8^Z6\xa5?\x03\xd2SW\x02*\xdd?'
+p1085
+tp1086
+bsg1
+(g5
+S'w\x00\x00\x00'
+p1087
+tp1088
+Rp1089
+g11
+(g12
+(I0
+tp1090
+g14
+tp1091
+Rp1092
+(I1
+(I2
+tp1093
+g20
+I00
+S'\xadU:%\xc2\xe6\xe8?%\xa9/N*\xea\xd6?'
+p1094
+tp1095
+bsg1
+(g5
+S'x\x00\x00\x00'
+p1096
+tp1097
+Rp1098
+g11
+(g12
+(I0
+tp1099
+g14
+tp1100
+Rp1101
+(I1
+(I2
+tp1102
+g20
+I00
+S'\xcc\x8c3\xc3\x13@\xb6?u\x8c\xb5\x8d\x05\xfd\xd6?'
+p1103
+tp1104
+bsg1
+(g5
+S'y\x00\x00\x00'
+p1105
+tp1106
+Rp1107
+g11
+(g12
+(I0
+tp1108
+g14
+tp1109
+Rp1110
+(I1
+(I2
+tp1111
+g20
+I00
+S'6\xb7\xed\xb4}v\xca?\x82\xbd\xc4\xcd:\x92\xe4?'
+p1112
+tp1113
+bsg1
+(g5
+S'z\x00\x00\x00'
+p1114
+tp1115
+Rp1116
+g11
+(g12
+(I0
+tp1117
+g14
+tp1118
+Rp1119
+(I1
+(I2
+tp1120
+g20
+I00
+S'\x94\xefz\xeb\xba+\xe6?\xc9\x10\xdb\xea+\x04\xd1?'
+p1121
+tp1122
+bsg1
+(g5
+S'{\x00\x00\x00'
+p1123
+tp1124
+Rp1125
+g11
+(g12
+(I0
+tp1126
+g14
+tp1127
+Rp1128
+(I1
+(I2
+tp1129
+g20
+I00
+S'LE\x0b`p\x91\xd0?\x00\xd1\x08\x98\x91\xba\xeb?'
+p1130
+tp1131
+bsg1
+(g5
+S'|\x00\x00\x00'
+p1132
+tp1133
+Rp1134
+g11
+(g12
+(I0
+tp1135
+g14
+tp1136
+Rp1137
+(I1
+(I2
+tp1138
+g20
+I00
+S'\xd4[\x01\x02\x9c\x86\xc8?M@\xb7\x90\xadL\xdc?'
+p1139
+tp1140
+bsg1
+(g5
+S'}\x00\x00\x00'
+p1141
+tp1142
+Rp1143
+g11
+(g12
+(I0
+tp1144
+g14
+tp1145
+Rp1146
+(I1
+(I2
+tp1147
+g20
+I00
+S'\xc6,h!\xbf\xc5\xe7?\xd1\x0eF3_4\xe6?'
+p1148
+tp1149
+bsg1
+(g5
+S'~\x00\x00\x00'
+p1150
+tp1151
+Rp1152
+g11
+(g12
+(I0
+tp1153
+g14
+tp1154
+Rp1155
+(I1
+(I2
+tp1156
+g20
+I00
+S'\xf2\xf1X\x10B\xb4\xbb?\xa3\x9c\x0f\x073 \xcc?'
+p1157
+tp1158
+bsg1
+(g5
+S'\x7f\x00\x00\x00'
+p1159
+tp1160
+Rp1161
+g11
+(g12
+(I0
+tp1162
+g14
+tp1163
+Rp1164
+(I1
+(I2
+tp1165
+g20
+I00
+S'b\x18x\xacY\xec\xe4?F\xd0\\E\x0f\x9f\xc6?'
+p1166
+tp1167
+bsg1
+(g5
+S'\x80\x00\x00\x00'
+p1168
+tp1169
+Rp1170
+g11
+(g12
+(I0
+tp1171
+g14
+tp1172
+Rp1173
+(I1
+(I2
+tp1174
+g20
+I00
+S'>\x15\x8d\x0e\x97$\xd9?\xfb\x89\x8ff\x19\xc9\xd6?'
+p1175
+tp1176
+bsg1
+(g5
+S'\x81\x00\x00\x00'
+p1177
+tp1178
+Rp1179
+g11
+(g12
+(I0
+tp1180
+g14
+tp1181
+Rp1182
+(I1
+(I2
+tp1183
+g20
+I00
+S'S\x9a\x1f\x02\xff\xff\xcd?\xd05\x83\xab+(\xea?'
+p1184
+tp1185
+bsg1
+(g5
+S'\x82\x00\x00\x00'
+p1186
+tp1187
+Rp1188
+g11
+(g12
+(I0
+tp1189
+g14
+tp1190
+Rp1191
+(I1
+(I2
+tp1192
+g20
+I00
+S'?\xe9\xec\x1a\xc1\x95\xdd?\x930\x90A\xf3V\xcf?'
+p1193
+tp1194
+bsg1
+(g5
+S'\x83\x00\x00\x00'
+p1195
+tp1196
+Rp1197
+g11
+(g12
+(I0
+tp1198
+g14
+tp1199
+Rp1200
+(I1
+(I2
+tp1201
+g20
+I00
+S'\r\x18\x91\xa5\xc4I\xcd?!D\xf4\xf1\x9ad\xeb?'
+p1202
+tp1203
+bsg1
+(g5
+S'\x84\x00\x00\x00'
+p1204
+tp1205
+Rp1206
+g11
+(g12
+(I0
+tp1207
+g14
+tp1208
+Rp1209
+(I1
+(I2
+tp1210
+g20
+I00
+S'\xd1\xea(\xf0\xdd\x97\xe9?x\xed\xc2\x1a\x07i\xe2?'
+p1211
+tp1212
+bsg1
+(g5
+S'\x85\x00\x00\x00'
+p1213
+tp1214
+Rp1215
+g11
+(g12
+(I0
+tp1216
+g14
+tp1217
+Rp1218
+(I1
+(I2
+tp1219
+g20
+I00
+S'\x10TO\xf8\x14\xdc\xe7?\x8b\xda\xe0Y\xed\xbe\xd1?'
+p1220
+tp1221
+bsg1
+(g5
+S'\x86\x00\x00\x00'
+p1222
+tp1223
+Rp1224
+g11
+(g12
+(I0
+tp1225
+g14
+tp1226
+Rp1227
+(I1
+(I2
+tp1228
+g20
+I00
+S'D\x0c\xef\xfe8\xf3\xb3?\r\xea\ro\xe1\x89\xd1?'
+p1229
+tp1230
+bsg1
+(g5
+S'\x87\x00\x00\x00'
+p1231
+tp1232
+Rp1233
+g11
+(g12
+(I0
+tp1234
+g14
+tp1235
+Rp1236
+(I1
+(I2
+tp1237
+g20
+I00
+S'\xdb\xac\xc4h\x13{\xe0?\x08\x03\xf1\x08>\x11\xe1?'
+p1238
+tp1239
+bsg1
+(g5
+S'\x88\x00\x00\x00'
+p1240
+tp1241
+Rp1242
+g11
+(g12
+(I0
+tp1243
+g14
+tp1244
+Rp1245
+(I1
+(I2
+tp1246
+g20
+I00
+S'\t\xf4\xfaQ\x87\xe1\xcc?\xf4\xf1\xac\x9aR+\xeb?'
+p1247
+tp1248
+bsg1
+(g5
+S'\x89\x00\x00\x00'
+p1249
+tp1250
+Rp1251
+g11
+(g12
+(I0
+tp1252
+g14
+tp1253
+Rp1254
+(I1
+(I2
+tp1255
+g20
+I00
+S'O \xbb\x81\xa1S\xe0?1H\x0b\x9a\nh\xe9?'
+p1256
+tp1257
+bsg1
+(g5
+S'\x8a\x00\x00\x00'
+p1258
+tp1259
+Rp1260
+g11
+(g12
+(I0
+tp1261
+g14
+tp1262
+Rp1263
+(I1
+(I2
+tp1264
+g20
+I00
+S'\xb0g\x08\xc6:\xee\xd1??\x91\x8e\x02O^\xc6?'
+p1265
+tp1266
+bsg1
+(g5
+S'\x8b\x00\x00\x00'
+p1267
+tp1268
+Rp1269
+g11
+(g12
+(I0
+tp1270
+g14
+tp1271
+Rp1272
+(I1
+(I2
+tp1273
+g20
+I00
+S'\xcb|\xfa1\x97\x8d\xeb?\x02\x160\xe2?_\xd5?'
+p1274
+tp1275
+bsg1
+(g5
+S'\x8c\x00\x00\x00'
+p1276
+tp1277
+Rp1278
+g11
+(g12
+(I0
+tp1279
+g14
+tp1280
+Rp1281
+(I1
+(I2
+tp1282
+g20
+I00
+S'xOC\x1f\xf5E\xd9?\xd2m\xcb\xf5\x1e`\xe0?'
+p1283
+tp1284
+bsg1
+(g5
+S'\x8d\x00\x00\x00'
+p1285
+tp1286
+Rp1287
+g11
+(g12
+(I0
+tp1288
+g14
+tp1289
+Rp1290
+(I1
+(I2
+tp1291
+g20
+I00
+S'^\x066\xff\x02\x9a\xc5?9q\xa5\xe6\x13\xbc\xe6?'
+p1292
+tp1293
+bsg1
+(g5
+S'\x8e\x00\x00\x00'
+p1294
+tp1295
+Rp1296
+g11
+(g12
+(I0
+tp1297
+g14
+tp1298
+Rp1299
+(I1
+(I2
+tp1300
+g20
+I00
+S'\xac\xa7\xd1n*\xde\xe4?\xfa\xd3\xd5\x8dP\x0f\xc8?'
+p1301
+tp1302
+bsg1
+(g5
+S'\x8f\x00\x00\x00'
+p1303
+tp1304
+Rp1305
+g11
+(g12
+(I0
+tp1306
+g14
+tp1307
+Rp1308
+(I1
+(I2
+tp1309
+g20
+I00
+S'\xc6\x9a\xa0\xf1\x82k\xe1?4\x8d\t\xcaD\xe2\xe2?'
+p1310
+tp1311
+bsg1
+(g5
+S'\x90\x00\x00\x00'
+p1312
+tp1313
+Rp1314
+g11
+(g12
+(I0
+tp1315
+g14
+tp1316
+Rp1317
+(I1
+(I2
+tp1318
+g20
+I00
+S'jK\x1f\x04\x9bt\xda?\xce8\n\xad\xad\x01\xed?'
+p1319
+tp1320
+bsg1
+(g5
+S'\x91\x00\x00\x00'
+p1321
+tp1322
+Rp1323
+g11
+(g12
+(I0
+tp1324
+g14
+tp1325
+Rp1326
+(I1
+(I2
+tp1327
+g20
+I00
+S'G\x17\xf5\xb3\xc1 \xe0?P\xee\x9b\xbc\xba\xed\xd5?'
+p1328
+tp1329
+bsg1
+(g5
+S'\x92\x00\x00\x00'
+p1330
+tp1331
+Rp1332
+g11
+(g12
+(I0
+tp1333
+g14
+tp1334
+Rp1335
+(I1
+(I2
+tp1336
+g20
+I00
+S"\x85b\x1an\x13\xa9\xb9?'jfo\xff'\xd3?"
+p1337
+tp1338
+bsg1
+(g5
+S'\x93\x00\x00\x00'
+p1339
+tp1340
+Rp1341
+g11
+(g12
+(I0
+tp1342
+g14
+tp1343
+Rp1344
+(I1
+(I2
+tp1345
+g20
+I00
+S'\xda\x00\x8b\xb5\xc5\x86\xe6?\x84\xfb\x1fX\x8c\xd5\xdb?'
+p1346
+tp1347
+bsg1
+(g5
+S'\x94\x00\x00\x00'
+p1348
+tp1349
+Rp1350
+g11
+(g12
+(I0
+tp1351
+g14
+tp1352
+Rp1353
+(I1
+(I2
+tp1354
+g20
+I00
+S'\xc9\x17\x94\xf6\xe7\x1b\xe8?2\xbc\xbc\x17.\xe3\xc8?'
+p1355
+tp1356
+bsg1
+(g5
+S'\x95\x00\x00\x00'
+p1357
+tp1358
+Rp1359
+g11
+(g12
+(I0
+tp1360
+g14
+tp1361
+Rp1362
+(I1
+(I2
+tp1363
+g20
+I00
+S'^\x1b\x91\x01 at Y\xe0?B\x90\xc1\xe2\x1e\xb4\xea?'
+p1364
+tp1365
+bsg1
+(g5
+S'\x96\x00\x00\x00'
+p1366
+tp1367
+Rp1368
+g11
+(g12
+(I0
+tp1369
+g14
+tp1370
+Rp1371
+(I1
+(I2
+tp1372
+g20
+I00
+S',\x112^\xed\xbd\xd7?6/\xce\xe7T\xb7\xc6?'
+p1373
+tp1374
+bsg1
+(g5
+S'\x97\x00\x00\x00'
+p1375
+tp1376
+Rp1377
+g11
+(g12
+(I0
+tp1378
+g14
+tp1379
+Rp1380
+(I1
+(I2
+tp1381
+g20
+I00
+S'\x95s\xca\x98s\xdb\xae?\xb9\x7f\x05\xae\xfay\xcd?'
+p1382
+tp1383
+bsg1
+(g5
+S'\x98\x00\x00\x00'
+p1384
+tp1385
+Rp1386
+g11
+(g12
+(I0
+tp1387
+g14
+tp1388
+Rp1389
+(I1
+(I2
+tp1390
+g20
+I00
+S'\xa2\xf3\x15S\xc9\t\xe5?\xad\xbbp\x13x\x91\xe5?'
+p1391
+tp1392
+bsg1
+(g5
+S'\x99\x00\x00\x00'
+p1393
+tp1394
+Rp1395
+g11
+(g12
+(I0
+tp1396
+g14
+tp1397
+Rp1398
+(I1
+(I2
+tp1399
+g20
+I00
+S'\x19FU[/\xb0\xd9?Fhq\x83Y\xf5\xe7?'
+p1400
+tp1401
+bsg1
+(g5
+S'\x9a\x00\x00\x00'
+p1402
+tp1403
+Rp1404
+g11
+(g12
+(I0
+tp1405
+g14
+tp1406
+Rp1407
+(I1
+(I2
+tp1408
+g20
+I00
+S'X\xda\xbb\x97HR\xd5?z\x1cq\x8eI\xaf\xc0?'
+p1409
+tp1410
+bsg1
+(g5
+S'\x9b\x00\x00\x00'
+p1411
+tp1412
+Rp1413
+g11
+(g12
+(I0
+tp1414
+g14
+tp1415
+Rp1416
+(I1
+(I2
+tp1417
+g20
+I00
+S'G\r\xd8z\x8d"\xe4?D\xc0\xdd\xc7n\x8f\xe3?'
+p1418
+tp1419
+bsg1
+(g5
+S'\x9c\x00\x00\x00'
+p1420
+tp1421
+Rp1422
+g11
+(g12
+(I0
+tp1423
+g14
+tp1424
+Rp1425
+(I1
+(I2
+tp1426
+g20
+I00
+S'\xcd\x8b\xe2\xc5}\xc2\xdc?40\x02\xb3\r\xe6\xc2?'
+p1427
+tp1428
+bsg1
+(g5
+S'\x9d\x00\x00\x00'
+p1429
+tp1430
+Rp1431
+g11
+(g12
+(I0
+tp1432
+g14
+tp1433
+Rp1434
+(I1
+(I2
+tp1435
+g20
+I00
+S"0\xdc['\x08\xe7\xd2?\xd1\xc5\x01\xcd}\x04\xed?"
+p1436
+tp1437
+bsg1
+(g5
+S'\x9e\x00\x00\x00'
+p1438
+tp1439
+Rp1440
+g11
+(g12
+(I0
+tp1441
+g14
+tp1442
+Rp1443
+(I1
+(I2
+tp1444
+g20
+I00
+S'\x88\ti\x861\x0f\xd4?\x9b at lk\xf3B\xc3?'
+p1445
+tp1446
+bsg1
+(g5
+S'\x9f\x00\x00\x00'
+p1447
+tp1448
+Rp1449
+g11
+(g12
+(I0
+tp1450
+g14
+tp1451
+Rp1452
+(I1
+(I2
+tp1453
+g20
+I00
+S'\xd7\x90h\xa3\x893\xe8?\x18E\xfe\xf7\x85\xe2\xe0?'
+p1454
+tp1455
+bsg1
+(g5
+S'\xa0\x00\x00\x00'
+p1456
+tp1457
+Rp1458
+g11
+(g12
+(I0
+tp1459
+g14
+tp1460
+Rp1461
+(I1
+(I2
+tp1462
+g20
+I00
+S'\x9d4\x9d\xd1\xb5\xf8\xc7?\x97\xcd\x12\xde\xaf!\xe3?'
+p1463
+tp1464
+bsg1
+(g5
+S'\xa1\x00\x00\x00'
+p1465
+tp1466
+Rp1467
+g11
+(g12
+(I0
+tp1468
+g14
+tp1469
+Rp1470
+(I1
+(I2
+tp1471
+g20
+I00
+S'\xc2\x05Y\x97\x16\x8a\xd6?\xc3:_\xbd\x01\xd3\xe5?'
+p1472
+tp1473
+bsg1
+(g5
+S'\xa2\x00\x00\x00'
+p1474
+tp1475
+Rp1476
+g11
+(g12
+(I0
+tp1477
+g14
+tp1478
+Rp1479
+(I1
+(I2
+tp1480
+g20
+I00
+S"`\xbc\xb7\xc1'\xae\xe1?\xc3\xbb\xd0\xb1\x81\xe8\xee?"
+p1481
+tp1482
+bsg1
+(g5
+S'\xa3\x00\x00\x00'
+p1483
+tp1484
+Rp1485
+g11
+(g12
+(I0
+tp1486
+g14
+tp1487
+Rp1488
+(I1
+(I2
+tp1489
+g20
+I00
+S'=h#\xff&\x06\xad?L\x18\x95\x15\xe5\x1a\xdd?'
+p1490
+tp1491
+bsg1
+(g5
+S'\xa4\x00\x00\x00'
+p1492
+tp1493
+Rp1494
+g11
+(g12
+(I0
+tp1495
+g14
+tp1496
+Rp1497
+(I1
+(I2
+tp1498
+g20
+I00
+S'\x0e\xbe\xd8\xd9\xc5\xd8\xba?!\x06\xd4\x81O\x1d\xdb?'
+p1499
+tp1500
+bsg1
+(g5
+S'\xa5\x00\x00\x00'
+p1501
+tp1502
+Rp1503
+g11
+(g12
+(I0
+tp1504
+g14
+tp1505
+Rp1506
+(I1
+(I2
+tp1507
+g20
+I00
+S'\xfe^\xd2\xbf\xf9\x1e\xe6?C\xc8\xa2\xda\x08~\xe0?'
+p1508
+tp1509
+bsg1
+(g5
+S'\xa6\x00\x00\x00'
+p1510
+tp1511
+Rp1512
+g11
+(g12
+(I0
+tp1513
+g14
+tp1514
+Rp1515
+(I1
+(I2
+tp1516
+g20
+I00
+S'\x9d\xa9O\x8bI\xf9\xd7?\xa2K\xa54\x11\xaf\xe8?'
+p1517
+tp1518
+bsg1
+(g5
+S'\xa7\x00\x00\x00'
+p1519
+tp1520
+Rp1521
+g11
+(g12
+(I0
+tp1522
+g14
+tp1523
+Rp1524
+(I1
+(I2
+tp1525
+g20
+I00
+S'\xeb\x16\xd1\x8eB7\xec?\xc3p6-\x0f\xbe\xe1?'
+p1526
+tp1527
+bsg1
+(g5
+S'\xa8\x00\x00\x00'
+p1528
+tp1529
+Rp1530
+g11
+(g12
+(I0
+tp1531
+g14
+tp1532
+Rp1533
+(I1
+(I2
+tp1534
+g20
+I00
+S'`@\xe5\xbf\xecv\xe0?\xe1q\x9dx\xf2>\xcc?'
+p1535
+tp1536
+bsg1
+(g5
+S'\xa9\x00\x00\x00'
+p1537
+tp1538
+Rp1539
+g11
+(g12
+(I0
+tp1540
+g14
+tp1541
+Rp1542
+(I1
+(I2
+tp1543
+g20
+I00
+S'\\v\x17P\xb8\xf1\xea?l\xbe\x1e\x8cp\xfb\xd5?'
+p1544
+tp1545
+bsg1
+(g5
+S'\xaa\x00\x00\x00'
+p1546
+tp1547
+Rp1548
+g11
+(g12
+(I0
+tp1549
+g14
+tp1550
+Rp1551
+(I1
+(I2
+tp1552
+g20
+I00
+S'$fNx\x87\x1f\xec?f\x19\x10\xb1\x9c\x80\xe0?'
+p1553
+tp1554
+bsg1
+(g5
+S'\xab\x00\x00\x00'
+p1555
+tp1556
+Rp1557
+g11
+(g12
+(I0
+tp1558
+g14
+tp1559
+Rp1560
+(I1
+(I2
+tp1561
+g20
+I00
+S'\xbfU\xba\xa1\xeb\x8b\xe3?<\xc2?\xe2\xab\xac\xda?'
+p1562
+tp1563
+bsg1
+(g5
+S'\xac\x00\x00\x00'
+p1564
+tp1565
+Rp1566
+g11
+(g12
+(I0
+tp1567
+g14
+tp1568
+Rp1569
+(I1
+(I2
+tp1570
+g20
+I00
+S'\xcc\xf9Ve\x89h\xd9?Iw\x95\xef\xe3\x7f\xc5?'
+p1571
+tp1572
+bsg1
+(g5
+S'\xad\x00\x00\x00'
+p1573
+tp1574
+Rp1575
+g11
+(g12
+(I0
+tp1576
+g14
+tp1577
+Rp1578
+(I1
+(I2
+tp1579
+g20
+I00
+S'7)v\xbb\xbc\xc9\xc4?U\xaa9\x03\xec\x15\xcb?'
+p1580
+tp1581
+bsg1
+(g5
+S'\xae\x00\x00\x00'
+p1582
+tp1583
+Rp1584
+g11
+(g12
+(I0
+tp1585
+g14
+tp1586
+Rp1587
+(I1
+(I2
+tp1588
+g20
+I00
+S'\xf2M\xd6\xa6(\xb1\xe5?hND\xd3?\xd0\xe8?'
+p1589
+tp1590
+bsg1
+(g5
+S'\xaf\x00\x00\x00'
+p1591
+tp1592
+Rp1593
+g11
+(g12
+(I0
+tp1594
+g14
+tp1595
+Rp1596
+(I1
+(I2
+tp1597
+g20
+I00
+S'\xa3\x17M\xec\x10\x88\xe7?\x06?\x0e=\xad\x8c\xca?'
+p1598
+tp1599
+bsg1
+(g5
+S'\xb0\x00\x00\x00'
+p1600
+tp1601
+Rp1602
+g11
+(g12
+(I0
+tp1603
+g14
+tp1604
+Rp1605
+(I1
+(I2
+tp1606
+g20
+I00
+S'\x84Z\xb7gG\x1a\xcb?P\xcfD\xae\xefz\xd7?'
+p1607
+tp1608
+bsg1
+(g5
+S'\xb1\x00\x00\x00'
+p1609
+tp1610
+Rp1611
+g11
+(g12
+(I0
+tp1612
+g14
+tp1613
+Rp1614
+(I1
+(I2
+tp1615
+g20
+I00
+S'O\x8b\xc2\x1b\x0c\xa3\xe6?\xf8o7P\x87\xbf\xe8?'
+p1616
+tp1617
+bsg1
+(g5
+S'\xb2\x00\x00\x00'
+p1618
+tp1619
+Rp1620
+g11
+(g12
+(I0
+tp1621
+g14
+tp1622
+Rp1623
+(I1
+(I2
+tp1624
+g20
+I00
+S'_\xdf\xdc\xa5\x8aM\xc6?\x18_\xc5\xd9\xd8\xea\xd7?'
+p1625
+tp1626
+bsg1
+(g5
+S'\xb3\x00\x00\x00'
+p1627
+tp1628
+Rp1629
+g11
+(g12
+(I0
+tp1630
+g14
+tp1631
+Rp1632
+(I1
+(I2
+tp1633
+g20
+I00
+S'\x8b,\xca\xb0\xabP\xe8?q;\xa6W\xf3$\xe6?'
+p1634
+tp1635
+bsg1
+(g5
+S'\xb4\x00\x00\x00'
+p1636
+tp1637
+Rp1638
+g11
+(g12
+(I0
+tp1639
+g14
+tp1640
+Rp1641
+(I1
+(I2
+tp1642
+g20
+I00
+S" l\xa9?+9\xc6?['\xd0\xdd{/\xcc?"
+p1643
+tp1644
+bsg1
+(g5
+S'\xb5\x00\x00\x00'
+p1645
+tp1646
+Rp1647
+g11
+(g12
+(I0
+tp1648
+g14
+tp1649
+Rp1650
+(I1
+(I2
+tp1651
+g20
+I00
+S'\xde\x00\xba\xd6Zj\xe6?\xba\x9a\xde\x83\x93B\xd7?'
+p1652
+tp1653
+bsg1
+(g5
+S'\xb6\x00\x00\x00'
+p1654
+tp1655
+Rp1656
+g11
+(g12
+(I0
+tp1657
+g14
+tp1658
+Rp1659
+(I1
+(I2
+tp1660
+g20
+I00
+S'~\xa5\x12\xb3\xd1\xb1\xcf?\x02]u\x13\xb8\n\xda?'
+p1661
+tp1662
+bsg1
+(g5
+S'\xb7\x00\x00\x00'
+p1663
+tp1664
+Rp1665
+g11
+(g12
+(I0
+tp1666
+g14
+tp1667
+Rp1668
+(I1
+(I2
+tp1669
+g20
+I00
+S'\xd9\xab\x99,e\x1c\xe2?Ux\rA\xa4\xf4\xd4?'
+p1670
+tp1671
+bsg1
+(g5
+S'\xb8\x00\x00\x00'
+p1672
+tp1673
+Rp1674
+g11
+(g12
+(I0
+tp1675
+g14
+tp1676
+Rp1677
+(I1
+(I2
+tp1678
+g20
+I00
+S'(Q.(\xe9\x00\xd1?s\xc8\x92\x06M\xe5\xdb?'
+p1679
+tp1680
+bsg1
+(g5
+S'\xb9\x00\x00\x00'
+p1681
+tp1682
+Rp1683
+g11
+(g12
+(I0
+tp1684
+g14
+tp1685
+Rp1686
+(I1
+(I2
+tp1687
+g20
+I00
+S'\x0b[=\x8db\xe7\xd2?z4\x1e\x9e|\x19\xb5?'
+p1688
+tp1689
+bsg1
+(g5
+S'\xba\x00\x00\x00'
+p1690
+tp1691
+Rp1692
+g11
+(g12
+(I0
+tp1693
+g14
+tp1694
+Rp1695
+(I1
+(I2
+tp1696
+g20
+I00
+S'\x81\xe8\xff\x1eT\x17\xda?\xf7w\tF`\xab\xbb?'
+p1697
+tp1698
+bsg1
+(g5
+S'\xbb\x00\x00\x00'
+p1699
+tp1700
+Rp1701
+g11
+(g12
+(I0
+tp1702
+g14
+tp1703
+Rp1704
+(I1
+(I2
+tp1705
+g20
+I00
+S'T\x1c\xda_\x0f\xb2\xd5?\xa4\xa6\xb5\xa1\xed6\xc3?'
+p1706
+tp1707
+bsg1
+(g5
+S'\xbc\x00\x00\x00'
+p1708
+tp1709
+Rp1710
+g11
+(g12
+(I0
+tp1711
+g14
+tp1712
+Rp1713
+(I1
+(I2
+tp1714
+g20
+I00
+S'\xea1\x15)\xad\xfd\xe8?\r\x91\xdb9}V\xd4?'
+p1715
+tp1716
+bsg1
+(g5
+S'\xbd\x00\x00\x00'
+p1717
+tp1718
+Rp1719
+g11
+(g12
+(I0
+tp1720
+g14
+tp1721
+Rp1722
+(I1
+(I2
+tp1723
+g20
+I00
+S'm\x8a\xb5\xd1\xc1\xb8\xc7?Vvw\xb3=\xd2\xe1?'
+p1724
+tp1725
+bsg1
+(g5
+S'\xbe\x00\x00\x00'
+p1726
+tp1727
+Rp1728
+g11
+(g12
+(I0
+tp1729
+g14
+tp1730
+Rp1731
+(I1
+(I2
+tp1732
+g20
+I00
+S"\x1d\x8fP\xbe'z\xe7?\x910&'\xd9\x9d\xdd?"
+p1733
+tp1734
+bsg1
+(g5
+S'\xbf\x00\x00\x00'
+p1735
+tp1736
+Rp1737
+g11
+(g12
+(I0
+tp1738
+g14
+tp1739
+Rp1740
+(I1
+(I2
+tp1741
+g20
+I00
+S'u\x9d\xbc\x99\x84\x92\xe4?\xcc\x12\x195\xa6\xcc\xc6?'
+p1742
+tp1743
+bsg1
+(g5
+S'\xc0\x00\x00\x00'
+p1744
+tp1745
+Rp1746
+g11
+(g12
+(I0
+tp1747
+g14
+tp1748
+Rp1749
+(I1
+(I2
+tp1750
+g20
+I00
+S"\xab{~\xf2'}\xd5?W^\xae\xfa\xbb\xb7\xdf?"
+p1751
+tp1752
+bsg1
+(g5
+S'\xc1\x00\x00\x00'
+p1753
+tp1754
+Rp1755
+g11
+(g12
+(I0
+tp1756
+g14
+tp1757
+Rp1758
+(I1
+(I2
+tp1759
+g20
+I00
+S'\xaa\xccm\x85g\x99\xd5? D\xd9L\x0c\xa3\xe4?'
+p1760
+tp1761
+bsg1
+(g5
+S'\xc2\x00\x00\x00'
+p1762
+tp1763
+Rp1764
+g11
+(g12
+(I0
+tp1765
+g14
+tp1766
+Rp1767
+(I1
+(I2
+tp1768
+g20
+I00
+S'p\x9d\xf3\xec\x7f<\xe6?\xe9\xc9K\x8c\x15`\xe9?'
+p1769
+tp1770
+bsg1
+(g5
+S'\xc3\x00\x00\x00'
+p1771
+tp1772
+Rp1773
+g11
+(g12
+(I0
+tp1774
+g14
+tp1775
+Rp1776
+(I1
+(I2
+tp1777
+g20
+I00
+S'>\xd6K\x0c\x08\xdb\xe4?^\xd1\xbfL\xd2\x03\xe8?'
+p1778
+tp1779
+bsg1
+(g5
+S'\xc4\x00\x00\x00'
+p1780
+tp1781
+Rp1782
+g11
+(g12
+(I0
+tp1783
+g14
+tp1784
+Rp1785
+(I1
+(I2
+tp1786
+g20
+I00
+S'F\xc9A\xa3\xef\x82\xef?\x82\x93\x8d\x03\x1ck\xdb?'
+p1787
+tp1788
+bsg1
+(g5
+S'\xc5\x00\x00\x00'
+p1789
+tp1790
+Rp1791
+g11
+(g12
+(I0
+tp1792
+g14
+tp1793
+Rp1794
+(I1
+(I2
+tp1795
+g20
+I00
+S"O\xdb+'{\xca\xe1?\xd0I#\xe4\x9dF\xeb?"
+p1796
+tp1797
+bsg1
+(g5
+S'\xc6\x00\x00\x00'
+p1798
+tp1799
+Rp1800
+g11
+(g12
+(I0
+tp1801
+g14
+tp1802
+Rp1803
+(I1
+(I2
+tp1804
+g20
+I00
+S':\xb5\x90N\xab\xa6\xea?\x9b<\xf14\xd1G\xd4?'
+p1805
+tp1806
+bsg1
+(g5
+S'\xc7\x00\x00\x00'
+p1807
+tp1808
+Rp1809
+g11
+(g12
+(I0
+tp1810
+g14
+tp1811
+Rp1812
+(I1
+(I2
+tp1813
+g20
+I00
+S'\x9b~\xe1\xbeU\xd0\xe2?x\xcd\x9d+03\xe3?'
+p1814
+tp1815
+bsg1
+(g5
+S'\xc8\x00\x00\x00'
+p1816
+tp1817
+Rp1818
+g11
+(g12
+(I0
+tp1819
+g14
+tp1820
+Rp1821
+(I1
+(I2
+tp1822
+g20
+I00
+S"\xe1\x96\x92\x80FM\xd8??\x8e\xc1'\xef{\xe1?"
+p1823
+tp1824
+bsg1
+(g5
+S'\xc9\x00\x00\x00'
+p1825
+tp1826
+Rp1827
+g11
+(g12
+(I0
+tp1828
+g14
+tp1829
+Rp1830
+(I1
+(I2
+tp1831
+g20
+I00
+S'\x9e+\x0b\xcd\xe5#\xed?\x03\xb6\xae\xce\xc3\x13\xe2?'
+p1832
+tp1833
+bsg1
+(g5
+S'\xca\x00\x00\x00'
+p1834
+tp1835
+Rp1836
+g11
+(g12
+(I0
+tp1837
+g14
+tp1838
+Rp1839
+(I1
+(I2
+tp1840
+g20
+I00
+S'\x1b\xf4D\xfdb\x84\xe0?^K\xb7\xe3\xbe\xb8\xd0?'
+p1841
+tp1842
+bsg1
+(g5
+S'\xcb\x00\x00\x00'
+p1843
+tp1844
+Rp1845
+g11
+(g12
+(I0
+tp1846
+g14
+tp1847
+Rp1848
+(I1
+(I2
+tp1849
+g20
+I00
+S'\t\xca\x00\x7f*\xbd\xaf?0H!M\x03\t\xd2?'
+p1850
+tp1851
+bsg1
+(g5
+S'\xcc\x00\x00\x00'
+p1852
+tp1853
+Rp1854
+g11
+(g12
+(I0
+tp1855
+g14
+tp1856
+Rp1857
+(I1
+(I2
+tp1858
+g20
+I00
+S'\x8f\xcc\x9a\x86\x93[\xea?\xd4%j\xc3~\xd7\xdd?'
+p1859
+tp1860
+bsg1
+(g5
+S'\xcd\x00\x00\x00'
+p1861
+tp1862
+Rp1863
+g11
+(g12
+(I0
+tp1864
+g14
+tp1865
+Rp1866
+(I1
+(I2
+tp1867
+g20
+I00
+S'\xcc.3\x01\xb5\xa3\xe7?\xde-/\x81"a\xd2?'
+p1868
+tp1869
+bsg1
+(g5
+S'\xce\x00\x00\x00'
+p1870
+tp1871
+Rp1872
+g11
+(g12
+(I0
+tp1873
+g14
+tp1874
+Rp1875
+(I1
+(I2
+tp1876
+g20
+I00
+S'\xb5\xd71\xdc\x83\xa6\xde?a\xdf.\xff \xa1\xe3?'
+p1877
+tp1878
+bsg1
+(g5
+S'\xcf\x00\x00\x00'
+p1879
+tp1880
+Rp1881
+g11
+(g12
+(I0
+tp1882
+g14
+tp1883
+Rp1884
+(I1
+(I2
+tp1885
+g20
+I00
+S"\x157R\xb5PB\xeb? \xcc\xa07'C\xdf?"
+p1886
+tp1887
+bsg1
+(g5
+S'\xd0\x00\x00\x00'
+p1888
+tp1889
+Rp1890
+g11
+(g12
+(I0
+tp1891
+g14
+tp1892
+Rp1893
+(I1
+(I2
+tp1894
+g20
+I00
+S'\xe7\xe1\xa9\x07\xe5_\xbd?\xcf\xb5\xbf\xf6\xfb\xe7\xcf?'
+p1895
+tp1896
+bsg1
+(g5
+S'\xd1\x00\x00\x00'
+p1897
+tp1898
+Rp1899
+g11
+(g12
+(I0
+tp1900
+g14
+tp1901
+Rp1902
+(I1
+(I2
+tp1903
+g20
+I00
+S'Rl0\x8c\xec\xc7\xd1?\x97 \xd1L\x83\xec\xd7?'
+p1904
+tp1905
+bsg1
+(g5
+S'\xd2\x00\x00\x00'
+p1906
+tp1907
+Rp1908
+g11
+(g12
+(I0
+tp1909
+g14
+tp1910
+Rp1911
+(I1
+(I2
+tp1912
+g20
+I00
+S'-\xf9;^\xf5\xe8\xe2?P=\x06\xeb\x98d\xe0?'
+p1913
+tp1914
+bsg1
+(g5
+S'\xd3\x00\x00\x00'
+p1915
+tp1916
+Rp1917
+g11
+(g12
+(I0
+tp1918
+g14
+tp1919
+Rp1920
+(I1
+(I2
+tp1921
+g20
+I00
+S'\x93 \xbd\xd0\xc7\xd1\xec?\x9e\xe2\x82g\xd1\xbd\xe0?'
+p1922
+tp1923
+bsg1
+(g5
+S'\xd4\x00\x00\x00'
+p1924
+tp1925
+Rp1926
+g11
+(g12
+(I0
+tp1927
+g14
+tp1928
+Rp1929
+(I1
+(I2
+tp1930
+g20
+I00
+S'\xfd\x89>\xa2d\xf1\xce?\xdb)\xbc\xc7q\xd1\xe5?'
+p1931
+tp1932
+bsg1
+(g5
+S'\xd5\x00\x00\x00'
+p1933
+tp1934
+Rp1935
+g11
+(g12
+(I0
+tp1936
+g14
+tp1937
+Rp1938
+(I1
+(I2
+tp1939
+g20
+I00
+S'\x1bu\xd0\xe8\xa3,\xd7?\x13\x8cW\xddN\x86\xea?'
+p1940
+tp1941
+bsg1
+(g5
+S'\xd6\x00\x00\x00'
+p1942
+tp1943
+Rp1944
+g11
+(g12
+(I0
+tp1945
+g14
+tp1946
+Rp1947
+(I1
+(I2
+tp1948
+g20
+I00
+S'\x85\x14\xd9Wev\xe2?\x08\xc4shZR\xe1?'
+p1949
+tp1950
+bsg1
+(g5
+S'\xd7\x00\x00\x00'
+p1951
+tp1952
+Rp1953
+g11
+(g12
+(I0
+tp1954
+g14
+tp1955
+Rp1956
+(I1
+(I2
+tp1957
+g20
+I00
+S'\x9e\x04\x85=\xcfR\xc7?\xaeV\xfb\xe9\xd15\xe2?'
+p1958
+tp1959
+bsg1
+(g5
+S'\xd8\x00\x00\x00'
+p1960
+tp1961
+Rp1962
+g11
+(g12
+(I0
+tp1963
+g14
+tp1964
+Rp1965
+(I1
+(I2
+tp1966
+g20
+I00
+S'\xb9\x92\x80]\x11Z\xe3?{\xf37\x82~\xa3\xc6?'
+p1967
+tp1968
+bsg1
+(g5
+S'\xd9\x00\x00\x00'
+p1969
+tp1970
+Rp1971
+g11
+(g12
+(I0
+tp1972
+g14
+tp1973
+Rp1974
+(I1
+(I2
+tp1975
+g20
+I00
+S'\x91P\xe3\xabb\xbd\xd5?\x1b\xc3\x0f\x8fz.\xd5?'
+p1976
+tp1977
+bsg1
+(g5
+S'\xda\x00\x00\x00'
+p1978
+tp1979
+Rp1980
+g11
+(g12
+(I0
+tp1981
+g14
+tp1982
+Rp1983
+(I1
+(I2
+tp1984
+g20
+I00
+S"\xa5\x90r9\x03\xa2\xb1?\x9f]u'2E\xca?"
+p1985
+tp1986
+bsg1
+(g5
+S'\xdb\x00\x00\x00'
+p1987
+tp1988
+Rp1989
+g11
+(g12
+(I0
+tp1990
+g14
+tp1991
+Rp1992
+(I1
+(I2
+tp1993
+g20
+I00
+S'\xf5\xce\x86\x11\xc21\xe7?\xefR\xc3\x03\x1b\x1f\xe8?'
+p1994
+tp1995
+bsg1
+(g5
+S'\xdc\x00\x00\x00'
+p1996
+tp1997
+Rp1998
+g11
+(g12
+(I0
+tp1999
+g14
+tp2000
+Rp2001
+(I1
+(I2
+tp2002
+g20
+I00
+S'\x19P\x1b_\xad\xb8\xb6??\xe9\x9a\x91\xe6\xf9\xdc?'
+p2003
+tp2004
+bsg1
+(g5
+S'\xdd\x00\x00\x00'
+p2005
+tp2006
+Rp2007
+g11
+(g12
+(I0
+tp2008
+g14
+tp2009
+Rp2010
+(I1
+(I2
+tp2011
+g20
+I00
+S'\xca\x87\xfb\xe1(W\xe5?s\xc8h\x80\x10\xf1\xe3?'
+p2012
+tp2013
+bsg1
+(g5
+S'\xde\x00\x00\x00'
+p2014
+tp2015
+Rp2016
+g11
+(g12
+(I0
+tp2017
+g14
+tp2018
+Rp2019
+(I1
+(I2
+tp2020
+g20
+I00
+S'Q\xe3&\xcf\xee\xc8\xd7?.\x81\xc6\xaa]m\xe0?'
+p2021
+tp2022
+bsg1
+(g5
+S'\xdf\x00\x00\x00'
+p2023
+tp2024
+Rp2025
+g11
+(g12
+(I0
+tp2026
+g14
+tp2027
+Rp2028
+(I1
+(I2
+tp2029
+g20
+I00
+S'\xe1\x89V\x83\x89\xcb\xeb?\xb7\x06\xac-\xe9\xfe\xda?'
+p2030
+tp2031
+bsg1
+(g5
+S'\xe0\x00\x00\x00'
+p2032
+tp2033
+Rp2034
+g11
+(g12
+(I0
+tp2035
+g14
+tp2036
+Rp2037
+(I1
+(I2
+tp2038
+g20
+I00
+S'e\xe7\x12\xbeM^\xc9?W4W\x81\xdd\xb7\xc4?'
+p2039
+tp2040
+bsg1
+(g5
+S'\xe1\x00\x00\x00'
+p2041
+tp2042
+Rp2043
+g11
+(g12
+(I0
+tp2044
+g14
+tp2045
+Rp2046
+(I1
+(I2
+tp2047
+g20
+I00
+S'd\xf7\x11\x1fN\x0b\xe2?Y\xe0\xdclZ\x18\xc6?'
+p2048
+tp2049
+bsg1
+(g5
+S'\xe2\x00\x00\x00'
+p2050
+tp2051
+Rp2052
+g11
+(g12
+(I0
+tp2053
+g14
+tp2054
+Rp2055
+(I1
+(I2
+tp2056
+g20
+I00
+S'\x16\xfbY\x0f\x9ef\xc8?Y\tuq8\xa0\xe2?'
+p2057
+tp2058
+bsg1
+(g5
+S'\xe3\x00\x00\x00'
+p2059
+tp2060
+Rp2061
+g11
+(g12
+(I0
+tp2062
+g14
+tp2063
+Rp2064
+(I1
+(I2
+tp2065
+g20
+I00
+S'\xd5\xedz\x18Bf\xe2?\xcc\x8bq\xee\\\\\xeb?'
+p2066
+tp2067
+bsg1
+(g5
+S'\xe4\x00\x00\x00'
+p2068
+tp2069
+Rp2070
+g11
+(g12
+(I0
+tp2071
+g14
+tp2072
+Rp2073
+(I1
+(I2
+tp2074
+g20
+I00
+S'\x0f\xd2\x1d\xa1\xa3\x8c\xe3?\xc8\xb1\\\x84\xf6t\xd3?'
+p2075
+tp2076
+bsg1
+(g5
+S'\xe5\x00\x00\x00'
+p2077
+tp2078
+Rp2079
+g11
+(g12
+(I0
+tp2080
+g14
+tp2081
+Rp2082
+(I1
+(I2
+tp2083
+g20
+I00
+S'6\x9f\x8b6\x0f)\xe1?\x01\x88n\xeb\xfe\xc0\xe6?'
+p2084
+tp2085
+bsg1
+(g5
+S'\xe6\x00\x00\x00'
+p2086
+tp2087
+Rp2088
+g11
+(g12
+(I0
+tp2089
+g14
+tp2090
+Rp2091
+(I1
+(I2
+tp2092
+g20
+I00
+S'Hk\xb9\xe6\x85\xc5\xcd?\xb4\x07#]\xc0T\xe4?'
+p2093
+tp2094
+bsg1
+(g5
+S'\xe7\x00\x00\x00'
+p2095
+tp2096
+Rp2097
+g11
+(g12
+(I0
+tp2098
+g14
+tp2099
+Rp2100
+(I1
+(I2
+tp2101
+g20
+I00
+S'\xd5\xb7\xf7s\xa4Y\xe0?\xca\x87\xa3R\xbd\xfe\xd8?'
+p2102
+tp2103
+bsg1
+(g5
+S'\xe8\x00\x00\x00'
+p2104
+tp2105
+Rp2106
+g11
+(g12
+(I0
+tp2107
+g14
+tp2108
+Rp2109
+(I1
+(I2
+tp2110
+g20
+I00
+S"\x96\xb2\x95'\xed\x10\xe9?\xb1\xf2\xe4\x9c\xe1\xfc\xd1?"
+p2111
+tp2112
+bsg1
+(g5
+S'\xe9\x00\x00\x00'
+p2113
+tp2114
+Rp2115
+g11
+(g12
+(I0
+tp2116
+g14
+tp2117
+Rp2118
+(I1
+(I2
+tp2119
+g20
+I00
+S'!\x03\x1c\xed\x02 \xe3?v`"\xe0;\xe2\xe7?'
+p2120
+tp2121
+bsg1
+(g5
+S'\xea\x00\x00\x00'
+p2122
+tp2123
+Rp2124
+g11
+(g12
+(I0
+tp2125
+g14
+tp2126
+Rp2127
+(I1
+(I2
+tp2128
+g20
+I00
+S'\xa9\xbd\xc2\x81\xe4\x93\xc5?\xa4\x16\xc9\xa2\xaf\x07\xe8?'
+p2129
+tp2130
+bsg1
+(g5
+S'\xeb\x00\x00\x00'
+p2131
+tp2132
+Rp2133
+g11
+(g12
+(I0
+tp2134
+g14
+tp2135
+Rp2136
+(I1
+(I2
+tp2137
+g20
+I00
+S'\x8c\xb08\xddO\xd2\xd2?\xa4\x8f?&\xe1x\xeb?'
+p2138
+tp2139
+bsg1
+(g5
+S'\xec\x00\x00\x00'
+p2140
+tp2141
+Rp2142
+g11
+(g12
+(I0
+tp2143
+g14
+tp2144
+Rp2145
+(I1
+(I2
+tp2146
+g20
+I00
+S')\xa4?u\xde\xd2\xe2?8\xf0W\xc4A\x8c\xc6?'
+p2147
+tp2148
+bsg1
+(g5
+S'\xed\x00\x00\x00'
+p2149
+tp2150
+Rp2151
+g11
+(g12
+(I0
+tp2152
+g14
+tp2153
+Rp2154
+(I1
+(I2
+tp2155
+g20
+I00
+S'c>V\x06\x1b\x9b\xcb?,[a\xf0p8\xe8?'
+p2156
+tp2157
+bsg1
+(g5
+S'\xee\x00\x00\x00'
+p2158
+tp2159
+Rp2160
+g11
+(g12
+(I0
+tp2161
+g14
+tp2162
+Rp2163
+(I1
+(I2
+tp2164
+g20
+I00
+S'\xc0\xc4M~\x0e\x18\xdf?Y\x92\xf9\x1b\x0c\xa3\xe0?'
+p2165
+tp2166
+bsg1
+(g5
+S'\xef\x00\x00\x00'
+p2167
+tp2168
+Rp2169
+g11
+(g12
+(I0
+tp2170
+g14
+tp2171
+Rp2172
+(I1
+(I2
+tp2173
+g20
+I00
+S',um\xbe~\r\xd5?R"\xec\xe7\xa7\x06\xe8?'
+p2174
+tp2175
+bsg1
+(g5
+S'\xf0\x00\x00\x00'
+p2176
+tp2177
+Rp2178
+g11
+(g12
+(I0
+tp2179
+g14
+tp2180
+Rp2181
+(I1
+(I2
+tp2182
+g20
+I00
+S'\x0f\xef\xef\xa8h\x16\xec?f(\xfb2\x08\xcf\xde?'
+p2183
+tp2184
+bsg1
+(g5
+S'\xf1\x00\x00\x00'
+p2185
+tp2186
+Rp2187
+g11
+(g12
+(I0
+tp2188
+g14
+tp2189
+Rp2190
+(I1
+(I2
+tp2191
+g20
+I00
+S'%+\x1afJ\xed\xe8?E\xea)\x06"R\xd2?'
+p2192
+tp2193
+bsg1
+(g5
+S'\xf2\x00\x00\x00'
+p2194
+tp2195
+Rp2196
+g11
+(g12
+(I0
+tp2197
+g14
+tp2198
+Rp2199
+(I1
+(I2
+tp2200
+g20
+I00
+S'N\x90\xe0R c\xc5?\x07\xdao\xc7=\xe5\xc8?'
+p2201
+tp2202
+bsg1
+(g5
+S'\xf3\x00\x00\x00'
+p2203
+tp2204
+Rp2205
+g11
+(g12
+(I0
+tp2206
+g14
+tp2207
+Rp2208
+(I1
+(I2
+tp2209
+g20
+I00
+S'\xf3\xe0;\x9d\xea\x9e\xc7?\xe39\x08\xf8\x94}\xe8?'
+p2210
+tp2211
+bsg1
+(g5
+S'\xf4\x00\x00\x00'
+p2212
+tp2213
+Rp2214
+g11
+(g12
+(I0
+tp2215
+g14
+tp2216
+Rp2217
+(I1
+(I2
+tp2218
+g20
+I00
+S'\x83\xea\xfe\x12\xdec\xe2?\x98N\xf4\x02I\xea\xdd?'
+p2219
+tp2220
+bsg1
+(g5
+S'\xf5\x00\x00\x00'
+p2221
+tp2222
+Rp2223
+g11
+(g12
+(I0
+tp2224
+g14
+tp2225
+Rp2226
+(I1
+(I2
+tp2227
+g20
+I00
+S'Q\x1a\xb0\xd4?'
+p2309
+tp2310
+bsg1
+(g5
+S'\xff\x00\x00\x00'
+p2311
+tp2312
+Rp2313
+g11
+(g12
+(I0
+tp2314
+g14
+tp2315
+Rp2316
+(I1
+(I2
+tp2317
+g20
+I00
+S'#<\xb4i\x95\xc8\xe5?/,\xe8\xdfc\x94\xd1?'
+p2318
+tp2319
+bsg1
+(g5
+S'\x00\x01\x00\x00'
+p2320
+tp2321
+Rp2322
+g11
+(g12
+(I0
+tp2323
+g14
+tp2324
+Rp2325
+(I1
+(I2
+tp2326
+g20
+I00
+S'\xfc \x0f\xa3\x1f\xf8\xe5?\r\x14\x12\x89\xe0\x0c\xd1?'
+p2327
+tp2328
+bsg1
+(g5
+S'\x01\x01\x00\x00'
+p2329
+tp2330
+Rp2331
+g11
+(g12
+(I0
+tp2332
+g14
+tp2333
+Rp2334
+(I1
+(I2
+tp2335
+g20
+I00
+S'\x99\x90aP\xe4\xc1\xdb?\xf9\xd2_D\xd1f\xd9?'
+p2336
+tp2337
+bsg1
+(g5
+S'\x02\x01\x00\x00'
+p2338
+tp2339
+Rp2340
+g11
+(g12
+(I0
+tp2341
+g14
+tp2342
+Rp2343
+(I1
+(I2
+tp2344
+g20
+I00
+S'\xfaZoS\xb4u\xed?\xc6s.n\x16\x08\xdc?'
+p2345
+tp2346
+bsg1
+(g5
+S'\x03\x01\x00\x00'
+p2347
+tp2348
+Rp2349
+g11
+(g12
+(I0
+tp2350
+g14
+tp2351
+Rp2352
+(I1
+(I2
+tp2353
+g20
+I00
+S'\xcbK\x07zd|\xe9?2g\xf45\xeb|\xe1?'
+p2354
+tp2355
+bsg1
+(g5
+S'\x04\x01\x00\x00'
+p2356
+tp2357
+Rp2358
+g11
+(g12
+(I0
+tp2359
+g14
+tp2360
+Rp2361
+(I1
+(I2
+tp2362
+g20
+I00
+S'\x95_\x8ck\x17\xd7\xe2?bO\x1b\t3i\xd3?'
+p2363
+tp2364
+bsg1
+(g5
+S'\x05\x01\x00\x00'
+p2365
+tp2366
+Rp2367
+g11
+(g12
+(I0
+tp2368
+g14
+tp2369
+Rp2370
+(I1
+(I2
+tp2371
+g20
+I00
+S',\x06dv\x82_\xea?\x8d\t8\xab\xd3.\xe0?'
+p2372
+tp2373
+bsg1
+(g5
+S'\x06\x01\x00\x00'
+p2374
+tp2375
+Rp2376
+g11
+(g12
+(I0
+tp2377
+g14
+tp2378
+Rp2379
+(I1
+(I2
+tp2380
+g20
+I00
+S'\xa4\xf9X\x0cn\x87\xe0?\xcc_\x9b\x81\xe9\x81\xc9?'
+p2381
+tp2382
+bsg1
+(g5
+S'\x07\x01\x00\x00'
+p2383
+tp2384
+Rp2385
+g11
+(g12
+(I0
+tp2386
+g14
+tp2387
+Rp2388
+(I1
+(I2
+tp2389
+g20
+I00
+S'\xd0\x94\xf8\xffW\x03\xd5?\xed\x9d\xa1\x1c\x87\x99\xd1?'
+p2390
+tp2391
+bsg1
+(g5
+S'\x08\x01\x00\x00'
+p2392
+tp2393
+Rp2394
+g11
+(g12
+(I0
+tp2395
+g14
+tp2396
+Rp2397
+(I1
+(I2
+tp2398
+g20
+I00
+S'#t\xe8J\x91V\xde?V6\xed\x1b\xd9\xde\xe9?'
+p2399
+tp2400
+bsg1
+(g5
+S'\t\x01\x00\x00'
+p2401
+tp2402
+Rp2403
+g11
+(g12
+(I0
+tp2404
+g14
+tp2405
+Rp2406
+(I1
+(I2
+tp2407
+g20
+I00
+S'\x17j\x9b"\x98\xa4\xd9?+\xd7\xb2\xfc^\x14\xc2?'
+p2408
+tp2409
+bsg1
+(g5
+S'\n\x01\x00\x00'
+p2410
+tp2411
+Rp2412
+g11
+(g12
+(I0
+tp2413
+g14
+tp2414
+Rp2415
+(I1
+(I2
+tp2416
+g20
+I00
+S'\xa3\xad45\x06z\xe4?\xf0\x92\xba\x88\xc5\x90\xd3?'
+p2417
+tp2418
+bsg1
+(g5
+S'\x0b\x01\x00\x00'
+p2419
+tp2420
+Rp2421
+g11
+(g12
+(I0
+tp2422
+g14
+tp2423
+Rp2424
+(I1
+(I2
+tp2425
+g20
+I00
+S'se)>\xac\\\xe5?\xd8\x8fd\xf7\xd0\xbc\xe2?'
+p2426
+tp2427
+bsg1
+(g5
+S'\x0c\x01\x00\x00'
+p2428
+tp2429
+Rp2430
+g11
+(g12
+(I0
+tp2431
+g14
+tp2432
+Rp2433
+(I1
+(I2
+tp2434
+g20
+I00
+S'\xed\xfe\xc4BT\xae\xb4?/h\xff\xf6\xd3\x14\xe2?'
+p2435
+tp2436
+bsg1
+(g5
+S'\r\x01\x00\x00'
+p2437
+tp2438
+Rp2439
+g11
+(g12
+(I0
+tp2440
+g14
+tp2441
+Rp2442
+(I1
+(I2
+tp2443
+g20
+I00
+S"\xa0\xa4!\xd2\xf9\xc8\xea?l\xb9\xb2-R'\xe1?"
+p2444
+tp2445
+bsg1
+(g5
+S'\x0e\x01\x00\x00'
+p2446
+tp2447
+Rp2448
+g11
+(g12
+(I0
+tp2449
+g14
+tp2450
+Rp2451
+(I1
+(I2
+tp2452
+g20
+I00
+S'\\X.\xa0\xe1\xd9\xeb?\xf00[\x0e\xee\xf4\xd6?'
+p2453
+tp2454
+bsg1
+(g5
+S'\x0f\x01\x00\x00'
+p2455
+tp2456
+Rp2457
+g11
+(g12
+(I0
+tp2458
+g14
+tp2459
+Rp2460
+(I1
+(I2
+tp2461
+g20
+I00
+S'n|y8\x14\xc8\xd1?\x16\xe6M\xcf\x8f\xfb\xeb?'
+p2462
+tp2463
+bsg1
+(g5
+S'\x10\x01\x00\x00'
+p2464
+tp2465
+Rp2466
+g11
+(g12
+(I0
+tp2467
+g14
+tp2468
+Rp2469
+(I1
+(I2
+tp2470
+g20
+I00
+S'\xb5\x1ddK\xd4I\xd6?2\x9a\xc9G\x13\xcc\xdd?'
+p2471
+tp2472
+bsg1
+(g5
+S'\x11\x01\x00\x00'
+p2473
+tp2474
+Rp2475
+g11
+(g12
+(I0
+tp2476
+g14
+tp2477
+Rp2478
+(I1
+(I2
+tp2479
+g20
+I00
+S'\x9b\x81z\xb4\xd5\xca\xe6?\x97\x82N\xc0%^\xd0?'
+p2480
+tp2481
+bsg1
+(g5
+S'\x12\x01\x00\x00'
+p2482
+tp2483
+Rp2484
+g11
+(g12
+(I0
+tp2485
+g14
+tp2486
+Rp2487
+(I1
+(I2
+tp2488
+g20
+I00
+S'IA\xb8\xd2\xef\x95\xe1?\x18\x86\x18\x94N\xe8\xe4?'
+p2489
+tp2490
+bsg1
+(g5
+S'\x13\x01\x00\x00'
+p2491
+tp2492
+Rp2493
+g11
+(g12
+(I0
+tp2494
+g14
+tp2495
+Rp2496
+(I1
+(I2
+tp2497
+g20
+I00
+S'v\t\xd4\xe2\xfbg\xdf?9\x1b\xe7-\xcaQ\xd5?'
+p2498
+tp2499
+bsg1
+(g5
+S'\x14\x01\x00\x00'
+p2500
+tp2501
+Rp2502
+g11
+(g12
+(I0
+tp2503
+g14
+tp2504
+Rp2505
+(I1
+(I2
+tp2506
+g20
+I00
+S'\xd0\xe2?'
+p2579
+tp2580
+bsg1
+(g5
+S'\x1d\x01\x00\x00'
+p2581
+tp2582
+Rp2583
+g11
+(g12
+(I0
+tp2584
+g14
+tp2585
+Rp2586
+(I1
+(I2
+tp2587
+g20
+I00
+S'0\xb8\xcd\x02\xb2\xa3\xe5?\xbf\x7f\xf0\xd5z\x84\xda?'
+p2588
+tp2589
+bsg1
+(g5
+S'\x1e\x01\x00\x00'
+p2590
+tp2591
+Rp2592
+g11
+(g12
+(I0
+tp2593
+g14
+tp2594
+Rp2595
+(I1
+(I2
+tp2596
+g20
+I00
+S',^\x1d\xe9\xb5C\xd2?\x90mD\xf7W\xb6\xeb?'
+p2597
+tp2598
+bsg1
+(g5
+S'\x1f\x01\x00\x00'
+p2599
+tp2600
+Rp2601
+g11
+(g12
+(I0
+tp2602
+g14
+tp2603
+Rp2604
+(I1
+(I2
+tp2605
+g20
+I00
+S'\xa6=\xf5\x00\xf1l\xd5?Y\xf7\x0f\xb4\xee\xb1\xde?'
+p2606
+tp2607
+bsg1
+(g5
+S' \x01\x00\x00'
+p2608
+tp2609
+Rp2610
+g11
+(g12
+(I0
+tp2611
+g14
+tp2612
+Rp2613
+(I1
+(I2
+tp2614
+g20
+I00
+S'\xb3\x83\x7f\xcf\xef(\xd2?[P\xb3\xbd\xd1a\xd5?'
+p2615
+tp2616
+bsg1
+(g5
+S'!\x01\x00\x00'
+p2617
+tp2618
+Rp2619
+g11
+(g12
+(I0
+tp2620
+g14
+tp2621
+Rp2622
+(I1
+(I2
+tp2623
+g20
+I00
+S'\xf3\x9c.\x9b9+\xc0?\xda\x9d\t\xbd\xc9\xb8\xe1?'
+p2624
+tp2625
+bsg1
+(g5
+S'"\x01\x00\x00'
+p2626
+tp2627
+Rp2628
+g11
+(g12
+(I0
+tp2629
+g14
+tp2630
+Rp2631
+(I1
+(I2
+tp2632
+g20
+I00
+S'i\xea\xaa\x91A\xb1\xbc?0\xb9\xa0S\x85\xf2\xcd?'
+p2633
+tp2634
+bsg1
+(g5
+S'#\x01\x00\x00'
+p2635
+tp2636
+Rp2637
+g11
+(g12
+(I0
+tp2638
+g14
+tp2639
+Rp2640
+(I1
+(I2
+tp2641
+g20
+I00
+S'm\xd7P\xc0\x01%\xd0?\xb0&\xca\xa1\x01g\xd3?'
+p2642
+tp2643
+bsg1
+(g5
+S'$\x01\x00\x00'
+p2644
+tp2645
+Rp2646
+g11
+(g12
+(I0
+tp2647
+g14
+tp2648
+Rp2649
+(I1
+(I2
+tp2650
+g20
+I00
+S'\x8c\x03\x8b\x00I\x13\xe5?\xef\xff\xc5\xe9\x18\xae\xda?'
+p2651
+tp2652
+bsg1
+(g5
+S'%\x01\x00\x00'
+p2653
+tp2654
+Rp2655
+g11
+(g12
+(I0
+tp2656
+g14
+tp2657
+Rp2658
+(I1
+(I2
+tp2659
+g20
+I00
+S'c\xc89\xd4\xbeR\xdd?\xf0=8v\xa25\xe9?'
+p2660
+tp2661
+bsg1
+(g5
+S'&\x01\x00\x00'
+p2662
+tp2663
+Rp2664
+g11
+(g12
+(I0
+tp2665
+g14
+tp2666
+Rp2667
+(I1
+(I2
+tp2668
+g20
+I00
+S':\xa6\xbaZ\xbd\x14\xcd?S\xaf\xbaA}\xed\xd8?'
+p2669
+tp2670
+bsg1
+(g5
+S"'\x01\x00\x00"
+p2671
+tp2672
+Rp2673
+g11
+(g12
+(I0
+tp2674
+g14
+tp2675
+Rp2676
+(I1
+(I2
+tp2677
+g20
+I00
+S'\x92\xc5\x96\x1dXS\xd0?7\xf2\x89:_\x0b\xeb?'
+p2678
+tp2679
+bsg1
+(g5
+S'(\x01\x00\x00'
+p2680
+tp2681
+Rp2682
+g11
+(g12
+(I0
+tp2683
+g14
+tp2684
+Rp2685
+(I1
+(I2
+tp2686
+g20
+I00
+S'\xcfuG\x89\x9b\xfe\xe0?\x01N\xe9\xef6\x83\xe6?'
+p2687
+tp2688
+bsg1
+(g5
+S')\x01\x00\x00'
+p2689
+tp2690
+Rp2691
+g11
+(g12
+(I0
+tp2692
+g14
+tp2693
+Rp2694
+(I1
+(I2
+tp2695
+g20
+I00
+S'#\xe6\xe7\t4;\xb5?\xc1y\xdb\xd9?\n\xda?'
+p2696
+tp2697
+bsg1
+(g5
+S'*\x01\x00\x00'
+p2698
+tp2699
+Rp2700
+g11
+(g12
+(I0
+tp2701
+g14
+tp2702
+Rp2703
+(I1
+(I2
+tp2704
+g20
+I00
+S'\x84w:\x80\xa7\xbc\xe7?tL\x04d\xf5\xb4\xe8?'
+p2705
+tp2706
+bsg1
+(g5
+S'+\x01\x00\x00'
+p2707
+tp2708
+Rp2709
+g11
+(g12
+(I0
+tp2710
+g14
+tp2711
+Rp2712
+(I1
+(I2
+tp2713
+g20
+I00
+S'W;\x83x\xef*\xe9?\xeci\xf1%}W\xde?'
+p2714
+tp2715
+bsg1
+(g5
+S',\x01\x00\x00'
+p2716
+tp2717
+Rp2718
+g11
+(g12
+(I0
+tp2719
+g14
+tp2720
+Rp2721
+(I1
+(I2
+tp2722
+g20
+I00
+S'\xa3\xcd\xd2\xc1\x06\x01\xd6?\x8c\x9by\xabo\x19\xd0?'
+p2723
+tp2724
+bsg1
+(g5
+S'-\x01\x00\x00'
+p2725
+tp2726
+Rp2727
+g11
+(g12
+(I0
+tp2728
+g14
+tp2729
+Rp2730
+(I1
+(I2
+tp2731
+g20
+I00
+S'\xcar\x93a\x7f\x9d\xd2?-\xc8\xb6\xde\xd3\x9c\xec?'
+p2732
+tp2733
+bsg1
+(g5
+S'.\x01\x00\x00'
+p2734
+tp2735
+Rp2736
+g11
+(g12
+(I0
+tp2737
+g14
+tp2738
+Rp2739
+(I1
+(I2
+tp2740
+g20
+I00
+S'8\x99]L\xe4\xf6\xb4?6\x08\x1d\x9a\xb8\x13\xd3?'
+p2741
+tp2742
+bsg1
+(g5
+S'/\x01\x00\x00'
+p2743
+tp2744
+Rp2745
+g11
+(g12
+(I0
+tp2746
+g14
+tp2747
+Rp2748
+(I1
+(I2
+tp2749
+g20
+I00
+S'\x054.\xefB^\xde?\xbb\xd1\x9e7\xf0\xf2\xec?'
+p2750
+tp2751
+bsg1
+(g5
+S'0\x01\x00\x00'
+p2752
+tp2753
+Rp2754
+g11
+(g12
+(I0
+tp2755
+g14
+tp2756
+Rp2757
+(I1
+(I2
+tp2758
+g20
+I00
+S"\xbf\xdf\xdbV\xad^\xc5?\x05\xd9'\x1aW\x12\xec?"
+p2759
+tp2760
+bsg1
+(g5
+S'1\x01\x00\x00'
+p2761
+tp2762
+Rp2763
+g11
+(g12
+(I0
+tp2764
+g14
+tp2765
+Rp2766
+(I1
+(I2
+tp2767
+g20
+I00
+S'\xa7\x14\r\x99\x91\xb0\xdd?\x19\xa0\xb7\xc7\xa5\xc9\xd4?'
+p2768
+tp2769
+bsg1
+(g5
+S'2\x01\x00\x00'
+p2770
+tp2771
+Rp2772
+g11
+(g12
+(I0
+tp2773
+g14
+tp2774
+Rp2775
+(I1
+(I2
+tp2776
+g20
+I00
+S'v\x8e\xc5\xb7\\C\x9f?\xc1\xf5\xd0\x1c\xc6\x18\xd5?'
+p2777
+tp2778
+bsg1
+(g5
+S'3\x01\x00\x00'
+p2779
+tp2780
+Rp2781
+g11
+(g12
+(I0
+tp2782
+g14
+tp2783
+Rp2784
+(I1
+(I2
+tp2785
+g20
+I00
+S'\x11\xfc\xd6\xbc\xd5\xf3\xe3?\x86&\xadB\x8c[\xc6?'
+p2786
+tp2787
+bsg1
+(g5
+S'4\x01\x00\x00'
+p2788
+tp2789
+Rp2790
+g11
+(g12
+(I0
+tp2791
+g14
+tp2792
+Rp2793
+(I1
+(I2
+tp2794
+g20
+I00
+S'\xcb\xd4\xa6\x12\x9e\x93\xe5?\xbc\xcb\xc8@?\x83\xdc?'
+p2795
+tp2796
+bsg1
+(g5
+S'5\x01\x00\x00'
+p2797
+tp2798
+Rp2799
+g11
+(g12
+(I0
+tp2800
+g14
+tp2801
+Rp2802
+(I1
+(I2
+tp2803
+g20
+I00
+S'\x05\xb3q\x06\x11\xe6\xd0?\x9d\x8bA\xe8J\x91\xb9?'
+p2804
+tp2805
+bsg1
+(g5
+S'6\x01\x00\x00'
+p2806
+tp2807
+Rp2808
+g11
+(g12
+(I0
+tp2809
+g14
+tp2810
+Rp2811
+(I1
+(I2
+tp2812
+g20
+I00
+S'\x0e\xa3\x8d\x133\xe9\xdb?\xc1\xe3\xdf\xe1/\xcb\xc3?'
+p2813
+tp2814
+bsg1
+(g5
+S'7\x01\x00\x00'
+p2815
+tp2816
+Rp2817
+g11
+(g12
+(I0
+tp2818
+g14
+tp2819
+Rp2820
+(I1
+(I2
+tp2821
+g20
+I00
+S'\xb30/_\xca_\xb0?\xb0\x94\xa7\xfa\x15Z\xd3?'
+p2822
+tp2823
+bsg1
+(g5
+S'8\x01\x00\x00'
+p2824
+tp2825
+Rp2826
+g11
+(g12
+(I0
+tp2827
+g14
+tp2828
+Rp2829
+(I1
+(I2
+tp2830
+g20
+I00
+S'<\x92,\x84W\x02\xd4?qy\xc1\xeb\xc3{\xe1?'
+p2831
+tp2832
+bsg1
+(g5
+S'9\x01\x00\x00'
+p2833
+tp2834
+Rp2835
+g11
+(g12
+(I0
+tp2836
+g14
+tp2837
+Rp2838
+(I1
+(I2
+tp2839
+g20
+I00
+S'\xd8c\xff\xd2\x19@\xe6?\xa4\x96\x99/\xad\x1e\xb9?'
+p2840
+tp2841
+bsg1
+(g5
+S':\x01\x00\x00'
+p2842
+tp2843
+Rp2844
+g11
+(g12
+(I0
+tp2845
+g14
+tp2846
+Rp2847
+(I1
+(I2
+tp2848
+g20
+I00
+S'\xbd\x11\xf3\x93g\x0b\xdc?:K\xb8\xb2i)\xeb?'
+p2849
+tp2850
+bsg1
+(g5
+S';\x01\x00\x00'
+p2851
+tp2852
+Rp2853
+g11
+(g12
+(I0
+tp2854
+g14
+tp2855
+Rp2856
+(I1
+(I2
+tp2857
+g20
+I00
+S'*\x94\xdd\xbc\xda\xaf\xe2?\x9eK\xca\xb61V\xea?'
+p2858
+tp2859
+bsg1
+(g5
+S'<\x01\x00\x00'
+p2860
+tp2861
+Rp2862
+g11
+(g12
+(I0
+tp2863
+g14
+tp2864
+Rp2865
+(I1
+(I2
+tp2866
+g20
+I00
+S'y*\xac5\xff\xa6\xe6?\x8b6p\xf3}\x0f\xd1?'
+p2867
+tp2868
+bsg1
+(g5
+S'=\x01\x00\x00'
+p2869
+tp2870
+Rp2871
+g11
+(g12
+(I0
+tp2872
+g14
+tp2873
+Rp2874
+(I1
+(I2
+tp2875
+g20
+I00
+S'N\xf0,\x1b\x07\xb9\xee?c\xbfJo\xeb\x9d\xdb?'
+p2876
+tp2877
+bsg1
+(g5
+S'>\x01\x00\x00'
+p2878
+tp2879
+Rp2880
+g11
+(g12
+(I0
+tp2881
+g14
+tp2882
+Rp2883
+(I1
+(I2
+tp2884
+g20
+I00
+S'\xa1\\\xd4"\xcc\xb0\xde?\xb1\xd3B\xe9\xba\xad\xc2?'
+p2885
+tp2886
+bsg1
+(g5
+S'?\x01\x00\x00'
+p2887
+tp2888
+Rp2889
+g11
+(g12
+(I0
+tp2890
+g14
+tp2891
+Rp2892
+(I1
+(I2
+tp2893
+g20
+I00
+S'a\xa7G\xb0\x97z\xe0?j\t\xebe\x1e\x16\xcb?'
+p2894
+tp2895
+bsg1
+(g5
+S'@\x01\x00\x00'
+p2896
+tp2897
+Rp2898
+g11
+(g12
+(I0
+tp2899
+g14
+tp2900
+Rp2901
+(I1
+(I2
+tp2902
+g20
+I00
+S'\x00`u\xea\xbf\xa2\xd6?"\xd8H7v\x81\xeb?'
+p2903
+tp2904
+bsg1
+(g5
+S'A\x01\x00\x00'
+p2905
+tp2906
+Rp2907
+g11
+(g12
+(I0
+tp2908
+g14
+tp2909
+Rp2910
+(I1
+(I2
+tp2911
+g20
+I00
+S'\xdf{\xfb\xca\xf5r\xe1?\x06\xf3U\xcc#r\xeb?'
+p2912
+tp2913
+bsg1
+(g5
+S'B\x01\x00\x00'
+p2914
+tp2915
+Rp2916
+g11
+(g12
+(I0
+tp2917
+g14
+tp2918
+Rp2919
+(I1
+(I2
+tp2920
+g20
+I00
+S'\xbf\xb3\xfd\xb8"\xb0\xde?\xe2>V_OD\xc5?'
+p2921
+tp2922
+bsg1
+(g5
+S'C\x01\x00\x00'
+p2923
+tp2924
+Rp2925
+g11
+(g12
+(I0
+tp2926
+g14
+tp2927
+Rp2928
+(I1
+(I2
+tp2929
+g20
+I00
+S'\xae\xf7ZZ?*\xe4?n%4\xb1\xf5\x8c\xd3?'
+p2930
+tp2931
+bsg1
+(g5
+S'D\x01\x00\x00'
+p2932
+tp2933
+Rp2934
+g11
+(g12
+(I0
+tp2935
+g14
+tp2936
+Rp2937
+(I1
+(I2
+tp2938
+g20
+I00
+S'l\xb6\x0e\xe6\xe8\x16\xc1?2\xb2\x06\xd47u\xe3?'
+p2939
+tp2940
+bsg1
+(g5
+S'E\x01\x00\x00'
+p2941
+tp2942
+Rp2943
+g11
+(g12
+(I0
+tp2944
+g14
+tp2945
+Rp2946
+(I1
+(I2
+tp2947
+g20
+I00
+S'\n\xd0\xe0\xed\xa0\xc0\xd2??R\x9cM\xa5\xe3\xd3?'
+p2948
+tp2949
+bsg1
+(g5
+S'F\x01\x00\x00'
+p2950
+tp2951
+Rp2952
+g11
+(g12
+(I0
+tp2953
+g14
+tp2954
+Rp2955
+(I1
+(I2
+tp2956
+g20
+I00
+S'A\xa7\x15h\x18\xd5\xc8?g\xdesg\x0c\xcf\xe9?'
+p2957
+tp2958
+bsg1
+(g5
+S'G\x01\x00\x00'
+p2959
+tp2960
+Rp2961
+g11
+(g12
+(I0
+tp2962
+g14
+tp2963
+Rp2964
+(I1
+(I2
+tp2965
+g20
+I00
+S'\x97\x1b\xebZ\xf6\x0b\xe0?6\x84=G\xd4\xe5\xde?'
+p2966
+tp2967
+bsg1
+(g5
+S'H\x01\x00\x00'
+p2968
+tp2969
+Rp2970
+g11
+(g12
+(I0
+tp2971
+g14
+tp2972
+Rp2973
+(I1
+(I2
+tp2974
+g20
+I00
+S'\xc51 8\xde\xbb\xe4?\x1e\x99\x97=+\xd9\xdb?'
+p2975
+tp2976
+bsg1
+(g5
+S'I\x01\x00\x00'
+p2977
+tp2978
+Rp2979
+g11
+(g12
+(I0
+tp2980
+g14
+tp2981
+Rp2982
+(I1
+(I2
+tp2983
+g20
+I00
+S'h\x7f\x8b\xd68\xd5\xdd?'
+p3200
+tp3201
+bsg1
+(g5
+S'b\x01\x00\x00'
+p3202
+tp3203
+Rp3204
+g11
+(g12
+(I0
+tp3205
+g14
+tp3206
+Rp3207
+(I1
+(I2
+tp3208
+g20
+I00
+S'\x7f\x05\xe7\xb1\xc1\xae\xdf?\xbc\xc9\x11\x160\xe9\xe4?\xdaL\x8d*\x0e\xa1\xc9?'
+p3353
+tp3354
+bsg1
+(g5
+S's\x01\x00\x00'
+p3355
+tp3356
+Rp3357
+g11
+(g12
+(I0
+tp3358
+g14
+tp3359
+Rp3360
+(I1
+(I2
+tp3361
+g20
+I00
+S'\x866\x17s\x96\x19\xd1?\x7f\xaav77\xed\xeb?'
+p3362
+tp3363
+bsg1
+(g5
+S't\x01\x00\x00'
+p3364
+tp3365
+Rp3366
+g11
+(g12
+(I0
+tp3367
+g14
+tp3368
+Rp3369
+(I1
+(I2
+tp3370
+g20
+I00
+S'\xb3\r\xa5\xec\xc6\x9d\xe7?\xaf\x0f\x05\xa5\x02\x01\xd7?'
+p3371
+tp3372
+bsg1
+(g5
+S'u\x01\x00\x00'
+p3373
+tp3374
+Rp3375
+g11
+(g12
+(I0
+tp3376
+g14
+tp3377
+Rp3378
+(I1
+(I2
+tp3379
+g20
+I00
+S'S$\xd4\xa3^\xf9\xc0?\x8bJ\xe2\t\x9f\xa1\xd5?'
+p3380
+tp3381
+bsg1
+(g5
+S'v\x01\x00\x00'
+p3382
+tp3383
+Rp3384
+g11
+(g12
+(I0
+tp3385
+g14
+tp3386
+Rp3387
+(I1
+(I2
+tp3388
+g20
+I00
+S'\x85\xd9\xcf[(\x83\xd6?\x88+\xf4\xa0\x92{\xb1?'
+p3389
+tp3390
+bsg1
+(g5
+S'w\x01\x00\x00'
+p3391
+tp3392
+Rp3393
+g11
+(g12
+(I0
+tp3394
+g14
+tp3395
+Rp3396
+(I1
+(I2
+tp3397
+g20
+I00
+S'\x1c\xa9\xacx{\x01\xe6?\xa9\xacIq\x1f\xb9\xbc?'
+p3398
+tp3399
+bsg1
+(g5
+S'x\x01\x00\x00'
+p3400
+tp3401
+Rp3402
+g11
+(g12
+(I0
+tp3403
+g14
+tp3404
+Rp3405
+(I1
+(I2
+tp3406
+g20
+I00
+S'q@\xcf\xb2\x1b\xe0\xe4?\xe8\x03-\x00\xddN\xc3?'
+p3407
+tp3408
+bsg1
+(g5
+S'y\x01\x00\x00'
+p3409
+tp3410
+Rp3411
+g11
+(g12
+(I0
+tp3412
+g14
+tp3413
+Rp3414
+(I1
+(I2
+tp3415
+g20
+I00
+S'\xae\x9c{R\xb14\xe1?%\x01W\x8aM+\xea?'
+p3416
+tp3417
+bsg1
+(g5
+S'z\x01\x00\x00'
+p3418
+tp3419
+Rp3420
+g11
+(g12
+(I0
+tp3421
+g14
+tp3422
+Rp3423
+(I1
+(I2
+tp3424
+g20
+I00
+S'\xa1\xbcy\x071\xd2\xc1?#\x8dr\x8c\xa4\x18\xe7?'
+p3425
+tp3426
+bsg1
+(g5
+S'{\x01\x00\x00'
+p3427
+tp3428
+Rp3429
+g11
+(g12
+(I0
+tp3430
+g14
+tp3431
+Rp3432
+(I1
+(I2
+tp3433
+g20
+I00
+S'\x80\x06a\xf93\xf6\xd2?%d\x9c}j/\xec?'
+p3434
+tp3435
+bsg1
+(g5
+S'|\x01\x00\x00'
+p3436
+tp3437
+Rp3438
+g11
+(g12
+(I0
+tp3439
+g14
+tp3440
+Rp3441
+(I1
+(I2
+tp3442
+g20
+I00
+S'\xd6Y\xf8g.[\xde?\xaa\xe6?\x97l\xd3\xcdS\x96\xc7?'
+p3461
+tp3462
+bsg1
+(g5
+S'\x7f\x01\x00\x00'
+p3463
+tp3464
+Rp3465
+g11
+(g12
+(I0
+tp3466
+g14
+tp3467
+Rp3468
+(I1
+(I2
+tp3469
+g20
+I00
+S'9e\xe0\xf7\xf1\xc2\xea?\xe0\xfc\xd3Q#\xff\xe1?'
+p3470
+tp3471
+bsg1
+(g5
+S'\x80\x01\x00\x00'
+p3472
+tp3473
+Rp3474
+g11
+(g12
+(I0
+tp3475
+g14
+tp3476
+Rp3477
+(I1
+(I2
+tp3478
+g20
+I00
+S'\xbaf]3\xb2\xd4\xe9?x\x1c\x02l\xa1\xf5\xe1?'
+p3479
+tp3480
+bsg1
+(g5
+S'\x81\x01\x00\x00'
+p3481
+tp3482
+Rp3483
+g11
+(g12
+(I0
+tp3484
+g14
+tp3485
+Rp3486
+(I1
+(I2
+tp3487
+g20
+I00
+S'6\x01\x9f\xe4\xd5=\xc5?\x91!3V\xab\xd2\xe8?'
+p3488
+tp3489
+bsg1
+(g5
+S'\x82\x01\x00\x00'
+p3490
+tp3491
+Rp3492
+g11
+(g12
+(I0
+tp3493
+g14
+tp3494
+Rp3495
+(I1
+(I2
+tp3496
+g20
+I00
+S'\xb2\x1d\x1c\x10:\xd6\xe0?1\xd5\xfa[\xc9e\xc1?'
+p3497
+tp3498
+bsg1
+(g5
+S'\x83\x01\x00\x00'
+p3499
+tp3500
+Rp3501
+g11
+(g12
+(I0
+tp3502
+g14
+tp3503
+Rp3504
+(I1
+(I2
+tp3505
+g20
+I00
+S"1_z-\x88'\xe3?Z\xc5\xb7jM2\xe2?"
+p3506
+tp3507
+bsg1
+(g5
+S'\x84\x01\x00\x00'
+p3508
+tp3509
+Rp3510
+g11
+(g12
+(I0
+tp3511
+g14
+tp3512
+Rp3513
+(I1
+(I2
+tp3514
+g20
+I00
+S'\xd8\x95|\xb1M\xb6\xe3?\xc7\x88|\x10\x8c\x88\xc6?'
+p3515
+tp3516
+bsg1
+(g5
+S'\x85\x01\x00\x00'
+p3517
+tp3518
+Rp3519
+g11
+(g12
+(I0
+tp3520
+g14
+tp3521
+Rp3522
+(I1
+(I2
+tp3523
+g20
+I00
+S'\x00\x00\x00\x00\x00\x00\xf0?\x8ex\t\x0e\xeeM\xdb?'
+p3524
+tp3525
+bsg1
+(g5
+S'\x86\x01\x00\x00'
+p3526
+tp3527
+Rp3528
+g11
+(g12
+(I0
+tp3529
+g14
+tp3530
+Rp3531
+(I1
+(I2
+tp3532
+g20
+I00
+S'Ui\x15\x1f\r\xec\xe2?X\x0f\xe6,\x14F\xec?'
+p3533
+tp3534
+bsg1
+(g5
+S'\x87\x01\x00\x00'
+p3535
+tp3536
+Rp3537
+g11
+(g12
+(I0
+tp3538
+g14
+tp3539
+Rp3540
+(I1
+(I2
+tp3541
+g20
+I00
+S'#\xf24\xe1p5\xd0?P\xf5U^;e\xed?'
+p3542
+tp3543
+bsg1
+(g5
+S'\x88\x01\x00\x00'
+p3544
+tp3545
+Rp3546
+g11
+(g12
+(I0
+tp3547
+g14
+tp3548
+Rp3549
+(I1
+(I2
+tp3550
+g20
+I00
+S'Rw\x80l\x92\x8f\xd5?H\xd8\xaf\x19>\x16\xd3?'
+p3551
+tp3552
+bsg1
+(g5
+S'\x89\x01\x00\x00'
+p3553
+tp3554
+Rp3555
+g11
+(g12
+(I0
+tp3556
+g14
+tp3557
+Rp3558
+(I1
+(I2
+tp3559
+g20
+I00
+S'\xe51\xb9^\xcb\x0f\xed?El\xeatK\xdf\xdd?'
+p3560
+tp3561
+bsg1
+(g5
+S'\x8a\x01\x00\x00'
+p3562
+tp3563
+Rp3564
+g11
+(g12
+(I0
+tp3565
+g14
+tp3566
+Rp3567
+(I1
+(I2
+tp3568
+g20
+I00
+S';\x88\xefX@\x12\xe8?\xc3i\x17^n\x11\xe7?'
+p3569
+tp3570
+bsg1
+(g5
+S'\x8b\x01\x00\x00'
+p3571
+tp3572
+Rp3573
+g11
+(g12
+(I0
+tp3574
+g14
+tp3575
+Rp3576
+(I1
+(I2
+tp3577
+g20
+I00
+S'eQ\x8f=\xc2.\xda?\xa1\xc2\x04m\xd1\x02\xc5?'
+p3578
+tp3579
+bsg1
+(g5
+S'\x8c\x01\x00\x00'
+p3580
+tp3581
+Rp3582
+g11
+(g12
+(I0
+tp3583
+g14
+tp3584
+Rp3585
+(I1
+(I2
+tp3586
+g20
+I00
+S'\xf6\x87\xa5\x19o\x81\xd1?X\xcb\xcd\xaf\xc4\xfb\xbe?'
+p3587
+tp3588
+bsg1
+(g5
+S'\x8d\x01\x00\x00'
+p3589
+tp3590
+Rp3591
+g11
+(g12
+(I0
+tp3592
+g14
+tp3593
+Rp3594
+(I1
+(I2
+tp3595
+g20
+I00
+S'\x02\xe4\x11Z\xb9\xba\xdc?\xa8\xedP\x90\xcf\xcf\xcc?'
+p3596
+tp3597
+bsg1
+(g5
+S'\x8e\x01\x00\x00'
+p3598
+tp3599
+Rp3600
+g11
+(g12
+(I0
+tp3601
+g14
+tp3602
+Rp3603
+(I1
+(I2
+tp3604
+g20
+I00
+S'\xe0\x07\x97\xc9Pe\xb9?\xd3,\x87x*\x16\xd9?'
+p3605
+tp3606
+bsg1
+(g5
+S'\x8f\x01\x00\x00'
+p3607
+tp3608
+Rp3609
+g11
+(g12
+(I0
+tp3610
+g14
+tp3611
+Rp3612
+(I1
+(I2
+tp3613
+g20
+I00
+S'\x99\xcb\xfb\xb4\xc62\xe9?K|\xdf8\r\x88\xe6?'
+p3614
+tp3615
+bsg1
+(g5
+S'\x90\x01\x00\x00'
+p3616
+tp3617
+Rp3618
+g11
+(g12
+(I0
+tp3619
+g14
+tp3620
+Rp3621
+(I1
+(I2
+tp3622
+g20
+I00
+S'N\xc20\x98\x8b\x9e\xd3?\\\x167\r+\xf8\xe3?'
+p3623
+tp3624
+bsg1
+(g5
+S'\x91\x01\x00\x00'
+p3625
+tp3626
+Rp3627
+g11
+(g12
+(I0
+tp3628
+g14
+tp3629
+Rp3630
+(I1
+(I2
+tp3631
+g20
+I00
+S'\xcd\xaa\xb6\xa6[\xe2\xc0?=B_\xefT\x8a\xe2?'
+p3632
+tp3633
+bsg1
+(g5
+S'\x92\x01\x00\x00'
+p3634
+tp3635
+Rp3636
+g11
+(g12
+(I0
+tp3637
+g14
+tp3638
+Rp3639
+(I1
+(I2
+tp3640
+g20
+I00
+S'A\x9c\xa3\xa7.\xfb\xd0?\x9f\xb6\x19\xd6\x82V\xeb?'
+p3641
+tp3642
+bsg1
+(g5
+S'\x93\x01\x00\x00'
+p3643
+tp3644
+Rp3645
+g11
+(g12
+(I0
+tp3646
+g14
+tp3647
+Rp3648
+(I1
+(I2
+tp3649
+g20
+I00
+S'<\x82\xff\x8f\xd5\xdc\xec?S~\x12"=\x87\xe0?'
+p3650
+tp3651
+bsg1
+(g5
+S'\x94\x01\x00\x00'
+p3652
+tp3653
+Rp3654
+g11
+(g12
+(I0
+tp3655
+g14
+tp3656
+Rp3657
+(I1
+(I2
+tp3658
+g20
+I00
+S'w\xe1\xf38\x1f\xd5\xd5?\xfc\x88\x95\xf26l\xe8?'
+p3659
+tp3660
+bsg1
+(g5
+S'\x95\x01\x00\x00'
+p3661
+tp3662
+Rp3663
+g11
+(g12
+(I0
+tp3664
+g14
+tp3665
+Rp3666
+(I1
+(I2
+tp3667
+g20
+I00
+S'\x1d\xb5Ta;\xd2\xe9?IGM\xa0\xfa\xf2\xe0?'
+p3668
+tp3669
+bsg1
+(g5
+S'\x96\x01\x00\x00'
+p3670
+tp3671
+Rp3672
+g11
+(g12
+(I0
+tp3673
+g14
+tp3674
+Rp3675
+(I1
+(I2
+tp3676
+g20
+I00
+S'jn.\xf7\x17s\xe7?Z\xea<\xfb\x1a\xae\xde?'
+p3677
+tp3678
+bsg1
+(g5
+S'\x97\x01\x00\x00'
+p3679
+tp3680
+Rp3681
+g11
+(g12
+(I0
+tp3682
+g14
+tp3683
+Rp3684
+(I1
+(I2
+tp3685
+g20
+I00
+S'\x95L\xee\x85f\x95\xe0?\xdd\x08\x9d/WL\xeb?'
+p3686
+tp3687
+bsg1
+(g5
+S'\x98\x01\x00\x00'
+p3688
+tp3689
+Rp3690
+g11
+(g12
+(I0
+tp3691
+g14
+tp3692
+Rp3693
+(I1
+(I2
+tp3694
+g20
+I00
+S'\x84O\x92\x1d\xbc\xe2\xda?P\x02tx\xa4\xc9\xc2?'
+p3695
+tp3696
+bsg1
+(g5
+S'\x99\x01\x00\x00'
+p3697
+tp3698
+Rp3699
+g11
+(g12
+(I0
+tp3700
+g14
+tp3701
+Rp3702
+(I1
+(I2
+tp3703
+g20
+I00
+S"\xd2\xf8 WK/\xe8?'\\\xbb\x88X\xb6\xd6?"
+p3704
+tp3705
+bsg1
+(g5
+S'\x9a\x01\x00\x00'
+p3706
+tp3707
+Rp3708
+g11
+(g12
+(I0
+tp3709
+g14
+tp3710
+Rp3711
+(I1
+(I2
+tp3712
+g20
+I00
+S'm6\xae\xcc\xf1\xb2\xd5?\x00\x00\x00\x00\x00\x00\x00\x00'
+p3713
+tp3714
+bsg1
+(g5
+S'\x9b\x01\x00\x00'
+p3715
+tp3716
+Rp3717
+g11
+(g12
+(I0
+tp3718
+g14
+tp3719
+Rp3720
+(I1
+(I2
+tp3721
+g20
+I00
+S'M\x18{\xfc\n\xa3\xc3?\xcal\xe7\x1b\xfe\xeb\xe6?'
+p3722
+tp3723
+bsg1
+(g5
+S'\x9c\x01\x00\x00'
+p3724
+tp3725
+Rp3726
+g11
+(g12
+(I0
+tp3727
+g14
+tp3728
+Rp3729
+(I1
+(I2
+tp3730
+g20
+I00
+S'\xe9\xc4\xad\xae\x1a\x8f\xe3?\xd5`T$t\xb3\xe9?'
+p3731
+tp3732
+bsg1
+(g5
+S'\x9d\x01\x00\x00'
+p3733
+tp3734
+Rp3735
+g11
+(g12
+(I0
+tp3736
+g14
+tp3737
+Rp3738
+(I1
+(I2
+tp3739
+g20
+I00
+S'\x1bY\xb1\xee\x88r\xb8?\xb3\xb3\xa1D\xdf\xf6\xe1?'
+p3740
+tp3741
+bsg1
+(g5
+S'\x9e\x01\x00\x00'
+p3742
+tp3743
+Rp3744
+g11
+(g12
+(I0
+tp3745
+g14
+tp3746
+Rp3747
+(I1
+(I2
+tp3748
+g20
+I00
+S'%WN$\x95C\xd4?\xf6\xe90vI\xd5\xc5?'
+p3749
+tp3750
+bsg1
+(g5
+S'\x9f\x01\x00\x00'
+p3751
+tp3752
+Rp3753
+g11
+(g12
+(I0
+tp3754
+g14
+tp3755
+Rp3756
+(I1
+(I2
+tp3757
+g20
+I00
+S'\xee\x11\xacVb<\xde?=\xfe|\n\x9e]\xea?'
+p3758
+tp3759
+bsg1
+(g5
+S'\xa0\x01\x00\x00'
+p3760
+tp3761
+Rp3762
+g11
+(g12
+(I0
+tp3763
+g14
+tp3764
+Rp3765
+(I1
+(I2
+tp3766
+g20
+I00
+S'\xfb1@{\x11\xe3\x8a?rC\xf5|\xf5\xed\xc9?'
+p3767
+tp3768
+bsg1
+(g5
+S'\xa1\x01\x00\x00'
+p3769
+tp3770
+Rp3771
+g11
+(g12
+(I0
+tp3772
+g14
+tp3773
+Rp3774
+(I1
+(I2
+tp3775
+g20
+I00
+S'W\x90\x18\xf4\xbcN\xe9?\x85R&!\xe8_\xd0?'
+p3776
+tp3777
+bsg1
+(g5
+S'\xa2\x01\x00\x00'
+p3778
+tp3779
+Rp3780
+g11
+(g12
+(I0
+tp3781
+g14
+tp3782
+Rp3783
+(I1
+(I2
+tp3784
+g20
+I00
+S'e\xb2s|P}\xd7?\x80ie\t\x98\xff\xec?'
+p3785
+tp3786
+bsg1
+(g5
+S'\xa3\x01\x00\x00'
+p3787
+tp3788
+Rp3789
+g11
+(g12
+(I0
+tp3790
+g14
+tp3791
+Rp3792
+(I1
+(I2
+tp3793
+g20
+I00
+S'\xf8\x03W\x9eU\xd4\xd1?\x9fz\xb4]5\x12\xc8?'
+p3794
+tp3795
+bsg1
+(g5
+S'\xa4\x01\x00\x00'
+p3796
+tp3797
+Rp3798
+g11
+(g12
+(I0
+tp3799
+g14
+tp3800
+Rp3801
+(I1
+(I2
+tp3802
+g20
+I00
+S'\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xf8\xdb\x83\xe0\xed\xc8?'
+p3803
+tp3804
+bsg1
+(g5
+S'\xa5\x01\x00\x00'
+p3805
+tp3806
+Rp3807
+g11
+(g12
+(I0
+tp3808
+g14
+tp3809
+Rp3810
+(I1
+(I2
+tp3811
+g20
+I00
+S'_^\xdcC\xae\xb0\xd6?\x1cK\x0b\x83\xffT\xeb?'
+p3812
+tp3813
+bsg1
+(g5
+S'\xa6\x01\x00\x00'
+p3814
+tp3815
+Rp3816
+g11
+(g12
+(I0
+tp3817
+g14
+tp3818
+Rp3819
+(I1
+(I2
+tp3820
+g20
+I00
+S']\xca\x0f\x85Z\x88\xa1?\x87\x1d\x93\xf7\xe1\x87\xcb?'
+p3821
+tp3822
+bsg1
+(g5
+S'\xa7\x01\x00\x00'
+p3823
+tp3824
+Rp3825
+g11
+(g12
+(I0
+tp3826
+g14
+tp3827
+Rp3828
+(I1
+(I2
+tp3829
+g20
+I00
+S'\xa7:\x98\x93\xe0P\xe5?\xa3%"\xa1(\xc4\xc8?'
+p3830
+tp3831
+bsg1
+(g5
+S'\xa8\x01\x00\x00'
+p3832
+tp3833
+Rp3834
+g11
+(g12
+(I0
+tp3835
+g14
+tp3836
+Rp3837
+(I1
+(I2
+tp3838
+g20
+I00
+S'\x0f\xd2\x1d\xa1\xa3\x8c\xe3?\xc8\xb1\\\x84\xf6t\xd3?'
+p3839
+tp3840
+bsg1
+(g5
+S'\xa9\x01\x00\x00'
+p3841
+tp3842
+Rp3843
+g11
+(g12
+(I0
+tp3844
+g14
+tp3845
+Rp3846
+(I1
+(I2
+tp3847
+g20
+I00
+S'\xfa\xad\x9c\x91`F\xe5?\xdf\xb8*\n 0\xca?'
+p3848
+tp3849
+bsg1
+(g5
+S'\xaa\x01\x00\x00'
+p3850
+tp3851
+Rp3852
+g11
+(g12
+(I0
+tp3853
+g14
+tp3854
+Rp3855
+(I1
+(I2
+tp3856
+g20
+I00
+S'{\xa1Z\xa5A\x10\xdf?\x18\x81\x1b\xd2\xbe\x07\xe9?'
+p3857
+tp3858
+bsg1
+(g5
+S'\xab\x01\x00\x00'
+p3859
+tp3860
+Rp3861
+g11
+(g12
+(I0
+tp3862
+g14
+tp3863
+Rp3864
+(I1
+(I2
+tp3865
+g20
+I00
+S'D\xfd\xb3\xf3\x9f\x89\xd6?\xa6\x14\xb6\xf8\xe5;\xe9?'
+p3866
+tp3867
+bsg1
+(g5
+S'\xac\x01\x00\x00'
+p3868
+tp3869
+Rp3870
+g11
+(g12
+(I0
+tp3871
+g14
+tp3872
+Rp3873
+(I1
+(I2
+tp3874
+g20
+I00
+S'\xc3y\xf6\x81\xd1*\xd1?\x87\x03!K\xb3\xee\xea?'
+p3875
+tp3876
+bsg1
+(g5
+S'\xad\x01\x00\x00'
+p3877
+tp3878
+Rp3879
+g11
+(g12
+(I0
+tp3880
+g14
+tp3881
+Rp3882
+(I1
+(I2
+tp3883
+g20
+I00
+S'\x1ej\x8e-\x0eI\xd0?\x00\xafZ\xb3\x9b\x8f\xdc?'
+p3884
+tp3885
+bsg1
+(g5
+S'\xae\x01\x00\x00'
+p3886
+tp3887
+Rp3888
+g11
+(g12
+(I0
+tp3889
+g14
+tp3890
+Rp3891
+(I1
+(I2
+tp3892
+g20
+I00
+S'\xa4<\x1b\xffCP\xe8?\xd4\x11!89\xfd\xdf?'
+p3893
+tp3894
+bsg1
+(g5
+S'\xaf\x01\x00\x00'
+p3895
+tp3896
+Rp3897
+g11
+(g12
+(I0
+tp3898
+g14
+tp3899
+Rp3900
+(I1
+(I2
+tp3901
+g20
+I00
+S'6W^\xd5 b\xec?\xc18\x02\xa4\x90\x8d\xd6?'
+p3902
+tp3903
+bsg1
+(g5
+S'\xb0\x01\x00\x00'
+p3904
+tp3905
+Rp3906
+g11
+(g12
+(I0
+tp3907
+g14
+tp3908
+Rp3909
+(I1
+(I2
+tp3910
+g20
+I00
+S'H\xd4\xa0glT\xc0?T\x9dO"\xdf\\\xe0?'
+p3911
+tp3912
+bsg1
+(g5
+S'\xb1\x01\x00\x00'
+p3913
+tp3914
+Rp3915
+g11
+(g12
+(I0
+tp3916
+g14
+tp3917
+Rp3918
+(I1
+(I2
+tp3919
+g20
+I00
+S'_\xd0\xd0\xa8\xe5\x9e\xe6?\xb7\x0b\x99\x00t\xc4\xc5?'
+p3920
+tp3921
+bsg1
+(g5
+S'\xb2\x01\x00\x00'
+p3922
+tp3923
+Rp3924
+g11
+(g12
+(I0
+tp3925
+g14
+tp3926
+Rp3927
+(I1
+(I2
+tp3928
+g20
+I00
+S'\xf9\x86[`\x81\x1c\xbd?\xfbR/\xda\xa7\xd2\xdc?'
+p3929
+tp3930
+bsg1
+(g5
+S'\xb3\x01\x00\x00'
+p3931
+tp3932
+Rp3933
+g11
+(g12
+(I0
+tp3934
+g14
+tp3935
+Rp3936
+(I1
+(I2
+tp3937
+g20
+I00
+S'\x11\xdaDi\xb8t\xc6?\xf5\r\xb3]%,\xea?'
+p3938
+tp3939
+bsg1
+(g5
+S'\xb4\x01\x00\x00'
+p3940
+tp3941
+Rp3942
+g11
+(g12
+(I0
+tp3943
+g14
+tp3944
+Rp3945
+(I1
+(I2
+tp3946
+g20
+I00
+S'\xc3 at 8\xdf\x13\x9f\xd3?:\xb5\xad8\xb4u\xec?'
+p3947
+tp3948
+bsg1
+(g5
+S'\xb5\x01\x00\x00'
+p3949
+tp3950
+Rp3951
+g11
+(g12
+(I0
+tp3952
+g14
+tp3953
+Rp3954
+(I1
+(I2
+tp3955
+g20
+I00
+S'\x8a\x94\x84\xab\x94\x08\xe5?\x11"\x1f\x03\x03u\xe3?'
+p3956
+tp3957
+bsg1
+(g5
+S'\xb6\x01\x00\x00'
+p3958
+tp3959
+Rp3960
+g11
+(g12
+(I0
+tp3961
+g14
+tp3962
+Rp3963
+(I1
+(I2
+tp3964
+g20
+I00
+S'\xb3\x18\xb7s\x95\x08\xde?>\x7fv\x03\xd0\xa0\xe9?'
+p3965
+tp3966
+bsg1
+(g5
+S'\xb7\x01\x00\x00'
+p3967
+tp3968
+Rp3969
+g11
+(g12
+(I0
+tp3970
+g14
+tp3971
+Rp3972
+(I1
+(I2
+tp3973
+g20
+I00
+S'.t\x80\\\xf0)\xd0?\x84\x01\\j\xe0!\xe7?'
+p3974
+tp3975
+bsg1
+(g5
+S'\xb8\x01\x00\x00'
+p3976
+tp3977
+Rp3978
+g11
+(g12
+(I0
+tp3979
+g14
+tp3980
+Rp3981
+(I1
+(I2
+tp3982
+g20
+I00
+S'&z\xa2\xbb\xb4V\xe4?\x8f\xbeG\xf5y\xf6\xdb?'
+p3983
+tp3984
+bsg1
+(g5
+S'\xb9\x01\x00\x00'
+p3985
+tp3986
+Rp3987
+g11
+(g12
+(I0
+tp3988
+g14
+tp3989
+Rp3990
+(I1
+(I2
+tp3991
+g20
+I00
+S'\xf02\xa0\\#\xeb\xe2?\xf31r]\x067\xe0?'
+p3992
+tp3993
+bsg1
+(g5
+S'\xba\x01\x00\x00'
+p3994
+tp3995
+Rp3996
+g11
+(g12
+(I0
+tp3997
+g14
+tp3998
+Rp3999
+(I1
+(I2
+tp4000
+g20
+I00
+S'\xf4\x9fayO\xc4\xec?R\xee\x07\xc3\x8c\xf7\xe1?'
+p4001
+tp4002
+bsg1
+(g5
+S'\xbb\x01\x00\x00'
+p4003
+tp4004
+Rp4005
+g11
+(g12
+(I0
+tp4006
+g14
+tp4007
+Rp4008
+(I1
+(I2
+tp4009
+g20
+I00
+S'\xcd\xbb\xa2\xb1\xa1x\xd6?vF\xa7\x1c\x19\xdb\xdf?'
+p4010
+tp4011
+bsg1
+(g5
+S'\xbc\x01\x00\x00'
+p4012
+tp4013
+Rp4014
+g11
+(g12
+(I0
+tp4015
+g14
+tp4016
+Rp4017
+(I1
+(I2
+tp4018
+g20
+I00
+S"I1\x00k\x1d\xdb\xe5?\xa8'>\n\xbfB\xdf?"
+p4019
+tp4020
+bsg1
+(g5
+S'\xbd\x01\x00\x00'
+p4021
+tp4022
+Rp4023
+g11
+(g12
+(I0
+tp4024
+g14
+tp4025
+Rp4026
+(I1
+(I2
+tp4027
+g20
+I00
+S'W\x7f\xd0{\x82\xf1\xd1?\xf2^8\x0e4@\xeb?'
+p4028
+tp4029
+bsg1
+(g5
+S'\xbe\x01\x00\x00'
+p4030
+tp4031
+Rp4032
+g11
+(g12
+(I0
+tp4033
+g14
+tp4034
+Rp4035
+(I1
+(I2
+tp4036
+g20
+I00
+S'?wq-\xcb\x93\xd7?\xaa\xac\xd5\x80mK\xec?'
+p4037
+tp4038
+bsg1
+(g5
+S'\xbf\x01\x00\x00'
+p4039
+tp4040
+Rp4041
+g11
+(g12
+(I0
+tp4042
+g14
+tp4043
+Rp4044
+(I1
+(I2
+tp4045
+g20
+I00
+S']tQ\x81G\xab\xe8?\xf0\x9f\xb8\xeaG\x9a\xcd?'
+p4046
+tp4047
+bsg1
+(g5
+S'\xc0\x01\x00\x00'
+p4048
+tp4049
+Rp4050
+g11
+(g12
+(I0
+tp4051
+g14
+tp4052
+Rp4053
+(I1
+(I2
+tp4054
+g20
+I00
+S'A\xeb<\xcfx\xda\xe0?\x9b\xd5Z;\xdc;\xd5?'
+p4055
+tp4056
+bsg1
+(g5
+S'\xc1\x01\x00\x00'
+p4057
+tp4058
+Rp4059
+g11
+(g12
+(I0
+tp4060
+g14
+tp4061
+Rp4062
+(I1
+(I2
+tp4063
+g20
+I00
+S'<\x87\x80\xe3\xaf$\xcf?\x87\x01\x1cS\xbe_\xc2?'
+p4064
+tp4065
+bsg1
+(g5
+S'\xc2\x01\x00\x00'
+p4066
+tp4067
+Rp4068
+g11
+(g12
+(I0
+tp4069
+g14
+tp4070
+Rp4071
+(I1
+(I2
+tp4072
+g20
+I00
+S'\x85\xdd(\xfco\x17\xe8?\x10\x1c\xc8w\xd8;\xe8?'
+p4073
+tp4074
+bsg1
+(g5
+S'\xc3\x01\x00\x00'
+p4075
+tp4076
+Rp4077
+g11
+(g12
+(I0
+tp4078
+g14
+tp4079
+Rp4080
+(I1
+(I2
+tp4081
+g20
+I00
+S'o\xe9.aea\xd0?P\xbf\x98\x06\x0b\xa9\xea?'
+p4082
+tp4083
+bsg1
+(g5
+S'\xc4\x01\x00\x00'
+p4084
+tp4085
+Rp4086
+g11
+(g12
+(I0
+tp4087
+g14
+tp4088
+Rp4089
+(I1
+(I2
+tp4090
+g20
+I00
+S'\xc2wY\xe8T\x08\xa0?\xdd\x1fP\xb2o\xad\xd4?'
+p4091
+tp4092
+bsg1
+(g5
+S'\xc5\x01\x00\x00'
+p4093
+tp4094
+Rp4095
+g11
+(g12
+(I0
+tp4096
+g14
+tp4097
+Rp4098
+(I1
+(I2
+tp4099
+g20
+I00
+S'\xc5q\xf6\t\x125\xb5?|\xfa\xd6\xbe\xb6m\xd2?'
+p4100
+tp4101
+bsg1
+(g5
+S'\xc6\x01\x00\x00'
+p4102
+tp4103
+Rp4104
+g11
+(g12
+(I0
+tp4105
+g14
+tp4106
+Rp4107
+(I1
+(I2
+tp4108
+g20
+I00
+S'H\x98\xb8\xbb\xe1\xae\xd8?YH\x87=\xe6F\xe9?'
+p4109
+tp4110
+bsg1
+(g5
+S'\xc7\x01\x00\x00'
+p4111
+tp4112
+Rp4113
+g11
+(g12
+(I0
+tp4114
+g14
+tp4115
+Rp4116
+(I1
+(I2
+tp4117
+g20
+I00
+S'\xf5\xe1\xeaFb\x81\xe4?\xa3\xed\x9e\xbe\xc6\xb8\xc8?'
+p4118
+tp4119
+bsg1
+(g5
+S'\xc8\x01\x00\x00'
+p4120
+tp4121
+Rp4122
+g11
+(g12
+(I0
+tp4123
+g14
+tp4124
+Rp4125
+(I1
+(I2
+tp4126
+g20
+I00
+S'y\xf8\x1ee;?\xe0?4\x99>R\xf4\xb9\xeb?'
+p4127
+tp4128
+bsg1
+(g5
+S'\xc9\x01\x00\x00'
+p4129
+tp4130
+Rp4131
+g11
+(g12
+(I0
+tp4132
+g14
+tp4133
+Rp4134
+(I1
+(I2
+tp4135
+g20
+I00
+S'D;ZK\x8a\xd6\xba?\xae\nW\xf7\x0c\xe2\xd0?'
+p4136
+tp4137
+bsg1
+(g5
+S'\xca\x01\x00\x00'
+p4138
+tp4139
+Rp4140
+g11
+(g12
+(I0
+tp4141
+g14
+tp4142
+Rp4143
+(I1
+(I2
+tp4144
+g20
+I00
+S'\xb2K\x8ao\xe9\xf8\xcd?\xf2\xb8\xc7\x84(\n\xed?'
+p4145
+tp4146
+bsg1
+(g5
+S'\xcb\x01\x00\x00'
+p4147
+tp4148
+Rp4149
+g11
+(g12
+(I0
+tp4150
+g14
+tp4151
+Rp4152
+(I1
+(I2
+tp4153
+g20
+I00
+S"\xbd\xb5f\x7f\x9f\xd2\xe8?\x8d\x94\x88'\x91\xb2\xda?"
+p4154
+tp4155
+bsg1
+(g5
+S'\xcc\x01\x00\x00'
+p4156
+tp4157
+Rp4158
+g11
+(g12
+(I0
+tp4159
+g14
+tp4160
+Rp4161
+(I1
+(I2
+tp4162
+g20
+I00
+S'\x81d]Z\x0e\xf8\xe7?\x17I\x0b\xa6\x11I\xc8?'
+p4163
+tp4164
+bsg1
+(g5
+S'\xcd\x01\x00\x00'
+p4165
+tp4166
+Rp4167
+g11
+(g12
+(I0
+tp4168
+g14
+tp4169
+Rp4170
+(I1
+(I2
+tp4171
+g20
+I00
+S'\xf7\xa3\x14b\xd6\xd4\xdc?6m8\xe1\xe2<\xd2?'
+p4172
+tp4173
+bsg1
+(g5
+S'\xce\x01\x00\x00'
+p4174
+tp4175
+Rp4176
+g11
+(g12
+(I0
+tp4177
+g14
+tp4178
+Rp4179
+(I1
+(I2
+tp4180
+g20
+I00
+S'\x1a\xc1V\xf4t8\xe3?\n\xf0\x1cu\xc8\x18\xe1?'
+p4181
+tp4182
+bsg1
+(g5
+S'\xcf\x01\x00\x00'
+p4183
+tp4184
+Rp4185
+g11
+(g12
+(I0
+tp4186
+g14
+tp4187
+Rp4188
+(I1
+(I2
+tp4189
+g20
+I00
+S'\xf3\x13\xec\x80`\xc9\xd8? \xc1\xaf\xc1\x10y\xe9?'
+p4190
+tp4191
+bsg1
+(g5
+S'\xd0\x01\x00\x00'
+p4192
+tp4193
+Rp4194
+g11
+(g12
+(I0
+tp4195
+g14
+tp4196
+Rp4197
+(I1
+(I2
+tp4198
+g20
+I00
+S'\xad\xcd\xf2\x8c%\x15\xcb?kMr\xa5P{\xeb?'
+p4199
+tp4200
+bsg1
+(g5
+S'\xd1\x01\x00\x00'
+p4201
+tp4202
+Rp4203
+g11
+(g12
+(I0
+tp4204
+g14
+tp4205
+Rp4206
+(I1
+(I2
+tp4207
+g20
+I00
+S'\x9d#\xf9y;\xaa\xb5?\x872\xdd\xf5\x0e\xf0\xcb?'
+p4208
+tp4209
+bsg1
+(g5
+S'\xd2\x01\x00\x00'
+p4210
+tp4211
+Rp4212
+g11
+(g12
+(I0
+tp4213
+g14
+tp4214
+Rp4215
+(I1
+(I2
+tp4216
+g20
+I00
+S"\x19l\xd2i%w\xe0?\xe1}\x87\xd4\xf3'\xde?"
+p4217
+tp4218
+bsg1
+(g5
+S'\xd3\x01\x00\x00'
+p4219
+tp4220
+Rp4221
+g11
+(g12
+(I0
+tp4222
+g14
+tp4223
+Rp4224
+(I1
+(I2
+tp4225
+g20
+I00
+S'\xc2\xcd\xbc\xb2\xda*\xd6? dk\xf7\xe7\xf7\xa3?'
+p4226
+tp4227
+bsg1
+(g5
+S'\xd4\x01\x00\x00'
+p4228
+tp4229
+Rp4230
+g11
+(g12
+(I0
+tp4231
+g14
+tp4232
+Rp4233
+(I1
+(I2
+tp4234
+g20
+I00
+S'Fu\xffL\x0eO\xd4?\x07X8\x02\xd5p\xe0?'
+p4235
+tp4236
+bsg1
+(g5
+S'\xd5\x01\x00\x00'
+p4237
+tp4238
+Rp4239
+g11
+(g12
+(I0
+tp4240
+g14
+tp4241
+Rp4242
+(I1
+(I2
+tp4243
+g20
+I00
+S'\x02\xfb\xd9\x8cOO\xe8?\x89\xc6$Q:\xbb\xd3?'
+p4244
+tp4245
+bsg1
+(g5
+S'\xd6\x01\x00\x00'
+p4246
+tp4247
+Rp4248
+g11
+(g12
+(I0
+tp4249
+g14
+tp4250
+Rp4251
+(I1
+(I2
+tp4252
+g20
+I00
+S'1\xc3\x8f\xe5\xc3\xdd\xd8?\xd4"\xd4\xbe\xce\xb4\xe9?'
+p4253
+tp4254
+bsg1
+(g5
+S'\xd7\x01\x00\x00'
+p4255
+tp4256
+Rp4257
+g11
+(g12
+(I0
+tp4258
+g14
+tp4259
+Rp4260
+(I1
+(I2
+tp4261
+g20
+I00
+S'?\xd6\xa5\xc1\xcf/\xcf?yX2O\x83\x97\xec?'
+p4262
+tp4263
+bsg1
+(g5
+S'\xd8\x01\x00\x00'
+p4264
+tp4265
+Rp4266
+g11
+(g12
+(I0
+tp4267
+g14
+tp4268
+Rp4269
+(I1
+(I2
+tp4270
+g20
+I00
+S'\x08\xeaQ\x85\xd6\xfd\xe0?e\xdef\xc8\x83\x85\xec?'
+p4271
+tp4272
+bsg1
+(g5
+S'\xd9\x01\x00\x00'
+p4273
+tp4274
+Rp4275
+g11
+(g12
+(I0
+tp4276
+g14
+tp4277
+Rp4278
+(I1
+(I2
+tp4279
+g20
+I00
+S'\x97\xc7_\xb5\x05\xdd\xd7?\xb3_"\xecU*\xc5?'
+p4280
+tp4281
+bsg1
+(g5
+S'\xda\x01\x00\x00'
+p4282
+tp4283
+Rp4284
+g11
+(g12
+(I0
+tp4285
+g14
+tp4286
+Rp4287
+(I1
+(I2
+tp4288
+g20
+I00
+S'>\x8e\x97\xfev\x9e\xce?5\x17\xda\x19\xf8\x1b\xeb?'
+p4289
+tp4290
+bsg1
+(g5
+S'\xdb\x01\x00\x00'
+p4291
+tp4292
+Rp4293
+g11
+(g12
+(I0
+tp4294
+g14
+tp4295
+Rp4296
+(I1
+(I2
+tp4297
+g20
+I00
+S'\x81\xd2\xc7\xa0\t\x9b\xe0?\\\xfe\xdb\xa7er\xec?'
+p4298
+tp4299
+bsg1
+(g5
+S'\xdc\x01\x00\x00'
+p4300
+tp4301
+Rp4302
+g11
+(g12
+(I0
+tp4303
+g14
+tp4304
+Rp4305
+(I1
+(I2
+tp4306
+g20
+I00
+S'\xd6\xa9\xc8[\xc7Q\xe4?\xab\x84\x1b\x9de\xdc\xc5?'
+p4307
+tp4308
+bsg1
+(g5
+S'\xdd\x01\x00\x00'
+p4309
+tp4310
+Rp4311
+g11
+(g12
+(I0
+tp4312
+g14
+tp4313
+Rp4314
+(I1
+(I2
+tp4315
+g20
+I00
+S'\x95\xe4\x887U\x15\xee?>\xf7\xb7\x93\x0b\xd5\xdb?'
+p4316
+tp4317
+bsg1
+(g5
+S'\xde\x01\x00\x00'
+p4318
+tp4319
+Rp4320
+g11
+(g12
+(I0
+tp4321
+g14
+tp4322
+Rp4323
+(I1
+(I2
+tp4324
+g20
+I00
+S'\xac\x88B\xdf~\x00\xd1?-%\x8e\xb0C\x94\xd5?'
+p4325
+tp4326
+bsg1
+(g5
+S'\xdf\x01\x00\x00'
+p4327
+tp4328
+Rp4329
+g11
+(g12
+(I0
+tp4330
+g14
+tp4331
+Rp4332
+(I1
+(I2
+tp4333
+g20
+I00
+S'5\x1aD\x82aI\xe7?\xceF\xda\x95\xe5\x11\xe7?'
+p4334
+tp4335
+bsg1
+(g5
+S'\xe0\x01\x00\x00'
+p4336
+tp4337
+Rp4338
+g11
+(g12
+(I0
+tp4339
+g14
+tp4340
+Rp4341
+(I1
+(I2
+tp4342
+g20
+I00
+S'B\xb8u\x14\xfc\x91\xe3?#n\x9fIYh\xe8?'
+p4343
+tp4344
+bsg1
+(g5
+S'\xe1\x01\x00\x00'
+p4345
+tp4346
+Rp4347
+g11
+(g12
+(I0
+tp4348
+g14
+tp4349
+Rp4350
+(I1
+(I2
+tp4351
+g20
+I00
+S';iI\xce0_\xe8?\xf9\xb8:9\x92\xdf\xe7?'
+p4352
+tp4353
+bsg1
+(g5
+S'\xe2\x01\x00\x00'
+p4354
+tp4355
+Rp4356
+g11
+(g12
+(I0
+tp4357
+g14
+tp4358
+Rp4359
+(I1
+(I2
+tp4360
+g20
+I00
+S'\xb6i\xf3\xe6\xb7O\xe2?\xf8x\x1fk/\xf7\xe9?'
+p4361
+tp4362
+bsg1
+(g5
+S'\xe3\x01\x00\x00'
+p4363
+tp4364
+Rp4365
+g11
+(g12
+(I0
+tp4366
+g14
+tp4367
+Rp4368
+(I1
+(I2
+tp4369
+g20
+I00
+S'[\xc6\x9a\xef\x8b|\xdc?'
+p4433
+tp4434
+bsg1
+(g5
+S'\xeb\x01\x00\x00'
+p4435
+tp4436
+Rp4437
+g11
+(g12
+(I0
+tp4438
+g14
+tp4439
+Rp4440
+(I1
+(I2
+tp4441
+g20
+I00
+S'\xd7<6\xfd\xc9>\xcc?\xc4\xf3\xe1yX\xdf\xe9?'
+p4442
+tp4443
+bsg1
+(g5
+S'\xec\x01\x00\x00'
+p4444
+tp4445
+Rp4446
+g11
+(g12
+(I0
+tp4447
+g14
+tp4448
+Rp4449
+(I1
+(I2
+tp4450
+g20
+I00
+S'\x16TL@\xe1\xf4\xc9?\x18I?\xfc.\xc7\xe3?'
+p4451
+tp4452
+bsg1
+(g5
+S'\xed\x01\x00\x00'
+p4453
+tp4454
+Rp4455
+g11
+(g12
+(I0
+tp4456
+g14
+tp4457
+Rp4458
+(I1
+(I2
+tp4459
+g20
+I00
+S'\xc2\xac|\xf3\x01\xe6\xc6?\xf0a\x06<\x9e\xb9\xeb?'
+p4460
+tp4461
+bsg1
+(g5
+S'\xee\x01\x00\x00'
+p4462
+tp4463
+Rp4464
+g11
+(g12
+(I0
+tp4465
+g14
+tp4466
+Rp4467
+(I1
+(I2
+tp4468
+g20
+I00
+S'\xfa\x9a$j\x8a\xad\xd4?z\xf5\xd8&\xe6\xf6\xe1?'
+p4469
+tp4470
+bsg1
+(g5
+S'\xef\x01\x00\x00'
+p4471
+tp4472
+Rp4473
+g11
+(g12
+(I0
+tp4474
+g14
+tp4475
+Rp4476
+(I1
+(I2
+tp4477
+g20
+I00
+S'\xcb\x8c\xee(\xf2\xbb\xaf?\xe7\xecn=\x80\xf3\xd9?'
+p4478
+tp4479
+bsg1
+(g5
+S'\xf0\x01\x00\x00'
+p4480
+tp4481
+Rp4482
+g11
+(g12
+(I0
+tp4483
+g14
+tp4484
+Rp4485
+(I1
+(I2
+tp4486
+g20
+I00
+S'\xdd\xe8v\xa76b\xe7?\x95(\xa2\x19z\xfa\xe4?'
+p4487
+tp4488
+bsg1
+(g5
+S'\xf1\x01\x00\x00'
+p4489
+tp4490
+Rp4491
+g11
+(g12
+(I0
+tp4492
+g14
+tp4493
+Rp4494
+(I1
+(I2
+tp4495
+g20
+I00
+S'"\xc5\x02\x05\xa9\xbe\xe7?]\xef\xf0\xb1u\x8f\xe5?'
+p4496
+tp4497
+bsg1
+(g5
+S'\xf2\x01\x00\x00'
+p4498
+tp4499
+Rp4500
+g11
+(g12
+(I0
+tp4501
+g14
+tp4502
+Rp4503
+(I1
+(I2
+tp4504
+g20
+I00
+S'\xe8\xbd\x02\xaer\xa1\xda?\xe4\xd1\xb9\x8d"\xf1\xd1?'
+p4505
+tp4506
+bsg1
+(g5
+S'\xf3\x01\x00\x00'
+p4507
+tp4508
+Rp4509
+g11
+(g12
+(I0
+tp4510
+g14
+tp4511
+Rp4512
+(I1
+(I2
+tp4513
+g20
+I00
+S'\x96\xa9m\n\xa1\xe5\xd7?\xf72j\x91\x8e\xb5\xc0?'
+p4514
+tp4515
+bs.(I1009
+I500
+tp0
+.
\ No newline at end of file
Added: SwiftApps/Andrey-MC/movie_graph.py
===================================================================
--- SwiftApps/Andrey-MC/movie_graph.py (rev 0)
+++ SwiftApps/Andrey-MC/movie_graph.py 2011-03-30 17:57:26 UTC (rev 4230)
@@ -0,0 +1,863 @@
+#!/home/zzhang/workplace/epd-7.0-2-rh5-x86/bin/python2.7
+#/usr/bin/env python
+
+# Import graphviz
+import sys
+sys.path.append('..')
+sys.path.append('/usr/lib/graphviz/python/')
+sys.path.append('/usr/lib64/graphviz/python/')
+
+# Import pygraph
+#from pythongraph import *
+from matplotlib.patches import Circle, PathPatch
+import matplotlib.lines as mlines
+import matplotlib
+matplotlib.use('Agg')
+
+from matplotlib.font_manager import FontProperties
+'''
+from pygraph.classes.graph import graph
+from pygraph.classes.digraph import digraph
+from pygraph.algorithms.searching import breadth_first_search
+from pygraph.algorithms.accessibility import accessibility, connected_components
+from pygraph.algorithms.minmax import shortest_path, heuristic_search
+from pygraph.classes.digraph import digraph
+from pygraph.algorithms.heuristics.euclidean import euclidean
+from pygraph.algorithms.heuristics.chow import chow
+#from pygraph.readwrite.dot import write
+'''
+from string import replace
+import numpy as np
+from matplotlib import pyplot
+from pylab import *
+import operator
+from decimal import *
+import math as mt
+import random
+import networkx as nx
+
+import pickle
+import os
+
+#----------------------------------------------------------
+def string_wrap(st, mode):
+
+ st = str(st)
+
+ if mode==1:
+ st = "\033[1;29m" + st + "\033[0m"
+ elif mode==2:
+ st = "\033[1;34m" + st + "\033[0m"
+ elif mode==3:
+ st = "\033[1;44m" + st + "\033[0m"
+ elif mode==4:
+ st = "\033[1;35m" + st + "\033[0m"
+ elif mode==5:
+ st = "\033[1;33;44m" + st + "\033[0m"
+ elif mode==6:
+ st = "\033[1;47;34m" + st + "\033[0m"
+ elif mode==7:
+ st = "\033[1;1;31m" + st + "\033[0m"
+ elif mode==8:
+ st = "\033[1;1;33m" + st + "\033[0m"
+ elif mode==9:
+ st = "\033[1;1;43;34m" + st + "\033[0m"
+ elif mode==10:
+ st = "\033[1;1;37m" + st + "\033[0m"
+ elif mode==11:
+ st = "\033[1;30;47m" + st + "\033[0m"
+ else:
+ st = st + ' '
+ return st
+#-----------------------------------------------------------
+def draw_graph(visible,pos,name,number,dpidpi,Nce,Ncv,scale):
+ fig = pyplot.figure(num=None,dpi=dpidpi,facecolor='w',edgecolor='k')
+ rect = [0.1,0.13,0.8,0.77]
+ ax = plt.subplot(111)
+
+ ax.axis('off')
+
+
+ xmin = inf
+ xmax = -inf
+ ymin = inf
+ ymax = -inf
+ part = 0.01
+
+ for i in range(Ncv):
+ x,y=pos[i]
+ if x > xmax:
+ xmax = x
+ elif x < xmin:
+ xmin = x
+ if y > ymax:
+ ymax = y
+ elif y < ymin:
+ ymin = y
+
+ xlim(xmin-(xmax-xmin)*part,xmax+(xmax-xmin)*part)
+ ylim(ymin-(ymax-ymin)*part,ymax+(ymax-ymin)*part)
+
+ for i in range(Ncv):
+ x,y=pos[i]
+ r = sqrt(float(G.degree(i)))/pi
+ circle = Circle((x, y), r*scale, facecolor='none',
+ edgecolor=(0.3,0.3,0.3), linewidth=0.5, alpha=0.5)
+ ax.add_patch(circle)
+
+
+ savefig(name+str(number)+'.png', dpi=dpidpi, facecolor='w', edgecolor='w',
+ orientation='portrait', papertype=None, format='png',
+ transparent=False, bbox_inches=None, pad_inches=0.1)
+
+#---------------------------------------
+def connected_components(G):
+ """Return nodes in connected components of graph.
+
+ Parameters
+ ----------
+ G : NetworkX Graph
+ An undirected graph.
+
+ Returns
+ -------
+ comp : list of lists
+ A list of nodes for each component of G.
+
+ See Also
+ --------
+ strongly_connected_components
+
+ Notes
+ -----
+ The list is ordered from largest connected component to smallest.
+ For undirected graphs only.
+ """
+ if G.is_directed():
+ raise nx.NetworkXError,\
+ """Not allowed for directed graph G.
+ Use UG=G.to_undirected() to create an undirected graph."""
+ seen={}
+ components=[]
+ for v in G:
+ if v not in seen:
+ c=nx.single_source_shortest_path_length(G,v)
+ components.append(c.keys())
+ seen.update(c)
+ components.sort(key=len,reverse=True)
+ return components
+
+
+def number_connected_components(G):
+ """Return number of connected components in graph.
+
+ Parameters
+ ----------
+ G : NetworkX Graph
+ An undirected graph.
+
+ Returns
+ -------
+ n : integer
+ Number of connected components
+
+ See Also
+ --------
+ connected_components
+
+ Notes
+ -----
+ For undirected graphs only.
+ """
+ return len(connected_components(G))
+
+
+def is_connected(G):
+ """Test graph connectivity
+
+ Parameters
+ ----------
+ G : NetworkX Graph
+ An undirected graph.
+
+ Returns
+ -------
+ connected : bool
+ True if the graph is connected, false otherwise.
+
+ Examples
+ --------
+ >>> G=nx.path_graph(4)
+ >>> print nx.is_connected(G)
+ True
+
+ See Also
+ --------
+ connected_components
+
+ Notes
+ -----
+ For undirected graphs only.
+ """
+ if G.is_directed():
+ raise nx.NetworkXError(\
+ """Not allowed for directed graph G.
+Use UG=G.to_undirected() to create an undirected graph.""")
+
+ if len(G)==0:
+ raise nx.NetworkXPointlessConcept(
+ """Connectivity is undefined for the null graph.""")
+
+ return len(nx.single_source_shortest_path_length(G,
+ G.nodes_iter().next()))==len(G)
+
+
+def connected_component_subgraphs(G):
+ """Return connected components as subgraphs.
+
+ Parameters
+ ----------
+ G : NetworkX Graph
+ An undirected graph.
+
+ Returns
+ -------
+ glist : list
+ A list of graphs, one for each connected component of G.
+
+ Examples
+ --------
+ Get largest connected component as subgraph
+
+ >>> G=nx.path_graph(4)
+ >>> G.add_edge(5,6)
+ >>> H=nx.connected_component_subgraphs(G)[0]
+
+ See Also
+ --------
+ connected_components
+
+ Notes
+ -----
+ The list is ordered from largest connected component to smallest.
+ For undirected graphs only.
+ """
+
+ cc=connected_components(G)
+ graph_list=[]
+
+ for c in cc:
+ graph_list.append(G.subgraph(c))
+ return graph_list
+
+
+#=======================
+def node_connected_component(G,n):
+ """Return nodes in connected components of graph containing node n.
+
+ Parameters
+ ----------
+ G : NetworkX Graph
+ An undirected graph.
+
+ n : node label
+ A node in G
+
+ Returns
+ -------
+ comp : lists
+ A list of nodes in component of G containing node n.
+
+ See Also
+ --------
+ connected_components
+
+ Notes
+ -----
+ For undirected graphs only.
+ """
+ if G.is_directed():
+ raise nx.NetworkXError,\
+ """Not allowed for directed graph G.
+ Use UG=G.to_undirected() to create an undirected graph."""
+ return nx.single_source_shortest_path_length(G,n).keys()
+
+#=======================================================
+def generate_other_graphs(type, Nv, Ne, n_e, epsilon,p):
+
+ if type==1:
+ G=nx.barabasi_albert_graph(Nv,n_e)
+ elif type==2:
+ G=nx.erdos_renyi_graph(Nv,p)
+ elif type==3:
+ G=nx.watts_strogatz_graph(Nv,n_e,p)
+ else:
+ G=nx.random_lobster(Nv,p,p)
+
+ Ncv = G.number_of_nodes()
+ Nce = G.number_of_edges()
+ C = array(list(G.degree(G.nodes()).values()))
+ E = array(list(G.degree(G.edges()).values()))
+
+ #--------------------
+ ncomp = 2
+ while 1==1:
+ ncomp = number_connected_components(G)
+ if ncomp==1:
+ print 'only',ncomp,'contected component'
+ break
+ comp = connected_components(G)
+ #print comp
+ print ncomp,'contected components'
+
+ # connect two largest components through least connected nodes
+ tmp1 = []
+ tmp2 = []
+ for t in comp[0]:
+ if C[t]==min(C[comp[0]]):
+ tmp1.append(t)
+ for t in comp[1]:
+ if C[t]==min(C[comp[1]]):
+ tmp2.append(t)
+ i1 = random.sample(tmp1,1)
+ i2 = random.sample(tmp2,1)
+ print 'Connecting',i1[0],'and',i2[0]
+ G.add_edge(i1[0],i2[0])
+
+ print G.number_of_nodes(), ' nodes'
+ print G.number_of_edges(), ' edges'
+
+
+ pos = nx.spring_layout(G, dim=2, pos=None,
+ fixed=None, iterations=4400, weighted=False, scale=1)
+
+ visible = zeros([Nce,1],int)
+
+ number = 0
+ name = 'test'
+ dpidpi=150
+ scale = 1./200.
+ #draw_graph(C,E,visible,pos,name,number,dpidpi,Nce,Ncv,scale)
+#---pickle output
+#
+ s = raw_input('Pickle the graph? (y/n):')
+
+ if s=='y':
+ file1 = open('graph1.pickled', 'w')
+ pickle.dump(G,file1)
+ pickle.dump(pos,file1)
+ pickle.dump(C,file1)
+ pickle.dump(E,file1)
+ pickle.dump((Nce,Ncv),file1)
+ file1.close()
+#--------------------------------------
+ return G,Ncv,Nce,C,E,pos
+#---------------------------------------
+#==================================================
+def pick_edge_nodes(C, epsilon, Ncv, Nce, E, n_e):
+
+ k = random.randint(1,n_e)
+ Ncv+=1
+ curr=Ncv
+ tmp = []
+ Cs = C.sum()
+
+ for i in range(k):
+ pick = random.random()
+
+ cumsum = epsilon/(Cs+epsilon)
+
+ # join new node
+ if cumsum > pick:
+ Ncv+=1
+ C[Ncv]+=1
+ Nce+=1
+ E[Nce,0]=curr
+ E[Nce,1]=Ncv
+ print '[',curr,Ncv,']'
+ print '***************'
+
+ else:
+ j=-1
+ # old node
+ Cs = C.sum()
+ while cumsum < pick and j xmax:
+ xmax = x
+ elif x < xmin:
+ xmin = x
+ if y > ymax:
+ ymax = y
+ elif y < ymin:
+ ymin = y
+
+ xlim(xmin-(xmax-xmin)*part,xmax+(xmax-xmin)*part)
+ ylim(ymin-(ymax-ymin)*part,ymax+(ymax-ymin)*part)
+
+ for i in range(Ncv):
+ x,y=pos[i]
+ r = sqrt(float(G.degree(i)))/pi
+ circle = Circle((x, y), r*scale, facecolor='none',
+ edgecolor=(0.4,0.4,0.4), linewidth=0.5, alpha=0.5)
+ ax.add_patch(circle)
+
+
+ # add current graph
+ nmax = G.number_of_edges()
+ cmap=get_cmap(hot)
+ for ee in G_current.edges():
+ #print ee
+ x,y=pos[ee[0]]
+ x1,y1=pos[ee[1]]
+
+ if edge_counts[ee] <= 10:
+ xx = (edge_counts[ee]-1.)/10.
+ else:
+ xx = 1.
+
+ col=cm.jet(xx)
+ al = min(1.,0.23+0.02*edge_counts[ee])
+ lww = min(8.,1.1+0.01*edge_counts[ee])
+ line = mlines.Line2D([x,x1], [y,y1], lw=lww, alpha=al, color=col)
+
+
+ ax.add_line(line)
+
+ #adding a key
+
+ y_step = (ymax-ymin)*part*3.5
+ y_start = ymin+10*y_step
+ for i in range(11):
+ col=cm.jet(i/10.)
+ x = xmin-(xmax-xmin)*part*12
+ x1 = xmin-(xmax-xmin)*part*12 + (xmax-xmin)*part/30.
+ y = y_start-float(i)*y_step
+ line = mlines.Line2D([x,x1], [y,y], lw=2, alpha=0.35, color=col)
+ ax.add_line(line)
+ if i < 10 and i > 0:
+ tmp = '%d times ' % (i+1)
+ elif i==0:
+ tmp = '%d ' % (i+1)
+ else:
+ tmp = '%d or more' % (i+1)
+ ax.text(x1+(xmax-xmin)*part/60.,y, tmp, fontname='Synchro LET', color=col, alpha=0.3)
+
+
+ if page_rank == 1:
+ tmp_page = ' (Page Rank)'
+ else:
+ tmp_page = ' (Node Degree)'
+
+ tmp = ('$\\alpha_{\\iota} = %4.2f, \\alpha_{\\mu} = %4.2f,\\beta = %4.2f, \\gamma = %4.2f,'+ \
+ '\\delta = %4.2f, \\Delta=%d \\;(%d)\\;%d$' + \
+ ' published'+tmp_page) % (alpha_i,alpha_m,beta,gamma, \
+ delta,step,number,int(float(step)*float(number)))
+ tmp1 = 'Novel %d (%d possible), Relative Loss %g, Loss %g' % (novel, nmax, loss/(novel+1.), loss)
+
+ ax.text(xmin-(xmax-xmin)*part*8.,ymax+(ymax-ymin)*part*4, tmp, fontname='Synchro LET', color='k')
+ ax.text(xmin-(xmax-xmin)*part*8.,ymin-(ymax-ymin)*part*10, tmp1, fontname='Synchro LET', color='k')
+
+ ext = 'png'
+
+ if for_print==True:
+ savefig(name+str(number)+'.pdf', dpi=200, facecolor='w', edgecolor='w',
+ orientation='portrait', papertype=None, format='pdf',
+ transparent=False, bbox_inches=None, pad_inches=0.1)
+
+ savefig(output_dir+'/'+name+str(number)+'.'+ext, dpi=dpidpi, facecolor='w', edgecolor='w',
+ orientation='portrait', papertype=None, format=ext,
+ transparent=False, bbox_inches=None, pad_inches=0.1)
+
+ return 0
+
+#====================================================================================
+def pick_edges(G_curr, current_E, G, alpha_i, alpha_m, beta, gamm,
+ delta, step, edge_counts, name, count, dpidpi,
+ loss, novel, page_rank, k_max, reruns,
+ history, history_novel, history_loss, history_rel_loss, history_nodes, output_dir):
+
+# compute shortest distances
+ length=nx.all_pairs_shortest_path_length(G_curr)
+
+ Nv = G_curr.number_of_nodes()
+ rank = zeros([Nv,1],float)
+ prob = zeros([Nv,Nv],float)
+
+# compute ranks
+
+ if page_rank==0:
+ for ed in G_curr.edges():
+ rank[ed[0]]+=1
+ rank[ed[1]]+=1
+ else:
+ nodes = nx.pagerank_numpy(G_curr)
+ minn=min(nodes.values())
+ for no in nodes.keys():
+ rank[no] = nodes[no].real/minn.real
+ #print max(rank)[0], min(rank)[0]
+
+ n_l_inf = 0.
+ for i in range(Nv):
+ n_l_inf += float(len(length[i]))/2.
+
+ n_inf = Nv*(Nv-1)/2. - n_l_inf
+ nu = float(n_inf)**(delta+1.)/(float(n_inf)**(delta+1.)+float(n_l_inf))
+
+ for i in range(Nv):
+ for j in range(i+1,Nv-1):
+
+ f = alpha_i*log(min([rank[i]+1,rank[j]+1])) +\
+ alpha_m*log(max([rank[i]+1,rank[j]+1]))
+
+ if j not in length[i]:
+ prob[i,j] = exp(log(nu) + f)
+ else:
+ g = beta*log(float(length[i][j])/float(k_max)) +\
+ gamm*log(1. - float(length[i][j])/float(k_max))
+
+ prob[i,j] = exp(log(1.-nu) + f + g)
+
+
+ summa=0.
+ p_fail = 0.
+ good = {}
+ k=0
+ p_success = zeros([G.number_of_edges(),1],float)
+ for i in range(Nv):
+ for j in range(i+1, Nv-1):
+ summa+=prob[i,j]
+ if j not in G[i]:
+ p_fail += prob[i,j]
+ else:
+ p_success[k]=prob[i,j]
+ good[k]=(i,j)
+ k+=1
+
+ prob = prob/summa
+ p_fail = p_fail/summa
+
+ p_success = p_success/(sum(p_success))
+
+ failed = 0.
+ success = 0
+
+ while success < step:
+
+ z = np.random.geometric(1.-p_fail, size=1)
+ loss += z + 1
+ failed += z[0]
+ #print 'failed',z[0]
+
+ pick0 = random.random()
+ summ = 0.
+
+ first=1
+ for i in range(len(p_success)):
+ summ+=p_success[i]
+ if summ >= pick0:
+ ni = good[i][0]
+ nj = good[i][1]
+ break
+ i = ni
+ j = nj
+ if j not in G[i]:
+ failed += 1
+ else:
+ if j not in G_curr[i]:
+ G_curr.add_edge(i,j)
+ edge_counts[(i,j)]+=1
+ edge_counts[(j,i)]+=1
+ success += 1
+ novel=G_curr.number_of_edges()
+ for_print = False
+ rel_loss = float(loss)/float(novel)
+
+ #modify the original code to plot for every call of pick_edges()
+ '''
+ if reruns == 1:
+ draw_current_graph(pos,name,count,dpidpi,Nce,Ncv,scale,G_curr,
+ alpha_i, alpha_m, beta, gamma, delta, step,
+ loss, novel, edge_counts, page_rank,for_print)
+
+ draw_current_graph(pos,name,count,dpidpi,Nce,Ncv,scale,G_curr,
+ alpha_i, alpha_m, beta, gamma, delta, step,
+ loss, novel, edge_counts, page_rank,for_print, output_dir)
+ '''
+ for i in range(G.number_of_edges()):
+ history[count-1,i] += edge_counts[G.edges()[i]]
+ history_nodes[count-1,G.edges()[i][0]] += edge_counts[G.edges()[i]]
+ history_nodes[count-1,G.edges()[i][1]] += edge_counts[G.edges()[i]]
+
+ history_novel[count-1,0] += novel
+ history_novel[count-1,1] += novel**2
+ history_loss[count-1,0] += loss
+ history_loss[count-1,1] += loss**2
+ history_rel_loss[count-1,0] += rel_loss
+ history_rel_loss[count-1,1] += rel_loss**2
+
+ print string_wrap(str(rerun),2),count,string_wrap(str(G_curr.number_of_edges()),3),'novel, ',rel_loss,'relative loss'
+
+ prob=[]
+
+
+ return G_curr, current_E, failed, edge_counts, loss, novel, history, history_novel, history_loss, history_rel_loss
+#===================================================================================
+# vertices
+# edges
+# Nv
+# Ne
+# C -- connectivity
+# E edges
+Nv = 900
+Ne = 2700
+Ncv = -1
+Nce = -1
+epsilon = 0.5
+
+#------- try reading pickled graph
+s = 'y'
+
+if s=='y':
+
+ file2 = open('for_movies.pickled', 'r')
+ G = pickle.load(file2)
+ pos = pickle.load(file2)
+ file2.close()
+
+ C = array(list(G.degree(G.nodes()).values()))
+ E = array(list(G.degree(G.edges()).values()))
+ Nce = G.number_of_edges()
+ Ncv = G.number_of_nodes()
+
+#-----------------------------------------
+step = 50
+i=1
+current_E=[]
+
+alpha_i = 3.
+alpha_m = 1.5
+beta = 0.
+gamma = 0.
+delta = 0.0
+
+page_rank=0
+
+
+dpidpi=150
+scale = 1/200.
+nE = G.number_of_edges()
+nV = G.number_of_nodes()
+edge_counts = {}
+
+
+version = 1
+count = 0
+i=1
+name = 'universes'
+k_max = nE
+
+
+
+#=============================================================
+reruns = 1
+number_of_epochs = 10
+history = zeros([number_of_epochs, nE], float)
+history_novel = zeros([number_of_epochs, 2], float)
+history_loss = zeros([number_of_epochs, 2], float)
+history_rel_loss = zeros([number_of_epochs, 2], float)
+
+history_nodes = zeros([number_of_epochs, nV], float)
+G_curr = nx.MultiGraph()
+G_curr.add_nodes_from(G)
+loss = 0.
+novel = 0.
+
+#=============================================================
+'''
+if reruns == 1:
+ draw_current_graph(pos,name,count,dpidpi,Nce,Ncv,scale,G_curr,
+ alpha_i, alpha_m, beta, gamma, delta, step,
+ loss, novel, edge_counts, page_rank, False)
+
+for rerun in range(reruns):
+ for e in G.edges():
+ edge_counts[(e[0],e[1])]=0.
+ edge_counts[(e[1],e[0])]=0.
+
+ G_curr = nx.MultiGraph()
+ G_curr.add_nodes_from(G)
+ loss = 0.
+ novel = 0.
+
+ for epoch in range(number_of_epochs):
+ (G_curr, current_E, failed,
+ edge_counts, loss, novel,
+ history, history_novel,
+ history_loss, history_rel_los) = pick_edges(G_curr, current_E, G,
+ alpha_i, alpha_m, beta, gamma, delta, step,
+ edge_counts, name, (epoch+1), dpidpi, loss,
+ novel, page_rank, k_max, reruns,
+ history, history_novel, history_loss,
+ history_rel_loss, history_nodes)
+ if reruns == 1:
+ file1 = open('histories.pickled-2', 'w')
+ pickle.dump([rerun+1,reruns,number_of_epochs],file1)
+ pickle.dump([alpha_i, alpha_m, beta, gamma, delta, step, page_rank],file1)
+ pickle.dump(history,file1)
+ pickle.dump(history_novel,file1)
+ pickle.dump(history_loss,file1)
+ pickle.dump(history_rel_loss,file1)
+ pickle.dump(history_nodes,file1)
+
+ file1.close()
+'''
+rerun = int(sys.argv[1])
+outputdir = 'output/rerun'+str(rerun)
+if not os.path.isdir(outputdir):
+ os.makedirs(outputdir)
+
+for e in G.edges():
+ edge_counts[(e[0],e[1])]=0.
+ edge_counts[(e[1],e[0])]=0.
+
+G_curr = nx.MultiGraph()
+G_curr.add_nodes_from(G)
+loss = 0.
+novel = 0.
+
+for epoch in range(number_of_epochs):
+ (G_curr, current_E, failed,
+ edge_counts, loss, novel,
+ history, history_novel,
+ history_loss, history_rel_los) = pick_edges(G_curr, current_E, G,
+ alpha_i, alpha_m, beta, gamma, delta, step,
+ edge_counts, name, (epoch+1), dpidpi, loss,
+ novel, page_rank, k_max, rerun,
+ history, history_novel, history_loss,
+ history_rel_loss, history_nodes, outputdir)
+
+file1 = open(outputdir+'/histories.pickled'+'-'+str(rerun), 'w')
+pickle.dump([reruns,reruns,number_of_epochs],file1)
+pickle.dump([alpha_i, alpha_m, beta, gamma, delta, step, page_rank],file1)
+pickle.dump(history,file1)
+pickle.dump(history_novel,file1)
+pickle.dump(history_loss,file1)
+pickle.dump(history_rel_loss,file1)
+pickle.dump(history_nodes,file1)
+file1.close()
+
+
+print 'Done!'
+
+
+
Property changes on: SwiftApps/Andrey-MC/movie_graph.py
___________________________________________________________________
Name: svn:executable
+ *
Added: SwiftApps/Andrey-MC/movies_coarse.swift
===================================================================
--- SwiftApps/Andrey-MC/movies_coarse.swift (rev 0)
+++ SwiftApps/Andrey-MC/movies_coarse.swift 2011-03-30 17:57:26 UTC (rev 4230)
@@ -0,0 +1,29 @@
+type Pickle {}
+type History {}
+type Image {}
+
+app (History historyout) movie_graph (int rerun, Pickle picklefile)
+{
+ movie_graph rerun;
+}
+
+int arr[];
+iterate i
+{
+ arr[i] = i+1;
+}until(i == 1);
+
+foreach i in arr{
+ Pickle picklefile <"./for_movies.pickled">;
+ History historyout ;
+
+ //Image out[];
+ //iterate j
+ //{
+ // imageout[j] ;
+ //}until(j==9);
+ //Image out ;
+
+ historyout = movie_graph(i, picklefile);
+}
+
Added: SwiftApps/Andrey-MC/tc.data
===================================================================
--- SwiftApps/Andrey-MC/tc.data (rev 0)
+++ SwiftApps/Andrey-MC/tc.data 2011-03-30 17:57:26 UTC (rev 4230)
@@ -0,0 +1,19 @@
+#This is the transformation catalog.
+#
+#It comes pre-configured with a number of simple transformations with
+#paths that are likely to work on a linux box. However, on some systems,
+#the paths to these executables will be different (for example, sometimes
+#some of these programs are found in /usr/bin rather than in /bin)
+#
+#NOTE WELL: fields in this file must be separated by tabs, not spaces; and
+#there must be no trailing whitespace at the end of each line.
+#
+# sitename transformation path INSTALLED platform profiles
+localhost echo /bin/echo INSTALLED INTEL32::LINUX null
+localhost cat /bin/cat INSTALLED INTEL32::LINUX null
+localhost ls /bin/ls INSTALLED INTEL32::LINUX null
+localhost grep /bin/grep INSTALLED INTEL32::LINUX null
+localhost sort /bin/sort INSTALLED INTEL32::LINUX null
+localhost paste /bin/paste INSTALLED INTEL32::LINUX null
+localhost cp /bin/cp INSTALLED INTEL32::LINUX null
+localhost movie_graph /home/zzhang/workplace/Andrey/movie_graph.py INSTALLED INTEL32::LINUX null