Date   

Re: check_nan bug fix and skip bind for struct params (issue204077)

Larry Gritz <l...@...>
 

How much "space" were we allocating for the struct placeholders? Should be 0, no? Or was the problem just that check_nan was reading bogus heap areas to check nans on these placeholders?


On Feb 8, 2010, at 11:58 AM, <cku...@...> <cku...@...> wrote:

Reviewers: dev-osl_imageworks.com, osl-dev_googlegroups.com,

Description:
Two small things I noticed while debugging something unrelated.

1) check_nan was off-by one

2) we allocate space for struct params even though they are never used
directly


I also added a bit more information to the check_nan output (including
which point was nan).

Please review this at http://codereview.appspot.com/204077/show

Affected files:
src/liboslexec/exec.cpp
src/liboslexec/oslexec_pvt.h


--
Larry Gritz
l...@...


Re: check_nan bug fix and skip bind for struct params (issue204077)

larry...@...
 


Re: check_nan bug fix and skip bind for struct params (issue204077)

cku...@...
 


check_nan bug fix and skip bind for struct params (issue204077)

cku...@...
 

Reviewers: dev-osl_imageworks.com, osl-dev_googlegroups.com,

Description:
Two small things I noticed while debugging something unrelated.

1) check_nan was off-by one

2) we allocate space for struct params even though they are never used
directly


I also added a bit more information to the check_nan output (including
which point was nan).

Please review this at http://codereview.appspot.com/204077/show

Affected files:
src/liboslexec/exec.cpp
src/liboslexec/oslexec_pvt.h


Review: error for type coercion of output params (issue204076)

larry...@...
 

Reviewers: ,

Description:
Ordinarily, it's fine to have type coercion on function parameters, for
example, if you pass a float where a color was expected, it'll just do
the usual float-to-color conversion into a temporary before using it as
an argument.

But this is wrong if it's an output parameter -- because if the function
*writes* to that coerced temporary, well, how the heck is the result
supposed to get back to the original argument, which can't even hold a
color?

So this proposed change catches this error and prints as clear an error
message as I could muster:

{{{
test.osl:11: error: Cannot pass 'float f' as argument 2 to myfunc
because it is an output parameter that must be a color
}}}

This is related to this issue:
http://code.google.com/p/openshadinglanguage/issues/detail?id=51


Please review this at http://codereview.appspot.com/204076/show

Affected files:
src/liboslcomp/codegen.cpp


Index: src/liboslcomp/codegen.cpp
===================================================================
--- src/liboslcomp/codegen.cpp (revision 571)
+++ src/liboslcomp/codegen.cpp (working copy)
@@ -1111,6 +1111,7 @@
ASTNode *a = args().get();

int returnarg = !typespec().is_void();
+ ASTNode *form = is_user_function() ? user_function()->formals().get() : NULL;
for (int i = 0; a; a = a->nextptr(), ++i) {
Symbol *thisarg = NULL;
if (a->nodetype() == index_node && argwrite(i+returnarg)) {
@@ -1128,9 +1129,23 @@
if (i < (int)polyargs.size() &&
polyargs[i].simpletype() != TypeDesc(TypeDesc::UNKNOWN) &&
polyargs[i].simpletype() != TypeDesc(TypeDesc::UNKNOWN, -1)) {
+ Symbol *origarg = thisarg;
thisarg = coerce (thisarg, polyargs[i]);
+ // Error to type-coerce an output -- where would the result go?
+ if (thisarg != origarg &&
+ ! equivalent (origarg->typespec(), form->typespec()) &&
+ form && form->nodetype() == variable_declaration_node &&
+ ((ASTvariable_declaration *)form)->is_output()) {
+ error ("Cannot pass '%s %s' as argument %d to %s\n\t"
+ "because it is an output parameter that must be a %s",
+ origarg->typespec().c_str(), origarg->name().c_str(),
+ i+1, user_function()->func()->name().c_str(),
+ form->typespec().c_str());
+ }
}
argdest.push_back (thisarg);
+ if (form)
+ form = form->nextptr();
}

if (is_user_function ()) {


array assign can nuke derivatives (issue205043)

cku...@...
 

Reviewers: dev-osl_imagworks.com, osl-dev_googlegroups.com,

Description:
Array assignment was incorrectly clearing the derivatives of all entries
instead of just the derivatives of the entry being assigned.

Please review this at http://codereview.appspot.com/205043/show

Affected files:
src/liboslexec/oparray.cpp


Index: src/liboslexec/oparray.cpp
===================================================================
--- src/liboslexec/oparray.cpp (revision 571)
+++ src/liboslexec/oparray.cpp (working copy)
@@ -176,8 +176,12 @@
// Uniform case
int ind = *index;
(&result[0])[ind] = *src;
- if (Result.has_derivs ())
- exec->zero_derivs (Result);
+ if (Result.has_derivs ()) {
+ // write 0's to this element only
+ int len = Result.typespec().arraylength();
+ memset(&((&result[0])[ind + len]), 0, sizeof(T));
+ memset(&((&result[0])[ind + 2 * len]), 0, sizeof(T));
+ }
} else if (index.is_uniform()) {
// Uniform index, potentially varying src array
int ind = *index;
@@ -186,16 +190,20 @@
(&result[i])[ind] = src[i];

if (Result.has_derivs()) {
+ int len = Result.typespec().arraylength();
if (Src.is_varying() && Src.has_derivs()) {
- int len = Result.typespec().arraylength();
VaryingRef<Dual2<T> > src ((Dual2<T> *)Src.data(), Src.step());
for (int i = beginpoint; i < endpoint; ++i)
if (runflags[i]) {
- (&result[i])[ind+len] = src[i].dx();
- (&result[i])[ind+2*len] = src[i].dy();
+ (&result[i])[ind + len] = src[i].dx();
+ (&result[i])[ind + 2 * len] = src[i].dy();
}
} else {
- exec->zero_derivs (Result);
+ for (int i = beginpoint; i < endpoint; ++i)
+ if (runflags[i]) {
+ memset(&((&result[i])[ind + len]), 0, sizeof(T));
+ memset(&((&result[i])[ind + 2 * len]), 0, sizeof(T));
+ }
}
}
} else {
@@ -205,16 +213,21 @@
(&result[i])[index[i]] = src[i];

if (Result.has_derivs()) {
+ int len = Result.typespec().arraylength();
if (Src.is_varying() && Src.has_derivs()) {
- int len = Result.typespec().arraylength();
VaryingRef<Dual2<T> > src ((Dual2<T> *)Src.data(), Src.step());
for (int i = beginpoint; i < endpoint; ++i)
if (runflags[i]) {
- (&result[i])[index[i]+len] = src[i].dx();
- (&result[i])[index[i]+2*len] = src[i].dy();
+ (&result[i])[index[i] + len] = src[i].dx();
+ (&result[i])[index[i] + 2 * len] = src[i].dy();
}
} else {
- exec->zero_derivs (Result);
+ for (int i = beginpoint; i < endpoint; ++i)
+ if (runflags[i]) {
+ memset(&((&result[i])[index[i] + len]), 0, sizeof(T));
+ memset(&((&result[i])[index[i] + 2 * len]), 0, sizeof(T));
+ }
+
}
}
}


Re: primitive variables

Simon Bunker <si...@...>
 

No problem - just wanted to make sure it is on the list. I realise you
have more fundamental issues to sort out first!

Simon

On Feb 4, 3:40 pm, Larry Gritz <l...@...> wrote:

 I'll remember to do that in the next renderer API I set up.  (Whew, let me get this language stable, then maybe I'll move on to that.)

        -- lg


Re: Review: improve adjust_varying (issue204046)

Larry Gritz <l...@...>
 

On Feb 5, 2010, at 11:03 PM, Solomon Boulos wrote:

I forgot to also second Chris's suggestion that the enter/exit stuff be moved into push/pop_runflags() (which despite sounding like a general utility function is _only_ used when the runflags "changes" -- modulo the note below).
That's not actually true. We push when we first run the shader, and that doesn't change the runflags. And we need to, so that exit() will work correctly.

I suppose we could have an optional argument to push_runflags that says whether we expect the runflags to actually change, and modify the 'diverged' flag only in that case.


--
Larry Gritz
l...@...


Re: Review: improve adjust_varying (issue204046)

Larry Gritz <l...@...>
 

On Feb 5, 2010, at 8:04 PM, <solomo...@...> <solomo...@...> wrote:

http://codereview.appspot.com/204046/diff/1/6#newcode704
src/liboslexec/exec.cpp:704: varying_assignment |= !
running_top_level();
running_top_level() suggests that you can't be inside any conditional
(as does the comment above). Of course the real logic is that you can't
have "diverged". Why not express it in terms of has_not_diverged()?
Yeah, I suppose that's more clear. Chris? Anybody else? Opinions?


http://codereview.appspot.com/204046/diff/1/4
File src/liboslexec/opcontrol.cpp (right):

http://codereview.appspot.com/204046/diff/1/4#newcode172
src/liboslexec/opcontrol.cpp:172: // From here on, varying condition or
potential
Like the if clause above, it seems that we should be checking to see
whether or not the condition is actually identical for all values. That
would mean that it isn't really "varying", we just didn't notice... The
same thing holds for dowhile below.
I'll put in a FIXME for now.

--
Larry Gritz
l...@...


Re: Review: improve adjust_varying (issue204046)

Larry Gritz <l...@...>
 

On Feb 5, 2010, at 6:48 PM, <cku...@...> <cku...@...> wrote:

http://codereview.appspot.com/204046/diff/1/6#newcode386
src/liboslexec/exec.cpp:386: Runflag *orig =
context()->m_original_runflags;
Why is this save/restore needed?
I think it's not. I added it at one point that I was tracking down a bug and never removed it (figuring that it couldn't hurt, and might protect us from subtle bugs some day). I can remove it.


http://codereview.appspot.com/204046/diff/1/6#newcode534
src/liboslexec/exec.cpp:534: run (beginop, endop);
Why is m_conditional_level not set for this case?
Because that branch is for init ops. Um... In retrospect, I guess it can/should be set for both clauses. Let me try it and if nothing breaks I'll do it.

http://codereview.appspot.com/204046/diff/1/4#newcode110
src/liboslexec/opcontrol.cpp:110: exec->enter_conditional ();
Why is this needed? Can't it be handled inside push/pop runflags?
We push/pop runflags for other reasons. Such as in the main run() function. In that case, and possibly other future ones, pushing runflags doesn't necessarily imply that some points have been turned off, only that you want to save the existing runflags in case something later mucks with them. So I do enter/exit_conditional specifically in the places where we reduce to subsets of runflags, which is where it's needed.


http://codereview.appspot.com/204046/diff/1/2#newcode67
src/liboslexec/oslexec_pvt.h:67: #define NO_DEBUG_ADJUST_VARYING
I would prefer having:

// #define DEBUG_ADJUST_VARYING
Sure, why not.


--
Larry Gritz
l...@...


Re: Review: improve adjust_varying (issue204046)

cku...@...
 

Seems like a good change. A few questions about the implementation:
(maybe just needs more comments)


http://codereview.appspot.com/204046/diff/1/6
File src/liboslexec/exec.cpp (right):

http://codereview.appspot.com/204046/diff/1/6#newcode386
src/liboslexec/exec.cpp:386: Runflag *orig =
context()->m_original_runflags;
Why is this save/restore needed?

http://codereview.appspot.com/204046/diff/1/6#newcode534
src/liboslexec/exec.cpp:534: run (beginop, endop);
Why is m_conditional_level not set for this case?

http://codereview.appspot.com/204046/diff/1/4
File src/liboslexec/opcontrol.cpp (right):

http://codereview.appspot.com/204046/diff/1/4#newcode110
src/liboslexec/opcontrol.cpp:110: exec->enter_conditional ();
Why is this needed? Can't it be handled inside push/pop runflags?

http://codereview.appspot.com/204046/diff/1/2
File src/liboslexec/oslexec_pvt.h (right):

http://codereview.appspot.com/204046/diff/1/2#newcode67
src/liboslexec/oslexec_pvt.h:67: #define NO_DEBUG_ADJUST_VARYING
I would prefer having:

// #define DEBUG_ADJUST_VARYING

http://codereview.appspot.com/204046/show


Review: improve adjust_varying (issue204046)

larry...@...
 

Reviewers: ,

Description:
adjust_varying is the function that doctors whether a variable is
uniform or varying based on what is about to be assigned to it. But if
a uniform is being assigned from within a conditional, it needs to be a
varying assignment, since it should only happen on some shading points.

A few days back, Chris Kulla observed that adjust_varying was making
this decision based on all_points_on() as a proxy for whether we were in
a conditional or not... BUT... with the "sparse" batches we are shading
for secondary rays, all points are not turned on, even when we aren't
inside a conditional! So in theory, we weren't taking nearly as much
advantage of uniforms as we should be on secondary rays (and therefore
not getting full performance from batching).

The attached patch addresses this by directly tracking when we are in
nested conditionals, and using that as the basis for the decision.
Result: at least 25% rendering speedup on production assets!

There's also a little bit of additional infrastructure to ensure we
handle orig_runflags carefully, and optionally (by compile-time #define)
gather stats about adjust_varying to verify that it works as expected.


Please review this at http://codereview.appspot.com/204046/show

Affected files:
src/liboslexec/context.cpp
src/liboslexec/exec.cpp
src/liboslexec/opcontrol.cpp
src/liboslexec/oslexec_pvt.h
src/liboslexec/shadingsys.cpp


Re: run flags vs active intervals

Chris Foster <chri...@...>
 

Hi guys,

Nice job with the analysis Larry. It's interesting to see the kinds of
runstates which come out of your renderer, especially the apparent
predominance of really sparse states (at a quick eyeball). Based on the
spareseness, my analysis from a week ago would suggest that the indices are
going to win handily, and your data definitely confirms that!


To find out exactly what the average sparseness is, here's a script.

--------------------------------------------------
#!/usr/bin/python

from __future__ import division

f = open('rf.txt')

fractionOn = 0
totStates = 0

for line in f.readlines():
line = line.split()
count = int(line[0])
rf = [int(f) for f in line[2:]]
nFlags = len(rf)
nOn = len(filter(lambda x: x == 1, rf))
fractionOn += count * nOn/nFlags
totStates += count

fractionOn /= totStates

print fractionOn
--------------------------------------------------

The output for your data - excluding the 4285 non-batched points for which the
indices win anyway - is an average fraction of 0.31 states turned on which
matches with the impression you get from looking at the states by eye.


Almost the only cases where the spans method wins definitively are the all-on
case, so I agree that a special case optimization is in order. I found the
timings for the following mostly-on state particularly interesting:

runflags 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1
span 0 3 4 11 12 14 15 37 38 42 43 52 53 68 72 77 78 81
indices 0 1 2 4 5 6 7 8 9 10 12 13 15 16 17 18 19 20 21 22 23 24 25
26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 43 44 45 46 47 48 49 50
51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 72 73 74 75 76 78 79
80

runflags: 16.87
spans: 14.48
indices: 14.78

My intuition _was_ that the spans method would win quite comfortably here (given
that it appears to win handily in the all-on case), but no, it doesn't!


Regarding implementation, it would be nice to find a way to specify the
iteration strategy in a single place in the codebase. In the absence of
non-clumsy closure support in the C++, maybe a macro is in order?

#define RUNSTATE_LOOP(runstate, currIdx, loopBody) \
if(runstate.nactive == runstate.npoints) {
/* optimization for all active points */
for(int currIdx = 0; currIdx < runstate.nactive; ++currIdx) {
loopBody
}
}
else {
for(int j = 0; j < runstate.nactive; ++j) {
int currIdx = runstate.active[j];
loopBody
}
}


This would replace current stuff like

for (int i = beginpoint; i < endpoint; ++i)
if (runflags[i])
function (result[i], a[i], b[i], c[i], d[i]);

with

RUNSTATE_LOOP(runstate, i,
function (result[i], a[i], b[i], c[i], d[i]);
)


Ok, I don't like having to use a macro, but IMHO this is probably more
maintainable than the alternatives. Is it general enough?

Note that I've assumed that your runstates are passed around as a
self-contained but lightweight struct rather than the (runflags, beginactive,
endactive) triple currently used.


~Chris.


Re: Review: oslc -E (issue201057)

cku...@...
 


Review: oslc -E (issue201057)

larry...@...
 

Reviewers: ,

Description:
Like gcc, allow a "-E" option to oslc that just outputs the result of
preprocessing.


Please review this at http://codereview.appspot.com/201057/show

Affected files:
src/liboslcomp/oslcomp.cpp
src/oslc/oslcmain.cpp


Index: src/liboslcomp/oslcomp.cpp
===================================================================
--- src/liboslcomp/oslcomp.cpp (revision 565)
+++ src/liboslcomp/oslcomp.cpp (working copy)
@@ -167,6 +167,7 @@
}

m_output_filename.clear ();
+ bool preprocess_only = false;
for (size_t i = 0; i < options.size(); ++i) {
if (options[i] == "-v") {
// verbose mode
@@ -174,6 +175,8 @@
} else if (options[i] == "-d") {
// debug mode
m_debug = true;
+ } else if (options[i] == "-E") {
+ preprocess_only = true;
} else if (options[i] == "-o" && i < options.size()-1) {
++i;
m_output_filename = options[i];
@@ -204,7 +207,19 @@
std::filebuf fb (cpppipe);
#endif

- if (fb.is_open()) {
+ if (! cpppipe || ! fb.is_open()) {
+ // File didn't open
+ std::cerr << "Could not run '" << cppcommand.c_str() << "'\n";
+
+ } else if (preprocess_only) {
+ char buf[1024*32];
+ while (! feof (cpppipe)) {
+ if (! fgets (buf, sizeof(buf)-1, cpppipe))
+ break;
+ std::cout << buf;
+ }
+
+ } else {
std::istream in (&fb);
oslcompiler = this;

@@ -248,6 +263,9 @@
oslcompiler = NULL;
}

+ if (cpppipe)
+ fclose (cpppipe);
+
return ! error_encountered();
}

Index: src/oslc/oslcmain.cpp
===================================================================
--- src/oslc/oslcmain.cpp (revision 565)
+++ src/oslc/oslcmain.cpp (working copy)
@@ -54,6 +54,7 @@
"\t-Usym Undefine preprocessor symbol\n"
"\t-O0, -O1, -O2 Set optimization level (default=1)\n"
"\t-d Debug mode\n"
+ "\t-E Only preprocess the input and output to stdout\n"
;
}

@@ -76,6 +77,7 @@
}
else if (! strcmp (argv[a], "-v") ||
! strcmp (argv[a], "-d") ||
+ ! strcmp (argv[a], "-E") ||
! strcmp (argv[a], "-O") || ! strcmp (argv[a], "-O0") ||
! strcmp (argv[a], "-O1") || ! strcmp (argv[a], "-O2")) {
// Valid command-line argument


Re: run flags vs active intervals

Larry Gritz <l...@...>
 

The most important data point is that runflags are a big loser for the vast majority of run states that we see. So moving to one of the others (almost certainly indices) is at the top of my plate.

By the way, when we first opened OSL a few weeks back, we noted that we were working hard on optimization, still being 5-10x slower than our old C shaders. We've been working with a target production frame that was a bit of a worst-case scenario, which was slightly more that 15x slower than the equivalent frame with our old C shaders as of 3 weeks ago. At the beginning of this week, we had closed the gap on this scene to 3.5x (not counting changes from this week). Which we think means that less worst-case scenarios are probably getting very close to parity, and we are still working on more optimization, as you can see from this thread.

Some of that speedup was due to changes on the OSL side (all of which you have seen played out in reviews and checkins), but the lion's share was due to changing the renderer to batch the shading requests, including secondary rays. There are two big takeaways for you, dear readers:

1. Tales of OSL's inherent slowness where highly exaggerated. All along, most of the performance problem was due to our renderer's habit of shading one point at a time (despite liboslexec's being designed around batches). When we finally batched the points (especially secondary rays, even when we could only batch a few), and rewrote our integrator to be batch-oriented, we squeezed out a factor of 5 quite easily.

2. For those of you integrating OSL into other renderers, please learn from our mistake and use batches from the start!

-- lg


On Feb 4, 2010, at 11:42 AM, Larry Gritz wrote:

On Feb 4, 2010, at 11:32 AM, Christopher Kulla wrote:

My interpretation of these results is that indices always win - unless
we have a single span.
Spans only beat indices if there are is a single large span of 1's, or a large batch that is almost all 1's. (That's most primary batches, but nothing else.)


It might be worth using indices but having an
"all_points_sequential" optimization for simple ops where the
indirection overhead would be noticeable (all the templated ops can
get this for free)
That may be a good compromise. I think indices are a clear winner in all other cases, so perhaps this will eliminate the overhead in the few cases that spans seem to win, and then we're golden.


By the way - I don't really understand how you got any runflag
sequences that started with 0. Did you always dump out "npoints" or
only "begin/end" ?
I dumped out "npoints" but for the index test, only loop on [begin,end), as we do in the real shadeops. So there is no penalty for strings of 0's on either end. So primary batches (or conditional modifications to primary batches) can start with 0. Non-conditional secondary batches always start with 1 (because of the way our renderer sends them to OSL).
--
Larry Gritz
l...@...


Re: run flags vs active intervals

Larry Gritz <l...@...>
 

On Feb 4, 2010, at 11:32 AM, Christopher Kulla wrote:

My interpretation of these results is that indices always win - unless
we have a single span.
Spans only beat indices if there are is a single large span of 1's, or a large batch that is almost all 1's. (That's most primary batches, but nothing else.)


It might be worth using indices but having an
"all_points_sequential" optimization for simple ops where the
indirection overhead would be noticeable (all the templated ops can
get this for free)
That may be a good compromise. I think indices are a clear winner in all other cases, so perhaps this will eliminate the overhead in the few cases that spans seem to win, and then we're golden.


By the way - I don't really understand how you got any runflag
sequences that started with 0. Did you always dump out "npoints" or
only "begin/end" ?
I dumped out "npoints" but for the index test, only loop on [begin,end), as we do in the real shadeops. So there is no penalty for strings of 0's on either end. So primary batches (or conditional modifications to primary batches) can start with 0. Non-conditional secondary batches always start with 1 (because of the way our renderer sends them to OSL).


--
Larry Gritz
l...@...


Re: run flags vs active intervals

Larry Gritz <l...@...>
 

OK, so what do we make of all this? I've quoted a few interesting cases below.


Most of the unique state patterns look like this, typical sparse runflags from secondary ray batches: runflags are awful, they spend too much time on points that are "off" (and the bigger the batches are, the more runflags suck). Either spans or indices are a HUGE speedup (2-8x, depending on batch size), with indices being about 20% faster than spans.

runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 93 95 102 103 146 147 191 192
indices 0 93 94 102 146 191

runflags: 18.31
spans: 2.15
indices: 1.72


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 64 65
indices 0 64

runflags: 5.21
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 1
span 0 1 10 11
indices 0 10

runflags: 1.76
spans: 1.11
indices: 0.91

But when npoints is sufficiently small, runflags wins (though indices are VERY close in speed):


runflags 1 0 0 1
span 0 1 3 4
indices 0 3

runflags: 0.88
spans: 1.11
indices: 0.91

runflags 1 0 1
span 0 1 2 3
indices 0 2

runflags: 0.86
spans: 1.11
indices: 0.91

The very common case of a single point on:

runflags 1
span 0 1
indices 0

runflags: 0.68
spans: 0.84
indices: 0.75

In typical inside-conditional states or fairly coherent secondaries, indices are the clear winner, even beating spans handily:

runflags 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1
span 0 1 2 3 5 7 9 12 15 16 18 21 22 24 25 27 28 29 31 36 41 42 43 46 47 48 49 50 51 53 54 57 60 61 64 65 67 68 71 72 73 74 75 79 85 87 89 92 96 98 99 100 103 104 106 107 112 116 117 118
indices 0 2 5 6 9 10 11 15 18 19 20 22 23 25 26 28 31 32 33 34 35 41 43 44 45 47 49 51 52 54 55 56 60 64 67 71 73 75 76 77 78 85 86 89 90 91 96 97 99 103 106 112 113 114 115 117

runflags: 36.97
spans: 23.11
indices: 11.66


runflags 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1
span 0 1 2 6 10 11 13 16 23 24 27 29 32 33 37 39 40 43 46 48 52 54 62 65 66 67 68 69 72 73 74 77 78 79 80 81
indices 0 2 3 4 5 10 13 14 15 23 27 28 32 37 38 40 41 42 46 47 52 53 62 63 64 66 68 72 74 75 76 78 80

runflags: 20.25
spans: 13.32
indices: 7.15

But for long spans of 1's, which are very rare for secondaries but dominate primary batches, spans are the fastest and indices the slowest:


runflags 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
span 0 2 3 23 24 42 43 61
indices 0 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

runflags: 10.07
spans: 9.22
indices: 12.09


runflags 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
span 0 16
indices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

runflags: 2.86
spans: 2.73
indices: 3.72


runflags 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1
span 0 16 17 22 23 27 29 32 33 34 36 41
indices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 18 19 20 21 23 24 25 26 29 30 31 33 36 37 38 39 40

runflags: 8.90
spans: 8.39
indices: 7.31




runflags 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
span 0 48
indices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

runflags: 7.54
spans: 7.14
indices: 10.08


runflags 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
span 0 102
indices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

runflags: 15.89
spans: 13.90
indices: 21.14
--
Larry Gritz
l...@...


Re: run flags vs active intervals

Larry Gritz <l...@...>
 

Next installment of "everything you wanted to know about runflags but were afraid to ask."

So after sampling representative runflags from a frame with production shaders and assets, next I wrote a test program. I started with Chris F's, but I think by the end there wasn't any of his left. My test differs from Chris' in two ways: (1) the loops have been rewritten to use VaryingRef and to add Vec3's, so it a little more closely resembles a typical math shadeop; (2) it runs the test for each of a large set of runflags, which are read from an input file. (That input file is, of course, a slightly modified version of the sampled rf states I mailed earlier -- no frequency count.)

For each of the run state samples, it runs 50,000,000 times for each of runflags, Chris F's spans, and Chris K's indices.

I won't keep you in suspense. Here are the results. Times are all in seconds, single threaded, compiled with "g++ -O3". (Test program and input data set also attached.) I'll discuss in a follow-up email.

Don't just read the first few, there are interesting results at the end, too.


---

runflags 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 14 15 35 36 50 51 145 146
indices 14 35 50 145

runflags: 12.01
spans: 1.72
indices: 1.34


runflags 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1
span 7 8 17 18 20 21 34 37 47 48 51 52 54 55 82 83 106 108 109 110 115 116 117 118 132 133 134 135 175 176 181 182 189 190 194 195 206 207 208 209 210 211 215 217 227 228 237 238 242 243 248 249
indices 7 17 20 34 35 36 47 51 54 82 106 107 109 115 117 132 134 175 181 189 194 206 208 210 215 216 227 237 242 248

runflags: 36.03
spans: 9.52
indices: 6.53


runflags 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 4 5 21 22 37 38
indices 4 21 37

runflags: 4.72
spans: 1.41
indices: 1.17


runflags 0 0 0 1 0 0 0 1 0 0 0 1
span 3 4 7 8 11 12
indices 3 7 11

runflags: 1.28
spans: 1.41
indices: 1.16


runflags 1
span 0 1
indices 0

runflags: 0.68
spans: 0.84
indices: 0.75


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 156 157
indices 0 156

runflags: 11.16
spans: 1.11
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 93 95 102 103 146 147 191 192
indices 0 93 94 102 146 191

runflags: 18.31
spans: 2.15
indices: 1.72


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 92 93 104 105 178 179
indices 0 92 104 178

runflags: 14.80
spans: 1.72
indices: 1.34


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 90 91
indices 0 90

runflags: 7.24
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 66 67 143 144
indices 0 66 143

runflags: 11.35
spans: 1.41
indices: 1.17


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 64 65
indices 0 64

runflags: 5.21
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 56 57 88 89 100 101 122 123 131 132 157 158 216 217
indices 0 56 88 100 122 131 157 216

runflags: 20.54
spans: 2.91
indices: 2.12


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 55 56 76 77
indices 0 55 76

runflags: 7.60
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 54 55
indices 0 54

runflags: 4.59
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
span 0 1 54 56 71 72 149 151
indices 0 54 55 71 149 150

runflags: 13.99
spans: 2.01
indices: 1.72


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 53 54
indices 0 53

runflags: 4.51
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 53 54 73 74
indices 0 53 73

runflags: 7.46
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 52 53
indices 0 52

runflags: 4.46
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 50 51
indices 0 50

runflags: 4.29
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 48 50 66 69 85 86 129 132 146 148 164 165
indices 0 48 49 66 67 68 85 129 130 131 146 147 164

runflags: 17.99
spans: 4.13
indices: 3.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 47 48
indices 0 47

runflags: 4.15
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 47 48 65 66
indices 0 47 65

runflags: 7.09
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
span 0 1 47 48 51 52
indices 0 47 51

runflags: 6.64
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
span 0 1 36 37 65 66 108 109 129 131 147 148 152 153 168 169 177 178 180 181 196 197 225 226 229 230
indices 0 36 65 108 129 130 147 152 168 177 180 196 225 229

runflags: 26.13
spans: 4.69
indices: 3.33


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 34 35
indices 0 34

runflags: 3.59
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 33 34 81 82
indices 0 33 81

runflags: 8.03
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 33 34 45 46 50 51 53 54 67 69 115 116 128 129 150 151
indices 0 33 45 50 53 67 68 115 128 150

runflags: 16.97
spans: 3.32
indices: 2.54


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 31 32
indices 0 31

runflags: 3.36
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 30 31
indices 0 30

runflags: 3.35
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
span 0 1 30 31 32 33
indices 0 30 32

runflags: 3.88
spans: 1.41
indices: 1.17


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 29 30
indices 0 29

runflags: 3.01
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
span 0 1 29 30 67 68 133 134 136 137 160 161 172 173 207 208 224 225 235 236 246 247
indices 0 29 67 133 136 160 172 207 224 235 246

runflags: 25.92
spans: 3.86
indices: 2.76


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 28 29
indices 0 28

runflags: 2.93
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 28 29 82 83 192 193
indices 0 28 82 192

runflags: 17.65
spans: 1.73
indices: 1.33


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1
span 0 1 28 29 67 68 73 74 80 81 98 99 125 126 143 145 150 151 152 154 186 187 198 199 206 207 217 218 224 225 228 229 234 235 239 242
indices 0 28 67 73 80 98 125 143 144 150 152 153 186 198 206 217 224 228 234 239 240 241

runflags: 30.53
spans: 7.85
indices: 6.17


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
span 0 1 28 29 32 33
indices 0 28 32

runflags: 4.93
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1
span 0 1 27 28 47 48 58 59 60 61 77 79 94 95 111 113 118 119 145 146 149 150 162 164
indices 0 27 47 58 60 77 78 94 111 112 118 145 149 162 163

runflags: 21.31
spans: 5.07
indices: 3.57


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
span 0 1 27 28 31 32
indices 0 27 31

runflags: 4.82
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
span 0 1 26 27 33 35
indices 0 26 33 34

runflags: 5.12
spans: 1.59
indices: 1.33


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 25 26
indices 0 25

runflags: 2.77
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 25 26 84 85
indices 0 25 84

runflags: 8.12
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 24 25 36 37
indices 0 24 36

runflags: 4.86
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 24 25 35 36 37 38 40 41 42 43 55 56
indices 0 24 35 37 40 42 55

runflags: 7.08
spans: 2.61
indices: 1.96


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1
span 0 1 23 24 34 35 37 38
indices 0 23 34 37

runflags: 4.89
spans: 1.75
indices: 1.38


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
span 0 1 23 24 29 30 40 41
indices 0 23 29 40

runflags: 5.42
spans: 1.72
indices: 1.34


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 23 25 32 33 36 37 44 45 56 57
indices 0 23 24 32 36 44 56

runflags: 9.27
spans: 2.64
indices: 1.95


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 22 23
indices 0 22

runflags: 2.56
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 21 22
indices 0 21

runflags: 2.46
spans: 1.10
indices: 0.92


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
span 0 1 20 21 31 32
indices 0 20 31

runflags: 4.55
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
span 0 1 20 21 28 29
indices 0 20 28

runflags: 4.35
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 19 20
indices 0 19

runflags: 2.45
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
span 0 1 19 20 21 22 23 24 32 33 52 53 56 57 65 66 80 81 87 89 105 106 119 120 128 129 148 149 176 178 183 184 187 188 193 194 199 200 203 204 212 213 219 220 233 235
indices 0 19 21 23 32 52 56 65 80 87 88 105 119 128 148 176 177 183 187 193 199 203 212 219 233 234

runflags: 33.48
spans: 8.60
indices: 5.71


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1
span 0 1 19 21 57 58 59 60 66 67
indices 0 19 20 57 59 66

runflags: 8.06
spans: 2.15
indices: 1.73


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 18 19
indices 0 18

runflags: 2.36
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 17 18 49 50
indices 0 17 49

runflags: 5.85
spans: 1.41
indices: 1.17


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1
span 0 1 17 18 33 34 48 49 64 65 70 71 72 73 85 87 88 89 98 99
indices 0 17 33 48 64 70 72 85 86 88 98

runflags: 13.74
spans: 3.61
indices: 2.76


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 17 18 32 33 49 50 67 68 79 80
indices 0 17 32 49 67 79

runflags: 10.14
spans: 2.22
indices: 1.79


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 16 17
indices 0 16

runflags: 2.42
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 15 16
indices 0 15

runflags: 2.11
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1
span 0 1 15 16 32 34 64 65 94 96 97 98 108 109 124 125 128 129 143 144 154 155 156 158 173 175 188 189 192 193 202 203 205 209 216 219 221 222 223 226 232 233 236 238 239 240 241 242
indices 0 15 32 33 64 94 95 97 108 124 128 143 154 156 157 173 174 188 192 202 205 206 207 208 216 217 218 221 223 224 225 232 236 237 239 241

runflags: 37.51
spans: 13.81
indices: 7.69


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 14 15 30 31
indices 0 14 30

runflags: 4.24
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 13 14
indices 0 13

runflags: 1.96
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1
span 0 1 13 14 20 21
indices 0 13 20

runflags: 3.81
spans: 1.41
indices: 1.17


runflags 1 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 12 13
indices 0 12

runflags: 1.93
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 12 13 30 31
indices 0 12 30

runflags: 4.48
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1
span 0 1 12 13 22 23 43 44 46 47 54 55
indices 0 12 22 43 46 54

runflags: 8.07
spans: 2.22
indices: 1.72


runflags 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1
span 0 1 12 13 16 17 20 21 25 27 29 30 32 33 39 40
indices 0 12 16 20 25 26 29 32 39

runflags: 8.46
spans: 3.21
indices: 2.37


runflags 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1
span 0 1 12 14 15 16 19 20 33 34 56 57 74 75 79 80 81 82 84 85 86 87 94 95
indices 0 12 13 15 19 33 56 74 79 81 84 86 94

runflags: 14.83
spans: 4.30
indices: 3.17


runflags 1 0 0 0 0 0 0 0 0 0 0 1
span 0 1 11 12
indices 0 11

runflags: 2.02
spans: 1.14
indices: 0.96


runflags 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
span 0 1 11 12 67 68 79 80 82 83
indices 0 11 67 79 82

runflags: 8.41
spans: 1.99
indices: 1.54


runflags 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 11 12 57 59 60 61 74 75 107 108 112 113 122 123 124 125 136 137 138 139 141 142 152 153 170 171
indices 0 11 57 58 60 74 107 112 122 124 136 138 141 152 170

runflags: 21.09
spans: 4.79
indices: 3.57


runflags 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1
span 0 1 11 12 17 18 26 27 30 31 48 49 59 60 63 65
indices 0 11 17 26 30 48 59 63 64

runflags: 10.78
spans: 3.05
indices: 2.37


runflags 1 0 0 0 0 0 0 0 0 0 1
span 0 1 10 11
indices 0 10

runflags: 1.76
spans: 1.11
indices: 0.91


runflags 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 10 11 48 49 98 99 123 124 136 137 145 146 159 160 185 186 192 193 197 198 222 223
indices 0 10 48 98 123 136 145 159 185 192 197 222

runflags: 24.92
spans: 3.95
indices: 2.99


runflags 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
span 0 1 10 11 20 21
indices 0 10 20

runflags: 3.84
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1
span 0 1 10 12 19 20 25 26
indices 0 10 11 19 25

runflags: 5.47
spans: 1.83
indices: 1.53


runflags 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
span 0 1 10 12 15 17 18 19 21 22 25 27 28 29 32 33 35 36 40 41 45 46 56 57
indices 0 10 11 15 16 18 21 25 26 28 32 35 40 45 56

runflags: 14.49
spans: 4.47
indices: 3.57


runflags 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1
span 0 1 9 10 30 31 53 54 60 61 69 71 76 77 85 86 90 91 106 107 110 111 145 146 152 153 160 161 165 166 173 174 182 183 184 185 186 187 200 201 209 210
indices 0 9 30 53 60 69 70 76 85 90 106 110 145 152 160 165 173 182 184 186 200 209

runflags: 30.47
spans: 6.98
indices: 4.92


runflags 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1
span 0 1 9 10 29 30 39 40 52 53 56 57 62 63 64 65
indices 0 9 29 39 52 56 62 64

runflags: 9.84
spans: 2.90
indices: 2.13


runflags 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
span 0 1 9 10 23 25 46 48
indices 0 9 23 24 46 47

runflags: 6.98
spans: 1.99
indices: 1.72


runflags 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1
span 0 1 9 10 16 17 22 23
indices 0 9 16 22

runflags: 4.10
spans: 1.72
indices: 1.33


runflags 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1
span 0 1 9 10 14 15 16 17 19 21 29 30
indices 0 9 14 16 19 20 29

runflags: 6.14
spans: 2.39
indices: 1.94


runflags 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1
span 0 1 9 10 13 14 16 17 21 22 26 27 28 30 45 46 48 49 52 53 55 57 59 61 62 63 74 75 77 78 79 80 81 82 84 85
indices 0 9 13 16 21 26 28 29 45 48 52 55 56 59 60 62 74 77 79 81 84

runflags: 21.07
spans: 7.52
indices: 4.75


runflags 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
span 0 1 9 12 15 16 23 24 30 33 40 41 61 62 66 67 101 102 103 104
indices 0 9 10 11 15 23 30 31 32 40 61 66 101 103

runflags: 14.92
spans: 3.88
indices: 3.33


runflags 1 0 0 0 0 0 0 0 1
span 0 1 8 9
indices 0 8

runflags: 1.72
spans: 1.12
indices: 0.91


runflags 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 8 9 25 26 29 30 60 62 66 67 69 70 83 84 89 90 98 99 100 101 103 105 111 112 114 115 122 123 133 134 147 148 166 167 185 186 187 188 203 204
indices 0 8 25 29 60 61 66 69 83 89 98 100 103 104 111 114 122 133 147 166 185 187 203

runflags: 29.89
spans: 7.18
indices: 5.15


runflags 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1
span 0 1 8 9 17 18
indices 0 8 17

runflags: 3.53
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1
span 0 1 8 9 14 15
indices 0 8 14

runflags: 3.09
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 0 1 0 0 0 0 1
span 0 1 8 9 13 14
indices 0 8 13

runflags: 3.02
spans: 1.41
indices: 1.17


runflags 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 8 9 11 12 41 42
indices 0 8 11 41

runflags: 5.39
spans: 1.72
indices: 1.34


runflags 1 0 0 0 0 0 0 1
span 0 1 7 8
indices 0 7

runflags: 1.68
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
span 0 1 7 8 17 18
indices 0 7 17

runflags: 2.64
spans: 1.41
indices: 1.16


runflags 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
span 0 1 7 8 16 17 26 27
indices 0 7 16 26

runflags: 4.80
spans: 1.72
indices: 1.33


runflags 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1
span 0 1 7 8 9 10 18 19 20 21 22 23 26 27 32 33 34 35 40 41 46 47 61 62 66 67 72 73 74 75 87 88 90 91 95 97 98 99 100 101 105 106 114 115 117 118 119 120 124 125 133 134 135 136 147 148 155 156 167 169 182 183 188 189 192 193 211 212 217 218 220 222 228 229 231 232
indices 0 7 9 18 20 22 26 32 34 40 46 61 66 72 74 87 90 95 96 98 100 105 114 117 119 124 133 135 147 155 167 168 182 188 192 211 217 220 221 228 231

runflags: 44.23
spans: 12.99
indices: 8.76


runflags 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1
span 0 1 7 8 9 10 17 18
indices 0 7 9 17

runflags: 2.80
spans: 1.72
indices: 1.33


runflags 1 0 0 0 0 0 1
span 0 1 6 7
indices 0 6

runflags: 1.51
spans: 1.10
indices: 0.91


runflags 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1
span 0 1 6 7 41 42 44 45 49 50 54 55 60 61
indices 0 6 41 44 49 54 60

runflags: 8.23
spans: 2.61
indices: 1.94


runflags 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 6 7 24 25 44 45
indices 0 6 24 44

runflags: 6.17
spans: 1.72
indices: 1.33


runflags 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1
span 0 1 6 7 14 15 16 17 21 22 27 29 31 32 33 35 39 41 43 44 45 46 52 54 59 60 62 63 64 65 70 72 78 79
indices 0 6 14 16 21 27 28 31 33 34 39 40 43 45 52 53 59 62 64 70 71 78

runflags: 18.97
spans: 7.91
indices: 4.92


runflags 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1
span 0 1 6 7 11 12 14 15 18 19 23 24 28 29 31 32 35 36 40 41 49 50 51 52 53 54 60 62 64 66
indices 0 6 11 14 18 23 28 31 35 40 49 51 53 60 61 64 65

runflags: 14.65
spans: 5.94
indices: 3.95


runflags 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 6 7 9 10 13 14 16 17 20 21 33 34 48 49 55 56 73 74
indices 0 6 9 13 16 20 33 48 55 73

runflags: 11.83
spans: 3.37
indices: 2.54


runflags 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1
span 0 1 6 7 9 10 12 13 18 19 23 24 31 32 34 36 38 39 41 42 46 47 48 49 50 51 54 56 59 60 62 63 66 67 69 70 71 73 74 75 79 80 86 88 90 91 93 94 96 99 105 106 111 112 115 116 118 119 124 126 128 129 130 132 135 137 141 142 143 148 156 157 159 160 162 163 165 166 197 199 204 205 211 212 223 225 226 228 233 234 243 244 249 250 253 255
indices 0 6 9 12 18 23 31 34 35 38 41 46 48 50 54 55 59 62 66 69 71 72 74 79 86 87 90 93 96 97 98 105 111 115 118 124 125 128 130 131 135 136 141 143 144 145 146 147 156 159 162 165 197 198 204 211 223 224 226 227 233 243 249 253 254

runflags: 56.93
spans: 22.64
indices: 15.66


runflags 1 0 0 0 0 0 1 0 1
span 0 1 6 7 8 9
indices 0 6 8

runflags: 1.95
spans: 1.39
indices: 1.17


runflags 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1
span 0 1 6 7 8 9 12 13 18 19 20 25
indices 0 6 8 12 18 20 21 22 23 24

runflags: 6.14
spans: 3.61
indices: 2.54


runflags 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1
span 0 1 6 8 9 10 15 16 18 19 24 25
indices 0 6 7 9 15 18 24

runflags: 5.83
spans: 2.42
indices: 1.94


runflags 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1
span 0 1 6 8 9 10 11 12 13 15 16 17 38 39 43 45 46 47 49 50 58 59 60 61 67 68 70 72 77 78 83 85 87 88 91 92 107 108 116 117 124 125 127 129 131 133 135 137 145 146 148 150 154 155 157 158 159 163 174 175 178 180 182 183 184 186 195 197 200 201 208 209 216 217 218 219 227 228 229 230 237 238 243 244 245 246
indices 0 6 7 9 11 13 14 16 38 43 44 46 49 58 60 67 70 71 77 83 84 87 91 107 116 124 127 128 131 132 135 136 145 148 149 154 157 159 160 161 162 174 178 179 182 184 185 195 196 200 208 216 218 227 229 237 243 245

runflags: 52.67
spans: 20.64
indices: 12.09


runflags 1 0 0 0 0 1
span 0 1 5 6
indices 0 5

runflags: 1.64
spans: 1.11
indices: 0.91


runflags 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
span 0 1 5 6 22 23 30 31
indices 0 5 22 30

runflags: 4.45
spans: 1.72
indices: 1.33


runflags 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 5 6 17 18 19 21 22 23 61 62
indices 0 5 17 19 20 22 61

runflags: 8.03
spans: 2.45
indices: 1.94


runflags 1 0 0 0 0 1 0 0 0 0 0 0 1
span 0 1 5 6 12 13
indices 0 5 12

runflags: 2.65
spans: 1.39
indices: 1.16


runflags 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1
span 0 1 5 6 11 13 23 24 26 27 30 31 34 35 37 38 39 40
indices 0 5 11 12 23 26 30 34 37 39

runflags: 9.18
spans: 3.36
indices: 2.54


runflags 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 5 6 9 10 21 22 35 36 38 39 45 46 52 54 62 63 89 90 104 105
indices 0 5 9 21 35 38 45 52 53 62 89 104

runflags: 15.37
spans: 3.88
indices: 2.92


runflags 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1
span 0 1 5 6 9 10 11 14 15 16 18 19 22 24 29 30 32 34 45 46 47 49 50 52 62 63 70 71 73 74 84 85 90 91 92 93
indices 0 5 9 11 12 13 15 18 22 23 29 32 33 45 47 48 50 51 62 70 73 84 90 92

runflags: 18.59
spans: 7.55
indices: 5.32


runflags 1 0 0 0 0 1 0 1 0 0 1
span 0 1 5 6 7 8 10 11
indices 0 5 7 10

runflags: 2.04
spans: 1.93
indices: 1.33


runflags 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1
span 0 1 5 7 9 12 13 14 17 19
indices 0 5 6 9 10 11 13 17 18

runflags: 3.40
spans: 2.55
indices: 2.37


runflags 1 0 0 0 0 1 1 1
span 0 1 5 8
indices 0 5 6 7

runflags: 2.07
spans: 1.41
indices: 1.33


runflags 1 0 0 0 1
span 0 1 4 5
indices 0 4

runflags: 0.99
spans: 1.14
indices: 0.96


runflags 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 4 5 23 24
indices 0 4 23

runflags: 3.87
spans: 1.41
indices: 1.16


runflags 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0
span 0 1 4 5 13 14
indices 0 4 13

runflags: 3.20
spans: 1.41
indices: 1.16


runflags 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1
span 0 1 4 5 6 7 12 13 22 23 28 29 34 37
indices 0 4 6 12 22 28 34 35 36

runflags: 7.03
spans: 2.98
indices: 2.37


runflags 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1
span 0 1 4 5 6 9 18 19 22 23 31 32 35 36 45 47 54 55 56 57 60 61 63 64 66 67
indices 0 4 6 7 8 18 22 31 35 45 46 54 56 60 63 66

runflags: 14.18
spans: 5.37
indices: 3.71


runflags 1 0 0 0 1 1
span 0 1 4 6
indices 0 4 5

runflags: 1.09
spans: 1.25
indices: 1.16


runflags 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1
span 0 1 4 6 7 8 11 12 15 16 17 20
indices 0 4 5 7 11 15 17 18 19

runflags: 3.94
spans: 2.72
indices: 2.36


runflags 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1
span 0 1 4 25 26 29 30 35 36 37 38 40 41 43 44 47 48 50
indices 0 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 30 31 32 33 34 36 38 39 41 42 44 45 46 48 49

runflags: 9.64
spans: 11.57
indices: 8.48


runflags 1 0 0 1
span 0 1 3 4
indices 0 3

runflags: 0.88
spans: 1.11
indices: 0.91


runflags 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1
span 0 1 3 4 13 16 17 18 20 22 26 28 30 32 33 34 36 37 40 41 48 49 51 52 54 55 56 57 60 63 67 68 74 75 78 79 81 82 83 84 86 88 90 91 95 96
indices 0 3 13 14 15 17 20 21 26 27 30 31 33 36 40 48 51 54 56 60 61 62 67 74 78 81 83 86 87 90 95

runflags: 25.70
spans: 10.95
indices: 8.67


runflags 1 0 0 1 0 0 0 0 0 1
span 0 1 3 4 9 10
indices 0 3 9

runflags: 2.20
spans: 1.41
indices: 1.16


runflags 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1
span 0 1 3 4 8 9 14 17 23 24 26 28 29 30
indices 0 3 8 14 15 16 23 26 27 29

runflags: 6.89
spans: 2.94
indices: 2.54


runflags 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
span 0 1 3 4 7 8 17 18 25 26
indices 0 3 7 17 25

runflags: 3.98
spans: 1.99
indices: 1.53


runflags 1 0 0 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1
span 0 1 3 4 7 10 11 13 16 17 19 20 21 22 33 34 36 37 38 39 42 43 44 46 47 48
indices 0 3 7 8 9 11 12 16 19 21 33 36 38 42 44 45 47

runflags: 11.19
spans: 5.52
indices: 3.95


runflags 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1
span 0 1 3 4 6 7 10 11 16 17 23 24 27 28 34 35 38 39 48 49 51 52 56 57 59 60 65 67 68 69 71 72 75 76 79 80 87 88 90 94 95 97 100 102 105 106 107 109 110 111 115 118 120 121 124 127 128 132 136 139 140 141 147 148 150 151 155 157 167 168 181 183 185 186 187 189 190 191 195 196 198 200 217 218 219 221 227 228 229 230 233 235 238 239 240 241 242 243 248 250
indices 0 3 6 10 16 23 27 34 38 48 51 56 59 65 66 68 71 75 79 87 90 91 92 93 95 96 100 101 105 107 108 110 115 116 117 120 124 125 126 128 129 130 131 136 137 138 140 147 150 155 156 167 181 182 185 187 188 190 195 198 199 217 219 220 227 229 233 234 238 240 242 248 249

runflags: 61.60
spans: 27.20
indices: 15.62


runflags 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1
span 0 1 3 4 6 8 13 14 15 16 19 20 21 24 25 26 28 30 37 40 43 44 50 51 52 53 54 58 61 63 73 74 78 79 84 85
indices 0 3 6 7 13 15 19 21 22 23 25 28 29 37 38 39 43 50 52 54 55 56 57 61 62 73 78 84

runflags: 19.25
spans: 10.91
indices: 6.10


runflags 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1
span 0 1 3 4 5 6 8 9 19 20 26 27 31 33 37 38 50 51 63 65 74 76 78 79 81 82 86 87 90 91 93 95 100 101 103 104 105 106 108 109 113 114 115 116
indices 0 3 5 8 19 26 31 32 37 50 63 64 74 75 78 81 86 90 93 94 100 103 105 108 113 115

runflags: 23.11
spans: 8.79
indices: 5.71


runflags 1 0 0 1 1
span 0 1 3 5
indices 0 3 4

runflags: 1.23
spans: 1.33
indices: 1.24


runflags 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1
span 0 1 3 5 30 33 37 38 39 40 47 48 49 50
indices 0 3 4 30 31 32 37 39 47 49

runflags: 7.25
spans: 3.09
indices: 2.54


runflags 1 0 0 1 1 0 0 0 0 0 0 0 1
span 0 1 3 5 12 13
indices 0 3 4 12

runflags: 2.61
spans: 1.55
indices: 1.33


runflags 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1
span 0 1 3 5 7 8 14 15
indices 0 3 4 7 14

runflags: 2.80
spans: 1.83
indices: 1.53


runflags 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1
span 0 1 3 7 18 22 33 34 35 37 38 40 47 48 56 58 59 60 63 64 65 68
indices 0 3 4 5 6 18 19 20 21 33 35 36 38 39 47 56 57 59 63 65 66 67

runflags: 13.85
spans: 7.93
indices: 4.93


runflags 1 0 1
span 0 1 2 3
indices 0 2

runflags: 0.86
spans: 1.11
indices: 0.91


runflags 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1
span 0 1 2 3 35 36 42 43
indices 0 2 35 42

runflags: 5.01
spans: 1.72
indices: 1.33


runflags 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 2 3 20 21
indices 0 2 20

runflags: 3.00
spans: 1.41
indices: 1.16


runflags 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 2 3 16 17
indices 0 2 16

runflags: 2.65
spans: 1.41
indices: 1.16


runflags 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1
span 0 1 2 3 10 12 16 17 18 19 21 22
indices 0 2 10 11 16 18 21

runflags: 4.86
spans: 2.31
indices: 1.95


runflags 1 0 1 0 0 0 0 1
span 0 1 2 3 7 8
indices 0 2 7

runflags: 2.02
spans: 1.40
indices: 1.16


runflags 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 1 2 3 6 7 14 15 16 18 20 21 25 26 32 33 38 39 41 42 43 44 52 53 66 67
indices 0 2 6 14 16 17 20 25 32 38 41 43 52 66

runflags: 12.69
spans: 4.61
indices: 3.33


runflags 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1
span 0 1 2 3 5 7 9 12 15 16 18 21 22 24 25 27 28 29 31 36 41 42 43 46 47 48 49 50 51 53 54 57 60 61 64 65 67 68 71 72 73 74 75 79 85 87 89 92 96 98 99 100 103 104 106 107 112 116 117 118
indices 0 2 5 6 9 10 11 15 18 19 20 22 23 25 26 28 31 32 33 34 35 41 43 44 45 47 49 51 52 54 55 56 60 64 67 71 73 75 76 77 78 85 86 89 90 91 96 97 99 103 106 112 113 114 115 117

runflags: 36.97
spans: 23.11
indices: 11.66


runflags 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
span 0 1 2 3 4 5 12 13 23 24
indices 0 2 4 12 23

runflags: 3.92
spans: 1.99
indices: 1.53


runflags 1 0 1 0 1 0 0 0 0 0 1 0 1 1
span 0 1 2 3 4 5 10 11 12 14
indices 0 2 4 10 12 13

runflags: 3.49
spans: 2.18
indices: 1.72


runflags 1 0 1 0 1 0 0 1
span 0 1 2 3 4 5 7 8
indices 0 2 4 7

runflags: 1.30
spans: 1.71
indices: 1.36


runflags 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1
span 0 1 2 3 4 5 6 7 12 14 15 16 19 20 21 22 23 24 25 26 27 28 29 33 34 35 38 40 46 51 56 58
indices 0 2 4 6 12 13 15 19 21 23 25 27 29 30 31 32 34 38 39 46 47 48 49 50 56 57

runflags: 13.40
spans: 9.68
indices: 5.71


runflags 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 0 1
span 0 1 2 3 4 11 13 15 16 17 18 19 22 26 27 29 30 33 34 35
indices 0 2 4 5 6 7 8 9 10 13 14 16 18 22 23 24 25 27 28 30 31 32 34

runflags: 10.08
spans: 8.26
indices: 5.15


runflags 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1
span 0 1 2 4 11 12 17 19 21 22 24 25 38 40 43 44 47 49 53 54 56 57 63 64 70 71
indices 0 2 3 11 17 18 21 24 38 39 43 47 48 53 56 63 70

runflags: 15.08
spans: 5.96
indices: 3.95


runflags 1 0 1 1 0 0 0 0 0 0 1
span 0 1 2 4 10 11
indices 0 2 3 10

runflags: 2.46
spans: 1.55
indices: 1.34


runflags 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1
span 0 1 2 4 6 10 11 12 13 25 27 28 29 33 35 37 39 40 41 43
indices 0 2 3 6 7 8 9 11 13 14 15 16 17 18 19 20 21 22 23 24 27 29 30 31 32 35 36 39 41 42

runflags: 9.45
spans: 9.20
indices: 6.51


runflags 1 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1
span 0 1 2 5 8 9 17 18 23 24
indices 0 2 3 4 8 17 23

runflags: 4.39
spans: 2.27
indices: 1.94


runflags 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1
span 0 1 2 6 13 16 18 19 22 23
indices 0 2 3 4 5 13 14 15 18 22

runflags: 5.16
spans: 3.02
indices: 2.54


runflags 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1
span 0 1 2 6 10 11 13 16 23 24 27 29 32 33 37 39 40 43 46 48 52 54 62 65 66 67 68 69 72 73 74 77 78 79 80 81
indices 0 2 3 4 5 10 13 14 15 23 27 28 32 37 38 40 41 42 46 47 52 53 62 63 64 66 68 72 74 75 76 78 80

runflags: 20.25
spans: 13.32
indices: 7.15


runflags 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1
span 0 1 2 20 21 29 31 40
indices 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 31 32 33 34 35 36 37 38 39

runflags: 8.00
spans: 7.22
indices: 7.70


runflags 1 1
span 0 2
indices 0 1

runflags: 0.83
spans: 1.02
indices: 0.91


runflags 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 2 22 23 58 59
indices 0 1 22 58

runflags: 6.50
spans: 1.51
indices: 1.33


runflags 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 2 17 18
indices 0 1 17

runflags: 2.34
spans: 1.21
indices: 1.16


runflags 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1
span 0 2 10 11 12 13 19 20 21 22 23 24 31 32
indices 0 1 10 12 19 21 23 31

runflags: 5.23
spans: 2.78
indices: 2.12


runflags 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1
span 0 2 8 9 10 11 14 15 17 18
indices 0 1 8 10 14 17

runflags: 4.53
spans: 2.17
indices: 1.72


runflags 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1
span 0 2 7 8 16 17 25 26 33 34 35 36 38 40 44 45 49 51 53 54
indices 0 1 7 16 25 33 35 38 39 44 49 50 53

runflags: 10.02
spans: 4.16
indices: 3.16


runflags 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1
span 0 2 7 8 16 18 20 22
indices 0 1 7 16 17 20 21

runflags: 4.35
spans: 2.05
indices: 1.94


runflags 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1
span 0 2 7 8 13 15 18 19 20 21 33 34 35 37 50 51 57 58 65 66 67 68
indices 0 1 7 13 14 18 20 33 35 36 50 57 65 67

runflags: 13.99
spans: 4.31
indices: 3.33


runflags 1 1 0 0 0 1
span 0 2 5 6
indices 0 1 5

runflags: 1.12
spans: 1.28
indices: 1.16


runflags 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1
span 0 2 5 7 9 12 15 16
indices 0 1 5 6 9 10 11 15

runflags: 3.85
spans: 2.20
indices: 2.13


runflags 1 1 0 0 1
span 0 2 4 5
indices 0 1 4

runflags: 1.07
spans: 1.30
indices: 1.16


runflags 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1
span 0 2 4 5 11 13 15 17 23 24 27 29 40 42 48 49 51 52 58 59 63 65 68 69 73 74 76 77 81 82 83 84 88 89 91 92 96 97 98 100 103 104 105 107 109 110 113 114 115 117 124 125 126 127 130 131 139 140 151 152 153 154 156 157 160 161 165 167 168 169 177 178 184 185 188 189 190 192 194 195 197 198 202 203 206 207 208 209 210 212 214 215 227 228 229 230 239 240 241 242
indices 0 1 4 11 12 15 16 23 27 28 40 41 48 51 58 63 64 68 73 76 81 83 88 91 96 98 99 103 105 106 109 113 115 116 124 126 130 139 151 153 156 160 165 166 168 177 184 188 190 191 194 197 202 206 208 210 211 214 227 229 239 241

runflags: 61.15
spans: 19.92
indices: 12.87


runflags 1 1 0 0 1 0 0 0 0 1
span 0 2 4 5 9 10
indices 0 1 4 9

runflags: 2.36
spans: 1.57
indices: 1.36


runflags 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
span 0 2 4 5 9 10 16 17 21 22 27 28 39 40
indices 0 1 4 9 16 21 27 39

runflags: 6.60
spans: 2.77
indices: 2.12


runflags 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1
span 0 2 4 5 7 9 14 15 18 19
indices 0 1 4 7 8 14 18

runflags: 4.43
spans: 2.22
indices: 1.94


runflags 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 1
span 0 2 4 6 7 10 12 13 19 20 22 23 25 26 28 33 42 43 45 46 49 51 53 54 60 61 62 63 65 66 69 70 74 75 76 77 79 80 84 87 89 90 92 93 99 100 107 109 111 112 113 115 118 120 124 126 140 141 143 144 146 149 156 158 159 160 166 167 170 172 174 175 177 179 182 184 193 194 195 196 197 198 199 203 207 208 209 210 212 213 216 217 222 223 227 228 232 233 236 237 238 239 244 245 246 247
indices 0 1 4 5 7 8 9 12 19 22 25 28 29 30 31 32 42 45 49 50 53 60 62 65 69 74 76 79 84 85 86 89 92 99 107 108 111 113 114 118 119 124 125 140 143 146 147 148 156 157 159 166 170 171 174 177 178 182 183 193 195 197 199 200 201 202 207 209 212 216 222 227 232 236 238 244 246

runflags: 62.54
spans: 28.38
indices: 16.79


runflags 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 2 3 4 10 11 12 13 26 27
indices 0 1 3 10 12 26

runflags: 4.18
spans: 2.34
indices: 1.97


runflags 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1
span 0 2 3 4 9 10 12 17 18 19 21 22 24 28 29 31
indices 0 1 3 9 12 13 14 15 16 18 21 24 25 26 27 29 30

runflags: 7.10
spans: 6.11
indices: 4.05


runflags 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1
span 0 2 3 4 5 7 8 9 10 11 12 13 17 19 21 23 24 27 32 35 38 39 40 42
indices 0 1 3 5 6 8 10 12 17 18 21 22 24 25 26 32 33 34 38 40 41

runflags: 10.92
spans: 8.26
indices: 4.75


runflags 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
span 0 2 3 4 5 14 15 21 22 23 24 37 38 43
indices 0 1 3 5 6 7 8 9 10 11 12 13 15 16 17 18 19 20 22 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42

runflags: 8.67
spans: 9.14
indices: 7.95


runflags 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1
span 0 2 3 8 10 15 16 22 23 29 30 32 33 35 36 38 39 41 42 43 44 45 46 47 48 56 57 60 61 66 67 71 72 74 75 77 78 80 82 83 86 87 88 90 91 95 96 97 99 101
indices 0 1 3 4 5 6 7 10 11 12 13 14 16 17 18 19 20 21 23 24 25 26 27 28 30 31 33 34 36 37 39 40 42 44 46 48 49 50 51 52 53 54 55 57 58 59 61 62 63 64 65 67 68 69 70 72 73 75 76 78 79 82 86 88 89 91 92 93 94 96 99 100

runflags: 27.60
spans: 23.17
indices: 15.16


runflags 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1
span 0 2 3 8 9 10 15 16 19 20 22 23 26 29 30 31 32 33 38 39 40 44 46 48
indices 0 1 3 4 5 6 7 9 15 19 22 26 27 28 30 32 38 40 41 42 43 46 47

runflags: 12.19
spans: 8.17
indices: 5.14


runflags 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
span 0 2 3 9 15 16 20 21 22 23 33 35 48 50 51 52 62 65 66 67 69 71 78 79 80 82 83 84 99 100 113 114 116 118 126 127 129 131 132 133 145 146 174 178 192 193 194 195 207 208 222 223 224 225 239 240
indices 0 1 3 4 5 6 7 8 15 20 22 33 34 48 49 51 62 63 64 66 69 70 78 80 81 83 99 113 116 117 126 129 130 132 145 174 175 176 177 192 194 207 222 224 239

runflags: 38.54
spans: 17.05
indices: 9.55


runflags 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
span 0 2 3 23 24 42 43 61
indices 0 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

runflags: 10.07
spans: 9.22
indices: 12.09


runflags 1 1 1
span 0 3
indices 0 1 2

runflags: 1.02
spans: 1.14
indices: 1.20


runflags 1 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1
span 0 3 6 7 8 9 15 16 19 22 24 25
indices 0 1 2 6 8 15 19 20 21 24

runflags: 6.06
spans: 2.76
indices: 2.54


runflags 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1
span 0 3 6 7 8 9 10 11 12 13 17 20 26 30 33 35 36 37 41 42 43 44 47 48 49 52
indices 0 1 2 6 8 10 12 17 18 19 26 27 28 29 33 34 36 41 43 47 49 50 51

runflags: 14.05
spans: 8.76
indices: 5.14


runflags 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1
span 0 3 5 6 7 8 11 12 15 16 20 22 26 28 30 31 33 36 39 43
indices 0 1 2 5 7 11 15 20 21 26 27 30 33 34 35 39 40 41 42

runflags: 11.37
spans: 6.69
indices: 4.54


runflags 1 1 1 0 1
span 0 3 4 5
indices 0 1 2 4

runflags: 1.28
spans: 1.44
indices: 1.54


runflags 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1
span 0 3 4 5 6 8 9 10 11 12 14 17 19 20 22 24 29 31 39 42 43 46 59 60 61 62 63 64 66 68 73 74 75 78
indices 0 1 2 4 6 7 9 11 14 15 16 19 22 23 29 30 39 40 41 43 44 45 59 61 63 66 67 73 75 76 77

runflags: 17.69
spans: 13.26
indices: 6.78


runflags 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1
span 0 3 4 11 12 14 15 37 38 42 43 52 53 68 72 77 78 81
indices 0 1 2 4 5 6 7 8 9 10 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 72 73 74 75 76 78 79 80

runflags: 16.87
spans: 14.48
indices: 14.78


runflags 1 1 1 1 1 1 1 1
span 0 8
indices 0 1 2 3 4 5 6 7

runflags: 1.69
spans: 1.72
indices: 2.13


runflags 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
span 0 16
indices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

runflags: 2.86
spans: 2.73
indices: 3.72


runflags 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1
span 0 16 17 22 23 27 29 32 33 34 36 41
indices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 18 19 20 21 23 24 25 26 29 30 31 33 36 37 38 39 40

runflags: 8.90
spans: 8.39
indices: 7.31


runflags 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
span 0 23
indices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

runflags: 3.89
spans: 3.61
indices: 5.14


runflags 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
span 0 30
indices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

runflags: 4.92
spans: 4.50
indices: 6.52


runflags 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
span 0 31
indices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

runflags: 5.05
spans: 4.61
indices: 6.74


runflags 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
span 0 48
indices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

runflags: 7.54
spans: 7.14
indices: 10.08


runflags 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
span 0 80
indices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79

runflags: 12.61
spans: 11.14
indices: 16.75


runflags 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
span 0 102
indices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

runflags: 15.89
spans: 13.90
indices: 21.14




--
Larry Gritz
l...@...


Re: run flags vs active intervals

Larry Gritz <l...@...>
 

OK, I've done some really interesting investigation the runflags issue. Chris Foster was very inspiring with his test program and span idea (which we've been debating versus Chris Kulla's similar "index" idea). But I felt there were two problems with Chris F's program in terms of making a final decision: (1) his test loops did not actually resemble the inside of our shadeops, particularly in our use of VaryingRef and the integer ops it uses to control the stepping, which also can't be known at compile time; (2) he tested a few different runflag scenarios (all-on, every-other-on, and random), but I didn't feel like we really knew what would be typical runflags "in the wild".

So, the first step was that I modified the shading system to check after every instruction, and dump the runflags once every <very large prime> instructions (not perfect, but supposed to make it so it's not likely to keep sampling in the same shader or at the same instruction). I did this for a production test frame that we are using as a benchmark, so it's "real" full production shaders on show assets.

I ended up sampling 4508 run states, which I then collated, sorted, and counted, and ended up with 198 unique run states (remember, to keep the data sets reasonable, these are *sampled*, not a comprehensive set of all run states it ever saw).

Below is the list, one runflag per "line", sorted from most-frequently-seen to least-frequently-seen. The first column is the number of times that run state was found. I'm putting it inline below as well as attaching it (to preserve the original line breaks that separate run states).

The "all on" sets are generally from batches of primary rays that coherently hit objects. The few "big spans of 1" ones are primaries from pixels that were split between more than one object, and conditional states from primaries. The vast number of very sparse 1's in seas of 0's are from secondary rays, which our renderer creates batches from, though it can only shade hits together if they hit objects with the same shaders. The most common run state is a single "1", which is a from a secondary ray batch of which only one ray hit a particular object. Our renderer adjusts the offsets so that sparse secondary batches always begin and end with a point "on".

Enjoy. In follow-up emails, I'll discuss what I did with those runflags next.

---

count run state
----- -----------
4285 rf 1
9 rf 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
5 rf 1 0 0 1
4 rf 1 1
3 rf 1 0 0 0 1
3 rf 1 0 0 0 0 0 0 0 1
2 rf 1 0 1
2 rf 1 0 0 1 0 0 0 0 0 1
2 rf 1 0 0 0 0 1
2 rf 1 0 0 0 0 0 1
2 rf 1 0 0 0 0 0 0 0 0 0 0 1
2 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
2 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 rf 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 rf 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 rf 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 rf 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 rf 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1
1 rf 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 rf 1 1 1 1 1 1 1 1
1 rf 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1
1 rf 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1
1 rf 1 1 1 0 1
1 rf 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1
1 rf 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1
1 rf 1 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1
1 rf 1 1 1
1 rf 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 rf 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1
1 rf 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1
1 rf 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
1 rf 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1
1 rf 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1
1 rf 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 1
1 rf 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1
1 rf 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 1 0 0 1 0 0 0 0 1
1 rf 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1
1 rf 1 1 0 0 1
1 rf 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1
1 rf 1 1 0 0 0 1
1 rf 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1
1 rf 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1
1 rf 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1
1 rf 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1
1 rf 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1
1 rf 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1
1 rf 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1
1 rf 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1
1 rf 1 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1
1 rf 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1
1 rf 1 0 1 1 0 0 0 0 0 0 1
1 rf 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1
1 rf 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 0 1
1 rf 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1
1 rf 1 0 1 0 1 0 0 1
1 rf 1 0 1 0 1 0 0 0 0 0 1 0 1 1
1 rf 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1
1 rf 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 1 0 0 0 0 1
1 rf 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1
1 rf 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1
1 rf 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1
1 rf 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1
1 rf 1 0 0 1 1 0 0 0 0 0 0 0 1
1 rf 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1
1 rf 1 0 0 1 1
1 rf 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1
1 rf 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1
1 rf 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1
1 rf 1 0 0 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1
1 rf 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
1 rf 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1
1 rf 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1
1 rf 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1
1 rf 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1
1 rf 1 0 0 0 1 1
1 rf 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1
1 rf 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1
1 rf 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0
1 rf 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 1 1 1
1 rf 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1
1 rf 1 0 0 0 0 1 0 1 0 0 1
1 rf 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1
1 rf 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1
1 rf 1 0 0 0 0 1 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1
1 rf 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1
1 rf 1 0 0 0 0 0 1 0 1
1 rf 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1
1 rf 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1
1 rf 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1
1 rf 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 1 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
1 rf 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
1 rf 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1
1 rf 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 0 0 0 1 0 0 0 1 0 0 0 1
1 rf 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 rf 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1
1 rf 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1


--
Larry Gritz
l...@...

4901 - 4920 of 5098